@highlight-run/rrweb 2.0.14 → 2.0.17

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.
@@ -629,29 +629,37 @@ function diffChildren(oldChildren, newChildren, parentNode, replayer, rrnodeMirr
629
629
  let oldStartNode = oldChildren[oldStartIndex], oldEndNode = oldChildren[oldEndIndex], newStartNode = newChildren[newStartIndex], newEndNode = newChildren[newEndIndex];
630
630
  let oldIdToIndex = undefined, indexInOld;
631
631
  while (oldStartIndex <= oldEndIndex && newStartIndex <= newEndIndex) {
632
+ const oldStartId = replayer.mirror.getId(oldStartNode);
633
+ const oldEndId = replayer.mirror.getId(oldEndNode);
634
+ const newStartId = rrnodeMirror.getId(newStartNode);
635
+ const newEndId = rrnodeMirror.getId(newEndNode);
632
636
  if (oldStartNode === undefined) {
633
637
  oldStartNode = oldChildren[++oldStartIndex];
634
638
  }
635
639
  else if (oldEndNode === undefined) {
636
640
  oldEndNode = oldChildren[--oldEndIndex];
637
641
  }
638
- else if (replayer.mirror.getId(oldStartNode) === rrnodeMirror.getId(newStartNode)) {
642
+ else if (oldStartId !== -1 &&
643
+ oldStartId === newStartId) {
639
644
  diff(oldStartNode, newStartNode, replayer, rrnodeMirror);
640
645
  oldStartNode = oldChildren[++oldStartIndex];
641
646
  newStartNode = newChildren[++newStartIndex];
642
647
  }
643
- else if (replayer.mirror.getId(oldEndNode) === rrnodeMirror.getId(newEndNode)) {
648
+ else if (oldEndId !== -1 &&
649
+ oldEndId === newEndId) {
644
650
  diff(oldEndNode, newEndNode, replayer, rrnodeMirror);
645
651
  oldEndNode = oldChildren[--oldEndIndex];
646
652
  newEndNode = newChildren[--newEndIndex];
647
653
  }
648
- else if (replayer.mirror.getId(oldStartNode) === rrnodeMirror.getId(newEndNode)) {
654
+ else if (oldStartId !== -1 &&
655
+ oldStartId === newEndId) {
649
656
  parentNode.insertBefore(oldStartNode, oldEndNode.nextSibling);
650
657
  diff(oldStartNode, newEndNode, replayer, rrnodeMirror);
651
658
  oldStartNode = oldChildren[++oldStartIndex];
652
659
  newEndNode = newChildren[--newEndIndex];
653
660
  }
654
- else if (replayer.mirror.getId(oldEndNode) === rrnodeMirror.getId(newStartNode)) {
661
+ else if (oldEndId !== -1 &&
662
+ oldEndId === newStartId) {
655
663
  parentNode.insertBefore(oldEndNode, oldStartNode);
656
664
  diff(oldEndNode, newStartNode, replayer, rrnodeMirror);
657
665
  oldEndNode = oldChildren[--oldEndIndex];
@@ -713,8 +721,11 @@ function diffChildren(oldChildren, newChildren, parentNode, replayer, rrnodeMirr
713
721
  }
714
722
  }
715
723
  function createOrGetNode(rrNode, domMirror, rrnodeMirror) {
716
- let node = domMirror.getNode(rrnodeMirror.getId(rrNode));
724
+ const nodeId = rrnodeMirror.getId(rrNode);
717
725
  const sn = rrnodeMirror.getMeta(rrNode);
726
+ let node = null;
727
+ if (nodeId > -1)
728
+ node = domMirror.getNode(nodeId);
718
729
  if (node !== null)
719
730
  return node;
720
731
  switch (rrNode.RRNodeType) {
@@ -1548,29 +1548,37 @@ function diffChildren(oldChildren, newChildren, parentNode, replayer, rrnodeMirr
1548
1548
  let oldStartNode = oldChildren[oldStartIndex], oldEndNode = oldChildren[oldEndIndex], newStartNode = newChildren[newStartIndex], newEndNode = newChildren[newEndIndex];
1549
1549
  let oldIdToIndex = undefined, indexInOld;
1550
1550
  while (oldStartIndex <= oldEndIndex && newStartIndex <= newEndIndex) {
1551
+ const oldStartId = replayer.mirror.getId(oldStartNode);
1552
+ const oldEndId = replayer.mirror.getId(oldEndNode);
1553
+ const newStartId = rrnodeMirror.getId(newStartNode);
1554
+ const newEndId = rrnodeMirror.getId(newEndNode);
1551
1555
  if (oldStartNode === undefined) {
1552
1556
  oldStartNode = oldChildren[++oldStartIndex];
1553
1557
  }
1554
1558
  else if (oldEndNode === undefined) {
1555
1559
  oldEndNode = oldChildren[--oldEndIndex];
1556
1560
  }
1557
- else if (replayer.mirror.getId(oldStartNode) === rrnodeMirror.getId(newStartNode)) {
1561
+ else if (oldStartId !== -1 &&
1562
+ oldStartId === newStartId) {
1558
1563
  diff(oldStartNode, newStartNode, replayer, rrnodeMirror);
1559
1564
  oldStartNode = oldChildren[++oldStartIndex];
1560
1565
  newStartNode = newChildren[++newStartIndex];
1561
1566
  }
1562
- else if (replayer.mirror.getId(oldEndNode) === rrnodeMirror.getId(newEndNode)) {
1567
+ else if (oldEndId !== -1 &&
1568
+ oldEndId === newEndId) {
1563
1569
  diff(oldEndNode, newEndNode, replayer, rrnodeMirror);
1564
1570
  oldEndNode = oldChildren[--oldEndIndex];
1565
1571
  newEndNode = newChildren[--newEndIndex];
1566
1572
  }
1567
- else if (replayer.mirror.getId(oldStartNode) === rrnodeMirror.getId(newEndNode)) {
1573
+ else if (oldStartId !== -1 &&
1574
+ oldStartId === newEndId) {
1568
1575
  parentNode.insertBefore(oldStartNode, oldEndNode.nextSibling);
1569
1576
  diff(oldStartNode, newEndNode, replayer, rrnodeMirror);
1570
1577
  oldStartNode = oldChildren[++oldStartIndex];
1571
1578
  newEndNode = newChildren[--newEndIndex];
1572
1579
  }
1573
- else if (replayer.mirror.getId(oldEndNode) === rrnodeMirror.getId(newStartNode)) {
1580
+ else if (oldEndId !== -1 &&
1581
+ oldEndId === newStartId) {
1574
1582
  parentNode.insertBefore(oldEndNode, oldStartNode);
1575
1583
  diff(oldEndNode, newStartNode, replayer, rrnodeMirror);
1576
1584
  oldEndNode = oldChildren[--oldEndIndex];
@@ -1632,8 +1640,11 @@ function diffChildren(oldChildren, newChildren, parentNode, replayer, rrnodeMirr
1632
1640
  }
1633
1641
  }
1634
1642
  function createOrGetNode(rrNode, domMirror, rrnodeMirror) {
1635
- let node = domMirror.getNode(rrnodeMirror.getId(rrNode));
1643
+ const nodeId = rrnodeMirror.getId(rrNode);
1636
1644
  const sn = rrnodeMirror.getMeta(rrNode);
1645
+ let node = null;
1646
+ if (nodeId > -1)
1647
+ node = domMirror.getNode(nodeId);
1637
1648
  if (node !== null)
1638
1649
  return node;
1639
1650
  switch (rrNode.RRNodeType) {
@@ -1548,29 +1548,37 @@ function diffChildren(oldChildren, newChildren, parentNode, replayer, rrnodeMirr
1548
1548
  let oldStartNode = oldChildren[oldStartIndex], oldEndNode = oldChildren[oldEndIndex], newStartNode = newChildren[newStartIndex], newEndNode = newChildren[newEndIndex];
1549
1549
  let oldIdToIndex = undefined, indexInOld;
1550
1550
  while (oldStartIndex <= oldEndIndex && newStartIndex <= newEndIndex) {
1551
+ const oldStartId = replayer.mirror.getId(oldStartNode);
1552
+ const oldEndId = replayer.mirror.getId(oldEndNode);
1553
+ const newStartId = rrnodeMirror.getId(newStartNode);
1554
+ const newEndId = rrnodeMirror.getId(newEndNode);
1551
1555
  if (oldStartNode === undefined) {
1552
1556
  oldStartNode = oldChildren[++oldStartIndex];
1553
1557
  }
1554
1558
  else if (oldEndNode === undefined) {
1555
1559
  oldEndNode = oldChildren[--oldEndIndex];
1556
1560
  }
1557
- else if (replayer.mirror.getId(oldStartNode) === rrnodeMirror.getId(newStartNode)) {
1561
+ else if (oldStartId !== -1 &&
1562
+ oldStartId === newStartId) {
1558
1563
  diff(oldStartNode, newStartNode, replayer, rrnodeMirror);
1559
1564
  oldStartNode = oldChildren[++oldStartIndex];
1560
1565
  newStartNode = newChildren[++newStartIndex];
1561
1566
  }
1562
- else if (replayer.mirror.getId(oldEndNode) === rrnodeMirror.getId(newEndNode)) {
1567
+ else if (oldEndId !== -1 &&
1568
+ oldEndId === newEndId) {
1563
1569
  diff(oldEndNode, newEndNode, replayer, rrnodeMirror);
1564
1570
  oldEndNode = oldChildren[--oldEndIndex];
1565
1571
  newEndNode = newChildren[--newEndIndex];
1566
1572
  }
1567
- else if (replayer.mirror.getId(oldStartNode) === rrnodeMirror.getId(newEndNode)) {
1573
+ else if (oldStartId !== -1 &&
1574
+ oldStartId === newEndId) {
1568
1575
  parentNode.insertBefore(oldStartNode, oldEndNode.nextSibling);
1569
1576
  diff(oldStartNode, newEndNode, replayer, rrnodeMirror);
1570
1577
  oldStartNode = oldChildren[++oldStartIndex];
1571
1578
  newEndNode = newChildren[--newEndIndex];
1572
1579
  }
1573
- else if (replayer.mirror.getId(oldEndNode) === rrnodeMirror.getId(newStartNode)) {
1580
+ else if (oldEndId !== -1 &&
1581
+ oldEndId === newStartId) {
1574
1582
  parentNode.insertBefore(oldEndNode, oldStartNode);
1575
1583
  diff(oldEndNode, newStartNode, replayer, rrnodeMirror);
1576
1584
  oldEndNode = oldChildren[--oldEndIndex];
@@ -1632,8 +1640,11 @@ function diffChildren(oldChildren, newChildren, parentNode, replayer, rrnodeMirr
1632
1640
  }
1633
1641
  }
1634
1642
  function createOrGetNode(rrNode, domMirror, rrnodeMirror) {
1635
- let node = domMirror.getNode(rrnodeMirror.getId(rrNode));
1643
+ const nodeId = rrnodeMirror.getId(rrNode);
1636
1644
  const sn = rrnodeMirror.getMeta(rrNode);
1645
+ let node = null;
1646
+ if (nodeId > -1)
1647
+ node = domMirror.getNode(nodeId);
1637
1648
  if (node !== null)
1638
1649
  return node;
1639
1650
  switch (rrNode.RRNodeType) {
package/lib/rrweb-all.js CHANGED
@@ -5011,29 +5011,37 @@ function diffChildren(oldChildren, newChildren, parentNode, replayer, rrnodeMirr
5011
5011
  let oldStartNode = oldChildren[oldStartIndex], oldEndNode = oldChildren[oldEndIndex], newStartNode = newChildren[newStartIndex], newEndNode = newChildren[newEndIndex];
5012
5012
  let oldIdToIndex = undefined, indexInOld;
5013
5013
  while (oldStartIndex <= oldEndIndex && newStartIndex <= newEndIndex) {
5014
+ const oldStartId = replayer.mirror.getId(oldStartNode);
5015
+ const oldEndId = replayer.mirror.getId(oldEndNode);
5016
+ const newStartId = rrnodeMirror.getId(newStartNode);
5017
+ const newEndId = rrnodeMirror.getId(newEndNode);
5014
5018
  if (oldStartNode === undefined) {
5015
5019
  oldStartNode = oldChildren[++oldStartIndex];
5016
5020
  }
5017
5021
  else if (oldEndNode === undefined) {
5018
5022
  oldEndNode = oldChildren[--oldEndIndex];
5019
5023
  }
5020
- else if (replayer.mirror.getId(oldStartNode) === rrnodeMirror.getId(newStartNode)) {
5024
+ else if (oldStartId !== -1 &&
5025
+ oldStartId === newStartId) {
5021
5026
  diff(oldStartNode, newStartNode, replayer, rrnodeMirror);
5022
5027
  oldStartNode = oldChildren[++oldStartIndex];
5023
5028
  newStartNode = newChildren[++newStartIndex];
5024
5029
  }
5025
- else if (replayer.mirror.getId(oldEndNode) === rrnodeMirror.getId(newEndNode)) {
5030
+ else if (oldEndId !== -1 &&
5031
+ oldEndId === newEndId) {
5026
5032
  diff(oldEndNode, newEndNode, replayer, rrnodeMirror);
5027
5033
  oldEndNode = oldChildren[--oldEndIndex];
5028
5034
  newEndNode = newChildren[--newEndIndex];
5029
5035
  }
5030
- else if (replayer.mirror.getId(oldStartNode) === rrnodeMirror.getId(newEndNode)) {
5036
+ else if (oldStartId !== -1 &&
5037
+ oldStartId === newEndId) {
5031
5038
  parentNode.insertBefore(oldStartNode, oldEndNode.nextSibling);
5032
5039
  diff(oldStartNode, newEndNode, replayer, rrnodeMirror);
5033
5040
  oldStartNode = oldChildren[++oldStartIndex];
5034
5041
  newEndNode = newChildren[--newEndIndex];
5035
5042
  }
5036
- else if (replayer.mirror.getId(oldEndNode) === rrnodeMirror.getId(newStartNode)) {
5043
+ else if (oldEndId !== -1 &&
5044
+ oldEndId === newStartId) {
5037
5045
  parentNode.insertBefore(oldEndNode, oldStartNode);
5038
5046
  diff(oldEndNode, newStartNode, replayer, rrnodeMirror);
5039
5047
  oldEndNode = oldChildren[--oldEndIndex];
@@ -5095,8 +5103,11 @@ function diffChildren(oldChildren, newChildren, parentNode, replayer, rrnodeMirr
5095
5103
  }
5096
5104
  }
5097
5105
  function createOrGetNode(rrNode, domMirror, rrnodeMirror) {
5098
- let node = domMirror.getNode(rrnodeMirror.getId(rrNode));
5106
+ const nodeId = rrnodeMirror.getId(rrNode);
5099
5107
  const sn = rrnodeMirror.getMeta(rrNode);
5108
+ let node = null;
5109
+ if (nodeId > -1)
5110
+ node = domMirror.getNode(nodeId);
5100
5111
  if (node !== null)
5101
5112
  return node;
5102
5113
  switch (rrNode.RRNodeType) {
package/lib/rrweb.js CHANGED
@@ -5011,29 +5011,37 @@ function diffChildren(oldChildren, newChildren, parentNode, replayer, rrnodeMirr
5011
5011
  let oldStartNode = oldChildren[oldStartIndex], oldEndNode = oldChildren[oldEndIndex], newStartNode = newChildren[newStartIndex], newEndNode = newChildren[newEndIndex];
5012
5012
  let oldIdToIndex = undefined, indexInOld;
5013
5013
  while (oldStartIndex <= oldEndIndex && newStartIndex <= newEndIndex) {
5014
+ const oldStartId = replayer.mirror.getId(oldStartNode);
5015
+ const oldEndId = replayer.mirror.getId(oldEndNode);
5016
+ const newStartId = rrnodeMirror.getId(newStartNode);
5017
+ const newEndId = rrnodeMirror.getId(newEndNode);
5014
5018
  if (oldStartNode === undefined) {
5015
5019
  oldStartNode = oldChildren[++oldStartIndex];
5016
5020
  }
5017
5021
  else if (oldEndNode === undefined) {
5018
5022
  oldEndNode = oldChildren[--oldEndIndex];
5019
5023
  }
5020
- else if (replayer.mirror.getId(oldStartNode) === rrnodeMirror.getId(newStartNode)) {
5024
+ else if (oldStartId !== -1 &&
5025
+ oldStartId === newStartId) {
5021
5026
  diff(oldStartNode, newStartNode, replayer, rrnodeMirror);
5022
5027
  oldStartNode = oldChildren[++oldStartIndex];
5023
5028
  newStartNode = newChildren[++newStartIndex];
5024
5029
  }
5025
- else if (replayer.mirror.getId(oldEndNode) === rrnodeMirror.getId(newEndNode)) {
5030
+ else if (oldEndId !== -1 &&
5031
+ oldEndId === newEndId) {
5026
5032
  diff(oldEndNode, newEndNode, replayer, rrnodeMirror);
5027
5033
  oldEndNode = oldChildren[--oldEndIndex];
5028
5034
  newEndNode = newChildren[--newEndIndex];
5029
5035
  }
5030
- else if (replayer.mirror.getId(oldStartNode) === rrnodeMirror.getId(newEndNode)) {
5036
+ else if (oldStartId !== -1 &&
5037
+ oldStartId === newEndId) {
5031
5038
  parentNode.insertBefore(oldStartNode, oldEndNode.nextSibling);
5032
5039
  diff(oldStartNode, newEndNode, replayer, rrnodeMirror);
5033
5040
  oldStartNode = oldChildren[++oldStartIndex];
5034
5041
  newEndNode = newChildren[--newEndIndex];
5035
5042
  }
5036
- else if (replayer.mirror.getId(oldEndNode) === rrnodeMirror.getId(newStartNode)) {
5043
+ else if (oldEndId !== -1 &&
5044
+ oldEndId === newStartId) {
5037
5045
  parentNode.insertBefore(oldEndNode, oldStartNode);
5038
5046
  diff(oldEndNode, newStartNode, replayer, rrnodeMirror);
5039
5047
  oldEndNode = oldChildren[--oldEndIndex];
@@ -5095,8 +5103,11 @@ function diffChildren(oldChildren, newChildren, parentNode, replayer, rrnodeMirr
5095
5103
  }
5096
5104
  }
5097
5105
  function createOrGetNode(rrNode, domMirror, rrnodeMirror) {
5098
- let node = domMirror.getNode(rrnodeMirror.getId(rrNode));
5106
+ const nodeId = rrnodeMirror.getId(rrNode);
5099
5107
  const sn = rrnodeMirror.getMeta(rrNode);
5108
+ let node = null;
5109
+ if (nodeId > -1)
5110
+ node = domMirror.getNode(nodeId);
5100
5111
  if (node !== null)
5101
5112
  return node;
5102
5113
  switch (rrNode.RRNodeType) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@highlight-run/rrweb",
3
- "version": "2.0.14",
3
+ "version": "2.0.17",
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.7.3"
75
75
  },
76
76
  "dependencies": {
77
- "@highlight-run/rrdom": ">=0.1.12",
78
- "@highlight-run/rrweb-snapshot": ">1.1.15",
77
+ "@highlight-run/rrdom": ">=0.1.14",
78
+ "@highlight-run/rrweb-snapshot": ">=1.1.22",
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": "29f0f85865e05e3de8009bf0c119e8c6300d2227"
85
+ "gitHead": "7c3952392f9fe936c1a515e466564467e946bd8f"
86
86
  }