mobx-lark 2.8.0 → 2.9.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 +2 -0
- package/dist/Lark.d.ts +1 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/module/BITable/index.d.ts +105 -53
- package/dist/module/BITable/utility.d.ts +1 -0
- package/dist/module/Document/component/Block.d.ts +1 -1
- package/dist/module/DocumentAI/index.d.ts +17 -1
- package/dist/module/DocumentAI/type.d.ts +81 -0
- package/package.json +14 -22
- package/pnpm-workspace.yaml +9 -0
- package/src/Lark.ts +1 -1
- package/src/module/BITable/index.ts +58 -34
- package/src/module/BITable/utility.ts +11 -11
- package/src/module/DocumentAI/index.ts +66 -2
- package/src/module/DocumentAI/type.ts +129 -0
|
@@ -15,85 +15,91 @@ export interface BiDataQueryOptions {
|
|
|
15
15
|
/**
|
|
16
16
|
* @see {@link https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/bitable-overview}
|
|
17
17
|
*/
|
|
18
|
-
export declare function BiDataTable<
|
|
19
|
-
requiredKeys: readonly (keyof
|
|
20
|
-
sort: Partial<Record<keyof
|
|
18
|
+
export declare function BiDataTable<D extends DataObject, F extends Filter<D> = Filter<D>>(Base?: typeof ListModel): abstract new (appId: string, tableId: string) => {
|
|
19
|
+
requiredKeys: readonly (keyof D)[];
|
|
20
|
+
sort: Partial<Record<keyof D, "ASC" | "DESC">>;
|
|
21
21
|
queryOptions: BiDataQueryOptions;
|
|
22
22
|
currentViewId?: string;
|
|
23
|
-
|
|
23
|
+
keyMap?: Partial<Record<keyof D, string>>;
|
|
24
|
+
readonly nameMap: any;
|
|
25
|
+
extractFields({ fields, ...meta }: TableRecord<D>): D;
|
|
24
26
|
/**
|
|
25
27
|
* @deprecated
|
|
26
28
|
*/
|
|
27
|
-
normalize: ({ fields, ...meta }: TableRecord<
|
|
28
|
-
|
|
29
|
+
normalize: ({ fields, ...meta }: TableRecord<D>) => D;
|
|
30
|
+
/**
|
|
31
|
+
* @protected
|
|
32
|
+
*/
|
|
33
|
+
mapFields({ fields, ...meta }: TableRecord<DataObject>): D;
|
|
34
|
+
wrapFields(fields: F): D;
|
|
29
35
|
/**
|
|
30
36
|
* @see {@link https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/get}
|
|
31
37
|
*/
|
|
32
|
-
getOne(id: string): Promise<
|
|
38
|
+
getOne(id: string): Promise<D>;
|
|
33
39
|
/**
|
|
34
40
|
* @see {@link https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/create}
|
|
35
41
|
* @see {@link https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/update}
|
|
36
42
|
*/
|
|
37
|
-
updateOne(data: F, id?: string): Promise<
|
|
43
|
+
updateOne(data: F, id?: string): Promise<D>;
|
|
44
|
+
mapFilter(filter: DataObject): F;
|
|
38
45
|
makeFilter(filter: F): string;
|
|
39
46
|
/**
|
|
40
47
|
* @see {@link https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/list}
|
|
41
48
|
*/
|
|
42
|
-
openStream(filter: F): AsyncGenerator<
|
|
43
|
-
getViewList(viewId: string, pageIndex?: number, pageSize?: number): Promise<
|
|
44
|
-
getViewAll(viewId: string, pageSize?: number): Promise<
|
|
45
|
-
stream?: AsyncGenerator<
|
|
49
|
+
openStream(filter: F): AsyncGenerator<D, void, unknown>;
|
|
50
|
+
getViewList(viewId: string, pageIndex?: number, pageSize?: number): Promise<D[]>;
|
|
51
|
+
getViewAll(viewId: string, pageSize?: number): Promise<D[]>;
|
|
52
|
+
stream?: AsyncGenerator<D, void, any> | undefined;
|
|
46
53
|
clearList: (() => void) & (() => void);
|
|
47
54
|
clear: (() => void) & (() => void);
|
|
48
|
-
restoreList: (({ filter, pageIndex, pageSize, allItems, totalCount }?: Partial<Pick<ListModel<
|
|
49
|
-
loadStream(filter: F, newCount: number): Promise<
|
|
55
|
+
restoreList: (({ filter, pageIndex, pageSize, allItems, totalCount }?: Partial<Pick<ListModel<D, Partial<import("mobx-restful").NewData<D>>>, "filter" | "pageIndex" | "pageSize" | "allItems" | "totalCount">> | undefined) => Promise<void>) & (({ pageIndex, pageSize, allItems, totalCount }?: Partial<Pick<ListModel<D, Partial<import("mobx-restful").NewData<D>>>, "pageIndex" | "pageSize" | "allItems" | "totalCount">> | undefined) => void);
|
|
56
|
+
loadStream(filter: F, newCount: number): Promise<D[]>;
|
|
50
57
|
loadPage: ((pageIndex: number, pageSize: number, filter: F) => Promise<{
|
|
51
|
-
pageData:
|
|
58
|
+
pageData: D[];
|
|
52
59
|
totalCount: number;
|
|
53
|
-
}>) & ((pageIndex: number, pageSize: number, filter: F) => Promise<PageData<
|
|
60
|
+
}>) & ((pageIndex: number, pageSize: number, filter: F) => Promise<PageData<D>>);
|
|
54
61
|
pageIndex: number;
|
|
55
62
|
pageSize: number;
|
|
56
63
|
filter: F;
|
|
57
64
|
totalCount: number;
|
|
58
|
-
pageList:
|
|
59
|
-
readonly currentPage:
|
|
65
|
+
pageList: D[][];
|
|
66
|
+
readonly currentPage: D[];
|
|
60
67
|
readonly pageCount: number;
|
|
61
|
-
readonly allItems:
|
|
68
|
+
readonly allItems: D[];
|
|
62
69
|
readonly noMore: boolean;
|
|
63
|
-
statistic: Partial<Record<import("web-utility").TypeKeys<
|
|
64
|
-
turnTo: ((pageIndex: number, pageSize?: number) => ListModel<
|
|
70
|
+
statistic: Partial<Record<import("web-utility").TypeKeys<D, import("web-utility").IndexKey>, Record<string, number>>>;
|
|
71
|
+
turnTo: ((pageIndex: number, pageSize?: number) => ListModel<D, F>) & ((pageIndex: number, pageSize?: number) => ListModel<D, F>);
|
|
65
72
|
loadNewPage: ((pageIndex: number, pageSize: number, filter: F) => Promise<{
|
|
66
|
-
pageData:
|
|
73
|
+
pageData: D[];
|
|
67
74
|
totalCount: number;
|
|
68
75
|
}>) & ((pageIndex: number, pageSize: number, filter: F) => Promise<{
|
|
69
|
-
pageData:
|
|
76
|
+
pageData: D[];
|
|
70
77
|
totalCount: number;
|
|
71
78
|
}>);
|
|
72
|
-
getList: ((filter?: F | undefined, pageIndex?: number, pageSize?: number) => Promise<
|
|
73
|
-
refreshList: (() => Promise<
|
|
74
|
-
getAllInStream: ((filter?: F | undefined, pageSize?: number) => AsyncGenerator<
|
|
75
|
-
getAll: ((filter?: F | undefined, pageSize?: number) => Promise<
|
|
76
|
-
countAll: ((keys: import("web-utility").TypeKeys<
|
|
79
|
+
getList: ((filter?: F | undefined, pageIndex?: number, pageSize?: number) => Promise<D[]>) & ((filter?: F | undefined, pageIndex?: number, pageSize?: number) => Promise<D[]>);
|
|
80
|
+
refreshList: (() => Promise<D[]>) & (() => Promise<D[]>);
|
|
81
|
+
getAllInStream: ((filter?: F | undefined, pageSize?: number) => AsyncGenerator<D, void, unknown>) & ((filter?: F | undefined, pageSize?: number) => AsyncGenerator<D, void, unknown>);
|
|
82
|
+
getAll: ((filter?: F | undefined, pageSize?: number) => Promise<D[]>) & ((filter?: F | undefined, pageSize?: number) => Promise<D[]>);
|
|
83
|
+
countAll: ((keys: import("web-utility").TypeKeys<D, import("web-utility").IndexKey>[], filter?: F | undefined, pageSize?: number) => Promise<Partial<Record<import("web-utility").TypeKeys<D, import("web-utility").IndexKey>, Record<string, number>>>>) & ((keys: import("web-utility").TypeKeys<D, import("web-utility").IndexKey>[], filter?: F | undefined, pageSize?: number) => Promise<Partial<Record<import("web-utility").TypeKeys<D, import("web-utility").IndexKey>, Record<string, number>>>>);
|
|
77
84
|
indexOf: ((id: import("mobx-restful").IDType) => number) & ((id: import("mobx-restful").IDType) => number);
|
|
78
|
-
changeOne: ((data: Partial<
|
|
85
|
+
changeOne: ((data: Partial<D>, id: import("mobx-restful").IDType, patch?: boolean) => void) & ((data: Partial<D>, id: import("mobx-restful").IDType, patch?: boolean) => void);
|
|
79
86
|
removeOne: ((id: import("mobx-restful").IDType) => Promise<void>) & ((id: import("mobx-restful").IDType) => Promise<void>);
|
|
80
87
|
deleteOne: ((id: import("mobx-restful").IDType) => Promise<void>) & ((id: import("mobx-restful").IDType) => Promise<void>);
|
|
81
88
|
client: import("mobx-restful/dist/utility").RESTClient;
|
|
82
89
|
baseURI: string;
|
|
83
|
-
indexKey: keyof
|
|
84
|
-
currentOne:
|
|
90
|
+
indexKey: keyof D;
|
|
91
|
+
currentOne: D;
|
|
85
92
|
clearCurrent: (() => void) & (() => void);
|
|
86
93
|
downloading: number;
|
|
87
94
|
uploading: number;
|
|
88
|
-
[Symbol.asyncIterator]: ((filter?: F | undefined, pageSize?: number) => AsyncGenerator<
|
|
95
|
+
[Symbol.asyncIterator]: ((filter?: F | undefined, pageSize?: number) => AsyncGenerator<D, void, unknown>) & ((filter?: F | undefined, pageSize?: number) => AsyncGenerator<D, void, unknown>);
|
|
89
96
|
};
|
|
90
97
|
export type BiSearchFilter<D extends DataObject> = Filter<D> & {
|
|
91
98
|
keywords?: string;
|
|
92
99
|
};
|
|
93
|
-
export declare function BiSearch<D extends DataObject, F extends BiSearchFilter<D> = BiSearchFilter<D>>
|
|
100
|
+
export declare function BiSearch<D extends DataObject, F extends BiSearchFilter<D> = BiSearchFilter<D>, M extends ReturnType<typeof BiDataTable<D, F>> = ReturnType<typeof BiDataTable<D, F>>>(Model: M): abstract new (appId: string, tableId: string) => {
|
|
94
101
|
baseURI: string;
|
|
95
102
|
client: RESTClient;
|
|
96
|
-
loadPage: (pageIndex: number, pageSize: number, filter: F) => Promise<PageData<D>>;
|
|
97
103
|
searchKeys: readonly (keyof TableRecordFields)[];
|
|
98
104
|
keywords: string;
|
|
99
105
|
makeFilter(filter: F): string;
|
|
@@ -102,40 +108,79 @@ export declare function BiSearch<D extends DataObject, F extends BiSearchFilter<
|
|
|
102
108
|
* @deprecated since v2.4.2, use {@link getList} instead
|
|
103
109
|
*/
|
|
104
110
|
getSearchList(keywords: string, pageIndex?: number, pageSize?: number): Promise<D[]>;
|
|
111
|
+
requiredKeys: readonly (keyof D)[];
|
|
112
|
+
sort: Partial<Record<keyof D, "ASC" | "DESC">>;
|
|
113
|
+
queryOptions: BiDataQueryOptions;
|
|
114
|
+
currentViewId?: string;
|
|
115
|
+
keyMap?: Partial<Record<keyof D, string>> | undefined;
|
|
116
|
+
readonly nameMap: any;
|
|
117
|
+
extractFields({ fields, ...meta }: TableRecord<D>): D;
|
|
118
|
+
/**
|
|
119
|
+
* @deprecated
|
|
120
|
+
*/
|
|
121
|
+
normalize: ({ fields, ...meta }: TableRecord<D>) => D;
|
|
122
|
+
/**
|
|
123
|
+
* @protected
|
|
124
|
+
*/
|
|
125
|
+
mapFields({ fields, ...meta }: TableRecord<DataObject>): D;
|
|
126
|
+
wrapFields(fields: F): D;
|
|
127
|
+
/**
|
|
128
|
+
* @see {@link https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/get}
|
|
129
|
+
*/
|
|
130
|
+
getOne(id: string): Promise<D>;
|
|
131
|
+
/**
|
|
132
|
+
* @see {@link https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/create}
|
|
133
|
+
* @see {@link https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/update}
|
|
134
|
+
*/
|
|
135
|
+
updateOne(data: F, id?: string): Promise<D>;
|
|
136
|
+
mapFilter(filter: DataObject): F;
|
|
137
|
+
/**
|
|
138
|
+
* @see {@link https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/list}
|
|
139
|
+
*/
|
|
140
|
+
openStream(filter: F): AsyncGenerator<D, void, unknown>;
|
|
141
|
+
getViewList(viewId: string, pageIndex?: number, pageSize?: number): Promise<D[]>;
|
|
142
|
+
getViewAll(viewId: string, pageSize?: number): Promise<D[]>;
|
|
143
|
+
stream?: AsyncGenerator<D, void, any> | undefined;
|
|
144
|
+
clearList: (() => void) & (() => void);
|
|
145
|
+
clear: (() => void) & (() => void);
|
|
146
|
+
restoreList: (({ filter, pageIndex, pageSize, allItems, totalCount }?: Partial<Pick<ListModel<D, Partial<import("mobx-restful").NewData<D>>>, "filter" | "pageIndex" | "pageSize" | "allItems" | "totalCount">> | undefined) => Promise<void>) & (({ pageIndex, pageSize, allItems, totalCount }?: Partial<Pick<ListModel<D, Partial<import("mobx-restful").NewData<D>>>, "pageIndex" | "pageSize" | "allItems" | "totalCount">> | undefined) => void);
|
|
147
|
+
loadStream(filter: F, newCount: number): Promise<D[]>;
|
|
148
|
+
loadPage: ((pageIndex: number, pageSize: number, filter: F) => Promise<{
|
|
149
|
+
pageData: D[];
|
|
150
|
+
totalCount: number;
|
|
151
|
+
}>) & ((pageIndex: number, pageSize: number, filter: F) => Promise<PageData<D>>);
|
|
105
152
|
pageIndex: number;
|
|
106
153
|
pageSize: number;
|
|
107
154
|
filter: F;
|
|
108
|
-
totalCount: number
|
|
155
|
+
totalCount: number;
|
|
109
156
|
pageList: D[][];
|
|
110
157
|
readonly currentPage: D[];
|
|
111
158
|
readonly pageCount: number;
|
|
112
159
|
readonly allItems: D[];
|
|
113
160
|
readonly noMore: boolean;
|
|
114
161
|
statistic: Partial<Record<import("web-utility").TypeKeys<D, import("web-utility").IndexKey>, Record<string, number>>>;
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
162
|
+
turnTo: ((pageIndex: number, pageSize?: number) => ListModel<D, F>) & ((pageIndex: number, pageSize?: number) => ListModel<D, F>);
|
|
163
|
+
loadNewPage: ((pageIndex: number, pageSize: number, filter: F) => Promise<{
|
|
164
|
+
pageData: D[];
|
|
165
|
+
totalCount: number;
|
|
166
|
+
}>) & ((pageIndex: number, pageSize: number, filter: F) => Promise<{
|
|
120
167
|
pageData: D[];
|
|
121
168
|
totalCount: number;
|
|
122
|
-
}
|
|
123
|
-
refreshList()
|
|
124
|
-
getAllInStream(filter?: F | undefined, pageSize?: number)
|
|
125
|
-
getAll(filter?: F | undefined, pageSize?: number)
|
|
126
|
-
countAll(keys: import("web-utility").TypeKeys<D, import("web-utility").IndexKey>[], filter?: F | undefined, pageSize?: number): Promise<Partial<Record<import("web-utility").TypeKeys<D, import("web-utility").IndexKey>, Record<string, number
|
|
127
|
-
indexOf(id: import("mobx-restful").IDType): number;
|
|
128
|
-
changeOne(data: Partial<D>, id: import("mobx-restful").IDType, patch?: boolean): void;
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
deleteOne(id: import("mobx-restful").IDType): Promise<void>;
|
|
132
|
-
[Symbol.asyncIterator]: (filter?: F | undefined, pageSize?: number) => AsyncGenerator<D, void, unknown>;
|
|
169
|
+
}>);
|
|
170
|
+
refreshList: (() => Promise<D[]>) & (() => Promise<D[]>);
|
|
171
|
+
getAllInStream: ((filter?: F | undefined, pageSize?: number) => AsyncGenerator<D, void, unknown>) & ((filter?: F | undefined, pageSize?: number) => AsyncGenerator<D, void, unknown>);
|
|
172
|
+
getAll: ((filter?: F | undefined, pageSize?: number) => Promise<D[]>) & ((filter?: F | undefined, pageSize?: number) => Promise<D[]>);
|
|
173
|
+
countAll: ((keys: import("web-utility").TypeKeys<D, import("web-utility").IndexKey>[], filter?: F | undefined, pageSize?: number) => Promise<Partial<Record<import("web-utility").TypeKeys<D, import("web-utility").IndexKey>, Record<string, number>>>>) & ((keys: import("web-utility").TypeKeys<D, import("web-utility").IndexKey>[], filter?: F | undefined, pageSize?: number) => Promise<Partial<Record<import("web-utility").TypeKeys<D, import("web-utility").IndexKey>, Record<string, number>>>>);
|
|
174
|
+
indexOf: ((id: import("mobx-restful").IDType) => number) & ((id: import("mobx-restful").IDType) => number);
|
|
175
|
+
changeOne: ((data: Partial<D>, id: import("mobx-restful").IDType, patch?: boolean) => void) & ((data: Partial<D>, id: import("mobx-restful").IDType, patch?: boolean) => void);
|
|
176
|
+
removeOne: ((id: import("mobx-restful").IDType) => Promise<void>) & ((id: import("mobx-restful").IDType) => Promise<void>);
|
|
177
|
+
deleteOne: ((id: import("mobx-restful").IDType) => Promise<void>) & ((id: import("mobx-restful").IDType) => Promise<void>);
|
|
133
178
|
indexKey: keyof D;
|
|
134
179
|
currentOne: D;
|
|
135
|
-
clearCurrent()
|
|
136
|
-
getOne(id: import("mobx-restful").IDType): Promise<D>;
|
|
180
|
+
clearCurrent: (() => void) & (() => void);
|
|
137
181
|
downloading: number;
|
|
138
182
|
uploading: number;
|
|
183
|
+
[Symbol.asyncIterator]: ((filter?: F | undefined, pageSize?: number) => AsyncGenerator<D, void, unknown>) & ((filter?: F | undefined, pageSize?: number) => AsyncGenerator<D, void, unknown>);
|
|
139
184
|
};
|
|
140
185
|
interface BiSearchModel extends InstanceType<ReturnType<typeof BiSearch<TableRecordFields, any>>> {
|
|
141
186
|
}
|
|
@@ -202,11 +247,17 @@ export declare function BiTable(): abstract new (id: string) => {
|
|
|
202
247
|
sort: Partial<Record<keyof T, "ASC" | "DESC">>;
|
|
203
248
|
queryOptions: BiDataQueryOptions;
|
|
204
249
|
currentViewId?: string;
|
|
250
|
+
keyMap?: Partial<Record<keyof T, string>> | undefined;
|
|
251
|
+
readonly nameMap: any;
|
|
205
252
|
extractFields({ fields, ...meta }: TableRecord<T>): T;
|
|
206
253
|
/**
|
|
207
254
|
* @deprecated
|
|
208
255
|
*/
|
|
209
256
|
normalize: ({ fields, ...meta }: TableRecord<T>) => T;
|
|
257
|
+
/**
|
|
258
|
+
* @protected
|
|
259
|
+
*/
|
|
260
|
+
mapFields({ fields, ...meta }: TableRecord<DataObject>): T;
|
|
210
261
|
wrapFields(fields: F): T;
|
|
211
262
|
/**
|
|
212
263
|
* @see {@link https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/get}
|
|
@@ -217,6 +268,7 @@ export declare function BiTable(): abstract new (id: string) => {
|
|
|
217
268
|
* @see {@link https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/update}
|
|
218
269
|
*/
|
|
219
270
|
updateOne(data: F, id?: string): Promise<T>;
|
|
271
|
+
mapFilter(filter: DataObject): F;
|
|
220
272
|
makeFilter(filter: F): string;
|
|
221
273
|
/**
|
|
222
274
|
* @see {@link https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/list}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { DataObject } from 'mobx-restful';
|
|
2
2
|
import { TableCellLink, TableCellLocation, TableCellRelation, TableCellText } from './type';
|
|
3
|
+
export declare const mapKeys: <I extends DataObject, O extends DataObject>(data: I, map: Partial<Record<keyof I, PropertyKey>>) => O;
|
|
3
4
|
export type FilterOperator = '<' | '<=' | '=' | '!=' | '=>' | '>' | 'contains';
|
|
4
5
|
/**
|
|
5
6
|
* @see https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/filter
|
|
@@ -6,4 +6,4 @@ export declare function registerBlocks<T extends Block<any, any, any>>(blocks: T
|
|
|
6
6
|
export declare const ChildrenRenderer: FC<{
|
|
7
7
|
children?: string[];
|
|
8
8
|
}>;
|
|
9
|
-
export declare function renderBlocks(blocks: Block<any, any, any>[]): import("react
|
|
9
|
+
export declare function renderBlocks(blocks: Block<any, any, any>[]): import("react").JSX.Element;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseModel, RESTClient } from 'mobx-restful';
|
|
2
|
-
import { TaxiInvoice, TrainInvoice, VatInvoice, VehicleInvoice } from './type';
|
|
2
|
+
import { BankCardEntity, Contract, Resume, TaxiInvoice, TrainInvoice, VatInvoice, VehicleInvoice } from './type';
|
|
3
3
|
export * from './type';
|
|
4
4
|
export declare abstract class DocumentAIModel extends BaseModel {
|
|
5
5
|
baseURI: string;
|
|
@@ -28,4 +28,20 @@ export declare abstract class DocumentAIModel extends BaseModel {
|
|
|
28
28
|
recognizeVehicleInvoice(file: File): Promise<{
|
|
29
29
|
entities: VehicleInvoice[];
|
|
30
30
|
}>;
|
|
31
|
+
/**
|
|
32
|
+
* @see {@link https://open.feishu.cn/document/server-docs/ai/optical_char_recognition-v1/basic_recognize}
|
|
33
|
+
*/
|
|
34
|
+
recognizeText(image: File): Promise<string[]>;
|
|
35
|
+
/**
|
|
36
|
+
* @see {@link https://open.feishu.cn/document/ai/document_ai-v1/bank_card/recognize}
|
|
37
|
+
*/
|
|
38
|
+
recognizeBankCard(file: File): Promise<BankCardEntity[]>;
|
|
39
|
+
/**
|
|
40
|
+
* @see {@link https://open.feishu.cn/document/ai/document_ai-v1/resume/parse}
|
|
41
|
+
*/
|
|
42
|
+
parseResume(file: File): Promise<Resume[]>;
|
|
43
|
+
/**
|
|
44
|
+
* @see {@link https://open.feishu.cn/document/server-docs/ai/document_ai-v1/contract/field_extraction}
|
|
45
|
+
*/
|
|
46
|
+
extractContract(file: File, ocr_mode?: 'unused' | 'force' | 'auto', pdf_page_limit?: number): Promise<Contract>;
|
|
31
47
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Gender } from '../User/type';
|
|
1
2
|
export type InvoiceEntityType = `invoice_${'code' | 'no' | 'special_seal'}` | `seller_${'name' | 'taxpayer_no'}_in_seal`;
|
|
2
3
|
export type TrafficInvoiceEntityType = 'total_amount' | 'price';
|
|
3
4
|
export interface VatInvoice {
|
|
@@ -17,3 +18,83 @@ export interface VehicleInvoice {
|
|
|
17
18
|
type: 'date' | `invoice_${'code' | 'num'}` | `print_${'code' | 'num'}` | `buyer_${'name' | 'id'}` | `saler_${'name' | 'id' | 'addr'}` | 'vehicle_type' | 'product_model' | `${'certificate' | 'machine' | 'engine'}_num` | 'vin' | `tax${'' | '_rate'}` | 'price' | `total_price${'' | '_little'}`;
|
|
18
19
|
value: string;
|
|
19
20
|
}
|
|
21
|
+
export interface BankCardEntity {
|
|
22
|
+
type: 'card_number' | 'date_of_expiry';
|
|
23
|
+
value: string;
|
|
24
|
+
}
|
|
25
|
+
export type ResumePeriod = Record<`${'start' | 'end'}_${'date' | 'time'}`, string>;
|
|
26
|
+
export declare enum EducationQualification {
|
|
27
|
+
PrimarySchool = 1,
|
|
28
|
+
JuniorHighSchool = 2,
|
|
29
|
+
VocationalHighSchool = 3,
|
|
30
|
+
HighSchool = 4,
|
|
31
|
+
AssociateDegree = 5,
|
|
32
|
+
BachelorDegree = 6,
|
|
33
|
+
MasterDegree = 7,
|
|
34
|
+
Doctorate = 8,
|
|
35
|
+
Other = 9
|
|
36
|
+
}
|
|
37
|
+
export interface ResumeEducation extends ResumePeriod, Record<'school' | 'major' | 'degree', string> {
|
|
38
|
+
qualification: EducationQualification;
|
|
39
|
+
}
|
|
40
|
+
export declare enum CareerType {
|
|
41
|
+
Internship = 1,
|
|
42
|
+
FullTime = 2
|
|
43
|
+
}
|
|
44
|
+
export interface ResumeCareer extends ResumePeriod, Record<'company' | 'title' | 'type_str' | 'job_description', string> {
|
|
45
|
+
type: CareerType;
|
|
46
|
+
}
|
|
47
|
+
export type ResumeProject = ResumePeriod & Record<'name' | 'title' | 'description', string>;
|
|
48
|
+
export interface ResumeLanguage {
|
|
49
|
+
level: number;
|
|
50
|
+
description: string;
|
|
51
|
+
}
|
|
52
|
+
export type ResumeAward = Record<'award' | 'date' | 'description', string>;
|
|
53
|
+
export type ResumeCertificate = Record<'name' | 'desc', string>;
|
|
54
|
+
export type ResumeCompetition = ResumeCertificate;
|
|
55
|
+
export interface Resume extends Record<'file_md5' | `${'' | 'new_'}content` | 'name' | 'email' | 'mobile' | 'country_code' | 'date_of_birth' | `${'current' | 'home'}_location` | 'self_evaluation', string>, Record<`willing_${'positions' | 'locations'}` | 'urls' | 'social_links', string[]> {
|
|
56
|
+
mobile_is_virtual: boolean;
|
|
57
|
+
educations: ResumeEducation[];
|
|
58
|
+
careers: ResumeCareer[];
|
|
59
|
+
projects: ResumeProject[];
|
|
60
|
+
work_year: number | null;
|
|
61
|
+
gender: Gender;
|
|
62
|
+
languages: ResumeLanguage[];
|
|
63
|
+
awards: ResumeAward[];
|
|
64
|
+
certificates: ResumeCertificate[];
|
|
65
|
+
competitions: ResumeCompetition[];
|
|
66
|
+
}
|
|
67
|
+
export interface ContractPrice {
|
|
68
|
+
contract_price: number;
|
|
69
|
+
contract_price_original: string;
|
|
70
|
+
text: string;
|
|
71
|
+
}
|
|
72
|
+
export type ContractInitialTerm = Record<`initial_${'time' | 'unit'}`, string>;
|
|
73
|
+
export interface ContractTime extends Record<`${'' | 'original_'}time_${'start' | 'end'}` | `text_${'start' | 'end' | 'initial_term'}`, string> {
|
|
74
|
+
initial_term: ContractInitialTerm;
|
|
75
|
+
}
|
|
76
|
+
export interface ContractCopy extends Record<'original_copy' | 'key' | 'text', string> {
|
|
77
|
+
copy_num: number;
|
|
78
|
+
}
|
|
79
|
+
export type ContractCurrency = Record<`currency_${'name' | 'text'}`, string>;
|
|
80
|
+
export type ContractBodyType = 'buy' | 'sell' | 'third';
|
|
81
|
+
export type ContractContact = Record<'contacts' | 'id_number' | 'phone' | 'email' | 'address', string>;
|
|
82
|
+
export type ContractBodyEntity = ContractContact & Record<'legal_representative' | 'party', string>;
|
|
83
|
+
export interface ContractBodyInfo {
|
|
84
|
+
body_type: ContractBodyType;
|
|
85
|
+
value: ContractBodyEntity;
|
|
86
|
+
}
|
|
87
|
+
export type ContractBankType = `${'buy' | 'sell' | 'third' | 'uncertain'}_bank`;
|
|
88
|
+
export type ContractBankEntity = ContractContact & Record<'bank_name' | `account_${'name' | 'number'}` | 'tax_number', string>;
|
|
89
|
+
export interface ContractBankInfo {
|
|
90
|
+
bank_type: ContractBankType;
|
|
91
|
+
value: ContractBankEntity;
|
|
92
|
+
}
|
|
93
|
+
export interface Contract extends Record<'file_id' | 'header', string> {
|
|
94
|
+
price: ContractPrice;
|
|
95
|
+
time: ContractTime;
|
|
96
|
+
copy: ContractCopy;
|
|
97
|
+
currency: ContractCurrency;
|
|
98
|
+
body_info: ContractBodyInfo[];
|
|
99
|
+
bank_info: ContractBankInfo[];
|
|
100
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mobx-lark",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.9.0",
|
|
4
4
|
"license": "LGPL-3.0",
|
|
5
5
|
"author": "shiy2008@gmail.com",
|
|
6
6
|
"description": "Unofficial TypeScript SDK for FeiShu/Lark API, which is based on MobX-RESTful.",
|
|
@@ -25,14 +25,14 @@
|
|
|
25
25
|
"url": "https://github.com/idea2app/MobX-Lark/issues"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@swc/helpers": "^0.5.
|
|
29
|
-
"@types/react": "^19.2.
|
|
28
|
+
"@swc/helpers": "^0.5.23",
|
|
29
|
+
"@types/react": "^19.2.17",
|
|
30
30
|
"koajax": "^3.3.0",
|
|
31
31
|
"lodash.memoize": "^4.1.2",
|
|
32
|
-
"mobx": "^6.
|
|
32
|
+
"mobx": "^6.16.1",
|
|
33
33
|
"mobx-restful": "^2.1.4",
|
|
34
34
|
"regenerator-runtime": "^0.14.1",
|
|
35
|
-
"web-utility": "^4.6.
|
|
35
|
+
"web-utility": "^4.6.6"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
38
|
"react": ">=16"
|
|
@@ -42,31 +42,23 @@
|
|
|
42
42
|
"@parcel/transformer-typescript-tsc": "~2.16.4",
|
|
43
43
|
"@types/fs-extra": "^11.0.4",
|
|
44
44
|
"@types/lodash.memoize": "^4.1.9",
|
|
45
|
-
"@types/node": "^24.
|
|
45
|
+
"@types/node": "^24.13.2",
|
|
46
46
|
"@types/react-dom": "^19.2.3",
|
|
47
47
|
"@types/turndown": "^5.0.6",
|
|
48
|
-
"dotenv": "^17.
|
|
49
|
-
"fs-extra": "^11.3.
|
|
48
|
+
"dotenv": "^17.4.2",
|
|
49
|
+
"fs-extra": "^11.3.5",
|
|
50
50
|
"husky": "^9.1.7",
|
|
51
|
-
"lint-staged": "^
|
|
51
|
+
"lint-staged": "^17.0.7",
|
|
52
52
|
"parcel": "~2.16.4",
|
|
53
|
-
"prettier": "^3.8.
|
|
54
|
-
"react": "^19.2.
|
|
55
|
-
"react-dom": "^19.2.
|
|
53
|
+
"prettier": "^3.8.4",
|
|
54
|
+
"react": "^19.2.7",
|
|
55
|
+
"react-dom": "^19.2.7",
|
|
56
56
|
"ts-node": "^10.9.2",
|
|
57
|
-
"turndown": "^7.2.
|
|
58
|
-
"typedoc": "^0.28.
|
|
57
|
+
"turndown": "^7.2.4",
|
|
58
|
+
"typedoc": "^0.28.19",
|
|
59
59
|
"typedoc-plugin-mdn-links": "^5.1.1",
|
|
60
60
|
"typescript": "~5.8.3"
|
|
61
61
|
},
|
|
62
|
-
"pnpm": {
|
|
63
|
-
"onlyBuiltDependencies": [
|
|
64
|
-
"@parcel/watcher",
|
|
65
|
-
"@swc/core",
|
|
66
|
-
"lmdb",
|
|
67
|
-
"msgpackr-extract"
|
|
68
|
-
]
|
|
69
|
-
},
|
|
70
62
|
"prettier": {
|
|
71
63
|
"singleQuote": true,
|
|
72
64
|
"trailingComma": "none",
|
package/src/Lark.ts
CHANGED
|
@@ -39,7 +39,7 @@ export interface LarkAppClientOption extends LarkAppBaseOption {
|
|
|
39
39
|
accessToken: string;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
export
|
|
42
|
+
export type LarkAppOption = LarkAppServerOption & LarkAppClientOption;
|
|
43
43
|
|
|
44
44
|
export class LarkApp implements LarkAppOption {
|
|
45
45
|
host = 'https://open.feishu.cn/open-apis/';
|