@fluidframework/tree 2.81.1 → 2.82.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +125 -0
- package/api-report/tree.alpha.api.md +54 -22
- package/api-report/tree.beta.api.md +150 -1
- package/api-report/tree.legacy.beta.api.md +150 -1
- package/api-report/tree.legacy.public.api.md +1 -0
- package/api-report/tree.public.api.md +1 -0
- package/dist/alpha.d.ts +8 -2
- package/dist/beta.d.ts +3 -0
- package/dist/codec/codec.d.ts +17 -8
- package/dist/codec/codec.d.ts.map +1 -1
- package/dist/codec/codec.js +8 -1
- package/dist/codec/codec.js.map +1 -1
- package/dist/codec/index.d.ts +1 -1
- package/dist/codec/index.d.ts.map +1 -1
- package/dist/codec/index.js +2 -1
- package/dist/codec/index.js.map +1 -1
- package/dist/codec/versioned/codec.d.ts +1 -1
- package/dist/codec/versioned/codec.d.ts.map +1 -1
- package/dist/codec/versioned/codec.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +4 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/rebase/changeRebaser.d.ts +3 -2
- package/dist/core/rebase/changeRebaser.d.ts.map +1 -1
- package/dist/core/rebase/changeRebaser.js.map +1 -1
- package/dist/core/rebase/index.d.ts +1 -1
- package/dist/core/rebase/index.d.ts.map +1 -1
- package/dist/core/rebase/index.js +4 -2
- package/dist/core/rebase/index.js.map +1 -1
- package/dist/core/rebase/types.d.ts +23 -3
- package/dist/core/rebase/types.d.ts.map +1 -1
- package/dist/core/rebase/types.js +30 -16
- package/dist/core/rebase/types.js.map +1 -1
- package/dist/core/schema-stored/formatV1.d.ts +2 -2
- package/dist/core/schema-stored/formatV1.d.ts.map +1 -1
- package/dist/core/schema-stored/formatV1.js +0 -5
- package/dist/core/schema-stored/formatV1.js.map +1 -1
- package/dist/core/schema-stored/formatV2.d.ts +11 -10
- package/dist/core/schema-stored/formatV2.d.ts.map +1 -1
- package/dist/core/schema-stored/formatV2.js +1 -6
- package/dist/core/schema-stored/formatV2.js.map +1 -1
- package/dist/core/schema-stored/index.d.ts.map +1 -1
- package/dist/core/schema-stored/index.js.map +1 -1
- package/dist/core/schema-stored/schema.d.ts.map +1 -1
- package/dist/core/schema-stored/schema.js.map +1 -1
- package/dist/core/tree/anchorSet.d.ts.map +1 -1
- package/dist/core/tree/anchorSet.js.map +1 -1
- package/dist/core/tree/delta.d.ts +9 -7
- package/dist/core/tree/delta.d.ts.map +1 -1
- package/dist/core/tree/delta.js.map +1 -1
- package/dist/core/tree/deltaUtil.js +1 -1
- package/dist/core/tree/deltaUtil.js.map +1 -1
- package/dist/core/tree/visitDelta.js +2 -2
- package/dist/core/tree/visitDelta.js.map +1 -1
- package/dist/extensibleSchemaUnion.d.ts +72 -0
- package/dist/extensibleSchemaUnion.d.ts.map +1 -0
- package/dist/extensibleSchemaUnion.js +79 -0
- package/dist/extensibleSchemaUnion.js.map +1 -0
- package/dist/feature-libraries/changeAtomIdBTree.d.ts +4 -2
- package/dist/feature-libraries/changeAtomIdBTree.d.ts.map +1 -1
- package/dist/feature-libraries/changeAtomIdBTree.js +9 -1
- package/dist/feature-libraries/changeAtomIdBTree.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts +1 -3
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js +20 -21
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/dist/feature-libraries/default-schema/index.d.ts +1 -1
- package/dist/feature-libraries/default-schema/index.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/index.js.map +1 -1
- package/dist/feature-libraries/forest-summary/codec.d.ts +2 -1
- package/dist/feature-libraries/forest-summary/codec.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/codec.js.map +1 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.js +5 -2
- package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/dist/feature-libraries/forest-summary/formatCommon.d.ts +1 -39
- package/dist/feature-libraries/forest-summary/formatCommon.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/formatCommon.js +1 -2
- package/dist/feature-libraries/forest-summary/formatCommon.js.map +1 -1
- package/dist/feature-libraries/forest-summary/formatV1.d.ts +1 -39
- package/dist/feature-libraries/forest-summary/formatV1.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/formatV2.d.ts +1 -39
- package/dist/feature-libraries/forest-summary/formatV2.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts +1 -1
- package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.js +1 -1
- package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.js.map +1 -1
- package/dist/feature-libraries/index.d.ts +3 -3
- package/dist/feature-libraries/index.d.ts.map +1 -1
- package/dist/feature-libraries/index.js +4 -3
- package/dist/feature-libraries/index.js.map +1 -1
- package/dist/feature-libraries/modular-schema/defaultRevisionReplacer.d.ts +2 -2
- package/dist/feature-libraries/modular-schema/defaultRevisionReplacer.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/defaultRevisionReplacer.js +42 -22
- package/dist/feature-libraries/modular-schema/defaultRevisionReplacer.js.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKind.js +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/dist/feature-libraries/modular-schema/index.d.ts +1 -1
- package/dist/feature-libraries/modular-schema/index.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/index.js +2 -1
- package/dist/feature-libraries/modular-schema/index.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.d.ts +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.js +9 -5
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts +11 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js +30 -7
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js +38 -27
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormatV1.d.ts +10 -127
- package/dist/feature-libraries/modular-schema/modularChangeFormatV1.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormatV1.js +2 -4
- package/dist/feature-libraries/modular-schema/modularChangeFormatV1.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormatV2.d.ts +3 -79
- package/dist/feature-libraries/modular-schema/modularChangeFormatV2.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalField.js +1 -1
- package/dist/feature-libraries/optional-field/optionalField.js.map +1 -1
- package/dist/feature-libraries/optional-field/requiredField.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/requiredField.js.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts +2 -2
- package/dist/feature-libraries/schema-index/codec.js.map +1 -1
- package/dist/feature-libraries/schema-index/formatV2.d.ts +4 -4
- package/dist/feature-libraries/schema-index/schemaSummarizer.js +1 -1
- package/dist/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
- package/dist/feature-libraries/sequence-field/invert.js +2 -2
- package/dist/feature-libraries/sequence-field/invert.js.map +1 -1
- package/dist/feature-libraries/sequence-field/replaceRevisions.js +16 -16
- package/dist/feature-libraries/sequence-field/replaceRevisions.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.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/shared-tree/independentView.d.ts +36 -13
- package/dist/shared-tree/independentView.d.ts.map +1 -1
- package/dist/shared-tree/independentView.js +1 -0
- package/dist/shared-tree/independentView.js.map +1 -1
- package/dist/shared-tree/index.d.ts +1 -1
- package/dist/shared-tree/index.d.ts.map +1 -1
- package/dist/shared-tree/index.js.map +1 -1
- package/dist/shared-tree/schematizingTreeView.d.ts +10 -0
- package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/dist/shared-tree/schematizingTreeView.js +25 -9
- package/dist/shared-tree/schematizingTreeView.js.map +1 -1
- package/dist/shared-tree/sharedTree.d.ts +3 -3
- package/dist/shared-tree/sharedTree.d.ts.map +1 -1
- package/dist/shared-tree/sharedTree.js +8 -32
- package/dist/shared-tree/sharedTree.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.d.ts +11 -3
- package/dist/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.js +38 -4
- package/dist/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFormat.d.ts +4 -4
- package/dist/shared-tree/tree.js +1 -1
- package/dist/shared-tree/tree.js.map +1 -1
- package/dist/shared-tree/treeCheckout.d.ts +20 -0
- package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
- package/dist/shared-tree/treeCheckout.js +39 -3
- package/dist/shared-tree/treeCheckout.js.map +1 -1
- package/dist/shared-tree-core/editManagerSummarizer.js +1 -1
- package/dist/shared-tree-core/editManagerSummarizer.js.map +1 -1
- package/dist/shared-tree-core/messageCodecV1ToV4.d.ts.map +1 -1
- package/dist/shared-tree-core/messageCodecV1ToV4.js +2 -2
- package/dist/shared-tree-core/messageCodecV1ToV4.js.map +1 -1
- package/dist/shared-tree-core/transaction.d.ts +14 -3
- package/dist/shared-tree-core/transaction.d.ts.map +1 -1
- package/dist/shared-tree-core/transaction.js +59 -16
- package/dist/shared-tree-core/transaction.js.map +1 -1
- package/dist/shared-tree-core/versionedSummarizer.d.ts.map +1 -1
- package/dist/shared-tree-core/versionedSummarizer.js +1 -1
- package/dist/shared-tree-core/versionedSummarizer.js.map +1 -1
- package/dist/simple-tree/api/index.d.ts +1 -1
- package/dist/simple-tree/api/index.d.ts.map +1 -1
- package/dist/simple-tree/api/index.js +3 -2
- package/dist/simple-tree/api/index.js.map +1 -1
- package/dist/simple-tree/api/schemaCreationUtilities.d.ts +9 -0
- package/dist/simple-tree/api/schemaCreationUtilities.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaCreationUtilities.js +16 -1
- package/dist/simple-tree/api/schemaCreationUtilities.js.map +1 -1
- package/dist/simple-tree/api/simpleTreeIndex.js.map +1 -1
- package/dist/simple-tree/api/transactionTypes.d.ts +10 -0
- package/dist/simple-tree/api/transactionTypes.d.ts.map +1 -1
- package/dist/simple-tree/api/transactionTypes.js.map +1 -1
- package/dist/simple-tree/api/tree.d.ts +81 -6
- 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/core/treeNodeSchema.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeSchema.js.map +1 -1
- package/dist/simple-tree/index.d.ts +2 -2
- package/dist/simple-tree/index.d.ts.map +1 -1
- package/dist/simple-tree/index.js +4 -2
- package/dist/simple-tree/index.js.map +1 -1
- package/dist/simple-tree/leafNodeSchema.d.ts.map +1 -1
- package/dist/simple-tree/leafNodeSchema.js.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNode.d.ts +63 -0
- package/dist/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNode.js +43 -1
- package/dist/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/array/index.d.ts +1 -1
- package/dist/simple-tree/node-kinds/array/index.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/array/index.js +2 -1
- package/dist/simple-tree/node-kinds/array/index.js.map +1 -1
- package/dist/simple-tree/node-kinds/index.d.ts +1 -1
- package/dist/simple-tree/node-kinds/index.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/index.js +2 -1
- package/dist/simple-tree/node-kinds/index.js.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNode.js.map +1 -1
- package/dist/tableSchema.d.ts +71 -48
- package/dist/tableSchema.d.ts.map +1 -1
- package/dist/tableSchema.js +200 -98
- package/dist/tableSchema.js.map +1 -1
- package/dist/text/textDomainFormatted.js +1 -1
- package/dist/text/textDomainFormatted.js.map +1 -1
- package/dist/util/bTreeUtils.d.ts +30 -4
- package/dist/util/bTreeUtils.d.ts.map +1 -1
- package/dist/util/bTreeUtils.js +29 -17
- package/dist/util/bTreeUtils.js.map +1 -1
- package/dist/util/brand.d.ts.map +1 -1
- package/dist/util/brand.js.map +1 -1
- package/dist/util/brandedMap.d.ts.map +1 -1
- package/dist/util/brandedMap.js.map +1 -1
- package/dist/util/breakable.d.ts.map +1 -1
- package/dist/util/breakable.js +2 -1
- package/dist/util/breakable.js.map +1 -1
- package/dist/util/index.d.ts +2 -2
- package/dist/util/index.d.ts.map +1 -1
- package/dist/util/index.js +6 -3
- package/dist/util/index.js.map +1 -1
- package/dist/util/opaque.d.ts.map +1 -1
- package/dist/util/opaque.js.map +1 -1
- package/dist/util/rangeMap.d.ts +3 -2
- package/dist/util/rangeMap.d.ts.map +1 -1
- package/dist/util/rangeMap.js +7 -1
- package/dist/util/rangeMap.js.map +1 -1
- package/dist/util/readSnapshotBlob.d.ts +1 -1
- package/dist/util/readSnapshotBlob.d.ts.map +1 -1
- package/dist/util/readSnapshotBlob.js.map +1 -1
- package/dist/util/typeCheck.d.ts.map +1 -1
- package/dist/util/typeCheck.js.map +1 -1
- package/dist/util/utils.d.ts +20 -16
- package/dist/util/utils.d.ts.map +1 -1
- package/dist/util/utils.js +49 -17
- package/dist/util/utils.js.map +1 -1
- package/eslint.config.mts +0 -9
- package/lib/alpha.d.ts +8 -2
- package/lib/beta.d.ts +3 -0
- package/lib/codec/codec.d.ts +17 -8
- package/lib/codec/codec.d.ts.map +1 -1
- package/lib/codec/codec.js +6 -0
- package/lib/codec/codec.js.map +1 -1
- package/lib/codec/index.d.ts +1 -1
- package/lib/codec/index.d.ts.map +1 -1
- package/lib/codec/index.js +1 -1
- package/lib/codec/index.js.map +1 -1
- package/lib/codec/versioned/codec.d.ts +1 -1
- package/lib/codec/versioned/codec.d.ts.map +1 -1
- package/lib/codec/versioned/codec.js.map +1 -1
- package/lib/core/index.d.ts +1 -1
- package/lib/core/index.d.ts.map +1 -1
- package/lib/core/index.js +1 -1
- package/lib/core/index.js.map +1 -1
- package/lib/core/rebase/changeRebaser.d.ts +3 -2
- package/lib/core/rebase/changeRebaser.d.ts.map +1 -1
- package/lib/core/rebase/changeRebaser.js.map +1 -1
- package/lib/core/rebase/index.d.ts +1 -1
- package/lib/core/rebase/index.d.ts.map +1 -1
- package/lib/core/rebase/index.js +1 -1
- package/lib/core/rebase/index.js.map +1 -1
- package/lib/core/rebase/types.d.ts +23 -3
- package/lib/core/rebase/types.d.ts.map +1 -1
- package/lib/core/rebase/types.js +27 -15
- package/lib/core/rebase/types.js.map +1 -1
- package/lib/core/schema-stored/formatV1.d.ts +2 -2
- package/lib/core/schema-stored/formatV1.d.ts.map +1 -1
- package/lib/core/schema-stored/formatV1.js +0 -5
- package/lib/core/schema-stored/formatV1.js.map +1 -1
- package/lib/core/schema-stored/formatV2.d.ts +11 -10
- package/lib/core/schema-stored/formatV2.d.ts.map +1 -1
- package/lib/core/schema-stored/formatV2.js +1 -6
- package/lib/core/schema-stored/formatV2.js.map +1 -1
- package/lib/core/schema-stored/index.d.ts.map +1 -1
- package/lib/core/schema-stored/index.js +2 -0
- package/lib/core/schema-stored/index.js.map +1 -1
- package/lib/core/schema-stored/schema.d.ts.map +1 -1
- package/lib/core/schema-stored/schema.js.map +1 -1
- package/lib/core/tree/anchorSet.d.ts.map +1 -1
- package/lib/core/tree/anchorSet.js.map +1 -1
- package/lib/core/tree/delta.d.ts +9 -7
- package/lib/core/tree/delta.d.ts.map +1 -1
- package/lib/core/tree/delta.js.map +1 -1
- package/lib/core/tree/deltaUtil.js +1 -1
- package/lib/core/tree/deltaUtil.js.map +1 -1
- package/lib/core/tree/visitDelta.js +2 -2
- package/lib/core/tree/visitDelta.js.map +1 -1
- package/lib/extensibleSchemaUnion.d.ts +72 -0
- package/lib/extensibleSchemaUnion.d.ts.map +1 -0
- package/lib/extensibleSchemaUnion.js +76 -0
- package/lib/extensibleSchemaUnion.js.map +1 -0
- package/lib/feature-libraries/changeAtomIdBTree.d.ts +4 -2
- package/lib/feature-libraries/changeAtomIdBTree.d.ts.map +1 -1
- package/lib/feature-libraries/changeAtomIdBTree.js +7 -0
- package/lib/feature-libraries/changeAtomIdBTree.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts +1 -3
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.js +4 -5
- package/lib/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/lib/feature-libraries/default-schema/index.d.ts +1 -1
- package/lib/feature-libraries/default-schema/index.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/index.js.map +1 -1
- package/lib/feature-libraries/forest-summary/codec.d.ts +2 -1
- package/lib/feature-libraries/forest-summary/codec.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/codec.js.map +1 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.js +6 -3
- package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/lib/feature-libraries/forest-summary/formatCommon.d.ts +1 -39
- package/lib/feature-libraries/forest-summary/formatCommon.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/formatCommon.js +2 -3
- package/lib/feature-libraries/forest-summary/formatCommon.js.map +1 -1
- package/lib/feature-libraries/forest-summary/formatV1.d.ts +1 -39
- package/lib/feature-libraries/forest-summary/formatV1.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/formatV2.d.ts +1 -39
- package/lib/feature-libraries/forest-summary/formatV2.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts +1 -1
- package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.js +1 -1
- package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.js.map +1 -1
- package/lib/feature-libraries/index.d.ts +3 -3
- package/lib/feature-libraries/index.d.ts.map +1 -1
- package/lib/feature-libraries/index.js +3 -3
- package/lib/feature-libraries/index.js.map +1 -1
- package/lib/feature-libraries/modular-schema/defaultRevisionReplacer.d.ts +2 -2
- package/lib/feature-libraries/modular-schema/defaultRevisionReplacer.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/defaultRevisionReplacer.js +41 -21
- package/lib/feature-libraries/modular-schema/defaultRevisionReplacer.js.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKind.js +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/lib/feature-libraries/modular-schema/index.d.ts +1 -1
- package/lib/feature-libraries/modular-schema/index.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/index.js +1 -1
- package/lib/feature-libraries/modular-schema/index.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.d.ts +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.js +10 -6
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts +11 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js +29 -6
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js +41 -30
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormatV1.d.ts +10 -127
- package/lib/feature-libraries/modular-schema/modularChangeFormatV1.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormatV1.js +2 -4
- package/lib/feature-libraries/modular-schema/modularChangeFormatV1.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormatV2.d.ts +3 -79
- package/lib/feature-libraries/modular-schema/modularChangeFormatV2.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalField.js +1 -1
- package/lib/feature-libraries/optional-field/optionalField.js.map +1 -1
- package/lib/feature-libraries/optional-field/requiredField.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/requiredField.js.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts +2 -2
- package/lib/feature-libraries/schema-index/codec.js.map +1 -1
- package/lib/feature-libraries/schema-index/formatV2.d.ts +4 -4
- package/lib/feature-libraries/schema-index/schemaSummarizer.js +1 -1
- package/lib/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
- package/lib/feature-libraries/sequence-field/invert.js +2 -2
- package/lib/feature-libraries/sequence-field/invert.js.map +1 -1
- package/lib/feature-libraries/sequence-field/replaceRevisions.js +16 -16
- package/lib/feature-libraries/sequence-field/replaceRevisions.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
- package/lib/index.d.ts +5 -5
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +4 -3
- package/lib/index.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/shared-tree/independentView.d.ts +36 -13
- package/lib/shared-tree/independentView.d.ts.map +1 -1
- package/lib/shared-tree/independentView.js +1 -0
- package/lib/shared-tree/independentView.js.map +1 -1
- package/lib/shared-tree/index.d.ts +1 -1
- package/lib/shared-tree/index.d.ts.map +1 -1
- package/lib/shared-tree/index.js.map +1 -1
- package/lib/shared-tree/schematizingTreeView.d.ts +10 -0
- package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/lib/shared-tree/schematizingTreeView.js +25 -9
- package/lib/shared-tree/schematizingTreeView.js.map +1 -1
- package/lib/shared-tree/sharedTree.d.ts +3 -3
- package/lib/shared-tree/sharedTree.d.ts.map +1 -1
- package/lib/shared-tree/sharedTree.js +10 -34
- package/lib/shared-tree/sharedTree.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.d.ts +11 -3
- package/lib/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.js +39 -5
- package/lib/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFormat.d.ts +4 -4
- package/lib/shared-tree/tree.js +1 -1
- package/lib/shared-tree/tree.js.map +1 -1
- package/lib/shared-tree/treeCheckout.d.ts +20 -0
- package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
- package/lib/shared-tree/treeCheckout.js +39 -3
- package/lib/shared-tree/treeCheckout.js.map +1 -1
- package/lib/shared-tree-core/editManagerSummarizer.js +1 -1
- package/lib/shared-tree-core/editManagerSummarizer.js.map +1 -1
- package/lib/shared-tree-core/messageCodecV1ToV4.d.ts.map +1 -1
- package/lib/shared-tree-core/messageCodecV1ToV4.js +2 -2
- package/lib/shared-tree-core/messageCodecV1ToV4.js.map +1 -1
- package/lib/shared-tree-core/transaction.d.ts +14 -3
- package/lib/shared-tree-core/transaction.d.ts.map +1 -1
- package/lib/shared-tree-core/transaction.js +61 -18
- package/lib/shared-tree-core/transaction.js.map +1 -1
- package/lib/shared-tree-core/versionedSummarizer.d.ts.map +1 -1
- package/lib/shared-tree-core/versionedSummarizer.js +1 -1
- package/lib/shared-tree-core/versionedSummarizer.js.map +1 -1
- package/lib/simple-tree/api/index.d.ts +1 -1
- package/lib/simple-tree/api/index.d.ts.map +1 -1
- package/lib/simple-tree/api/index.js +1 -1
- package/lib/simple-tree/api/index.js.map +1 -1
- package/lib/simple-tree/api/schemaCreationUtilities.d.ts +9 -0
- package/lib/simple-tree/api/schemaCreationUtilities.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaCreationUtilities.js +14 -0
- package/lib/simple-tree/api/schemaCreationUtilities.js.map +1 -1
- package/lib/simple-tree/api/simpleTreeIndex.js.map +1 -1
- package/lib/simple-tree/api/transactionTypes.d.ts +10 -0
- package/lib/simple-tree/api/transactionTypes.d.ts.map +1 -1
- package/lib/simple-tree/api/transactionTypes.js.map +1 -1
- package/lib/simple-tree/api/tree.d.ts +81 -6
- 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/core/treeNodeSchema.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeSchema.js.map +1 -1
- package/lib/simple-tree/index.d.ts +2 -2
- package/lib/simple-tree/index.d.ts.map +1 -1
- package/lib/simple-tree/index.js +2 -2
- package/lib/simple-tree/index.js.map +1 -1
- package/lib/simple-tree/leafNodeSchema.d.ts.map +1 -1
- package/lib/simple-tree/leafNodeSchema.js.map +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNode.d.ts +63 -0
- package/lib/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNode.js +41 -0
- package/lib/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/array/index.d.ts +1 -1
- package/lib/simple-tree/node-kinds/array/index.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/array/index.js +1 -1
- package/lib/simple-tree/node-kinds/array/index.js.map +1 -1
- package/lib/simple-tree/node-kinds/index.d.ts +1 -1
- package/lib/simple-tree/node-kinds/index.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/index.js +1 -1
- package/lib/simple-tree/node-kinds/index.js.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNode.js.map +1 -1
- package/lib/tableSchema.d.ts +71 -48
- package/lib/tableSchema.d.ts.map +1 -1
- package/lib/tableSchema.js +201 -99
- package/lib/tableSchema.js.map +1 -1
- package/lib/text/textDomainFormatted.js +1 -1
- package/lib/text/textDomainFormatted.js.map +1 -1
- package/lib/util/bTreeUtils.d.ts +30 -4
- package/lib/util/bTreeUtils.d.ts.map +1 -1
- package/lib/util/bTreeUtils.js +27 -16
- package/lib/util/bTreeUtils.js.map +1 -1
- package/lib/util/brand.d.ts.map +1 -1
- package/lib/util/brand.js.map +1 -1
- package/lib/util/brandedMap.d.ts.map +1 -1
- package/lib/util/brandedMap.js.map +1 -1
- package/lib/util/breakable.d.ts.map +1 -1
- package/lib/util/breakable.js +2 -1
- package/lib/util/breakable.js.map +1 -1
- package/lib/util/index.d.ts +2 -2
- package/lib/util/index.d.ts.map +1 -1
- package/lib/util/index.js +2 -2
- package/lib/util/index.js.map +1 -1
- package/lib/util/opaque.d.ts.map +1 -1
- package/lib/util/opaque.js.map +1 -1
- package/lib/util/rangeMap.d.ts +3 -2
- package/lib/util/rangeMap.d.ts.map +1 -1
- package/lib/util/rangeMap.js +7 -1
- package/lib/util/rangeMap.js.map +1 -1
- package/lib/util/readSnapshotBlob.d.ts +1 -1
- package/lib/util/readSnapshotBlob.d.ts.map +1 -1
- package/lib/util/readSnapshotBlob.js.map +1 -1
- package/lib/util/typeCheck.d.ts.map +1 -1
- package/lib/util/typeCheck.js.map +1 -1
- package/lib/util/utils.d.ts +20 -16
- package/lib/util/utils.d.ts.map +1 -1
- package/lib/util/utils.js +44 -15
- package/lib/util/utils.js.map +1 -1
- package/package.json +22 -22
- package/src/codec/codec.ts +30 -11
- package/src/codec/index.ts +2 -0
- package/src/codec/versioned/codec.ts +9 -13
- package/src/core/index.ts +3 -1
- package/src/core/rebase/changeRebaser.ts +3 -2
- package/src/core/rebase/index.ts +3 -1
- package/src/core/rebase/types.ts +51 -13
- package/src/core/schema-stored/formatV1.ts +2 -4
- package/src/core/schema-stored/formatV2.ts +9 -7
- package/src/core/schema-stored/index.ts +2 -0
- package/src/core/schema-stored/schema.ts +4 -1
- package/src/core/tree/anchorSet.ts +1 -3
- package/src/core/tree/delta.ts +9 -7
- package/src/core/tree/deltaUtil.ts +1 -1
- package/src/core/tree/visitDelta.ts +2 -2
- package/src/extensibleSchemaUnion.ts +135 -0
- package/src/feature-libraries/changeAtomIdBTree.ts +17 -2
- package/src/feature-libraries/default-schema/defaultFieldKinds.ts +5 -6
- package/src/feature-libraries/default-schema/index.ts +0 -1
- package/src/feature-libraries/forest-summary/codec.ts +7 -2
- package/src/feature-libraries/forest-summary/forestSummarizer.ts +15 -3
- package/src/feature-libraries/forest-summary/formatCommon.ts +2 -3
- package/src/feature-libraries/forest-summary/incrementalSummaryBuilder.ts +4 -5
- package/src/feature-libraries/index.ts +3 -2
- package/src/feature-libraries/modular-schema/defaultRevisionReplacer.ts +57 -31
- package/src/feature-libraries/modular-schema/genericFieldKind.ts +1 -1
- package/src/feature-libraries/modular-schema/index.ts +4 -1
- package/src/feature-libraries/modular-schema/modularChangeCodecV1.ts +7 -6
- package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +32 -7
- package/src/feature-libraries/modular-schema/modularChangeFamily.ts +54 -33
- package/src/feature-libraries/modular-schema/modularChangeFormatV1.ts +2 -4
- package/src/feature-libraries/optional-field/optionalField.ts +1 -1
- package/src/feature-libraries/optional-field/requiredField.ts +2 -4
- package/src/feature-libraries/schema-index/codec.ts +1 -1
- package/src/feature-libraries/schema-index/schemaSummarizer.ts +1 -1
- package/src/feature-libraries/sequence-field/invert.ts +2 -2
- package/src/feature-libraries/sequence-field/replaceRevisions.ts +17 -10
- package/src/feature-libraries/sequence-field/sequenceFieldToDelta.ts +1 -1
- package/src/index.ts +12 -7
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/independentView.ts +42 -6
- package/src/shared-tree/index.ts +2 -0
- package/src/shared-tree/schematizingTreeView.ts +63 -18
- package/src/shared-tree/sharedTree.ts +19 -37
- package/src/shared-tree/sharedTreeChangeCodecs.ts +43 -9
- package/src/shared-tree/tree.ts +1 -1
- package/src/shared-tree/treeCheckout.ts +50 -3
- package/src/shared-tree-core/editManagerSummarizer.ts +1 -1
- package/src/shared-tree-core/messageCodecV1ToV4.ts +4 -3
- package/src/shared-tree-core/transaction.ts +125 -23
- package/src/shared-tree-core/versionedSummarizer.ts +3 -2
- package/src/simple-tree/api/index.ts +1 -0
- package/src/simple-tree/api/schemaCreationUtilities.ts +35 -5
- package/src/simple-tree/api/simpleTreeIndex.ts +1 -1
- package/src/simple-tree/api/transactionTypes.ts +10 -0
- package/src/simple-tree/api/tree.ts +88 -6
- package/src/simple-tree/core/treeNodeSchema.ts +5 -8
- package/src/simple-tree/index.ts +3 -0
- package/src/simple-tree/leafNodeSchema.ts +3 -2
- package/src/simple-tree/node-kinds/array/arrayNode.ts +86 -0
- package/src/simple-tree/node-kinds/array/index.ts +2 -0
- package/src/simple-tree/node-kinds/index.ts +2 -0
- package/src/simple-tree/node-kinds/object/objectNode.ts +19 -18
- package/src/tableSchema.ts +280 -140
- package/src/text/textDomainFormatted.ts +1 -1
- package/src/util/bTreeUtils.ts +45 -26
- package/src/util/brand.ts +4 -12
- package/src/util/brandedMap.ts +2 -6
- package/src/util/breakable.ts +3 -2
- package/src/util/index.ts +9 -3
- package/src/util/opaque.ts +2 -6
- package/src/util/rangeMap.ts +11 -5
- package/src/util/readSnapshotBlob.ts +3 -3
- package/src/util/typeCheck.ts +11 -9
- package/src/util/utils.ts +57 -28
- package/biome.jsonc +0 -4
|
@@ -227,21 +227,20 @@ export class SchematizingSimpleTreeView<
|
|
|
227
227
|
},
|
|
228
228
|
);
|
|
229
229
|
|
|
230
|
-
this.
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
)
|
|
241
|
-
)
|
|
242
|
-
|
|
243
|
-
);
|
|
244
|
-
this.checkout.transaction.commit();
|
|
230
|
+
this.runTransaction(() => {
|
|
231
|
+
initialize(
|
|
232
|
+
this.checkout,
|
|
233
|
+
schema,
|
|
234
|
+
initializerFromChunk(this.checkout, () => {
|
|
235
|
+
// This must be done after initial schema is set!
|
|
236
|
+
return combineChunks(
|
|
237
|
+
this.checkout.forest.chunkField(
|
|
238
|
+
cursorForMapTreeField(mapTree === undefined ? [] : [mapTree]),
|
|
239
|
+
),
|
|
240
|
+
);
|
|
241
|
+
}),
|
|
242
|
+
);
|
|
243
|
+
});
|
|
245
244
|
});
|
|
246
245
|
}
|
|
247
246
|
|
|
@@ -294,9 +293,43 @@ export class SchematizingSimpleTreeView<
|
|
|
294
293
|
| void,
|
|
295
294
|
params?: RunTransactionParams,
|
|
296
295
|
): TransactionResultExt<TSuccessValue, TFailureValue> | TransactionResult {
|
|
296
|
+
this.mountTransaction(params, false);
|
|
297
|
+
const transactionCallbackStatus = transaction();
|
|
298
|
+
return this.unmountTransaction(transactionCallbackStatus, params);
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
/**
|
|
302
|
+
* {@inheritDoc @fluidframework/shared-tree#TreeViewAlpha.runTransactionAsync}
|
|
303
|
+
*/
|
|
304
|
+
public runTransactionAsync<TSuccessValue, TFailureValue>(
|
|
305
|
+
transaction: () => Promise<TransactionCallbackStatus<TSuccessValue, TFailureValue>>,
|
|
306
|
+
params?: RunTransactionParams,
|
|
307
|
+
): Promise<TransactionResultExt<TSuccessValue, TFailureValue>>;
|
|
308
|
+
/**
|
|
309
|
+
* {@inheritDoc @fluidframework/shared-tree#TreeViewAlpha.runTransactionAsync}
|
|
310
|
+
*/
|
|
311
|
+
public runTransactionAsync(
|
|
312
|
+
transaction: () => Promise<VoidTransactionCallbackStatus | void>,
|
|
313
|
+
params?: RunTransactionParams,
|
|
314
|
+
): Promise<TransactionResult>;
|
|
315
|
+
public async runTransactionAsync<TSuccessValue, TFailureValue>(
|
|
316
|
+
transaction: () => Promise<
|
|
317
|
+
| TransactionCallbackStatus<TSuccessValue, TFailureValue>
|
|
318
|
+
| VoidTransactionCallbackStatus
|
|
319
|
+
| void
|
|
320
|
+
>,
|
|
321
|
+
params: RunTransactionParams | undefined,
|
|
322
|
+
): Promise<TransactionResultExt<TSuccessValue, TFailureValue> | TransactionResult> {
|
|
323
|
+
this.mountTransaction(params, true);
|
|
324
|
+
const transactionCallbackStatus = await transaction();
|
|
325
|
+
return this.unmountTransaction(transactionCallbackStatus, params);
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
private mountTransaction(params: RunTransactionParams | undefined, isAsync: boolean): void {
|
|
329
|
+
this.ensureUndisposed();
|
|
297
330
|
const { checkout } = this;
|
|
298
331
|
|
|
299
|
-
checkout.transaction.start();
|
|
332
|
+
checkout.transaction.start(isAsync);
|
|
300
333
|
|
|
301
334
|
// Validate preconditions before running the transaction callback.
|
|
302
335
|
addConstraintsToTransaction(
|
|
@@ -304,7 +337,17 @@ export class SchematizingSimpleTreeView<
|
|
|
304
337
|
false /* constraintsOnRevert */,
|
|
305
338
|
params?.preconditions,
|
|
306
339
|
);
|
|
307
|
-
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
private unmountTransaction<TSuccessValue, TFailureValue>(
|
|
343
|
+
transactionCallbackStatus:
|
|
344
|
+
| TransactionCallbackStatus<TSuccessValue, TFailureValue>
|
|
345
|
+
| VoidTransactionCallbackStatus
|
|
346
|
+
| void,
|
|
347
|
+
params?: RunTransactionParams,
|
|
348
|
+
): TransactionResultExt<TSuccessValue, TFailureValue> | TransactionResult {
|
|
349
|
+
this.ensureUndisposed();
|
|
350
|
+
const { checkout } = this;
|
|
308
351
|
const rollback = transactionCallbackStatus?.rollback;
|
|
309
352
|
const value = (
|
|
310
353
|
transactionCallbackStatus as TransactionCallbackStatus<TSuccessValue, TFailureValue>
|
|
@@ -324,7 +367,9 @@ export class SchematizingSimpleTreeView<
|
|
|
324
367
|
transactionCallbackStatus?.preconditionsOnRevert,
|
|
325
368
|
);
|
|
326
369
|
|
|
327
|
-
checkout.
|
|
370
|
+
checkout.runWithTransactionLabel(() => {
|
|
371
|
+
checkout.transaction.commit();
|
|
372
|
+
}, params?.label);
|
|
328
373
|
return value === undefined
|
|
329
374
|
? { success: true }
|
|
330
375
|
: { success: true, value: value as TSuccessValue };
|
|
@@ -21,6 +21,7 @@ import {
|
|
|
21
21
|
import {
|
|
22
22
|
type CodecTree,
|
|
23
23
|
type CodecWriteOptions,
|
|
24
|
+
type CodecWriteOptionsBeta,
|
|
24
25
|
DependentFormatVersion,
|
|
25
26
|
FluidClientVersion,
|
|
26
27
|
FormatValidatorNoOp,
|
|
@@ -99,7 +100,6 @@ import {
|
|
|
99
100
|
type SchemaType,
|
|
100
101
|
} from "../simple-tree/index.js";
|
|
101
102
|
import {
|
|
102
|
-
brand,
|
|
103
103
|
type Breakable,
|
|
104
104
|
breakingClass,
|
|
105
105
|
type JsonCompatible,
|
|
@@ -109,7 +109,7 @@ import {
|
|
|
109
109
|
import { SchematizingSimpleTreeView } from "./schematizingTreeView.js";
|
|
110
110
|
import {
|
|
111
111
|
getCodecTreeForChangeFormat,
|
|
112
|
-
|
|
112
|
+
SharedTreeChangeFormatVersion,
|
|
113
113
|
} from "./sharedTreeChangeCodecs.js";
|
|
114
114
|
import { SharedTreeChangeFamily } from "./sharedTreeChangeFamily.js";
|
|
115
115
|
import type { SharedTreeChange } from "./sharedTreeChangeTypes.js";
|
|
@@ -550,23 +550,14 @@ export function getBranch<T extends ImplicitFieldSchema | UnsafeUnknownSchema>(
|
|
|
550
550
|
* This is because the format for SharedTree changes are not explicitly versioned.
|
|
551
551
|
*/
|
|
552
552
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison -- intentional comparison
|
|
553
|
-
export const changeFormatVersionForEditManager = DependentFormatVersion.fromPairs
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
],
|
|
558
|
-
[
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
],
|
|
562
|
-
[
|
|
563
|
-
brand<EditManagerFormatVersion>(EditManagerFormatVersion.vSharedBranches),
|
|
564
|
-
brand<SharedTreeChangeFormatVersion>(4),
|
|
565
|
-
],
|
|
566
|
-
[
|
|
567
|
-
brand<EditManagerFormatVersion>(EditManagerFormatVersion.v6),
|
|
568
|
-
brand<SharedTreeChangeFormatVersion>(5),
|
|
569
|
-
],
|
|
553
|
+
export const changeFormatVersionForEditManager = DependentFormatVersion.fromPairs<
|
|
554
|
+
EditManagerFormatVersion,
|
|
555
|
+
SharedTreeChangeFormatVersion
|
|
556
|
+
>([
|
|
557
|
+
[EditManagerFormatVersion.v3, SharedTreeChangeFormatVersion.v3],
|
|
558
|
+
[EditManagerFormatVersion.v4, SharedTreeChangeFormatVersion.v4],
|
|
559
|
+
[EditManagerFormatVersion.vSharedBranches, SharedTreeChangeFormatVersion.v4],
|
|
560
|
+
[EditManagerFormatVersion.v6, SharedTreeChangeFormatVersion.v5],
|
|
570
561
|
]);
|
|
571
562
|
|
|
572
563
|
/**
|
|
@@ -575,23 +566,14 @@ export const changeFormatVersionForEditManager = DependentFormatVersion.fromPair
|
|
|
575
566
|
* Once an entry is defined and used in production, it cannot be changed.
|
|
576
567
|
* This is because the format for SharedTree changes are not explicitly versioned.
|
|
577
568
|
*/
|
|
578
|
-
export const changeFormatVersionForMessage = DependentFormatVersion.fromPairs
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
],
|
|
583
|
-
[
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
],
|
|
587
|
-
[
|
|
588
|
-
brand<MessageFormatVersion>(MessageFormatVersion.vSharedBranches),
|
|
589
|
-
brand<SharedTreeChangeFormatVersion>(4),
|
|
590
|
-
],
|
|
591
|
-
[
|
|
592
|
-
brand<MessageFormatVersion>(MessageFormatVersion.v6),
|
|
593
|
-
brand<SharedTreeChangeFormatVersion>(5),
|
|
594
|
-
],
|
|
569
|
+
export const changeFormatVersionForMessage = DependentFormatVersion.fromPairs<
|
|
570
|
+
MessageFormatVersion,
|
|
571
|
+
SharedTreeChangeFormatVersion
|
|
572
|
+
>([
|
|
573
|
+
[MessageFormatVersion.v3, SharedTreeChangeFormatVersion.v3],
|
|
574
|
+
[MessageFormatVersion.v4, SharedTreeChangeFormatVersion.v4],
|
|
575
|
+
[MessageFormatVersion.vSharedBranches, SharedTreeChangeFormatVersion.v4],
|
|
576
|
+
[MessageFormatVersion.v6, SharedTreeChangeFormatVersion.v5],
|
|
595
577
|
]);
|
|
596
578
|
|
|
597
579
|
function getCodecTreeForEditManagerFormat(clientVersion: MinimumVersionForCollab): CodecTree {
|
|
@@ -631,7 +613,7 @@ export function getCodecTreeForSharedTreeFormat(
|
|
|
631
613
|
* Configuration options for SharedTree.
|
|
632
614
|
* @beta @input
|
|
633
615
|
*/
|
|
634
|
-
export type SharedTreeOptionsBeta = ForestOptions
|
|
616
|
+
export type SharedTreeOptionsBeta = ForestOptions & Partial<CodecWriteOptionsBeta>;
|
|
635
617
|
|
|
636
618
|
/**
|
|
637
619
|
* Configuration options for SharedTree with alpha features.
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
type TreeStoredSchema,
|
|
24
24
|
} from "../core/index.js";
|
|
25
25
|
import {
|
|
26
|
-
|
|
26
|
+
ModularChangeFormatVersion,
|
|
27
27
|
type ModularChangeset,
|
|
28
28
|
type SchemaChange,
|
|
29
29
|
defaultSchemaPolicy,
|
|
@@ -32,10 +32,10 @@ import {
|
|
|
32
32
|
makeSchemaChangeCodecs,
|
|
33
33
|
} from "../feature-libraries/index.js";
|
|
34
34
|
import {
|
|
35
|
-
|
|
36
|
-
type Brand,
|
|
35
|
+
strictEnum,
|
|
37
36
|
type JsonCompatibleReadOnly,
|
|
38
37
|
type Mutable,
|
|
38
|
+
type Values,
|
|
39
39
|
} from "../util/index.js";
|
|
40
40
|
|
|
41
41
|
import {
|
|
@@ -75,7 +75,32 @@ interface ChangeFormatDependencies {
|
|
|
75
75
|
readonly schemaChange: SchemaFormatVersion;
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
|
|
78
|
+
/**
|
|
79
|
+
* The format version for `SharedTreeChange`.
|
|
80
|
+
*/
|
|
81
|
+
export const SharedTreeChangeFormatVersion = strictEnum("SharedTreeChangeFormatVersion", {
|
|
82
|
+
/**
|
|
83
|
+
* Introduced prior to 2.0 and used beyond.
|
|
84
|
+
* Reading capability must be maintained for backwards compatibility.
|
|
85
|
+
* Writing capability needs to be maintained so long as {@link lowestMinVersionForCollab} is less than 2.2.0.
|
|
86
|
+
*/
|
|
87
|
+
v3: 3,
|
|
88
|
+
/**
|
|
89
|
+
* Introduced in 2.2.0.
|
|
90
|
+
* Was inadvertently made usable for writing in 2.43.0 (through configuredSharedTree) and remains available.
|
|
91
|
+
* Reading capability must be maintained for backwards compatibility.
|
|
92
|
+
* Writing capability could be dropped in favor of {@link SharedTreeChangeFormatVersion.v3},
|
|
93
|
+
* but doing so would make the pattern of writable versions more complex and gain little
|
|
94
|
+
* because the logic for this format is shared with {@link SharedTreeChangeFormatVersion.v3}.
|
|
95
|
+
*/
|
|
96
|
+
v4: 4,
|
|
97
|
+
/**
|
|
98
|
+
* Introduced and made available for writing in 2.80.0
|
|
99
|
+
* Adds support for "no change" constraints.
|
|
100
|
+
*/
|
|
101
|
+
v5: 5,
|
|
102
|
+
});
|
|
103
|
+
export type SharedTreeChangeFormatVersion = Values<typeof SharedTreeChangeFormatVersion>;
|
|
79
104
|
|
|
80
105
|
/**
|
|
81
106
|
* Defines for each SharedTree change format the corresponding dependent formats to use.
|
|
@@ -83,13 +108,22 @@ export type SharedTreeChangeFormatVersion = Brand<3 | 4 | 5, "SharedTreeChangeFo
|
|
|
83
108
|
* Once an entry is defined and used in production, it cannot be changed.
|
|
84
109
|
* This is because the format for the dependent formats are not explicitly versioned.
|
|
85
110
|
*/
|
|
86
|
-
export const dependenciesForChangeFormat
|
|
111
|
+
export const dependenciesForChangeFormat = new Map<
|
|
87
112
|
SharedTreeChangeFormatVersion,
|
|
88
113
|
ChangeFormatDependencies
|
|
89
|
-
>
|
|
90
|
-
[
|
|
91
|
-
|
|
92
|
-
|
|
114
|
+
>([
|
|
115
|
+
[
|
|
116
|
+
SharedTreeChangeFormatVersion.v3,
|
|
117
|
+
{ modularChange: ModularChangeFormatVersion.v3, schemaChange: SchemaFormatVersion.v1 },
|
|
118
|
+
],
|
|
119
|
+
[
|
|
120
|
+
SharedTreeChangeFormatVersion.v4,
|
|
121
|
+
{ modularChange: ModularChangeFormatVersion.v4, schemaChange: SchemaFormatVersion.v1 },
|
|
122
|
+
],
|
|
123
|
+
[
|
|
124
|
+
SharedTreeChangeFormatVersion.v5,
|
|
125
|
+
{ modularChange: ModularChangeFormatVersion.v5, schemaChange: SchemaFormatVersion.v1 },
|
|
126
|
+
],
|
|
93
127
|
]);
|
|
94
128
|
|
|
95
129
|
export function getCodecTreeForChangeFormat(
|
package/src/shared-tree/tree.ts
CHANGED
|
@@ -467,7 +467,7 @@ function runTransactionInCheckout<TResult>(
|
|
|
467
467
|
transaction: () => TResult | typeof rollback,
|
|
468
468
|
preconditions: readonly TransactionConstraint[],
|
|
469
469
|
): TResult | typeof rollback {
|
|
470
|
-
checkout.transaction.start();
|
|
470
|
+
checkout.transaction.start(false);
|
|
471
471
|
addConstraintsToTransaction(checkout, false, preconditions);
|
|
472
472
|
|
|
473
473
|
let result: ReturnType<typeof transaction>;
|
|
@@ -388,6 +388,14 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
388
388
|
|
|
389
389
|
private editLock: EditLock;
|
|
390
390
|
|
|
391
|
+
/**
|
|
392
|
+
* User-defined label associated with the transaction whose commit is currently being produced for this checkout.
|
|
393
|
+
*
|
|
394
|
+
* @remarks
|
|
395
|
+
* This label is used to implement {@link TreeCheckout.runWithTransactionLabel}.
|
|
396
|
+
*/
|
|
397
|
+
private transactionLabel?: unknown;
|
|
398
|
+
|
|
391
399
|
private readonly views = new Set<TreeView<ImplicitFieldSchema>>();
|
|
392
400
|
|
|
393
401
|
/**
|
|
@@ -439,6 +447,34 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
439
447
|
this.registerForBranchEvents();
|
|
440
448
|
}
|
|
441
449
|
|
|
450
|
+
/**
|
|
451
|
+
* Helper method for {@link SchematizingSimpleTreeView.runTransaction} to properly clear transaction labels once the function completes.
|
|
452
|
+
*
|
|
453
|
+
* @remarks
|
|
454
|
+
* The label is stored during the execution of the function and will be included in the {@link ChangeMetadata} of the transaction.
|
|
455
|
+
*
|
|
456
|
+
* Labels supplied to nested transactions are ignored - only the outermost transaction label is ever used.
|
|
457
|
+
*
|
|
458
|
+
* @param fn - The function to execute. It receives the user provided transaction label as an optional parameter.
|
|
459
|
+
* @param label - The label to associate with the outermost transaction.
|
|
460
|
+
* @returns The result of executing `fn`.
|
|
461
|
+
*/
|
|
462
|
+
public runWithTransactionLabel<TLabel, TResult>(
|
|
463
|
+
fn: (label?: TLabel) => TResult,
|
|
464
|
+
label: TLabel | undefined,
|
|
465
|
+
): TResult {
|
|
466
|
+
// If a transaction label is already set, nesting is occurring, so we should not override it.
|
|
467
|
+
if (this.transactionLabel !== undefined) {
|
|
468
|
+
return fn(this.transactionLabel as TLabel);
|
|
469
|
+
}
|
|
470
|
+
this.transactionLabel = label;
|
|
471
|
+
try {
|
|
472
|
+
return fn(this.transactionLabel as TLabel);
|
|
473
|
+
} finally {
|
|
474
|
+
this.transactionLabel = undefined;
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
|
|
442
478
|
public get removedRoots(): ReadOnlyDetachedFieldIndex {
|
|
443
479
|
return this._removedRoots;
|
|
444
480
|
}
|
|
@@ -464,16 +500,23 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
464
500
|
: undefined;
|
|
465
501
|
// When each transaction is started, make a restorable checkpoint of the current state of removed roots
|
|
466
502
|
const restoreRemovedRoots = this._removedRoots.createCheckpoint();
|
|
467
|
-
return (result) => {
|
|
503
|
+
return (result, viewUpdate: SharedTreeChange | undefined) => {
|
|
504
|
+
const newHead = this.#transaction.branch.getHead();
|
|
468
505
|
switch (result) {
|
|
469
506
|
case TransactionResult.Abort: {
|
|
470
507
|
restoreRemovedRoots();
|
|
508
|
+
if (viewUpdate !== undefined) {
|
|
509
|
+
this.applyChange(viewUpdate, newHead.revision);
|
|
510
|
+
}
|
|
471
511
|
break;
|
|
472
512
|
}
|
|
473
513
|
case TransactionResult.Commit: {
|
|
514
|
+
if (viewUpdate !== undefined) {
|
|
515
|
+
this.applyChange(viewUpdate, newHead.revision);
|
|
516
|
+
}
|
|
474
517
|
if (!this.transaction.isInProgress()) {
|
|
475
518
|
// The changes in a transaction squash commit have already applied to the checkout and are known to be valid, so we can validate the squash commit automatically.
|
|
476
|
-
this.validateCommit(
|
|
519
|
+
this.validateCommit(newHead);
|
|
477
520
|
}
|
|
478
521
|
break;
|
|
479
522
|
}
|
|
@@ -570,6 +613,7 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
570
613
|
} satisfies SerializedChange;
|
|
571
614
|
},
|
|
572
615
|
getRevertible: (onDisposed) => getRevertible?.(onDisposed),
|
|
616
|
+
label: this.transactionLabel,
|
|
573
617
|
};
|
|
574
618
|
|
|
575
619
|
this.#events.emit("changed", metadata, getRevertible);
|
|
@@ -577,7 +621,10 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
577
621
|
}
|
|
578
622
|
} else if (this.isRemoteChangeEvent(event)) {
|
|
579
623
|
// TODO: figure out how to plumb through commit kind info for remote changes
|
|
580
|
-
this.#events.emit("changed", {
|
|
624
|
+
this.#events.emit("changed", {
|
|
625
|
+
isLocal: false,
|
|
626
|
+
kind: CommitKind.Default,
|
|
627
|
+
});
|
|
581
628
|
}
|
|
582
629
|
};
|
|
583
630
|
|
|
@@ -126,7 +126,7 @@ export class EditManagerSummarizer<TChangeset>
|
|
|
126
126
|
0x42c /* There should not already be stored EditManager data when loading from summary */,
|
|
127
127
|
);
|
|
128
128
|
|
|
129
|
-
const summary = parse(bufferToString(schemaBuffer, "
|
|
129
|
+
const summary = parse(bufferToString(schemaBuffer, "utf8")) as JsonCompatibleReadOnly;
|
|
130
130
|
const data = this.codec.decode(summary, { idCompressor: this.idCompressor });
|
|
131
131
|
this.editManager.loadSummaryData(data);
|
|
132
132
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { assert } from "@fluidframework/core-utils/internal";
|
|
7
|
-
import {
|
|
7
|
+
import type { TAnySchema } from "@sinclair/typebox";
|
|
8
8
|
|
|
9
9
|
import { type ICodecOptions, type IJsonCodec, withSchemaValidation } from "../codec/index.js";
|
|
10
10
|
import type {
|
|
@@ -14,6 +14,7 @@ import type {
|
|
|
14
14
|
RevisionTag,
|
|
15
15
|
} from "../core/index.js";
|
|
16
16
|
import type { JsonCompatibleReadOnly } from "../util/index.js";
|
|
17
|
+
import { JsonCompatibleReadOnlySchema } from "../util/index.js";
|
|
17
18
|
|
|
18
19
|
import type { MessageEncodingContext } from "./messageCodecs.js";
|
|
19
20
|
import type { MessageFormatVersion } from "./messageFormat.js";
|
|
@@ -43,12 +44,12 @@ export function makeV1ToV4CodecWithVersion<TChangeset>(
|
|
|
43
44
|
> {
|
|
44
45
|
return withSchemaValidation<
|
|
45
46
|
DecodedMessage<TChangeset>,
|
|
46
|
-
TAnySchema,
|
|
47
|
+
TAnySchema | typeof JsonCompatibleReadOnlySchema,
|
|
47
48
|
JsonCompatibleReadOnly,
|
|
48
49
|
JsonCompatibleReadOnly,
|
|
49
50
|
MessageEncodingContext
|
|
50
51
|
>(
|
|
51
|
-
Message(changeCodec.encodedSchema ??
|
|
52
|
+
Message(changeCodec.encodedSchema ?? JsonCompatibleReadOnlySchema),
|
|
52
53
|
{
|
|
53
54
|
encode: (decoded: DecodedMessage<TChangeset>, context: MessageEncodingContext) => {
|
|
54
55
|
assert(decoded.type === "commit", 0xc68 /* Only commit messages are supported */);
|