@fluidframework/tree 2.0.0-dev-rc.1.0.0.224419

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 (2212) hide show
  1. package/.dependency-cruiser-known-violations.json +111 -0
  2. package/.dependency-cruiser.js +442 -0
  3. package/.eslintrc.js +34 -0
  4. package/.mocharc.js +13 -0
  5. package/.vscode/Tree.code-workspace +15 -0
  6. package/.vscode/extensions.json +7 -0
  7. package/.vscode/launch.json +16 -0
  8. package/.vscode/settings.json +16 -0
  9. package/CHANGELOG.md +302 -0
  10. package/DEV.md +3 -0
  11. package/LICENSE +21 -0
  12. package/README.md +388 -0
  13. package/api-extractor-lint.json +13 -0
  14. package/api-extractor.json +4 -0
  15. package/api-report/tree.api.md +2022 -0
  16. package/dist/class-tree/index.d.ts +15 -0
  17. package/dist/class-tree/index.d.ts.map +1 -0
  18. package/dist/class-tree/index.js +57 -0
  19. package/dist/class-tree/index.js.map +1 -0
  20. package/dist/class-tree/integerIndexable.d.ts +31 -0
  21. package/dist/class-tree/integerIndexable.d.ts.map +1 -0
  22. package/dist/class-tree/integerIndexable.js +97 -0
  23. package/dist/class-tree/integerIndexable.js.map +1 -0
  24. package/dist/class-tree/internal.d.ts +6 -0
  25. package/dist/class-tree/internal.d.ts.map +1 -0
  26. package/dist/class-tree/internal.js +12 -0
  27. package/dist/class-tree/internal.js.map +1 -0
  28. package/dist/class-tree/schemaCreationUtilities.d.ts +96 -0
  29. package/dist/class-tree/schemaCreationUtilities.d.ts.map +1 -0
  30. package/dist/class-tree/schemaCreationUtilities.js +137 -0
  31. package/dist/class-tree/schemaCreationUtilities.js.map +1 -0
  32. package/dist/class-tree/schemaFactory.d.ts +225 -0
  33. package/dist/class-tree/schemaFactory.d.ts.map +1 -0
  34. package/dist/class-tree/schemaFactory.js +330 -0
  35. package/dist/class-tree/schemaFactory.js.map +1 -0
  36. package/dist/class-tree/schemaFactoryRecursive.d.ts +41 -0
  37. package/dist/class-tree/schemaFactoryRecursive.d.ts.map +1 -0
  38. package/dist/class-tree/schemaFactoryRecursive.js +66 -0
  39. package/dist/class-tree/schemaFactoryRecursive.js.map +1 -0
  40. package/dist/class-tree/schemaTypes.d.ts +237 -0
  41. package/dist/class-tree/schemaTypes.d.ts.map +1 -0
  42. package/dist/class-tree/schemaTypes.js +71 -0
  43. package/dist/class-tree/schemaTypes.js.map +1 -0
  44. package/dist/class-tree/testRecursiveDomain.d.ts +28 -0
  45. package/dist/class-tree/testRecursiveDomain.d.ts.map +1 -0
  46. package/dist/class-tree/testRecursiveDomain.js +40 -0
  47. package/dist/class-tree/testRecursiveDomain.js.map +1 -0
  48. package/dist/class-tree/toFlexSchema.d.ts +58 -0
  49. package/dist/class-tree/toFlexSchema.d.ts.map +1 -0
  50. package/dist/class-tree/toFlexSchema.js +207 -0
  51. package/dist/class-tree/toFlexSchema.js.map +1 -0
  52. package/dist/class-tree/tree.d.ts +98 -0
  53. package/dist/class-tree/tree.d.ts.map +1 -0
  54. package/dist/class-tree/tree.js +46 -0
  55. package/dist/class-tree/tree.js.map +1 -0
  56. package/dist/class-tree/treeApi.d.ts +69 -0
  57. package/dist/class-tree/treeApi.d.ts.map +1 -0
  58. package/dist/class-tree/treeApi.js +56 -0
  59. package/dist/class-tree/treeApi.js.map +1 -0
  60. package/dist/codec/codec.d.ts +214 -0
  61. package/dist/codec/codec.d.ts.map +1 -0
  62. package/dist/codec/codec.js +168 -0
  63. package/dist/codec/codec.js.map +1 -0
  64. package/dist/codec/discriminatedUnions.d.ts +82 -0
  65. package/dist/codec/discriminatedUnions.d.ts.map +1 -0
  66. package/dist/codec/discriminatedUnions.js +91 -0
  67. package/dist/codec/discriminatedUnions.js.map +1 -0
  68. package/dist/codec/index.d.ts +8 -0
  69. package/dist/codec/index.d.ts.map +1 -0
  70. package/dist/codec/index.js +19 -0
  71. package/dist/codec/index.js.map +1 -0
  72. package/dist/codec/noopValidator.d.ts +13 -0
  73. package/dist/codec/noopValidator.d.ts.map +1 -0
  74. package/dist/codec/noopValidator.js +17 -0
  75. package/dist/codec/noopValidator.js.map +1 -0
  76. package/dist/core/change-family/changeFamily.d.ts +32 -0
  77. package/dist/core/change-family/changeFamily.d.ts.map +1 -0
  78. package/dist/core/change-family/changeFamily.js +7 -0
  79. package/dist/core/change-family/changeFamily.js.map +1 -0
  80. package/dist/core/change-family/editBuilder.d.ts +19 -0
  81. package/dist/core/change-family/editBuilder.d.ts.map +1 -0
  82. package/dist/core/change-family/editBuilder.js +25 -0
  83. package/dist/core/change-family/editBuilder.js.map +1 -0
  84. package/dist/core/change-family/index.d.ts +7 -0
  85. package/dist/core/change-family/index.d.ts.map +1 -0
  86. package/dist/core/change-family/index.js +10 -0
  87. package/dist/core/change-family/index.js.map +1 -0
  88. package/dist/core/forest/editableForest.d.ts +54 -0
  89. package/dist/core/forest/editableForest.d.ts.map +1 -0
  90. package/dist/core/forest/editableForest.js +27 -0
  91. package/dist/core/forest/editableForest.js.map +1 -0
  92. package/dist/core/forest/forest.d.ts +200 -0
  93. package/dist/core/forest/forest.d.ts.map +1 -0
  94. package/dist/core/forest/forest.js +66 -0
  95. package/dist/core/forest/forest.js.map +1 -0
  96. package/dist/core/forest/index.d.ts +7 -0
  97. package/dist/core/forest/index.d.ts.map +1 -0
  98. package/dist/core/forest/index.js +15 -0
  99. package/dist/core/forest/index.js.map +1 -0
  100. package/dist/core/index.d.ts +12 -0
  101. package/dist/core/index.d.ts.map +1 -0
  102. package/dist/core/index.js +106 -0
  103. package/dist/core/index.js.map +1 -0
  104. package/dist/core/rebase/changeRebaser.d.ts +132 -0
  105. package/dist/core/rebase/changeRebaser.d.ts.map +1 -0
  106. package/dist/core/rebase/changeRebaser.js +34 -0
  107. package/dist/core/rebase/changeRebaser.js.map +1 -0
  108. package/dist/core/rebase/index.d.ts +9 -0
  109. package/dist/core/rebase/index.d.ts.map +1 -0
  110. package/dist/core/rebase/index.js +32 -0
  111. package/dist/core/rebase/index.js.map +1 -0
  112. package/dist/core/rebase/types.d.ts +93 -0
  113. package/dist/core/rebase/types.d.ts.map +1 -0
  114. package/dist/core/rebase/types.js +59 -0
  115. package/dist/core/rebase/types.js.map +1 -0
  116. package/dist/core/rebase/utils.d.ts +215 -0
  117. package/dist/core/rebase/utils.d.ts.map +1 -0
  118. package/dist/core/rebase/utils.js +297 -0
  119. package/dist/core/rebase/utils.js.map +1 -0
  120. package/dist/core/rebase/verifyChangeRebaser.d.ts +76 -0
  121. package/dist/core/rebase/verifyChangeRebaser.d.ts.map +1 -0
  122. package/dist/core/rebase/verifyChangeRebaser.js +291 -0
  123. package/dist/core/rebase/verifyChangeRebaser.js.map +1 -0
  124. package/dist/core/revertible/index.d.ts +6 -0
  125. package/dist/core/revertible/index.d.ts.map +1 -0
  126. package/dist/core/revertible/index.js +12 -0
  127. package/dist/core/revertible/index.js.map +1 -0
  128. package/dist/core/revertible/revertible.d.ts +72 -0
  129. package/dist/core/revertible/revertible.d.ts.map +1 -0
  130. package/dist/core/revertible/revertible.js +51 -0
  131. package/dist/core/revertible/revertible.js.map +1 -0
  132. package/dist/core/schema-stored/format.d.ts +97 -0
  133. package/dist/core/schema-stored/format.d.ts.map +1 -0
  134. package/dist/core/schema-stored/format.js +65 -0
  135. package/dist/core/schema-stored/format.js.map +1 -0
  136. package/dist/core/schema-stored/index.d.ts +10 -0
  137. package/dist/core/schema-stored/index.d.ts.map +1 -0
  138. package/dist/core/schema-stored/index.js +47 -0
  139. package/dist/core/schema-stored/index.js.map +1 -0
  140. package/dist/core/schema-stored/schema.d.ts +195 -0
  141. package/dist/core/schema-stored/schema.d.ts.map +1 -0
  142. package/dist/core/schema-stored/schema.js +174 -0
  143. package/dist/core/schema-stored/schema.js.map +1 -0
  144. package/dist/core/schema-stored/storedSchemaRepository.d.ts +71 -0
  145. package/dist/core/schema-stored/storedSchemaRepository.d.ts.map +1 -0
  146. package/dist/core/schema-stored/storedSchemaRepository.js +81 -0
  147. package/dist/core/schema-stored/storedSchemaRepository.js.map +1 -0
  148. package/dist/core/schema-view/index.d.ts +6 -0
  149. package/dist/core/schema-view/index.d.ts.map +1 -0
  150. package/dist/core/schema-view/index.js +12 -0
  151. package/dist/core/schema-view/index.js.map +1 -0
  152. package/dist/core/schema-view/view.d.ts +64 -0
  153. package/dist/core/schema-view/view.d.ts.map +1 -0
  154. package/dist/core/schema-view/view.js +55 -0
  155. package/dist/core/schema-view/view.js.map +1 -0
  156. package/dist/core/tree/anchorSet.d.ts +318 -0
  157. package/dist/core/tree/anchorSet.d.ts.map +1 -0
  158. package/dist/core/tree/anchorSet.js +895 -0
  159. package/dist/core/tree/anchorSet.js.map +1 -0
  160. package/dist/core/tree/cursor.d.ts +358 -0
  161. package/dist/core/tree/cursor.d.ts.map +1 -0
  162. package/dist/core/tree/cursor.js +169 -0
  163. package/dist/core/tree/cursor.js.map +1 -0
  164. package/dist/core/tree/delta.d.ts +241 -0
  165. package/dist/core/tree/delta.d.ts.map +1 -0
  166. package/dist/core/tree/delta.js +7 -0
  167. package/dist/core/tree/delta.js.map +1 -0
  168. package/dist/core/tree/deltaUtil.d.ts +19 -0
  169. package/dist/core/tree/deltaUtil.d.ts.map +1 -0
  170. package/dist/core/tree/deltaUtil.js +82 -0
  171. package/dist/core/tree/deltaUtil.js.map +1 -0
  172. package/dist/core/tree/detachedFieldIndex.d.ts +64 -0
  173. package/dist/core/tree/detachedFieldIndex.d.ts.map +1 -0
  174. package/dist/core/tree/detachedFieldIndex.js +119 -0
  175. package/dist/core/tree/detachedFieldIndex.js.map +1 -0
  176. package/dist/core/tree/detachedFieldIndexCodec.d.ts +8 -0
  177. package/dist/core/tree/detachedFieldIndexCodec.d.ts.map +1 -0
  178. package/dist/core/tree/detachedFieldIndexCodec.js +53 -0
  179. package/dist/core/tree/detachedFieldIndexCodec.js.map +1 -0
  180. package/dist/core/tree/detachedFieldIndexFormat.d.ts +18 -0
  181. package/dist/core/tree/detachedFieldIndexFormat.d.ts.map +1 -0
  182. package/dist/core/tree/detachedFieldIndexFormat.js +25 -0
  183. package/dist/core/tree/detachedFieldIndexFormat.js.map +1 -0
  184. package/dist/core/tree/detachedFieldIndexTypes.d.ts +13 -0
  185. package/dist/core/tree/detachedFieldIndexTypes.d.ts.map +1 -0
  186. package/dist/core/tree/detachedFieldIndexTypes.js +7 -0
  187. package/dist/core/tree/detachedFieldIndexTypes.js.map +1 -0
  188. package/dist/core/tree/index.d.ts +19 -0
  189. package/dist/core/tree/index.d.ts.map +1 -0
  190. package/dist/core/tree/index.js +67 -0
  191. package/dist/core/tree/index.js.map +1 -0
  192. package/dist/core/tree/mapTree.d.ts +22 -0
  193. package/dist/core/tree/mapTree.d.ts.map +1 -0
  194. package/dist/core/tree/mapTree.js +25 -0
  195. package/dist/core/tree/mapTree.js.map +1 -0
  196. package/dist/core/tree/pathTree.d.ts +156 -0
  197. package/dist/core/tree/pathTree.d.ts.map +1 -0
  198. package/dist/core/tree/pathTree.js +99 -0
  199. package/dist/core/tree/pathTree.js.map +1 -0
  200. package/dist/core/tree/persistedTreeTextFormat.d.ts +93 -0
  201. package/dist/core/tree/persistedTreeTextFormat.d.ts.map +1 -0
  202. package/dist/core/tree/persistedTreeTextFormat.js +23 -0
  203. package/dist/core/tree/persistedTreeTextFormat.js.map +1 -0
  204. package/dist/core/tree/sparseTree.d.ts +91 -0
  205. package/dist/core/tree/sparseTree.d.ts.map +1 -0
  206. package/dist/core/tree/sparseTree.js +149 -0
  207. package/dist/core/tree/sparseTree.js.map +1 -0
  208. package/dist/core/tree/treeTextFormat.d.ts +94 -0
  209. package/dist/core/tree/treeTextFormat.d.ts.map +1 -0
  210. package/dist/core/tree/treeTextFormat.js +88 -0
  211. package/dist/core/tree/treeTextFormat.js.map +1 -0
  212. package/dist/core/tree/types.d.ts +145 -0
  213. package/dist/core/tree/types.d.ts.map +1 -0
  214. package/dist/core/tree/types.js +60 -0
  215. package/dist/core/tree/types.js.map +1 -0
  216. package/dist/core/tree/visitDelta.d.ts +135 -0
  217. package/dist/core/tree/visitDelta.d.ts.map +1 -0
  218. package/dist/core/tree/visitDelta.js +304 -0
  219. package/dist/core/tree/visitDelta.js.map +1 -0
  220. package/dist/core/tree/visitPath.d.ts +103 -0
  221. package/dist/core/tree/visitPath.d.ts.map +1 -0
  222. package/dist/core/tree/visitPath.js +3 -0
  223. package/dist/core/tree/visitPath.js.map +1 -0
  224. package/dist/core/tree/visitorUtils.d.ts +37 -0
  225. package/dist/core/tree/visitorUtils.d.ts.map +1 -0
  226. package/dist/core/tree/visitorUtils.js +60 -0
  227. package/dist/core/tree/visitorUtils.js.map +1 -0
  228. package/dist/domains/index.d.ts +9 -0
  229. package/dist/domains/index.d.ts.map +1 -0
  230. package/dist/domains/index.js +23 -0
  231. package/dist/domains/index.js.map +1 -0
  232. package/dist/domains/json/index.d.ts +7 -0
  233. package/dist/domains/json/index.d.ts.map +1 -0
  234. package/dist/domains/json/index.js +16 -0
  235. package/dist/domains/json/index.js.map +1 -0
  236. package/dist/domains/json/jsonCursor.d.ts +18 -0
  237. package/dist/domains/json/jsonCursor.d.ts.map +1 -0
  238. package/dist/domains/json/jsonCursor.js +125 -0
  239. package/dist/domains/json/jsonCursor.js.map +1 -0
  240. package/dist/domains/json/jsonDomainSchema.d.ts +14 -0
  241. package/dist/domains/json/jsonDomainSchema.d.ts.map +1 -0
  242. package/dist/domains/json/jsonDomainSchema.js +24 -0
  243. package/dist/domains/json/jsonDomainSchema.js.map +1 -0
  244. package/dist/domains/leafDomain.d.ts +73 -0
  245. package/dist/domains/leafDomain.d.ts.map +1 -0
  246. package/dist/domains/leafDomain.js +89 -0
  247. package/dist/domains/leafDomain.js.map +1 -0
  248. package/dist/domains/nodeKey/index.d.ts +6 -0
  249. package/dist/domains/nodeKey/index.d.ts.map +1 -0
  250. package/dist/domains/nodeKey/index.js +12 -0
  251. package/dist/domains/nodeKey/index.js.map +1 -0
  252. package/dist/domains/nodeKey/nodeKeySchema.d.ts +30 -0
  253. package/dist/domains/nodeKey/nodeKeySchema.d.ts.map +1 -0
  254. package/dist/domains/nodeKey/nodeKeySchema.js +36 -0
  255. package/dist/domains/nodeKey/nodeKeySchema.js.map +1 -0
  256. package/dist/domains/schemaBuilder.d.ts +190 -0
  257. package/dist/domains/schemaBuilder.d.ts.map +1 -0
  258. package/dist/domains/schemaBuilder.js +204 -0
  259. package/dist/domains/schemaBuilder.js.map +1 -0
  260. package/dist/domains/testRecursiveDomain.d.ts +21 -0
  261. package/dist/domains/testRecursiveDomain.d.ts.map +1 -0
  262. package/dist/domains/testRecursiveDomain.js +42 -0
  263. package/dist/domains/testRecursiveDomain.js.map +1 -0
  264. package/dist/events/events.d.ts +187 -0
  265. package/dist/events/events.d.ts.map +1 -0
  266. package/dist/events/events.js +124 -0
  267. package/dist/events/events.js.map +1 -0
  268. package/dist/events/index.d.ts +6 -0
  269. package/dist/events/index.d.ts.map +1 -0
  270. package/dist/events/index.js +11 -0
  271. package/dist/events/index.js.map +1 -0
  272. package/dist/external-utilities/index.d.ts +6 -0
  273. package/dist/external-utilities/index.d.ts.map +1 -0
  274. package/dist/external-utilities/index.js +10 -0
  275. package/dist/external-utilities/index.js.map +1 -0
  276. package/dist/external-utilities/typeboxValidator.d.ts +18 -0
  277. package/dist/external-utilities/typeboxValidator.d.ts.map +1 -0
  278. package/dist/external-utilities/typeboxValidator.js +30 -0
  279. package/dist/external-utilities/typeboxValidator.js.map +1 -0
  280. package/dist/feature-libraries/chunked-forest/basicChunk.d.ts +111 -0
  281. package/dist/feature-libraries/chunked-forest/basicChunk.d.ts.map +1 -0
  282. package/dist/feature-libraries/chunked-forest/basicChunk.js +460 -0
  283. package/dist/feature-libraries/chunked-forest/basicChunk.js.map +1 -0
  284. package/dist/feature-libraries/chunked-forest/chunk.d.ts +89 -0
  285. package/dist/feature-libraries/chunked-forest/chunk.d.ts.map +1 -0
  286. package/dist/feature-libraries/chunked-forest/chunk.js +28 -0
  287. package/dist/feature-libraries/chunked-forest/chunk.js.map +1 -0
  288. package/dist/feature-libraries/chunked-forest/chunkTree.d.ts +156 -0
  289. package/dist/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -0
  290. package/dist/feature-libraries/chunked-forest/chunkTree.js +357 -0
  291. package/dist/feature-libraries/chunked-forest/chunkTree.js.map +1 -0
  292. package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts +57 -0
  293. package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -0
  294. package/dist/feature-libraries/chunked-forest/chunkedForest.js +300 -0
  295. package/dist/feature-libraries/chunked-forest/chunkedForest.js.map +1 -0
  296. package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts +114 -0
  297. package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts.map +1 -0
  298. package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js +135 -0
  299. package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js.map +1 -0
  300. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts +61 -0
  301. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -0
  302. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js +219 -0
  303. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -0
  304. package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts +30 -0
  305. package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts.map +1 -0
  306. package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js +53 -0
  307. package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js.map +1 -0
  308. package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts +81 -0
  309. package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts.map +1 -0
  310. package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js +126 -0
  311. package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js.map +1 -0
  312. package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts +32 -0
  313. package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -0
  314. package/dist/feature-libraries/chunked-forest/codec/codecs.js +68 -0
  315. package/dist/feature-libraries/chunked-forest/codec/codecs.js.map +1 -0
  316. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +149 -0
  317. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -0
  318. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js +280 -0
  319. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -0
  320. package/dist/feature-libraries/chunked-forest/codec/fieldBatch.d.ts +11 -0
  321. package/dist/feature-libraries/chunked-forest/codec/fieldBatch.d.ts.map +1 -0
  322. package/dist/feature-libraries/chunked-forest/codec/fieldBatch.js +7 -0
  323. package/dist/feature-libraries/chunked-forest/codec/fieldBatch.js.map +1 -0
  324. package/dist/feature-libraries/chunked-forest/codec/format.d.ts +208 -0
  325. package/dist/feature-libraries/chunked-forest/codec/format.d.ts.map +1 -0
  326. package/dist/feature-libraries/chunked-forest/codec/format.js +138 -0
  327. package/dist/feature-libraries/chunked-forest/codec/format.js.map +1 -0
  328. package/dist/feature-libraries/chunked-forest/codec/formatGeneric.d.ts +43 -0
  329. package/dist/feature-libraries/chunked-forest/codec/formatGeneric.d.ts.map +1 -0
  330. package/dist/feature-libraries/chunked-forest/codec/formatGeneric.js +45 -0
  331. package/dist/feature-libraries/chunked-forest/codec/formatGeneric.js.map +1 -0
  332. package/dist/feature-libraries/chunked-forest/codec/index.d.ts +8 -0
  333. package/dist/feature-libraries/chunked-forest/codec/index.d.ts.map +1 -0
  334. package/dist/feature-libraries/chunked-forest/codec/index.js +13 -0
  335. package/dist/feature-libraries/chunked-forest/codec/index.js.map +1 -0
  336. package/dist/feature-libraries/chunked-forest/codec/nodeShape.d.ts +23 -0
  337. package/dist/feature-libraries/chunked-forest/codec/nodeShape.d.ts.map +1 -0
  338. package/dist/feature-libraries/chunked-forest/codec/nodeShape.js +94 -0
  339. package/dist/feature-libraries/chunked-forest/codec/nodeShape.js.map +1 -0
  340. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncoding.d.ts +28 -0
  341. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncoding.d.ts.map +1 -0
  342. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncoding.js +99 -0
  343. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncoding.js.map +1 -0
  344. package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts +16 -0
  345. package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts.map +1 -0
  346. package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.js +61 -0
  347. package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.js.map +1 -0
  348. package/dist/feature-libraries/chunked-forest/emptyChunk.d.ts +19 -0
  349. package/dist/feature-libraries/chunked-forest/emptyChunk.d.ts.map +1 -0
  350. package/dist/feature-libraries/chunked-forest/emptyChunk.js +107 -0
  351. package/dist/feature-libraries/chunked-forest/emptyChunk.js.map +1 -0
  352. package/dist/feature-libraries/chunked-forest/index.d.ts +10 -0
  353. package/dist/feature-libraries/chunked-forest/index.d.ts.map +1 -0
  354. package/dist/feature-libraries/chunked-forest/index.js +25 -0
  355. package/dist/feature-libraries/chunked-forest/index.js.map +1 -0
  356. package/dist/feature-libraries/chunked-forest/sequenceChunk.d.ts +26 -0
  357. package/dist/feature-libraries/chunked-forest/sequenceChunk.d.ts.map +1 -0
  358. package/dist/feature-libraries/chunked-forest/sequenceChunk.js +51 -0
  359. package/dist/feature-libraries/chunked-forest/sequenceChunk.js.map +1 -0
  360. package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts +186 -0
  361. package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -0
  362. package/dist/feature-libraries/chunked-forest/uniformChunk.js +397 -0
  363. package/dist/feature-libraries/chunked-forest/uniformChunk.js.map +1 -0
  364. package/dist/feature-libraries/contextuallyTyped.d.ts +212 -0
  365. package/dist/feature-libraries/contextuallyTyped.d.ts.map +1 -0
  366. package/dist/feature-libraries/contextuallyTyped.js +342 -0
  367. package/dist/feature-libraries/contextuallyTyped.js.map +1 -0
  368. package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts +136 -0
  369. package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -0
  370. package/dist/feature-libraries/default-schema/defaultEditBuilder.js +245 -0
  371. package/dist/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -0
  372. package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts +112 -0
  373. package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -0
  374. package/dist/feature-libraries/default-schema/defaultFieldKinds.js +110 -0
  375. package/dist/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -0
  376. package/dist/feature-libraries/default-schema/defaultSchema.d.ts +11 -0
  377. package/dist/feature-libraries/default-schema/defaultSchema.d.ts.map +1 -0
  378. package/dist/feature-libraries/default-schema/defaultSchema.js +16 -0
  379. package/dist/feature-libraries/default-schema/defaultSchema.js.map +1 -0
  380. package/dist/feature-libraries/default-schema/index.d.ts +8 -0
  381. package/dist/feature-libraries/default-schema/index.d.ts.map +1 -0
  382. package/dist/feature-libraries/default-schema/index.js +18 -0
  383. package/dist/feature-libraries/default-schema/index.js.map +1 -0
  384. package/dist/feature-libraries/deltaUtils.d.ts +62 -0
  385. package/dist/feature-libraries/deltaUtils.d.ts.map +1 -0
  386. package/dist/feature-libraries/deltaUtils.js +126 -0
  387. package/dist/feature-libraries/deltaUtils.js.map +1 -0
  388. package/dist/feature-libraries/detachedFieldIndexSummarizer.d.ts +21 -0
  389. package/dist/feature-libraries/detachedFieldIndexSummarizer.d.ts.map +1 -0
  390. package/dist/feature-libraries/detachedFieldIndexSummarizer.js +46 -0
  391. package/dist/feature-libraries/detachedFieldIndexSummarizer.js.map +1 -0
  392. package/dist/feature-libraries/editableTreeBinder.d.ts +325 -0
  393. package/dist/feature-libraries/editableTreeBinder.d.ts.map +1 -0
  394. package/dist/feature-libraries/editableTreeBinder.js +578 -0
  395. package/dist/feature-libraries/editableTreeBinder.js.map +1 -0
  396. package/dist/feature-libraries/fieldGenerator.d.ts +46 -0
  397. package/dist/feature-libraries/fieldGenerator.d.ts.map +1 -0
  398. package/dist/feature-libraries/fieldGenerator.js +14 -0
  399. package/dist/feature-libraries/fieldGenerator.js.map +1 -0
  400. package/dist/feature-libraries/flex-tree/context.d.ts +87 -0
  401. package/dist/feature-libraries/flex-tree/context.d.ts.map +1 -0
  402. package/dist/feature-libraries/flex-tree/context.js +110 -0
  403. package/dist/feature-libraries/flex-tree/context.js.map +1 -0
  404. package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts +793 -0
  405. package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -0
  406. package/dist/feature-libraries/flex-tree/flexTreeTypes.js +57 -0
  407. package/dist/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -0
  408. package/dist/feature-libraries/flex-tree/index.d.ts +11 -0
  409. package/dist/feature-libraries/flex-tree/index.d.ts.map +1 -0
  410. package/dist/feature-libraries/flex-tree/index.js +24 -0
  411. package/dist/feature-libraries/flex-tree/index.js.map +1 -0
  412. package/dist/feature-libraries/flex-tree/lazyEntity.d.ts +49 -0
  413. package/dist/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -0
  414. package/dist/feature-libraries/flex-tree/lazyEntity.js +104 -0
  415. package/dist/feature-libraries/flex-tree/lazyEntity.js.map +1 -0
  416. package/dist/feature-libraries/flex-tree/lazyField.d.ts +87 -0
  417. package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -0
  418. package/dist/feature-libraries/flex-tree/lazyField.js +341 -0
  419. package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -0
  420. package/dist/feature-libraries/flex-tree/lazyNode.d.ts +75 -0
  421. package/dist/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -0
  422. package/dist/feature-libraries/flex-tree/lazyNode.js +426 -0
  423. package/dist/feature-libraries/flex-tree/lazyNode.js.map +1 -0
  424. package/dist/feature-libraries/flex-tree/navigation.d.ts +46 -0
  425. package/dist/feature-libraries/flex-tree/navigation.d.ts.map +1 -0
  426. package/dist/feature-libraries/flex-tree/navigation.js +104 -0
  427. package/dist/feature-libraries/flex-tree/navigation.js.map +1 -0
  428. package/dist/feature-libraries/flex-tree/nodeKeys.d.ts +42 -0
  429. package/dist/feature-libraries/flex-tree/nodeKeys.d.ts.map +1 -0
  430. package/dist/feature-libraries/flex-tree/nodeKeys.js +24 -0
  431. package/dist/feature-libraries/flex-tree/nodeKeys.js.map +1 -0
  432. package/dist/feature-libraries/flex-tree/treeEvents.d.ts +111 -0
  433. package/dist/feature-libraries/flex-tree/treeEvents.d.ts.map +1 -0
  434. package/dist/feature-libraries/flex-tree/treeEvents.js +7 -0
  435. package/dist/feature-libraries/flex-tree/treeEvents.js.map +1 -0
  436. package/dist/feature-libraries/flex-tree/unboxed.d.ts +24 -0
  437. package/dist/feature-libraries/flex-tree/unboxed.d.ts.map +1 -0
  438. package/dist/feature-libraries/flex-tree/unboxed.js +54 -0
  439. package/dist/feature-libraries/flex-tree/unboxed.js.map +1 -0
  440. package/dist/feature-libraries/flex-tree/utilities.d.ts +29 -0
  441. package/dist/feature-libraries/flex-tree/utilities.d.ts.map +1 -0
  442. package/dist/feature-libraries/flex-tree/utilities.js +58 -0
  443. package/dist/feature-libraries/flex-tree/utilities.js.map +1 -0
  444. package/dist/feature-libraries/forest-summary/codec.d.ts +16 -0
  445. package/dist/feature-libraries/forest-summary/codec.d.ts.map +1 -0
  446. package/dist/feature-libraries/forest-summary/codec.js +39 -0
  447. package/dist/feature-libraries/forest-summary/codec.js.map +1 -0
  448. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts +40 -0
  449. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -0
  450. package/dist/feature-libraries/forest-summary/forestSummarizer.js +112 -0
  451. package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -0
  452. package/dist/feature-libraries/forest-summary/format.d.ts +16 -0
  453. package/dist/feature-libraries/forest-summary/format.d.ts.map +1 -0
  454. package/dist/feature-libraries/forest-summary/format.js +17 -0
  455. package/dist/feature-libraries/forest-summary/format.js.map +1 -0
  456. package/dist/feature-libraries/forest-summary/index.d.ts +6 -0
  457. package/dist/feature-libraries/forest-summary/index.d.ts.map +1 -0
  458. package/dist/feature-libraries/forest-summary/index.js +10 -0
  459. package/dist/feature-libraries/forest-summary/index.js.map +1 -0
  460. package/dist/feature-libraries/incrementalSummarizationUtils.d.ts +20 -0
  461. package/dist/feature-libraries/incrementalSummarizationUtils.d.ts.map +1 -0
  462. package/dist/feature-libraries/incrementalSummarizationUtils.js +7 -0
  463. package/dist/feature-libraries/incrementalSummarizationUtils.js.map +1 -0
  464. package/dist/feature-libraries/index.d.ts +35 -0
  465. package/dist/feature-libraries/index.d.ts.map +1 -0
  466. package/dist/feature-libraries/index.js +181 -0
  467. package/dist/feature-libraries/index.js.map +1 -0
  468. package/dist/feature-libraries/mapTreeCursor.d.ts +19 -0
  469. package/dist/feature-libraries/mapTreeCursor.d.ts.map +1 -0
  470. package/dist/feature-libraries/mapTreeCursor.js +53 -0
  471. package/dist/feature-libraries/mapTreeCursor.js.map +1 -0
  472. package/dist/feature-libraries/memoizedIdRangeAllocator.d.ts +42 -0
  473. package/dist/feature-libraries/memoizedIdRangeAllocator.d.ts.map +1 -0
  474. package/dist/feature-libraries/memoizedIdRangeAllocator.js +75 -0
  475. package/dist/feature-libraries/memoizedIdRangeAllocator.js.map +1 -0
  476. package/dist/feature-libraries/mitigatedChangeFamily.d.ts +22 -0
  477. package/dist/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -0
  478. package/dist/feature-libraries/mitigatedChangeFamily.js +55 -0
  479. package/dist/feature-libraries/mitigatedChangeFamily.js.map +1 -0
  480. package/dist/feature-libraries/modular-schema/comparison.d.ts +63 -0
  481. package/dist/feature-libraries/modular-schema/comparison.d.ts.map +1 -0
  482. package/dist/feature-libraries/modular-schema/comparison.js +203 -0
  483. package/dist/feature-libraries/modular-schema/comparison.js.map +1 -0
  484. package/dist/feature-libraries/modular-schema/crossFieldQueries.d.ts +37 -0
  485. package/dist/feature-libraries/modular-schema/crossFieldQueries.d.ts.map +1 -0
  486. package/dist/feature-libraries/modular-schema/crossFieldQueries.js +29 -0
  487. package/dist/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -0
  488. package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts +140 -0
  489. package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -0
  490. package/dist/feature-libraries/modular-schema/fieldChangeHandler.js +44 -0
  491. package/dist/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -0
  492. package/dist/feature-libraries/modular-schema/fieldKind.d.ts +94 -0
  493. package/dist/feature-libraries/modular-schema/fieldKind.d.ts.map +1 -0
  494. package/dist/feature-libraries/modular-schema/fieldKind.js +101 -0
  495. package/dist/feature-libraries/modular-schema/fieldKind.js.map +1 -0
  496. package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts +27 -0
  497. package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -0
  498. package/dist/feature-libraries/modular-schema/genericFieldKind.js +168 -0
  499. package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -0
  500. package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts +9 -0
  501. package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts.map +1 -0
  502. package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.js +33 -0
  503. package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.js.map +1 -0
  504. package/dist/feature-libraries/modular-schema/genericFieldKindFormat.d.ts +34 -0
  505. package/dist/feature-libraries/modular-schema/genericFieldKindFormat.d.ts.map +1 -0
  506. package/dist/feature-libraries/modular-schema/genericFieldKindFormat.js +31 -0
  507. package/dist/feature-libraries/modular-schema/genericFieldKindFormat.js.map +1 -0
  508. package/dist/feature-libraries/modular-schema/genericFieldKindTypes.d.ts +23 -0
  509. package/dist/feature-libraries/modular-schema/genericFieldKindTypes.d.ts.map +1 -0
  510. package/dist/feature-libraries/modular-schema/genericFieldKindTypes.js +7 -0
  511. package/dist/feature-libraries/modular-schema/genericFieldKindTypes.js.map +1 -0
  512. package/dist/feature-libraries/modular-schema/index.d.ts +15 -0
  513. package/dist/feature-libraries/modular-schema/index.d.ts.map +1 -0
  514. package/dist/feature-libraries/modular-schema/index.js +43 -0
  515. package/dist/feature-libraries/modular-schema/index.js.map +1 -0
  516. package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts +12 -0
  517. package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -0
  518. package/dist/feature-libraries/modular-schema/modularChangeCodecs.js +188 -0
  519. package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -0
  520. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +125 -0
  521. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -0
  522. package/dist/feature-libraries/modular-schema/modularChangeFamily.js +733 -0
  523. package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -0
  524. package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts +149 -0
  525. package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -0
  526. package/dist/feature-libraries/modular-schema/modularChangeFormat.js +77 -0
  527. package/dist/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -0
  528. package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts +69 -0
  529. package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -0
  530. package/dist/feature-libraries/modular-schema/modularChangeTypes.js +7 -0
  531. package/dist/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -0
  532. package/dist/feature-libraries/multiplicity.d.ts +55 -0
  533. package/dist/feature-libraries/multiplicity.d.ts.map +1 -0
  534. package/dist/feature-libraries/multiplicity.js +59 -0
  535. package/dist/feature-libraries/multiplicity.js.map +1 -0
  536. package/dist/feature-libraries/node-key/index.d.ts +8 -0
  537. package/dist/feature-libraries/node-key/index.d.ts.map +1 -0
  538. package/dist/feature-libraries/node-key/index.js +17 -0
  539. package/dist/feature-libraries/node-key/index.js.map +1 -0
  540. package/dist/feature-libraries/node-key/nodeKey.d.ts +50 -0
  541. package/dist/feature-libraries/node-key/nodeKey.d.ts.map +1 -0
  542. package/dist/feature-libraries/node-key/nodeKey.js +36 -0
  543. package/dist/feature-libraries/node-key/nodeKey.js.map +1 -0
  544. package/dist/feature-libraries/node-key/nodeKeyIndex.d.ts +41 -0
  545. package/dist/feature-libraries/node-key/nodeKeyIndex.d.ts.map +1 -0
  546. package/dist/feature-libraries/node-key/nodeKeyIndex.js +102 -0
  547. package/dist/feature-libraries/node-key/nodeKeyIndex.js.map +1 -0
  548. package/dist/feature-libraries/node-key/nodeKeyManager.d.ts +36 -0
  549. package/dist/feature-libraries/node-key/nodeKeyManager.d.ts.map +1 -0
  550. package/dist/feature-libraries/node-key/nodeKeyManager.js +66 -0
  551. package/dist/feature-libraries/node-key/nodeKeyManager.js.map +1 -0
  552. package/dist/feature-libraries/object-forest/index.d.ts +6 -0
  553. package/dist/feature-libraries/object-forest/index.d.ts.map +1 -0
  554. package/dist/feature-libraries/object-forest/index.js +10 -0
  555. package/dist/feature-libraries/object-forest/index.js.map +1 -0
  556. package/dist/feature-libraries/object-forest/objectForest.d.ts +86 -0
  557. package/dist/feature-libraries/object-forest/objectForest.d.ts.map +1 -0
  558. package/dist/feature-libraries/object-forest/objectForest.js +382 -0
  559. package/dist/feature-libraries/object-forest/objectForest.js.map +1 -0
  560. package/dist/feature-libraries/optional-field/index.d.ts +8 -0
  561. package/dist/feature-libraries/optional-field/index.d.ts.map +1 -0
  562. package/dist/feature-libraries/optional-field/index.js +16 -0
  563. package/dist/feature-libraries/optional-field/index.js.map +1 -0
  564. package/dist/feature-libraries/optional-field/optionalField.d.ts +31 -0
  565. package/dist/feature-libraries/optional-field/optionalField.d.ts.map +1 -0
  566. package/dist/feature-libraries/optional-field/optionalField.js +448 -0
  567. package/dist/feature-libraries/optional-field/optionalField.js.map +1 -0
  568. package/dist/feature-libraries/optional-field/optionalFieldChangeFormat.d.ts +38 -0
  569. package/dist/feature-libraries/optional-field/optionalFieldChangeFormat.d.ts.map +1 -0
  570. package/dist/feature-libraries/optional-field/optionalFieldChangeFormat.js +26 -0
  571. package/dist/feature-libraries/optional-field/optionalFieldChangeFormat.js.map +1 -0
  572. package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts +55 -0
  573. package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts.map +1 -0
  574. package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.js +7 -0
  575. package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.js.map +1 -0
  576. package/dist/feature-libraries/optional-field/optionalFieldCodecs.d.ts +11 -0
  577. package/dist/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -0
  578. package/dist/feature-libraries/optional-field/optionalFieldCodecs.js +86 -0
  579. package/dist/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -0
  580. package/dist/feature-libraries/schema-aware/index.d.ts +6 -0
  581. package/dist/feature-libraries/schema-aware/index.d.ts.map +1 -0
  582. package/dist/feature-libraries/schema-aware/index.js +7 -0
  583. package/dist/feature-libraries/schema-aware/index.js.map +1 -0
  584. package/dist/feature-libraries/schema-aware/schemaAware.d.ts +77 -0
  585. package/dist/feature-libraries/schema-aware/schemaAware.d.ts.map +1 -0
  586. package/dist/feature-libraries/schema-aware/schemaAware.js +9 -0
  587. package/dist/feature-libraries/schema-aware/schemaAware.js.map +1 -0
  588. package/dist/feature-libraries/schema-edits/index.d.ts +8 -0
  589. package/dist/feature-libraries/schema-edits/index.d.ts.map +1 -0
  590. package/dist/feature-libraries/schema-edits/index.js +12 -0
  591. package/dist/feature-libraries/schema-edits/index.js.map +1 -0
  592. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +9 -0
  593. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -0
  594. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js +31 -0
  595. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -0
  596. package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts +53 -0
  597. package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts.map +1 -0
  598. package/dist/feature-libraries/schema-edits/schemaChangeFormat.js +14 -0
  599. package/dist/feature-libraries/schema-edits/schemaChangeFormat.js.map +1 -0
  600. package/dist/feature-libraries/schema-edits/schemaChangeTypes.d.ts +18 -0
  601. package/dist/feature-libraries/schema-edits/schemaChangeTypes.d.ts.map +1 -0
  602. package/dist/feature-libraries/schema-edits/schemaChangeTypes.js +7 -0
  603. package/dist/feature-libraries/schema-edits/schemaChangeTypes.js.map +1 -0
  604. package/dist/feature-libraries/schema-index/codec.d.ts +13 -0
  605. package/dist/feature-libraries/schema-index/codec.d.ts.map +1 -0
  606. package/dist/feature-libraries/schema-index/codec.js +56 -0
  607. package/dist/feature-libraries/schema-index/codec.js.map +1 -0
  608. package/dist/feature-libraries/schema-index/format.d.ts +60 -0
  609. package/dist/feature-libraries/schema-index/format.d.ts.map +1 -0
  610. package/dist/feature-libraries/schema-index/format.js +33 -0
  611. package/dist/feature-libraries/schema-index/format.js.map +1 -0
  612. package/dist/feature-libraries/schema-index/index.d.ts +8 -0
  613. package/dist/feature-libraries/schema-index/index.d.ts.map +1 -0
  614. package/dist/feature-libraries/schema-index/index.js +15 -0
  615. package/dist/feature-libraries/schema-index/index.js.map +1 -0
  616. package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts +41 -0
  617. package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -0
  618. package/dist/feature-libraries/schema-index/schemaSummarizer.js +86 -0
  619. package/dist/feature-libraries/schema-index/schemaSummarizer.js.map +1 -0
  620. package/dist/feature-libraries/schemaBuilder.d.ts +31 -0
  621. package/dist/feature-libraries/schemaBuilder.d.ts.map +1 -0
  622. package/dist/feature-libraries/schemaBuilder.js +40 -0
  623. package/dist/feature-libraries/schemaBuilder.js.map +1 -0
  624. package/dist/feature-libraries/schemaBuilderBase.d.ts +217 -0
  625. package/dist/feature-libraries/schemaBuilderBase.d.ts.map +1 -0
  626. package/dist/feature-libraries/schemaBuilderBase.js +227 -0
  627. package/dist/feature-libraries/schemaBuilderBase.js.map +1 -0
  628. package/dist/feature-libraries/sequence-field/compose.d.ts +45 -0
  629. package/dist/feature-libraries/sequence-field/compose.d.ts.map +1 -0
  630. package/dist/feature-libraries/sequence-field/compose.js +438 -0
  631. package/dist/feature-libraries/sequence-field/compose.js.map +1 -0
  632. package/dist/feature-libraries/sequence-field/format.d.ts +427 -0
  633. package/dist/feature-libraries/sequence-field/format.d.ts.map +1 -0
  634. package/dist/feature-libraries/sequence-field/format.js +78 -0
  635. package/dist/feature-libraries/sequence-field/format.js.map +1 -0
  636. package/dist/feature-libraries/sequence-field/helperTypes.d.ts +34 -0
  637. package/dist/feature-libraries/sequence-field/helperTypes.d.ts.map +1 -0
  638. package/dist/feature-libraries/sequence-field/helperTypes.js +18 -0
  639. package/dist/feature-libraries/sequence-field/helperTypes.js.map +1 -0
  640. package/dist/feature-libraries/sequence-field/index.d.ts +18 -0
  641. package/dist/feature-libraries/sequence-field/index.d.ts.map +1 -0
  642. package/dist/feature-libraries/sequence-field/index.js +41 -0
  643. package/dist/feature-libraries/sequence-field/index.js.map +1 -0
  644. package/dist/feature-libraries/sequence-field/invert.d.ts +19 -0
  645. package/dist/feature-libraries/sequence-field/invert.d.ts.map +1 -0
  646. package/dist/feature-libraries/sequence-field/invert.js +221 -0
  647. package/dist/feature-libraries/sequence-field/invert.js.map +1 -0
  648. package/dist/feature-libraries/sequence-field/markListFactory.d.ts +21 -0
  649. package/dist/feature-libraries/sequence-field/markListFactory.d.ts.map +1 -0
  650. package/dist/feature-libraries/sequence-field/markListFactory.js +55 -0
  651. package/dist/feature-libraries/sequence-field/markListFactory.js.map +1 -0
  652. package/dist/feature-libraries/sequence-field/markQueue.d.ts +30 -0
  653. package/dist/feature-libraries/sequence-field/markQueue.d.ts.map +1 -0
  654. package/dist/feature-libraries/sequence-field/markQueue.js +74 -0
  655. package/dist/feature-libraries/sequence-field/markQueue.js.map +1 -0
  656. package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts +48 -0
  657. package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -0
  658. package/dist/feature-libraries/sequence-field/moveEffectTable.js +253 -0
  659. package/dist/feature-libraries/sequence-field/moveEffectTable.js.map +1 -0
  660. package/dist/feature-libraries/sequence-field/prune.d.ts +8 -0
  661. package/dist/feature-libraries/sequence-field/prune.d.ts.map +1 -0
  662. package/dist/feature-libraries/sequence-field/prune.js +25 -0
  663. package/dist/feature-libraries/sequence-field/prune.js.map +1 -0
  664. package/dist/feature-libraries/sequence-field/rebase.d.ts +26 -0
  665. package/dist/feature-libraries/sequence-field/rebase.d.ts.map +1 -0
  666. package/dist/feature-libraries/sequence-field/rebase.js +619 -0
  667. package/dist/feature-libraries/sequence-field/rebase.js.map +1 -0
  668. package/dist/feature-libraries/sequence-field/relevantRemovedRoots.d.ts +9 -0
  669. package/dist/feature-libraries/sequence-field/relevantRemovedRoots.d.ts.map +1 -0
  670. package/dist/feature-libraries/sequence-field/relevantRemovedRoots.js +50 -0
  671. package/dist/feature-libraries/sequence-field/relevantRemovedRoots.js.map +1 -0
  672. package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts +10 -0
  673. package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts.map +1 -0
  674. package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.js +22 -0
  675. package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.js.map +1 -0
  676. package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts +19 -0
  677. package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts.map +1 -0
  678. package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js +19 -0
  679. package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js.map +1 -0
  680. package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts +10 -0
  681. package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -0
  682. package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.js +239 -0
  683. package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -0
  684. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +33 -0
  685. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -0
  686. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.js +113 -0
  687. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -0
  688. package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts +9 -0
  689. package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -0
  690. package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js +165 -0
  691. package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -0
  692. package/dist/feature-libraries/sequence-field/types.d.ts +182 -0
  693. package/dist/feature-libraries/sequence-field/types.d.ts.map +1 -0
  694. package/dist/feature-libraries/sequence-field/types.js +9 -0
  695. package/dist/feature-libraries/sequence-field/types.js.map +1 -0
  696. package/dist/feature-libraries/sequence-field/utils.d.ts +198 -0
  697. package/dist/feature-libraries/sequence-field/utils.d.ts.map +1 -0
  698. package/dist/feature-libraries/sequence-field/utils.js +977 -0
  699. package/dist/feature-libraries/sequence-field/utils.js.map +1 -0
  700. package/dist/feature-libraries/storedToViewSchema.d.ts +18 -0
  701. package/dist/feature-libraries/storedToViewSchema.d.ts.map +1 -0
  702. package/dist/feature-libraries/storedToViewSchema.js +70 -0
  703. package/dist/feature-libraries/storedToViewSchema.js.map +1 -0
  704. package/dist/feature-libraries/treeCompressionUtils.d.ts +23 -0
  705. package/dist/feature-libraries/treeCompressionUtils.d.ts.map +1 -0
  706. package/dist/feature-libraries/treeCompressionUtils.js +27 -0
  707. package/dist/feature-libraries/treeCompressionUtils.js.map +1 -0
  708. package/dist/feature-libraries/treeCursorUtils.d.ts +101 -0
  709. package/dist/feature-libraries/treeCursorUtils.d.ts.map +1 -0
  710. package/dist/feature-libraries/treeCursorUtils.js +374 -0
  711. package/dist/feature-libraries/treeCursorUtils.js.map +1 -0
  712. package/dist/feature-libraries/treeTextCursor.d.ts +62 -0
  713. package/dist/feature-libraries/treeTextCursor.d.ts.map +1 -0
  714. package/dist/feature-libraries/treeTextCursor.js +104 -0
  715. package/dist/feature-libraries/treeTextCursor.js.map +1 -0
  716. package/dist/feature-libraries/typed-schema/flexList.d.ts +97 -0
  717. package/dist/feature-libraries/typed-schema/flexList.d.ts.map +1 -0
  718. package/dist/feature-libraries/typed-schema/flexList.js +58 -0
  719. package/dist/feature-libraries/typed-schema/flexList.js.map +1 -0
  720. package/dist/feature-libraries/typed-schema/index.d.ts +11 -0
  721. package/dist/feature-libraries/typed-schema/index.d.ts.map +1 -0
  722. package/dist/feature-libraries/typed-schema/index.js +61 -0
  723. package/dist/feature-libraries/typed-schema/index.js.map +1 -0
  724. package/dist/feature-libraries/typed-schema/internal.d.ts +7 -0
  725. package/dist/feature-libraries/typed-schema/internal.d.ts.map +1 -0
  726. package/dist/feature-libraries/typed-schema/internal.js +7 -0
  727. package/dist/feature-libraries/typed-schema/internal.js.map +1 -0
  728. package/dist/feature-libraries/typed-schema/schemaCollection.d.ts +67 -0
  729. package/dist/feature-libraries/typed-schema/schemaCollection.d.ts.map +1 -0
  730. package/dist/feature-libraries/typed-schema/schemaCollection.js +207 -0
  731. package/dist/feature-libraries/typed-schema/schemaCollection.js.map +1 -0
  732. package/dist/feature-libraries/typed-schema/typeUtils.d.ts +22 -0
  733. package/dist/feature-libraries/typed-schema/typeUtils.d.ts.map +1 -0
  734. package/dist/feature-libraries/typed-schema/typeUtils.js +14 -0
  735. package/dist/feature-libraries/typed-schema/typeUtils.js.map +1 -0
  736. package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts +294 -0
  737. package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -0
  738. package/dist/feature-libraries/typed-schema/typedTreeSchema.js +334 -0
  739. package/dist/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -0
  740. package/dist/feature-libraries/typed-schema/view.d.ts +55 -0
  741. package/dist/feature-libraries/typed-schema/view.d.ts.map +1 -0
  742. package/dist/feature-libraries/typed-schema/view.js +117 -0
  743. package/dist/feature-libraries/typed-schema/view.js.map +1 -0
  744. package/dist/feature-libraries/utils.d.ts +9 -0
  745. package/dist/feature-libraries/utils.d.ts.map +1 -0
  746. package/dist/feature-libraries/utils.js +28 -0
  747. package/dist/feature-libraries/utils.js.map +1 -0
  748. package/dist/feature-libraries/valueUtilities.d.ts +21 -0
  749. package/dist/feature-libraries/valueUtilities.d.ts.map +1 -0
  750. package/dist/feature-libraries/valueUtilities.js +70 -0
  751. package/dist/feature-libraries/valueUtilities.js.map +1 -0
  752. package/dist/feature-libraries/versioned/codec.d.ts +11 -0
  753. package/dist/feature-libraries/versioned/codec.d.ts.map +1 -0
  754. package/dist/feature-libraries/versioned/codec.js +31 -0
  755. package/dist/feature-libraries/versioned/codec.js.map +1 -0
  756. package/dist/feature-libraries/versioned/format.d.ts +10 -0
  757. package/dist/feature-libraries/versioned/format.d.ts.map +1 -0
  758. package/dist/feature-libraries/versioned/format.js +12 -0
  759. package/dist/feature-libraries/versioned/format.js.map +1 -0
  760. package/dist/feature-libraries/versioned/index.d.ts +7 -0
  761. package/dist/feature-libraries/versioned/index.d.ts.map +1 -0
  762. package/dist/feature-libraries/versioned/index.js +13 -0
  763. package/dist/feature-libraries/versioned/index.js.map +1 -0
  764. package/dist/index.d.ts +21 -0
  765. package/dist/index.d.ts.map +1 -0
  766. package/dist/index.js +133 -0
  767. package/dist/index.js.map +1 -0
  768. package/dist/internal.d.ts +8 -0
  769. package/dist/internal.d.ts.map +1 -0
  770. package/dist/internal.js +11 -0
  771. package/dist/internal.js.map +1 -0
  772. package/dist/shared-tree/index.d.ts +10 -0
  773. package/dist/shared-tree/index.d.ts.map +1 -0
  774. package/dist/shared-tree/index.js +19 -0
  775. package/dist/shared-tree/index.js.map +1 -0
  776. package/dist/shared-tree/schematizedTree.d.ts +94 -0
  777. package/dist/shared-tree/schematizedTree.d.ts.map +1 -0
  778. package/dist/shared-tree/schematizedTree.js +158 -0
  779. package/dist/shared-tree/schematizedTree.js.map +1 -0
  780. package/dist/shared-tree/sharedTree.d.ts +143 -0
  781. package/dist/shared-tree/sharedTree.d.ts.map +1 -0
  782. package/dist/shared-tree/sharedTree.js +220 -0
  783. package/dist/shared-tree/sharedTree.js.map +1 -0
  784. package/dist/shared-tree/sharedTreeChangeCodecs.d.ts +11 -0
  785. package/dist/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -0
  786. package/dist/shared-tree/sharedTreeChangeCodecs.js +59 -0
  787. package/dist/shared-tree/sharedTreeChangeCodecs.js.map +1 -0
  788. package/dist/shared-tree/sharedTreeChangeFamily.d.ts +25 -0
  789. package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -0
  790. package/dist/shared-tree/sharedTreeChangeFamily.js +120 -0
  791. package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -0
  792. package/dist/shared-tree/sharedTreeChangeFormat.d.ts +178 -0
  793. package/dist/shared-tree/sharedTreeChangeFormat.d.ts.map +1 -0
  794. package/dist/shared-tree/sharedTreeChangeFormat.js +15 -0
  795. package/dist/shared-tree/sharedTreeChangeFormat.js.map +1 -0
  796. package/dist/shared-tree/sharedTreeChangeTypes.d.ts +26 -0
  797. package/dist/shared-tree/sharedTreeChangeTypes.d.ts.map +1 -0
  798. package/dist/shared-tree/sharedTreeChangeTypes.js +7 -0
  799. package/dist/shared-tree/sharedTreeChangeTypes.js.map +1 -0
  800. package/dist/shared-tree/sharedTreeEditBuilder.d.ts +42 -0
  801. package/dist/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -0
  802. package/dist/shared-tree/sharedTreeEditBuilder.js +34 -0
  803. package/dist/shared-tree/sharedTreeEditBuilder.js.map +1 -0
  804. package/dist/shared-tree/treeCheckout.d.ts +228 -0
  805. package/dist/shared-tree/treeCheckout.d.ts.map +1 -0
  806. package/dist/shared-tree/treeCheckout.js +190 -0
  807. package/dist/shared-tree/treeCheckout.js.map +1 -0
  808. package/dist/shared-tree/treeView.d.ts +66 -0
  809. package/dist/shared-tree/treeView.d.ts.map +1 -0
  810. package/dist/shared-tree/treeView.js +33 -0
  811. package/dist/shared-tree/treeView.js.map +1 -0
  812. package/dist/shared-tree-core/branch.d.ts +199 -0
  813. package/dist/shared-tree-core/branch.d.ts.map +1 -0
  814. package/dist/shared-tree-core/branch.js +413 -0
  815. package/dist/shared-tree-core/branch.js.map +1 -0
  816. package/dist/shared-tree-core/editManager.d.ts +126 -0
  817. package/dist/shared-tree-core/editManager.d.ts.map +1 -0
  818. package/dist/shared-tree-core/editManager.js +435 -0
  819. package/dist/shared-tree-core/editManager.js.map +1 -0
  820. package/dist/shared-tree-core/editManagerCodecs.d.ts +9 -0
  821. package/dist/shared-tree-core/editManagerCodecs.d.ts.map +1 -0
  822. package/dist/shared-tree-core/editManagerCodecs.js +52 -0
  823. package/dist/shared-tree-core/editManagerCodecs.js.map +1 -0
  824. package/dist/shared-tree-core/editManagerFormat.d.ts +68 -0
  825. package/dist/shared-tree-core/editManagerFormat.d.ts.map +1 -0
  826. package/dist/shared-tree-core/editManagerFormat.js +58 -0
  827. package/dist/shared-tree-core/editManagerFormat.js.map +1 -0
  828. package/dist/shared-tree-core/editManagerSummarizer.d.ts +25 -0
  829. package/dist/shared-tree-core/editManagerSummarizer.d.ts.map +1 -0
  830. package/dist/shared-tree-core/editManagerSummarizer.js +56 -0
  831. package/dist/shared-tree-core/editManagerSummarizer.js.map +1 -0
  832. package/dist/shared-tree-core/index.d.ts +13 -0
  833. package/dist/shared-tree-core/index.d.ts.map +1 -0
  834. package/dist/shared-tree-core/index.js +25 -0
  835. package/dist/shared-tree-core/index.js.map +1 -0
  836. package/dist/shared-tree-core/messageCodecs.d.ts +9 -0
  837. package/dist/shared-tree-core/messageCodecs.d.ts.map +1 -0
  838. package/dist/shared-tree-core/messageCodecs.js +35 -0
  839. package/dist/shared-tree-core/messageCodecs.js.map +1 -0
  840. package/dist/shared-tree-core/messageFormat.d.ts +30 -0
  841. package/dist/shared-tree-core/messageFormat.d.ts.map +1 -0
  842. package/dist/shared-tree-core/messageFormat.js +16 -0
  843. package/dist/shared-tree-core/messageFormat.js.map +1 -0
  844. package/dist/shared-tree-core/messageTypes.d.ts +10 -0
  845. package/dist/shared-tree-core/messageTypes.d.ts.map +1 -0
  846. package/dist/shared-tree-core/messageTypes.js +7 -0
  847. package/dist/shared-tree-core/messageTypes.js.map +1 -0
  848. package/dist/shared-tree-core/revisionTagCodecs.d.ts +11 -0
  849. package/dist/shared-tree-core/revisionTagCodecs.d.ts.map +1 -0
  850. package/dist/shared-tree-core/revisionTagCodecs.js +17 -0
  851. package/dist/shared-tree-core/revisionTagCodecs.js.map +1 -0
  852. package/dist/shared-tree-core/sharedTreeCore.d.ts +112 -0
  853. package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -0
  854. package/dist/shared-tree-core/sharedTreeCore.js +197 -0
  855. package/dist/shared-tree-core/sharedTreeCore.js.map +1 -0
  856. package/dist/shared-tree-core/transactionStack.d.ts +30 -0
  857. package/dist/shared-tree-core/transactionStack.d.ts.map +1 -0
  858. package/dist/shared-tree-core/transactionStack.js +42 -0
  859. package/dist/shared-tree-core/transactionStack.js.map +1 -0
  860. package/dist/simple-tree/flexNode.d.ts +34 -0
  861. package/dist/simple-tree/flexNode.d.ts.map +1 -0
  862. package/dist/simple-tree/flexNode.js +57 -0
  863. package/dist/simple-tree/flexNode.js.map +1 -0
  864. package/dist/simple-tree/index.d.ts +10 -0
  865. package/dist/simple-tree/index.d.ts.map +1 -0
  866. package/dist/simple-tree/index.js +17 -0
  867. package/dist/simple-tree/index.js.map +1 -0
  868. package/dist/simple-tree/insertable.d.ts +44 -0
  869. package/dist/simple-tree/insertable.d.ts.map +1 -0
  870. package/dist/simple-tree/insertable.js +7 -0
  871. package/dist/simple-tree/insertable.js.map +1 -0
  872. package/dist/simple-tree/objectFactory.d.ts +30 -0
  873. package/dist/simple-tree/objectFactory.d.ts.map +1 -0
  874. package/dist/simple-tree/objectFactory.js +20 -0
  875. package/dist/simple-tree/objectFactory.js.map +1 -0
  876. package/dist/simple-tree/proxies.d.ts +112 -0
  877. package/dist/simple-tree/proxies.d.ts.map +1 -0
  878. package/dist/simple-tree/proxies.js +811 -0
  879. package/dist/simple-tree/proxies.js.map +1 -0
  880. package/dist/simple-tree/rawNode.d.ts +96 -0
  881. package/dist/simple-tree/rawNode.d.ts.map +1 -0
  882. package/dist/simple-tree/rawNode.js +141 -0
  883. package/dist/simple-tree/rawNode.js.map +1 -0
  884. package/dist/simple-tree/toMapTree.d.ts +101 -0
  885. package/dist/simple-tree/toMapTree.d.ts.map +1 -0
  886. package/dist/simple-tree/toMapTree.js +299 -0
  887. package/dist/simple-tree/toMapTree.js.map +1 -0
  888. package/dist/simple-tree/treeListNode.d.ts +60 -0
  889. package/dist/simple-tree/treeListNode.d.ts.map +1 -0
  890. package/dist/simple-tree/treeListNode.js +53 -0
  891. package/dist/simple-tree/treeListNode.js.map +1 -0
  892. package/dist/simple-tree/types.d.ts +243 -0
  893. package/dist/simple-tree/types.d.ts.map +1 -0
  894. package/dist/simple-tree/types.js +21 -0
  895. package/dist/simple-tree/types.js.map +1 -0
  896. package/dist/tree-alpha.d.ts +1789 -0
  897. package/dist/tree-beta.d.ts +1789 -0
  898. package/dist/tree-public.d.ts +728 -0
  899. package/dist/tree-untrimmed.d.ts +6411 -0
  900. package/dist/treeFactory.d.ts +55 -0
  901. package/dist/treeFactory.d.ts.map +1 -0
  902. package/dist/treeFactory.js +85 -0
  903. package/dist/treeFactory.js.map +1 -0
  904. package/dist/tsdoc-metadata.json +11 -0
  905. package/dist/util/brand.d.ts +179 -0
  906. package/dist/util/brand.d.ts.map +1 -0
  907. package/dist/util/brand.js +130 -0
  908. package/dist/util/brand.js.map +1 -0
  909. package/dist/util/brandedMap.d.ts +46 -0
  910. package/dist/util/brandedMap.d.ts.map +1 -0
  911. package/dist/util/brandedMap.js +32 -0
  912. package/dist/util/brandedMap.js.map +1 -0
  913. package/dist/util/idAllocator.d.ts +29 -0
  914. package/dist/util/idAllocator.d.ts.map +1 -0
  915. package/dist/util/idAllocator.js +34 -0
  916. package/dist/util/idAllocator.js.map +1 -0
  917. package/dist/util/index.d.ts +18 -0
  918. package/dist/util/index.d.ts.map +1 -0
  919. package/dist/util/index.js +82 -0
  920. package/dist/util/index.js.map +1 -0
  921. package/dist/util/nestedMap.d.ts +129 -0
  922. package/dist/util/nestedMap.d.ts.map +1 -0
  923. package/dist/util/nestedMap.js +239 -0
  924. package/dist/util/nestedMap.js.map +1 -0
  925. package/dist/util/nestedSet.d.ts +9 -0
  926. package/dist/util/nestedSet.d.ts.map +1 -0
  927. package/dist/util/nestedSet.js +17 -0
  928. package/dist/util/nestedSet.js.map +1 -0
  929. package/dist/util/offsetList.d.ts +22 -0
  930. package/dist/util/offsetList.d.ts.map +1 -0
  931. package/dist/util/offsetList.js +44 -0
  932. package/dist/util/offsetList.js.map +1 -0
  933. package/dist/util/rangeMap.d.ts +40 -0
  934. package/dist/util/rangeMap.d.ts.map +1 -0
  935. package/dist/util/rangeMap.js +103 -0
  936. package/dist/util/rangeMap.js.map +1 -0
  937. package/dist/util/referenceCounting.d.ts +30 -0
  938. package/dist/util/referenceCounting.d.ts.map +1 -0
  939. package/dist/util/referenceCounting.js +34 -0
  940. package/dist/util/referenceCounting.js.map +1 -0
  941. package/dist/util/stackyIterator.d.ts +20 -0
  942. package/dist/util/stackyIterator.d.ts.map +1 -0
  943. package/dist/util/stackyIterator.js +49 -0
  944. package/dist/util/stackyIterator.js.map +1 -0
  945. package/dist/util/transactionResult.d.ts +20 -0
  946. package/dist/util/transactionResult.d.ts.map +1 -0
  947. package/dist/util/transactionResult.js +24 -0
  948. package/dist/util/transactionResult.js.map +1 -0
  949. package/dist/util/typeCheck.d.ts +183 -0
  950. package/dist/util/typeCheck.d.ts.map +1 -0
  951. package/dist/util/typeCheck.js +7 -0
  952. package/dist/util/typeCheck.js.map +1 -0
  953. package/dist/util/typeCheckTests.d.ts +60 -0
  954. package/dist/util/typeCheckTests.d.ts.map +1 -0
  955. package/dist/util/typeCheckTests.js +7 -0
  956. package/dist/util/typeCheckTests.js.map +1 -0
  957. package/dist/util/typeUtils.d.ts +129 -0
  958. package/dist/util/typeUtils.d.ts.map +1 -0
  959. package/dist/util/typeUtils.js +11 -0
  960. package/dist/util/typeUtils.js.map +1 -0
  961. package/dist/util/utils.d.ts +287 -0
  962. package/dist/util/utils.d.ts.map +1 -0
  963. package/dist/util/utils.js +376 -0
  964. package/dist/util/utils.js.map +1 -0
  965. package/docs/.attachments/UndoAfterCollab.png +0 -0
  966. package/docs/.attachments/UndoAfterCollabFast.png +0 -0
  967. package/docs/.attachments/UndoDangerZone.drawio +1 -0
  968. package/docs/.attachments/UndoDuringCollab.png +0 -0
  969. package/docs/.attachments/children.drawio.svg +297 -0
  970. package/docs/.attachments/data-model.drawio.svg +654 -0
  971. package/docs/.attachments/explicit-sequence.drawio.svg +180 -0
  972. package/docs/.attachments/implicit-sequence.drawio.svg +106 -0
  973. package/docs/.attachments/root.drawio.svg +32 -0
  974. package/docs/.attachments/scalar-nodes.drawio.svg +87 -0
  975. package/docs/.markdownlint.json +4 -0
  976. package/docs/README.md +22 -0
  977. package/docs/main/cell-model-of-collaborative-editing.md +225 -0
  978. package/docs/main/compatibility.md +149 -0
  979. package/docs/main/data-model.md +191 -0
  980. package/docs/main/indexes-and-branches.md +143 -0
  981. package/docs/main/modular-change-family.md +125 -0
  982. package/docs/main/repair-data.md +275 -0
  983. package/docs/main/schema2.md +141 -0
  984. package/docs/main/semantic-format.md +315 -0
  985. package/docs/main/stored-and-view-schema-options.md +120 -0
  986. package/docs/main/stored-and-view-schema.md +331 -0
  987. package/docs/main/tree-content-apis.md +104 -0
  988. package/docs/main/tree-storage.md +816 -0
  989. package/docs/main/undo.md +191 -0
  990. package/docs/main/v1-undo-example-flow.md +273 -0
  991. package/docs/main/v1-undo.md +591 -0
  992. package/docs/roadmap.md +419 -0
  993. package/docs/wip/anchorInterfaces.ts +81 -0
  994. package/docs/wip/changeset.ts +1239 -0
  995. package/docs/wip/inverse-changes.md +876 -0
  996. package/lib/class-tree/index.d.ts +15 -0
  997. package/lib/class-tree/index.d.ts.map +1 -0
  998. package/lib/class-tree/index.js +18 -0
  999. package/lib/class-tree/index.js.map +1 -0
  1000. package/lib/class-tree/integerIndexable.d.ts +31 -0
  1001. package/lib/class-tree/integerIndexable.d.ts.map +1 -0
  1002. package/lib/class-tree/integerIndexable.js +92 -0
  1003. package/lib/class-tree/integerIndexable.js.map +1 -0
  1004. package/lib/class-tree/internal.d.ts +6 -0
  1005. package/lib/class-tree/internal.d.ts.map +1 -0
  1006. package/lib/class-tree/internal.js +7 -0
  1007. package/lib/class-tree/internal.js.map +1 -0
  1008. package/lib/class-tree/schemaCreationUtilities.d.ts +96 -0
  1009. package/lib/class-tree/schemaCreationUtilities.d.ts.map +1 -0
  1010. package/lib/class-tree/schemaCreationUtilities.js +130 -0
  1011. package/lib/class-tree/schemaCreationUtilities.js.map +1 -0
  1012. package/lib/class-tree/schemaFactory.d.ts +225 -0
  1013. package/lib/class-tree/schemaFactory.d.ts.map +1 -0
  1014. package/lib/class-tree/schemaFactory.js +325 -0
  1015. package/lib/class-tree/schemaFactory.js.map +1 -0
  1016. package/lib/class-tree/schemaFactoryRecursive.d.ts +41 -0
  1017. package/lib/class-tree/schemaFactoryRecursive.d.ts.map +1 -0
  1018. package/lib/class-tree/schemaFactoryRecursive.js +62 -0
  1019. package/lib/class-tree/schemaFactoryRecursive.js.map +1 -0
  1020. package/lib/class-tree/schemaTypes.d.ts +237 -0
  1021. package/lib/class-tree/schemaTypes.d.ts.map +1 -0
  1022. package/lib/class-tree/schemaTypes.js +67 -0
  1023. package/lib/class-tree/schemaTypes.js.map +1 -0
  1024. package/lib/class-tree/testRecursiveDomain.d.ts +28 -0
  1025. package/lib/class-tree/testRecursiveDomain.d.ts.map +1 -0
  1026. package/lib/class-tree/testRecursiveDomain.js +36 -0
  1027. package/lib/class-tree/testRecursiveDomain.js.map +1 -0
  1028. package/lib/class-tree/toFlexSchema.d.ts +58 -0
  1029. package/lib/class-tree/toFlexSchema.d.ts.map +1 -0
  1030. package/lib/class-tree/toFlexSchema.js +195 -0
  1031. package/lib/class-tree/toFlexSchema.js.map +1 -0
  1032. package/lib/class-tree/tree.d.ts +98 -0
  1033. package/lib/class-tree/tree.d.ts.map +1 -0
  1034. package/lib/class-tree/tree.js +41 -0
  1035. package/lib/class-tree/tree.js.map +1 -0
  1036. package/lib/class-tree/treeApi.d.ts +69 -0
  1037. package/lib/class-tree/treeApi.d.ts.map +1 -0
  1038. package/lib/class-tree/treeApi.js +53 -0
  1039. package/lib/class-tree/treeApi.js.map +1 -0
  1040. package/lib/codec/codec.d.ts +214 -0
  1041. package/lib/codec/codec.d.ts.map +1 -0
  1042. package/lib/codec/codec.js +160 -0
  1043. package/lib/codec/codec.js.map +1 -0
  1044. package/lib/codec/discriminatedUnions.d.ts +82 -0
  1045. package/lib/codec/discriminatedUnions.d.ts.map +1 -0
  1046. package/lib/codec/discriminatedUnions.js +87 -0
  1047. package/lib/codec/discriminatedUnions.js.map +1 -0
  1048. package/lib/codec/index.d.ts +8 -0
  1049. package/lib/codec/index.d.ts.map +1 -0
  1050. package/lib/codec/index.js +8 -0
  1051. package/lib/codec/index.js.map +1 -0
  1052. package/lib/codec/noopValidator.d.ts +13 -0
  1053. package/lib/codec/noopValidator.d.ts.map +1 -0
  1054. package/lib/codec/noopValidator.js +14 -0
  1055. package/lib/codec/noopValidator.js.map +1 -0
  1056. package/lib/core/change-family/changeFamily.d.ts +32 -0
  1057. package/lib/core/change-family/changeFamily.d.ts.map +1 -0
  1058. package/lib/core/change-family/changeFamily.js +6 -0
  1059. package/lib/core/change-family/changeFamily.js.map +1 -0
  1060. package/lib/core/change-family/editBuilder.d.ts +19 -0
  1061. package/lib/core/change-family/editBuilder.d.ts.map +1 -0
  1062. package/lib/core/change-family/editBuilder.js +21 -0
  1063. package/lib/core/change-family/editBuilder.js.map +1 -0
  1064. package/lib/core/change-family/index.d.ts +7 -0
  1065. package/lib/core/change-family/index.d.ts.map +1 -0
  1066. package/lib/core/change-family/index.js +6 -0
  1067. package/lib/core/change-family/index.js.map +1 -0
  1068. package/lib/core/forest/editableForest.d.ts +54 -0
  1069. package/lib/core/forest/editableForest.d.ts.map +1 -0
  1070. package/lib/core/forest/editableForest.js +22 -0
  1071. package/lib/core/forest/editableForest.js.map +1 -0
  1072. package/lib/core/forest/forest.d.ts +200 -0
  1073. package/lib/core/forest/forest.d.ts.map +1 -0
  1074. package/lib/core/forest/forest.js +61 -0
  1075. package/lib/core/forest/forest.js.map +1 -0
  1076. package/lib/core/forest/index.d.ts +7 -0
  1077. package/lib/core/forest/index.d.ts.map +1 -0
  1078. package/lib/core/forest/index.js +7 -0
  1079. package/lib/core/forest/index.js.map +1 -0
  1080. package/lib/core/index.d.ts +12 -0
  1081. package/lib/core/index.d.ts.map +1 -0
  1082. package/lib/core/index.js +12 -0
  1083. package/lib/core/index.js.map +1 -0
  1084. package/lib/core/rebase/changeRebaser.d.ts +132 -0
  1085. package/lib/core/rebase/changeRebaser.d.ts.map +1 -0
  1086. package/lib/core/rebase/changeRebaser.js +27 -0
  1087. package/lib/core/rebase/changeRebaser.js.map +1 -0
  1088. package/lib/core/rebase/index.d.ts +9 -0
  1089. package/lib/core/rebase/index.d.ts.map +1 -0
  1090. package/lib/core/rebase/index.js +9 -0
  1091. package/lib/core/rebase/index.js.map +1 -0
  1092. package/lib/core/rebase/types.d.ts +93 -0
  1093. package/lib/core/rebase/types.d.ts.map +1 -0
  1094. package/lib/core/rebase/types.js +51 -0
  1095. package/lib/core/rebase/types.js.map +1 -0
  1096. package/lib/core/rebase/utils.d.ts +215 -0
  1097. package/lib/core/rebase/utils.d.ts.map +1 -0
  1098. package/lib/core/rebase/utils.js +288 -0
  1099. package/lib/core/rebase/utils.js.map +1 -0
  1100. package/lib/core/rebase/verifyChangeRebaser.d.ts +76 -0
  1101. package/lib/core/rebase/verifyChangeRebaser.d.ts.map +1 -0
  1102. package/lib/core/rebase/verifyChangeRebaser.js +287 -0
  1103. package/lib/core/rebase/verifyChangeRebaser.js.map +1 -0
  1104. package/lib/core/revertible/index.d.ts +6 -0
  1105. package/lib/core/revertible/index.d.ts.map +1 -0
  1106. package/lib/core/revertible/index.js +6 -0
  1107. package/lib/core/revertible/index.js.map +1 -0
  1108. package/lib/core/revertible/revertible.d.ts +72 -0
  1109. package/lib/core/revertible/revertible.d.ts.map +1 -0
  1110. package/lib/core/revertible/revertible.js +48 -0
  1111. package/lib/core/revertible/revertible.js.map +1 -0
  1112. package/lib/core/schema-stored/format.d.ts +97 -0
  1113. package/lib/core/schema-stored/format.d.ts.map +1 -0
  1114. package/lib/core/schema-stored/format.js +62 -0
  1115. package/lib/core/schema-stored/format.js.map +1 -0
  1116. package/lib/core/schema-stored/index.d.ts +10 -0
  1117. package/lib/core/schema-stored/index.d.ts.map +1 -0
  1118. package/lib/core/schema-stored/index.js +9 -0
  1119. package/lib/core/schema-stored/index.js.map +1 -0
  1120. package/lib/core/schema-stored/schema.d.ts +195 -0
  1121. package/lib/core/schema-stored/schema.d.ts.map +1 -0
  1122. package/lib/core/schema-stored/schema.js +165 -0
  1123. package/lib/core/schema-stored/schema.js.map +1 -0
  1124. package/lib/core/schema-stored/storedSchemaRepository.d.ts +71 -0
  1125. package/lib/core/schema-stored/storedSchemaRepository.d.ts.map +1 -0
  1126. package/lib/core/schema-stored/storedSchemaRepository.js +73 -0
  1127. package/lib/core/schema-stored/storedSchemaRepository.js.map +1 -0
  1128. package/lib/core/schema-view/index.d.ts +6 -0
  1129. package/lib/core/schema-view/index.d.ts.map +1 -0
  1130. package/lib/core/schema-view/index.js +6 -0
  1131. package/lib/core/schema-view/index.js.map +1 -0
  1132. package/lib/core/schema-view/view.d.ts +64 -0
  1133. package/lib/core/schema-view/view.d.ts.map +1 -0
  1134. package/lib/core/schema-view/view.js +51 -0
  1135. package/lib/core/schema-view/view.js.map +1 -0
  1136. package/lib/core/tree/anchorSet.d.ts +318 -0
  1137. package/lib/core/tree/anchorSet.d.ts.map +1 -0
  1138. package/lib/core/tree/anchorSet.js +890 -0
  1139. package/lib/core/tree/anchorSet.js.map +1 -0
  1140. package/lib/core/tree/cursor.d.ts +358 -0
  1141. package/lib/core/tree/cursor.d.ts.map +1 -0
  1142. package/lib/core/tree/cursor.js +156 -0
  1143. package/lib/core/tree/cursor.js.map +1 -0
  1144. package/lib/core/tree/delta.d.ts +241 -0
  1145. package/lib/core/tree/delta.d.ts.map +1 -0
  1146. package/lib/core/tree/delta.js +6 -0
  1147. package/lib/core/tree/delta.js.map +1 -0
  1148. package/lib/core/tree/deltaUtil.d.ts +19 -0
  1149. package/lib/core/tree/deltaUtil.d.ts.map +1 -0
  1150. package/lib/core/tree/deltaUtil.js +70 -0
  1151. package/lib/core/tree/deltaUtil.js.map +1 -0
  1152. package/lib/core/tree/detachedFieldIndex.d.ts +64 -0
  1153. package/lib/core/tree/detachedFieldIndex.d.ts.map +1 -0
  1154. package/lib/core/tree/detachedFieldIndex.js +115 -0
  1155. package/lib/core/tree/detachedFieldIndex.js.map +1 -0
  1156. package/lib/core/tree/detachedFieldIndexCodec.d.ts +8 -0
  1157. package/lib/core/tree/detachedFieldIndexCodec.d.ts.map +1 -0
  1158. package/lib/core/tree/detachedFieldIndexCodec.js +49 -0
  1159. package/lib/core/tree/detachedFieldIndexCodec.js.map +1 -0
  1160. package/lib/core/tree/detachedFieldIndexFormat.d.ts +18 -0
  1161. package/lib/core/tree/detachedFieldIndexFormat.d.ts.map +1 -0
  1162. package/lib/core/tree/detachedFieldIndexFormat.js +22 -0
  1163. package/lib/core/tree/detachedFieldIndexFormat.js.map +1 -0
  1164. package/lib/core/tree/detachedFieldIndexTypes.d.ts +13 -0
  1165. package/lib/core/tree/detachedFieldIndexTypes.d.ts.map +1 -0
  1166. package/lib/core/tree/detachedFieldIndexTypes.js +6 -0
  1167. package/lib/core/tree/detachedFieldIndexTypes.js.map +1 -0
  1168. package/lib/core/tree/index.d.ts +19 -0
  1169. package/lib/core/tree/index.d.ts.map +1 -0
  1170. package/lib/core/tree/index.js +17 -0
  1171. package/lib/core/tree/index.js.map +1 -0
  1172. package/lib/core/tree/mapTree.d.ts +22 -0
  1173. package/lib/core/tree/mapTree.d.ts.map +1 -0
  1174. package/lib/core/tree/mapTree.js +21 -0
  1175. package/lib/core/tree/mapTree.js.map +1 -0
  1176. package/lib/core/tree/pathTree.d.ts +156 -0
  1177. package/lib/core/tree/pathTree.d.ts.map +1 -0
  1178. package/lib/core/tree/pathTree.js +90 -0
  1179. package/lib/core/tree/pathTree.js.map +1 -0
  1180. package/lib/core/tree/persistedTreeTextFormat.d.ts +93 -0
  1181. package/lib/core/tree/persistedTreeTextFormat.d.ts.map +1 -0
  1182. package/lib/core/tree/persistedTreeTextFormat.js +20 -0
  1183. package/lib/core/tree/persistedTreeTextFormat.js.map +1 -0
  1184. package/lib/core/tree/sparseTree.d.ts +91 -0
  1185. package/lib/core/tree/sparseTree.d.ts.map +1 -0
  1186. package/lib/core/tree/sparseTree.js +144 -0
  1187. package/lib/core/tree/sparseTree.js.map +1 -0
  1188. package/lib/core/tree/treeTextFormat.d.ts +94 -0
  1189. package/lib/core/tree/treeTextFormat.d.ts.map +1 -0
  1190. package/lib/core/tree/treeTextFormat.js +81 -0
  1191. package/lib/core/tree/treeTextFormat.js.map +1 -0
  1192. package/lib/core/tree/types.d.ts +145 -0
  1193. package/lib/core/tree/types.d.ts.map +1 -0
  1194. package/lib/core/tree/types.js +55 -0
  1195. package/lib/core/tree/types.js.map +1 -0
  1196. package/lib/core/tree/visitDelta.d.ts +135 -0
  1197. package/lib/core/tree/visitDelta.d.ts.map +1 -0
  1198. package/lib/core/tree/visitDelta.js +300 -0
  1199. package/lib/core/tree/visitDelta.js.map +1 -0
  1200. package/lib/core/tree/visitPath.d.ts +103 -0
  1201. package/lib/core/tree/visitPath.d.ts.map +1 -0
  1202. package/lib/core/tree/visitPath.js +2 -0
  1203. package/lib/core/tree/visitPath.js.map +1 -0
  1204. package/lib/core/tree/visitorUtils.d.ts +37 -0
  1205. package/lib/core/tree/visitorUtils.d.ts.map +1 -0
  1206. package/lib/core/tree/visitorUtils.js +53 -0
  1207. package/lib/core/tree/visitorUtils.js.map +1 -0
  1208. package/lib/domains/index.d.ts +9 -0
  1209. package/lib/domains/index.d.ts.map +1 -0
  1210. package/lib/domains/index.js +9 -0
  1211. package/lib/domains/index.js.map +1 -0
  1212. package/lib/domains/json/index.d.ts +7 -0
  1213. package/lib/domains/json/index.d.ts.map +1 -0
  1214. package/lib/domains/json/index.js +7 -0
  1215. package/lib/domains/json/index.js.map +1 -0
  1216. package/lib/domains/json/jsonCursor.d.ts +18 -0
  1217. package/lib/domains/json/jsonCursor.d.ts.map +1 -0
  1218. package/lib/domains/json/jsonCursor.js +120 -0
  1219. package/lib/domains/json/jsonCursor.js.map +1 -0
  1220. package/lib/domains/json/jsonDomainSchema.d.ts +14 -0
  1221. package/lib/domains/json/jsonDomainSchema.d.ts.map +1 -0
  1222. package/lib/domains/json/jsonDomainSchema.js +21 -0
  1223. package/lib/domains/json/jsonDomainSchema.js.map +1 -0
  1224. package/lib/domains/leafDomain.d.ts +73 -0
  1225. package/lib/domains/leafDomain.d.ts.map +1 -0
  1226. package/lib/domains/leafDomain.js +86 -0
  1227. package/lib/domains/leafDomain.js.map +1 -0
  1228. package/lib/domains/nodeKey/index.d.ts +6 -0
  1229. package/lib/domains/nodeKey/index.d.ts.map +1 -0
  1230. package/lib/domains/nodeKey/index.js +6 -0
  1231. package/lib/domains/nodeKey/index.js.map +1 -0
  1232. package/lib/domains/nodeKey/nodeKeySchema.d.ts +30 -0
  1233. package/lib/domains/nodeKey/nodeKeySchema.d.ts.map +1 -0
  1234. package/lib/domains/nodeKey/nodeKeySchema.js +33 -0
  1235. package/lib/domains/nodeKey/nodeKeySchema.js.map +1 -0
  1236. package/lib/domains/schemaBuilder.d.ts +190 -0
  1237. package/lib/domains/schemaBuilder.d.ts.map +1 -0
  1238. package/lib/domains/schemaBuilder.js +199 -0
  1239. package/lib/domains/schemaBuilder.js.map +1 -0
  1240. package/lib/domains/testRecursiveDomain.d.ts +21 -0
  1241. package/lib/domains/testRecursiveDomain.d.ts.map +1 -0
  1242. package/lib/domains/testRecursiveDomain.js +39 -0
  1243. package/lib/domains/testRecursiveDomain.js.map +1 -0
  1244. package/lib/events/events.d.ts +187 -0
  1245. package/lib/events/events.d.ts.map +1 -0
  1246. package/lib/events/events.js +119 -0
  1247. package/lib/events/events.js.map +1 -0
  1248. package/lib/events/index.d.ts +6 -0
  1249. package/lib/events/index.d.ts.map +1 -0
  1250. package/lib/events/index.js +6 -0
  1251. package/lib/events/index.js.map +1 -0
  1252. package/lib/external-utilities/index.d.ts +6 -0
  1253. package/lib/external-utilities/index.d.ts.map +1 -0
  1254. package/lib/external-utilities/index.js +6 -0
  1255. package/lib/external-utilities/index.js.map +1 -0
  1256. package/lib/external-utilities/typeboxValidator.d.ts +18 -0
  1257. package/lib/external-utilities/typeboxValidator.d.ts.map +1 -0
  1258. package/lib/external-utilities/typeboxValidator.js +27 -0
  1259. package/lib/external-utilities/typeboxValidator.js.map +1 -0
  1260. package/lib/feature-libraries/chunked-forest/basicChunk.d.ts +111 -0
  1261. package/lib/feature-libraries/chunked-forest/basicChunk.d.ts.map +1 -0
  1262. package/lib/feature-libraries/chunked-forest/basicChunk.js +455 -0
  1263. package/lib/feature-libraries/chunked-forest/basicChunk.js.map +1 -0
  1264. package/lib/feature-libraries/chunked-forest/chunk.d.ts +89 -0
  1265. package/lib/feature-libraries/chunked-forest/chunk.d.ts.map +1 -0
  1266. package/lib/feature-libraries/chunked-forest/chunk.js +24 -0
  1267. package/lib/feature-libraries/chunked-forest/chunk.js.map +1 -0
  1268. package/lib/feature-libraries/chunked-forest/chunkTree.d.ts +156 -0
  1269. package/lib/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -0
  1270. package/lib/feature-libraries/chunked-forest/chunkTree.js +340 -0
  1271. package/lib/feature-libraries/chunked-forest/chunkTree.js.map +1 -0
  1272. package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts +57 -0
  1273. package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -0
  1274. package/lib/feature-libraries/chunked-forest/chunkedForest.js +295 -0
  1275. package/lib/feature-libraries/chunked-forest/chunkedForest.js.map +1 -0
  1276. package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts +114 -0
  1277. package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts.map +1 -0
  1278. package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js +124 -0
  1279. package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js.map +1 -0
  1280. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts +61 -0
  1281. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -0
  1282. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js +209 -0
  1283. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -0
  1284. package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts +30 -0
  1285. package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts.map +1 -0
  1286. package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js +47 -0
  1287. package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js.map +1 -0
  1288. package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts +81 -0
  1289. package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts.map +1 -0
  1290. package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js +120 -0
  1291. package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js.map +1 -0
  1292. package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts +32 -0
  1293. package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -0
  1294. package/lib/feature-libraries/chunked-forest/codec/codecs.js +63 -0
  1295. package/lib/feature-libraries/chunked-forest/codec/codecs.js.map +1 -0
  1296. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +149 -0
  1297. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -0
  1298. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js +269 -0
  1299. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -0
  1300. package/lib/feature-libraries/chunked-forest/codec/fieldBatch.d.ts +11 -0
  1301. package/lib/feature-libraries/chunked-forest/codec/fieldBatch.d.ts.map +1 -0
  1302. package/lib/feature-libraries/chunked-forest/codec/fieldBatch.js +6 -0
  1303. package/lib/feature-libraries/chunked-forest/codec/fieldBatch.js.map +1 -0
  1304. package/lib/feature-libraries/chunked-forest/codec/format.d.ts +208 -0
  1305. package/lib/feature-libraries/chunked-forest/codec/format.d.ts.map +1 -0
  1306. package/lib/feature-libraries/chunked-forest/codec/format.js +135 -0
  1307. package/lib/feature-libraries/chunked-forest/codec/format.js.map +1 -0
  1308. package/lib/feature-libraries/chunked-forest/codec/formatGeneric.d.ts +43 -0
  1309. package/lib/feature-libraries/chunked-forest/codec/formatGeneric.d.ts.map +1 -0
  1310. package/lib/feature-libraries/chunked-forest/codec/formatGeneric.js +41 -0
  1311. package/lib/feature-libraries/chunked-forest/codec/formatGeneric.js.map +1 -0
  1312. package/lib/feature-libraries/chunked-forest/codec/index.d.ts +8 -0
  1313. package/lib/feature-libraries/chunked-forest/codec/index.d.ts.map +1 -0
  1314. package/lib/feature-libraries/chunked-forest/codec/index.js +7 -0
  1315. package/lib/feature-libraries/chunked-forest/codec/index.js.map +1 -0
  1316. package/lib/feature-libraries/chunked-forest/codec/nodeShape.d.ts +23 -0
  1317. package/lib/feature-libraries/chunked-forest/codec/nodeShape.d.ts.map +1 -0
  1318. package/lib/feature-libraries/chunked-forest/codec/nodeShape.js +89 -0
  1319. package/lib/feature-libraries/chunked-forest/codec/nodeShape.js.map +1 -0
  1320. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncoding.d.ts +28 -0
  1321. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncoding.d.ts.map +1 -0
  1322. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncoding.js +91 -0
  1323. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncoding.js.map +1 -0
  1324. package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts +16 -0
  1325. package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts.map +1 -0
  1326. package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.js +57 -0
  1327. package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.js.map +1 -0
  1328. package/lib/feature-libraries/chunked-forest/emptyChunk.d.ts +19 -0
  1329. package/lib/feature-libraries/chunked-forest/emptyChunk.d.ts.map +1 -0
  1330. package/lib/feature-libraries/chunked-forest/emptyChunk.js +104 -0
  1331. package/lib/feature-libraries/chunked-forest/emptyChunk.js.map +1 -0
  1332. package/lib/feature-libraries/chunked-forest/index.d.ts +10 -0
  1333. package/lib/feature-libraries/chunked-forest/index.d.ts.map +1 -0
  1334. package/lib/feature-libraries/chunked-forest/index.js +10 -0
  1335. package/lib/feature-libraries/chunked-forest/index.js.map +1 -0
  1336. package/lib/feature-libraries/chunked-forest/sequenceChunk.d.ts +26 -0
  1337. package/lib/feature-libraries/chunked-forest/sequenceChunk.d.ts.map +1 -0
  1338. package/lib/feature-libraries/chunked-forest/sequenceChunk.js +47 -0
  1339. package/lib/feature-libraries/chunked-forest/sequenceChunk.js.map +1 -0
  1340. package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts +186 -0
  1341. package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -0
  1342. package/lib/feature-libraries/chunked-forest/uniformChunk.js +390 -0
  1343. package/lib/feature-libraries/chunked-forest/uniformChunk.js.map +1 -0
  1344. package/lib/feature-libraries/contextuallyTyped.d.ts +212 -0
  1345. package/lib/feature-libraries/contextuallyTyped.d.ts.map +1 -0
  1346. package/lib/feature-libraries/contextuallyTyped.js +324 -0
  1347. package/lib/feature-libraries/contextuallyTyped.js.map +1 -0
  1348. package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts +136 -0
  1349. package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -0
  1350. package/lib/feature-libraries/default-schema/defaultEditBuilder.js +238 -0
  1351. package/lib/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -0
  1352. package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts +112 -0
  1353. package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -0
  1354. package/lib/feature-libraries/default-schema/defaultFieldKinds.js +107 -0
  1355. package/lib/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -0
  1356. package/lib/feature-libraries/default-schema/defaultSchema.d.ts +11 -0
  1357. package/lib/feature-libraries/default-schema/defaultSchema.d.ts.map +1 -0
  1358. package/lib/feature-libraries/default-schema/defaultSchema.js +13 -0
  1359. package/lib/feature-libraries/default-schema/defaultSchema.js.map +1 -0
  1360. package/lib/feature-libraries/default-schema/index.d.ts +8 -0
  1361. package/lib/feature-libraries/default-schema/index.d.ts.map +1 -0
  1362. package/lib/feature-libraries/default-schema/index.js +8 -0
  1363. package/lib/feature-libraries/default-schema/index.js.map +1 -0
  1364. package/lib/feature-libraries/deltaUtils.d.ts +62 -0
  1365. package/lib/feature-libraries/deltaUtils.d.ts.map +1 -0
  1366. package/lib/feature-libraries/deltaUtils.js +117 -0
  1367. package/lib/feature-libraries/deltaUtils.js.map +1 -0
  1368. package/lib/feature-libraries/detachedFieldIndexSummarizer.d.ts +21 -0
  1369. package/lib/feature-libraries/detachedFieldIndexSummarizer.d.ts.map +1 -0
  1370. package/lib/feature-libraries/detachedFieldIndexSummarizer.js +42 -0
  1371. package/lib/feature-libraries/detachedFieldIndexSummarizer.js.map +1 -0
  1372. package/lib/feature-libraries/editableTreeBinder.d.ts +325 -0
  1373. package/lib/feature-libraries/editableTreeBinder.d.ts.map +1 -0
  1374. package/lib/feature-libraries/editableTreeBinder.js +567 -0
  1375. package/lib/feature-libraries/editableTreeBinder.js.map +1 -0
  1376. package/lib/feature-libraries/fieldGenerator.d.ts +46 -0
  1377. package/lib/feature-libraries/fieldGenerator.d.ts.map +1 -0
  1378. package/lib/feature-libraries/fieldGenerator.js +13 -0
  1379. package/lib/feature-libraries/fieldGenerator.js.map +1 -0
  1380. package/lib/feature-libraries/flex-tree/context.d.ts +87 -0
  1381. package/lib/feature-libraries/flex-tree/context.d.ts.map +1 -0
  1382. package/lib/feature-libraries/flex-tree/context.js +105 -0
  1383. package/lib/feature-libraries/flex-tree/context.js.map +1 -0
  1384. package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts +793 -0
  1385. package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -0
  1386. package/lib/feature-libraries/flex-tree/flexTreeTypes.js +52 -0
  1387. package/lib/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -0
  1388. package/lib/feature-libraries/flex-tree/index.d.ts +11 -0
  1389. package/lib/feature-libraries/flex-tree/index.d.ts.map +1 -0
  1390. package/lib/feature-libraries/flex-tree/index.js +8 -0
  1391. package/lib/feature-libraries/flex-tree/index.js.map +1 -0
  1392. package/lib/feature-libraries/flex-tree/lazyEntity.d.ts +49 -0
  1393. package/lib/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -0
  1394. package/lib/feature-libraries/flex-tree/lazyEntity.js +97 -0
  1395. package/lib/feature-libraries/flex-tree/lazyEntity.js.map +1 -0
  1396. package/lib/feature-libraries/flex-tree/lazyField.d.ts +87 -0
  1397. package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -0
  1398. package/lib/feature-libraries/flex-tree/lazyField.js +331 -0
  1399. package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -0
  1400. package/lib/feature-libraries/flex-tree/lazyNode.d.ts +75 -0
  1401. package/lib/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -0
  1402. package/lib/feature-libraries/flex-tree/lazyNode.js +415 -0
  1403. package/lib/feature-libraries/flex-tree/lazyNode.js.map +1 -0
  1404. package/lib/feature-libraries/flex-tree/navigation.d.ts +46 -0
  1405. package/lib/feature-libraries/flex-tree/navigation.d.ts.map +1 -0
  1406. package/lib/feature-libraries/flex-tree/navigation.js +97 -0
  1407. package/lib/feature-libraries/flex-tree/navigation.js.map +1 -0
  1408. package/lib/feature-libraries/flex-tree/nodeKeys.d.ts +42 -0
  1409. package/lib/feature-libraries/flex-tree/nodeKeys.d.ts.map +1 -0
  1410. package/lib/feature-libraries/flex-tree/nodeKeys.js +20 -0
  1411. package/lib/feature-libraries/flex-tree/nodeKeys.js.map +1 -0
  1412. package/lib/feature-libraries/flex-tree/treeEvents.d.ts +111 -0
  1413. package/lib/feature-libraries/flex-tree/treeEvents.d.ts.map +1 -0
  1414. package/lib/feature-libraries/flex-tree/treeEvents.js +6 -0
  1415. package/lib/feature-libraries/flex-tree/treeEvents.js.map +1 -0
  1416. package/lib/feature-libraries/flex-tree/unboxed.d.ts +24 -0
  1417. package/lib/feature-libraries/flex-tree/unboxed.d.ts.map +1 -0
  1418. package/lib/feature-libraries/flex-tree/unboxed.js +48 -0
  1419. package/lib/feature-libraries/flex-tree/unboxed.js.map +1 -0
  1420. package/lib/feature-libraries/flex-tree/utilities.d.ts +29 -0
  1421. package/lib/feature-libraries/flex-tree/utilities.d.ts.map +1 -0
  1422. package/lib/feature-libraries/flex-tree/utilities.js +53 -0
  1423. package/lib/feature-libraries/flex-tree/utilities.js.map +1 -0
  1424. package/lib/feature-libraries/forest-summary/codec.d.ts +16 -0
  1425. package/lib/feature-libraries/forest-summary/codec.d.ts.map +1 -0
  1426. package/lib/feature-libraries/forest-summary/codec.js +35 -0
  1427. package/lib/feature-libraries/forest-summary/codec.js.map +1 -0
  1428. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts +40 -0
  1429. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -0
  1430. package/lib/feature-libraries/forest-summary/forestSummarizer.js +108 -0
  1431. package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -0
  1432. package/lib/feature-libraries/forest-summary/format.d.ts +16 -0
  1433. package/lib/feature-libraries/forest-summary/format.d.ts.map +1 -0
  1434. package/lib/feature-libraries/forest-summary/format.js +14 -0
  1435. package/lib/feature-libraries/forest-summary/format.js.map +1 -0
  1436. package/lib/feature-libraries/forest-summary/index.d.ts +6 -0
  1437. package/lib/feature-libraries/forest-summary/index.d.ts.map +1 -0
  1438. package/lib/feature-libraries/forest-summary/index.js +6 -0
  1439. package/lib/feature-libraries/forest-summary/index.js.map +1 -0
  1440. package/lib/feature-libraries/incrementalSummarizationUtils.d.ts +20 -0
  1441. package/lib/feature-libraries/incrementalSummarizationUtils.d.ts.map +1 -0
  1442. package/lib/feature-libraries/incrementalSummarizationUtils.js +6 -0
  1443. package/lib/feature-libraries/incrementalSummarizationUtils.js.map +1 -0
  1444. package/lib/feature-libraries/index.d.ts +35 -0
  1445. package/lib/feature-libraries/index.d.ts.map +1 -0
  1446. package/lib/feature-libraries/index.js +34 -0
  1447. package/lib/feature-libraries/index.js.map +1 -0
  1448. package/lib/feature-libraries/mapTreeCursor.d.ts +19 -0
  1449. package/lib/feature-libraries/mapTreeCursor.d.ts.map +1 -0
  1450. package/lib/feature-libraries/mapTreeCursor.js +47 -0
  1451. package/lib/feature-libraries/mapTreeCursor.js.map +1 -0
  1452. package/lib/feature-libraries/memoizedIdRangeAllocator.d.ts +42 -0
  1453. package/lib/feature-libraries/memoizedIdRangeAllocator.d.ts.map +1 -0
  1454. package/lib/feature-libraries/memoizedIdRangeAllocator.js +72 -0
  1455. package/lib/feature-libraries/memoizedIdRangeAllocator.js.map +1 -0
  1456. package/lib/feature-libraries/mitigatedChangeFamily.d.ts +22 -0
  1457. package/lib/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -0
  1458. package/lib/feature-libraries/mitigatedChangeFamily.js +50 -0
  1459. package/lib/feature-libraries/mitigatedChangeFamily.js.map +1 -0
  1460. package/lib/feature-libraries/modular-schema/comparison.d.ts +63 -0
  1461. package/lib/feature-libraries/modular-schema/comparison.d.ts.map +1 -0
  1462. package/lib/feature-libraries/modular-schema/comparison.js +190 -0
  1463. package/lib/feature-libraries/modular-schema/comparison.js.map +1 -0
  1464. package/lib/feature-libraries/modular-schema/crossFieldQueries.d.ts +37 -0
  1465. package/lib/feature-libraries/modular-schema/crossFieldQueries.d.ts.map +1 -0
  1466. package/lib/feature-libraries/modular-schema/crossFieldQueries.js +23 -0
  1467. package/lib/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -0
  1468. package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +140 -0
  1469. package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -0
  1470. package/lib/feature-libraries/modular-schema/fieldChangeHandler.js +38 -0
  1471. package/lib/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -0
  1472. package/lib/feature-libraries/modular-schema/fieldKind.d.ts +94 -0
  1473. package/lib/feature-libraries/modular-schema/fieldKind.d.ts.map +1 -0
  1474. package/lib/feature-libraries/modular-schema/fieldKind.js +95 -0
  1475. package/lib/feature-libraries/modular-schema/fieldKind.js.map +1 -0
  1476. package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts +27 -0
  1477. package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -0
  1478. package/lib/feature-libraries/modular-schema/genericFieldKind.js +163 -0
  1479. package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -0
  1480. package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts +9 -0
  1481. package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts.map +1 -0
  1482. package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.js +29 -0
  1483. package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.js.map +1 -0
  1484. package/lib/feature-libraries/modular-schema/genericFieldKindFormat.d.ts +34 -0
  1485. package/lib/feature-libraries/modular-schema/genericFieldKindFormat.d.ts.map +1 -0
  1486. package/lib/feature-libraries/modular-schema/genericFieldKindFormat.js +26 -0
  1487. package/lib/feature-libraries/modular-schema/genericFieldKindFormat.js.map +1 -0
  1488. package/lib/feature-libraries/modular-schema/genericFieldKindTypes.d.ts +23 -0
  1489. package/lib/feature-libraries/modular-schema/genericFieldKindTypes.d.ts.map +1 -0
  1490. package/lib/feature-libraries/modular-schema/genericFieldKindTypes.js +6 -0
  1491. package/lib/feature-libraries/modular-schema/genericFieldKindTypes.js.map +1 -0
  1492. package/lib/feature-libraries/modular-schema/index.d.ts +15 -0
  1493. package/lib/feature-libraries/modular-schema/index.d.ts.map +1 -0
  1494. package/lib/feature-libraries/modular-schema/index.js +13 -0
  1495. package/lib/feature-libraries/modular-schema/index.js.map +1 -0
  1496. package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts +12 -0
  1497. package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -0
  1498. package/lib/feature-libraries/modular-schema/modularChangeCodecs.js +184 -0
  1499. package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -0
  1500. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +125 -0
  1501. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -0
  1502. package/lib/feature-libraries/modular-schema/modularChangeFamily.js +723 -0
  1503. package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -0
  1504. package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts +149 -0
  1505. package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -0
  1506. package/lib/feature-libraries/modular-schema/modularChangeFormat.js +74 -0
  1507. package/lib/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -0
  1508. package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts +69 -0
  1509. package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -0
  1510. package/lib/feature-libraries/modular-schema/modularChangeTypes.js +6 -0
  1511. package/lib/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -0
  1512. package/lib/feature-libraries/multiplicity.d.ts +55 -0
  1513. package/lib/feature-libraries/multiplicity.d.ts.map +1 -0
  1514. package/lib/feature-libraries/multiplicity.js +56 -0
  1515. package/lib/feature-libraries/multiplicity.js.map +1 -0
  1516. package/lib/feature-libraries/node-key/index.d.ts +8 -0
  1517. package/lib/feature-libraries/node-key/index.d.ts.map +1 -0
  1518. package/lib/feature-libraries/node-key/index.js +8 -0
  1519. package/lib/feature-libraries/node-key/index.js.map +1 -0
  1520. package/lib/feature-libraries/node-key/nodeKey.d.ts +50 -0
  1521. package/lib/feature-libraries/node-key/nodeKey.d.ts.map +1 -0
  1522. package/lib/feature-libraries/node-key/nodeKey.js +32 -0
  1523. package/lib/feature-libraries/node-key/nodeKey.js.map +1 -0
  1524. package/lib/feature-libraries/node-key/nodeKeyIndex.d.ts +41 -0
  1525. package/lib/feature-libraries/node-key/nodeKeyIndex.d.ts.map +1 -0
  1526. package/lib/feature-libraries/node-key/nodeKeyIndex.js +98 -0
  1527. package/lib/feature-libraries/node-key/nodeKeyIndex.js.map +1 -0
  1528. package/lib/feature-libraries/node-key/nodeKeyManager.d.ts +36 -0
  1529. package/lib/feature-libraries/node-key/nodeKeyManager.d.ts.map +1 -0
  1530. package/lib/feature-libraries/node-key/nodeKeyManager.js +61 -0
  1531. package/lib/feature-libraries/node-key/nodeKeyManager.js.map +1 -0
  1532. package/lib/feature-libraries/object-forest/index.d.ts +6 -0
  1533. package/lib/feature-libraries/object-forest/index.d.ts.map +1 -0
  1534. package/lib/feature-libraries/object-forest/index.js +6 -0
  1535. package/lib/feature-libraries/object-forest/index.js.map +1 -0
  1536. package/lib/feature-libraries/object-forest/objectForest.d.ts +86 -0
  1537. package/lib/feature-libraries/object-forest/objectForest.d.ts.map +1 -0
  1538. package/lib/feature-libraries/object-forest/objectForest.js +377 -0
  1539. package/lib/feature-libraries/object-forest/objectForest.js.map +1 -0
  1540. package/lib/feature-libraries/optional-field/index.d.ts +8 -0
  1541. package/lib/feature-libraries/optional-field/index.d.ts.map +1 -0
  1542. package/lib/feature-libraries/optional-field/index.js +7 -0
  1543. package/lib/feature-libraries/optional-field/index.js.map +1 -0
  1544. package/lib/feature-libraries/optional-field/optionalField.d.ts +31 -0
  1545. package/lib/feature-libraries/optional-field/optionalField.d.ts.map +1 -0
  1546. package/lib/feature-libraries/optional-field/optionalField.js +444 -0
  1547. package/lib/feature-libraries/optional-field/optionalField.js.map +1 -0
  1548. package/lib/feature-libraries/optional-field/optionalFieldChangeFormat.d.ts +38 -0
  1549. package/lib/feature-libraries/optional-field/optionalFieldChangeFormat.d.ts.map +1 -0
  1550. package/lib/feature-libraries/optional-field/optionalFieldChangeFormat.js +22 -0
  1551. package/lib/feature-libraries/optional-field/optionalFieldChangeFormat.js.map +1 -0
  1552. package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts +55 -0
  1553. package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts.map +1 -0
  1554. package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.js +6 -0
  1555. package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.js.map +1 -0
  1556. package/lib/feature-libraries/optional-field/optionalFieldCodecs.d.ts +11 -0
  1557. package/lib/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -0
  1558. package/lib/feature-libraries/optional-field/optionalFieldCodecs.js +82 -0
  1559. package/lib/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -0
  1560. package/lib/feature-libraries/schema-aware/index.d.ts +6 -0
  1561. package/lib/feature-libraries/schema-aware/index.d.ts.map +1 -0
  1562. package/lib/feature-libraries/schema-aware/index.js +6 -0
  1563. package/lib/feature-libraries/schema-aware/index.js.map +1 -0
  1564. package/lib/feature-libraries/schema-aware/schemaAware.d.ts +77 -0
  1565. package/lib/feature-libraries/schema-aware/schemaAware.d.ts.map +1 -0
  1566. package/lib/feature-libraries/schema-aware/schemaAware.js +7 -0
  1567. package/lib/feature-libraries/schema-aware/schemaAware.js.map +1 -0
  1568. package/lib/feature-libraries/schema-edits/index.d.ts +8 -0
  1569. package/lib/feature-libraries/schema-edits/index.d.ts.map +1 -0
  1570. package/lib/feature-libraries/schema-edits/index.js +7 -0
  1571. package/lib/feature-libraries/schema-edits/index.js.map +1 -0
  1572. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +9 -0
  1573. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -0
  1574. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js +27 -0
  1575. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -0
  1576. package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts +53 -0
  1577. package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts.map +1 -0
  1578. package/lib/feature-libraries/schema-edits/schemaChangeFormat.js +11 -0
  1579. package/lib/feature-libraries/schema-edits/schemaChangeFormat.js.map +1 -0
  1580. package/lib/feature-libraries/schema-edits/schemaChangeTypes.d.ts +18 -0
  1581. package/lib/feature-libraries/schema-edits/schemaChangeTypes.d.ts.map +1 -0
  1582. package/lib/feature-libraries/schema-edits/schemaChangeTypes.js +6 -0
  1583. package/lib/feature-libraries/schema-edits/schemaChangeTypes.js.map +1 -0
  1584. package/lib/feature-libraries/schema-index/codec.d.ts +13 -0
  1585. package/lib/feature-libraries/schema-index/codec.d.ts.map +1 -0
  1586. package/lib/feature-libraries/schema-index/codec.js +51 -0
  1587. package/lib/feature-libraries/schema-index/codec.js.map +1 -0
  1588. package/lib/feature-libraries/schema-index/format.d.ts +60 -0
  1589. package/lib/feature-libraries/schema-index/format.d.ts.map +1 -0
  1590. package/lib/feature-libraries/schema-index/format.js +30 -0
  1591. package/lib/feature-libraries/schema-index/format.js.map +1 -0
  1592. package/lib/feature-libraries/schema-index/index.d.ts +8 -0
  1593. package/lib/feature-libraries/schema-index/index.d.ts.map +1 -0
  1594. package/lib/feature-libraries/schema-index/index.js +8 -0
  1595. package/lib/feature-libraries/schema-index/index.js.map +1 -0
  1596. package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts +41 -0
  1597. package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -0
  1598. package/lib/feature-libraries/schema-index/schemaSummarizer.js +81 -0
  1599. package/lib/feature-libraries/schema-index/schemaSummarizer.js.map +1 -0
  1600. package/lib/feature-libraries/schemaBuilder.d.ts +31 -0
  1601. package/lib/feature-libraries/schemaBuilder.d.ts.map +1 -0
  1602. package/lib/feature-libraries/schemaBuilder.js +36 -0
  1603. package/lib/feature-libraries/schemaBuilder.js.map +1 -0
  1604. package/lib/feature-libraries/schemaBuilderBase.d.ts +217 -0
  1605. package/lib/feature-libraries/schemaBuilderBase.d.ts.map +1 -0
  1606. package/lib/feature-libraries/schemaBuilderBase.js +221 -0
  1607. package/lib/feature-libraries/schemaBuilderBase.js.map +1 -0
  1608. package/lib/feature-libraries/sequence-field/compose.d.ts +45 -0
  1609. package/lib/feature-libraries/sequence-field/compose.d.ts.map +1 -0
  1610. package/lib/feature-libraries/sequence-field/compose.js +432 -0
  1611. package/lib/feature-libraries/sequence-field/compose.js.map +1 -0
  1612. package/lib/feature-libraries/sequence-field/format.d.ts +427 -0
  1613. package/lib/feature-libraries/sequence-field/format.d.ts.map +1 -0
  1614. package/lib/feature-libraries/sequence-field/format.js +74 -0
  1615. package/lib/feature-libraries/sequence-field/format.js.map +1 -0
  1616. package/lib/feature-libraries/sequence-field/helperTypes.d.ts +34 -0
  1617. package/lib/feature-libraries/sequence-field/helperTypes.d.ts.map +1 -0
  1618. package/lib/feature-libraries/sequence-field/helperTypes.js +13 -0
  1619. package/lib/feature-libraries/sequence-field/helperTypes.js.map +1 -0
  1620. package/lib/feature-libraries/sequence-field/index.d.ts +18 -0
  1621. package/lib/feature-libraries/sequence-field/index.d.ts.map +1 -0
  1622. package/lib/feature-libraries/sequence-field/index.js +17 -0
  1623. package/lib/feature-libraries/sequence-field/index.js.map +1 -0
  1624. package/lib/feature-libraries/sequence-field/invert.d.ts +19 -0
  1625. package/lib/feature-libraries/sequence-field/invert.d.ts.map +1 -0
  1626. package/lib/feature-libraries/sequence-field/invert.js +217 -0
  1627. package/lib/feature-libraries/sequence-field/invert.js.map +1 -0
  1628. package/lib/feature-libraries/sequence-field/markListFactory.d.ts +21 -0
  1629. package/lib/feature-libraries/sequence-field/markListFactory.d.ts.map +1 -0
  1630. package/lib/feature-libraries/sequence-field/markListFactory.js +51 -0
  1631. package/lib/feature-libraries/sequence-field/markListFactory.js.map +1 -0
  1632. package/lib/feature-libraries/sequence-field/markQueue.d.ts +30 -0
  1633. package/lib/feature-libraries/sequence-field/markQueue.d.ts.map +1 -0
  1634. package/lib/feature-libraries/sequence-field/markQueue.js +70 -0
  1635. package/lib/feature-libraries/sequence-field/markQueue.js.map +1 -0
  1636. package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts +48 -0
  1637. package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -0
  1638. package/lib/feature-libraries/sequence-field/moveEffectTable.js +242 -0
  1639. package/lib/feature-libraries/sequence-field/moveEffectTable.js.map +1 -0
  1640. package/lib/feature-libraries/sequence-field/prune.d.ts +8 -0
  1641. package/lib/feature-libraries/sequence-field/prune.d.ts.map +1 -0
  1642. package/lib/feature-libraries/sequence-field/prune.js +21 -0
  1643. package/lib/feature-libraries/sequence-field/prune.js.map +1 -0
  1644. package/lib/feature-libraries/sequence-field/rebase.d.ts +26 -0
  1645. package/lib/feature-libraries/sequence-field/rebase.d.ts.map +1 -0
  1646. package/lib/feature-libraries/sequence-field/rebase.js +615 -0
  1647. package/lib/feature-libraries/sequence-field/rebase.js.map +1 -0
  1648. package/lib/feature-libraries/sequence-field/relevantRemovedRoots.d.ts +9 -0
  1649. package/lib/feature-libraries/sequence-field/relevantRemovedRoots.d.ts.map +1 -0
  1650. package/lib/feature-libraries/sequence-field/relevantRemovedRoots.js +46 -0
  1651. package/lib/feature-libraries/sequence-field/relevantRemovedRoots.js.map +1 -0
  1652. package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts +10 -0
  1653. package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts.map +1 -0
  1654. package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.js +19 -0
  1655. package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.js.map +1 -0
  1656. package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts +19 -0
  1657. package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts.map +1 -0
  1658. package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js +16 -0
  1659. package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js.map +1 -0
  1660. package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts +10 -0
  1661. package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -0
  1662. package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.js +235 -0
  1663. package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -0
  1664. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +33 -0
  1665. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -0
  1666. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js +110 -0
  1667. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -0
  1668. package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts +9 -0
  1669. package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -0
  1670. package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js +161 -0
  1671. package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -0
  1672. package/lib/feature-libraries/sequence-field/types.d.ts +182 -0
  1673. package/lib/feature-libraries/sequence-field/types.d.ts.map +1 -0
  1674. package/lib/feature-libraries/sequence-field/types.js +6 -0
  1675. package/lib/feature-libraries/sequence-field/types.js.map +1 -0
  1676. package/lib/feature-libraries/sequence-field/utils.d.ts +198 -0
  1677. package/lib/feature-libraries/sequence-field/utils.d.ts.map +1 -0
  1678. package/lib/feature-libraries/sequence-field/utils.js +924 -0
  1679. package/lib/feature-libraries/sequence-field/utils.js.map +1 -0
  1680. package/lib/feature-libraries/storedToViewSchema.d.ts +18 -0
  1681. package/lib/feature-libraries/storedToViewSchema.d.ts.map +1 -0
  1682. package/lib/feature-libraries/storedToViewSchema.js +65 -0
  1683. package/lib/feature-libraries/storedToViewSchema.js.map +1 -0
  1684. package/lib/feature-libraries/treeCompressionUtils.d.ts +23 -0
  1685. package/lib/feature-libraries/treeCompressionUtils.d.ts.map +1 -0
  1686. package/lib/feature-libraries/treeCompressionUtils.js +24 -0
  1687. package/lib/feature-libraries/treeCompressionUtils.js.map +1 -0
  1688. package/lib/feature-libraries/treeCursorUtils.d.ts +101 -0
  1689. package/lib/feature-libraries/treeCursorUtils.d.ts.map +1 -0
  1690. package/lib/feature-libraries/treeCursorUtils.js +364 -0
  1691. package/lib/feature-libraries/treeCursorUtils.js.map +1 -0
  1692. package/lib/feature-libraries/treeTextCursor.d.ts +62 -0
  1693. package/lib/feature-libraries/treeTextCursor.d.ts.map +1 -0
  1694. package/lib/feature-libraries/treeTextCursor.js +96 -0
  1695. package/lib/feature-libraries/treeTextCursor.js.map +1 -0
  1696. package/lib/feature-libraries/typed-schema/flexList.d.ts +97 -0
  1697. package/lib/feature-libraries/typed-schema/flexList.d.ts.map +1 -0
  1698. package/lib/feature-libraries/typed-schema/flexList.js +51 -0
  1699. package/lib/feature-libraries/typed-schema/flexList.js.map +1 -0
  1700. package/lib/feature-libraries/typed-schema/index.d.ts +11 -0
  1701. package/lib/feature-libraries/typed-schema/index.d.ts.map +1 -0
  1702. package/lib/feature-libraries/typed-schema/index.js +12 -0
  1703. package/lib/feature-libraries/typed-schema/index.js.map +1 -0
  1704. package/lib/feature-libraries/typed-schema/internal.d.ts +7 -0
  1705. package/lib/feature-libraries/typed-schema/internal.d.ts.map +1 -0
  1706. package/lib/feature-libraries/typed-schema/internal.js +6 -0
  1707. package/lib/feature-libraries/typed-schema/internal.js.map +1 -0
  1708. package/lib/feature-libraries/typed-schema/schemaCollection.d.ts +67 -0
  1709. package/lib/feature-libraries/typed-schema/schemaCollection.d.ts.map +1 -0
  1710. package/lib/feature-libraries/typed-schema/schemaCollection.js +199 -0
  1711. package/lib/feature-libraries/typed-schema/schemaCollection.js.map +1 -0
  1712. package/lib/feature-libraries/typed-schema/typeUtils.d.ts +22 -0
  1713. package/lib/feature-libraries/typed-schema/typeUtils.d.ts.map +1 -0
  1714. package/lib/feature-libraries/typed-schema/typeUtils.js +10 -0
  1715. package/lib/feature-libraries/typed-schema/typeUtils.js.map +1 -0
  1716. package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts +294 -0
  1717. package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -0
  1718. package/lib/feature-libraries/typed-schema/typedTreeSchema.js +316 -0
  1719. package/lib/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -0
  1720. package/lib/feature-libraries/typed-schema/view.d.ts +55 -0
  1721. package/lib/feature-libraries/typed-schema/view.d.ts.map +1 -0
  1722. package/lib/feature-libraries/typed-schema/view.js +113 -0
  1723. package/lib/feature-libraries/typed-schema/view.js.map +1 -0
  1724. package/lib/feature-libraries/utils.d.ts +9 -0
  1725. package/lib/feature-libraries/utils.d.ts.map +1 -0
  1726. package/lib/feature-libraries/utils.js +23 -0
  1727. package/lib/feature-libraries/utils.js.map +1 -0
  1728. package/lib/feature-libraries/valueUtilities.d.ts +21 -0
  1729. package/lib/feature-libraries/valueUtilities.d.ts.map +1 -0
  1730. package/lib/feature-libraries/valueUtilities.js +62 -0
  1731. package/lib/feature-libraries/valueUtilities.js.map +1 -0
  1732. package/lib/feature-libraries/versioned/codec.d.ts +11 -0
  1733. package/lib/feature-libraries/versioned/codec.d.ts.map +1 -0
  1734. package/lib/feature-libraries/versioned/codec.js +26 -0
  1735. package/lib/feature-libraries/versioned/codec.js.map +1 -0
  1736. package/lib/feature-libraries/versioned/format.d.ts +10 -0
  1737. package/lib/feature-libraries/versioned/format.d.ts.map +1 -0
  1738. package/lib/feature-libraries/versioned/format.js +9 -0
  1739. package/lib/feature-libraries/versioned/format.js.map +1 -0
  1740. package/lib/feature-libraries/versioned/index.d.ts +7 -0
  1741. package/lib/feature-libraries/versioned/index.d.ts.map +1 -0
  1742. package/lib/feature-libraries/versioned/index.js +7 -0
  1743. package/lib/feature-libraries/versioned/index.js.map +1 -0
  1744. package/lib/index.d.ts +21 -0
  1745. package/lib/index.d.ts.map +1 -0
  1746. package/lib/index.js +26 -0
  1747. package/lib/index.js.map +1 -0
  1748. package/lib/internal.d.ts +8 -0
  1749. package/lib/internal.d.ts.map +1 -0
  1750. package/lib/internal.js +6 -0
  1751. package/lib/internal.js.map +1 -0
  1752. package/lib/shared-tree/index.d.ts +10 -0
  1753. package/lib/shared-tree/index.d.ts.map +1 -0
  1754. package/lib/shared-tree/index.js +9 -0
  1755. package/lib/shared-tree/index.js.map +1 -0
  1756. package/lib/shared-tree/schematizedTree.d.ts +94 -0
  1757. package/lib/shared-tree/schematizedTree.d.ts.map +1 -0
  1758. package/lib/shared-tree/schematizedTree.js +151 -0
  1759. package/lib/shared-tree/schematizedTree.js.map +1 -0
  1760. package/lib/shared-tree/sharedTree.d.ts +143 -0
  1761. package/lib/shared-tree/sharedTree.d.ts.map +1 -0
  1762. package/lib/shared-tree/sharedTree.js +215 -0
  1763. package/lib/shared-tree/sharedTree.js.map +1 -0
  1764. package/lib/shared-tree/sharedTreeChangeCodecs.d.ts +11 -0
  1765. package/lib/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -0
  1766. package/lib/shared-tree/sharedTreeChangeCodecs.js +54 -0
  1767. package/lib/shared-tree/sharedTreeChangeCodecs.js.map +1 -0
  1768. package/lib/shared-tree/sharedTreeChangeFamily.d.ts +25 -0
  1769. package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -0
  1770. package/lib/shared-tree/sharedTreeChangeFamily.js +116 -0
  1771. package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -0
  1772. package/lib/shared-tree/sharedTreeChangeFormat.d.ts +178 -0
  1773. package/lib/shared-tree/sharedTreeChangeFormat.d.ts.map +1 -0
  1774. package/lib/shared-tree/sharedTreeChangeFormat.js +12 -0
  1775. package/lib/shared-tree/sharedTreeChangeFormat.js.map +1 -0
  1776. package/lib/shared-tree/sharedTreeChangeTypes.d.ts +26 -0
  1777. package/lib/shared-tree/sharedTreeChangeTypes.d.ts.map +1 -0
  1778. package/lib/shared-tree/sharedTreeChangeTypes.js +6 -0
  1779. package/lib/shared-tree/sharedTreeChangeTypes.js.map +1 -0
  1780. package/lib/shared-tree/sharedTreeEditBuilder.d.ts +42 -0
  1781. package/lib/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -0
  1782. package/lib/shared-tree/sharedTreeEditBuilder.js +30 -0
  1783. package/lib/shared-tree/sharedTreeEditBuilder.js.map +1 -0
  1784. package/lib/shared-tree/treeCheckout.d.ts +228 -0
  1785. package/lib/shared-tree/treeCheckout.d.ts.map +1 -0
  1786. package/lib/shared-tree/treeCheckout.js +184 -0
  1787. package/lib/shared-tree/treeCheckout.js.map +1 -0
  1788. package/lib/shared-tree/treeView.d.ts +66 -0
  1789. package/lib/shared-tree/treeView.d.ts.map +1 -0
  1790. package/lib/shared-tree/treeView.js +29 -0
  1791. package/lib/shared-tree/treeView.js.map +1 -0
  1792. package/lib/shared-tree-core/branch.d.ts +199 -0
  1793. package/lib/shared-tree-core/branch.d.ts.map +1 -0
  1794. package/lib/shared-tree-core/branch.js +407 -0
  1795. package/lib/shared-tree-core/branch.js.map +1 -0
  1796. package/lib/shared-tree-core/editManager.d.ts +126 -0
  1797. package/lib/shared-tree-core/editManager.d.ts.map +1 -0
  1798. package/lib/shared-tree-core/editManager.js +428 -0
  1799. package/lib/shared-tree-core/editManager.js.map +1 -0
  1800. package/lib/shared-tree-core/editManagerCodecs.d.ts +9 -0
  1801. package/lib/shared-tree-core/editManagerCodecs.d.ts.map +1 -0
  1802. package/lib/shared-tree-core/editManagerCodecs.js +48 -0
  1803. package/lib/shared-tree-core/editManagerCodecs.js.map +1 -0
  1804. package/lib/shared-tree-core/editManagerFormat.d.ts +68 -0
  1805. package/lib/shared-tree-core/editManagerFormat.d.ts.map +1 -0
  1806. package/lib/shared-tree-core/editManagerFormat.js +49 -0
  1807. package/lib/shared-tree-core/editManagerFormat.js.map +1 -0
  1808. package/lib/shared-tree-core/editManagerSummarizer.d.ts +25 -0
  1809. package/lib/shared-tree-core/editManagerSummarizer.d.ts.map +1 -0
  1810. package/lib/shared-tree-core/editManagerSummarizer.js +52 -0
  1811. package/lib/shared-tree-core/editManagerSummarizer.js.map +1 -0
  1812. package/lib/shared-tree-core/index.d.ts +13 -0
  1813. package/lib/shared-tree-core/index.d.ts.map +1 -0
  1814. package/lib/shared-tree-core/index.js +12 -0
  1815. package/lib/shared-tree-core/index.js.map +1 -0
  1816. package/lib/shared-tree-core/messageCodecs.d.ts +9 -0
  1817. package/lib/shared-tree-core/messageCodecs.d.ts.map +1 -0
  1818. package/lib/shared-tree-core/messageCodecs.js +31 -0
  1819. package/lib/shared-tree-core/messageCodecs.js.map +1 -0
  1820. package/lib/shared-tree-core/messageFormat.d.ts +30 -0
  1821. package/lib/shared-tree-core/messageFormat.d.ts.map +1 -0
  1822. package/lib/shared-tree-core/messageFormat.js +12 -0
  1823. package/lib/shared-tree-core/messageFormat.js.map +1 -0
  1824. package/lib/shared-tree-core/messageTypes.d.ts +10 -0
  1825. package/lib/shared-tree-core/messageTypes.d.ts.map +1 -0
  1826. package/lib/shared-tree-core/messageTypes.js +6 -0
  1827. package/lib/shared-tree-core/messageTypes.js.map +1 -0
  1828. package/lib/shared-tree-core/revisionTagCodecs.d.ts +11 -0
  1829. package/lib/shared-tree-core/revisionTagCodecs.d.ts.map +1 -0
  1830. package/lib/shared-tree-core/revisionTagCodecs.js +13 -0
  1831. package/lib/shared-tree-core/revisionTagCodecs.js.map +1 -0
  1832. package/lib/shared-tree-core/sharedTreeCore.d.ts +112 -0
  1833. package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -0
  1834. package/lib/shared-tree-core/sharedTreeCore.js +193 -0
  1835. package/lib/shared-tree-core/sharedTreeCore.js.map +1 -0
  1836. package/lib/shared-tree-core/transactionStack.d.ts +30 -0
  1837. package/lib/shared-tree-core/transactionStack.d.ts.map +1 -0
  1838. package/lib/shared-tree-core/transactionStack.js +38 -0
  1839. package/lib/shared-tree-core/transactionStack.js.map +1 -0
  1840. package/lib/simple-tree/flexNode.d.ts +34 -0
  1841. package/lib/simple-tree/flexNode.d.ts.map +1 -0
  1842. package/lib/simple-tree/flexNode.js +50 -0
  1843. package/lib/simple-tree/flexNode.js.map +1 -0
  1844. package/lib/simple-tree/index.d.ts +10 -0
  1845. package/lib/simple-tree/index.d.ts.map +1 -0
  1846. package/lib/simple-tree/index.js +9 -0
  1847. package/lib/simple-tree/index.js.map +1 -0
  1848. package/lib/simple-tree/insertable.d.ts +44 -0
  1849. package/lib/simple-tree/insertable.d.ts.map +1 -0
  1850. package/lib/simple-tree/insertable.js +6 -0
  1851. package/lib/simple-tree/insertable.js.map +1 -0
  1852. package/lib/simple-tree/objectFactory.d.ts +30 -0
  1853. package/lib/simple-tree/objectFactory.d.ts.map +1 -0
  1854. package/lib/simple-tree/objectFactory.js +16 -0
  1855. package/lib/simple-tree/objectFactory.js.map +1 -0
  1856. package/lib/simple-tree/proxies.d.ts +112 -0
  1857. package/lib/simple-tree/proxies.d.ts.map +1 -0
  1858. package/lib/simple-tree/proxies.js +800 -0
  1859. package/lib/simple-tree/proxies.js.map +1 -0
  1860. package/lib/simple-tree/rawNode.d.ts +96 -0
  1861. package/lib/simple-tree/rawNode.d.ts.map +1 -0
  1862. package/lib/simple-tree/rawNode.js +132 -0
  1863. package/lib/simple-tree/rawNode.js.map +1 -0
  1864. package/lib/simple-tree/toMapTree.d.ts +101 -0
  1865. package/lib/simple-tree/toMapTree.d.ts.map +1 -0
  1866. package/lib/simple-tree/toMapTree.js +291 -0
  1867. package/lib/simple-tree/toMapTree.js.map +1 -0
  1868. package/lib/simple-tree/treeListNode.d.ts +60 -0
  1869. package/lib/simple-tree/treeListNode.d.ts.map +1 -0
  1870. package/lib/simple-tree/treeListNode.js +49 -0
  1871. package/lib/simple-tree/treeListNode.js.map +1 -0
  1872. package/lib/simple-tree/types.d.ts +243 -0
  1873. package/lib/simple-tree/types.d.ts.map +1 -0
  1874. package/lib/simple-tree/types.js +17 -0
  1875. package/lib/simple-tree/types.js.map +1 -0
  1876. package/lib/treeFactory.d.ts +55 -0
  1877. package/lib/treeFactory.d.ts.map +1 -0
  1878. package/lib/treeFactory.js +80 -0
  1879. package/lib/treeFactory.js.map +1 -0
  1880. package/lib/util/brand.d.ts +179 -0
  1881. package/lib/util/brand.d.ts.map +1 -0
  1882. package/lib/util/brand.js +118 -0
  1883. package/lib/util/brand.js.map +1 -0
  1884. package/lib/util/brandedMap.d.ts +46 -0
  1885. package/lib/util/brandedMap.d.ts.map +1 -0
  1886. package/lib/util/brandedMap.js +27 -0
  1887. package/lib/util/brandedMap.js.map +1 -0
  1888. package/lib/util/idAllocator.d.ts +29 -0
  1889. package/lib/util/idAllocator.d.ts.map +1 -0
  1890. package/lib/util/idAllocator.js +29 -0
  1891. package/lib/util/idAllocator.js.map +1 -0
  1892. package/lib/util/index.d.ts +18 -0
  1893. package/lib/util/index.d.ts.map +1 -0
  1894. package/lib/util/index.js +16 -0
  1895. package/lib/util/index.js.map +1 -0
  1896. package/lib/util/nestedMap.d.ts +129 -0
  1897. package/lib/util/nestedMap.d.ts.map +1 -0
  1898. package/lib/util/nestedMap.js +224 -0
  1899. package/lib/util/nestedMap.js.map +1 -0
  1900. package/lib/util/nestedSet.d.ts +9 -0
  1901. package/lib/util/nestedSet.d.ts.map +1 -0
  1902. package/lib/util/nestedSet.js +12 -0
  1903. package/lib/util/nestedSet.js.map +1 -0
  1904. package/lib/util/offsetList.d.ts +22 -0
  1905. package/lib/util/offsetList.d.ts.map +1 -0
  1906. package/lib/util/offsetList.js +40 -0
  1907. package/lib/util/offsetList.js.map +1 -0
  1908. package/lib/util/rangeMap.d.ts +40 -0
  1909. package/lib/util/rangeMap.d.ts.map +1 -0
  1910. package/lib/util/rangeMap.js +97 -0
  1911. package/lib/util/rangeMap.js.map +1 -0
  1912. package/lib/util/referenceCounting.d.ts +30 -0
  1913. package/lib/util/referenceCounting.d.ts.map +1 -0
  1914. package/lib/util/referenceCounting.js +30 -0
  1915. package/lib/util/referenceCounting.js.map +1 -0
  1916. package/lib/util/stackyIterator.d.ts +20 -0
  1917. package/lib/util/stackyIterator.d.ts.map +1 -0
  1918. package/lib/util/stackyIterator.js +45 -0
  1919. package/lib/util/stackyIterator.js.map +1 -0
  1920. package/lib/util/transactionResult.d.ts +20 -0
  1921. package/lib/util/transactionResult.d.ts.map +1 -0
  1922. package/lib/util/transactionResult.js +21 -0
  1923. package/lib/util/transactionResult.js.map +1 -0
  1924. package/lib/util/typeCheck.d.ts +183 -0
  1925. package/lib/util/typeCheck.d.ts.map +1 -0
  1926. package/lib/util/typeCheck.js +6 -0
  1927. package/lib/util/typeCheck.js.map +1 -0
  1928. package/lib/util/typeCheckTests.d.ts +60 -0
  1929. package/lib/util/typeCheckTests.d.ts.map +1 -0
  1930. package/lib/util/typeCheckTests.js +6 -0
  1931. package/lib/util/typeCheckTests.js.map +1 -0
  1932. package/lib/util/typeUtils.d.ts +129 -0
  1933. package/lib/util/typeUtils.d.ts.map +1 -0
  1934. package/lib/util/typeUtils.js +10 -0
  1935. package/lib/util/typeUtils.js.map +1 -0
  1936. package/lib/util/utils.d.ts +287 -0
  1937. package/lib/util/utils.d.ts.map +1 -0
  1938. package/lib/util/utils.js +346 -0
  1939. package/lib/util/utils.js.map +1 -0
  1940. package/package.json +129 -0
  1941. package/prettier.config.cjs +8 -0
  1942. package/src/class-tree/README.md +67 -0
  1943. package/src/class-tree/index.ts +43 -0
  1944. package/src/class-tree/integerIndexable.ts +120 -0
  1945. package/src/class-tree/internal.ts +20 -0
  1946. package/src/class-tree/schemaCreationUtilities.ts +178 -0
  1947. package/src/class-tree/schemaFactory.ts +685 -0
  1948. package/src/class-tree/schemaFactoryRecursive.ts +95 -0
  1949. package/src/class-tree/schemaTypes.ts +334 -0
  1950. package/src/class-tree/testRecursiveDomain.ts +47 -0
  1951. package/src/class-tree/toFlexSchema.ts +279 -0
  1952. package/src/class-tree/tree.ts +123 -0
  1953. package/src/class-tree/treeApi.ts +147 -0
  1954. package/src/codec/README.md +15 -0
  1955. package/src/codec/codec.ts +346 -0
  1956. package/src/codec/discriminatedUnions.ts +114 -0
  1957. package/src/codec/index.ts +23 -0
  1958. package/src/codec/noopValidator.ts +17 -0
  1959. package/src/core/README.md +9 -0
  1960. package/src/core/change-family/README.md +14 -0
  1961. package/src/core/change-family/changeFamily.ts +36 -0
  1962. package/src/core/change-family/editBuilder.ts +25 -0
  1963. package/src/core/change-family/index.ts +7 -0
  1964. package/src/core/forest/README.md +11 -0
  1965. package/src/core/forest/editableForest.ts +81 -0
  1966. package/src/core/forest/forest.ts +263 -0
  1967. package/src/core/forest/index.ts +22 -0
  1968. package/src/core/index.ts +193 -0
  1969. package/src/core/rebase/README.md +5 -0
  1970. package/src/core/rebase/changeRebaser.ts +169 -0
  1971. package/src/core/rebase/index.ts +51 -0
  1972. package/src/core/rebase/types.ts +129 -0
  1973. package/src/core/rebase/utils.ts +538 -0
  1974. package/src/core/rebase/verifyChangeRebaser.ts +385 -0
  1975. package/src/core/revertible/index.ts +6 -0
  1976. package/src/core/revertible/revertible.ts +75 -0
  1977. package/src/core/schema-stored/README.md +11 -0
  1978. package/src/core/schema-stored/format.ts +115 -0
  1979. package/src/core/schema-stored/index.ts +36 -0
  1980. package/src/core/schema-stored/schema.ts +313 -0
  1981. package/src/core/schema-stored/storedSchemaRepository.ts +136 -0
  1982. package/src/core/schema-view/README.md +9 -0
  1983. package/src/core/schema-view/index.ts +6 -0
  1984. package/src/core/schema-view/view.ts +76 -0
  1985. package/src/core/tree/README.md +15 -0
  1986. package/src/core/tree/anchorSet.ts +1219 -0
  1987. package/src/core/tree/cursor.ts +486 -0
  1988. package/src/core/tree/delta.ts +255 -0
  1989. package/src/core/tree/deltaUtil.ts +102 -0
  1990. package/src/core/tree/detachedFieldIndex.ts +170 -0
  1991. package/src/core/tree/detachedFieldIndexCodec.ts +59 -0
  1992. package/src/core/tree/detachedFieldIndexFormat.ts +35 -0
  1993. package/src/core/tree/detachedFieldIndexTypes.ts +15 -0
  1994. package/src/core/tree/index.ts +114 -0
  1995. package/src/core/tree/mapTree.ts +37 -0
  1996. package/src/core/tree/pathTree.ts +228 -0
  1997. package/src/core/tree/persistedTreeTextFormat.ts +93 -0
  1998. package/src/core/tree/sparseTree.ts +160 -0
  1999. package/src/core/tree/treeTextFormat.ts +179 -0
  2000. package/src/core/tree/types.ts +170 -0
  2001. package/src/core/tree/visitDelta.ts +482 -0
  2002. package/src/core/tree/visitPath.ts +125 -0
  2003. package/src/core/tree/visitorUtils.ts +106 -0
  2004. package/src/domains/README.md +6 -0
  2005. package/src/domains/fence.json +5 -0
  2006. package/src/domains/index.ts +18 -0
  2007. package/src/domains/json/fence.json +5 -0
  2008. package/src/domains/json/index.ts +7 -0
  2009. package/src/domains/json/jsonCursor.ts +137 -0
  2010. package/src/domains/json/jsonDomainSchema.ts +49 -0
  2011. package/src/domains/leafDomain.ts +98 -0
  2012. package/src/domains/nodeKey/fence.json +5 -0
  2013. package/src/domains/nodeKey/index.ts +6 -0
  2014. package/src/domains/nodeKey/nodeKeySchema.ts +43 -0
  2015. package/src/domains/schemaBuilder.ts +392 -0
  2016. package/src/domains/testRecursiveDomain.ts +56 -0
  2017. package/src/events/README.md +3 -0
  2018. package/src/events/events.ts +282 -0
  2019. package/src/events/fence.json +5 -0
  2020. package/src/events/index.ts +17 -0
  2021. package/src/external-utilities/README.md +5 -0
  2022. package/src/external-utilities/fence.json +5 -0
  2023. package/src/external-utilities/index.ts +6 -0
  2024. package/src/external-utilities/typeboxValidator.ts +30 -0
  2025. package/src/feature-libraries/README.md +140 -0
  2026. package/src/feature-libraries/chunked-forest/README.md +13 -0
  2027. package/src/feature-libraries/chunked-forest/basicChunk.ts +564 -0
  2028. package/src/feature-libraries/chunked-forest/chunk.ts +109 -0
  2029. package/src/feature-libraries/chunked-forest/chunkTree.ts +506 -0
  2030. package/src/feature-libraries/chunked-forest/chunkedForest.ts +443 -0
  2031. package/src/feature-libraries/chunked-forest/codec/README.md +55 -0
  2032. package/src/feature-libraries/chunked-forest/codec/chunkCodecUtilities.ts +183 -0
  2033. package/src/feature-libraries/chunked-forest/codec/chunkDecoding.ts +274 -0
  2034. package/src/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.ts +72 -0
  2035. package/src/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.ts +179 -0
  2036. package/src/feature-libraries/chunked-forest/codec/codecs.ts +101 -0
  2037. package/src/feature-libraries/chunked-forest/codec/compressedEncode.ts +486 -0
  2038. package/src/feature-libraries/chunked-forest/codec/fieldBatch.ts +12 -0
  2039. package/src/feature-libraries/chunked-forest/codec/format.ts +171 -0
  2040. package/src/feature-libraries/chunked-forest/codec/formatGeneric.ts +63 -0
  2041. package/src/feature-libraries/chunked-forest/codec/index.ts +8 -0
  2042. package/src/feature-libraries/chunked-forest/codec/nodeShape.ts +148 -0
  2043. package/src/feature-libraries/chunked-forest/codec/schemaBasedEncoding.ts +148 -0
  2044. package/src/feature-libraries/chunked-forest/codec/uncompressedEncode.ts +65 -0
  2045. package/src/feature-libraries/chunked-forest/emptyChunk.ts +114 -0
  2046. package/src/feature-libraries/chunked-forest/index.ts +23 -0
  2047. package/src/feature-libraries/chunked-forest/sequenceChunk.ts +62 -0
  2048. package/src/feature-libraries/chunked-forest/uniformChunk.ts +524 -0
  2049. package/src/feature-libraries/contextuallyTyped.ts +583 -0
  2050. package/src/feature-libraries/default-schema/README.md +3 -0
  2051. package/src/feature-libraries/default-schema/defaultEditBuilder.ts +428 -0
  2052. package/src/feature-libraries/default-schema/defaultFieldKinds.ts +218 -0
  2053. package/src/feature-libraries/default-schema/defaultSchema.ts +15 -0
  2054. package/src/feature-libraries/default-schema/index.ts +28 -0
  2055. package/src/feature-libraries/deltaUtils.ts +152 -0
  2056. package/src/feature-libraries/detachedFieldIndexSummarizer.ts +68 -0
  2057. package/src/feature-libraries/editableTreeBinder.ts +1018 -0
  2058. package/src/feature-libraries/fieldGenerator.ts +49 -0
  2059. package/src/feature-libraries/flex-tree/README.md +132 -0
  2060. package/src/feature-libraries/flex-tree/context.ts +163 -0
  2061. package/src/feature-libraries/flex-tree/flexTreeTypes.ts +1035 -0
  2062. package/src/feature-libraries/flex-tree/index.ts +59 -0
  2063. package/src/feature-libraries/flex-tree/lazyEntity.ts +152 -0
  2064. package/src/feature-libraries/flex-tree/lazyField.ts +598 -0
  2065. package/src/feature-libraries/flex-tree/lazyNode.ts +690 -0
  2066. package/src/feature-libraries/flex-tree/navigation.ts +121 -0
  2067. package/src/feature-libraries/flex-tree/nodeKeys.ts +51 -0
  2068. package/src/feature-libraries/flex-tree/treeEvents.ts +117 -0
  2069. package/src/feature-libraries/flex-tree/unboxed.ts +77 -0
  2070. package/src/feature-libraries/flex-tree/utilities.ts +74 -0
  2071. package/src/feature-libraries/forest-summary/codec.ts +50 -0
  2072. package/src/feature-libraries/forest-summary/forestSummarizer.ts +176 -0
  2073. package/src/feature-libraries/forest-summary/format.ts +21 -0
  2074. package/src/feature-libraries/forest-summary/index.ts +6 -0
  2075. package/src/feature-libraries/incrementalSummarizationUtils.ts +20 -0
  2076. package/src/feature-libraries/index.ts +299 -0
  2077. package/src/feature-libraries/mapTreeCursor.ts +75 -0
  2078. package/src/feature-libraries/memoizedIdRangeAllocator.ts +120 -0
  2079. package/src/feature-libraries/mitigatedChangeFamily.ts +71 -0
  2080. package/src/feature-libraries/modular-schema/README.md +22 -0
  2081. package/src/feature-libraries/modular-schema/comparison.ts +307 -0
  2082. package/src/feature-libraries/modular-schema/crossFieldQueries.ts +85 -0
  2083. package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +226 -0
  2084. package/src/feature-libraries/modular-schema/fieldKind.ts +149 -0
  2085. package/src/feature-libraries/modular-schema/genericFieldKind.ts +231 -0
  2086. package/src/feature-libraries/modular-schema/genericFieldKindCodecs.ts +39 -0
  2087. package/src/feature-libraries/modular-schema/genericFieldKindFormat.ts +45 -0
  2088. package/src/feature-libraries/modular-schema/genericFieldKindTypes.ts +25 -0
  2089. package/src/feature-libraries/modular-schema/index.ts +65 -0
  2090. package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +284 -0
  2091. package/src/feature-libraries/modular-schema/modularChangeFamily.ts +1359 -0
  2092. package/src/feature-libraries/modular-schema/modularChangeFormat.ts +147 -0
  2093. package/src/feature-libraries/modular-schema/modularChangeTypes.ts +85 -0
  2094. package/src/feature-libraries/multiplicity.ts +54 -0
  2095. package/src/feature-libraries/node-key/README.md +11 -0
  2096. package/src/feature-libraries/node-key/index.ts +16 -0
  2097. package/src/feature-libraries/node-key/nodeKey.ts +58 -0
  2098. package/src/feature-libraries/node-key/nodeKeyIndex.ts +125 -0
  2099. package/src/feature-libraries/node-key/nodeKeyManager.ts +107 -0
  2100. package/src/feature-libraries/object-forest/README.md +7 -0
  2101. package/src/feature-libraries/object-forest/index.ts +6 -0
  2102. package/src/feature-libraries/object-forest/objectForest.ts +505 -0
  2103. package/src/feature-libraries/optional-field/README.md +3 -0
  2104. package/src/feature-libraries/optional-field/index.ts +13 -0
  2105. package/src/feature-libraries/optional-field/optionalField.ts +619 -0
  2106. package/src/feature-libraries/optional-field/optionalFieldChangeFormat.ts +40 -0
  2107. package/src/feature-libraries/optional-field/optionalFieldChangeTypes.ts +59 -0
  2108. package/src/feature-libraries/optional-field/optionalFieldCodecs.ts +114 -0
  2109. package/src/feature-libraries/schema-aware/README.md +19 -0
  2110. package/src/feature-libraries/schema-aware/index.ts +17 -0
  2111. package/src/feature-libraries/schema-aware/schemaAware.ts +123 -0
  2112. package/src/feature-libraries/schema-edits/index.ts +8 -0
  2113. package/src/feature-libraries/schema-edits/schemaChangeCodecs.ts +32 -0
  2114. package/src/feature-libraries/schema-edits/schemaChangeFormat.ts +14 -0
  2115. package/src/feature-libraries/schema-edits/schemaChangeTypes.ts +16 -0
  2116. package/src/feature-libraries/schema-index/codec.ts +68 -0
  2117. package/src/feature-libraries/schema-index/format.ts +45 -0
  2118. package/src/feature-libraries/schema-index/index.ts +8 -0
  2119. package/src/feature-libraries/schema-index/schemaSummarizer.ts +138 -0
  2120. package/src/feature-libraries/schemaBuilder.ts +44 -0
  2121. package/src/feature-libraries/schemaBuilderBase.ts +425 -0
  2122. package/src/feature-libraries/sequence-field/README.md +6 -0
  2123. package/src/feature-libraries/sequence-field/compose.ts +745 -0
  2124. package/src/feature-libraries/sequence-field/format.ts +146 -0
  2125. package/src/feature-libraries/sequence-field/helperTypes.ts +57 -0
  2126. package/src/feature-libraries/sequence-field/index.ts +56 -0
  2127. package/src/feature-libraries/sequence-field/invert.ts +370 -0
  2128. package/src/feature-libraries/sequence-field/markListFactory.ts +55 -0
  2129. package/src/feature-libraries/sequence-field/markQueue.ts +90 -0
  2130. package/src/feature-libraries/sequence-field/moveEffectTable.ts +500 -0
  2131. package/src/feature-libraries/sequence-field/prune.ts +28 -0
  2132. package/src/feature-libraries/sequence-field/rebase.ts +1058 -0
  2133. package/src/feature-libraries/sequence-field/relevantRemovedRoots.ts +58 -0
  2134. package/src/feature-libraries/sequence-field/sequenceFieldChangeHandler.ts +24 -0
  2135. package/src/feature-libraries/sequence-field/sequenceFieldChangeRebaser.ts +21 -0
  2136. package/src/feature-libraries/sequence-field/sequenceFieldCodecs.ts +280 -0
  2137. package/src/feature-libraries/sequence-field/sequenceFieldEditor.ts +181 -0
  2138. package/src/feature-libraries/sequence-field/sequenceFieldToDelta.ts +198 -0
  2139. package/src/feature-libraries/sequence-field/types.ts +210 -0
  2140. package/src/feature-libraries/sequence-field/utils.ts +1238 -0
  2141. package/src/feature-libraries/storedToViewSchema.ts +105 -0
  2142. package/src/feature-libraries/treeCompressionUtils.ts +23 -0
  2143. package/src/feature-libraries/treeCursorUtils.ts +489 -0
  2144. package/src/feature-libraries/treeTextCursor.ts +125 -0
  2145. package/src/feature-libraries/typed-schema/README.md +6 -0
  2146. package/src/feature-libraries/typed-schema/flexList.ts +167 -0
  2147. package/src/feature-libraries/typed-schema/index.ts +51 -0
  2148. package/src/feature-libraries/typed-schema/internal.ts +10 -0
  2149. package/src/feature-libraries/typed-schema/schemaCollection.ts +309 -0
  2150. package/src/feature-libraries/typed-schema/typeUtils.ts +39 -0
  2151. package/src/feature-libraries/typed-schema/typedTreeSchema.ts +594 -0
  2152. package/src/feature-libraries/typed-schema/view.ts +157 -0
  2153. package/src/feature-libraries/utils.ts +35 -0
  2154. package/src/feature-libraries/valueUtilities.ts +93 -0
  2155. package/src/feature-libraries/versioned/codec.ts +62 -0
  2156. package/src/feature-libraries/versioned/format.ts +11 -0
  2157. package/src/feature-libraries/versioned/index.ts +7 -0
  2158. package/src/index.ts +341 -0
  2159. package/src/internal.ts +17 -0
  2160. package/src/shared-tree/README.md +10 -0
  2161. package/src/shared-tree/index.ts +34 -0
  2162. package/src/shared-tree/schematizedTree.ts +272 -0
  2163. package/src/shared-tree/sharedTree.ts +443 -0
  2164. package/src/shared-tree/sharedTreeChangeCodecs.ts +79 -0
  2165. package/src/shared-tree/sharedTreeChangeFamily.ts +170 -0
  2166. package/src/shared-tree/sharedTreeChangeFormat.ts +18 -0
  2167. package/src/shared-tree/sharedTreeChangeTypes.ts +24 -0
  2168. package/src/shared-tree/sharedTreeEditBuilder.ts +70 -0
  2169. package/src/shared-tree/treeCheckout.ts +451 -0
  2170. package/src/shared-tree/treeView.ts +107 -0
  2171. package/src/shared-tree-core/README.md +19 -0
  2172. package/src/shared-tree-core/branch.ts +612 -0
  2173. package/src/shared-tree-core/editManager.ts +655 -0
  2174. package/src/shared-tree-core/editManagerCodecs.ts +63 -0
  2175. package/src/shared-tree-core/editManagerFormat.ts +119 -0
  2176. package/src/shared-tree-core/editManagerSummarizer.ts +103 -0
  2177. package/src/shared-tree-core/index.ts +32 -0
  2178. package/src/shared-tree-core/messageCodecs.ts +43 -0
  2179. package/src/shared-tree-core/messageFormat.ts +33 -0
  2180. package/src/shared-tree-core/messageTypes.ts +11 -0
  2181. package/src/shared-tree-core/revisionTagCodecs.ts +16 -0
  2182. package/src/shared-tree-core/sharedTreeCore.ts +365 -0
  2183. package/src/shared-tree-core/transactionStack.ts +46 -0
  2184. package/src/simple-tree/README.md +3 -0
  2185. package/src/simple-tree/flexNode.ts +88 -0
  2186. package/src/simple-tree/index.ts +30 -0
  2187. package/src/simple-tree/insertable.ts +106 -0
  2188. package/src/simple-tree/objectFactory.ts +46 -0
  2189. package/src/simple-tree/proxies.ts +1165 -0
  2190. package/src/simple-tree/rawNode.ts +276 -0
  2191. package/src/simple-tree/toMapTree.ts +464 -0
  2192. package/src/simple-tree/treeListNode.ts +81 -0
  2193. package/src/simple-tree/types.ts +346 -0
  2194. package/src/treeFactory.ts +149 -0
  2195. package/src/util/README.md +9 -0
  2196. package/src/util/brand.ts +248 -0
  2197. package/src/util/brandedMap.ts +73 -0
  2198. package/src/util/idAllocator.ts +52 -0
  2199. package/src/util/index.ts +131 -0
  2200. package/src/util/nestedMap.ts +297 -0
  2201. package/src/util/nestedSet.ts +24 -0
  2202. package/src/util/offsetList.ts +45 -0
  2203. package/src/util/rangeMap.ts +149 -0
  2204. package/src/util/referenceCounting.ts +51 -0
  2205. package/src/util/stackyIterator.ts +53 -0
  2206. package/src/util/transactionResult.ts +20 -0
  2207. package/src/util/typeCheck.ts +208 -0
  2208. package/src/util/typeCheckTests.ts +237 -0
  2209. package/src/util/typeUtils.ts +168 -0
  2210. package/src/util/utils.ts +538 -0
  2211. package/tsconfig.esnext.json +7 -0
  2212. package/tsconfig.json +17 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxies.js","sourceRoot":"","sources":["../../src/simple-tree/proxies.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { assert } from \"@fluidframework/core-utils\";\nimport { IFluidHandle } from \"@fluidframework/core-interfaces\";\nimport { brand, fail, isReadonlyArray } from \"../util\";\nimport {\n\tAllowedTypes,\n\tTreeFieldSchema,\n\tObjectNodeSchema,\n\tTreeNodeSchema,\n\tschemaIsFieldNode,\n\tschemaIsLeaf,\n\tschemaIsMap,\n\tschemaIsObjectNode,\n\tMapNodeSchema,\n\tFieldNodeSchema,\n\tFieldKinds,\n\tFlexTreeFieldNode,\n\tFlexTreeMapNode,\n\tFlexTreeObjectNode,\n\tFlexTreeOptionalField,\n\tFlexTreeRequiredField,\n\tFlexTreeSequenceField,\n\tFlexTreeNode,\n\tFlexTreeTypedField,\n\tFlexTreeUnknownUnboxed,\n\tonNextChange,\n\ttypeNameSymbol,\n\tisFluidHandle,\n} from \"../feature-libraries\";\nimport { EmptyKey, FieldKey, TreeNodeSchemaIdentifier } from \"../core\";\n// TODO: decide how to deal with dependencies on flex-tree implementation.\n// eslint-disable-next-line import/no-internal-modules\nimport { LazyObjectNode, getBoxedField } from \"../feature-libraries/flex-tree/lazyNode\";\nimport { type TreeNodeSchema as TreeNodeSchemaClass } from \"../class-tree\";\n// eslint-disable-next-line import/no-internal-modules\nimport { NodeKind } from \"../class-tree/schemaTypes\";\nimport { IterableTreeListContent, TreeListNodeOld } from \"./treeListNode\";\nimport { TreeField, TypedNode, TreeMapNode, TreeObjectNode, Unhydrated, TreeNode } from \"./types\";\nimport { tryGetFlexNodeTarget, setFlexNode, getFlexNode, tryGetFlexNode } from \"./flexNode\";\nimport { InsertableTreeNodeUnion, InsertableTypedNode } from \"./insertable\";\nimport { cursorFromFieldData, cursorFromNodeData } from \"./toMapTree\";\nimport { RawTreeNode, createRawNode, extractRawNodeContent } from \"./rawNode\";\n\n/** Retrieve the associated proxy for the given field. */\nexport function getProxyForField<TSchema extends TreeFieldSchema>(\n\tfield: FlexTreeTypedField<TSchema>,\n): TreeField<TSchema> {\n\tswitch (field.schema.kind) {\n\t\tcase FieldKinds.required: {\n\t\t\tconst asValue = field as FlexTreeTypedField<\n\t\t\t\tTreeFieldSchema<typeof FieldKinds.required>\n\t\t\t>;\n\n\t\t\t// TODO: Ideally, we would return leaves without first boxing them. However, this is not\n\t\t\t// as simple as calling '.content' since this skips the node and returns the FieldNode's\n\t\t\t// inner field.\n\t\t\treturn getOrCreateNodeProxy(asValue.boxedContent) as TreeField<TSchema>;\n\t\t}\n\t\tcase FieldKinds.optional: {\n\t\t\tconst asValue = field as FlexTreeTypedField<\n\t\t\t\tTreeFieldSchema<typeof FieldKinds.optional>\n\t\t\t>;\n\n\t\t\t// TODO: Ideally, we would return leaves without first boxing them. However, this is not\n\t\t\t// as simple as calling '.content' since this skips the node and returns the FieldNode's\n\t\t\t// inner field.\n\n\t\t\tconst maybeContent = asValue.boxedContent;\n\n\t\t\t// Normally, empty fields are unreachable due to the behavior of 'tryGetField'. However, the\n\t\t\t// root field is a special case where the field is always present (even if empty).\n\t\t\treturn (\n\t\t\t\tmaybeContent === undefined ? undefined : getOrCreateNodeProxy(maybeContent)\n\t\t\t) as TreeField<TSchema>;\n\t\t}\n\t\t// TODO: Remove if/when 'FieldNode' is removed.\n\t\tcase FieldKinds.sequence: {\n\t\t\t// 'getProxyForNode' handles FieldNodes by unconditionally creating a list proxy, making\n\t\t\t// this case unreachable as long as users follow the 'list recipe'.\n\t\t\tfail(\"'sequence' field is unexpected.\");\n\t\t}\n\t\tdefault:\n\t\t\tfail(\"invalid field kind\");\n\t}\n}\n\n/**\n * A symbol for storing TreeNodeSchemaClass on FlexTreeNode's schema.\n */\nexport const simpleSchemaSymbol: unique symbol = Symbol(`simpleSchema`);\n\nexport function getClassSchema(schema: TreeNodeSchema): TreeNodeSchemaClass | undefined {\n\tif (simpleSchemaSymbol in schema) {\n\t\treturn schema[simpleSchemaSymbol] as TreeNodeSchemaClass;\n\t}\n\treturn undefined;\n}\n\nexport function getOrCreateNodeProxy<TSchema extends TreeNodeSchema>(\n\tflexNode: FlexTreeNode,\n): TypedNode<TSchema> {\n\tconst cachedProxy = tryGetFlexNodeTarget(flexNode);\n\tif (cachedProxy !== undefined) {\n\t\treturn cachedProxy as TypedNode<TSchema>;\n\t}\n\n\tconst schema = flexNode.schema;\n\tlet output: TypedNode<TSchema>;\n\tconst classSchema = getClassSchema(schema);\n\tif (classSchema !== undefined) {\n\t\tif (typeof classSchema === \"function\") {\n\t\t\tconst simpleSchema = classSchema as unknown as new (\n\t\t\t\tdummy: FlexTreeNode,\n\t\t\t) => TypedNode<TSchema>;\n\t\t\toutput = new simpleSchema(flexNode);\n\t\t} else {\n\t\t\toutput = (\n\t\t\t\tschema as unknown as { create: (data: FlexTreeNode) => TypedNode<TSchema> }\n\t\t\t).create(flexNode);\n\t\t}\n\t} else {\n\t\t// Fallback to createNodeProxy if needed.\n\t\t// TODO: maybe remove this fallback and error once migration to class based schema is done.\n\t\toutput = createNodeProxy<TSchema>(flexNode, false);\n\t}\n\treturn output;\n}\n\n/**\n * @param flexNode - underlying tree node which this proxy should wrap.\n * @param allowAdditionalProperties - If true, setting of unexpected properties will be forwarded to the target object.\n * Otherwise setting of unexpected properties will error.\n * @param customTargetObject - Target object of the proxy.\n * If not provided an empty collection of the relevant type is used for the target and a separate object created to dispatch methods.\n * If provided, the customTargetObject will be used as both the dispatch object and the proxy target, and therefor must provide needed functionality depending on the schema kind.\n */\nexport function createNodeProxy<TSchema extends TreeNodeSchema>(\n\tflexNode: FlexTreeNode,\n\tallowAdditionalProperties: boolean,\n\ttargetObject?: object,\n): TypedNode<TSchema> {\n\tconst schema = flexNode.schema;\n\tif (schemaIsLeaf(schema)) {\n\t\treturn flexNode.value as TypedNode<TSchema>;\n\t}\n\tlet proxy: TypedNode<TSchema>;\n\tif (schemaIsMap(schema)) {\n\t\tproxy = createMapProxy(allowAdditionalProperties, targetObject) as TypedNode<TSchema>;\n\t} else if (schemaIsFieldNode(schema)) {\n\t\tproxy = createListProxy(allowAdditionalProperties, targetObject) as TypedNode<TSchema>;\n\t} else if (schemaIsObjectNode(schema)) {\n\t\tproxy = createObjectProxy(\n\t\t\tschema,\n\t\t\tallowAdditionalProperties,\n\t\t\ttargetObject,\n\t\t) as TypedNode<TSchema>;\n\t} else {\n\t\tfail(\"unrecognized node kind\");\n\t}\n\tsetFlexNode(proxy as TreeNode, flexNode);\n\treturn proxy;\n}\n\n/**\n * @param allowAdditionalProperties - If true, setting of unexpected properties will be forwarded to the target object.\n * Otherwise setting of unexpected properties will error.\n * @param customTargetObject - Target object of the proxy.\n * If not provided `{}` is used for the target.\n */\nexport function createObjectProxy<TSchema extends ObjectNodeSchema>(\n\tschema: TSchema,\n\tallowAdditionalProperties: boolean,\n\ttargetObject: object = {},\n): TreeObjectNode<TSchema> {\n\t// To satisfy 'deepEquals' level scrutiny, the target of the proxy must be an object with the same\n\t// prototype as an object literal '{}'. This is because 'deepEquals' uses 'Object.getPrototypeOf'\n\t// as a way to quickly reject objects with different prototype chains.\n\t//\n\t// (Note that the prototype of an object literal appears as '[Object: null prototype] {}', not because\n\t// the prototype is null, but because the prototype object itself has a null prototype.)\n\n\t// TODO: Although the target is an object literal, it's still worthwhile to try experimenting with\n\t// a dispatch object to see if it improves performance.\n\tconst proxy = new Proxy(targetObject, {\n\t\tget(target, key): unknown {\n\t\t\tconst field = getFlexNode(proxy).tryGetField(key as FieldKey);\n\t\t\tif (field !== undefined) {\n\t\t\t\treturn getProxyForField(field);\n\t\t\t}\n\n\t\t\t// Pass the proxy as the receiver here, so that any methods on the prototype receive `proxy` as `this`.\n\t\t\treturn Reflect.get(target, key, proxy);\n\t\t},\n\t\tset(target, key, value: InsertableContent) {\n\t\t\tconst flexNode = getFlexNode(proxy);\n\t\t\tconst fieldSchema = flexNode.schema.objectNodeFields.get(key as FieldKey);\n\n\t\t\tif (fieldSchema === undefined) {\n\t\t\t\treturn allowAdditionalProperties ? Reflect.set(target, key, value) : false;\n\t\t\t}\n\n\t\t\t// TODO: Is it safe to assume 'content' is a LazyObjectNode?\n\t\t\tassert(flexNode instanceof LazyObjectNode, 0x7e0 /* invalid content */);\n\t\t\tassert(typeof key === \"string\", 0x7e1 /* invalid key */);\n\t\t\tconst field = getBoxedField(flexNode, brand(key), fieldSchema);\n\n\t\t\tswitch (field.schema.kind) {\n\t\t\t\tcase FieldKinds.required:\n\t\t\t\tcase FieldKinds.optional: {\n\t\t\t\t\tconst typedField = field as\n\t\t\t\t\t\t| FlexTreeRequiredField<AllowedTypes>\n\t\t\t\t\t\t| FlexTreeOptionalField<AllowedTypes>;\n\n\t\t\t\t\tconst { content, hydrateProxies } = extractFactoryContent(value);\n\t\t\t\t\tconst cursor = cursorFromNodeData(\n\t\t\t\t\t\tcontent,\n\t\t\t\t\t\tflexNode.context.schema,\n\t\t\t\t\t\tfieldSchema.allowedTypeSet,\n\t\t\t\t\t);\n\t\t\t\t\tmodifyChildren(\n\t\t\t\t\t\tflexNode,\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\ttypedField.content = cursor;\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => hydrateProxies(typedField.boxedContent),\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tdefault:\n\t\t\t\t\tfail(\"invalid FieldKind\");\n\t\t\t}\n\n\t\t\treturn true;\n\t\t},\n\t\thas: (target, key) => {\n\t\t\treturn (\n\t\t\t\tschema.objectNodeFields.has(key as FieldKey) ||\n\t\t\t\t(allowAdditionalProperties ? Reflect.has(target, key) : false)\n\t\t\t);\n\t\t},\n\t\townKeys: (target) => {\n\t\t\treturn [\n\t\t\t\t...schema.objectNodeFields.keys(),\n\t\t\t\t...(allowAdditionalProperties ? Reflect.ownKeys(target) : []),\n\t\t\t];\n\t\t},\n\t\tgetOwnPropertyDescriptor: (target, key) => {\n\t\t\tconst field = getFlexNode(proxy).tryGetField(key as FieldKey);\n\n\t\t\tif (field === undefined) {\n\t\t\t\treturn allowAdditionalProperties\n\t\t\t\t\t? Reflect.getOwnPropertyDescriptor(target, key)\n\t\t\t\t\t: undefined;\n\t\t\t}\n\n\t\t\tconst p: PropertyDescriptor = {\n\t\t\t\tvalue: getProxyForField(field),\n\t\t\t\twritable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true, // Must be 'configurable' if property is absent from proxy target.\n\t\t\t};\n\n\t\t\treturn p;\n\t\t},\n\t}) as TreeObjectNode<TSchema>;\n\treturn proxy;\n}\n\n/**\n * Given a list proxy, returns its underlying LazySequence field.\n */\nexport const getSequenceField = <TTypes extends AllowedTypes>(list: TreeListNodeOld) =>\n\tgetFlexNode(list).content as FlexTreeSequenceField<TTypes>;\n\n// Used by 'insert*()' APIs to converts new content (expressed as a proxy union) to contextually\n// typed data prior to forwarding to 'LazySequence.insert*()'.\nfunction contextualizeInsertedListContent(\n\tinsertedAtIndex: number,\n\tcontent: readonly (InsertableContent | IterableTreeListContent<InsertableContent>)[],\n): ExtractedFactoryContent {\n\treturn extractFactoryContent(\n\t\tcontent.flatMap((c): InsertableContent[] =>\n\t\t\tc instanceof IterableTreeListContent ? Array.from(c) : [c],\n\t\t),\n\t\tinsertedAtIndex,\n\t);\n}\n\n// #region Create dispatch map for lists\n\n// TODO: Experiment with alternative dispatch methods to see if we can improve performance.\n\n/**\n * PropertyDescriptorMap used to build the prototype for our SharedListNode dispatch object.\n */\nexport const listPrototypeProperties: PropertyDescriptorMap = {\n\t// We manually add [Symbol.iterator] to the dispatch map rather than use '[fn.name] = fn' as\n\t// below when adding 'Array.prototype.*' properties to this map because 'Array.prototype[Symbol.iterator].name'\n\t// returns \"values\" (i.e., Symbol.iterator is an alias for the '.values()' function.)\n\t[Symbol.iterator]: {\n\t\tvalue: Array.prototype[Symbol.iterator],\n\t},\n\tat: {\n\t\tvalue(this: TreeListNodeOld, index: number): FlexTreeUnknownUnboxed | undefined {\n\t\t\tconst field = getSequenceField(this);\n\t\t\tconst val = field.boxedAt(index);\n\n\t\t\tif (val === undefined) {\n\t\t\t\treturn val;\n\t\t\t}\n\n\t\t\treturn getOrCreateNodeProxy(val) as FlexTreeUnknownUnboxed;\n\t\t},\n\t},\n\tinsertAt: {\n\t\tvalue(\n\t\t\tthis: TreeListNodeOld,\n\t\t\tindex: number,\n\t\t\t...value: readonly (InsertableContent | IterableTreeListContent<InsertableContent>)[]\n\t\t): void {\n\t\t\tconst sequenceField = getSequenceField(this);\n\n\t\t\tconst { content, hydrateProxies } = contextualizeInsertedListContent(index, value);\n\t\t\tconst cursor = cursorFromFieldData(\n\t\t\t\tcontent,\n\t\t\t\tsequenceField.context.schema,\n\t\t\t\tsequenceField.schema,\n\t\t\t);\n\n\t\t\tmodifyChildren(\n\t\t\t\tgetFlexNode(this),\n\t\t\t\t() => sequenceField.insertAt(index, cursor),\n\t\t\t\t(listFlexNode) => hydrateProxies(listFlexNode),\n\t\t\t);\n\t\t},\n\t},\n\tinsertAtStart: {\n\t\tvalue(\n\t\t\tthis: TreeListNodeOld,\n\t\t\t...value: readonly (InsertableContent | IterableTreeListContent<InsertableContent>)[]\n\t\t): void {\n\t\t\tconst sequenceField = getSequenceField(this);\n\n\t\t\tconst { content, hydrateProxies } = contextualizeInsertedListContent(0, value);\n\t\t\tconst cursor = cursorFromFieldData(\n\t\t\t\tcontent,\n\t\t\t\tsequenceField.context.schema,\n\t\t\t\tsequenceField.schema,\n\t\t\t);\n\n\t\t\tmodifyChildren(\n\t\t\t\tgetFlexNode(this),\n\t\t\t\t() => sequenceField.insertAtStart(cursor),\n\t\t\t\t(listFlexNode) => hydrateProxies(listFlexNode),\n\t\t\t);\n\t\t},\n\t},\n\tinsertAtEnd: {\n\t\tvalue(\n\t\t\tthis: TreeListNodeOld,\n\t\t\t...value: readonly (InsertableContent | IterableTreeListContent<InsertableContent>)[]\n\t\t): void {\n\t\t\tconst sequenceField = getSequenceField(this);\n\n\t\t\tconst { content, hydrateProxies } = contextualizeInsertedListContent(\n\t\t\t\tthis.length,\n\t\t\t\tvalue,\n\t\t\t);\n\t\t\tconst cursor = cursorFromFieldData(\n\t\t\t\tcontent,\n\t\t\t\tsequenceField.context.schema,\n\t\t\t\tsequenceField.schema,\n\t\t\t);\n\n\t\t\tmodifyChildren(\n\t\t\t\tgetFlexNode(this),\n\t\t\t\t() => sequenceField.insertAtEnd(cursor),\n\t\t\t\t(listFlexNode) => hydrateProxies(listFlexNode),\n\t\t\t);\n\t\t},\n\t},\n\tremoveAt: {\n\t\tvalue(this: TreeListNodeOld, index: number): void {\n\t\t\tgetSequenceField(this).removeAt(index);\n\t\t},\n\t},\n\tremoveRange: {\n\t\tvalue(this: TreeListNodeOld, start?: number, end?: number): void {\n\t\t\tgetSequenceField(this).removeRange(start, end);\n\t\t},\n\t},\n\tmoveToStart: {\n\t\tvalue(this: TreeListNodeOld, sourceIndex: number, source?: TreeListNodeOld): void {\n\t\t\tif (source !== undefined) {\n\t\t\t\tgetSequenceField(this).moveToStart(sourceIndex, getSequenceField(source));\n\t\t\t} else {\n\t\t\t\tgetSequenceField(this).moveToStart(sourceIndex);\n\t\t\t}\n\t\t},\n\t},\n\tmoveToEnd: {\n\t\tvalue(this: TreeListNodeOld, sourceIndex: number, source?: TreeListNodeOld): void {\n\t\t\tif (source !== undefined) {\n\t\t\t\tgetSequenceField(this).moveToEnd(sourceIndex, getSequenceField(source));\n\t\t\t} else {\n\t\t\t\tgetSequenceField(this).moveToEnd(sourceIndex);\n\t\t\t}\n\t\t},\n\t},\n\tmoveToIndex: {\n\t\tvalue(\n\t\t\tthis: TreeListNodeOld,\n\t\t\tindex: number,\n\t\t\tsourceIndex: number,\n\t\t\tsource?: TreeListNodeOld,\n\t\t): void {\n\t\t\tif (source !== undefined) {\n\t\t\t\tgetSequenceField(this).moveToIndex(index, sourceIndex, getSequenceField(source));\n\t\t\t} else {\n\t\t\t\tgetSequenceField(this).moveToIndex(index, sourceIndex);\n\t\t\t}\n\t\t},\n\t},\n\tmoveRangeToStart: {\n\t\tvalue(\n\t\t\tthis: TreeListNodeOld,\n\t\t\tsourceStart: number,\n\t\t\tsourceEnd: number,\n\t\t\tsource?: TreeListNodeOld,\n\t\t): void {\n\t\t\tif (source !== undefined) {\n\t\t\t\tgetSequenceField(this).moveRangeToStart(\n\t\t\t\t\tsourceStart,\n\t\t\t\t\tsourceEnd,\n\t\t\t\t\tgetSequenceField(source),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tgetSequenceField(this).moveRangeToStart(sourceStart, sourceEnd);\n\t\t\t}\n\t\t},\n\t},\n\tmoveRangeToEnd: {\n\t\tvalue(\n\t\t\tthis: TreeListNodeOld,\n\t\t\tsourceStart: number,\n\t\t\tsourceEnd: number,\n\t\t\tsource?: TreeListNodeOld,\n\t\t): void {\n\t\t\tif (source !== undefined) {\n\t\t\t\tgetSequenceField(this).moveRangeToEnd(\n\t\t\t\t\tsourceStart,\n\t\t\t\t\tsourceEnd,\n\t\t\t\t\tgetSequenceField(source),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tgetSequenceField(this).moveRangeToEnd(sourceStart, sourceEnd);\n\t\t\t}\n\t\t},\n\t},\n\tmoveRangeToIndex: {\n\t\tvalue(\n\t\t\tthis: TreeListNodeOld,\n\t\t\tindex: number,\n\t\t\tsourceStart: number,\n\t\t\tsourceEnd: number,\n\t\t\tsource?: TreeListNodeOld,\n\t\t): void {\n\t\t\tif (source !== undefined) {\n\t\t\t\tgetSequenceField(this).moveRangeToIndex(\n\t\t\t\t\tindex,\n\t\t\t\t\tsourceStart,\n\t\t\t\t\tsourceEnd,\n\t\t\t\t\tgetSequenceField(source),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tgetSequenceField(this).moveRangeToIndex(index, sourceStart, sourceEnd);\n\t\t\t}\n\t\t},\n\t},\n};\n\n/* eslint-disable @typescript-eslint/unbound-method */\n\n// For compatibility, we are initially implement 'readonly T[]' by applying the Array.prototype methods\n// to the list proxy. Over time, we should replace these with efficient implementations on LazySequence\n// to avoid re-entering the proxy as these methods access 'length' and the indexed properties.\n//\n// For brevity, the current implementation dynamically builds a property descriptor map from a list of\n// Array functions we want to re-expose via the proxy.\n\n// TODO: This assumes 'Function.name' matches the property name on 'Array.prototype', which may be\n// dubious across JS engines.\n[\n\tArray.prototype.concat,\n\t// Array.prototype.copyWithin,\n\tArray.prototype.entries,\n\tArray.prototype.every,\n\t// Array.prototype.fill,\n\tArray.prototype.filter,\n\tArray.prototype.find,\n\tArray.prototype.findIndex,\n\tArray.prototype.flat,\n\tArray.prototype.flatMap,\n\tArray.prototype.forEach,\n\tArray.prototype.includes,\n\tArray.prototype.indexOf,\n\tArray.prototype.join,\n\tArray.prototype.keys,\n\tArray.prototype.lastIndexOf,\n\t// Array.prototype.length,\n\tArray.prototype.map,\n\t// Array.prototype.pop,\n\t// Array.prototype.push,\n\tArray.prototype.reduce,\n\tArray.prototype.reduceRight,\n\t// Array.prototype.reverse,\n\t// Array.prototype.shift,\n\tArray.prototype.slice,\n\tArray.prototype.some,\n\t// Array.prototype.sort,\n\t// Array.prototype.splice,\n\tArray.prototype.toLocaleString,\n\tArray.prototype.toString,\n\t// Array.prototype.unshift,\n\tArray.prototype.values,\n].forEach((fn) => {\n\tlistPrototypeProperties[fn.name] = { value: fn };\n});\n\n/* eslint-enable @typescript-eslint/unbound-method */\n\nconst listPrototype = Object.create(Object.prototype, listPrototypeProperties);\n\n// #endregion\n\n/**\n * Helper to coerce property keys to integer indexes (or undefined if not an in-range integer).\n */\nfunction asIndex(key: string | symbol, length: number) {\n\tif (typeof key === \"string\") {\n\t\t// TODO: It may be worth a '0' <= ch <= '9' check before calling 'Number' to quickly\n\t\t// reject 'length' as an index, or even parsing integers ourselves.\n\t\tconst asNumber = Number(key);\n\n\t\t// TODO: See 'matrix/range.ts' for fast integer coercing + range check.\n\t\tif (Number.isInteger(asNumber)) {\n\t\t\treturn 0 <= asNumber && asNumber < length ? asNumber : undefined;\n\t\t}\n\t}\n}\n\n/**\n * @param allowAdditionalProperties - If true, setting of unexpected properties will be forwarded to the target object.\n * Otherwise setting of unexpected properties will error.\n * @param customTargetObject - Target object of the proxy.\n * If not provided `[]` is used for the target and a separate object created to dispatch list methods.\n * If provided, the customTargetObject will be used as both the dispatch object and the proxy target, and therefor must provide `length` and the list functionality from {@link listPrototype}.\n */\nfunction createListProxy<TTypes extends AllowedTypes>(\n\tallowAdditionalProperties: boolean,\n\tcustomTargetObject?: object,\n): TreeListNodeOld<TTypes> {\n\tconst targetObject = customTargetObject ?? [];\n\n\t// Create a 'dispatch' object that this Proxy forwards to instead of the proxy target, because we need\n\t// the proxy target to be a plain JS array (see comments below when we instantiate the Proxy).\n\t// Own properties on the dispatch object are surfaced as own properties of the proxy.\n\t// (e.g., 'length', which is defined below).\n\t//\n\t// Properties normally inherited from 'Array.prototype' are surfaced via the prototype chain.\n\tconst dispatch: object =\n\t\tcustomTargetObject ??\n\t\tObject.create(listPrototype, {\n\t\t\tlength: {\n\t\t\t\tget(this: TreeListNodeOld) {\n\t\t\t\t\treturn getSequenceField(this).length;\n\t\t\t\t},\n\t\t\t\tset() {},\n\t\t\t\tenumerable: false,\n\t\t\t\tconfigurable: false,\n\t\t\t},\n\t\t});\n\n\t// To satisfy 'deepEquals' level scrutiny, the target of the proxy must be an array literal in order\n\t// to pass 'Object.getPrototypeOf'. It also satisfies 'Array.isArray' and 'Object.prototype.toString'\n\t// requirements without use of Array[Symbol.species], which is potentially on a path ot deprecation.\n\tconst proxy: TreeListNodeOld<TTypes> = new Proxy<TreeListNodeOld<TTypes>>(targetObject as any, {\n\t\tget: (target, key) => {\n\t\t\tconst field = getSequenceField(proxy);\n\t\t\tconst maybeIndex = asIndex(key, field.length);\n\n\t\t\tif (maybeIndex === undefined) {\n\t\t\t\t// Pass the proxy as the receiver here, so that any methods on\n\t\t\t\t// the prototype receive `proxy` as `this`.\n\t\t\t\treturn Reflect.get(dispatch, key, proxy) as unknown;\n\t\t\t}\n\n\t\t\tconst value = field.boxedAt(maybeIndex);\n\n\t\t\tif (value === undefined) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\t// TODO: Ideally, we would return leaves without first boxing them. However, this is not\n\t\t\t// as simple as calling '.content' since this skips the node and returns the FieldNode's\n\t\t\t// inner field.\n\t\t\treturn getOrCreateNodeProxy(value);\n\t\t},\n\t\tset: (target, key, newValue, receiver) => {\n\t\t\t// 'Symbol.isConcatSpreadable' may be set on an Array instance to modify the behavior of\n\t\t\t// the concat method. We allow this property to be added to the dispatch object.\n\t\t\tif (key === Symbol.isConcatSpreadable) {\n\t\t\t\treturn Reflect.set(dispatch, key, newValue, proxy);\n\t\t\t}\n\n\t\t\tconst field = getSequenceField(proxy);\n\t\t\tconst maybeIndex = asIndex(key, field.length);\n\t\t\tif (maybeIndex !== undefined) {\n\t\t\t\t// For MVP, we otherwise disallow setting properties (mutation is only available via the list mutation APIs).\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn allowAdditionalProperties ? Reflect.set(target, key, newValue) : false;\n\t\t},\n\t\thas: (target, key) => {\n\t\t\tconst field = getSequenceField(proxy);\n\t\t\tconst maybeIndex = asIndex(key, field.length);\n\t\t\treturn maybeIndex !== undefined || Reflect.has(dispatch, key);\n\t\t},\n\t\townKeys: (target) => {\n\t\t\tconst field = getSequenceField(proxy);\n\n\t\t\t// TODO: Would a lazy iterator to produce the indexes work / be more efficient?\n\t\t\t// TODO: Need to surface 'Symbol.isConcatSpreadable' as an own key.\n\t\t\treturn Array.from({ length: field.length }, (_, index) => `${index}`).concat(\"length\");\n\t\t},\n\t\tgetOwnPropertyDescriptor: (target, key) => {\n\t\t\tconst field = getSequenceField(proxy);\n\t\t\tconst maybeIndex = asIndex(key, field.length);\n\t\t\tif (maybeIndex !== undefined) {\n\t\t\t\tconst val = field.boxedAt(maybeIndex);\n\t\t\t\t// To satisfy 'deepEquals' level scrutiny, the property descriptor for indexed properties must\n\t\t\t\t// be a simple value property (as opposed to using getter) and declared writable/enumerable/configurable.\n\t\t\t\treturn {\n\t\t\t\t\t// TODO: Ideally, we would return leaves without first boxing them. However, this is not\n\t\t\t\t\t// as simple as calling '.at' since this skips the node and returns the FieldNode's\n\t\t\t\t\t// inner field.\n\t\t\t\t\tvalue: val === undefined ? val : getOrCreateNodeProxy(val),\n\t\t\t\t\twritable: true, // For MVP, disallow setting indexed properties.\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t};\n\t\t\t} else if (key === \"length\") {\n\t\t\t\t// To satisfy 'deepEquals' level scrutiny, the property descriptor for 'length' must be a simple\n\t\t\t\t// value property (as opposed to using getter) and be declared writable / non-configurable.\n\t\t\t\treturn {\n\t\t\t\t\tvalue: getSequenceField(proxy).length,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tenumerable: false,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn Reflect.getOwnPropertyDescriptor(dispatch, key);\n\t\t},\n\t});\n\treturn proxy;\n}\n\n// #region Create dispatch map for maps\n\nexport const mapStaticDispatchMap: PropertyDescriptorMap = {\n\t[Symbol.iterator]: {\n\t\tvalue(this: TreeMapNode) {\n\t\t\treturn this.entries();\n\t\t},\n\t},\n\tdelete: {\n\t\tvalue(this: TreeMapNode, key: string): void {\n\t\t\tconst node = getFlexNode(this);\n\t\t\tnode.delete(key);\n\t\t},\n\t},\n\tentries: {\n\t\t*value(this: TreeMapNode): IterableIterator<[string, unknown]> {\n\t\t\tconst node = getFlexNode(this);\n\t\t\tfor (const key of node.keys()) {\n\t\t\t\tyield [key, getProxyForField(node.getBoxed(key))];\n\t\t\t}\n\t\t},\n\t},\n\tget: {\n\t\tvalue(this: TreeMapNode, key: string): unknown {\n\t\t\tconst node = getFlexNode(this);\n\t\t\tconst field = node.getBoxed(key);\n\t\t\treturn getProxyForField(field);\n\t\t},\n\t},\n\thas: {\n\t\tvalue(this: TreeMapNode, key: string): boolean {\n\t\t\tconst node = getFlexNode(this);\n\t\t\treturn node.has(key);\n\t\t},\n\t},\n\tkeys: {\n\t\tvalue(this: TreeMapNode): IterableIterator<string> {\n\t\t\tconst node = getFlexNode(this);\n\t\t\treturn node.keys();\n\t\t},\n\t},\n\tset: {\n\t\tvalue(\n\t\t\tthis: TreeMapNode,\n\t\t\tkey: string,\n\t\t\tvalue: InsertableTreeNodeUnion<AllowedTypes>,\n\t\t): TreeMapNode {\n\t\t\tconst node = getFlexNode(this);\n\n\t\t\tconst { content, hydrateProxies } = extractFactoryContent(value as FactoryContent);\n\t\t\tconst cursor = cursorFromNodeData(\n\t\t\t\tcontent,\n\t\t\t\tnode.context.schema,\n\t\t\t\tnode.schema.mapFields.allowedTypeSet,\n\t\t\t);\n\t\t\tmodifyChildren(\n\t\t\t\tnode,\n\t\t\t\t(mapNode) => mapNode.set(key, cursor),\n\t\t\t\t(mapNode) => hydrateProxies(getMapChildNode(mapNode, key)),\n\t\t\t);\n\t\t\treturn this;\n\t\t},\n\t},\n\tsize: {\n\t\tget(this: TreeMapNode) {\n\t\t\treturn getFlexNode(this).size;\n\t\t},\n\t},\n\tvalues: {\n\t\t*value(this: TreeMapNode): IterableIterator<unknown> {\n\t\t\tfor (const [, value] of this.entries()) {\n\t\t\t\tyield value;\n\t\t\t}\n\t\t},\n\t},\n\t// TODO: add `clear` once we have established merge semantics for it.\n};\n\nconst mapPrototype = Object.create(Object.prototype, mapStaticDispatchMap);\n\n// #endregion\n\n/**\n * @param allowAdditionalProperties - If true, setting of unexpected properties will be forwarded to the target object.\n * Otherwise setting of unexpected properties will error.\n * @param customTargetObject - Target object of the proxy.\n * If not provided `new Map()` is used for the target and a separate object created to dispatch map methods.\n * If provided, the customTargetObject will be used as both the dispatch object and the proxy target, and therefor must provide the map functionality from {@link mapPrototype}.\n */\nfunction createMapProxy<TSchema extends MapNodeSchema>(\n\tallowAdditionalProperties: boolean,\n\tcustomTargetObject?: object,\n): TreeMapNode<TSchema> {\n\t// Create a 'dispatch' object that this Proxy forwards to instead of the proxy target.\n\tconst dispatch: object =\n\t\tcustomTargetObject ??\n\t\tObject.create(mapPrototype, {\n\t\t\t// Empty - JavaScript Maps do not expose any \"own\" properties.\n\t\t});\n\tconst targetObject: object =\n\t\tcustomTargetObject ?? new Map<string, TreeField<TSchema[\"info\"], \"notEmpty\">>();\n\n\t// TODO: Although the target is an object literal, it's still worthwhile to try experimenting with\n\t// a dispatch object to see if it improves performance.\n\tconst proxy = new Proxy<TreeMapNode<TSchema>>(\n\t\ttargetObject as Map<string, TreeField<TSchema[\"info\"], \"notEmpty\">>,\n\t\t{\n\t\t\tget: (target, key, receiver): unknown => {\n\t\t\t\t// Pass the proxy as the receiver here, so that any methods on the prototype receive `proxy` as `this`.\n\t\t\t\treturn Reflect.get(dispatch, key, proxy);\n\t\t\t},\n\t\t\tgetOwnPropertyDescriptor: (target, key): PropertyDescriptor | undefined => {\n\t\t\t\treturn Reflect.getOwnPropertyDescriptor(dispatch, key);\n\t\t\t},\n\t\t\thas: (target, key) => {\n\t\t\t\treturn Reflect.has(dispatch, key);\n\t\t\t},\n\t\t\tset: (target, key, newValue): boolean => {\n\t\t\t\treturn allowAdditionalProperties ? Reflect.set(dispatch, key, newValue) : false;\n\t\t\t},\n\t\t\townKeys: (target) => {\n\t\t\t\t// All of Map's properties are inherited via its prototype, so there is nothing to return here,\n\t\t\t\treturn [];\n\t\t\t},\n\t\t},\n\t);\n\treturn proxy;\n}\n\n/**\n * Create a proxy to a {@link TreeObjectNode} that is backed by a raw object node (see {@link createRawNode}).\n * @param schema - the schema of the object node\n * @param content - the content to be stored in the raw node.\n * A copy of content is stored, the input `content` is not modified and can be safely reused in another call to {@link createRawObjectProxy}.\n * @param allowAdditionalProperties - If true, setting of unexpected properties will be forwarded to the target object.\n * Otherwise setting of unexpected properties will error.\n * @param customTargetObject - Target object of the proxy.\n * If not provided `{}` is used for the target.\n * @remarks\n * Because this proxy is backed by a raw node, it has the same limitations as the node created by {@link createRawNode}.\n * Most of its properties and methods will error if read/called.\n */\nexport function createRawNodeProxy<TSchema extends ObjectNodeSchema>(\n\tschema: TSchema,\n\tcontent: InsertableTypedNode<TSchema>,\n\tallowAdditionalProperties: boolean,\n\ttarget?: object,\n): Unhydrated<TreeObjectNode<TSchema>>;\nexport function createRawNodeProxy<TSchema extends FieldNodeSchema>(\n\tschema: TSchema,\n\tcontent: InsertableTypedNode<TSchema>,\n\tallowAdditionalProperties: boolean,\n\ttarget?: object,\n): Unhydrated<TreeListNodeOld<TSchema[\"info\"][\"allowedTypes\"]>>;\nexport function createRawNodeProxy<TSchema extends MapNodeSchema>(\n\tschema: TSchema,\n\tcontent: InsertableTypedNode<TSchema>,\n\tallowAdditionalProperties: boolean,\n\ttarget?: object,\n): Unhydrated<TreeMapNode<TSchema>>;\nexport function createRawNodeProxy<TSchema extends TreeNodeSchema>(\n\tschema: TSchema,\n\tcontent: InsertableTypedNode<TSchema>,\n\tallowAdditionalProperties: boolean,\n\ttarget?: object,\n): Unhydrated<TreeNode> {\n\t// Shallow copy the content and then add the type name symbol to it.\n\tlet flexNode: RawTreeNode<TSchema, InsertableTypedNode<TreeNodeSchema>>;\n\tlet proxy: TreeNode;\n\tif (schema instanceof ObjectNodeSchema) {\n\t\tconst contentCopy = copyContent(schema.name, content as InsertableTypedNode<typeof schema>);\n\t\tflexNode = createRawNode(schema, contentCopy);\n\t\tproxy = createObjectProxy(schema, allowAdditionalProperties, target);\n\t} else if (schema instanceof FieldNodeSchema) {\n\t\t// simple-tree uses field nodes exclusively to represent lists\n\t\tconst contentCopy = copyContent(schema.name, content as InsertableTypedNode<typeof schema>);\n\t\tflexNode = createRawNode(schema, contentCopy);\n\t\tproxy = createListProxy(allowAdditionalProperties, target);\n\t} else if (schema instanceof MapNodeSchema) {\n\t\tconst contentCopy = copyContent(schema.name, content as InsertableTypedNode<typeof schema>);\n\t\tflexNode = createRawNode(schema, contentCopy);\n\t\tproxy = createMapProxy(allowAdditionalProperties, target);\n\t} else {\n\t\tfail(\"Unrecognized content schema\");\n\t}\n\n\treturn setFlexNode(proxy, flexNode);\n}\n\nfunction copyContent<T extends object>(typeName: TreeNodeSchemaIdentifier, content: T): T {\n\tconst copy =\n\t\tcontent instanceof Map\n\t\t\t? (new Map(content) as T)\n\t\t\t: Array.isArray(content)\n\t\t\t? (content.slice() as T)\n\t\t\t: { ...content };\n\n\treturn Object.defineProperty(copy, typeNameSymbol, { value: typeName });\n}\n\ntype ProxyHydrator = (flexNode: FlexTreeNode | undefined) => void;\nconst noopHydrator: ProxyHydrator = () => {};\n\n/** The result returned by {@link extractFactoryContent} and its related helpers. */\ninterface ExtractedFactoryContent<out T = FactoryContent> {\n\t/** The content with the factory subtrees replaced. */\n\treadonly content: T;\n\t/**\n\t * A function which walks all factory-created object that underwent replacement/extraction.\n\t * Before hydration, those objects are unusable (see {@link createRawObjectProxy}).\n\t * However, after the content is fully inserted into the tree the `hydrateProxies` function may be invoked in order to update the contents of these objects such that they become a mirror of the content in the tree.\n\t * This must be done before any calls to {@link getOrCreateNodeProxy} so that the \"edit node to proxy\" mapping is correctly updated (see {@link setFlexNode}).\n\t */\n\treadonly hydrateProxies: ProxyHydrator;\n}\n\n/**\n * Given a content tree that is to be inserted into the shared tree, replace all subtrees that were created by factories\n * (via {@link SharedTreeObjectFactory.create}) with the content that was passed to those factories.\n * @param content - the content being inserted which may be, and/or may contain, factory-created content\n * @param insertedAtIndex - if the content being inserted is list content, this must be the index in the list at which the content is being inserted\n * @returns the result of the content replacement and a {@link ExtractedFactoryContent.hydrateProxies} function which must be invoked if present.\n * @remarks\n * This functions works recursively.\n * Factory-created objects that are nested inside of the content passed to other factory-created objects, and so on, will be in-lined.\n * This function also adds the hidden {@link typeNameSymbol} of each object schema to the output.\n * @example\n * ```ts\n * const x = foo.create({\n * a: 3, b: bar.create({\n * c: [baz.create({ d: 5 })]\n * })\n * });\n * const y = extractFactoryContent(x);\n * y === {\n * [typeNameSymbol]: \"foo\", a: 3, b: {\n * [typeNameSymbol]: \"bar\", c: [{ [typeNameSymbol]: \"baz\", d: 5 }]\n * }\n * }\n * ```\n */\nexport function extractFactoryContent(\n\tinput: InsertableContent,\n\tinsertedAtIndex = 0,\n): ExtractedFactoryContent {\n\tlet content: FactoryContent;\n\tlet fromFactory = false;\n\tconst rawFlexNode = tryGetFlexNode(input);\n\tif (rawFlexNode !== undefined) {\n\t\tconst factoryContent = extractRawNodeContent(rawFlexNode);\n\t\tif (factoryContent === undefined) {\n\t\t\t// We were passed a proxy, but that proxy doesn't have any raw content.\n\t\t\tthrow new Error(\"Cannot insert a node that is already in the tree\");\n\t\t}\n\t\tcontent = factoryContent;\n\t\tfromFactory = true;\n\t} else {\n\t\tcontent = input as FactoryContent;\n\t}\n\n\tassert(\n\t\t!(content instanceof TreeNode),\n\t\t0x844 /* Unhydrated insertion content should have FlexNode */,\n\t);\n\n\tlet type: NodeKind;\n\tlet extractedContent: ExtractedFactoryContent;\n\tif (isReadonlyArray(content)) {\n\t\ttype = NodeKind.Array;\n\t\textractedContent = extractContentArray(\n\t\t\tcontent as readonly FactoryContent[],\n\t\t\tinsertedAtIndex,\n\t\t);\n\t} else if (content instanceof Map) {\n\t\ttype = NodeKind.Map;\n\t\textractedContent = extractContentMap(content as ReadonlyMap<string, FactoryContent>);\n\t} else if (typeof content === \"object\" && content !== null && !isFluidHandle(content)) {\n\t\ttype = NodeKind.Object;\n\t\textractedContent = extractContentObject(content as object);\n\t} else {\n\t\textractedContent = { content, hydrateProxies: noopHydrator };\n\t\ttype = NodeKind.Leaf;\n\t}\n\n\tif (input instanceof TreeNode) {\n\t\tconst kindFromSchema = getNodeKind(input);\n\t\tassert(kindFromSchema === type, 0x845 /* kind of data should match kind of schema */);\n\t}\n\n\tif (fromFactory) {\n\t\treturn {\n\t\t\tcontent: extractedContent.content,\n\t\t\thydrateProxies: (flexNode) => {\n\t\t\t\t// This makes the input proxy usable and updates the proxy cache\n\t\t\t\tsetFlexNode(input as TreeNode, flexNode ?? fail(\"Expected edit node\"));\n\t\t\t\textractedContent.hydrateProxies(flexNode);\n\t\t\t},\n\t\t};\n\t}\n\n\treturn extractedContent;\n}\n\n/**\n * @param insertedAtIndex - Supply this if the extracted array content will be inserted into an existing list in the tree.\n */\nfunction extractContentArray(\n\tinput: readonly FactoryContent[],\n\tinsertedAtIndex: number,\n): ExtractedFactoryContent {\n\tconst output: FactoryContent[] = [];\n\tif (typeNameSymbol in input) {\n\t\tObject.defineProperty(output, typeNameSymbol, { value: input[typeNameSymbol] });\n\t}\n\tconst hydrators: [index: number, hydrate: ProxyHydrator][] = [];\n\tfor (let i = 0; i < input.length; i++) {\n\t\tconst { content: childContent, hydrateProxies } = extractFactoryContent(input[i]);\n\t\toutput.push(childContent);\n\t\t// The conditional here is an optimization so that primitive items don't incur boxed reads for hydration\n\t\tif (hydrateProxies !== noopHydrator) {\n\t\t\thydrators.push([i, hydrateProxies]);\n\t\t}\n\t}\n\treturn {\n\t\tcontent: output,\n\t\thydrateProxies: (flexNode: FlexTreeNode | undefined) => {\n\t\t\tassert(\n\t\t\t\tflexNode !== undefined,\n\t\t\t\t0x7f6 /* Expected edit node to be defined when hydrating list */,\n\t\t\t);\n\t\t\tassert(\n\t\t\t\tschemaIsFieldNode(flexNode.schema),\n\t\t\t\t0x7f7 /* Expected field node when hydrating list */,\n\t\t\t);\n\t\t\thydrators.forEach(([i, hydrate]) =>\n\t\t\t\thydrate(\n\t\t\t\t\tgetListChildNode(\n\t\t\t\t\t\tflexNode as FlexTreeFieldNode<FieldNodeSchema>,\n\t\t\t\t\t\tinsertedAtIndex + i,\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t);\n\t\t},\n\t};\n}\n\nfunction extractContentMap(input: ReadonlyMap<string, FactoryContent>): ExtractedFactoryContent {\n\tconst output = new Map();\n\tif (typeNameSymbol in input) {\n\t\tObject.defineProperty(output, typeNameSymbol, { value: input[typeNameSymbol] });\n\t}\n\tconst hydrators: [key: string, hydrate: ProxyHydrator][] = [];\n\tfor (const [key, value] of input) {\n\t\tconst { content: childContent, hydrateProxies } = extractFactoryContent(value);\n\t\toutput.set(key, childContent);\n\t\t// The conditional here is an optimization so that primitive values don't incur boxed reads for hydration\n\t\tif (hydrateProxies !== noopHydrator) {\n\t\t\thydrators.push([key, hydrateProxies]);\n\t\t}\n\t}\n\treturn {\n\t\tcontent: output,\n\t\thydrateProxies: (flexNode: FlexTreeNode | undefined) => {\n\t\t\tassert(\n\t\t\t\tflexNode !== undefined,\n\t\t\t\t0x7f8 /* Expected edit node to be defined when hydrating map */,\n\t\t\t);\n\t\t\tassert(schemaIsMap(flexNode.schema), 0x7f9 /* Expected map node when hydrating map */);\n\t\t\thydrators.forEach(([key, hydrate]) =>\n\t\t\t\thydrate(getMapChildNode(flexNode as FlexTreeMapNode<MapNodeSchema>, key)),\n\t\t\t);\n\t\t},\n\t};\n}\n\nfunction extractContentObject(input: {\n\treadonly [P in string]?: FactoryContent;\n}): ExtractedFactoryContent {\n\tconst output: Record<string, FactoryContent> = {};\n\tif (typeNameSymbol in input) {\n\t\tObject.defineProperty(output, typeNameSymbol, { value: input[typeNameSymbol] });\n\t}\n\tconst hydrators: [key: string, hydrate: ProxyHydrator][] = [];\n\tfor (const [key, value] of Object.entries(input)) {\n\t\t// Treat undefined fields and missing fields the same.\n\t\t// Generally tree does not require explicit undefined values at runtime despite some of the schema aware type checking currently requiring it.\n\t\tif (value !== undefined) {\n\t\t\tconst { content: childContent, hydrateProxies } = extractFactoryContent(value);\n\t\t\toutput[key] = childContent;\n\t\t\thydrators.push([key, hydrateProxies]);\n\t\t}\n\t}\n\n\treturn {\n\t\tcontent: output,\n\t\thydrateProxies: (flexNode: FlexTreeNode | undefined) => {\n\t\t\tassert(\n\t\t\t\tflexNode !== undefined,\n\t\t\t\t0x7fa /* Expected edit node to be defined when hydrating object */,\n\t\t\t);\n\t\t\tassert(\n\t\t\t\tschemaIsObjectNode(flexNode.schema),\n\t\t\t\t0x7fb /* Expected object node when hydrating object content */,\n\t\t\t);\n\t\t\thydrators.forEach(([key, hydrate]) =>\n\t\t\t\thydrate(getObjectChildNode(flexNode as FlexTreeObjectNode, key)),\n\t\t\t);\n\t\t},\n\t};\n}\n\n/**\n * Content which can be used to build a node.\n * @remarks\n * Can contain unhydrated nodes, but can not be an unhydrated node at the root.\n */\nexport type FactoryContent =\n\t| IFluidHandle\n\t| string\n\t| number\n\t| boolean\n\t// eslint-disable-next-line @rushstack/no-new-null\n\t| null\n\t| ReadonlyMap<string, InsertableContent>\n\t| readonly InsertableContent[]\n\t| {\n\t\t\treadonly [P in string]?: InsertableContent;\n\t };\n\n/**\n * Content which can be inserted into a tree.\n */\nexport type InsertableContent = Unhydrated<TreeNode> | FactoryContent;\n\nfunction getListChildNode(\n\tlistNode: FlexTreeFieldNode<FieldNodeSchema>,\n\tindex: number,\n): FlexTreeNode | undefined {\n\tconst field = listNode.tryGetField(EmptyKey);\n\tassert(\n\t\tfield?.schema.kind === FieldKinds.sequence,\n\t\t0x7fc /* Expected sequence field when hydrating list */,\n\t);\n\treturn (field as FlexTreeSequenceField<AllowedTypes>).boxedAt(index);\n}\n\nfunction getMapChildNode(\n\tmapNode: FlexTreeMapNode<MapNodeSchema>,\n\tkey: string,\n): FlexTreeNode | undefined {\n\tconst field = mapNode.getBoxed(key);\n\tassert(\n\t\tfield.schema.kind === FieldKinds.optional,\n\t\t0x7fd /* Sequence field kind is unsupported as map values */,\n\t);\n\treturn (field as FlexTreeOptionalField<AllowedTypes>).boxedContent;\n}\n\nfunction getObjectChildNode(objectNode: FlexTreeObjectNode, key: string): FlexTreeNode | undefined {\n\tconst field =\n\t\tobjectNode.tryGetField(brand(key)) ?? fail(\"Expected a field for inserted content\");\n\tassert(\n\t\tfield.schema.kind === FieldKinds.required || field.schema.kind === FieldKinds.optional,\n\t\t0x7fe /* Expected required or optional field kind */,\n\t);\n\treturn (field as FlexTreeRequiredField<AllowedTypes> | FlexTreeOptionalField<AllowedTypes>)\n\t\t.boxedContent;\n}\n\n/**\n * Run the given function `modify`.\n * If the function results in any changes to the direct children of `parent`, `after` will be run immediately thereafter.\n */\nfunction modifyChildren<T extends FlexTreeNode>(\n\tparent: T,\n\tmodify: (parent: T) => void,\n\tafter?: (parent: T) => void,\n): void {\n\tconst offNextChange = parent[onNextChange](() => after?.(parent));\n\tmodify(parent);\n\t// `onNextChange` unsubscribes itself after firing once. However, there is no guarantee that it will fire.\n\t// For example, the `modify` function may result in a no-op that doesn't trigger an edit (e.g. inserting `[]` into a list).\n\t// In those cases, we must unsubscribe manually here. If `modify` was not a no-op, it does no harm to call this function anyway.\n\toffNextChange();\n}\n\n// TODO: Replace this with calls to `Tree.schema(node).kind` when dependency cycles are no longer a problem.\nfunction getNodeKind(node: TreeNode): NodeKind {\n\treturn (\n\t\tgetClassSchema(getFlexNode(node).schema)?.kind ??\n\t\tfail(\"NodeBase should always have class schema\")\n\t);\n}\n"]}
@@ -0,0 +1,96 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ import { FieldKey, TreeNodeSchemaIdentifier } from "../core";
6
+ import { EditableTreeEvents, FieldNodeSchema, FlexTreeContext, FlexTreeField, FlexTreeNode, FlexTreeTypedNode, FlexTreeEntityKind, FlexTreeMapNode, FlexTreeObjectNode, FlexTreeTypedField, FlexTreeUnboxField, FlexibleFieldContent, boxedIterator, flexTreeMarker, onNextChange, LocalNodeKey, MapNodeSchema, ObjectNodeSchema, TreeNodeSchema, TreeStatus, FlexTreeFieldNode } from "../feature-libraries";
7
+ import { InsertableTypedNode } from "./insertable";
8
+ /** Stores the content of the raw node, i.e. the data that was passed to the factory */
9
+ declare const nodeContent: unique symbol;
10
+ interface HasNodeContent<T> {
11
+ [nodeContent]: T;
12
+ }
13
+ /**
14
+ * Retrieve the content of a raw object node created via {@link createRawNode}.
15
+ * @remarks
16
+ * Raw nodes should only ever be processed as input once.
17
+ * Therefore, this extraction removes the content from the node and will error if called twice on the same node.
18
+ */
19
+ export declare function extractRawNodeContent<TSchema extends MapNodeSchema, TContent extends InsertableTypedNode<TSchema>>(node: RawMapNode<TSchema, TContent>): TContent;
20
+ export declare function extractRawNodeContent<TSchema extends FieldNodeSchema, TContent extends InsertableTypedNode<TSchema>>(node: RawFieldNode<TSchema, TContent>): TContent;
21
+ export declare function extractRawNodeContent<TSchema extends ObjectNodeSchema, TContent extends object>(node: RawObjectNode<TSchema, TContent>): TContent;
22
+ export declare function extractRawNodeContent(node: FlexTreeNode): object | undefined;
23
+ /**
24
+ * Creates a node that pretends to satisfy the given schema while wrapping the given node content.
25
+ * Retrieve the node content via {@link extractRawNodeContent}.
26
+ *
27
+ * @remarks This is useful for creating "raw" nodes: nodes which capture data about a pending insertion but are not yet inserted.
28
+ * These raw nodes can be then used on the right-hand side of an assignment (via `=`) to the tree.
29
+ * However, many of their properties and methods are currently unimplemented and will error if accessed.
30
+ */
31
+ export declare function createRawNode<TSchema extends MapNodeSchema, TContent extends InsertableTypedNode<TSchema>>(schema: TSchema, content: TContent): RawMapNode<TSchema, TContent>;
32
+ export declare function createRawNode<TSchema extends FieldNodeSchema, TContent extends InsertableTypedNode<TSchema>>(schema: TSchema, content: TContent): RawFieldNode<TSchema, TContent>;
33
+ export declare function createRawNode<TSchema extends ObjectNodeSchema, TContent extends InsertableTypedNode<TSchema>>(schema: TSchema, content: TContent): RawObjectNode<TSchema, TContent>;
34
+ /**
35
+ * The base implementation of a node created by {@link createRawNode}.
36
+ */
37
+ export declare abstract class RawTreeNode<TSchema extends TreeNodeSchema, TContent> implements FlexTreeNode, HasNodeContent<TContent> {
38
+ readonly schema: TSchema;
39
+ readonly [flexTreeMarker]: FlexTreeEntityKind.Node;
40
+ readonly [nodeContent]: TContent;
41
+ readonly type: TreeNodeSchemaIdentifier;
42
+ constructor(schema: TSchema, content: TContent);
43
+ get context(): FlexTreeContext;
44
+ get parentField(): {
45
+ parent: FlexTreeField;
46
+ index: number;
47
+ };
48
+ is<TSchemaInner extends TreeNodeSchema>(schema: TSchemaInner): this is FlexTreeTypedNode<TSchemaInner>;
49
+ tryGetField(key: FieldKey): FlexTreeField | undefined;
50
+ [boxedIterator](): IterableIterator<FlexTreeField>;
51
+ treeStatus(): TreeStatus;
52
+ value: undefined;
53
+ on<K extends keyof EditableTreeEvents>(eventName: K, listener: EditableTreeEvents[K]): () => void;
54
+ [onNextChange](fn: (node: FlexTreeNode) => void): () => void;
55
+ }
56
+ /**
57
+ * The implementation of an object node created by {@link createRawNode}.
58
+ */
59
+ export declare class RawObjectNode<TSchema extends ObjectNodeSchema, TContent extends object> extends RawTreeNode<TSchema, TContent> implements FlexTreeObjectNode {
60
+ get localNodeKey(): LocalNodeKey | undefined;
61
+ }
62
+ /**
63
+ * The implementation of a map node created by {@link createRawNode}.
64
+ */
65
+ export declare class RawMapNode<TSchema extends MapNodeSchema, TContent extends InsertableTypedNode<TSchema>> extends RawTreeNode<TSchema, TContent> implements FlexTreeMapNode<TSchema> {
66
+ get size(): number;
67
+ has(key: string): boolean;
68
+ get(key: string): FlexTreeUnboxField<TSchema["info"]>;
69
+ getBoxed(key: string): FlexTreeTypedField<TSchema["info"]>;
70
+ keys(): IterableIterator<FieldKey>;
71
+ values(): IterableIterator<FlexTreeUnboxField<TSchema["info"], "notEmpty">>;
72
+ entries(): IterableIterator<[
73
+ FieldKey,
74
+ FlexTreeUnboxField<TSchema["info"], "notEmpty">
75
+ ]>;
76
+ forEach(callbackFn: (value: FlexTreeUnboxField<TSchema["info"], "notEmpty">, key: FieldKey, map: FlexTreeMapNode<TSchema>) => void, thisArg?: any): void;
77
+ set(key: string, value: FlexibleFieldContent<TSchema["info"]> | undefined): void;
78
+ delete(key: string): void;
79
+ get asObject(): {
80
+ readonly [P in FieldKey]?: FlexTreeUnboxField<TSchema["info"], "notEmpty">;
81
+ };
82
+ [Symbol.iterator](): IterableIterator<[
83
+ FieldKey,
84
+ FlexTreeUnboxField<TSchema["info"], "notEmpty">
85
+ ]>;
86
+ [boxedIterator](): IterableIterator<FlexTreeTypedField<TSchema["info"]>>;
87
+ }
88
+ /**
89
+ * The implementation of a field node created by {@link createRawNode}.
90
+ */
91
+ export declare class RawFieldNode<TSchema extends FieldNodeSchema, TContent extends InsertableTypedNode<TSchema>> extends RawTreeNode<TSchema, TContent> implements FlexTreeFieldNode<TSchema> {
92
+ get content(): FlexTreeUnboxField<TSchema["info"]>;
93
+ get boxedContent(): FlexTreeTypedField<TSchema["info"]>;
94
+ }
95
+ export {};
96
+ //# sourceMappingURL=rawNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rawNode.d.ts","sourceRoot":"","sources":["../../src/simple-tree/rawNode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,132 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ var _a;
6
+ import { FieldNodeSchema, FlexTreeEntityKind, boxedIterator, flexTreeMarker, onNextChange, MapNodeSchema, ObjectNodeSchema, } from "../feature-libraries";
7
+ import { fail } from "../util";
8
+ /** Stores the content of the raw node, i.e. the data that was passed to the factory */
9
+ const nodeContent = Symbol();
10
+ export function extractRawNodeContent(node) {
11
+ if (node instanceof RawTreeNode) {
12
+ const content = node[nodeContent] ?? fail("Node content may only be extracted once");
13
+ Reflect.deleteProperty(node, nodeContent);
14
+ return content;
15
+ }
16
+ return undefined;
17
+ }
18
+ export function createRawNode(schema, content) {
19
+ if (schema instanceof ObjectNodeSchema) {
20
+ return new RawObjectNode(schema, content);
21
+ }
22
+ if (schema instanceof MapNodeSchema) {
23
+ return new RawMapNode(schema, content);
24
+ }
25
+ if (schema instanceof FieldNodeSchema) {
26
+ return new RawFieldNode(schema, content);
27
+ }
28
+ fail("Unrecognized schema");
29
+ }
30
+ /**
31
+ * The base implementation of a node created by {@link createRawNode}.
32
+ */
33
+ export class RawTreeNode {
34
+ constructor(schema, content) {
35
+ this.schema = schema;
36
+ this[_a] = FlexTreeEntityKind.Node;
37
+ this.type = schema.name;
38
+ this[nodeContent] = content;
39
+ }
40
+ get context() {
41
+ throw rawError("Getting context");
42
+ }
43
+ get parentField() {
44
+ throw rawError("Accessing parentage");
45
+ }
46
+ is(schema) {
47
+ return schema === this.schema;
48
+ }
49
+ tryGetField(key) {
50
+ throw rawError("Reading fields");
51
+ }
52
+ [(_a = flexTreeMarker, boxedIterator)]() {
53
+ throw rawError("Boxed iteration");
54
+ }
55
+ treeStatus() {
56
+ // TODO: We could add a new TreeStatus for "raw" nodes.
57
+ throw rawError("Status querying");
58
+ }
59
+ on(eventName, listener) {
60
+ throw rawError("Event registration");
61
+ }
62
+ [onNextChange](fn) {
63
+ throw rawError("onNextChange event registration");
64
+ }
65
+ }
66
+ /**
67
+ * The implementation of an object node created by {@link createRawNode}.
68
+ */
69
+ export class RawObjectNode extends RawTreeNode {
70
+ get localNodeKey() {
71
+ throw rawError("Reading local node keys");
72
+ }
73
+ }
74
+ /**
75
+ * The implementation of a map node created by {@link createRawNode}.
76
+ */
77
+ export class RawMapNode extends RawTreeNode {
78
+ get size() {
79
+ return this[nodeContent].size;
80
+ }
81
+ has(key) {
82
+ return this[nodeContent].has(key);
83
+ }
84
+ get(key) {
85
+ return this[nodeContent].get(key);
86
+ }
87
+ getBoxed(key) {
88
+ throw rawError("Reading boxed map values");
89
+ }
90
+ keys() {
91
+ return this[nodeContent].keys();
92
+ }
93
+ values() {
94
+ throw rawError("Iterating map values");
95
+ }
96
+ entries() {
97
+ throw rawError("Iterating map entries");
98
+ }
99
+ forEach(callbackFn, thisArg) {
100
+ throw rawError("Iterating maps with forEach");
101
+ }
102
+ set(key, value) {
103
+ throw rawError("Setting a map entry");
104
+ }
105
+ delete(key) {
106
+ throw rawError("Deleting a map entry");
107
+ }
108
+ get asObject() {
109
+ throw rawError("Converting a map to an object");
110
+ }
111
+ [Symbol.iterator]() {
112
+ return this.entries();
113
+ }
114
+ [boxedIterator]() {
115
+ throw rawError("Boxed iteration");
116
+ }
117
+ }
118
+ /**
119
+ * The implementation of a field node created by {@link createRawNode}.
120
+ */
121
+ export class RawFieldNode extends RawTreeNode {
122
+ get content() {
123
+ throw rawError("Reading content of a list");
124
+ }
125
+ get boxedContent() {
126
+ throw rawError("Reading boxed content of a list");
127
+ }
128
+ }
129
+ function rawError(message) {
130
+ return new Error(`${message ?? "Operation"} is not supported on content which has not yet been inserted into the tree`);
131
+ }
132
+ //# sourceMappingURL=rawNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rawNode.js","sourceRoot":"","sources":["../../src/simple-tree/rawNode.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { FieldKey, TreeNodeSchemaIdentifier } from \"../core\";\nimport {\n\tEditableTreeEvents,\n\tFieldNodeSchema,\n\tFlexTreeContext,\n\tFlexTreeField,\n\tFlexTreeNode,\n\tFlexTreeTypedNode,\n\tFlexTreeEntityKind,\n\tFlexTreeMapNode,\n\tFlexTreeObjectNode,\n\tFlexTreeTypedField,\n\tFlexTreeUnboxField,\n\tFlexibleFieldContent,\n\tboxedIterator,\n\tflexTreeMarker,\n\tonNextChange,\n\tLocalNodeKey,\n\tMapNodeSchema,\n\tObjectNodeSchema,\n\tTreeNodeSchema,\n\tTreeNodeSchemaBase,\n\tTreeStatus,\n\tFlexTreeFieldNode,\n} from \"../feature-libraries\";\nimport { fail } from \"../util\";\nimport { InsertableTypedNode } from \"./insertable\";\n\n/** Stores the content of the raw node, i.e. the data that was passed to the factory */\nconst nodeContent = Symbol();\ninterface HasNodeContent<T> {\n\t[nodeContent]: T;\n}\n\n/**\n * Retrieve the content of a raw object node created via {@link createRawNode}.\n * @remarks\n * Raw nodes should only ever be processed as input once.\n * Therefore, this extraction removes the content from the node and will error if called twice on the same node.\n */\nexport function extractRawNodeContent<\n\tTSchema extends MapNodeSchema,\n\tTContent extends InsertableTypedNode<TSchema>,\n>(node: RawMapNode<TSchema, TContent>): TContent;\nexport function extractRawNodeContent<\n\tTSchema extends FieldNodeSchema,\n\tTContent extends InsertableTypedNode<TSchema>,\n>(node: RawFieldNode<TSchema, TContent>): TContent;\nexport function extractRawNodeContent<TSchema extends ObjectNodeSchema, TContent extends object>(\n\tnode: RawObjectNode<TSchema, TContent>,\n): TContent;\nexport function extractRawNodeContent(node: FlexTreeNode): object | undefined;\nexport function extractRawNodeContent(node: object): object | undefined {\n\tif (node instanceof RawTreeNode) {\n\t\tconst content = node[nodeContent] ?? fail(\"Node content may only be extracted once\");\n\t\tReflect.deleteProperty(node, nodeContent);\n\t\treturn content as object;\n\t}\n\n\treturn undefined;\n}\n\n/**\n * Creates a node that pretends to satisfy the given schema while wrapping the given node content.\n * Retrieve the node content via {@link extractRawNodeContent}.\n *\n * @remarks This is useful for creating \"raw\" nodes: nodes which capture data about a pending insertion but are not yet inserted.\n * These raw nodes can be then used on the right-hand side of an assignment (via `=`) to the tree.\n * However, many of their properties and methods are currently unimplemented and will error if accessed.\n */\nexport function createRawNode<\n\tTSchema extends MapNodeSchema,\n\tTContent extends InsertableTypedNode<TSchema>,\n>(schema: TSchema, content: TContent): RawMapNode<TSchema, TContent>;\nexport function createRawNode<\n\tTSchema extends FieldNodeSchema,\n\tTContent extends InsertableTypedNode<TSchema>,\n>(schema: TSchema, content: TContent): RawFieldNode<TSchema, TContent>;\nexport function createRawNode<\n\tTSchema extends ObjectNodeSchema,\n\tTContent extends InsertableTypedNode<TSchema>,\n>(schema: TSchema, content: TContent): RawObjectNode<TSchema, TContent>;\nexport function createRawNode<TSchema extends TreeNodeSchemaBase, TContent>(\n\tschema: TSchema,\n\tcontent: TContent,\n): RawTreeNode<TSchema, TContent> {\n\tif (schema instanceof ObjectNodeSchema) {\n\t\treturn new RawObjectNode(\n\t\t\tschema,\n\t\t\tcontent as InsertableTypedNode<typeof schema>,\n\t\t) as RawTreeNode<TSchema, TContent>;\n\t}\n\tif (schema instanceof MapNodeSchema) {\n\t\treturn new RawMapNode(schema, content as InsertableTypedNode<typeof schema>) as RawTreeNode<\n\t\t\tTSchema,\n\t\t\tTContent\n\t\t>;\n\t}\n\tif (schema instanceof FieldNodeSchema) {\n\t\treturn new RawFieldNode(\n\t\t\tschema,\n\t\t\tcontent as InsertableTypedNode<typeof schema>,\n\t\t) as RawTreeNode<TSchema, TContent>;\n\t}\n\tfail(\"Unrecognized schema\");\n}\n\n/**\n * The base implementation of a node created by {@link createRawNode}.\n */\nexport abstract class RawTreeNode<TSchema extends TreeNodeSchema, TContent>\n\timplements FlexTreeNode, HasNodeContent<TContent>\n{\n\tpublic readonly [flexTreeMarker] = FlexTreeEntityKind.Node as const;\n\tpublic readonly [nodeContent]: TContent;\n\n\tpublic readonly type: TreeNodeSchemaIdentifier;\n\tpublic constructor(\n\t\tpublic readonly schema: TSchema,\n\t\tcontent: TContent,\n\t) {\n\t\tthis.type = schema.name;\n\t\tthis[nodeContent] = content;\n\t}\n\n\tpublic get context(): FlexTreeContext {\n\t\tthrow rawError(\"Getting context\");\n\t}\n\n\tpublic get parentField(): { parent: FlexTreeField; index: number } {\n\t\tthrow rawError(\"Accessing parentage\");\n\t}\n\n\tpublic is<TSchemaInner extends TreeNodeSchema>(\n\t\tschema: TSchemaInner,\n\t): this is FlexTreeTypedNode<TSchemaInner> {\n\t\treturn (schema as unknown) === this.schema;\n\t}\n\n\tpublic tryGetField(key: FieldKey): FlexTreeField | undefined {\n\t\tthrow rawError(\"Reading fields\");\n\t}\n\n\tpublic [boxedIterator](): IterableIterator<FlexTreeField> {\n\t\tthrow rawError(\"Boxed iteration\");\n\t}\n\n\tpublic treeStatus(): TreeStatus {\n\t\t// TODO: We could add a new TreeStatus for \"raw\" nodes.\n\t\tthrow rawError(\"Status querying\");\n\t}\n\n\tpublic value: undefined;\n\n\tpublic on<K extends keyof EditableTreeEvents>(\n\t\teventName: K,\n\t\tlistener: EditableTreeEvents[K],\n\t): () => void {\n\t\tthrow rawError(\"Event registration\");\n\t}\n\n\tpublic [onNextChange](fn: (node: FlexTreeNode) => void): () => void {\n\t\tthrow rawError(\"onNextChange event registration\");\n\t}\n}\n\n/**\n * The implementation of an object node created by {@link createRawNode}.\n */\nexport class RawObjectNode<TSchema extends ObjectNodeSchema, TContent extends object>\n\textends RawTreeNode<TSchema, TContent>\n\timplements FlexTreeObjectNode\n{\n\tpublic get localNodeKey(): LocalNodeKey | undefined {\n\t\tthrow rawError(\"Reading local node keys\");\n\t}\n}\n\n/**\n * The implementation of a map node created by {@link createRawNode}.\n */\nexport class RawMapNode<\n\t\tTSchema extends MapNodeSchema,\n\t\tTContent extends InsertableTypedNode<TSchema>,\n\t>\n\textends RawTreeNode<TSchema, TContent>\n\timplements FlexTreeMapNode<TSchema>\n{\n\tpublic get size(): number {\n\t\treturn this[nodeContent].size;\n\t}\n\tpublic has(key: string): boolean {\n\t\treturn this[nodeContent].has(key);\n\t}\n\tpublic get(key: string): FlexTreeUnboxField<TSchema[\"info\"]> {\n\t\treturn this[nodeContent].get(key) as FlexTreeUnboxField<TSchema[\"info\"]>;\n\t}\n\tpublic getBoxed(key: string): FlexTreeTypedField<TSchema[\"info\"]> {\n\t\tthrow rawError(\"Reading boxed map values\");\n\t}\n\tpublic keys(): IterableIterator<FieldKey> {\n\t\treturn this[nodeContent].keys() as IterableIterator<FieldKey>;\n\t}\n\tpublic values(): IterableIterator<FlexTreeUnboxField<TSchema[\"info\"], \"notEmpty\">> {\n\t\tthrow rawError(\"Iterating map values\");\n\t}\n\tpublic entries(): IterableIterator<\n\t\t[FieldKey, FlexTreeUnboxField<TSchema[\"info\"], \"notEmpty\">]\n\t> {\n\t\tthrow rawError(\"Iterating map entries\");\n\t}\n\tpublic forEach(\n\t\tcallbackFn: (\n\t\t\tvalue: FlexTreeUnboxField<TSchema[\"info\"], \"notEmpty\">,\n\t\t\tkey: FieldKey,\n\t\t\tmap: FlexTreeMapNode<TSchema>,\n\t\t) => void,\n\t\tthisArg?: any,\n\t): void {\n\t\tthrow rawError(\"Iterating maps with forEach\");\n\t}\n\tpublic set(key: string, value: FlexibleFieldContent<TSchema[\"info\"]> | undefined): void {\n\t\tthrow rawError(\"Setting a map entry\");\n\t}\n\tpublic delete(key: string): void {\n\t\tthrow rawError(\"Deleting a map entry\");\n\t}\n\n\tpublic get asObject(): {\n\t\treadonly [P in FieldKey]?: FlexTreeUnboxField<TSchema[\"info\"], \"notEmpty\">;\n\t} {\n\t\tthrow rawError(\"Converting a map to an object\");\n\t}\n\n\tpublic [Symbol.iterator](): IterableIterator<\n\t\t[FieldKey, FlexTreeUnboxField<TSchema[\"info\"], \"notEmpty\">]\n\t> {\n\t\treturn this.entries();\n\t}\n\n\tpublic [boxedIterator](): IterableIterator<FlexTreeTypedField<TSchema[\"info\"]>> {\n\t\tthrow rawError(\"Boxed iteration\");\n\t}\n}\n\n/**\n * The implementation of a field node created by {@link createRawNode}.\n */\nexport class RawFieldNode<\n\t\tTSchema extends FieldNodeSchema,\n\t\tTContent extends InsertableTypedNode<TSchema>,\n\t>\n\textends RawTreeNode<TSchema, TContent>\n\timplements FlexTreeFieldNode<TSchema>\n{\n\tpublic get content(): FlexTreeUnboxField<TSchema[\"info\"]> {\n\t\tthrow rawError(\"Reading content of a list\");\n\t}\n\n\tpublic get boxedContent(): FlexTreeTypedField<TSchema[\"info\"]> {\n\t\tthrow rawError(\"Reading boxed content of a list\");\n\t}\n}\n\nfunction rawError(message?: string): Error {\n\treturn new Error(\n\t\t`${\n\t\t\tmessage ?? \"Operation\"\n\t\t} is not supported on content which has not yet been inserted into the tree`,\n\t);\n}\n"]}
@@ -0,0 +1,101 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ import { type FieldKey, type MapTree } from "../core";
6
+ import { type CursorWithNode, type TreeNodeSchema, FlexTreeSchema, type AllowedTypeSet, TreeFieldSchema, typeNameSymbol } from "../feature-libraries";
7
+ import { InsertableTreeField, InsertableTypedNode } from "./insertable";
8
+ /**
9
+ * Module notes:
10
+ *
11
+ * The flow of the below code is in terms of the structure of the input data. We then verify that the associated
12
+ * schema is appropriate for that kind of data. This is fine while we have a 1:1 mapping of kind of input data to
13
+ * the kind of schema we expect for it (e.g. an input that is an array always need to be associated with a sequence in
14
+ * the schema). If/when we begin accepting kinds of input data that are ambiguous (e.g. accepting an input that is an
15
+ * array of key/value tuples to instantiate a map) we may need to rethink the structure here to be based more on the
16
+ * schema than on the input data.
17
+ */
18
+ /**
19
+ * Transforms an input {@link TypedNode} tree to a {@link MapTree}, and wraps the tree in a {@link CursorWithNode}.
20
+ * @param data - The input tree to be converted.
21
+ * @param globalSchema - Schema for the whole tree for interperting `Any`.
22
+ * @param typeSet - The set of types allowed by the parent context. Used to validate the input tree.
23
+ *
24
+ * @returns A cursor (in nodes mode) for the mapped tree if the input data was defined. Otherwise, returns `undefined`.
25
+ */
26
+ export declare function cursorFromNodeData(data: InsertableTypedNode<TreeNodeSchema>, globalSchema: FlexTreeSchema, typeSet: AllowedTypeSet): CursorWithNode<MapTree> | undefined;
27
+ /**
28
+ * Transforms an input {@link TreeField} tree to a list of {@link MapTree}s, and wraps the tree in a {@link CursorWithNode}.
29
+ * @param data - The input tree to be converted.
30
+ * @param globalSchema - Schema for the whole tree for interperting `Any`.
31
+ */
32
+ export declare function cursorFromFieldData(data: InsertableTreeField, globalSchema: FlexTreeSchema, fieldSchema: TreeFieldSchema): CursorWithNode<MapTree>;
33
+ /**
34
+ * Transforms an input {@link TypedNode} tree to a {@link MapTree}.
35
+ * @param data - The input tree to be converted.
36
+ * If the data is an unsupported value (e.g. NaN), a fallback value will be used when supported,
37
+ * otherwise an error will be thrown.
38
+ *
39
+ * Fallbacks:
40
+ *
41
+ * * `NaN` =\> `null`
42
+ *
43
+ * * `+/-∞` =\> `null`
44
+ *
45
+ * * `-0` =\> `+0`
46
+ *
47
+ * @param globalSchema - Schema for the whole tree for interperting `Any`.
48
+ * @param typeSet - The set of types allowed by the parent context. Used to validate the input tree.
49
+ */
50
+ export declare function nodeDataToMapTree(data: InsertableTypedNode<TreeNodeSchema>, globalSchema: FlexTreeSchema, typeSet: AllowedTypeSet): MapTree;
51
+ /**
52
+ * Transforms an input {@link TreeField} tree to a list of {@link MapTree}s.
53
+ * @param data - The input tree to be converted.
54
+ * If the input is a sequence containing 1 or more `undefined` values, those values will be mapped as `null` if supported.
55
+ * Othewise, an error will be thrown.
56
+ * @param globalSchema - Schema for the whole tree. Used to select the valid types when encountering `any`.
57
+ */
58
+ export declare function fieldDataToMapTrees(data: InsertableTreeField, globalSchema: FlexTreeSchema, fieldSchema: TreeFieldSchema): MapTree[];
59
+ /**
60
+ * @returns all types for which the data is schema-compatible.
61
+ */
62
+ export declare function getPossibleTypes(globalSchema: FlexTreeSchema, typeSet: AllowedTypeSet, data: ContextuallyTypedNodeData): TreeNodeSchema[];
63
+ /**
64
+ * Content of a tree which needs external schema information to interpret.
65
+ *
66
+ * This format is intended for concise authoring of tree literals when the schema is statically known.
67
+ *
68
+ * Once schema aware APIs are implemented, they can be used to provide schema specific subsets of this type.
69
+ */
70
+ export type ContextuallyTypedNodeData = ContextuallyTypedNodeDataObject | number | string | boolean | null | readonly ContextuallyTypedNodeData[];
71
+ /**
72
+ * Content of a field which needs external schema information to interpret.
73
+ *
74
+ * This format is intended for concise authoring of tree literals when the schema is statically known.
75
+ *
76
+ * Once schema aware APIs are implemented, they can be used to provide schema specific subsets of this type.
77
+ */
78
+ export type ContextuallyTypedFieldData = ContextuallyTypedNodeData | undefined;
79
+ /**
80
+ * Object case of {@link ContextuallyTypedNodeData}.
81
+ */
82
+ export interface ContextuallyTypedNodeDataObject {
83
+ /**
84
+ * The type of the node.
85
+ * If this node is well-formed, it must follow this schema.
86
+ */
87
+ readonly [typeNameSymbol]?: string;
88
+ /**
89
+ * Fields of this node, indexed by their field keys.
90
+ *
91
+ * Allow explicit undefined for compatibility with EditableTree, and type-safety on read.
92
+ */
93
+ [key: FieldKey]: ContextuallyTypedFieldData;
94
+ /**
95
+ * Fields of this node, indexed by their field keys as strings.
96
+ *
97
+ * Allow unbranded field keys as a convenience for literals.
98
+ */
99
+ [key: string]: ContextuallyTypedFieldData;
100
+ }
101
+ //# sourceMappingURL=toMapTree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toMapTree.d.ts","sourceRoot":"","sources":["../../src/simple-tree/toMapTree.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAY,KAAK,QAAQ,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAIhE,OAAO,EAIN,KAAK,cAAc,EAGnB,KAAK,cAAc,EACnB,cAAc,EACd,KAAK,cAAc,EACnB,eAAe,EAOf,cAAc,EACd,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExE;;;;;;;;;GASG;AAEH;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CACjC,IAAI,EAAE,mBAAmB,CAAC,cAAc,CAAC,EACzC,YAAY,EAAE,cAAc,EAC5B,OAAO,EAAE,cAAc,GACrB,cAAc,CAAC,OAAO,CAAC,GAAG,SAAS,CAMrC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAClC,IAAI,EAAE,mBAAmB,EACzB,YAAY,EAAE,cAAc,EAC5B,WAAW,EAAE,eAAe,GAC1B,cAAc,CAAC,OAAO,CAAC,CAGzB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAChC,IAAI,EAAE,mBAAmB,CAAC,cAAc,CAAC,EACzC,YAAY,EAAE,cAAc,EAC5B,OAAO,EAAE,cAAc,GACrB,OAAO,CA4BT;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAClC,IAAI,EAAE,mBAAmB,EACzB,YAAY,EAAE,cAAc,EAC5B,WAAW,EAAE,eAAe,GAC1B,OAAO,EAAE,CAkCX;AAgLD;;GAEG;AACH,wBAAgB,gBAAgB,CAC/B,YAAY,EAAE,cAAc,EAC5B,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,yBAAyB,oBAY/B;AA4CD;;;;;;GAMG;AACH,MAAM,MAAM,yBAAyB,GAClC,+BAA+B,GAC/B,MAAM,GACN,MAAM,GACN,OAAO,GAEP,IAAI,GACJ,SAAS,yBAAyB,EAAE,CAAC;AAExC;;;;;;GAMG;AACH,MAAM,MAAM,0BAA0B,GAAG,yBAAyB,GAAG,SAAS,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC/C;;;OAGG;IACH,QAAQ,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC;IAEnC;;;;OAIG;IAEH,CAAC,GAAG,EAAE,QAAQ,GAAG,0BAA0B,CAAC;IAE5C;;;;OAIG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,0BAA0B,CAAC;CAC1C"}