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.
@@ -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<T extends DataObject, F extends Filter<T> = Filter<T>>(Base?: typeof ListModel): abstract new (appId: string, tableId: string) => {
19
- requiredKeys: readonly (keyof T)[];
20
- sort: Partial<Record<keyof T, "ASC" | "DESC">>;
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
- extractFields({ fields, ...meta }: TableRecord<T>): T;
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<T>) => T;
28
- wrapFields(fields: F): T;
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<T>;
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<T>;
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<T, void, unknown>;
43
- getViewList(viewId: string, pageIndex?: number, pageSize?: number): Promise<T[]>;
44
- getViewAll(viewId: string, pageSize?: number): Promise<T[]>;
45
- stream?: AsyncGenerator<T, void, any> | undefined;
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<T, Partial<import("mobx-restful").NewData<T>>>, "filter" | "pageIndex" | "pageSize" | "allItems" | "totalCount">> | undefined) => Promise<void>) & (({ pageIndex, pageSize, allItems, totalCount }?: Partial<Pick<ListModel<T, Partial<import("mobx-restful").NewData<T>>>, "pageIndex" | "pageSize" | "allItems" | "totalCount">> | undefined) => void);
49
- loadStream(filter: F, newCount: number): Promise<T[]>;
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: T[];
58
+ pageData: D[];
52
59
  totalCount: number;
53
- }>) & ((pageIndex: number, pageSize: number, filter: F) => Promise<PageData<T>>);
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: T[][];
59
- readonly currentPage: T[];
65
+ pageList: D[][];
66
+ readonly currentPage: D[];
60
67
  readonly pageCount: number;
61
- readonly allItems: T[];
68
+ readonly allItems: D[];
62
69
  readonly noMore: boolean;
63
- statistic: Partial<Record<import("web-utility").TypeKeys<T, import("web-utility").IndexKey>, Record<string, number>>>;
64
- turnTo: ((pageIndex: number, pageSize?: number) => ListModel<T, F>) & ((pageIndex: number, pageSize?: number) => ListModel<T, F>);
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: T[];
73
+ pageData: D[];
67
74
  totalCount: number;
68
75
  }>) & ((pageIndex: number, pageSize: number, filter: F) => Promise<{
69
- pageData: T[];
76
+ pageData: D[];
70
77
  totalCount: number;
71
78
  }>);
72
- getList: ((filter?: F | undefined, pageIndex?: number, pageSize?: number) => Promise<T[]>) & ((filter?: F | undefined, pageIndex?: number, pageSize?: number) => Promise<T[]>);
73
- refreshList: (() => Promise<T[]>) & (() => Promise<T[]>);
74
- getAllInStream: ((filter?: F | undefined, pageSize?: number) => AsyncGenerator<T, void, unknown>) & ((filter?: F | undefined, pageSize?: number) => AsyncGenerator<T, void, unknown>);
75
- getAll: ((filter?: F | undefined, pageSize?: number) => Promise<T[]>) & ((filter?: F | undefined, pageSize?: number) => Promise<T[]>);
76
- countAll: ((keys: import("web-utility").TypeKeys<T, import("web-utility").IndexKey>[], filter?: F | undefined, pageSize?: number) => Promise<Partial<Record<import("web-utility").TypeKeys<T, import("web-utility").IndexKey>, Record<string, number>>>>) & ((keys: import("web-utility").TypeKeys<T, import("web-utility").IndexKey>[], filter?: F | undefined, pageSize?: number) => Promise<Partial<Record<import("web-utility").TypeKeys<T, import("web-utility").IndexKey>, Record<string, number>>>>);
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<T>, id: import("mobx-restful").IDType, patch?: boolean) => void) & ((data: Partial<T>, id: import("mobx-restful").IDType, patch?: boolean) => void);
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 T;
84
- currentOne: T;
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<T, void, unknown>) & ((filter?: F | undefined, pageSize?: number) => AsyncGenerator<T, void, unknown>);
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>>(Model: Constructor<ListModel<D, F>>): abstract new (...args: any[]) => {
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 | undefined;
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
- clearList(): void;
116
- clear(): void;
117
- restoreList({ pageIndex, pageSize, allItems, totalCount }?: Partial<Pick<ListModel<D, Partial<import("mobx-restful").NewData<D>>>, "pageIndex" | "pageSize" | "allItems" | "totalCount">> | undefined): void;
118
- turnTo(pageIndex: number, pageSize?: number): ListModel<D, F>;
119
- loadNewPage(pageIndex: number, pageSize: number, filter: F): Promise<{
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(): Promise<D[]>;
124
- getAllInStream(filter?: F | undefined, pageSize?: number): AsyncGenerator<D, void, unknown>;
125
- getAll(filter?: F | undefined, pageSize?: number): Promise<D[]>;
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
- updateOne(data: Partial<import("mobx-restful").NewData<D>>, id?: import("mobx-restful").IDType): Promise<D>;
130
- removeOne(id: import("mobx-restful").IDType): Promise<void>;
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(): void;
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/jsx-runtime").JSX.Element;
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.8.0",
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.20",
29
- "@types/react": "^19.2.14",
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.15.0",
32
+ "mobx": "^6.16.1",
33
33
  "mobx-restful": "^2.1.4",
34
34
  "regenerator-runtime": "^0.14.1",
35
- "web-utility": "^4.6.4"
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.12.0",
45
+ "@types/node": "^24.13.2",
46
46
  "@types/react-dom": "^19.2.3",
47
47
  "@types/turndown": "^5.0.6",
48
- "dotenv": "^17.3.1",
49
- "fs-extra": "^11.3.4",
48
+ "dotenv": "^17.4.2",
49
+ "fs-extra": "^11.3.5",
50
50
  "husky": "^9.1.7",
51
- "lint-staged": "^16.4.0",
51
+ "lint-staged": "^17.0.7",
52
52
  "parcel": "~2.16.4",
53
- "prettier": "^3.8.1",
54
- "react": "^19.2.4",
55
- "react-dom": "^19.2.4",
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.2",
58
- "typedoc": "^0.28.18",
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",
@@ -0,0 +1,9 @@
1
+ packages:
2
+ - .
3
+ autoInstallPeers: false
4
+ allowBuilds:
5
+ '@parcel/watcher': true
6
+ '@swc/core': true
7
+ core-js: true
8
+ lmdb: true
9
+ msgpackr-extract: true
package/src/Lark.ts CHANGED
@@ -39,7 +39,7 @@ export interface LarkAppClientOption extends LarkAppBaseOption {
39
39
  accessToken: string;
40
40
  }
41
41
 
42
- export interface LarkAppOption extends LarkAppServerOption, LarkAppClientOption {}
42
+ export type LarkAppOption = LarkAppServerOption & LarkAppClientOption;
43
43
 
44
44
  export class LarkApp implements LarkAppOption {
45
45
  host = 'https://open.feishu.cn/open-apis/';