@plolink/sdk 0.0.4
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 +259 -0
- package/dist/chunk-4H4RACSE.js +335 -0
- package/dist/chunk-4H4RACSE.js.map +1 -0
- package/dist/chunk-IHAAKFEJ.js +219 -0
- package/dist/chunk-IHAAKFEJ.js.map +1 -0
- package/dist/chunk-JR4HYYQI.cjs +221 -0
- package/dist/chunk-JR4HYYQI.cjs.map +1 -0
- package/dist/chunk-MD4O7FWT.js +46 -0
- package/dist/chunk-MD4O7FWT.js.map +1 -0
- package/dist/chunk-NS3DJP2O.cjs +349 -0
- package/dist/chunk-NS3DJP2O.cjs.map +1 -0
- package/dist/chunk-Y3UJVC2L.cjs +48 -0
- package/dist/chunk-Y3UJVC2L.cjs.map +1 -0
- package/dist/client-CAjIQKPm.d.cts +193 -0
- package/dist/client-CwNikk7i.d.ts +193 -0
- package/dist/common/index.cjs +65 -0
- package/dist/common/index.cjs.map +1 -0
- package/dist/common/index.d.cts +422 -0
- package/dist/common/index.d.ts +422 -0
- package/dist/common/index.js +4 -0
- package/dist/common/index.js.map +1 -0
- package/dist/core-77EbLgbp.d.cts +97 -0
- package/dist/core-77EbLgbp.d.ts +97 -0
- package/dist/index.cjs +350 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +98 -0
- package/dist/index.d.ts +98 -0
- package/dist/index.js +306 -0
- package/dist/index.js.map +1 -0
- package/dist/modules/agent/index.cjs +21 -0
- package/dist/modules/agent/index.cjs.map +1 -0
- package/dist/modules/agent/index.d.cts +71 -0
- package/dist/modules/agent/index.d.ts +71 -0
- package/dist/modules/agent/index.js +19 -0
- package/dist/modules/agent/index.js.map +1 -0
- package/dist/modules/billing/index.cjs +413 -0
- package/dist/modules/billing/index.cjs.map +1 -0
- package/dist/modules/billing/index.d.cts +538 -0
- package/dist/modules/billing/index.d.ts +538 -0
- package/dist/modules/billing/index.js +411 -0
- package/dist/modules/billing/index.js.map +1 -0
- package/dist/modules/chat/index.cjs +20 -0
- package/dist/modules/chat/index.cjs.map +1 -0
- package/dist/modules/chat/index.d.cts +68 -0
- package/dist/modules/chat/index.d.ts +68 -0
- package/dist/modules/chat/index.js +18 -0
- package/dist/modules/chat/index.js.map +1 -0
- package/dist/modules/psych/index.cjs +20 -0
- package/dist/modules/psych/index.cjs.map +1 -0
- package/dist/modules/psych/index.d.cts +69 -0
- package/dist/modules/psych/index.d.ts +69 -0
- package/dist/modules/psych/index.js +18 -0
- package/dist/modules/psych/index.js.map +1 -0
- package/dist/modules/rbac/index.cjs +197 -0
- package/dist/modules/rbac/index.cjs.map +1 -0
- package/dist/modules/rbac/index.d.cts +293 -0
- package/dist/modules/rbac/index.d.ts +293 -0
- package/dist/modules/rbac/index.js +195 -0
- package/dist/modules/rbac/index.js.map +1 -0
- package/dist/modules/team/index.cjs +54 -0
- package/dist/modules/team/index.cjs.map +1 -0
- package/dist/modules/team/index.d.cts +91 -0
- package/dist/modules/team/index.d.ts +91 -0
- package/dist/modules/team/index.js +52 -0
- package/dist/modules/team/index.js.map +1 -0
- package/dist/modules/virtual-account/index.cjs +293 -0
- package/dist/modules/virtual-account/index.cjs.map +1 -0
- package/dist/modules/virtual-account/index.d.cts +366 -0
- package/dist/modules/virtual-account/index.d.ts +366 -0
- package/dist/modules/virtual-account/index.js +291 -0
- package/dist/modules/virtual-account/index.js.map +1 -0
- package/dist/poller-BlIRbwL4.d.cts +201 -0
- package/dist/poller-DWKZjuSw.d.ts +201 -0
- package/dist/shared-6ZepUSPW.d.cts +31 -0
- package/dist/shared-6ZepUSPW.d.ts +31 -0
- package/package.json +96 -0
|
@@ -0,0 +1,422 @@
|
|
|
1
|
+
export { P as Poller } from '../poller-DWKZjuSw.js';
|
|
2
|
+
import '../core-77EbLgbp.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* 事件处理函数类型
|
|
6
|
+
*/
|
|
7
|
+
type EventHandler<T = unknown> = (data: T) => void;
|
|
8
|
+
/**
|
|
9
|
+
* 事件发射器基础类
|
|
10
|
+
*
|
|
11
|
+
* @description
|
|
12
|
+
* 提供简单的事件订阅/发布机制,用于业务模块的状态变化通知。
|
|
13
|
+
* 支持类型安全的事件处理,适用于状态变化、进度更新等场景。
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* // 创建事件发射器
|
|
18
|
+
* const emitter = new EventEmitter();
|
|
19
|
+
*
|
|
20
|
+
* // 订阅事件
|
|
21
|
+
* const unsubscribe = emitter.on('status-change', (data) => {
|
|
22
|
+
* console.log('Status changed:', data);
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* // 触发事件
|
|
26
|
+
* emitter.emit('status-change', { status: 'completed' });
|
|
27
|
+
*
|
|
28
|
+
* // 取消订阅
|
|
29
|
+
* unsubscribe();
|
|
30
|
+
*
|
|
31
|
+
* // 一次性事件
|
|
32
|
+
* emitter.once('complete', (data) => {
|
|
33
|
+
* console.log('Completed:', data);
|
|
34
|
+
* });
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
declare class EventEmitter {
|
|
38
|
+
/**
|
|
39
|
+
* 事件处理器映射表
|
|
40
|
+
*/
|
|
41
|
+
private handlers;
|
|
42
|
+
/**
|
|
43
|
+
* 一次性事件处理器集合
|
|
44
|
+
*/
|
|
45
|
+
private onceHandlers;
|
|
46
|
+
/**
|
|
47
|
+
* 订阅事件
|
|
48
|
+
*
|
|
49
|
+
* @param event - 事件名称
|
|
50
|
+
* @param handler - 事件处理函数
|
|
51
|
+
* @returns 取消订阅的函数
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```typescript
|
|
55
|
+
* const unsubscribe = emitter.on('data', (payload) => {
|
|
56
|
+
* console.log('Received:', payload);
|
|
57
|
+
* });
|
|
58
|
+
*
|
|
59
|
+
* // 不再需要时取消订阅
|
|
60
|
+
* unsubscribe();
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
on<T = unknown>(event: string, handler: EventHandler<T>): () => void;
|
|
64
|
+
/**
|
|
65
|
+
* 订阅一次性事件
|
|
66
|
+
*
|
|
67
|
+
* @description
|
|
68
|
+
* 事件处理函数只会执行一次,执行后自动取消订阅。
|
|
69
|
+
*
|
|
70
|
+
* @param event - 事件名称
|
|
71
|
+
* @param handler - 事件处理函数
|
|
72
|
+
* @returns 取消订阅的函数
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```typescript
|
|
76
|
+
* emitter.once('complete', (result) => {
|
|
77
|
+
* console.log('Task completed:', result);
|
|
78
|
+
* });
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
once<T = unknown>(event: string, handler: EventHandler<T>): () => void;
|
|
82
|
+
/**
|
|
83
|
+
* 触发事件
|
|
84
|
+
*
|
|
85
|
+
* @param event - 事件名称
|
|
86
|
+
* @param data - 传递给处理函数的数据
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* ```typescript
|
|
90
|
+
* emitter.emit('status-change', {
|
|
91
|
+
* from: 'pending',
|
|
92
|
+
* to: 'completed'
|
|
93
|
+
* });
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
emit<T = unknown>(event: string, data: T): void;
|
|
97
|
+
/**
|
|
98
|
+
* 取消订阅指定事件的处理器
|
|
99
|
+
*
|
|
100
|
+
* @param event - 事件名称
|
|
101
|
+
* @param handler - 可选,要取消的事件处理函数。如果不提供,则取消所有处理器
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```typescript
|
|
105
|
+
* // 取消所有处理器
|
|
106
|
+
* emitter.off('status-change');
|
|
107
|
+
*
|
|
108
|
+
* // 取消特定处理器
|
|
109
|
+
* const handler = (data) => console.log(data);
|
|
110
|
+
* emitter.on('data', handler);
|
|
111
|
+
* emitter.off('data', handler);
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
off<T = unknown>(event: string, handler?: EventHandler<T>): void;
|
|
115
|
+
/**
|
|
116
|
+
* 清除所有事件处理器
|
|
117
|
+
*
|
|
118
|
+
* @example
|
|
119
|
+
* ```typescript
|
|
120
|
+
* emitter.clear();
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
clear(): void;
|
|
124
|
+
/**
|
|
125
|
+
* 获取指定事件的处理器数量
|
|
126
|
+
*
|
|
127
|
+
* @param event - 事件名称
|
|
128
|
+
* @returns 处理器数量
|
|
129
|
+
*
|
|
130
|
+
* @example
|
|
131
|
+
* ```typescript
|
|
132
|
+
* const count = emitter.listenerCount('status-change');
|
|
133
|
+
* console.log(`${count} listeners registered`);
|
|
134
|
+
* ```
|
|
135
|
+
*/
|
|
136
|
+
listenerCount(event: string): number;
|
|
137
|
+
/**
|
|
138
|
+
* 获取所有已注册的事件名称
|
|
139
|
+
*
|
|
140
|
+
* @returns 事件名称数组
|
|
141
|
+
*
|
|
142
|
+
* @example
|
|
143
|
+
* ```typescript
|
|
144
|
+
* const events = emitter.eventNames();
|
|
145
|
+
* console.log('Registered events:', events);
|
|
146
|
+
* ```
|
|
147
|
+
*/
|
|
148
|
+
eventNames(): string[];
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* 类型安全的事件发射器
|
|
152
|
+
*
|
|
153
|
+
* @description
|
|
154
|
+
* 提供类型约束的事件发射器,确保事件名称和数据类型的正确性。
|
|
155
|
+
*
|
|
156
|
+
* @template TEvents - 事件映射类型
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* ```typescript
|
|
160
|
+
* // 定义事件类型
|
|
161
|
+
* interface TaskEvents {
|
|
162
|
+
* 'status-change': { status: string };
|
|
163
|
+
* 'progress': { percent: number };
|
|
164
|
+
* 'error': { message: string };
|
|
165
|
+
* }
|
|
166
|
+
*
|
|
167
|
+
* // 创建类型安全的发射器
|
|
168
|
+
* const emitter = new TypedEventEmitter<TaskEvents>();
|
|
169
|
+
*
|
|
170
|
+
* // TypeScript 会检查事件名称和数据类型
|
|
171
|
+
* emitter.on('status-change', (data) => {
|
|
172
|
+
* console.log(data.status); // TypeScript 知道 data 有 status 属性
|
|
173
|
+
* });
|
|
174
|
+
*
|
|
175
|
+
* emitter.emit('status-change', { status: 'completed' }); // OK
|
|
176
|
+
* emitter.emit('status-change', { wrong: 'data' }); // TypeScript 报错
|
|
177
|
+
* ```
|
|
178
|
+
*/
|
|
179
|
+
declare class TypedEventEmitter<TEvents extends Record<string, unknown>> {
|
|
180
|
+
private emitter;
|
|
181
|
+
/**
|
|
182
|
+
* 订阅事件(类型安全)
|
|
183
|
+
*/
|
|
184
|
+
on<K extends keyof TEvents>(event: K, handler: EventHandler<TEvents[K]>): () => void;
|
|
185
|
+
/**
|
|
186
|
+
* 订阅一次性事件(类型安全)
|
|
187
|
+
*/
|
|
188
|
+
once<K extends keyof TEvents>(event: K, handler: EventHandler<TEvents[K]>): () => void;
|
|
189
|
+
/**
|
|
190
|
+
* 触发事件(类型安全)
|
|
191
|
+
*/
|
|
192
|
+
emit<K extends keyof TEvents>(event: K, data: TEvents[K]): void;
|
|
193
|
+
/**
|
|
194
|
+
* 取消订阅(类型安全)
|
|
195
|
+
*/
|
|
196
|
+
off<K extends keyof TEvents>(event: K, handler?: EventHandler<TEvents[K]>): void;
|
|
197
|
+
/**
|
|
198
|
+
* 清除所有事件处理器
|
|
199
|
+
*/
|
|
200
|
+
clear(): void;
|
|
201
|
+
/**
|
|
202
|
+
* 获取指定事件的处理器数量
|
|
203
|
+
*/
|
|
204
|
+
listenerCount<K extends keyof TEvents>(event: K): number;
|
|
205
|
+
/**
|
|
206
|
+
* 获取所有已注册的事件名称
|
|
207
|
+
*/
|
|
208
|
+
eventNames(): Array<keyof TEvents>;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* 环境适配工具
|
|
213
|
+
*
|
|
214
|
+
* @description
|
|
215
|
+
* 提供跨环境(Node.js / 浏览器)的工具函数和类型检测。
|
|
216
|
+
* 用于处理文件上传、网络请求等在不同环境下有差异的功能。
|
|
217
|
+
*/
|
|
218
|
+
/**
|
|
219
|
+
* 检测当前是否运行在 Node.js 环境
|
|
220
|
+
*
|
|
221
|
+
* @returns 如果在 Node.js 环境返回 true,否则返回 false
|
|
222
|
+
*
|
|
223
|
+
* @example
|
|
224
|
+
* ```typescript
|
|
225
|
+
* if (isNode) {
|
|
226
|
+
* // 使用 Node.js 特有的 API
|
|
227
|
+
* const fs = require('fs');
|
|
228
|
+
* }
|
|
229
|
+
* ```
|
|
230
|
+
*/
|
|
231
|
+
declare const isNode: boolean;
|
|
232
|
+
/**
|
|
233
|
+
* 检测当前是否运行在浏览器环境
|
|
234
|
+
*
|
|
235
|
+
* @returns 如果在浏览器环境返回 true,否则返回 false
|
|
236
|
+
*
|
|
237
|
+
* @example
|
|
238
|
+
* ```typescript
|
|
239
|
+
* if (isBrowser) {
|
|
240
|
+
* // 使用浏览器 API
|
|
241
|
+
* const file = new File(['content'], 'file.txt');
|
|
242
|
+
* }
|
|
243
|
+
* ```
|
|
244
|
+
*/
|
|
245
|
+
declare const isBrowser: boolean;
|
|
246
|
+
/**
|
|
247
|
+
* 检测当前是否支持 Web Worker
|
|
248
|
+
*
|
|
249
|
+
* @returns 如果支持 Web Worker 返回 true,否则返回 false
|
|
250
|
+
*/
|
|
251
|
+
declare const isWebWorker: boolean;
|
|
252
|
+
/**
|
|
253
|
+
* 获取运行环境类型
|
|
254
|
+
*
|
|
255
|
+
* @returns 环境类型字符串
|
|
256
|
+
*
|
|
257
|
+
* @example
|
|
258
|
+
* ```typescript
|
|
259
|
+
* const env = getEnvironment();
|
|
260
|
+
* console.log(`Running in ${env}`); // "node" 或 "browser" 或 "worker"
|
|
261
|
+
* ```
|
|
262
|
+
*/
|
|
263
|
+
declare function getEnvironment(): 'node' | 'browser' | 'worker' | 'unknown';
|
|
264
|
+
/**
|
|
265
|
+
* 文件类型联合类型
|
|
266
|
+
* 在 Node.js 中是 Buffer,在浏览器中是 Blob 或 File
|
|
267
|
+
*/
|
|
268
|
+
type FileInput = Buffer | Blob | File;
|
|
269
|
+
/**
|
|
270
|
+
* 检测是否为有效的文件输入
|
|
271
|
+
*
|
|
272
|
+
* @param input - 待检测的输入
|
|
273
|
+
* @returns 如果是有效的文件输入返回 true
|
|
274
|
+
*
|
|
275
|
+
* @example
|
|
276
|
+
* ```typescript
|
|
277
|
+
* const file = new File(['content'], 'test.txt');
|
|
278
|
+
* if (isValidFileInput(file)) {
|
|
279
|
+
* // 处理文件
|
|
280
|
+
* }
|
|
281
|
+
* ```
|
|
282
|
+
*/
|
|
283
|
+
declare function isValidFileInput(input: unknown): input is FileInput;
|
|
284
|
+
/**
|
|
285
|
+
* 获取文件输入的大小(字节)
|
|
286
|
+
*
|
|
287
|
+
* @param input - 文件输入
|
|
288
|
+
* @returns 文件大小(字节)
|
|
289
|
+
* @throws {Error} 如果输入类型不支持
|
|
290
|
+
*
|
|
291
|
+
* @example
|
|
292
|
+
* ```typescript
|
|
293
|
+
* const file = new File(['content'], 'test.txt');
|
|
294
|
+
* const size = getFileSize(file);
|
|
295
|
+
* console.log(`File size: ${size} bytes`);
|
|
296
|
+
* ```
|
|
297
|
+
*/
|
|
298
|
+
declare function getFileSize(input: FileInput): number;
|
|
299
|
+
/**
|
|
300
|
+
* 获取文件名(仅适用于 File 对象)
|
|
301
|
+
*
|
|
302
|
+
* @param input - 文件输入
|
|
303
|
+
* @returns 文件名,如果无法获取则返回 undefined
|
|
304
|
+
*
|
|
305
|
+
* @example
|
|
306
|
+
* ```typescript
|
|
307
|
+
* const file = new File(['content'], 'test.txt');
|
|
308
|
+
* const name = getFileName(file);
|
|
309
|
+
* console.log(name); // "test.txt"
|
|
310
|
+
* ```
|
|
311
|
+
*/
|
|
312
|
+
declare function getFileName(input: FileInput): string | undefined;
|
|
313
|
+
/**
|
|
314
|
+
* 环境特定功能检测
|
|
315
|
+
*/
|
|
316
|
+
declare const features: {
|
|
317
|
+
/**
|
|
318
|
+
* 是否支持 FormData
|
|
319
|
+
*/
|
|
320
|
+
readonly hasFormData: boolean;
|
|
321
|
+
/**
|
|
322
|
+
* 是否支持 Blob
|
|
323
|
+
*/
|
|
324
|
+
readonly hasBlob: boolean;
|
|
325
|
+
/**
|
|
326
|
+
* 是否支持 File
|
|
327
|
+
*/
|
|
328
|
+
readonly hasFile: boolean;
|
|
329
|
+
/**
|
|
330
|
+
* 是否支持 FileReader
|
|
331
|
+
*/
|
|
332
|
+
readonly hasFileReader: boolean;
|
|
333
|
+
/**
|
|
334
|
+
* 是否支持 fetch API
|
|
335
|
+
*/
|
|
336
|
+
readonly hasFetch: boolean;
|
|
337
|
+
/**
|
|
338
|
+
* 是否支持 Stream API
|
|
339
|
+
*/
|
|
340
|
+
readonly hasStream: boolean;
|
|
341
|
+
};
|
|
342
|
+
/**
|
|
343
|
+
* 环境信息对象
|
|
344
|
+
*
|
|
345
|
+
* @example
|
|
346
|
+
* ```typescript
|
|
347
|
+
* console.log(environmentInfo);
|
|
348
|
+
* // {
|
|
349
|
+
* // type: 'browser',
|
|
350
|
+
* // isNode: false,
|
|
351
|
+
* // isBrowser: true,
|
|
352
|
+
* // features: { ... }
|
|
353
|
+
* // }
|
|
354
|
+
* ```
|
|
355
|
+
*/
|
|
356
|
+
declare const environmentInfo: {
|
|
357
|
+
readonly type: "node" | "browser" | "worker" | "unknown";
|
|
358
|
+
readonly isNode: boolean;
|
|
359
|
+
readonly isBrowser: boolean;
|
|
360
|
+
readonly isWebWorker: boolean;
|
|
361
|
+
readonly features: {
|
|
362
|
+
/**
|
|
363
|
+
* 是否支持 FormData
|
|
364
|
+
*/
|
|
365
|
+
readonly hasFormData: boolean;
|
|
366
|
+
/**
|
|
367
|
+
* 是否支持 Blob
|
|
368
|
+
*/
|
|
369
|
+
readonly hasBlob: boolean;
|
|
370
|
+
/**
|
|
371
|
+
* 是否支持 File
|
|
372
|
+
*/
|
|
373
|
+
readonly hasFile: boolean;
|
|
374
|
+
/**
|
|
375
|
+
* 是否支持 FileReader
|
|
376
|
+
*/
|
|
377
|
+
readonly hasFileReader: boolean;
|
|
378
|
+
/**
|
|
379
|
+
* 是否支持 fetch API
|
|
380
|
+
*/
|
|
381
|
+
readonly hasFetch: boolean;
|
|
382
|
+
/**
|
|
383
|
+
* 是否支持 Stream API
|
|
384
|
+
*/
|
|
385
|
+
readonly hasStream: boolean;
|
|
386
|
+
};
|
|
387
|
+
};
|
|
388
|
+
/**
|
|
389
|
+
* 断言当前环境
|
|
390
|
+
*
|
|
391
|
+
* @param expectedEnv - 期望的环境类型
|
|
392
|
+
* @param message - 自定义错误消息
|
|
393
|
+
* @throws {Error} 如果当前环境不符合预期
|
|
394
|
+
*
|
|
395
|
+
* @example
|
|
396
|
+
* ```typescript
|
|
397
|
+
* // 确保在 Node.js 环境中运行
|
|
398
|
+
* assertEnvironment('node', 'This feature requires Node.js');
|
|
399
|
+
* ```
|
|
400
|
+
*/
|
|
401
|
+
declare function assertEnvironment(expectedEnv: 'node' | 'browser' | 'worker', message?: string): void;
|
|
402
|
+
/**
|
|
403
|
+
* 安全地动态导入模块(仅 Node.js)
|
|
404
|
+
*
|
|
405
|
+
* @description
|
|
406
|
+
* 在 Node.js 环境中动态导入模块,避免在浏览器环境中引起错误。
|
|
407
|
+
*
|
|
408
|
+
* @param moduleName - 模块名称
|
|
409
|
+
* @returns Promise,resolve 为模块对象
|
|
410
|
+
* @throws {Error} 如果不在 Node.js 环境或模块加载失败
|
|
411
|
+
*
|
|
412
|
+
* @example
|
|
413
|
+
* ```typescript
|
|
414
|
+
* if (isNode) {
|
|
415
|
+
* const fs = await safeDynamicImport('fs');
|
|
416
|
+
* const content = fs.readFileSync('file.txt', 'utf-8');
|
|
417
|
+
* }
|
|
418
|
+
* ```
|
|
419
|
+
*/
|
|
420
|
+
declare function safeDynamicImport<T = unknown>(moduleName: string): Promise<T>;
|
|
421
|
+
|
|
422
|
+
export { EventEmitter, type FileInput, TypedEventEmitter, assertEnvironment, environmentInfo, features, getEnvironment, getFileName, getFileSize, isBrowser, isNode, isValidFileInput, isWebWorker, safeDynamicImport };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { EventEmitter, TypedEventEmitter, assertEnvironment, environmentInfo, features, getEnvironment, getFileName, getFileSize, isBrowser, isNode, isValidFileInput, isWebWorker, safeDynamicImport } from '../chunk-4H4RACSE.js';
|
|
2
|
+
export { Poller } from '../chunk-IHAAKFEJ.js';
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDK 核心类型(主入口对外稳定导出)
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* 日志级别类型
|
|
6
|
+
*/
|
|
7
|
+
type LogLevel = 'info' | 'warn' | 'error' | 'debug';
|
|
8
|
+
/**
|
|
9
|
+
* 日志钩子函数类型
|
|
10
|
+
* @param level - 日志级别
|
|
11
|
+
* @param message - 日志消息
|
|
12
|
+
* @param data - 附加数据
|
|
13
|
+
*/
|
|
14
|
+
type LoggerFunction = (level: LogLevel, message: string, data?: unknown) => void;
|
|
15
|
+
/**
|
|
16
|
+
* SDK 配置接口
|
|
17
|
+
*/
|
|
18
|
+
interface SDKConfig {
|
|
19
|
+
/**
|
|
20
|
+
* API 基础 URL
|
|
21
|
+
* @default 'https://hiring.djangotech.com/'
|
|
22
|
+
*/
|
|
23
|
+
baseUrl?: string;
|
|
24
|
+
/**
|
|
25
|
+
* 认证 Token (ApiKey 或 SessionId)
|
|
26
|
+
* - ApiKey: sk- 开头的字符串
|
|
27
|
+
* - SessionId: 登录后返回的 UUID 格式字符串
|
|
28
|
+
*/
|
|
29
|
+
token: string;
|
|
30
|
+
/**
|
|
31
|
+
* 自定义日志钩子函数
|
|
32
|
+
* 用于集成 Sentry 或其他监控系统
|
|
33
|
+
*/
|
|
34
|
+
logger?: LoggerFunction;
|
|
35
|
+
/**
|
|
36
|
+
* 请求超时时间(毫秒)
|
|
37
|
+
* @default 10000
|
|
38
|
+
*/
|
|
39
|
+
timeout?: number;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* 轮询器配置选项
|
|
43
|
+
*/
|
|
44
|
+
interface PollerOptions<T> {
|
|
45
|
+
/**
|
|
46
|
+
* 轮询任务函数
|
|
47
|
+
*/
|
|
48
|
+
task: () => Promise<T>;
|
|
49
|
+
/**
|
|
50
|
+
* 结果回调函数
|
|
51
|
+
*/
|
|
52
|
+
onResult: (data: T) => void;
|
|
53
|
+
/**
|
|
54
|
+
* 判断是否应该停止轮询
|
|
55
|
+
* @param data - 任务结果
|
|
56
|
+
* @returns true 表示停止轮询,false 表示继续
|
|
57
|
+
*/
|
|
58
|
+
shouldStop: (data: T) => boolean;
|
|
59
|
+
/**
|
|
60
|
+
* 初始轮询间隔(毫秒)
|
|
61
|
+
* @default 1000
|
|
62
|
+
*/
|
|
63
|
+
initialInterval?: number;
|
|
64
|
+
/**
|
|
65
|
+
* 最大轮询间隔(毫秒)
|
|
66
|
+
* @default 30000
|
|
67
|
+
*/
|
|
68
|
+
maxInterval?: number;
|
|
69
|
+
/**
|
|
70
|
+
* 指数退避因子
|
|
71
|
+
* @default 1.5
|
|
72
|
+
*/
|
|
73
|
+
backoffFactor?: number;
|
|
74
|
+
/**
|
|
75
|
+
* 错误回调函数
|
|
76
|
+
*/
|
|
77
|
+
onError?: (error: unknown) => void;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* 轮询器状态快照
|
|
81
|
+
*/
|
|
82
|
+
interface PollerSnapshot {
|
|
83
|
+
/**
|
|
84
|
+
* 当前重试次数
|
|
85
|
+
*/
|
|
86
|
+
retryCount: number;
|
|
87
|
+
/**
|
|
88
|
+
* 当前间隔时间
|
|
89
|
+
*/
|
|
90
|
+
currentInterval: number;
|
|
91
|
+
/**
|
|
92
|
+
* 是否正在运行
|
|
93
|
+
*/
|
|
94
|
+
isRunning: boolean;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export type { LogLevel as L, PollerOptions as P, SDKConfig as S, PollerSnapshot as a, LoggerFunction as b };
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDK 核心类型(主入口对外稳定导出)
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* 日志级别类型
|
|
6
|
+
*/
|
|
7
|
+
type LogLevel = 'info' | 'warn' | 'error' | 'debug';
|
|
8
|
+
/**
|
|
9
|
+
* 日志钩子函数类型
|
|
10
|
+
* @param level - 日志级别
|
|
11
|
+
* @param message - 日志消息
|
|
12
|
+
* @param data - 附加数据
|
|
13
|
+
*/
|
|
14
|
+
type LoggerFunction = (level: LogLevel, message: string, data?: unknown) => void;
|
|
15
|
+
/**
|
|
16
|
+
* SDK 配置接口
|
|
17
|
+
*/
|
|
18
|
+
interface SDKConfig {
|
|
19
|
+
/**
|
|
20
|
+
* API 基础 URL
|
|
21
|
+
* @default 'https://hiring.djangotech.com/'
|
|
22
|
+
*/
|
|
23
|
+
baseUrl?: string;
|
|
24
|
+
/**
|
|
25
|
+
* 认证 Token (ApiKey 或 SessionId)
|
|
26
|
+
* - ApiKey: sk- 开头的字符串
|
|
27
|
+
* - SessionId: 登录后返回的 UUID 格式字符串
|
|
28
|
+
*/
|
|
29
|
+
token: string;
|
|
30
|
+
/**
|
|
31
|
+
* 自定义日志钩子函数
|
|
32
|
+
* 用于集成 Sentry 或其他监控系统
|
|
33
|
+
*/
|
|
34
|
+
logger?: LoggerFunction;
|
|
35
|
+
/**
|
|
36
|
+
* 请求超时时间(毫秒)
|
|
37
|
+
* @default 10000
|
|
38
|
+
*/
|
|
39
|
+
timeout?: number;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* 轮询器配置选项
|
|
43
|
+
*/
|
|
44
|
+
interface PollerOptions<T> {
|
|
45
|
+
/**
|
|
46
|
+
* 轮询任务函数
|
|
47
|
+
*/
|
|
48
|
+
task: () => Promise<T>;
|
|
49
|
+
/**
|
|
50
|
+
* 结果回调函数
|
|
51
|
+
*/
|
|
52
|
+
onResult: (data: T) => void;
|
|
53
|
+
/**
|
|
54
|
+
* 判断是否应该停止轮询
|
|
55
|
+
* @param data - 任务结果
|
|
56
|
+
* @returns true 表示停止轮询,false 表示继续
|
|
57
|
+
*/
|
|
58
|
+
shouldStop: (data: T) => boolean;
|
|
59
|
+
/**
|
|
60
|
+
* 初始轮询间隔(毫秒)
|
|
61
|
+
* @default 1000
|
|
62
|
+
*/
|
|
63
|
+
initialInterval?: number;
|
|
64
|
+
/**
|
|
65
|
+
* 最大轮询间隔(毫秒)
|
|
66
|
+
* @default 30000
|
|
67
|
+
*/
|
|
68
|
+
maxInterval?: number;
|
|
69
|
+
/**
|
|
70
|
+
* 指数退避因子
|
|
71
|
+
* @default 1.5
|
|
72
|
+
*/
|
|
73
|
+
backoffFactor?: number;
|
|
74
|
+
/**
|
|
75
|
+
* 错误回调函数
|
|
76
|
+
*/
|
|
77
|
+
onError?: (error: unknown) => void;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* 轮询器状态快照
|
|
81
|
+
*/
|
|
82
|
+
interface PollerSnapshot {
|
|
83
|
+
/**
|
|
84
|
+
* 当前重试次数
|
|
85
|
+
*/
|
|
86
|
+
retryCount: number;
|
|
87
|
+
/**
|
|
88
|
+
* 当前间隔时间
|
|
89
|
+
*/
|
|
90
|
+
currentInterval: number;
|
|
91
|
+
/**
|
|
92
|
+
* 是否正在运行
|
|
93
|
+
*/
|
|
94
|
+
isRunning: boolean;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export type { LogLevel as L, PollerOptions as P, SDKConfig as S, PollerSnapshot as a, LoggerFunction as b };
|