@highlight-run/rrweb 2.0.1 → 2.0.4

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 (117) hide show
  1. package/dist/plugins/console-record.js +408 -609
  2. package/dist/plugins/console-record.min.js +12 -15
  3. package/dist/plugins/console-record.min.js.map +1 -1
  4. package/dist/plugins/console-replay.js +142 -271
  5. package/dist/plugins/console-replay.min.js +4 -15
  6. package/dist/plugins/console-replay.min.js.map +1 -1
  7. package/dist/plugins/sequential-id-record.js +23 -26
  8. package/dist/plugins/sequential-id-record.min.js +1 -1
  9. package/dist/plugins/sequential-id-record.min.js.map +1 -1
  10. package/dist/plugins/sequential-id-replay.js +26 -30
  11. package/dist/plugins/sequential-id-replay.min.js +1 -1
  12. package/dist/plugins/sequential-id-replay.min.js.map +1 -1
  13. package/dist/record/rrweb-record-pack.js +63 -146
  14. package/dist/record/rrweb-record-pack.min.js +3 -15
  15. package/dist/record/rrweb-record-pack.min.js.map +1 -1
  16. package/dist/record/rrweb-record.js +3002 -3118
  17. package/dist/record/rrweb-record.min.js +4 -15
  18. package/dist/record/rrweb-record.min.js.map +1 -1
  19. package/dist/replay/rrweb-replay-unpack.js +4354 -4054
  20. package/dist/replay/rrweb-replay-unpack.min.js +5 -17
  21. package/dist/replay/rrweb-replay-unpack.min.js.map +1 -1
  22. package/dist/replay/rrweb-replay.js +4286 -3984
  23. package/dist/replay/rrweb-replay.min.js +5 -17
  24. package/dist/replay/rrweb-replay.min.js.map +1 -1
  25. package/dist/rrweb-all.js +7634 -7453
  26. package/dist/rrweb-all.min.js +16 -17
  27. package/dist/rrweb-all.min.js.map +1 -1
  28. package/dist/rrweb.js +7339 -7075
  29. package/dist/rrweb.min.js +6 -17
  30. package/dist/rrweb.min.js.map +1 -1
  31. package/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__auto__createBase64WorkerFactory.js +12 -0
  32. package/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__auto__isNodeJS.js +7 -0
  33. package/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__browser__createBase64WorkerFactory.js +31 -0
  34. package/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__node__WorkerClass.js +11 -0
  35. package/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__node__createBase64WorkerFactory.js +18 -0
  36. package/es/rrweb/_virtual/image-bitmap-data-url-worker.js +6 -0
  37. package/es/rrweb/ext/mitt/dist/mitt.es.js +1 -1
  38. package/es/rrweb/ext/tslib/tslib.es6.js +38 -0
  39. package/es/rrweb/packages/rrdom/es/virtual-dom.js +1099 -0
  40. package/es/rrweb/packages/rrweb/src/index.js +6 -4
  41. package/es/rrweb/packages/rrweb/src/packer/base.js +1 -1
  42. package/es/rrweb/packages/rrweb/src/packer/pack.js +4 -5
  43. package/es/rrweb/packages/rrweb/src/packer/unpack.js +24 -24
  44. package/es/rrweb/packages/rrweb/src/plugins/console/record/error-stack-parser.js +175 -176
  45. package/es/rrweb/packages/rrweb/src/plugins/console/record/index.js +109 -128
  46. package/es/rrweb/packages/rrweb/src/plugins/console/record/stringify.js +125 -138
  47. package/es/rrweb/packages/rrweb/src/plugins/console/replay/index.js +88 -105
  48. package/es/rrweb/packages/rrweb/src/plugins/sequential-id/record/index.js +19 -20
  49. package/es/rrweb/packages/rrweb/src/plugins/sequential-id/replay/index.js +25 -25
  50. package/es/rrweb/packages/rrweb/src/record/iframe-manager.js +29 -30
  51. package/es/rrweb/packages/rrweb/src/record/index.js +348 -373
  52. package/es/rrweb/packages/rrweb/src/record/mutation.js +487 -528
  53. package/es/rrweb/packages/rrweb/src/record/observer.js +584 -659
  54. package/es/rrweb/packages/rrweb/src/record/observers/canvas/2d.js +44 -73
  55. package/es/rrweb/packages/rrweb/src/record/observers/canvas/canvas-manager.js +166 -87
  56. package/es/rrweb/packages/rrweb/src/record/observers/canvas/canvas.js +21 -26
  57. package/es/rrweb/packages/rrweb/src/record/observers/canvas/serialize-args.js +119 -112
  58. package/es/rrweb/packages/rrweb/src/record/observers/canvas/webgl.js +53 -72
  59. package/es/rrweb/packages/rrweb/src/record/shadow-dom-manager.js +38 -40
  60. package/es/rrweb/packages/rrweb/src/record/stylesheet-manager.js +31 -0
  61. package/es/rrweb/packages/rrweb/src/replay/canvas/2d.js +27 -23
  62. package/es/rrweb/packages/rrweb/src/replay/canvas/deserialize-args.js +67 -0
  63. package/es/rrweb/packages/rrweb/src/replay/canvas/index.js +37 -29
  64. package/es/rrweb/packages/rrweb/src/replay/canvas/webgl.js +58 -120
  65. package/es/rrweb/packages/rrweb/src/replay/index.js +1545 -1854
  66. package/es/rrweb/packages/rrweb/src/replay/machine.js +275 -315
  67. package/es/rrweb/packages/rrweb/src/replay/smoothscroll.js +216 -218
  68. package/es/rrweb/packages/rrweb/src/replay/styles/inject-style.js +7 -7
  69. package/es/rrweb/packages/rrweb/src/replay/timer.js +87 -91
  70. package/es/rrweb/packages/rrweb/src/types.js +72 -72
  71. package/es/rrweb/packages/rrweb/src/utils.js +312 -506
  72. package/es/rrweb/packages/rrweb-snapshot/es/rrweb-snapshot.js +195 -71
  73. package/lib/plugins/console-record.js +469 -627
  74. package/lib/plugins/console-replay.js +198 -268
  75. package/lib/plugins/sequential-id-record.js +19 -20
  76. package/lib/plugins/sequential-id-replay.js +25 -25
  77. package/lib/record/rrweb-record-pack.js +184 -139
  78. package/lib/record/rrweb-record.js +2473 -2425
  79. package/lib/replay/rrweb-replay-unpack.js +3797 -3343
  80. package/lib/replay/rrweb-replay.js +3742 -3288
  81. package/lib/rrweb-all.js +6725 -6247
  82. package/lib/rrweb.js +6157 -5632
  83. package/package.json +14 -13
  84. package/typings/packer/base.d.ts +1 -1
  85. package/typings/plugins/console/record/index.d.ts +1 -1
  86. package/typings/plugins/console/record/stringify.d.ts +1 -1
  87. package/typings/plugins/sequential-id/record/index.d.ts +1 -1
  88. package/typings/plugins/sequential-id/replay/index.d.ts +1 -1
  89. package/typings/record/iframe-manager.d.ts +3 -3
  90. package/typings/record/index.d.ts +1 -1
  91. package/typings/record/mutation.d.ts +2 -1
  92. package/typings/record/observers/canvas/2d.d.ts +2 -1
  93. package/typings/record/observers/canvas/canvas-manager.d.ts +5 -2
  94. package/typings/record/observers/canvas/canvas.d.ts +1 -1
  95. package/typings/record/observers/canvas/serialize-args.d.ts +5 -5
  96. package/typings/record/observers/canvas/webgl.d.ts +2 -1
  97. package/typings/record/shadow-dom-manager.d.ts +2 -1
  98. package/typings/record/stylesheet-manager.d.ts +12 -0
  99. package/typings/record/workers/image-bitmap-data-url-worker.d.ts +5 -0
  100. package/typings/replay/canvas/2d.d.ts +3 -3
  101. package/typings/replay/canvas/deserialize-args.d.ts +7 -0
  102. package/typings/replay/canvas/index.d.ts +4 -3
  103. package/typings/replay/canvas/webgl.d.ts +3 -5
  104. package/typings/replay/index.d.ts +7 -10
  105. package/typings/types.d.ts +45 -17
  106. package/typings/utils.d.ts +17 -44
  107. package/dist/replay/rrweb-replay-unpack.min.css +0 -2
  108. package/dist/replay/rrweb-replay-unpack.min.css.map +0 -1
  109. package/dist/replay/rrweb-replay.min.css +0 -2
  110. package/dist/replay/rrweb-replay.min.css.map +0 -1
  111. package/dist/rrweb-all.min.css +0 -2
  112. package/dist/rrweb-all.min.css.map +0 -1
  113. package/dist/rrweb.min.css +0 -2
  114. package/dist/rrweb.min.css.map +0 -1
  115. package/es/rrweb/packages/rrweb/ext/tslib/tslib.es6.js +0 -78
  116. package/es/rrweb/packages/rrweb/src/replay/virtual-styles.js +0 -121
  117. package/typings/replay/virtual-styles.d.ts +0 -43
@@ -1,111 +1,94 @@
1
- import { __values, __spreadArray, __read } from '../../../../ext/tslib/tslib.es6.js';
2
1
  import { PLUGIN_NAME } from '../record/index.js';
3
2
  import { EventType, IncrementalSource } from '../../../types.js';
4
3
 
5
- var ORIGINAL_ATTRIBUTE_NAME = '__rrweb_original__';
6
- var defaultLogConfig = {
7
- level: [
8
- 'assert',
9
- 'clear',
10
- 'count',
11
- 'countReset',
12
- 'debug',
13
- 'dir',
14
- 'dirxml',
15
- 'error',
16
- 'group',
17
- 'groupCollapsed',
18
- 'groupEnd',
19
- 'info',
20
- 'log',
21
- 'table',
22
- 'time',
23
- 'timeEnd',
24
- 'timeLog',
25
- 'trace',
26
- 'warn',
27
- ],
28
- replayLogger: undefined,
29
- };
30
- var LogReplayPlugin = (function () {
31
- function LogReplayPlugin(config) {
32
- this.config = Object.assign(defaultLogConfig, config);
33
- }
34
- LogReplayPlugin.prototype.getConsoleLogger = function () {
35
- var e_1, _a;
36
- var _this = this;
37
- var replayLogger = {};
38
- var _loop_1 = function (level) {
39
- if (level === 'trace') {
40
- replayLogger[level] = function (data) {
41
- var logger = console.log[ORIGINAL_ATTRIBUTE_NAME]
42
- ? console.log[ORIGINAL_ATTRIBUTE_NAME]
43
- : console.log;
44
- logger.apply(void 0, __spreadArray(__spreadArray([], __read(data.payload.map(function (s) { return JSON.parse(s); })), false), [_this.formatMessage(data)], false));
45
- };
46
- }
47
- else {
48
- replayLogger[level] = function (data) {
49
- var logger = console[level][ORIGINAL_ATTRIBUTE_NAME]
50
- ? console[level][ORIGINAL_ATTRIBUTE_NAME]
51
- : console[level];
52
- logger.apply(void 0, __spreadArray(__spreadArray([], __read(data.payload.map(function (s) { return JSON.parse(s); })), false), [_this.formatMessage(data)], false));
53
- };
54
- }
55
- };
56
- try {
57
- for (var _b = __values(this.config.level), _c = _b.next(); !_c.done; _c = _b.next()) {
58
- var level = _c.value;
59
- _loop_1(level);
60
- }
61
- }
62
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
63
- finally {
64
- try {
65
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
66
- }
67
- finally { if (e_1) throw e_1.error; }
68
- }
69
- return replayLogger;
70
- };
71
- LogReplayPlugin.prototype.formatMessage = function (data) {
72
- if (data.trace.length === 0) {
73
- return '';
74
- }
75
- var stackPrefix = '\n\tat ';
76
- var result = stackPrefix;
77
- result += data.trace.join(stackPrefix);
78
- return result;
79
- };
80
- return LogReplayPlugin;
81
- }());
82
- var getReplayConsolePlugin = function (options) {
83
- var replayLogger = (options === null || options === void 0 ? void 0 : options.replayLogger) || new LogReplayPlugin(options).getConsoleLogger();
84
- return {
85
- handler: function (event, _isSync, context) {
86
- var logData = null;
87
- if (event.type === EventType.IncrementalSnapshot &&
88
- event.data.source === IncrementalSource.Log) {
89
- logData = event.data;
90
- }
91
- else if (event.type === EventType.Plugin &&
92
- event.data.plugin === PLUGIN_NAME) {
93
- logData = event.data.payload;
94
- }
95
- if (logData) {
96
- try {
97
- if (typeof replayLogger[logData.level] === 'function') {
98
- replayLogger[logData.level](logData);
99
- }
100
- }
101
- catch (error) {
102
- if (context.replayer.config.showWarning) {
103
- console.warn(error);
104
- }
105
- }
106
- }
107
- },
108
- };
4
+ const ORIGINAL_ATTRIBUTE_NAME = '__rrweb_original__';
5
+ const defaultLogConfig = {
6
+ level: [
7
+ 'assert',
8
+ 'clear',
9
+ 'count',
10
+ 'countReset',
11
+ 'debug',
12
+ 'dir',
13
+ 'dirxml',
14
+ 'error',
15
+ 'group',
16
+ 'groupCollapsed',
17
+ 'groupEnd',
18
+ 'info',
19
+ 'log',
20
+ 'table',
21
+ 'time',
22
+ 'timeEnd',
23
+ 'timeLog',
24
+ 'trace',
25
+ 'warn',
26
+ ],
27
+ replayLogger: undefined,
28
+ };
29
+ class LogReplayPlugin {
30
+ constructor(config) {
31
+ this.config = Object.assign(defaultLogConfig, config);
32
+ }
33
+ getConsoleLogger() {
34
+ const replayLogger = {};
35
+ for (const level of this.config.level) {
36
+ if (level === 'trace') {
37
+ replayLogger[level] = (data) => {
38
+ const logger = console.log[ORIGINAL_ATTRIBUTE_NAME]
39
+ ? console.log[ORIGINAL_ATTRIBUTE_NAME]
40
+ : console.log;
41
+ logger(...data.payload.map((s) => JSON.parse(s)), this.formatMessage(data));
42
+ };
43
+ }
44
+ else {
45
+ replayLogger[level] = (data) => {
46
+ const logger = console[level][ORIGINAL_ATTRIBUTE_NAME]
47
+ ? console[level][ORIGINAL_ATTRIBUTE_NAME]
48
+ : console[level];
49
+ logger(...data.payload.map((s) => JSON.parse(s)), this.formatMessage(data));
50
+ };
51
+ }
52
+ }
53
+ return replayLogger;
54
+ }
55
+ formatMessage(data) {
56
+ if (data.trace.length === 0) {
57
+ return '';
58
+ }
59
+ const stackPrefix = '\n\tat ';
60
+ let result = stackPrefix;
61
+ result += data.trace.join(stackPrefix);
62
+ return result;
63
+ }
64
+ }
65
+ const getReplayConsolePlugin = (options) => {
66
+ const replayLogger = (options === null || options === void 0 ? void 0 : options.replayLogger) || new LogReplayPlugin(options).getConsoleLogger();
67
+ return {
68
+ handler(event, _isSync, context) {
69
+ let logData = null;
70
+ if (event.type === EventType.IncrementalSnapshot &&
71
+ event.data.source === IncrementalSource.Log) {
72
+ logData = event.data;
73
+ }
74
+ else if (event.type === EventType.Plugin &&
75
+ event.data.plugin === PLUGIN_NAME) {
76
+ logData = event.data.payload;
77
+ }
78
+ if (logData) {
79
+ try {
80
+ if (typeof replayLogger[logData.level] === 'function') {
81
+ replayLogger[logData.level](logData);
82
+ }
83
+ }
84
+ catch (error) {
85
+ if (context.replayer.config.showWarning) {
86
+ console.warn(error);
87
+ }
88
+ }
89
+ }
90
+ },
91
+ };
109
92
  };
110
93
 
111
94
  export { getReplayConsolePlugin };
@@ -1,23 +1,22 @@
1
- var defaultOptions = {
2
- key: '_sid',
3
- };
4
- var PLUGIN_NAME = 'rrweb/sequential-id@1';
5
- var getRecordSequentialIdPlugin = function (options) {
6
- var _options = options
7
- ? Object.assign({}, defaultOptions, options)
8
- : defaultOptions;
9
- var id = 0;
10
- return {
11
- name: PLUGIN_NAME,
12
- eventProcessor: function (event) {
13
- var _a;
14
- Object.assign(event, (_a = {},
15
- _a[_options.key] = ++id,
16
- _a));
17
- return event;
18
- },
19
- options: _options,
20
- };
1
+ const defaultOptions = {
2
+ key: '_sid',
3
+ };
4
+ const PLUGIN_NAME = 'rrweb/sequential-id@1';
5
+ const getRecordSequentialIdPlugin = (options) => {
6
+ const _options = options
7
+ ? Object.assign({}, defaultOptions, options)
8
+ : defaultOptions;
9
+ let id = 0;
10
+ return {
11
+ name: PLUGIN_NAME,
12
+ eventProcessor(event) {
13
+ Object.assign(event, {
14
+ [_options.key]: ++id,
15
+ });
16
+ return event;
17
+ },
18
+ options: _options,
19
+ };
21
20
  };
22
21
 
23
22
  export { PLUGIN_NAME, getRecordSequentialIdPlugin };
@@ -1,28 +1,28 @@
1
- var defaultOptions = {
2
- key: '_sid',
3
- warnOnMissingId: true,
4
- };
5
- var getReplaySequentialIdPlugin = function (options) {
6
- var _a = options
7
- ? Object.assign({}, defaultOptions, options)
8
- : defaultOptions, key = _a.key, warnOnMissingId = _a.warnOnMissingId;
9
- var currentId = 1;
10
- return {
11
- handler: function (event) {
12
- if (key in event) {
13
- var id = event[key];
14
- if (id !== currentId) {
15
- console.error("[sequential-id-plugin]: expect to get an id with value \"".concat(currentId, "\", but got \"").concat(id, "\""));
16
- }
17
- else {
18
- currentId++;
19
- }
20
- }
21
- else if (warnOnMissingId) {
22
- console.warn("[sequential-id-plugin]: failed to get id in key: \"".concat(key, "\""));
23
- }
24
- },
25
- };
1
+ const defaultOptions = {
2
+ key: '_sid',
3
+ warnOnMissingId: true,
4
+ };
5
+ const getReplaySequentialIdPlugin = (options) => {
6
+ const { key, warnOnMissingId } = options
7
+ ? Object.assign({}, defaultOptions, options)
8
+ : defaultOptions;
9
+ let currentId = 1;
10
+ return {
11
+ handler(event) {
12
+ if (key in event) {
13
+ const id = event[key];
14
+ if (id !== currentId) {
15
+ console.error(`[sequential-id-plugin]: expect to get an id with value "${currentId}", but got "${id}"`);
16
+ }
17
+ else {
18
+ currentId++;
19
+ }
20
+ }
21
+ else if (warnOnMissingId) {
22
+ console.warn(`[sequential-id-plugin]: failed to get id in key: "${key}"`);
23
+ }
24
+ },
25
+ };
26
26
  };
27
27
 
28
28
  export { getReplaySequentialIdPlugin };
@@ -1,32 +1,31 @@
1
- var IframeManager = (function () {
2
- function IframeManager(options) {
3
- this.iframes = new WeakMap();
4
- this.mutationCb = options.mutationCb;
5
- }
6
- IframeManager.prototype.addIframe = function (iframeEl) {
7
- this.iframes.set(iframeEl, true);
8
- };
9
- IframeManager.prototype.addLoadListener = function (cb) {
10
- this.loadListener = cb;
11
- };
12
- IframeManager.prototype.attachIframe = function (iframeEl, childSn) {
13
- var _a;
14
- this.mutationCb({
15
- adds: [
16
- {
17
- parentId: iframeEl.__sn.id,
18
- nextId: null,
19
- node: childSn,
20
- },
21
- ],
22
- removes: [],
23
- texts: [],
24
- attributes: [],
25
- isAttachIframe: true,
26
- });
27
- (_a = this.loadListener) === null || _a === void 0 ? void 0 : _a.call(this, iframeEl);
28
- };
29
- return IframeManager;
30
- }());
1
+ class IframeManager {
2
+ constructor(options) {
3
+ this.iframes = new WeakMap();
4
+ this.mutationCb = options.mutationCb;
5
+ }
6
+ addIframe(iframeEl) {
7
+ this.iframes.set(iframeEl, true);
8
+ }
9
+ addLoadListener(cb) {
10
+ this.loadListener = cb;
11
+ }
12
+ attachIframe(iframeEl, childSn, mirror) {
13
+ var _a;
14
+ this.mutationCb({
15
+ adds: [
16
+ {
17
+ parentId: mirror.getId(iframeEl),
18
+ nextId: null,
19
+ node: childSn,
20
+ },
21
+ ],
22
+ removes: [],
23
+ texts: [],
24
+ attributes: [],
25
+ isAttachIframe: true,
26
+ });
27
+ (_a = this.loadListener) === null || _a === void 0 ? void 0 : _a.call(this, iframeEl);
28
+ }
29
+ }
31
30
 
32
31
  export { IframeManager };