apaas-oapi-client 0.1.30 → 0.1.32

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/.env ADDED
@@ -0,0 +1,5 @@
1
+ CLIENT_APP_ID=c_fc919c38b7ab41a5ab36
2
+ CLIENT_APP_SECRET=cad5106b819a43f286fb46a51b6ea2c8
3
+
4
+ LARK_APP_ID=cli_a77cb9cd64b81013
5
+ LARK_APP_SECRET=AEq56P8ntETGxNucLHTgbdLR2kNkXRNd
@@ -0,0 +1,513 @@
1
+ import { LoggerLevel } from './logger';
2
+ /**
3
+ * Client 初始化配置
4
+ */
5
+ interface ClientOptions {
6
+ /** 命名空间, 例如 app_xxx */
7
+ namespace: string;
8
+ /** 应用 clientId */
9
+ clientId: string;
10
+ /** 应用 clientSecret */
11
+ clientSecret: string;
12
+ /** 是否禁用 token 缓存, 每次调用强制刷新 token, 默认 false */
13
+ disableTokenCache?: boolean;
14
+ }
15
+ /**
16
+ * aPaaS OpenAPI 客户端
17
+ */
18
+ declare class Client {
19
+ private clientId;
20
+ private clientSecret;
21
+ private namespace;
22
+ private disableTokenCache;
23
+ private accessToken;
24
+ private expireTime;
25
+ private axiosInstance;
26
+ private loggerLevel;
27
+ /**
28
+ * 构造函数
29
+ * @param options ClientOptions
30
+ */
31
+ constructor(options: ClientOptions);
32
+ /**
33
+ * 设置日志等级
34
+ * @param level LoggerLevel
35
+ */
36
+ setLoggerLevel(level: LoggerLevel): void;
37
+ /**
38
+ * 日志打印方法
39
+ * @param level LoggerLevel
40
+ * @param args 打印内容
41
+ */
42
+ private log;
43
+ /**
44
+ * 初始化 client, 自动获取 token
45
+ */
46
+ init(): Promise<void>;
47
+ /**
48
+ * 获取 accessToken
49
+ */
50
+ private getAccessToken;
51
+ /**
52
+ * 确保 token 有效, 若过期则刷新
53
+ */
54
+ private ensureTokenValid;
55
+ /**
56
+ * 获取当前 accessToken
57
+ */
58
+ get token(): string | null;
59
+ /**
60
+ * 获取当前 token 剩余过期时间(单位:秒)
61
+ * @returns 剩余秒数,若无 token 则返回 null
62
+ */
63
+ get tokenExpireTime(): number | null;
64
+ /**
65
+ * 获取当前 namespace
66
+ */
67
+ get currentNamespace(): string;
68
+ /**
69
+ * 对象模块
70
+ */
71
+ object: {
72
+ /**
73
+ * 列出所有对象(数据表)
74
+ * @param params 请求参数 { offset, filter?, limit }
75
+ * @returns 接口返回结果
76
+ */
77
+ list: (params: {
78
+ offset: number;
79
+ filter?: {
80
+ type?: string;
81
+ quickQuery?: string;
82
+ };
83
+ limit: number;
84
+ }) => Promise<any>;
85
+ metadata: {
86
+ /**
87
+ * 获取指定对象下指定字段的元数据
88
+ * @description 查询指定对象下的单个字段元数据
89
+ * @param params 请求参数 { object_name, field_name }
90
+ * @returns 接口返回结果
91
+ */
92
+ field: (params: {
93
+ object_name: string;
94
+ field_name: string;
95
+ }) => Promise<any>;
96
+ /**
97
+ * 获取指定对象的所有字段信息
98
+ * @description 查询指定对象下的所有字段元数据
99
+ * @param params 请求参数 { object_name }
100
+ * @returns 接口返回结果
101
+ */
102
+ fields: (params: {
103
+ object_name: string;
104
+ }) => Promise<any>;
105
+ };
106
+ search: {
107
+ /**
108
+ * 单条记录查询
109
+ * @description 查询指定对象下的单条记录
110
+ * @param params 请求参数
111
+ * @returns 接口返回结果
112
+ */
113
+ record: (params: {
114
+ object_name: string;
115
+ record_id: string;
116
+ select: string[];
117
+ }) => Promise<any>;
118
+ /**
119
+ * 多条记录查询 - 最多传入 100 条
120
+ * @description 查询指定对象下的多条记录
121
+ * @param params 请求参数
122
+ * @returns 接口返回结果
123
+ */
124
+ records: (params: {
125
+ object_name: string;
126
+ data: any;
127
+ }) => Promise<any>;
128
+ /**
129
+ * 查询所有记录 - 支持超过 100 条数据,自动分页查询
130
+ * @description 该方法会自动处理分页,直到没有更多数据为止
131
+ * @param params 请求参数
132
+ * @returns { total, items }
133
+ */
134
+ recordsWithIterator: (params: {
135
+ object_name: string;
136
+ data: any;
137
+ }) => Promise<{
138
+ total: number;
139
+ items: any[];
140
+ }>;
141
+ };
142
+ create: {
143
+ /**
144
+ * 单条记录创建
145
+ * @description 创建单条记录到指定对象中
146
+ * @param params 请求参数 { object_name, record }
147
+ * @returns 接口返回结果
148
+ */
149
+ record: (params: {
150
+ object_name: string;
151
+ record: any;
152
+ }) => Promise<any>;
153
+ /**
154
+ * 批量创建记录 - 最多传入 100 条
155
+ * @description 创建多条记录到指定对象中
156
+ * @param params 请求参数 { object_name, records }
157
+ * @returns 接口返回结果
158
+ */
159
+ records: (params: {
160
+ object_name: string;
161
+ records: any[];
162
+ }) => Promise<any>;
163
+ /**
164
+ * 分批创建所有记录 - 支持超过 100 条数据,自动拆分
165
+ * @description 创建多条记录到指定对象中,超过 100 条数据会自动拆分为多次请求
166
+ * @param params 请求参数 { object_name, records }
167
+ * @returns { total, items }
168
+ */
169
+ recordsWithIterator: (params: {
170
+ object_name: string;
171
+ records: any[];
172
+ }) => Promise<{
173
+ total: number;
174
+ items: any[];
175
+ }>;
176
+ };
177
+ update: {
178
+ /**
179
+ * 单条更新
180
+ * @description 更新指定对象下的单条记录
181
+ * @param params 请求参数
182
+ * @returns 接口返回结果
183
+ */
184
+ record: (params: {
185
+ object_name: string;
186
+ record_id: string;
187
+ record: any;
188
+ }) => Promise<any>;
189
+ /**
190
+ * 多条更新 - 最多传入 100 条
191
+ * @description 更新指定对象下的多条记录
192
+ * @param params 请求参数
193
+ * @returns 接口返回结果
194
+ */
195
+ records: (params: {
196
+ object_name: string;
197
+ records: any[];
198
+ }) => Promise<any>;
199
+ /**
200
+ * 批量更新 - 支持超过 100 条数据,自动拆分
201
+ * @description 更新指定对象下的多条记录,超过 100 条数据会自动拆分为多次请求
202
+ * @param params 请求参数
203
+ * @returns 所有子请求的返回结果数组
204
+ */
205
+ recordsWithIterator: (params: {
206
+ object_name: string;
207
+ records: any[];
208
+ }) => Promise<any[]>;
209
+ };
210
+ delete: {
211
+ /**
212
+ * 单条删除
213
+ * @description 删除指定对象下的单条记录
214
+ * @param params 请求参数
215
+ * @returns 接口返回结果
216
+ */
217
+ record: (params: {
218
+ object_name: string;
219
+ record_id: string;
220
+ }) => Promise<any>;
221
+ /**
222
+ * 多条删除 - 最多传入 100 条
223
+ * @description 删除指定对象下的多条记录
224
+ * @param params 请求参数
225
+ * @returns 接口返回结果
226
+ */
227
+ records: (params: {
228
+ object_name: string;
229
+ ids: string[];
230
+ }) => Promise<any>;
231
+ /**
232
+ * 批量删除
233
+ * @description 删除指定对象下的多条记录,超过 100 条数据会自动拆分为多次请求
234
+ * @param params 请求参数
235
+ * @returns 所有子请求的返回结果数组
236
+ */
237
+ recordsWithIterator: (params: {
238
+ object_name: string;
239
+ ids: string[];
240
+ }) => Promise<any[]>;
241
+ };
242
+ };
243
+ /**
244
+ * 部门 ID 交换模块
245
+ */
246
+ department: {
247
+ /**
248
+ * 单个部门 ID 交换
249
+ * @param params 请求参数
250
+ * @returns 单个部门映射结果
251
+ */
252
+ exchange: (params: {
253
+ department_id_type: "department_id" | "external_department_id" | "external_open_department_id";
254
+ department_id: string;
255
+ }) => Promise<any>;
256
+ /**
257
+ * 批量部门 ID 交换
258
+ * @param params 请求参数
259
+ * @returns 所有子请求的返回结果数组
260
+ */
261
+ batchExchange: (params: {
262
+ department_id_type: "department_id" | "external_department_id" | "external_open_department_id";
263
+ department_ids: string[];
264
+ }) => Promise<any[]>;
265
+ };
266
+ /**
267
+ * 云函数模块
268
+ */
269
+ function: {
270
+ /**
271
+ * 调用云函数
272
+ * @param params 请求参数 { name: string; params: any }
273
+ * @returns 接口返回结果
274
+ */
275
+ invoke: (params: {
276
+ name: string;
277
+ params: any;
278
+ }) => Promise<any>;
279
+ };
280
+ /**
281
+ * 页面模块
282
+ */
283
+ page: {
284
+ /**
285
+ * 获取所有页面
286
+ * @param params 请求参数 { limit: number (max 200), offset: number }
287
+ * @returns 接口返回结果
288
+ */
289
+ list: (params: {
290
+ limit: number;
291
+ offset: number;
292
+ }) => Promise<any>;
293
+ /**
294
+ * 获取所有页面 - 支持自动分页,获取全部数据
295
+ * @description 该方法会自动处理分页,直到获取所有页面数据
296
+ * @param params 请求参数 { limit?: number }
297
+ * @returns { total, items }
298
+ */
299
+ listWithIterator: (params?: {
300
+ limit?: number;
301
+ }) => Promise<{
302
+ total: number;
303
+ items: any[];
304
+ }>;
305
+ /**
306
+ * 获取页面详情
307
+ * @param params 请求参数 { page_id: string }
308
+ * @returns 接口返回结果
309
+ */
310
+ detail: (params: {
311
+ page_id: string;
312
+ }) => Promise<any>;
313
+ /**
314
+ * 获取页面访问地址
315
+ * @param params 请求参数 { page_id: string, pageParams?: any, parentPageParams?: any, navId?: string, tabId?: string }
316
+ * @returns 接口返回结果
317
+ */
318
+ url: (params: {
319
+ page_id: string;
320
+ pageParams?: any;
321
+ parentPageParams?: any;
322
+ navId?: string;
323
+ tabId?: string;
324
+ }) => Promise<any>;
325
+ };
326
+ /**
327
+ * 附件模块
328
+ */
329
+ attachment: {
330
+ /**
331
+ * 文件操作
332
+ */
333
+ file: {
334
+ /**
335
+ * 上传文件
336
+ * @param params 请求参数 { file: any }
337
+ * @returns 接口返回结果
338
+ */
339
+ upload: (params: {
340
+ file: any;
341
+ }) => Promise<any>;
342
+ /**
343
+ * 下载文件
344
+ * @param params 请求参数 { file_id: string }
345
+ * @returns 文件二进制流
346
+ */
347
+ download: (params: {
348
+ file_id: string;
349
+ }) => Promise<any>;
350
+ /**
351
+ * 删除文件
352
+ * @param params 请求参数 { file_id: string }
353
+ * @returns 接口返回结果
354
+ */
355
+ delete: (params: {
356
+ file_id: string;
357
+ }) => Promise<any>;
358
+ };
359
+ /**
360
+ * 头像图片操作
361
+ */
362
+ avatar: {
363
+ /**
364
+ * 上传头像图片
365
+ * @param params 请求参数 { image: any }
366
+ * @returns 接口返回结果
367
+ */
368
+ upload: (params: {
369
+ image: any;
370
+ }) => Promise<any>;
371
+ /**
372
+ * 下载头像图片
373
+ * @param params 请求参数 { image_id: string }
374
+ * @returns 图片二进制流
375
+ */
376
+ download: (params: {
377
+ image_id: string;
378
+ }) => Promise<any>;
379
+ };
380
+ };
381
+ /**
382
+ * 全局数据模块
383
+ */
384
+ global: {
385
+ /**
386
+ * 全局选项
387
+ */
388
+ options: {
389
+ /**
390
+ * 查询全局选项详情
391
+ * @param params 请求参数 { api_name: string }
392
+ * @returns 接口返回结果
393
+ */
394
+ detail: (params: {
395
+ api_name: string;
396
+ }) => Promise<any>;
397
+ /**
398
+ * 查询全局选项列表
399
+ * @param params 请求参数 { limit: number, offset: number, filter?: { quickQuery?: string } }
400
+ * @returns 接口返回结果
401
+ */
402
+ list: (params: {
403
+ limit: number;
404
+ offset: number;
405
+ filter?: {
406
+ quickQuery?: string;
407
+ };
408
+ }) => Promise<any>;
409
+ /**
410
+ * 查询所有全局选项 - 支持自动分页,获取全部数据
411
+ * @description 该方法会自动处理分页,直到获取所有全局选项数据
412
+ * @param params 请求参数 { limit?: number, filter?: { quickQuery?: string } }
413
+ * @returns { total, items }
414
+ */
415
+ listWithIterator: (params?: {
416
+ limit?: number;
417
+ filter?: {
418
+ quickQuery?: string;
419
+ };
420
+ }) => Promise<{
421
+ total: number;
422
+ items: any[];
423
+ }>;
424
+ };
425
+ /**
426
+ * 环境变量
427
+ */
428
+ variables: {
429
+ /**
430
+ * 查询环境变量详情
431
+ * @param params 请求参数 { api_name: string }
432
+ * @returns 接口返回结果
433
+ */
434
+ detail: (params: {
435
+ api_name: string;
436
+ }) => Promise<any>;
437
+ /**
438
+ * 查询环境变量列表
439
+ * @param params 请求参数 { limit: number, offset: number, filter?: { quickQuery?: string } }
440
+ * @returns 接口返回结果
441
+ */
442
+ list: (params: {
443
+ limit: number;
444
+ offset: number;
445
+ filter?: {
446
+ quickQuery?: string;
447
+ };
448
+ }) => Promise<any>;
449
+ /**
450
+ * 查询所有环境变量 - 支持自动分页,获取全部数据
451
+ * @description 该方法会自动处理分页,直到获取所有环境变量数据
452
+ * @param params 请求参数 { limit?: number, filter?: { quickQuery?: string } }
453
+ * @returns { total, items }
454
+ */
455
+ listWithIterator: (params?: {
456
+ limit?: number;
457
+ filter?: {
458
+ quickQuery?: string;
459
+ };
460
+ }) => Promise<{
461
+ total: number;
462
+ items: any[];
463
+ }>;
464
+ };
465
+ };
466
+ /**
467
+ * 自动化流程模块
468
+ */
469
+ automation: {
470
+ /**
471
+ * V1 版本
472
+ */
473
+ v1: {
474
+ /**
475
+ * 执行流程
476
+ * @param params 请求参数 { flow_api_name: string, operator: { _id: number, email: string }, params: any }
477
+ * @returns 接口返回结果
478
+ */
479
+ execute: (params: {
480
+ flow_api_name: string;
481
+ operator: {
482
+ _id: number;
483
+ email: string;
484
+ };
485
+ params: any;
486
+ }) => Promise<any>;
487
+ };
488
+ /**
489
+ * V2 版本
490
+ */
491
+ v2: {
492
+ /**
493
+ * 执行流程
494
+ * @param params 请求参数 { flow_api_name: string, operator: { _id: number, email: string }, params: any, is_resubmit?: boolean, pre_instance_id?: string }
495
+ * @returns 接口返回结果
496
+ */
497
+ execute: (params: {
498
+ flow_api_name: string;
499
+ operator: {
500
+ _id: number;
501
+ email: string;
502
+ };
503
+ params: any;
504
+ is_resubmit?: boolean;
505
+ pre_instance_id?: string;
506
+ }) => Promise<any>;
507
+ };
508
+ };
509
+ }
510
+ export declare const apaas: {
511
+ Client: typeof Client;
512
+ };
513
+ export {};