@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
|
@@ -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/lib/lib/api.js
CHANGED
|
@@ -7,6 +7,7 @@ exports.upload = void 0;
|
|
|
7
7
|
var _utils = require("./utils");
|
|
8
8
|
var _request = require("./request");
|
|
9
9
|
var _config = require("./config");
|
|
10
|
+
var _net = require("./net");
|
|
10
11
|
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; }
|
|
11
12
|
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
|
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); } }
|
|
@@ -31,7 +32,7 @@ var getCachedParam = function getCachedParam(paramName) {
|
|
|
31
32
|
var upload = exports.upload = /*#__PURE__*/function () {
|
|
32
33
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(opt) {
|
|
33
34
|
var _opt$data, _opt$data2;
|
|
34
|
-
var lastIndex, queryParams, config, paramsToReport, queryString, api, formData, response, responseData, error;
|
|
35
|
+
var lastIndex, queryParams, config, paramsToReport, queryString, api, formData, customHeaders, response, responseData, error;
|
|
35
36
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
36
37
|
while (1) switch (_context.prev = _context.next) {
|
|
37
38
|
case 0:
|
|
@@ -59,31 +60,36 @@ var upload = exports.upload = /*#__PURE__*/function () {
|
|
|
59
60
|
api = "".concat(opt.url).concat(queryString ? "?".concat(queryString) : '');
|
|
60
61
|
formData = new FormData();
|
|
61
62
|
formData.append('file', new Blob([JSON.stringify(opt.data)]), (0, _utils.generateUUIDCompat)() + '.json');
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
|
|
64
|
+
// 获取自定义请求头
|
|
65
|
+
customHeaders = (0, _net.getCustomHeaders)();
|
|
66
|
+
_context.next = 13;
|
|
67
|
+
return (0, _request.post)(api, formData, {
|
|
68
|
+
headers: customHeaders
|
|
69
|
+
});
|
|
70
|
+
case 13:
|
|
65
71
|
response = _context.sent;
|
|
66
|
-
_context.prev =
|
|
72
|
+
_context.prev = 14;
|
|
67
73
|
responseData = typeof response.data === 'string' ? JSON.parse(response.data) : response.data;
|
|
68
|
-
_context.next =
|
|
74
|
+
_context.next = 21;
|
|
69
75
|
break;
|
|
70
|
-
case
|
|
71
|
-
_context.prev =
|
|
72
|
-
_context.t0 = _context["catch"](
|
|
76
|
+
case 18:
|
|
77
|
+
_context.prev = 18;
|
|
78
|
+
_context.t0 = _context["catch"](14);
|
|
73
79
|
return _context.abrupt("return");
|
|
74
|
-
case
|
|
80
|
+
case 21:
|
|
75
81
|
if (!(responseData && _typeof(responseData) === 'object' && responseData.success === false)) {
|
|
76
|
-
_context.next =
|
|
82
|
+
_context.next = 25;
|
|
77
83
|
break;
|
|
78
84
|
}
|
|
79
85
|
error = new Error(responseData.errorMessage || 'Upload failed with success=false'); // 将完整的响应数据附加到错误对象上
|
|
80
86
|
error.responseData = responseData;
|
|
81
87
|
throw error;
|
|
82
|
-
case
|
|
88
|
+
case 25:
|
|
83
89
|
case "end":
|
|
84
90
|
return _context.stop();
|
|
85
91
|
}
|
|
86
|
-
}, _callee, null, [[
|
|
92
|
+
}, _callee, null, [[14, 18]]);
|
|
87
93
|
}));
|
|
88
94
|
return function upload(_x) {
|
|
89
95
|
return _ref.apply(this, arguments);
|
package/dist/lib/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/lib/lib/config.js
CHANGED
|
@@ -10,6 +10,7 @@ exports.updateConfig = updateConfig;
|
|
|
10
10
|
var _request = require("./request");
|
|
11
11
|
var _utils = require("./utils");
|
|
12
12
|
var _logger = _interopRequireDefault(require("./logger"));
|
|
13
|
+
var _net = require("./net");
|
|
13
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
15
|
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; }
|
|
15
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); }
|
|
@@ -29,7 +30,6 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
|
|
|
29
30
|
// 默认配置
|
|
30
31
|
var DEFAULT_CONFIG = {
|
|
31
32
|
enable: true,
|
|
32
|
-
samplingRate: 15,
|
|
33
33
|
uploadInterval: 2000,
|
|
34
34
|
configUpdateInterval: 300000,
|
|
35
35
|
// 5分钟
|
|
@@ -50,14 +50,14 @@ var DEFAULT_CONFIG = {
|
|
|
50
50
|
blockClass: 'rr-block',
|
|
51
51
|
maskTextClass: 'rr-mask',
|
|
52
52
|
sampling: {
|
|
53
|
+
canvas: 15,
|
|
54
|
+
// Canvas 采样率 (帧/秒)
|
|
53
55
|
mousemove: 50,
|
|
54
56
|
// 每50ms最多采集一次mousemove事件
|
|
55
57
|
scroll: 100,
|
|
56
58
|
// 滚动事件防抖,每100ms采集一次,
|
|
57
59
|
input: 'last' // 输入只记录最后一次,
|
|
58
60
|
},
|
|
59
|
-
error: false,
|
|
60
|
-
// 默认不启用错误处理
|
|
61
61
|
packEvents: false,
|
|
62
62
|
// 默认不使用rrweb的packFn压缩事件数据
|
|
63
63
|
clearStorageBeforeRecord: true,
|
|
@@ -67,8 +67,6 @@ var DEFAULT_CONFIG = {
|
|
|
67
67
|
errorCapture: {
|
|
68
68
|
beforeDuration: 30000,
|
|
69
69
|
afterDuration: 30000,
|
|
70
|
-
maxBufferSize: 10000,
|
|
71
|
-
triggerErrors: ['js', 'promise', 'resource', 'http', 'custom'],
|
|
72
70
|
httpErrorThreshold: 400
|
|
73
71
|
},
|
|
74
72
|
// 路由监控配置
|
|
@@ -80,9 +78,7 @@ var DEFAULT_CONFIG = {
|
|
|
80
78
|
trackHistoryChange: true,
|
|
81
79
|
trackPageStayTime: true,
|
|
82
80
|
// 是否计算页面停留时间
|
|
83
|
-
ignoreRoutes: []
|
|
84
|
-
// 路由是否应该被忽略
|
|
85
|
-
customMatchers: [] // 自定义匹配规则
|
|
81
|
+
ignoreRoutes: [] // 路由是否应该被忽略
|
|
86
82
|
}
|
|
87
83
|
};
|
|
88
84
|
|
|
@@ -103,21 +99,25 @@ function fetchConfigFromCdn(_x) {
|
|
|
103
99
|
*/
|
|
104
100
|
function _fetchConfigFromCdn() {
|
|
105
101
|
_fetchConfigFromCdn = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(cdnUrl) {
|
|
106
|
-
var response, config;
|
|
102
|
+
var customHeaders, response, config;
|
|
107
103
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
108
104
|
while (1) switch (_context.prev = _context.next) {
|
|
109
105
|
case 0:
|
|
110
106
|
_context.prev = 0;
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
107
|
+
// 从 net.ts 中获取自定义请求头
|
|
108
|
+
customHeaders = (0, _net.getCustomHeaders)();
|
|
109
|
+
_context.next = 4;
|
|
110
|
+
return (0, _request.get)(cdnUrl, {
|
|
111
|
+
headers: customHeaders
|
|
112
|
+
});
|
|
113
|
+
case 4:
|
|
114
114
|
response = _context.sent;
|
|
115
115
|
if (response.ok) {
|
|
116
|
-
_context.next =
|
|
116
|
+
_context.next = 7;
|
|
117
117
|
break;
|
|
118
118
|
}
|
|
119
119
|
throw new Error("Failed to fetch config: ".concat(response.status));
|
|
120
|
-
case
|
|
120
|
+
case 7:
|
|
121
121
|
config = {}; // 处理三种不同的响应格式
|
|
122
122
|
if (response.data) {
|
|
123
123
|
// 情况1: response.data 直接就是配置对象
|
|
@@ -138,16 +138,16 @@ function _fetchConfigFromCdn() {
|
|
|
138
138
|
}
|
|
139
139
|
}
|
|
140
140
|
return _context.abrupt("return", (0, _utils.deepMergeConfig)(DEFAULT_CONFIG, config));
|
|
141
|
-
case
|
|
142
|
-
_context.prev =
|
|
141
|
+
case 12:
|
|
142
|
+
_context.prev = 12;
|
|
143
143
|
_context.t0 = _context["catch"](0);
|
|
144
144
|
_logger.default.warn('Failed to fetch config from CDN, using default config', _context.t0);
|
|
145
145
|
return _context.abrupt("return", _objectSpread({}, DEFAULT_CONFIG));
|
|
146
|
-
case
|
|
146
|
+
case 16:
|
|
147
147
|
case "end":
|
|
148
148
|
return _context.stop();
|
|
149
149
|
}
|
|
150
|
-
}, _callee, null, [[0,
|
|
150
|
+
}, _callee, null, [[0, 12]]);
|
|
151
151
|
}));
|
|
152
152
|
return _fetchConfigFromCdn.apply(this, arguments);
|
|
153
153
|
}
|
|
@@ -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"}
|
|
@@ -37,12 +37,11 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
|
|
|
37
37
|
*/
|
|
38
38
|
var ErrorTrigger = exports.ErrorTrigger = /*#__PURE__*/function () {
|
|
39
39
|
function ErrorTrigger() {
|
|
40
|
-
var _options$beforeDurati, _options$afterDuratio
|
|
40
|
+
var _options$beforeDurati, _options$afterDuratio;
|
|
41
41
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
42
42
|
_classCallCheck(this, ErrorTrigger);
|
|
43
43
|
_defineProperty(this, "beforeDuration", void 0);
|
|
44
44
|
_defineProperty(this, "afterDuration", void 0);
|
|
45
|
-
_defineProperty(this, "triggerErrors", void 0);
|
|
46
45
|
// 状态机
|
|
47
46
|
_defineProperty(this, "state", 'idle');
|
|
48
47
|
// afterDuration 倒计时定时器
|
|
@@ -51,7 +50,6 @@ var ErrorTrigger = exports.ErrorTrigger = /*#__PURE__*/function () {
|
|
|
51
50
|
_defineProperty(this, "destroyed", false);
|
|
52
51
|
this.beforeDuration = (_options$beforeDurati = options.beforeDuration) !== null && _options$beforeDurati !== void 0 ? _options$beforeDurati : 30000;
|
|
53
52
|
this.afterDuration = (_options$afterDuratio = options.afterDuration) !== null && _options$afterDuratio !== void 0 ? _options$afterDuratio : 30000;
|
|
54
|
-
this.triggerErrors = new Set((_options$triggerError = options.triggerErrors) !== null && _options$triggerError !== void 0 ? _options$triggerError : ['js', 'promise', 'resource', 'http', 'custom']);
|
|
55
53
|
}
|
|
56
54
|
|
|
57
55
|
/**
|
|
@@ -78,11 +76,6 @@ var ErrorTrigger = exports.ErrorTrigger = /*#__PURE__*/function () {
|
|
|
78
76
|
key: "onError",
|
|
79
77
|
value: function onError(errorInfo) {
|
|
80
78
|
if (this.destroyed) return;
|
|
81
|
-
|
|
82
|
-
// 检查错误类型是否在触发列表中
|
|
83
|
-
if (!this.triggerErrors.has(errorInfo.type)) {
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
79
|
if (this.state === 'idle') {
|
|
87
80
|
// ===== 首次错误触发 =====
|
|
88
81
|
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"}
|
package/dist/lib/lib/error.js
CHANGED
|
@@ -35,44 +35,28 @@ function getErrorTrigger() {
|
|
|
35
35
|
|
|
36
36
|
// 错误数据发送函数 - 使用 rrweb 的自定义事件功能
|
|
37
37
|
var sendErrorToAnalytics = exports.sendErrorToAnalytics = function sendErrorToAnalytics(data) {
|
|
38
|
-
var config = (0, _config.getConfig)();
|
|
39
|
-
|
|
40
|
-
// 如果错误处理未启用,直接返回
|
|
41
|
-
if (!config.error) {
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
38
|
// 使用 rrweb 的自定义事件功能上报错误
|
|
46
39
|
try {
|
|
47
40
|
_rrweb.record.addCustomEvent('custom-error-event', data);
|
|
48
41
|
} catch (error) {
|
|
49
42
|
// 降级方案:直接控制台输出
|
|
50
|
-
_logger.default.
|
|
43
|
+
_logger.default.error('Error captured', data);
|
|
51
44
|
}
|
|
52
45
|
|
|
53
46
|
// 错误采集模式下,通知错误触发器
|
|
47
|
+
var config = (0, _config.getConfig)();
|
|
54
48
|
if (config.captureMode === 'error' && errorTriggerInstance) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
detail: data
|
|
62
|
-
});
|
|
63
|
-
}
|
|
49
|
+
errorTriggerInstance.onError({
|
|
50
|
+
type: data.type,
|
|
51
|
+
message: data.message || data.type,
|
|
52
|
+
timestamp: data.timestamp || Date.now(),
|
|
53
|
+
detail: data
|
|
54
|
+
});
|
|
64
55
|
}
|
|
65
56
|
};
|
|
66
57
|
|
|
67
58
|
// 初始化错误处理
|
|
68
59
|
function initErrorHandler() {
|
|
69
|
-
var config = (0, _config.getConfig)();
|
|
70
|
-
|
|
71
|
-
// 如果错误处理未启用,不注册任何事件监听器
|
|
72
|
-
if (!config.error) {
|
|
73
|
-
_logger.default.log('Error handling is disabled by config');
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
60
|
_logger.default.log('Error handling is enabled');
|
|
77
61
|
|
|
78
62
|
// JavaScript 运行时错误处理
|
|
@@ -223,20 +207,4 @@ function cleanupErrorHandler() {
|
|
|
223
207
|
// 清空监听器数组
|
|
224
208
|
eventListeners.length = 0;
|
|
225
209
|
_logger.default.log('Error handlers cleaned up successfully');
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
/**
|
|
229
|
-
* 将内部错误类型映射到 ErrorTrigger 的错误类型
|
|
230
|
-
*/
|
|
231
|
-
function mapErrorType(internalType) {
|
|
232
|
-
switch (internalType) {
|
|
233
|
-
case 'JS_ERROR':
|
|
234
|
-
return 'js';
|
|
235
|
-
case 'PROMISE_REJECTION':
|
|
236
|
-
return 'promise';
|
|
237
|
-
case 'RESOURCE_ERROR':
|
|
238
|
-
return 'resource';
|
|
239
|
-
default:
|
|
240
|
-
return null;
|
|
241
|
-
}
|
|
242
210
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/lib/init.ts"],"names":[],"mappings":"AAqBA;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,EACrC,OAAO,GAAE,MAAuB,GAC/B,IAAI,CAiDN;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,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/lib/init.ts"],"names":[],"mappings":"AAqBA;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,EACrC,OAAO,GAAE,MAAuB,GAC/B,IAAI,CAiDN;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,CA0DN"}
|
package/dist/lib/lib/init.js
CHANGED
|
@@ -115,22 +115,14 @@ function initRLog(serv, appId, cdnConfigUrl) {
|
|
|
115
115
|
}
|
|
116
116
|
var isErrorMode = config.captureMode === 'error';
|
|
117
117
|
if (isErrorMode) {
|
|
118
|
-
var _config$errorCapture, _config$errorCapture2
|
|
118
|
+
var _config$errorCapture, _config$errorCapture2;
|
|
119
119
|
// ===== 错误采集模式初始化 =====
|
|
120
120
|
_logger.default.log('Initializing in error capture mode');
|
|
121
121
|
|
|
122
|
-
// 强制启用错误监听
|
|
123
|
-
if (!config.error) {
|
|
124
|
-
(0, _config.updateConfig)({
|
|
125
|
-
error: true
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
|
|
129
122
|
// 创建 ErrorTrigger 实例(只负责状态切换)
|
|
130
123
|
errorTriggerInstance = new _errorTrigger.ErrorTrigger({
|
|
131
124
|
beforeDuration: (_config$errorCapture = config.errorCapture) === null || _config$errorCapture === void 0 ? void 0 : _config$errorCapture.beforeDuration,
|
|
132
|
-
afterDuration: (_config$errorCapture2 = config.errorCapture) === null || _config$errorCapture2 === void 0 ? void 0 : _config$errorCapture2.afterDuration
|
|
133
|
-
triggerErrors: (_config$errorCapture3 = config.errorCapture) === null || _config$errorCapture3 === void 0 ? void 0 : _config$errorCapture3.triggerErrors
|
|
125
|
+
afterDuration: (_config$errorCapture2 = config.errorCapture) === null || _config$errorCapture2 === void 0 ? void 0 : _config$errorCapture2.afterDuration
|
|
134
126
|
});
|
|
135
127
|
|
|
136
128
|
// 将 errorTrigger 注入到 error 和 net 模块
|
|
@@ -149,7 +141,7 @@ function initRLog(serv, appId, cdnConfigUrl) {
|
|
|
149
141
|
// 初始化路由监控
|
|
150
142
|
(0, _routerMonitor.initRouterMonitor)(config.routerMonitor);
|
|
151
143
|
|
|
152
|
-
//
|
|
144
|
+
// 初始化错误处理(全量模式和错误模式都启用)
|
|
153
145
|
(0, _error.initErrorHandler)();
|
|
154
146
|
}).catch(function (error) {
|
|
155
147
|
_logger.default.error('Failed to initialize SDK', error);
|
package/dist/lib/lib/net.d.ts
CHANGED
|
@@ -34,4 +34,9 @@ export declare function getSdkLogEndpoint(): string | null;
|
|
|
34
34
|
* @param headers 需要添加的自定义请求头对象
|
|
35
35
|
*/
|
|
36
36
|
export declare function setCustomHeaders(headers: Record<string, string>): void;
|
|
37
|
+
/**
|
|
38
|
+
* 获取当前设置的自定义请求头
|
|
39
|
+
* @returns 当前自定义请求头的副本
|
|
40
|
+
*/
|
|
41
|
+
export declare function getCustomHeaders(): Record<string, string>;
|
|
37
42
|
//# 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;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAM/C;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAErE;AA2ID,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAgBpD;AAUD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,QAkPxC;AAGD,wBAAgB,UAAU,IAAI,IAAI,CAYjC;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,CAsBxD;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"}
|
|
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;AAM/C;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAErE;AA2ID,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAgBpD;AAUD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,QAkPxC;AAGD,wBAAgB,UAAU,IAAI,IAAI,CAYjC;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,CAsBxD;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"}
|
package/dist/lib/lib/net.js
CHANGED
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.getBlackListUrls = getBlackListUrls;
|
|
8
|
+
exports.getCustomHeaders = getCustomHeaders;
|
|
8
9
|
exports.getSdkLogEndpoint = getSdkLogEndpoint;
|
|
9
10
|
exports.getWhiteListUrls = getWhiteListUrls;
|
|
10
11
|
exports.restoreXhr = restoreXhr;
|
|
@@ -494,4 +495,12 @@ function getSdkLogEndpoint() {
|
|
|
494
495
|
*/
|
|
495
496
|
function setCustomHeaders(headers) {
|
|
496
497
|
Object.assign(customHeaders, headers);
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
/**
|
|
501
|
+
* 获取当前设置的自定义请求头
|
|
502
|
+
* @returns 当前自定义请求头的副本
|
|
503
|
+
*/
|
|
504
|
+
function getCustomHeaders() {
|
|
505
|
+
return _objectSpread({}, customHeaders);
|
|
497
506
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router-monitor.d.ts","sourceRoot":"","sources":["../../../src/lib/router-monitor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,UAAU,CAAC;AAIrD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,GAAG,cAAc,GAAG,UAAU,GAAG,YAAY,CAAC;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"router-monitor.d.ts","sourceRoot":"","sources":["../../../src/lib/router-monitor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,UAAU,CAAC;AAIrD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,GAAG,cAAc,GAAG,UAAU,GAAG,YAAY,CAAC;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA2ID;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,eAAe,CAAC,GAAG,IAAI,CAuB3E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,eAAe,CAAC,QAkCpE;AAED;;GAEG;AACH,wBAAgB,mBAAmB;;;;EAMlC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,QAG1D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,SAyBhC"}
|
|
@@ -13,9 +13,6 @@ var _config = require("./config");
|
|
|
13
13
|
var _logger = _interopRequireDefault(require("./logger"));
|
|
14
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
15
|
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); }
|
|
16
|
-
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
17
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
18
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
19
16
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
20
17
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
21
18
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
@@ -38,39 +35,18 @@ var originalReplaceState = null;
|
|
|
38
35
|
* 获取当前路由
|
|
39
36
|
*/
|
|
40
37
|
function getCurrentRoute() {
|
|
41
|
-
var _routerConfig;
|
|
42
38
|
if (typeof window === 'undefined') return '';
|
|
43
39
|
|
|
44
|
-
//
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
// 应用自定义匹配规则
|
|
48
|
-
if ((_routerConfig = routerConfig) !== null && _routerConfig !== void 0 && _routerConfig.customMatchers) {
|
|
49
|
-
var _iterator = _createForOfIteratorHelper(routerConfig.customMatchers),
|
|
50
|
-
_step;
|
|
51
|
-
try {
|
|
52
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
53
|
-
var matcher = _step.value;
|
|
54
|
-
var pattern = typeof matcher.pattern === 'string' ? new RegExp(matcher.pattern) : matcher.pattern;
|
|
55
|
-
if (pattern.test(fullPath)) {
|
|
56
|
-
return matcher.name || fullPath;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
} catch (err) {
|
|
60
|
-
_iterator.e(err);
|
|
61
|
-
} finally {
|
|
62
|
-
_iterator.f();
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
return fullPath;
|
|
40
|
+
// 使用完整路径
|
|
41
|
+
return window.location.pathname + window.location.search + window.location.hash;
|
|
66
42
|
}
|
|
67
43
|
|
|
68
44
|
/**
|
|
69
45
|
* 检查路由是否应该被忽略
|
|
70
46
|
*/
|
|
71
47
|
function shouldIgnoreRoute(route) {
|
|
72
|
-
var
|
|
73
|
-
if (!((
|
|
48
|
+
var _routerConfig;
|
|
49
|
+
if (!((_routerConfig = routerConfig) !== null && _routerConfig !== void 0 && _routerConfig.ignoreRoutes)) return false;
|
|
74
50
|
return routerConfig.ignoreRoutes.some(function (pattern) {
|
|
75
51
|
if (typeof pattern === 'string') {
|
|
76
52
|
return route.includes(pattern);
|
|
@@ -86,8 +62,8 @@ function shouldIgnoreRoute(route) {
|
|
|
86
62
|
* 上报路由变化事件
|
|
87
63
|
*/
|
|
88
64
|
function reportRouteChange(from, to, method) {
|
|
89
|
-
var
|
|
90
|
-
if (!((
|
|
65
|
+
var _routerConfig2;
|
|
66
|
+
if (!((_routerConfig2 = routerConfig) !== null && _routerConfig2 !== void 0 && _routerConfig2.enable) || shouldIgnoreRoute(to)) {
|
|
91
67
|
return;
|
|
92
68
|
}
|
|
93
69
|
var event = {
|
|
@@ -180,15 +156,14 @@ function handleHashChange() {
|
|
|
180
156
|
* @param config 新的配置对象
|
|
181
157
|
*/
|
|
182
158
|
function updateRouterConfig(config) {
|
|
183
|
-
var _defaultConfig$enable, _defaultConfig$trackH, _defaultConfig$trackH2, _defaultConfig$trackP, _defaultConfig$ignore
|
|
159
|
+
var _defaultConfig$enable, _defaultConfig$trackH, _defaultConfig$trackH2, _defaultConfig$trackP, _defaultConfig$ignore;
|
|
184
160
|
var defaultConfig = (0, _config.getConfig)().routerMonitor || {};
|
|
185
161
|
var newConfig = _objectSpread({
|
|
186
162
|
enable: (_defaultConfig$enable = defaultConfig.enable) !== null && _defaultConfig$enable !== void 0 ? _defaultConfig$enable : false,
|
|
187
163
|
trackHashChange: (_defaultConfig$trackH = defaultConfig.trackHashChange) !== null && _defaultConfig$trackH !== void 0 ? _defaultConfig$trackH : true,
|
|
188
164
|
trackHistoryChange: (_defaultConfig$trackH2 = defaultConfig.trackHistoryChange) !== null && _defaultConfig$trackH2 !== void 0 ? _defaultConfig$trackH2 : true,
|
|
189
165
|
trackPageStayTime: (_defaultConfig$trackP = defaultConfig.trackPageStayTime) !== null && _defaultConfig$trackP !== void 0 ? _defaultConfig$trackP : true,
|
|
190
|
-
ignoreRoutes: (_defaultConfig$ignore = defaultConfig.ignoreRoutes) !== null && _defaultConfig$ignore !== void 0 ? _defaultConfig$ignore : []
|
|
191
|
-
customMatchers: (_defaultConfig$custom = defaultConfig.customMatchers) !== null && _defaultConfig$custom !== void 0 ? _defaultConfig$custom : []
|
|
166
|
+
ignoreRoutes: (_defaultConfig$ignore = defaultConfig.ignoreRoutes) !== null && _defaultConfig$ignore !== void 0 ? _defaultConfig$ignore : []
|
|
192
167
|
}, config || {});
|
|
193
168
|
|
|
194
169
|
// 如果配置发生变化,重新初始化
|
|
@@ -207,7 +182,7 @@ function updateRouterConfig(config) {
|
|
|
207
182
|
* 初始化路由监控
|
|
208
183
|
*/
|
|
209
184
|
function initRouterMonitor(config) {
|
|
210
|
-
var _defaultConfig$enable2, _defaultConfig$trackH3, _defaultConfig$trackH4, _defaultConfig$trackP2, _defaultConfig$ignore2
|
|
185
|
+
var _defaultConfig$enable2, _defaultConfig$trackH3, _defaultConfig$trackH4, _defaultConfig$trackP2, _defaultConfig$ignore2;
|
|
211
186
|
if (isInitialized || typeof window === 'undefined') return;
|
|
212
187
|
|
|
213
188
|
// 合并配置
|
|
@@ -217,8 +192,7 @@ function initRouterMonitor(config) {
|
|
|
217
192
|
trackHashChange: (_defaultConfig$trackH3 = defaultConfig.trackHashChange) !== null && _defaultConfig$trackH3 !== void 0 ? _defaultConfig$trackH3 : true,
|
|
218
193
|
trackHistoryChange: (_defaultConfig$trackH4 = defaultConfig.trackHistoryChange) !== null && _defaultConfig$trackH4 !== void 0 ? _defaultConfig$trackH4 : true,
|
|
219
194
|
trackPageStayTime: (_defaultConfig$trackP2 = defaultConfig.trackPageStayTime) !== null && _defaultConfig$trackP2 !== void 0 ? _defaultConfig$trackP2 : true,
|
|
220
|
-
ignoreRoutes: (_defaultConfig$ignore2 = defaultConfig.ignoreRoutes) !== null && _defaultConfig$ignore2 !== void 0 ? _defaultConfig$ignore2 : []
|
|
221
|
-
customMatchers: (_defaultConfig$custom2 = defaultConfig.customMatchers) !== null && _defaultConfig$custom2 !== void 0 ? _defaultConfig$custom2 : []
|
|
195
|
+
ignoreRoutes: (_defaultConfig$ignore2 = defaultConfig.ignoreRoutes) !== null && _defaultConfig$ignore2 !== void 0 ? _defaultConfig$ignore2 : []
|
|
222
196
|
}, config || {});
|
|
223
197
|
|
|
224
198
|
// 如果未启用,直接返回
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rrweb.d.ts","sourceRoot":"","sources":["../../../src/lib/rrweb.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,UAAU,YAKtB,CAAC;AAEF,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"rrweb.d.ts","sourceRoot":"","sources":["../../../src/lib/rrweb.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,UAAU,YAKtB,CAAC;AAEF,eAAO,MAAM,WAAW,YAuFvB,CAAC"}
|