@antglobal/rlog-sdk 0.0.1755855517-dev.10 → 0.0.1755855517-dev.11
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 +48 -8
- package/dist/esm/index.d.ts +10 -46
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +27 -70
- package/dist/esm/lib/api.d.ts.map +1 -1
- package/dist/esm/lib/api.js +19 -13
- package/dist/esm/lib/config.d.ts +1 -8
- package/dist/esm/lib/config.d.ts.map +1 -1
- package/dist/esm/lib/config.js +18 -18
- package/dist/esm/lib/error-trigger.d.ts +1 -3
- package/dist/esm/lib/error-trigger.d.ts.map +1 -1
- package/dist/esm/lib/error-trigger.js +1 -8
- package/dist/esm/lib/error.d.ts.map +1 -1
- package/dist/esm/lib/error.js +8 -40
- package/dist/esm/lib/init.d.ts.map +1 -1
- package/dist/esm/lib/init.js +4 -12
- package/dist/esm/lib/net.d.ts +5 -0
- package/dist/esm/lib/net.d.ts.map +1 -1
- package/dist/esm/lib/net.js +8 -0
- package/dist/esm/lib/router-monitor.d.ts.map +1 -1
- package/dist/esm/lib/router-monitor.js +10 -36
- package/dist/esm/lib/rrweb.d.ts.map +1 -1
- package/dist/esm/lib/rrweb.js +8 -8
- package/dist/esm/lib/uploader.d.ts.map +1 -1
- package/dist/esm/lib/uploader.js +27 -19
- package/dist/lib/index.d.ts +10 -46
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +9 -58
- package/dist/lib/lib/api.d.ts.map +1 -1
- package/dist/lib/lib/api.js +19 -13
- package/dist/lib/lib/config.d.ts +1 -8
- package/dist/lib/lib/config.d.ts.map +1 -1
- package/dist/lib/lib/config.js +18 -18
- package/dist/lib/lib/error-trigger.d.ts +1 -3
- package/dist/lib/lib/error-trigger.d.ts.map +1 -1
- package/dist/lib/lib/error-trigger.js +1 -8
- package/dist/lib/lib/error.d.ts.map +1 -1
- package/dist/lib/lib/error.js +8 -40
- package/dist/lib/lib/init.d.ts.map +1 -1
- package/dist/lib/lib/init.js +3 -11
- package/dist/lib/lib/net.d.ts +5 -0
- package/dist/lib/lib/net.d.ts.map +1 -1
- package/dist/lib/lib/net.js +9 -0
- package/dist/lib/lib/router-monitor.d.ts.map +1 -1
- package/dist/lib/lib/router-monitor.js +10 -36
- package/dist/lib/lib/rrweb.d.ts.map +1 -1
- package/dist/lib/lib/rrweb.js +8 -8
- package/dist/lib/lib/uploader.d.ts.map +1 -1
- package/dist/lib/lib/uploader.js +27 -19
- package/dist/rlog-sdk.min.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -15,28 +15,68 @@ CDN 配置文件应为 JSON 格式,包含以下字段:
|
|
|
15
15
|
```json
|
|
16
16
|
{
|
|
17
17
|
"enable": true, // 采集总开关
|
|
18
|
-
"samplingRate": 15, // Canvas 采样率 (帧/秒)
|
|
19
18
|
"uploadInterval": 2000, // 数据上传时间间隔 (毫秒)
|
|
20
|
-
"configUpdateInterval": 300000 // 配置更新时间间隔 (毫秒),默认 5 分钟
|
|
19
|
+
"configUpdateInterval": 300000, // 配置更新时间间隔 (毫秒),默认 5 分钟
|
|
20
|
+
"checkoutEveryNms": 5000, // 每N毫秒做一次全量快照,默认 5 秒
|
|
21
|
+
"captureMode": "full", // 采集模式: 'full' 全量采集(默认) | 'error' 错误采集
|
|
22
|
+
"packEvents": false, // 是否使用rrweb的packFn压缩事件数据,默认false
|
|
23
|
+
"clearStorageBeforeRecord": true, // 是否在开始录制前清空存储数据,默认true
|
|
24
|
+
"http": false, // 是否开启接口请求抓取,默认false
|
|
25
|
+
"maxRetryCount": 3, // 上传失败最大重试次数,默认3次
|
|
26
|
+
"consumeOnly": false, // 只采集不上报模式,默认false
|
|
27
|
+
"urlParamsToCache": [], // 需要从URL中缓存和上报的参数名称列表
|
|
28
|
+
|
|
29
|
+
// 事件采样配置
|
|
30
|
+
"sampling": {
|
|
31
|
+
"canvas": 15, // Canvas 采样率 (帧/秒),默认 15
|
|
32
|
+
"mousemove": 50, // 鼠标移动事件采样间隔 (毫秒),false表示不录制
|
|
33
|
+
"scroll": 100, // 滚动事件防抖间隔 (毫秒)
|
|
34
|
+
"input": "last" // 输入事件录制时机: 'all' 全部 | 'last' 只记录最终值
|
|
35
|
+
},
|
|
36
|
+
|
|
37
|
+
// rrweb 相关 CSS 类名配置
|
|
38
|
+
"ignoreClass": "rr-ignore", // 忽略采集的CSS类名
|
|
39
|
+
"blockClass": "rr-block", // 阻塞采集的CSS类名
|
|
40
|
+
"maskTextClass": "rr-mask", // 文本遮罩的CSS类名
|
|
41
|
+
|
|
42
|
+
// 错误采集模式配置 (仅在 captureMode='error' 时生效)
|
|
43
|
+
"errorCapture": {
|
|
44
|
+
"beforeDuration": 30000, // 错误发生前录制时长 (毫秒),默认 30000
|
|
45
|
+
"afterDuration": 30000, // 错误发生后继续录制时长 (毫秒),默认 30000
|
|
46
|
+
"httpErrorThreshold": 400 // HTTP 错误状态码阈值,>= 该值视为错误,默认 400
|
|
47
|
+
}
|
|
21
48
|
}
|
|
22
49
|
```
|
|
23
50
|
|
|
24
|
-
#### Console
|
|
51
|
+
#### Console录制插件配置
|
|
25
52
|
```json
|
|
26
53
|
{
|
|
27
54
|
"console": {
|
|
28
|
-
"enable": true, // 是否启用console
|
|
29
|
-
"level": ["log", "warn", "error", "info"], // 需要录制的console
|
|
55
|
+
"enable": true, // 是否启用console录制,默认false
|
|
56
|
+
"level": ["log", "warn", "error", "info"], // 需要录制的console方法,默认['log', 'warn', 'error', 'info']
|
|
30
57
|
"lengthThreshold": 1000, // 最大录制条数,默认1000
|
|
31
58
|
"stringifyOptions": {
|
|
32
|
-
"stringLengthLimit": 500, //
|
|
33
|
-
"numOfKeysLimit": 50, //
|
|
34
|
-
"depthOfLimit": 4 //
|
|
59
|
+
"stringLengthLimit": 500, // 单个值能转化的最大字符串长度,默认不限制
|
|
60
|
+
"numOfKeysLimit": 50, // 被序列化的js对象能够包含的最大key数量,默认50
|
|
61
|
+
"depthOfLimit": 4 // 对象能够拥有的最大深度(层数),默认4
|
|
35
62
|
}
|
|
36
63
|
}
|
|
37
64
|
}
|
|
38
65
|
```
|
|
39
66
|
|
|
67
|
+
#### 路由监控配置
|
|
68
|
+
```json
|
|
69
|
+
{
|
|
70
|
+
"routerMonitor": {
|
|
71
|
+
"enable": false, // 是否启用路由监控,默认false
|
|
72
|
+
"trackHashChange": true, // 是否监听hash变化,默认true
|
|
73
|
+
"trackHistoryChange": true, // 是否监听History API变化,默认true
|
|
74
|
+
"trackPageStayTime": true, // 是否计算页面停留时间,默认true
|
|
75
|
+
"ignoreRoutes": [] // 需要忽略的路由列表
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
40
80
|
**支持的console方法级别**:
|
|
41
81
|
- `assert`, `clear`, `count`, `countReset`
|
|
42
82
|
- `debug`, `dir`, `dirxml`, `error`
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { setCustomHeaders, setWhiteListUrls, setBlackListUrls, getBlackListUrls, getSdkLogEndpoint, getWhiteListUrls, shouldRecordUrl } from './lib/net';
|
|
1
|
+
import { setCustomHeaders, getCustomHeaders, setWhiteListUrls, setBlackListUrls, getBlackListUrls, getSdkLogEndpoint, getWhiteListUrls, shouldRecordUrl } from './lib/net';
|
|
2
2
|
import { forceResetUploadState } from './lib/uploader';
|
|
3
3
|
import { updateRouterConfig, getCurrentRouteInfo, manualRouteChange, stopRouterMonitor } from './lib/router-monitor';
|
|
4
4
|
import { getConfig } from './lib/config';
|
|
@@ -8,66 +8,30 @@ type Params = {
|
|
|
8
8
|
appId: string;
|
|
9
9
|
cdnConfigUrl?: string;
|
|
10
10
|
};
|
|
11
|
-
|
|
11
|
+
declare function init(param: Params): {
|
|
12
12
|
cancel: (options?: {
|
|
13
13
|
clearData?: boolean;
|
|
14
14
|
}) => void;
|
|
15
15
|
};
|
|
16
|
-
|
|
16
|
+
declare function cancelRecord(options?: {
|
|
17
17
|
clearData?: boolean;
|
|
18
18
|
}): void;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* 获取当前是否处于只采集不上报模式
|
|
27
|
-
* @returns 是否启用只采集不上报模式
|
|
28
|
-
*/
|
|
29
|
-
export declare function isConsumeOnlyMode(): boolean;
|
|
30
|
-
/**
|
|
31
|
-
* 切换只采集不上报模式
|
|
32
|
-
*/
|
|
33
|
-
export declare function toggleConsumeOnlyMode(): boolean;
|
|
34
|
-
export { updateRouterConfig, getCurrentRouteInfo, manualRouteChange, stopRouterMonitor, };
|
|
35
|
-
export { setCustomHeaders, setWhiteListUrls, setBlackListUrls, getBlackListUrls, getWhiteListUrls, getSdkLogEndpoint, };
|
|
36
|
-
export { cleanupErrorHandler };
|
|
37
|
-
/**
|
|
38
|
-
* 手动触发错误上报(用于业务自定义错误)
|
|
39
|
-
* 仅在错误采集模式(captureMode: 'error')下有效。
|
|
40
|
-
* @param error 错误信息,可以是 Error 对象或自定义描述字符串
|
|
41
|
-
*/
|
|
42
|
-
export declare function reportError(error: Error | string): void;
|
|
43
|
-
export declare const debug: {
|
|
44
|
-
/**
|
|
45
|
-
* 获取存储适配器类型
|
|
46
|
-
*/
|
|
19
|
+
declare function addCustomEvent(tagName: string, payload: any): void;
|
|
20
|
+
declare function setConsumeOnlyMode(enable: boolean): void;
|
|
21
|
+
declare function isConsumeOnlyMode(): boolean;
|
|
22
|
+
declare function toggleConsumeOnlyMode(): boolean;
|
|
23
|
+
declare function reportError(error: Error | string): void;
|
|
24
|
+
declare const debug: {
|
|
47
25
|
getStorageAdapterType(): string;
|
|
48
|
-
/**
|
|
49
|
-
* 获取设备ID
|
|
50
|
-
*/
|
|
51
26
|
getDeviceId: () => string;
|
|
52
|
-
/**
|
|
53
|
-
* 重置上传状态
|
|
54
|
-
*/
|
|
55
27
|
resetUploadState: typeof forceResetUploadState;
|
|
56
|
-
/**
|
|
57
|
-
* 获取存储状态
|
|
58
|
-
*/
|
|
59
28
|
getStorageState(): Promise<{
|
|
60
29
|
adapterType: string;
|
|
61
30
|
eventCount: number;
|
|
62
31
|
}>;
|
|
63
|
-
/**
|
|
64
|
-
* 清空存储数据
|
|
65
|
-
*/
|
|
66
32
|
clearStorage(): Promise<void>;
|
|
67
|
-
/**
|
|
68
|
-
* 检查URL是否应该被记录(白名单且不在黑名单中)
|
|
69
|
-
*/
|
|
70
33
|
shouldRecordUrl: typeof shouldRecordUrl;
|
|
71
34
|
getConfig: typeof getConfig;
|
|
72
35
|
};
|
|
36
|
+
export { init, cancelRecord, addCustomEvent, setConsumeOnlyMode, isConsumeOnlyMode, toggleConsumeOnlyMode, updateRouterConfig, getCurrentRouteInfo, manualRouteChange, stopRouterMonitor, setCustomHeaders, getCustomHeaders, setWhiteListUrls, setBlackListUrls, getBlackListUrls, getWhiteListUrls, getSdkLogEndpoint, reportError, cleanupErrorHandler, debug, };
|
|
73
37
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EAChB,MAAM,WAAW,CAAC;AAInB,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAgB,SAAS,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAmB,MAAM,aAAa,CAAC;AAGnE,KAAK,MAAM,GAAG;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EAChB,MAAM,WAAW,CAAC;AAInB,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAgB,SAAS,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAmB,MAAM,aAAa,CAAC;AAGnE,KAAK,MAAM,GAAG;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,iBAAS,IAAI,CAAC,KAAK,EAAE,MAAM;uBAIL;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE;EAI5C;AAED,iBAAS,YAAY,CAAC,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,QAK1D;AAED,iBAAS,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,QAEpD;AAED,iBAAS,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAGjD;AAED,iBAAS,iBAAiB,IAAI,OAAO,CAKpC;AAED,iBAAS,qBAAqB,IAAI,OAAO,CAIxC;AAED,iBAAS,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,CAkChD;AAED,QAAA,MAAM,KAAK;6BACgB,MAAM;;;;;;;;;;CAehC,CAAC;AAGF,OAAO,EAEL,IAAI,EACJ,YAAY,EAEZ,cAAc,EAEd,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EAErB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EAEjB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EAEjB,WAAW,EACX,mBAAmB,EAEnB,KAAK,GACN,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -3,7 +3,7 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try
|
|
|
3
3
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
4
4
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
5
5
|
import { initRLog, cancelRlog } from "./lib/init";
|
|
6
|
-
import { setCustomHeaders, setWhiteListUrls, setBlackListUrls, getBlackListUrls, getSdkLogEndpoint, getWhiteListUrls, shouldRecordUrl } from "./lib/net";
|
|
6
|
+
import { setCustomHeaders, getCustomHeaders, setWhiteListUrls, setBlackListUrls, getBlackListUrls, getSdkLogEndpoint, getWhiteListUrls, shouldRecordUrl } from "./lib/net";
|
|
7
7
|
import { record } from 'rrweb';
|
|
8
8
|
import { storage } from "./lib/storage-manager";
|
|
9
9
|
import { getDeviceId } from "./lib/utils";
|
|
@@ -12,8 +12,7 @@ import { updateRouterConfig, getCurrentRouteInfo, manualRouteChange, stopRouterM
|
|
|
12
12
|
import { updateConfig, getConfig } from "./lib/config";
|
|
13
13
|
import { cleanupErrorHandler, getErrorTrigger } from "./lib/error";
|
|
14
14
|
import logger from "./lib/logger";
|
|
15
|
-
|
|
16
|
-
// 初始化 RLog SDK
|
|
15
|
+
function init(param) {
|
|
17
16
|
initRLog(param.serv, param.appId, param.cdnConfigUrl);
|
|
18
17
|
return {
|
|
19
18
|
cancel: function cancel() {
|
|
@@ -22,60 +21,29 @@ export function init(param) {
|
|
|
22
21
|
}
|
|
23
22
|
};
|
|
24
23
|
}
|
|
25
|
-
|
|
26
|
-
// 单独导出 cancelRecord 方法
|
|
27
|
-
export function cancelRecord() {
|
|
24
|
+
function cancelRecord() {
|
|
28
25
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
29
26
|
logger.warn('Please use rlog.cancel() from initialized instance instead of standalone cancelRecord()');
|
|
30
27
|
cancelRlog(options, 'standalone function');
|
|
31
28
|
}
|
|
32
|
-
|
|
29
|
+
function addCustomEvent(tagName, payload) {
|
|
33
30
|
record.addCustomEvent(tagName, payload);
|
|
34
31
|
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* 设置只采集不上报模式
|
|
38
|
-
* @param enable 是否启用只采集不上报模式
|
|
39
|
-
*/
|
|
40
|
-
export function setConsumeOnlyMode(enable) {
|
|
32
|
+
function setConsumeOnlyMode(enable) {
|
|
41
33
|
updateConfig({
|
|
42
34
|
consumeOnly: enable
|
|
43
35
|
});
|
|
44
36
|
logger.log("Consume only mode ".concat(enable ? 'enabled' : 'disabled'));
|
|
45
37
|
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* 获取当前是否处于只采集不上报模式
|
|
49
|
-
* @returns 是否启用只采集不上报模式
|
|
50
|
-
*/
|
|
51
|
-
export function isConsumeOnlyMode() {
|
|
38
|
+
function isConsumeOnlyMode() {
|
|
52
39
|
return sessionStorage.getItem('RLOG_CONSUME_ONLY') === 'YES' || !!getConfig().consumeOnly;
|
|
53
40
|
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* 切换只采集不上报模式
|
|
57
|
-
*/
|
|
58
|
-
export function toggleConsumeOnlyMode() {
|
|
41
|
+
function toggleConsumeOnlyMode() {
|
|
59
42
|
var newMode = !getConfig().consumeOnly;
|
|
60
43
|
setConsumeOnlyMode(newMode);
|
|
61
44
|
return newMode;
|
|
62
45
|
}
|
|
63
|
-
|
|
64
|
-
// 路由监控相关API
|
|
65
|
-
export { updateRouterConfig, getCurrentRouteInfo, manualRouteChange, stopRouterMonitor };
|
|
66
|
-
|
|
67
|
-
// 网络监控相关函数
|
|
68
|
-
export { setCustomHeaders, setWhiteListUrls, setBlackListUrls, getBlackListUrls, getWhiteListUrls, getSdkLogEndpoint };
|
|
69
|
-
|
|
70
|
-
// 错误处理相关函数
|
|
71
|
-
export { cleanupErrorHandler };
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* 手动触发错误上报(用于业务自定义错误)
|
|
75
|
-
* 仅在错误采集模式(captureMode: 'error')下有效。
|
|
76
|
-
* @param error 错误信息,可以是 Error 对象或自定义描述字符串
|
|
77
|
-
*/
|
|
78
|
-
export function reportError(error) {
|
|
46
|
+
function reportError(error) {
|
|
79
47
|
var config = getConfig();
|
|
80
48
|
if (config.captureMode !== 'error') {
|
|
81
49
|
logger.warn('reportError() is only available in error capture mode (captureMode: "error")');
|
|
@@ -88,8 +56,6 @@ export function reportError(error) {
|
|
|
88
56
|
}
|
|
89
57
|
var message = typeof error === 'string' ? error : error.message;
|
|
90
58
|
var stack = _typeof(error) === 'object' && error.stack ? error.stack : undefined;
|
|
91
|
-
|
|
92
|
-
// 同时记录为 rrweb 自定义事件
|
|
93
59
|
try {
|
|
94
60
|
record.addCustomEvent('custom-error-event', {
|
|
95
61
|
type: 'CUSTOM_ERROR',
|
|
@@ -101,8 +67,6 @@ export function reportError(error) {
|
|
|
101
67
|
} catch (e) {
|
|
102
68
|
logger.warn('Failed to add custom error event:', e);
|
|
103
69
|
}
|
|
104
|
-
|
|
105
|
-
// 通知错误触发器
|
|
106
70
|
trigger.onError({
|
|
107
71
|
type: 'custom',
|
|
108
72
|
message: message,
|
|
@@ -112,30 +76,12 @@ export function reportError(error) {
|
|
|
112
76
|
}
|
|
113
77
|
});
|
|
114
78
|
}
|
|
115
|
-
|
|
116
|
-
// 调试和测试相关API
|
|
117
|
-
export var debug = {
|
|
118
|
-
/**
|
|
119
|
-
* 获取存储适配器类型
|
|
120
|
-
*/
|
|
79
|
+
var debug = {
|
|
121
80
|
getStorageAdapterType: function getStorageAdapterType() {
|
|
122
81
|
return storage.getAdapterType();
|
|
123
82
|
},
|
|
124
|
-
// get storage() {
|
|
125
|
-
// return storage;
|
|
126
|
-
// },
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* 获取设备ID
|
|
130
|
-
*/
|
|
131
83
|
getDeviceId: getDeviceId,
|
|
132
|
-
/**
|
|
133
|
-
* 重置上传状态
|
|
134
|
-
*/
|
|
135
84
|
resetUploadState: forceResetUploadState,
|
|
136
|
-
/**
|
|
137
|
-
* 获取存储状态
|
|
138
|
-
*/
|
|
139
85
|
getStorageState: function getStorageState() {
|
|
140
86
|
return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
141
87
|
var deviceId;
|
|
@@ -151,9 +97,6 @@ export var debug = {
|
|
|
151
97
|
}, _callee);
|
|
152
98
|
}))();
|
|
153
99
|
},
|
|
154
|
-
/**
|
|
155
|
-
* 清空存储数据
|
|
156
|
-
*/
|
|
157
100
|
clearStorage: function clearStorage() {
|
|
158
101
|
return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
159
102
|
var deviceId;
|
|
@@ -169,9 +112,23 @@ export var debug = {
|
|
|
169
112
|
}, _callee2);
|
|
170
113
|
}))();
|
|
171
114
|
},
|
|
172
|
-
/**
|
|
173
|
-
* 检查URL是否应该被记录(白名单且不在黑名单中)
|
|
174
|
-
*/
|
|
175
115
|
shouldRecordUrl: shouldRecordUrl,
|
|
176
116
|
getConfig: getConfig
|
|
177
|
-
};
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
// 统一导出所有公共 API
|
|
120
|
+
export {
|
|
121
|
+
// 核心初始化
|
|
122
|
+
init, cancelRecord,
|
|
123
|
+
// 自定义事件
|
|
124
|
+
addCustomEvent,
|
|
125
|
+
// 只采集不上报模式
|
|
126
|
+
setConsumeOnlyMode, isConsumeOnlyMode, toggleConsumeOnlyMode,
|
|
127
|
+
// 路由监控
|
|
128
|
+
updateRouterConfig, getCurrentRouteInfo, manualRouteChange, stopRouterMonitor,
|
|
129
|
+
// 网络监控
|
|
130
|
+
setCustomHeaders, getCustomHeaders, setWhiteListUrls, setBlackListUrls, getBlackListUrls, getWhiteListUrls, getSdkLogEndpoint,
|
|
131
|
+
// 错误处理
|
|
132
|
+
reportError, cleanupErrorHandler,
|
|
133
|
+
// 调试工具
|
|
134
|
+
debug };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/lib/api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/lib/api.ts"],"names":[],"mappings":"AAKA,KAAK,aAAa,GAAG;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAqBF,eAAO,MAAM,MAAM,QAAe,aAAa,kBAuD9C,CAAC"}
|
package/dist/esm/lib/api.js
CHANGED
|
@@ -5,6 +5,7 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
|
|
|
5
5
|
import { generateUUIDCompat } from "./utils";
|
|
6
6
|
import { post } from "./request";
|
|
7
7
|
import { getConfig } from "./config";
|
|
8
|
+
import { getCustomHeaders } from "./net";
|
|
8
9
|
// 从URL中提取指定参数并存储到sessionStorage中
|
|
9
10
|
var cacheUrlParams = function cacheUrlParams() {
|
|
10
11
|
var config = getConfig();
|
|
@@ -25,7 +26,7 @@ var getCachedParam = function getCachedParam(paramName) {
|
|
|
25
26
|
export var upload = /*#__PURE__*/function () {
|
|
26
27
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(opt) {
|
|
27
28
|
var _opt$data, _opt$data2;
|
|
28
|
-
var lastIndex, queryParams, config, paramsToReport, queryString, api, formData, response, responseData, error;
|
|
29
|
+
var lastIndex, queryParams, config, paramsToReport, queryString, api, formData, customHeaders, response, responseData, error;
|
|
29
30
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
30
31
|
while (1) switch (_context.prev = _context.next) {
|
|
31
32
|
case 0:
|
|
@@ -53,31 +54,36 @@ export var upload = /*#__PURE__*/function () {
|
|
|
53
54
|
api = "".concat(opt.url).concat(queryString ? "?".concat(queryString) : '');
|
|
54
55
|
formData = new FormData();
|
|
55
56
|
formData.append('file', new Blob([JSON.stringify(opt.data)]), generateUUIDCompat() + '.json');
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
|
|
58
|
+
// 获取自定义请求头
|
|
59
|
+
customHeaders = getCustomHeaders();
|
|
60
|
+
_context.next = 13;
|
|
61
|
+
return post(api, formData, {
|
|
62
|
+
headers: customHeaders
|
|
63
|
+
});
|
|
64
|
+
case 13:
|
|
59
65
|
response = _context.sent;
|
|
60
|
-
_context.prev =
|
|
66
|
+
_context.prev = 14;
|
|
61
67
|
responseData = typeof response.data === 'string' ? JSON.parse(response.data) : response.data;
|
|
62
|
-
_context.next =
|
|
68
|
+
_context.next = 21;
|
|
63
69
|
break;
|
|
64
|
-
case
|
|
65
|
-
_context.prev =
|
|
66
|
-
_context.t0 = _context["catch"](
|
|
70
|
+
case 18:
|
|
71
|
+
_context.prev = 18;
|
|
72
|
+
_context.t0 = _context["catch"](14);
|
|
67
73
|
return _context.abrupt("return");
|
|
68
|
-
case
|
|
74
|
+
case 21:
|
|
69
75
|
if (!(responseData && _typeof(responseData) === 'object' && responseData.success === false)) {
|
|
70
|
-
_context.next =
|
|
76
|
+
_context.next = 25;
|
|
71
77
|
break;
|
|
72
78
|
}
|
|
73
79
|
error = new Error(responseData.errorMessage || 'Upload failed with success=false'); // 将完整的响应数据附加到错误对象上
|
|
74
80
|
error.responseData = responseData;
|
|
75
81
|
throw error;
|
|
76
|
-
case
|
|
82
|
+
case 25:
|
|
77
83
|
case "end":
|
|
78
84
|
return _context.stop();
|
|
79
85
|
}
|
|
80
|
-
}, _callee, null, [[
|
|
86
|
+
}, _callee, null, [[14, 18]]);
|
|
81
87
|
}));
|
|
82
88
|
return function upload(_x) {
|
|
83
89
|
return _ref.apply(this, arguments);
|
package/dist/esm/lib/config.d.ts
CHANGED
|
@@ -11,8 +11,6 @@ export interface ConsoleRecordConfig {
|
|
|
11
11
|
export interface ErrorCaptureConfig {
|
|
12
12
|
beforeDuration?: number;
|
|
13
13
|
afterDuration?: number;
|
|
14
|
-
maxBufferSize?: number;
|
|
15
|
-
triggerErrors?: ('js' | 'promise' | 'resource' | 'http' | 'custom')[];
|
|
16
14
|
httpErrorThreshold?: number;
|
|
17
15
|
}
|
|
18
16
|
export interface CdnConfig {
|
|
@@ -21,8 +19,8 @@ export interface CdnConfig {
|
|
|
21
19
|
ignoreClass?: string;
|
|
22
20
|
blockClass?: string;
|
|
23
21
|
maskTextClass?: string;
|
|
24
|
-
samplingRate: number;
|
|
25
22
|
sampling?: {
|
|
23
|
+
canvas?: number;
|
|
26
24
|
mousemove?: number | boolean;
|
|
27
25
|
scroll?: number;
|
|
28
26
|
input?: 'all' | 'last';
|
|
@@ -35,17 +33,12 @@ export interface CdnConfig {
|
|
|
35
33
|
clearStorageBeforeRecord?: boolean;
|
|
36
34
|
console?: ConsoleRecordConfig;
|
|
37
35
|
http?: boolean;
|
|
38
|
-
error?: boolean;
|
|
39
36
|
routerMonitor?: {
|
|
40
37
|
enable?: boolean;
|
|
41
38
|
trackHashChange?: boolean;
|
|
42
39
|
trackHistoryChange?: boolean;
|
|
43
40
|
trackPageStayTime?: boolean;
|
|
44
41
|
ignoreRoutes?: string[];
|
|
45
|
-
customMatchers?: Array<{
|
|
46
|
-
pattern: string | RegExp;
|
|
47
|
-
name?: string;
|
|
48
|
-
}>;
|
|
49
42
|
};
|
|
50
43
|
packEvents?: boolean;
|
|
51
44
|
captureMode?: 'full' | 'error';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/lib/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/lib/config.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,mBAAmB;IAElC,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,KAAK,CAAC,EAAE,CACJ,QAAQ,GACR,OAAO,GACP,OAAO,GACP,YAAY,GACZ,OAAO,GACP,KAAK,GACL,QAAQ,GACR,OAAO,GACP,OAAO,GACP,gBAAgB,GAChB,UAAU,GACV,MAAM,GACN,KAAK,GACL,OAAO,GACP,MAAM,GACN,SAAS,GACT,SAAS,GACT,OAAO,GACP,MAAM,CACT,EAAE,CAAC;IAEJ,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,gBAAgB,CAAC,EAAE;QAEjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAE3B,cAAc,CAAC,EAAE,MAAM,CAAC;QAExB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAGD,MAAM,WAAW,kBAAkB;IAEjC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAGD,MAAM,WAAW,SAAS;IAExB,MAAM,EAAE,OAAO,CAAC;IAEhB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,EAAE;QAET,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAE7B,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;KACxB,CAAC;IAGF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,cAAc,EAAE,MAAM,CAAC;IAEvB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAG5B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAGnC,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAG9B,IAAI,CAAC,EAAE,OAAO,CAAC;IAGf,aAAa,CAAC,EAAE;QACd,MAAM,CAAC,EAAE,OAAO,CAAC;QAEjB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;IAGF,UAAU,CAAC,EAAE,OAAO,CAAC;IAGrB,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAG/B,YAAY,CAAC,EAAE,kBAAkB,CAAC;CACnC;AA8CD;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAuC3E;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAEhE;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,SAAS,CAErC;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBtE"}
|
package/dist/esm/lib/config.js
CHANGED
|
@@ -10,6 +10,7 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
|
|
|
10
10
|
import { get } from "./request";
|
|
11
11
|
import { deepMergeConfig } from "./utils";
|
|
12
12
|
import logger from "./logger";
|
|
13
|
+
import { getCustomHeaders } from "./net";
|
|
13
14
|
|
|
14
15
|
// Console录制插件配置类型定义
|
|
15
16
|
|
|
@@ -20,7 +21,6 @@ import logger from "./logger";
|
|
|
20
21
|
// 默认配置
|
|
21
22
|
var DEFAULT_CONFIG = {
|
|
22
23
|
enable: true,
|
|
23
|
-
samplingRate: 15,
|
|
24
24
|
uploadInterval: 2000,
|
|
25
25
|
configUpdateInterval: 300000,
|
|
26
26
|
// 5分钟
|
|
@@ -41,14 +41,14 @@ var DEFAULT_CONFIG = {
|
|
|
41
41
|
blockClass: 'rr-block',
|
|
42
42
|
maskTextClass: 'rr-mask',
|
|
43
43
|
sampling: {
|
|
44
|
+
canvas: 15,
|
|
45
|
+
// Canvas 采样率 (帧/秒)
|
|
44
46
|
mousemove: 50,
|
|
45
47
|
// 每50ms最多采集一次mousemove事件
|
|
46
48
|
scroll: 100,
|
|
47
49
|
// 滚动事件防抖,每100ms采集一次,
|
|
48
50
|
input: 'last' // 输入只记录最后一次,
|
|
49
51
|
},
|
|
50
|
-
error: false,
|
|
51
|
-
// 默认不启用错误处理
|
|
52
52
|
packEvents: false,
|
|
53
53
|
// 默认不使用rrweb的packFn压缩事件数据
|
|
54
54
|
clearStorageBeforeRecord: true,
|
|
@@ -58,8 +58,6 @@ var DEFAULT_CONFIG = {
|
|
|
58
58
|
errorCapture: {
|
|
59
59
|
beforeDuration: 30000,
|
|
60
60
|
afterDuration: 30000,
|
|
61
|
-
maxBufferSize: 10000,
|
|
62
|
-
triggerErrors: ['js', 'promise', 'resource', 'http', 'custom'],
|
|
63
61
|
httpErrorThreshold: 400
|
|
64
62
|
},
|
|
65
63
|
// 路由监控配置
|
|
@@ -71,9 +69,7 @@ var DEFAULT_CONFIG = {
|
|
|
71
69
|
trackHistoryChange: true,
|
|
72
70
|
trackPageStayTime: true,
|
|
73
71
|
// 是否计算页面停留时间
|
|
74
|
-
ignoreRoutes: []
|
|
75
|
-
// 路由是否应该被忽略
|
|
76
|
-
customMatchers: [] // 自定义匹配规则
|
|
72
|
+
ignoreRoutes: [] // 路由是否应该被忽略
|
|
77
73
|
}
|
|
78
74
|
};
|
|
79
75
|
|
|
@@ -95,21 +91,25 @@ export function fetchConfigFromCdn(_x) {
|
|
|
95
91
|
*/
|
|
96
92
|
function _fetchConfigFromCdn() {
|
|
97
93
|
_fetchConfigFromCdn = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(cdnUrl) {
|
|
98
|
-
var response, config;
|
|
94
|
+
var customHeaders, response, config;
|
|
99
95
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
100
96
|
while (1) switch (_context.prev = _context.next) {
|
|
101
97
|
case 0:
|
|
102
98
|
_context.prev = 0;
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
99
|
+
// 从 net.ts 中获取自定义请求头
|
|
100
|
+
customHeaders = getCustomHeaders();
|
|
101
|
+
_context.next = 4;
|
|
102
|
+
return get(cdnUrl, {
|
|
103
|
+
headers: customHeaders
|
|
104
|
+
});
|
|
105
|
+
case 4:
|
|
106
106
|
response = _context.sent;
|
|
107
107
|
if (response.ok) {
|
|
108
|
-
_context.next =
|
|
108
|
+
_context.next = 7;
|
|
109
109
|
break;
|
|
110
110
|
}
|
|
111
111
|
throw new Error("Failed to fetch config: ".concat(response.status));
|
|
112
|
-
case
|
|
112
|
+
case 7:
|
|
113
113
|
config = {}; // 处理三种不同的响应格式
|
|
114
114
|
if (response.data) {
|
|
115
115
|
// 情况1: response.data 直接就是配置对象
|
|
@@ -130,16 +130,16 @@ function _fetchConfigFromCdn() {
|
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
132
|
return _context.abrupt("return", deepMergeConfig(DEFAULT_CONFIG, config));
|
|
133
|
-
case
|
|
134
|
-
_context.prev =
|
|
133
|
+
case 12:
|
|
134
|
+
_context.prev = 12;
|
|
135
135
|
_context.t0 = _context["catch"](0);
|
|
136
136
|
logger.warn('Failed to fetch config from CDN, using default config', _context.t0);
|
|
137
137
|
return _context.abrupt("return", _objectSpread({}, DEFAULT_CONFIG));
|
|
138
|
-
case
|
|
138
|
+
case 16:
|
|
139
139
|
case "end":
|
|
140
140
|
return _context.stop();
|
|
141
141
|
}
|
|
142
|
-
}, _callee, null, [[0,
|
|
142
|
+
}, _callee, null, [[0, 12]]);
|
|
143
143
|
}));
|
|
144
144
|
return _fetchConfigFromCdn.apply(this, arguments);
|
|
145
145
|
}
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* 统一的上传逻辑由 uploader.ts 中的 startUploadLoop 处理。
|
|
22
22
|
*/
|
|
23
23
|
export interface ErrorInfo {
|
|
24
|
-
type:
|
|
24
|
+
type: string;
|
|
25
25
|
message?: string;
|
|
26
26
|
timestamp: number;
|
|
27
27
|
[key: string]: any;
|
|
@@ -29,14 +29,12 @@ export interface ErrorInfo {
|
|
|
29
29
|
export declare class ErrorTrigger {
|
|
30
30
|
private beforeDuration;
|
|
31
31
|
private afterDuration;
|
|
32
|
-
private triggerErrors;
|
|
33
32
|
private state;
|
|
34
33
|
private cooldownTimer;
|
|
35
34
|
private destroyed;
|
|
36
35
|
constructor(options?: {
|
|
37
36
|
beforeDuration?: number;
|
|
38
37
|
afterDuration?: number;
|
|
39
|
-
triggerErrors?: string[];
|
|
40
38
|
});
|
|
41
39
|
/**
|
|
42
40
|
* 当前是否处于持续上传状态
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-trigger.d.ts","sourceRoot":"","sources":["../../../src/lib/error-trigger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAQH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"error-trigger.d.ts","sourceRoot":"","sources":["../../../src/lib/error-trigger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAQH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAID,qBAAa,YAAY;IACvB,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,aAAa,CAAS;IAG9B,OAAO,CAAC,KAAK,CAAwB;IAGrC,OAAO,CAAC,aAAa,CAA8C;IAGnE,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,GAAE;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,aAAa,CAAC,EAAE,MAAM,CAAC;KACnB;IAKN;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAcnC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAWrB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAgB1B;;OAEG;IACH,OAAO,IAAI,IAAI;CAahB"}
|
|
@@ -32,12 +32,11 @@ import { setErrorModeUploading, setErrorModeWindowStart } from "./uploader";
|
|
|
32
32
|
import logger from "./logger";
|
|
33
33
|
export var ErrorTrigger = /*#__PURE__*/function () {
|
|
34
34
|
function ErrorTrigger() {
|
|
35
|
-
var _options$beforeDurati, _options$afterDuratio
|
|
35
|
+
var _options$beforeDurati, _options$afterDuratio;
|
|
36
36
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
37
37
|
_classCallCheck(this, ErrorTrigger);
|
|
38
38
|
_defineProperty(this, "beforeDuration", void 0);
|
|
39
39
|
_defineProperty(this, "afterDuration", void 0);
|
|
40
|
-
_defineProperty(this, "triggerErrors", void 0);
|
|
41
40
|
// 状态机
|
|
42
41
|
_defineProperty(this, "state", 'idle');
|
|
43
42
|
// afterDuration 倒计时定时器
|
|
@@ -46,7 +45,6 @@ export var ErrorTrigger = /*#__PURE__*/function () {
|
|
|
46
45
|
_defineProperty(this, "destroyed", false);
|
|
47
46
|
this.beforeDuration = (_options$beforeDurati = options.beforeDuration) !== null && _options$beforeDurati !== void 0 ? _options$beforeDurati : 30000;
|
|
48
47
|
this.afterDuration = (_options$afterDuratio = options.afterDuration) !== null && _options$afterDuratio !== void 0 ? _options$afterDuratio : 30000;
|
|
49
|
-
this.triggerErrors = new Set((_options$triggerError = options.triggerErrors) !== null && _options$triggerError !== void 0 ? _options$triggerError : ['js', 'promise', 'resource', 'http', 'custom']);
|
|
50
48
|
}
|
|
51
49
|
|
|
52
50
|
/**
|
|
@@ -73,11 +71,6 @@ export var ErrorTrigger = /*#__PURE__*/function () {
|
|
|
73
71
|
key: "onError",
|
|
74
72
|
value: function onError(errorInfo) {
|
|
75
73
|
if (this.destroyed) return;
|
|
76
|
-
|
|
77
|
-
// 检查错误类型是否在触发列表中
|
|
78
|
-
if (!this.triggerErrors.has(errorInfo.type)) {
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
74
|
if (this.state === 'idle') {
|
|
82
75
|
// ===== 首次错误触发 =====
|
|
83
76
|
this.enterUploadingState(errorInfo.timestamp);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../src/lib/error.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAc/C;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAElE;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,YAAY,GAAG,IAAI,CAErD;AAGD,eAAO,MAAM,oBAAoB,SAAU,GAAG,
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../src/lib/error.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAc/C;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAElE;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,YAAY,GAAG,IAAI,CAErD;AAGD,eAAO,MAAM,oBAAoB,SAAU,GAAG,SAmB7C,CAAC;AAGF,wBAAgB,gBAAgB,SA4I/B;AAGD,wBAAgB,mBAAmB,SAgBlC"}
|