@fluidframework/tree 2.1.0-274160 → 2.1.0-276985

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 (173) hide show
  1. package/README.md +93 -34
  2. package/api-report/tree.alpha.api.md +0 -3
  3. package/dist/core/tree/anchorSet.js +2 -2
  4. package/dist/core/tree/anchorSet.js.map +1 -1
  5. package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts +1 -1
  6. package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
  7. package/dist/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
  8. package/dist/feature-libraries/flex-tree/lazyField.d.ts +1 -1
  9. package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
  10. package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
  11. package/dist/feature-libraries/modular-schema/modularChangeCodecs.js +4 -0
  12. package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
  13. package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts +4 -0
  14. package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
  15. package/dist/feature-libraries/modular-schema/modularChangeFormat.js +4 -0
  16. package/dist/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -1
  17. package/dist/index.d.ts +1 -1
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js.map +1 -1
  20. package/dist/packageVersion.d.ts +1 -1
  21. package/dist/packageVersion.js +1 -1
  22. package/dist/packageVersion.js.map +1 -1
  23. package/dist/shared-tree/index.d.ts +1 -1
  24. package/dist/shared-tree/index.d.ts.map +1 -1
  25. package/dist/shared-tree/index.js.map +1 -1
  26. package/dist/shared-tree/schematizingTreeView.d.ts +4 -6
  27. package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
  28. package/dist/shared-tree/schematizingTreeView.js +7 -9
  29. package/dist/shared-tree/schematizingTreeView.js.map +1 -1
  30. package/dist/shared-tree/sharedTree.d.ts +3 -3
  31. package/dist/shared-tree/sharedTree.d.ts.map +1 -1
  32. package/dist/shared-tree/sharedTree.js +0 -10
  33. package/dist/shared-tree/sharedTree.js.map +1 -1
  34. package/dist/shared-tree/treeApi.js.map +1 -1
  35. package/dist/shared-tree/treeView.d.ts +13 -6
  36. package/dist/shared-tree/treeView.d.ts.map +1 -1
  37. package/dist/shared-tree/treeView.js +0 -2
  38. package/dist/shared-tree/treeView.js.map +1 -1
  39. package/dist/simple-tree/arrayNode.d.ts.map +1 -1
  40. package/dist/simple-tree/arrayNode.js +23 -22
  41. package/dist/simple-tree/arrayNode.js.map +1 -1
  42. package/dist/simple-tree/index.d.ts +2 -2
  43. package/dist/simple-tree/index.d.ts.map +1 -1
  44. package/dist/simple-tree/index.js +2 -3
  45. package/dist/simple-tree/index.js.map +1 -1
  46. package/dist/simple-tree/objectNode.d.ts.map +1 -1
  47. package/dist/simple-tree/objectNode.js +4 -0
  48. package/dist/simple-tree/objectNode.js.map +1 -1
  49. package/dist/simple-tree/proxies.d.ts.map +1 -1
  50. package/dist/simple-tree/proxies.js +13 -16
  51. package/dist/simple-tree/proxies.js.map +1 -1
  52. package/dist/simple-tree/schemaFactory.d.ts +8 -0
  53. package/dist/simple-tree/schemaFactory.d.ts.map +1 -1
  54. package/dist/simple-tree/schemaFactory.js +10 -24
  55. package/dist/simple-tree/schemaFactory.js.map +1 -1
  56. package/dist/simple-tree/toFlexSchema.d.ts +0 -15
  57. package/dist/simple-tree/toFlexSchema.d.ts.map +1 -1
  58. package/dist/simple-tree/toFlexSchema.js +1 -35
  59. package/dist/simple-tree/toFlexSchema.js.map +1 -1
  60. package/dist/simple-tree/tree.d.ts +0 -29
  61. package/dist/simple-tree/tree.d.ts.map +1 -1
  62. package/dist/simple-tree/tree.js +1 -24
  63. package/dist/simple-tree/tree.js.map +1 -1
  64. package/dist/treeFactory.d.ts +1 -1
  65. package/dist/treeFactory.js +1 -1
  66. package/dist/treeFactory.js.map +1 -1
  67. package/dist/util/brandedMap.d.ts +9 -2
  68. package/dist/util/brandedMap.d.ts.map +1 -1
  69. package/dist/util/brandedMap.js +3 -4
  70. package/dist/util/brandedMap.js.map +1 -1
  71. package/dist/util/nestedMap.d.ts +7 -1
  72. package/dist/util/nestedMap.d.ts.map +1 -1
  73. package/dist/util/nestedMap.js +17 -6
  74. package/dist/util/nestedMap.js.map +1 -1
  75. package/docs/README.md +1 -1
  76. package/docs/main/compatibility.md +1 -1
  77. package/docs/main/stored-and-view-schema.md +1 -1
  78. package/lib/core/tree/anchorSet.js +2 -2
  79. package/lib/core/tree/anchorSet.js.map +1 -1
  80. package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts +1 -1
  81. package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
  82. package/lib/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
  83. package/lib/feature-libraries/flex-tree/lazyField.d.ts +1 -1
  84. package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
  85. package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
  86. package/lib/feature-libraries/modular-schema/modularChangeCodecs.js +4 -0
  87. package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
  88. package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts +4 -0
  89. package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
  90. package/lib/feature-libraries/modular-schema/modularChangeFormat.js +4 -0
  91. package/lib/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -1
  92. package/lib/index.d.ts +1 -1
  93. package/lib/index.d.ts.map +1 -1
  94. package/lib/index.js.map +1 -1
  95. package/lib/packageVersion.d.ts +1 -1
  96. package/lib/packageVersion.js +1 -1
  97. package/lib/packageVersion.js.map +1 -1
  98. package/lib/shared-tree/index.d.ts +1 -1
  99. package/lib/shared-tree/index.d.ts.map +1 -1
  100. package/lib/shared-tree/index.js +1 -1
  101. package/lib/shared-tree/index.js.map +1 -1
  102. package/lib/shared-tree/schematizingTreeView.d.ts +4 -6
  103. package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
  104. package/lib/shared-tree/schematizingTreeView.js +9 -11
  105. package/lib/shared-tree/schematizingTreeView.js.map +1 -1
  106. package/lib/shared-tree/sharedTree.d.ts +3 -3
  107. package/lib/shared-tree/sharedTree.d.ts.map +1 -1
  108. package/lib/shared-tree/sharedTree.js +0 -10
  109. package/lib/shared-tree/sharedTree.js.map +1 -1
  110. package/lib/shared-tree/treeApi.js.map +1 -1
  111. package/lib/shared-tree/treeView.d.ts +13 -6
  112. package/lib/shared-tree/treeView.d.ts.map +1 -1
  113. package/lib/shared-tree/treeView.js +0 -2
  114. package/lib/shared-tree/treeView.js.map +1 -1
  115. package/lib/simple-tree/arrayNode.d.ts.map +1 -1
  116. package/lib/simple-tree/arrayNode.js +23 -22
  117. package/lib/simple-tree/arrayNode.js.map +1 -1
  118. package/lib/simple-tree/index.d.ts +2 -2
  119. package/lib/simple-tree/index.d.ts.map +1 -1
  120. package/lib/simple-tree/index.js +2 -2
  121. package/lib/simple-tree/index.js.map +1 -1
  122. package/lib/simple-tree/objectNode.d.ts.map +1 -1
  123. package/lib/simple-tree/objectNode.js +4 -0
  124. package/lib/simple-tree/objectNode.js.map +1 -1
  125. package/lib/simple-tree/proxies.d.ts.map +1 -1
  126. package/lib/simple-tree/proxies.js +14 -17
  127. package/lib/simple-tree/proxies.js.map +1 -1
  128. package/lib/simple-tree/schemaFactory.d.ts +8 -0
  129. package/lib/simple-tree/schemaFactory.d.ts.map +1 -1
  130. package/lib/simple-tree/schemaFactory.js +11 -25
  131. package/lib/simple-tree/schemaFactory.js.map +1 -1
  132. package/lib/simple-tree/toFlexSchema.d.ts +0 -15
  133. package/lib/simple-tree/toFlexSchema.d.ts.map +1 -1
  134. package/lib/simple-tree/toFlexSchema.js +0 -33
  135. package/lib/simple-tree/toFlexSchema.js.map +1 -1
  136. package/lib/simple-tree/tree.d.ts +0 -29
  137. package/lib/simple-tree/tree.d.ts.map +1 -1
  138. package/lib/simple-tree/tree.js +0 -22
  139. package/lib/simple-tree/tree.js.map +1 -1
  140. package/lib/treeFactory.d.ts +1 -1
  141. package/lib/treeFactory.js +1 -1
  142. package/lib/treeFactory.js.map +1 -1
  143. package/lib/util/brandedMap.d.ts +9 -2
  144. package/lib/util/brandedMap.d.ts.map +1 -1
  145. package/lib/util/brandedMap.js +3 -4
  146. package/lib/util/brandedMap.js.map +1 -1
  147. package/lib/util/nestedMap.d.ts +7 -1
  148. package/lib/util/nestedMap.d.ts.map +1 -1
  149. package/lib/util/nestedMap.js +17 -6
  150. package/lib/util/nestedMap.js.map +1 -1
  151. package/package.json +22 -22
  152. package/src/core/tree/anchorSet.ts +3 -3
  153. package/src/feature-libraries/flex-tree/flexTreeTypes.ts +5 -1
  154. package/src/feature-libraries/flex-tree/lazyField.ts +8 -5
  155. package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +5 -0
  156. package/src/feature-libraries/modular-schema/modularChangeFormat.ts +4 -0
  157. package/src/index.ts +1 -0
  158. package/src/packageVersion.ts +1 -1
  159. package/src/shared-tree/index.ts +6 -1
  160. package/src/shared-tree/schematizingTreeView.ts +14 -21
  161. package/src/shared-tree/sharedTree.ts +1 -20
  162. package/src/shared-tree/treeApi.ts +2 -2
  163. package/src/shared-tree/treeView.ts +14 -8
  164. package/src/simple-tree/arrayNode.ts +28 -24
  165. package/src/simple-tree/index.ts +1 -2
  166. package/src/simple-tree/objectNode.ts +6 -0
  167. package/src/simple-tree/proxies.ts +22 -20
  168. package/src/simple-tree/schemaFactory.ts +13 -41
  169. package/src/simple-tree/toFlexSchema.ts +0 -47
  170. package/src/simple-tree/tree.ts +0 -37
  171. package/src/treeFactory.ts +1 -1
  172. package/src/util/brandedMap.ts +18 -11
  173. package/src/util/nestedMap.ts +17 -9
@@ -42,23 +42,31 @@ export function tryAddToNestedMap<Key1, Key2, Value>(
42
42
  /**
43
43
  * Copies over all entries from the source map into the destination map.
44
44
  *
45
+ * @param source - The map to copy data from. Not mutated.
46
+ * @param destination - The map to copy data into. Both the outer and inner map may be mutated.
47
+ * @param override - Whether existing entries in `destination` should be replaced by corresponding entries in `source`.
48
+ *
49
+ * @remarks - This function performs deep copying when necessary.
50
+ * This ensures that mutating `destination` after this call will not result in unexpected mutations to `source`.
45
51
  * @internal
46
52
  */
47
53
  export function populateNestedMap<Key1, Key2, Value>(
48
- source: NestedMap<Key1, Key2, Value>,
54
+ source: ReadonlyMap<Key1, ReadonlyMap<Key2, Value>>,
49
55
  destination: NestedMap<Key1, Key2, Value>,
50
56
  override: boolean,
51
57
  ): void {
52
- for (const [key1, innerMap] of source) {
53
- const newInner = new Map(destination.get(key1));
54
-
55
- for (const [key2, value] of innerMap) {
56
- if (override || !newInner.has(key2)) {
57
- newInner.set(key2, value);
58
+ for (const [key1, sourceInner] of source) {
59
+ let destinationInner = destination.get(key1);
60
+ if (destinationInner === undefined) {
61
+ destinationInner = new Map(sourceInner);
62
+ destination.set(key1, destinationInner);
63
+ } else {
64
+ for (const [key2, value] of sourceInner) {
65
+ if (override || !destinationInner.has(key2)) {
66
+ destinationInner.set(key2, value);
67
+ }
58
68
  }
59
69
  }
60
-
61
- destination.set(key1, newInner);
62
70
  }
63
71
  }
64
72