@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":"modularChangeFamily.js","sourceRoot":"","sources":["../../../src/feature-libraries/modular-schema/modularChangeFamily.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAA2C,eAAe,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAEN,WAAW,EAOX,SAAS,EACT,cAAc,EAId,mBAAmB,EAGnB,8BAA8B,EAE9B,kBAAkB,EAElB,UAAU,GAQV,MAAM,YAAY,CAAC;AACpB,OAAO,EACN,KAAK,EACL,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EAGb,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,GAEf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAa,SAAS,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAClG,OAAO,EAIN,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEN,kBAAkB,GAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAkC,UAAU,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAUjG,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD;;;GAGG;AACH,MAAM,OAAO,mBAAmB;IAS/B,YACiB,UAAiE,EACjF,gBAA6D,EAC7D,YAA2B;QAFX,eAAU,GAAV,UAAU,CAAuD;QAIjF,IAAI,CAAC,WAAW,GAAG,WAAW,CAC7B,UAAU,EACV,gBAAgB,EAChB,mBAAmB,CAAC,YAAY,CAAC,EACjC,YAAY,CACZ,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,IAAW,OAAO;QACjB,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;;OAMG;IACK,qBAAqB,CAC5B,OAA+B,EAC/B,KAAkB,EAClB,gBAAwC;QAKxC,mEAAmE;QACnE,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,CACpC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,KAAK,gBAAgB,CAAC,UAAU,CAC5D,CAAC;QACF,IAAI,gBAAgB,KAAK,SAAS,EAAE;YACnC,8BAA8B;YAC9B,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;SACjF;QACD,MAAM,IAAI,GAAG,gBAAgB,CAAC,SAAS,CAAC;QACxC,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,SAAS,CAAC,aAAa,CAAC;QACxC,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAChD,IAAI,MAAM,CAAC,SAAS,KAAK,gBAAgB,CAAC,UAAU,EAAE;gBACrD,mDAAmD;gBACnD,MAAM,aAAa,GAAG,MAAM,CAAC,MAAqC,CAAC;gBACnE,OAAO,oBAAoB,CAC1B,aAAa,EACb,OAAO,EACP,CAAC,QAAQ,EAAE,EAAE,CACZ,IAAI,CAAC,kBAAkB,CACtB,QAAQ,EACR,KAAK,EACL,kBAAkB,EAAE,EACpB,gBAAgB,CAChB,EACF,KAAK,EACL,gBAAgB,CACE,CAAC;aACpB;YACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC;IACrD,CAAC;IAEM,OAAO,CAAC,OAAyC;QACvD,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;QACjE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,wBAAwB,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC7E,OAAO,oBAAoB,CAC1B,YAAY,EACZ,KAAK,EACL,QAAQ,EACR,wBAAwB,EACxB,MAAM,CACN,CAAC;SACF;QACD,MAAM,gBAAgB,GAA2B,8BAA8B,CAAC,QAAQ,CAAC,CAAC;QAC1F,MAAM,OAAO,GAAsB,EAAE,KAAK,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAgB,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,eAAe,GAAG,kBAAkB,EAAe,CAAC;QAE1D,MAAM,kCAAkC,GAAG,OAAO,CAAC,MAAM,CACxD,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,wBAAwB,IAAI,CAAC,CAAC,KAAK,CAAC,CAC/D,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAC3C,kCAAkC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACjD,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAC,CACvE,EACD,KAAK,EACL,eAAe,EACf,gBAAgB,CAChB,CAAC;QAEF,IAAI,eAAe,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,EAAE;YAC/C,MAAM,cAAc,GAAG,eAAe,CAAC,iBAAiB,CAAC;YACzD,eAAe,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAE,CAAC;YAC9C,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE;gBACnC,MAAM,aAAa,GAAG,gBAAgB,CACrC,IAAI,CAAC,UAAU,EACf,KAAK,CAAC,SAAS,CACf,CAAC,OAAO,CAAC,YAAY,CACrB,KAAK,CAAC,MAAM,EACZ,CAAC,QAAQ,EAAE,EAAE,CACZ,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,gBAAgB,CAAC,EAC5E,KAAK,EACL,oBAAoB,CAAC,eAAe,CAAC,EACrC,gBAAgB,CAChB,CAAC;gBACF,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;aACpC;SACD;QAED,MAAM,CACL,eAAe,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,EAC5C,KAAK,CAAC,+CAA+C,CACrD,CAAC;QACF,MAAM,SAAS,GAA+B,IAAI,GAAG,EAAE,CAAC;QACxD,KAAK,MAAM,YAAY,IAAI,OAAO,EAAE;YACnC,MAAM,QAAQ,GAAG,wBAAwB,CAAC,YAAY,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;YACnC,IAAI,MAAM,CAAC,MAAM,EAAE;gBAClB,KAAK,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE;oBACpD,MAAM,cAAc,GAAG,WAAW,IAAI,QAAQ,CAAC;oBAC/C,MAAM,WAAW,GAAG,aAAa,CAAC,SAAS,EAAE,cAAc,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;oBACxE,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,QAAQ,EAAE;wBAClC,sDAAsD;wBACtD,+DAA+D;wBAC/D,0CAA0C;wBAC1C,iFAAiF;wBACjF,4FAA4F;wBAC5F,+FAA+F;wBAC/F,yFAAyF;wBACzF,wFAAwF;wBACxF,0FAA0F;wBAC1F,6FAA6F;wBAC7F,4EAA4E;wBAC5E,4FAA4F;wBAC5F,0FAA0F;wBAC1F,gCAAgC;wBAChC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;4BACzB,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;yBAC1B;qBACD;iBACD;aACD;SACD;QACD,OAAO,oBAAoB,CAC1B,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,EAClC,OAAO,CAAC,KAAK,EACb,QAAQ,EACR,SAAS,EACT,SAAS,CACT,CAAC;IACH,CAAC;IAEO,gBAAgB,CACvB,OAAuC,EACvC,KAAkB,EAClB,eAA6C,EAC7C,gBAAwC;QAExC,MAAM,YAAY,GAAG,IAAI,GAAG,EAA2B,CAAC;QACxD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE;gBAC/C,MAAM,oBAAoB,GACzB,WAAW,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;oBAClE,CAAC,CAAC,WAAW;oBACb,CAAC,CAAC;wBACA,GAAG,WAAW;wBACd,QAAQ,EAAE,MAAM,CAAC,QAAQ;qBACxB,CAAC;gBAEN,kBAAkB,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;aACjE;SACD;QAED,MAAM,cAAc,GAAmB,IAAI,GAAG,EAAE,CAAC;QACjD,KAAK,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC,IAAI,YAAY,EAAE;YACpD,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAC3D,eAAe,EACf,KAAK,EACL,gBAAgB,CAChB,CAAC;YACF,MAAM,CACL,UAAU,CAAC,MAAM,KAAK,eAAe,CAAC,MAAM,EAC5C,KAAK,CAAC,2DAA2D,CACjE,CAAC;YAEF,MAAM,OAAO,GAAG,oBAAoB,CAAC,eAAe,CAAC,CAAC;YACtD,MAAM,gBAAgB,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CACrD,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAC9C,CAAC;YACF,MAAM,cAAc,GAAG,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAC7D,gBAAgB,EAChB,CAAC,QAAQ,EAAE,EAAE,CACZ,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,gBAAgB,CAAC,EAC5E,KAAK,EACL,OAAO,EACP,gBAAgB,CAChB,CAAC;YAEF,MAAM,aAAa,GAAgB;gBAClC,SAAS,EAAE,SAAS,CAAC,UAAU;gBAC/B,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC;aAC7B,CAAC;YAEF,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YAErC,mEAAmE;YACnE,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;SACzC;QACD,OAAO,cAAc,CAAC;IACvB,CAAC;IAEO,kBAAkB,CACzB,OAAsC,EACtC,KAAkB,EAClB,eAA6C,EAC7C,gBAAwC;QAExC,MAAM,YAAY,GAAmC,EAAE,CAAC;QACxD,IAAI,oBAAsD,CAAC;QAC3D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,wCAAwC;YACxC,wDAAwD;YACxD,kEAAkE;YAClE,iCAAiC;YACjC,sEAAsE;YACtE,4EAA4E;YAC5E,sFAAsF;YACtF,iFAAiF;YACjF,IAAI,MAAM,CAAC,MAAM,CAAC,oBAAoB,KAAK,SAAS,EAAE;gBACrD,oBAAoB,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;aACjE;YAED,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE;gBAC7C,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC1E;SACD;QAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CACjD,YAAY,EACZ,KAAK,EACL,eAAe,EACf,gBAAgB,CAChB,CAAC;QACF,MAAM,kBAAkB,GAAkB,EAAE,CAAC;QAE7C,IAAI,oBAAoB,CAAC,IAAI,GAAG,CAAC,EAAE;YAClC,kBAAkB,CAAC,YAAY,GAAG,oBAAoB,CAAC;SACvD;QAED,IAAI,oBAAoB,KAAK,SAAS,EAAE;YACvC,kBAAkB,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;SAC/D;QAED,OAAO,kBAAkB,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,MAAsC,EAAE,UAAmB;QACxE,iEAAiE;QACjE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,wBAAwB,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE;YACtD,OAAO,oBAAoB,EAAE,CAAC;SAC9B;QAED,MAAM,OAAO,GAAsB,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC;QACxE,iFAAiF;QACjF,gFAAgF;QAChF,6EAA6E;QAC7E,MAAM,KAAK,GAAgB,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,eAAe,GAAgB;YACpC,GAAG,kBAAkB,EAAe;YACpC,sBAAsB,EAAE,IAAI,GAAG,EAAE;SACjC,CAAC;QAEF,MAAM,EAAE,QAAQ,EAAE,GAAG,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3D,MAAM,gBAAgB,GAAG,8BAA8B,CAAC,QAAQ,CAAC,CAAC;QAElE,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CACzC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAC,EACvE,KAAK,EACL,eAAe,EACf,gBAAgB,CAChB,CAAC;QAEF,IAAI,eAAe,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,EAAE;YAC/C,MAAM,cAAc,GAAG,eAAe,CAAC,iBAAiB,CAAC;YACzD,eAAe,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAE,CAAC;YAC9C,KAAK,MAAM,WAAW,IAAI,cAAc,EAAE;gBACzC,MAAM,mBAAmB,GAAG,WAAW,CAAC,MAAM,CAAC;gBAC/C,MAAM,OAAO,GAAG,eAAe,CAAC,sBAAsB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACxE,MAAM,CACL,OAAO,KAAK,SAAS,EACrB,KAAK,CAAC,qDAAqD,CAC3D,CAAC;gBACF,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;gBAE5C,MAAM,aAAa,GAAG,gBAAgB,CACrC,IAAI,CAAC,UAAU,EACf,WAAW,CAAC,SAAS,CACrB,CAAC,OAAO,CAAC,MAAM,CACf,SAAS,CAAC,mBAAmB,EAAE,QAAQ,CAAC,EACxC,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,EAChC,KAAK,EACL,oBAAoB,CAAC,eAAe,CAAC,EACrC,gBAAgB,CAChB,CAAC;gBACF,aAAa,CAAC,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;aAC5C;YAED,0DAA0D;YAC1D,uDAAuD;SACvD;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;QACxC,OAAO,oBAAoB,CAC1B,cAAc,EACd,OAAO,CAAC,KAAK,EACb,OAAO,KAAK,SAAS;YACpB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,UAAU;gBACX,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACrE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CACpB,CAAC,OAAO,EAAE,EACd,MAAM,CAAC,MAAM,CAAC,wBAAwB,CACtC,CAAC;IACH,CAAC;IAEO,cAAc,CACrB,OAAqC,EACrC,KAAkB,EAClB,eAA4B,EAC5B,gBAAwC;QAExC,MAAM,cAAc,GAAmB,IAAI,GAAG,EAAE,CAAC;QAEjD,KAAK,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE;YAClD,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;YAEhF,MAAM,OAAO,GAAG,oBAAoB,CAAC,eAAe,CAAC,CAAC;YACtD,MAAM,cAAc,GAAG,gBAAgB,CACtC,IAAI,CAAC,UAAU,EACf,WAAW,CAAC,SAAS,CACrB,CAAC,OAAO,CAAC,MAAM,CACf,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,EACxC,CAAC,YAAY,EAAE,EAAE,CAChB,IAAI,CAAC,gBAAgB,CACpB,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,EAClC,KAAK,EACL,eAAe,EACf,gBAAgB,CAChB,EACF,KAAK,EACL,OAAO,EACP,gBAAgB,CAChB,CAAC;YAEF,MAAM,mBAAmB,GAAgB;gBACxC,GAAG,WAAW;gBACd,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC;aAC7B,CAAC;YACF,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;YAE/C,eAAe,CAAC,sBAAsB,CAAC,GAAG,CAAC,WAAW,EAAE;gBACvD,aAAa,EAAE,mBAAmB;gBAClC,QAAQ;aACR,CAAC,CAAC;YAEH,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;SACnC;QAED,OAAO,cAAc,CAAC;IACvB,CAAC;IAEO,gBAAgB,CACvB,MAAmC,EACnC,KAAkB,EAClB,eAA4B,EAC5B,gBAAwC;QAExC,MAAM,OAAO,GAAkB,EAAE,CAAC;QAElC,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE;YAC7C,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CACzC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,EACjD,KAAK,EACL,eAAe,EACf,gBAAgB,CAChB,CAAC;SACF;QAED,OAAO,OAAO,CAAC;IAChB,CAAC;IAEM,MAAM,CACZ,MAAwB,EACxB,IAAoC,EACpC,gBAAwC;QAExC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,OAAO,GAAsB,EAAE,KAAK,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAgB,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,eAAe,GAAgB;YACpC,GAAG,kBAAkB,EAAe;YACpC,qBAAqB,EAAE,IAAI,GAAG,EAAE;SAChC,CAAC;QAEF,IAAI,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,wBAAwB,IAAI,CAAC,CAAC,CAAC;QAE/E,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAC7B,4BAA4B,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEjE,MAAM,cAAc,GAAG;YACtB,GAAG,gBAAgB;YACnB,gBAAgB;SAChB,CAAC;QAEF,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CACxC,MAAM,CAAC,YAAY,EACnB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,wBAAwB,CAAC,IAAI,CAAC,CAAC,EACnE,KAAK,EACL,eAAe,EACf,GAAG,EAAE,CAAC,IAAI,EACV,cAAc,EACd,eAAe,CACf,CAAC;QAEF,IAAI,eAAe,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,EAAE;YAC/C,MAAM,cAAc,GAAG,eAAe,CAAC,iBAAiB,CAAC;YACzD,eAAe,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAE,CAAC;YAC9C,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,wBAAwB,IAAI,CAAC,CAAC,CAAC;YAC3E,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE;gBACnC,+DAA+D;gBAC/D,MAAM,OAAO,GAAG,eAAe,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACjE,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,KAAK,CAAC,uCAAuC,CAAC,CAAC;gBAC7E,MAAM,EACL,SAAS,EACT,UAAU,EAAE,CAAC,cAAc,EAAE,aAAa,CAAC,GAC3C,GAAG,IAAI,CAAC,qBAAqB,CAC7B,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,EACvC,KAAK,EACL,gBAAgB,CAChB,CAAC;gBAEF,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CACpD,cAAc,EACd,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,YAAY,CAAC,EAC9C,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EACd,KAAK,EACL,oBAAoB,CAAC,eAAe,CAAC,EACrC,cAAc,CACd,CAAC;aACF;SACD;QAED,OAAO,oBAAoB,CAC1B,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EACjC,OAAO,CAAC,KAAK,EACb,MAAM,CAAC,SAAS,EAChB,eAAe,CAAC,cAAc,EAC9B,MAAM,CAAC,MAAM,CACb,CAAC;IACH,CAAC;IAEO,cAAc,CACrB,MAAsB,EACtB,IAAkC,EAClC,KAAkB,EAClB,eAA4B,EAC5B,WAAqF,EACrF,gBAAwC,EACxC,eAAgC,EAChC,iBAAqC,kBAAkB,CAAC,KAAK;QAE7D,MAAM,aAAa,GAAmB,IAAI,GAAG,EAAE,CAAC;QAEhD,gDAAgD;QAChD,KAAK,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;YAC/C,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;gBACjD,SAAS;aACT;YAED,MAAM,WAAW,GAAgB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI;gBACrD,SAAS,EAAE,gBAAgB,CAAC,UAAU;gBACtC,MAAM,EAAE,KAAK,CAAC,mBAAmB,EAAE,CAAC;aACpC,CAAC;YACF,MAAM,EACL,SAAS,EACT,UAAU,EAAE,CAAC,cAAc,EAAE,aAAa,CAAC,GAC3C,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;YAEpF,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;YAC1B,MAAM,gBAAgB,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;YAC7D,MAAM,OAAO,GAAG,oBAAoB,CAAC,eAAe,CAAC,CAAC;YAEtD,MAAM,WAAW,GAAG,CACnB,KAAgC,EAChC,SAAoC,EACpC,WAA2C,EAC1C,EAAE,CACH,IAAI,CAAC,gBAAgB,CACpB,KAAK,EACL,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,EAC/B,KAAK,EACL,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,WAAW,CACX,CAAC;YAEH,MAAM,YAAY,GAAG,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAC1D,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,KAAK,EACL,OAAO,EACP,gBAAgB,CAChB,CAAC;YAEF,MAAM,kBAAkB,GAAgB;gBACvC,SAAS,EAAE,SAAS,CAAC,UAAU;gBAC/B,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC;aAC3B,CAAC;YAEF,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;YAE7C,YAAY,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;YAC1C,eAAe,CAAC,qBAAqB,CAAC,GAAG,CAAC,kBAAkB,EAAE;gBAC7D,UAAU,EAAE,WAAW;gBACvB,YAAY,EAAE,QAAQ;gBACtB,SAAS,EAAE,WAAW;aACtB,CAAC,CAAC;SACH;QAED,sFAAsF;QACtF,KAAK,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,MAAM,EAAE;YAC1C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE;gBAC7B,MAAM,WAAW,GAAgB;oBAChC,SAAS,EAAE,gBAAgB,CAAC,UAAU;oBACtC,MAAM,EAAE,KAAK,CAAC,mBAAmB,EAAE,CAAC;iBACpC,CAAC;gBAEF,MAAM,EACL,SAAS,EACT,UAAU,EAAE,CAAC,cAAc,EAAE,aAAa,CAAC,GAC3C,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;gBAEpF,MAAM,OAAO,GAAG,oBAAoB,CAAC,eAAe,CAAC,CAAC;gBACtD,MAAM,gBAAgB,GAAG,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAC9D,cAAc,EACd,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,EACvC,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;oBACpB,MAAM,CACL,SAAS,KAAK,SAAS,EACvB,KAAK,CAAC,iDAAiD,CACvD,CAAC;oBACF,OAAO,IAAI,CAAC,gBAAgB,CAC3B,KAAK,EACL,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,EACnC,KAAK,EACL,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,cAAc,CACd,CAAC;gBACH,CAAC,EACD,KAAK,EACL,OAAO,EACP,gBAAgB,EAChB,cAAc,CACd,CAAC;gBACF,MAAM,kBAAkB,GAAgB;oBACvC,SAAS,EAAE,SAAS,CAAC,UAAU;oBAC/B,MAAM,EAAE,KAAK,CAAC,gBAAgB,CAAC;iBAC/B,CAAC;gBACF,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;gBAC7C,YAAY,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;aAC1C;SACD;QAED,OAAO,aAAa,CAAC;IACtB,CAAC;IAEO,gBAAgB,CACvB,MAAiC,EACjC,IAA6C,EAC7C,KAAkB,EAClB,eAA4B,EAC5B,WAAqF,EACrF,gBAAwC,EACxC,eAAgC,EAChC,iBAAqC,kBAAkB,CAAC,KAAK;QAE7D,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,YAAY,KAAK,SAAS,EAAE;YACpE,OAAO,SAAS,CAAC;SACjB;QAED,MAAM,OAAO,GACZ,IAAI,CAAC,MAAM,EAAE,YAAY,KAAK,SAAS;YACtC,CAAC,CAAC;gBACA,GAAG,IAAI;gBACP,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;aAC/B;YACH,CAAC,CAAC,SAAS,CAAC,IAAI,GAAG,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAExC,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CACvC,MAAM,EAAE,YAAY,IAAI,IAAI,GAAG,EAAE,EACjC,OAAO,EACP,KAAK,EACL,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,cAAc,CACd,CAAC;QAEF,MAAM,aAAa,GAAkB,EAAE,CAAC;QAExC,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE;YAC1B,aAAa,CAAC,YAAY,GAAG,YAAY,CAAC;SAC1C;QAED,IAAI,MAAM,EAAE,oBAAoB,KAAK,SAAS,EAAE;YAC/C,aAAa,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC;SACjE;QAED,kGAAkG;QAClG,IAAI,aAAa,CAAC,oBAAoB,KAAK,SAAS,EAAE;YACrD,MAAM,aAAa,GAAG,cAAc,KAAK,kBAAkB,CAAC,IAAI,CAAC;YAEjE,IAAI,aAAa,CAAC,oBAAoB,CAAC,QAAQ,KAAK,aAAa,EAAE;gBAClE,aAAa,CAAC,oBAAoB,GAAG;oBACpC,GAAG,aAAa,CAAC,oBAAoB;oBACrC,QAAQ,EAAE,aAAa;iBACvB,CAAC;gBACF,eAAe,CAAC,cAAc,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACzD;SACD;QAED,OAAO,aAAa,CAAC;IACtB,CAAC;IAEO,aAAa,CAAC,SAAyB;QAC9C,MAAM,eAAe,GAAmB,IAAI,GAAG,EAAE,CAAC;QAClD,KAAK,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,SAAS,EAAE;YAC7C,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;YAEzE,MAAM,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAC/E,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAC1B,CAAC;YAEF,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE;gBAC3C,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;aACpF;SACD;QAED,OAAO,eAAe,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,CAAC;IAEO,eAAe,CAAC,SAAwB;QAC/C,MAAM,YAAY,GACjB,SAAS,CAAC,YAAY,KAAK,SAAS;YACnC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,YAAY,CAAC;YAC5C,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,YAAY,GAAG,EAAE,GAAG,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;QAClE,IAAI,YAAY,CAAC,YAAY,KAAK,SAAS,EAAE;YAC5C,OAAO,YAAY,CAAC,YAAY,CAAC;SACjC;QAED,OAAO,oBAAoB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;IACtE,CAAC;IAEM,WAAW,CAAC,cAAkD;QACpE,OAAO,IAAI,kBAAkB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACrD,CAAC;;AArrBsB,+BAAW,GAAqB,oBAAoB,EAAE,CAAC;AAwrB/E;;;;;;;;;;;;;;GAcG;AACH,MAAM,SAAS,CAAC,CAAC,oBAAoB,CACpC,EAAE,MAAM,EAAE,QAAQ,EAAkC,EACpD,UAAiE;IAEjE,KAAK,CAAC,CAAC,8BAA8B,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAClF,CAAC;AAED,QAAQ,CAAC,CAAC,8BAA8B,CACvC,MAAsB,EACtB,QAAiC,EACjC,UAAiE;IAEjE,KAAK,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,IAAI,MAAM,EAAE;QACtC,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,IAAI,QAAQ,CAAC;QACvD,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE,IAAmB;YAC9C,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;gBACpC,KAAK,CAAC,CAAC,8BAA8B,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;aACpF;QACF,CAAC,CAAC;QACF,KAAK,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,QAAQ,CAAC,CAAC;KAC5F;AACF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CACxB,YAA4C,EAC5C,UAAiE;IAEjE,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;IACnC,+DAA+D;IAC/D,IAAI,CAAC,MAAM,CAAC,wBAAwB,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE;QAC/C,OAAO,UAAU,CAAC;KAClB;IAED,MAAM,QAAQ,GAAG,wBAAwB,CAAC,YAAY,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,wBAAwB,CAAC,UAAU,EAAE,CAAC;IAC1D,MAAM,SAAS,GAAuB,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IAC1F,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE;QACzB,SAAS,CAAC,MAAM,GAAG,WAAW,CAAC;KAC/B;IACD,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE;QAC5C,MAAM,MAAM,GAA6B,EAAE,CAAC;QAC5C,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACxD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,CACL,MAAM,CAAC,cAAc,EAAE,KAAK,CAAC,EAC7B,KAAK,CAAC,oDAAoD,CAC1D,CAAC;YACF,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC;gBACX,EAAE,EAAE,kBAAkB,CAAC,KAAK,IAAI,QAAQ,EAAE,KAAK,CAAC;gBAChD,KAAK,EAAE,CAAC,MAAM,CAAC;aACf,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC;KACzB;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CACrB,MAAsB,EACtB,QAAiC,EACjC,WAAqC,EACrC,UAAiE;IAEjE,MAAM,KAAK,GAAqC,IAAI,GAAG,EAAE,CAAC;IAC1D,KAAK,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,MAAM,EAAE;QAC1C,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,IAAI,QAAQ,CAAC;QACvD,MAAM,UAAU,GAAG,gBAAgB,CAAC,UAAU,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,SAAS,CAC/E,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,EAC5C,CAAC,WAAW,EAAiB,EAAE,CAC9B,mBAAmB,CAAC,SAAS,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,EACpF,WAAW,CACX,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE;YACrC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;SAC7B;KACD;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAC3B,EAAE,MAAM,EAAE,QAAQ,EAA+B,EACjD,WAAqC,EACrC,UAAiE;IAEjE,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE;QACtC,OAAO,aAAa,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;KAC7E;IACD,8DAA8D;IAC9D,OAAO,IAAI,GAAG,EAAE,CAAC;AAClB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,8BAA8B,CAC7C,QAAiC,EACjC,aAA0C;IAE1C,MAAM,iBAAiB,GAAkB,EAAE,CAAC;IAC5C,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE;QACrC,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC3B,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACjC;KACD;IAED,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,iBAAiB,CAAC;IACjD,OAAO;QACN,GAAG,8BAA8B,CAAC,QAAQ,CAAC;QAC3C,gBAAgB;KAChB,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAqB;IAClD,OAAO,MAAM,CAAC,YAAY,KAAK,SAAS,IAAI,MAAM,CAAC,oBAAoB,KAAK,SAAS,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,YAAY,CAC3B,UAAuD,EACvD,IAAyB;IAEzB,IAAI,IAAI,KAAK,gBAAgB,CAAC,UAAU,EAAE;QACzC,OAAO,gBAAgB,CAAC;KACxB;IACD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAChE,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC/B,UAAuD,EACvD,IAAyB;IAEzB,OAAO,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,aAAa,CAAC;AACrD,CAAC;AA6BD,SAAS,kBAAkB;IAC1B,OAAO;QACN,QAAQ,EAAE,IAAI,GAAG,EAAE;QACnB,QAAQ,EAAE,IAAI,GAAG,EAAE;QACnB,aAAa,EAAE,IAAI,GAAG,EAAE;QACxB,aAAa,EAAE,IAAI,GAAG,EAAE;QACxB,iBAAiB,EAAE,IAAI,GAAG,EAAE;KAC5B,CAAC;AACH,CAAC;AASD,SAAS,kBAAkB,CAAC,cAAsB;IACjD,OAAO;QACN,cAAc;KACd,CAAC;AACH,CAAC;AAWD,SAAS,oBAAoB,CAAI,eAAmC;IACnE,MAAM,UAAU,GAAuB,IAAI,GAAG,EAAE,CAAC;IACjD,MAAM,UAAU,GAAuB,IAAI,GAAG,EAAE,CAAC;IACjD,MAAM,MAAM,GAAG,CAAC,MAAwB,EAAE,EAAE,CAC3C,MAAM,KAAK,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC;IAE1F,MAAM,UAAU,GAAG,CAAC,MAAwB,EAAE,EAAE,CAC/C,MAAM,KAAK,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;IAE9D,MAAM,OAAO,GAAG;QACf,KAAK,EAAE,eAAe;QACtB,UAAU;QACV,UAAU;QACV,gBAAgB,EAAE,KAAK;QACvB,GAAG,EAAE,CACJ,MAAwB,EACxB,QAAiC,EACjC,EAAoB,EACpB,KAAa,EACb,QAAiB,EACjB,oBAA6B,EAC5B,EAAE;YACH,IAAI,oBAAoB,EAAE;gBACzB,MAAM,aAAa,GAClB,MAAM,KAAK,gBAAgB,CAAC,MAAM;oBACjC,CAAC,CAAC,eAAe,CAAC,aAAa;oBAC/B,CAAC,CAAC,eAAe,CAAC,aAAa,CAAC;gBAElC,MAAM,aAAa,GAAI,EAAa,GAAG,KAAK,GAAG,CAAC,CAAC;gBACjD,IAAI,OAAO,GAAG,EAAE,CAAC;gBACjB,OAAO,OAAO,IAAI,aAAa,EAAE;oBAChC,MAAM,cAAc,GAAG,yBAAyB,CAC/C,aAAa,EACb,QAAQ,EACR,OAAO,EACP,aAAa,GAAG,OAAO,GAAG,CAAC,CAC3B,CAAC;oBACF,IAAI,cAAc,CAAC,KAAK,KAAK,SAAS,EAAE;wBACvC,eAAe,CAAC,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;qBAC5D;oBAED,OAAO,GAAG,KAAK,CAAC,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;iBACjD;gBAED,IACC,yBAAyB,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,SAAS,EAC/E;oBACD,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;iBAChC;aACD;YACD,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACnE,CAAC;QACD,GAAG,EAAE,CACJ,MAAwB,EACxB,QAAiC,EACjC,EAAoB,EACpB,KAAa,EACb,aAAsB,EACrB,EAAE;YACH,IAAI,aAAa,EAAE;gBAClB,kBAAkB,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;aAC5D;YACD,OAAO,yBAAyB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACvE,CAAC;KACD,CAAC;IAEF,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAI,OAA8B,EAAE,SAAY;IACpE,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE;QACtD,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE;YAC7B,wEAAwE;YACxE,sEAAsE;YACtE,yFAAyF;YACzF,kBAAkB,CACjB,OAAO,CAAC,KAAK,CAAC,aAAa,EAC3B,QAAQ,EACR,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAClB,KAAK,CAAC,MAAM,EACZ,SAAS,CACT,CAAC;SACF;KACD;IAED,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE;QACtD,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE;YAC7B,oBAAoB;YACpB,kBAAkB,CACjB,OAAO,CAAC,KAAK,CAAC,aAAa,EAC3B,QAAQ,EACR,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAClB,KAAK,CAAC,MAAM,EACZ,SAAS,CACT,CAAC;SACF;KACD;IAED,IAAI,OAAO,CAAC,gBAAgB,EAAE;QAC7B,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;KAC/C;AACF,CAAC;AAED,SAAS,oBAAoB,CAC5B,UAAsC,SAAS,EAC/C,QAAgB,CAAC,CAAC,EAClB,YAAiD,SAAS,EAC1D,2BAA+C,SAAS,EACxD,MAAmC;IAEnC,MAAM,SAAS,GAA8B,EAAE,YAAY,EAAE,OAAO,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC;IACpF,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;QACpD,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;KAChC;IACD,IAAI,KAAK,IAAI,CAAC,EAAE;QACf,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;KAC/B;IACD,IAAI,wBAAwB,KAAK,SAAS,IAAI,wBAAwB,GAAG,CAAC,EAAE;QAC3E,SAAS,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;KAC9D;IACD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE;QAC5C,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC;KAC1B;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,MAAM,OAAO,kBAAmB,SAAQ,WAA6B;IAIpE,YACC,MAA0D,EAC1D,cAAkD;QAElD,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAPvB,qBAAgB,GAAW,CAAC,CAAC;QAQpC,IAAI,CAAC,WAAW,GAAG,oBAAoB,EAAE,CAAC;IAC3C,CAAC;IAEe,gBAAgB;QAC/B,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC,EAAE;YAChC,IAAI,CAAC,WAAW,GAAG,oBAAoB,EAAE,CAAC;SAC1C;IACF,CAAC;IAEe,eAAe;QAC9B,MAAM,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAClF,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC,EAAE;YAChC,IAAI,CAAC,WAAW,GAAG,oBAAoB,EAAE,CAAC;SAC1C;IACF,CAAC;IAEM,UAAU,CAChB,OAAyB,EACzB,UAAgD;QAEhD,MAAM,OAAO,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,IAAI,MAAM,KAAK,CAAC,EAAE;YACjB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;SAC1B;QACD,MAAM,MAAM,GAA+B,IAAI,GAAG,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAChC,IAAI,EAAE,GAAG,OAAO,CAAC;QAEjB,0FAA0F;QAC1F,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACrE,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,MAAgC,EAAE,kBAAkB,CAAC,CAAC,CAAC;YAClF,EAAE,GAAG,KAAK,CAAE,EAAa,GAAG,CAAC,CAAC,CAAC;SAC/B;QACD,OAAO;YACN,IAAI,EAAE,QAAQ;YACd,MAAM;SACN,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACI,YAAY,CAClB,KAAkB,EAClB,SAA8B,EAC9B,MAAsB,EACtB,QAA0B,KAAK,CAAC,CAAC,CAAC,CAAC;QAEnC,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAChE,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1D,CAAC;IAEM,aAAa,CAAC,OAA0B,EAAE,QAA0B,KAAK,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACzC,cAAc,CACb,MAAM,CAAC,IAAI,KAAK,QAAQ;YACvB,CAAC,CAAC,oBAAoB,CACpB,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,MAAM,CAAC,MAAM,CACZ;YACH,CAAC,CAAC,oBAAoB,CACpB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CACjE,CACJ,CACD,CAAC;QACF,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACrE,IAAI,KAAK,IAAI,CAAC,EAAE;YACf,cAAc,CAAC,KAAK,GAAG,KAAK,CAAC;SAC7B;QACD,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IAEM,UAAU,CAAC,KAAc;QAC/B,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAChD,CAAC;IAEO,cAAc,CACrB,KAAkB,EAClB,SAA8B,EAC9B,MAAsB;QAEtB,IAAI,cAAc,GAAmB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAErF,IAAI,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC;QACjC,OAAO,aAAa,KAAK,SAAS,EAAE;YACnC,MAAM,UAAU,GAAkB,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;YACnE,MAAM,WAAW,GAAG,gBAAgB,CAAC,aAAa,CAAC,MAAM,CAAC,gBAAgB,CACzE,aAAa,CAAC,WAAW,EACzB,UAAU,CACV,CAAC;YACF,cAAc,GAAG,IAAI,GAAG,CAAC;gBACxB;oBACC,aAAa,CAAC,WAAW;oBACzB,EAAE,SAAS,EAAE,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE;iBACtE;aACD,CAAC,CAAC;YACH,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC;SACrC;QAED,OAAO,cAAc,CAAC;IACvB,CAAC;IAEM,uBAAuB,CAAC,IAAY;QAC1C,MAAM,UAAU,GAAkB;YACjC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;SACzC,CAAC;QACF,MAAM,WAAW,GAAG,gBAAgB,CAAC,aAAa,CAAC,MAAM,CAAC,gBAAgB,CACzE,IAAI,CAAC,WAAW,EAChB,UAAU,CACV,CAAC;QACF,IAAI,CAAC,YAAY,CAChB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,EAChD,gBAAgB,CAAC,UAAU,EAC3B,KAAK,CAAC,WAAW,CAAC,CAClB,CAAC;IACH,CAAC;CACD;AAyBD,SAAS,2BAA2B,CAAC,OAAyC;IAI7E,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;IACf,MAAM,QAAQ,GAAmB,EAAE,CAAC;IACpC,KAAK,MAAM,YAAY,IAAI,OAAO,EAAE;QACnC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;QACnC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC5C,QAAQ,CAAC,IAAI,CAAC,GAAG,4BAA4B,CAAC,YAAY,CAAC,CAAC,CAAC;KAC7D;IAED,MAAM,SAAS,GAAG,IAAI,GAAG,EAAe,CAAC;IACzC,MAAM,mBAAmB,GAAkB,EAAE,CAAC;IAC9C,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;QAC5B,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;YAClC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC1C;KACD;IAED,mBAAmB,CAAC,OAAO,EAAE,CAAC;IAC9B,KAAK,MAAM,QAAQ,IAAI,mBAAmB,EAAE;QAC3C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;SAC5B;KACD;IAED,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,4BAA4B,CACpC,YAA4C;IAE5C,MAAM,QAAQ,GAAmB,EAAE,CAAC;IACpC,IAAI,YAAY,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE;QAChD,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;KAChD;SAAM,IAAI,YAAY,CAAC,QAAQ,KAAK,SAAS,EAAE;QAC/C,MAAM,IAAI,GAA0B,EAAE,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC;QACxE,IAAI,YAAY,CAAC,UAAU,KAAK,SAAS,EAAE;YAC1C,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;SAC1C;QACD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACpB;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAsC;IACvE,OAAO,MAAM,CAAC,QAAQ,IAAI,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,oBAAoB,CAC5B,QAA6C;IAE7C,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QACpD,OAAO,SAAS,CAAC;KACjB;IACD,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC7B,CAAC","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 { ICodecFamily, ICodecOptions, IJsonCodec, makeCodecFamily } from \"../../codec\";\nimport {\n\tChangeFamily,\n\tEditBuilder,\n\tChangeRebaser,\n\tFieldKindIdentifier,\n\tFieldKey,\n\tUpPath,\n\tTaggedChange,\n\tRevisionTag,\n\ttagChange,\n\tmakeAnonChange,\n\tChangeFamilyEditor,\n\tFieldUpPath,\n\tChangesetLocalId,\n\tisEmptyFieldChanges,\n\tRevisionMetadataSource,\n\tRevisionInfo,\n\trevisionMetadataSourceFromInfo,\n\tChangeAtomIdMap,\n\tmakeDetachedNodeId,\n\tITreeCursor,\n\temptyDelta,\n\tDeltaFieldMap,\n\tDeltaFieldChanges,\n\tDeltaDetachedNodeBuild,\n\tDeltaRoot,\n\tITreeCursorSynchronous,\n\tDeltaDetachedNodeId,\n\tEncodedRevisionTag,\n} from \"../../core\";\nimport {\n\tbrand,\n\tforEachInNestedMap,\n\tgetOrAddEmptyToMap,\n\tgetOrAddInMap,\n\tIdAllocationState,\n\tIdAllocator,\n\tidAllocatorFromMaxId,\n\tidAllocatorFromState,\n\tisReadonlyArray,\n\tMutable,\n} from \"../../util\";\nimport { MemoizedIdRangeAllocator } from \"../memoizedIdRangeAllocator\";\nimport { TreeChunk, chunkTree, defaultChunkPolicy, makeFieldBatchCodec } from \"../chunked-forest\";\nimport {\n\tCrossFieldManager,\n\tCrossFieldMap,\n\tCrossFieldQuerySet,\n\tCrossFieldTarget,\n\taddCrossFieldQuery,\n\tgetFirstFromCrossFieldMap,\n\tsetInCrossFieldMap,\n} from \"./crossFieldQueries\";\nimport {\n\tFieldChangeHandler,\n\tNodeExistenceState,\n\tRebaseRevisionMetadata,\n} from \"./fieldChangeHandler\";\nimport { FieldKind, FieldKindWithEditor, withEditor } from \"./fieldKind\";\nimport { convertGenericChange, genericFieldKind, newGenericChangeset } from \"./genericFieldKind\";\nimport { GenericChangeset } from \"./genericFieldKindTypes\";\nimport {\n\tFieldChange,\n\tFieldChangeMap,\n\tFieldChangeset,\n\tModularChangeset,\n\tNodeChangeset,\n\tNodeExistsConstraint,\n} from \"./modularChangeTypes\";\nimport { makeV0Codec } from \"./modularChangeCodecs\";\nimport { EncodedModularChangeset } from \"./modularChangeFormat\";\n\n/**\n * Implementation of ChangeFamily which delegates work in a given field to the appropriate FieldKind\n * as determined by the schema.\n */\nexport class ModularChangeFamily\n\timplements ChangeFamily<ModularEditBuilder, ModularChangeset>, ChangeRebaser<ModularChangeset>\n{\n\tpublic static readonly emptyChange: ModularChangeset = makeModularChangeset();\n\n\tpublic readonly latestCodec: IJsonCodec<ModularChangeset, EncodedModularChangeset>;\n\n\tpublic readonly codecs: ICodecFamily<ModularChangeset>;\n\n\tpublic constructor(\n\t\tpublic readonly fieldKinds: ReadonlyMap<FieldKindIdentifier, FieldKindWithEditor>,\n\t\trevisionTagCodec: IJsonCodec<RevisionTag, EncodedRevisionTag>,\n\t\tcodecOptions: ICodecOptions,\n\t) {\n\t\tthis.latestCodec = makeV0Codec(\n\t\t\tfieldKinds,\n\t\t\trevisionTagCodec,\n\t\t\tmakeFieldBatchCodec(codecOptions),\n\t\t\tcodecOptions,\n\t\t);\n\t\tthis.codecs = makeCodecFamily([[0, this.latestCodec]]);\n\t}\n\n\tpublic get rebaser(): ChangeRebaser<ModularChangeset> {\n\t\treturn this;\n\t}\n\n\t/**\n\t * Produces an equivalent list of `FieldChangeset`s that all target the same {@link FieldKind}.\n\t * @param changes - The list of `FieldChange`s whose `FieldChangeset`s needs to be normalized.\n\t * @returns An object that contains both the equivalent list of `FieldChangeset`s that all\n\t * target the same {@link FieldKind}, and the `FieldKind` that they target.\n\t * The returned `FieldChangeset`s may be a shallow copy of the input `FieldChange`s.\n\t */\n\tprivate normalizeFieldChanges(\n\t\tchanges: readonly FieldChange[],\n\t\tgenId: IdAllocator,\n\t\trevisionMetadata: RevisionMetadataSource,\n\t): {\n\t\tfieldKind: FieldKindWithEditor;\n\t\tchangesets: FieldChangeset[];\n\t} {\n\t\t// TODO: Handle the case where changes have conflicting field kinds\n\t\tconst nonGenericChange = changes.find(\n\t\t\t(change) => change.fieldKind !== genericFieldKind.identifier,\n\t\t);\n\t\tif (nonGenericChange === undefined) {\n\t\t\t// All the changes are generic\n\t\t\treturn { fieldKind: genericFieldKind, changesets: changes.map((c) => c.change) };\n\t\t}\n\t\tconst kind = nonGenericChange.fieldKind;\n\t\tconst fieldKind = getFieldKind(this.fieldKinds, kind);\n\t\tconst handler = fieldKind.changeHandler;\n\t\tconst normalizedChanges = changes.map((change) => {\n\t\t\tif (change.fieldKind === genericFieldKind.identifier) {\n\t\t\t\t// The cast is based on the `fieldKind` check above\n\t\t\t\tconst genericChange = change.change as unknown as GenericChangeset;\n\t\t\t\treturn convertGenericChange(\n\t\t\t\t\tgenericChange,\n\t\t\t\t\thandler,\n\t\t\t\t\t(children) =>\n\t\t\t\t\t\tthis.composeNodeChanges(\n\t\t\t\t\t\t\tchildren,\n\t\t\t\t\t\t\tgenId,\n\t\t\t\t\t\t\tnewCrossFieldTable(),\n\t\t\t\t\t\t\trevisionMetadata,\n\t\t\t\t\t\t),\n\t\t\t\t\tgenId,\n\t\t\t\t\trevisionMetadata,\n\t\t\t\t) as FieldChangeset;\n\t\t\t}\n\t\t\treturn change.change;\n\t\t});\n\t\treturn { fieldKind, changesets: normalizedChanges };\n\t}\n\n\tpublic compose(changes: TaggedChange<ModularChangeset>[]): ModularChangeset {\n\t\tconst { revInfos, maxId } = getRevInfoFromTaggedChanges(changes);\n\t\tif (changes.length === 1) {\n\t\t\tconst { fieldChanges, builds, constraintViolationCount } = changes[0].change;\n\t\t\treturn makeModularChangeset(\n\t\t\t\tfieldChanges,\n\t\t\t\tmaxId,\n\t\t\t\trevInfos,\n\t\t\t\tconstraintViolationCount,\n\t\t\t\tbuilds,\n\t\t\t);\n\t\t}\n\t\tconst revisionMetadata: RevisionMetadataSource = revisionMetadataSourceFromInfo(revInfos);\n\t\tconst idState: IdAllocationState = { maxId };\n\t\tconst genId: IdAllocator = idAllocatorFromState(idState);\n\t\tconst crossFieldTable = newCrossFieldTable<ComposeData>();\n\n\t\tconst changesWithoutConstraintViolations = changes.filter(\n\t\t\t(change) => (change.change.constraintViolationCount ?? 0) === 0,\n\t\t);\n\n\t\tconst composedFields = this.composeFieldMaps(\n\t\t\tchangesWithoutConstraintViolations.map((change) =>\n\t\t\t\ttagChange(change.change.fieldChanges, revisionFromTaggedChange(change)),\n\t\t\t),\n\t\t\tgenId,\n\t\t\tcrossFieldTable,\n\t\t\trevisionMetadata,\n\t\t);\n\n\t\tif (crossFieldTable.invalidatedFields.size > 0) {\n\t\t\tconst fieldsToUpdate = crossFieldTable.invalidatedFields;\n\t\t\tcrossFieldTable.invalidatedFields = new Set();\n\t\t\tfor (const field of fieldsToUpdate) {\n\t\t\t\tconst amendedChange = getChangeHandler(\n\t\t\t\t\tthis.fieldKinds,\n\t\t\t\t\tfield.fieldKind,\n\t\t\t\t).rebaser.amendCompose(\n\t\t\t\t\tfield.change,\n\t\t\t\t\t(children) =>\n\t\t\t\t\t\tthis.composeNodeChanges(children, genId, crossFieldTable, revisionMetadata),\n\t\t\t\t\tgenId,\n\t\t\t\t\tnewCrossFieldManager(crossFieldTable),\n\t\t\t\t\trevisionMetadata,\n\t\t\t\t);\n\t\t\t\tfield.change = brand(amendedChange);\n\t\t\t}\n\t\t}\n\n\t\tassert(\n\t\t\tcrossFieldTable.invalidatedFields.size === 0,\n\t\t\t0x59b /* Should not need more than one amend pass. */,\n\t\t);\n\t\tconst allBuilds: ChangeAtomIdMap<TreeChunk> = new Map();\n\t\tfor (const taggedChange of changes) {\n\t\t\tconst revision = revisionFromTaggedChange(taggedChange);\n\t\t\tconst change = taggedChange.change;\n\t\t\tif (change.builds) {\n\t\t\t\tfor (const [revisionKey, innerMap] of change.builds) {\n\t\t\t\t\tconst setRevisionKey = revisionKey ?? revision;\n\t\t\t\t\tconst innerDstMap = getOrAddInMap(allBuilds, setRevisionKey, new Map());\n\t\t\t\t\tfor (const [id, tree] of innerMap) {\n\t\t\t\t\t\t// Check for duplicate builds and prefer earlier ones.\n\t\t\t\t\t\t// There are two scenarios where we might get duplicate builds:\n\t\t\t\t\t\t// - In compositions of rebase sandwiches:\n\t\t\t\t\t\t// In that case, the trees are identical and it doesn't matter which one we pick.\n\t\t\t\t\t\t// - In compositions of commits that needed to include repair data refreshers (e.g., undos):\n\t\t\t\t\t\t// In that case, it's possible for the refreshers to contain different trees because the latter\n\t\t\t\t\t\t// refresher may already reflect the changes made by the commit that includes the earlier\n\t\t\t\t\t\t// refresher. This composition includes the changes made by the commit that includes the\n\t\t\t\t\t\t// earlier refresher, so we need to include the build for the earlier refresher, otherwise\n\t\t\t\t\t\t// the produced changeset will build a tree one which those changes have already been applied\n\t\t\t\t\t\t// and also try to apply the changes again, effectively applying them twice.\n\t\t\t\t\t\t// Note that it would in principle be possible to adopt the later build and exclude from the\n\t\t\t\t\t\t// composition all the changes already reflected on the tree, but that is not something we\n\t\t\t\t\t\t// care to support at this time.\n\t\t\t\t\t\tif (!innerDstMap.has(id)) {\n\t\t\t\t\t\t\tinnerDstMap.set(id, tree);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn makeModularChangeset(\n\t\t\tthis.pruneFieldMap(composedFields),\n\t\t\tidState.maxId,\n\t\t\trevInfos,\n\t\t\tundefined,\n\t\t\tallBuilds,\n\t\t);\n\t}\n\n\tprivate composeFieldMaps(\n\t\tchanges: TaggedChange<FieldChangeMap>[],\n\t\tgenId: IdAllocator,\n\t\tcrossFieldTable: CrossFieldTable<ComposeData>,\n\t\trevisionMetadata: RevisionMetadataSource,\n\t): FieldChangeMap {\n\t\tconst fieldChanges = new Map<FieldKey, FieldChange[]>();\n\t\tfor (const change of changes) {\n\t\t\tfor (const [key, fieldChange] of change.change) {\n\t\t\t\tconst fieldChangeToCompose =\n\t\t\t\t\tfieldChange.revision !== undefined || change.revision === undefined\n\t\t\t\t\t\t? fieldChange\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t...fieldChange,\n\t\t\t\t\t\t\t\trevision: change.revision,\n\t\t\t\t\t\t };\n\n\t\t\t\tgetOrAddEmptyToMap(fieldChanges, key).push(fieldChangeToCompose);\n\t\t\t}\n\t\t}\n\n\t\tconst composedFields: FieldChangeMap = new Map();\n\t\tfor (const [field, changesForField] of fieldChanges) {\n\t\t\tconst { fieldKind, changesets } = this.normalizeFieldChanges(\n\t\t\t\tchangesForField,\n\t\t\t\tgenId,\n\t\t\t\trevisionMetadata,\n\t\t\t);\n\t\t\tassert(\n\t\t\t\tchangesets.length === changesForField.length,\n\t\t\t\t0x4a8 /* Number of changes should be constant when normalizing */,\n\t\t\t);\n\n\t\t\tconst manager = newCrossFieldManager(crossFieldTable);\n\t\t\tconst taggedChangesets = changesets.map((change, i) =>\n\t\t\t\ttagChange(change, changesForField[i].revision),\n\t\t\t);\n\t\t\tconst composedChange = fieldKind.changeHandler.rebaser.compose(\n\t\t\t\ttaggedChangesets,\n\t\t\t\t(children) =>\n\t\t\t\t\tthis.composeNodeChanges(children, genId, crossFieldTable, revisionMetadata),\n\t\t\t\tgenId,\n\t\t\t\tmanager,\n\t\t\t\trevisionMetadata,\n\t\t\t);\n\n\t\t\tconst composedField: FieldChange = {\n\t\t\t\tfieldKind: fieldKind.identifier,\n\t\t\t\tchange: brand(composedChange),\n\t\t\t};\n\n\t\t\taddFieldData(manager, composedField);\n\n\t\t\t// TODO: Could optimize by checking that composedField is non-empty\n\t\t\tcomposedFields.set(field, composedField);\n\t\t}\n\t\treturn composedFields;\n\t}\n\n\tprivate composeNodeChanges(\n\t\tchanges: TaggedChange<NodeChangeset>[],\n\t\tgenId: IdAllocator,\n\t\tcrossFieldTable: CrossFieldTable<ComposeData>,\n\t\trevisionMetadata: RevisionMetadataSource,\n\t): NodeChangeset {\n\t\tconst fieldChanges: TaggedChange<FieldChangeMap>[] = [];\n\t\tlet nodeExistsConstraint: NodeExistsConstraint | undefined;\n\t\tfor (const change of changes) {\n\t\t\t// Composition is part of two codepaths:\n\t\t\t// 1. Combining multiple changesets into a transaction\n\t\t\t// 2. Generating a state update after rebasing a branch that has\n\t\t\t// more than one changeset\n\t\t\t// In the first codepath, none of the constraints will be violated and\n\t\t\t// we need the constraint to be stored on the given node in the transaction.\n\t\t\t// In the second path, the constraint may have been violated, but the state is tracked\n\t\t\t// as part of `constraintViolationCount` and the change won't be rebased further.\n\t\t\tif (change.change.nodeExistsConstraint !== undefined) {\n\t\t\t\tnodeExistsConstraint = { ...change.change.nodeExistsConstraint };\n\t\t\t}\n\n\t\t\tif (change.change.fieldChanges !== undefined) {\n\t\t\t\tfieldChanges.push(tagChange(change.change.fieldChanges, change.revision));\n\t\t\t}\n\t\t}\n\n\t\tconst composedFieldChanges = this.composeFieldMaps(\n\t\t\tfieldChanges,\n\t\t\tgenId,\n\t\t\tcrossFieldTable,\n\t\t\trevisionMetadata,\n\t\t);\n\t\tconst composedNodeChange: NodeChangeset = {};\n\n\t\tif (composedFieldChanges.size > 0) {\n\t\t\tcomposedNodeChange.fieldChanges = composedFieldChanges;\n\t\t}\n\n\t\tif (nodeExistsConstraint !== undefined) {\n\t\t\tcomposedNodeChange.nodeExistsConstraint = nodeExistsConstraint;\n\t\t}\n\n\t\treturn composedNodeChange;\n\t}\n\n\t/**\n\t * @param change - The change to invert.\n\t * @param isRollback - Whether the inverted change is meant to rollback a change on a branch as is the case when\n\t * performing a sandwich rebase.\n\t * @param repairStore - The store to query for repair data.\n\t */\n\tpublic invert(change: TaggedChange<ModularChangeset>, isRollback: boolean): ModularChangeset {\n\t\t// Return an empty inverse for changes with constraint violations\n\t\tif ((change.change.constraintViolationCount ?? 0) > 0) {\n\t\t\treturn makeModularChangeset();\n\t\t}\n\n\t\tconst idState: IdAllocationState = { maxId: change.change.maxId ?? -1 };\n\t\t// This idState is used for the whole of the IdAllocator's lifetime, which allows\n\t\t// this function to read the updated idState.maxId after more IDs are allocated.\n\t\t// TODO: add a getMax function to IdAllocator to make for a clearer contract.\n\t\tconst genId: IdAllocator = idAllocatorFromState(idState);\n\t\tconst crossFieldTable: InvertTable = {\n\t\t\t...newCrossFieldTable<FieldChange>(),\n\t\t\toriginalFieldToContext: new Map(),\n\t\t};\n\n\t\tconst { revInfos } = getRevInfoFromTaggedChanges([change]);\n\t\tconst revisionMetadata = revisionMetadataSourceFromInfo(revInfos);\n\n\t\tconst invertedFields = this.invertFieldMap(\n\t\t\ttagChange(change.change.fieldChanges, revisionFromTaggedChange(change)),\n\t\t\tgenId,\n\t\t\tcrossFieldTable,\n\t\t\trevisionMetadata,\n\t\t);\n\n\t\tif (crossFieldTable.invalidatedFields.size > 0) {\n\t\t\tconst fieldsToUpdate = crossFieldTable.invalidatedFields;\n\t\t\tcrossFieldTable.invalidatedFields = new Set();\n\t\t\tfor (const fieldChange of fieldsToUpdate) {\n\t\t\t\tconst originalFieldChange = fieldChange.change;\n\t\t\t\tconst context = crossFieldTable.originalFieldToContext.get(fieldChange);\n\t\t\t\tassert(\n\t\t\t\t\tcontext !== undefined,\n\t\t\t\t\t0x851 /* Should have context for every invalidated field */,\n\t\t\t\t);\n\t\t\t\tconst { invertedField, revision } = context;\n\n\t\t\t\tconst amendedChange = getChangeHandler(\n\t\t\t\t\tthis.fieldKinds,\n\t\t\t\t\tfieldChange.fieldKind,\n\t\t\t\t).rebaser.invert(\n\t\t\t\t\ttagChange(originalFieldChange, revision),\n\t\t\t\t\t(nodeChangeset) => nodeChangeset,\n\t\t\t\t\tgenId,\n\t\t\t\t\tnewCrossFieldManager(crossFieldTable),\n\t\t\t\t\trevisionMetadata,\n\t\t\t\t);\n\t\t\t\tinvertedField.change = brand(amendedChange);\n\t\t\t}\n\n\t\t\t// TODO: See if we there's a reasonable way to assert that\n\t\t\t// running a third pass would produce the same results.\n\t\t}\n\n\t\tconst revInfo = change.change.revisions;\n\t\treturn makeModularChangeset(\n\t\t\tinvertedFields,\n\t\t\tidState.maxId,\n\t\t\trevInfo === undefined\n\t\t\t\t? undefined\n\t\t\t\t: (isRollback\n\t\t\t\t\t\t? revInfo.map(({ revision }) => ({ revision, rollbackOf: revision }))\n\t\t\t\t\t\t: Array.from(revInfo)\n\t\t\t\t ).reverse(),\n\t\t\tchange.change.constraintViolationCount,\n\t\t);\n\t}\n\n\tprivate invertFieldMap(\n\t\tchanges: TaggedChange<FieldChangeMap>,\n\t\tgenId: IdAllocator,\n\t\tcrossFieldTable: InvertTable,\n\t\trevisionMetadata: RevisionMetadataSource,\n\t): FieldChangeMap {\n\t\tconst invertedFields: FieldChangeMap = new Map();\n\n\t\tfor (const [field, fieldChange] of changes.change) {\n\t\t\tconst { revision } = fieldChange.revision !== undefined ? fieldChange : changes;\n\n\t\t\tconst manager = newCrossFieldManager(crossFieldTable);\n\t\t\tconst invertedChange = getChangeHandler(\n\t\t\t\tthis.fieldKinds,\n\t\t\t\tfieldChange.fieldKind,\n\t\t\t).rebaser.invert(\n\t\t\t\t{ revision, change: fieldChange.change },\n\t\t\t\t(childChanges) =>\n\t\t\t\t\tthis.invertNodeChange(\n\t\t\t\t\t\t{ revision, change: childChanges },\n\t\t\t\t\t\tgenId,\n\t\t\t\t\t\tcrossFieldTable,\n\t\t\t\t\t\trevisionMetadata,\n\t\t\t\t\t),\n\t\t\t\tgenId,\n\t\t\t\tmanager,\n\t\t\t\trevisionMetadata,\n\t\t\t);\n\n\t\t\tconst invertedFieldChange: FieldChange = {\n\t\t\t\t...fieldChange,\n\t\t\t\tchange: brand(invertedChange),\n\t\t\t};\n\t\t\tinvertedFields.set(field, invertedFieldChange);\n\n\t\t\tcrossFieldTable.originalFieldToContext.set(fieldChange, {\n\t\t\t\tinvertedField: invertedFieldChange,\n\t\t\t\trevision,\n\t\t\t});\n\n\t\t\taddFieldData(manager, fieldChange);\n\t\t}\n\n\t\treturn invertedFields;\n\t}\n\n\tprivate invertNodeChange(\n\t\tchange: TaggedChange<NodeChangeset>,\n\t\tgenId: IdAllocator,\n\t\tcrossFieldTable: InvertTable,\n\t\trevisionMetadata: RevisionMetadataSource,\n\t): NodeChangeset {\n\t\tconst inverse: NodeChangeset = {};\n\n\t\tif (change.change.fieldChanges !== undefined) {\n\t\t\tinverse.fieldChanges = this.invertFieldMap(\n\t\t\t\t{ ...change, change: change.change.fieldChanges },\n\t\t\t\tgenId,\n\t\t\t\tcrossFieldTable,\n\t\t\t\trevisionMetadata,\n\t\t\t);\n\t\t}\n\n\t\treturn inverse;\n\t}\n\n\tpublic rebase(\n\t\tchange: ModularChangeset,\n\t\tover: TaggedChange<ModularChangeset>,\n\t\trevisionMetadata: RevisionMetadataSource,\n\t): ModularChangeset {\n\t\tconst maxId = Math.max(change.maxId ?? -1, over.change.maxId ?? -1);\n\t\tconst idState: IdAllocationState = { maxId };\n\t\tconst genId: IdAllocator = idAllocatorFromState(idState);\n\t\tconst crossFieldTable: RebaseTable = {\n\t\t\t...newCrossFieldTable<FieldChange>(),\n\t\t\trebasedFieldToContext: new Map(),\n\t\t};\n\n\t\tlet constraintState = newConstraintState(change.constraintViolationCount ?? 0);\n\n\t\tconst getBaseRevisions = () =>\n\t\t\trevisionInfoFromTaggedChange(over).map((info) => info.revision);\n\n\t\tconst rebaseMetadata = {\n\t\t\t...revisionMetadata,\n\t\t\tgetBaseRevisions,\n\t\t};\n\n\t\tconst rebasedFields = this.rebaseFieldMap(\n\t\t\tchange.fieldChanges,\n\t\t\ttagChange(over.change.fieldChanges, revisionFromTaggedChange(over)),\n\t\t\tgenId,\n\t\t\tcrossFieldTable,\n\t\t\t() => true,\n\t\t\trebaseMetadata,\n\t\t\tconstraintState,\n\t\t);\n\n\t\tif (crossFieldTable.invalidatedFields.size > 0) {\n\t\t\tconst fieldsToUpdate = crossFieldTable.invalidatedFields;\n\t\t\tcrossFieldTable.invalidatedFields = new Set();\n\t\t\tconstraintState = newConstraintState(change.constraintViolationCount ?? 0);\n\t\t\tfor (const field of fieldsToUpdate) {\n\t\t\t\t// TODO: Should we copy the context table out before this loop?\n\t\t\t\tconst context = crossFieldTable.rebasedFieldToContext.get(field);\n\t\t\t\tassert(context !== undefined, 0x852 /* Every field should have a context */);\n\t\t\t\tconst {\n\t\t\t\t\tfieldKind,\n\t\t\t\t\tchangesets: [fieldChangeset, baseChangeset],\n\t\t\t\t} = this.normalizeFieldChanges(\n\t\t\t\t\t[context.newChange, context.baseChange],\n\t\t\t\t\tgenId,\n\t\t\t\t\trevisionMetadata,\n\t\t\t\t);\n\n\t\t\t\tfield.change = fieldKind.changeHandler.rebaser.rebase(\n\t\t\t\t\tfieldChangeset,\n\t\t\t\t\ttagChange(baseChangeset, context.baseRevision),\n\t\t\t\t\t(node) => node,\n\t\t\t\t\tgenId,\n\t\t\t\t\tnewCrossFieldManager(crossFieldTable),\n\t\t\t\t\trebaseMetadata,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn makeModularChangeset(\n\t\t\tthis.pruneFieldMap(rebasedFields),\n\t\t\tidState.maxId,\n\t\t\tchange.revisions,\n\t\t\tconstraintState.violationCount,\n\t\t\tchange.builds,\n\t\t);\n\t}\n\n\tprivate rebaseFieldMap(\n\t\tchange: FieldChangeMap,\n\t\tover: TaggedChange<FieldChangeMap>,\n\t\tgenId: IdAllocator,\n\t\tcrossFieldTable: RebaseTable,\n\t\tfieldFilter: (baseChange: FieldChange, newChange: FieldChange | undefined) => boolean,\n\t\trevisionMetadata: RebaseRevisionMetadata,\n\t\tconstraintState: ConstraintState,\n\t\texistenceState: NodeExistenceState = NodeExistenceState.Alive,\n\t): FieldChangeMap {\n\t\tconst rebasedFields: FieldChangeMap = new Map();\n\n\t\t// Rebase fields contained in the base changeset\n\t\tfor (const [field, baseChanges] of over.change) {\n\t\t\tif (!fieldFilter(baseChanges, change.get(field))) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst fieldChange: FieldChange = change.get(field) ?? {\n\t\t\t\tfieldKind: genericFieldKind.identifier,\n\t\t\t\tchange: brand(newGenericChangeset()),\n\t\t\t};\n\t\t\tconst {\n\t\t\t\tfieldKind,\n\t\t\t\tchangesets: [fieldChangeset, baseChangeset],\n\t\t\t} = this.normalizeFieldChanges([fieldChange, baseChanges], genId, revisionMetadata);\n\n\t\t\tconst { revision } = over;\n\t\t\tconst taggedBaseChange = { revision, change: baseChangeset };\n\t\t\tconst manager = newCrossFieldManager(crossFieldTable);\n\n\t\t\tconst rebaseChild = (\n\t\t\t\tchild: NodeChangeset | undefined,\n\t\t\t\tbaseChild: NodeChangeset | undefined,\n\t\t\t\tstateChange: NodeExistenceState | undefined,\n\t\t\t) =>\n\t\t\t\tthis.rebaseNodeChange(\n\t\t\t\t\tchild,\n\t\t\t\t\t{ revision, change: baseChild },\n\t\t\t\t\tgenId,\n\t\t\t\t\tcrossFieldTable,\n\t\t\t\t\tfieldFilter,\n\t\t\t\t\trevisionMetadata,\n\t\t\t\t\tconstraintState,\n\t\t\t\t\tstateChange,\n\t\t\t\t);\n\n\t\t\tconst rebasedField = fieldKind.changeHandler.rebaser.rebase(\n\t\t\t\tfieldChangeset,\n\t\t\t\ttaggedBaseChange,\n\t\t\t\trebaseChild,\n\t\t\t\tgenId,\n\t\t\t\tmanager,\n\t\t\t\trevisionMetadata,\n\t\t\t);\n\n\t\t\tconst rebasedFieldChange: FieldChange = {\n\t\t\t\tfieldKind: fieldKind.identifier,\n\t\t\t\tchange: brand(rebasedField),\n\t\t\t};\n\n\t\t\trebasedFields.set(field, rebasedFieldChange);\n\n\t\t\taddFieldData(manager, rebasedFieldChange);\n\t\t\tcrossFieldTable.rebasedFieldToContext.set(rebasedFieldChange, {\n\t\t\t\tbaseChange: baseChanges,\n\t\t\t\tbaseRevision: revision,\n\t\t\t\tnewChange: fieldChange,\n\t\t\t});\n\t\t}\n\n\t\t// Rebase the fields of the new changeset which don't have a corresponding base field.\n\t\tfor (const [field, fieldChange] of change) {\n\t\t\tif (!over.change?.has(field)) {\n\t\t\t\tconst baseChanges: FieldChange = {\n\t\t\t\t\tfieldKind: genericFieldKind.identifier,\n\t\t\t\t\tchange: brand(newGenericChangeset()),\n\t\t\t\t};\n\n\t\t\t\tconst {\n\t\t\t\t\tfieldKind,\n\t\t\t\t\tchangesets: [fieldChangeset, baseChangeset],\n\t\t\t\t} = this.normalizeFieldChanges([fieldChange, baseChanges], genId, revisionMetadata);\n\n\t\t\t\tconst manager = newCrossFieldManager(crossFieldTable);\n\t\t\t\tconst rebasedChangeset = fieldKind.changeHandler.rebaser.rebase(\n\t\t\t\t\tfieldChangeset,\n\t\t\t\t\ttagChange(baseChangeset, over.revision),\n\t\t\t\t\t(child, baseChild) => {\n\t\t\t\t\t\tassert(\n\t\t\t\t\t\t\tbaseChild === undefined,\n\t\t\t\t\t\t\t0x5b6 /* This field should not have any base changes */,\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn this.rebaseNodeChange(\n\t\t\t\t\t\t\tchild,\n\t\t\t\t\t\t\ttagChange(undefined, over.revision),\n\t\t\t\t\t\t\tgenId,\n\t\t\t\t\t\t\tcrossFieldTable,\n\t\t\t\t\t\t\tfieldFilter,\n\t\t\t\t\t\t\trevisionMetadata,\n\t\t\t\t\t\t\tconstraintState,\n\t\t\t\t\t\t\texistenceState,\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t\tgenId,\n\t\t\t\t\tmanager,\n\t\t\t\t\trevisionMetadata,\n\t\t\t\t\texistenceState,\n\t\t\t\t);\n\t\t\t\tconst rebasedFieldChange: FieldChange = {\n\t\t\t\t\tfieldKind: fieldKind.identifier,\n\t\t\t\t\tchange: brand(rebasedChangeset),\n\t\t\t\t};\n\t\t\t\trebasedFields.set(field, rebasedFieldChange);\n\t\t\t\taddFieldData(manager, rebasedFieldChange);\n\t\t\t}\n\t\t}\n\n\t\treturn rebasedFields;\n\t}\n\n\tprivate rebaseNodeChange(\n\t\tchange: NodeChangeset | undefined,\n\t\tover: TaggedChange<NodeChangeset | undefined>,\n\t\tgenId: IdAllocator,\n\t\tcrossFieldTable: RebaseTable,\n\t\tfieldFilter: (baseChange: FieldChange, newChange: FieldChange | undefined) => boolean,\n\t\trevisionMetadata: RebaseRevisionMetadata,\n\t\tconstraintState: ConstraintState,\n\t\texistenceState: NodeExistenceState = NodeExistenceState.Alive,\n\t): NodeChangeset | undefined {\n\t\tif (change === undefined && over.change?.fieldChanges === undefined) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst baseMap: TaggedChange<FieldChangeMap> =\n\t\t\tover.change?.fieldChanges !== undefined\n\t\t\t\t? {\n\t\t\t\t\t\t...over,\n\t\t\t\t\t\tchange: over.change.fieldChanges,\n\t\t\t\t }\n\t\t\t\t: tagChange(new Map(), over.revision);\n\n\t\tconst fieldChanges = this.rebaseFieldMap(\n\t\t\tchange?.fieldChanges ?? new Map(),\n\t\t\tbaseMap,\n\t\t\tgenId,\n\t\t\tcrossFieldTable,\n\t\t\tfieldFilter,\n\t\t\trevisionMetadata,\n\t\t\tconstraintState,\n\t\t\texistenceState,\n\t\t);\n\n\t\tconst rebasedChange: NodeChangeset = {};\n\n\t\tif (fieldChanges.size > 0) {\n\t\t\trebasedChange.fieldChanges = fieldChanges;\n\t\t}\n\n\t\tif (change?.nodeExistsConstraint !== undefined) {\n\t\t\trebasedChange.nodeExistsConstraint = change.nodeExistsConstraint;\n\t\t}\n\n\t\t// If there's a node exists constraint and we deleted or revived the node, update constraint state\n\t\tif (rebasedChange.nodeExistsConstraint !== undefined) {\n\t\t\tconst violatedAfter = existenceState === NodeExistenceState.Dead;\n\n\t\t\tif (rebasedChange.nodeExistsConstraint.violated !== violatedAfter) {\n\t\t\t\trebasedChange.nodeExistsConstraint = {\n\t\t\t\t\t...rebasedChange.nodeExistsConstraint,\n\t\t\t\t\tviolated: violatedAfter,\n\t\t\t\t};\n\t\t\t\tconstraintState.violationCount += violatedAfter ? 1 : -1;\n\t\t\t}\n\t\t}\n\n\t\treturn rebasedChange;\n\t}\n\n\tprivate pruneFieldMap(changeset: FieldChangeMap): FieldChangeMap | undefined {\n\t\tconst prunedChangeset: FieldChangeMap = new Map();\n\t\tfor (const [field, fieldChange] of changeset) {\n\t\t\tconst handler = getChangeHandler(this.fieldKinds, fieldChange.fieldKind);\n\n\t\t\tconst prunedFieldChangeset = handler.rebaser.prune(fieldChange.change, (node) =>\n\t\t\t\tthis.pruneNodeChange(node),\n\t\t\t);\n\n\t\t\tif (!handler.isEmpty(prunedFieldChangeset)) {\n\t\t\t\tprunedChangeset.set(field, { ...fieldChange, change: brand(prunedFieldChangeset) });\n\t\t\t}\n\t\t}\n\n\t\treturn prunedChangeset.size > 0 ? prunedChangeset : undefined;\n\t}\n\n\tprivate pruneNodeChange(changeset: NodeChangeset): NodeChangeset | undefined {\n\t\tconst prunedFields =\n\t\t\tchangeset.fieldChanges !== undefined\n\t\t\t\t? this.pruneFieldMap(changeset.fieldChanges)\n\t\t\t\t: undefined;\n\n\t\tconst prunedChange = { ...changeset, fieldChanges: prunedFields };\n\t\tif (prunedChange.fieldChanges === undefined) {\n\t\t\tdelete prunedChange.fieldChanges;\n\t\t}\n\n\t\treturn isEmptyNodeChangeset(prunedChange) ? undefined : prunedChange;\n\t}\n\n\tpublic buildEditor(changeReceiver: (change: ModularChangeset) => void): ModularEditBuilder {\n\t\treturn new ModularEditBuilder(this, changeReceiver);\n\t}\n}\n\n/**\n * Returns the set of removed roots that should be in memory for the given change to be applied.\n * A removed root is relevant if any of the following is true:\n * - It is being inserted\n * - It is being restored\n * - It is being edited\n * - The ID it is associated with is being changed\n *\n * May be conservative by returning more removed roots than strictly necessary.\n *\n * Will never return IDs for non-root trees, even if they are removed.\n *\n * @param change - The change to be applied.\n * @param fieldKinds - The field kinds to delegate to.\n */\nexport function* relevantRemovedRoots(\n\t{ change, revision }: TaggedChange<ModularChangeset>,\n\tfieldKinds: ReadonlyMap<FieldKindIdentifier, FieldKindWithEditor>,\n): Iterable<DeltaDetachedNodeId> {\n\tyield* relevantRemovedRootsFromFields(change.fieldChanges, revision, fieldKinds);\n}\n\nfunction* relevantRemovedRootsFromFields(\n\tchange: FieldChangeMap,\n\trevision: RevisionTag | undefined,\n\tfieldKinds: ReadonlyMap<FieldKindIdentifier, FieldKindWithEditor>,\n): Iterable<DeltaDetachedNodeId> {\n\tfor (const [_, fieldChange] of change) {\n\t\tconst fieldRevision = fieldChange.revision ?? revision;\n\t\tconst handler = getChangeHandler(fieldKinds, fieldChange.fieldKind);\n\t\tconst delegate = function* (node: NodeChangeset): Iterable<DeltaDetachedNodeId> {\n\t\t\tif (node.fieldChanges !== undefined) {\n\t\t\t\tyield* relevantRemovedRootsFromFields(node.fieldChanges, fieldRevision, fieldKinds);\n\t\t\t}\n\t\t};\n\t\tyield* handler.relevantRemovedRoots(tagChange(fieldChange.change, fieldRevision), delegate);\n\t}\n}\n\n/**\n * @param change - The change to convert into a delta.\n * @param fieldKinds - The field kinds to delegate to.\n */\nexport function intoDelta(\n\ttaggedChange: TaggedChange<ModularChangeset>,\n\tfieldKinds: ReadonlyMap<FieldKindIdentifier, FieldKindWithEditor>,\n): DeltaRoot {\n\tconst change = taggedChange.change;\n\t// Return an empty delta for changes with constraint violations\n\tif ((change.constraintViolationCount ?? 0) > 0) {\n\t\treturn emptyDelta;\n\t}\n\n\tconst revision = revisionFromTaggedChange(taggedChange);\n\tconst idAllocator = MemoizedIdRangeAllocator.fromNextId();\n\tconst rootDelta: Mutable<DeltaRoot> = {};\n\tconst fieldDeltas = intoDeltaImpl(change.fieldChanges, revision, idAllocator, fieldKinds);\n\tif (fieldDeltas.size > 0) {\n\t\trootDelta.fields = fieldDeltas;\n\t}\n\tif (change.builds && change.builds.size > 0) {\n\t\tconst builds: DeltaDetachedNodeBuild[] = [];\n\t\tforEachInNestedMap(change.builds, (tree, major, minor) => {\n\t\t\tconst cursor = tree.cursor();\n\t\t\tassert(\n\t\t\t\tcursor.getFieldLength() === 1,\n\t\t\t\t0x853 /* each encoded chunk should only contain 1 node. */,\n\t\t\t);\n\t\t\tcursor.enterNode(0);\n\t\t\tbuilds.push({\n\t\t\t\tid: makeDetachedNodeId(major ?? revision, minor),\n\t\t\t\ttrees: [cursor],\n\t\t\t});\n\t\t});\n\t\trootDelta.build = builds;\n\t}\n\treturn rootDelta;\n}\n\n/**\n * @param change - The change to convert into a delta.\n * @param repairStore - The store to query for repair data.\n * @param path - The path of the node being altered by the change as defined by the input context.\n * Undefined for the root and for nodes that do not exist in the input context.\n */\nfunction intoDeltaImpl(\n\tchange: FieldChangeMap,\n\trevision: RevisionTag | undefined,\n\tidAllocator: MemoizedIdRangeAllocator,\n\tfieldKinds: ReadonlyMap<FieldKindIdentifier, FieldKindWithEditor>,\n): Map<FieldKey, DeltaFieldChanges> {\n\tconst delta: Map<FieldKey, DeltaFieldChanges> = new Map();\n\tfor (const [field, fieldChange] of change) {\n\t\tconst fieldRevision = fieldChange.revision ?? revision;\n\t\tconst deltaField = getChangeHandler(fieldKinds, fieldChange.fieldKind).intoDelta(\n\t\t\ttagChange(fieldChange.change, fieldRevision),\n\t\t\t(childChange): DeltaFieldMap =>\n\t\t\t\tdeltaFromNodeChange(tagChange(childChange, fieldRevision), idAllocator, fieldKinds),\n\t\t\tidAllocator,\n\t\t);\n\t\tif (!isEmptyFieldChanges(deltaField)) {\n\t\t\tdelta.set(field, deltaField);\n\t\t}\n\t}\n\treturn delta;\n}\n\nfunction deltaFromNodeChange(\n\t{ change, revision }: TaggedChange<NodeChangeset>,\n\tidAllocator: MemoizedIdRangeAllocator,\n\tfieldKinds: ReadonlyMap<FieldKindIdentifier, FieldKindWithEditor>,\n): DeltaFieldMap {\n\tif (change.fieldChanges !== undefined) {\n\t\treturn intoDeltaImpl(change.fieldChanges, revision, idAllocator, fieldKinds);\n\t}\n\t// TODO: update the API to allow undefined to be returned here\n\treturn new Map();\n}\n\n/**\n * @internal\n * @param revInfos - This should describe all revisions in the rebase path, even if not part of the current base changeset.\n * For example, when rebasing change B from a local branch [A, B, C] over a branch [X, Y], the `revInfos` must include\n * the changes [A⁻¹ X, Y, A'] for each rebase step of B.\n * @param baseRevisions - The set of revisions in the changeset being rebased over.\n * For example, when rebasing change B from a local branch [A, B, C] over a branch [X, Y], the `baseRevisions` must include\n * revisions [A⁻¹ X, Y, A'] if rebasing over the composition of all those changes, or\n * revision [A⁻¹] for the first rebase, then [X], etc. if rebasing over edits individually.\n * @returns - RebaseRevisionMetadata to be passed to `FieldChangeRebaser.rebase`*\n */\nexport function rebaseRevisionMetadataFromInfo(\n\trevInfos: readonly RevisionInfo[],\n\tbaseRevisions: (RevisionTag | undefined)[],\n): RebaseRevisionMetadata {\n\tconst filteredRevisions: RevisionTag[] = [];\n\tfor (const revision of baseRevisions) {\n\t\tif (revision !== undefined) {\n\t\t\tfilteredRevisions.push(revision);\n\t\t}\n\t}\n\n\tconst getBaseRevisions = () => filteredRevisions;\n\treturn {\n\t\t...revisionMetadataSourceFromInfo(revInfos),\n\t\tgetBaseRevisions,\n\t};\n}\n\nfunction isEmptyNodeChangeset(change: NodeChangeset): boolean {\n\treturn change.fieldChanges === undefined && change.nodeExistsConstraint === undefined;\n}\n\nexport function getFieldKind(\n\tfieldKinds: ReadonlyMap<FieldKindIdentifier, FieldKind>,\n\tkind: FieldKindIdentifier,\n): FieldKindWithEditor {\n\tif (kind === genericFieldKind.identifier) {\n\t\treturn genericFieldKind;\n\t}\n\tconst fieldKind = fieldKinds.get(kind);\n\tassert(fieldKind !== undefined, 0x3ad /* Unknown field kind */);\n\treturn withEditor(fieldKind);\n}\n\nexport function getChangeHandler(\n\tfieldKinds: ReadonlyMap<FieldKindIdentifier, FieldKind>,\n\tkind: FieldKindIdentifier,\n): FieldChangeHandler<unknown> {\n\treturn getFieldKind(fieldKinds, kind).changeHandler;\n}\n\ninterface CrossFieldTable<TFieldData> {\n\tsrcTable: CrossFieldMap<unknown>;\n\tdstTable: CrossFieldMap<unknown>;\n\tsrcDependents: CrossFieldMap<TFieldData>;\n\tdstDependents: CrossFieldMap<TFieldData>;\n\tinvalidatedFields: Set<TFieldData>;\n}\n\ninterface InvertTable extends CrossFieldTable<FieldChange> {\n\toriginalFieldToContext: Map<FieldChange, InvertContext>;\n}\n\ninterface InvertContext {\n\tinvertedField: FieldChange;\n\trevision: RevisionTag | undefined;\n}\n\ninterface RebaseTable extends CrossFieldTable<FieldChange> {\n\trebasedFieldToContext: Map<FieldChange, FieldChangeContext>;\n}\n\ninterface FieldChangeContext {\n\tbaseChange: FieldChange;\n\tnewChange: FieldChange;\n\tbaseRevision: RevisionTag | undefined;\n}\n\nfunction newCrossFieldTable<T>(): CrossFieldTable<T> {\n\treturn {\n\t\tsrcTable: new Map(),\n\t\tdstTable: new Map(),\n\t\tsrcDependents: new Map(),\n\t\tdstDependents: new Map(),\n\t\tinvalidatedFields: new Set(),\n\t};\n}\n\n/**\n * @internal\n */\ninterface ConstraintState {\n\tviolationCount: number;\n}\n\nfunction newConstraintState(violationCount: number): ConstraintState {\n\treturn {\n\t\tviolationCount,\n\t};\n}\n\ntype ComposeData = FieldChange;\n\ninterface CrossFieldManagerI<T> extends CrossFieldManager {\n\ttable: CrossFieldTable<T>;\n\tsrcQueries: CrossFieldQuerySet;\n\tdstQueries: CrossFieldQuerySet;\n\tfieldInvalidated: boolean;\n}\n\nfunction newCrossFieldManager<T>(crossFieldTable: CrossFieldTable<T>): CrossFieldManagerI<T> {\n\tconst srcQueries: CrossFieldQuerySet = new Map();\n\tconst dstQueries: CrossFieldQuerySet = new Map();\n\tconst getMap = (target: CrossFieldTarget) =>\n\t\ttarget === CrossFieldTarget.Source ? crossFieldTable.srcTable : crossFieldTable.dstTable;\n\n\tconst getQueries = (target: CrossFieldTarget) =>\n\t\ttarget === CrossFieldTarget.Source ? srcQueries : dstQueries;\n\n\tconst manager = {\n\t\ttable: crossFieldTable,\n\t\tsrcQueries,\n\t\tdstQueries,\n\t\tfieldInvalidated: false,\n\t\tset: (\n\t\t\ttarget: CrossFieldTarget,\n\t\t\trevision: RevisionTag | undefined,\n\t\t\tid: ChangesetLocalId,\n\t\t\tcount: number,\n\t\t\tnewValue: unknown,\n\t\t\tinvalidateDependents: boolean,\n\t\t) => {\n\t\t\tif (invalidateDependents) {\n\t\t\t\tconst dependentsMap =\n\t\t\t\t\ttarget === CrossFieldTarget.Source\n\t\t\t\t\t\t? crossFieldTable.srcDependents\n\t\t\t\t\t\t: crossFieldTable.dstDependents;\n\n\t\t\t\tconst lastChangedId = (id as number) + count - 1;\n\t\t\t\tlet firstId = id;\n\t\t\t\twhile (firstId <= lastChangedId) {\n\t\t\t\t\tconst dependentEntry = getFirstFromCrossFieldMap(\n\t\t\t\t\t\tdependentsMap,\n\t\t\t\t\t\trevision,\n\t\t\t\t\t\tfirstId,\n\t\t\t\t\t\tlastChangedId - firstId + 1,\n\t\t\t\t\t);\n\t\t\t\t\tif (dependentEntry.value !== undefined) {\n\t\t\t\t\t\tcrossFieldTable.invalidatedFields.add(dependentEntry.value);\n\t\t\t\t\t}\n\n\t\t\t\t\tfirstId = brand(firstId + dependentEntry.length);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\tgetFirstFromCrossFieldMap(getQueries(target), revision, id, count) !== undefined\n\t\t\t\t) {\n\t\t\t\t\tmanager.fieldInvalidated = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tsetInCrossFieldMap(getMap(target), revision, id, count, newValue);\n\t\t},\n\t\tget: (\n\t\t\ttarget: CrossFieldTarget,\n\t\t\trevision: RevisionTag | undefined,\n\t\t\tid: ChangesetLocalId,\n\t\t\tcount: number,\n\t\t\taddDependency: boolean,\n\t\t) => {\n\t\t\tif (addDependency) {\n\t\t\t\taddCrossFieldQuery(getQueries(target), revision, id, count);\n\t\t\t}\n\t\t\treturn getFirstFromCrossFieldMap(getMap(target), revision, id, count);\n\t\t},\n\t};\n\n\treturn manager;\n}\n\nfunction addFieldData<T>(manager: CrossFieldManagerI<T>, fieldData: T) {\n\tfor (const [revision, rangeMap] of manager.srcQueries) {\n\t\tfor (const range of rangeMap) {\n\t\t\t// We assume that if there is already an entry for this ID it is because\n\t\t\t// a field handler has called compose on the same node multiple times.\n\t\t\t// In this case we only want to amend the latest version, so we overwrite the dependency.\n\t\t\tsetInCrossFieldMap(\n\t\t\t\tmanager.table.srcDependents,\n\t\t\t\trevision,\n\t\t\t\tbrand(range.start),\n\t\t\t\trange.length,\n\t\t\t\tfieldData,\n\t\t\t);\n\t\t}\n\t}\n\n\tfor (const [revision, rangeMap] of manager.dstQueries) {\n\t\tfor (const range of rangeMap) {\n\t\t\t// See above comment\n\t\t\tsetInCrossFieldMap(\n\t\t\t\tmanager.table.dstDependents,\n\t\t\t\trevision,\n\t\t\t\tbrand(range.start),\n\t\t\t\trange.length,\n\t\t\t\tfieldData,\n\t\t\t);\n\t\t}\n\t}\n\n\tif (manager.fieldInvalidated) {\n\t\tmanager.table.invalidatedFields.add(fieldData);\n\t}\n}\n\nfunction makeModularChangeset(\n\tchanges: FieldChangeMap | undefined = undefined,\n\tmaxId: number = -1,\n\trevisions: readonly RevisionInfo[] | undefined = undefined,\n\tconstraintViolationCount: number | undefined = undefined,\n\tbuilds?: ChangeAtomIdMap<TreeChunk>,\n): ModularChangeset {\n\tconst changeset: Mutable<ModularChangeset> = { fieldChanges: changes ?? new Map() };\n\tif (revisions !== undefined && revisions.length > 0) {\n\t\tchangeset.revisions = revisions;\n\t}\n\tif (maxId >= 0) {\n\t\tchangeset.maxId = brand(maxId);\n\t}\n\tif (constraintViolationCount !== undefined && constraintViolationCount > 0) {\n\t\tchangeset.constraintViolationCount = constraintViolationCount;\n\t}\n\tif (builds !== undefined && builds.size > 0) {\n\t\tchangeset.builds = builds;\n\t}\n\treturn changeset;\n}\n\nexport class ModularEditBuilder extends EditBuilder<ModularChangeset> {\n\tprivate transactionDepth: number = 0;\n\tprivate idAllocator: IdAllocator;\n\n\tpublic constructor(\n\t\tfamily: ChangeFamily<ChangeFamilyEditor, ModularChangeset>,\n\t\tchangeReceiver: (change: ModularChangeset) => void,\n\t) {\n\t\tsuper(family, changeReceiver);\n\t\tthis.idAllocator = idAllocatorFromMaxId();\n\t}\n\n\tpublic override enterTransaction(): void {\n\t\tthis.transactionDepth += 1;\n\t\tif (this.transactionDepth === 1) {\n\t\t\tthis.idAllocator = idAllocatorFromMaxId();\n\t\t}\n\t}\n\n\tpublic override exitTransaction(): void {\n\t\tassert(this.transactionDepth > 0, 0x5b9 /* Cannot exit inexistent transaction */);\n\t\tthis.transactionDepth -= 1;\n\t\tif (this.transactionDepth === 0) {\n\t\t\tthis.idAllocator = idAllocatorFromMaxId();\n\t\t}\n\t}\n\n\tpublic buildTrees(\n\t\tfirstId: ChangesetLocalId,\n\t\tnewContent: ITreeCursor | readonly ITreeCursor[],\n\t): GlobalEditDescription {\n\t\tconst content = isReadonlyArray(newContent) ? newContent : [newContent];\n\t\tconst length = content.length;\n\t\tif (length === 0) {\n\t\t\treturn { type: \"global\" };\n\t\t}\n\t\tconst builds: ChangeAtomIdMap<TreeChunk> = new Map();\n\t\tconst innerMap = new Map();\n\t\tbuilds.set(undefined, innerMap);\n\t\tlet id = firstId;\n\n\t\t// TODO:YA6307 adopt more efficient representation, likely based on contiguous runs of IDs\n\t\tfor (const cursor of content) {\n\t\t\tassert(!innerMap.has(id), 0x854 /* Unexpected duplicate build ID */);\n\t\t\tinnerMap.set(id, chunkTree(cursor as ITreeCursorSynchronous, defaultChunkPolicy));\n\t\t\tid = brand((id as number) + 1);\n\t\t}\n\t\treturn {\n\t\t\ttype: \"global\",\n\t\t\tbuilds,\n\t\t};\n\t}\n\n\t/**\n\t * Adds a change to the edit builder\n\t * @param field - the field which is being edited\n\t * @param fieldKind - the kind of the field\n\t * @param change - the change to the field\n\t * @param maxId - the highest `ChangesetLocalId` used in this change\n\t */\n\tpublic submitChange(\n\t\tfield: FieldUpPath,\n\t\tfieldKind: FieldKindIdentifier,\n\t\tchange: FieldChangeset,\n\t\tmaxId: ChangesetLocalId = brand(-1),\n\t): void {\n\t\tconst changeMap = this.buildChangeMap(field, fieldKind, change);\n\t\tthis.applyChange(makeModularChangeset(changeMap, maxId));\n\t}\n\n\tpublic submitChanges(changes: EditDescription[], maxId: ChangesetLocalId = brand(-1)) {\n\t\tconst changeMaps = changes.map((change) =>\n\t\t\tmakeAnonChange(\n\t\t\t\tchange.type === \"global\"\n\t\t\t\t\t? makeModularChangeset(\n\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\tchange.builds,\n\t\t\t\t\t )\n\t\t\t\t\t: makeModularChangeset(\n\t\t\t\t\t\t\tthis.buildChangeMap(change.field, change.fieldKind, change.change),\n\t\t\t\t\t ),\n\t\t\t),\n\t\t);\n\t\tconst composedChange = this.changeFamily.rebaser.compose(changeMaps);\n\t\tif (maxId >= 0) {\n\t\t\tcomposedChange.maxId = maxId;\n\t\t}\n\t\tthis.applyChange(composedChange);\n\t}\n\n\tpublic generateId(count?: number): ChangesetLocalId {\n\t\treturn brand(this.idAllocator.allocate(count));\n\t}\n\n\tprivate buildChangeMap(\n\t\tfield: FieldUpPath,\n\t\tfieldKind: FieldKindIdentifier,\n\t\tchange: FieldChangeset,\n\t): FieldChangeMap {\n\t\tlet fieldChangeMap: FieldChangeMap = new Map([[field.field, { fieldKind, change }]]);\n\n\t\tlet remainingPath = field.parent;\n\t\twhile (remainingPath !== undefined) {\n\t\t\tconst nodeChange: NodeChangeset = { fieldChanges: fieldChangeMap };\n\t\t\tconst fieldChange = genericFieldKind.changeHandler.editor.buildChildChange(\n\t\t\t\tremainingPath.parentIndex,\n\t\t\t\tnodeChange,\n\t\t\t);\n\t\t\tfieldChangeMap = new Map([\n\t\t\t\t[\n\t\t\t\t\tremainingPath.parentField,\n\t\t\t\t\t{ fieldKind: genericFieldKind.identifier, change: brand(fieldChange) },\n\t\t\t\t],\n\t\t\t]);\n\t\t\tremainingPath = remainingPath.parent;\n\t\t}\n\n\t\treturn fieldChangeMap;\n\t}\n\n\tpublic addNodeExistsConstraint(path: UpPath): void {\n\t\tconst nodeChange: NodeChangeset = {\n\t\t\tnodeExistsConstraint: { violated: false },\n\t\t};\n\t\tconst fieldChange = genericFieldKind.changeHandler.editor.buildChildChange(\n\t\t\tpath.parentIndex,\n\t\t\tnodeChange,\n\t\t);\n\t\tthis.submitChange(\n\t\t\t{ parent: path.parent, field: path.parentField },\n\t\t\tgenericFieldKind.identifier,\n\t\t\tbrand(fieldChange),\n\t\t);\n\t}\n}\n\n/**\n * @internal\n */\nexport interface FieldEditDescription {\n\ttype: \"field\";\n\tfield: FieldUpPath;\n\tfieldKind: FieldKindIdentifier;\n\tchange: FieldChangeset;\n}\n\n/**\n * @internal\n */\nexport interface GlobalEditDescription {\n\ttype: \"global\";\n\tbuilds?: ChangeAtomIdMap<TreeChunk>;\n}\n\n/**\n * @internal\n */\nexport type EditDescription = FieldEditDescription | GlobalEditDescription;\n\nfunction getRevInfoFromTaggedChanges(changes: TaggedChange<ModularChangeset>[]): {\n\trevInfos: RevisionInfo[];\n\tmaxId: ChangesetLocalId;\n} {\n\tlet maxId = -1;\n\tconst revInfos: RevisionInfo[] = [];\n\tfor (const taggedChange of changes) {\n\t\tconst change = taggedChange.change;\n\t\tmaxId = Math.max(change.maxId ?? -1, maxId);\n\t\trevInfos.push(...revisionInfoFromTaggedChange(taggedChange));\n\t}\n\n\tconst revisions = new Set<RevisionTag>();\n\tconst rolledBackRevisions: RevisionTag[] = [];\n\tfor (const info of revInfos) {\n\t\trevisions.add(info.revision);\n\t\tif (info.rollbackOf !== undefined) {\n\t\t\trolledBackRevisions.push(info.rollbackOf);\n\t\t}\n\t}\n\n\trolledBackRevisions.reverse();\n\tfor (const revision of rolledBackRevisions) {\n\t\tif (!revisions.has(revision)) {\n\t\t\trevInfos.push({ revision });\n\t\t}\n\t}\n\n\treturn { maxId: brand(maxId), revInfos };\n}\n\nfunction revisionInfoFromTaggedChange(\n\ttaggedChange: TaggedChange<ModularChangeset>,\n): RevisionInfo[] {\n\tconst revInfos: RevisionInfo[] = [];\n\tif (taggedChange.change.revisions !== undefined) {\n\t\trevInfos.push(...taggedChange.change.revisions);\n\t} else if (taggedChange.revision !== undefined) {\n\t\tconst info: Mutable<RevisionInfo> = { revision: taggedChange.revision };\n\t\tif (taggedChange.rollbackOf !== undefined) {\n\t\t\tinfo.rollbackOf = taggedChange.rollbackOf;\n\t\t}\n\t\trevInfos.push(info);\n\t}\n\treturn revInfos;\n}\n\nfunction revisionFromTaggedChange(change: TaggedChange<ModularChangeset>): RevisionTag | undefined {\n\treturn change.revision ?? revisionFromRevInfos(change.change.revisions);\n}\n\nfunction revisionFromRevInfos(\n\trevInfos: undefined | readonly RevisionInfo[],\n): RevisionTag | undefined {\n\tif (revInfos === undefined || revInfos.length !== 1) {\n\t\treturn undefined;\n\t}\n\treturn revInfos[0].revision;\n}\n"]}
@@ -0,0 +1,149 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ import { Static } from "@sinclair/typebox";
6
+ import { schemaFormat, ChangesetLocalId } from "../../core";
7
+ import { JsonCompatibleReadOnly } from "../../util";
8
+ export declare const ChangesetLocalIdSchema: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
9
+ export declare const EncodedChangeAtomId: import("@sinclair/typebox").TObject<{
10
+ /**
11
+ * Uniquely identifies the changeset within which the change was made.
12
+ */
13
+ revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("../../core").EncodedRevisionTag>>;
14
+ /**
15
+ * Uniquely identifies, in the scope of the changeset, the change made to the field.
16
+ */
17
+ localId: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
18
+ }>;
19
+ declare const EncodedFieldChange: import("@sinclair/typebox").TObject<{
20
+ fieldKey: import("@sinclair/typebox").TUnsafe<schemaFormat.FieldKey>;
21
+ fieldKind: import("@sinclair/typebox").TUnsafe<schemaFormat.FieldKindIdentifier>;
22
+ change: import("@sinclair/typebox").TAny;
23
+ }>;
24
+ export interface EncodedFieldChange extends Static<typeof EncodedFieldChange> {
25
+ /**
26
+ * Encoded in format selected by `fieldKind`
27
+ */
28
+ change: JsonCompatibleReadOnly;
29
+ }
30
+ declare const EncodedFieldChangeMap: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
31
+ fieldKey: import("@sinclair/typebox").TUnsafe<schemaFormat.FieldKey>;
32
+ fieldKind: import("@sinclair/typebox").TUnsafe<schemaFormat.FieldKindIdentifier>;
33
+ change: import("@sinclair/typebox").TAny;
34
+ }>>;
35
+ /**
36
+ * Format for encoding as json.
37
+ *
38
+ * This chooses to use lists of named objects instead of maps:
39
+ * this choice is somewhat arbitrary, but avoids user data being used as object keys,
40
+ * which can sometimes be an issue (for example handling that for "__proto__" can require care).
41
+ */
42
+ export type EncodedFieldChangeMap = Static<typeof EncodedFieldChangeMap>;
43
+ export declare const EncodedNodeChangeset: import("@sinclair/typebox").TObject<{
44
+ valueChange: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
45
+ revision: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("../../core").EncodedRevisionTag>>;
46
+ value: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
47
+ }>>;
48
+ fieldChanges: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
49
+ fieldKey: import("@sinclair/typebox").TUnsafe<schemaFormat.FieldKey>;
50
+ fieldKind: import("@sinclair/typebox").TUnsafe<schemaFormat.FieldKindIdentifier>;
51
+ change: import("@sinclair/typebox").TAny;
52
+ }>>>;
53
+ valueConstraint: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
54
+ value: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
55
+ violated: import("@sinclair/typebox").TBoolean;
56
+ }>>;
57
+ nodeExistsConstraint: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
58
+ violated: import("@sinclair/typebox").TBoolean;
59
+ }>>;
60
+ }>;
61
+ /**
62
+ * Format for encoding as json.
63
+ */
64
+ export type EncodedNodeChangeset = Static<typeof EncodedNodeChangeset>;
65
+ export declare const EncodedRevisionInfo: import("@sinclair/typebox").TObject<{
66
+ revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("../../core").EncodedRevisionTag>>;
67
+ rollbackOf: import("@sinclair/typebox").TReadonlyOptional<import("@sinclair/typebox").TUnsafe<import("../../core").EncodedRevisionTag>>;
68
+ }>;
69
+ export type EncodedRevisionInfo = Static<typeof EncodedRevisionInfo>;
70
+ /**
71
+ * Index of field in an EncodedFieldBatch.
72
+ */
73
+ export declare const EncodedTreeIndex: import("@sinclair/typebox").TNumber;
74
+ export declare const EncodedBuildsArray: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TUnsafe<ChangesetLocalId>, import("@sinclair/typebox").TNumber]>, import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TUnsafe<import("../../core").EncodedRevisionTag>, import("@sinclair/typebox").TUnsafe<ChangesetLocalId>, import("@sinclair/typebox").TNumber]>]>>;
75
+ export type EncodedBuildsArray = Static<typeof EncodedBuildsArray>;
76
+ export declare const EncodedBuilds: import("@sinclair/typebox").TObject<{
77
+ builds: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TUnsafe<ChangesetLocalId>, import("@sinclair/typebox").TNumber]>, import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TUnsafe<import("../../core").EncodedRevisionTag>, import("@sinclair/typebox").TUnsafe<ChangesetLocalId>, import("@sinclair/typebox").TNumber]>]>>;
78
+ /**
79
+ * Fields indexed by the EncodedTreeIndexes above.
80
+ * TODO: Strongly typing this here may result in redundant schema validation of this data.
81
+ */
82
+ trees: import("@sinclair/typebox").TObject<{
83
+ data: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>>;
84
+ version: import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TLiteral<number>]>;
85
+ identifiers: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
86
+ shapes: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
87
+ a: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
88
+ b: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
89
+ length: import("@sinclair/typebox").TNumber;
90
+ shape: import("@sinclair/typebox").TNumber;
91
+ }>>;
92
+ c: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
93
+ type: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNumber]>>;
94
+ value: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>]>>;
95
+ fields: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
96
+ key: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNumber]>;
97
+ shape: import("@sinclair/typebox").TNumber;
98
+ }>>;
99
+ extraFields: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
100
+ }>>;
101
+ d: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TLiteral<0>>;
102
+ }>>;
103
+ }>;
104
+ }>;
105
+ export type EncodedBuilds = Static<typeof EncodedBuilds>;
106
+ export declare const EncodedModularChangeset: import("@sinclair/typebox").TObject<{
107
+ maxId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
108
+ changes: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
109
+ fieldKey: import("@sinclair/typebox").TUnsafe<schemaFormat.FieldKey>;
110
+ fieldKind: import("@sinclair/typebox").TUnsafe<schemaFormat.FieldKindIdentifier>;
111
+ change: import("@sinclair/typebox").TAny;
112
+ }>>;
113
+ revisions: import("@sinclair/typebox").TReadonlyOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
114
+ revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnsafe<import("../../core").EncodedRevisionTag>>;
115
+ rollbackOf: import("@sinclair/typebox").TReadonlyOptional<import("@sinclair/typebox").TUnsafe<import("../../core").EncodedRevisionTag>>;
116
+ }>>>;
117
+ builds: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
118
+ builds: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TUnsafe<ChangesetLocalId>, import("@sinclair/typebox").TNumber]>, import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TUnsafe<import("../../core").EncodedRevisionTag>, import("@sinclair/typebox").TUnsafe<ChangesetLocalId>, import("@sinclair/typebox").TNumber]>]>>;
119
+ /**
120
+ * Fields indexed by the EncodedTreeIndexes above.
121
+ * TODO: Strongly typing this here may result in redundant schema validation of this data.
122
+ */
123
+ trees: import("@sinclair/typebox").TObject<{
124
+ data: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>>;
125
+ version: import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TLiteral<number>]>;
126
+ identifiers: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
127
+ shapes: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
128
+ a: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
129
+ b: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
130
+ length: import("@sinclair/typebox").TNumber;
131
+ shape: import("@sinclair/typebox").TNumber;
132
+ }>>;
133
+ c: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
134
+ type: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNumber]>>;
135
+ value: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>]>>;
136
+ fields: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
137
+ key: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNumber]>;
138
+ shape: import("@sinclair/typebox").TNumber;
139
+ }>>;
140
+ extraFields: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
141
+ }>>;
142
+ d: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TLiteral<0>>;
143
+ }>>;
144
+ }>;
145
+ }>>;
146
+ }>;
147
+ export type EncodedModularChangeset = Static<typeof EncodedModularChangeset>;
148
+ export {};
149
+ //# sourceMappingURL=modularChangeFormat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modularChangeFormat.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/modular-schema/modularChangeFormat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAiB,MAAM,EAAQ,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAqB,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,EAEN,sBAAsB,EAEtB,MAAM,YAAY,CAAC;AAKpB,eAAO,MAAM,sBAAsB,uDAAwC,CAAC;AAE5E,eAAO,MAAM,mBAAmB;IAE9B;;OAEG;;IAEH;;OAEG;;EAIJ,CAAC;AAoBF,QAAA,MAAM,kBAAkB;;;;EAUvB,CAAC;AAEF,MAAM,WAAW,kBAAmB,SAAQ,MAAM,CAAC,OAAO,kBAAkB,CAAC;IAC5E;;OAEG;IACH,MAAM,EAAE,sBAAsB,CAAC;CAC/B;AAED,QAAA,MAAM,qBAAqB;;;;GAAiC,CAAC;AAE7D;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAOzE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;EAQhC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEvE,eAAO,MAAM,mBAAmB;;;EAM/B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAErE;;GAEG;AACH,eAAO,MAAM,gBAAgB,qCAA6C,CAAC;AAG3E,eAAO,MAAM,kBAAkB,4ZAK9B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEnE,eAAO,MAAM,aAAa;;IAEzB;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;EAEF,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;AAEzD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;QATnC;;;WAGG;;;;;;;;;;;;;;;;;;;;;;;;EAcH,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
@@ -0,0 +1,74 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ import { Type } from "@sinclair/typebox";
6
+ import { schemaFormat, RevisionTagSchema } from "../../core";
7
+ import { brandedNumberType, JsonCompatibleReadOnlySchema, } from "../../util";
8
+ import { EncodedFieldBatch } from "../chunked-forest";
9
+ const noAdditionalProps = { additionalProperties: false };
10
+ export const ChangesetLocalIdSchema = brandedNumberType();
11
+ export const EncodedChangeAtomId = Type.Object({
12
+ /**
13
+ * Uniquely identifies the changeset within which the change was made.
14
+ */
15
+ revision: Type.Optional(RevisionTagSchema),
16
+ /**
17
+ * Uniquely identifies, in the scope of the changeset, the change made to the field.
18
+ */
19
+ localId: ChangesetLocalIdSchema,
20
+ }, noAdditionalProps);
21
+ const EncodedValueChange = Type.Object({
22
+ revision: Type.Optional(RevisionTagSchema),
23
+ value: Type.Optional(JsonCompatibleReadOnlySchema),
24
+ }, noAdditionalProps);
25
+ const EncodedValueConstraint = Type.Object({
26
+ value: Type.Optional(JsonCompatibleReadOnlySchema),
27
+ violated: Type.Boolean(),
28
+ }, noAdditionalProps);
29
+ const EncodedFieldChange = Type.Object({
30
+ fieldKey: schemaFormat.FieldKeySchema,
31
+ fieldKind: schemaFormat.FieldKindIdentifierSchema,
32
+ // Implementation note: node and field change encoding is mutually recursive.
33
+ // This field marks a boundary in that recursion to avoid constructing excessively complex
34
+ // recursive types. Encoded changes are validated at this boundary at runtime--see modularChangeCodecs.ts.
35
+ change: JsonCompatibleReadOnlySchema,
36
+ }, noAdditionalProps);
37
+ const EncodedFieldChangeMap = Type.Array(EncodedFieldChange);
38
+ const EncodedNodeExistsConstraint = Type.Object({
39
+ violated: Type.Boolean(),
40
+ });
41
+ export const EncodedNodeChangeset = Type.Object({
42
+ valueChange: Type.Optional(EncodedValueChange),
43
+ fieldChanges: Type.Optional(EncodedFieldChangeMap),
44
+ valueConstraint: Type.Optional(EncodedValueConstraint),
45
+ nodeExistsConstraint: Type.Optional(EncodedNodeExistsConstraint),
46
+ }, noAdditionalProps);
47
+ export const EncodedRevisionInfo = Type.Object({
48
+ revision: Type.Readonly(RevisionTagSchema),
49
+ rollbackOf: Type.ReadonlyOptional(RevisionTagSchema),
50
+ }, noAdditionalProps);
51
+ /**
52
+ * Index of field in an EncodedFieldBatch.
53
+ */
54
+ export const EncodedTreeIndex = Type.Number({ multipleOf: 1, minimum: 0 });
55
+ // TODO:YA6307 adopt more efficient encoding, likely based on contiguous runs of IDs
56
+ export const EncodedBuildsArray = Type.Array(Type.Union([
57
+ Type.Tuple([ChangesetLocalIdSchema, EncodedTreeIndex]),
58
+ Type.Tuple([RevisionTagSchema, ChangesetLocalIdSchema, EncodedTreeIndex]),
59
+ ]));
60
+ export const EncodedBuilds = Type.Object({
61
+ builds: EncodedBuildsArray,
62
+ /**
63
+ * Fields indexed by the EncodedTreeIndexes above.
64
+ * TODO: Strongly typing this here may result in redundant schema validation of this data.
65
+ */
66
+ trees: EncodedFieldBatch,
67
+ });
68
+ export const EncodedModularChangeset = Type.Object({
69
+ maxId: Type.Optional(ChangesetLocalIdSchema),
70
+ changes: EncodedFieldChangeMap,
71
+ revisions: Type.ReadonlyOptional(Type.Array(EncodedRevisionInfo)),
72
+ builds: Type.Optional(EncodedBuilds),
73
+ }, noAdditionalProps);
74
+ //# sourceMappingURL=modularChangeFormat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modularChangeFormat.js","sourceRoot":"","sources":["../../../src/feature-libraries/modular-schema/modularChangeFormat.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 { ObjectOptions, Static, Type } from \"@sinclair/typebox\";\nimport { schemaFormat, RevisionTagSchema, ChangesetLocalId } from \"../../core\";\nimport {\n\tbrandedNumberType,\n\tJsonCompatibleReadOnly,\n\tJsonCompatibleReadOnlySchema,\n} from \"../../util\";\nimport { EncodedFieldBatch } from \"../chunked-forest\";\n\nconst noAdditionalProps: ObjectOptions = { additionalProperties: false };\n\nexport const ChangesetLocalIdSchema = brandedNumberType<ChangesetLocalId>();\n\nexport const EncodedChangeAtomId = Type.Object(\n\t{\n\t\t/**\n\t\t * Uniquely identifies the changeset within which the change was made.\n\t\t */\n\t\trevision: Type.Optional(RevisionTagSchema),\n\t\t/**\n\t\t * Uniquely identifies, in the scope of the changeset, the change made to the field.\n\t\t */\n\t\tlocalId: ChangesetLocalIdSchema,\n\t},\n\tnoAdditionalProps,\n);\n\nconst EncodedValueChange = Type.Object(\n\t{\n\t\trevision: Type.Optional(RevisionTagSchema),\n\t\tvalue: Type.Optional(JsonCompatibleReadOnlySchema),\n\t},\n\tnoAdditionalProps,\n);\ntype EncodedValueChange = Static<typeof EncodedValueChange>;\n\nconst EncodedValueConstraint = Type.Object(\n\t{\n\t\tvalue: Type.Optional(JsonCompatibleReadOnlySchema),\n\t\tviolated: Type.Boolean(),\n\t},\n\tnoAdditionalProps,\n);\ntype EncodedValueConstraint = Static<typeof EncodedValueConstraint>;\n\nconst EncodedFieldChange = Type.Object(\n\t{\n\t\tfieldKey: schemaFormat.FieldKeySchema,\n\t\tfieldKind: schemaFormat.FieldKindIdentifierSchema,\n\t\t// Implementation note: node and field change encoding is mutually recursive.\n\t\t// This field marks a boundary in that recursion to avoid constructing excessively complex\n\t\t// recursive types. Encoded changes are validated at this boundary at runtime--see modularChangeCodecs.ts.\n\t\tchange: JsonCompatibleReadOnlySchema,\n\t},\n\tnoAdditionalProps,\n);\n\nexport interface EncodedFieldChange extends Static<typeof EncodedFieldChange> {\n\t/**\n\t * Encoded in format selected by `fieldKind`\n\t */\n\tchange: JsonCompatibleReadOnly;\n}\n\nconst EncodedFieldChangeMap = Type.Array(EncodedFieldChange);\n\n/**\n * Format for encoding as json.\n *\n * This chooses to use lists of named objects instead of maps:\n * this choice is somewhat arbitrary, but avoids user data being used as object keys,\n * which can sometimes be an issue (for example handling that for \"__proto__\" can require care).\n */\nexport type EncodedFieldChangeMap = Static<typeof EncodedFieldChangeMap>;\n\nconst EncodedNodeExistsConstraint = Type.Object({\n\tviolated: Type.Boolean(),\n});\ntype EncodedNodeExistsConstraint = Static<typeof EncodedNodeExistsConstraint>;\n\nexport const EncodedNodeChangeset = Type.Object(\n\t{\n\t\tvalueChange: Type.Optional(EncodedValueChange),\n\t\tfieldChanges: Type.Optional(EncodedFieldChangeMap),\n\t\tvalueConstraint: Type.Optional(EncodedValueConstraint),\n\t\tnodeExistsConstraint: Type.Optional(EncodedNodeExistsConstraint),\n\t},\n\tnoAdditionalProps,\n);\n\n/**\n * Format for encoding as json.\n */\nexport type EncodedNodeChangeset = Static<typeof EncodedNodeChangeset>;\n\nexport const EncodedRevisionInfo = Type.Object(\n\t{\n\t\trevision: Type.Readonly(RevisionTagSchema),\n\t\trollbackOf: Type.ReadonlyOptional(RevisionTagSchema),\n\t},\n\tnoAdditionalProps,\n);\n\nexport type EncodedRevisionInfo = Static<typeof EncodedRevisionInfo>;\n\n/**\n * Index of field in an EncodedFieldBatch.\n */\nexport const EncodedTreeIndex = Type.Number({ multipleOf: 1, minimum: 0 });\n\n// TODO:YA6307 adopt more efficient encoding, likely based on contiguous runs of IDs\nexport const EncodedBuildsArray = Type.Array(\n\tType.Union([\n\t\tType.Tuple([ChangesetLocalIdSchema, EncodedTreeIndex]),\n\t\tType.Tuple([RevisionTagSchema, ChangesetLocalIdSchema, EncodedTreeIndex]),\n\t]),\n);\n\nexport type EncodedBuildsArray = Static<typeof EncodedBuildsArray>;\n\nexport const EncodedBuilds = Type.Object({\n\tbuilds: EncodedBuildsArray,\n\t/**\n\t * Fields indexed by the EncodedTreeIndexes above.\n\t * TODO: Strongly typing this here may result in redundant schema validation of this data.\n\t */\n\ttrees: EncodedFieldBatch,\n});\n\nexport type EncodedBuilds = Static<typeof EncodedBuilds>;\n\nexport const EncodedModularChangeset = Type.Object(\n\t{\n\t\tmaxId: Type.Optional(ChangesetLocalIdSchema),\n\t\tchanges: EncodedFieldChangeMap,\n\t\trevisions: Type.ReadonlyOptional(Type.Array(EncodedRevisionInfo)),\n\t\tbuilds: Type.Optional(EncodedBuilds),\n\t},\n\tnoAdditionalProps,\n);\n\nexport type EncodedModularChangeset = Static<typeof EncodedModularChangeset>;\n"]}
@@ -0,0 +1,69 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ import { ChangeAtomIdMap, ChangesetLocalId, FieldKey, FieldKindIdentifier, RevisionInfo, RevisionTag } from "../../core";
6
+ import { Brand } from "../../util";
7
+ import { TreeChunk } from "../chunked-forest";
8
+ /**
9
+ * @internal
10
+ */
11
+ export interface ModularChangeset extends HasFieldChanges {
12
+ /**
13
+ * The numerically highest `ChangesetLocalId` used in this changeset.
14
+ * If undefined then this changeset contains no IDs.
15
+ */
16
+ maxId?: ChangesetLocalId;
17
+ /**
18
+ * The revisions included in this changeset, ordered temporally (oldest to newest).
19
+ * Undefined for anonymous changesets.
20
+ * Should never be empty.
21
+ */
22
+ readonly revisions?: readonly RevisionInfo[];
23
+ fieldChanges: FieldChangeMap;
24
+ constraintViolationCount?: number;
25
+ readonly builds?: ChangeAtomIdMap<TreeChunk>;
26
+ }
27
+ /**
28
+ * @internal
29
+ */
30
+ export interface NodeExistsConstraint {
31
+ violated: boolean;
32
+ }
33
+ /**
34
+ * Changeset for a subtree rooted at a specific node.
35
+ * @internal
36
+ */
37
+ export interface NodeChangeset extends HasFieldChanges {
38
+ nodeExistsConstraint?: NodeExistsConstraint;
39
+ }
40
+ /**
41
+ * @internal
42
+ */
43
+ export interface HasFieldChanges {
44
+ fieldChanges?: FieldChangeMap;
45
+ }
46
+ /**
47
+ * @internal
48
+ */
49
+ export type FieldChangeMap = Map<FieldKey, FieldChange>;
50
+ /**
51
+ * @internal
52
+ */
53
+ export interface FieldChange {
54
+ fieldKind: FieldKindIdentifier;
55
+ /**
56
+ * If defined, `change` is part of the specified revision.
57
+ * Undefined in the following cases:
58
+ * A) A revision is specified on an ancestor of this `FieldChange`, in which case `change` is part of that revision.
59
+ * B) `change` is composed of multiple revisions.
60
+ * C) `change` is part of an anonymous revision.
61
+ */
62
+ revision?: RevisionTag;
63
+ change: FieldChangeset;
64
+ }
65
+ /**
66
+ * @internal
67
+ */
68
+ export type FieldChangeset = Brand<unknown, "FieldChangeset">;
69
+ //# sourceMappingURL=modularChangeTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modularChangeTypes.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/modular-schema/modularChangeTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,eAAe,EACf,gBAAgB,EAChB,QAAQ,EACR,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACxD;;;OAGG;IACH,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAC7C,YAAY,EAAE,cAAc,CAAC;IAC7B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAElC,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAc,SAAQ,eAAe;IACrD,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,YAAY,CAAC,EAAE,cAAc,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,SAAS,EAAE,mBAAmB,CAAC;IAE/B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,MAAM,EAAE,cAAc,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=modularChangeTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modularChangeTypes.js","sourceRoot":"","sources":["../../../src/feature-libraries/modular-schema/modularChangeTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n\tChangeAtomIdMap,\n\tChangesetLocalId,\n\tFieldKey,\n\tFieldKindIdentifier,\n\tRevisionInfo,\n\tRevisionTag,\n} from \"../../core\";\nimport { Brand } from \"../../util\";\nimport { TreeChunk } from \"../chunked-forest\";\n\n/**\n * @internal\n */\nexport interface ModularChangeset extends HasFieldChanges {\n\t/**\n\t * The numerically highest `ChangesetLocalId` used in this changeset.\n\t * If undefined then this changeset contains no IDs.\n\t */\n\tmaxId?: ChangesetLocalId;\n\t/**\n\t * The revisions included in this changeset, ordered temporally (oldest to newest).\n\t * Undefined for anonymous changesets.\n\t * Should never be empty.\n\t */\n\treadonly revisions?: readonly RevisionInfo[];\n\tfieldChanges: FieldChangeMap;\n\tconstraintViolationCount?: number;\n\t// TODO:YA6307 adopt more efficient representation, likely based on contiguous runs of IDs\n\treadonly builds?: ChangeAtomIdMap<TreeChunk>;\n}\n\n/**\n * @internal\n */\nexport interface NodeExistsConstraint {\n\tviolated: boolean;\n}\n\n/**\n * Changeset for a subtree rooted at a specific node.\n * @internal\n */\nexport interface NodeChangeset extends HasFieldChanges {\n\tnodeExistsConstraint?: NodeExistsConstraint;\n}\n\n/**\n * @internal\n */\nexport interface HasFieldChanges {\n\tfieldChanges?: FieldChangeMap;\n}\n\n/**\n * @internal\n */\nexport type FieldChangeMap = Map<FieldKey, FieldChange>;\n\n/**\n * @internal\n */\nexport interface FieldChange {\n\tfieldKind: FieldKindIdentifier;\n\n\t/**\n\t * If defined, `change` is part of the specified revision.\n\t * Undefined in the following cases:\n\t * A) A revision is specified on an ancestor of this `FieldChange`, in which case `change` is part of that revision.\n\t * B) `change` is composed of multiple revisions.\n\t * C) `change` is part of an anonymous revision.\n\t */\n\trevision?: RevisionTag;\n\tchange: FieldChangeset;\n}\n\n/**\n * @internal\n */\nexport type FieldChangeset = Brand<unknown, \"FieldChangeset\">;\n"]}
@@ -0,0 +1,55 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ /**
6
+ * Describes how a particular field functions.
7
+ *
8
+ * This determine its reading and editing APIs, multiplicity, and what merge resolution policies it will use.
9
+ * @internal
10
+ */
11
+ export declare enum Multiplicity {
12
+ /**
13
+ * Exactly one item.
14
+ */
15
+ Single = 0,
16
+ /**
17
+ * 0 or 1 items.
18
+ */
19
+ Optional = 1,
20
+ /**
21
+ * 0 or more items.
22
+ */
23
+ Sequence = 2,
24
+ /**
25
+ * Exactly 0 items.
26
+ *
27
+ * Using Forbidden makes what types are listed for allowed in a field irrelevant
28
+ * since the field will never have values in it.
29
+ *
30
+ * Using Forbidden is equivalent to picking a kind that permits empty (like sequence or optional)
31
+ * and having no allowed types (or only never types).
32
+ * Because of this, its possible to express everything constraint wise without Forbidden,
33
+ * but using Forbidden can be more semantically clear than optional with no allowed types.
34
+ *
35
+ * For view schema, this can be useful if you need to:
36
+ * - run a specific out of schema handler when a field is present,
37
+ * but otherwise are ignoring or tolerating (ex: via extra fields) unmentioned fields.
38
+ * - prevent a specific field from being used as an extra field
39
+ * (perhaps for some past of future compatibility reason)
40
+ * - keep a field in a schema for metadata purposes
41
+ * (ex: for improved error messaging, error handling or documentation)
42
+ * that is not used in this specific version of the schema (ex: to document what it was or will be used for).
43
+ *
44
+ * For stored schema, this can be useful if you need to:
45
+ * - have a field which can have its schema updated to Optional or Sequence of any type.
46
+ * - to exclude a field from extra fields
47
+ * - for the schema system to use as a default for fields which aren't declared
48
+ * (ex: when updating a field that did not exist into one that does)
49
+ *
50
+ * @privateRemarks
51
+ * See storedEmptyFieldSchema for a constant, reusable field using Forbidden.
52
+ */
53
+ Forbidden = 3
54
+ }
55
+ //# sourceMappingURL=multiplicity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiplicity.d.ts","sourceRoot":"","sources":["../../src/feature-libraries/multiplicity.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH;;;;;GAKG;AACH,oBAAY,YAAY;IACvB;;OAEG;IACH,MAAM,IAAA;IACN;;OAEG;IACH,QAAQ,IAAA;IACR;;OAEG;IACH,QAAQ,IAAA;IACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,SAAS,IAAA;CACT"}