mobx-lark 2.1.1 → 2.2.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/LICENSE +165 -165
- package/ReadMe.md +39 -39
- package/dist/Lark.d.ts +7 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/module/BITable/index.d.ts +14 -4
- package/package.json +5 -5
- package/src/Lark.ts +242 -226
- package/src/index.ts +3 -3
- package/src/module/BITable/index.ts +294 -283
- package/src/module/BITable/type.ts +120 -120
- package/src/module/BITable/utility.ts +57 -57
- package/src/module/InstantMessenger/index.ts +82 -82
- package/src/module/InstantMessenger/type/index.ts +60 -60
- package/src/module/InstantMessenger/type/message.ts +141 -141
- package/src/module/SpreadSheet/index.ts +78 -78
- package/src/module/SpreadSheet/type.ts +31 -31
- package/src/module/Task/index.ts +278 -278
- package/src/module/Task/type.ts +168 -168
- package/src/module/Wiki/type.ts +16 -16
- package/src/module/base.ts +34 -34
- package/src/module/index.ts +6 -6
- package/src/type.ts +75 -75
- package/tsconfig.json +21 -21
package/src/module/Task/type.ts
CHANGED
|
@@ -1,168 +1,168 @@
|
|
|
1
|
-
import { TranslationMap } from '../../type';
|
|
2
|
-
|
|
3
|
-
export type StringMap = Record<string, string>;
|
|
4
|
-
|
|
5
|
-
export interface TaskOperator {
|
|
6
|
-
id: string;
|
|
7
|
-
type: 'user' | 'app';
|
|
8
|
-
role?: 'creator' | 'owner' | 'editor' | 'viewer' | 'assignee' | 'follower';
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export interface TaskList
|
|
12
|
-
extends Record<
|
|
13
|
-
'guid' | 'name' | 'url' | 'created_at' | 'updated_at',
|
|
14
|
-
string
|
|
15
|
-
> {
|
|
16
|
-
creator: TaskOperator;
|
|
17
|
-
owner: TaskOperator;
|
|
18
|
-
members: TaskOperator[];
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export type TaskResourceType = 'tasklist' | 'my_tasks';
|
|
22
|
-
|
|
23
|
-
export interface TaskResource {
|
|
24
|
-
resource_type: TaskResourceType;
|
|
25
|
-
resource_id: string;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export interface TaskListSection
|
|
29
|
-
extends Pick<
|
|
30
|
-
TaskList,
|
|
31
|
-
'guid' | 'name' | 'creator' | 'created_at' | 'updated_at'
|
|
32
|
-
> {
|
|
33
|
-
resource_type: TaskResourceType;
|
|
34
|
-
is_default: boolean;
|
|
35
|
-
tasklist: Pick<TaskList, 'guid' | 'name'>;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export interface TaskTimeEnd {
|
|
39
|
-
timestamp: string;
|
|
40
|
-
is_all_day?: boolean;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
export interface TaskCompletion {
|
|
44
|
-
href: string;
|
|
45
|
-
tip: TranslationMap;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export type BaseTaskField = Pick<TaskList, 'guid' | 'name'> &
|
|
49
|
-
Pick<TaskList, 'creator' | 'created_at' | 'updated_at'>;
|
|
50
|
-
|
|
51
|
-
export interface TaskFieldNumberSetting {
|
|
52
|
-
format: 'normal' | 'percentage' | 'cny' | 'usd' | 'custom';
|
|
53
|
-
custom_symbol?: string;
|
|
54
|
-
custom_symbol_position?: 'left' | 'right';
|
|
55
|
-
separator: 'none' | 'thousand';
|
|
56
|
-
decimal_count: number;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
export interface NumberTaskField extends BaseTaskField {
|
|
60
|
-
type: 'number';
|
|
61
|
-
number_setting: TaskFieldNumberSetting;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
export interface TextTaskField extends BaseTaskField {
|
|
65
|
-
type: 'text';
|
|
66
|
-
text_setting: object;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
export interface DateTimeTaskField extends BaseTaskField {
|
|
70
|
-
type: 'datetime';
|
|
71
|
-
datetime_setting: { format: string };
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
export interface TaskFieldOption extends Pick<TaskFieldValue, 'guid' | 'name'> {
|
|
75
|
-
color_index: number;
|
|
76
|
-
is_hidden: boolean;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export interface SingleSelectTaskField extends BaseTaskField {
|
|
80
|
-
type: 'single_select';
|
|
81
|
-
single_select_setting: { options: TaskFieldOption[] };
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
export interface MultiSelectTaskField extends BaseTaskField {
|
|
85
|
-
type: 'multi_select';
|
|
86
|
-
multi_select_setting: { options: TaskFieldOption[] };
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
export interface MemberTaskField extends BaseTaskField {
|
|
90
|
-
type: 'member';
|
|
91
|
-
member_setting: { multi: boolean };
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
export type TaskField =
|
|
95
|
-
| NumberTaskField
|
|
96
|
-
| TextTaskField
|
|
97
|
-
| DateTimeTaskField
|
|
98
|
-
| SingleSelectTaskField
|
|
99
|
-
| MultiSelectTaskField
|
|
100
|
-
| MemberTaskField;
|
|
101
|
-
|
|
102
|
-
export type TaskFieldValue = Pick<TaskField, 'guid' | 'type' | 'name'> &
|
|
103
|
-
Partial<
|
|
104
|
-
Record<
|
|
105
|
-
`${Exclude<TaskField['type'], 'member' | 'multi_select'>}_value`,
|
|
106
|
-
string
|
|
107
|
-
> & {
|
|
108
|
-
member_value: TaskOperator[];
|
|
109
|
-
multi_select_value: string[];
|
|
110
|
-
}
|
|
111
|
-
>;
|
|
112
|
-
|
|
113
|
-
export interface TaskDependency {
|
|
114
|
-
type: 'next';
|
|
115
|
-
task_guid: string;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
export interface TaskAttachment
|
|
119
|
-
extends Pick<TaskList, 'guid' | 'name'>,
|
|
120
|
-
Record<'file_token' | 'uploaded_at', string> {
|
|
121
|
-
size: 62232;
|
|
122
|
-
uploader: TaskOperator;
|
|
123
|
-
is_cover: boolean;
|
|
124
|
-
resource: { type: 'task'; id: string };
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
export interface Task
|
|
128
|
-
extends TaskList,
|
|
129
|
-
Record<
|
|
130
|
-
| 'task_id'
|
|
131
|
-
| 'summary'
|
|
132
|
-
| 'description'
|
|
133
|
-
| 'completed_at'
|
|
134
|
-
| 'repeat_rule'
|
|
135
|
-
| 'extra'
|
|
136
|
-
| 'parent_task_guid',
|
|
137
|
-
string
|
|
138
|
-
>,
|
|
139
|
-
Record<'mode' | 'source' | 'subtask_count', number> {
|
|
140
|
-
status: 'todo';
|
|
141
|
-
is_milestone: boolean;
|
|
142
|
-
start: TaskTimeEnd;
|
|
143
|
-
due: TaskTimeEnd;
|
|
144
|
-
reminders: {
|
|
145
|
-
id?: string;
|
|
146
|
-
relative_fire_minute: number;
|
|
147
|
-
}[];
|
|
148
|
-
origin: {
|
|
149
|
-
platform_i18n_name: TranslationMap;
|
|
150
|
-
href: Record<'url' | 'title', string>;
|
|
151
|
-
};
|
|
152
|
-
custom_complete: Record<'pc' | 'ios' | 'android', TaskCompletion>;
|
|
153
|
-
custom_fields: TaskFieldValue[];
|
|
154
|
-
attachments: TaskAttachment[];
|
|
155
|
-
dependencies: TaskDependency[];
|
|
156
|
-
tasklists: Partial<Record<'tasklist_guid' | 'section_guid', string>>[];
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
export type TaskSummary = Pick<TaskList, 'guid'> &
|
|
160
|
-
Pick<
|
|
161
|
-
Task,
|
|
162
|
-
| 'summary'
|
|
163
|
-
| 'completed_at'
|
|
164
|
-
| 'start'
|
|
165
|
-
| 'due'
|
|
166
|
-
| 'members'
|
|
167
|
-
| 'subtask_count'
|
|
168
|
-
>;
|
|
1
|
+
import { TranslationMap } from '../../type';
|
|
2
|
+
|
|
3
|
+
export type StringMap = Record<string, string>;
|
|
4
|
+
|
|
5
|
+
export interface TaskOperator {
|
|
6
|
+
id: string;
|
|
7
|
+
type: 'user' | 'app';
|
|
8
|
+
role?: 'creator' | 'owner' | 'editor' | 'viewer' | 'assignee' | 'follower';
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface TaskList
|
|
12
|
+
extends Record<
|
|
13
|
+
'guid' | 'name' | 'url' | 'created_at' | 'updated_at',
|
|
14
|
+
string
|
|
15
|
+
> {
|
|
16
|
+
creator: TaskOperator;
|
|
17
|
+
owner: TaskOperator;
|
|
18
|
+
members: TaskOperator[];
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export type TaskResourceType = 'tasklist' | 'my_tasks';
|
|
22
|
+
|
|
23
|
+
export interface TaskResource {
|
|
24
|
+
resource_type: TaskResourceType;
|
|
25
|
+
resource_id: string;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export interface TaskListSection
|
|
29
|
+
extends Pick<
|
|
30
|
+
TaskList,
|
|
31
|
+
'guid' | 'name' | 'creator' | 'created_at' | 'updated_at'
|
|
32
|
+
> {
|
|
33
|
+
resource_type: TaskResourceType;
|
|
34
|
+
is_default: boolean;
|
|
35
|
+
tasklist: Pick<TaskList, 'guid' | 'name'>;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export interface TaskTimeEnd {
|
|
39
|
+
timestamp: string;
|
|
40
|
+
is_all_day?: boolean;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export interface TaskCompletion {
|
|
44
|
+
href: string;
|
|
45
|
+
tip: TranslationMap;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export type BaseTaskField = Pick<TaskList, 'guid' | 'name'> &
|
|
49
|
+
Pick<TaskList, 'creator' | 'created_at' | 'updated_at'>;
|
|
50
|
+
|
|
51
|
+
export interface TaskFieldNumberSetting {
|
|
52
|
+
format: 'normal' | 'percentage' | 'cny' | 'usd' | 'custom';
|
|
53
|
+
custom_symbol?: string;
|
|
54
|
+
custom_symbol_position?: 'left' | 'right';
|
|
55
|
+
separator: 'none' | 'thousand';
|
|
56
|
+
decimal_count: number;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export interface NumberTaskField extends BaseTaskField {
|
|
60
|
+
type: 'number';
|
|
61
|
+
number_setting: TaskFieldNumberSetting;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export interface TextTaskField extends BaseTaskField {
|
|
65
|
+
type: 'text';
|
|
66
|
+
text_setting: object;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export interface DateTimeTaskField extends BaseTaskField {
|
|
70
|
+
type: 'datetime';
|
|
71
|
+
datetime_setting: { format: string };
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export interface TaskFieldOption extends Pick<TaskFieldValue, 'guid' | 'name'> {
|
|
75
|
+
color_index: number;
|
|
76
|
+
is_hidden: boolean;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export interface SingleSelectTaskField extends BaseTaskField {
|
|
80
|
+
type: 'single_select';
|
|
81
|
+
single_select_setting: { options: TaskFieldOption[] };
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export interface MultiSelectTaskField extends BaseTaskField {
|
|
85
|
+
type: 'multi_select';
|
|
86
|
+
multi_select_setting: { options: TaskFieldOption[] };
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export interface MemberTaskField extends BaseTaskField {
|
|
90
|
+
type: 'member';
|
|
91
|
+
member_setting: { multi: boolean };
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export type TaskField =
|
|
95
|
+
| NumberTaskField
|
|
96
|
+
| TextTaskField
|
|
97
|
+
| DateTimeTaskField
|
|
98
|
+
| SingleSelectTaskField
|
|
99
|
+
| MultiSelectTaskField
|
|
100
|
+
| MemberTaskField;
|
|
101
|
+
|
|
102
|
+
export type TaskFieldValue = Pick<TaskField, 'guid' | 'type' | 'name'> &
|
|
103
|
+
Partial<
|
|
104
|
+
Record<
|
|
105
|
+
`${Exclude<TaskField['type'], 'member' | 'multi_select'>}_value`,
|
|
106
|
+
string
|
|
107
|
+
> & {
|
|
108
|
+
member_value: TaskOperator[];
|
|
109
|
+
multi_select_value: string[];
|
|
110
|
+
}
|
|
111
|
+
>;
|
|
112
|
+
|
|
113
|
+
export interface TaskDependency {
|
|
114
|
+
type: 'next';
|
|
115
|
+
task_guid: string;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
export interface TaskAttachment
|
|
119
|
+
extends Pick<TaskList, 'guid' | 'name'>,
|
|
120
|
+
Record<'file_token' | 'uploaded_at', string> {
|
|
121
|
+
size: 62232;
|
|
122
|
+
uploader: TaskOperator;
|
|
123
|
+
is_cover: boolean;
|
|
124
|
+
resource: { type: 'task'; id: string };
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export interface Task
|
|
128
|
+
extends TaskList,
|
|
129
|
+
Record<
|
|
130
|
+
| 'task_id'
|
|
131
|
+
| 'summary'
|
|
132
|
+
| 'description'
|
|
133
|
+
| 'completed_at'
|
|
134
|
+
| 'repeat_rule'
|
|
135
|
+
| 'extra'
|
|
136
|
+
| 'parent_task_guid',
|
|
137
|
+
string
|
|
138
|
+
>,
|
|
139
|
+
Record<'mode' | 'source' | 'subtask_count', number> {
|
|
140
|
+
status: 'todo';
|
|
141
|
+
is_milestone: boolean;
|
|
142
|
+
start: TaskTimeEnd;
|
|
143
|
+
due: TaskTimeEnd;
|
|
144
|
+
reminders: {
|
|
145
|
+
id?: string;
|
|
146
|
+
relative_fire_minute: number;
|
|
147
|
+
}[];
|
|
148
|
+
origin: {
|
|
149
|
+
platform_i18n_name: TranslationMap;
|
|
150
|
+
href: Record<'url' | 'title', string>;
|
|
151
|
+
};
|
|
152
|
+
custom_complete: Record<'pc' | 'ios' | 'android', TaskCompletion>;
|
|
153
|
+
custom_fields: TaskFieldValue[];
|
|
154
|
+
attachments: TaskAttachment[];
|
|
155
|
+
dependencies: TaskDependency[];
|
|
156
|
+
tasklists: Partial<Record<'tasklist_guid' | 'section_guid', string>>[];
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
export type TaskSummary = Pick<TaskList, 'guid'> &
|
|
160
|
+
Pick<
|
|
161
|
+
Task,
|
|
162
|
+
| 'summary'
|
|
163
|
+
| 'completed_at'
|
|
164
|
+
| 'start'
|
|
165
|
+
| 'due'
|
|
166
|
+
| 'members'
|
|
167
|
+
| 'subtask_count'
|
|
168
|
+
>;
|
package/src/module/Wiki/type.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
export interface LarkWikiNode
|
|
2
|
-
extends Record<
|
|
3
|
-
| 'title'
|
|
4
|
-
| 'creator'
|
|
5
|
-
| 'owner'
|
|
6
|
-
| `${'' | 'origin_'}space_id`
|
|
7
|
-
| `node_create_time`
|
|
8
|
-
| `${'' | 'parent_' | 'origin_'}node_token`
|
|
9
|
-
| `obj_token`
|
|
10
|
-
| `obj_${'create' | 'edit'}_time`,
|
|
11
|
-
string
|
|
12
|
-
> {
|
|
13
|
-
node_type: 'origin' | 'shortcut';
|
|
14
|
-
obj_type: `doc${'' | 'x'}` | 'sheet' | 'mindnote' | 'bitable' | 'file';
|
|
15
|
-
has_child: boolean;
|
|
16
|
-
}
|
|
1
|
+
export interface LarkWikiNode
|
|
2
|
+
extends Record<
|
|
3
|
+
| 'title'
|
|
4
|
+
| 'creator'
|
|
5
|
+
| 'owner'
|
|
6
|
+
| `${'' | 'origin_'}space_id`
|
|
7
|
+
| `node_create_time`
|
|
8
|
+
| `${'' | 'parent_' | 'origin_'}node_token`
|
|
9
|
+
| `obj_token`
|
|
10
|
+
| `obj_${'create' | 'edit'}_time`,
|
|
11
|
+
string
|
|
12
|
+
> {
|
|
13
|
+
node_type: 'origin' | 'shortcut';
|
|
14
|
+
obj_type: `doc${'' | 'x'}` | 'sheet' | 'mindnote' | 'bitable' | 'file';
|
|
15
|
+
has_child: boolean;
|
|
16
|
+
}
|
package/src/module/base.ts
CHANGED
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
import { DataObject, RESTClient } from 'mobx-restful';
|
|
2
|
-
import { buildURLData } from 'web-utility';
|
|
3
|
-
|
|
4
|
-
import { LarkPageData } from '../type';
|
|
5
|
-
|
|
6
|
-
export async function* createPageStream<T extends DataObject>(
|
|
7
|
-
client: RESTClient,
|
|
8
|
-
path: string,
|
|
9
|
-
onCount: (total: number) => any,
|
|
10
|
-
filter: DataObject = {}
|
|
11
|
-
) {
|
|
12
|
-
var count = 0,
|
|
13
|
-
lastPage = '';
|
|
14
|
-
|
|
15
|
-
do {
|
|
16
|
-
const { body } = await client.get<LarkPageData<T>>(
|
|
17
|
-
`${path}?${buildURLData({
|
|
18
|
-
...filter,
|
|
19
|
-
page_size: 500,
|
|
20
|
-
page_token: lastPage
|
|
21
|
-
})}`
|
|
22
|
-
);
|
|
23
|
-
var { items, total, has_more, page_token } = body!.data!;
|
|
24
|
-
|
|
25
|
-
if (total != null) count = total;
|
|
26
|
-
else count += items?.length || 0;
|
|
27
|
-
|
|
28
|
-
lastPage = page_token;
|
|
29
|
-
|
|
30
|
-
onCount(has_more ? Infinity : count);
|
|
31
|
-
|
|
32
|
-
yield* items || [];
|
|
33
|
-
} while (has_more);
|
|
34
|
-
}
|
|
1
|
+
import { DataObject, RESTClient } from 'mobx-restful';
|
|
2
|
+
import { buildURLData } from 'web-utility';
|
|
3
|
+
|
|
4
|
+
import { LarkPageData } from '../type';
|
|
5
|
+
|
|
6
|
+
export async function* createPageStream<T extends DataObject>(
|
|
7
|
+
client: RESTClient,
|
|
8
|
+
path: string,
|
|
9
|
+
onCount: (total: number) => any,
|
|
10
|
+
filter: DataObject = {}
|
|
11
|
+
) {
|
|
12
|
+
var count = 0,
|
|
13
|
+
lastPage = '';
|
|
14
|
+
|
|
15
|
+
do {
|
|
16
|
+
const { body } = await client.get<LarkPageData<T>>(
|
|
17
|
+
`${path}?${buildURLData({
|
|
18
|
+
...filter,
|
|
19
|
+
page_size: 500,
|
|
20
|
+
page_token: lastPage
|
|
21
|
+
})}`
|
|
22
|
+
);
|
|
23
|
+
var { items, total, has_more, page_token } = body!.data!;
|
|
24
|
+
|
|
25
|
+
if (total != null) count = total;
|
|
26
|
+
else count += items?.length || 0;
|
|
27
|
+
|
|
28
|
+
lastPage = page_token;
|
|
29
|
+
|
|
30
|
+
onCount(has_more ? Infinity : count);
|
|
31
|
+
|
|
32
|
+
yield* items || [];
|
|
33
|
+
} while (has_more);
|
|
34
|
+
}
|
package/src/module/index.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export * from './base';
|
|
2
|
-
export * from './InstantMessenger';
|
|
3
|
-
export * from './Task';
|
|
4
|
-
export * from './SpreadSheet';
|
|
5
|
-
export * from './BITable';
|
|
6
|
-
export * from './Wiki/type';
|
|
1
|
+
export * from './base';
|
|
2
|
+
export * from './InstantMessenger';
|
|
3
|
+
export * from './Task';
|
|
4
|
+
export * from './SpreadSheet';
|
|
5
|
+
export * from './BITable';
|
|
6
|
+
export * from './Wiki/type';
|
package/src/type.ts
CHANGED
|
@@ -1,75 +1,75 @@
|
|
|
1
|
-
export type LarkData<
|
|
2
|
-
D extends Record<string, any> = {},
|
|
3
|
-
E extends Record<string, any> = {}
|
|
4
|
-
> = E & {
|
|
5
|
-
code: number;
|
|
6
|
-
msg: string;
|
|
7
|
-
data?: D;
|
|
8
|
-
error?: {
|
|
9
|
-
log_id: string;
|
|
10
|
-
[key: string]: any;
|
|
11
|
-
};
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
export type LarkPageData<D extends Record<string, any> = {}> = LarkData<{
|
|
15
|
-
page_token: string;
|
|
16
|
-
items: D[];
|
|
17
|
-
has_more: boolean;
|
|
18
|
-
total?: number;
|
|
19
|
-
}>;
|
|
20
|
-
|
|
21
|
-
export function isLarkError(data?: any): data is LarkData {
|
|
22
|
-
return !!(data as LarkData)?.code;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export type TenantAccessToken = LarkData<
|
|
26
|
-
{},
|
|
27
|
-
{
|
|
28
|
-
expire: number;
|
|
29
|
-
tenant_access_token: string;
|
|
30
|
-
}
|
|
31
|
-
>;
|
|
32
|
-
|
|
33
|
-
export type UserIdType = `${'open' | 'union' | 'user'}_id`;
|
|
34
|
-
|
|
35
|
-
export type LocaleUser = Record<
|
|
36
|
-
`${'' | 'en_'}name` | `${'' | 'enterprise_'}email`,
|
|
37
|
-
string
|
|
38
|
-
>;
|
|
39
|
-
|
|
40
|
-
export interface UserMeta
|
|
41
|
-
extends LocaleUser,
|
|
42
|
-
Record<
|
|
43
|
-
| `avatar_${'url' | 'thumb' | 'middle' | 'big'}`
|
|
44
|
-
| UserIdType
|
|
45
|
-
| 'mobile'
|
|
46
|
-
| 'tenant_key'
|
|
47
|
-
| 'employee_no'
|
|
48
|
-
| `${'access' | 'refresh'}_token`,
|
|
49
|
-
string
|
|
50
|
-
>,
|
|
51
|
-
Record<`${'' | 'refresh_'}expires_in`, number> {
|
|
52
|
-
token_type: 'Bearer';
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export interface JSTicket {
|
|
56
|
-
expire_in: number;
|
|
57
|
-
ticket: string;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
export type I18nKey = `${string}_${string}`;
|
|
61
|
-
|
|
62
|
-
export type TranslationMap = Record<I18nKey, string>;
|
|
63
|
-
|
|
64
|
-
export type UploadTargetType =
|
|
65
|
-
| 'doc_image'
|
|
66
|
-
| 'docx_image'
|
|
67
|
-
| 'sheet_image'
|
|
68
|
-
| 'doc_file'
|
|
69
|
-
| 'docx_file'
|
|
70
|
-
| 'sheet_file'
|
|
71
|
-
| 'vc_virtual_background'
|
|
72
|
-
| 'bitable_image'
|
|
73
|
-
| 'bitable_file'
|
|
74
|
-
| 'moments'
|
|
75
|
-
| 'ccm_import_open';
|
|
1
|
+
export type LarkData<
|
|
2
|
+
D extends Record<string, any> = {},
|
|
3
|
+
E extends Record<string, any> = {}
|
|
4
|
+
> = E & {
|
|
5
|
+
code: number;
|
|
6
|
+
msg: string;
|
|
7
|
+
data?: D;
|
|
8
|
+
error?: {
|
|
9
|
+
log_id: string;
|
|
10
|
+
[key: string]: any;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export type LarkPageData<D extends Record<string, any> = {}> = LarkData<{
|
|
15
|
+
page_token: string;
|
|
16
|
+
items: D[];
|
|
17
|
+
has_more: boolean;
|
|
18
|
+
total?: number;
|
|
19
|
+
}>;
|
|
20
|
+
|
|
21
|
+
export function isLarkError(data?: any): data is LarkData {
|
|
22
|
+
return !!(data as LarkData)?.code;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export type TenantAccessToken = LarkData<
|
|
26
|
+
{},
|
|
27
|
+
{
|
|
28
|
+
expire: number;
|
|
29
|
+
tenant_access_token: string;
|
|
30
|
+
}
|
|
31
|
+
>;
|
|
32
|
+
|
|
33
|
+
export type UserIdType = `${'open' | 'union' | 'user'}_id`;
|
|
34
|
+
|
|
35
|
+
export type LocaleUser = Record<
|
|
36
|
+
`${'' | 'en_'}name` | `${'' | 'enterprise_'}email`,
|
|
37
|
+
string
|
|
38
|
+
>;
|
|
39
|
+
|
|
40
|
+
export interface UserMeta
|
|
41
|
+
extends LocaleUser,
|
|
42
|
+
Record<
|
|
43
|
+
| `avatar_${'url' | 'thumb' | 'middle' | 'big'}`
|
|
44
|
+
| UserIdType
|
|
45
|
+
| 'mobile'
|
|
46
|
+
| 'tenant_key'
|
|
47
|
+
| 'employee_no'
|
|
48
|
+
| `${'access' | 'refresh'}_token`,
|
|
49
|
+
string
|
|
50
|
+
>,
|
|
51
|
+
Record<`${'' | 'refresh_'}expires_in`, number> {
|
|
52
|
+
token_type: 'Bearer';
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export interface JSTicket {
|
|
56
|
+
expire_in: number;
|
|
57
|
+
ticket: string;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export type I18nKey = `${string}_${string}`;
|
|
61
|
+
|
|
62
|
+
export type TranslationMap = Record<I18nKey, string>;
|
|
63
|
+
|
|
64
|
+
export type UploadTargetType =
|
|
65
|
+
| 'doc_image'
|
|
66
|
+
| 'docx_image'
|
|
67
|
+
| 'sheet_image'
|
|
68
|
+
| 'doc_file'
|
|
69
|
+
| 'docx_file'
|
|
70
|
+
| 'sheet_file'
|
|
71
|
+
| 'vc_virtual_background'
|
|
72
|
+
| 'bitable_image'
|
|
73
|
+
| 'bitable_file'
|
|
74
|
+
| 'moments'
|
|
75
|
+
| 'ccm_import_open';
|
package/tsconfig.json
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"strict": true,
|
|
4
|
-
"target": "ES6",
|
|
5
|
-
"module": "CommonJS",
|
|
6
|
-
"moduleResolution": "Node",
|
|
7
|
-
"useDefineForClassFields": true,
|
|
8
|
-
"declaration": true,
|
|
9
|
-
"skipLibCheck": true,
|
|
10
|
-
"lib": ["ES2023", "DOM"],
|
|
11
|
-
"outDir": "dist/"
|
|
12
|
-
},
|
|
13
|
-
"include": ["src/**/*.ts"],
|
|
14
|
-
"typedocOptions": {
|
|
15
|
-
"name": "Lark SDK",
|
|
16
|
-
"excludeExternals": true,
|
|
17
|
-
"excludePrivate": true,
|
|
18
|
-
"readme": "./ReadMe.md",
|
|
19
|
-
"plugin": ["typedoc-plugin-mdn-links"]
|
|
20
|
-
}
|
|
21
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"strict": true,
|
|
4
|
+
"target": "ES6",
|
|
5
|
+
"module": "CommonJS",
|
|
6
|
+
"moduleResolution": "Node",
|
|
7
|
+
"useDefineForClassFields": true,
|
|
8
|
+
"declaration": true,
|
|
9
|
+
"skipLibCheck": true,
|
|
10
|
+
"lib": ["ES2023", "DOM"],
|
|
11
|
+
"outDir": "dist/"
|
|
12
|
+
},
|
|
13
|
+
"include": ["src/**/*.ts"],
|
|
14
|
+
"typedocOptions": {
|
|
15
|
+
"name": "Lark SDK",
|
|
16
|
+
"excludeExternals": true,
|
|
17
|
+
"excludePrivate": true,
|
|
18
|
+
"readme": "./ReadMe.md",
|
|
19
|
+
"plugin": ["typedoc-plugin-mdn-links"]
|
|
20
|
+
}
|
|
21
|
+
}
|