@antglobal/rlog-sdk 0.0.1755855517-dev.8 → 1.0.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 +192 -432
- package/dist/esm/index.d.ts +14 -41
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +92 -76
- package/dist/esm/lib/api.d.ts +10 -0
- package/dist/esm/lib/api.d.ts.map +1 -1
- package/dist/esm/lib/api.js +58 -35
- package/dist/esm/lib/config.d.ts +14 -16
- package/dist/esm/lib/config.d.ts.map +1 -1
- package/dist/esm/lib/config.js +61 -33
- package/dist/esm/lib/constants.d.ts +89 -0
- package/dist/esm/lib/constants.d.ts.map +1 -0
- package/dist/esm/lib/constants.js +145 -0
- package/dist/esm/lib/drive/indexeddb-adapt.d.ts +12 -0
- package/dist/esm/lib/drive/indexeddb-adapt.d.ts.map +1 -1
- package/dist/esm/lib/drive/indexeddb-adapt.js +190 -20
- package/dist/esm/lib/drive/localstorage-adapt.d.ts +12 -0
- package/dist/esm/lib/drive/localstorage-adapt.d.ts.map +1 -1
- package/dist/esm/lib/drive/localstorage-adapt.js +179 -36
- package/dist/esm/lib/drive/memory-adapt.d.ts +10 -2
- package/dist/esm/lib/drive/memory-adapt.d.ts.map +1 -1
- package/dist/esm/lib/drive/memory-adapt.js +118 -26
- package/dist/esm/lib/drive/safe-storage.d.ts +24 -0
- package/dist/esm/lib/drive/safe-storage.d.ts.map +1 -0
- package/dist/esm/lib/drive/safe-storage.js +96 -0
- package/dist/esm/lib/drive/storage-interface.d.ts +20 -0
- package/dist/esm/lib/drive/storage-interface.d.ts.map +1 -1
- package/dist/esm/lib/error-trigger.d.ts +73 -0
- package/dist/esm/lib/error-trigger.d.ts.map +1 -0
- package/dist/esm/lib/error-trigger.js +162 -0
- package/dist/esm/lib/error.d.ts +9 -0
- package/dist/esm/lib/error.d.ts.map +1 -1
- package/dist/esm/lib/error.js +70 -118
- package/dist/esm/lib/init.d.ts +0 -4
- package/dist/esm/lib/init.d.ts.map +1 -1
- package/dist/esm/lib/init.js +148 -47
- package/dist/esm/lib/logger.d.ts +27 -0
- package/dist/esm/lib/logger.d.ts.map +1 -0
- package/dist/esm/lib/logger.js +79 -0
- package/dist/esm/lib/net.d.ts +11 -0
- package/dist/esm/lib/net.d.ts.map +1 -1
- package/dist/esm/lib/net.js +264 -116
- package/dist/esm/lib/request.d.ts.map +1 -1
- package/dist/esm/lib/request.js +2 -2
- package/dist/esm/lib/router-monitor.d.ts.map +1 -1
- package/dist/esm/lib/router-monitor.js +135 -49
- package/dist/esm/lib/rrweb.d.ts.map +1 -1
- package/dist/esm/lib/rrweb.js +31 -24
- package/dist/esm/lib/storage-manager.d.ts +12 -0
- package/dist/esm/lib/storage-manager.d.ts.map +1 -1
- package/dist/esm/lib/storage-manager.js +129 -46
- package/dist/esm/lib/upload-worker-manager.d.ts +47 -0
- package/dist/esm/lib/upload-worker-manager.d.ts.map +1 -0
- package/dist/esm/lib/upload-worker-manager.js +559 -0
- package/dist/esm/lib/upload-worker.d.ts +58 -0
- package/dist/esm/lib/upload-worker.d.ts.map +1 -0
- package/dist/esm/lib/upload-worker.js +28 -0
- package/dist/esm/lib/uploader.d.ts +43 -0
- package/dist/esm/lib/uploader.d.ts.map +1 -1
- package/dist/esm/lib/uploader.js +464 -102
- package/dist/esm/lib/utils.d.ts +75 -0
- package/dist/esm/lib/utils.d.ts.map +1 -1
- package/dist/esm/lib/utils.js +268 -5
- package/dist/lib/index.d.ts +14 -41
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +81 -63
- package/dist/lib/lib/api.d.ts +10 -0
- package/dist/lib/lib/api.d.ts.map +1 -1
- package/dist/lib/lib/api.js +59 -35
- package/dist/lib/lib/config.d.ts +14 -16
- package/dist/lib/lib/config.d.ts.map +1 -1
- package/dist/lib/lib/config.js +63 -33
- package/dist/lib/lib/constants.d.ts +89 -0
- package/dist/lib/lib/constants.d.ts.map +1 -0
- package/dist/lib/lib/constants.js +151 -0
- package/dist/lib/lib/drive/indexeddb-adapt.d.ts +12 -0
- package/dist/lib/lib/drive/indexeddb-adapt.d.ts.map +1 -1
- package/dist/lib/lib/drive/indexeddb-adapt.js +191 -19
- package/dist/lib/lib/drive/localstorage-adapt.d.ts +12 -0
- package/dist/lib/lib/drive/localstorage-adapt.d.ts.map +1 -1
- package/dist/lib/lib/drive/localstorage-adapt.js +179 -36
- package/dist/lib/lib/drive/memory-adapt.d.ts +10 -2
- package/dist/lib/lib/drive/memory-adapt.d.ts.map +1 -1
- package/dist/lib/lib/drive/memory-adapt.js +117 -26
- package/dist/lib/lib/drive/safe-storage.d.ts +24 -0
- package/dist/lib/lib/drive/safe-storage.d.ts.map +1 -0
- package/dist/lib/lib/drive/safe-storage.js +102 -0
- package/dist/lib/lib/drive/storage-interface.d.ts +20 -0
- package/dist/lib/lib/drive/storage-interface.d.ts.map +1 -1
- package/dist/lib/lib/error-trigger.d.ts +73 -0
- package/dist/lib/lib/error-trigger.d.ts.map +1 -0
- package/dist/lib/lib/error-trigger.js +167 -0
- package/dist/lib/lib/error.d.ts +9 -0
- package/dist/lib/lib/error.d.ts.map +1 -1
- package/dist/lib/lib/error.js +73 -118
- package/dist/lib/lib/init.d.ts +0 -4
- package/dist/lib/lib/init.d.ts.map +1 -1
- package/dist/lib/lib/init.js +144 -43
- package/dist/lib/lib/logger.d.ts +27 -0
- package/dist/lib/lib/logger.d.ts.map +1 -0
- package/dist/lib/lib/logger.js +84 -0
- package/dist/lib/lib/net.d.ts +11 -0
- package/dist/lib/lib/net.d.ts.map +1 -1
- package/dist/lib/lib/net.js +268 -117
- package/dist/lib/lib/request.d.ts.map +1 -1
- package/dist/lib/lib/request.js +3 -3
- package/dist/lib/lib/router-monitor.d.ts.map +1 -1
- package/dist/lib/lib/router-monitor.js +136 -49
- package/dist/lib/lib/rrweb.d.ts.map +1 -1
- package/dist/lib/lib/rrweb.js +31 -23
- package/dist/lib/lib/storage-manager.d.ts +12 -0
- package/dist/lib/lib/storage-manager.d.ts.map +1 -1
- package/dist/lib/lib/storage-manager.js +130 -46
- package/dist/lib/lib/upload-worker-manager.d.ts +47 -0
- package/dist/lib/lib/upload-worker-manager.d.ts.map +1 -0
- package/dist/lib/lib/upload-worker-manager.js +570 -0
- package/dist/lib/lib/upload-worker.d.ts +58 -0
- package/dist/lib/lib/upload-worker.d.ts.map +1 -0
- package/dist/lib/lib/upload-worker.js +33 -0
- package/dist/lib/lib/uploader.d.ts +43 -0
- package/dist/lib/lib/uploader.d.ts.map +1 -1
- package/dist/lib/lib/uploader.js +468 -101
- package/dist/lib/lib/utils.d.ts +75 -0
- package/dist/lib/lib/utils.d.ts.map +1 -1
- package/dist/lib/lib/utils.js +276 -6
- package/dist/rlog-sdk.min.js +1 -1
- package/package.json +3 -2
package/dist/lib/lib/error.js
CHANGED
|
@@ -4,49 +4,71 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.cleanupErrorHandler = cleanupErrorHandler;
|
|
7
|
+
exports.getErrorTrigger = getErrorTrigger;
|
|
7
8
|
exports.initErrorHandler = initErrorHandler;
|
|
8
9
|
exports.sendErrorToAnalytics = void 0;
|
|
10
|
+
exports.setErrorTrigger = setErrorTrigger;
|
|
9
11
|
var _config = require("./config");
|
|
10
12
|
var _rrweb = require("rrweb");
|
|
13
|
+
var _logger = _interopRequireDefault(require("./logger"));
|
|
14
|
+
var _constants = require("./constants");
|
|
15
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
16
|
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); }
|
|
12
|
-
//
|
|
13
|
-
var
|
|
17
|
+
// 错误触发器引用(错误采集模式下由 init.ts 注入)
|
|
18
|
+
var errorTriggerInstance = null;
|
|
14
19
|
|
|
15
|
-
//
|
|
16
|
-
var
|
|
17
|
-
var config = (0, _config.getConfig)();
|
|
20
|
+
// 标记是否已初始化
|
|
21
|
+
var isInitialized = false;
|
|
18
22
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
+
/**
|
|
24
|
+
* 设置错误触发器实例(错误采集模式下由 init.ts 调用)
|
|
25
|
+
*/
|
|
26
|
+
function setErrorTrigger(trigger) {
|
|
27
|
+
errorTriggerInstance = trigger;
|
|
28
|
+
}
|
|
23
29
|
|
|
30
|
+
/**
|
|
31
|
+
* 获取错误触发器实例
|
|
32
|
+
*/
|
|
33
|
+
function getErrorTrigger() {
|
|
34
|
+
return errorTriggerInstance;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// 错误数据发送函数 - 使用 rrweb 的自定义事件功能
|
|
38
|
+
var sendErrorToAnalytics = exports.sendErrorToAnalytics = function sendErrorToAnalytics(data) {
|
|
24
39
|
// 使用 rrweb 的自定义事件功能上报错误
|
|
25
40
|
try {
|
|
26
|
-
_rrweb.record.addCustomEvent(
|
|
41
|
+
_rrweb.record.addCustomEvent(_constants.EVENT_CUSTOM_ERROR, data);
|
|
27
42
|
} catch (error) {
|
|
28
43
|
// 降级方案:直接控制台输出
|
|
29
|
-
|
|
44
|
+
_logger.default.error('Error captured', data);
|
|
30
45
|
}
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
// 初始化错误处理
|
|
34
|
-
function initErrorHandler() {
|
|
35
|
-
var config = (0, _config.getConfig)();
|
|
36
46
|
|
|
37
|
-
//
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
47
|
+
// 错误采集模式下,通知错误触发器
|
|
48
|
+
try {
|
|
49
|
+
var config = (0, _config.getConfig)();
|
|
50
|
+
if (config.captureMode === 'error' && errorTriggerInstance) {
|
|
51
|
+
errorTriggerInstance.onError({
|
|
52
|
+
type: data.type,
|
|
53
|
+
message: data.message || data.type,
|
|
54
|
+
timestamp: data.timestamp || Date.now(),
|
|
55
|
+
detail: data
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
} catch (error) {
|
|
59
|
+
_logger.default.warn('Failed to notify error trigger:', error);
|
|
41
60
|
}
|
|
42
|
-
|
|
61
|
+
};
|
|
43
62
|
|
|
44
|
-
|
|
45
|
-
|
|
63
|
+
/**
|
|
64
|
+
* JavaScript 运行时错误 & 资源加载错误处理
|
|
65
|
+
*/
|
|
66
|
+
function handleError(event) {
|
|
67
|
+
try {
|
|
46
68
|
var errorEvent = event;
|
|
69
|
+
|
|
47
70
|
// 检查是否是资源加载错误
|
|
48
71
|
if (event.target !== window) {
|
|
49
|
-
// 资源加载错误
|
|
50
72
|
var _errorData = {
|
|
51
73
|
type: 'RESOURCE_ERROR',
|
|
52
74
|
resourceType: event.target.tagName,
|
|
@@ -78,20 +100,20 @@ function initErrorHandler() {
|
|
|
78
100
|
location: window.location.href
|
|
79
101
|
};
|
|
80
102
|
sendErrorToAnalytics(errorData);
|
|
103
|
+
} catch (e) {
|
|
104
|
+
// SDK 错误处理自身不能再抛异常,避免死循环
|
|
105
|
+
_logger.default.warn('Failed to handle unhandled rejection:', e);
|
|
106
|
+
}
|
|
81
107
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
window.addEventListener('error', errorHandler, true);
|
|
86
|
-
eventListeners.push({
|
|
87
|
-
target: window,
|
|
88
|
-
type: 'error',
|
|
89
|
-
listener: errorHandler,
|
|
90
|
-
options: true
|
|
91
|
-
});
|
|
108
|
+
// 控制台保留原始错误显示
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
92
111
|
|
|
93
|
-
|
|
94
|
-
|
|
112
|
+
/**
|
|
113
|
+
* 未处理的 Promise 错误处理
|
|
114
|
+
*/
|
|
115
|
+
function handleUnhandledRejection(event) {
|
|
116
|
+
try {
|
|
95
117
|
var rejectionEvent = event;
|
|
96
118
|
var reason = rejectionEvent.reason || 'Unknown rejection';
|
|
97
119
|
var errorData = {
|
|
@@ -102,91 +124,24 @@ function initErrorHandler() {
|
|
|
102
124
|
location: window.location.href
|
|
103
125
|
};
|
|
104
126
|
sendErrorToAnalytics(errorData);
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
target: window,
|
|
111
|
-
type: 'unhandledrejection',
|
|
112
|
-
listener: unhandledRejectionHandler
|
|
113
|
-
});
|
|
114
|
-
|
|
115
|
-
// 监控页面性能相关事件
|
|
116
|
-
var loadHandler = function loadHandler() {
|
|
117
|
-
sendErrorToAnalytics({
|
|
118
|
-
type: 'PAGE_LOAD',
|
|
119
|
-
url: window.location.href,
|
|
120
|
-
timestamp: Date.now()
|
|
121
|
-
});
|
|
122
|
-
};
|
|
123
|
-
window.addEventListener('load', loadHandler);
|
|
124
|
-
eventListeners.push({
|
|
125
|
-
target: window,
|
|
126
|
-
type: 'load',
|
|
127
|
-
listener: loadHandler
|
|
128
|
-
});
|
|
129
|
-
|
|
130
|
-
// 监控页面卸载事件
|
|
131
|
-
var beforeUnloadHandler = function beforeUnloadHandler() {
|
|
132
|
-
sendErrorToAnalytics({
|
|
133
|
-
type: 'PAGE_UNLOAD',
|
|
134
|
-
url: window.location.href,
|
|
135
|
-
timestamp: Date.now()
|
|
136
|
-
});
|
|
137
|
-
};
|
|
138
|
-
window.addEventListener('beforeunload', beforeUnloadHandler);
|
|
139
|
-
eventListeners.push({
|
|
140
|
-
target: window,
|
|
141
|
-
type: 'beforeunload',
|
|
142
|
-
listener: beforeUnloadHandler
|
|
143
|
-
});
|
|
127
|
+
} catch (e) {
|
|
128
|
+
// SDK 错误处理自身不能再抛异常,避免死循环
|
|
129
|
+
_logger.default.warn('Failed to handle unhandled rejection:', e);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
144
132
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
};
|
|
152
|
-
window.addEventListener('online', onlineHandler);
|
|
153
|
-
eventListeners.push({
|
|
154
|
-
target: window,
|
|
155
|
-
type: 'online',
|
|
156
|
-
listener: onlineHandler
|
|
157
|
-
});
|
|
158
|
-
var offlineHandler = function offlineHandler() {
|
|
159
|
-
sendErrorToAnalytics({
|
|
160
|
-
type: 'NETWORK_OFFLINE',
|
|
161
|
-
timestamp: Date.now()
|
|
162
|
-
});
|
|
163
|
-
};
|
|
164
|
-
window.addEventListener('offline', offlineHandler);
|
|
165
|
-
eventListeners.push({
|
|
166
|
-
target: window,
|
|
167
|
-
type: 'offline',
|
|
168
|
-
listener: offlineHandler
|
|
169
|
-
});
|
|
133
|
+
// 初始化错误处理
|
|
134
|
+
function initErrorHandler() {
|
|
135
|
+
if (isInitialized) return;
|
|
136
|
+
window.addEventListener('error', handleError, true);
|
|
137
|
+
window.addEventListener('unhandledrejection', handleUnhandledRejection);
|
|
138
|
+
isInitialized = true;
|
|
170
139
|
}
|
|
171
140
|
|
|
172
141
|
// 清理错误监听器
|
|
173
142
|
function cleanupErrorHandler() {
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
var target = _ref.target,
|
|
179
|
-
type = _ref.type,
|
|
180
|
-
listener = _ref.listener,
|
|
181
|
-
options = _ref.options;
|
|
182
|
-
try {
|
|
183
|
-
target.removeEventListener(type, listener, options);
|
|
184
|
-
} catch (error) {
|
|
185
|
-
console.warn("Failed to remove event listener for ".concat(type, ":"), error);
|
|
186
|
-
}
|
|
187
|
-
});
|
|
188
|
-
|
|
189
|
-
// 清空监听器数组
|
|
190
|
-
eventListeners.length = 0;
|
|
191
|
-
console.log('RLog error handlers cleaned up successfully');
|
|
143
|
+
if (!isInitialized) return;
|
|
144
|
+
window.removeEventListener('error', handleError, true);
|
|
145
|
+
window.removeEventListener('unhandledrejection', handleUnhandledRejection);
|
|
146
|
+
isInitialized = false;
|
|
192
147
|
}
|
package/dist/lib/lib/init.d.ts
CHANGED
|
@@ -10,10 +10,6 @@ export declare function cancelRlog(options?: {
|
|
|
10
10
|
* 重置取消状态(用于重新初始化)
|
|
11
11
|
*/
|
|
12
12
|
export declare function resetCancelState(): void;
|
|
13
|
-
/**
|
|
14
|
-
* 获取当前取消状态
|
|
15
|
-
*/
|
|
16
|
-
export declare function getCancelState(): boolean;
|
|
17
13
|
/**
|
|
18
14
|
* 初始化 RLog SDK
|
|
19
15
|
* @param serv 服务器地址
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/lib/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/lib/init.ts"],"names":[],"mappings":"AAsBA;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,EACrC,OAAO,GAAE,MAAuB,GAC/B,IAAI,CA2DN;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,MAAM,GACpB,IAAI,CAwGN"}
|
package/dist/lib/lib/init.js
CHANGED
|
@@ -1,23 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
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); }
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
7
|
exports.cancelRlog = cancelRlog;
|
|
7
|
-
exports.getCancelState = getCancelState;
|
|
8
8
|
exports.initRLog = initRLog;
|
|
9
9
|
exports.resetCancelState = resetCancelState;
|
|
10
10
|
var _rrweb = require("./rrweb");
|
|
11
11
|
var _config = require("./config");
|
|
12
12
|
var _uploader = require("./uploader");
|
|
13
|
+
var _uploadWorkerManager = require("./upload-worker-manager");
|
|
13
14
|
var _routerMonitor = require("./router-monitor");
|
|
14
15
|
var _error = require("./error");
|
|
15
16
|
var _net = require("./net");
|
|
16
17
|
var _storageManager = require("./storage-manager");
|
|
17
18
|
var _utils = require("./utils");
|
|
19
|
+
var _errorTrigger = require("./error-trigger");
|
|
20
|
+
var _logger = _interopRequireDefault(require("./logger"));
|
|
21
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
22
|
+
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
23
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
24
|
+
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); }); }; }
|
|
18
25
|
// 全局取消状态管理
|
|
19
26
|
var isCancelled = false;
|
|
20
27
|
|
|
28
|
+
// 错误采集模式下的实例引用
|
|
29
|
+
var errorTriggerInstance = null;
|
|
30
|
+
|
|
21
31
|
/**
|
|
22
32
|
* 执行取消操作的核心逻辑
|
|
23
33
|
* @param options 取消选项
|
|
@@ -27,7 +37,7 @@ function cancelRlog() {
|
|
|
27
37
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
28
38
|
var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'SDK instance';
|
|
29
39
|
if (isCancelled) {
|
|
30
|
-
|
|
40
|
+
_logger.default.warn('SDK has already been cancelled');
|
|
31
41
|
return;
|
|
32
42
|
}
|
|
33
43
|
isCancelled = true;
|
|
@@ -46,21 +56,40 @@ function cancelRlog() {
|
|
|
46
56
|
// 4. 清理路由监控
|
|
47
57
|
(0, _routerMonitor.stopRouterMonitor)();
|
|
48
58
|
|
|
49
|
-
// 5.
|
|
59
|
+
// 5. 停止配置定时更新
|
|
60
|
+
(0, _config.stopConfigUpdate)();
|
|
61
|
+
|
|
62
|
+
// 6. 清理错误监听
|
|
50
63
|
(0, _error.cleanupErrorHandler)();
|
|
51
64
|
|
|
52
|
-
//
|
|
65
|
+
// 7. 销毁错误采集模式相关实例
|
|
66
|
+
if (errorTriggerInstance) {
|
|
67
|
+
errorTriggerInstance.destroy();
|
|
68
|
+
errorTriggerInstance = null;
|
|
69
|
+
}
|
|
70
|
+
// 清理各模块的错误触发器引用
|
|
71
|
+
(0, _error.setErrorTrigger)(null);
|
|
72
|
+
(0, _net.setNetErrorTrigger)(null);
|
|
73
|
+
|
|
74
|
+
// 清理取消回调
|
|
75
|
+
(0, _uploader.setCancelCallback)(null);
|
|
76
|
+
(0, _uploadWorkerManager.setWorkerCancelCallback)(null);
|
|
77
|
+
|
|
78
|
+
// 8. 可选:清除已存储的数据
|
|
53
79
|
if (options.clearData) {
|
|
54
|
-
var
|
|
55
|
-
if (
|
|
56
|
-
_storageManager.storage.clear(
|
|
57
|
-
|
|
80
|
+
var storageKey = (0, _utils.getStorageKey)();
|
|
81
|
+
if (storageKey) {
|
|
82
|
+
_storageManager.storage.clear(storageKey).catch(function (error) {
|
|
83
|
+
_logger.default.error('Error clearing storage', error);
|
|
58
84
|
});
|
|
59
85
|
}
|
|
60
86
|
}
|
|
61
|
-
|
|
87
|
+
|
|
88
|
+
// 9. 从 session 注册表中移除当前 session
|
|
89
|
+
(0, _utils.unregisterSession)((0, _utils.getSessionId)());
|
|
90
|
+
_logger.default.log("SDK cancelled successfully via ".concat(context));
|
|
62
91
|
} catch (error) {
|
|
63
|
-
|
|
92
|
+
_logger.default.error("Error cancelling SDK via ".concat(context), error);
|
|
64
93
|
}
|
|
65
94
|
}
|
|
66
95
|
|
|
@@ -71,13 +100,6 @@ function resetCancelState() {
|
|
|
71
100
|
isCancelled = false;
|
|
72
101
|
}
|
|
73
102
|
|
|
74
|
-
/**
|
|
75
|
-
* 获取当前取消状态
|
|
76
|
-
*/
|
|
77
|
-
function getCancelState() {
|
|
78
|
-
return isCancelled;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
103
|
/**
|
|
82
104
|
* 初始化 RLog SDK
|
|
83
105
|
* @param serv 服务器地址
|
|
@@ -91,34 +113,113 @@ function initRLog(serv, appId, cdnConfigUrl) {
|
|
|
91
113
|
// 重置上传循环状态
|
|
92
114
|
(0, _uploader.resetUploadLoop)();
|
|
93
115
|
|
|
94
|
-
//
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
(0, _config.initConfigManager)(cdnConfigUrl).then(function () {
|
|
101
|
-
// 获取配置
|
|
102
|
-
var config = (0, _config.getConfig)();
|
|
103
|
-
|
|
104
|
-
// 检查采集总开关
|
|
105
|
-
if (!config.enable) {
|
|
106
|
-
console.log('RLog is disabled by config');
|
|
107
|
-
return;
|
|
116
|
+
// 清理过期的 session 数据(异步,不阻塞初始化)
|
|
117
|
+
setTimeout(function () {
|
|
118
|
+
try {
|
|
119
|
+
(0, _utils.cleanupStaleSessions)();
|
|
120
|
+
} catch (error) {
|
|
121
|
+
_logger.default.warn('Failed to cleanup stale sessions:', error);
|
|
108
122
|
}
|
|
123
|
+
}, 0);
|
|
109
124
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
// 启动数据上传
|
|
114
|
-
(0, _uploader.startUploadLoop)(serv, appId);
|
|
115
|
-
|
|
116
|
-
// 初始化路由监控
|
|
117
|
-
(0, _routerMonitor.initRouterMonitor)(config.routerMonitor);
|
|
125
|
+
// 设置SDK日志上报接口地址,并自动加入黑名单避免循环上报
|
|
126
|
+
var normalizedServUrl = (0, _net.normalizeUrl)(serv);
|
|
127
|
+
(0, _net.setSdkLogEndpoint)(normalizedServUrl);
|
|
118
128
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
129
|
+
// 初始化配置管理器
|
|
130
|
+
(0, _config.initConfigManager)(cdnConfigUrl).then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
131
|
+
var _config$error;
|
|
132
|
+
var config, isErrorMode, _config$errorCapture, _config$errorCapture2, cancelCallback, enableError;
|
|
133
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
134
|
+
while (1) switch (_context.prev = _context.next) {
|
|
135
|
+
case 0:
|
|
136
|
+
// 获取配置
|
|
137
|
+
config = (0, _config.getConfig)(); // 检查采集总开关
|
|
138
|
+
if (config.enable) {
|
|
139
|
+
_context.next = 3;
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
return _context.abrupt("return");
|
|
143
|
+
case 3:
|
|
144
|
+
isErrorMode = config.captureMode === 'error';
|
|
145
|
+
if (isErrorMode) {
|
|
146
|
+
// ===== 错误采集模式初始化 =====
|
|
147
|
+
// 创建 ErrorTrigger 实例(只负责状态切换)
|
|
148
|
+
errorTriggerInstance = new _errorTrigger.ErrorTrigger({
|
|
149
|
+
beforeDuration: (_config$errorCapture = config.errorCapture) === null || _config$errorCapture === void 0 ? void 0 : _config$errorCapture.beforeDuration,
|
|
150
|
+
afterDuration: (_config$errorCapture2 = config.errorCapture) === null || _config$errorCapture2 === void 0 ? void 0 : _config$errorCapture2.afterDuration
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
// 将 errorTrigger 注入到 error 和 net 模块
|
|
154
|
+
(0, _error.setErrorTrigger)(errorTriggerInstance);
|
|
155
|
+
(0, _net.setNetErrorTrigger)(errorTriggerInstance);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// 启动录制(事件将写入 Storage)
|
|
159
|
+
try {
|
|
160
|
+
(0, _rrweb.startRecord)();
|
|
161
|
+
} catch (error) {
|
|
162
|
+
_logger.default.error('Failed to start recording:', error);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// 在启动上传循环前,先将孤儿 session 的残留数据塞入当前 storage 队列头部
|
|
166
|
+
// 确保上传循环启动时这些数据已经就位,会被优先消费上传
|
|
167
|
+
_context.prev = 6;
|
|
168
|
+
_context.next = 9;
|
|
169
|
+
return (0, _uploader.flushOrphanSessions)();
|
|
170
|
+
case 9:
|
|
171
|
+
_context.next = 14;
|
|
172
|
+
break;
|
|
173
|
+
case 11:
|
|
174
|
+
_context.prev = 11;
|
|
175
|
+
_context.t0 = _context["catch"](6);
|
|
176
|
+
_logger.default.warn('Failed to flush orphan sessions:', _context.t0);
|
|
177
|
+
case 14:
|
|
178
|
+
// 注入取消回调(解除 uploader/worker-manager → init 的循环依赖)
|
|
179
|
+
cancelCallback = function cancelCallback() {
|
|
180
|
+
try {
|
|
181
|
+
cancelRlog({}, 'upload failure');
|
|
182
|
+
} catch (error) {
|
|
183
|
+
_logger.default.error('Failed to cancel SDK via upload failure callback:', error);
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
(0, _uploader.setCancelCallback)(cancelCallback);
|
|
187
|
+
(0, _uploadWorkerManager.setWorkerCancelCallback)(cancelCallback);
|
|
188
|
+
|
|
189
|
+
// 启动统一上传循环
|
|
190
|
+
// 错误模式下:idle 时跳过上传,uploading 时上传,状态由 ErrorTrigger 控制
|
|
191
|
+
// 全量模式下:持续轮询上传
|
|
192
|
+
try {
|
|
193
|
+
(0, _uploader.startUploadLoop)(normalizedServUrl, appId);
|
|
194
|
+
} catch (error) {
|
|
195
|
+
_logger.default.error('Failed to start upload loop:', error);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
// 初始化路由监控
|
|
199
|
+
try {
|
|
200
|
+
(0, _routerMonitor.initRouterMonitor)(config.routerMonitor);
|
|
201
|
+
} catch (error) {
|
|
202
|
+
_logger.default.warn('Failed to initialize router monitor:', error);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
// 判断是否启用错误监听上报:
|
|
206
|
+
// 1. 错误采集模式下强制启用(错误捕获模式必须依赖错误监听初始化)
|
|
207
|
+
// 2. 非错误模式下,根据用户 error 配置决定,默认不启用
|
|
208
|
+
enableError = isErrorMode || ((_config$error = config.error) !== null && _config$error !== void 0 ? _config$error : false);
|
|
209
|
+
if (enableError) {
|
|
210
|
+
try {
|
|
211
|
+
(0, _error.initErrorHandler)();
|
|
212
|
+
} catch (error) {
|
|
213
|
+
_logger.default.warn('Failed to initialize error handler:', error);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
_logger.default.log('Initialized successfully');
|
|
217
|
+
case 22:
|
|
218
|
+
case "end":
|
|
219
|
+
return _context.stop();
|
|
220
|
+
}
|
|
221
|
+
}, _callee, null, [[6, 11]]);
|
|
222
|
+
}))).catch(function (error) {
|
|
223
|
+
_logger.default.error('Failed to initialize SDK', error);
|
|
123
224
|
});
|
|
124
225
|
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rlog SDK 日志工具
|
|
3
|
+
* 统一管理所有日志输出,添加统一前缀 [Rlog]
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* 日志工具对象
|
|
7
|
+
*/
|
|
8
|
+
declare const logger: {
|
|
9
|
+
/**
|
|
10
|
+
* 普通日志
|
|
11
|
+
*/
|
|
12
|
+
log(...args: any[]): void;
|
|
13
|
+
/**
|
|
14
|
+
* 信息日志
|
|
15
|
+
*/
|
|
16
|
+
info(...args: any[]): void;
|
|
17
|
+
/**
|
|
18
|
+
* 警告日志
|
|
19
|
+
*/
|
|
20
|
+
warn(...args: any[]): void;
|
|
21
|
+
/**
|
|
22
|
+
* 错误日志
|
|
23
|
+
*/
|
|
24
|
+
error(...args: any[]): void;
|
|
25
|
+
};
|
|
26
|
+
export default logger;
|
|
27
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/lib/logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA+BH;;GAEG;AACH,QAAA,MAAM,MAAM;IACV;;OAEG;iBACU,GAAG,EAAE,GAAG,IAAI;IAIzB;;OAEG;kBACW,GAAG,EAAE,GAAG,IAAI;IAI1B;;OAEG;kBACW,GAAG,EAAE,GAAG,IAAI;IAI1B;;OAEG;mBACY,GAAG,EAAE,GAAG,IAAI;CAG5B,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _constants = require("./constants");
|
|
8
|
+
/**
|
|
9
|
+
* Rlog SDK 日志工具
|
|
10
|
+
* 统一管理所有日志输出,添加统一前缀 [Rlog]
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* 日志级别
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* 统一的日志输出函数
|
|
19
|
+
* @param level 日志级别
|
|
20
|
+
* @param args 日志参数
|
|
21
|
+
*/
|
|
22
|
+
function _log(level) {
|
|
23
|
+
var _console, _console2, _console3, _console4;
|
|
24
|
+
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
25
|
+
args[_key - 1] = arguments[_key];
|
|
26
|
+
}
|
|
27
|
+
switch (level) {
|
|
28
|
+
case 'log':
|
|
29
|
+
(_console = console).log.apply(_console, [_constants.LOG_PREFIX].concat(args));
|
|
30
|
+
break;
|
|
31
|
+
case 'info':
|
|
32
|
+
(_console2 = console).info.apply(_console2, [_constants.LOG_PREFIX].concat(args));
|
|
33
|
+
break;
|
|
34
|
+
case 'warn':
|
|
35
|
+
(_console3 = console).warn.apply(_console3, [_constants.LOG_PREFIX].concat(args));
|
|
36
|
+
break;
|
|
37
|
+
case 'error':
|
|
38
|
+
(_console4 = console).error.apply(_console4, [_constants.LOG_PREFIX].concat(args));
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* 日志工具对象
|
|
45
|
+
*/
|
|
46
|
+
var logger = {
|
|
47
|
+
/**
|
|
48
|
+
* 普通日志
|
|
49
|
+
*/
|
|
50
|
+
log: function log() {
|
|
51
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
52
|
+
args[_key2] = arguments[_key2];
|
|
53
|
+
}
|
|
54
|
+
_log.apply(void 0, ['log'].concat(args));
|
|
55
|
+
},
|
|
56
|
+
/**
|
|
57
|
+
* 信息日志
|
|
58
|
+
*/
|
|
59
|
+
info: function info() {
|
|
60
|
+
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
|
61
|
+
args[_key3] = arguments[_key3];
|
|
62
|
+
}
|
|
63
|
+
_log.apply(void 0, ['info'].concat(args));
|
|
64
|
+
},
|
|
65
|
+
/**
|
|
66
|
+
* 警告日志
|
|
67
|
+
*/
|
|
68
|
+
warn: function warn() {
|
|
69
|
+
for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
|
|
70
|
+
args[_key4] = arguments[_key4];
|
|
71
|
+
}
|
|
72
|
+
_log.apply(void 0, ['warn'].concat(args));
|
|
73
|
+
},
|
|
74
|
+
/**
|
|
75
|
+
* 错误日志
|
|
76
|
+
*/
|
|
77
|
+
error: function error() {
|
|
78
|
+
for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
|
|
79
|
+
args[_key5] = arguments[_key5];
|
|
80
|
+
}
|
|
81
|
+
_log.apply(void 0, ['error'].concat(args));
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
var _default = exports.default = logger;
|
package/dist/lib/lib/net.d.ts
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import { record } from 'rrweb';
|
|
2
|
+
import { ErrorTrigger } from './error-trigger';
|
|
3
|
+
/**
|
|
4
|
+
* 设置网络模块的错误触发器实例
|
|
5
|
+
*/
|
|
6
|
+
export declare function setNetErrorTrigger(trigger: ErrorTrigger | null): void;
|
|
7
|
+
export declare function normalizeUrl(url: string): string;
|
|
2
8
|
export declare function shouldRecordUrl(url: string): boolean;
|
|
3
9
|
export declare function watchXhr(r: typeof record): void;
|
|
4
10
|
export declare function restoreXhr(): void;
|
|
@@ -29,4 +35,9 @@ export declare function getSdkLogEndpoint(): string | null;
|
|
|
29
35
|
* @param headers 需要添加的自定义请求头对象
|
|
30
36
|
*/
|
|
31
37
|
export declare function setCustomHeaders(headers: Record<string, string>): void;
|
|
38
|
+
/**
|
|
39
|
+
* 获取当前设置的自定义请求头
|
|
40
|
+
* @returns 当前自定义请求头的副本
|
|
41
|
+
*/
|
|
42
|
+
export declare function getCustomHeaders(): Record<string, string>;
|
|
32
43
|
//# sourceMappingURL=net.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"net.d.ts","sourceRoot":"","sources":["../../../src/lib/net.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"net.d.ts","sourceRoot":"","sources":["../../../src/lib/net.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAc/C;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAErE;AAmBD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAmBhD;AAwED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAgBpD;AAiCD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,QAkQxC;AAGD,wBAAgB,UAAU,IAAI,IAAI,CAgBjC;AAGD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAQrD;AAED,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAE3C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAOrD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAE3C;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAoBxD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAEjD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAEtE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEzD"}
|