@antglobal/rlog-sdk 0.0.1779194445-dev.0 → 0.0.1781493462-dev.2
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/dist/esm/lib/api.d.ts.map +1 -1
- package/dist/esm/lib/api.js +27 -16
- package/dist/esm/lib/config.d.ts +1 -1
- package/dist/esm/lib/config.d.ts.map +1 -1
- package/dist/esm/lib/config.js +2 -2
- package/dist/esm/lib/constants.d.ts +10 -2
- package/dist/esm/lib/constants.d.ts.map +1 -1
- package/dist/esm/lib/constants.js +16 -2
- package/dist/esm/lib/rrweb.d.ts.map +1 -1
- package/dist/esm/lib/rrweb.js +14 -10
- package/dist/esm/lib/sign.d.ts +36 -0
- package/dist/esm/lib/sign.d.ts.map +1 -0
- package/dist/esm/lib/sign.js +393 -0
- package/dist/esm/lib/upload-worker-manager.d.ts.map +1 -1
- package/dist/esm/lib/upload-worker-manager.js +20 -9
- package/dist/esm/lib/utils.d.ts +5 -0
- package/dist/esm/lib/utils.d.ts.map +1 -1
- package/dist/esm/lib/utils.js +10 -2
- package/dist/lib/lib/api.d.ts.map +1 -1
- package/dist/lib/lib/api.js +27 -16
- package/dist/lib/lib/config.d.ts +1 -1
- package/dist/lib/lib/config.d.ts.map +1 -1
- package/dist/lib/lib/config.js +2 -2
- package/dist/lib/lib/constants.d.ts +10 -2
- package/dist/lib/lib/constants.d.ts.map +1 -1
- package/dist/lib/lib/constants.js +17 -3
- package/dist/lib/lib/rrweb.d.ts.map +1 -1
- package/dist/lib/lib/rrweb.js +12 -10
- package/dist/lib/lib/sign.d.ts +36 -0
- package/dist/lib/lib/sign.d.ts.map +1 -0
- package/dist/lib/lib/sign.js +398 -0
- package/dist/lib/lib/upload-worker-manager.d.ts.map +1 -1
- package/dist/lib/lib/upload-worker-manager.js +20 -9
- package/dist/lib/lib/utils.d.ts +5 -0
- package/dist/lib/lib/utils.d.ts.map +1 -1
- package/dist/lib/lib/utils.js +10 -2
- package/dist/rlog-sdk.min.js +1 -1
- package/package.json +3 -3
|
@@ -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":"AAUA,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;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,GAAG,EAAE,CAAC;CACb,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAyBzB;AAED,eAAO,MAAM,MAAM,QAAe,aAAa,kBA2C9C,CAAC"}
|
package/dist/esm/lib/api.js
CHANGED
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
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; }
|
|
2
2
|
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
|
+
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; }
|
|
4
|
+
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; }
|
|
5
|
+
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; }
|
|
6
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
7
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
3
8
|
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); } }
|
|
4
9
|
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); }); }; }
|
|
5
10
|
import { generateUUIDCompat } from "./utils";
|
|
6
11
|
import { post } from "./request";
|
|
7
12
|
import { getConfig } from "./config";
|
|
8
13
|
import { getCustomHeaders } from "./net";
|
|
14
|
+
import { computeSignHeaders } from "./sign";
|
|
9
15
|
import { STORAGE_KEY_URL_PARAM_PREFIX, DEFAULT_URL_PARAMS_TO_CACHE } from "./constants";
|
|
10
16
|
// 从URL中提取指定参数并存储到sessionStorage中
|
|
11
17
|
var cacheUrlParams = function cacheUrlParams() {
|
|
@@ -57,7 +63,7 @@ export function buildQueryParams(opts) {
|
|
|
57
63
|
}
|
|
58
64
|
export var upload = /*#__PURE__*/function () {
|
|
59
65
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(opt) {
|
|
60
|
-
var queryParams, queryString, api, formData, customHeaders, response, responseData, error;
|
|
66
|
+
var queryParams, queryString, api, jsonData, signHeaders, formData, customHeaders, response, responseData, error;
|
|
61
67
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
62
68
|
while (1) switch (_context.prev = _context.next) {
|
|
63
69
|
case 0:
|
|
@@ -68,39 +74,44 @@ export var upload = /*#__PURE__*/function () {
|
|
|
68
74
|
data: opt.data
|
|
69
75
|
});
|
|
70
76
|
queryString = new URLSearchParams(queryParams);
|
|
71
|
-
api = "".concat(opt.url).concat(queryString ? "?".concat(queryString) : '');
|
|
77
|
+
api = "".concat(opt.url).concat(queryString ? "?".concat(queryString) : ''); // 序列化事件数据并计算签名请求头
|
|
78
|
+
jsonData = JSON.stringify(opt.data);
|
|
79
|
+
_context.next = 6;
|
|
80
|
+
return computeSignHeaders(queryParams, jsonData);
|
|
81
|
+
case 6:
|
|
82
|
+
signHeaders = _context.sent;
|
|
72
83
|
formData = new FormData();
|
|
73
|
-
formData.append('file', new Blob([
|
|
84
|
+
formData.append('file', new Blob([jsonData]), generateUUIDCompat() + '.json');
|
|
74
85
|
|
|
75
|
-
//
|
|
86
|
+
// 获取自定义请求头并合并签名头
|
|
76
87
|
customHeaders = getCustomHeaders();
|
|
77
|
-
_context.next =
|
|
88
|
+
_context.next = 12;
|
|
78
89
|
return post(api, formData, {
|
|
79
|
-
headers: customHeaders
|
|
90
|
+
headers: _objectSpread(_objectSpread({}, customHeaders), signHeaders)
|
|
80
91
|
});
|
|
81
|
-
case
|
|
92
|
+
case 12:
|
|
82
93
|
response = _context.sent;
|
|
83
|
-
_context.prev =
|
|
94
|
+
_context.prev = 13;
|
|
84
95
|
responseData = typeof response.data === 'string' ? JSON.parse(response.data) : response.data;
|
|
85
|
-
_context.next =
|
|
96
|
+
_context.next = 20;
|
|
86
97
|
break;
|
|
87
|
-
case
|
|
88
|
-
_context.prev =
|
|
89
|
-
_context.t0 = _context["catch"](
|
|
98
|
+
case 17:
|
|
99
|
+
_context.prev = 17;
|
|
100
|
+
_context.t0 = _context["catch"](13);
|
|
90
101
|
return _context.abrupt("return");
|
|
91
|
-
case
|
|
102
|
+
case 20:
|
|
92
103
|
if (!(responseData && _typeof(responseData) === 'object' && responseData.success === false)) {
|
|
93
|
-
_context.next =
|
|
104
|
+
_context.next = 24;
|
|
94
105
|
break;
|
|
95
106
|
}
|
|
96
107
|
error = new Error(responseData.errorMessage || 'Upload failed with success=false'); // 将完整的响应数据附加到错误对象上
|
|
97
108
|
error.responseData = responseData;
|
|
98
109
|
throw error;
|
|
99
|
-
case
|
|
110
|
+
case 24:
|
|
100
111
|
case "end":
|
|
101
112
|
return _context.stop();
|
|
102
113
|
}
|
|
103
|
-
}, _callee, null, [[
|
|
114
|
+
}, _callee, null, [[13, 17]]);
|
|
104
115
|
}));
|
|
105
116
|
return function upload(_x) {
|
|
106
117
|
return _ref.apply(this, arguments);
|
package/dist/esm/lib/config.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;IAIF,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAG/B,KAAK,CAAC,EAAE,OAAO,CAAC;IAGhB,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAG/B,YAAY,CAAC,EAAE,kBAAkB,CAAC;CACnC;AAkDD;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAoC3E;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAEhE;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,SAAS,CAErC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAKvC;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BtE"}
|
package/dist/esm/lib/config.js
CHANGED
|
@@ -82,8 +82,16 @@ export declare const IDB_DB_NAME = "LogStorageDB";
|
|
|
82
82
|
export declare const IDB_STORE_NAME = "logs";
|
|
83
83
|
/** IndexedDB 数据库版本号 */
|
|
84
84
|
export declare const IDB_VERSION = 2;
|
|
85
|
-
/**
|
|
86
|
-
export declare const
|
|
85
|
+
/** 签名值请求头 */
|
|
86
|
+
export declare const HEADER_SIGN = "x-bk-sign";
|
|
87
|
+
/** 时间戳请求头 */
|
|
88
|
+
export declare const HEADER_TIMESTAMP = "x-bk-ts";
|
|
89
|
+
/** 文件 MD5 请求头 */
|
|
90
|
+
export declare const HEADER_MD5 = "x-bk-dm";
|
|
91
|
+
/** 图片导出格式(WebP) */
|
|
92
|
+
export declare const CANVAS_EXPORT_TYPE_WEBP = "image/webp";
|
|
93
|
+
/** 图片导出格式(JPEG),iOS Safari 不支持 canvas 导出 webp 时降级使用 */
|
|
94
|
+
export declare const CANVAS_EXPORT_TYPE_JPEG = "image/jpeg";
|
|
87
95
|
/** 图片导出质量 */
|
|
88
96
|
export declare const CANVAS_EXPORT_QUALITY = 0.6;
|
|
89
97
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,+BAA+B;AAC/B,eAAO,MAAM,qBAAqB,kBAAkB,CAAC;AAErD,uBAAuB;AACvB,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAE3C,yBAAyB;AACzB,eAAO,MAAM,0BAA0B,sBAAsB,CAAC;AAE9D,mCAAmC;AACnC,eAAO,MAAM,4BAA4B,UAAU,CAAC;AAEpD,oCAAoC;AACpC,eAAO,MAAM,4BAA4B,kBAAkB,CAAC;AAE5D,gBAAgB;AAChB,eAAO,MAAM,uBAAuB,eAAe,CAAC;AAEpD,gBAAgB;AAChB,eAAO,MAAM,uBAAuB,eAAe,CAAC;AAEpD,mCAAmC;AACnC,eAAO,MAAM,wBAAwB,sBAAsB,CAAC;AAE5D,mCAAmC;AACnC,eAAO,MAAM,0BAA0B,QAAQ,CAAC;AAEhD,0CAA0C;AAC1C,eAAO,MAAM,gBAAgB,0BAA0B,CAAC;AAExD,uCAAuC;AACvC,eAAO,MAAM,qBAAqB,+BAA+B,CAAC;AAIlE,0DAA0D;AAC1D,eAAO,MAAM,eAAe,QAAqB,CAAC;AAElD,iEAAiE;AACjE,eAAO,MAAM,oBAAoB,QAAgB,CAAC;AAElD,iEAAiE;AACjE,eAAO,MAAM,sBAAsB,QAAgB,CAAC;AAEpD,mBAAmB;AACnB,eAAO,MAAM,YAAY,OAAO,CAAC;AAEjC,qBAAqB;AACrB,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,oCAAoC;AACpC,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAEzC,yBAAyB;AACzB,eAAO,MAAM,eAAe,QAAQ,CAAC;AAErC,2BAA2B;AAC3B,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAItC,mBAAmB;AACnB,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AAExC,iBAAiB;AACjB,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,mBAAmB;AACnB,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC,wBAAwB;AACxB,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AAEvC,uBAAuB;AACvB,eAAO,MAAM,2BAA2B,UAAa,CAAC;AAItD,mDAAmD;AACnD,eAAO,MAAM,oBAAoB,wBAAwB,CAAC;AAE1D,gBAAgB;AAChB,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AAEvD,oBAAoB;AACpB,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AAEjD,oBAAoB;AACpB,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAE7C,iBAAiB;AACjB,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AAErD,eAAe;AACf,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AAEjD,iBAAiB;AACjB,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AAIrD,kBAAkB;AAClB,eAAO,MAAM,eAAe,UAQ3B,CAAC;AAEF,kBAAkB;AAClB,eAAO,MAAM,eAAe,UAgB3B,CAAC;AAEF,yBAAyB;AACzB,eAAO,MAAM,kBAAkB,UAAsC,CAAC;AAEtE,gCAAgC;AAChC,eAAO,MAAM,uBAAuB,UAEnC,CAAC;AAIF,eAAe;AACf,eAAO,MAAM,UAAU,WAAW,CAAC;AAInC,sBAAsB;AACtB,eAAO,MAAM,WAAW,iBAAiB,CAAC;AAE1C,uBAAuB;AACvB,eAAO,MAAM,cAAc,SAAS,CAAC;AAErC,uBAAuB;AACvB,eAAO,MAAM,WAAW,IAAI,CAAC;AAI7B,aAAa;AACb,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -136,10 +136,24 @@ export var IDB_STORE_NAME = 'logs';
|
|
|
136
136
|
/** IndexedDB 数据库版本号 */
|
|
137
137
|
export var IDB_VERSION = 2;
|
|
138
138
|
|
|
139
|
+
// ==================== 上报接口加签请求头 ====================
|
|
140
|
+
|
|
141
|
+
/** 签名值请求头 */
|
|
142
|
+
export var HEADER_SIGN = 'x-bk-sign';
|
|
143
|
+
|
|
144
|
+
/** 时间戳请求头 */
|
|
145
|
+
export var HEADER_TIMESTAMP = 'x-bk-ts';
|
|
146
|
+
|
|
147
|
+
/** 文件 MD5 请求头 */
|
|
148
|
+
export var HEADER_MD5 = 'x-bk-dm';
|
|
149
|
+
|
|
139
150
|
// ==================== rrweb 录制默认配置 ====================
|
|
140
151
|
|
|
141
|
-
/**
|
|
142
|
-
export var
|
|
152
|
+
/** 图片导出格式(WebP) */
|
|
153
|
+
export var CANVAS_EXPORT_TYPE_WEBP = 'image/webp';
|
|
154
|
+
|
|
155
|
+
/** 图片导出格式(JPEG),iOS Safari 不支持 canvas 导出 webp 时降级使用 */
|
|
156
|
+
export var CANVAS_EXPORT_TYPE_JPEG = 'image/jpeg';
|
|
143
157
|
|
|
144
158
|
/** 图片导出质量 */
|
|
145
159
|
export var CANVAS_EXPORT_QUALITY = 0.6;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rrweb.d.ts","sourceRoot":"","sources":["../../../src/lib/rrweb.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rrweb.d.ts","sourceRoot":"","sources":["../../../src/lib/rrweb.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,UAAU,YAKtB,CAAC;AAEF,eAAO,MAAM,WAAW,YA+FvB,CAAC"}
|
package/dist/esm/lib/rrweb.js
CHANGED
|
@@ -4,14 +4,14 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
4
4
|
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; }
|
|
5
5
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
6
6
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
7
|
-
import
|
|
7
|
+
import { record } from 'rrweb';
|
|
8
8
|
import { getRecordConsolePlugin } from '@rrweb/rrweb-plugin-console-record';
|
|
9
|
-
import { getDeviceId, getStorageKey } from "./utils";
|
|
9
|
+
import { getDeviceId, getStorageKey, isIOS } from "./utils";
|
|
10
10
|
import { storage } from "./storage-manager";
|
|
11
11
|
import { setCustomHeaders, setWhiteListUrls, watchXhr } from "./net";
|
|
12
12
|
import { getConfig } from "./config";
|
|
13
13
|
import logger from "./logger";
|
|
14
|
-
import { STORAGE_KEY_DEVICE_ID, DEFAULT_WHITE_LIST_URLS,
|
|
14
|
+
import { STORAGE_KEY_DEVICE_ID, DEFAULT_WHITE_LIST_URLS, CANVAS_EXPORT_TYPE_WEBP, CANVAS_EXPORT_TYPE_JPEG, CANVAS_EXPORT_QUALITY } from "./constants";
|
|
15
15
|
var stopRecordFn = null;
|
|
16
16
|
export var stopRecord = function stopRecord() {
|
|
17
17
|
if (stopRecordFn) {
|
|
@@ -20,6 +20,7 @@ export var stopRecord = function stopRecord() {
|
|
|
20
20
|
}
|
|
21
21
|
};
|
|
22
22
|
export var startRecord = function startRecord() {
|
|
23
|
+
var _config$ignoreCSSAttr;
|
|
23
24
|
// 检查采集总开关
|
|
24
25
|
var config = getConfig();
|
|
25
26
|
if (!config.enable) {
|
|
@@ -54,7 +55,10 @@ export var startRecord = function startRecord() {
|
|
|
54
55
|
});
|
|
55
56
|
plugins.push(getRecordConsolePlugin(consoleConfig));
|
|
56
57
|
}
|
|
57
|
-
|
|
58
|
+
|
|
59
|
+
// 构建 ignoreCSSAttributes 集合
|
|
60
|
+
var ignoreCSSAttributes = (_config$ignoreCSSAttr = config.ignoreCSSAttributes) !== null && _config$ignoreCSSAttr !== void 0 && _config$ignoreCSSAttr.length ? new Set(config.ignoreCSSAttributes) : new Set();
|
|
61
|
+
stopRecordFn = record({
|
|
58
62
|
emit: function emit(event) {
|
|
59
63
|
// you should use console.log in this way to avoid errors.
|
|
60
64
|
// const defaultLog = (console.log as any)['__rrweb_original__']
|
|
@@ -79,16 +83,16 @@ export var startRecord = function startRecord() {
|
|
|
79
83
|
ignoreClass: config.ignoreClass,
|
|
80
84
|
blockClass: config.blockClass,
|
|
81
85
|
maskTextClass: config.maskTextClass,
|
|
82
|
-
//
|
|
86
|
+
// 忽略高频 CSS 属性变更,避免动画 CSS 变量产生冗余增量快照
|
|
87
|
+
ignoreCSSAttributes: ignoreCSSAttributes,
|
|
88
|
+
// 图像的格式:iOS Safari 不支持 canvas 导出 webp(会静默回退为 png 无损,体积大),降级为 jpeg
|
|
83
89
|
dataURLOptions: {
|
|
84
|
-
type:
|
|
90
|
+
type: isIOS() ? CANVAS_EXPORT_TYPE_JPEG : CANVAS_EXPORT_TYPE_WEBP,
|
|
85
91
|
quality: CANVAS_EXPORT_QUALITY
|
|
86
92
|
},
|
|
87
93
|
collectFonts: true,
|
|
88
94
|
recordCrossOriginIframes: true,
|
|
89
|
-
plugins: [].concat(plugins)
|
|
90
|
-
// 是否使用rrweb的packFn压缩事件数据,默认false
|
|
91
|
-
packFn: config.packEvents ? rrweb.pack : undefined
|
|
95
|
+
plugins: [].concat(plugins)
|
|
92
96
|
});
|
|
93
97
|
|
|
94
98
|
// 设置网络监控
|
|
@@ -98,7 +102,7 @@ export var startRecord = function startRecord() {
|
|
|
98
102
|
// 根据配置决定是否开启接口请求抓取
|
|
99
103
|
if (config.http) {
|
|
100
104
|
try {
|
|
101
|
-
watchXhr(
|
|
105
|
+
watchXhr(record);
|
|
102
106
|
} catch (error) {
|
|
103
107
|
logger.warn('Failed to initialize HTTP monitoring:', error);
|
|
104
108
|
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 上报接口加签模块
|
|
3
|
+
*
|
|
4
|
+
* 签名算法:
|
|
5
|
+
* 1. md5 = MD5(rrweb 录制的 JSON 数据)
|
|
6
|
+
* 2. ts = Date.now()
|
|
7
|
+
* 3. secret = MD5(md5 + ts) — 一次性签名密钥
|
|
8
|
+
* 4. sign = HMAC-SHA256(encodeURIComponent(sortedParams) + md5 + ts, secret)
|
|
9
|
+
*
|
|
10
|
+
* 请求头:
|
|
11
|
+
* x-bk-sign = sign
|
|
12
|
+
* x-bk-ts = ts
|
|
13
|
+
* x-bk-dm = md5
|
|
14
|
+
*/
|
|
15
|
+
export declare function md5(str: string): string;
|
|
16
|
+
/**
|
|
17
|
+
* 将查询参数按 key 字母序排列并拼接为字符串,过滤空值
|
|
18
|
+
* @param params 查询参数键值对
|
|
19
|
+
* @returns 排序后的参数字符串,如 "appId=xxx&deviceId=yyy&startTime=zzz"
|
|
20
|
+
*/
|
|
21
|
+
export declare function sortAndConcatParams(params: Record<string, string>): string;
|
|
22
|
+
/**
|
|
23
|
+
* 计算上报接口的签名请求头
|
|
24
|
+
*
|
|
25
|
+
* 签名流程:
|
|
26
|
+
* 1. md5 = MD5(上报数据的 JSON 字符串)
|
|
27
|
+
* 2. ts = 当前时间戳(毫秒)
|
|
28
|
+
* 3. secret = MD5(md5 + ts) — 一次性签名密钥
|
|
29
|
+
* 4. sign = HMAC-SHA256(encodeURIComponent(sortedParams) + md5 + ts, secret)
|
|
30
|
+
*
|
|
31
|
+
* @param queryParams 查询参数键值对
|
|
32
|
+
* @param jsonData 上报数据的 JSON 字符串
|
|
33
|
+
* @returns 签名请求头 { x-bk-sign, x-bk-ts, x-bk-dm }
|
|
34
|
+
*/
|
|
35
|
+
export declare function computeSignHeaders(queryParams: Record<string, string>, jsonData: string): Promise<Record<string, string>>;
|
|
36
|
+
//# sourceMappingURL=sign.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sign.d.ts","sourceRoot":"","sources":["../../../src/lib/sign.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAqKH,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvC;AAoMD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAW1E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACnC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAajC"}
|