@highlight-run/rrweb 2.0.15 → 2.0.16

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,41 @@ 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);
636
+ console.log('oldStartId', oldStartId);
637
+ console.log('oldEndId', oldEndId);
638
+ console.log('newStartId', newStartId);
639
+ console.log('newEndId', newEndId);
632
640
  if (oldStartNode === undefined) {
633
641
  oldStartNode = oldChildren[++oldStartIndex];
634
642
  }
635
643
  else if (oldEndNode === undefined) {
636
644
  oldEndNode = oldChildren[--oldEndIndex];
637
645
  }
638
- else if (replayer.mirror.getId(oldStartNode) === rrnodeMirror.getId(newStartNode)) {
646
+ else if (oldStartId !== -1 &&
647
+ oldStartId === newStartId) {
639
648
  diff(oldStartNode, newStartNode, replayer, rrnodeMirror);
640
649
  oldStartNode = oldChildren[++oldStartIndex];
641
650
  newStartNode = newChildren[++newStartIndex];
642
651
  }
643
- else if (replayer.mirror.getId(oldEndNode) === rrnodeMirror.getId(newEndNode)) {
652
+ else if (oldEndId !== -1 &&
653
+ oldEndId === newEndId) {
644
654
  diff(oldEndNode, newEndNode, replayer, rrnodeMirror);
645
655
  oldEndNode = oldChildren[--oldEndIndex];
646
656
  newEndNode = newChildren[--newEndIndex];
647
657
  }
648
- else if (replayer.mirror.getId(oldStartNode) === rrnodeMirror.getId(newEndNode)) {
658
+ else if (oldStartId !== -1 &&
659
+ oldStartId === newEndId) {
649
660
  parentNode.insertBefore(oldStartNode, oldEndNode.nextSibling);
650
661
  diff(oldStartNode, newEndNode, replayer, rrnodeMirror);
651
662
  oldStartNode = oldChildren[++oldStartIndex];
652
663
  newEndNode = newChildren[--newEndIndex];
653
664
  }
654
- else if (replayer.mirror.getId(oldEndNode) === rrnodeMirror.getId(newStartNode)) {
665
+ else if (oldEndId !== -1 &&
666
+ oldEndId === newStartId) {
655
667
  parentNode.insertBefore(oldEndNode, oldStartNode);
656
668
  diff(oldEndNode, newStartNode, replayer, rrnodeMirror);
657
669
  oldEndNode = oldChildren[--oldEndIndex];
@@ -713,8 +725,11 @@ function diffChildren(oldChildren, newChildren, parentNode, replayer, rrnodeMirr
713
725
  }
714
726
  }
715
727
  function createOrGetNode(rrNode, domMirror, rrnodeMirror) {
716
- let node = domMirror.getNode(rrnodeMirror.getId(rrNode));
728
+ const nodeId = rrnodeMirror.getId(rrNode);
717
729
  const sn = rrnodeMirror.getMeta(rrNode);
730
+ let node = null;
731
+ if (nodeId > -1)
732
+ node = domMirror.getNode(nodeId);
718
733
  if (node !== null)
719
734
  return node;
720
735
  switch (rrNode.RRNodeType) {
@@ -1548,29 +1548,41 @@ 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);
1555
+ console.log('oldStartId', oldStartId);
1556
+ console.log('oldEndId', oldEndId);
1557
+ console.log('newStartId', newStartId);
1558
+ console.log('newEndId', newEndId);
1551
1559
  if (oldStartNode === undefined) {
1552
1560
  oldStartNode = oldChildren[++oldStartIndex];
1553
1561
  }
1554
1562
  else if (oldEndNode === undefined) {
1555
1563
  oldEndNode = oldChildren[--oldEndIndex];
1556
1564
  }
1557
- else if (replayer.mirror.getId(oldStartNode) === rrnodeMirror.getId(newStartNode)) {
1565
+ else if (oldStartId !== -1 &&
1566
+ oldStartId === newStartId) {
1558
1567
  diff(oldStartNode, newStartNode, replayer, rrnodeMirror);
1559
1568
  oldStartNode = oldChildren[++oldStartIndex];
1560
1569
  newStartNode = newChildren[++newStartIndex];
1561
1570
  }
1562
- else if (replayer.mirror.getId(oldEndNode) === rrnodeMirror.getId(newEndNode)) {
1571
+ else if (oldEndId !== -1 &&
1572
+ oldEndId === newEndId) {
1563
1573
  diff(oldEndNode, newEndNode, replayer, rrnodeMirror);
1564
1574
  oldEndNode = oldChildren[--oldEndIndex];
1565
1575
  newEndNode = newChildren[--newEndIndex];
1566
1576
  }
1567
- else if (replayer.mirror.getId(oldStartNode) === rrnodeMirror.getId(newEndNode)) {
1577
+ else if (oldStartId !== -1 &&
1578
+ oldStartId === newEndId) {
1568
1579
  parentNode.insertBefore(oldStartNode, oldEndNode.nextSibling);
1569
1580
  diff(oldStartNode, newEndNode, replayer, rrnodeMirror);
1570
1581
  oldStartNode = oldChildren[++oldStartIndex];
1571
1582
  newEndNode = newChildren[--newEndIndex];
1572
1583
  }
1573
- else if (replayer.mirror.getId(oldEndNode) === rrnodeMirror.getId(newStartNode)) {
1584
+ else if (oldEndId !== -1 &&
1585
+ oldEndId === newStartId) {
1574
1586
  parentNode.insertBefore(oldEndNode, oldStartNode);
1575
1587
  diff(oldEndNode, newStartNode, replayer, rrnodeMirror);
1576
1588
  oldEndNode = oldChildren[--oldEndIndex];
@@ -1632,8 +1644,11 @@ function diffChildren(oldChildren, newChildren, parentNode, replayer, rrnodeMirr
1632
1644
  }
1633
1645
  }
1634
1646
  function createOrGetNode(rrNode, domMirror, rrnodeMirror) {
1635
- let node = domMirror.getNode(rrnodeMirror.getId(rrNode));
1647
+ const nodeId = rrnodeMirror.getId(rrNode);
1636
1648
  const sn = rrnodeMirror.getMeta(rrNode);
1649
+ let node = null;
1650
+ if (nodeId > -1)
1651
+ node = domMirror.getNode(nodeId);
1637
1652
  if (node !== null)
1638
1653
  return node;
1639
1654
  switch (rrNode.RRNodeType) {
@@ -1548,29 +1548,41 @@ 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);
1555
+ console.log('oldStartId', oldStartId);
1556
+ console.log('oldEndId', oldEndId);
1557
+ console.log('newStartId', newStartId);
1558
+ console.log('newEndId', newEndId);
1551
1559
  if (oldStartNode === undefined) {
1552
1560
  oldStartNode = oldChildren[++oldStartIndex];
1553
1561
  }
1554
1562
  else if (oldEndNode === undefined) {
1555
1563
  oldEndNode = oldChildren[--oldEndIndex];
1556
1564
  }
1557
- else if (replayer.mirror.getId(oldStartNode) === rrnodeMirror.getId(newStartNode)) {
1565
+ else if (oldStartId !== -1 &&
1566
+ oldStartId === newStartId) {
1558
1567
  diff(oldStartNode, newStartNode, replayer, rrnodeMirror);
1559
1568
  oldStartNode = oldChildren[++oldStartIndex];
1560
1569
  newStartNode = newChildren[++newStartIndex];
1561
1570
  }
1562
- else if (replayer.mirror.getId(oldEndNode) === rrnodeMirror.getId(newEndNode)) {
1571
+ else if (oldEndId !== -1 &&
1572
+ oldEndId === newEndId) {
1563
1573
  diff(oldEndNode, newEndNode, replayer, rrnodeMirror);
1564
1574
  oldEndNode = oldChildren[--oldEndIndex];
1565
1575
  newEndNode = newChildren[--newEndIndex];
1566
1576
  }
1567
- else if (replayer.mirror.getId(oldStartNode) === rrnodeMirror.getId(newEndNode)) {
1577
+ else if (oldStartId !== -1 &&
1578
+ oldStartId === newEndId) {
1568
1579
  parentNode.insertBefore(oldStartNode, oldEndNode.nextSibling);
1569
1580
  diff(oldStartNode, newEndNode, replayer, rrnodeMirror);
1570
1581
  oldStartNode = oldChildren[++oldStartIndex];
1571
1582
  newEndNode = newChildren[--newEndIndex];
1572
1583
  }
1573
- else if (replayer.mirror.getId(oldEndNode) === rrnodeMirror.getId(newStartNode)) {
1584
+ else if (oldEndId !== -1 &&
1585
+ oldEndId === newStartId) {
1574
1586
  parentNode.insertBefore(oldEndNode, oldStartNode);
1575
1587
  diff(oldEndNode, newStartNode, replayer, rrnodeMirror);
1576
1588
  oldEndNode = oldChildren[--oldEndIndex];
@@ -1632,8 +1644,11 @@ function diffChildren(oldChildren, newChildren, parentNode, replayer, rrnodeMirr
1632
1644
  }
1633
1645
  }
1634
1646
  function createOrGetNode(rrNode, domMirror, rrnodeMirror) {
1635
- let node = domMirror.getNode(rrnodeMirror.getId(rrNode));
1647
+ const nodeId = rrnodeMirror.getId(rrNode);
1636
1648
  const sn = rrnodeMirror.getMeta(rrNode);
1649
+ let node = null;
1650
+ if (nodeId > -1)
1651
+ node = domMirror.getNode(nodeId);
1637
1652
  if (node !== null)
1638
1653
  return node;
1639
1654
  switch (rrNode.RRNodeType) {
package/lib/rrweb-all.js CHANGED
@@ -5011,29 +5011,41 @@ 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);
5018
+ console.log('oldStartId', oldStartId);
5019
+ console.log('oldEndId', oldEndId);
5020
+ console.log('newStartId', newStartId);
5021
+ console.log('newEndId', newEndId);
5014
5022
  if (oldStartNode === undefined) {
5015
5023
  oldStartNode = oldChildren[++oldStartIndex];
5016
5024
  }
5017
5025
  else if (oldEndNode === undefined) {
5018
5026
  oldEndNode = oldChildren[--oldEndIndex];
5019
5027
  }
5020
- else if (replayer.mirror.getId(oldStartNode) === rrnodeMirror.getId(newStartNode)) {
5028
+ else if (oldStartId !== -1 &&
5029
+ oldStartId === newStartId) {
5021
5030
  diff(oldStartNode, newStartNode, replayer, rrnodeMirror);
5022
5031
  oldStartNode = oldChildren[++oldStartIndex];
5023
5032
  newStartNode = newChildren[++newStartIndex];
5024
5033
  }
5025
- else if (replayer.mirror.getId(oldEndNode) === rrnodeMirror.getId(newEndNode)) {
5034
+ else if (oldEndId !== -1 &&
5035
+ oldEndId === newEndId) {
5026
5036
  diff(oldEndNode, newEndNode, replayer, rrnodeMirror);
5027
5037
  oldEndNode = oldChildren[--oldEndIndex];
5028
5038
  newEndNode = newChildren[--newEndIndex];
5029
5039
  }
5030
- else if (replayer.mirror.getId(oldStartNode) === rrnodeMirror.getId(newEndNode)) {
5040
+ else if (oldStartId !== -1 &&
5041
+ oldStartId === newEndId) {
5031
5042
  parentNode.insertBefore(oldStartNode, oldEndNode.nextSibling);
5032
5043
  diff(oldStartNode, newEndNode, replayer, rrnodeMirror);
5033
5044
  oldStartNode = oldChildren[++oldStartIndex];
5034
5045
  newEndNode = newChildren[--newEndIndex];
5035
5046
  }
5036
- else if (replayer.mirror.getId(oldEndNode) === rrnodeMirror.getId(newStartNode)) {
5047
+ else if (oldEndId !== -1 &&
5048
+ oldEndId === newStartId) {
5037
5049
  parentNode.insertBefore(oldEndNode, oldStartNode);
5038
5050
  diff(oldEndNode, newStartNode, replayer, rrnodeMirror);
5039
5051
  oldEndNode = oldChildren[--oldEndIndex];
@@ -5095,8 +5107,11 @@ function diffChildren(oldChildren, newChildren, parentNode, replayer, rrnodeMirr
5095
5107
  }
5096
5108
  }
5097
5109
  function createOrGetNode(rrNode, domMirror, rrnodeMirror) {
5098
- let node = domMirror.getNode(rrnodeMirror.getId(rrNode));
5110
+ const nodeId = rrnodeMirror.getId(rrNode);
5099
5111
  const sn = rrnodeMirror.getMeta(rrNode);
5112
+ let node = null;
5113
+ if (nodeId > -1)
5114
+ node = domMirror.getNode(nodeId);
5100
5115
  if (node !== null)
5101
5116
  return node;
5102
5117
  switch (rrNode.RRNodeType) {
package/lib/rrweb.js CHANGED
@@ -5011,29 +5011,41 @@ 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);
5018
+ console.log('oldStartId', oldStartId);
5019
+ console.log('oldEndId', oldEndId);
5020
+ console.log('newStartId', newStartId);
5021
+ console.log('newEndId', newEndId);
5014
5022
  if (oldStartNode === undefined) {
5015
5023
  oldStartNode = oldChildren[++oldStartIndex];
5016
5024
  }
5017
5025
  else if (oldEndNode === undefined) {
5018
5026
  oldEndNode = oldChildren[--oldEndIndex];
5019
5027
  }
5020
- else if (replayer.mirror.getId(oldStartNode) === rrnodeMirror.getId(newStartNode)) {
5028
+ else if (oldStartId !== -1 &&
5029
+ oldStartId === newStartId) {
5021
5030
  diff(oldStartNode, newStartNode, replayer, rrnodeMirror);
5022
5031
  oldStartNode = oldChildren[++oldStartIndex];
5023
5032
  newStartNode = newChildren[++newStartIndex];
5024
5033
  }
5025
- else if (replayer.mirror.getId(oldEndNode) === rrnodeMirror.getId(newEndNode)) {
5034
+ else if (oldEndId !== -1 &&
5035
+ oldEndId === newEndId) {
5026
5036
  diff(oldEndNode, newEndNode, replayer, rrnodeMirror);
5027
5037
  oldEndNode = oldChildren[--oldEndIndex];
5028
5038
  newEndNode = newChildren[--newEndIndex];
5029
5039
  }
5030
- else if (replayer.mirror.getId(oldStartNode) === rrnodeMirror.getId(newEndNode)) {
5040
+ else if (oldStartId !== -1 &&
5041
+ oldStartId === newEndId) {
5031
5042
  parentNode.insertBefore(oldStartNode, oldEndNode.nextSibling);
5032
5043
  diff(oldStartNode, newEndNode, replayer, rrnodeMirror);
5033
5044
  oldStartNode = oldChildren[++oldStartIndex];
5034
5045
  newEndNode = newChildren[--newEndIndex];
5035
5046
  }
5036
- else if (replayer.mirror.getId(oldEndNode) === rrnodeMirror.getId(newStartNode)) {
5047
+ else if (oldEndId !== -1 &&
5048
+ oldEndId === newStartId) {
5037
5049
  parentNode.insertBefore(oldEndNode, oldStartNode);
5038
5050
  diff(oldEndNode, newStartNode, replayer, rrnodeMirror);
5039
5051
  oldEndNode = oldChildren[--oldEndIndex];
@@ -5095,8 +5107,11 @@ function diffChildren(oldChildren, newChildren, parentNode, replayer, rrnodeMirr
5095
5107
  }
5096
5108
  }
5097
5109
  function createOrGetNode(rrNode, domMirror, rrnodeMirror) {
5098
- let node = domMirror.getNode(rrnodeMirror.getId(rrNode));
5110
+ const nodeId = rrnodeMirror.getId(rrNode);
5099
5111
  const sn = rrnodeMirror.getMeta(rrNode);
5112
+ let node = null;
5113
+ if (nodeId > -1)
5114
+ node = domMirror.getNode(nodeId);
5100
5115
  if (node !== null)
5101
5116
  return node;
5102
5117
  switch (rrNode.RRNodeType) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@highlight-run/rrweb",
3
- "version": "2.0.15",
3
+ "version": "2.0.16",
4
4
  "description": "record and replay the web",
5
5
  "scripts": {
6
6
  "prepare": "npm run prepack",
@@ -74,7 +74,7 @@
74
74
  "typescript": "^4.7.3"
75
75
  },
76
76
  "dependencies": {
77
- "@highlight-run/rrdom": ">=0.1.12",
77
+ "@highlight-run/rrdom": ">=0.1.13",
78
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",
@@ -82,5 +82,5 @@
82
82
  "fflate": "^0.4.4",
83
83
  "mitt": "^1.1.3"
84
84
  },
85
- "gitHead": "9a28a5d3e45d19d5d3888dd1b2446c0596d5cf87"
85
+ "gitHead": "563c1119c1eb935ab8dd07b1893143e5b2e4e59d"
86
86
  }