@highlight-run/rrweb 2.0.7 → 2.0.10

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/lib/rrweb.js CHANGED
@@ -1706,6 +1706,7 @@ function buildNode(n, options) {
1706
1706
  if (!image.currentSrc.startsWith('data:')) {
1707
1707
  image.setAttribute('rrweb-original-src', n.attributes.src);
1708
1708
  image.src = value;
1709
+ image.setAttribute('rrweb-inline-src', value);
1709
1710
  }
1710
1711
  }
1711
1712
  if (name_1 === 'rr_width') {
@@ -1734,6 +1735,15 @@ function buildNode(n, options) {
1734
1735
  for (var name_1 in n.attributes) {
1735
1736
  _loop_1(name_1);
1736
1737
  }
1738
+ if (tagName === 'img') {
1739
+ var image = node_1;
1740
+ if (!image.currentSrc.startsWith('data:')) {
1741
+ var inlineSrc = image.getAttribute('rrweb-inline-src');
1742
+ if (inlineSrc === null || inlineSrc === void 0 ? void 0 : inlineSrc.startsWith('data:')) {
1743
+ image.src = inlineSrc;
1744
+ }
1745
+ }
1746
+ }
1737
1747
  if (n.isShadowHost) {
1738
1748
  if (!node_1.shadowRoot) {
1739
1749
  node_1.attachShadow({ mode: 'open' });
@@ -4895,7 +4905,7 @@ function diff(oldTree, newTree, replayer, rrnodeMirror) {
4895
4905
  break;
4896
4906
  }
4897
4907
  case NodeType$1.Element: {
4898
- const oldElement = (oldTree);
4908
+ const oldElement = oldTree;
4899
4909
  const newRRElement = newTree;
4900
4910
  diffProps(oldElement, newRRElement, rrnodeMirror);
4901
4911
  scrollDataToApply = newRRElement.scrollData;
@@ -4903,7 +4913,7 @@ function diff(oldTree, newTree, replayer, rrnodeMirror) {
4903
4913
  switch (newRRElement.tagName) {
4904
4914
  case 'AUDIO':
4905
4915
  case 'VIDEO': {
4906
- const oldMediaElement = (oldTree);
4916
+ const oldMediaElement = oldTree;
4907
4917
  const newMediaRRElement = newRRElement;
4908
4918
  if (newMediaRRElement.paused !== undefined)
4909
4919
  newMediaRRElement.paused
@@ -4918,7 +4928,7 @@ function diff(oldTree, newTree, replayer, rrnodeMirror) {
4918
4928
  break;
4919
4929
  }
4920
4930
  case 'CANVAS':
4921
- newTree.canvasMutations.forEach((canvasMutation) => replayer.applyCanvas(canvasMutation.event, canvasMutation.mutation, (oldTree)));
4931
+ newTree.canvasMutations.forEach((canvasMutation) => replayer.applyCanvas(canvasMutation.event, canvasMutation.mutation, oldTree));
4922
4932
  break;
4923
4933
  case 'STYLE':
4924
4934
  applyVirtualStyleRulesToNode(oldElement, newTree.rules);
@@ -4945,8 +4955,7 @@ function diff(oldTree, newTree, replayer, rrnodeMirror) {
4945
4955
  scrollDataToApply && replayer.applyScroll(scrollDataToApply, true);
4946
4956
  inputDataToApply && replayer.applyInput(inputDataToApply);
4947
4957
  if (newTree.nodeName === 'IFRAME') {
4948
- const oldContentDocument = (oldTree)
4949
- .contentDocument;
4958
+ const oldContentDocument = oldTree.contentDocument;
4950
4959
  const newIFrameElement = newTree;
4951
4960
  if (oldContentDocument) {
4952
4961
  const sn = rrnodeMirror.getMeta(newIFrameElement.contentDocument);
@@ -5007,16 +5016,26 @@ function diffChildren(oldChildren, newChildren, parentNode, replayer, rrnodeMirr
5007
5016
  newEndNode = newChildren[--newEndIndex];
5008
5017
  }
5009
5018
  else if (replayer.mirror.getId(oldStartNode) === rrnodeMirror.getId(newEndNode)) {
5010
- parentNode.insertBefore(oldStartNode, oldEndNode.nextSibling);
5011
- diff(oldStartNode, newEndNode, replayer, rrnodeMirror);
5012
- oldStartNode = oldChildren[++oldStartIndex];
5013
- newEndNode = newChildren[--newEndIndex];
5019
+ try {
5020
+ parentNode.insertBefore(oldStartNode, oldEndNode.nextSibling);
5021
+ }
5022
+ catch (e) {
5023
+ console.error(e, parentNode, oldStartNode, oldEndNode);
5024
+ diff(oldStartNode, newEndNode, replayer, rrnodeMirror);
5025
+ oldStartNode = oldChildren[++oldStartIndex];
5026
+ newEndNode = newChildren[--newEndIndex];
5027
+ }
5014
5028
  }
5015
5029
  else if (replayer.mirror.getId(oldEndNode) === rrnodeMirror.getId(newStartNode)) {
5016
- parentNode.insertBefore(oldEndNode, oldStartNode);
5017
- diff(oldEndNode, newStartNode, replayer, rrnodeMirror);
5018
- oldEndNode = oldChildren[--oldEndIndex];
5019
- newStartNode = newChildren[++newStartIndex];
5030
+ try {
5031
+ parentNode.insertBefore(oldEndNode, oldStartNode);
5032
+ }
5033
+ catch (e) {
5034
+ console.error(e, parentNode, oldEndNode, oldStartNode);
5035
+ diff(oldEndNode, newStartNode, replayer, rrnodeMirror);
5036
+ oldEndNode = oldChildren[--oldEndIndex];
5037
+ newStartNode = newChildren[++newStartIndex];
5038
+ }
5020
5039
  }
5021
5040
  else {
5022
5041
  if (!oldIdToIndex) {
@@ -5030,21 +5049,31 @@ function diffChildren(oldChildren, newChildren, parentNode, replayer, rrnodeMirr
5030
5049
  indexInOld = oldIdToIndex[rrnodeMirror.getId(newStartNode)];
5031
5050
  if (indexInOld) {
5032
5051
  const nodeToMove = oldChildren[indexInOld];
5033
- parentNode.insertBefore(nodeToMove, oldStartNode);
5034
- diff(nodeToMove, newStartNode, replayer, rrnodeMirror);
5035
- oldChildren[indexInOld] = undefined;
5052
+ try {
5053
+ parentNode.insertBefore(nodeToMove, oldStartNode);
5054
+ }
5055
+ catch (e) {
5056
+ console.error(e, parentNode, nodeToMove, oldStartNode);
5057
+ diff(nodeToMove, newStartNode, replayer, rrnodeMirror);
5058
+ oldChildren[indexInOld] = undefined;
5059
+ }
5036
5060
  }
5037
5061
  else {
5038
5062
  const newNode = createOrGetNode(newStartNode, replayer.mirror, rrnodeMirror);
5039
5063
  if (((_a = replayer.mirror.getMeta(parentNode)) === null || _a === void 0 ? void 0 : _a.type) === NodeType$1.Document &&
5040
5064
  ((_b = replayer.mirror.getMeta(newNode)) === null || _b === void 0 ? void 0 : _b.type) === NodeType$1.Element &&
5041
- (parentNode).documentElement) {
5042
- parentNode.removeChild((parentNode).documentElement);
5065
+ parentNode.documentElement) {
5066
+ parentNode.removeChild(parentNode.documentElement);
5043
5067
  oldChildren[oldStartIndex] = undefined;
5044
5068
  oldStartNode = undefined;
5045
5069
  }
5046
- parentNode.insertBefore(newNode, oldStartNode || null);
5047
- diff(newNode, newStartNode, replayer, rrnodeMirror);
5070
+ try {
5071
+ parentNode.insertBefore(newNode, oldStartNode || null);
5072
+ }
5073
+ catch (e) {
5074
+ console.error(e, parentNode, newNode, oldStartNode || null);
5075
+ diff(newNode, newStartNode, replayer, rrnodeMirror);
5076
+ }
5048
5077
  }
5049
5078
  newStartNode = newChildren[++newStartIndex];
5050
5079
  }
@@ -5059,8 +5088,13 @@ function diffChildren(oldChildren, newChildren, parentNode, replayer, rrnodeMirr
5059
5088
  });
5060
5089
  for (; newStartIndex <= newEndIndex; ++newStartIndex) {
5061
5090
  const newNode = createOrGetNode(newChildren[newStartIndex], replayer.mirror, rrnodeMirror);
5062
- parentNode.insertBefore(newNode, referenceNode);
5063
- diff(newNode, newChildren[newStartIndex], replayer, rrnodeMirror);
5091
+ try {
5092
+ parentNode.insertBefore(newNode, referenceNode);
5093
+ }
5094
+ catch (e) {
5095
+ console.error(e, parentNode, newNode, referenceNode);
5096
+ diff(newNode, newChildren[newStartIndex], replayer, rrnodeMirror);
5097
+ }
5064
5098
  }
5065
5099
  }
5066
5100
  else if (newStartIndex > newEndIndex) {
@@ -5114,8 +5148,7 @@ function getNestedRule(rules, position) {
5114
5148
  return rule;
5115
5149
  }
5116
5150
  else {
5117
- return getNestedRule((rule).cssRules[position[1]]
5118
- .cssRules, position.slice(2));
5151
+ return getNestedRule(rule.cssRules[position[1]].cssRules, position.slice(2));
5119
5152
  }
5120
5153
  }
5121
5154
  var StyleRuleType;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@highlight-run/rrweb",
3
- "version": "2.0.7",
3
+ "version": "2.0.10",
4
4
  "description": "record and replay the web",
5
5
  "scripts": {
6
6
  "prepare": "npm run prepack",
@@ -74,13 +74,13 @@
74
74
  "typescript": "^4.6.2"
75
75
  },
76
76
  "dependencies": {
77
- "@highlight-run/rrdom": "^0.1.6",
78
- "@highlight-run/rrweb-snapshot": "^1.1.19",
77
+ "@highlight-run/rrdom": ">0.1.2",
78
+ "@highlight-run/rrweb-snapshot": ">1.1.15",
79
79
  "@types/css-font-loading-module": "0.0.7",
80
80
  "@xstate/fsm": "^1.4.0",
81
81
  "base64-arraybuffer": "^1.0.1",
82
82
  "fflate": "^0.4.4",
83
83
  "mitt": "^1.1.3"
84
84
  },
85
- "gitHead": "bec14f9c8aad59e00142e3c8546da40cff32b15f"
85
+ "gitHead": "c728b71c3929ea9e81c7ade31cb31b465b54e883"
86
86
  }