@fluidframework/tree 2.4.0-297027 → 2.4.0-299374
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/.dependency-cruiser-known-violations.json +0 -14
- package/.vscode/settings.json +9 -1
- package/api-report/tree.alpha.api.md +178 -21
- package/api-report/tree.beta.api.md +46 -21
- package/api-report/tree.legacy.alpha.api.md +46 -21
- package/api-report/tree.legacy.public.api.md +46 -21
- package/api-report/tree.public.api.md +46 -21
- package/dist/alpha.d.ts +29 -1
- package/dist/beta.d.ts +2 -0
- package/dist/codec/codec.d.ts +4 -4
- package/dist/codec/codec.js.map +1 -1
- package/dist/codec/noopValidator.d.ts +1 -1
- package/dist/codec/noopValidator.js +1 -1
- package/dist/codec/noopValidator.js.map +1 -1
- 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/tree/anchorSet.d.ts +159 -2
- package/dist/core/tree/anchorSet.d.ts.map +1 -1
- package/dist/core/tree/anchorSet.js +54 -12
- package/dist/core/tree/anchorSet.js.map +1 -1
- package/dist/external-utilities/typeboxValidator.d.ts +1 -1
- package/dist/external-utilities/typeboxValidator.js +1 -1
- package/dist/external-utilities/typeboxValidator.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/flex-tree/lazyField.d.ts +4 -0
- package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.js +38 -6
- package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/dist/feature-libraries/index.d.ts +0 -1
- package/dist/feature-libraries/index.d.ts.map +1 -1
- package/dist/feature-libraries/index.js +46 -49
- 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/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/treeCompressionUtils.d.ts +1 -1
- package/dist/feature-libraries/treeCompressionUtils.js +1 -1
- package/dist/feature-libraries/treeCompressionUtils.js.map +1 -1
- package/dist/index.d.ts +6 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/internalTypes.d.ts +2 -2
- package/dist/internalTypes.d.ts.map +1 -1
- package/dist/internalTypes.js.map +1 -1
- package/dist/legacy.d.ts +2 -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 +2 -0
- package/dist/shared-tree/index.d.ts +2 -1
- package/dist/shared-tree/index.d.ts.map +1 -1
- package/dist/shared-tree/index.js +5 -1
- package/dist/shared-tree/index.js.map +1 -1
- package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/dist/shared-tree/schematizingTreeView.js +1 -14
- package/dist/shared-tree/schematizingTreeView.js.map +1 -1
- package/dist/shared-tree/sharedTree.d.ts +24 -9
- package/dist/shared-tree/sharedTree.d.ts.map +1 -1
- package/dist/shared-tree/sharedTree.js +21 -9
- 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/treeApi.d.ts +6 -6
- package/dist/shared-tree/treeApi.d.ts.map +1 -1
- package/dist/shared-tree/treeApi.js.map +1 -1
- package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
- package/dist/shared-tree/treeCheckout.js +4 -3
- package/dist/shared-tree/treeCheckout.js.map +1 -1
- package/dist/shared-tree-core/branch.d.ts +2 -3
- package/dist/shared-tree-core/branch.d.ts.map +1 -1
- package/dist/shared-tree-core/branch.js +10 -11
- 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/conciseTree.d.ts +29 -0
- package/dist/simple-tree/api/conciseTree.d.ts.map +1 -0
- package/dist/simple-tree/api/conciseTree.js +25 -0
- package/dist/simple-tree/api/conciseTree.js.map +1 -0
- package/dist/simple-tree/api/customTree.d.ts +44 -0
- package/dist/simple-tree/api/customTree.d.ts.map +1 -0
- package/dist/simple-tree/api/customTree.js +63 -0
- package/dist/simple-tree/api/customTree.js.map +1 -0
- package/dist/simple-tree/api/index.d.ts +7 -2
- package/dist/simple-tree/api/index.d.ts.map +1 -1
- package/dist/simple-tree/api/index.js +5 -1
- package/dist/simple-tree/api/index.js.map +1 -1
- package/dist/simple-tree/api/schemaCreationUtilities.d.ts +41 -26
- package/dist/simple-tree/api/schemaCreationUtilities.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaCreationUtilities.js +43 -15
- package/dist/simple-tree/api/schemaCreationUtilities.js.map +1 -1
- package/dist/simple-tree/api/schemaFactory.d.ts +1 -2
- package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactory.js +8 -8
- package/dist/simple-tree/api/schemaFactory.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryRecursive.d.ts +1 -2
- 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/storedSchema.d.ts +78 -0
- package/dist/simple-tree/api/storedSchema.d.ts.map +1 -0
- package/dist/simple-tree/api/storedSchema.js +107 -0
- package/dist/simple-tree/api/storedSchema.js.map +1 -0
- package/dist/simple-tree/api/testRecursiveDomain.d.ts +10 -10
- package/dist/simple-tree/api/tree.d.ts +12 -3
- package/dist/simple-tree/api/tree.d.ts.map +1 -1
- package/dist/simple-tree/api/tree.js.map +1 -1
- package/dist/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/dist/simple-tree/api/treeNodeApi.js +5 -5
- package/dist/simple-tree/api/treeNodeApi.js.map +1 -1
- package/dist/simple-tree/{typesUnsafe.d.ts → api/typesUnsafe.d.ts} +58 -10
- package/dist/simple-tree/api/typesUnsafe.d.ts.map +1 -0
- package/dist/simple-tree/api/typesUnsafe.js.map +1 -0
- package/dist/simple-tree/api/verboseTree.d.ts +6 -20
- package/dist/simple-tree/api/verboseTree.d.ts.map +1 -1
- package/dist/simple-tree/api/verboseTree.js +10 -48
- package/dist/simple-tree/api/verboseTree.js.map +1 -1
- package/dist/simple-tree/arrayNode.d.ts +14 -3
- package/dist/simple-tree/arrayNode.d.ts.map +1 -1
- package/dist/simple-tree/arrayNode.js +1 -2
- package/dist/simple-tree/arrayNode.js.map +1 -1
- package/dist/simple-tree/core/index.d.ts +1 -1
- package/dist/simple-tree/core/index.d.ts.map +1 -1
- package/dist/simple-tree/core/index.js +2 -1
- package/dist/simple-tree/core/index.js.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.d.ts +9 -0
- package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.js +14 -1
- package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/dist/simple-tree/core/treeNodeSchema.d.ts +6 -5
- 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/unhydratedFlexTree.d.ts.map +1 -1
- package/dist/simple-tree/core/unhydratedFlexTree.js +3 -1
- package/dist/simple-tree/core/unhydratedFlexTree.js.map +1 -1
- package/dist/simple-tree/core/withType.d.ts +3 -1
- package/dist/simple-tree/core/withType.d.ts.map +1 -1
- package/dist/simple-tree/core/withType.js.map +1 -1
- package/dist/simple-tree/flexList.d.ts.map +1 -0
- package/dist/simple-tree/flexList.js.map +1 -0
- package/dist/simple-tree/index.d.ts +6 -7
- package/dist/simple-tree/index.d.ts.map +1 -1
- package/dist/simple-tree/index.js +5 -3
- package/dist/simple-tree/index.js.map +1 -1
- package/dist/simple-tree/mapNode.d.ts.map +1 -1
- package/dist/simple-tree/mapNode.js +2 -3
- package/dist/simple-tree/mapNode.js.map +1 -1
- package/dist/simple-tree/objectNode.d.ts.map +1 -1
- package/dist/simple-tree/objectNode.js +3 -4
- package/dist/simple-tree/objectNode.js.map +1 -1
- package/dist/simple-tree/schemaTypes.d.ts +60 -7
- package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
- package/dist/simple-tree/schemaTypes.js +11 -6
- package/dist/simple-tree/schemaTypes.js.map +1 -1
- package/dist/simple-tree/toFlexSchema.d.ts.map +1 -1
- package/dist/simple-tree/toFlexSchema.js +13 -15
- package/dist/simple-tree/toFlexSchema.js.map +1 -1
- package/dist/simple-tree/toMapTree.d.ts +4 -2
- package/dist/simple-tree/toMapTree.d.ts.map +1 -1
- package/dist/simple-tree/toMapTree.js +3 -3
- package/dist/simple-tree/toMapTree.js.map +1 -1
- package/dist/simple-tree/treeNodeValid.d.ts.map +1 -1
- package/dist/simple-tree/treeNodeValid.js +2 -1
- package/dist/simple-tree/treeNodeValid.js.map +1 -1
- package/dist/treeFactory.d.ts +1 -0
- package/dist/treeFactory.d.ts.map +1 -1
- package/dist/treeFactory.js +1 -0
- package/dist/treeFactory.js.map +1 -1
- package/dist/util/utils.d.ts +10 -8
- package/dist/util/utils.d.ts.map +1 -1
- package/dist/util/utils.js.map +1 -1
- package/docs/main/detached-trees.md +8 -8
- package/lib/alpha.d.ts +29 -1
- package/lib/beta.d.ts +2 -0
- package/lib/codec/codec.d.ts +4 -4
- package/lib/codec/codec.js.map +1 -1
- package/lib/codec/noopValidator.d.ts +1 -1
- package/lib/codec/noopValidator.js +1 -1
- package/lib/codec/noopValidator.js.map +1 -1
- 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/tree/anchorSet.d.ts +159 -2
- package/lib/core/tree/anchorSet.d.ts.map +1 -1
- package/lib/core/tree/anchorSet.js +54 -12
- package/lib/core/tree/anchorSet.js.map +1 -1
- package/lib/external-utilities/typeboxValidator.d.ts +1 -1
- package/lib/external-utilities/typeboxValidator.js +1 -1
- package/lib/external-utilities/typeboxValidator.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/flex-tree/lazyField.d.ts +4 -0
- package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.js +36 -5
- package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/lib/feature-libraries/index.d.ts +0 -1
- package/lib/feature-libraries/index.d.ts.map +1 -1
- package/lib/feature-libraries/index.js +0 -1
- 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/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/treeCompressionUtils.d.ts +1 -1
- package/lib/feature-libraries/treeCompressionUtils.js +1 -1
- package/lib/feature-libraries/treeCompressionUtils.js.map +1 -1
- package/lib/index.d.ts +6 -5
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -3
- package/lib/index.js.map +1 -1
- package/lib/internalTypes.d.ts +2 -2
- package/lib/internalTypes.d.ts.map +1 -1
- package/lib/internalTypes.js.map +1 -1
- package/lib/legacy.d.ts +2 -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 +2 -0
- package/lib/shared-tree/index.d.ts +2 -1
- package/lib/shared-tree/index.d.ts.map +1 -1
- package/lib/shared-tree/index.js +2 -1
- package/lib/shared-tree/index.js.map +1 -1
- package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/lib/shared-tree/schematizingTreeView.js +2 -15
- package/lib/shared-tree/schematizingTreeView.js.map +1 -1
- package/lib/shared-tree/sharedTree.d.ts +24 -9
- package/lib/shared-tree/sharedTree.d.ts.map +1 -1
- package/lib/shared-tree/sharedTree.js +20 -9
- 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/treeApi.d.ts +6 -6
- package/lib/shared-tree/treeApi.d.ts.map +1 -1
- package/lib/shared-tree/treeApi.js.map +1 -1
- package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
- package/lib/shared-tree/treeCheckout.js +5 -4
- package/lib/shared-tree/treeCheckout.js.map +1 -1
- package/lib/shared-tree-core/branch.d.ts +2 -3
- package/lib/shared-tree-core/branch.d.ts.map +1 -1
- package/lib/shared-tree-core/branch.js +11 -12
- 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/conciseTree.d.ts +29 -0
- package/lib/simple-tree/api/conciseTree.d.ts.map +1 -0
- package/lib/simple-tree/api/conciseTree.js +21 -0
- package/lib/simple-tree/api/conciseTree.js.map +1 -0
- package/lib/simple-tree/api/customTree.d.ts +44 -0
- package/lib/simple-tree/api/customTree.d.ts.map +1 -0
- package/lib/simple-tree/api/customTree.js +59 -0
- package/lib/simple-tree/api/customTree.js.map +1 -0
- package/lib/simple-tree/api/index.d.ts +7 -2
- 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/schemaCreationUtilities.d.ts +41 -26
- package/lib/simple-tree/api/schemaCreationUtilities.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaCreationUtilities.js +43 -15
- package/lib/simple-tree/api/schemaCreationUtilities.js.map +1 -1
- package/lib/simple-tree/api/schemaFactory.d.ts +1 -2
- package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactory.js +1 -1
- package/lib/simple-tree/api/schemaFactory.js.map +1 -1
- package/lib/simple-tree/api/schemaFactoryRecursive.d.ts +1 -2
- 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/storedSchema.d.ts +78 -0
- package/lib/simple-tree/api/storedSchema.d.ts.map +1 -0
- package/lib/simple-tree/api/storedSchema.js +101 -0
- package/lib/simple-tree/api/storedSchema.js.map +1 -0
- package/lib/simple-tree/api/testRecursiveDomain.d.ts +10 -10
- package/lib/simple-tree/api/tree.d.ts +12 -3
- package/lib/simple-tree/api/tree.d.ts.map +1 -1
- package/lib/simple-tree/api/tree.js.map +1 -1
- package/lib/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/lib/simple-tree/api/treeNodeApi.js +3 -3
- package/lib/simple-tree/api/treeNodeApi.js.map +1 -1
- package/lib/simple-tree/{typesUnsafe.d.ts → api/typesUnsafe.d.ts} +58 -10
- package/lib/simple-tree/api/typesUnsafe.d.ts.map +1 -0
- package/lib/simple-tree/api/typesUnsafe.js.map +1 -0
- package/lib/simple-tree/api/verboseTree.d.ts +6 -20
- package/lib/simple-tree/api/verboseTree.d.ts.map +1 -1
- package/lib/simple-tree/api/verboseTree.js +11 -49
- package/lib/simple-tree/api/verboseTree.js.map +1 -1
- package/lib/simple-tree/arrayNode.d.ts +14 -3
- package/lib/simple-tree/arrayNode.d.ts.map +1 -1
- package/lib/simple-tree/arrayNode.js +1 -2
- package/lib/simple-tree/arrayNode.js.map +1 -1
- package/lib/simple-tree/core/index.d.ts +1 -1
- package/lib/simple-tree/core/index.d.ts.map +1 -1
- package/lib/simple-tree/core/index.js +1 -1
- package/lib/simple-tree/core/index.js.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.d.ts +9 -0
- package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.js +12 -0
- package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/lib/simple-tree/core/treeNodeSchema.d.ts +6 -5
- 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/unhydratedFlexTree.d.ts.map +1 -1
- package/lib/simple-tree/core/unhydratedFlexTree.js +3 -1
- package/lib/simple-tree/core/unhydratedFlexTree.js.map +1 -1
- package/lib/simple-tree/core/withType.d.ts +3 -1
- package/lib/simple-tree/core/withType.d.ts.map +1 -1
- package/lib/simple-tree/core/withType.js.map +1 -1
- package/lib/simple-tree/flexList.d.ts.map +1 -0
- package/lib/simple-tree/flexList.js.map +1 -0
- package/lib/simple-tree/index.d.ts +6 -7
- 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/mapNode.d.ts.map +1 -1
- package/lib/simple-tree/mapNode.js +1 -2
- package/lib/simple-tree/mapNode.js.map +1 -1
- package/lib/simple-tree/objectNode.d.ts.map +1 -1
- package/lib/simple-tree/objectNode.js +1 -2
- package/lib/simple-tree/objectNode.js.map +1 -1
- package/lib/simple-tree/schemaTypes.d.ts +60 -7
- package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
- package/lib/simple-tree/schemaTypes.js +6 -1
- package/lib/simple-tree/schemaTypes.js.map +1 -1
- package/lib/simple-tree/toFlexSchema.d.ts.map +1 -1
- package/lib/simple-tree/toFlexSchema.js +1 -3
- package/lib/simple-tree/toFlexSchema.js.map +1 -1
- package/lib/simple-tree/toMapTree.d.ts +4 -2
- package/lib/simple-tree/toMapTree.d.ts.map +1 -1
- package/lib/simple-tree/toMapTree.js +3 -3
- package/lib/simple-tree/toMapTree.js.map +1 -1
- package/lib/simple-tree/treeNodeValid.d.ts.map +1 -1
- package/lib/simple-tree/treeNodeValid.js +2 -1
- package/lib/simple-tree/treeNodeValid.js.map +1 -1
- package/lib/treeFactory.d.ts +1 -0
- package/lib/treeFactory.d.ts.map +1 -1
- package/lib/treeFactory.js +1 -0
- package/lib/treeFactory.js.map +1 -1
- package/lib/util/utils.d.ts +10 -8
- package/lib/util/utils.d.ts.map +1 -1
- package/lib/util/utils.js.map +1 -1
- package/package.json +44 -27
- package/src/codec/codec.ts +4 -4
- package/src/codec/noopValidator.ts +1 -1
- 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/tree/anchorSet.ts +63 -13
- package/src/external-utilities/typeboxValidator.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/flex-tree/lazyField.ts +44 -7
- package/src/feature-libraries/index.ts +0 -10
- 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/treeCompressionUtils.ts +1 -1
- package/src/index.ts +26 -6
- package/src/internalTypes.ts +4 -1
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/index.ts +5 -0
- package/src/shared-tree/schematizingTreeView.ts +7 -16
- package/src/shared-tree/sharedTree.ts +55 -23
- package/src/shared-tree/sharedTreeChangeFamily.ts +5 -1
- package/src/shared-tree/sharedTreeEditBuilder.ts +23 -12
- package/src/shared-tree/treeApi.ts +19 -9
- package/src/shared-tree/treeCheckout.ts +7 -6
- package/src/shared-tree-core/branch.ts +11 -14
- 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/conciseTree.ts +58 -0
- package/src/simple-tree/api/customTree.ts +119 -0
- package/src/simple-tree/api/index.ts +39 -1
- package/src/simple-tree/api/schemaCreationUtilities.ts +55 -36
- package/src/simple-tree/api/schemaFactory.ts +4 -6
- package/src/simple-tree/api/schemaFactoryRecursive.ts +1 -2
- package/src/simple-tree/api/storedSchema.ts +126 -0
- package/src/simple-tree/api/tree.ts +24 -2
- package/src/simple-tree/api/treeNodeApi.ts +3 -8
- package/src/simple-tree/{typesUnsafe.ts → api/typesUnsafe.ts} +95 -21
- package/src/simple-tree/api/verboseTree.ts +21 -76
- package/src/simple-tree/arrayNode.ts +35 -15
- package/src/simple-tree/core/index.ts +1 -0
- package/src/simple-tree/core/treeNodeKernel.ts +13 -0
- package/src/simple-tree/core/treeNodeSchema.ts +7 -5
- package/src/simple-tree/core/unhydratedFlexTree.ts +6 -1
- package/src/simple-tree/core/withType.ts +10 -1
- package/src/simple-tree/index.ts +41 -21
- package/src/simple-tree/mapNode.ts +1 -1
- package/src/simple-tree/objectNode.ts +1 -1
- package/src/simple-tree/schemaTypes.ts +70 -11
- package/src/simple-tree/toFlexSchema.ts +1 -3
- package/src/simple-tree/toMapTree.ts +7 -4
- package/src/simple-tree/treeNodeValid.ts +2 -1
- package/src/treeFactory.ts +1 -0
- package/src/util/utils.ts +10 -8
- package/dist/feature-libraries/flex-tree/unboxed.d.ts +0 -12
- package/dist/feature-libraries/flex-tree/unboxed.d.ts.map +0 -1
- package/dist/feature-libraries/flex-tree/unboxed.js +0 -20
- package/dist/feature-libraries/flex-tree/unboxed.js.map +0 -1
- package/dist/feature-libraries/typed-schema/flexList.d.ts.map +0 -1
- package/dist/feature-libraries/typed-schema/flexList.js.map +0 -1
- package/dist/feature-libraries/typed-schema/index.d.ts +0 -7
- package/dist/feature-libraries/typed-schema/index.d.ts.map +0 -1
- package/dist/feature-libraries/typed-schema/index.js +0 -12
- package/dist/feature-libraries/typed-schema/index.js.map +0 -1
- package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts +0 -14
- package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +0 -1
- package/dist/feature-libraries/typed-schema/typedTreeSchema.js +0 -7
- package/dist/feature-libraries/typed-schema/typedTreeSchema.js.map +0 -1
- package/dist/simple-tree/proxyBinding.d.ts +0 -15
- package/dist/simple-tree/proxyBinding.d.ts.map +0 -1
- package/dist/simple-tree/proxyBinding.js +0 -22
- package/dist/simple-tree/proxyBinding.js.map +0 -1
- package/dist/simple-tree/typesUnsafe.d.ts.map +0 -1
- package/dist/simple-tree/typesUnsafe.js.map +0 -1
- package/lib/feature-libraries/flex-tree/unboxed.d.ts +0 -12
- package/lib/feature-libraries/flex-tree/unboxed.d.ts.map +0 -1
- package/lib/feature-libraries/flex-tree/unboxed.js +0 -16
- package/lib/feature-libraries/flex-tree/unboxed.js.map +0 -1
- package/lib/feature-libraries/typed-schema/flexList.d.ts.map +0 -1
- package/lib/feature-libraries/typed-schema/flexList.js.map +0 -1
- package/lib/feature-libraries/typed-schema/index.d.ts +0 -7
- package/lib/feature-libraries/typed-schema/index.d.ts.map +0 -1
- package/lib/feature-libraries/typed-schema/index.js +0 -6
- package/lib/feature-libraries/typed-schema/index.js.map +0 -1
- package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts +0 -14
- package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +0 -1
- package/lib/feature-libraries/typed-schema/typedTreeSchema.js +0 -6
- package/lib/feature-libraries/typed-schema/typedTreeSchema.js.map +0 -1
- package/lib/simple-tree/proxyBinding.d.ts +0 -15
- package/lib/simple-tree/proxyBinding.d.ts.map +0 -1
- package/lib/simple-tree/proxyBinding.js +0 -18
- package/lib/simple-tree/proxyBinding.js.map +0 -1
- package/lib/simple-tree/typesUnsafe.d.ts.map +0 -1
- package/lib/simple-tree/typesUnsafe.js.map +0 -1
- package/src/feature-libraries/flex-tree/unboxed.ts +0 -24
- package/src/feature-libraries/typed-schema/README.md +0 -6
- package/src/feature-libraries/typed-schema/index.ts +0 -16
- package/src/feature-libraries/typed-schema/typedTreeSchema.ts +0 -14
- package/src/simple-tree/proxyBinding.ts +0 -20
- /package/dist/simple-tree/{typesUnsafe.js → api/typesUnsafe.js} +0 -0
- /package/dist/{feature-libraries/typed-schema → simple-tree}/flexList.d.ts +0 -0
- /package/dist/{feature-libraries/typed-schema → simple-tree}/flexList.js +0 -0
- /package/lib/simple-tree/{typesUnsafe.js → api/typesUnsafe.js} +0 -0
- /package/lib/{feature-libraries/typed-schema → simple-tree}/flexList.d.ts +0 -0
- /package/lib/{feature-libraries/typed-schema → simple-tree}/flexList.js +0 -0
- /package/src/simple-tree/{ProxyBinding.md → core/TreeNodeBinding.md} +0 -0
- /package/src/{feature-libraries/typed-schema → simple-tree}/flexList.ts +0 -0
|
@@ -31,7 +31,6 @@ import {
|
|
|
31
31
|
type TaggedChange,
|
|
32
32
|
type UpPath,
|
|
33
33
|
isEmptyFieldChanges,
|
|
34
|
-
makeAnonChange,
|
|
35
34
|
makeDetachedNodeId,
|
|
36
35
|
mapCursorField,
|
|
37
36
|
replaceAtomRevisions,
|
|
@@ -39,6 +38,8 @@ import {
|
|
|
39
38
|
areEqualChangeAtomIds,
|
|
40
39
|
type ChangeAtomId,
|
|
41
40
|
areEqualChangeAtomIdOpts,
|
|
41
|
+
tagChange,
|
|
42
|
+
makeAnonChange,
|
|
42
43
|
} from "../../core/index.js";
|
|
43
44
|
import {
|
|
44
45
|
type IdAllocationState,
|
|
@@ -226,19 +227,18 @@ export class ModularChangeFamily
|
|
|
226
227
|
change2,
|
|
227
228
|
);
|
|
228
229
|
|
|
229
|
-
return makeModularChangeset(
|
|
230
|
+
return makeModularChangeset({
|
|
230
231
|
fieldChanges,
|
|
231
232
|
nodeChanges,
|
|
232
233
|
nodeToParent,
|
|
233
234
|
nodeAliases,
|
|
234
235
|
crossFieldKeys,
|
|
235
|
-
idState.maxId,
|
|
236
|
-
revInfos,
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
);
|
|
236
|
+
maxId: idState.maxId,
|
|
237
|
+
revisions: revInfos,
|
|
238
|
+
builds: allBuilds,
|
|
239
|
+
destroys: allDestroys,
|
|
240
|
+
refreshers: allRefreshers,
|
|
241
|
+
});
|
|
242
242
|
}
|
|
243
243
|
|
|
244
244
|
private composeAllFields(
|
|
@@ -676,11 +676,13 @@ export class ModularChangeFamily
|
|
|
676
676
|
/**
|
|
677
677
|
* @param change - The change to invert.
|
|
678
678
|
* @param isRollback - Whether the inverted change is meant to rollback a change on a branch as is the case when
|
|
679
|
+
* @param revisionForInvert - The revision for the invert changeset.
|
|
679
680
|
* performing a sandwich rebase.
|
|
680
681
|
*/
|
|
681
682
|
public invert(
|
|
682
683
|
change: TaggedChange<ModularChangeset>,
|
|
683
684
|
isRollback: boolean,
|
|
685
|
+
revisionForInvert: RevisionTag,
|
|
684
686
|
): ModularChangeset {
|
|
685
687
|
// Rollback changesets destroy the nodes created by the change being rolled back.
|
|
686
688
|
const destroys = isRollback ? invertBuilds(change.change.builds) : undefined;
|
|
@@ -691,19 +693,16 @@ export class ModularChangeFamily
|
|
|
691
693
|
0x89a /* Unexpected destroys in change to invert */,
|
|
692
694
|
);
|
|
693
695
|
|
|
696
|
+
const revInfos: RevisionInfo[] = isRollback
|
|
697
|
+
? [{ revision: revisionForInvert, rollbackOf: change.revision }]
|
|
698
|
+
: [{ revision: revisionForInvert }];
|
|
699
|
+
|
|
694
700
|
if (hasConflicts(change.change)) {
|
|
695
|
-
return makeModularChangeset(
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
undefined,
|
|
699
|
-
undefined,
|
|
700
|
-
undefined,
|
|
701
|
-
change.change.maxId,
|
|
702
|
-
[],
|
|
703
|
-
undefined,
|
|
704
|
-
undefined,
|
|
701
|
+
return makeModularChangeset({
|
|
702
|
+
maxId: change.change.maxId as number,
|
|
703
|
+
revisions: revInfos,
|
|
705
704
|
destroys,
|
|
706
|
-
);
|
|
705
|
+
});
|
|
707
706
|
}
|
|
708
707
|
|
|
709
708
|
const genId: IdAllocator = idAllocatorFromMaxId(change.change.maxId ?? -1);
|
|
@@ -713,9 +712,8 @@ export class ModularChangeFamily
|
|
|
713
712
|
originalFieldToContext: new Map(),
|
|
714
713
|
invertedNodeToParent: brand(change.change.nodeToParent.clone()),
|
|
715
714
|
};
|
|
716
|
-
|
|
717
|
-
const
|
|
718
|
-
const revisionMetadata = revisionMetadataSourceFromInfo(revInfos);
|
|
715
|
+
const { revInfos: oldRevInfos } = getRevInfoFromTaggedChanges([change]);
|
|
716
|
+
const revisionMetadata = revisionMetadataSourceFromInfo(oldRevInfos);
|
|
719
717
|
|
|
720
718
|
const invertedFields = this.invertFieldMap(
|
|
721
719
|
change.change.fieldChanges,
|
|
@@ -724,6 +722,7 @@ export class ModularChangeFamily
|
|
|
724
722
|
genId,
|
|
725
723
|
crossFieldTable,
|
|
726
724
|
revisionMetadata,
|
|
725
|
+
revisionForInvert,
|
|
727
726
|
);
|
|
728
727
|
|
|
729
728
|
const invertedNodes: ChangeAtomIdBTree<NodeChangeset> = newTupleBTree();
|
|
@@ -737,6 +736,7 @@ export class ModularChangeFamily
|
|
|
737
736
|
genId,
|
|
738
737
|
crossFieldTable,
|
|
739
738
|
revisionMetadata,
|
|
739
|
+
revisionForInvert,
|
|
740
740
|
),
|
|
741
741
|
);
|
|
742
742
|
});
|
|
@@ -760,6 +760,7 @@ export class ModularChangeFamily
|
|
|
760
760
|
originalFieldChange,
|
|
761
761
|
isRollback,
|
|
762
762
|
genId,
|
|
763
|
+
revisionForInvert,
|
|
763
764
|
new InvertManager(crossFieldTable, fieldChange, fieldId),
|
|
764
765
|
revisionMetadata,
|
|
765
766
|
);
|
|
@@ -769,18 +770,17 @@ export class ModularChangeFamily
|
|
|
769
770
|
|
|
770
771
|
const crossFieldKeys = this.makeCrossFieldKeyTable(invertedFields, invertedNodes);
|
|
771
772
|
|
|
772
|
-
return makeModularChangeset(
|
|
773
|
-
invertedFields,
|
|
774
|
-
invertedNodes,
|
|
775
|
-
crossFieldTable.invertedNodeToParent,
|
|
776
|
-
change.change.nodeAliases,
|
|
773
|
+
return makeModularChangeset({
|
|
774
|
+
fieldChanges: invertedFields,
|
|
775
|
+
nodeChanges: invertedNodes,
|
|
776
|
+
nodeToParent: crossFieldTable.invertedNodeToParent,
|
|
777
|
+
nodeAliases: change.change.nodeAliases,
|
|
777
778
|
crossFieldKeys,
|
|
778
|
-
genId.getMaxId(),
|
|
779
|
-
|
|
780
|
-
change.change.constraintViolationCount,
|
|
781
|
-
undefined,
|
|
779
|
+
maxId: genId.getMaxId(),
|
|
780
|
+
revisions: revInfos,
|
|
781
|
+
constraintViolationCount: change.change.constraintViolationCount,
|
|
782
782
|
destroys,
|
|
783
|
-
);
|
|
783
|
+
});
|
|
784
784
|
}
|
|
785
785
|
|
|
786
786
|
private invertFieldMap(
|
|
@@ -790,6 +790,7 @@ export class ModularChangeFamily
|
|
|
790
790
|
genId: IdAllocator,
|
|
791
791
|
crossFieldTable: InvertTable,
|
|
792
792
|
revisionMetadata: RevisionMetadataSource,
|
|
793
|
+
revisionForInvert: RevisionTag,
|
|
793
794
|
): FieldChangeMap {
|
|
794
795
|
const invertedFields: FieldChangeMap = new Map();
|
|
795
796
|
|
|
@@ -799,7 +800,14 @@ export class ModularChangeFamily
|
|
|
799
800
|
const invertedChange = getChangeHandler(
|
|
800
801
|
this.fieldKinds,
|
|
801
802
|
fieldChange.fieldKind,
|
|
802
|
-
).rebaser.invert(
|
|
803
|
+
).rebaser.invert(
|
|
804
|
+
fieldChange.change,
|
|
805
|
+
isRollback,
|
|
806
|
+
genId,
|
|
807
|
+
revisionForInvert,
|
|
808
|
+
manager,
|
|
809
|
+
revisionMetadata,
|
|
810
|
+
);
|
|
803
811
|
|
|
804
812
|
const invertedFieldChange: FieldChange = {
|
|
805
813
|
...fieldChange,
|
|
@@ -823,6 +831,7 @@ export class ModularChangeFamily
|
|
|
823
831
|
genId: IdAllocator,
|
|
824
832
|
crossFieldTable: InvertTable,
|
|
825
833
|
revisionMetadata: RevisionMetadataSource,
|
|
834
|
+
revisionForInvert: RevisionTag,
|
|
826
835
|
): NodeChangeset {
|
|
827
836
|
const inverse: NodeChangeset = {};
|
|
828
837
|
|
|
@@ -834,6 +843,7 @@ export class ModularChangeFamily
|
|
|
834
843
|
genId,
|
|
835
844
|
crossFieldTable,
|
|
836
845
|
revisionMetadata,
|
|
846
|
+
revisionForInvert,
|
|
837
847
|
);
|
|
838
848
|
}
|
|
839
849
|
|
|
@@ -904,19 +914,19 @@ export class ModularChangeFamily
|
|
|
904
914
|
rebasedNodes,
|
|
905
915
|
);
|
|
906
916
|
|
|
907
|
-
const rebased = makeModularChangeset(
|
|
908
|
-
this.pruneFieldMap(rebasedFields, rebasedNodes),
|
|
909
|
-
rebasedNodes,
|
|
910
|
-
crossFieldTable.rebasedNodeToParent,
|
|
911
|
-
change.nodeAliases,
|
|
912
|
-
crossFieldTable.rebasedCrossFieldKeys,
|
|
913
|
-
idState.maxId,
|
|
914
|
-
change.revisions,
|
|
915
|
-
constraintState.violationCount,
|
|
916
|
-
change.builds,
|
|
917
|
-
change.destroys,
|
|
918
|
-
change.refreshers,
|
|
919
|
-
);
|
|
917
|
+
const rebased = makeModularChangeset({
|
|
918
|
+
fieldChanges: this.pruneFieldMap(rebasedFields, rebasedNodes),
|
|
919
|
+
nodeChanges: rebasedNodes,
|
|
920
|
+
nodeToParent: crossFieldTable.rebasedNodeToParent,
|
|
921
|
+
nodeAliases: change.nodeAliases,
|
|
922
|
+
crossFieldKeys: crossFieldTable.rebasedCrossFieldKeys,
|
|
923
|
+
maxId: idState.maxId,
|
|
924
|
+
revisions: change.revisions,
|
|
925
|
+
constraintViolationCount: constraintState.violationCount,
|
|
926
|
+
builds: change.builds,
|
|
927
|
+
destroys: change.destroys,
|
|
928
|
+
refreshers: change.refreshers,
|
|
929
|
+
});
|
|
920
930
|
|
|
921
931
|
return rebased;
|
|
922
932
|
}
|
|
@@ -1455,7 +1465,7 @@ export class ModularChangeFamily
|
|
|
1455
1465
|
rollbackOf?: RevisionTag,
|
|
1456
1466
|
): ModularChangeset {
|
|
1457
1467
|
const oldRevisions = new Set(
|
|
1458
|
-
change.revisions === undefined
|
|
1468
|
+
change.revisions === undefined || change.revisions.length === 0
|
|
1459
1469
|
? [undefined]
|
|
1460
1470
|
: change.revisions.map((revInfo) => revInfo.revision),
|
|
1461
1471
|
);
|
|
@@ -1595,7 +1605,9 @@ export class ModularChangeFamily
|
|
|
1595
1605
|
}
|
|
1596
1606
|
}
|
|
1597
1607
|
|
|
1598
|
-
public buildEditor(
|
|
1608
|
+
public buildEditor(
|
|
1609
|
+
changeReceiver: (change: TaggedChange<ModularChangeset>) => void,
|
|
1610
|
+
): ModularEditBuilder {
|
|
1599
1611
|
return new ModularEditBuilder(this, this.fieldKinds, changeReceiver);
|
|
1600
1612
|
}
|
|
1601
1613
|
|
|
@@ -1893,19 +1905,19 @@ export function updateRefreshers(
|
|
|
1893
1905
|
destroys,
|
|
1894
1906
|
} = change;
|
|
1895
1907
|
|
|
1896
|
-
return makeModularChangeset(
|
|
1908
|
+
return makeModularChangeset({
|
|
1897
1909
|
fieldChanges,
|
|
1898
1910
|
nodeChanges,
|
|
1899
|
-
change.nodeToParent,
|
|
1900
|
-
change.nodeAliases,
|
|
1901
|
-
change.crossFieldKeys,
|
|
1902
|
-
maxId,
|
|
1911
|
+
nodeToParent: change.nodeToParent,
|
|
1912
|
+
nodeAliases: change.nodeAliases,
|
|
1913
|
+
crossFieldKeys: change.crossFieldKeys,
|
|
1914
|
+
maxId: maxId as number,
|
|
1903
1915
|
revisions,
|
|
1904
1916
|
constraintViolationCount,
|
|
1905
1917
|
builds,
|
|
1906
1918
|
destroys,
|
|
1907
1919
|
refreshers,
|
|
1908
|
-
);
|
|
1920
|
+
});
|
|
1909
1921
|
}
|
|
1910
1922
|
|
|
1911
1923
|
/**
|
|
@@ -2477,43 +2489,47 @@ class ComposeManager extends CrossFieldManagerI<FieldChange> {
|
|
|
2477
2489
|
}
|
|
2478
2490
|
|
|
2479
2491
|
function makeModularChangeset(
|
|
2480
|
-
|
|
2481
|
-
|
|
2482
|
-
|
|
2483
|
-
|
|
2484
|
-
|
|
2485
|
-
|
|
2486
|
-
|
|
2487
|
-
|
|
2488
|
-
|
|
2489
|
-
|
|
2490
|
-
|
|
2492
|
+
props: {
|
|
2493
|
+
fieldChanges?: FieldChangeMap;
|
|
2494
|
+
nodeChanges?: ChangeAtomIdBTree<NodeChangeset>;
|
|
2495
|
+
nodeToParent?: ChangeAtomIdBTree<FieldId>;
|
|
2496
|
+
nodeAliases?: ChangeAtomIdBTree<NodeId>;
|
|
2497
|
+
crossFieldKeys?: CrossFieldKeyTable;
|
|
2498
|
+
maxId: number;
|
|
2499
|
+
revisions?: readonly RevisionInfo[];
|
|
2500
|
+
constraintViolationCount?: number;
|
|
2501
|
+
builds?: ChangeAtomIdBTree<TreeChunk>;
|
|
2502
|
+
destroys?: ChangeAtomIdBTree<number>;
|
|
2503
|
+
refreshers?: ChangeAtomIdBTree<TreeChunk>;
|
|
2504
|
+
} = {
|
|
2505
|
+
maxId: -1,
|
|
2506
|
+
},
|
|
2491
2507
|
): ModularChangeset {
|
|
2492
2508
|
const changeset: Mutable<ModularChangeset> = {
|
|
2493
|
-
fieldChanges: fieldChanges ?? new Map(),
|
|
2494
|
-
nodeChanges: nodeChanges ?? newTupleBTree(),
|
|
2495
|
-
nodeToParent: nodeToParent ?? newTupleBTree(),
|
|
2496
|
-
nodeAliases: nodeAliases ?? newTupleBTree(),
|
|
2497
|
-
crossFieldKeys: crossFieldKeys ?? newCrossFieldKeyTable(),
|
|
2509
|
+
fieldChanges: props.fieldChanges ?? new Map(),
|
|
2510
|
+
nodeChanges: props.nodeChanges ?? newTupleBTree(),
|
|
2511
|
+
nodeToParent: props.nodeToParent ?? newTupleBTree(),
|
|
2512
|
+
nodeAliases: props.nodeAliases ?? newTupleBTree(),
|
|
2513
|
+
crossFieldKeys: props.crossFieldKeys ?? newCrossFieldKeyTable(),
|
|
2498
2514
|
};
|
|
2499
2515
|
|
|
2500
|
-
if (revisions !== undefined && revisions.length > 0) {
|
|
2501
|
-
changeset.revisions = revisions;
|
|
2516
|
+
if (props.revisions !== undefined && props.revisions.length > 0) {
|
|
2517
|
+
changeset.revisions = props.revisions;
|
|
2502
2518
|
}
|
|
2503
|
-
if (maxId >= 0) {
|
|
2504
|
-
changeset.maxId = brand(maxId);
|
|
2519
|
+
if (props.maxId >= 0) {
|
|
2520
|
+
changeset.maxId = brand(props.maxId);
|
|
2505
2521
|
}
|
|
2506
|
-
if (constraintViolationCount !== undefined && constraintViolationCount > 0) {
|
|
2507
|
-
changeset.constraintViolationCount = constraintViolationCount;
|
|
2522
|
+
if (props.constraintViolationCount !== undefined && props.constraintViolationCount > 0) {
|
|
2523
|
+
changeset.constraintViolationCount = props.constraintViolationCount;
|
|
2508
2524
|
}
|
|
2509
|
-
if (builds !== undefined && builds.size > 0) {
|
|
2510
|
-
changeset.builds = builds;
|
|
2525
|
+
if (props.builds !== undefined && props.builds.size > 0) {
|
|
2526
|
+
changeset.builds = props.builds;
|
|
2511
2527
|
}
|
|
2512
|
-
if (destroys !== undefined && destroys.size > 0) {
|
|
2513
|
-
changeset.destroys = destroys;
|
|
2528
|
+
if (props.destroys !== undefined && props.destroys.size > 0) {
|
|
2529
|
+
changeset.destroys = props.destroys;
|
|
2514
2530
|
}
|
|
2515
|
-
if (refreshers !== undefined && refreshers.size > 0) {
|
|
2516
|
-
changeset.refreshers = refreshers;
|
|
2531
|
+
if (props.refreshers !== undefined && props.refreshers.size > 0) {
|
|
2532
|
+
changeset.refreshers = props.refreshers;
|
|
2517
2533
|
}
|
|
2518
2534
|
return changeset;
|
|
2519
2535
|
}
|
|
@@ -2525,7 +2541,7 @@ export class ModularEditBuilder extends EditBuilder<ModularChangeset> {
|
|
|
2525
2541
|
public constructor(
|
|
2526
2542
|
family: ChangeFamily<ChangeFamilyEditor, ModularChangeset>,
|
|
2527
2543
|
private readonly fieldKinds: ReadonlyMap<FieldKindIdentifier, FieldKindWithEditor>,
|
|
2528
|
-
changeReceiver: (change: ModularChangeset) => void,
|
|
2544
|
+
changeReceiver: (change: TaggedChange<ModularChangeset>) => void,
|
|
2529
2545
|
) {
|
|
2530
2546
|
super(family, changeReceiver);
|
|
2531
2547
|
this.idAllocator = idAllocatorFromMaxId();
|
|
@@ -2549,15 +2565,17 @@ export class ModularEditBuilder extends EditBuilder<ModularChangeset> {
|
|
|
2549
2565
|
/**
|
|
2550
2566
|
* @param firstId - The ID to associate with the first node
|
|
2551
2567
|
* @param content - The node(s) to build. Can be in either Field or Node mode.
|
|
2568
|
+
* @param revision - The revision to use for the build.
|
|
2552
2569
|
* @returns A description of the edit that can be passed to `submitChanges`.
|
|
2553
2570
|
*/
|
|
2554
2571
|
public buildTrees(
|
|
2555
2572
|
firstId: ChangesetLocalId,
|
|
2556
2573
|
content: ITreeCursorSynchronous,
|
|
2574
|
+
revision: RevisionTag,
|
|
2557
2575
|
idCompressor?: IIdCompressor,
|
|
2558
2576
|
): GlobalEditDescription {
|
|
2559
2577
|
if (content.mode === CursorLocationType.Fields && content.getFieldLength() === 0) {
|
|
2560
|
-
return { type: "global" };
|
|
2578
|
+
return { type: "global", revision };
|
|
2561
2579
|
}
|
|
2562
2580
|
const builds: ChangeAtomIdBTree<TreeChunk> = newTupleBTree();
|
|
2563
2581
|
const chunkCompressor = {
|
|
@@ -2568,11 +2586,12 @@ export class ModularEditBuilder extends EditBuilder<ModularChangeset> {
|
|
|
2568
2586
|
content.mode === CursorLocationType.Fields
|
|
2569
2587
|
? chunkFieldSingle(content, chunkCompressor)
|
|
2570
2588
|
: chunkTree(content, chunkCompressor);
|
|
2571
|
-
builds.set([
|
|
2589
|
+
builds.set([revision, firstId], chunk);
|
|
2572
2590
|
|
|
2573
2591
|
return {
|
|
2574
2592
|
type: "global",
|
|
2575
2593
|
builds,
|
|
2594
|
+
revision,
|
|
2576
2595
|
};
|
|
2577
2596
|
}
|
|
2578
2597
|
|
|
@@ -2581,67 +2600,70 @@ export class ModularEditBuilder extends EditBuilder<ModularChangeset> {
|
|
|
2581
2600
|
* @param field - the field which is being edited
|
|
2582
2601
|
* @param fieldKind - the kind of the field
|
|
2583
2602
|
* @param change - the change to the field
|
|
2584
|
-
* @param
|
|
2603
|
+
* @param revision - the revision of the change
|
|
2585
2604
|
*/
|
|
2586
2605
|
public submitChange(
|
|
2587
2606
|
field: FieldUpPath,
|
|
2588
2607
|
fieldKind: FieldKindIdentifier,
|
|
2589
2608
|
change: FieldChangeset,
|
|
2609
|
+
revision: RevisionTag,
|
|
2590
2610
|
): void {
|
|
2591
|
-
const
|
|
2611
|
+
const localCrossFieldKeys = getChangeHandler(this.fieldKinds, fieldKind).getCrossFieldKeys(
|
|
2592
2612
|
change,
|
|
2593
2613
|
);
|
|
2594
2614
|
|
|
2595
|
-
const modularChange = buildModularChangesetFromField(
|
|
2596
|
-
field,
|
|
2597
|
-
{ fieldKind, change },
|
|
2598
|
-
newTupleBTree(),
|
|
2599
|
-
newTupleBTree(),
|
|
2600
|
-
newCrossFieldKeyTable(),
|
|
2601
|
-
this.idAllocator,
|
|
2602
|
-
|
|
2603
|
-
|
|
2604
|
-
|
|
2615
|
+
const modularChange = buildModularChangesetFromField({
|
|
2616
|
+
path: field,
|
|
2617
|
+
fieldChange: { fieldKind, change },
|
|
2618
|
+
nodeChanges: newTupleBTree(),
|
|
2619
|
+
nodeToParent: newTupleBTree(),
|
|
2620
|
+
crossFieldKeys: newCrossFieldKeyTable(),
|
|
2621
|
+
idAllocator: this.idAllocator,
|
|
2622
|
+
localCrossFieldKeys,
|
|
2623
|
+
revision,
|
|
2624
|
+
});
|
|
2625
|
+
this.applyChange(tagChange(modularChange, revision));
|
|
2605
2626
|
}
|
|
2606
2627
|
|
|
2607
|
-
public submitChanges(changes: EditDescription[]): void {
|
|
2628
|
+
public submitChanges(changes: EditDescription[], revision: RevisionTag): void {
|
|
2608
2629
|
const modularChange = this.buildChanges(changes);
|
|
2609
|
-
this.applyChange(modularChange);
|
|
2630
|
+
this.applyChange(tagChange(modularChange, revision));
|
|
2610
2631
|
}
|
|
2611
2632
|
|
|
2612
2633
|
public buildChanges(changes: EditDescription[]): ModularChangeset {
|
|
2613
|
-
const
|
|
2614
|
-
|
|
2634
|
+
const revisions: Set<RevisionTag> = new Set();
|
|
2635
|
+
const changeMaps = changes.map((change) => {
|
|
2636
|
+
revisions.add(change.revision);
|
|
2637
|
+
return makeAnonChange(
|
|
2615
2638
|
change.type === "global"
|
|
2616
|
-
? makeModularChangeset(
|
|
2617
|
-
|
|
2618
|
-
|
|
2619
|
-
|
|
2620
|
-
|
|
2621
|
-
|
|
2622
|
-
|
|
2623
|
-
|
|
2624
|
-
undefined,
|
|
2625
|
-
change.builds,
|
|
2626
|
-
)
|
|
2627
|
-
: buildModularChangesetFromField(
|
|
2628
|
-
change.field,
|
|
2629
|
-
{
|
|
2639
|
+
? makeModularChangeset({
|
|
2640
|
+
maxId: this.idAllocator.getMaxId(),
|
|
2641
|
+
builds: change.builds,
|
|
2642
|
+
revisions: [{ revision: change.revision }],
|
|
2643
|
+
})
|
|
2644
|
+
: buildModularChangesetFromField({
|
|
2645
|
+
path: change.field,
|
|
2646
|
+
fieldChange: {
|
|
2630
2647
|
fieldKind: change.fieldKind,
|
|
2631
2648
|
change: change.change,
|
|
2632
2649
|
},
|
|
2633
|
-
newTupleBTree(),
|
|
2634
|
-
newTupleBTree(),
|
|
2635
|
-
newCrossFieldKeyTable(),
|
|
2636
|
-
this.idAllocator,
|
|
2637
|
-
getChangeHandler(
|
|
2638
|
-
|
|
2639
|
-
|
|
2640
|
-
|
|
2641
|
-
|
|
2642
|
-
|
|
2643
|
-
|
|
2644
|
-
|
|
2650
|
+
nodeChanges: newTupleBTree(),
|
|
2651
|
+
nodeToParent: newTupleBTree(),
|
|
2652
|
+
crossFieldKeys: newCrossFieldKeyTable(),
|
|
2653
|
+
idAllocator: this.idAllocator,
|
|
2654
|
+
localCrossFieldKeys: getChangeHandler(
|
|
2655
|
+
this.fieldKinds,
|
|
2656
|
+
change.fieldKind,
|
|
2657
|
+
).getCrossFieldKeys(change.change),
|
|
2658
|
+
revision: change.revision,
|
|
2659
|
+
}),
|
|
2660
|
+
);
|
|
2661
|
+
});
|
|
2662
|
+
const revInfo = Array.from(revisions).map((revision) => ({ revision }));
|
|
2663
|
+
const composedChange: Mutable<ModularChangeset> = {
|
|
2664
|
+
...this.changeFamily.rebaser.compose(changeMaps),
|
|
2665
|
+
revisions: revInfo,
|
|
2666
|
+
};
|
|
2645
2667
|
|
|
2646
2668
|
const maxId: ChangesetLocalId = brand(this.idAllocator.getMaxId());
|
|
2647
2669
|
if (maxId >= 0) {
|
|
@@ -2654,34 +2676,50 @@ export class ModularEditBuilder extends EditBuilder<ModularChangeset> {
|
|
|
2654
2676
|
return brand(this.idAllocator.allocate(count));
|
|
2655
2677
|
}
|
|
2656
2678
|
|
|
2657
|
-
public addNodeExistsConstraint(path: UpPath): void {
|
|
2679
|
+
public addNodeExistsConstraint(path: UpPath, revision: RevisionTag): void {
|
|
2658
2680
|
const nodeChange: NodeChangeset = {
|
|
2659
2681
|
nodeExistsConstraint: { violated: false },
|
|
2660
2682
|
};
|
|
2661
2683
|
|
|
2662
2684
|
this.applyChange(
|
|
2663
|
-
|
|
2664
|
-
|
|
2665
|
-
|
|
2666
|
-
|
|
2667
|
-
|
|
2668
|
-
|
|
2669
|
-
|
|
2685
|
+
tagChange(
|
|
2686
|
+
buildModularChangesetFromNode({
|
|
2687
|
+
path,
|
|
2688
|
+
nodeChange,
|
|
2689
|
+
nodeChanges: newTupleBTree(),
|
|
2690
|
+
nodeToParent: newTupleBTree(),
|
|
2691
|
+
crossFieldKeys: newCrossFieldKeyTable(),
|
|
2692
|
+
idAllocator: this.idAllocator,
|
|
2693
|
+
revision,
|
|
2694
|
+
}),
|
|
2695
|
+
revision,
|
|
2670
2696
|
),
|
|
2671
2697
|
);
|
|
2672
2698
|
}
|
|
2673
2699
|
}
|
|
2674
2700
|
|
|
2675
|
-
function buildModularChangesetFromField(
|
|
2676
|
-
path: FieldUpPath
|
|
2677
|
-
fieldChange: FieldChange
|
|
2678
|
-
nodeChanges: ChangeAtomIdBTree<NodeChangeset
|
|
2679
|
-
nodeToParent: ChangeAtomIdBTree<FieldId
|
|
2680
|
-
crossFieldKeys: CrossFieldKeyTable
|
|
2681
|
-
|
|
2682
|
-
|
|
2683
|
-
|
|
2684
|
-
|
|
2701
|
+
function buildModularChangesetFromField(props: {
|
|
2702
|
+
path: FieldUpPath;
|
|
2703
|
+
fieldChange: FieldChange;
|
|
2704
|
+
nodeChanges: ChangeAtomIdBTree<NodeChangeset>;
|
|
2705
|
+
nodeToParent: ChangeAtomIdBTree<FieldId>;
|
|
2706
|
+
crossFieldKeys: CrossFieldKeyTable;
|
|
2707
|
+
localCrossFieldKeys?: CrossFieldKeyRange[];
|
|
2708
|
+
revision: RevisionTag;
|
|
2709
|
+
idAllocator?: IdAllocator;
|
|
2710
|
+
childId?: NodeId;
|
|
2711
|
+
}): ModularChangeset {
|
|
2712
|
+
const {
|
|
2713
|
+
path,
|
|
2714
|
+
fieldChange,
|
|
2715
|
+
nodeChanges,
|
|
2716
|
+
nodeToParent,
|
|
2717
|
+
crossFieldKeys,
|
|
2718
|
+
idAllocator = idAllocatorFromMaxId(),
|
|
2719
|
+
localCrossFieldKeys = [],
|
|
2720
|
+
childId,
|
|
2721
|
+
revision,
|
|
2722
|
+
} = props;
|
|
2685
2723
|
const fieldChanges: FieldChangeMap = new Map([[path.field, fieldChange]]);
|
|
2686
2724
|
|
|
2687
2725
|
if (path.parent === undefined) {
|
|
@@ -2696,21 +2734,21 @@ function buildModularChangesetFromField(
|
|
|
2696
2734
|
});
|
|
2697
2735
|
}
|
|
2698
2736
|
|
|
2699
|
-
return makeModularChangeset(
|
|
2737
|
+
return makeModularChangeset({
|
|
2700
2738
|
fieldChanges,
|
|
2701
2739
|
nodeChanges,
|
|
2702
2740
|
nodeToParent,
|
|
2703
|
-
undefined,
|
|
2704
2741
|
crossFieldKeys,
|
|
2705
|
-
idAllocator.getMaxId(),
|
|
2706
|
-
|
|
2742
|
+
maxId: idAllocator.getMaxId(),
|
|
2743
|
+
revisions: [{ revision }],
|
|
2744
|
+
});
|
|
2707
2745
|
}
|
|
2708
2746
|
|
|
2709
2747
|
const nodeChangeset: NodeChangeset = {
|
|
2710
2748
|
fieldChanges,
|
|
2711
2749
|
};
|
|
2712
2750
|
|
|
2713
|
-
const parentId: NodeId = { localId: brand(idAllocator.allocate()) };
|
|
2751
|
+
const parentId: NodeId = { localId: brand(idAllocator.allocate()), revision };
|
|
2714
2752
|
|
|
2715
2753
|
for (const key of localCrossFieldKeys) {
|
|
2716
2754
|
crossFieldKeys.set(key, { nodeId: parentId, field: path.field });
|
|
@@ -2723,27 +2761,33 @@ function buildModularChangesetFromField(
|
|
|
2723
2761
|
});
|
|
2724
2762
|
}
|
|
2725
2763
|
|
|
2726
|
-
return buildModularChangesetFromNode(
|
|
2727
|
-
path.parent,
|
|
2728
|
-
nodeChangeset,
|
|
2764
|
+
return buildModularChangesetFromNode({
|
|
2765
|
+
path: path.parent,
|
|
2766
|
+
nodeChange: nodeChangeset,
|
|
2729
2767
|
nodeChanges,
|
|
2730
2768
|
nodeToParent,
|
|
2731
2769
|
crossFieldKeys,
|
|
2732
2770
|
idAllocator,
|
|
2733
|
-
|
|
2734
|
-
|
|
2771
|
+
revision,
|
|
2772
|
+
nodeId: parentId,
|
|
2773
|
+
});
|
|
2735
2774
|
}
|
|
2736
2775
|
|
|
2737
|
-
function buildModularChangesetFromNode(
|
|
2738
|
-
path: UpPath
|
|
2739
|
-
nodeChange: NodeChangeset
|
|
2740
|
-
nodeChanges: ChangeAtomIdBTree<NodeChangeset
|
|
2741
|
-
nodeToParent: ChangeAtomIdBTree<FieldId
|
|
2742
|
-
crossFieldKeys: CrossFieldKeyTable
|
|
2743
|
-
idAllocator: IdAllocator
|
|
2744
|
-
|
|
2745
|
-
|
|
2746
|
-
|
|
2776
|
+
function buildModularChangesetFromNode(props: {
|
|
2777
|
+
path: UpPath;
|
|
2778
|
+
nodeChange: NodeChangeset;
|
|
2779
|
+
nodeChanges: ChangeAtomIdBTree<NodeChangeset>;
|
|
2780
|
+
nodeToParent: ChangeAtomIdBTree<FieldId>;
|
|
2781
|
+
crossFieldKeys: CrossFieldKeyTable;
|
|
2782
|
+
idAllocator: IdAllocator;
|
|
2783
|
+
revision: RevisionTag;
|
|
2784
|
+
nodeId?: NodeId;
|
|
2785
|
+
}): ModularChangeset {
|
|
2786
|
+
const {
|
|
2787
|
+
path,
|
|
2788
|
+
nodeId = { localId: brand(props.idAllocator.allocate()), revision: props.revision },
|
|
2789
|
+
} = props;
|
|
2790
|
+
setInChangeAtomIdMap(props.nodeChanges, nodeId, props.nodeChange);
|
|
2747
2791
|
const fieldChangeset = genericFieldKind.changeHandler.editor.buildChildChange(
|
|
2748
2792
|
path.parentIndex,
|
|
2749
2793
|
nodeId,
|
|
@@ -2754,16 +2798,13 @@ function buildModularChangesetFromNode(
|
|
|
2754
2798
|
change: fieldChangeset,
|
|
2755
2799
|
};
|
|
2756
2800
|
|
|
2757
|
-
return buildModularChangesetFromField(
|
|
2758
|
-
|
|
2801
|
+
return buildModularChangesetFromField({
|
|
2802
|
+
...props,
|
|
2803
|
+
path: { parent: path.parent, field: path.parentField },
|
|
2759
2804
|
fieldChange,
|
|
2760
|
-
|
|
2761
|
-
|
|
2762
|
-
|
|
2763
|
-
idAllocator,
|
|
2764
|
-
[],
|
|
2765
|
-
nodeId,
|
|
2766
|
-
);
|
|
2805
|
+
localCrossFieldKeys: [],
|
|
2806
|
+
childId: nodeId,
|
|
2807
|
+
});
|
|
2767
2808
|
}
|
|
2768
2809
|
|
|
2769
2810
|
/**
|
|
@@ -2773,12 +2814,14 @@ export interface FieldEditDescription {
|
|
|
2773
2814
|
field: FieldUpPath;
|
|
2774
2815
|
fieldKind: FieldKindIdentifier;
|
|
2775
2816
|
change: FieldChangeset;
|
|
2817
|
+
revision: RevisionTag;
|
|
2776
2818
|
}
|
|
2777
2819
|
|
|
2778
2820
|
/**
|
|
2779
2821
|
*/
|
|
2780
2822
|
export interface GlobalEditDescription {
|
|
2781
2823
|
type: "global";
|
|
2824
|
+
revision: RevisionTag;
|
|
2782
2825
|
builds?: ChangeAtomIdBTree<TreeChunk>;
|
|
2783
2826
|
}
|
|
2784
2827
|
|