@fluidframework/tree 2.10.0 → 2.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/api-report/tree.alpha.api.md +47 -16
- package/api-report/tree.beta.api.md +5 -14
- package/api-report/tree.legacy.alpha.api.md +5 -14
- package/api-report/tree.legacy.public.api.md +5 -14
- package/api-report/tree.public.api.md +5 -14
- package/dist/alpha.d.ts +9 -0
- package/dist/core/forest/forest.d.ts +10 -2
- package/dist/core/forest/forest.d.ts.map +1 -1
- package/dist/core/forest/forest.js.map +1 -1
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +3 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/rebase/utils.d.ts +1 -1
- package/dist/core/rebase/utils.d.ts.map +1 -1
- package/dist/core/rebase/utils.js +11 -8
- package/dist/core/rebase/utils.js.map +1 -1
- package/dist/core/revertible.d.ts +30 -1
- package/dist/core/revertible.d.ts.map +1 -1
- package/dist/core/revertible.js.map +1 -1
- package/dist/core/schema-stored/storedSchemaRepository.d.ts +2 -2
- package/dist/core/schema-stored/storedSchemaRepository.d.ts.map +1 -1
- package/dist/core/schema-stored/storedSchemaRepository.js +5 -5
- package/dist/core/schema-stored/storedSchemaRepository.js.map +1 -1
- package/dist/core/tree/anchorSet.d.ts +2 -2
- package/dist/core/tree/anchorSet.d.ts.map +1 -1
- package/dist/core/tree/anchorSet.js +21 -21
- package/dist/core/tree/anchorSet.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodec.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodec.js +3 -2
- package/dist/core/tree/detachedFieldIndexCodec.js.map +1 -1
- package/dist/core/tree/index.d.ts +1 -1
- package/dist/core/tree/index.d.ts.map +1 -1
- package/dist/core/tree/index.js +2 -1
- package/dist/core/tree/index.js.map +1 -1
- package/dist/core/tree/visitorUtils.d.ts +25 -1
- package/dist/core/tree/visitorUtils.d.ts.map +1 -1
- package/dist/core/tree/visitorUtils.js +29 -1
- package/dist/core/tree/visitorUtils.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts +5 -2
- package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkedForest.js +24 -14
- package/dist/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/uniformChunk.js +2 -2
- package/dist/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
- package/dist/feature-libraries/flex-tree/context.d.ts +1 -1
- package/dist/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/context.js.map +1 -1
- package/dist/feature-libraries/index.d.ts +1 -0
- package/dist/feature-libraries/index.d.ts.map +1 -1
- package/dist/feature-libraries/index.js +4 -1
- package/dist/feature-libraries/index.js.map +1 -1
- package/dist/feature-libraries/indexing/anchorTreeIndex.d.ts +132 -0
- package/dist/feature-libraries/indexing/anchorTreeIndex.d.ts.map +1 -0
- package/dist/feature-libraries/indexing/anchorTreeIndex.js +361 -0
- package/dist/feature-libraries/indexing/anchorTreeIndex.js.map +1 -0
- package/dist/feature-libraries/indexing/index.d.ts +7 -0
- package/dist/feature-libraries/indexing/index.d.ts.map +1 -0
- package/dist/feature-libraries/indexing/index.js +11 -0
- package/dist/feature-libraries/indexing/index.js.map +1 -0
- package/dist/feature-libraries/indexing/types.d.ts +32 -0
- package/dist/feature-libraries/indexing/types.d.ts.map +1 -0
- package/dist/{events/interop.js → feature-libraries/indexing/types.js} +1 -1
- package/dist/feature-libraries/indexing/types.js.map +1 -0
- package/dist/feature-libraries/object-forest/objectForest.d.ts +5 -2
- package/dist/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
- package/dist/feature-libraries/object-forest/objectForest.js +21 -11
- package/dist/feature-libraries/object-forest/objectForest.js.map +1 -1
- package/dist/feature-libraries/sequence-field/invert.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/invert.js +2 -2
- package/dist/feature-libraries/sequence-field/invert.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js +3 -2
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/shared-tree/index.d.ts +1 -1
- package/dist/shared-tree/index.d.ts.map +1 -1
- package/dist/shared-tree/index.js +1 -2
- package/dist/shared-tree/index.js.map +1 -1
- package/dist/shared-tree/schematizingTreeView.d.ts +7 -1
- package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/dist/shared-tree/schematizingTreeView.js +31 -30
- package/dist/shared-tree/schematizingTreeView.js.map +1 -1
- package/dist/shared-tree/sharedTree.d.ts +3 -0
- package/dist/shared-tree/sharedTree.d.ts.map +1 -1
- package/dist/shared-tree/sharedTree.js +56 -20
- package/dist/shared-tree/sharedTree.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.js +3 -3
- package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/dist/shared-tree/treeCheckout.d.ts +28 -64
- package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
- package/dist/shared-tree/treeCheckout.js +152 -129
- package/dist/shared-tree/treeCheckout.js.map +1 -1
- package/dist/shared-tree-core/branch.d.ts +25 -81
- package/dist/shared-tree-core/branch.d.ts.map +1 -1
- package/dist/shared-tree-core/branch.js +72 -151
- package/dist/shared-tree-core/branch.js.map +1 -1
- package/dist/shared-tree-core/branchCommitEnricher.d.ts +19 -33
- package/dist/shared-tree-core/branchCommitEnricher.d.ts.map +1 -1
- package/dist/shared-tree-core/branchCommitEnricher.js +73 -54
- package/dist/shared-tree-core/branchCommitEnricher.js.map +1 -1
- package/dist/shared-tree-core/defaultResubmitMachine.d.ts.map +1 -1
- package/dist/shared-tree-core/defaultResubmitMachine.js +2 -1
- package/dist/shared-tree-core/defaultResubmitMachine.js.map +1 -1
- package/dist/shared-tree-core/editManager.d.ts.map +1 -1
- package/dist/shared-tree-core/editManager.js +2 -2
- package/dist/shared-tree-core/editManager.js.map +1 -1
- package/dist/shared-tree-core/index.d.ts +1 -1
- package/dist/shared-tree-core/index.d.ts.map +1 -1
- package/dist/shared-tree-core/index.js +4 -3
- package/dist/shared-tree-core/index.js.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.d.ts +2 -2
- package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.js +11 -52
- package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/dist/shared-tree-core/transaction.d.ts +108 -0
- package/dist/shared-tree-core/transaction.d.ts.map +1 -0
- package/dist/shared-tree-core/transaction.js +99 -0
- package/dist/shared-tree-core/transaction.js.map +1 -0
- package/dist/shared-tree-core/transactionEnricher.d.ts +8 -13
- package/dist/shared-tree-core/transactionEnricher.d.ts.map +1 -1
- package/dist/shared-tree-core/transactionEnricher.js +41 -21
- package/dist/shared-tree-core/transactionEnricher.js.map +1 -1
- package/dist/simple-tree/api/identifierIndex.d.ts +21 -0
- package/dist/simple-tree/api/identifierIndex.d.ts.map +1 -0
- package/dist/simple-tree/api/identifierIndex.js +45 -0
- package/dist/simple-tree/api/identifierIndex.js.map +1 -0
- package/dist/simple-tree/api/index.d.ts +2 -0
- package/dist/simple-tree/api/index.d.ts.map +1 -1
- package/dist/simple-tree/api/index.js +5 -1
- package/dist/simple-tree/api/index.js.map +1 -1
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.js +9 -7
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
- package/dist/simple-tree/api/simpleTreeIndex.d.ts +65 -0
- package/dist/simple-tree/api/simpleTreeIndex.d.ts.map +1 -0
- package/dist/simple-tree/api/simpleTreeIndex.js +91 -0
- package/dist/simple-tree/api/simpleTreeIndex.js.map +1 -0
- package/dist/simple-tree/api/tree.d.ts +4 -5
- package/dist/simple-tree/api/tree.d.ts.map +1 -1
- package/dist/simple-tree/api/tree.js.map +1 -1
- package/dist/simple-tree/api/treeNodeApi.js.map +1 -1
- package/dist/simple-tree/core/index.d.ts +1 -1
- package/dist/simple-tree/core/index.d.ts.map +1 -1
- package/dist/simple-tree/core/index.js +2 -1
- package/dist/simple-tree/core/index.js.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.d.ts +6 -2
- package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.js +53 -22
- package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/dist/simple-tree/core/unhydratedFlexTree.d.ts +1 -1
- package/dist/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
- package/dist/simple-tree/core/unhydratedFlexTree.js +2 -2
- package/dist/simple-tree/core/unhydratedFlexTree.js.map +1 -1
- package/dist/simple-tree/index.d.ts +1 -1
- package/dist/simple-tree/index.d.ts.map +1 -1
- package/dist/simple-tree/index.js +4 -2
- package/dist/simple-tree/index.js.map +1 -1
- package/dist/simple-tree/objectNode.d.ts +7 -2
- package/dist/simple-tree/objectNode.d.ts.map +1 -1
- package/dist/simple-tree/objectNode.js.map +1 -1
- package/dist/simple-tree/toMapTree.js +3 -3
- package/dist/simple-tree/toMapTree.js.map +1 -1
- package/dist/util/index.d.ts +1 -2
- package/dist/util/index.d.ts.map +1 -1
- package/dist/util/index.js +5 -4
- package/dist/util/index.js.map +1 -1
- package/dist/util/typeCheck.d.ts +6 -1
- package/dist/util/typeCheck.d.ts.map +1 -1
- package/dist/util/typeCheck.js.map +1 -1
- package/dist/util/typeCheckTests.d.ts +14 -2
- package/dist/util/typeCheckTests.d.ts.map +1 -1
- package/dist/util/typeCheckTests.js.map +1 -1
- package/dist/util/utils.d.ts +29 -0
- package/dist/util/utils.d.ts.map +1 -1
- package/dist/util/utils.js +13 -1
- package/dist/util/utils.js.map +1 -1
- package/lib/alpha.d.ts +9 -0
- package/lib/core/forest/forest.d.ts +10 -2
- package/lib/core/forest/forest.d.ts.map +1 -1
- package/lib/core/forest/forest.js.map +1 -1
- package/lib/core/index.d.ts +2 -2
- package/lib/core/index.d.ts.map +1 -1
- package/lib/core/index.js +2 -2
- package/lib/core/index.js.map +1 -1
- package/lib/core/rebase/utils.d.ts +1 -1
- package/lib/core/rebase/utils.d.ts.map +1 -1
- package/lib/core/rebase/utils.js +11 -8
- package/lib/core/rebase/utils.js.map +1 -1
- package/lib/core/revertible.d.ts +30 -1
- package/lib/core/revertible.d.ts.map +1 -1
- package/lib/core/revertible.js.map +1 -1
- package/lib/core/schema-stored/storedSchemaRepository.d.ts +2 -2
- package/lib/core/schema-stored/storedSchemaRepository.d.ts.map +1 -1
- package/lib/core/schema-stored/storedSchemaRepository.js +1 -1
- package/lib/core/schema-stored/storedSchemaRepository.js.map +1 -1
- package/lib/core/tree/anchorSet.d.ts +2 -2
- package/lib/core/tree/anchorSet.d.ts.map +1 -1
- package/lib/core/tree/anchorSet.js +1 -1
- package/lib/core/tree/anchorSet.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodec.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodec.js +4 -3
- package/lib/core/tree/detachedFieldIndexCodec.js.map +1 -1
- package/lib/core/tree/index.d.ts +1 -1
- package/lib/core/tree/index.d.ts.map +1 -1
- package/lib/core/tree/index.js +1 -1
- package/lib/core/tree/index.js.map +1 -1
- package/lib/core/tree/visitorUtils.d.ts +25 -1
- package/lib/core/tree/visitorUtils.d.ts.map +1 -1
- package/lib/core/tree/visitorUtils.js +27 -0
- package/lib/core/tree/visitorUtils.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts +5 -2
- package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkedForest.js +18 -8
- package/lib/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/uniformChunk.js +3 -3
- package/lib/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
- package/lib/feature-libraries/flex-tree/context.d.ts +1 -1
- package/lib/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/context.js.map +1 -1
- package/lib/feature-libraries/index.d.ts +1 -0
- package/lib/feature-libraries/index.d.ts.map +1 -1
- package/lib/feature-libraries/index.js +1 -0
- package/lib/feature-libraries/index.js.map +1 -1
- package/lib/feature-libraries/indexing/anchorTreeIndex.d.ts +132 -0
- package/lib/feature-libraries/indexing/anchorTreeIndex.d.ts.map +1 -0
- package/lib/feature-libraries/indexing/anchorTreeIndex.js +356 -0
- package/lib/feature-libraries/indexing/anchorTreeIndex.js.map +1 -0
- package/lib/feature-libraries/indexing/index.d.ts +7 -0
- package/lib/feature-libraries/indexing/index.d.ts.map +1 -0
- package/lib/{events → feature-libraries/indexing}/index.js +1 -1
- package/lib/feature-libraries/indexing/index.js.map +1 -0
- package/lib/feature-libraries/indexing/types.d.ts +32 -0
- package/lib/feature-libraries/indexing/types.d.ts.map +1 -0
- package/lib/{events/interop.js → feature-libraries/indexing/types.js} +1 -1
- package/lib/feature-libraries/indexing/types.js.map +1 -0
- package/lib/feature-libraries/object-forest/objectForest.d.ts +5 -2
- package/lib/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
- package/lib/feature-libraries/object-forest/objectForest.js +15 -5
- package/lib/feature-libraries/object-forest/objectForest.js.map +1 -1
- package/lib/feature-libraries/sequence-field/invert.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/invert.js +4 -4
- package/lib/feature-libraries/sequence-field/invert.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js +4 -3
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
- package/lib/index.d.ts +4 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/shared-tree/index.d.ts +1 -1
- package/lib/shared-tree/index.d.ts.map +1 -1
- package/lib/shared-tree/index.js +1 -1
- package/lib/shared-tree/index.js.map +1 -1
- package/lib/shared-tree/schematizingTreeView.d.ts +7 -1
- package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/lib/shared-tree/schematizingTreeView.js +2 -2
- package/lib/shared-tree/schematizingTreeView.js.map +1 -1
- package/lib/shared-tree/sharedTree.d.ts +3 -0
- package/lib/shared-tree/sharedTree.d.ts.map +1 -1
- package/lib/shared-tree/sharedTree.js +37 -1
- package/lib/shared-tree/sharedTree.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.js +5 -5
- package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/lib/shared-tree/treeCheckout.d.ts +28 -64
- package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
- package/lib/shared-tree/treeCheckout.js +140 -116
- package/lib/shared-tree/treeCheckout.js.map +1 -1
- package/lib/shared-tree-core/branch.d.ts +25 -81
- package/lib/shared-tree-core/branch.d.ts.map +1 -1
- package/lib/shared-tree-core/branch.js +72 -151
- package/lib/shared-tree-core/branch.js.map +1 -1
- package/lib/shared-tree-core/branchCommitEnricher.d.ts +19 -33
- package/lib/shared-tree-core/branchCommitEnricher.d.ts.map +1 -1
- package/lib/shared-tree-core/branchCommitEnricher.js +74 -55
- package/lib/shared-tree-core/branchCommitEnricher.js.map +1 -1
- package/lib/shared-tree-core/defaultResubmitMachine.d.ts.map +1 -1
- package/lib/shared-tree-core/defaultResubmitMachine.js +3 -2
- package/lib/shared-tree-core/defaultResubmitMachine.js.map +1 -1
- package/lib/shared-tree-core/editManager.d.ts.map +1 -1
- package/lib/shared-tree-core/editManager.js +1 -1
- package/lib/shared-tree-core/editManager.js.map +1 -1
- package/lib/shared-tree-core/index.d.ts +1 -1
- package/lib/shared-tree-core/index.d.ts.map +1 -1
- package/lib/shared-tree-core/index.js +1 -1
- package/lib/shared-tree-core/index.js.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.d.ts +2 -2
- package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.js +12 -53
- package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/lib/shared-tree-core/transaction.d.ts +108 -0
- package/lib/shared-tree-core/transaction.d.ts.map +1 -0
- package/lib/shared-tree-core/transaction.js +95 -0
- package/lib/shared-tree-core/transaction.js.map +1 -0
- package/lib/shared-tree-core/transactionEnricher.d.ts +8 -13
- package/lib/shared-tree-core/transactionEnricher.d.ts.map +1 -1
- package/lib/shared-tree-core/transactionEnricher.js +41 -21
- package/lib/shared-tree-core/transactionEnricher.js.map +1 -1
- package/lib/simple-tree/api/identifierIndex.d.ts +21 -0
- package/lib/simple-tree/api/identifierIndex.d.ts.map +1 -0
- package/lib/simple-tree/api/identifierIndex.js +41 -0
- package/lib/simple-tree/api/identifierIndex.js.map +1 -0
- package/lib/simple-tree/api/index.d.ts +2 -0
- package/lib/simple-tree/api/index.d.ts.map +1 -1
- package/lib/simple-tree/api/index.js +2 -0
- package/lib/simple-tree/api/index.js.map +1 -1
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.js +11 -9
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
- package/lib/simple-tree/api/simpleTreeIndex.d.ts +65 -0
- package/lib/simple-tree/api/simpleTreeIndex.d.ts.map +1 -0
- package/lib/simple-tree/api/simpleTreeIndex.js +87 -0
- package/lib/simple-tree/api/simpleTreeIndex.js.map +1 -0
- package/lib/simple-tree/api/tree.d.ts +4 -5
- package/lib/simple-tree/api/tree.d.ts.map +1 -1
- package/lib/simple-tree/api/tree.js.map +1 -1
- package/lib/simple-tree/api/treeNodeApi.js.map +1 -1
- package/lib/simple-tree/core/index.d.ts +1 -1
- package/lib/simple-tree/core/index.d.ts.map +1 -1
- package/lib/simple-tree/core/index.js +1 -1
- package/lib/simple-tree/core/index.js.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.d.ts +6 -2
- package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.js +31 -1
- package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/lib/simple-tree/core/unhydratedFlexTree.d.ts +1 -1
- package/lib/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
- package/lib/simple-tree/core/unhydratedFlexTree.js +1 -1
- package/lib/simple-tree/core/unhydratedFlexTree.js.map +1 -1
- package/lib/simple-tree/index.d.ts +1 -1
- package/lib/simple-tree/index.d.ts.map +1 -1
- package/lib/simple-tree/index.js +1 -1
- package/lib/simple-tree/index.js.map +1 -1
- package/lib/simple-tree/objectNode.d.ts +7 -2
- package/lib/simple-tree/objectNode.d.ts.map +1 -1
- package/lib/simple-tree/objectNode.js.map +1 -1
- package/lib/simple-tree/toMapTree.js +5 -5
- package/lib/simple-tree/toMapTree.js.map +1 -1
- package/lib/util/index.d.ts +1 -2
- package/lib/util/index.d.ts.map +1 -1
- package/lib/util/index.js +1 -2
- package/lib/util/index.js.map +1 -1
- package/lib/util/typeCheck.d.ts +6 -1
- package/lib/util/typeCheck.d.ts.map +1 -1
- package/lib/util/typeCheck.js.map +1 -1
- package/lib/util/typeCheckTests.d.ts +14 -2
- package/lib/util/typeCheckTests.d.ts.map +1 -1
- package/lib/util/typeCheckTests.js.map +1 -1
- package/lib/util/utils.d.ts +29 -0
- package/lib/util/utils.d.ts.map +1 -1
- package/lib/util/utils.js +9 -0
- package/lib/util/utils.js.map +1 -1
- package/package.json +22 -22
- package/src/core/forest/forest.ts +12 -1
- package/src/core/index.ts +8 -1
- package/src/core/rebase/utils.ts +12 -10
- package/src/core/revertible.ts +35 -1
- package/src/core/schema-stored/storedSchemaRepository.ts +2 -1
- package/src/core/tree/anchorSet.ts +2 -1
- package/src/core/tree/detachedFieldIndexCodec.ts +4 -3
- package/src/core/tree/index.ts +1 -0
- package/src/core/tree/visitorUtils.ts +56 -1
- package/src/feature-libraries/chunked-forest/chunkedForest.ts +33 -7
- package/src/feature-libraries/chunked-forest/uniformChunk.ts +3 -3
- package/src/feature-libraries/flex-tree/context.ts +1 -1
- package/src/feature-libraries/index.ts +9 -0
- package/src/feature-libraries/indexing/anchorTreeIndex.ts +453 -0
- package/src/feature-libraries/indexing/index.ts +11 -0
- package/src/feature-libraries/indexing/types.ts +37 -0
- package/src/feature-libraries/object-forest/objectForest.ts +22 -4
- package/src/feature-libraries/sequence-field/invert.ts +4 -4
- package/src/feature-libraries/sequence-field/sequenceFieldToDelta.ts +4 -4
- package/src/index.ts +16 -6
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/index.ts +0 -2
- package/src/shared-tree/schematizingTreeView.ts +7 -7
- package/src/shared-tree/sharedTree.ts +60 -6
- package/src/shared-tree/sharedTreeChangeFamily.ts +5 -4
- package/src/shared-tree/treeCheckout.ts +186 -193
- package/src/shared-tree-core/branch.ts +93 -220
- package/src/shared-tree-core/branchCommitEnricher.ts +69 -64
- package/src/shared-tree-core/defaultResubmitMachine.ts +3 -2
- package/src/shared-tree-core/editManager.ts +1 -1
- package/src/shared-tree-core/index.ts +9 -2
- package/src/shared-tree-core/sharedTreeCore.ts +17 -62
- package/src/shared-tree-core/transaction.ts +165 -0
- package/src/shared-tree-core/transactionEnricher.ts +30 -24
- package/src/simple-tree/api/identifierIndex.ts +64 -0
- package/src/simple-tree/api/index.ts +5 -0
- package/src/simple-tree/api/simpleSchemaToJsonSchema.ts +17 -18
- package/src/simple-tree/api/simpleTreeIndex.ts +231 -0
- package/src/simple-tree/api/tree.ts +8 -5
- package/src/simple-tree/api/treeNodeApi.ts +1 -1
- package/src/simple-tree/core/index.ts +1 -0
- package/src/simple-tree/core/treeNodeKernel.ts +37 -2
- package/src/simple-tree/core/unhydratedFlexTree.ts +2 -1
- package/src/simple-tree/index.ts +4 -0
- package/src/simple-tree/objectNode.ts +19 -12
- package/src/simple-tree/toMapTree.ts +5 -5
- package/src/util/index.ts +3 -1
- package/src/util/typeCheck.ts +6 -1
- package/src/util/typeCheckTests.ts +11 -1
- package/src/util/utils.ts +38 -0
- package/dist/events/emitter.d.ts +0 -139
- package/dist/events/emitter.d.ts.map +0 -1
- package/dist/events/emitter.js +0 -165
- package/dist/events/emitter.js.map +0 -1
- package/dist/events/index.d.ts +0 -7
- package/dist/events/index.d.ts.map +0 -1
- package/dist/events/index.js +0 -11
- package/dist/events/index.js.map +0 -1
- package/dist/events/interop.d.ts +0 -30
- package/dist/events/interop.d.ts.map +0 -1
- package/dist/events/interop.js.map +0 -1
- package/dist/events/listeners.d.ts +0 -76
- package/dist/events/listeners.d.ts.map +0 -1
- package/dist/events/listeners.js +0 -7
- package/dist/events/listeners.js.map +0 -1
- package/dist/shared-tree-core/transactionStack.d.ts +0 -29
- package/dist/shared-tree-core/transactionStack.d.ts.map +0 -1
- package/dist/shared-tree-core/transactionStack.js +0 -41
- package/dist/shared-tree-core/transactionStack.js.map +0 -1
- package/dist/util/transactionResult.d.ts +0 -19
- package/dist/util/transactionResult.d.ts.map +0 -1
- package/dist/util/transactionResult.js +0 -23
- package/dist/util/transactionResult.js.map +0 -1
- package/lib/events/emitter.d.ts +0 -139
- package/lib/events/emitter.d.ts.map +0 -1
- package/lib/events/emitter.js +0 -160
- package/lib/events/emitter.js.map +0 -1
- package/lib/events/index.d.ts +0 -7
- package/lib/events/index.d.ts.map +0 -1
- package/lib/events/index.js.map +0 -1
- package/lib/events/interop.d.ts +0 -30
- package/lib/events/interop.d.ts.map +0 -1
- package/lib/events/interop.js.map +0 -1
- package/lib/events/listeners.d.ts +0 -76
- package/lib/events/listeners.d.ts.map +0 -1
- package/lib/events/listeners.js +0 -6
- package/lib/events/listeners.js.map +0 -1
- package/lib/shared-tree-core/transactionStack.d.ts +0 -29
- package/lib/shared-tree-core/transactionStack.d.ts.map +0 -1
- package/lib/shared-tree-core/transactionStack.js +0 -37
- package/lib/shared-tree-core/transactionStack.js.map +0 -1
- package/lib/util/transactionResult.d.ts +0 -19
- package/lib/util/transactionResult.d.ts.map +0 -1
- package/lib/util/transactionResult.js +0 -20
- package/lib/util/transactionResult.js.map +0 -1
- package/src/events/README.md +0 -3
- package/src/events/emitter.ts +0 -256
- package/src/events/index.ts +0 -19
- package/src/events/interop.ts +0 -38
- package/src/events/listeners.ts +0 -80
- package/src/shared-tree-core/transactionStack.ts +0 -45
- package/src/util/transactionResult.ts +0 -19
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
|
|
6
6
|
import { BTree } from "@tylerbu/sorted-btree-es6";
|
|
7
7
|
|
|
8
|
-
import {
|
|
8
|
+
import type { Listenable } from "@fluidframework/core-interfaces/internal";
|
|
9
|
+
import { createEmitter } from "@fluid-internal/client-utils";
|
|
9
10
|
import { compareStrings } from "../../util/index.js";
|
|
10
11
|
|
|
11
12
|
import type { TreeNodeSchemaIdentifier } from "./format.js";
|
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
|
|
8
8
|
import { assert } from "@fluidframework/core-utils/internal";
|
|
9
9
|
|
|
10
|
-
import {
|
|
10
|
+
import type { Listenable } from "@fluidframework/core-interfaces/internal";
|
|
11
|
+
import { createEmitter } from "@fluid-internal/client-utils";
|
|
11
12
|
import {
|
|
12
13
|
type Brand,
|
|
13
14
|
type BrandedKey,
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { assert
|
|
6
|
+
import { assert } from "@fluidframework/core-utils/internal";
|
|
7
7
|
|
|
8
8
|
import {
|
|
9
9
|
type ICodecOptions,
|
|
@@ -24,6 +24,7 @@ import type {
|
|
|
24
24
|
Major,
|
|
25
25
|
} from "./detachedFieldIndexTypes.js";
|
|
26
26
|
import type { IIdCompressor } from "@fluidframework/id-compressor";
|
|
27
|
+
import { hasSingle } from "../../util/index.js";
|
|
27
28
|
|
|
28
29
|
class MajorCodec implements IJsonCodec<Major> {
|
|
29
30
|
public constructor(
|
|
@@ -83,8 +84,8 @@ export function makeDetachedNodeToFieldCodec(
|
|
|
83
84
|
for (const [minor, detachedField] of innerMap) {
|
|
84
85
|
rootRanges.push([minor, detachedField.root]);
|
|
85
86
|
}
|
|
86
|
-
if (rootRanges
|
|
87
|
-
const firstRootRange = rootRanges[0]
|
|
87
|
+
if (hasSingle(rootRanges)) {
|
|
88
|
+
const firstRootRange = rootRanges[0];
|
|
88
89
|
const rootsForRevision: EncodedRootsForRevision = [
|
|
89
90
|
encodedRevision,
|
|
90
91
|
firstRootRange[0],
|
package/src/core/tree/index.ts
CHANGED
|
@@ -13,7 +13,7 @@ import type { FieldKey } from "../schema-stored/index.js";
|
|
|
13
13
|
import type { ProtoNodes, Root } from "./delta.js";
|
|
14
14
|
import { DetachedFieldIndex } from "./detachedFieldIndex.js";
|
|
15
15
|
import type { ForestRootId } from "./detachedFieldIndexTypes.js";
|
|
16
|
-
import type { PlaceIndex, Range } from "./pathTree.js";
|
|
16
|
+
import type { NodeIndex, PlaceIndex, Range } from "./pathTree.js";
|
|
17
17
|
import { type DeltaVisitor, visitDelta } from "./visitDelta.js";
|
|
18
18
|
import type { IIdCompressor } from "@fluidframework/id-compressor";
|
|
19
19
|
|
|
@@ -133,3 +133,58 @@ export interface AnnouncedVisitor extends DeltaVisitor {
|
|
|
133
133
|
): void;
|
|
134
134
|
afterReplace(newContentSource: FieldKey, newContent: Range, oldContent: FieldKey): void;
|
|
135
135
|
}
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Creates an announced visitor with only the provided functions and uses a no op for the rest.
|
|
139
|
+
* This is provided to make some of the delta visitor definitions cleaner.
|
|
140
|
+
*/
|
|
141
|
+
export function createAnnouncedVisitor(visitorFunctions: {
|
|
142
|
+
free?: () => void;
|
|
143
|
+
create?: (content: ProtoNodes, destination: FieldKey) => void;
|
|
144
|
+
afterCreate?: (content: ProtoNodes, destination: FieldKey) => void;
|
|
145
|
+
beforeDestroy?: (field: FieldKey, count: number) => void;
|
|
146
|
+
destroy?: (detachedField: FieldKey, count: number) => void;
|
|
147
|
+
beforeAttach?: (source: FieldKey, count: number, destination: PlaceIndex) => void;
|
|
148
|
+
attach?: (source: FieldKey, count: number, destination: PlaceIndex) => void;
|
|
149
|
+
afterAttach?: (source: FieldKey, destination: Range) => void;
|
|
150
|
+
beforeDetach?: (source: Range, destination: FieldKey) => void;
|
|
151
|
+
afterDetach?: (source: PlaceIndex, count: number, destination: FieldKey) => void;
|
|
152
|
+
detach?: (source: Range, destination: FieldKey) => void;
|
|
153
|
+
beforeReplace?: (
|
|
154
|
+
newContent: FieldKey,
|
|
155
|
+
oldContent: Range,
|
|
156
|
+
oldContentDestination: FieldKey,
|
|
157
|
+
) => void;
|
|
158
|
+
replace?: (
|
|
159
|
+
newContentSource: FieldKey,
|
|
160
|
+
range: Range,
|
|
161
|
+
oldContentDestination: FieldKey,
|
|
162
|
+
) => void;
|
|
163
|
+
afterReplace?: (newContentSource: FieldKey, newContent: Range, oldContent: FieldKey) => void;
|
|
164
|
+
enterNode?: (index: NodeIndex) => void;
|
|
165
|
+
exitNode?: (index: NodeIndex) => void;
|
|
166
|
+
enterField?: (key: FieldKey) => void;
|
|
167
|
+
exitField?: (key: FieldKey) => void;
|
|
168
|
+
}): AnnouncedVisitor {
|
|
169
|
+
const noOp = (): void => {};
|
|
170
|
+
return {
|
|
171
|
+
free: visitorFunctions.free ?? noOp,
|
|
172
|
+
create: visitorFunctions.create ?? noOp,
|
|
173
|
+
afterCreate: visitorFunctions.afterCreate ?? noOp,
|
|
174
|
+
beforeDestroy: visitorFunctions.beforeDestroy ?? noOp,
|
|
175
|
+
destroy: visitorFunctions.destroy ?? noOp,
|
|
176
|
+
beforeAttach: visitorFunctions.beforeAttach ?? noOp,
|
|
177
|
+
attach: visitorFunctions.attach ?? noOp,
|
|
178
|
+
afterAttach: visitorFunctions.afterAttach ?? noOp,
|
|
179
|
+
beforeDetach: visitorFunctions.beforeDetach ?? noOp,
|
|
180
|
+
detach: visitorFunctions.detach ?? noOp,
|
|
181
|
+
afterDetach: visitorFunctions.afterDetach ?? noOp,
|
|
182
|
+
beforeReplace: visitorFunctions.beforeReplace ?? noOp,
|
|
183
|
+
replace: visitorFunctions.replace ?? noOp,
|
|
184
|
+
afterReplace: visitorFunctions.afterReplace ?? noOp,
|
|
185
|
+
enterNode: visitorFunctions.enterNode ?? noOp,
|
|
186
|
+
exitNode: visitorFunctions.exitNode ?? noOp,
|
|
187
|
+
enterField: visitorFunctions.enterField ?? noOp,
|
|
188
|
+
exitField: visitorFunctions.exitField ?? noOp,
|
|
189
|
+
};
|
|
190
|
+
}
|
|
@@ -4,10 +4,13 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { assert, oob } from "@fluidframework/core-utils/internal";
|
|
7
|
+
import type { Listenable } from "@fluidframework/core-interfaces";
|
|
8
|
+
import { createEmitter } from "@fluid-internal/client-utils";
|
|
7
9
|
|
|
8
10
|
import {
|
|
9
11
|
type Anchor,
|
|
10
12
|
AnchorSet,
|
|
13
|
+
type AnnouncedVisitor,
|
|
11
14
|
type DeltaVisitor,
|
|
12
15
|
type DetachedField,
|
|
13
16
|
type FieldAnchor,
|
|
@@ -24,12 +27,19 @@ import {
|
|
|
24
27
|
type TreeStoredSchemaSubscription,
|
|
25
28
|
type UpPath,
|
|
26
29
|
aboveRootPlaceholder,
|
|
30
|
+
combineVisitors,
|
|
27
31
|
detachedFieldAsKey,
|
|
28
32
|
mapCursorField,
|
|
29
33
|
rootFieldKey,
|
|
30
34
|
} from "../../core/index.js";
|
|
31
|
-
import {
|
|
32
|
-
|
|
35
|
+
import {
|
|
36
|
+
assertValidRange,
|
|
37
|
+
brand,
|
|
38
|
+
fail,
|
|
39
|
+
getLast,
|
|
40
|
+
getOrAddEmptyToMap,
|
|
41
|
+
hasSome,
|
|
42
|
+
} from "../../util/index.js";
|
|
33
43
|
|
|
34
44
|
import { BasicChunk, BasicChunkCursor, type SiblingsOrKey } from "./basicChunk.js";
|
|
35
45
|
import type { ChunkedCursor, TreeChunk } from "./chunk.js";
|
|
@@ -53,6 +63,7 @@ interface StackNode {
|
|
|
53
63
|
export class ChunkedForest implements IEditableForest {
|
|
54
64
|
private activeVisitor?: DeltaVisitor;
|
|
55
65
|
|
|
66
|
+
private readonly deltaVisitors: Set<() => AnnouncedVisitor> = new Set();
|
|
56
67
|
readonly #events = createEmitter<ForestEvents>();
|
|
57
68
|
public readonly events: Listenable<ForestEvents> = this.#events;
|
|
58
69
|
|
|
@@ -83,6 +94,14 @@ export class ChunkedForest implements IEditableForest {
|
|
|
83
94
|
this.anchors.forget(anchor);
|
|
84
95
|
}
|
|
85
96
|
|
|
97
|
+
public registerAnnouncedVisitor(visitor: () => AnnouncedVisitor): void {
|
|
98
|
+
this.deltaVisitors.add(visitor);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
public deregisterAnnouncedVisitor(visitor: () => AnnouncedVisitor): void {
|
|
102
|
+
this.deltaVisitors.delete(visitor);
|
|
103
|
+
}
|
|
104
|
+
|
|
86
105
|
public acquireVisitor(): DeltaVisitor {
|
|
87
106
|
assert(
|
|
88
107
|
this.activeVisitor === undefined,
|
|
@@ -93,15 +112,15 @@ export class ChunkedForest implements IEditableForest {
|
|
|
93
112
|
this.roots = this.roots.clone();
|
|
94
113
|
}
|
|
95
114
|
|
|
96
|
-
const
|
|
115
|
+
const forestVisitor = {
|
|
97
116
|
forest: this,
|
|
98
117
|
// Current location in the tree, as a non-shared BasicChunk (TODO: support in-place modification of other chunk formats when possible).
|
|
99
118
|
// Start above root detached sequences.
|
|
100
119
|
mutableChunkStack: [] as StackNode[],
|
|
101
120
|
mutableChunk: this.roots as BasicChunk | undefined,
|
|
102
121
|
getParent(): StackNode {
|
|
103
|
-
assert(this.mutableChunkStack
|
|
104
|
-
return this.mutableChunkStack
|
|
122
|
+
assert(hasSome(this.mutableChunkStack), 0x532 /* invalid access to root's parent */);
|
|
123
|
+
return getLast(this.mutableChunkStack);
|
|
105
124
|
},
|
|
106
125
|
free(): void {
|
|
107
126
|
this.mutableChunk = undefined;
|
|
@@ -262,8 +281,15 @@ export class ChunkedForest implements IEditableForest {
|
|
|
262
281
|
this.mutableChunk = top.mutableChunk;
|
|
263
282
|
},
|
|
264
283
|
};
|
|
265
|
-
|
|
266
|
-
|
|
284
|
+
|
|
285
|
+
const announcedVisitors: AnnouncedVisitor[] = [];
|
|
286
|
+
this.deltaVisitors.forEach((getVisitor) => announcedVisitors.push(getVisitor()));
|
|
287
|
+
const combinedVisitor = combineVisitors(
|
|
288
|
+
[forestVisitor, ...announcedVisitors],
|
|
289
|
+
announcedVisitors,
|
|
290
|
+
);
|
|
291
|
+
this.activeVisitor = combinedVisitor;
|
|
292
|
+
return combinedVisitor;
|
|
267
293
|
}
|
|
268
294
|
|
|
269
295
|
private nextDetachedFieldIdentifier = 0;
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
type UpPath,
|
|
16
16
|
type Value,
|
|
17
17
|
} from "../../core/index.js";
|
|
18
|
-
import { ReferenceCountedBase, fail } from "../../util/index.js";
|
|
18
|
+
import { ReferenceCountedBase, fail, hasSome } from "../../util/index.js";
|
|
19
19
|
import { SynchronousCursor, prefixFieldPath, prefixPath } from "../treeCursorUtils.js";
|
|
20
20
|
|
|
21
21
|
import { type ChunkedCursor, type TreeChunk, cursorChunk, dummyRoot } from "./chunk.js";
|
|
@@ -517,12 +517,12 @@ class Cursor extends SynchronousCursor implements ChunkedCursor {
|
|
|
517
517
|
|
|
518
518
|
public firstField(): boolean {
|
|
519
519
|
const fieldsArray = this.nodeInfo(CursorLocationType.Nodes).shape.fieldsArray;
|
|
520
|
-
if (fieldsArray
|
|
520
|
+
if (!hasSome(fieldsArray)) {
|
|
521
521
|
return false;
|
|
522
522
|
}
|
|
523
523
|
this.indexOfField = 0;
|
|
524
524
|
this.mode = CursorLocationType.Fields;
|
|
525
|
-
const fields = fieldsArray[0]
|
|
525
|
+
const fields = fieldsArray[0];
|
|
526
526
|
this.fieldKey = fields[0];
|
|
527
527
|
return true;
|
|
528
528
|
}
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
anchorSlot,
|
|
13
13
|
moveToDetachedField,
|
|
14
14
|
} from "../../core/index.js";
|
|
15
|
-
import type { Listenable } from "
|
|
15
|
+
import type { Listenable } from "@fluidframework/core-interfaces";
|
|
16
16
|
import { type IDisposable, disposeSymbol } from "../../util/index.js";
|
|
17
17
|
import type { NodeKeyManager } from "../node-key/index.js";
|
|
18
18
|
|
|
@@ -172,3 +172,12 @@ export {
|
|
|
172
172
|
} from "./schema-edits/index.js";
|
|
173
173
|
|
|
174
174
|
export { makeMitigatedChangeFamily } from "./mitigatedChangeFamily.js";
|
|
175
|
+
|
|
176
|
+
export {
|
|
177
|
+
type KeyFinder,
|
|
178
|
+
AnchorTreeIndex,
|
|
179
|
+
hasElement,
|
|
180
|
+
type TreeIndex,
|
|
181
|
+
type TreeIndexKey,
|
|
182
|
+
type TreeIndexNodes,
|
|
183
|
+
} from "./indexing/index.js";
|