@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.
Files changed (38) hide show
  1. package/dist/esm/lib/api.d.ts.map +1 -1
  2. package/dist/esm/lib/api.js +27 -16
  3. package/dist/esm/lib/config.d.ts +1 -1
  4. package/dist/esm/lib/config.d.ts.map +1 -1
  5. package/dist/esm/lib/config.js +2 -2
  6. package/dist/esm/lib/constants.d.ts +10 -2
  7. package/dist/esm/lib/constants.d.ts.map +1 -1
  8. package/dist/esm/lib/constants.js +16 -2
  9. package/dist/esm/lib/rrweb.d.ts.map +1 -1
  10. package/dist/esm/lib/rrweb.js +14 -10
  11. package/dist/esm/lib/sign.d.ts +36 -0
  12. package/dist/esm/lib/sign.d.ts.map +1 -0
  13. package/dist/esm/lib/sign.js +393 -0
  14. package/dist/esm/lib/upload-worker-manager.d.ts.map +1 -1
  15. package/dist/esm/lib/upload-worker-manager.js +20 -9
  16. package/dist/esm/lib/utils.d.ts +5 -0
  17. package/dist/esm/lib/utils.d.ts.map +1 -1
  18. package/dist/esm/lib/utils.js +10 -2
  19. package/dist/lib/lib/api.d.ts.map +1 -1
  20. package/dist/lib/lib/api.js +27 -16
  21. package/dist/lib/lib/config.d.ts +1 -1
  22. package/dist/lib/lib/config.d.ts.map +1 -1
  23. package/dist/lib/lib/config.js +2 -2
  24. package/dist/lib/lib/constants.d.ts +10 -2
  25. package/dist/lib/lib/constants.d.ts.map +1 -1
  26. package/dist/lib/lib/constants.js +17 -3
  27. package/dist/lib/lib/rrweb.d.ts.map +1 -1
  28. package/dist/lib/lib/rrweb.js +12 -10
  29. package/dist/lib/lib/sign.d.ts +36 -0
  30. package/dist/lib/lib/sign.d.ts.map +1 -0
  31. package/dist/lib/lib/sign.js +398 -0
  32. package/dist/lib/lib/upload-worker-manager.d.ts.map +1 -1
  33. package/dist/lib/lib/upload-worker-manager.js +20 -9
  34. package/dist/lib/lib/utils.d.ts +5 -0
  35. package/dist/lib/lib/utils.d.ts.map +1 -1
  36. package/dist/lib/lib/utils.js +10 -2
  37. package/dist/rlog-sdk.min.js +1 -1
  38. package/package.json +3 -3
@@ -9,9 +9,15 @@ var _utils = require("./utils");
9
9
  var _request = require("./request");
10
10
  var _config = require("./config");
11
11
  var _net = require("./net");
12
+ var _sign = require("./sign");
12
13
  var _constants = require("./constants");
13
14
  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; }
14
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 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; }
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; }
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; }
19
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
20
+ 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); }
15
21
  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); } }
16
22
  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); }); }; }
17
23
  // 从URL中提取指定参数并存储到sessionStorage中
@@ -64,7 +70,7 @@ function buildQueryParams(opts) {
64
70
  }
65
71
  var upload = exports.upload = /*#__PURE__*/function () {
66
72
  var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(opt) {
67
- var queryParams, queryString, api, formData, customHeaders, response, responseData, error;
73
+ var queryParams, queryString, api, jsonData, signHeaders, formData, customHeaders, response, responseData, error;
68
74
  return _regeneratorRuntime().wrap(function _callee$(_context) {
69
75
  while (1) switch (_context.prev = _context.next) {
70
76
  case 0:
@@ -75,39 +81,44 @@ var upload = exports.upload = /*#__PURE__*/function () {
75
81
  data: opt.data
76
82
  });
77
83
  queryString = new URLSearchParams(queryParams);
78
- api = "".concat(opt.url).concat(queryString ? "?".concat(queryString) : '');
84
+ api = "".concat(opt.url).concat(queryString ? "?".concat(queryString) : ''); // 序列化事件数据并计算签名请求头
85
+ jsonData = JSON.stringify(opt.data);
86
+ _context.next = 6;
87
+ return (0, _sign.computeSignHeaders)(queryParams, jsonData);
88
+ case 6:
89
+ signHeaders = _context.sent;
79
90
  formData = new FormData();
80
- formData.append('file', new Blob([JSON.stringify(opt.data)]), (0, _utils.generateUUIDCompat)() + '.json');
91
+ formData.append('file', new Blob([jsonData]), (0, _utils.generateUUIDCompat)() + '.json');
81
92
 
82
- // 获取自定义请求头
93
+ // 获取自定义请求头并合并签名头
83
94
  customHeaders = (0, _net.getCustomHeaders)();
84
- _context.next = 8;
95
+ _context.next = 12;
85
96
  return (0, _request.post)(api, formData, {
86
- headers: customHeaders
97
+ headers: _objectSpread(_objectSpread({}, customHeaders), signHeaders)
87
98
  });
88
- case 8:
99
+ case 12:
89
100
  response = _context.sent;
90
- _context.prev = 9;
101
+ _context.prev = 13;
91
102
  responseData = typeof response.data === 'string' ? JSON.parse(response.data) : response.data;
92
- _context.next = 16;
103
+ _context.next = 20;
93
104
  break;
94
- case 13:
95
- _context.prev = 13;
96
- _context.t0 = _context["catch"](9);
105
+ case 17:
106
+ _context.prev = 17;
107
+ _context.t0 = _context["catch"](13);
97
108
  return _context.abrupt("return");
98
- case 16:
109
+ case 20:
99
110
  if (!(responseData && _typeof(responseData) === 'object' && responseData.success === false)) {
100
- _context.next = 20;
111
+ _context.next = 24;
101
112
  break;
102
113
  }
103
114
  error = new Error(responseData.errorMessage || 'Upload failed with success=false'); // 将完整的响应数据附加到错误对象上
104
115
  error.responseData = responseData;
105
116
  throw error;
106
- case 20:
117
+ case 24:
107
118
  case "end":
108
119
  return _context.stop();
109
120
  }
110
- }, _callee, null, [[9, 13]]);
121
+ }, _callee, null, [[13, 17]]);
111
122
  }));
112
123
  return function upload(_x) {
113
124
  return _ref.apply(this, arguments);
@@ -40,7 +40,7 @@ export interface CdnConfig {
40
40
  trackPageStayTime?: boolean;
41
41
  ignoreRoutes?: string[];
42
42
  };
43
- packEvents?: boolean;
43
+ ignoreCSSAttributes?: string[];
44
44
  error?: boolean;
45
45
  captureMode?: 'full' | 'error';
46
46
  errorCapture?: ErrorCaptureConfig;
@@ -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;IAGF,UAAU,CAAC,EAAE,OAAO,CAAC;IAGrB,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"}
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"}
@@ -59,8 +59,8 @@ var DEFAULT_CONFIG = {
59
59
  // 滚动事件防抖,每100ms采集一次,
60
60
  input: 'last' // 输入只记录最后一次,
61
61
  },
62
- packEvents: false,
63
- // 默认不使用rrweb的packFn压缩事件数据
62
+ ignoreCSSAttributes: [],
63
+ // 默认忽略 CSS 变量
64
64
  clearStorageBeforeRecord: true,
65
65
  // 默认在开始录制前清空存储数据
66
66
  error: false,
@@ -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 CANVAS_EXPORT_TYPE = "image/webp";
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,kBAAkB,eAAe,CAAC;AAE/C,aAAa;AACb,eAAO,MAAM,qBAAqB,MAAM,CAAC"}
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,WAAW,cAAc,CAAC;AAEvC,aAAa;AACb,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAE1C,iBAAiB;AACjB,eAAO,MAAM,UAAU,YAAY,CAAC;AAIpC,mBAAmB;AACnB,eAAO,MAAM,uBAAuB,eAAe,CAAC;AAEpD,uDAAuD;AACvD,eAAO,MAAM,uBAAuB,eAAe,CAAC;AAEpD,aAAa;AACb,eAAO,MAAM,qBAAqB,MAAM,CAAC"}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.WORKER_READY_TIMEOUT = exports.UPLOAD_RETRY_DELAY = exports.STORAGE_VALUE_CONSUME_ONLY = exports.STORAGE_TEST_KEY = exports.STORAGE_KEY_UTOKEN = exports.STORAGE_KEY_URL_PARAM_PREFIX = exports.STORAGE_KEY_SESSION_REGISTRY = exports.STORAGE_KEY_LOCK_PREFIX = exports.STORAGE_KEY_IWP_DEVICE_TAG = exports.STORAGE_KEY_DEVICE_ID = exports.STORAGE_KEY_DATA_PREFIX = exports.STORAGE_KEY_CONSUME_ONLY = exports.SESSION_MAX_AGE = exports.SAFE_STORAGE_TEST_KEY = exports.REQUEST_TIMEOUT = exports.PULL_BATCH_SIZE = exports.ORPHAN_SESSION_MAX_AGE = exports.ORPHAN_PULL_LIMIT = exports.ORPHAN_DATA_MAX_SPAN = exports.MAX_STORAGE_EVENTS = exports.LOG_PREFIX = exports.LOCK_TIMEOUT = exports.LOCK_RETRY_DELAY = exports.LOCK_MAX_RETRIES = exports.IDB_VERSION = exports.IDB_STORE_NAME = exports.IDB_DB_NAME = exports.HEADERS_TO_EXTRACT = exports.EVENT_UPLOAD_FAILURE = exports.EVENT_ROUTE_CHANGE = exports.EVENT_PAGE_LIFECYCLE = exports.EVENT_NETWORK_STATUS = exports.EVENT_HTTP_SUCCESS = exports.EVENT_HTTP_ERROR = exports.EVENT_CUSTOM_ERROR = exports.DEFAULT_WHITE_LIST_URLS = exports.DEFAULT_URL_PARAMS_TO_CACHE = exports.CANVAS_EXPORT_TYPE = exports.CANVAS_EXPORT_QUALITY = exports.BLACK_PATH_NAME = exports.BLACK_HOST_NAME = void 0;
6
+ exports.WORKER_READY_TIMEOUT = exports.UPLOAD_RETRY_DELAY = exports.STORAGE_VALUE_CONSUME_ONLY = exports.STORAGE_TEST_KEY = exports.STORAGE_KEY_UTOKEN = exports.STORAGE_KEY_URL_PARAM_PREFIX = exports.STORAGE_KEY_SESSION_REGISTRY = exports.STORAGE_KEY_LOCK_PREFIX = exports.STORAGE_KEY_IWP_DEVICE_TAG = exports.STORAGE_KEY_DEVICE_ID = exports.STORAGE_KEY_DATA_PREFIX = exports.STORAGE_KEY_CONSUME_ONLY = exports.SESSION_MAX_AGE = exports.SAFE_STORAGE_TEST_KEY = exports.REQUEST_TIMEOUT = exports.PULL_BATCH_SIZE = exports.ORPHAN_SESSION_MAX_AGE = exports.ORPHAN_PULL_LIMIT = exports.ORPHAN_DATA_MAX_SPAN = exports.MAX_STORAGE_EVENTS = exports.LOG_PREFIX = exports.LOCK_TIMEOUT = exports.LOCK_RETRY_DELAY = exports.LOCK_MAX_RETRIES = exports.IDB_VERSION = exports.IDB_STORE_NAME = exports.IDB_DB_NAME = exports.HEADER_TIMESTAMP = exports.HEADER_SIGN = exports.HEADER_MD5 = exports.HEADERS_TO_EXTRACT = exports.EVENT_UPLOAD_FAILURE = exports.EVENT_ROUTE_CHANGE = exports.EVENT_PAGE_LIFECYCLE = exports.EVENT_NETWORK_STATUS = exports.EVENT_HTTP_SUCCESS = exports.EVENT_HTTP_ERROR = exports.EVENT_CUSTOM_ERROR = exports.DEFAULT_WHITE_LIST_URLS = exports.DEFAULT_URL_PARAMS_TO_CACHE = exports.CANVAS_EXPORT_TYPE_WEBP = exports.CANVAS_EXPORT_TYPE_JPEG = exports.CANVAS_EXPORT_QUALITY = exports.BLACK_PATH_NAME = exports.BLACK_HOST_NAME = void 0;
7
7
  /**
8
8
  * Rlog SDK 全局常量定义
9
9
  *
@@ -142,10 +142,24 @@ var IDB_STORE_NAME = exports.IDB_STORE_NAME = 'logs';
142
142
  /** IndexedDB 数据库版本号 */
143
143
  var IDB_VERSION = exports.IDB_VERSION = 2;
144
144
 
145
+ // ==================== 上报接口加签请求头 ====================
146
+
147
+ /** 签名值请求头 */
148
+ var HEADER_SIGN = exports.HEADER_SIGN = 'x-bk-sign';
149
+
150
+ /** 时间戳请求头 */
151
+ var HEADER_TIMESTAMP = exports.HEADER_TIMESTAMP = 'x-bk-ts';
152
+
153
+ /** 文件 MD5 请求头 */
154
+ var HEADER_MD5 = exports.HEADER_MD5 = 'x-bk-dm';
155
+
145
156
  // ==================== rrweb 录制默认配置 ====================
146
157
 
147
- /** 图片导出格式 */
148
- var CANVAS_EXPORT_TYPE = exports.CANVAS_EXPORT_TYPE = 'image/webp';
158
+ /** 图片导出格式(WebP) */
159
+ var CANVAS_EXPORT_TYPE_WEBP = exports.CANVAS_EXPORT_TYPE_WEBP = 'image/webp';
160
+
161
+ /** 图片导出格式(JPEG),iOS Safari 不支持 canvas 导出 webp 时降级使用 */
162
+ var CANVAS_EXPORT_TYPE_JPEG = exports.CANVAS_EXPORT_TYPE_JPEG = 'image/jpeg';
149
163
 
150
164
  /** 图片导出质量 */
151
165
  var CANVAS_EXPORT_QUALITY = exports.CANVAS_EXPORT_QUALITY = 0.6;
@@ -1 +1 @@
1
- {"version":3,"file":"rrweb.d.ts","sourceRoot":"","sources":["../../../src/lib/rrweb.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,UAAU,YAKtB,CAAC;AAEF,eAAO,MAAM,WAAW,YA0FvB,CAAC"}
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"}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.stopRecord = exports.startRecord = void 0;
7
- var rrweb = _interopRequireWildcard(require("rrweb"));
7
+ var _rrweb = require("rrweb");
8
8
  var _rrwebPluginConsoleRecord = require("@rrweb/rrweb-plugin-console-record");
9
9
  var _utils = require("./utils");
10
10
  var _storageManager = require("./storage-manager");
@@ -13,8 +13,6 @@ var _config = require("./config");
13
13
  var _logger = _interopRequireDefault(require("./logger"));
14
14
  var _constants = require("./constants");
15
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
17
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
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); }
19
17
  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
18
  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; }
@@ -29,6 +27,7 @@ var stopRecord = exports.stopRecord = function stopRecord() {
29
27
  }
30
28
  };
31
29
  var startRecord = exports.startRecord = function startRecord() {
30
+ var _config$ignoreCSSAttr;
32
31
  // 检查采集总开关
33
32
  var config = (0, _config.getConfig)();
34
33
  if (!config.enable) {
@@ -63,7 +62,10 @@ var startRecord = exports.startRecord = function startRecord() {
63
62
  });
64
63
  plugins.push((0, _rrwebPluginConsoleRecord.getRecordConsolePlugin)(consoleConfig));
65
64
  }
66
- stopRecordFn = rrweb.record({
65
+
66
+ // 构建 ignoreCSSAttributes 集合
67
+ var ignoreCSSAttributes = (_config$ignoreCSSAttr = config.ignoreCSSAttributes) !== null && _config$ignoreCSSAttr !== void 0 && _config$ignoreCSSAttr.length ? new Set(config.ignoreCSSAttributes) : new Set();
68
+ stopRecordFn = (0, _rrweb.record)({
67
69
  emit: function emit(event) {
68
70
  // you should use console.log in this way to avoid errors.
69
71
  // const defaultLog = (console.log as any)['__rrweb_original__']
@@ -88,16 +90,16 @@ var startRecord = exports.startRecord = function startRecord() {
88
90
  ignoreClass: config.ignoreClass,
89
91
  blockClass: config.blockClass,
90
92
  maskTextClass: config.maskTextClass,
91
- // 图像的格式
93
+ // 忽略高频 CSS 属性变更,避免动画 CSS 变量产生冗余增量快照
94
+ ignoreCSSAttributes: ignoreCSSAttributes,
95
+ // 图像的格式:iOS Safari 不支持 canvas 导出 webp(会静默回退为 png 无损,体积大),降级为 jpeg
92
96
  dataURLOptions: {
93
- type: _constants.CANVAS_EXPORT_TYPE,
97
+ type: (0, _utils.isIOS)() ? _constants.CANVAS_EXPORT_TYPE_JPEG : _constants.CANVAS_EXPORT_TYPE_WEBP,
94
98
  quality: _constants.CANVAS_EXPORT_QUALITY
95
99
  },
96
100
  collectFonts: true,
97
101
  recordCrossOriginIframes: true,
98
- plugins: [].concat(plugins),
99
- // 是否使用rrweb的packFn压缩事件数据,默认false
100
- packFn: config.packEvents ? rrweb.pack : undefined
102
+ plugins: [].concat(plugins)
101
103
  });
102
104
 
103
105
  // 设置网络监控
@@ -107,7 +109,7 @@ var startRecord = exports.startRecord = function startRecord() {
107
109
  // 根据配置决定是否开启接口请求抓取
108
110
  if (config.http) {
109
111
  try {
110
- (0, _net.watchXhr)(rrweb.record);
112
+ (0, _net.watchXhr)(_rrweb.record);
111
113
  } catch (error) {
112
114
  _logger.default.warn('Failed to initialize HTTP monitoring:', error);
113
115
  }
@@ -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"}