@jerry_aurora/sky-monitor-sdk 0.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/README.md +355 -0
- package/dist/chunk-2EV6VMEO.js +2 -0
- package/dist/chunk-2EV6VMEO.js.map +1 -0
- package/dist/chunk-2R7LNQYV.js +4 -0
- package/dist/chunk-2R7LNQYV.js.map +1 -0
- package/dist/chunk-4DK7RV2K.js +2 -0
- package/dist/chunk-4DK7RV2K.js.map +1 -0
- package/dist/chunk-4GL6IXHZ.cjs +2 -0
- package/dist/chunk-4GL6IXHZ.cjs.map +1 -0
- package/dist/chunk-4K5NIPXS.cjs +2 -0
- package/dist/chunk-4K5NIPXS.cjs.map +1 -0
- package/dist/chunk-5RS6LIZN.js +2 -0
- package/dist/chunk-5RS6LIZN.js.map +1 -0
- package/dist/chunk-5VYMD33V.cjs +2 -0
- package/dist/chunk-5VYMD33V.cjs.map +1 -0
- package/dist/chunk-647GK2XE.js +2 -0
- package/dist/chunk-647GK2XE.js.map +1 -0
- package/dist/chunk-6KJXTS2V.js +2 -0
- package/dist/chunk-6KJXTS2V.js.map +1 -0
- package/dist/chunk-6YTKBMJD.cjs +2 -0
- package/dist/chunk-6YTKBMJD.cjs.map +1 -0
- package/dist/chunk-ACIPNVBT.cjs +2 -0
- package/dist/chunk-ACIPNVBT.cjs.map +1 -0
- package/dist/chunk-BEGDR54W.js +2 -0
- package/dist/chunk-BEGDR54W.js.map +1 -0
- package/dist/chunk-BVOILM65.cjs +2 -0
- package/dist/chunk-BVOILM65.cjs.map +1 -0
- package/dist/chunk-FBQC6XIY.cjs +2 -0
- package/dist/chunk-FBQC6XIY.cjs.map +1 -0
- package/dist/chunk-GBREIA45.js +2 -0
- package/dist/chunk-GBREIA45.js.map +1 -0
- package/dist/chunk-GU7O5MWM.js +2 -0
- package/dist/chunk-GU7O5MWM.js.map +1 -0
- package/dist/chunk-JMHMJVBJ.cjs +2 -0
- package/dist/chunk-JMHMJVBJ.cjs.map +1 -0
- package/dist/chunk-LAATIQ3Y.cjs +2 -0
- package/dist/chunk-LAATIQ3Y.cjs.map +1 -0
- package/dist/chunk-LFJTX6FJ.cjs +2 -0
- package/dist/chunk-LFJTX6FJ.cjs.map +1 -0
- package/dist/chunk-LKBNR7RI.js +2 -0
- package/dist/chunk-LKBNR7RI.js.map +1 -0
- package/dist/chunk-NM4RALDJ.cjs +2 -0
- package/dist/chunk-NM4RALDJ.cjs.map +1 -0
- package/dist/chunk-O32X45L3.js +2 -0
- package/dist/chunk-O32X45L3.js.map +1 -0
- package/dist/chunk-S3ROE6GJ.js +2 -0
- package/dist/chunk-S3ROE6GJ.js.map +1 -0
- package/dist/chunk-SNOBW3V4.js +2 -0
- package/dist/chunk-SNOBW3V4.js.map +1 -0
- package/dist/chunk-XOLMXHFL.js +2 -0
- package/dist/chunk-XOLMXHFL.js.map +1 -0
- package/dist/chunk-Y2IWAJSY.cjs +4 -0
- package/dist/chunk-Y2IWAJSY.cjs.map +1 -0
- package/dist/chunk-Y46XWPAC.cjs +2 -0
- package/dist/chunk-Y46XWPAC.cjs.map +1 -0
- package/dist/chunk-ZIKPTR2L.cjs +2 -0
- package/dist/chunk-ZIKPTR2L.cjs.map +1 -0
- package/dist/index-Bh5S5dim.d.ts +203 -0
- package/dist/index-D6soZ1u6.d.cts +203 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +32 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/platforms/browser.cjs +2 -0
- package/dist/platforms/browser.cjs.map +1 -0
- package/dist/platforms/browser.d.cts +10 -0
- package/dist/platforms/browser.d.ts +10 -0
- package/dist/platforms/browser.js +2 -0
- package/dist/platforms/browser.js.map +1 -0
- package/dist/plugins/dedupe.cjs +2 -0
- package/dist/plugins/dedupe.cjs.map +1 -0
- package/dist/plugins/dedupe.d.cts +39 -0
- package/dist/plugins/dedupe.d.ts +39 -0
- package/dist/plugins/dedupe.js +2 -0
- package/dist/plugins/dedupe.js.map +1 -0
- package/dist/plugins/error.cjs +2 -0
- package/dist/plugins/error.cjs.map +1 -0
- package/dist/plugins/error.d.cts +51 -0
- package/dist/plugins/error.d.ts +51 -0
- package/dist/plugins/error.js +2 -0
- package/dist/plugins/error.js.map +1 -0
- package/dist/plugins/fetch.cjs +2 -0
- package/dist/plugins/fetch.cjs.map +1 -0
- package/dist/plugins/fetch.d.cts +35 -0
- package/dist/plugins/fetch.d.ts +35 -0
- package/dist/plugins/fetch.js +2 -0
- package/dist/plugins/fetch.js.map +1 -0
- package/dist/plugins/offline-queue.cjs +2 -0
- package/dist/plugins/offline-queue.cjs.map +1 -0
- package/dist/plugins/offline-queue.d.cts +93 -0
- package/dist/plugins/offline-queue.d.ts +93 -0
- package/dist/plugins/offline-queue.js +2 -0
- package/dist/plugins/offline-queue.js.map +1 -0
- package/dist/plugins/performance.cjs +2 -0
- package/dist/plugins/performance.cjs.map +1 -0
- package/dist/plugins/performance.d.cts +31 -0
- package/dist/plugins/performance.d.ts +31 -0
- package/dist/plugins/performance.js +2 -0
- package/dist/plugins/performance.js.map +1 -0
- package/dist/plugins/replay.cjs +77 -0
- package/dist/plugins/replay.cjs.map +1 -0
- package/dist/plugins/replay.js +77 -0
- package/dist/plugins/replay.js.map +1 -0
- package/dist/plugins/sampling.cjs +2 -0
- package/dist/plugins/sampling.cjs.map +1 -0
- package/dist/plugins/sampling.d.cts +56 -0
- package/dist/plugins/sampling.d.ts +56 -0
- package/dist/plugins/sampling.js +2 -0
- package/dist/plugins/sampling.js.map +1 -0
- package/dist/plugins/session.cjs +2 -0
- package/dist/plugins/session.cjs.map +1 -0
- package/dist/plugins/session.d.cts +74 -0
- package/dist/plugins/session.d.ts +74 -0
- package/dist/plugins/session.js +2 -0
- package/dist/plugins/session.js.map +1 -0
- package/dist/plugins/trace.cjs +2 -0
- package/dist/plugins/trace.cjs.map +1 -0
- package/dist/plugins/trace.d.cts +125 -0
- package/dist/plugins/trace.d.ts +125 -0
- package/dist/plugins/trace.js +2 -0
- package/dist/plugins/trace.js.map +1 -0
- package/dist/plugins/transport.cjs +2 -0
- package/dist/plugins/transport.cjs.map +1 -0
- package/dist/plugins/transport.d.cts +231 -0
- package/dist/plugins/transport.d.ts +231 -0
- package/dist/plugins/transport.js +2 -0
- package/dist/plugins/transport.js.map +1 -0
- package/dist/plugins/xhr.cjs +2 -0
- package/dist/plugins/xhr.cjs.map +1 -0
- package/dist/plugins/xhr.d.cts +35 -0
- package/dist/plugins/xhr.d.ts +35 -0
- package/dist/plugins/xhr.js +2 -0
- package/dist/plugins/xhr.js.map +1 -0
- package/dist/presets.cjs +2 -0
- package/dist/presets.cjs.map +1 -0
- package/dist/presets.d.cts +45 -0
- package/dist/presets.d.ts +45 -0
- package/dist/presets.js +2 -0
- package/dist/presets.js.map +1 -0
- package/dist/sky-monitor-replay.umd.js +77 -0
- package/dist/sky-monitor-replay.umd.js.map +1 -0
- package/dist/sky-monitor.umd.js +4 -0
- package/dist/sky-monitor.umd.js.map +1 -0
- package/dist/types-BGUJGEpp.d.cts +90 -0
- package/dist/types-BGUJGEpp.d.ts +90 -0
- package/package.json +122 -0
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import { a as MonitorEvent, E as EventPriority, e as PrioritizedEvent, d as ITransport, T as TransportMode, P as Plugin, I as IMonitor } from '../types-BGUJGEpp.cjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 优先级队列 - 按优先级排序事件
|
|
5
|
+
*
|
|
6
|
+
* 支持三个优先级级别:high > normal > low
|
|
7
|
+
* 缓冲区满时优先丢弃低优先级事件
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* 优先级队列
|
|
12
|
+
*/
|
|
13
|
+
declare class PriorityQueue {
|
|
14
|
+
private _high;
|
|
15
|
+
private _normal;
|
|
16
|
+
private _low;
|
|
17
|
+
private _maxSize;
|
|
18
|
+
constructor(maxSize?: number);
|
|
19
|
+
/**
|
|
20
|
+
* 添加事件到队列
|
|
21
|
+
* @param event - 监控事件
|
|
22
|
+
* @param priority - 优先级
|
|
23
|
+
* @returns 是否成功添加(缓冲区满且无法丢弃时返回 false)
|
|
24
|
+
*/
|
|
25
|
+
enqueue(event: MonitorEvent, priority?: EventPriority): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* 取出指定数量的事件(按优先级顺序)
|
|
28
|
+
* @param count - 取出数量
|
|
29
|
+
* @returns 事件数组
|
|
30
|
+
*/
|
|
31
|
+
dequeue(count: number): PrioritizedEvent[];
|
|
32
|
+
/**
|
|
33
|
+
* 查看队列头部事件(不移除)
|
|
34
|
+
* @param count - 查看数量
|
|
35
|
+
*/
|
|
36
|
+
peek(count: number): PrioritizedEvent[];
|
|
37
|
+
/**
|
|
38
|
+
* 将事件放回队列头部(用于重试)
|
|
39
|
+
*/
|
|
40
|
+
unshift(items: PrioritizedEvent[]): void;
|
|
41
|
+
/**
|
|
42
|
+
* 清空队列
|
|
43
|
+
*/
|
|
44
|
+
clear(): void;
|
|
45
|
+
/**
|
|
46
|
+
* 队列总大小
|
|
47
|
+
*/
|
|
48
|
+
get size(): number;
|
|
49
|
+
/**
|
|
50
|
+
* 队列是否为空
|
|
51
|
+
*/
|
|
52
|
+
get isEmpty(): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* 各优先级队列大小
|
|
55
|
+
*/
|
|
56
|
+
get stats(): {
|
|
57
|
+
high: number;
|
|
58
|
+
normal: number;
|
|
59
|
+
low: number;
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* 指数退避重试调度器
|
|
65
|
+
*
|
|
66
|
+
* 特性:
|
|
67
|
+
* - 指数退避:每次失败后延迟翻倍
|
|
68
|
+
* - 延迟上限:不超过 maxDelay
|
|
69
|
+
* - 抖动:±20% 防止惊群效应
|
|
70
|
+
* - 成功重置:成功后重置为 baseDelay
|
|
71
|
+
*/
|
|
72
|
+
/** 重试调度器配置 */
|
|
73
|
+
interface RetrySchedulerOptions {
|
|
74
|
+
/** 基础延迟(毫秒),默认 1000 */
|
|
75
|
+
baseDelay?: number;
|
|
76
|
+
/** 最大延迟(毫秒),默认 30000 */
|
|
77
|
+
maxDelay?: number;
|
|
78
|
+
/** 抖动比例 0-1,默认 0.2(±20%) */
|
|
79
|
+
jitter?: number;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* 指数退避重试调度器
|
|
83
|
+
*/
|
|
84
|
+
declare class RetryScheduler {
|
|
85
|
+
private _baseDelay;
|
|
86
|
+
private _maxDelay;
|
|
87
|
+
private _jitter;
|
|
88
|
+
private _currentDelay;
|
|
89
|
+
private _retryCount;
|
|
90
|
+
constructor(options?: RetrySchedulerOptions);
|
|
91
|
+
/**
|
|
92
|
+
* 获取下次重试延迟(带抖动)
|
|
93
|
+
* @returns 延迟时间(毫秒)
|
|
94
|
+
*/
|
|
95
|
+
getNextDelay(): number;
|
|
96
|
+
/**
|
|
97
|
+
* 重置延迟(成功后调用)
|
|
98
|
+
*/
|
|
99
|
+
reset(): void;
|
|
100
|
+
/**
|
|
101
|
+
* 记录失败(不获取延迟,只更新状态)
|
|
102
|
+
*/
|
|
103
|
+
recordFailure(): void;
|
|
104
|
+
/**
|
|
105
|
+
* 获取当前重试次数
|
|
106
|
+
*/
|
|
107
|
+
get retryCount(): number;
|
|
108
|
+
/**
|
|
109
|
+
* 获取当前延迟(不带抖动)
|
|
110
|
+
*/
|
|
111
|
+
get currentDelay(): number;
|
|
112
|
+
/**
|
|
113
|
+
* 添加抖动
|
|
114
|
+
* @param delay - 原始延迟
|
|
115
|
+
* @returns 带抖动的延迟
|
|
116
|
+
*/
|
|
117
|
+
private _addJitter;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Transport 插件 - 事件上报策略
|
|
122
|
+
*
|
|
123
|
+
* 支持三种发送模式:
|
|
124
|
+
* - immediate: 立即发送
|
|
125
|
+
* - batch: 批量发送(默认)
|
|
126
|
+
* - throttle: 节流发送
|
|
127
|
+
*
|
|
128
|
+
* 特性:
|
|
129
|
+
* - 优先级队列(high > normal > low)
|
|
130
|
+
* - 指数退避重试
|
|
131
|
+
* - 关键事件立即发送
|
|
132
|
+
* - 页面卸载时用 sendBeacon
|
|
133
|
+
*/
|
|
134
|
+
|
|
135
|
+
/** 按事件类型配置发送模式 */
|
|
136
|
+
type TypeModeConfig = Record<string, TransportMode>;
|
|
137
|
+
interface TransportPluginOptions {
|
|
138
|
+
/** 上报地址 */
|
|
139
|
+
endpoint: string;
|
|
140
|
+
/** 传输适配器(可选,默认使用 BrowserTransport) */
|
|
141
|
+
transport?: ITransport;
|
|
142
|
+
/** 默认发送模式,默认 'batch' */
|
|
143
|
+
mode?: TransportMode;
|
|
144
|
+
/** 按事件类型配置发送模式(优先级高于 mode) */
|
|
145
|
+
typeConfig?: TypeModeConfig;
|
|
146
|
+
/** 批量大小,默认 10 */
|
|
147
|
+
batchSize?: number;
|
|
148
|
+
/** 刷新间隔(毫秒),默认 5000 */
|
|
149
|
+
flushInterval?: number;
|
|
150
|
+
/** 节流间隔(毫秒),默认 1000 */
|
|
151
|
+
throttleInterval?: number;
|
|
152
|
+
/** 最大重试次数,默认 3 */
|
|
153
|
+
maxRetries?: number;
|
|
154
|
+
/** 基础重试延迟(毫秒),默认 1000 */
|
|
155
|
+
baseRetryDelay?: number;
|
|
156
|
+
/** 最大重试延迟(毫秒),默认 30000 */
|
|
157
|
+
maxRetryDelay?: number;
|
|
158
|
+
/** 最大缓冲区大小,默认 100 */
|
|
159
|
+
maxBufferSize?: number;
|
|
160
|
+
/** 关键事件类型(立即发送,兼容旧配置) */
|
|
161
|
+
criticalTypes?: string[];
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Transport 插件
|
|
165
|
+
*/
|
|
166
|
+
declare class TransportPlugin implements Plugin {
|
|
167
|
+
name: string;
|
|
168
|
+
priority: number;
|
|
169
|
+
private _transport;
|
|
170
|
+
private _defaultMode;
|
|
171
|
+
private _typeConfig;
|
|
172
|
+
private _batchSize;
|
|
173
|
+
private _flushInterval;
|
|
174
|
+
private _throttleInterval;
|
|
175
|
+
private _maxRetries;
|
|
176
|
+
private _criticalTypes;
|
|
177
|
+
private _queue;
|
|
178
|
+
private _throttleQueue;
|
|
179
|
+
private _retryScheduler;
|
|
180
|
+
private _platformAdapter;
|
|
181
|
+
private _retryTimer;
|
|
182
|
+
private _isRetrying;
|
|
183
|
+
private _lastThrottleSend;
|
|
184
|
+
constructor(options: TransportPluginOptions);
|
|
185
|
+
/**
|
|
186
|
+
* 插件初始化
|
|
187
|
+
*/
|
|
188
|
+
setupOnce(_monitor: IMonitor): void;
|
|
189
|
+
/**
|
|
190
|
+
* 事件处理:根据事件类型和模式处理
|
|
191
|
+
*/
|
|
192
|
+
processEvent(event: MonitorEvent): MonitorEvent | null;
|
|
193
|
+
/**
|
|
194
|
+
* 获取事件的发送模式
|
|
195
|
+
*/
|
|
196
|
+
private _getModeForEvent;
|
|
197
|
+
/**
|
|
198
|
+
* 插件销毁
|
|
199
|
+
*/
|
|
200
|
+
teardown(): void;
|
|
201
|
+
/**
|
|
202
|
+
* 获取事件优先级
|
|
203
|
+
*/
|
|
204
|
+
private _getPriority;
|
|
205
|
+
/**
|
|
206
|
+
* 立即发送单个事件
|
|
207
|
+
*/
|
|
208
|
+
private _sendImmediate;
|
|
209
|
+
/**
|
|
210
|
+
* 批量发送
|
|
211
|
+
*/
|
|
212
|
+
private _flush;
|
|
213
|
+
/**
|
|
214
|
+
* 节流发送
|
|
215
|
+
*/
|
|
216
|
+
private _throttleFlush;
|
|
217
|
+
/**
|
|
218
|
+
* 页面卸载时发送(sendBeacon)
|
|
219
|
+
*/
|
|
220
|
+
private _flushBeacon;
|
|
221
|
+
/**
|
|
222
|
+
* 调度重试
|
|
223
|
+
*/
|
|
224
|
+
private _scheduleRetry;
|
|
225
|
+
/**
|
|
226
|
+
* 移入离线队列(通过协调器)
|
|
227
|
+
*/
|
|
228
|
+
private _moveToOffline;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
export { PriorityQueue, RetryScheduler, type RetrySchedulerOptions, TransportPlugin, type TransportPluginOptions, type TypeModeConfig };
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import { a as MonitorEvent, E as EventPriority, e as PrioritizedEvent, d as ITransport, T as TransportMode, P as Plugin, I as IMonitor } from '../types-BGUJGEpp.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 优先级队列 - 按优先级排序事件
|
|
5
|
+
*
|
|
6
|
+
* 支持三个优先级级别:high > normal > low
|
|
7
|
+
* 缓冲区满时优先丢弃低优先级事件
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* 优先级队列
|
|
12
|
+
*/
|
|
13
|
+
declare class PriorityQueue {
|
|
14
|
+
private _high;
|
|
15
|
+
private _normal;
|
|
16
|
+
private _low;
|
|
17
|
+
private _maxSize;
|
|
18
|
+
constructor(maxSize?: number);
|
|
19
|
+
/**
|
|
20
|
+
* 添加事件到队列
|
|
21
|
+
* @param event - 监控事件
|
|
22
|
+
* @param priority - 优先级
|
|
23
|
+
* @returns 是否成功添加(缓冲区满且无法丢弃时返回 false)
|
|
24
|
+
*/
|
|
25
|
+
enqueue(event: MonitorEvent, priority?: EventPriority): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* 取出指定数量的事件(按优先级顺序)
|
|
28
|
+
* @param count - 取出数量
|
|
29
|
+
* @returns 事件数组
|
|
30
|
+
*/
|
|
31
|
+
dequeue(count: number): PrioritizedEvent[];
|
|
32
|
+
/**
|
|
33
|
+
* 查看队列头部事件(不移除)
|
|
34
|
+
* @param count - 查看数量
|
|
35
|
+
*/
|
|
36
|
+
peek(count: number): PrioritizedEvent[];
|
|
37
|
+
/**
|
|
38
|
+
* 将事件放回队列头部(用于重试)
|
|
39
|
+
*/
|
|
40
|
+
unshift(items: PrioritizedEvent[]): void;
|
|
41
|
+
/**
|
|
42
|
+
* 清空队列
|
|
43
|
+
*/
|
|
44
|
+
clear(): void;
|
|
45
|
+
/**
|
|
46
|
+
* 队列总大小
|
|
47
|
+
*/
|
|
48
|
+
get size(): number;
|
|
49
|
+
/**
|
|
50
|
+
* 队列是否为空
|
|
51
|
+
*/
|
|
52
|
+
get isEmpty(): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* 各优先级队列大小
|
|
55
|
+
*/
|
|
56
|
+
get stats(): {
|
|
57
|
+
high: number;
|
|
58
|
+
normal: number;
|
|
59
|
+
low: number;
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* 指数退避重试调度器
|
|
65
|
+
*
|
|
66
|
+
* 特性:
|
|
67
|
+
* - 指数退避:每次失败后延迟翻倍
|
|
68
|
+
* - 延迟上限:不超过 maxDelay
|
|
69
|
+
* - 抖动:±20% 防止惊群效应
|
|
70
|
+
* - 成功重置:成功后重置为 baseDelay
|
|
71
|
+
*/
|
|
72
|
+
/** 重试调度器配置 */
|
|
73
|
+
interface RetrySchedulerOptions {
|
|
74
|
+
/** 基础延迟(毫秒),默认 1000 */
|
|
75
|
+
baseDelay?: number;
|
|
76
|
+
/** 最大延迟(毫秒),默认 30000 */
|
|
77
|
+
maxDelay?: number;
|
|
78
|
+
/** 抖动比例 0-1,默认 0.2(±20%) */
|
|
79
|
+
jitter?: number;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* 指数退避重试调度器
|
|
83
|
+
*/
|
|
84
|
+
declare class RetryScheduler {
|
|
85
|
+
private _baseDelay;
|
|
86
|
+
private _maxDelay;
|
|
87
|
+
private _jitter;
|
|
88
|
+
private _currentDelay;
|
|
89
|
+
private _retryCount;
|
|
90
|
+
constructor(options?: RetrySchedulerOptions);
|
|
91
|
+
/**
|
|
92
|
+
* 获取下次重试延迟(带抖动)
|
|
93
|
+
* @returns 延迟时间(毫秒)
|
|
94
|
+
*/
|
|
95
|
+
getNextDelay(): number;
|
|
96
|
+
/**
|
|
97
|
+
* 重置延迟(成功后调用)
|
|
98
|
+
*/
|
|
99
|
+
reset(): void;
|
|
100
|
+
/**
|
|
101
|
+
* 记录失败(不获取延迟,只更新状态)
|
|
102
|
+
*/
|
|
103
|
+
recordFailure(): void;
|
|
104
|
+
/**
|
|
105
|
+
* 获取当前重试次数
|
|
106
|
+
*/
|
|
107
|
+
get retryCount(): number;
|
|
108
|
+
/**
|
|
109
|
+
* 获取当前延迟(不带抖动)
|
|
110
|
+
*/
|
|
111
|
+
get currentDelay(): number;
|
|
112
|
+
/**
|
|
113
|
+
* 添加抖动
|
|
114
|
+
* @param delay - 原始延迟
|
|
115
|
+
* @returns 带抖动的延迟
|
|
116
|
+
*/
|
|
117
|
+
private _addJitter;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Transport 插件 - 事件上报策略
|
|
122
|
+
*
|
|
123
|
+
* 支持三种发送模式:
|
|
124
|
+
* - immediate: 立即发送
|
|
125
|
+
* - batch: 批量发送(默认)
|
|
126
|
+
* - throttle: 节流发送
|
|
127
|
+
*
|
|
128
|
+
* 特性:
|
|
129
|
+
* - 优先级队列(high > normal > low)
|
|
130
|
+
* - 指数退避重试
|
|
131
|
+
* - 关键事件立即发送
|
|
132
|
+
* - 页面卸载时用 sendBeacon
|
|
133
|
+
*/
|
|
134
|
+
|
|
135
|
+
/** 按事件类型配置发送模式 */
|
|
136
|
+
type TypeModeConfig = Record<string, TransportMode>;
|
|
137
|
+
interface TransportPluginOptions {
|
|
138
|
+
/** 上报地址 */
|
|
139
|
+
endpoint: string;
|
|
140
|
+
/** 传输适配器(可选,默认使用 BrowserTransport) */
|
|
141
|
+
transport?: ITransport;
|
|
142
|
+
/** 默认发送模式,默认 'batch' */
|
|
143
|
+
mode?: TransportMode;
|
|
144
|
+
/** 按事件类型配置发送模式(优先级高于 mode) */
|
|
145
|
+
typeConfig?: TypeModeConfig;
|
|
146
|
+
/** 批量大小,默认 10 */
|
|
147
|
+
batchSize?: number;
|
|
148
|
+
/** 刷新间隔(毫秒),默认 5000 */
|
|
149
|
+
flushInterval?: number;
|
|
150
|
+
/** 节流间隔(毫秒),默认 1000 */
|
|
151
|
+
throttleInterval?: number;
|
|
152
|
+
/** 最大重试次数,默认 3 */
|
|
153
|
+
maxRetries?: number;
|
|
154
|
+
/** 基础重试延迟(毫秒),默认 1000 */
|
|
155
|
+
baseRetryDelay?: number;
|
|
156
|
+
/** 最大重试延迟(毫秒),默认 30000 */
|
|
157
|
+
maxRetryDelay?: number;
|
|
158
|
+
/** 最大缓冲区大小,默认 100 */
|
|
159
|
+
maxBufferSize?: number;
|
|
160
|
+
/** 关键事件类型(立即发送,兼容旧配置) */
|
|
161
|
+
criticalTypes?: string[];
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Transport 插件
|
|
165
|
+
*/
|
|
166
|
+
declare class TransportPlugin implements Plugin {
|
|
167
|
+
name: string;
|
|
168
|
+
priority: number;
|
|
169
|
+
private _transport;
|
|
170
|
+
private _defaultMode;
|
|
171
|
+
private _typeConfig;
|
|
172
|
+
private _batchSize;
|
|
173
|
+
private _flushInterval;
|
|
174
|
+
private _throttleInterval;
|
|
175
|
+
private _maxRetries;
|
|
176
|
+
private _criticalTypes;
|
|
177
|
+
private _queue;
|
|
178
|
+
private _throttleQueue;
|
|
179
|
+
private _retryScheduler;
|
|
180
|
+
private _platformAdapter;
|
|
181
|
+
private _retryTimer;
|
|
182
|
+
private _isRetrying;
|
|
183
|
+
private _lastThrottleSend;
|
|
184
|
+
constructor(options: TransportPluginOptions);
|
|
185
|
+
/**
|
|
186
|
+
* 插件初始化
|
|
187
|
+
*/
|
|
188
|
+
setupOnce(_monitor: IMonitor): void;
|
|
189
|
+
/**
|
|
190
|
+
* 事件处理:根据事件类型和模式处理
|
|
191
|
+
*/
|
|
192
|
+
processEvent(event: MonitorEvent): MonitorEvent | null;
|
|
193
|
+
/**
|
|
194
|
+
* 获取事件的发送模式
|
|
195
|
+
*/
|
|
196
|
+
private _getModeForEvent;
|
|
197
|
+
/**
|
|
198
|
+
* 插件销毁
|
|
199
|
+
*/
|
|
200
|
+
teardown(): void;
|
|
201
|
+
/**
|
|
202
|
+
* 获取事件优先级
|
|
203
|
+
*/
|
|
204
|
+
private _getPriority;
|
|
205
|
+
/**
|
|
206
|
+
* 立即发送单个事件
|
|
207
|
+
*/
|
|
208
|
+
private _sendImmediate;
|
|
209
|
+
/**
|
|
210
|
+
* 批量发送
|
|
211
|
+
*/
|
|
212
|
+
private _flush;
|
|
213
|
+
/**
|
|
214
|
+
* 节流发送
|
|
215
|
+
*/
|
|
216
|
+
private _throttleFlush;
|
|
217
|
+
/**
|
|
218
|
+
* 页面卸载时发送(sendBeacon)
|
|
219
|
+
*/
|
|
220
|
+
private _flushBeacon;
|
|
221
|
+
/**
|
|
222
|
+
* 调度重试
|
|
223
|
+
*/
|
|
224
|
+
private _scheduleRetry;
|
|
225
|
+
/**
|
|
226
|
+
* 移入离线队列(通过协调器)
|
|
227
|
+
*/
|
|
228
|
+
private _moveToOffline;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
export { PriorityQueue, RetryScheduler, type RetrySchedulerOptions, TransportPlugin, type TransportPluginOptions, type TypeModeConfig };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"transport.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"xhr.cjs"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { P as Plugin, I as IMonitor } from '../types-BGUJGEpp.cjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* XHR 插件 - 拦截 XMLHttpRequest
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
interface XHRPluginOptions {
|
|
8
|
+
/** 包含的 URL 正则(白名单) */
|
|
9
|
+
includeUrls?: RegExp[];
|
|
10
|
+
/** 排除的 URL 正则(黑名单) */
|
|
11
|
+
excludeUrls?: RegExp[];
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* XHR 插件
|
|
15
|
+
* 基于 Proxy 代理 XMLHttpRequest 实例
|
|
16
|
+
*/
|
|
17
|
+
declare class XHRPlugin implements Plugin {
|
|
18
|
+
name: string;
|
|
19
|
+
priority: number;
|
|
20
|
+
private _monitor;
|
|
21
|
+
private _options;
|
|
22
|
+
private _platformAdapter;
|
|
23
|
+
constructor(options?: XHRPluginOptions);
|
|
24
|
+
/**
|
|
25
|
+
* 插件初始化
|
|
26
|
+
*/
|
|
27
|
+
setupOnce(monitor: IMonitor): void;
|
|
28
|
+
/**
|
|
29
|
+
* 插件销毁
|
|
30
|
+
*/
|
|
31
|
+
teardown(): void;
|
|
32
|
+
private _shouldIgnore;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export { XHRPlugin, type XHRPluginOptions };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { P as Plugin, I as IMonitor } from '../types-BGUJGEpp.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* XHR 插件 - 拦截 XMLHttpRequest
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
interface XHRPluginOptions {
|
|
8
|
+
/** 包含的 URL 正则(白名单) */
|
|
9
|
+
includeUrls?: RegExp[];
|
|
10
|
+
/** 排除的 URL 正则(黑名单) */
|
|
11
|
+
excludeUrls?: RegExp[];
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* XHR 插件
|
|
15
|
+
* 基于 Proxy 代理 XMLHttpRequest 实例
|
|
16
|
+
*/
|
|
17
|
+
declare class XHRPlugin implements Plugin {
|
|
18
|
+
name: string;
|
|
19
|
+
priority: number;
|
|
20
|
+
private _monitor;
|
|
21
|
+
private _options;
|
|
22
|
+
private _platformAdapter;
|
|
23
|
+
constructor(options?: XHRPluginOptions);
|
|
24
|
+
/**
|
|
25
|
+
* 插件初始化
|
|
26
|
+
*/
|
|
27
|
+
setupOnce(monitor: IMonitor): void;
|
|
28
|
+
/**
|
|
29
|
+
* 插件销毁
|
|
30
|
+
*/
|
|
31
|
+
teardown(): void;
|
|
32
|
+
private _shouldIgnore;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export { XHRPlugin, type XHRPluginOptions };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"xhr.js"}
|
package/dist/presets.cjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use strict';var chunkZIKPTR2L_cjs=require('./chunk-ZIKPTR2L.cjs');Object.defineProperty(exports,"PRESETS",{enumerable:true,get:function(){return chunkZIKPTR2L_cjs.a}});Object.defineProperty(exports,"getPreset",{enumerable:true,get:function(){return chunkZIKPTR2L_cjs.b}});Object.defineProperty(exports,"mergePreset",{enumerable:true,get:function(){return chunkZIKPTR2L_cjs.c}});//# sourceMappingURL=presets.cjs.map
|
|
2
|
+
//# sourceMappingURL=presets.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"presets.cjs"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { SamplingPluginOptions } from './plugins/sampling.cjs';
|
|
2
|
+
import { TransportPluginOptions } from './plugins/transport.cjs';
|
|
3
|
+
import './types-BGUJGEpp.cjs';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* 预设配置
|
|
7
|
+
*
|
|
8
|
+
* 提供三种预设:
|
|
9
|
+
* - development: 开发环境,即时发送,详细日志
|
|
10
|
+
* - production: 生产环境,批量发送,采样
|
|
11
|
+
* - minimal: 最小化,只采集错误
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/** 预设名称 */
|
|
15
|
+
type MonitorPreset = 'development' | 'production' | 'minimal';
|
|
16
|
+
/** 插件名称 */
|
|
17
|
+
type PluginName = 'error' | 'performance' | 'fetch' | 'xhr' | 'session' | 'trace' | 'dedupe' | 'sampling';
|
|
18
|
+
/** 预设配置内容 */
|
|
19
|
+
interface PresetConfig {
|
|
20
|
+
/** 调试模式 */
|
|
21
|
+
debug: boolean;
|
|
22
|
+
/** 传输配置 */
|
|
23
|
+
transport: Partial<TransportPluginOptions>;
|
|
24
|
+
/** 采样配置 */
|
|
25
|
+
sampling: Partial<SamplingPluginOptions>;
|
|
26
|
+
/** 启用的插件 */
|
|
27
|
+
plugins: PluginName[];
|
|
28
|
+
}
|
|
29
|
+
/** 预设配置定义 */
|
|
30
|
+
declare const PRESETS: Record<MonitorPreset, PresetConfig>;
|
|
31
|
+
/**
|
|
32
|
+
* 获取预设配置
|
|
33
|
+
* @param preset - 预设名称
|
|
34
|
+
* @returns 预设配置
|
|
35
|
+
*/
|
|
36
|
+
declare function getPreset(preset: MonitorPreset): PresetConfig;
|
|
37
|
+
/**
|
|
38
|
+
* 合并预设配置和用户配置
|
|
39
|
+
* @param preset - 预设配置
|
|
40
|
+
* @param overrides - 用户覆盖配置
|
|
41
|
+
* @returns 合并后的配置
|
|
42
|
+
*/
|
|
43
|
+
declare function mergePreset(preset: PresetConfig, overrides: Partial<PresetConfig>): PresetConfig;
|
|
44
|
+
|
|
45
|
+
export { type MonitorPreset, PRESETS, type PluginName, type PresetConfig, getPreset, mergePreset };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { SamplingPluginOptions } from './plugins/sampling.js';
|
|
2
|
+
import { TransportPluginOptions } from './plugins/transport.js';
|
|
3
|
+
import './types-BGUJGEpp.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* 预设配置
|
|
7
|
+
*
|
|
8
|
+
* 提供三种预设:
|
|
9
|
+
* - development: 开发环境,即时发送,详细日志
|
|
10
|
+
* - production: 生产环境,批量发送,采样
|
|
11
|
+
* - minimal: 最小化,只采集错误
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/** 预设名称 */
|
|
15
|
+
type MonitorPreset = 'development' | 'production' | 'minimal';
|
|
16
|
+
/** 插件名称 */
|
|
17
|
+
type PluginName = 'error' | 'performance' | 'fetch' | 'xhr' | 'session' | 'trace' | 'dedupe' | 'sampling';
|
|
18
|
+
/** 预设配置内容 */
|
|
19
|
+
interface PresetConfig {
|
|
20
|
+
/** 调试模式 */
|
|
21
|
+
debug: boolean;
|
|
22
|
+
/** 传输配置 */
|
|
23
|
+
transport: Partial<TransportPluginOptions>;
|
|
24
|
+
/** 采样配置 */
|
|
25
|
+
sampling: Partial<SamplingPluginOptions>;
|
|
26
|
+
/** 启用的插件 */
|
|
27
|
+
plugins: PluginName[];
|
|
28
|
+
}
|
|
29
|
+
/** 预设配置定义 */
|
|
30
|
+
declare const PRESETS: Record<MonitorPreset, PresetConfig>;
|
|
31
|
+
/**
|
|
32
|
+
* 获取预设配置
|
|
33
|
+
* @param preset - 预设名称
|
|
34
|
+
* @returns 预设配置
|
|
35
|
+
*/
|
|
36
|
+
declare function getPreset(preset: MonitorPreset): PresetConfig;
|
|
37
|
+
/**
|
|
38
|
+
* 合并预设配置和用户配置
|
|
39
|
+
* @param preset - 预设配置
|
|
40
|
+
* @param overrides - 用户覆盖配置
|
|
41
|
+
* @returns 合并后的配置
|
|
42
|
+
*/
|
|
43
|
+
declare function mergePreset(preset: PresetConfig, overrides: Partial<PresetConfig>): PresetConfig;
|
|
44
|
+
|
|
45
|
+
export { type MonitorPreset, PRESETS, type PluginName, type PresetConfig, getPreset, mergePreset };
|
package/dist/presets.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"presets.js"}
|