@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
|
@@ -8,9 +8,12 @@ import { type Anchor, type AnchorLocator, type AnchorNode, type AnchorSetRootEve
|
|
|
8
8
|
import { type HasListeners, type IEmitter, type Listenable } from "../events/index.js";
|
|
9
9
|
import { type FieldBatchCodec, type TreeCompressionStrategy } from "../feature-libraries/index.js";
|
|
10
10
|
import { SharedTreeBranch } from "../shared-tree-core/index.js";
|
|
11
|
-
import {
|
|
11
|
+
import { Breakable, TransactionResult, disposeSymbol } from "../util/index.js";
|
|
12
12
|
import type { SharedTreeChange } from "./sharedTreeChangeTypes.js";
|
|
13
13
|
import type { ISharedTreeEditor, SharedTreeEditBuilder } from "./sharedTreeEditBuilder.js";
|
|
14
|
+
import type { IDisposable } from "@fluidframework/core-interfaces";
|
|
15
|
+
import type { ImplicitFieldSchema, TreeViewConfiguration, ViewableTree } from "../simple-tree/index.js";
|
|
16
|
+
import { SchematizingSimpleTreeView } from "./schematizingTreeView.js";
|
|
14
17
|
/**
|
|
15
18
|
* Events for {@link ITreeCheckout}.
|
|
16
19
|
*/
|
|
@@ -36,6 +39,52 @@ export interface CheckoutEvents {
|
|
|
36
39
|
*/
|
|
37
40
|
commitApplied(data: CommitMetadata, getRevertible?: RevertibleFactory): void;
|
|
38
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* A "version control"-style branch of a SharedTree.
|
|
44
|
+
* @remarks Branches may be used to coordinate edits to a SharedTree, e.g. via merge and rebase operations.
|
|
45
|
+
* Changes applied to a branch of a branch only apply to that branch and are isolated from other branches.
|
|
46
|
+
* Changes may be synchronized across branches via merge and rebase operations provided on the branch object.
|
|
47
|
+
* @alpha @sealed
|
|
48
|
+
*/
|
|
49
|
+
export interface TreeBranch extends ViewableTree {
|
|
50
|
+
/**
|
|
51
|
+
* Spawn a new branch which is based off of the current state of this branch.
|
|
52
|
+
* Any mutations of the new branch will not apply to this branch until the new branch is merged back into this branch via `merge()`.
|
|
53
|
+
*/
|
|
54
|
+
branch(): TreeBranchFork;
|
|
55
|
+
/**
|
|
56
|
+
* Apply all the new changes on the given branch to this branch.
|
|
57
|
+
* @param view - a branch which was created by a call to `branch()`.
|
|
58
|
+
* It is automatically disposed after the merge completes.
|
|
59
|
+
* @remarks All ongoing transactions (if any) in `branch` will be committed before the merge.
|
|
60
|
+
* A "commitApplied" event and a corresponding {@link Revertible} will be emitted on this branch for each new change merged from 'branch'.
|
|
61
|
+
*/
|
|
62
|
+
merge(branch: TreeBranchFork): void;
|
|
63
|
+
/**
|
|
64
|
+
* Apply all the new changes on the given branch to this branch.
|
|
65
|
+
* @param branch - a branch which was created by a call to `branch()`.
|
|
66
|
+
* @param disposeMerged - whether or not to dispose `branch` after the merge completes.
|
|
67
|
+
* @remarks All ongoing transactions (if any) in `branch` will be committed before the merge.
|
|
68
|
+
*/
|
|
69
|
+
merge(branch: TreeBranchFork, disposeMerged: boolean): void;
|
|
70
|
+
/**
|
|
71
|
+
* Rebase the given branch onto this branch.
|
|
72
|
+
* @param branch - a branch which was created by a call to `branch()`. It is modified by this operation.
|
|
73
|
+
*/
|
|
74
|
+
rebase(branch: TreeBranchFork): void;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* A {@link TreeBranch | branch} of a SharedTree that has merged from another branch.
|
|
78
|
+
* @remarks This branch should be disposed when it is no longer needed in order to free resources.
|
|
79
|
+
* @alpha @sealed
|
|
80
|
+
*/
|
|
81
|
+
export interface TreeBranchFork extends TreeBranch, IDisposable {
|
|
82
|
+
/**
|
|
83
|
+
* Rebase the changes that have been applied to this branch over all the new changes in the given branch.
|
|
84
|
+
* @param branch - Either the root branch or a branch that was created by a call to `branch()`. It is not modified by this operation.
|
|
85
|
+
*/
|
|
86
|
+
rebaseOnto(branch: TreeBranch): void;
|
|
87
|
+
}
|
|
39
88
|
/**
|
|
40
89
|
* Provides a means for interacting with a SharedTree.
|
|
41
90
|
* This includes reading data from the tree and running transactions to mutate the tree.
|
|
@@ -44,7 +93,7 @@ export interface CheckoutEvents {
|
|
|
44
93
|
* API for interacting with a {@link SharedTreeBranch}.
|
|
45
94
|
* Implementations of this interface must implement the {@link branchKey} property.
|
|
46
95
|
*/
|
|
47
|
-
export interface ITreeCheckout extends AnchorLocator {
|
|
96
|
+
export interface ITreeCheckout extends AnchorLocator, ViewableTree {
|
|
48
97
|
/**
|
|
49
98
|
* Read and Write access for schema stored in the document.
|
|
50
99
|
*
|
|
@@ -77,30 +126,10 @@ export interface ITreeCheckout extends AnchorLocator {
|
|
|
77
126
|
* A collection of functions for managing transactions.
|
|
78
127
|
*/
|
|
79
128
|
readonly transaction: ITransaction;
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
fork(): ITreeCheckoutFork;
|
|
85
|
-
/**
|
|
86
|
-
* Apply all the new changes on the given view to this view.
|
|
87
|
-
* @param view - a view which was created by a call to `fork()`.
|
|
88
|
-
* It is automatically disposed after the merge completes.
|
|
89
|
-
* @remarks All ongoing transactions (if any) in `view` will be committed before the merge.
|
|
90
|
-
*/
|
|
91
|
-
merge(view: ITreeCheckoutFork): void;
|
|
92
|
-
/**
|
|
93
|
-
* Apply all the new changes on the given view to this view.
|
|
94
|
-
* @param view - a view which was created by a call to `fork()`.
|
|
95
|
-
* @param disposeView - whether or not to dispose `view` after the merge completes.
|
|
96
|
-
* @remarks All ongoing transactions (if any) in `view` will be committed before the merge.
|
|
97
|
-
*/
|
|
98
|
-
merge(view: ITreeCheckoutFork, disposeView: boolean): void;
|
|
99
|
-
/**
|
|
100
|
-
* Rebase the given view onto this view.
|
|
101
|
-
* @param view - a view which was created by a call to `fork()`. It is modified by this operation.
|
|
102
|
-
*/
|
|
103
|
-
rebase(view: ITreeCheckoutFork): void;
|
|
129
|
+
branch(): ITreeCheckoutFork;
|
|
130
|
+
merge(checkout: ITreeCheckoutFork): void;
|
|
131
|
+
merge(checkout: ITreeCheckoutFork, disposeMerged: boolean): void;
|
|
132
|
+
rebase(checkout: ITreeCheckoutFork): void;
|
|
104
133
|
/**
|
|
105
134
|
* Replaces all schema with the provided schema.
|
|
106
135
|
* Can over-write preexisting schema, and removes unmentioned schema.
|
|
@@ -140,6 +169,7 @@ export declare function createTreeCheckout(idCompressor: IIdCompressor, mintRevi
|
|
|
140
169
|
removedRoots?: DetachedFieldIndex;
|
|
141
170
|
chunkCompressionStrategy?: TreeCompressionStrategy;
|
|
142
171
|
logger?: ITelemetryLoggerExt;
|
|
172
|
+
breaker?: Breakable;
|
|
143
173
|
}): TreeCheckout;
|
|
144
174
|
/**
|
|
145
175
|
* A collection of functions for managing transactions.
|
|
@@ -149,7 +179,7 @@ export declare function createTreeCheckout(idCompressor: IIdCompressor, mintRevi
|
|
|
149
179
|
* Transactions may nest, meaning that a transaction may be started while a transaction is already ongoing.
|
|
150
180
|
*
|
|
151
181
|
* To avoid updating observers of the view state with intermediate results during a transaction,
|
|
152
|
-
* use {@link ITreeCheckout#
|
|
182
|
+
* use {@link ITreeCheckout#branch} and {@link ISharedTreeFork#merge}.
|
|
153
183
|
*/
|
|
154
184
|
export interface ITransaction {
|
|
155
185
|
/**
|
|
@@ -189,11 +219,7 @@ export interface ITransaction {
|
|
|
189
219
|
*
|
|
190
220
|
* {@link ITreeCheckout} that has forked off of the main trunk/branch.
|
|
191
221
|
*/
|
|
192
|
-
export interface ITreeCheckoutFork extends ITreeCheckout
|
|
193
|
-
/**
|
|
194
|
-
* Rebase the changes that have been applied to this view over all the new changes in the given view.
|
|
195
|
-
* @param view - Either the root view or a view that was created by a call to `fork()`. It is not modified by this operation.
|
|
196
|
-
*/
|
|
222
|
+
export interface ITreeCheckoutFork extends ITreeCheckout {
|
|
197
223
|
rebaseOnto(view: ITreeCheckout): void;
|
|
198
224
|
}
|
|
199
225
|
/**
|
|
@@ -212,7 +238,7 @@ export interface RevertMetrics {
|
|
|
212
238
|
*/
|
|
213
239
|
export declare class TreeCheckout implements ITreeCheckoutFork {
|
|
214
240
|
readonly transaction: ITransaction;
|
|
215
|
-
private readonly
|
|
241
|
+
private readonly _branch;
|
|
216
242
|
private readonly changeFamily;
|
|
217
243
|
readonly storedSchema: TreeStoredSchemaRepository;
|
|
218
244
|
readonly forest: IEditableForest;
|
|
@@ -223,7 +249,9 @@ export declare class TreeCheckout implements ITreeCheckoutFork {
|
|
|
223
249
|
private removedRoots;
|
|
224
250
|
/** Optional logger for telemetry. */
|
|
225
251
|
private readonly logger?;
|
|
226
|
-
private
|
|
252
|
+
private readonly breaker;
|
|
253
|
+
disposed: boolean;
|
|
254
|
+
private readonly views;
|
|
227
255
|
/**
|
|
228
256
|
* Set of revertibles maintained for automatic disposal
|
|
229
257
|
*/
|
|
@@ -243,20 +271,22 @@ export declare class TreeCheckout implements ITreeCheckoutFork {
|
|
|
243
271
|
* @privateRemarks Exposed for testing purposes.
|
|
244
272
|
*/
|
|
245
273
|
static readonly revertTelemetryEventName = "RevertRevertible";
|
|
246
|
-
constructor(transaction: ITransaction,
|
|
274
|
+
constructor(transaction: ITransaction, _branch: SharedTreeBranch<SharedTreeEditBuilder, SharedTreeChange>, changeFamily: ChangeFamily<SharedTreeEditBuilder, SharedTreeChange>, storedSchema: TreeStoredSchemaRepository, forest: IEditableForest, events: Listenable<CheckoutEvents> & IEmitter<CheckoutEvents> & HasListeners<CheckoutEvents>, mintRevisionTag: () => RevisionTag, revisionTagCodec: RevisionTagCodec, idCompressor: IIdCompressor, removedRoots?: DetachedFieldIndex,
|
|
247
275
|
/** Optional logger for telemetry. */
|
|
248
|
-
logger?: ITelemetryLoggerExt | undefined);
|
|
276
|
+
logger?: ITelemetryLoggerExt | undefined, breaker?: Breakable);
|
|
249
277
|
private withCombinedVisitor;
|
|
250
278
|
private checkNotDisposed;
|
|
279
|
+
viewWith<TRoot extends ImplicitFieldSchema>(config: TreeViewConfiguration<TRoot>): SchematizingSimpleTreeView<TRoot>;
|
|
251
280
|
get rootEvents(): Listenable<AnchorSetRootEvents>;
|
|
252
281
|
get editor(): ISharedTreeEditor;
|
|
253
282
|
locate(anchor: Anchor): AnchorNode | undefined;
|
|
254
|
-
|
|
255
|
-
rebase(
|
|
256
|
-
rebaseOnto(
|
|
257
|
-
merge(
|
|
258
|
-
merge(
|
|
283
|
+
branch(): TreeCheckout;
|
|
284
|
+
rebase(checkout: TreeCheckout): void;
|
|
285
|
+
rebaseOnto(checkout: ITreeCheckout): void;
|
|
286
|
+
merge(checkout: TreeCheckout): void;
|
|
287
|
+
merge(checkout: TreeCheckout, disposeMerged: boolean): void;
|
|
259
288
|
updateSchema(newSchema: TreeStoredSchema): void;
|
|
289
|
+
dispose(): void;
|
|
260
290
|
[disposeSymbol](): void;
|
|
261
291
|
getRemovedRoots(): [string | number | undefined, number, JsonableTree][];
|
|
262
292
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"treeCheckout.d.ts","sourceRoot":"","sources":["../../src/shared-tree/treeCheckout.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAEN,KAAK,mBAAmB,EACxB,MAAM,0CAA0C,CAAC;AAElD,OAAO,EACN,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,UAAU,EAEf,KAAK,mBAAmB,EACxB,KAAK,YAAY,EAEjB,KAAK,cAAc,EAEnB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EAGjB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,0BAA0B,EAC1B,KAAK,4BAA4B,
|
|
1
|
+
{"version":3,"file":"treeCheckout.d.ts","sourceRoot":"","sources":["../../src/shared-tree/treeCheckout.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,12 +5,13 @@
|
|
|
5
5
|
import { assert, oob } from "@fluidframework/core-utils/internal";
|
|
6
6
|
import { UsageError, } from "@fluidframework/telemetry-utils/internal";
|
|
7
7
|
import { noopValidator } from "../codec/index.js";
|
|
8
|
-
import { AnchorSet, CommitKind, RevertibleStatus, TreeStoredSchemaRepository, combineVisitors,
|
|
8
|
+
import { AnchorSet, CommitKind, RevertibleStatus, TreeStoredSchemaRepository, combineVisitors, makeDetachedFieldIndex, rebaseChange, rootFieldKey, tagChange, visitDelta, } from "../core/index.js";
|
|
9
9
|
import { createEmitter, } from "../events/index.js";
|
|
10
|
-
import { buildForest, intoDelta, jsonableTreeFromCursor, makeFieldBatchCodec, } from "../feature-libraries/index.js";
|
|
10
|
+
import { buildForest, createNodeKeyManager, intoDelta, jsonableTreeFromCursor, makeFieldBatchCodec, } from "../feature-libraries/index.js";
|
|
11
11
|
import { SharedTreeBranch, getChangeReplaceType } from "../shared-tree-core/index.js";
|
|
12
|
-
import { TransactionResult, disposeSymbol, fail } from "../util/index.js";
|
|
12
|
+
import { Breakable, TransactionResult, disposeSymbol, fail } from "../util/index.js";
|
|
13
13
|
import { SharedTreeChangeFamily, hasSchemaChange } from "./sharedTreeChangeFamily.js";
|
|
14
|
+
import { SchematizingSimpleTreeView } from "./schematizingTreeView.js";
|
|
14
15
|
/**
|
|
15
16
|
* Creates a {@link TreeCheckout}.
|
|
16
17
|
* @param args - an object containing optional components that will be used to build the view.
|
|
@@ -33,7 +34,7 @@ export function createTreeCheckout(idCompressor, mintRevisionTag, revisionTagCod
|
|
|
33
34
|
}, changeFamily, () => idCompressor.generateCompressedId());
|
|
34
35
|
const events = args?.events ?? createEmitter();
|
|
35
36
|
const transaction = new Transaction(branch);
|
|
36
|
-
return new TreeCheckout(transaction, branch, changeFamily, schema, forest, events, mintRevisionTag, revisionTagCodec, idCompressor, args?.removedRoots, args?.logger);
|
|
37
|
+
return new TreeCheckout(transaction, branch, changeFamily, schema, forest, events, mintRevisionTag, revisionTagCodec, idCompressor, args?.removedRoots, args?.logger, args?.breaker);
|
|
37
38
|
}
|
|
38
39
|
class Transaction {
|
|
39
40
|
constructor(branch) {
|
|
@@ -61,11 +62,11 @@ class Transaction {
|
|
|
61
62
|
* An implementation of {@link ITreeCheckoutFork}.
|
|
62
63
|
*/
|
|
63
64
|
export class TreeCheckout {
|
|
64
|
-
constructor(transaction,
|
|
65
|
+
constructor(transaction, _branch, changeFamily, storedSchema, forest, events, mintRevisionTag, revisionTagCodec, idCompressor, removedRoots = makeDetachedFieldIndex("repair", revisionTagCodec, idCompressor),
|
|
65
66
|
/** Optional logger for telemetry. */
|
|
66
|
-
logger) {
|
|
67
|
+
logger, breaker = new Breakable("TreeCheckout")) {
|
|
67
68
|
this.transaction = transaction;
|
|
68
|
-
this.
|
|
69
|
+
this._branch = _branch;
|
|
69
70
|
this.changeFamily = changeFamily;
|
|
70
71
|
this.storedSchema = storedSchema;
|
|
71
72
|
this.forest = forest;
|
|
@@ -75,7 +76,9 @@ export class TreeCheckout {
|
|
|
75
76
|
this.idCompressor = idCompressor;
|
|
76
77
|
this.removedRoots = removedRoots;
|
|
77
78
|
this.logger = logger;
|
|
78
|
-
this.
|
|
79
|
+
this.breaker = breaker;
|
|
80
|
+
this.disposed = false;
|
|
81
|
+
this.views = new Set();
|
|
79
82
|
/**
|
|
80
83
|
* Set of revertibles maintained for automatic disposal
|
|
81
84
|
*/
|
|
@@ -91,15 +94,15 @@ export class TreeCheckout {
|
|
|
91
94
|
*/
|
|
92
95
|
this.removedRootsSnapshots = [];
|
|
93
96
|
// when a transaction is started, take a snapshot of the current state of removed roots
|
|
94
|
-
|
|
97
|
+
_branch.on("transactionStarted", () => {
|
|
95
98
|
this.removedRootsSnapshots.push(this.removedRoots.clone());
|
|
96
99
|
});
|
|
97
100
|
// when a transaction is committed, the latest snapshot of removed roots can be discarded
|
|
98
|
-
|
|
101
|
+
_branch.on("transactionCommitted", () => {
|
|
99
102
|
this.removedRootsSnapshots.pop();
|
|
100
103
|
});
|
|
101
104
|
// after a transaction is rolled back, revert removed roots back to the latest snapshot
|
|
102
|
-
|
|
105
|
+
_branch.on("transactionRolledBack", () => {
|
|
103
106
|
const snapshot = this.removedRootsSnapshots.pop();
|
|
104
107
|
assert(snapshot !== undefined, 0x9ae /* a snapshot for removed roots does not exist */);
|
|
105
108
|
this.removedRoots = snapshot;
|
|
@@ -108,7 +111,7 @@ export class TreeCheckout {
|
|
|
108
111
|
// 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.
|
|
109
112
|
// In such a case we will crash here, preventing the change from being added to the commit graph, and preventing `afterChange` from firing.
|
|
110
113
|
// 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`.
|
|
111
|
-
|
|
114
|
+
_branch.on("beforeChange", (event) => {
|
|
112
115
|
if (event.change !== undefined) {
|
|
113
116
|
const revision = event.type === "replace"
|
|
114
117
|
? // Change events will always contain new commits
|
|
@@ -155,58 +158,67 @@ export class TreeCheckout {
|
|
|
155
158
|
}
|
|
156
159
|
}
|
|
157
160
|
});
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
161
|
+
_branch.on("afterChange", (event) => {
|
|
162
|
+
// The following logic allows revertibles to be generated for the change.
|
|
163
|
+
// Currently only appends (including merges) and transaction commits are supported.
|
|
164
|
+
if (!_branch.isTransacting()) {
|
|
165
|
+
if (event.type === "append" ||
|
|
166
|
+
(event.type === "replace" && getChangeReplaceType(event) === "transactionCommit")) {
|
|
167
|
+
for (const commit of event.newCommits) {
|
|
168
|
+
const kind = event.type === "append" ? event.kind : CommitKind.Default;
|
|
169
|
+
const { change, revision } = commit;
|
|
170
|
+
const getRevertible = hasSchemaChange(change)
|
|
171
|
+
? undefined
|
|
172
|
+
: (onRevertibleDisposed) => {
|
|
173
|
+
if (!withinEventContext) {
|
|
174
|
+
throw new UsageError("Cannot get a revertible outside of the context of a commitApplied event.");
|
|
175
|
+
}
|
|
176
|
+
if (this.revertibleCommitBranches.get(revision) !== undefined) {
|
|
177
|
+
throw new UsageError("Cannot generate the same revertible more than once. Note that this can happen when multiple commitApplied event listeners are registered.");
|
|
178
|
+
}
|
|
179
|
+
const revertibleCommits = this.revertibleCommitBranches;
|
|
180
|
+
const revertible = {
|
|
181
|
+
get status() {
|
|
182
|
+
const revertibleCommit = revertibleCommits.get(revision);
|
|
183
|
+
return revertibleCommit === undefined
|
|
184
|
+
? RevertibleStatus.Disposed
|
|
185
|
+
: RevertibleStatus.Valid;
|
|
186
|
+
},
|
|
187
|
+
revert: (release = true) => {
|
|
188
|
+
if (revertible.status === RevertibleStatus.Disposed) {
|
|
189
|
+
throw new UsageError("Unable to revert a revertible that has been disposed.");
|
|
190
|
+
}
|
|
191
|
+
const revertMetrics = this.revertRevertible(revision, kind);
|
|
192
|
+
this.logger?.sendTelemetryEvent({
|
|
193
|
+
eventName: TreeCheckout.revertTelemetryEventName,
|
|
194
|
+
...revertMetrics,
|
|
195
|
+
});
|
|
196
|
+
if (release) {
|
|
197
|
+
revertible.dispose();
|
|
198
|
+
}
|
|
199
|
+
},
|
|
200
|
+
dispose: () => {
|
|
201
|
+
if (revertible.status === RevertibleStatus.Disposed) {
|
|
202
|
+
throw new UsageError("Unable to dispose a revertible that has already been disposed.");
|
|
203
|
+
}
|
|
204
|
+
this.disposeRevertible(revertible, revision);
|
|
205
|
+
onRevertibleDisposed?.(revertible);
|
|
206
|
+
},
|
|
207
|
+
};
|
|
208
|
+
this.revertibleCommitBranches.set(revision, _branch.fork(commit));
|
|
209
|
+
this.revertibles.add(revertible);
|
|
210
|
+
return revertible;
|
|
211
|
+
};
|
|
212
|
+
let withinEventContext = true;
|
|
213
|
+
this.events.emit("commitApplied", { isLocal: true, kind }, getRevertible);
|
|
214
|
+
withinEventContext = false;
|
|
170
215
|
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
get status() {
|
|
174
|
-
const revertibleCommit = revertibleCommits.get(revision);
|
|
175
|
-
return revertibleCommit === undefined
|
|
176
|
-
? RevertibleStatus.Disposed
|
|
177
|
-
: RevertibleStatus.Valid;
|
|
178
|
-
},
|
|
179
|
-
revert: (release = true) => {
|
|
180
|
-
if (revertible.status === RevertibleStatus.Disposed) {
|
|
181
|
-
throw new UsageError("Unable to revert a revertible that has been disposed.");
|
|
182
|
-
}
|
|
183
|
-
const revertMetrics = this.revertRevertible(revision, data.kind);
|
|
184
|
-
this.logger?.sendTelemetryEvent({
|
|
185
|
-
eventName: TreeCheckout.revertTelemetryEventName,
|
|
186
|
-
...revertMetrics,
|
|
187
|
-
});
|
|
188
|
-
if (release) {
|
|
189
|
-
revertible.dispose();
|
|
190
|
-
}
|
|
191
|
-
},
|
|
192
|
-
dispose: () => {
|
|
193
|
-
if (revertible.status === RevertibleStatus.Disposed) {
|
|
194
|
-
throw new UsageError("Unable to dispose a revertible that has already been disposed.");
|
|
195
|
-
}
|
|
196
|
-
this.disposeRevertible(revertible, revision);
|
|
197
|
-
onRevertibleDisposed?.(revertible);
|
|
198
|
-
},
|
|
199
|
-
};
|
|
200
|
-
this.revertibleCommitBranches.set(revision, branch.fork());
|
|
201
|
-
this.revertibles.add(revertible);
|
|
202
|
-
return revertible;
|
|
203
|
-
};
|
|
204
|
-
this.events.emit("commitApplied", data, getRevertible);
|
|
205
|
-
withinEventContext = false;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
206
218
|
});
|
|
207
219
|
// When the branch is trimmed, we can garbage collect any repair data whose latest relevant revision is one of the
|
|
208
220
|
// trimmed revisions.
|
|
209
|
-
|
|
221
|
+
_branch.on("ancestryTrimmed", (revisions) => {
|
|
210
222
|
this.withCombinedVisitor((visitor) => {
|
|
211
223
|
revisions.forEach((revision) => {
|
|
212
224
|
// get all the roots last created or used by the revision
|
|
@@ -226,58 +238,78 @@ export class TreeCheckout {
|
|
|
226
238
|
fn(combinedVisitor);
|
|
227
239
|
combinedVisitor.free();
|
|
228
240
|
}
|
|
229
|
-
checkNotDisposed() {
|
|
230
|
-
|
|
241
|
+
checkNotDisposed(usageError) {
|
|
242
|
+
if (this.disposed) {
|
|
243
|
+
if (usageError !== undefined) {
|
|
244
|
+
throw new UsageError(usageError);
|
|
245
|
+
}
|
|
246
|
+
assert(false, 0x911 /* Invalid operation on a disposed TreeCheckout */);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
viewWith(config) {
|
|
250
|
+
const view = new SchematizingSimpleTreeView(this, config, createNodeKeyManager(this.idCompressor), this.breaker, () => {
|
|
251
|
+
this.views.delete(view);
|
|
252
|
+
});
|
|
253
|
+
this.views.add(view);
|
|
254
|
+
return view;
|
|
231
255
|
}
|
|
232
256
|
get rootEvents() {
|
|
233
257
|
return this.forest.anchors;
|
|
234
258
|
}
|
|
235
259
|
get editor() {
|
|
236
260
|
this.checkNotDisposed();
|
|
237
|
-
return this.
|
|
261
|
+
return this._branch.editor;
|
|
238
262
|
}
|
|
239
263
|
locate(anchor) {
|
|
240
264
|
this.checkNotDisposed();
|
|
241
265
|
return this.forest.anchors.locate(anchor);
|
|
242
266
|
}
|
|
243
|
-
|
|
244
|
-
this.checkNotDisposed();
|
|
267
|
+
branch() {
|
|
268
|
+
this.checkNotDisposed("The parent branch has already been disposed and can no longer create new branches.");
|
|
245
269
|
const anchors = new AnchorSet();
|
|
246
|
-
const branch = this.
|
|
270
|
+
const branch = this._branch.fork();
|
|
247
271
|
const storedSchema = this.storedSchema.clone();
|
|
248
272
|
const forest = this.forest.clone(storedSchema, anchors);
|
|
249
273
|
const transaction = new Transaction(branch);
|
|
250
|
-
return new TreeCheckout(transaction, branch, this.changeFamily, storedSchema, forest, createEmitter(), this.mintRevisionTag, this.revisionTagCodec, this.idCompressor, this.removedRoots.clone(), this.logger);
|
|
274
|
+
return new TreeCheckout(transaction, branch, this.changeFamily, storedSchema, forest, createEmitter(), this.mintRevisionTag, this.revisionTagCodec, this.idCompressor, this.removedRoots.clone(), this.logger, this.breaker);
|
|
251
275
|
}
|
|
252
|
-
rebase(
|
|
253
|
-
this.checkNotDisposed();
|
|
254
|
-
|
|
255
|
-
|
|
276
|
+
rebase(checkout) {
|
|
277
|
+
this.checkNotDisposed("The target of the branch rebase has been disposed and cannot be rebased.");
|
|
278
|
+
checkout.checkNotDisposed("The source of the branch rebase has been disposed and cannot be rebased.");
|
|
279
|
+
assert(!checkout.transaction.inProgress(), 0x9af /* A view cannot be rebased while it has a pending transaction */);
|
|
280
|
+
checkout._branch.rebaseOnto(this._branch);
|
|
256
281
|
}
|
|
257
|
-
rebaseOnto(
|
|
258
|
-
this.checkNotDisposed();
|
|
259
|
-
|
|
282
|
+
rebaseOnto(checkout) {
|
|
283
|
+
this.checkNotDisposed("The target of the branch rebase has been disposed and cannot be rebased.");
|
|
284
|
+
checkout.rebase(this);
|
|
260
285
|
}
|
|
261
|
-
merge(
|
|
262
|
-
this.checkNotDisposed();
|
|
286
|
+
merge(checkout, disposeMerged = true) {
|
|
287
|
+
this.checkNotDisposed("The target of the branch merge has been disposed and cannot be merged.");
|
|
288
|
+
checkout.checkNotDisposed("The source of the branch merge has been disposed and cannot be merged.");
|
|
263
289
|
assert(!this.transaction.inProgress(), 0x9b0 /* Views cannot be merged into a view while it has a pending transaction */);
|
|
264
|
-
while (
|
|
265
|
-
|
|
290
|
+
while (checkout.transaction.inProgress()) {
|
|
291
|
+
checkout.transaction.commit();
|
|
266
292
|
}
|
|
267
|
-
this.
|
|
268
|
-
if (
|
|
269
|
-
|
|
293
|
+
this._branch.merge(checkout._branch);
|
|
294
|
+
if (disposeMerged) {
|
|
295
|
+
checkout[disposeSymbol]();
|
|
270
296
|
}
|
|
271
297
|
}
|
|
272
298
|
updateSchema(newSchema) {
|
|
273
299
|
this.checkNotDisposed();
|
|
274
300
|
this.editor.schema.setStoredSchema(this.storedSchema.clone(), newSchema);
|
|
275
301
|
}
|
|
302
|
+
dispose() {
|
|
303
|
+
this[disposeSymbol]();
|
|
304
|
+
}
|
|
276
305
|
[disposeSymbol]() {
|
|
277
|
-
this.checkNotDisposed();
|
|
278
|
-
this.
|
|
306
|
+
this.checkNotDisposed("The branch has already been disposed and cannot be disposed again.");
|
|
307
|
+
this.disposed = true;
|
|
279
308
|
this.purgeRevertibles();
|
|
280
|
-
this.
|
|
309
|
+
this._branch.dispose();
|
|
310
|
+
for (const view of this.views) {
|
|
311
|
+
view.dispose();
|
|
312
|
+
}
|
|
281
313
|
}
|
|
282
314
|
getRemovedRoots() {
|
|
283
315
|
this.assertNoUntrackedRoots();
|
|
@@ -313,19 +345,20 @@ export class TreeCheckout {
|
|
|
313
345
|
this.revertibles.delete(revertible);
|
|
314
346
|
}
|
|
315
347
|
revertRevertible(revision, kind) {
|
|
316
|
-
if (this.
|
|
348
|
+
if (this._branch.isTransacting()) {
|
|
317
349
|
throw new UsageError("Undo is not yet supported during transactions.");
|
|
318
350
|
}
|
|
319
351
|
const revertibleBranch = this.revertibleCommitBranches.get(revision);
|
|
320
352
|
assert(revertibleBranch !== undefined, 0x7cc /* expected to find a revertible commit */);
|
|
321
353
|
const commitToRevert = revertibleBranch.getHead();
|
|
322
|
-
|
|
323
|
-
|
|
354
|
+
const revisionForInvert = this.mintRevisionTag();
|
|
355
|
+
let change = tagChange(this.changeFamily.rebaser.invert(commitToRevert, false, revisionForInvert), revisionForInvert);
|
|
356
|
+
const headCommit = this._branch.getHead();
|
|
324
357
|
// Rebase the inverted change onto any commits that occurred after the undoable commits.
|
|
325
358
|
if (commitToRevert !== headCommit) {
|
|
326
|
-
change =
|
|
359
|
+
change = tagChange(rebaseChange(this.changeFamily.rebaser, change, commitToRevert, headCommit, this.mintRevisionTag).change, revisionForInvert);
|
|
327
360
|
}
|
|
328
|
-
this.
|
|
361
|
+
this._branch.apply(change, kind === CommitKind.Default || kind === CommitKind.Redo
|
|
329
362
|
? CommitKind.Undo
|
|
330
363
|
: CommitKind.Redo);
|
|
331
364
|
// Derive some stats about the reversion to return to the caller.
|