@fluidframework/tree 2.0.0-dev-rc.3.0.0.254674 → 2.0.0-dev-rc.4.0.0.261659
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/.eslintrc.cjs +29 -0
- package/.vscode/settings.json +3 -0
- package/CHANGELOG.md +74 -0
- package/README.md +17 -5
- package/api-report/tree.api.md +86 -86
- package/beta.d.ts +11 -0
- package/dist/beta.d.ts +23 -20
- package/dist/core/change-family/changeFamily.d.ts +2 -1
- package/dist/core/change-family/changeFamily.d.ts.map +1 -1
- package/dist/core/change-family/changeFamily.js.map +1 -1
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +3 -1
- package/dist/core/index.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/index.d.ts +1 -1
- package/dist/core/rebase/index.d.ts.map +1 -1
- package/dist/core/rebase/index.js +2 -1
- package/dist/core/rebase/index.js.map +1 -1
- package/dist/core/rebase/revisionTagCodec.d.ts.map +1 -1
- package/dist/core/rebase/revisionTagCodec.js.map +1 -1
- package/dist/core/rebase/types.d.ts +1 -0
- package/dist/core/rebase/types.d.ts.map +1 -1
- package/dist/core/rebase/types.js +12 -1
- package/dist/core/rebase/types.js.map +1 -1
- package/dist/core/rebase/utils.d.ts +2 -2
- package/dist/core/rebase/utils.d.ts.map +1 -1
- package/dist/core/rebase/utils.js +16 -9
- package/dist/core/rebase/utils.js.map +1 -1
- package/dist/core/rebase/verifyChangeRebaser.js +1 -1
- package/dist/core/rebase/verifyChangeRebaser.js.map +1 -1
- package/dist/core/schema-stored/index.d.ts +1 -1
- package/dist/core/schema-stored/index.d.ts.map +1 -1
- package/dist/core/schema-stored/index.js +2 -1
- package/dist/core/schema-stored/index.js.map +1 -1
- package/dist/core/schema-stored/schema.d.ts +7 -7
- package/dist/core/schema-stored/schema.d.ts.map +1 -1
- package/dist/core/schema-stored/schema.js +14 -7
- package/dist/core/schema-stored/schema.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodec.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodec.js +1 -0
- package/dist/core/tree/detachedFieldIndexCodec.js.map +1 -1
- package/dist/core/tree/treeTextFormat.d.ts +2 -0
- package/dist/core/tree/treeTextFormat.d.ts.map +1 -1
- package/dist/core/tree/treeTextFormat.js.map +1 -1
- package/dist/core/tree/visitDelta.js +3 -3
- package/dist/core/tree/visitDelta.js.map +1 -1
- package/dist/domains/json/jsonCursor.d.ts.map +1 -1
- package/dist/domains/json/jsonCursor.js +2 -1
- package/dist/domains/json/jsonCursor.js.map +1 -1
- package/dist/feature-libraries/changeAtomIdCodec.js +2 -2
- package/dist/feature-libraries/changeAtomIdCodec.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/codecs.js +1 -1
- package/dist/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
- package/dist/feature-libraries/contextuallyTyped.d.ts.map +1 -1
- package/dist/feature-libraries/contextuallyTyped.js +1 -1
- package/dist/feature-libraries/contextuallyTyped.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js +2 -2
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js +18 -7
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/dist/feature-libraries/default-schema/noChangeCodecs.js +1 -1
- package/dist/feature-libraries/default-schema/noChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/default-schema/schemaChecker.d.ts +27 -0
- package/dist/feature-libraries/default-schema/schemaChecker.d.ts.map +1 -0
- package/dist/feature-libraries/default-schema/schemaChecker.js +120 -0
- package/dist/feature-libraries/default-schema/schemaChecker.js.map +1 -0
- package/dist/feature-libraries/deltaUtils.d.ts +2 -2
- package/dist/feature-libraries/deltaUtils.d.ts.map +1 -1
- package/dist/feature-libraries/deltaUtils.js +2 -2
- package/dist/feature-libraries/deltaUtils.js.map +1 -1
- package/dist/feature-libraries/editableTreeBinder.d.ts.map +1 -1
- package/dist/feature-libraries/editableTreeBinder.js +1 -1
- package/dist/feature-libraries/editableTreeBinder.js.map +1 -1
- package/dist/feature-libraries/flex-tree/context.d.ts +4 -5
- package/dist/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/context.js +5 -13
- package/dist/feature-libraries/flex-tree/context.js.map +1 -1
- package/dist/feature-libraries/flex-tree/index.d.ts +0 -1
- package/dist/feature-libraries/flex-tree/index.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/index.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.js +2 -2
- package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyNode.js +3 -3
- package/dist/feature-libraries/flex-tree/lazyNode.js.map +1 -1
- package/dist/feature-libraries/flex-tree/utilities.d.ts +2 -2
- package/dist/feature-libraries/flex-tree/utilities.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/utilities.js +5 -5
- package/dist/feature-libraries/flex-tree/utilities.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 +3 -3
- 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 +1 -0
- package/dist/feature-libraries/mitigatedChangeFamily.js.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts +9 -10
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.js +4 -3
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKind.js +16 -9
- package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.js +2 -2
- package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.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/modularChangeCodecs.js +25 -10
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +14 -8
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js +149 -121
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts +0 -8
- package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormat.js +0 -10
- package/dist/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -1
- package/dist/feature-libraries/node-key/nodeKeyManager.d.ts +8 -0
- package/dist/feature-libraries/node-key/nodeKeyManager.d.ts.map +1 -1
- package/dist/feature-libraries/node-key/nodeKeyManager.js +24 -2
- package/dist/feature-libraries/node-key/nodeKeyManager.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalField.d.ts +2 -2
- package/dist/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalField.js +85 -63
- package/dist/feature-libraries/optional-field/optionalField.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts +5 -13
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.js +12 -19
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.js.map +1 -1
- package/dist/feature-libraries/optional-field/{optionalFieldChangeFormatV0.d.ts → optionalFieldChangeFormatV2.d.ts} +14 -6
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts.map +1 -0
- package/dist/feature-libraries/optional-field/{optionalFieldChangeFormatV0.js → optionalFieldChangeFormatV2.js} +20 -13
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.js.map +1 -0
- package/dist/feature-libraries/optional-field/optionalFieldCodecV1.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecV1.js +97 -26
- package/dist/feature-libraries/optional-field/optionalFieldCodecV1.js.map +1 -1
- package/dist/feature-libraries/optional-field/{optionalFieldCodecV0.d.ts → optionalFieldCodecV2.d.ts} +2 -2
- package/dist/feature-libraries/optional-field/optionalFieldCodecV2.d.ts.map +1 -0
- package/dist/feature-libraries/optional-field/optionalFieldCodecV2.js +87 -0
- package/dist/feature-libraries/optional-field/optionalFieldCodecV2.js.map +1 -0
- package/dist/feature-libraries/optional-field/optionalFieldCodecs.js +2 -2
- package/dist/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js +2 -2
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/schema-index/codec.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/codec.js +1 -1
- package/dist/feature-libraries/schema-index/codec.js.map +1 -1
- package/dist/feature-libraries/sequence-field/compose.d.ts +3 -4
- package/dist/feature-libraries/sequence-field/compose.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/compose.js +99 -68
- package/dist/feature-libraries/sequence-field/compose.js.map +1 -1
- package/dist/feature-libraries/sequence-field/invert.d.ts +2 -2
- package/dist/feature-libraries/sequence-field/invert.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/invert.js +20 -20
- package/dist/feature-libraries/sequence-field/invert.js.map +1 -1
- package/dist/feature-libraries/sequence-field/markQueue.d.ts +1 -3
- package/dist/feature-libraries/sequence-field/markQueue.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/markQueue.js +2 -3
- package/dist/feature-libraries/sequence-field/markQueue.js.map +1 -1
- package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts +13 -2
- package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/moveEffectTable.js +18 -9
- package/dist/feature-libraries/sequence-field/moveEffectTable.js.map +1 -1
- package/dist/feature-libraries/sequence-field/rebase.d.ts +1 -2
- package/dist/feature-libraries/sequence-field/rebase.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/rebase.js +55 -62
- package/dist/feature-libraries/sequence-field/rebase.js.map +1 -1
- package/dist/feature-libraries/sequence-field/relevantRemovedRoots.d.ts +2 -2
- package/dist/feature-libraries/sequence-field/relevantRemovedRoots.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/relevantRemovedRoots.js +2 -2
- package/dist/feature-libraries/sequence-field/relevantRemovedRoots.js.map +1 -1
- package/dist/feature-libraries/sequence-field/replaceRevisions.d.ts +8 -0
- package/dist/feature-libraries/sequence-field/replaceRevisions.d.ts.map +1 -0
- package/dist/feature-libraries/sequence-field/replaceRevisions.js +63 -0
- package/dist/feature-libraries/sequence-field/replaceRevisions.js.map +1 -0
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts +2 -0
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js +2 -0
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.js +24 -29
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts +2 -2
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js +7 -7
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
- package/dist/feature-libraries/sequence-field/utils.d.ts +16 -9
- package/dist/feature-libraries/sequence-field/utils.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/utils.js +50 -32
- package/dist/feature-libraries/sequence-field/utils.js.map +1 -1
- package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts +1 -1
- package/dist/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -1
- package/dist/feature-libraries/valueUtilities.d.ts +1 -2
- package/dist/feature-libraries/valueUtilities.d.ts.map +1 -1
- package/dist/feature-libraries/valueUtilities.js +7 -25
- package/dist/feature-libraries/valueUtilities.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -5
- package/dist/index.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/public.d.ts +22 -1
- package/dist/shared-tree/defaultCommitEnricher.d.ts +91 -0
- package/dist/shared-tree/defaultCommitEnricher.d.ts.map +1 -0
- package/dist/shared-tree/defaultCommitEnricher.js +121 -0
- package/dist/shared-tree/defaultCommitEnricher.js.map +1 -0
- 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 +2 -1
- package/dist/shared-tree/index.js.map +1 -1
- package/dist/shared-tree/schematizingTreeView.js +1 -1
- package/dist/shared-tree/schematizingTreeView.js.map +1 -1
- package/dist/shared-tree/sharedTree.d.ts +9 -3
- package/dist/shared-tree/sharedTree.d.ts.map +1 -1
- package/dist/shared-tree/sharedTree.js +18 -7
- package/dist/shared-tree/sharedTree.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.js +7 -2
- package/dist/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeEnricher.d.ts +24 -0
- package/dist/shared-tree/sharedTreeChangeEnricher.d.ts.map +1 -0
- package/dist/shared-tree/sharedTreeChangeEnricher.js +65 -0
- package/dist/shared-tree/sharedTreeChangeEnricher.js.map +1 -0
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts +12 -3
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.js +83 -7
- package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/dist/shared-tree/treeApi.d.ts +261 -8
- package/dist/shared-tree/treeApi.d.ts.map +1 -1
- package/dist/shared-tree/treeApi.js +52 -18
- 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 +9 -11
- package/dist/shared-tree/treeCheckout.js.map +1 -1
- package/dist/shared-tree/treeView.d.ts +1 -1
- package/dist/shared-tree/treeView.js.map +1 -1
- package/dist/shared-tree-core/branch.d.ts +22 -2
- package/dist/shared-tree-core/branch.d.ts.map +1 -1
- package/dist/shared-tree-core/branch.js +18 -12
- package/dist/shared-tree-core/branch.js.map +1 -1
- package/dist/shared-tree-core/commitEnricher.d.ts +35 -0
- package/dist/shared-tree-core/commitEnricher.d.ts.map +1 -0
- package/dist/shared-tree-core/commitEnricher.js +7 -0
- package/dist/shared-tree-core/commitEnricher.js.map +1 -0
- package/dist/shared-tree-core/editManager.d.ts +8 -5
- package/dist/shared-tree-core/editManager.d.ts.map +1 -1
- package/dist/shared-tree-core/editManager.js +11 -3
- package/dist/shared-tree-core/editManager.js.map +1 -1
- package/dist/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerCodecs.js +28 -10
- package/dist/shared-tree-core/editManagerCodecs.js.map +1 -1
- package/dist/shared-tree-core/editManagerFormat.d.ts +2 -3
- package/dist/shared-tree-core/editManagerFormat.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerFormat.js +2 -3
- package/dist/shared-tree-core/editManagerFormat.js.map +1 -1
- package/dist/shared-tree-core/index.d.ts +1 -0
- package/dist/shared-tree-core/index.d.ts.map +1 -1
- package/dist/shared-tree-core/index.js.map +1 -1
- package/dist/shared-tree-core/messageCodecs.d.ts.map +1 -1
- package/dist/shared-tree-core/messageCodecs.js +16 -7
- package/dist/shared-tree-core/messageCodecs.js.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.d.ts +12 -5
- package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.js +50 -15
- package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/dist/simple-tree/arrayNode.d.ts +12 -4
- package/dist/simple-tree/arrayNode.d.ts.map +1 -1
- package/dist/simple-tree/arrayNode.js +227 -233
- package/dist/simple-tree/arrayNode.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 +1 -3
- package/dist/simple-tree/index.js.map +1 -1
- package/dist/simple-tree/leafNodeSchema.js +1 -1
- package/dist/simple-tree/leafNodeSchema.js.map +1 -1
- package/dist/simple-tree/mapNode.d.ts +3 -11
- package/dist/simple-tree/mapNode.d.ts.map +1 -1
- package/dist/simple-tree/mapNode.js +84 -133
- package/dist/simple-tree/mapNode.js.map +1 -1
- package/dist/{feature-libraries/flex-tree → simple-tree}/nodeKeys.d.ts +9 -11
- package/dist/simple-tree/nodeKeys.d.ts.map +1 -0
- package/dist/simple-tree/nodeKeys.js +7 -0
- package/dist/simple-tree/nodeKeys.js.map +1 -0
- package/dist/simple-tree/objectNode.d.ts +16 -5
- package/dist/simple-tree/objectNode.d.ts.map +1 -1
- package/dist/simple-tree/objectNode.js +105 -76
- package/dist/simple-tree/objectNode.js.map +1 -1
- package/dist/simple-tree/proxies.d.ts +1 -1
- package/dist/simple-tree/proxies.d.ts.map +1 -1
- package/dist/simple-tree/proxies.js +7 -6
- package/dist/simple-tree/proxies.js.map +1 -1
- package/dist/simple-tree/proxyBinding.d.ts +2 -2
- package/dist/simple-tree/proxyBinding.d.ts.map +1 -1
- package/dist/simple-tree/proxyBinding.js +3 -3
- package/dist/simple-tree/proxyBinding.js.map +1 -1
- package/dist/simple-tree/schemaCaching.js +2 -2
- package/dist/simple-tree/schemaCaching.js.map +1 -1
- package/dist/simple-tree/schemaFactory.d.ts +74 -40
- package/dist/simple-tree/schemaFactory.d.ts.map +1 -1
- package/dist/simple-tree/schemaFactory.js +87 -83
- package/dist/simple-tree/schemaFactory.js.map +1 -1
- package/dist/simple-tree/schemaFactoryRecursive.d.ts +25 -82
- package/dist/simple-tree/schemaFactoryRecursive.d.ts.map +1 -1
- package/dist/simple-tree/schemaFactoryRecursive.js +3 -117
- package/dist/simple-tree/schemaFactoryRecursive.js.map +1 -1
- package/dist/simple-tree/schemaTypes.d.ts +13 -17
- package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
- package/dist/simple-tree/schemaTypes.js +10 -3
- package/dist/simple-tree/schemaTypes.js.map +1 -1
- package/dist/simple-tree/testRecursiveDomain.js +2 -2
- package/dist/simple-tree/testRecursiveDomain.js.map +1 -1
- package/dist/simple-tree/toMapTree.d.ts.map +1 -1
- package/dist/simple-tree/toMapTree.js +7 -6
- package/dist/simple-tree/toMapTree.js.map +1 -1
- package/dist/simple-tree/treeApi.d.ts +6 -3
- package/dist/simple-tree/treeApi.d.ts.map +1 -1
- package/dist/simple-tree/treeApi.js +6 -3
- package/dist/simple-tree/treeApi.js.map +1 -1
- package/dist/simple-tree/types.d.ts +63 -0
- package/dist/simple-tree/types.d.ts.map +1 -1
- package/dist/simple-tree/types.js +109 -1
- package/dist/simple-tree/types.js.map +1 -1
- package/dist/simple-tree/typesUnsafe.d.ts +13 -13
- package/dist/simple-tree/typesUnsafe.js.map +1 -1
- package/dist/treeFactory.d.ts +1 -1
- package/dist/treeFactory.d.ts.map +1 -1
- package/dist/treeFactory.js +12 -14
- package/dist/treeFactory.js.map +1 -1
- package/dist/util/brand.d.ts +7 -86
- package/dist/util/brand.d.ts.map +1 -1
- package/dist/util/brand.js +2 -53
- package/dist/util/brand.js.map +1 -1
- package/dist/util/index.d.ts +1 -1
- package/dist/util/index.d.ts.map +1 -1
- package/dist/util/index.js +2 -5
- package/dist/util/index.js.map +1 -1
- package/dist/util/opaque.d.ts +5 -5
- package/dist/util/opaque.d.ts.map +1 -1
- package/dist/util/opaque.js.map +1 -1
- package/dist/util/utils.d.ts +2 -2
- package/dist/util/utils.js +2 -2
- package/dist/util/utils.js.map +1 -1
- package/docs/.attachments/merge-semantics.drawio +835 -0
- package/docs/.attachments/ms-set-color-red-and-blue.png +0 -0
- package/docs/.attachments/ms-set-color-red-then-blue.png +0 -0
- package/docs/.attachments/ms-set-color-red.png +0 -0
- package/docs/SharedTree Philosophy.md +319 -0
- package/docs/main/merge-semantics.md +529 -0
- package/docs/main/sequence-field/move-composition.md +46 -0
- package/internal.d.ts +11 -0
- package/lib/beta.d.ts +23 -20
- package/lib/core/change-family/changeFamily.d.ts +2 -1
- package/lib/core/change-family/changeFamily.d.ts.map +1 -1
- package/lib/core/change-family/changeFamily.js.map +1 -1
- package/lib/core/index.d.ts +2 -2
- package/lib/core/index.d.ts.map +1 -1
- package/lib/core/index.js +2 -2
- package/lib/core/index.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/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/revisionTagCodec.d.ts.map +1 -1
- package/lib/core/rebase/revisionTagCodec.js.map +1 -1
- package/lib/core/rebase/types.d.ts +1 -0
- package/lib/core/rebase/types.d.ts.map +1 -1
- package/lib/core/rebase/types.js +10 -0
- package/lib/core/rebase/types.js.map +1 -1
- package/lib/core/rebase/utils.d.ts +2 -2
- package/lib/core/rebase/utils.d.ts.map +1 -1
- package/lib/core/rebase/utils.js +17 -10
- package/lib/core/rebase/utils.js.map +1 -1
- package/lib/core/rebase/verifyChangeRebaser.js +1 -1
- package/lib/core/rebase/verifyChangeRebaser.js.map +1 -1
- package/lib/core/schema-stored/index.d.ts +1 -1
- package/lib/core/schema-stored/index.d.ts.map +1 -1
- package/lib/core/schema-stored/index.js +1 -1
- package/lib/core/schema-stored/index.js.map +1 -1
- package/lib/core/schema-stored/schema.d.ts +7 -7
- package/lib/core/schema-stored/schema.d.ts.map +1 -1
- package/lib/core/schema-stored/schema.js +13 -7
- package/lib/core/schema-stored/schema.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodec.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodec.js +1 -0
- package/lib/core/tree/detachedFieldIndexCodec.js.map +1 -1
- package/lib/core/tree/treeTextFormat.d.ts +2 -0
- package/lib/core/tree/treeTextFormat.d.ts.map +1 -1
- package/lib/core/tree/treeTextFormat.js.map +1 -1
- package/lib/core/tree/visitDelta.js +3 -3
- package/lib/core/tree/visitDelta.js.map +1 -1
- package/lib/domains/json/jsonCursor.d.ts.map +1 -1
- package/lib/domains/json/jsonCursor.js +2 -1
- package/lib/domains/json/jsonCursor.js.map +1 -1
- package/lib/feature-libraries/changeAtomIdCodec.js +2 -2
- package/lib/feature-libraries/changeAtomIdCodec.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/codecs.js +1 -1
- package/lib/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
- package/lib/feature-libraries/contextuallyTyped.d.ts.map +1 -1
- package/lib/feature-libraries/contextuallyTyped.js +1 -1
- package/lib/feature-libraries/contextuallyTyped.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js +2 -2
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.js +18 -7
- package/lib/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/lib/feature-libraries/default-schema/noChangeCodecs.js +1 -1
- package/lib/feature-libraries/default-schema/noChangeCodecs.js.map +1 -1
- package/lib/feature-libraries/default-schema/schemaChecker.d.ts +27 -0
- package/lib/feature-libraries/default-schema/schemaChecker.d.ts.map +1 -0
- package/lib/feature-libraries/default-schema/schemaChecker.js +114 -0
- package/lib/feature-libraries/default-schema/schemaChecker.js.map +1 -0
- package/lib/feature-libraries/deltaUtils.d.ts +2 -2
- package/lib/feature-libraries/deltaUtils.d.ts.map +1 -1
- package/lib/feature-libraries/deltaUtils.js +3 -3
- package/lib/feature-libraries/deltaUtils.js.map +1 -1
- package/lib/feature-libraries/editableTreeBinder.d.ts.map +1 -1
- package/lib/feature-libraries/editableTreeBinder.js +1 -1
- package/lib/feature-libraries/editableTreeBinder.js.map +1 -1
- package/lib/feature-libraries/flex-tree/context.d.ts +4 -5
- package/lib/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/context.js +5 -13
- package/lib/feature-libraries/flex-tree/context.js.map +1 -1
- package/lib/feature-libraries/flex-tree/index.d.ts +0 -1
- package/lib/feature-libraries/flex-tree/index.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/index.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.js +2 -2
- package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyNode.js +3 -3
- package/lib/feature-libraries/flex-tree/lazyNode.js.map +1 -1
- package/lib/feature-libraries/flex-tree/utilities.d.ts +2 -2
- package/lib/feature-libraries/flex-tree/utilities.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/utilities.js +5 -5
- package/lib/feature-libraries/flex-tree/utilities.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 +2 -2
- 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 +1 -0
- package/lib/feature-libraries/mitigatedChangeFamily.js.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +9 -10
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.js +4 -3
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKind.js +17 -10
- package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.js +2 -2
- package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.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/modularChangeCodecs.js +25 -10
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +14 -8
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js +151 -123
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts +0 -8
- package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormat.js +0 -10
- package/lib/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -1
- package/lib/feature-libraries/node-key/nodeKeyManager.d.ts +8 -0
- package/lib/feature-libraries/node-key/nodeKeyManager.d.ts.map +1 -1
- package/lib/feature-libraries/node-key/nodeKeyManager.js +24 -3
- package/lib/feature-libraries/node-key/nodeKeyManager.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalField.d.ts +2 -2
- package/lib/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalField.js +86 -64
- package/lib/feature-libraries/optional-field/optionalField.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts +5 -13
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV1.js +11 -18
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV1.js.map +1 -1
- package/lib/feature-libraries/optional-field/{optionalFieldChangeFormatV0.d.ts → optionalFieldChangeFormatV2.d.ts} +14 -6
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts.map +1 -0
- package/lib/feature-libraries/optional-field/{optionalFieldChangeFormatV0.js → optionalFieldChangeFormatV2.js} +19 -12
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.js.map +1 -0
- package/lib/feature-libraries/optional-field/optionalFieldCodecV1.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecV1.js +98 -27
- package/lib/feature-libraries/optional-field/optionalFieldCodecV1.js.map +1 -1
- package/lib/feature-libraries/optional-field/{optionalFieldCodecV0.d.ts → optionalFieldCodecV2.d.ts} +2 -2
- package/lib/feature-libraries/optional-field/optionalFieldCodecV2.d.ts.map +1 -0
- package/lib/feature-libraries/optional-field/optionalFieldCodecV2.js +83 -0
- package/lib/feature-libraries/optional-field/optionalFieldCodecV2.js.map +1 -0
- package/lib/feature-libraries/optional-field/optionalFieldCodecs.js +2 -2
- package/lib/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js +2 -2
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
- package/lib/feature-libraries/schema-index/codec.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/codec.js +3 -3
- package/lib/feature-libraries/schema-index/codec.js.map +1 -1
- package/lib/feature-libraries/sequence-field/compose.d.ts +3 -4
- package/lib/feature-libraries/sequence-field/compose.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/compose.js +99 -68
- package/lib/feature-libraries/sequence-field/compose.js.map +1 -1
- package/lib/feature-libraries/sequence-field/invert.d.ts +2 -2
- package/lib/feature-libraries/sequence-field/invert.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/invert.js +21 -21
- package/lib/feature-libraries/sequence-field/invert.js.map +1 -1
- package/lib/feature-libraries/sequence-field/markQueue.d.ts +1 -3
- package/lib/feature-libraries/sequence-field/markQueue.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/markQueue.js +2 -3
- package/lib/feature-libraries/sequence-field/markQueue.js.map +1 -1
- package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts +13 -2
- package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/moveEffectTable.js +18 -9
- package/lib/feature-libraries/sequence-field/moveEffectTable.js.map +1 -1
- package/lib/feature-libraries/sequence-field/rebase.d.ts +1 -2
- package/lib/feature-libraries/sequence-field/rebase.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/rebase.js +56 -63
- package/lib/feature-libraries/sequence-field/rebase.js.map +1 -1
- package/lib/feature-libraries/sequence-field/relevantRemovedRoots.d.ts +2 -2
- package/lib/feature-libraries/sequence-field/relevantRemovedRoots.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/relevantRemovedRoots.js +2 -2
- package/lib/feature-libraries/sequence-field/relevantRemovedRoots.js.map +1 -1
- package/lib/feature-libraries/sequence-field/replaceRevisions.d.ts +8 -0
- package/lib/feature-libraries/sequence-field/replaceRevisions.d.ts.map +1 -0
- package/lib/feature-libraries/sequence-field/replaceRevisions.js +59 -0
- package/lib/feature-libraries/sequence-field/replaceRevisions.js.map +1 -0
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts +2 -0
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js +2 -0
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.js +25 -30
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts +2 -2
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js +9 -9
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
- package/lib/feature-libraries/sequence-field/utils.d.ts +16 -9
- package/lib/feature-libraries/sequence-field/utils.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/utils.js +47 -30
- package/lib/feature-libraries/sequence-field/utils.js.map +1 -1
- package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts +1 -1
- package/lib/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -1
- package/lib/feature-libraries/valueUtilities.d.ts +1 -2
- package/lib/feature-libraries/valueUtilities.d.ts.map +1 -1
- package/lib/feature-libraries/valueUtilities.js +1 -18
- package/lib/feature-libraries/valueUtilities.js.map +1 -1
- package/lib/index.d.ts +4 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -4
- package/lib/index.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/public.d.ts +22 -1
- package/lib/shared-tree/defaultCommitEnricher.d.ts +91 -0
- package/lib/shared-tree/defaultCommitEnricher.d.ts.map +1 -0
- package/lib/shared-tree/defaultCommitEnricher.js +117 -0
- package/lib/shared-tree/defaultCommitEnricher.js.map +1 -0
- 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 +1 -1
- package/lib/shared-tree/index.js.map +1 -1
- package/lib/shared-tree/schematizingTreeView.js +1 -1
- package/lib/shared-tree/schematizingTreeView.js.map +1 -1
- package/lib/shared-tree/sharedTree.d.ts +9 -3
- package/lib/shared-tree/sharedTree.d.ts.map +1 -1
- package/lib/shared-tree/sharedTree.js +19 -8
- package/lib/shared-tree/sharedTree.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.js +7 -2
- package/lib/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeEnricher.d.ts +24 -0
- package/lib/shared-tree/sharedTreeChangeEnricher.d.ts.map +1 -0
- package/lib/shared-tree/sharedTreeChangeEnricher.js +61 -0
- package/lib/shared-tree/sharedTreeChangeEnricher.js.map +1 -0
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts +12 -3
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.js +82 -7
- package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/lib/shared-tree/treeApi.d.ts +261 -8
- package/lib/shared-tree/treeApi.d.ts.map +1 -1
- package/lib/shared-tree/treeApi.js +52 -19
- 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 +10 -12
- package/lib/shared-tree/treeCheckout.js.map +1 -1
- package/lib/shared-tree/treeView.d.ts +1 -1
- package/lib/shared-tree/treeView.js.map +1 -1
- package/lib/shared-tree-core/branch.d.ts +22 -2
- package/lib/shared-tree-core/branch.d.ts.map +1 -1
- package/lib/shared-tree-core/branch.js +18 -12
- package/lib/shared-tree-core/branch.js.map +1 -1
- package/lib/shared-tree-core/commitEnricher.d.ts +35 -0
- package/lib/shared-tree-core/commitEnricher.d.ts.map +1 -0
- package/lib/shared-tree-core/commitEnricher.js +6 -0
- package/lib/shared-tree-core/commitEnricher.js.map +1 -0
- package/lib/shared-tree-core/editManager.d.ts +8 -5
- package/lib/shared-tree-core/editManager.d.ts.map +1 -1
- package/lib/shared-tree-core/editManager.js +13 -5
- package/lib/shared-tree-core/editManager.js.map +1 -1
- package/lib/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerCodecs.js +28 -10
- package/lib/shared-tree-core/editManagerCodecs.js.map +1 -1
- package/lib/shared-tree-core/editManagerFormat.d.ts +2 -3
- package/lib/shared-tree-core/editManagerFormat.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerFormat.js +1 -2
- package/lib/shared-tree-core/editManagerFormat.js.map +1 -1
- package/lib/shared-tree-core/index.d.ts +1 -0
- package/lib/shared-tree-core/index.d.ts.map +1 -1
- package/lib/shared-tree-core/index.js.map +1 -1
- package/lib/shared-tree-core/messageCodecs.d.ts.map +1 -1
- package/lib/shared-tree-core/messageCodecs.js +16 -7
- package/lib/shared-tree-core/messageCodecs.js.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.d.ts +12 -5
- package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.js +50 -15
- package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/lib/simple-tree/arrayNode.d.ts +12 -4
- package/lib/simple-tree/arrayNode.d.ts.map +1 -1
- package/lib/simple-tree/arrayNode.js +227 -234
- package/lib/simple-tree/arrayNode.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 +0 -1
- package/lib/simple-tree/index.js.map +1 -1
- package/lib/simple-tree/leafNodeSchema.js +1 -1
- package/lib/simple-tree/leafNodeSchema.js.map +1 -1
- package/lib/simple-tree/mapNode.d.ts +3 -11
- package/lib/simple-tree/mapNode.d.ts.map +1 -1
- package/lib/simple-tree/mapNode.js +84 -132
- package/lib/simple-tree/mapNode.js.map +1 -1
- package/lib/{feature-libraries/flex-tree → simple-tree}/nodeKeys.d.ts +9 -11
- package/lib/simple-tree/nodeKeys.d.ts.map +1 -0
- package/lib/simple-tree/nodeKeys.js +6 -0
- package/lib/simple-tree/nodeKeys.js.map +1 -0
- package/lib/simple-tree/objectNode.d.ts +16 -5
- package/lib/simple-tree/objectNode.d.ts.map +1 -1
- package/lib/simple-tree/objectNode.js +104 -76
- package/lib/simple-tree/objectNode.js.map +1 -1
- package/lib/simple-tree/proxies.d.ts +1 -1
- package/lib/simple-tree/proxies.d.ts.map +1 -1
- package/lib/simple-tree/proxies.js +4 -3
- package/lib/simple-tree/proxies.js.map +1 -1
- package/lib/simple-tree/proxyBinding.d.ts +2 -2
- package/lib/simple-tree/proxyBinding.d.ts.map +1 -1
- package/lib/simple-tree/proxyBinding.js +3 -3
- package/lib/simple-tree/proxyBinding.js.map +1 -1
- package/lib/simple-tree/schemaCaching.js +2 -2
- package/lib/simple-tree/schemaCaching.js.map +1 -1
- package/lib/simple-tree/schemaFactory.d.ts +74 -40
- package/lib/simple-tree/schemaFactory.d.ts.map +1 -1
- package/lib/simple-tree/schemaFactory.js +88 -84
- package/lib/simple-tree/schemaFactory.js.map +1 -1
- package/lib/simple-tree/schemaFactoryRecursive.d.ts +25 -82
- package/lib/simple-tree/schemaFactoryRecursive.d.ts.map +1 -1
- package/lib/simple-tree/schemaFactoryRecursive.js +3 -116
- package/lib/simple-tree/schemaFactoryRecursive.js.map +1 -1
- package/lib/simple-tree/schemaTypes.d.ts +13 -17
- package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
- package/lib/simple-tree/schemaTypes.js +14 -3
- package/lib/simple-tree/schemaTypes.js.map +1 -1
- package/lib/simple-tree/testRecursiveDomain.js +2 -2
- package/lib/simple-tree/testRecursiveDomain.js.map +1 -1
- package/lib/simple-tree/toMapTree.d.ts.map +1 -1
- package/lib/simple-tree/toMapTree.js +7 -6
- package/lib/simple-tree/toMapTree.js.map +1 -1
- package/lib/simple-tree/treeApi.d.ts +6 -3
- package/lib/simple-tree/treeApi.d.ts.map +1 -1
- package/lib/simple-tree/treeApi.js +7 -4
- package/lib/simple-tree/treeApi.js.map +1 -1
- package/lib/simple-tree/types.d.ts +63 -0
- package/lib/simple-tree/types.d.ts.map +1 -1
- package/lib/simple-tree/types.js +106 -0
- package/lib/simple-tree/types.js.map +1 -1
- package/lib/simple-tree/typesUnsafe.d.ts +13 -13
- package/lib/simple-tree/typesUnsafe.js.map +1 -1
- package/lib/treeFactory.d.ts +1 -1
- package/lib/treeFactory.d.ts.map +1 -1
- package/lib/treeFactory.js +12 -14
- package/lib/treeFactory.js.map +1 -1
- package/lib/util/brand.d.ts +7 -86
- package/lib/util/brand.d.ts.map +1 -1
- package/lib/util/brand.js +1 -49
- package/lib/util/brand.js.map +1 -1
- package/lib/util/index.d.ts +1 -1
- package/lib/util/index.d.ts.map +1 -1
- package/lib/util/index.js +1 -1
- package/lib/util/index.js.map +1 -1
- package/lib/util/opaque.d.ts +5 -5
- package/lib/util/opaque.d.ts.map +1 -1
- package/lib/util/opaque.js.map +1 -1
- package/lib/util/utils.d.ts +2 -2
- package/lib/util/utils.js +2 -2
- package/lib/util/utils.js.map +1 -1
- package/package.json +38 -28
- package/src/core/change-family/changeFamily.ts +2 -1
- package/src/core/forest/README.md +1 -1
- package/src/core/index.ts +2 -1
- package/src/core/rebase/changeRebaser.ts +7 -1
- package/src/core/rebase/index.ts +1 -0
- package/src/core/rebase/revisionTagCodec.ts +1 -0
- package/src/core/rebase/types.ts +17 -0
- package/src/core/rebase/utils.ts +20 -12
- package/src/core/rebase/verifyChangeRebaser.ts +1 -1
- package/src/core/schema-stored/index.ts +1 -1
- package/src/core/schema-stored/schema.ts +21 -18
- package/src/core/tree/detachedFieldIndexCodec.ts +1 -0
- package/src/core/tree/treeTextFormat.ts +2 -0
- package/src/core/tree/visitDelta.ts +3 -3
- package/src/domains/json/jsonCursor.ts +2 -5
- package/src/feature-libraries/changeAtomIdCodec.ts +2 -2
- package/src/feature-libraries/chunked-forest/codec/codecs.ts +1 -1
- package/src/feature-libraries/contextuallyTyped.ts +1 -1
- package/src/feature-libraries/default-schema/defaultEditBuilder.ts +2 -4
- package/src/feature-libraries/default-schema/defaultFieldKinds.ts +18 -7
- package/src/feature-libraries/default-schema/noChangeCodecs.ts +1 -1
- package/src/feature-libraries/default-schema/schemaChecker.ts +140 -0
- package/src/feature-libraries/deltaUtils.ts +3 -12
- package/src/feature-libraries/editableTreeBinder.ts +1 -1
- package/src/feature-libraries/flex-tree/context.ts +6 -13
- package/src/feature-libraries/flex-tree/index.ts +0 -2
- package/src/feature-libraries/flex-tree/lazyField.ts +2 -2
- package/src/feature-libraries/flex-tree/lazyNode.ts +3 -3
- package/src/feature-libraries/flex-tree/utilities.ts +5 -6
- package/src/feature-libraries/index.ts +2 -2
- package/src/feature-libraries/mitigatedChangeFamily.ts +8 -1
- package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +18 -15
- package/src/feature-libraries/modular-schema/genericFieldKind.ts +33 -26
- package/src/feature-libraries/modular-schema/genericFieldKindCodecs.ts +2 -2
- package/src/feature-libraries/modular-schema/index.ts +1 -0
- package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +35 -13
- package/src/feature-libraries/modular-schema/modularChangeFamily.ts +213 -213
- package/src/feature-libraries/modular-schema/modularChangeFormat.ts +0 -20
- package/src/feature-libraries/node-key/nodeKeyManager.ts +37 -2
- package/src/feature-libraries/optional-field/optionalField.ts +112 -94
- package/src/feature-libraries/optional-field/optionalFieldChangeFormatV1.ts +14 -22
- package/src/feature-libraries/optional-field/{optionalFieldChangeFormatV0.ts → optionalFieldChangeFormatV2.ts} +22 -14
- package/src/feature-libraries/optional-field/optionalFieldCodecV1.ts +113 -44
- package/src/feature-libraries/optional-field/optionalFieldCodecV2.ts +135 -0
- package/src/feature-libraries/optional-field/optionalFieldCodecs.ts +2 -2
- package/src/feature-libraries/schema-edits/schemaChangeCodecs.ts +5 -2
- package/src/feature-libraries/schema-index/codec.ts +3 -3
- package/src/feature-libraries/sequence-field/compose.ts +198 -146
- package/src/feature-libraries/sequence-field/invert.ts +21 -48
- package/src/feature-libraries/sequence-field/markQueue.ts +1 -5
- package/src/feature-libraries/sequence-field/moveEffectTable.ts +38 -15
- package/src/feature-libraries/sequence-field/rebase.ts +46 -150
- package/src/feature-libraries/sequence-field/relevantRemovedRoots.ts +3 -3
- package/src/feature-libraries/sequence-field/replaceRevisions.ts +87 -0
- package/src/feature-libraries/sequence-field/sequenceFieldChangeRebaser.ts +2 -0
- package/src/feature-libraries/sequence-field/sequenceFieldCodecs.ts +39 -34
- package/src/feature-libraries/sequence-field/sequenceFieldToDelta.ts +8 -14
- package/src/feature-libraries/sequence-field/utils.ts +47 -44
- package/src/feature-libraries/typed-schema/typedTreeSchema.ts +1 -1
- package/src/feature-libraries/valueUtilities.ts +2 -22
- package/src/index.ts +22 -21
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/defaultCommitEnricher.ts +176 -0
- package/src/shared-tree/index.ts +8 -1
- package/src/shared-tree/schematizingTreeView.ts +1 -1
- package/src/shared-tree/sharedTree.ts +29 -8
- package/src/shared-tree/sharedTreeChangeCodecs.ts +12 -3
- package/src/shared-tree/sharedTreeChangeEnricher.ts +87 -0
- package/src/shared-tree/sharedTreeChangeFamily.ts +124 -8
- package/src/shared-tree/treeApi.ts +365 -34
- package/src/shared-tree/treeCheckout.ts +19 -19
- package/src/shared-tree/treeView.ts +1 -1
- package/src/shared-tree-core/branch.ts +49 -12
- package/src/shared-tree-core/commitEnricher.ts +39 -0
- package/src/shared-tree-core/editManager.ts +32 -15
- package/src/shared-tree-core/editManagerCodecs.ts +30 -16
- package/src/shared-tree-core/editManagerFormat.ts +2 -4
- package/src/shared-tree-core/index.ts +2 -0
- package/src/shared-tree-core/messageCodecs.ts +28 -7
- package/src/shared-tree-core/sharedTreeCore.ts +82 -18
- package/src/simple-tree/arrayNode.ts +334 -330
- package/src/simple-tree/index.ts +2 -2
- package/src/simple-tree/leafNodeSchema.ts +1 -1
- package/src/simple-tree/mapNode.ts +113 -169
- package/src/{feature-libraries/flex-tree → simple-tree}/nodeKeys.ts +9 -20
- package/src/simple-tree/objectNode.ts +176 -126
- package/src/simple-tree/proxies.ts +4 -4
- package/src/simple-tree/proxyBinding.ts +9 -4
- package/src/simple-tree/schemaCaching.ts +2 -2
- package/src/simple-tree/schemaFactory.ts +195 -121
- package/src/simple-tree/schemaFactoryRecursive.ts +33 -189
- package/src/simple-tree/schemaTypes.ts +34 -8
- package/src/simple-tree/testRecursiveDomain.ts +2 -2
- package/src/simple-tree/toMapTree.ts +7 -6
- package/src/simple-tree/treeApi.ts +15 -12
- package/src/simple-tree/types.ts +157 -1
- package/src/simple-tree/typesUnsafe.ts +13 -13
- package/src/treeFactory.ts +12 -15
- package/src/util/brand.ts +8 -107
- package/src/util/index.ts +1 -11
- package/src/util/opaque.ts +5 -5
- package/src/util/utils.ts +2 -2
- package/dist/alpha.d.ts +0 -90
- package/dist/feature-libraries/flex-tree/nodeKeys.d.ts.map +0 -1
- package/dist/feature-libraries/flex-tree/nodeKeys.js +0 -24
- package/dist/feature-libraries/flex-tree/nodeKeys.js.map +0 -1
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV0.d.ts.map +0 -1
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV0.js.map +0 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecV0.d.ts.map +0 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecV0.js +0 -158
- package/dist/feature-libraries/optional-field/optionalFieldCodecV0.js.map +0 -1
- package/lib/alpha.d.ts +0 -90
- package/lib/feature-libraries/flex-tree/nodeKeys.d.ts.map +0 -1
- package/lib/feature-libraries/flex-tree/nodeKeys.js +0 -20
- package/lib/feature-libraries/flex-tree/nodeKeys.js.map +0 -1
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV0.d.ts.map +0 -1
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV0.js.map +0 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecV0.d.ts.map +0 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecV0.js +0 -154
- package/lib/feature-libraries/optional-field/optionalFieldCodecV0.js.map +0 -1
- package/src/feature-libraries/optional-field/optionalFieldCodecV0.ts +0 -204
package/.eslintrc.cjs
CHANGED
|
@@ -39,4 +39,33 @@ module.exports = {
|
|
|
39
39
|
},
|
|
40
40
|
},
|
|
41
41
|
],
|
|
42
|
+
settings: {
|
|
43
|
+
"import/extensions": [".ts", ".tsx", ".d.ts", ".js", ".jsx"],
|
|
44
|
+
"import/parsers": {
|
|
45
|
+
"@typescript-eslint/parser": [".ts", ".tsx", ".d.ts"],
|
|
46
|
+
},
|
|
47
|
+
"import/resolver": {
|
|
48
|
+
typescript: {
|
|
49
|
+
extensions: [".ts", ".tsx", ".d.ts", ".js", ".jsx"],
|
|
50
|
+
conditionNames: [
|
|
51
|
+
"allow-ff-test-exports",
|
|
52
|
+
|
|
53
|
+
// Default condition names below, see https://www.npmjs.com/package/eslint-import-resolver-typescript#conditionnames
|
|
54
|
+
"types",
|
|
55
|
+
"import",
|
|
56
|
+
|
|
57
|
+
// APF: https://angular.io/guide/angular-package-format
|
|
58
|
+
"esm2020",
|
|
59
|
+
"es2020",
|
|
60
|
+
"es2015",
|
|
61
|
+
|
|
62
|
+
"require",
|
|
63
|
+
"node",
|
|
64
|
+
"node-addons",
|
|
65
|
+
"browser",
|
|
66
|
+
"default",
|
|
67
|
+
],
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
},
|
|
42
71
|
};
|
package/.vscode/settings.json
CHANGED
|
@@ -12,5 +12,8 @@
|
|
|
12
12
|
],
|
|
13
13
|
"mochaExplorer.configFile": ".mocharc.cjs",
|
|
14
14
|
"mochaExplorer.timeout": 999999,
|
|
15
|
+
// This extension appears to invoke mocha programmatically, meaning that the enablement of this option in the common
|
|
16
|
+
// mocha test config isn't sufficient; it also needs to be enabled here.
|
|
17
|
+
"mochaExplorer.nodeArgv": ["--conditions", "allow-ff-test-exports"],
|
|
15
18
|
"cSpell.words": ["deprioritized", "endregion", "insertable", "reentrantly", "unhydrated"],
|
|
16
19
|
}
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,79 @@
|
|
|
1
1
|
# @fluidframework/tree
|
|
2
2
|
|
|
3
|
+
## 2.0.0-rc.3.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- Packages now use package.json "exports" and require modern module resolution [97d68aa06b](https://github.com/microsoft/FluidFramework/commit/97d68aa06bd5c022ecb026655814aea222a062ae)
|
|
8
|
+
|
|
9
|
+
Fluid Framework packages have been updated to use the [package.json "exports"
|
|
10
|
+
field](https://nodejs.org/docs/latest-v18.x/api/packages.html#exports) to define explicit entry points for both
|
|
11
|
+
TypeScript types and implementation code.
|
|
12
|
+
|
|
13
|
+
This means that using Fluid Framework packages require the following TypeScript settings in tsconfig.json:
|
|
14
|
+
|
|
15
|
+
- `"moduleResolution": "Node16"` with `"module": "Node16"`
|
|
16
|
+
- `"moduleResolution": "Bundler"` with `"module": "ESNext"`
|
|
17
|
+
|
|
18
|
+
We recommend using Node16/Node16 unless absolutely necessary. That will produce transpiled JavaScript that is suitable
|
|
19
|
+
for use with modern versions of Node.js _and_ Bundlers.
|
|
20
|
+
[See the TypeScript documentation](https://www.typescriptlang.org/tsconfig#moduleResolution) for more information
|
|
21
|
+
regarding the module and moduleResolution options.
|
|
22
|
+
|
|
23
|
+
**Node10 moduleResolution is not supported; it does not support Fluid Framework's API structuring pattern that is used
|
|
24
|
+
to distinguish stable APIs from those that are in development.**
|
|
25
|
+
|
|
26
|
+
### Minor Changes
|
|
27
|
+
|
|
28
|
+
- Better events [97d68aa06b](https://github.com/microsoft/FluidFramework/commit/97d68aa06bd5c022ecb026655814aea222a062ae)
|
|
29
|
+
|
|
30
|
+
We have updated the Events to make it easier to create granular event listeners for single nodes and better support the
|
|
31
|
+
undo/redo feature. SharedTree nodes now expose `nodeChanged` and `treeChanged` events that fire in response to changes
|
|
32
|
+
in the node, and to changes in the subtree rooted at the node, respectively.
|
|
33
|
+
|
|
34
|
+
This change was originally made in [#20286](https://github.com/microsoft/FluidFramework/pull/20286) ([ac1e773960](https://github.com/microsoft/FluidFramework/commit/ac1e7739607551abb0dae7fa74dda56aec94b609)).
|
|
35
|
+
|
|
36
|
+
[Read more about SharedTree Events at fluidframework.com](https://fluidframework.com/docs/data-structures/tree/#event-handling)
|
|
37
|
+
|
|
38
|
+
- Recursive schemas [97d68aa06b](https://github.com/microsoft/FluidFramework/commit/97d68aa06bd5c022ecb026655814aea222a062ae)
|
|
39
|
+
|
|
40
|
+
Schemas are even more powerful now with the added support for recursive types, which allows you to define types that
|
|
41
|
+
reference nodes of the same type in their subtree.
|
|
42
|
+
|
|
43
|
+
Users of the beta APIs via `SchemaFactoryRecursive` can now find them on `SchemaFactory`.
|
|
44
|
+
|
|
45
|
+
[Read more about Recursive Schema at fluidframework.com](https://fluidframework.com/docs/data-structures/tree/#recursive-schema)
|
|
46
|
+
|
|
47
|
+
- Transactions [97d68aa06b](https://github.com/microsoft/FluidFramework/commit/97d68aa06bd5c022ecb026655814aea222a062ae)
|
|
48
|
+
|
|
49
|
+
You can group multiple changes such that they are applied atomically, and if they fail, they fail atomically. As a
|
|
50
|
+
result of grouping changes in a transaction, you also get a single revertible object making it easier to undo and redo.
|
|
51
|
+
|
|
52
|
+
[Read more about Transactions at fluidframework.com](https://fluidframework.com/docs/data-structures/tree/#transactions)
|
|
53
|
+
|
|
54
|
+
- tree: Empty optional fields on object nodes now are undefined non-enumerable own properties instead of not a property at all. [97d68aa06b](https://github.com/microsoft/FluidFramework/commit/97d68aa06bd5c022ecb026655814aea222a062ae)
|
|
55
|
+
|
|
56
|
+
Empty optional fields on object nodes now are now undefined non-enumerable own properties.
|
|
57
|
+
This improves behavior in cases where they shadow inherited members which no longer have types which differ from the runtime behavior.
|
|
58
|
+
|
|
59
|
+
- tree: Allow root editing and make TreeView parameterized over schema. [97d68aa06b](https://github.com/microsoft/FluidFramework/commit/97d68aa06bd5c022ecb026655814aea222a062ae)
|
|
60
|
+
|
|
61
|
+
TreeView now is parameterized over the field schema instead of the root field type. This was needed to infer the correct input type when reassigning the root.
|
|
62
|
+
Code providing an explicit type to TreeView, like `TreeView<Foo>` can usually be updated by replacing that with `TreeView<typeof Foo>`.
|
|
63
|
+
|
|
64
|
+
- fluid-framework: Replace SharedObjectClass with new ISharedObjectKind type. [97d68aa06b](https://github.com/microsoft/FluidFramework/commit/97d68aa06bd5c022ecb026655814aea222a062ae)
|
|
65
|
+
|
|
66
|
+
The static objects used as SharedObjectClass now explicitly implement the new ISharedObjectKind type.
|
|
67
|
+
SharedObjectClass has been removed as ISharedObjectKind now fills that role.
|
|
68
|
+
LoadableObjectCtor has been inlined as it only had one use: an external user of it can replace it with `(new (...args: any[]) => T)`.
|
|
69
|
+
|
|
70
|
+
- Undo/Redo [97d68aa06b](https://github.com/microsoft/FluidFramework/commit/97d68aa06bd5c022ecb026655814aea222a062ae)
|
|
71
|
+
|
|
72
|
+
Added the ability to listen for changes and track revertible objects on your undo/redo stacks. Revertibles allow you to
|
|
73
|
+
undo and redo changes even if other changes have been made in remote clients.
|
|
74
|
+
|
|
75
|
+
[Read more about Undo/redo at fluidframework.com](https://fluidframework.com/docs/data-structures/tree/#undoredo-support)
|
|
76
|
+
|
|
3
77
|
## 2.0.0-rc.2.0.0
|
|
4
78
|
|
|
5
79
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
# @fluidframework/tree
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A [tree](<https://en.wikipedia.org/wiki/Tree_(data_structure)>) data structure for the [Fluid Framework](https://fluidframework.com/).
|
|
4
|
+
|
|
5
|
+
The contents of this package are also reported as part of the [`fluid-framework` package](https://www.npmjs.com/package/fluid-framework) which provides an alternative way to consume the functionality from this package.
|
|
6
|
+
|
|
7
|
+
[SharedTree Philosophy](./docs/SharedTree%20Philosophy.md) covers the goals of the SharedTree project,
|
|
8
|
+
and some of the implications of those goals for developers working on this package.
|
|
4
9
|
|
|
5
10
|
## Status
|
|
6
11
|
|
|
@@ -12,7 +17,13 @@ Notable consideration that early adopters should be wary of:
|
|
|
12
17
|
- SharedTree currently has unbounded memory growth:
|
|
13
18
|
- Removed content is retained forever.
|
|
14
19
|
- Accessing an `EditableField` object (from its parent, e.g., with `getField`) in a loop will leak unbounded memory.
|
|
15
|
-
- All changes are atomized by the `visitDelta` function.
|
|
20
|
+
- All changes are atomized by the `visitDelta` function.
|
|
21
|
+
This means that, when inserting/removing/moving 2 contiguous nodes, the `visitDelta` function will call the `DeltaVisitor` twice (once for each node) instead of once for both nodes.
|
|
22
|
+
Change notification consumers that are downstream from the `DeltaVisitor` will therefore also see those changes as atomized.
|
|
23
|
+
- Some documentation (such as this readme and [the roadmap](docs/roadmap.md)) are out of date.
|
|
24
|
+
The [API documentation](https://fluidframework.com/docs/api/v2/tree) which is derived from the documentation comments in the source code should be more up to date.
|
|
25
|
+
|
|
26
|
+
More details on the development status of various features can be found in the [roadmap](docs/roadmap.md).
|
|
16
27
|
|
|
17
28
|
<!-- AUTO-GENERATED-CONTENT:START (README_DEPENDENCY_GUIDELINES_SECTION:includeHeading=TRUE) -->
|
|
18
29
|
|
|
@@ -89,11 +100,12 @@ This tree serves to get these feature into the hands of users much faster than c
|
|
|
89
100
|
|
|
90
101
|
This package can be developed using any of the [regular workflows for working on Fluid Framework](../../../README.md) and/or its Client release group of packages, but for work only touching the tree package, there is an optional workflow that might be more ergonomic:
|
|
91
102
|
|
|
103
|
+
- Follow the [Setup and Building](../../../README.md#setup-and-building) instructions.
|
|
92
104
|
- Open the [.vscode/Tree.code-workspace](.vscode/Tree.code-workspace) in VS Code.
|
|
93
105
|
This will recommend a test runner extension, which should be installed.
|
|
94
|
-
- Build the
|
|
95
|
-
- After editing the tree project, run `npm run build` in
|
|
96
|
-
- Run tests using the "Testing" side panel in VS Code, or using the inline `Run | Debug` buttons which should show up above tests in the source:
|
|
106
|
+
- Build the the tree package as normal (for run example: `pnpm i && pnpm run build` in the `tree` directory).
|
|
107
|
+
- After editing the tree project, run `npm run build` (still in the `tree`) directory.
|
|
108
|
+
- Run and debug tests using the "Testing" side panel in VS Code, or using the inline `Run | Debug` buttons which should show up above tests in the source:
|
|
97
109
|
both of these are provided by the mocha testing extension thats recommended by the workspace.
|
|
98
110
|
Note that this does not build the tests, so always be sure to build first.
|
|
99
111
|
|
package/api-report/tree.api.md
CHANGED
|
@@ -4,12 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
```ts
|
|
6
6
|
|
|
7
|
+
import { ErasedType } from '@fluidframework/core-interfaces';
|
|
7
8
|
import { FluidObject } from '@fluidframework/core-interfaces';
|
|
8
9
|
import { IChannel } from '@fluidframework/datastore-definitions';
|
|
9
|
-
import { IChannelAttributes } from '@fluidframework/datastore-definitions';
|
|
10
|
-
import { IChannelFactory } from '@fluidframework/datastore-definitions';
|
|
11
|
-
import { IChannelServices } from '@fluidframework/datastore-definitions';
|
|
12
|
-
import { IFluidDataStoreRuntime } from '@fluidframework/datastore-definitions';
|
|
13
10
|
import { IFluidHandle } from '@fluidframework/core-interfaces';
|
|
14
11
|
import { IFluidLoadable } from '@fluidframework/core-interfaces';
|
|
15
12
|
import { ISharedObject } from '@fluidframework/shared-object-base';
|
|
@@ -162,10 +159,10 @@ export type AssignableFieldKinds = typeof FieldKinds.optional | typeof FieldKind
|
|
|
162
159
|
export type Assume<TInput, TAssumeToBe> = [TInput] extends [TAssumeToBe] ? TInput : TAssumeToBe;
|
|
163
160
|
|
|
164
161
|
// @internal
|
|
165
|
-
export type Brand<ValueType, Name
|
|
162
|
+
export type Brand<ValueType, Name> = ValueType & BrandedType<ValueType, Name>;
|
|
166
163
|
|
|
167
164
|
// @internal
|
|
168
|
-
export function brand<T>(value: T extends BrandedType<infer ValueType,
|
|
165
|
+
export function brand<T>(value: T extends BrandedType<infer ValueType, unknown> ? ValueType : never): T;
|
|
169
166
|
|
|
170
167
|
// @internal
|
|
171
168
|
export type BrandedKey<TKey, TContent> = TKey & Invariant<TContent>;
|
|
@@ -186,7 +183,7 @@ export interface BrandedMapSubset<K extends BrandedKey<unknown, any>> {
|
|
|
186
183
|
}
|
|
187
184
|
|
|
188
185
|
// @internal @sealed
|
|
189
|
-
export abstract class BrandedType<out ValueType, Name
|
|
186
|
+
export abstract class BrandedType<out ValueType, Name> {
|
|
190
187
|
static [Symbol.hasInstance](value: never): value is never;
|
|
191
188
|
protected abstract brand(dummy: never): Name;
|
|
192
189
|
// (undocumented)
|
|
@@ -427,16 +424,7 @@ export function enumFromStrings<TScope extends string, const Members extends str
|
|
|
427
424
|
})>;
|
|
428
425
|
|
|
429
426
|
// @internal
|
|
430
|
-
export
|
|
431
|
-
|
|
432
|
-
// @internal
|
|
433
|
-
export interface ErasedTreeNodeSchemaDataFormat extends Erased<"TreeNodeSchemaDataFormat"> {
|
|
434
|
-
}
|
|
435
|
-
|
|
436
|
-
// @internal @sealed
|
|
437
|
-
export abstract class ErasedType<out Name extends string> {
|
|
438
|
-
static [Symbol.hasInstance](value: never): value is never;
|
|
439
|
-
protected abstract brand(dummy: never): Name;
|
|
427
|
+
export interface ErasedTreeNodeSchemaDataFormat extends ErasedType<"TreeNodeSchemaDataFormat"> {
|
|
440
428
|
}
|
|
441
429
|
|
|
442
430
|
// @public
|
|
@@ -445,10 +433,10 @@ export type Events<E> = {
|
|
|
445
433
|
};
|
|
446
434
|
|
|
447
435
|
// @internal
|
|
448
|
-
export type ExtractFromOpaque<TOpaque extends BrandedType<any,
|
|
436
|
+
export type ExtractFromOpaque<TOpaque extends BrandedType<any, unknown>> = TOpaque extends BrandedType<infer ValueType, infer Name> ? isAny<ValueType> extends true ? unknown : Brand<ValueType, Name> : never;
|
|
449
437
|
|
|
450
438
|
// @internal
|
|
451
|
-
export function extractFromOpaque<TOpaque extends BrandedType<any,
|
|
439
|
+
export function extractFromOpaque<TOpaque extends BrandedType<any, unknown>>(value: TOpaque): ExtractFromOpaque<TOpaque>;
|
|
452
440
|
|
|
453
441
|
// @public
|
|
454
442
|
export type ExtractItemType<Item extends LazyItem> = Item extends () => infer Result ? Result : Item;
|
|
@@ -518,10 +506,6 @@ export interface FieldProps {
|
|
|
518
506
|
|
|
519
507
|
// @public @sealed
|
|
520
508
|
export class FieldSchema<out Kind extends FieldKind = FieldKind, out Types extends ImplicitAllowedTypes = ImplicitAllowedTypes> {
|
|
521
|
-
constructor(
|
|
522
|
-
kind: Kind,
|
|
523
|
-
allowedTypes: Types,
|
|
524
|
-
props?: FieldProps | undefined);
|
|
525
509
|
readonly allowedTypes: Types;
|
|
526
510
|
get allowedTypeSet(): ReadonlySet<TreeNodeSchema>;
|
|
527
511
|
readonly kind: Kind;
|
|
@@ -529,7 +513,7 @@ export class FieldSchema<out Kind extends FieldKind = FieldKind, out Types exten
|
|
|
529
513
|
protected _typeCheck?: MakeNominal;
|
|
530
514
|
}
|
|
531
515
|
|
|
532
|
-
// @
|
|
516
|
+
// @public
|
|
533
517
|
export interface FieldSchemaUnsafe<out Kind extends FieldKind, out Types extends Unenforced<ImplicitAllowedTypes>> extends FieldSchema<Kind, any> {
|
|
534
518
|
readonly allowedTypes: Types;
|
|
535
519
|
readonly allowedTypeSet: ReadonlySet<TreeNodeSchema>;
|
|
@@ -648,7 +632,7 @@ export class FlexObjectNodeSchema<const out Name extends string = string, const
|
|
|
648
632
|
export interface FlexTreeContext extends ISubscribable<ForestEvents> {
|
|
649
633
|
readonly forest: IForestSubscription;
|
|
650
634
|
// (undocumented)
|
|
651
|
-
readonly
|
|
635
|
+
readonly nodeKeyManager: NodeKeyManager;
|
|
652
636
|
get root(): FlexTreeField;
|
|
653
637
|
readonly schema: FlexTreeSchema;
|
|
654
638
|
}
|
|
@@ -1008,7 +992,7 @@ export type InsertableObjectFromSchemaRecord<T extends RestrictiveReadonlyRecord
|
|
|
1008
992
|
readonly [Property in keyof T]: InsertableTreeFieldFromImplicitField<T[Property]>;
|
|
1009
993
|
};
|
|
1010
994
|
|
|
1011
|
-
// @
|
|
995
|
+
// @public
|
|
1012
996
|
export type InsertableObjectFromSchemaRecordUnsafe<T extends Unenforced<RestrictiveReadonlyRecord<string, ImplicitFieldSchema>>> = {
|
|
1013
997
|
readonly [Property in keyof T]: InsertableTreeFieldFromImplicitFieldUnsafe<T[Property]>;
|
|
1014
998
|
};
|
|
@@ -1016,13 +1000,13 @@ export type InsertableObjectFromSchemaRecordUnsafe<T extends Unenforced<Restrict
|
|
|
1016
1000
|
// @public
|
|
1017
1001
|
export type InsertableTreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<InsertableTreeNodeFromImplicitAllowedTypes<Types>, Kind> : TSchema extends ImplicitAllowedTypes ? InsertableTreeNodeFromImplicitAllowedTypes<TSchema> : unknown;
|
|
1018
1002
|
|
|
1019
|
-
// @
|
|
1003
|
+
// @public
|
|
1020
1004
|
export type InsertableTreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind> : InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema>;
|
|
1021
1005
|
|
|
1022
1006
|
// @public
|
|
1023
1007
|
export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? InsertableTypedNode<TSchema> : TSchema extends AllowedTypes ? InsertableTypedNode<FlexListToUnion<TSchema>> : never;
|
|
1024
1008
|
|
|
1025
|
-
// @
|
|
1009
|
+
// @public
|
|
1026
1010
|
export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends AllowedTypes ? InsertableTypedNodeUnsafe<FlexListToUnion<TSchema>> : InsertableTypedNodeUnsafe<TSchema>;
|
|
1027
1011
|
|
|
1028
1012
|
// @public
|
|
@@ -1030,11 +1014,15 @@ export type InsertableTypedNode<T extends TreeNodeSchema> = (T extends {
|
|
|
1030
1014
|
implicitlyConstructable: true;
|
|
1031
1015
|
} ? NodeBuilderData<T> : never) | Unhydrated<NodeFromSchema<T>>;
|
|
1032
1016
|
|
|
1033
|
-
// @
|
|
1017
|
+
// @public
|
|
1034
1018
|
export type InsertableTypedNodeUnsafe<T extends Unenforced<TreeNodeSchema>> = Unhydrated<NodeFromSchemaUnsafe<T>> | (T extends {
|
|
1035
1019
|
implicitlyConstructable: true;
|
|
1036
1020
|
} ? NodeBuilderDataUnsafe<T> : never);
|
|
1037
1021
|
|
|
1022
|
+
// @public
|
|
1023
|
+
export interface InternalTreeNode extends ErasedType<"@fluidframework/tree.InternalTreeNode"> {
|
|
1024
|
+
}
|
|
1025
|
+
|
|
1038
1026
|
// @internal
|
|
1039
1027
|
export interface Invariant<in out T> extends Contravariant<T>, Covariant<T> {
|
|
1040
1028
|
}
|
|
@@ -1282,7 +1270,7 @@ export interface Named<TName> {
|
|
|
1282
1270
|
}
|
|
1283
1271
|
|
|
1284
1272
|
// @internal
|
|
1285
|
-
export type NameFromBranded<T extends BrandedType<unknown,
|
|
1273
|
+
export type NameFromBranded<T extends BrandedType<unknown, unknown>> = T extends BrandedType<unknown, infer Name> ? Name : never;
|
|
1286
1274
|
|
|
1287
1275
|
// @internal
|
|
1288
1276
|
export type NestedMap<Key1, Key2, Value> = Map<Key1, Map<Key2, Value>>;
|
|
@@ -1293,7 +1281,7 @@ export type NewFieldContent = ITreeCursorSynchronous | readonly ITreeCursorSynch
|
|
|
1293
1281
|
// @public
|
|
1294
1282
|
export type NodeBuilderData<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
|
|
1295
1283
|
|
|
1296
|
-
// @
|
|
1284
|
+
// @public
|
|
1297
1285
|
export type NodeBuilderDataUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchema<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
|
|
1298
1286
|
|
|
1299
1287
|
// @internal
|
|
@@ -1311,12 +1299,20 @@ export interface NodeExistsConstraint {
|
|
|
1311
1299
|
// @public
|
|
1312
1300
|
export type NodeFromSchema<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, infer TNode> ? TNode : never;
|
|
1313
1301
|
|
|
1314
|
-
// @
|
|
1302
|
+
// @public
|
|
1315
1303
|
export type NodeFromSchemaUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchema<string, NodeKind, infer TNode> ? TNode : never;
|
|
1316
1304
|
|
|
1317
1305
|
// @internal
|
|
1318
1306
|
export type NodeIndex = number;
|
|
1319
1307
|
|
|
1308
|
+
// @public
|
|
1309
|
+
export interface NodeInDocumentConstraint {
|
|
1310
|
+
// (undocumented)
|
|
1311
|
+
node: TreeNode;
|
|
1312
|
+
// (undocumented)
|
|
1313
|
+
type: "nodeInDocument";
|
|
1314
|
+
}
|
|
1315
|
+
|
|
1320
1316
|
// @internal
|
|
1321
1317
|
export const nodeKeyFieldKey = "__n_id__";
|
|
1322
1318
|
|
|
@@ -1325,11 +1321,11 @@ export interface NodeKeyFieldKind extends FlexFieldKind<"NodeKey", Multiplicity.
|
|
|
1325
1321
|
}
|
|
1326
1322
|
|
|
1327
1323
|
// @internal
|
|
1328
|
-
export interface
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1324
|
+
export interface NodeKeyManager {
|
|
1325
|
+
generateLocalNodeKey(): LocalNodeKey;
|
|
1326
|
+
localizeNodeKey(key: StableNodeKey): LocalNodeKey;
|
|
1327
|
+
stabilizeNodeKey(key: LocalNodeKey): StableNodeKey;
|
|
1328
|
+
tryLocalizeNodeKey(key: string): LocalNodeKey | undefined;
|
|
1333
1329
|
}
|
|
1334
1330
|
|
|
1335
1331
|
// @public
|
|
@@ -1365,7 +1361,7 @@ export type ObjectFromSchemaRecord<T extends RestrictiveReadonlyRecord<string, I
|
|
|
1365
1361
|
-readonly [Property in keyof T]: TreeFieldFromImplicitField<T[Property]>;
|
|
1366
1362
|
};
|
|
1367
1363
|
|
|
1368
|
-
// @
|
|
1364
|
+
// @public
|
|
1369
1365
|
export type ObjectFromSchemaRecordUnsafe<T extends Unenforced<RestrictiveReadonlyRecord<string, ImplicitFieldSchema>>> = {
|
|
1370
1366
|
-readonly [Property in keyof T]: TreeFieldFromImplicitFieldUnsafe<T[Property]>;
|
|
1371
1367
|
};
|
|
@@ -1383,7 +1379,7 @@ export class ObjectNodeStoredSchema extends TreeNodeStoredSchema {
|
|
|
1383
1379
|
export function oneFromSet<T>(set: ReadonlySet<T> | undefined): T | undefined;
|
|
1384
1380
|
|
|
1385
1381
|
// @internal
|
|
1386
|
-
export type Opaque<T extends Brand<any,
|
|
1382
|
+
export type Opaque<T extends Brand<any, unknown>> = T extends BrandedType<infer ValueType, infer Name> ? BrandedType<ValueType, Name> : never;
|
|
1387
1383
|
|
|
1388
1384
|
// @internal (undocumented)
|
|
1389
1385
|
export interface Optional extends FlexFieldKind<"Optional", Multiplicity.Optional> {
|
|
@@ -1513,6 +1509,9 @@ export enum RevertibleStatus {
|
|
|
1513
1509
|
// @internal
|
|
1514
1510
|
export type RevisionTag = SessionSpaceCompressedId | "root";
|
|
1515
1511
|
|
|
1512
|
+
// @public
|
|
1513
|
+
export const rollback: unique symbol;
|
|
1514
|
+
|
|
1516
1515
|
// @internal
|
|
1517
1516
|
export interface RootField {
|
|
1518
1517
|
// (undocumented)
|
|
@@ -1528,6 +1527,23 @@ export const rootFieldKey: FieldKey;
|
|
|
1528
1527
|
// @internal
|
|
1529
1528
|
export function runSynchronous(view: ITreeCheckout, transaction: (view: ITreeCheckout) => TransactionResult | void): TransactionResult;
|
|
1530
1529
|
|
|
1530
|
+
// @public
|
|
1531
|
+
export interface RunTransaction {
|
|
1532
|
+
<TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult): TResult;
|
|
1533
|
+
<TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult): TResult;
|
|
1534
|
+
<TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult | typeof rollback): TResult | typeof rollback;
|
|
1535
|
+
<TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback): TResult | typeof rollback;
|
|
1536
|
+
<TNode extends TreeNode>(node: TNode, transaction: (node: TNode) => void): void;
|
|
1537
|
+
<TView extends TreeView<ImplicitFieldSchema>>(tree: TView, transaction: (root: TView["root"]) => void): void;
|
|
1538
|
+
<TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult, preconditions?: TransactionConstraint[]): TResult;
|
|
1539
|
+
<TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult, preconditions?: TransactionConstraint[]): TResult;
|
|
1540
|
+
<TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult | typeof rollback, preconditions?: TransactionConstraint[]): TResult | typeof rollback;
|
|
1541
|
+
<TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback, preconditions?: TransactionConstraint[]): TResult | typeof rollback;
|
|
1542
|
+
<TNode extends TreeNode>(node: TNode, transaction: (node: TNode) => void, preconditions?: TransactionConstraint[]): void;
|
|
1543
|
+
<TView extends TreeView<ImplicitFieldSchema>>(tree: TView, transaction: (root: TView["root"]) => void, preconditions?: TransactionConstraint[]): void;
|
|
1544
|
+
readonly rollback: typeof rollback;
|
|
1545
|
+
}
|
|
1546
|
+
|
|
1531
1547
|
// @internal
|
|
1532
1548
|
export class SchemaBuilderBase<TScope extends string, TDefaultKind extends FlexFieldKind, TName extends number | string = string> {
|
|
1533
1549
|
constructor(defaultKind: TDefaultKind, options: SchemaBuilderOptions<TScope>);
|
|
@@ -1581,40 +1597,33 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
|
|
|
1581
1597
|
constructor(scope: TScope);
|
|
1582
1598
|
array<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchema<ScopedSchemaName<TScope, `Array<${string}>`>, NodeKind.Array, TreeArrayNode<T> & WithType<ScopedSchemaName<TScope, `Array<${string}>`>>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>, true, T>;
|
|
1583
1599
|
array<const Name extends TName, const T extends ImplicitAllowedTypes>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Array, TreeArrayNode<T> & WithType<ScopedSchemaName<TScope, Name>>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>, true, T>;
|
|
1600
|
+
arrayRecursive<const Name extends TName, const T extends Unenforced<ImplicitAllowedTypes>>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Array, TreeArrayNodeUnsafe<T> & WithType<ScopedSchemaName<TScope, Name>>, {
|
|
1601
|
+
[Symbol.iterator](): Iterator<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>>;
|
|
1602
|
+
}, false, T>;
|
|
1584
1603
|
readonly boolean: TreeNodeSchema<"com.fluidframework.leaf.boolean", NodeKind.Leaf, boolean, boolean>;
|
|
1585
|
-
// @deprecated
|
|
1586
|
-
fixRecursiveReference<T extends AllowedTypes>(...types: T): void;
|
|
1587
1604
|
readonly handle: TreeNodeSchema<"com.fluidframework.leaf.handle", NodeKind.Leaf, IFluidHandle<FluidObject & IFluidLoadable>, IFluidHandle<FluidObject & IFluidLoadable>>;
|
|
1588
1605
|
get identifier(): FieldSchema<FieldKind.Identifier>;
|
|
1589
1606
|
map<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchema<ScopedSchemaName<TScope, `Map<${string}>`>, NodeKind.Map, TreeMapNode<T> & WithType<ScopedSchemaName<TScope, `Map<${string}>`>>, Iterable<[string, InsertableTreeNodeFromImplicitAllowedTypes<T>]>, true, T>;
|
|
1590
1607
|
map<Name extends TName, const T extends ImplicitAllowedTypes>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Map, TreeMapNode<T> & WithType<ScopedSchemaName<TScope, Name>>, Iterable<[string, InsertableTreeNodeFromImplicitAllowedTypes<T>]>, true, T>;
|
|
1591
|
-
|
|
1592
|
-
|
|
1608
|
+
mapRecursive<Name extends TName, const T extends Unenforced<ImplicitAllowedTypes>>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Map, TreeMapNodeUnsafe<T> & WithType<ScopedSchemaName<TScope, Name>>, {
|
|
1609
|
+
[Symbol.iterator](): Iterator<[
|
|
1610
|
+
string,
|
|
1611
|
+
InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>
|
|
1612
|
+
]>;
|
|
1613
|
+
}, false, T>;
|
|
1593
1614
|
readonly null: TreeNodeSchema<"com.fluidframework.leaf.null", NodeKind.Leaf, null, null>;
|
|
1594
1615
|
readonly number: TreeNodeSchema<"com.fluidframework.leaf.number", NodeKind.Leaf, number, number>;
|
|
1595
1616
|
object<const Name extends TName, const T extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema>>(name: Name, fields: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, TreeObjectNode<T, ScopedSchemaName<TScope, Name>>, object & InsertableObjectFromSchemaRecord<T>, true, T>;
|
|
1617
|
+
objectRecursive<const Name extends TName, const T extends Unenforced<RestrictiveReadonlyRecord<string, ImplicitFieldSchema>>>(name: Name, t: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, TreeObjectNodeUnsafe<T, ScopedSchemaName<TScope, Name>>, object & InsertableObjectFromSchemaRecordUnsafe<T>, false, T>;
|
|
1596
1618
|
optional<const T extends ImplicitAllowedTypes>(t: T, props?: FieldProps): FieldSchema<FieldKind.Optional, T>;
|
|
1619
|
+
optionalRecursive<const T extends Unenforced<ImplicitAllowedTypes>>(t: T, props?: FieldProps): FieldSchemaUnsafe<FieldKind.Optional, T>;
|
|
1597
1620
|
required<const T extends ImplicitAllowedTypes>(t: T, props?: FieldProps): FieldSchema<FieldKind.Required, T>;
|
|
1621
|
+
requiredRecursive<const T extends Unenforced<ImplicitAllowedTypes>>(t: T, props?: FieldProps): FieldSchemaUnsafe<FieldKind.Required, T>;
|
|
1598
1622
|
// (undocumented)
|
|
1599
1623
|
readonly scope: TScope;
|
|
1600
1624
|
readonly string: TreeNodeSchema<"com.fluidframework.leaf.string", NodeKind.Leaf, string, string>;
|
|
1601
1625
|
}
|
|
1602
1626
|
|
|
1603
|
-
// @beta @sealed
|
|
1604
|
-
export class SchemaFactoryRecursive<TScope extends string, TName extends number | string = string> extends SchemaFactory<TScope, TName> {
|
|
1605
|
-
arrayRecursive<const Name extends TName, const T extends Unenforced<ImplicitAllowedTypes>>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Array, TreeArrayNodeUnsafe<T> & WithType<ScopedSchemaName<TScope, Name>>, {
|
|
1606
|
-
[Symbol.iterator](): Iterator<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>>;
|
|
1607
|
-
}, false, T>;
|
|
1608
|
-
mapRecursive<Name extends TName, const T extends Unenforced<ImplicitAllowedTypes>>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Map, TreeMapNodeUnsafe<T> & WithType<ScopedSchemaName<TScope, Name>>, {
|
|
1609
|
-
[Symbol.iterator](): Iterator<[
|
|
1610
|
-
string,
|
|
1611
|
-
InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>
|
|
1612
|
-
]>;
|
|
1613
|
-
}, false, T>;
|
|
1614
|
-
objectRecursive<const Name extends TName, const T extends Unenforced<RestrictiveReadonlyRecord<string, ImplicitFieldSchema>>>(name: Name, t: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, TreeObjectNodeUnsafe<T, ScopedSchemaName<TScope, Name>>, object & InsertableObjectFromSchemaRecordUnsafe<T>, false, T>;
|
|
1615
|
-
optionalRecursive<const T extends Unenforced<readonly (() => TreeNodeSchema)[]>>(t: T): FieldSchemaUnsafe<FieldKind.Optional, T>;
|
|
1616
|
-
}
|
|
1617
|
-
|
|
1618
1627
|
// @public
|
|
1619
1628
|
export interface SchemaIncompatible {
|
|
1620
1629
|
readonly canUpgrade: boolean;
|
|
@@ -1693,19 +1702,6 @@ export interface SharedTreeContentSnapshot {
|
|
|
1693
1702
|
readonly tree: JsonableTree[];
|
|
1694
1703
|
}
|
|
1695
1704
|
|
|
1696
|
-
// @internal
|
|
1697
|
-
export class SharedTreeFactory implements IChannelFactory<ISharedTree> {
|
|
1698
|
-
constructor(options?: SharedTreeOptions);
|
|
1699
|
-
// (undocumented)
|
|
1700
|
-
readonly attributes: IChannelAttributes;
|
|
1701
|
-
// (undocumented)
|
|
1702
|
-
create(runtime: IFluidDataStoreRuntime, id: string): ISharedTree;
|
|
1703
|
-
// (undocumented)
|
|
1704
|
-
load(runtime: IFluidDataStoreRuntime, id: string, services: IChannelServices, channelAttributes: Readonly<IChannelAttributes>): Promise<ISharedTree>;
|
|
1705
|
-
// (undocumented)
|
|
1706
|
-
readonly type: string;
|
|
1707
|
-
}
|
|
1708
|
-
|
|
1709
1705
|
// @internal
|
|
1710
1706
|
export interface SharedTreeFormatOptions {
|
|
1711
1707
|
formatVersion: SharedTreeFormatVersion[keyof SharedTreeFormatVersion];
|
|
@@ -1715,6 +1711,7 @@ export interface SharedTreeFormatOptions {
|
|
|
1715
1711
|
// @internal
|
|
1716
1712
|
export const SharedTreeFormatVersion: {
|
|
1717
1713
|
readonly v1: 1;
|
|
1714
|
+
readonly v2: 2;
|
|
1718
1715
|
};
|
|
1719
1716
|
|
|
1720
1717
|
// @internal
|
|
@@ -1774,6 +1771,9 @@ readonly recursive: FieldSchemaUnsafe<FieldKind.Optional, readonly [() => TreeNo
|
|
|
1774
1771
|
readonly number: TreeNodeSchema<"com.fluidframework.leaf.number", NodeKind.Leaf, number, number>;
|
|
1775
1772
|
}>;
|
|
1776
1773
|
|
|
1774
|
+
// @public
|
|
1775
|
+
export type TransactionConstraint = NodeInDocumentConstraint;
|
|
1776
|
+
|
|
1777
1777
|
// @internal
|
|
1778
1778
|
export enum TransactionResult {
|
|
1779
1779
|
Abort = 0,
|
|
@@ -1794,8 +1794,7 @@ export interface TreeAdapter {
|
|
|
1794
1794
|
// @public
|
|
1795
1795
|
export interface TreeApi extends TreeNodeApi {
|
|
1796
1796
|
contains(node: TreeNode, other: TreeNode): boolean;
|
|
1797
|
-
runTransaction
|
|
1798
|
-
runTransaction<TView extends TreeView<ImplicitFieldSchema>>(tree: TView, transaction: (root: TView["root"]) => void | "rollback"): void;
|
|
1797
|
+
readonly runTransaction: RunTransaction;
|
|
1799
1798
|
}
|
|
1800
1799
|
|
|
1801
1800
|
// @public
|
|
@@ -1809,9 +1808,9 @@ export const TreeArrayNode: {
|
|
|
1809
1808
|
|
|
1810
1809
|
// @public
|
|
1811
1810
|
export interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom> extends ReadonlyArray<T>, TreeNode {
|
|
1812
|
-
insertAt(index: number, ...value: (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
1813
|
-
insertAtEnd(...value: (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
1814
|
-
insertAtStart(...value: (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
1811
|
+
insertAt(index: number, ...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
1812
|
+
insertAtEnd(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
1813
|
+
insertAtStart(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
1815
1814
|
moveRangeToEnd(sourceStart: number, sourceEnd: number): void;
|
|
1816
1815
|
moveRangeToEnd(sourceStart: number, sourceEnd: number, source: TMoveFrom): void;
|
|
1817
1816
|
moveRangeToIndex(index: number, sourceStart: number, sourceEnd: number): void;
|
|
@@ -1828,7 +1827,7 @@ export interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom> extends Readonl
|
|
|
1828
1827
|
removeRange(start?: number, end?: number): void;
|
|
1829
1828
|
}
|
|
1830
1829
|
|
|
1831
|
-
// @
|
|
1830
|
+
// @public
|
|
1832
1831
|
export interface TreeArrayNodeUnsafe<TAllowedTypes extends Unenforced<ImplicitAllowedTypes>> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, TreeArrayNode> {
|
|
1833
1832
|
}
|
|
1834
1833
|
|
|
@@ -1867,7 +1866,7 @@ export interface TreeDataContext {
|
|
|
1867
1866
|
// @public
|
|
1868
1867
|
export type TreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypes<Types>, Kind> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypes<TSchema> : unknown;
|
|
1869
1868
|
|
|
1870
|
-
// @
|
|
1869
|
+
// @public
|
|
1871
1870
|
export type TreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypesUnsafe<TSchema> : unknown;
|
|
1872
1871
|
|
|
1873
1872
|
// @internal
|
|
@@ -1894,7 +1893,7 @@ export interface TreeMapNode<T extends ImplicitAllowedTypes = ImplicitAllowedTyp
|
|
|
1894
1893
|
set(key: string, value: InsertableTreeNodeFromImplicitAllowedTypes<T> | undefined): void;
|
|
1895
1894
|
}
|
|
1896
1895
|
|
|
1897
|
-
// @
|
|
1896
|
+
// @public
|
|
1898
1897
|
export interface TreeMapNodeUnsafe<T extends Unenforced<ImplicitAllowedTypes>> extends ReadonlyMap<string, TreeNodeFromImplicitAllowedTypesUnsafe<T>>, TreeNode {
|
|
1899
1898
|
delete(key: string): void;
|
|
1900
1899
|
set(key: string, value: InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T> | undefined): void;
|
|
@@ -1910,6 +1909,7 @@ export const enum TreeNavigationResult {
|
|
|
1910
1909
|
// @public
|
|
1911
1910
|
export abstract class TreeNode implements WithType {
|
|
1912
1911
|
abstract get [type](): string;
|
|
1912
|
+
protected constructor();
|
|
1913
1913
|
}
|
|
1914
1914
|
|
|
1915
1915
|
// @public
|
|
@@ -1919,14 +1919,14 @@ export interface TreeNodeApi {
|
|
|
1919
1919
|
on<K extends keyof TreeChangeEvents>(node: TreeNode, eventName: K, listener: TreeChangeEvents[K]): () => void;
|
|
1920
1920
|
parent(node: TreeNode): TreeNode | undefined;
|
|
1921
1921
|
schema<T extends TreeNode | TreeLeafValue>(node: T): TreeNodeSchema<string, NodeKind, unknown, T>;
|
|
1922
|
-
shortId(node: TreeNode): number | undefined;
|
|
1922
|
+
shortId(node: TreeNode): number | string | undefined;
|
|
1923
1923
|
readonly status: (node: TreeNode) => TreeStatus;
|
|
1924
1924
|
}
|
|
1925
1925
|
|
|
1926
1926
|
// @public
|
|
1927
1927
|
export type TreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
|
|
1928
1928
|
|
|
1929
|
-
// @
|
|
1929
|
+
// @public
|
|
1930
1930
|
export type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypes<TSchema> : TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
|
|
1931
1931
|
|
|
1932
1932
|
// @public
|
|
@@ -1952,7 +1952,7 @@ export abstract class TreeNodeSchemaBase<const out Name extends string = string,
|
|
|
1952
1952
|
// @public
|
|
1953
1953
|
export interface TreeNodeSchemaClass<out Name extends string = string, out Kind extends NodeKind = NodeKind, out TNode = unknown, in TInsertable = never, out ImplicitlyConstructable extends boolean = boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
|
|
1954
1954
|
// @sealed
|
|
1955
|
-
new (data: TInsertable): Unhydrated<TNode>;
|
|
1955
|
+
new (data: TInsertable | InternalTreeNode): Unhydrated<TNode>;
|
|
1956
1956
|
}
|
|
1957
1957
|
|
|
1958
1958
|
// @public
|
|
@@ -1985,7 +1985,7 @@ export abstract class TreeNodeStoredSchema {
|
|
|
1985
1985
|
// @public
|
|
1986
1986
|
export type TreeObjectNode<T extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecord<T> & WithType<TypeName>;
|
|
1987
1987
|
|
|
1988
|
-
// @
|
|
1988
|
+
// @public
|
|
1989
1989
|
export type TreeObjectNodeUnsafe<T extends Unenforced<RestrictiveReadonlyRecord<string, ImplicitFieldSchema>>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecordUnsafe<T> & WithType<TypeName>;
|
|
1990
1990
|
|
|
1991
1991
|
// @internal
|
|
@@ -2068,7 +2068,7 @@ export type UnbrandedName<TName> = [
|
|
|
2068
2068
|
TName extends TreeNodeSchemaIdentifier<infer S> ? S : string
|
|
2069
2069
|
][_InlineTrick];
|
|
2070
2070
|
|
|
2071
|
-
// @
|
|
2071
|
+
// @public
|
|
2072
2072
|
export type Unenforced<_DesiredExtendsConstraint> = unknown;
|
|
2073
2073
|
|
|
2074
2074
|
// @public
|
|
@@ -2084,7 +2084,7 @@ export interface UpPath<TParent = UpPathDefault> {
|
|
|
2084
2084
|
// @internal
|
|
2085
2085
|
export type UpPathDefault = UpPath;
|
|
2086
2086
|
|
|
2087
|
-
// @
|
|
2087
|
+
// @public
|
|
2088
2088
|
export type ValidateRecursiveSchema<T extends TreeNodeSchemaClass<string, NodeKind.Array | NodeKind.Map | NodeKind.Object, TreeNode & WithType<T["identifier"]>, {
|
|
2089
2089
|
[NodeKind.Object]: T["info"] extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema> ? InsertableObjectFromSchemaRecord<T["info"]> : unknown;
|
|
2090
2090
|
[NodeKind.Array]: T["info"] extends ImplicitAllowedTypes ? Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>> : unknown;
|
|
@@ -2104,7 +2104,7 @@ export interface ValueFieldEditBuilder {
|
|
|
2104
2104
|
}
|
|
2105
2105
|
|
|
2106
2106
|
// @internal
|
|
2107
|
-
export type ValueFromBranded<T extends BrandedType<unknown,
|
|
2107
|
+
export type ValueFromBranded<T extends BrandedType<unknown, unknown>> = T extends BrandedType<infer ValueType, unknown> ? ValueType : never;
|
|
2108
2108
|
|
|
2109
2109
|
// @internal
|
|
2110
2110
|
export enum ValueSchema {
|
package/beta.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/*
|
|
7
|
+
* THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
|
8
|
+
* Generated by "flub generate entrypoints" in @fluidframework/build-tools.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
export * from "./lib/beta.js";
|