@fluidframework/tree 2.10.0 → 2.12.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 +29 -0
- package/api-report/tree.alpha.api.md +49 -18
- package/api-report/tree.beta.api.md +6 -15
- package/api-report/tree.legacy.alpha.api.md +6 -15
- package/api-report/tree.legacy.public.api.md +6 -15
- package/api-report/tree.public.api.md +6 -15
- 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 +3 -3
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +6 -3
- 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 +13 -17
- 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/format.d.ts +0 -3
- package/dist/core/schema-stored/format.d.ts.map +1 -1
- package/dist/core/schema-stored/format.js.map +1 -1
- package/dist/core/schema-stored/schema.d.ts +12 -10
- package/dist/core/schema-stored/schema.d.ts.map +1 -1
- package/dist/core/schema-stored/schema.js +3 -5
- package/dist/core/schema-stored/schema.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/schema-view/index.d.ts +1 -1
- package/dist/core/schema-view/index.d.ts.map +1 -1
- package/dist/core/schema-view/index.js +1 -2
- package/dist/core/schema-view/index.js.map +1 -1
- package/dist/core/schema-view/view.d.ts +0 -7
- package/dist/core/schema-view/view.d.ts.map +1 -1
- package/dist/core/schema-view/view.js +1 -12
- package/dist/core/schema-view/view.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/{lib/feature-libraries/chunked-forest → dist/core/tree}/chunk.d.ts +2 -1
- package/dist/core/tree/chunk.d.ts.map +1 -0
- package/dist/{feature-libraries/chunked-forest → core/tree}/chunk.js +2 -2
- package/dist/core/tree/chunk.js.map +1 -0
- 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 +2 -1
- package/dist/core/tree/index.d.ts.map +1 -1
- package/dist/core/tree/index.js +6 -1
- package/dist/core/tree/index.js.map +1 -1
- package/dist/core/tree/treeTextFormat.d.ts +0 -5
- package/dist/core/tree/treeTextFormat.d.ts.map +1 -1
- package/dist/core/tree/treeTextFormat.js.map +1 -1
- package/dist/core/tree/types.d.ts +0 -5
- package/dist/core/tree/types.d.ts.map +1 -1
- package/dist/core/tree/types.js +0 -1
- package/dist/core/tree/types.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/basicChunk.d.ts +1 -2
- package/dist/feature-libraries/chunked-forest/basicChunk.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/basicChunk.js +14 -14
- package/dist/feature-libraries/chunked-forest/basicChunk.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkTree.d.ts +1 -2
- package/dist/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkTree.js +2 -3
- package/dist/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts +5 -3
- 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/codec/chunkCodecUtilities.d.ts +1 -2
- package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts +1 -2
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/emptyChunk.d.ts +1 -1
- package/dist/feature-libraries/chunked-forest/emptyChunk.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/emptyChunk.js +2 -3
- package/dist/feature-libraries/chunked-forest/emptyChunk.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/index.d.ts +1 -1
- package/dist/feature-libraries/chunked-forest/index.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/index.js +5 -5
- package/dist/feature-libraries/chunked-forest/index.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/sequenceChunk.d.ts +1 -1
- package/dist/feature-libraries/chunked-forest/sequenceChunk.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/sequenceChunk.js +2 -2
- package/dist/feature-libraries/chunked-forest/sequenceChunk.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts +1 -2
- package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/uniformChunk.js +14 -14
- package/dist/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultSchema.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultSchema.js +1 -0
- package/dist/feature-libraries/default-schema/defaultSchema.js.map +1 -1
- package/dist/feature-libraries/default-schema/schemaChecker.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/schemaChecker.js +2 -1
- package/dist/feature-libraries/default-schema/schemaChecker.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 +2 -1
- package/dist/feature-libraries/index.d.ts.map +1 -1
- package/dist/feature-libraries/index.js +9 -2
- package/dist/feature-libraries/index.js.map +1 -1
- package/dist/feature-libraries/indexing/anchorTreeIndex.d.ts +139 -0
- package/dist/feature-libraries/indexing/anchorTreeIndex.d.ts.map +1 -0
- package/dist/feature-libraries/indexing/anchorTreeIndex.js +387 -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/modular-schema/discrepancies.d.ts +84 -24
- package/dist/feature-libraries/modular-schema/discrepancies.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/discrepancies.js +32 -33
- package/dist/feature-libraries/modular-schema/discrepancies.js.map +1 -1
- package/dist/feature-libraries/modular-schema/index.d.ts +1 -1
- package/dist/feature-libraries/modular-schema/index.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/index.js +5 -1
- package/dist/feature-libraries/modular-schema/index.js.map +1 -1
- package/dist/feature-libraries/modular-schema/isNeverTree.d.ts +0 -1
- package/dist/feature-libraries/modular-schema/isNeverTree.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/isNeverTree.js +0 -1
- package/dist/feature-libraries/modular-schema/isNeverTree.js.map +1 -1
- 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/optional-field/optionalFieldChangeFormatV1.d.ts +6 -6
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts +7 -7
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts +12 -12
- package/dist/feature-libraries/sequence-field/formatV1.d.ts +99 -99
- package/dist/feature-libraries/sequence-field/formatV1.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/formatV2.d.ts +76 -76
- package/dist/feature-libraries/sequence-field/formatV2.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/formatV3.d.ts +54 -54
- 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/feature-libraries/sequence-field/types.d.ts +0 -1
- package/dist/feature-libraries/sequence-field/types.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/types.js.map +1 -1
- package/dist/index.d.ts +6 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -13
- 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 +2 -2
- 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/schematizeTree.d.ts +1 -1
- package/dist/shared-tree/schematizeTree.d.ts.map +1 -1
- package/dist/shared-tree/schematizeTree.js +6 -6
- package/dist/shared-tree/schematizeTree.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 +35 -38
- package/dist/shared-tree/schematizingTreeView.js.map +1 -1
- package/dist/shared-tree/sharedTree.d.ts +27 -6
- package/dist/shared-tree/sharedTree.d.ts.map +1 -1
- package/dist/shared-tree/sharedTree.js +146 -21
- 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 +59 -72
- package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
- package/dist/shared-tree/treeCheckout.js +243 -188
- package/dist/shared-tree/treeCheckout.js.map +1 -1
- package/dist/shared-tree-core/branch.d.ts +29 -107
- package/dist/shared-tree-core/branch.d.ts.map +1 -1
- package/dist/shared-tree-core/branch.js +51 -195
- package/dist/shared-tree-core/branch.js.map +1 -1
- package/dist/shared-tree-core/branchCommitEnricher.d.ts +24 -32
- package/dist/shared-tree-core/branchCommitEnricher.d.ts.map +1 -1
- package/dist/shared-tree-core/branchCommitEnricher.js +70 -53
- 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 +4 -4
- package/dist/shared-tree-core/editManager.js.map +1 -1
- package/dist/shared-tree-core/index.d.ts +3 -3
- package/dist/shared-tree-core/index.d.ts.map +1 -1
- package/dist/shared-tree-core/index.js +5 -4
- package/dist/shared-tree-core/index.js.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.d.ts +3 -10
- package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.js +14 -67
- package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/dist/shared-tree-core/transaction.d.ts +146 -0
- package/dist/shared-tree-core/transaction.d.ts.map +1 -0
- package/dist/shared-tree-core/transaction.js +211 -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/conciseTree.d.ts.map +1 -1
- package/dist/simple-tree/api/conciseTree.js +1 -1
- package/dist/simple-tree/api/conciseTree.js.map +1 -1
- package/dist/simple-tree/api/create.d.ts.map +1 -1
- package/dist/simple-tree/api/create.js +5 -1
- package/dist/simple-tree/api/create.js.map +1 -1
- package/dist/simple-tree/api/customTree.d.ts +14 -2
- package/dist/simple-tree/api/customTree.d.ts.map +1 -1
- package/dist/simple-tree/api/customTree.js +53 -3
- package/dist/simple-tree/api/customTree.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 +4 -2
- package/dist/simple-tree/api/index.d.ts.map +1 -1
- package/dist/simple-tree/api/index.js +8 -1
- package/dist/simple-tree/api/index.js.map +1 -1
- package/dist/simple-tree/api/schemaFactory.d.ts +48 -0
- package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactory.js +5 -2
- package/dist/simple-tree/api/schemaFactory.js.map +1 -1
- package/dist/simple-tree/api/simpleSchema.d.ts +3 -1
- package/dist/simple-tree/api/simpleSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/simpleSchema.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 +93 -0
- package/dist/simple-tree/api/simpleTreeIndex.js.map +1 -0
- package/dist/simple-tree/api/storedSchema.d.ts +4 -4
- package/dist/simple-tree/api/storedSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/storedSchema.js +8 -21
- package/dist/simple-tree/api/storedSchema.js.map +1 -1
- package/dist/simple-tree/api/tree.d.ts +5 -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/api/verboseTree.js +1 -1
- package/dist/simple-tree/api/verboseTree.js.map +1 -1
- package/dist/simple-tree/api/view.d.ts +14 -9
- package/dist/simple-tree/api/view.d.ts.map +1 -1
- package/dist/simple-tree/api/view.js +129 -40
- package/dist/simple-tree/api/view.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 +2 -2
- package/dist/simple-tree/index.d.ts.map +1 -1
- package/dist/simple-tree/index.js +7 -2
- package/dist/simple-tree/index.js.map +1 -1
- package/dist/simple-tree/leafNodeSchema.d.ts +0 -15
- package/dist/simple-tree/leafNodeSchema.d.ts.map +1 -1
- package/dist/simple-tree/leafNodeSchema.js +0 -15
- package/dist/simple-tree/leafNodeSchema.js.map +1 -1
- package/dist/simple-tree/objectNode.d.ts +15 -5
- package/dist/simple-tree/objectNode.d.ts.map +1 -1
- package/dist/simple-tree/objectNode.js +18 -2
- package/dist/simple-tree/objectNode.js.map +1 -1
- package/dist/simple-tree/objectNodeTypes.d.ts +4 -0
- package/dist/simple-tree/objectNodeTypes.d.ts.map +1 -1
- package/dist/simple-tree/objectNodeTypes.js.map +1 -1
- package/dist/simple-tree/schemaTypes.d.ts +4 -2
- package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
- package/dist/simple-tree/schemaTypes.js.map +1 -1
- package/dist/simple-tree/toMapTree.js +3 -3
- package/dist/simple-tree/toMapTree.js.map +1 -1
- package/dist/simple-tree/toStoredSchema.d.ts.map +1 -1
- package/dist/simple-tree/toStoredSchema.js +18 -13
- package/dist/simple-tree/toStoredSchema.js.map +1 -1
- package/dist/util/brand.d.ts +0 -2
- package/dist/util/brand.d.ts.map +1 -1
- package/dist/util/brand.js +0 -1
- package/dist/util/brand.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 +6 -4
- package/dist/util/index.js.map +1 -1
- package/dist/util/typeCheck.d.ts +6 -3
- 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 +42 -0
- package/dist/util/utils.d.ts.map +1 -1
- package/dist/util/utils.js +35 -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 +3 -3
- package/lib/core/index.d.ts.map +1 -1
- package/lib/core/index.js +3 -3
- 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 +13 -17
- 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/format.d.ts +0 -3
- package/lib/core/schema-stored/format.d.ts.map +1 -1
- package/lib/core/schema-stored/format.js.map +1 -1
- package/lib/core/schema-stored/schema.d.ts +12 -10
- package/lib/core/schema-stored/schema.d.ts.map +1 -1
- package/lib/core/schema-stored/schema.js +3 -5
- package/lib/core/schema-stored/schema.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/schema-view/index.d.ts +1 -1
- package/lib/core/schema-view/index.d.ts.map +1 -1
- package/lib/core/schema-view/index.js +1 -1
- package/lib/core/schema-view/index.js.map +1 -1
- package/lib/core/schema-view/view.d.ts +0 -7
- package/lib/core/schema-view/view.d.ts.map +1 -1
- package/lib/core/schema-view/view.js +0 -11
- package/lib/core/schema-view/view.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/{dist/feature-libraries/chunked-forest → lib/core/tree}/chunk.d.ts +2 -1
- package/lib/core/tree/chunk.d.ts.map +1 -0
- package/lib/{feature-libraries/chunked-forest → core/tree}/chunk.js +1 -1
- package/lib/core/tree/chunk.js.map +1 -0
- 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 +2 -1
- package/lib/core/tree/index.d.ts.map +1 -1
- package/lib/core/tree/index.js +2 -1
- package/lib/core/tree/index.js.map +1 -1
- package/lib/core/tree/treeTextFormat.d.ts +0 -5
- package/lib/core/tree/treeTextFormat.d.ts.map +1 -1
- package/lib/core/tree/treeTextFormat.js.map +1 -1
- package/lib/core/tree/types.d.ts +0 -5
- package/lib/core/tree/types.d.ts.map +1 -1
- package/lib/core/tree/types.js +0 -1
- package/lib/core/tree/types.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/basicChunk.d.ts +1 -2
- package/lib/feature-libraries/chunked-forest/basicChunk.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/basicChunk.js +1 -1
- package/lib/feature-libraries/chunked-forest/basicChunk.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkTree.d.ts +1 -2
- package/lib/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkTree.js +1 -2
- package/lib/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts +5 -3
- 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/codec/chunkCodecUtilities.d.ts +1 -2
- package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts +1 -2
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/emptyChunk.d.ts +1 -1
- package/lib/feature-libraries/chunked-forest/emptyChunk.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/emptyChunk.js +1 -2
- package/lib/feature-libraries/chunked-forest/emptyChunk.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/index.d.ts +1 -1
- package/lib/feature-libraries/chunked-forest/index.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/index.js +1 -1
- package/lib/feature-libraries/chunked-forest/index.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/sequenceChunk.d.ts +1 -1
- package/lib/feature-libraries/chunked-forest/sequenceChunk.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/sequenceChunk.js +1 -1
- package/lib/feature-libraries/chunked-forest/sequenceChunk.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts +1 -2
- package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/uniformChunk.js +4 -4
- package/lib/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultSchema.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultSchema.js +1 -0
- package/lib/feature-libraries/default-schema/defaultSchema.js.map +1 -1
- package/lib/feature-libraries/default-schema/schemaChecker.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/schemaChecker.js +2 -1
- package/lib/feature-libraries/default-schema/schemaChecker.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 +2 -1
- package/lib/feature-libraries/index.d.ts.map +1 -1
- package/lib/feature-libraries/index.js +2 -1
- package/lib/feature-libraries/index.js.map +1 -1
- package/lib/feature-libraries/indexing/anchorTreeIndex.d.ts +139 -0
- package/lib/feature-libraries/indexing/anchorTreeIndex.d.ts.map +1 -0
- package/lib/feature-libraries/indexing/anchorTreeIndex.js +382 -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/modular-schema/discrepancies.d.ts +84 -24
- package/lib/feature-libraries/modular-schema/discrepancies.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/discrepancies.js +25 -28
- package/lib/feature-libraries/modular-schema/discrepancies.js.map +1 -1
- package/lib/feature-libraries/modular-schema/index.d.ts +1 -1
- package/lib/feature-libraries/modular-schema/index.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/index.js +1 -1
- package/lib/feature-libraries/modular-schema/index.js.map +1 -1
- package/lib/feature-libraries/modular-schema/isNeverTree.d.ts +0 -1
- package/lib/feature-libraries/modular-schema/isNeverTree.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/isNeverTree.js +0 -1
- package/lib/feature-libraries/modular-schema/isNeverTree.js.map +1 -1
- 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/optional-field/optionalFieldChangeFormatV1.d.ts +6 -6
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts +7 -7
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts +12 -12
- package/lib/feature-libraries/sequence-field/formatV1.d.ts +99 -99
- package/lib/feature-libraries/sequence-field/formatV1.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/formatV2.d.ts +76 -76
- package/lib/feature-libraries/sequence-field/formatV2.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/formatV3.d.ts +54 -54
- 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/feature-libraries/sequence-field/types.d.ts +0 -1
- package/lib/feature-libraries/sequence-field/types.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/types.js.map +1 -1
- package/lib/index.d.ts +6 -7
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -4
- 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 +2 -2
- 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/schematizeTree.d.ts +1 -1
- package/lib/shared-tree/schematizeTree.d.ts.map +1 -1
- package/lib/shared-tree/schematizeTree.js +7 -7
- package/lib/shared-tree/schematizeTree.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 +12 -16
- package/lib/shared-tree/schematizingTreeView.js.map +1 -1
- package/lib/shared-tree/sharedTree.d.ts +27 -6
- package/lib/shared-tree/sharedTree.d.ts.map +1 -1
- package/lib/shared-tree/sharedTree.js +135 -10
- 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 +59 -72
- package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
- package/lib/shared-tree/treeCheckout.js +233 -177
- package/lib/shared-tree/treeCheckout.js.map +1 -1
- package/lib/shared-tree-core/branch.d.ts +29 -107
- package/lib/shared-tree-core/branch.d.ts.map +1 -1
- package/lib/shared-tree-core/branch.js +50 -193
- package/lib/shared-tree-core/branch.js.map +1 -1
- package/lib/shared-tree-core/branchCommitEnricher.d.ts +24 -32
- package/lib/shared-tree-core/branchCommitEnricher.d.ts.map +1 -1
- package/lib/shared-tree-core/branchCommitEnricher.js +71 -54
- 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 +4 -4
- package/lib/shared-tree-core/editManager.js.map +1 -1
- package/lib/shared-tree-core/index.d.ts +3 -3
- package/lib/shared-tree-core/index.d.ts.map +1 -1
- package/lib/shared-tree-core/index.js +2 -2
- package/lib/shared-tree-core/index.js.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.d.ts +3 -10
- package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.js +15 -68
- package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/lib/shared-tree-core/transaction.d.ts +146 -0
- package/lib/shared-tree-core/transaction.d.ts.map +1 -0
- package/lib/shared-tree-core/transaction.js +206 -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/conciseTree.d.ts.map +1 -1
- package/lib/simple-tree/api/conciseTree.js +2 -2
- package/lib/simple-tree/api/conciseTree.js.map +1 -1
- package/lib/simple-tree/api/create.d.ts.map +1 -1
- package/lib/simple-tree/api/create.js +5 -1
- package/lib/simple-tree/api/create.js.map +1 -1
- package/lib/simple-tree/api/customTree.d.ts +14 -2
- package/lib/simple-tree/api/customTree.d.ts.map +1 -1
- package/lib/simple-tree/api/customTree.js +50 -2
- package/lib/simple-tree/api/customTree.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 +4 -2
- package/lib/simple-tree/api/index.d.ts.map +1 -1
- package/lib/simple-tree/api/index.js +4 -1
- package/lib/simple-tree/api/index.js.map +1 -1
- package/lib/simple-tree/api/schemaFactory.d.ts +48 -0
- package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactory.js +4 -1
- package/lib/simple-tree/api/schemaFactory.js.map +1 -1
- package/lib/simple-tree/api/simpleSchema.d.ts +3 -1
- package/lib/simple-tree/api/simpleSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/simpleSchema.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 +89 -0
- package/lib/simple-tree/api/simpleTreeIndex.js.map +1 -0
- package/lib/simple-tree/api/storedSchema.d.ts +4 -4
- package/lib/simple-tree/api/storedSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/storedSchema.js +5 -18
- package/lib/simple-tree/api/storedSchema.js.map +1 -1
- package/lib/simple-tree/api/tree.d.ts +5 -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/api/verboseTree.js +2 -2
- package/lib/simple-tree/api/verboseTree.js.map +1 -1
- package/lib/simple-tree/api/view.d.ts +14 -9
- package/lib/simple-tree/api/view.d.ts.map +1 -1
- package/lib/simple-tree/api/view.js +131 -42
- package/lib/simple-tree/api/view.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 +2 -2
- package/lib/simple-tree/index.d.ts.map +1 -1
- package/lib/simple-tree/index.js +2 -2
- package/lib/simple-tree/index.js.map +1 -1
- package/lib/simple-tree/leafNodeSchema.d.ts +0 -15
- package/lib/simple-tree/leafNodeSchema.d.ts.map +1 -1
- package/lib/simple-tree/leafNodeSchema.js +0 -15
- package/lib/simple-tree/leafNodeSchema.js.map +1 -1
- package/lib/simple-tree/objectNode.d.ts +15 -5
- package/lib/simple-tree/objectNode.d.ts.map +1 -1
- package/lib/simple-tree/objectNode.js +16 -1
- package/lib/simple-tree/objectNode.js.map +1 -1
- package/lib/simple-tree/objectNodeTypes.d.ts +4 -0
- package/lib/simple-tree/objectNodeTypes.d.ts.map +1 -1
- package/lib/simple-tree/objectNodeTypes.js.map +1 -1
- package/lib/simple-tree/schemaTypes.d.ts +4 -2
- package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
- package/lib/simple-tree/schemaTypes.js.map +1 -1
- package/lib/simple-tree/toMapTree.js +5 -5
- package/lib/simple-tree/toMapTree.js.map +1 -1
- package/lib/simple-tree/toStoredSchema.d.ts.map +1 -1
- package/lib/simple-tree/toStoredSchema.js +19 -14
- package/lib/simple-tree/toStoredSchema.js.map +1 -1
- package/lib/util/brand.d.ts +0 -2
- package/lib/util/brand.d.ts.map +1 -1
- package/lib/util/brand.js +0 -1
- package/lib/util/brand.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 -3
- 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 +42 -0
- package/lib/util/utils.d.ts.map +1 -1
- package/lib/util/utils.js +30 -0
- package/lib/util/utils.js.map +1 -1
- package/package.json +23 -23
- package/src/core/forest/forest.ts +12 -1
- package/src/core/index.ts +13 -2
- package/src/core/rebase/utils.ts +28 -29
- package/src/core/revertible.ts +35 -1
- package/src/core/schema-stored/format.ts +0 -3
- package/src/core/schema-stored/schema.ts +13 -10
- package/src/core/schema-stored/storedSchemaRepository.ts +2 -1
- package/src/core/schema-view/index.ts +0 -1
- package/src/core/schema-view/view.ts +0 -11
- package/src/core/tree/anchorSet.ts +2 -1
- package/src/{feature-libraries/chunked-forest → core/tree}/chunk.ts +4 -4
- package/src/core/tree/detachedFieldIndexCodec.ts +4 -3
- package/src/core/tree/index.ts +9 -0
- package/src/core/tree/treeTextFormat.ts +0 -5
- package/src/core/tree/types.ts +0 -5
- package/src/core/tree/visitorUtils.ts +56 -1
- package/src/feature-libraries/chunked-forest/basicChunk.ts +4 -2
- package/src/feature-libraries/chunked-forest/chunkTree.ts +2 -1
- package/src/feature-libraries/chunked-forest/chunkedForest.ts +35 -8
- package/src/feature-libraries/chunked-forest/codec/chunkCodecUtilities.ts +1 -2
- package/src/feature-libraries/chunked-forest/codec/chunkDecoding.ts +6 -2
- package/src/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.ts +1 -1
- package/src/feature-libraries/chunked-forest/emptyChunk.ts +4 -2
- package/src/feature-libraries/chunked-forest/index.ts +1 -1
- package/src/feature-libraries/chunked-forest/sequenceChunk.ts +1 -1
- package/src/feature-libraries/chunked-forest/uniformChunk.ts +7 -4
- package/src/feature-libraries/default-schema/defaultSchema.ts +1 -0
- package/src/feature-libraries/default-schema/schemaChecker.ts +4 -1
- package/src/feature-libraries/flex-tree/context.ts +1 -1
- package/src/feature-libraries/index.ts +22 -0
- package/src/feature-libraries/indexing/anchorTreeIndex.ts +482 -0
- package/src/feature-libraries/indexing/index.ts +11 -0
- package/src/feature-libraries/indexing/types.ts +37 -0
- package/src/feature-libraries/modular-schema/discrepancies.ts +76 -38
- package/src/feature-libraries/modular-schema/index.ts +13 -0
- package/src/feature-libraries/modular-schema/isNeverTree.ts +0 -2
- 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/feature-libraries/sequence-field/types.ts +0 -1
- package/src/index.ts +17 -35
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/index.ts +1 -2
- package/src/shared-tree/schematizeTree.ts +6 -10
- package/src/shared-tree/schematizingTreeView.ts +18 -28
- package/src/shared-tree/sharedTree.ts +216 -30
- package/src/shared-tree/sharedTreeChangeFamily.ts +5 -4
- package/src/shared-tree/treeCheckout.ts +341 -299
- package/src/shared-tree-core/branch.ts +80 -300
- package/src/shared-tree-core/branchCommitEnricher.ts +66 -62
- package/src/shared-tree-core/defaultResubmitMachine.ts +3 -2
- package/src/shared-tree-core/editManager.ts +4 -9
- package/src/shared-tree-core/index.ts +11 -3
- package/src/shared-tree-core/sharedTreeCore.ts +23 -79
- package/src/shared-tree-core/transaction.ts +310 -0
- package/src/shared-tree-core/transactionEnricher.ts +30 -24
- package/src/simple-tree/api/conciseTree.ts +2 -2
- package/src/simple-tree/api/create.ts +5 -1
- package/src/simple-tree/api/customTree.ts +69 -1
- package/src/simple-tree/api/identifierIndex.ts +64 -0
- package/src/simple-tree/api/index.ts +17 -2
- package/src/simple-tree/api/schemaFactory.ts +62 -1
- package/src/simple-tree/api/simpleSchema.ts +3 -1
- package/src/simple-tree/api/simpleSchemaToJsonSchema.ts +17 -18
- package/src/simple-tree/api/simpleTreeIndex.ts +233 -0
- package/src/simple-tree/api/storedSchema.ts +7 -22
- package/src/simple-tree/api/tree.ts +14 -5
- package/src/simple-tree/api/treeNodeApi.ts +1 -1
- package/src/simple-tree/api/verboseTree.ts +2 -2
- package/src/simple-tree/api/view.ts +197 -51
- 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 +10 -0
- package/src/simple-tree/leafNodeSchema.ts +0 -19
- package/src/simple-tree/objectNode.ts +45 -14
- package/src/simple-tree/objectNodeTypes.ts +5 -0
- package/src/simple-tree/schemaTypes.ts +7 -2
- package/src/simple-tree/toMapTree.ts +5 -5
- package/src/simple-tree/toStoredSchema.ts +25 -19
- package/src/util/brand.ts +0 -2
- package/src/util/index.ts +4 -1
- package/src/util/typeCheck.ts +6 -3
- package/src/util/typeCheckTests.ts +11 -1
- package/src/util/utils.ts +64 -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/feature-libraries/chunked-forest/chunk.d.ts.map +0 -1
- package/dist/feature-libraries/chunked-forest/chunk.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/feature-libraries/chunked-forest/chunk.d.ts.map +0 -1
- package/lib/feature-libraries/chunked-forest/chunk.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
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import { assert } from "@fluidframework/core-utils/internal";
|
|
7
7
|
|
|
8
8
|
import {
|
|
9
|
+
type FieldKey,
|
|
9
10
|
type FieldKindIdentifier,
|
|
10
11
|
LeafNodeStoredSchema,
|
|
11
12
|
MapNodeStoredSchema,
|
|
@@ -25,6 +26,7 @@ import { brand } from "../../util/index.js";
|
|
|
25
26
|
// Rather than both existing, one of which just returns boolean and the other which returns additional details, a simple comparison which returns everything needed should be used.
|
|
26
27
|
|
|
27
28
|
/**
|
|
29
|
+
* Discriminated union (keyed on `mismatch`) of discrepancies between a view and stored schema.
|
|
28
30
|
* @remarks
|
|
29
31
|
*
|
|
30
32
|
* 1. FieldDiscrepancy
|
|
@@ -60,47 +62,73 @@ export type Discrepancy = FieldDiscrepancy | NodeDiscrepancy;
|
|
|
60
62
|
|
|
61
63
|
export type NodeDiscrepancy = NodeKindDiscrepancy | NodeFieldsDiscrepancy;
|
|
62
64
|
|
|
65
|
+
/**
|
|
66
|
+
* A discrepancy in the declaration of a field.
|
|
67
|
+
*/
|
|
63
68
|
export type FieldDiscrepancy =
|
|
64
69
|
| AllowedTypeDiscrepancy
|
|
65
70
|
| FieldKindDiscrepancy
|
|
66
71
|
| ValueSchemaDiscrepancy;
|
|
67
72
|
|
|
68
|
-
|
|
69
|
-
|
|
73
|
+
/**
|
|
74
|
+
* Information about where a field discrepancy is located within a collection of schema.
|
|
75
|
+
*/
|
|
76
|
+
export interface FieldDiscrepancyLocation {
|
|
77
|
+
/**
|
|
78
|
+
* The {@link TreeNodeSchemaIdentifier} that contains the discrepancy.
|
|
79
|
+
*
|
|
80
|
+
* Undefined iff the discrepancy is part of the root field schema.
|
|
81
|
+
*/
|
|
82
|
+
identifier: TreeNodeSchemaIdentifier | undefined;
|
|
83
|
+
/**
|
|
84
|
+
* The {@link FieldKey} for the field that contains the discrepancy.
|
|
85
|
+
* Undefined when:
|
|
86
|
+
* - the discrepancy is part of the root field schema
|
|
87
|
+
* - the discrepancy is for 'all fields' of a map node
|
|
88
|
+
*/
|
|
89
|
+
fieldKey: FieldKey | undefined;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* A discrepancy in the allowed types of a field.
|
|
94
|
+
*
|
|
95
|
+
* @remarks
|
|
96
|
+
* This reports the symmetric difference of allowed types in view/stored to enable more efficient checks for compatibility
|
|
97
|
+
*/
|
|
98
|
+
export interface AllowedTypeDiscrepancy extends FieldDiscrepancyLocation {
|
|
70
99
|
mismatch: "allowedTypes";
|
|
71
100
|
/**
|
|
72
|
-
* List of allowed type identifiers in viewed schema
|
|
101
|
+
* List of allowed type identifiers in viewed schema which are not allowed in stored schema
|
|
73
102
|
*/
|
|
74
|
-
view:
|
|
103
|
+
view: TreeNodeSchemaIdentifier[];
|
|
75
104
|
/**
|
|
76
|
-
* List of allowed type identifiers in stored schema
|
|
105
|
+
* List of allowed type identifiers in stored schema which are not allowed in view schema
|
|
77
106
|
*/
|
|
78
|
-
stored:
|
|
107
|
+
stored: TreeNodeSchemaIdentifier[];
|
|
79
108
|
}
|
|
80
109
|
|
|
81
|
-
export interface FieldKindDiscrepancy {
|
|
82
|
-
identifier: string | undefined; // undefined indicates root field schema
|
|
110
|
+
export interface FieldKindDiscrepancy extends FieldDiscrepancyLocation {
|
|
83
111
|
mismatch: "fieldKind";
|
|
84
112
|
view: FieldKindIdentifier;
|
|
85
113
|
stored: FieldKindIdentifier;
|
|
86
114
|
}
|
|
87
115
|
|
|
88
116
|
export interface ValueSchemaDiscrepancy {
|
|
89
|
-
identifier:
|
|
117
|
+
identifier: TreeNodeSchemaIdentifier;
|
|
90
118
|
mismatch: "valueSchema";
|
|
91
119
|
view: ValueSchema | undefined;
|
|
92
120
|
stored: ValueSchema | undefined;
|
|
93
121
|
}
|
|
94
122
|
|
|
95
123
|
export interface NodeKindDiscrepancy {
|
|
96
|
-
identifier:
|
|
124
|
+
identifier: TreeNodeSchemaIdentifier;
|
|
97
125
|
mismatch: "nodeKind";
|
|
98
126
|
view: SchemaFactoryNodeKind | undefined;
|
|
99
127
|
stored: SchemaFactoryNodeKind | undefined;
|
|
100
128
|
}
|
|
101
129
|
|
|
102
130
|
export interface NodeFieldsDiscrepancy {
|
|
103
|
-
identifier:
|
|
131
|
+
identifier: TreeNodeSchemaIdentifier;
|
|
104
132
|
mismatch: "fields";
|
|
105
133
|
differences: FieldDiscrepancy[];
|
|
106
134
|
}
|
|
@@ -121,26 +149,25 @@ function getNodeSchemaType(nodeSchema: TreeNodeStoredSchema): SchemaFactoryNodeK
|
|
|
121
149
|
/**
|
|
122
150
|
* Finds and reports discrepancies between a view schema and a stored schema.
|
|
123
151
|
*
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
*
|
|
128
|
-
*
|
|
129
|
-
* consistent. Otherwise this difference is treated as `NodeKindDiscrepancy`
|
|
130
|
-
* - If a node schema with the same identifier exists in both view and stored, and their `SchemaFactoryNodeKind`
|
|
131
|
-
* are consistent, perform a exhaustive validation to identify all `FieldDiscrepancy`.
|
|
132
|
-
*
|
|
133
|
-
* 3. For each node schema in the stored, verify if it exists in the view. The overlapping parts were already
|
|
134
|
-
* addressed in the previous step.
|
|
152
|
+
* See documentation on {@link Discrepancy} for details of possible discrepancies.
|
|
153
|
+
* @remarks
|
|
154
|
+
* This function does not attempt to distinguish between equivalent representations of a node/field involving extraneous never trees.
|
|
155
|
+
* For example, a Forbidden field with allowed type set `[]` is equivalent to an optional field with allowed type set `[]`,
|
|
156
|
+
* as well as an optional field with an allowed type set containing only unconstructable types.
|
|
135
157
|
*
|
|
136
|
-
*
|
|
158
|
+
* It is up to the caller to determine whether such discrepancies matter.
|
|
137
159
|
*/
|
|
138
160
|
export function* getAllowedContentDiscrepancies(
|
|
139
161
|
view: TreeStoredSchema,
|
|
140
162
|
stored: TreeStoredSchema,
|
|
141
163
|
): Iterable<Discrepancy> {
|
|
142
164
|
// check root schema discrepancies
|
|
143
|
-
yield* getFieldDiscrepancies(
|
|
165
|
+
yield* getFieldDiscrepancies(
|
|
166
|
+
view.rootFieldSchema,
|
|
167
|
+
stored.rootFieldSchema,
|
|
168
|
+
undefined,
|
|
169
|
+
undefined,
|
|
170
|
+
);
|
|
144
171
|
|
|
145
172
|
for (const result of compareMaps(view.nodeSchema, stored.nodeSchema)) {
|
|
146
173
|
switch (result.type) {
|
|
@@ -195,6 +222,7 @@ function* getNodeDiscrepancies(
|
|
|
195
222
|
case "object": {
|
|
196
223
|
const differences = Array.from(
|
|
197
224
|
trackObjectNodeDiscrepancies(
|
|
225
|
+
identifier,
|
|
198
226
|
view as ObjectNodeStoredSchema,
|
|
199
227
|
stored as ObjectNodeStoredSchema,
|
|
200
228
|
),
|
|
@@ -213,6 +241,7 @@ function* getNodeDiscrepancies(
|
|
|
213
241
|
(view as MapNodeStoredSchema).mapFields,
|
|
214
242
|
(stored as MapNodeStoredSchema).mapFields,
|
|
215
243
|
identifier,
|
|
244
|
+
undefined,
|
|
216
245
|
);
|
|
217
246
|
break;
|
|
218
247
|
case "leaf": {
|
|
@@ -241,7 +270,8 @@ function* getNodeDiscrepancies(
|
|
|
241
270
|
function* getFieldDiscrepancies(
|
|
242
271
|
view: TreeFieldStoredSchema,
|
|
243
272
|
stored: TreeFieldStoredSchema,
|
|
244
|
-
|
|
273
|
+
identifier: TreeNodeSchemaIdentifier | undefined,
|
|
274
|
+
fieldKey: FieldKey | undefined,
|
|
245
275
|
): Iterable<FieldDiscrepancy> {
|
|
246
276
|
// Only track the symmetric differences of two sets.
|
|
247
277
|
const findSetDiscrepancies = (
|
|
@@ -256,7 +286,8 @@ function* getFieldDiscrepancies(
|
|
|
256
286
|
const [viewExtra, storedExtra] = findSetDiscrepancies(view.types, stored.types);
|
|
257
287
|
if (viewExtra.length > 0 || storedExtra.length > 0) {
|
|
258
288
|
yield {
|
|
259
|
-
identifier
|
|
289
|
+
identifier,
|
|
290
|
+
fieldKey,
|
|
260
291
|
mismatch: "allowedTypes",
|
|
261
292
|
view: viewExtra,
|
|
262
293
|
stored: storedExtra,
|
|
@@ -265,7 +296,8 @@ function* getFieldDiscrepancies(
|
|
|
265
296
|
|
|
266
297
|
if (view.kind !== stored.kind) {
|
|
267
298
|
yield {
|
|
268
|
-
identifier
|
|
299
|
+
identifier,
|
|
300
|
+
fieldKey,
|
|
269
301
|
mismatch: "fieldKind",
|
|
270
302
|
view: view.kind,
|
|
271
303
|
stored: stored.kind,
|
|
@@ -274,6 +306,7 @@ function* getFieldDiscrepancies(
|
|
|
274
306
|
}
|
|
275
307
|
|
|
276
308
|
function* trackObjectNodeDiscrepancies(
|
|
309
|
+
identifier: TreeNodeSchemaIdentifier,
|
|
277
310
|
view: ObjectNodeStoredSchema,
|
|
278
311
|
stored: ObjectNodeStoredSchema,
|
|
279
312
|
): Iterable<FieldDiscrepancy> {
|
|
@@ -298,7 +331,8 @@ function* trackObjectNodeDiscrepancies(
|
|
|
298
331
|
break;
|
|
299
332
|
}
|
|
300
333
|
yield {
|
|
301
|
-
identifier
|
|
334
|
+
identifier,
|
|
335
|
+
fieldKey,
|
|
302
336
|
mismatch: "fieldKind",
|
|
303
337
|
view: result.value.kind,
|
|
304
338
|
stored: storedEmptyFieldSchema.kind,
|
|
@@ -312,7 +346,8 @@ function* trackObjectNodeDiscrepancies(
|
|
|
312
346
|
break;
|
|
313
347
|
}
|
|
314
348
|
yield {
|
|
315
|
-
identifier
|
|
349
|
+
identifier,
|
|
350
|
+
fieldKey,
|
|
316
351
|
mismatch: "fieldKind",
|
|
317
352
|
view: storedEmptyFieldSchema.kind,
|
|
318
353
|
stored: result.value.kind,
|
|
@@ -320,12 +355,11 @@ function* trackObjectNodeDiscrepancies(
|
|
|
320
355
|
break;
|
|
321
356
|
}
|
|
322
357
|
case "both": {
|
|
323
|
-
yield* getFieldDiscrepancies(result.valueA, result.valueB, fieldKey);
|
|
358
|
+
yield* getFieldDiscrepancies(result.valueA, result.valueB, identifier, fieldKey);
|
|
324
359
|
break;
|
|
325
360
|
}
|
|
326
|
-
default:
|
|
361
|
+
default:
|
|
327
362
|
break;
|
|
328
|
-
}
|
|
329
363
|
}
|
|
330
364
|
}
|
|
331
365
|
}
|
|
@@ -428,13 +462,13 @@ function isFieldDiscrepancyCompatible(discrepancy: FieldDiscrepancy): boolean {
|
|
|
428
462
|
*
|
|
429
463
|
* The linear extension is represented as a lookup from each poset element to its index in the linear extension.
|
|
430
464
|
*/
|
|
431
|
-
type LinearExtension<T> = Map<T, number>;
|
|
465
|
+
export type LinearExtension<T> = Map<T, number>;
|
|
432
466
|
|
|
433
467
|
/**
|
|
434
468
|
* A realizer for a partially-ordered set. See:
|
|
435
469
|
* https://en.wikipedia.org/wiki/Order_dimension
|
|
436
470
|
*/
|
|
437
|
-
type Realizer<T> = LinearExtension<T>[];
|
|
471
|
+
export type Realizer<T> = LinearExtension<T>[];
|
|
438
472
|
|
|
439
473
|
/**
|
|
440
474
|
* @privateRemarks
|
|
@@ -468,7 +502,7 @@ const FieldKindIdentifiers = {
|
|
|
468
502
|
* identifier
|
|
469
503
|
* ```
|
|
470
504
|
*/
|
|
471
|
-
const fieldRealizer: Realizer<FieldKindIdentifier> = [
|
|
505
|
+
export const fieldRealizer: Realizer<FieldKindIdentifier> = [
|
|
472
506
|
[
|
|
473
507
|
FieldKindIdentifiers.forbidden,
|
|
474
508
|
FieldKindIdentifiers.identifier,
|
|
@@ -485,7 +519,7 @@ const fieldRealizer: Realizer<FieldKindIdentifier> = [
|
|
|
485
519
|
],
|
|
486
520
|
].map((extension) => new Map(extension.map((identifier, index) => [identifier, index])));
|
|
487
521
|
|
|
488
|
-
const PosetComparisonResult = {
|
|
522
|
+
export const PosetComparisonResult = {
|
|
489
523
|
Less: "<",
|
|
490
524
|
Greater: ">",
|
|
491
525
|
Equal: "=",
|
|
@@ -494,7 +528,11 @@ const PosetComparisonResult = {
|
|
|
494
528
|
type PosetComparisonResult =
|
|
495
529
|
(typeof PosetComparisonResult)[keyof typeof PosetComparisonResult];
|
|
496
530
|
|
|
497
|
-
function comparePosetElements<T>(
|
|
531
|
+
export function comparePosetElements<T>(
|
|
532
|
+
a: T,
|
|
533
|
+
b: T,
|
|
534
|
+
realizer: Realizer<T>,
|
|
535
|
+
): PosetComparisonResult {
|
|
498
536
|
let hasLessThanResult = false;
|
|
499
537
|
let hasGreaterThanResult = false;
|
|
500
538
|
for (const extension of realizer) {
|
|
@@ -517,7 +555,7 @@ function comparePosetElements<T>(a: T, b: T, realizer: Realizer<T>): PosetCompar
|
|
|
517
555
|
: PosetComparisonResult.Equal;
|
|
518
556
|
}
|
|
519
557
|
|
|
520
|
-
function posetLte<T>(a: T, b: T, realizer: Realizer<T>): boolean {
|
|
558
|
+
export function posetLte<T>(a: T, b: T, realizer: Realizer<T>): boolean {
|
|
521
559
|
const comparison = comparePosetElements(a, b, realizer);
|
|
522
560
|
return (
|
|
523
561
|
comparison === PosetComparisonResult.Less || comparison === PosetComparisonResult.Equal
|
|
@@ -77,4 +77,17 @@ export type {
|
|
|
77
77
|
export {
|
|
78
78
|
getAllowedContentDiscrepancies,
|
|
79
79
|
isRepoSuperset,
|
|
80
|
+
type AllowedTypeDiscrepancy,
|
|
81
|
+
type FieldKindDiscrepancy,
|
|
82
|
+
type ValueSchemaDiscrepancy,
|
|
83
|
+
type FieldDiscrepancy,
|
|
84
|
+
type NodeDiscrepancy,
|
|
85
|
+
type NodeKindDiscrepancy,
|
|
86
|
+
type NodeFieldsDiscrepancy,
|
|
87
|
+
type LinearExtension,
|
|
88
|
+
type Realizer,
|
|
89
|
+
fieldRealizer,
|
|
90
|
+
PosetComparisonResult,
|
|
91
|
+
comparePosetElements,
|
|
92
|
+
posetLte,
|
|
80
93
|
} from "./discrepancies.js";
|
|
@@ -4,10 +4,13 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { assert } from "@fluidframework/core-utils/internal";
|
|
7
|
+
import { createEmitter } from "@fluid-internal/client-utils";
|
|
8
|
+
import type { Listenable } from "@fluidframework/core-interfaces";
|
|
7
9
|
|
|
8
10
|
import {
|
|
9
11
|
type Anchor,
|
|
10
12
|
AnchorSet,
|
|
13
|
+
type AnnouncedVisitor,
|
|
11
14
|
type CursorLocationType,
|
|
12
15
|
type DeltaVisitor,
|
|
13
16
|
type DetachedField,
|
|
@@ -31,9 +34,9 @@ import {
|
|
|
31
34
|
type UpPath,
|
|
32
35
|
type Value,
|
|
33
36
|
aboveRootPlaceholder,
|
|
37
|
+
combineVisitors,
|
|
34
38
|
deepCopyMapTree,
|
|
35
39
|
} from "../../core/index.js";
|
|
36
|
-
import { createEmitter, type Listenable } from "../../events/index.js";
|
|
37
40
|
import {
|
|
38
41
|
assertNonNegativeSafeInteger,
|
|
39
42
|
assertValidIndex,
|
|
@@ -72,6 +75,7 @@ export class ObjectForest implements IEditableForest {
|
|
|
72
75
|
|
|
73
76
|
// All cursors that are in the "Current" state. Must be empty when editing.
|
|
74
77
|
public readonly currentCursors: Set<Cursor> = new Set();
|
|
78
|
+
private readonly deltaVisitors: Set<() => AnnouncedVisitor> = new Set();
|
|
75
79
|
|
|
76
80
|
readonly #events = createEmitter<ForestEvents>();
|
|
77
81
|
public readonly events: Listenable<ForestEvents> = this.#events;
|
|
@@ -254,9 +258,23 @@ export class ObjectForest implements IEditableForest {
|
|
|
254
258
|
}
|
|
255
259
|
}
|
|
256
260
|
|
|
257
|
-
const
|
|
258
|
-
|
|
259
|
-
|
|
261
|
+
const forestVisitor = new Visitor(this);
|
|
262
|
+
const announcedVisitors: AnnouncedVisitor[] = [];
|
|
263
|
+
this.deltaVisitors.forEach((getVisitor) => announcedVisitors.push(getVisitor()));
|
|
264
|
+
const combinedVisitor = combineVisitors(
|
|
265
|
+
[forestVisitor, ...announcedVisitors],
|
|
266
|
+
announcedVisitors,
|
|
267
|
+
);
|
|
268
|
+
this.activeVisitor = combinedVisitor;
|
|
269
|
+
return combinedVisitor;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
public registerAnnouncedVisitor(visitor: () => AnnouncedVisitor): void {
|
|
273
|
+
this.deltaVisitors.add(visitor);
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
public deregisterAnnouncedVisitor(visitor: () => AnnouncedVisitor): void {
|
|
277
|
+
this.deltaVisitors.delete(visitor);
|
|
260
278
|
}
|
|
261
279
|
|
|
262
280
|
private nextRange = 0;
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { assert, unreachableCase
|
|
6
|
+
import { assert, unreachableCase } from "@fluidframework/core-utils/internal";
|
|
7
7
|
|
|
8
8
|
import type { RevisionTag } from "../../core/index.js";
|
|
9
|
-
import { type IdAllocator, type Mutable, fail } from "../../util/index.js";
|
|
9
|
+
import { type IdAllocator, type Mutable, fail, hasSingle } from "../../util/index.js";
|
|
10
10
|
import {
|
|
11
11
|
type CrossFieldManager,
|
|
12
12
|
CrossFieldTarget,
|
|
@@ -257,11 +257,11 @@ function invertMark(
|
|
|
257
257
|
}
|
|
258
258
|
|
|
259
259
|
assert(
|
|
260
|
-
detachInverses
|
|
260
|
+
hasSingle(detachInverses),
|
|
261
261
|
0x80d /* Only expected MoveIn marks to be split when inverting */,
|
|
262
262
|
);
|
|
263
263
|
|
|
264
|
-
let detachInverse = detachInverses[0]
|
|
264
|
+
let detachInverse = detachInverses[0];
|
|
265
265
|
assert(isAttach(detachInverse), 0x80e /* Inverse of a detach should be an attach */);
|
|
266
266
|
|
|
267
267
|
const inverses: Mark[] = [];
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { assert, unreachableCase
|
|
6
|
+
import { assert, unreachableCase } from "@fluidframework/core-utils/internal";
|
|
7
7
|
|
|
8
8
|
import {
|
|
9
9
|
type DeltaDetachedNodeChanges,
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
type DeltaMark,
|
|
13
13
|
areEqualChangeAtomIds,
|
|
14
14
|
} from "../../core/index.js";
|
|
15
|
-
import type
|
|
15
|
+
import { getLast, hasSome, type Mutable } from "../../util/index.js";
|
|
16
16
|
import { nodeIdFromChangeAtom } from "../deltaUtils.js";
|
|
17
17
|
|
|
18
18
|
import { isMoveIn, isMoveOut } from "./moveEffectTable.js";
|
|
@@ -176,8 +176,8 @@ export function sequenceFieldToDelta(
|
|
|
176
176
|
}
|
|
177
177
|
}
|
|
178
178
|
// Remove trailing no-op marks
|
|
179
|
-
while (local
|
|
180
|
-
const lastMark = local
|
|
179
|
+
while (hasSome(local)) {
|
|
180
|
+
const lastMark = getLast(local);
|
|
181
181
|
if (
|
|
182
182
|
lastMark.attach !== undefined ||
|
|
183
183
|
lastMark.detach !== undefined ||
|
package/src/index.ts
CHANGED
|
@@ -4,51 +4,35 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
export {
|
|
7
|
-
EmptyKey,
|
|
8
|
-
type FieldKey,
|
|
9
|
-
type TreeValue,
|
|
10
|
-
type FieldMapObject,
|
|
11
|
-
type NodeData,
|
|
12
|
-
type GenericTreeNode,
|
|
13
|
-
type JsonableTree,
|
|
14
|
-
type GenericFieldsNode,
|
|
15
|
-
type TreeNodeSchemaIdentifier,
|
|
16
|
-
type TreeFieldStoredSchema,
|
|
17
7
|
ValueSchema,
|
|
18
|
-
TreeNodeStoredSchema,
|
|
19
|
-
type FieldKindIdentifier,
|
|
20
|
-
type TreeTypeSet,
|
|
21
|
-
type TreeStoredSchema,
|
|
22
8
|
type Revertible,
|
|
23
9
|
CommitKind,
|
|
24
10
|
RevertibleStatus,
|
|
25
11
|
type CommitMetadata,
|
|
26
|
-
type StoredSchemaCollection,
|
|
27
|
-
type ErasedTreeNodeSchemaDataFormat,
|
|
28
|
-
ObjectNodeStoredSchema,
|
|
29
|
-
MapNodeStoredSchema,
|
|
30
|
-
LeafNodeStoredSchema,
|
|
31
12
|
type RevertibleFactory,
|
|
13
|
+
type RevertibleAlphaFactory,
|
|
14
|
+
type RevertibleAlpha,
|
|
32
15
|
} from "./core/index.js";
|
|
33
|
-
export { type Brand } from "./util/index.js";
|
|
34
16
|
|
|
35
|
-
export {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
} from "
|
|
17
|
+
export type {
|
|
18
|
+
Listeners,
|
|
19
|
+
IsListener,
|
|
20
|
+
Listenable,
|
|
21
|
+
Off,
|
|
22
|
+
} from "@fluidframework/core-interfaces";
|
|
41
23
|
|
|
42
24
|
export {
|
|
43
25
|
TreeStatus,
|
|
44
26
|
TreeCompressionStrategy,
|
|
27
|
+
type TreeIndex,
|
|
28
|
+
type TreeIndexKey,
|
|
29
|
+
type TreeIndexNodes,
|
|
45
30
|
} from "./feature-libraries/index.js";
|
|
46
31
|
|
|
47
32
|
export {
|
|
48
|
-
type
|
|
33
|
+
type ITreeInternal,
|
|
49
34
|
type SharedTreeOptions,
|
|
50
35
|
ForestType,
|
|
51
|
-
type SharedTreeContentSnapshot,
|
|
52
36
|
type SharedTreeFormatOptions,
|
|
53
37
|
SharedTreeFormatVersion,
|
|
54
38
|
Tree,
|
|
@@ -126,6 +110,11 @@ export {
|
|
|
126
110
|
// Recursive Schema APIs
|
|
127
111
|
type ValidateRecursiveSchema,
|
|
128
112
|
type FixRecursiveArraySchema,
|
|
113
|
+
// Index APIs
|
|
114
|
+
type SimpleTreeIndex,
|
|
115
|
+
type IdentifierIndex,
|
|
116
|
+
createSimpleTreeIndex,
|
|
117
|
+
createIdentifierIndex,
|
|
129
118
|
// experimental @alpha APIs:
|
|
130
119
|
adaptEnum,
|
|
131
120
|
enumFromStrings,
|
|
@@ -180,11 +169,6 @@ export {
|
|
|
180
169
|
type SimpleObjectNodeSchema,
|
|
181
170
|
normalizeAllowedTypes,
|
|
182
171
|
getSimpleSchema,
|
|
183
|
-
numberSchema,
|
|
184
|
-
stringSchema,
|
|
185
|
-
booleanSchema,
|
|
186
|
-
handleSchema,
|
|
187
|
-
nullSchema,
|
|
188
172
|
type ReadonlyArrayNode,
|
|
189
173
|
type InsertableTreeNodeFromAllowedTypes,
|
|
190
174
|
type Input,
|
|
@@ -207,8 +191,6 @@ export { noopValidator } from "./codec/index.js";
|
|
|
207
191
|
export { typeboxValidator } from "./external-utilities/index.js";
|
|
208
192
|
|
|
209
193
|
export {
|
|
210
|
-
type Covariant,
|
|
211
|
-
BrandedType,
|
|
212
194
|
type RestrictiveReadonlyRecord,
|
|
213
195
|
type RestrictiveStringRecord,
|
|
214
196
|
type MakeNominal,
|
package/src/packageVersion.ts
CHANGED
package/src/shared-tree/index.ts
CHANGED
|
@@ -16,15 +16,14 @@ export {
|
|
|
16
16
|
buildConfiguredForest,
|
|
17
17
|
defaultSharedTreeOptions,
|
|
18
18
|
type ForestOptions,
|
|
19
|
+
type ITreeInternal,
|
|
19
20
|
} from "./sharedTree.js";
|
|
20
21
|
|
|
21
22
|
export {
|
|
22
23
|
createTreeCheckout,
|
|
23
24
|
TreeCheckout,
|
|
24
25
|
type ITreeCheckout,
|
|
25
|
-
runSynchronous,
|
|
26
26
|
type CheckoutEvents,
|
|
27
|
-
type ITransaction,
|
|
28
27
|
type ITreeCheckoutFork,
|
|
29
28
|
type BranchableTree,
|
|
30
29
|
type TreeBranchFork,
|
|
@@ -7,7 +7,6 @@ import { assert, unreachableCase } from "@fluidframework/core-utils/internal";
|
|
|
7
7
|
|
|
8
8
|
import {
|
|
9
9
|
AllowedUpdateType,
|
|
10
|
-
Compatibility,
|
|
11
10
|
CursorLocationType,
|
|
12
11
|
type ITreeCursorSynchronous,
|
|
13
12
|
type TreeStoredSchema,
|
|
@@ -24,7 +23,7 @@ import {
|
|
|
24
23
|
import { fail, isReadonlyArray } from "../util/index.js";
|
|
25
24
|
|
|
26
25
|
import type { ITreeCheckout } from "./treeCheckout.js";
|
|
27
|
-
import type
|
|
26
|
+
import { toStoredSchema, type ViewSchema } from "../simple-tree/index.js";
|
|
28
27
|
|
|
29
28
|
/**
|
|
30
29
|
* Modify `storedSchema` and invoke `setInitialTree` when it's time to set the tree content.
|
|
@@ -120,10 +119,7 @@ export function evaluateUpdate(
|
|
|
120
119
|
): UpdateType {
|
|
121
120
|
const compatibility = viewSchema.checkCompatibility(checkout.storedSchema);
|
|
122
121
|
|
|
123
|
-
if (
|
|
124
|
-
compatibility.read === Compatibility.Compatible &&
|
|
125
|
-
compatibility.write === Compatibility.Compatible
|
|
126
|
-
) {
|
|
122
|
+
if (compatibility.canUpgrade && compatibility.canView) {
|
|
127
123
|
// Compatible as is
|
|
128
124
|
return UpdateType.None;
|
|
129
125
|
}
|
|
@@ -133,13 +129,13 @@ export function evaluateUpdate(
|
|
|
133
129
|
return UpdateType.Initialize;
|
|
134
130
|
}
|
|
135
131
|
|
|
136
|
-
if (compatibility.
|
|
132
|
+
if (!compatibility.canUpgrade) {
|
|
137
133
|
// Existing stored schema permits trees which are incompatible with the view schema, so schema can not be updated
|
|
138
134
|
return UpdateType.Incompatible;
|
|
139
135
|
}
|
|
140
136
|
|
|
141
|
-
assert(compatibility.
|
|
142
|
-
assert(compatibility.
|
|
137
|
+
assert(!compatibility.canView, 0x8bd /* unexpected case */);
|
|
138
|
+
assert(compatibility.canUpgrade, 0x8be /* unexpected case */);
|
|
143
139
|
|
|
144
140
|
// eslint-disable-next-line no-bitwise
|
|
145
141
|
return allowedSchemaModifications & AllowedUpdateType.SchemaCompatible
|
|
@@ -244,7 +240,7 @@ export function ensureSchema(
|
|
|
244
240
|
return false;
|
|
245
241
|
}
|
|
246
242
|
case UpdateType.SchemaCompatible: {
|
|
247
|
-
checkout.updateSchema(viewSchema.schema);
|
|
243
|
+
checkout.updateSchema(toStoredSchema(viewSchema.schema));
|
|
248
244
|
return true;
|
|
249
245
|
}
|
|
250
246
|
case UpdateType.Initialize: {
|