@fluidframework/tree 2.4.0-294316 → 2.4.0-297385
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/api-report/tree.alpha.api.md +58 -28
- package/api-report/tree.beta.api.md +38 -27
- package/api-report/tree.legacy.alpha.api.md +38 -27
- package/api-report/tree.legacy.public.api.md +38 -27
- package/api-report/tree.public.api.md +38 -27
- package/dist/alpha.d.ts +6 -0
- package/dist/beta.d.ts +3 -0
- package/dist/core/change-family/changeFamily.d.ts +2 -2
- package/dist/core/change-family/changeFamily.d.ts.map +1 -1
- package/dist/core/change-family/changeFamily.js.map +1 -1
- package/dist/core/change-family/editBuilder.d.ts +3 -2
- package/dist/core/change-family/editBuilder.d.ts.map +1 -1
- package/dist/core/change-family/editBuilder.js.map +1 -1
- package/dist/core/rebase/changeRebaser.d.ts +2 -1
- package/dist/core/rebase/changeRebaser.d.ts.map +1 -1
- package/dist/core/rebase/changeRebaser.js.map +1 -1
- package/dist/core/rebase/utils.js +1 -1
- package/dist/core/rebase/utils.js.map +1 -1
- package/dist/core/schema-stored/schema.d.ts +7 -0
- package/dist/core/schema-stored/schema.d.ts.map +1 -1
- package/dist/core/schema-stored/schema.js +9 -0
- package/dist/core/schema-stored/schema.js.map +1 -1
- package/dist/core/tree/anchorSet.d.ts +1 -2
- package/dist/core/tree/anchorSet.d.ts.map +1 -1
- package/dist/core/tree/anchorSet.js +2 -2
- package/dist/core/tree/anchorSet.js.map +1 -1
- package/dist/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndex.js +13 -2
- package/dist/core/tree/detachedFieldIndex.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexTypes.d.ts +1 -1
- package/dist/core/tree/detachedFieldIndexTypes.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts +4 -3
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js +41 -30
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts +4 -6
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/dist/feature-libraries/editableTreeBinder.d.ts +3 -230
- package/dist/feature-libraries/editableTreeBinder.d.ts.map +1 -1
- package/dist/feature-libraries/editableTreeBinder.js +1 -539
- package/dist/feature-libraries/editableTreeBinder.js.map +1 -1
- package/dist/feature-libraries/flex-tree/context.d.ts +7 -14
- package/dist/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/context.js +3 -3
- package/dist/feature-libraries/flex-tree/context.js.map +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts +2 -16
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyEntity.d.ts +2 -3
- package/dist/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyEntity.js +1 -2
- package/dist/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.d.ts +10 -15
- package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.js +18 -20
- package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyNode.d.ts +4 -5
- package/dist/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyNode.js +13 -23
- package/dist/feature-libraries/flex-tree/lazyNode.js.map +1 -1
- package/dist/feature-libraries/flex-tree/utilities.js +1 -1
- package/dist/feature-libraries/flex-tree/utilities.js.map +1 -1
- package/dist/feature-libraries/index.d.ts +4 -7
- package/dist/feature-libraries/index.d.ts.map +1 -1
- package/dist/feature-libraries/index.js +5 -31
- package/dist/feature-libraries/index.js.map +1 -1
- package/dist/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/mitigatedChangeFamily.js +4 -4
- package/dist/feature-libraries/mitigatedChangeFamily.js.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts +1 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +12 -8
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js +179 -60
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalField.d.ts +10 -9
- package/dist/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalField.js +9 -7
- package/dist/feature-libraries/optional-field/optionalField.js.map +1 -1
- package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts +3 -10
- package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/schemaSummarizer.js +1 -8
- package/dist/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
- package/dist/feature-libraries/sequence-field/compose.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/compose.js +32 -20
- package/dist/feature-libraries/sequence-field/compose.js.map +1 -1
- package/dist/feature-libraries/sequence-field/formatV1.d.ts +18 -18
- package/dist/feature-libraries/sequence-field/formatV2.d.ts +18 -18
- package/dist/feature-libraries/sequence-field/formatV3.d.ts +27 -27
- package/dist/feature-libraries/sequence-field/invert.d.ts +6 -1
- package/dist/feature-libraries/sequence-field/invert.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/invert.js +25 -9
- package/dist/feature-libraries/sequence-field/invert.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +17 -16
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.js +19 -11
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -1
- package/dist/feature-libraries/typed-schema/flexList.d.ts +1 -46
- package/dist/feature-libraries/typed-schema/flexList.d.ts.map +1 -1
- package/dist/feature-libraries/typed-schema/flexList.js +1 -13
- package/dist/feature-libraries/typed-schema/flexList.js.map +1 -1
- package/dist/feature-libraries/typed-schema/index.d.ts +2 -4
- package/dist/feature-libraries/typed-schema/index.d.ts.map +1 -1
- package/dist/feature-libraries/typed-schema/index.js +1 -19
- package/dist/feature-libraries/typed-schema/index.js.map +1 -1
- package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts +0 -212
- package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -1
- package/dist/feature-libraries/typed-schema/typedTreeSchema.js +0 -266
- package/dist/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/internalTypes.d.ts +1 -1
- package/dist/internalTypes.d.ts.map +1 -1
- package/dist/internalTypes.js.map +1 -1
- package/dist/legacy.d.ts +3 -0
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/public.d.ts +3 -0
- package/dist/shared-tree/checkoutFlexTreeView.d.ts +3 -3
- package/dist/shared-tree/checkoutFlexTreeView.d.ts.map +1 -1
- package/dist/shared-tree/checkoutFlexTreeView.js +1 -1
- package/dist/shared-tree/checkoutFlexTreeView.js.map +1 -1
- package/dist/shared-tree/index.d.ts +3 -3
- package/dist/shared-tree/index.d.ts.map +1 -1
- package/dist/shared-tree/index.js +2 -3
- package/dist/shared-tree/index.js.map +1 -1
- package/dist/shared-tree/schematizeTree.d.ts +1 -40
- package/dist/shared-tree/schematizeTree.d.ts.map +1 -1
- package/dist/shared-tree/schematizeTree.js +2 -11
- package/dist/shared-tree/schematizeTree.js.map +1 -1
- package/dist/shared-tree/schematizingTreeView.d.ts +8 -7
- package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/dist/shared-tree/schematizingTreeView.js +16 -8
- package/dist/shared-tree/schematizingTreeView.js.map +1 -1
- package/dist/shared-tree/sharedTree.d.ts +19 -2
- package/dist/shared-tree/sharedTree.d.ts.map +1 -1
- package/dist/shared-tree/sharedTree.js +11 -3
- package/dist/shared-tree/sharedTree.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts +2 -2
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.js +4 -4
- package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/dist/shared-tree/sharedTreeEditBuilder.d.ts +2 -2
- package/dist/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeEditBuilder.js +15 -11
- package/dist/shared-tree/sharedTreeEditBuilder.js.map +1 -1
- package/dist/shared-tree/treeCheckout.d.ts +71 -41
- package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
- package/dist/shared-tree/treeCheckout.js +119 -86
- package/dist/shared-tree/treeCheckout.js.map +1 -1
- package/dist/shared-tree-core/branch.d.ts +9 -13
- package/dist/shared-tree-core/branch.d.ts.map +1 -1
- package/dist/shared-tree-core/branch.js +21 -25
- package/dist/shared-tree-core/branch.js.map +1 -1
- package/dist/shared-tree-core/defaultResubmitMachine.d.ts +5 -5
- package/dist/shared-tree-core/defaultResubmitMachine.d.ts.map +1 -1
- package/dist/shared-tree-core/defaultResubmitMachine.js +4 -4
- 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 +1 -1
- package/dist/shared-tree-core/editManager.js.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.js +2 -2
- package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/dist/simple-tree/api/create.d.ts +1 -1
- package/dist/simple-tree/api/create.d.ts.map +1 -1
- package/dist/simple-tree/api/create.js +11 -13
- package/dist/simple-tree/api/create.js.map +1 -1
- package/dist/simple-tree/api/getJsonSchema.d.ts +3 -3
- package/dist/simple-tree/api/getJsonSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/getJsonSchema.js +1 -1
- package/dist/simple-tree/api/getJsonSchema.js.map +1 -1
- package/dist/simple-tree/api/getSimpleSchema.d.ts +2 -2
- package/dist/simple-tree/api/getSimpleSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/getSimpleSchema.js.map +1 -1
- package/dist/simple-tree/api/index.d.ts +2 -1
- package/dist/simple-tree/api/index.d.ts.map +1 -1
- package/dist/simple-tree/api/index.js +3 -1
- package/dist/simple-tree/api/index.js.map +1 -1
- package/dist/simple-tree/api/schemaFactory.d.ts +6 -6
- package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactory.js +15 -2
- package/dist/simple-tree/api/schemaFactory.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryRecursive.d.ts +3 -3
- package/dist/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
- package/dist/simple-tree/api/simpleSchema.d.ts +14 -10
- 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/tree.d.ts +12 -6
- package/dist/simple-tree/api/tree.d.ts.map +1 -1
- package/dist/simple-tree/api/tree.js +4 -4
- package/dist/simple-tree/api/tree.js.map +1 -1
- package/dist/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/dist/simple-tree/api/treeNodeApi.js +8 -6
- package/dist/simple-tree/api/treeNodeApi.js.map +1 -1
- package/dist/simple-tree/api/verboseTree.d.ts.map +1 -1
- package/dist/simple-tree/api/verboseTree.js +6 -10
- package/dist/simple-tree/api/verboseTree.js.map +1 -1
- package/{lib/feature-libraries/typed-schema → dist/simple-tree/api}/view.d.ts +4 -11
- package/dist/simple-tree/api/view.d.ts.map +1 -0
- package/dist/{feature-libraries/typed-schema → simple-tree/api}/view.js +9 -9
- package/dist/simple-tree/api/view.js.map +1 -0
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.d.ts +2 -2
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.js +7 -1
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.js.map +1 -1
- package/dist/simple-tree/arrayNode.d.ts +147 -14
- package/dist/simple-tree/arrayNode.d.ts.map +1 -1
- package/dist/simple-tree/arrayNode.js +32 -20
- package/dist/simple-tree/arrayNode.js.map +1 -1
- package/dist/simple-tree/core/context.d.ts +55 -0
- package/dist/simple-tree/core/context.d.ts.map +1 -0
- package/dist/simple-tree/core/context.js +60 -0
- package/dist/simple-tree/core/context.js.map +1 -0
- package/dist/simple-tree/core/getOrCreateNode.d.ts +15 -0
- package/dist/simple-tree/core/getOrCreateNode.d.ts.map +1 -0
- package/dist/simple-tree/core/getOrCreateNode.js +36 -0
- package/dist/simple-tree/core/getOrCreateNode.js.map +1 -0
- package/dist/simple-tree/core/index.d.ts +7 -3
- package/dist/simple-tree/core/index.d.ts.map +1 -1
- package/dist/simple-tree/core/index.js +16 -7
- package/dist/simple-tree/core/index.js.map +1 -1
- package/dist/simple-tree/core/schemaCaching.d.ts +5 -13
- package/dist/simple-tree/core/schemaCaching.d.ts.map +1 -1
- package/dist/simple-tree/core/schemaCaching.js +16 -45
- package/dist/simple-tree/core/schemaCaching.js.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.d.ts +29 -7
- package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.js +94 -58
- package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/dist/simple-tree/core/treeNodeSchema.d.ts +24 -0
- package/dist/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeSchema.js.map +1 -1
- package/dist/simple-tree/core/types.d.ts +0 -5
- package/dist/simple-tree/core/types.d.ts.map +1 -1
- package/dist/simple-tree/core/types.js.map +1 -1
- package/dist/simple-tree/core/unhydratedFlexTree.d.ts +139 -0
- package/dist/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -0
- package/dist/{feature-libraries/flex-map-tree/mapTreeNode.js → simple-tree/core/unhydratedFlexTree.js} +112 -132
- package/dist/simple-tree/core/unhydratedFlexTree.js.map +1 -0
- package/dist/simple-tree/{walkSchema.d.ts → core/walkSchema.d.ts} +8 -4
- package/dist/simple-tree/core/walkSchema.d.ts.map +1 -0
- package/dist/simple-tree/core/walkSchema.js +34 -0
- package/dist/simple-tree/core/walkSchema.js.map +1 -0
- package/dist/simple-tree/createContext.d.ts +11 -0
- package/dist/simple-tree/createContext.d.ts.map +1 -0
- package/dist/simple-tree/createContext.js +25 -0
- package/dist/simple-tree/createContext.js.map +1 -0
- package/dist/simple-tree/index.d.ts +3 -4
- package/dist/simple-tree/index.d.ts.map +1 -1
- package/dist/simple-tree/index.js +7 -7
- package/dist/simple-tree/index.js.map +1 -1
- package/dist/simple-tree/leafNodeSchema.d.ts +1 -0
- package/dist/simple-tree/leafNodeSchema.d.ts.map +1 -1
- package/dist/simple-tree/leafNodeSchema.js +1 -2
- package/dist/simple-tree/leafNodeSchema.js.map +1 -1
- package/dist/simple-tree/mapNode.d.ts +4 -4
- package/dist/simple-tree/mapNode.d.ts.map +1 -1
- package/dist/simple-tree/mapNode.js +9 -5
- package/dist/simple-tree/mapNode.js.map +1 -1
- package/dist/simple-tree/objectNode.d.ts +8 -8
- package/dist/simple-tree/objectNode.d.ts.map +1 -1
- package/dist/simple-tree/objectNode.js +33 -14
- package/dist/simple-tree/objectNode.js.map +1 -1
- package/dist/simple-tree/objectNodeTypes.d.ts +7 -3
- package/dist/simple-tree/objectNodeTypes.d.ts.map +1 -1
- package/dist/simple-tree/objectNodeTypes.js.map +1 -1
- package/dist/simple-tree/proxies.d.ts +1 -2
- package/dist/simple-tree/proxies.d.ts.map +1 -1
- package/dist/simple-tree/proxies.js +6 -22
- package/dist/simple-tree/proxies.js.map +1 -1
- package/dist/simple-tree/schemaTypes.d.ts +2 -2
- package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
- package/dist/simple-tree/schemaTypes.js.map +1 -1
- package/dist/simple-tree/toFlexSchema.d.ts +6 -36
- package/dist/simple-tree/toFlexSchema.d.ts.map +1 -1
- package/dist/simple-tree/toFlexSchema.js +58 -142
- package/dist/simple-tree/toFlexSchema.js.map +1 -1
- package/dist/simple-tree/toMapTree.d.ts.map +1 -1
- package/dist/simple-tree/toMapTree.js +2 -2
- package/dist/simple-tree/toMapTree.js.map +1 -1
- package/dist/simple-tree/treeNodeValid.d.ts +13 -5
- package/dist/simple-tree/treeNodeValid.d.ts.map +1 -1
- package/dist/simple-tree/treeNodeValid.js +19 -10
- package/dist/simple-tree/treeNodeValid.js.map +1 -1
- package/dist/simple-tree/typesUnsafe.d.ts +4 -4
- package/dist/simple-tree/typesUnsafe.d.ts.map +1 -1
- package/dist/simple-tree/typesUnsafe.js.map +1 -1
- package/dist/simple-tree/walkFieldSchema.d.ts +11 -0
- package/dist/simple-tree/walkFieldSchema.d.ts.map +1 -0
- package/dist/simple-tree/walkFieldSchema.js +17 -0
- package/dist/simple-tree/walkFieldSchema.js.map +1 -0
- package/dist/util/index.d.ts +1 -1
- package/dist/util/index.d.ts.map +1 -1
- package/dist/util/index.js.map +1 -1
- package/dist/util/typeUtils.d.ts +14 -45
- package/dist/util/typeUtils.d.ts.map +1 -1
- package/dist/util/typeUtils.js.map +1 -1
- package/lib/alpha.d.ts +6 -0
- package/lib/beta.d.ts +3 -0
- package/lib/core/change-family/changeFamily.d.ts +2 -2
- package/lib/core/change-family/changeFamily.d.ts.map +1 -1
- package/lib/core/change-family/changeFamily.js.map +1 -1
- package/lib/core/change-family/editBuilder.d.ts +3 -2
- package/lib/core/change-family/editBuilder.d.ts.map +1 -1
- package/lib/core/change-family/editBuilder.js.map +1 -1
- package/lib/core/rebase/changeRebaser.d.ts +2 -1
- package/lib/core/rebase/changeRebaser.d.ts.map +1 -1
- package/lib/core/rebase/changeRebaser.js.map +1 -1
- package/lib/core/rebase/utils.js +1 -1
- package/lib/core/rebase/utils.js.map +1 -1
- package/lib/core/schema-stored/schema.d.ts +7 -0
- package/lib/core/schema-stored/schema.d.ts.map +1 -1
- package/lib/core/schema-stored/schema.js +9 -0
- package/lib/core/schema-stored/schema.js.map +1 -1
- package/lib/core/tree/anchorSet.d.ts +1 -2
- package/lib/core/tree/anchorSet.d.ts.map +1 -1
- package/lib/core/tree/anchorSet.js +2 -2
- package/lib/core/tree/anchorSet.js.map +1 -1
- package/lib/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndex.js +13 -2
- package/lib/core/tree/detachedFieldIndex.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexTypes.d.ts +1 -1
- package/lib/core/tree/detachedFieldIndexTypes.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts +4 -3
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js +41 -30
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts +4 -6
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/lib/feature-libraries/editableTreeBinder.d.ts +3 -230
- package/lib/feature-libraries/editableTreeBinder.d.ts.map +1 -1
- package/lib/feature-libraries/editableTreeBinder.js +1 -532
- package/lib/feature-libraries/editableTreeBinder.js.map +1 -1
- package/lib/feature-libraries/flex-tree/context.d.ts +7 -14
- package/lib/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/context.js +3 -3
- package/lib/feature-libraries/flex-tree/context.js.map +1 -1
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts +2 -16
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyEntity.d.ts +2 -3
- package/lib/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyEntity.js +1 -2
- package/lib/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.d.ts +10 -15
- package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.js +18 -20
- package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyNode.d.ts +4 -5
- package/lib/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyNode.js +13 -23
- package/lib/feature-libraries/flex-tree/lazyNode.js.map +1 -1
- package/lib/feature-libraries/flex-tree/utilities.js +1 -1
- package/lib/feature-libraries/flex-tree/utilities.js.map +1 -1
- package/lib/feature-libraries/index.d.ts +4 -7
- package/lib/feature-libraries/index.d.ts.map +1 -1
- package/lib/feature-libraries/index.js +4 -6
- package/lib/feature-libraries/index.js.map +1 -1
- package/lib/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/mitigatedChangeFamily.js +4 -4
- package/lib/feature-libraries/mitigatedChangeFamily.js.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +1 -1
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +12 -8
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js +180 -61
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalField.d.ts +10 -9
- package/lib/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalField.js +9 -7
- package/lib/feature-libraries/optional-field/optionalField.js.map +1 -1
- package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts +3 -10
- package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/schemaSummarizer.js +1 -8
- package/lib/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
- package/lib/feature-libraries/sequence-field/compose.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/compose.js +32 -20
- package/lib/feature-libraries/sequence-field/compose.js.map +1 -1
- package/lib/feature-libraries/sequence-field/formatV1.d.ts +18 -18
- package/lib/feature-libraries/sequence-field/formatV2.d.ts +18 -18
- package/lib/feature-libraries/sequence-field/formatV3.d.ts +27 -27
- package/lib/feature-libraries/sequence-field/invert.d.ts +6 -1
- package/lib/feature-libraries/sequence-field/invert.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/invert.js +25 -9
- package/lib/feature-libraries/sequence-field/invert.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +17 -16
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js +19 -11
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -1
- package/lib/feature-libraries/typed-schema/flexList.d.ts +1 -46
- package/lib/feature-libraries/typed-schema/flexList.d.ts.map +1 -1
- package/lib/feature-libraries/typed-schema/flexList.js +0 -11
- package/lib/feature-libraries/typed-schema/flexList.js.map +1 -1
- package/lib/feature-libraries/typed-schema/index.d.ts +2 -4
- package/lib/feature-libraries/typed-schema/index.d.ts.map +1 -1
- package/lib/feature-libraries/typed-schema/index.js +0 -3
- package/lib/feature-libraries/typed-schema/index.js.map +1 -1
- package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts +0 -212
- package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -1
- package/lib/feature-libraries/typed-schema/typedTreeSchema.js +1 -253
- package/lib/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -1
- package/lib/index.d.ts +3 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/internalTypes.d.ts +1 -1
- package/lib/internalTypes.d.ts.map +1 -1
- package/lib/internalTypes.js.map +1 -1
- package/lib/legacy.d.ts +3 -0
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/public.d.ts +3 -0
- package/lib/shared-tree/checkoutFlexTreeView.d.ts +3 -3
- package/lib/shared-tree/checkoutFlexTreeView.d.ts.map +1 -1
- package/lib/shared-tree/checkoutFlexTreeView.js +1 -1
- package/lib/shared-tree/checkoutFlexTreeView.js.map +1 -1
- package/lib/shared-tree/index.d.ts +3 -3
- package/lib/shared-tree/index.d.ts.map +1 -1
- package/lib/shared-tree/index.js +1 -2
- package/lib/shared-tree/index.js.map +1 -1
- package/lib/shared-tree/schematizeTree.d.ts +1 -40
- package/lib/shared-tree/schematizeTree.d.ts.map +1 -1
- package/lib/shared-tree/schematizeTree.js +1 -9
- package/lib/shared-tree/schematizeTree.js.map +1 -1
- package/lib/shared-tree/schematizingTreeView.d.ts +8 -7
- package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/lib/shared-tree/schematizingTreeView.js +19 -11
- package/lib/shared-tree/schematizingTreeView.js.map +1 -1
- package/lib/shared-tree/sharedTree.d.ts +19 -2
- package/lib/shared-tree/sharedTree.d.ts.map +1 -1
- package/lib/shared-tree/sharedTree.js +11 -4
- package/lib/shared-tree/sharedTree.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts +2 -2
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.js +4 -4
- package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/lib/shared-tree/sharedTreeEditBuilder.d.ts +2 -2
- package/lib/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeEditBuilder.js +15 -11
- package/lib/shared-tree/sharedTreeEditBuilder.js.map +1 -1
- package/lib/shared-tree/treeCheckout.d.ts +71 -41
- package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
- package/lib/shared-tree/treeCheckout.js +122 -89
- package/lib/shared-tree/treeCheckout.js.map +1 -1
- package/lib/shared-tree-core/branch.d.ts +9 -13
- package/lib/shared-tree-core/branch.d.ts.map +1 -1
- package/lib/shared-tree-core/branch.js +22 -26
- package/lib/shared-tree-core/branch.js.map +1 -1
- package/lib/shared-tree-core/defaultResubmitMachine.d.ts +5 -5
- package/lib/shared-tree-core/defaultResubmitMachine.d.ts.map +1 -1
- package/lib/shared-tree-core/defaultResubmitMachine.js +4 -4
- 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 +2 -2
- package/lib/shared-tree-core/editManager.js.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.js +2 -2
- package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/lib/simple-tree/api/create.d.ts +1 -1
- package/lib/simple-tree/api/create.d.ts.map +1 -1
- package/lib/simple-tree/api/create.js +14 -16
- package/lib/simple-tree/api/create.js.map +1 -1
- package/lib/simple-tree/api/getJsonSchema.d.ts +3 -3
- package/lib/simple-tree/api/getJsonSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/getJsonSchema.js +1 -1
- package/lib/simple-tree/api/getJsonSchema.js.map +1 -1
- package/lib/simple-tree/api/getSimpleSchema.d.ts +2 -2
- package/lib/simple-tree/api/getSimpleSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/getSimpleSchema.js.map +1 -1
- package/lib/simple-tree/api/index.d.ts +2 -1
- package/lib/simple-tree/api/index.d.ts.map +1 -1
- package/lib/simple-tree/api/index.js +1 -0
- package/lib/simple-tree/api/index.js.map +1 -1
- package/lib/simple-tree/api/schemaFactory.d.ts +6 -6
- package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactory.js +15 -2
- package/lib/simple-tree/api/schemaFactory.js.map +1 -1
- package/lib/simple-tree/api/schemaFactoryRecursive.d.ts +3 -3
- package/lib/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
- package/lib/simple-tree/api/simpleSchema.d.ts +14 -10
- 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/tree.d.ts +12 -6
- package/lib/simple-tree/api/tree.d.ts.map +1 -1
- package/lib/simple-tree/api/tree.js +4 -4
- package/lib/simple-tree/api/tree.js.map +1 -1
- package/lib/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/lib/simple-tree/api/treeNodeApi.js +10 -8
- package/lib/simple-tree/api/treeNodeApi.js.map +1 -1
- package/lib/simple-tree/api/verboseTree.d.ts.map +1 -1
- package/lib/simple-tree/api/verboseTree.js +6 -10
- package/lib/simple-tree/api/verboseTree.js.map +1 -1
- package/{dist/feature-libraries/typed-schema → lib/simple-tree/api}/view.d.ts +4 -11
- package/lib/simple-tree/api/view.d.ts.map +1 -0
- package/lib/{feature-libraries/typed-schema → simple-tree/api}/view.js +9 -9
- package/lib/simple-tree/api/view.js.map +1 -0
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.d.ts +2 -2
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.js +7 -1
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.js.map +1 -1
- package/lib/simple-tree/arrayNode.d.ts +147 -14
- package/lib/simple-tree/arrayNode.d.ts.map +1 -1
- package/lib/simple-tree/arrayNode.js +37 -25
- package/lib/simple-tree/arrayNode.js.map +1 -1
- package/lib/simple-tree/core/context.d.ts +55 -0
- package/lib/simple-tree/core/context.d.ts.map +1 -0
- package/lib/simple-tree/core/context.js +55 -0
- package/lib/simple-tree/core/context.js.map +1 -0
- package/lib/simple-tree/core/getOrCreateNode.d.ts +15 -0
- package/lib/simple-tree/core/getOrCreateNode.d.ts.map +1 -0
- package/lib/simple-tree/core/getOrCreateNode.js +32 -0
- package/lib/simple-tree/core/getOrCreateNode.js.map +1 -0
- package/lib/simple-tree/core/index.d.ts +7 -3
- package/lib/simple-tree/core/index.d.ts.map +1 -1
- package/lib/simple-tree/core/index.js +6 -2
- package/lib/simple-tree/core/index.js.map +1 -1
- package/lib/simple-tree/core/schemaCaching.d.ts +5 -13
- package/lib/simple-tree/core/schemaCaching.d.ts.map +1 -1
- package/lib/simple-tree/core/schemaCaching.js +13 -39
- package/lib/simple-tree/core/schemaCaching.js.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.d.ts +29 -7
- package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.js +89 -54
- package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/lib/simple-tree/core/treeNodeSchema.d.ts +24 -0
- package/lib/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeSchema.js.map +1 -1
- package/lib/simple-tree/core/types.d.ts +0 -5
- package/lib/simple-tree/core/types.d.ts.map +1 -1
- package/lib/simple-tree/core/types.js.map +1 -1
- package/lib/simple-tree/core/unhydratedFlexTree.d.ts +139 -0
- package/lib/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -0
- package/lib/{feature-libraries/flex-map-tree/mapTreeNode.js → simple-tree/core/unhydratedFlexTree.js} +110 -128
- package/lib/simple-tree/core/unhydratedFlexTree.js.map +1 -0
- package/lib/simple-tree/{walkSchema.d.ts → core/walkSchema.d.ts} +8 -4
- package/lib/simple-tree/core/walkSchema.d.ts.map +1 -0
- package/lib/simple-tree/core/walkSchema.js +29 -0
- package/lib/simple-tree/core/walkSchema.js.map +1 -0
- package/lib/simple-tree/createContext.d.ts +11 -0
- package/lib/simple-tree/createContext.d.ts.map +1 -0
- package/lib/simple-tree/createContext.js +21 -0
- package/lib/simple-tree/createContext.js.map +1 -0
- package/lib/simple-tree/index.d.ts +3 -4
- package/lib/simple-tree/index.d.ts.map +1 -1
- package/lib/simple-tree/index.js +3 -4
- package/lib/simple-tree/index.js.map +1 -1
- package/lib/simple-tree/leafNodeSchema.d.ts +1 -0
- package/lib/simple-tree/leafNodeSchema.d.ts.map +1 -1
- package/lib/simple-tree/leafNodeSchema.js +3 -4
- package/lib/simple-tree/leafNodeSchema.js.map +1 -1
- package/lib/simple-tree/mapNode.d.ts +4 -4
- package/lib/simple-tree/mapNode.d.ts.map +1 -1
- package/lib/simple-tree/mapNode.js +12 -8
- package/lib/simple-tree/mapNode.js.map +1 -1
- package/lib/simple-tree/objectNode.d.ts +8 -8
- package/lib/simple-tree/objectNode.d.ts.map +1 -1
- package/lib/simple-tree/objectNode.js +36 -17
- package/lib/simple-tree/objectNode.js.map +1 -1
- package/lib/simple-tree/objectNodeTypes.d.ts +7 -3
- package/lib/simple-tree/objectNodeTypes.d.ts.map +1 -1
- package/lib/simple-tree/objectNodeTypes.js.map +1 -1
- package/lib/simple-tree/proxies.d.ts +1 -2
- package/lib/simple-tree/proxies.d.ts.map +1 -1
- package/lib/simple-tree/proxies.js +7 -22
- package/lib/simple-tree/proxies.js.map +1 -1
- package/lib/simple-tree/schemaTypes.d.ts +2 -2
- package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
- package/lib/simple-tree/schemaTypes.js.map +1 -1
- package/lib/simple-tree/toFlexSchema.d.ts +6 -36
- package/lib/simple-tree/toFlexSchema.d.ts.map +1 -1
- package/lib/simple-tree/toFlexSchema.js +61 -142
- package/lib/simple-tree/toFlexSchema.js.map +1 -1
- package/lib/simple-tree/toMapTree.d.ts.map +1 -1
- package/lib/simple-tree/toMapTree.js +4 -4
- package/lib/simple-tree/toMapTree.js.map +1 -1
- package/lib/simple-tree/treeNodeValid.d.ts +13 -5
- package/lib/simple-tree/treeNodeValid.d.ts.map +1 -1
- package/lib/simple-tree/treeNodeValid.js +21 -12
- package/lib/simple-tree/treeNodeValid.js.map +1 -1
- package/lib/simple-tree/typesUnsafe.d.ts +4 -4
- package/lib/simple-tree/typesUnsafe.d.ts.map +1 -1
- package/lib/simple-tree/typesUnsafe.js.map +1 -1
- package/lib/simple-tree/walkFieldSchema.d.ts +11 -0
- package/lib/simple-tree/walkFieldSchema.d.ts.map +1 -0
- package/lib/simple-tree/walkFieldSchema.js +13 -0
- package/lib/simple-tree/walkFieldSchema.js.map +1 -0
- package/lib/util/index.d.ts +1 -1
- package/lib/util/index.d.ts.map +1 -1
- package/lib/util/index.js.map +1 -1
- package/lib/util/typeUtils.d.ts +14 -45
- package/lib/util/typeUtils.d.ts.map +1 -1
- package/lib/util/typeUtils.js.map +1 -1
- package/package.json +32 -23
- package/src/core/change-family/changeFamily.ts +5 -2
- package/src/core/change-family/editBuilder.ts +3 -2
- package/src/core/rebase/changeRebaser.ts +6 -1
- package/src/core/rebase/utils.ts +1 -1
- package/src/core/schema-stored/schema.ts +17 -0
- package/src/core/tree/anchorSet.ts +3 -4
- package/src/core/tree/detachedFieldIndex.ts +14 -3
- package/src/core/tree/detachedFieldIndexTypes.ts +1 -1
- package/src/feature-libraries/default-schema/defaultEditBuilder.ts +92 -47
- package/src/feature-libraries/default-schema/defaultFieldKinds.ts +7 -7
- package/src/feature-libraries/editableTreeBinder.ts +2 -915
- package/src/feature-libraries/flex-tree/context.ts +7 -20
- package/src/feature-libraries/flex-tree/flexTreeTypes.ts +2 -18
- package/src/feature-libraries/flex-tree/lazyEntity.ts +1 -4
- package/src/feature-libraries/flex-tree/lazyField.ts +22 -78
- package/src/feature-libraries/flex-tree/lazyNode.ts +24 -39
- package/src/feature-libraries/flex-tree/utilities.ts +1 -1
- package/src/feature-libraries/index.ts +3 -71
- package/src/feature-libraries/mitigatedChangeFamily.ts +11 -4
- package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +1 -0
- package/src/feature-libraries/modular-schema/modularChangeFamily.ts +218 -175
- package/src/feature-libraries/optional-field/optionalField.ts +21 -17
- package/src/feature-libraries/schema-index/schemaSummarizer.ts +2 -10
- package/src/feature-libraries/sequence-field/compose.ts +67 -58
- package/src/feature-libraries/sequence-field/invert.ts +30 -6
- package/src/feature-libraries/sequence-field/sequenceFieldEditor.ts +65 -19
- package/src/feature-libraries/typed-schema/flexList.ts +3 -84
- package/src/feature-libraries/typed-schema/index.ts +1 -33
- package/src/feature-libraries/typed-schema/typedTreeSchema.ts +0 -458
- package/src/index.ts +6 -0
- package/src/internalTypes.ts +0 -1
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/checkoutFlexTreeView.ts +3 -3
- package/src/shared-tree/index.ts +4 -8
- package/src/shared-tree/schematizeTree.ts +2 -56
- package/src/shared-tree/schematizingTreeView.ts +34 -15
- package/src/shared-tree/sharedTree.ts +39 -9
- package/src/shared-tree/sharedTreeChangeFamily.ts +5 -1
- package/src/shared-tree/sharedTreeEditBuilder.ts +23 -12
- package/src/shared-tree/treeCheckout.ts +232 -134
- package/src/shared-tree-core/branch.ts +26 -40
- package/src/shared-tree-core/defaultResubmitMachine.ts +4 -4
- package/src/shared-tree-core/editManager.ts +2 -1
- package/src/shared-tree-core/sharedTreeCore.ts +4 -2
- package/src/simple-tree/api/create.ts +18 -20
- package/src/simple-tree/api/getJsonSchema.ts +3 -3
- package/src/simple-tree/api/getSimpleSchema.ts +2 -2
- package/src/simple-tree/api/index.ts +2 -0
- package/src/simple-tree/api/schemaFactory.ts +41 -12
- package/src/simple-tree/api/schemaFactoryRecursive.ts +3 -6
- package/src/simple-tree/api/simpleSchema.ts +15 -10
- package/src/simple-tree/api/tree.ts +15 -9
- package/src/simple-tree/api/treeNodeApi.ts +12 -10
- package/src/simple-tree/api/verboseTree.ts +6 -12
- package/src/{feature-libraries/typed-schema → simple-tree/api}/view.ts +9 -22
- package/src/simple-tree/api/viewSchemaToSimpleSchema.ts +11 -2
- package/src/simple-tree/arrayNode.ts +202 -53
- package/src/simple-tree/core/context.ts +78 -0
- package/src/simple-tree/core/getOrCreateNode.ts +38 -0
- package/src/simple-tree/core/index.ts +11 -7
- package/src/simple-tree/core/schemaCaching.ts +13 -50
- package/src/simple-tree/core/treeNodeKernel.ts +117 -78
- package/src/simple-tree/core/treeNodeSchema.ts +35 -1
- package/src/simple-tree/core/types.ts +0 -5
- package/src/{feature-libraries/flex-map-tree/mapTreeNode.ts → simple-tree/core/unhydratedFlexTree.ts} +167 -210
- package/src/simple-tree/{walkSchema.ts → core/walkSchema.ts} +12 -34
- package/src/simple-tree/createContext.ts +24 -0
- package/src/simple-tree/index.ts +5 -2
- package/src/simple-tree/leafNodeSchema.ts +3 -9
- package/src/simple-tree/mapNode.ts +20 -17
- package/src/simple-tree/objectNode.ts +63 -38
- package/src/simple-tree/objectNodeTypes.ts +8 -5
- package/src/simple-tree/proxies.ts +8 -26
- package/src/simple-tree/schemaTypes.ts +2 -2
- package/src/simple-tree/toFlexSchema.ts +71 -204
- package/src/simple-tree/toMapTree.ts +5 -5
- package/src/simple-tree/treeNodeValid.ts +28 -22
- package/src/simple-tree/typesUnsafe.ts +4 -4
- package/src/simple-tree/walkFieldSchema.ts +19 -0
- package/src/util/index.ts +1 -5
- package/src/util/typeUtils.ts +14 -56
- package/dist/feature-libraries/fieldGenerator.d.ts +0 -43
- package/dist/feature-libraries/fieldGenerator.d.ts.map +0 -1
- package/dist/feature-libraries/fieldGenerator.js +0 -13
- package/dist/feature-libraries/fieldGenerator.js.map +0 -1
- package/dist/feature-libraries/flex-map-tree/index.d.ts +0 -6
- package/dist/feature-libraries/flex-map-tree/index.d.ts.map +0 -1
- package/dist/feature-libraries/flex-map-tree/index.js +0 -14
- package/dist/feature-libraries/flex-map-tree/index.js.map +0 -1
- package/dist/feature-libraries/flex-map-tree/mapTreeNode.d.ts +0 -157
- package/dist/feature-libraries/flex-map-tree/mapTreeNode.d.ts.map +0 -1
- package/dist/feature-libraries/flex-map-tree/mapTreeNode.js.map +0 -1
- package/dist/feature-libraries/storedToViewSchema.d.ts +0 -17
- package/dist/feature-libraries/storedToViewSchema.d.ts.map +0 -1
- package/dist/feature-libraries/storedToViewSchema.js +0 -67
- package/dist/feature-libraries/storedToViewSchema.js.map +0 -1
- package/dist/feature-libraries/typed-schema/schemaCollection.d.ts +0 -58
- package/dist/feature-libraries/typed-schema/schemaCollection.d.ts.map +0 -1
- package/dist/feature-libraries/typed-schema/schemaCollection.js +0 -160
- package/dist/feature-libraries/typed-schema/schemaCollection.js.map +0 -1
- package/dist/feature-libraries/typed-schema/typeUtils.d.ts +0 -15
- package/dist/feature-libraries/typed-schema/typeUtils.d.ts.map +0 -1
- package/dist/feature-libraries/typed-schema/typeUtils.js +0 -14
- package/dist/feature-libraries/typed-schema/typeUtils.js.map +0 -1
- package/dist/feature-libraries/typed-schema/view.d.ts.map +0 -1
- package/dist/feature-libraries/typed-schema/view.js.map +0 -1
- package/dist/simple-tree/getSimpleFieldSchema.d.ts +0 -14
- package/dist/simple-tree/getSimpleFieldSchema.d.ts.map +0 -1
- package/dist/simple-tree/getSimpleFieldSchema.js +0 -29
- package/dist/simple-tree/getSimpleFieldSchema.js.map +0 -1
- package/dist/simple-tree/walkSchema.d.ts.map +0 -1
- package/dist/simple-tree/walkSchema.js +0 -49
- package/dist/simple-tree/walkSchema.js.map +0 -1
- package/lib/feature-libraries/fieldGenerator.d.ts +0 -43
- package/lib/feature-libraries/fieldGenerator.d.ts.map +0 -1
- package/lib/feature-libraries/fieldGenerator.js +0 -12
- package/lib/feature-libraries/fieldGenerator.js.map +0 -1
- package/lib/feature-libraries/flex-map-tree/index.d.ts +0 -6
- package/lib/feature-libraries/flex-map-tree/index.d.ts.map +0 -1
- package/lib/feature-libraries/flex-map-tree/index.js +0 -6
- package/lib/feature-libraries/flex-map-tree/index.js.map +0 -1
- package/lib/feature-libraries/flex-map-tree/mapTreeNode.d.ts +0 -157
- package/lib/feature-libraries/flex-map-tree/mapTreeNode.d.ts.map +0 -1
- package/lib/feature-libraries/flex-map-tree/mapTreeNode.js.map +0 -1
- package/lib/feature-libraries/storedToViewSchema.d.ts +0 -17
- package/lib/feature-libraries/storedToViewSchema.d.ts.map +0 -1
- package/lib/feature-libraries/storedToViewSchema.js +0 -62
- package/lib/feature-libraries/storedToViewSchema.js.map +0 -1
- package/lib/feature-libraries/typed-schema/schemaCollection.d.ts +0 -58
- package/lib/feature-libraries/typed-schema/schemaCollection.d.ts.map +0 -1
- package/lib/feature-libraries/typed-schema/schemaCollection.js +0 -153
- package/lib/feature-libraries/typed-schema/schemaCollection.js.map +0 -1
- package/lib/feature-libraries/typed-schema/typeUtils.d.ts +0 -15
- package/lib/feature-libraries/typed-schema/typeUtils.d.ts.map +0 -1
- package/lib/feature-libraries/typed-schema/typeUtils.js +0 -10
- package/lib/feature-libraries/typed-schema/typeUtils.js.map +0 -1
- package/lib/feature-libraries/typed-schema/view.d.ts.map +0 -1
- package/lib/feature-libraries/typed-schema/view.js.map +0 -1
- package/lib/simple-tree/getSimpleFieldSchema.d.ts +0 -14
- package/lib/simple-tree/getSimpleFieldSchema.d.ts.map +0 -1
- package/lib/simple-tree/getSimpleFieldSchema.js +0 -25
- package/lib/simple-tree/getSimpleFieldSchema.js.map +0 -1
- package/lib/simple-tree/walkSchema.d.ts.map +0 -1
- package/lib/simple-tree/walkSchema.js +0 -43
- package/lib/simple-tree/walkSchema.js.map +0 -1
- package/src/feature-libraries/fieldGenerator.ts +0 -47
- package/src/feature-libraries/flex-map-tree/index.ts +0 -14
- package/src/feature-libraries/storedToViewSchema.ts +0 -100
- package/src/feature-libraries/typed-schema/schemaCollection.ts +0 -254
- package/src/feature-libraries/typed-schema/typeUtils.ts +0 -29
- package/src/simple-tree/getSimpleFieldSchema.ts +0 -36
|
@@ -32,7 +32,6 @@ import {
|
|
|
32
32
|
TreeStoredSchemaRepository,
|
|
33
33
|
type TreeStoredSchemaSubscription,
|
|
34
34
|
combineVisitors,
|
|
35
|
-
makeAnonChange,
|
|
36
35
|
makeDetachedFieldIndex,
|
|
37
36
|
rebaseChange,
|
|
38
37
|
rootFieldKey,
|
|
@@ -50,16 +49,25 @@ import {
|
|
|
50
49
|
type FieldBatchCodec,
|
|
51
50
|
type TreeCompressionStrategy,
|
|
52
51
|
buildForest,
|
|
52
|
+
createNodeKeyManager,
|
|
53
53
|
intoDelta,
|
|
54
54
|
jsonableTreeFromCursor,
|
|
55
55
|
makeFieldBatchCodec,
|
|
56
56
|
} from "../feature-libraries/index.js";
|
|
57
57
|
import { SharedTreeBranch, getChangeReplaceType } from "../shared-tree-core/index.js";
|
|
58
|
-
import {
|
|
58
|
+
import { Breakable, TransactionResult, disposeSymbol, fail } from "../util/index.js";
|
|
59
59
|
|
|
60
60
|
import { SharedTreeChangeFamily, hasSchemaChange } from "./sharedTreeChangeFamily.js";
|
|
61
61
|
import type { SharedTreeChange } from "./sharedTreeChangeTypes.js";
|
|
62
62
|
import type { ISharedTreeEditor, SharedTreeEditBuilder } from "./sharedTreeEditBuilder.js";
|
|
63
|
+
import type { IDisposable } from "@fluidframework/core-interfaces";
|
|
64
|
+
import type {
|
|
65
|
+
ImplicitFieldSchema,
|
|
66
|
+
TreeView,
|
|
67
|
+
TreeViewConfiguration,
|
|
68
|
+
ViewableTree,
|
|
69
|
+
} from "../simple-tree/index.js";
|
|
70
|
+
import { SchematizingSimpleTreeView } from "./schematizingTreeView.js";
|
|
63
71
|
|
|
64
72
|
/**
|
|
65
73
|
* Events for {@link ITreeCheckout}.
|
|
@@ -89,6 +97,57 @@ export interface CheckoutEvents {
|
|
|
89
97
|
commitApplied(data: CommitMetadata, getRevertible?: RevertibleFactory): void;
|
|
90
98
|
}
|
|
91
99
|
|
|
100
|
+
/**
|
|
101
|
+
* A "version control"-style branch of a SharedTree.
|
|
102
|
+
* @remarks Branches may be used to coordinate edits to a SharedTree, e.g. via merge and rebase operations.
|
|
103
|
+
* Changes applied to a branch of a branch only apply to that branch and are isolated from other branches.
|
|
104
|
+
* Changes may be synchronized across branches via merge and rebase operations provided on the branch object.
|
|
105
|
+
* @alpha @sealed
|
|
106
|
+
*/
|
|
107
|
+
export interface TreeBranch extends ViewableTree {
|
|
108
|
+
/**
|
|
109
|
+
* Spawn a new branch which is based off of the current state of this branch.
|
|
110
|
+
* Any mutations of the new branch will not apply to this branch until the new branch is merged back into this branch via `merge()`.
|
|
111
|
+
*/
|
|
112
|
+
branch(): TreeBranchFork;
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Apply all the new changes on the given branch to this branch.
|
|
116
|
+
* @param view - a branch which was created by a call to `branch()`.
|
|
117
|
+
* It is automatically disposed after the merge completes.
|
|
118
|
+
* @remarks All ongoing transactions (if any) in `branch` will be committed before the merge.
|
|
119
|
+
* A "commitApplied" event and a corresponding {@link Revertible} will be emitted on this branch for each new change merged from 'branch'.
|
|
120
|
+
*/
|
|
121
|
+
merge(branch: TreeBranchFork): void;
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Apply all the new changes on the given branch to this branch.
|
|
125
|
+
* @param branch - a branch which was created by a call to `branch()`.
|
|
126
|
+
* @param disposeMerged - whether or not to dispose `branch` after the merge completes.
|
|
127
|
+
* @remarks All ongoing transactions (if any) in `branch` will be committed before the merge.
|
|
128
|
+
*/
|
|
129
|
+
merge(branch: TreeBranchFork, disposeMerged: boolean): void;
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Rebase the given branch onto this branch.
|
|
133
|
+
* @param branch - a branch which was created by a call to `branch()`. It is modified by this operation.
|
|
134
|
+
*/
|
|
135
|
+
rebase(branch: TreeBranchFork): void;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* A {@link TreeBranch | branch} of a SharedTree that has merged from another branch.
|
|
140
|
+
* @remarks This branch should be disposed when it is no longer needed in order to free resources.
|
|
141
|
+
* @alpha @sealed
|
|
142
|
+
*/
|
|
143
|
+
export interface TreeBranchFork extends TreeBranch, IDisposable {
|
|
144
|
+
/**
|
|
145
|
+
* Rebase the changes that have been applied to this branch over all the new changes in the given branch.
|
|
146
|
+
* @param branch - Either the root branch or a branch that was created by a call to `branch()`. It is not modified by this operation.
|
|
147
|
+
*/
|
|
148
|
+
rebaseOnto(branch: TreeBranch): void;
|
|
149
|
+
}
|
|
150
|
+
|
|
92
151
|
/**
|
|
93
152
|
* Provides a means for interacting with a SharedTree.
|
|
94
153
|
* This includes reading data from the tree and running transactions to mutate the tree.
|
|
@@ -97,7 +156,7 @@ export interface CheckoutEvents {
|
|
|
97
156
|
* API for interacting with a {@link SharedTreeBranch}.
|
|
98
157
|
* Implementations of this interface must implement the {@link branchKey} property.
|
|
99
158
|
*/
|
|
100
|
-
export interface ITreeCheckout extends AnchorLocator {
|
|
159
|
+
export interface ITreeCheckout extends AnchorLocator, ViewableTree {
|
|
101
160
|
/**
|
|
102
161
|
* Read and Write access for schema stored in the document.
|
|
103
162
|
*
|
|
@@ -133,33 +192,13 @@ export interface ITreeCheckout extends AnchorLocator {
|
|
|
133
192
|
*/
|
|
134
193
|
readonly transaction: ITransaction;
|
|
135
194
|
|
|
136
|
-
|
|
137
|
-
* Spawn a new view which is based off of the current state of this view.
|
|
138
|
-
* Any mutations of the new view will not apply to this view until the new view is merged back into this view via `merge()`.
|
|
139
|
-
*/
|
|
140
|
-
fork(): ITreeCheckoutFork;
|
|
195
|
+
branch(): ITreeCheckoutFork;
|
|
141
196
|
|
|
142
|
-
|
|
143
|
-
* Apply all the new changes on the given view to this view.
|
|
144
|
-
* @param view - a view which was created by a call to `fork()`.
|
|
145
|
-
* It is automatically disposed after the merge completes.
|
|
146
|
-
* @remarks All ongoing transactions (if any) in `view` will be committed before the merge.
|
|
147
|
-
*/
|
|
148
|
-
merge(view: ITreeCheckoutFork): void;
|
|
197
|
+
merge(checkout: ITreeCheckoutFork): void;
|
|
149
198
|
|
|
150
|
-
|
|
151
|
-
* Apply all the new changes on the given view to this view.
|
|
152
|
-
* @param view - a view which was created by a call to `fork()`.
|
|
153
|
-
* @param disposeView - whether or not to dispose `view` after the merge completes.
|
|
154
|
-
* @remarks All ongoing transactions (if any) in `view` will be committed before the merge.
|
|
155
|
-
*/
|
|
156
|
-
merge(view: ITreeCheckoutFork, disposeView: boolean): void;
|
|
199
|
+
merge(checkout: ITreeCheckoutFork, disposeMerged: boolean): void;
|
|
157
200
|
|
|
158
|
-
|
|
159
|
-
* Rebase the given view onto this view.
|
|
160
|
-
* @param view - a view which was created by a call to `fork()`. It is modified by this operation.
|
|
161
|
-
*/
|
|
162
|
-
rebase(view: ITreeCheckoutFork): void;
|
|
201
|
+
rebase(checkout: ITreeCheckoutFork): void;
|
|
163
202
|
|
|
164
203
|
/**
|
|
165
204
|
* Replaces all schema with the provided schema.
|
|
@@ -210,6 +249,7 @@ export function createTreeCheckout(
|
|
|
210
249
|
removedRoots?: DetachedFieldIndex;
|
|
211
250
|
chunkCompressionStrategy?: TreeCompressionStrategy;
|
|
212
251
|
logger?: ITelemetryLoggerExt;
|
|
252
|
+
breaker?: Breakable;
|
|
213
253
|
},
|
|
214
254
|
): TreeCheckout {
|
|
215
255
|
const forest = args?.forest ?? buildForest();
|
|
@@ -252,6 +292,7 @@ export function createTreeCheckout(
|
|
|
252
292
|
idCompressor,
|
|
253
293
|
args?.removedRoots,
|
|
254
294
|
args?.logger,
|
|
295
|
+
args?.breaker,
|
|
255
296
|
);
|
|
256
297
|
}
|
|
257
298
|
|
|
@@ -263,7 +304,7 @@ export function createTreeCheckout(
|
|
|
263
304
|
* Transactions may nest, meaning that a transaction may be started while a transaction is already ongoing.
|
|
264
305
|
*
|
|
265
306
|
* To avoid updating observers of the view state with intermediate results during a transaction,
|
|
266
|
-
* use {@link ITreeCheckout#
|
|
307
|
+
* use {@link ITreeCheckout#branch} and {@link ISharedTreeFork#merge}.
|
|
267
308
|
*/
|
|
268
309
|
export interface ITransaction {
|
|
269
310
|
/**
|
|
@@ -328,11 +369,7 @@ class Transaction implements ITransaction {
|
|
|
328
369
|
*
|
|
329
370
|
* {@link ITreeCheckout} that has forked off of the main trunk/branch.
|
|
330
371
|
*/
|
|
331
|
-
export interface ITreeCheckoutFork extends ITreeCheckout
|
|
332
|
-
/**
|
|
333
|
-
* Rebase the changes that have been applied to this view over all the new changes in the given view.
|
|
334
|
-
* @param view - Either the root view or a view that was created by a call to `fork()`. It is not modified by this operation.
|
|
335
|
-
*/
|
|
372
|
+
export interface ITreeCheckoutFork extends ITreeCheckout {
|
|
336
373
|
rebaseOnto(view: ITreeCheckout): void;
|
|
337
374
|
}
|
|
338
375
|
|
|
@@ -354,7 +391,9 @@ export interface RevertMetrics {
|
|
|
354
391
|
* An implementation of {@link ITreeCheckoutFork}.
|
|
355
392
|
*/
|
|
356
393
|
export class TreeCheckout implements ITreeCheckoutFork {
|
|
357
|
-
|
|
394
|
+
public disposed = false;
|
|
395
|
+
|
|
396
|
+
private readonly views = new Set<TreeView<ImplicitFieldSchema>>();
|
|
358
397
|
|
|
359
398
|
/**
|
|
360
399
|
* Set of revertibles maintained for automatic disposal
|
|
@@ -384,7 +423,7 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
384
423
|
|
|
385
424
|
public constructor(
|
|
386
425
|
public readonly transaction: ITransaction,
|
|
387
|
-
private readonly
|
|
426
|
+
private readonly _branch: SharedTreeBranch<SharedTreeEditBuilder, SharedTreeChange>,
|
|
388
427
|
private readonly changeFamily: ChangeFamily<SharedTreeEditBuilder, SharedTreeChange>,
|
|
389
428
|
public readonly storedSchema: TreeStoredSchemaRepository,
|
|
390
429
|
public readonly forest: IEditableForest,
|
|
@@ -401,17 +440,18 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
401
440
|
),
|
|
402
441
|
/** Optional logger for telemetry. */
|
|
403
442
|
private readonly logger?: ITelemetryLoggerExt,
|
|
443
|
+
private readonly breaker: Breakable = new Breakable("TreeCheckout"),
|
|
404
444
|
) {
|
|
405
445
|
// when a transaction is started, take a snapshot of the current state of removed roots
|
|
406
|
-
|
|
446
|
+
_branch.on("transactionStarted", () => {
|
|
407
447
|
this.removedRootsSnapshots.push(this.removedRoots.clone());
|
|
408
448
|
});
|
|
409
449
|
// when a transaction is committed, the latest snapshot of removed roots can be discarded
|
|
410
|
-
|
|
450
|
+
_branch.on("transactionCommitted", () => {
|
|
411
451
|
this.removedRootsSnapshots.pop();
|
|
412
452
|
});
|
|
413
453
|
// after a transaction is rolled back, revert removed roots back to the latest snapshot
|
|
414
|
-
|
|
454
|
+
_branch.on("transactionRolledBack", () => {
|
|
415
455
|
const snapshot = this.removedRootsSnapshots.pop();
|
|
416
456
|
assert(snapshot !== undefined, 0x9ae /* a snapshot for removed roots does not exist */);
|
|
417
457
|
this.removedRoots = snapshot;
|
|
@@ -421,7 +461,7 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
421
461
|
// For example, a bug in the editor might produce a malformed change object and thus applying the change to the forest will throw an error.
|
|
422
462
|
// In such a case we will crash here, preventing the change from being added to the commit graph, and preventing `afterChange` from firing.
|
|
423
463
|
// One important consequence of this is that we will not submit the op containing the invalid change, since op submissions happens in response to `afterChange`.
|
|
424
|
-
|
|
464
|
+
_branch.on("beforeChange", (event) => {
|
|
425
465
|
if (event.change !== undefined) {
|
|
426
466
|
const revision =
|
|
427
467
|
event.type === "replace"
|
|
@@ -468,72 +508,83 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
468
508
|
}
|
|
469
509
|
}
|
|
470
510
|
});
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
511
|
+
_branch.on("afterChange", (event) => {
|
|
512
|
+
// The following logic allows revertibles to be generated for the change.
|
|
513
|
+
// Currently only appends (including merges) and transaction commits are supported.
|
|
514
|
+
if (!_branch.isTransacting()) {
|
|
515
|
+
if (
|
|
516
|
+
event.type === "append" ||
|
|
517
|
+
(event.type === "replace" && getChangeReplaceType(event) === "transactionCommit")
|
|
518
|
+
) {
|
|
519
|
+
for (const commit of event.newCommits) {
|
|
520
|
+
const kind = event.type === "append" ? event.kind : CommitKind.Default;
|
|
521
|
+
const { change, revision } = commit;
|
|
522
|
+
|
|
523
|
+
const getRevertible = hasSchemaChange(change)
|
|
524
|
+
? undefined
|
|
525
|
+
: (onRevertibleDisposed?: (revertible: Revertible) => void) => {
|
|
526
|
+
if (!withinEventContext) {
|
|
527
|
+
throw new UsageError(
|
|
528
|
+
"Cannot get a revertible outside of the context of a commitApplied event.",
|
|
529
|
+
);
|
|
530
|
+
}
|
|
531
|
+
if (this.revertibleCommitBranches.get(revision) !== undefined) {
|
|
532
|
+
throw new UsageError(
|
|
533
|
+
"Cannot generate the same revertible more than once. Note that this can happen when multiple commitApplied event listeners are registered.",
|
|
534
|
+
);
|
|
535
|
+
}
|
|
536
|
+
const revertibleCommits = this.revertibleCommitBranches;
|
|
537
|
+
const revertible: DisposableRevertible = {
|
|
538
|
+
get status(): RevertibleStatus {
|
|
539
|
+
const revertibleCommit = revertibleCommits.get(revision);
|
|
540
|
+
return revertibleCommit === undefined
|
|
541
|
+
? RevertibleStatus.Disposed
|
|
542
|
+
: RevertibleStatus.Valid;
|
|
543
|
+
},
|
|
544
|
+
revert: (release: boolean = true) => {
|
|
545
|
+
if (revertible.status === RevertibleStatus.Disposed) {
|
|
546
|
+
throw new UsageError(
|
|
547
|
+
"Unable to revert a revertible that has been disposed.",
|
|
548
|
+
);
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
const revertMetrics = this.revertRevertible(revision, kind);
|
|
552
|
+
this.logger?.sendTelemetryEvent({
|
|
553
|
+
eventName: TreeCheckout.revertTelemetryEventName,
|
|
554
|
+
...revertMetrics,
|
|
555
|
+
});
|
|
556
|
+
|
|
557
|
+
if (release) {
|
|
558
|
+
revertible.dispose();
|
|
559
|
+
}
|
|
560
|
+
},
|
|
561
|
+
dispose: () => {
|
|
562
|
+
if (revertible.status === RevertibleStatus.Disposed) {
|
|
563
|
+
throw new UsageError(
|
|
564
|
+
"Unable to dispose a revertible that has already been disposed.",
|
|
565
|
+
);
|
|
566
|
+
}
|
|
567
|
+
this.disposeRevertible(revertible, revision);
|
|
568
|
+
onRevertibleDisposed?.(revertible);
|
|
569
|
+
},
|
|
570
|
+
};
|
|
571
|
+
|
|
572
|
+
this.revertibleCommitBranches.set(revision, _branch.fork(commit));
|
|
573
|
+
this.revertibles.add(revertible);
|
|
574
|
+
return revertible;
|
|
575
|
+
};
|
|
576
|
+
|
|
577
|
+
let withinEventContext = true;
|
|
578
|
+
this.events.emit("commitApplied", { isLocal: true, kind }, getRevertible);
|
|
579
|
+
withinEventContext = false;
|
|
580
|
+
}
|
|
581
|
+
}
|
|
582
|
+
}
|
|
532
583
|
});
|
|
533
584
|
|
|
534
585
|
// When the branch is trimmed, we can garbage collect any repair data whose latest relevant revision is one of the
|
|
535
586
|
// trimmed revisions.
|
|
536
|
-
|
|
587
|
+
_branch.on("ancestryTrimmed", (revisions) => {
|
|
537
588
|
this.withCombinedVisitor((visitor) => {
|
|
538
589
|
revisions.forEach((revision) => {
|
|
539
590
|
// get all the roots last created or used by the revision
|
|
@@ -560,8 +611,29 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
560
611
|
combinedVisitor.free();
|
|
561
612
|
}
|
|
562
613
|
|
|
563
|
-
private checkNotDisposed(): void {
|
|
564
|
-
|
|
614
|
+
private checkNotDisposed(usageError?: string): void {
|
|
615
|
+
if (this.disposed) {
|
|
616
|
+
if (usageError !== undefined) {
|
|
617
|
+
throw new UsageError(usageError);
|
|
618
|
+
}
|
|
619
|
+
assert(false, 0x911 /* Invalid operation on a disposed TreeCheckout */);
|
|
620
|
+
}
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
public viewWith<TRoot extends ImplicitFieldSchema>(
|
|
624
|
+
config: TreeViewConfiguration<TRoot>,
|
|
625
|
+
): SchematizingSimpleTreeView<TRoot> {
|
|
626
|
+
const view = new SchematizingSimpleTreeView(
|
|
627
|
+
this,
|
|
628
|
+
config,
|
|
629
|
+
createNodeKeyManager(this.idCompressor),
|
|
630
|
+
this.breaker,
|
|
631
|
+
() => {
|
|
632
|
+
this.views.delete(view);
|
|
633
|
+
},
|
|
634
|
+
);
|
|
635
|
+
this.views.add(view);
|
|
636
|
+
return view;
|
|
565
637
|
}
|
|
566
638
|
|
|
567
639
|
public get rootEvents(): Listenable<AnchorSetRootEvents> {
|
|
@@ -570,7 +642,7 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
570
642
|
|
|
571
643
|
public get editor(): ISharedTreeEditor {
|
|
572
644
|
this.checkNotDisposed();
|
|
573
|
-
return this.
|
|
645
|
+
return this._branch.editor;
|
|
574
646
|
}
|
|
575
647
|
|
|
576
648
|
public locate(anchor: Anchor): AnchorNode | undefined {
|
|
@@ -578,10 +650,12 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
578
650
|
return this.forest.anchors.locate(anchor);
|
|
579
651
|
}
|
|
580
652
|
|
|
581
|
-
public
|
|
582
|
-
this.checkNotDisposed(
|
|
653
|
+
public branch(): TreeCheckout {
|
|
654
|
+
this.checkNotDisposed(
|
|
655
|
+
"The parent branch has already been disposed and can no longer create new branches.",
|
|
656
|
+
);
|
|
583
657
|
const anchors = new AnchorSet();
|
|
584
|
-
const branch = this.
|
|
658
|
+
const branch = this._branch.fork();
|
|
585
659
|
const storedSchema = this.storedSchema.clone();
|
|
586
660
|
const forest = this.forest.clone(storedSchema, anchors);
|
|
587
661
|
const transaction = new Transaction(branch);
|
|
@@ -597,37 +671,50 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
597
671
|
this.idCompressor,
|
|
598
672
|
this.removedRoots.clone(),
|
|
599
673
|
this.logger,
|
|
674
|
+
this.breaker,
|
|
600
675
|
);
|
|
601
676
|
}
|
|
602
677
|
|
|
603
|
-
public rebase(
|
|
604
|
-
this.checkNotDisposed(
|
|
678
|
+
public rebase(checkout: TreeCheckout): void {
|
|
679
|
+
this.checkNotDisposed(
|
|
680
|
+
"The target of the branch rebase has been disposed and cannot be rebased.",
|
|
681
|
+
);
|
|
682
|
+
checkout.checkNotDisposed(
|
|
683
|
+
"The source of the branch rebase has been disposed and cannot be rebased.",
|
|
684
|
+
);
|
|
605
685
|
assert(
|
|
606
|
-
!
|
|
686
|
+
!checkout.transaction.inProgress(),
|
|
607
687
|
0x9af /* A view cannot be rebased while it has a pending transaction */,
|
|
608
688
|
);
|
|
609
|
-
|
|
689
|
+
checkout._branch.rebaseOnto(this._branch);
|
|
610
690
|
}
|
|
611
691
|
|
|
612
|
-
public rebaseOnto(
|
|
613
|
-
this.checkNotDisposed(
|
|
614
|
-
|
|
692
|
+
public rebaseOnto(checkout: ITreeCheckout): void {
|
|
693
|
+
this.checkNotDisposed(
|
|
694
|
+
"The target of the branch rebase has been disposed and cannot be rebased.",
|
|
695
|
+
);
|
|
696
|
+
checkout.rebase(this);
|
|
615
697
|
}
|
|
616
698
|
|
|
617
|
-
public merge(
|
|
618
|
-
public merge(
|
|
619
|
-
public merge(
|
|
620
|
-
this.checkNotDisposed(
|
|
699
|
+
public merge(checkout: TreeCheckout): void;
|
|
700
|
+
public merge(checkout: TreeCheckout, disposeMerged: boolean): void;
|
|
701
|
+
public merge(checkout: TreeCheckout, disposeMerged = true): void {
|
|
702
|
+
this.checkNotDisposed(
|
|
703
|
+
"The target of the branch merge has been disposed and cannot be merged.",
|
|
704
|
+
);
|
|
705
|
+
checkout.checkNotDisposed(
|
|
706
|
+
"The source of the branch merge has been disposed and cannot be merged.",
|
|
707
|
+
);
|
|
621
708
|
assert(
|
|
622
709
|
!this.transaction.inProgress(),
|
|
623
710
|
0x9b0 /* Views cannot be merged into a view while it has a pending transaction */,
|
|
624
711
|
);
|
|
625
|
-
while (
|
|
626
|
-
|
|
712
|
+
while (checkout.transaction.inProgress()) {
|
|
713
|
+
checkout.transaction.commit();
|
|
627
714
|
}
|
|
628
|
-
this.
|
|
629
|
-
if (
|
|
630
|
-
|
|
715
|
+
this._branch.merge(checkout._branch);
|
|
716
|
+
if (disposeMerged) {
|
|
717
|
+
checkout[disposeSymbol]();
|
|
631
718
|
}
|
|
632
719
|
}
|
|
633
720
|
|
|
@@ -636,11 +723,20 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
636
723
|
this.editor.schema.setStoredSchema(this.storedSchema.clone(), newSchema);
|
|
637
724
|
}
|
|
638
725
|
|
|
726
|
+
public dispose(): void {
|
|
727
|
+
this[disposeSymbol]();
|
|
728
|
+
}
|
|
729
|
+
|
|
639
730
|
public [disposeSymbol](): void {
|
|
640
|
-
this.checkNotDisposed(
|
|
641
|
-
|
|
731
|
+
this.checkNotDisposed(
|
|
732
|
+
"The branch has already been disposed and cannot be disposed again.",
|
|
733
|
+
);
|
|
734
|
+
this.disposed = true;
|
|
642
735
|
this.purgeRevertibles();
|
|
643
|
-
this.
|
|
736
|
+
this._branch.dispose();
|
|
737
|
+
for (const view of this.views) {
|
|
738
|
+
view.dispose();
|
|
739
|
+
}
|
|
644
740
|
}
|
|
645
741
|
|
|
646
742
|
public getRemovedRoots(): [string | number | undefined, number, JsonableTree][] {
|
|
@@ -681,22 +777,24 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
681
777
|
}
|
|
682
778
|
|
|
683
779
|
private revertRevertible(revision: RevisionTag, kind: CommitKind): RevertMetrics {
|
|
684
|
-
if (this.
|
|
780
|
+
if (this._branch.isTransacting()) {
|
|
685
781
|
throw new UsageError("Undo is not yet supported during transactions.");
|
|
686
782
|
}
|
|
687
783
|
|
|
688
784
|
const revertibleBranch = this.revertibleCommitBranches.get(revision);
|
|
689
785
|
assert(revertibleBranch !== undefined, 0x7cc /* expected to find a revertible commit */);
|
|
690
786
|
const commitToRevert = revertibleBranch.getHead();
|
|
787
|
+
const revisionForInvert = this.mintRevisionTag();
|
|
691
788
|
|
|
692
|
-
let change =
|
|
693
|
-
this.changeFamily.rebaser.invert(
|
|
789
|
+
let change = tagChange(
|
|
790
|
+
this.changeFamily.rebaser.invert(commitToRevert, false, revisionForInvert),
|
|
791
|
+
revisionForInvert,
|
|
694
792
|
);
|
|
695
793
|
|
|
696
|
-
const headCommit = this.
|
|
794
|
+
const headCommit = this._branch.getHead();
|
|
697
795
|
// Rebase the inverted change onto any commits that occurred after the undoable commits.
|
|
698
796
|
if (commitToRevert !== headCommit) {
|
|
699
|
-
change =
|
|
797
|
+
change = tagChange(
|
|
700
798
|
rebaseChange(
|
|
701
799
|
this.changeFamily.rebaser,
|
|
702
800
|
change,
|
|
@@ -704,12 +802,12 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
704
802
|
headCommit,
|
|
705
803
|
this.mintRevisionTag,
|
|
706
804
|
).change,
|
|
805
|
+
revisionForInvert,
|
|
707
806
|
);
|
|
708
807
|
}
|
|
709
808
|
|
|
710
|
-
this.
|
|
711
|
-
change
|
|
712
|
-
this.mintRevisionTag(),
|
|
809
|
+
this._branch.apply(
|
|
810
|
+
change,
|
|
713
811
|
kind === CommitKind.Default || kind === CommitKind.Redo
|
|
714
812
|
? CommitKind.Undo
|
|
715
813
|
: CommitKind.Redo,
|