@mml-io/networked-dom-document 0.24.1 → 0.26.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"NetworkedDOM.d.ts","sourceRoot":"","sources":["../src/NetworkedDOM.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NetworkedDOM.d.ts","sourceRoot":"","sources":["../src/NetworkedDOM.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"calculateStaticVirtualDOMDiff.d.ts","sourceRoot":"","sources":["../../src/diffing/calculateStaticVirtualDOMDiff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAExE,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AAEtC,MAAM,MAAM,WAAW,GAAG;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,EAAE,uBAAuB,CAAC;IACvC,gBAAgB,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IACrC,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;CAC3C,CAAC;AAEF,wBAAgB,6BAA6B,CAC3C,aAAa,EAAE,uBAAuB,EACtC,WAAW,EAAE,uBAAuB,GACnC,oBAAoB,CAmCtB"}
1
+ {"version":3,"file":"calculateStaticVirtualDOMDiff.d.ts","sourceRoot":"","sources":["../../src/diffing/calculateStaticVirtualDOMDiff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAExE,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AAEtC,MAAM,MAAM,WAAW,GAAG;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,EAAE,uBAAuB,CAAC;IACvC,gBAAgB,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IACrC,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;CAC3C,CAAC;AAEF,wBAAgB,6BAA6B,CAC3C,aAAa,EAAE,uBAAuB,EACtC,WAAW,EAAE,uBAAuB,GACnC,oBAAoB,CA8CtB"}
package/build/index.js CHANGED
@@ -867,16 +867,19 @@ function calculateStaticVirtualDOMDiff(originalState, latestState) {
867
867
  );
868
868
  const nodeIdRemappings = [];
869
869
  const virtualDOMDiffs = [];
870
+ const runningState = JSON.parse(JSON.stringify(originalState));
870
871
  for (const diff of jsonPatchDiffs) {
871
872
  if (diff.op === "replace" && diff.path.endsWith("/nodeId")) {
872
873
  const pointer = Pointer.fromJSON(diff.path);
873
- const originalValue = pointer.get(originalState);
874
+ const originalValue = pointer.get(runningState);
874
875
  nodeIdRemappings.push({
875
876
  internalNodeId: diff.value,
876
877
  clientFacingNodeId: originalValue
877
878
  });
879
+ applyPatch(runningState, [diff]);
878
880
  } else {
879
881
  virtualDOMDiffs.push(diff);
882
+ applyPatch(runningState, [diff]);
880
883
  }
881
884
  }
882
885
  return remapDuplicatedNodeIdsInOperations(
@@ -1903,9 +1906,7 @@ var NetworkedDOM = class {
1903
1906
  console.error("Cannot dispatch remote event after dispose");
1904
1907
  throw new Error("This NetworkedDOM has been disposed");
1905
1908
  }
1906
- const node = this.nodeManager.getStaticVirtualDOMElementByInternalNodeIdOrThrow(
1907
- remoteEvent.nodeId
1908
- );
1909
+ const node = this.nodeManager.getNode(remoteEvent.nodeId);
1909
1910
  if (!node || !IsVisibleToAnyOneOfConnectionIds(
1910
1911
  node.subjectivity,
1911
1912
  /* @__PURE__ */ new Map([[internalConnectionId, 1]]),
@@ -1965,9 +1966,8 @@ var NetworkedDOM = class {
1965
1966
  this.observableDOM.dispose();
1966
1967
  }
1967
1968
  handleAddedNodes(targetId, previousSiblingId, addedNodes) {
1968
- const target = this.nodeManager.getStaticVirtualDOMElementByInternalNodeIdOrThrow(targetId);
1969
+ const target = this.nodeManager.getNode(targetId);
1969
1970
  if (!target) {
1970
- console.error("Target node not found for mutation", targetId);
1971
1971
  return;
1972
1972
  }
1973
1973
  let hasSubjectiveChildren = false;
@@ -1979,9 +1979,8 @@ var NetworkedDOM = class {
1979
1979
  let previousNode = null;
1980
1980
  let previousNodeIndex = -1;
1981
1981
  if (previousSiblingId != null) {
1982
- previousNode = this.nodeManager.getStaticVirtualDOMElementByInternalNodeIdOrThrow(previousSiblingId) || null;
1982
+ previousNode = this.nodeManager.getNode(previousSiblingId) || null;
1983
1983
  if (!previousNode) {
1984
- throw new Error("previous node not found: " + previousSiblingId);
1985
1984
  } else {
1986
1985
  previousNodeIdIsSubjectiveForV01 = previousNode.subjectivity != null && !IsVisibleToAll(previousNode.subjectivity, true);
1987
1986
  previousNodeIdIsSubjectiveForV02 = previousNode.subjectivity != null && !IsVisibleToAll(previousNode.subjectivity, false);
@@ -2155,9 +2154,8 @@ var NetworkedDOM = class {
2155
2154
  }
2156
2155
  }
2157
2156
  handleRemovedNodes(targetId, removedNodeIds) {
2158
- const node = this.nodeManager.getStaticVirtualDOMElementByInternalNodeIdOrThrow(targetId);
2157
+ const node = this.nodeManager.getNode(targetId);
2159
2158
  if (!node) {
2160
- console.error("Target node not found for mutation", targetId);
2161
2159
  return;
2162
2160
  }
2163
2161
  const parentIsSubjectiveForV01 = node.subjectivity != null && !IsVisibleToAll(node.subjectivity, true);
@@ -2182,9 +2180,9 @@ var NetworkedDOM = class {
2182
2180
  for (const client of this.networkedDOMV01Connections) {
2183
2181
  const removableChildren = [];
2184
2182
  for (const removedNodeId of removedNodeIds) {
2185
- const child = this.nodeManager.getStaticVirtualDOMElementByInternalNodeIdOrThrow(removedNodeId);
2183
+ const child = this.nodeManager.getNode(removedNodeId);
2186
2184
  if (!child) {
2187
- throw new Error("Child not found for removed node id: " + removedNodeId);
2185
+ continue;
2188
2186
  }
2189
2187
  if (child.subjectivity == null || IsVisibleToAnyOneOfConnectionIds(
2190
2188
  child.subjectivity,
@@ -2223,9 +2221,9 @@ var NetworkedDOM = class {
2223
2221
  for (const client of this.networkedDOMV02Connections) {
2224
2222
  const removableChildren = [];
2225
2223
  for (const removedNodeId of removedNodeIds) {
2226
- const child = this.nodeManager.getStaticVirtualDOMElementByInternalNodeIdOrThrow(removedNodeId);
2224
+ const child = this.nodeManager.getNode(removedNodeId);
2227
2225
  if (!child) {
2228
- throw new Error("Child not found for removed node id: " + removedNodeId);
2226
+ continue;
2229
2227
  }
2230
2228
  if (child.subjectivity == null || IsVisibleToAnyOneOfConnectionIds(
2231
2229
  child.subjectivity,
@@ -2260,9 +2258,8 @@ var NetworkedDOM = class {
2260
2258
  }
2261
2259
  handleAttributeMutation(targetId, attributes) {
2262
2260
  var _a;
2263
- const target = this.nodeManager.getStaticVirtualDOMElementByInternalNodeIdOrThrow(targetId);
2261
+ const target = this.nodeManager.getNode(targetId);
2264
2262
  if (!target) {
2265
- console.error("Target node not found for mutation", targetId);
2266
2263
  return;
2267
2264
  }
2268
2265
  const resultAttributes = {};
@@ -2302,9 +2299,8 @@ var NetworkedDOM = class {
2302
2299
  }
2303
2300
  }
2304
2301
  handleAttributeChange(targetId, attributes) {
2305
- const node = this.nodeManager.getStaticVirtualDOMElementByInternalNodeIdOrThrow(targetId);
2302
+ const node = this.nodeManager.getNode(targetId);
2306
2303
  if (!node) {
2307
- console.error("Target node not found for mutation", targetId);
2308
2304
  return;
2309
2305
  }
2310
2306
  const nodeIsSubjectiveForV01 = node.subjectivity != null && !IsVisibleToAll(node.subjectivity, true);
@@ -2365,9 +2361,8 @@ var NetworkedDOM = class {
2365
2361
  }
2366
2362
  }
2367
2363
  handleVisibleToChange(targetId, added, removed) {
2368
- const node = this.nodeManager.getStaticVirtualDOMElementByInternalNodeIdOrThrow(targetId);
2364
+ const node = this.nodeManager.getNode(targetId);
2369
2365
  if (!node) {
2370
- console.error("Target node not found for mutation", targetId);
2371
2366
  return;
2372
2367
  }
2373
2368
  if (node.parent == null) {
@@ -2413,9 +2408,8 @@ var NetworkedDOM = class {
2413
2408
  this.applyVisibilityAfterChanges(node, visibilityRecords, added, removed, VisibleToMode);
2414
2409
  }
2415
2410
  handleHiddenFromChange(targetId, added, removed) {
2416
- const node = this.nodeManager.getStaticVirtualDOMElementByInternalNodeIdOrThrow(targetId);
2411
+ const node = this.nodeManager.getNode(targetId);
2417
2412
  if (!node) {
2418
- console.error("Target node not found for mutation", targetId);
2419
2413
  return;
2420
2414
  }
2421
2415
  if (node.parent == null) {
@@ -2457,9 +2451,8 @@ var NetworkedDOM = class {
2457
2451
  this.applyVisibilityAfterChanges(node, visibilityRecords, added, removed, HiddenFromMode);
2458
2452
  }
2459
2453
  handleCharacterData(targetId, textContent) {
2460
- const node = this.nodeManager.getStaticVirtualDOMElementByInternalNodeIdOrThrow(targetId);
2454
+ const node = this.nodeManager.getNode(targetId);
2461
2455
  if (!node) {
2462
- console.error("Target node not found for mutation", targetId);
2463
2456
  return;
2464
2457
  }
2465
2458
  const nodeIsSubjectiveForV01 = node.subjectivity != null && !IsVisibleToAll(node.subjectivity, true);
@@ -2772,7 +2765,10 @@ var NetworkedDOM = class {
2772
2765
  }
2773
2766
  }
2774
2767
  removeNodeAndChildren(nodeId) {
2775
- const node = this.nodeManager.getStaticVirtualDOMElementByInternalNodeIdOrThrow(nodeId);
2768
+ const node = this.nodeManager.getNode(nodeId);
2769
+ if (!node) {
2770
+ return;
2771
+ }
2776
2772
  if (node.subjectivity != null) {
2777
2773
  for (const connectionId of node.subjectivity.visibleTo) {
2778
2774
  this.visibilityManager.removeSpecificallyVisibleNode(connectionId, nodeId);