@fluidframework/tree 2.41.0-338401 → 2.42.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/.vscode/settings.json +1 -0
- package/CHANGELOG.md +374 -0
- package/api-report/tree.alpha.api.md +21 -7
- package/dist/alpha.d.ts +2 -0
- package/dist/codec/codec.d.ts +33 -3
- package/dist/codec/codec.d.ts.map +1 -1
- package/dist/codec/codec.js +13 -3
- 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.map +1 -1
- package/dist/codec/versioned/codec.d.ts +35 -2
- package/dist/codec/versioned/codec.d.ts.map +1 -1
- package/dist/codec/versioned/codec.js +38 -3
- 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 +2 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/rebase/types.d.ts +2 -2
- package/dist/core/rebase/types.js +2 -2
- package/dist/core/rebase/types.js.map +1 -1
- package/dist/core/rebase/utils.d.ts +0 -2
- package/dist/core/rebase/utils.d.ts.map +1 -1
- package/dist/core/rebase/utils.js +6 -10
- package/dist/core/rebase/utils.js.map +1 -1
- package/dist/core/schema-stored/formatV1.d.ts +0 -1
- package/dist/core/schema-stored/formatV1.d.ts.map +1 -1
- package/dist/core/schema-stored/formatV1.js +1 -2
- package/dist/core/schema-stored/formatV1.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 +6 -0
- package/dist/core/schema-stored/schema.d.ts.map +1 -1
- package/dist/core/schema-stored/schema.js +8 -1
- package/dist/core/schema-stored/schema.js.map +1 -1
- package/dist/core/tree/anchorSet.d.ts +2 -1
- package/dist/core/tree/anchorSet.d.ts.map +1 -1
- package/dist/core/tree/anchorSet.js +2 -1
- package/dist/core/tree/anchorSet.js.map +1 -1
- package/dist/core/tree/detachedFieldIndex.d.ts +2 -2
- package/dist/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndex.js +5 -1
- package/dist/core/tree/detachedFieldIndex.js.map +1 -1
- package/dist/core/tree/mapTree.d.ts +2 -1
- package/dist/core/tree/mapTree.d.ts.map +1 -1
- package/dist/core/tree/mapTree.js +11 -5
- package/dist/core/tree/mapTree.js.map +1 -1
- package/dist/core/tree/pathTree.d.ts +12 -11
- package/dist/core/tree/pathTree.d.ts.map +1 -1
- package/dist/core/tree/pathTree.js +8 -7
- package/dist/core/tree/pathTree.js.map +1 -1
- package/dist/core/tree/treeTextFormat.d.ts +1 -1
- package/dist/core/tree/treeTextFormat.js +1 -1
- package/dist/core/tree/treeTextFormat.js.map +1 -1
- package/dist/core/tree/visitorUtils.d.ts +2 -2
- package/dist/core/tree/visitorUtils.d.ts.map +1 -1
- package/dist/core/tree/visitorUtils.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts +1 -1
- package/dist/feature-libraries/chunked-forest/chunkedForest.js +1 -1
- package/dist/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts +3 -2
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.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 +2 -2
- package/dist/feature-libraries/default-schema/index.js.map +1 -1
- package/dist/feature-libraries/default-schema/schemaChecker.d.ts +17 -16
- package/dist/feature-libraries/default-schema/schemaChecker.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/schemaChecker.js +54 -38
- package/dist/feature-libraries/default-schema/schemaChecker.js.map +1 -1
- package/dist/feature-libraries/flex-tree/context.d.ts +32 -8
- package/dist/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/context.js +22 -6
- package/dist/feature-libraries/flex-tree/context.js.map +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts +37 -16
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.js +7 -2
- package/dist/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
- package/dist/feature-libraries/flex-tree/index.d.ts +2 -2
- 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.d.ts +6 -6
- package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.js +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyNode.d.ts +3 -2
- package/dist/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyNode.js +3 -0
- package/dist/feature-libraries/flex-tree/lazyNode.js.map +1 -1
- package/dist/feature-libraries/flex-tree/utilities.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/utilities.js.map +1 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts +3 -3
- package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.js +7 -7
- package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/dist/feature-libraries/index.d.ts +4 -4
- package/dist/feature-libraries/index.d.ts.map +1 -1
- package/dist/feature-libraries/index.js +5 -4
- package/dist/feature-libraries/index.js.map +1 -1
- package/dist/feature-libraries/indexing/anchorTreeIndex.d.ts +2 -2
- package/dist/feature-libraries/indexing/anchorTreeIndex.d.ts.map +1 -1
- package/dist/feature-libraries/indexing/anchorTreeIndex.js +15 -15
- package/dist/feature-libraries/indexing/anchorTreeIndex.js.map +1 -1
- package/dist/feature-libraries/mapTreeCursor.d.ts +39 -3
- package/dist/feature-libraries/mapTreeCursor.d.ts.map +1 -1
- package/dist/feature-libraries/mapTreeCursor.js +45 -7
- package/dist/feature-libraries/mapTreeCursor.js.map +1 -1
- package/dist/feature-libraries/modular-schema/crossFieldQueries.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts +1 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldKindWithEditor.d.ts +1 -1
- package/dist/feature-libraries/modular-schema/fieldKindWithEditor.js +1 -1
- package/dist/feature-libraries/modular-schema/fieldKindWithEditor.js.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKind.js +2 -2
- package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.js.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKindTypes.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKindTypes.js.map +1 -1
- package/dist/feature-libraries/modular-schema/isNeverTree.d.ts +0 -2
- package/dist/feature-libraries/modular-schema/isNeverTree.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/isNeverTree.js +0 -2
- package/dist/feature-libraries/modular-schema/isNeverTree.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js +5 -5
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +2 -0
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js +2 -0
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
- package/dist/feature-libraries/node-identifier/mockNodeIdentifierManager.d.ts.map +1 -1
- package/dist/feature-libraries/node-identifier/mockNodeIdentifierManager.js +8 -3
- package/dist/feature-libraries/node-identifier/mockNodeIdentifierManager.js.map +1 -1
- package/dist/feature-libraries/object-forest/objectForest.d.ts +22 -5
- package/dist/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
- package/dist/feature-libraries/object-forest/objectForest.js +296 -207
- package/dist/feature-libraries/object-forest/objectForest.js.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +2 -2
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js +3 -2
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts +2 -2
- package/dist/feature-libraries/schema-index/codec.d.ts +6 -12
- package/dist/feature-libraries/schema-index/codec.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/codec.js +8 -15
- package/dist/feature-libraries/schema-index/codec.js.map +1 -1
- package/dist/feature-libraries/schema-index/formatV1.d.ts +2 -2
- package/dist/feature-libraries/schema-index/formatV1.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/formatV1.js +1 -1
- package/dist/feature-libraries/schema-index/formatV1.js.map +1 -1
- package/dist/feature-libraries/schema-index/index.d.ts +1 -1
- package/dist/feature-libraries/schema-index/index.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/index.js +1 -2
- package/dist/feature-libraries/schema-index/index.js.map +1 -1
- package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts +1 -1
- package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
- package/dist/feature-libraries/sequence-field/formatV3.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/formatV3.js.map +1 -1
- package/dist/feature-libraries/sequence-field/markQueue.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/markQueue.js.map +1 -1
- package/dist/feature-libraries/sequence-field/prune.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/prune.js.map +1 -1
- package/dist/feature-libraries/sequence-field/rebase.js +1 -1
- package/dist/feature-libraries/sequence-field/rebase.js.map +1 -1
- package/dist/feature-libraries/sequence-field/relevantRemovedRoots.d.ts +1 -1
- package/dist/feature-libraries/sequence-field/relevantRemovedRoots.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/relevantRemovedRoots.js.map +1 -1
- package/dist/feature-libraries/sequence-field/replaceRevisions.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/replaceRevisions.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV1.d.ts +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV1.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV1.js +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV1.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts +2 -2
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.js +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.js +2 -2
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
- package/dist/feature-libraries/sequence-field/utils.d.ts +7 -5
- package/dist/feature-libraries/sequence-field/utils.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/utils.js +7 -5
- package/dist/feature-libraries/sequence-field/utils.js.map +1 -1
- package/dist/feature-libraries/treeCursorUtils.d.ts +5 -1
- package/dist/feature-libraries/treeCursorUtils.d.ts.map +1 -1
- package/dist/feature-libraries/treeCursorUtils.js +10 -4
- package/dist/feature-libraries/treeCursorUtils.js.map +1 -1
- package/dist/feature-libraries/treeTextCursor.d.ts +1 -1
- package/dist/feature-libraries/treeTextCursor.js +1 -1
- package/dist/feature-libraries/treeTextCursor.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -6
- package/dist/index.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.d.ts.map +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/shared-tree/checkoutFlexTreeView.d.ts.map +1 -1
- package/dist/shared-tree/checkoutFlexTreeView.js.map +1 -1
- package/dist/shared-tree/independentView.d.ts +1 -1
- package/dist/shared-tree/independentView.d.ts.map +1 -1
- package/dist/shared-tree/independentView.js +8 -3
- 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/schematizeTree.d.ts +1 -1
- package/dist/shared-tree/schematizeTree.d.ts.map +1 -1
- package/dist/shared-tree/schematizeTree.js.map +1 -1
- package/dist/shared-tree/schematizingTreeView.d.ts +12 -2
- package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/dist/shared-tree/schematizingTreeView.js +37 -23
- package/dist/shared-tree/schematizingTreeView.js.map +1 -1
- package/dist/shared-tree/sharedTree.d.ts +6 -6
- package/dist/shared-tree/sharedTree.d.ts.map +1 -1
- package/dist/shared-tree/sharedTree.js +9 -8
- package/dist/shared-tree/sharedTree.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/dist/shared-tree/tree.d.ts.map +1 -1
- package/dist/shared-tree/tree.js +9 -25
- package/dist/shared-tree/tree.js.map +1 -1
- package/dist/shared-tree/treeAlpha.d.ts +78 -5
- package/dist/shared-tree/treeAlpha.d.ts.map +1 -1
- package/dist/shared-tree/treeAlpha.js +52 -8
- package/dist/shared-tree/treeAlpha.js.map +1 -1
- package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
- package/dist/shared-tree/treeCheckout.js +8 -4
- package/dist/shared-tree/treeCheckout.js.map +1 -1
- package/dist/shared-tree-core/branch.d.ts +2 -2
- package/dist/shared-tree-core/branch.d.ts.map +1 -1
- package/dist/shared-tree-core/branch.js +2 -2
- package/dist/shared-tree-core/branch.js.map +1 -1
- package/dist/shared-tree-core/branchCommitEnricher.d.ts +1 -1
- package/dist/shared-tree-core/branchCommitEnricher.d.ts.map +1 -1
- package/dist/shared-tree-core/branchCommitEnricher.js.map +1 -1
- package/dist/shared-tree-core/defaultResubmitMachine.d.ts.map +1 -1
- package/dist/shared-tree-core/defaultResubmitMachine.js.map +1 -1
- package/dist/shared-tree-core/editManager.d.ts +3 -1
- package/dist/shared-tree-core/editManager.d.ts.map +1 -1
- package/dist/shared-tree-core/editManager.js +4 -2
- 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.map +1 -1
- package/dist/shared-tree-core/editManagerSummarizer.d.ts +1 -1
- package/dist/shared-tree-core/editManagerSummarizer.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerSummarizer.js.map +1 -1
- package/dist/shared-tree-core/messageCodecs.d.ts +1 -1
- package/dist/shared-tree-core/messageCodecs.js +1 -1
- package/dist/shared-tree-core/messageCodecs.js.map +1 -1
- package/dist/shared-tree-core/sequenceIdUtils.d.ts.map +1 -1
- package/dist/shared-tree-core/sequenceIdUtils.js.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.d.ts +2 -2
- package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.js +4 -4
- package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/dist/shared-tree-core/transaction.d.ts.map +1 -1
- package/dist/shared-tree-core/transaction.js +1 -1
- package/dist/shared-tree-core/transaction.js.map +1 -1
- package/dist/shared-tree-core/transactionEnricher.d.ts.map +1 -1
- package/dist/shared-tree-core/transactionEnricher.js.map +1 -1
- package/dist/simple-tree/api/conciseTree.d.ts.map +1 -1
- package/dist/simple-tree/api/conciseTree.js +1 -1
- package/dist/simple-tree/api/conciseTree.js.map +1 -1
- package/dist/simple-tree/api/configuration.d.ts +2 -2
- package/dist/simple-tree/api/configuration.js +5 -5
- package/dist/simple-tree/api/configuration.js.map +1 -1
- package/dist/simple-tree/api/create.d.ts +10 -29
- package/dist/simple-tree/api/create.d.ts.map +1 -1
- package/dist/simple-tree/api/create.js +27 -51
- package/dist/simple-tree/api/create.js.map +1 -1
- package/dist/simple-tree/api/customTree.d.ts +5 -1
- package/dist/simple-tree/api/customTree.d.ts.map +1 -1
- package/dist/simple-tree/api/customTree.js +33 -25
- package/dist/simple-tree/api/customTree.js.map +1 -1
- package/dist/simple-tree/api/getSimpleSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/getSimpleSchema.js.map +1 -1
- package/dist/simple-tree/api/identifierIndex.js +2 -2
- package/dist/simple-tree/api/identifierIndex.js.map +1 -1
- package/dist/simple-tree/api/index.d.ts +2 -3
- package/dist/simple-tree/api/index.d.ts.map +1 -1
- package/dist/simple-tree/api/index.js +2 -10
- package/dist/simple-tree/api/index.js.map +1 -1
- package/dist/simple-tree/api/schemaCompatibilityTester.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaCompatibilityTester.js.map +1 -1
- package/dist/simple-tree/api/schemaFactory.d.ts +14 -6
- package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactory.js +45 -16
- package/dist/simple-tree/api/schemaFactory.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryAlpha.d.ts +1 -3
- package/dist/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactoryAlpha.js +4 -6
- package/dist/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryRecursive.d.ts +2 -2
- package/dist/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
- package/dist/simple-tree/api/schemaFromSimple.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFromSimple.js.map +1 -1
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.d.ts +1 -1
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.js +4 -6
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
- package/dist/simple-tree/api/storedSchema.d.ts +1 -1
- package/dist/simple-tree/api/storedSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/storedSchema.js +7 -6
- package/dist/simple-tree/api/storedSchema.js.map +1 -1
- package/dist/simple-tree/api/tree.d.ts +2 -2
- package/dist/simple-tree/api/tree.d.ts.map +1 -1
- package/dist/simple-tree/api/tree.js.map +1 -1
- package/dist/simple-tree/api/treeBeta.d.ts.map +1 -1
- package/dist/simple-tree/api/treeBeta.js +1 -1
- package/dist/simple-tree/api/treeBeta.js.map +1 -1
- package/dist/simple-tree/api/treeNodeApi.d.ts +44 -6
- package/dist/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/dist/simple-tree/api/treeNodeApi.js +56 -29
- package/dist/simple-tree/api/treeNodeApi.js.map +1 -1
- package/dist/simple-tree/api/typesUnsafe.d.ts +1 -1
- package/dist/simple-tree/api/typesUnsafe.d.ts.map +1 -1
- package/dist/simple-tree/api/typesUnsafe.js.map +1 -1
- package/dist/simple-tree/api/verboseTree.d.ts.map +1 -1
- package/dist/simple-tree/api/verboseTree.js +15 -12
- package/dist/simple-tree/api/verboseTree.js.map +1 -1
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.js +4 -6
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.js.map +1 -1
- package/dist/simple-tree/core/context.d.ts.map +1 -1
- package/dist/simple-tree/core/context.js.map +1 -1
- package/dist/simple-tree/core/getOrCreateNode.d.ts +1 -1
- package/dist/simple-tree/core/getOrCreateNode.d.ts.map +1 -1
- package/dist/simple-tree/core/getOrCreateNode.js +2 -1
- package/dist/simple-tree/core/getOrCreateNode.js.map +1 -1
- package/dist/simple-tree/core/index.d.ts +2 -2
- package/dist/simple-tree/core/index.d.ts.map +1 -1
- package/dist/simple-tree/core/index.js +3 -4
- package/dist/simple-tree/core/index.js.map +1 -1
- package/dist/simple-tree/core/treeNode.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNode.js +1 -1
- package/dist/simple-tree/core/treeNode.js.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.d.ts +18 -28
- package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.js +28 -35
- package/dist/simple-tree/core/treeNodeKernel.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/core/types.d.ts.map +1 -1
- package/dist/simple-tree/core/types.js.map +1 -1
- package/dist/simple-tree/core/unhydratedFlexTree.d.ts +128 -59
- package/dist/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
- package/dist/simple-tree/core/unhydratedFlexTree.js +180 -193
- package/dist/simple-tree/core/unhydratedFlexTree.js.map +1 -1
- package/dist/simple-tree/core/withType.d.ts +1 -1
- package/dist/simple-tree/core/withType.d.ts.map +1 -1
- package/dist/simple-tree/core/withType.js.map +1 -1
- package/dist/simple-tree/createContext.d.ts.map +1 -1
- package/dist/simple-tree/createContext.js.map +1 -1
- package/dist/simple-tree/getTreeNodeForField.d.ts.map +1 -1
- package/dist/simple-tree/getTreeNodeForField.js.map +1 -1
- package/dist/simple-tree/index.d.ts +4 -11
- package/dist/simple-tree/index.d.ts.map +1 -1
- package/dist/simple-tree/index.js +16 -24
- 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/{arrayNode.d.ts → node-kinds/array/arrayNode.d.ts} +3 -3
- package/dist/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -0
- package/dist/simple-tree/{arrayNode.js → node-kinds/array/arrayNode.js} +12 -13
- package/dist/simple-tree/node-kinds/array/arrayNode.js.map +1 -0
- package/dist/simple-tree/{arrayNodeTypes.d.ts → node-kinds/array/arrayNodeTypes.d.ts} +3 -3
- package/dist/simple-tree/node-kinds/array/arrayNodeTypes.d.ts.map +1 -0
- package/dist/simple-tree/{arrayNodeTypes.js → node-kinds/array/arrayNodeTypes.js} +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNodeTypes.js.map +1 -0
- package/dist/simple-tree/node-kinds/array/index.d.ts +7 -0
- package/dist/simple-tree/node-kinds/array/index.d.ts.map +1 -0
- package/dist/simple-tree/node-kinds/array/index.js +16 -0
- package/dist/simple-tree/node-kinds/array/index.js.map +1 -0
- package/dist/simple-tree/node-kinds/index.d.ts +8 -0
- package/dist/simple-tree/node-kinds/index.d.ts.map +1 -0
- package/dist/simple-tree/node-kinds/index.js +25 -0
- package/dist/simple-tree/node-kinds/index.js.map +1 -0
- package/dist/simple-tree/node-kinds/map/index.d.ts +7 -0
- package/dist/simple-tree/node-kinds/map/index.d.ts.map +1 -0
- package/dist/simple-tree/node-kinds/map/index.js +13 -0
- package/dist/simple-tree/node-kinds/map/index.js.map +1 -0
- package/{lib/simple-tree → dist/simple-tree/node-kinds/map}/mapNode.d.ts +3 -3
- package/dist/simple-tree/node-kinds/map/mapNode.d.ts.map +1 -0
- package/dist/simple-tree/{mapNode.js → node-kinds/map/mapNode.js} +9 -9
- package/dist/simple-tree/node-kinds/map/mapNode.js.map +1 -0
- package/dist/simple-tree/{mapNodeTypes.d.ts → node-kinds/map/mapNodeTypes.d.ts} +3 -3
- package/dist/simple-tree/node-kinds/map/mapNodeTypes.d.ts.map +1 -0
- package/dist/simple-tree/{mapNodeTypes.js → node-kinds/map/mapNodeTypes.js} +1 -1
- package/dist/simple-tree/node-kinds/map/mapNodeTypes.js.map +1 -0
- package/dist/simple-tree/node-kinds/object/index.d.ts +7 -0
- package/dist/simple-tree/node-kinds/object/index.d.ts.map +1 -0
- package/dist/simple-tree/node-kinds/object/index.js +15 -0
- package/dist/simple-tree/node-kinds/object/index.js.map +1 -0
- package/{lib/simple-tree → dist/simple-tree/node-kinds/object}/objectNode.d.ts +6 -6
- package/dist/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -0
- package/dist/simple-tree/{objectNode.js → node-kinds/object/objectNode.js} +9 -17
- package/dist/simple-tree/node-kinds/object/objectNode.js.map +1 -0
- package/{lib/simple-tree → dist/simple-tree/node-kinds/object}/objectNodeTypes.d.ts +5 -5
- package/dist/simple-tree/node-kinds/object/objectNodeTypes.d.ts.map +1 -0
- package/dist/simple-tree/{objectNodeTypes.js → node-kinds/object/objectNodeTypes.js} +1 -1
- package/dist/simple-tree/node-kinds/object/objectNodeTypes.js.map +1 -0
- package/dist/simple-tree/prepareForInsertion.d.ts +20 -6
- package/dist/simple-tree/prepareForInsertion.d.ts.map +1 -1
- package/dist/simple-tree/prepareForInsertion.js +26 -19
- package/dist/simple-tree/prepareForInsertion.js.map +1 -1
- package/dist/simple-tree/schemaTypes.d.ts +9 -9
- package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
- package/dist/simple-tree/schemaTypes.js.map +1 -1
- package/dist/simple-tree/simpleSchema.d.ts.map +1 -1
- package/dist/simple-tree/simpleSchema.js.map +1 -1
- package/dist/simple-tree/toStoredSchema.d.ts +6 -1
- package/dist/simple-tree/toStoredSchema.d.ts.map +1 -1
- package/dist/simple-tree/toStoredSchema.js +7 -4
- package/dist/simple-tree/toStoredSchema.js.map +1 -1
- package/dist/simple-tree/treeNodeValid.d.ts +1 -1
- package/dist/simple-tree/treeNodeValid.d.ts.map +1 -1
- package/dist/simple-tree/treeNodeValid.js +10 -10
- package/dist/simple-tree/treeNodeValid.js.map +1 -1
- package/dist/simple-tree/unhydratedFlexTreeFromInsertable.d.ts +72 -0
- package/dist/simple-tree/unhydratedFlexTreeFromInsertable.d.ts.map +1 -0
- package/dist/simple-tree/{toMapTree.js → unhydratedFlexTreeFromInsertable.js} +136 -178
- package/dist/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -0
- package/dist/simple-tree/walkFieldSchema.d.ts.map +1 -1
- package/dist/simple-tree/walkFieldSchema.js.map +1 -1
- package/dist/tableSchema.d.ts +10 -10
- package/dist/treeFactory.d.ts +1 -1
- package/dist/treeFactory.d.ts.map +1 -1
- package/dist/treeFactory.js +7 -2
- package/dist/treeFactory.js.map +1 -1
- package/dist/util/bTreeUtils.d.ts.map +1 -1
- package/dist/util/bTreeUtils.js.map +1 -1
- package/dist/util/breakable.d.ts +23 -4
- package/dist/util/breakable.d.ts.map +1 -1
- package/dist/util/breakable.js +12 -3
- package/dist/util/breakable.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 -1
- package/dist/util/index.js.map +1 -1
- package/dist/util/utils.d.ts +4 -0
- package/dist/util/utils.d.ts.map +1 -1
- package/dist/util/utils.js +8 -1
- package/dist/util/utils.js.map +1 -1
- package/docs/SharedTree Philosophy.md +5 -5
- package/docs/user-facing/schema-evolution.md +1 -1
- package/lib/alpha.d.ts +2 -0
- package/lib/codec/codec.d.ts +33 -3
- package/lib/codec/codec.d.ts.map +1 -1
- package/lib/codec/codec.js +13 -3
- 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.map +1 -1
- package/lib/codec/versioned/codec.d.ts +35 -2
- package/lib/codec/versioned/codec.d.ts.map +1 -1
- package/lib/codec/versioned/codec.js +36 -2
- 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/types.d.ts +2 -2
- package/lib/core/rebase/types.js +2 -2
- package/lib/core/rebase/types.js.map +1 -1
- package/lib/core/rebase/utils.d.ts +0 -2
- package/lib/core/rebase/utils.d.ts.map +1 -1
- package/lib/core/rebase/utils.js +6 -10
- package/lib/core/rebase/utils.js.map +1 -1
- package/lib/core/schema-stored/formatV1.d.ts +0 -1
- package/lib/core/schema-stored/formatV1.d.ts.map +1 -1
- package/lib/core/schema-stored/formatV1.js +0 -1
- package/lib/core/schema-stored/formatV1.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 +6 -0
- package/lib/core/schema-stored/schema.d.ts.map +1 -1
- package/lib/core/schema-stored/schema.js +7 -0
- package/lib/core/schema-stored/schema.js.map +1 -1
- package/lib/core/tree/anchorSet.d.ts +2 -1
- package/lib/core/tree/anchorSet.d.ts.map +1 -1
- package/lib/core/tree/anchorSet.js +2 -1
- package/lib/core/tree/anchorSet.js.map +1 -1
- package/lib/core/tree/detachedFieldIndex.d.ts +2 -2
- package/lib/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndex.js +6 -2
- package/lib/core/tree/detachedFieldIndex.js.map +1 -1
- package/lib/core/tree/mapTree.d.ts +2 -1
- package/lib/core/tree/mapTree.d.ts.map +1 -1
- package/lib/core/tree/mapTree.js +11 -5
- package/lib/core/tree/mapTree.js.map +1 -1
- package/lib/core/tree/pathTree.d.ts +12 -11
- package/lib/core/tree/pathTree.d.ts.map +1 -1
- package/lib/core/tree/pathTree.js +8 -7
- package/lib/core/tree/pathTree.js.map +1 -1
- package/lib/core/tree/treeTextFormat.d.ts +1 -1
- package/lib/core/tree/treeTextFormat.js +1 -1
- package/lib/core/tree/treeTextFormat.js.map +1 -1
- package/lib/core/tree/visitorUtils.d.ts +2 -2
- package/lib/core/tree/visitorUtils.d.ts.map +1 -1
- package/lib/core/tree/visitorUtils.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts +1 -1
- package/lib/feature-libraries/chunked-forest/chunkedForest.js +1 -1
- package/lib/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts +3 -2
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.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 +1 -1
- package/lib/feature-libraries/default-schema/index.js.map +1 -1
- package/lib/feature-libraries/default-schema/schemaChecker.d.ts +17 -16
- package/lib/feature-libraries/default-schema/schemaChecker.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/schemaChecker.js +53 -37
- package/lib/feature-libraries/default-schema/schemaChecker.js.map +1 -1
- package/lib/feature-libraries/flex-tree/context.d.ts +32 -8
- package/lib/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/context.js +23 -7
- package/lib/feature-libraries/flex-tree/context.js.map +1 -1
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts +37 -16
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/flexTreeTypes.js +7 -2
- package/lib/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
- package/lib/feature-libraries/flex-tree/index.d.ts +2 -2
- 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.d.ts +6 -6
- package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.js +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyNode.d.ts +3 -2
- package/lib/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyNode.js +3 -0
- package/lib/feature-libraries/flex-tree/lazyNode.js.map +1 -1
- package/lib/feature-libraries/flex-tree/utilities.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/utilities.js.map +1 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts +3 -3
- package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.js +2 -2
- package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/lib/feature-libraries/index.d.ts +4 -4
- 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/indexing/anchorTreeIndex.d.ts +2 -2
- package/lib/feature-libraries/indexing/anchorTreeIndex.d.ts.map +1 -1
- package/lib/feature-libraries/indexing/anchorTreeIndex.js +1 -1
- package/lib/feature-libraries/indexing/anchorTreeIndex.js.map +1 -1
- package/lib/feature-libraries/mapTreeCursor.d.ts +39 -3
- package/lib/feature-libraries/mapTreeCursor.d.ts.map +1 -1
- package/lib/feature-libraries/mapTreeCursor.js +43 -7
- package/lib/feature-libraries/mapTreeCursor.js.map +1 -1
- package/lib/feature-libraries/modular-schema/crossFieldQueries.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +1 -1
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldKindWithEditor.d.ts +1 -1
- package/lib/feature-libraries/modular-schema/fieldKindWithEditor.js +1 -1
- package/lib/feature-libraries/modular-schema/fieldKindWithEditor.js.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKind.js +2 -2
- package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.js.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKindTypes.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKindTypes.js.map +1 -1
- package/lib/feature-libraries/modular-schema/isNeverTree.d.ts +0 -2
- package/lib/feature-libraries/modular-schema/isNeverTree.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/isNeverTree.js +0 -2
- package/lib/feature-libraries/modular-schema/isNeverTree.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js +5 -5
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +2 -0
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js +2 -0
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
- package/lib/feature-libraries/node-identifier/mockNodeIdentifierManager.d.ts.map +1 -1
- package/lib/feature-libraries/node-identifier/mockNodeIdentifierManager.js +8 -3
- package/lib/feature-libraries/node-identifier/mockNodeIdentifierManager.js.map +1 -1
- package/lib/feature-libraries/object-forest/objectForest.d.ts +22 -5
- package/lib/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
- package/lib/feature-libraries/object-forest/objectForest.js +299 -209
- package/lib/feature-libraries/object-forest/objectForest.js.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +2 -2
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js +4 -3
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts +2 -2
- package/lib/feature-libraries/schema-index/codec.d.ts +6 -12
- package/lib/feature-libraries/schema-index/codec.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/codec.js +8 -15
- package/lib/feature-libraries/schema-index/codec.js.map +1 -1
- package/lib/feature-libraries/schema-index/formatV1.d.ts +2 -2
- package/lib/feature-libraries/schema-index/formatV1.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/formatV1.js +2 -2
- package/lib/feature-libraries/schema-index/formatV1.js.map +1 -1
- package/lib/feature-libraries/schema-index/index.d.ts +1 -1
- package/lib/feature-libraries/schema-index/index.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/index.js +1 -1
- package/lib/feature-libraries/schema-index/index.js.map +1 -1
- package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts +1 -1
- package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
- package/lib/feature-libraries/sequence-field/formatV3.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/formatV3.js.map +1 -1
- package/lib/feature-libraries/sequence-field/markQueue.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/markQueue.js.map +1 -1
- package/lib/feature-libraries/sequence-field/prune.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/prune.js.map +1 -1
- package/lib/feature-libraries/sequence-field/rebase.js +1 -1
- package/lib/feature-libraries/sequence-field/rebase.js.map +1 -1
- package/lib/feature-libraries/sequence-field/relevantRemovedRoots.d.ts +1 -1
- package/lib/feature-libraries/sequence-field/relevantRemovedRoots.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/relevantRemovedRoots.js.map +1 -1
- package/lib/feature-libraries/sequence-field/replaceRevisions.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/replaceRevisions.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV1.d.ts +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV1.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV1.js +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV1.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts +2 -2
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.js +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.js +2 -2
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
- package/lib/feature-libraries/sequence-field/utils.d.ts +7 -5
- package/lib/feature-libraries/sequence-field/utils.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/utils.js +7 -5
- package/lib/feature-libraries/sequence-field/utils.js.map +1 -1
- package/lib/feature-libraries/treeCursorUtils.d.ts +5 -1
- package/lib/feature-libraries/treeCursorUtils.d.ts.map +1 -1
- package/lib/feature-libraries/treeCursorUtils.js +10 -4
- package/lib/feature-libraries/treeCursorUtils.js.map +1 -1
- package/lib/feature-libraries/treeTextCursor.d.ts +1 -1
- package/lib/feature-libraries/treeTextCursor.js +1 -1
- package/lib/feature-libraries/treeTextCursor.js.map +1 -1
- package/lib/index.d.ts +3 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +0 -2
- package/lib/index.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.d.ts.map +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/shared-tree/checkoutFlexTreeView.d.ts.map +1 -1
- package/lib/shared-tree/checkoutFlexTreeView.js.map +1 -1
- package/lib/shared-tree/independentView.d.ts +1 -1
- package/lib/shared-tree/independentView.d.ts.map +1 -1
- package/lib/shared-tree/independentView.js +10 -5
- 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 +1 -1
- package/lib/shared-tree/index.js.map +1 -1
- package/lib/shared-tree/schematizeTree.d.ts +1 -1
- package/lib/shared-tree/schematizeTree.d.ts.map +1 -1
- package/lib/shared-tree/schematizeTree.js.map +1 -1
- package/lib/shared-tree/schematizingTreeView.d.ts +12 -2
- package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/lib/shared-tree/schematizingTreeView.js +35 -22
- package/lib/shared-tree/schematizingTreeView.js.map +1 -1
- package/lib/shared-tree/sharedTree.d.ts +6 -6
- package/lib/shared-tree/sharedTree.d.ts.map +1 -1
- package/lib/shared-tree/sharedTree.js +12 -11
- package/lib/shared-tree/sharedTree.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/lib/shared-tree/tree.d.ts.map +1 -1
- package/lib/shared-tree/tree.js +2 -18
- package/lib/shared-tree/tree.js.map +1 -1
- package/lib/shared-tree/treeAlpha.d.ts +78 -5
- package/lib/shared-tree/treeAlpha.d.ts.map +1 -1
- package/lib/shared-tree/treeAlpha.js +53 -9
- package/lib/shared-tree/treeAlpha.js.map +1 -1
- package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
- package/lib/shared-tree/treeCheckout.js +9 -5
- package/lib/shared-tree/treeCheckout.js.map +1 -1
- package/lib/shared-tree-core/branch.d.ts +2 -2
- package/lib/shared-tree-core/branch.d.ts.map +1 -1
- package/lib/shared-tree-core/branch.js +2 -2
- package/lib/shared-tree-core/branch.js.map +1 -1
- package/lib/shared-tree-core/branchCommitEnricher.d.ts +1 -1
- package/lib/shared-tree-core/branchCommitEnricher.d.ts.map +1 -1
- package/lib/shared-tree-core/branchCommitEnricher.js.map +1 -1
- package/lib/shared-tree-core/defaultResubmitMachine.d.ts.map +1 -1
- package/lib/shared-tree-core/defaultResubmitMachine.js.map +1 -1
- package/lib/shared-tree-core/editManager.d.ts +3 -1
- package/lib/shared-tree-core/editManager.d.ts.map +1 -1
- package/lib/shared-tree-core/editManager.js +4 -2
- 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.map +1 -1
- package/lib/shared-tree-core/editManagerSummarizer.d.ts +1 -1
- package/lib/shared-tree-core/editManagerSummarizer.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerSummarizer.js.map +1 -1
- package/lib/shared-tree-core/messageCodecs.d.ts +1 -1
- package/lib/shared-tree-core/messageCodecs.js +1 -1
- package/lib/shared-tree-core/messageCodecs.js.map +1 -1
- package/lib/shared-tree-core/sequenceIdUtils.d.ts.map +1 -1
- package/lib/shared-tree-core/sequenceIdUtils.js.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.d.ts +2 -2
- package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.js +4 -4
- package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/lib/shared-tree-core/transaction.d.ts.map +1 -1
- package/lib/shared-tree-core/transaction.js +1 -1
- package/lib/shared-tree-core/transaction.js.map +1 -1
- package/lib/shared-tree-core/transactionEnricher.d.ts.map +1 -1
- package/lib/shared-tree-core/transactionEnricher.js.map +1 -1
- package/lib/simple-tree/api/conciseTree.d.ts.map +1 -1
- package/lib/simple-tree/api/conciseTree.js +1 -1
- package/lib/simple-tree/api/conciseTree.js.map +1 -1
- package/lib/simple-tree/api/configuration.d.ts +2 -2
- package/lib/simple-tree/api/configuration.js +2 -2
- package/lib/simple-tree/api/configuration.js.map +1 -1
- package/lib/simple-tree/api/create.d.ts +10 -29
- package/lib/simple-tree/api/create.d.ts.map +1 -1
- package/lib/simple-tree/api/create.js +23 -45
- package/lib/simple-tree/api/create.js.map +1 -1
- package/lib/simple-tree/api/customTree.d.ts +5 -1
- package/lib/simple-tree/api/customTree.d.ts.map +1 -1
- package/lib/simple-tree/api/customTree.js +10 -3
- package/lib/simple-tree/api/customTree.js.map +1 -1
- package/lib/simple-tree/api/getSimpleSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/getSimpleSchema.js.map +1 -1
- package/lib/simple-tree/api/identifierIndex.js +1 -1
- package/lib/simple-tree/api/identifierIndex.js.map +1 -1
- package/lib/simple-tree/api/index.d.ts +2 -3
- package/lib/simple-tree/api/index.d.ts.map +1 -1
- package/lib/simple-tree/api/index.js +2 -5
- package/lib/simple-tree/api/index.js.map +1 -1
- package/lib/simple-tree/api/schemaCompatibilityTester.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaCompatibilityTester.js.map +1 -1
- package/lib/simple-tree/api/schemaFactory.d.ts +14 -6
- package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactory.js +44 -15
- package/lib/simple-tree/api/schemaFactory.js.map +1 -1
- package/lib/simple-tree/api/schemaFactoryAlpha.d.ts +1 -3
- package/lib/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactoryAlpha.js +1 -3
- package/lib/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
- package/lib/simple-tree/api/schemaFactoryRecursive.d.ts +2 -2
- package/lib/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
- package/lib/simple-tree/api/schemaFromSimple.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFromSimple.js.map +1 -1
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.d.ts +1 -1
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.js +1 -3
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
- package/lib/simple-tree/api/storedSchema.d.ts +1 -1
- package/lib/simple-tree/api/storedSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/storedSchema.js +3 -2
- package/lib/simple-tree/api/storedSchema.js.map +1 -1
- package/lib/simple-tree/api/tree.d.ts +2 -2
- package/lib/simple-tree/api/tree.d.ts.map +1 -1
- package/lib/simple-tree/api/tree.js.map +1 -1
- package/lib/simple-tree/api/treeBeta.d.ts.map +1 -1
- package/lib/simple-tree/api/treeBeta.js +1 -1
- package/lib/simple-tree/api/treeBeta.js.map +1 -1
- package/lib/simple-tree/api/treeNodeApi.d.ts +44 -6
- package/lib/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/lib/simple-tree/api/treeNodeApi.js +55 -29
- package/lib/simple-tree/api/treeNodeApi.js.map +1 -1
- package/lib/simple-tree/api/typesUnsafe.d.ts +1 -1
- package/lib/simple-tree/api/typesUnsafe.d.ts.map +1 -1
- package/lib/simple-tree/api/typesUnsafe.js.map +1 -1
- package/lib/simple-tree/api/verboseTree.d.ts.map +1 -1
- package/lib/simple-tree/api/verboseTree.js +14 -11
- package/lib/simple-tree/api/verboseTree.js.map +1 -1
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.js +1 -3
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.js.map +1 -1
- package/lib/simple-tree/core/context.d.ts.map +1 -1
- package/lib/simple-tree/core/context.js.map +1 -1
- package/lib/simple-tree/core/getOrCreateNode.d.ts +1 -1
- package/lib/simple-tree/core/getOrCreateNode.d.ts.map +1 -1
- package/lib/simple-tree/core/getOrCreateNode.js +3 -2
- package/lib/simple-tree/core/getOrCreateNode.js.map +1 -1
- package/lib/simple-tree/core/index.d.ts +2 -2
- package/lib/simple-tree/core/index.d.ts.map +1 -1
- package/lib/simple-tree/core/index.js +2 -2
- package/lib/simple-tree/core/index.js.map +1 -1
- package/lib/simple-tree/core/treeNode.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNode.js +1 -1
- package/lib/simple-tree/core/treeNode.js.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.d.ts +18 -28
- package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.js +26 -34
- package/lib/simple-tree/core/treeNodeKernel.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/core/types.d.ts.map +1 -1
- package/lib/simple-tree/core/types.js.map +1 -1
- package/lib/simple-tree/core/unhydratedFlexTree.d.ts +128 -59
- package/lib/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
- package/lib/simple-tree/core/unhydratedFlexTree.js +167 -182
- package/lib/simple-tree/core/unhydratedFlexTree.js.map +1 -1
- package/lib/simple-tree/core/withType.d.ts +1 -1
- package/lib/simple-tree/core/withType.d.ts.map +1 -1
- package/lib/simple-tree/core/withType.js.map +1 -1
- package/lib/simple-tree/createContext.d.ts.map +1 -1
- package/lib/simple-tree/createContext.js.map +1 -1
- package/lib/simple-tree/getTreeNodeForField.d.ts.map +1 -1
- package/lib/simple-tree/getTreeNodeForField.js.map +1 -1
- package/lib/simple-tree/index.d.ts +4 -11
- package/lib/simple-tree/index.d.ts.map +1 -1
- package/lib/simple-tree/index.js +4 -8
- 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/{arrayNode.d.ts → node-kinds/array/arrayNode.d.ts} +3 -3
- package/lib/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -0
- package/lib/simple-tree/{arrayNode.js → node-kinds/array/arrayNode.js} +10 -11
- package/lib/simple-tree/node-kinds/array/arrayNode.js.map +1 -0
- package/lib/simple-tree/{arrayNodeTypes.d.ts → node-kinds/array/arrayNodeTypes.d.ts} +3 -3
- package/lib/simple-tree/node-kinds/array/arrayNodeTypes.d.ts.map +1 -0
- package/lib/simple-tree/{arrayNodeTypes.js → node-kinds/array/arrayNodeTypes.js} +1 -1
- package/{dist/simple-tree → lib/simple-tree/node-kinds/array}/arrayNodeTypes.js.map +1 -1
- package/lib/simple-tree/node-kinds/array/index.d.ts +7 -0
- package/lib/simple-tree/node-kinds/array/index.d.ts.map +1 -0
- package/lib/simple-tree/node-kinds/array/index.js +7 -0
- package/lib/simple-tree/node-kinds/array/index.js.map +1 -0
- package/lib/simple-tree/node-kinds/index.d.ts +8 -0
- package/lib/simple-tree/node-kinds/index.d.ts.map +1 -0
- package/lib/simple-tree/node-kinds/index.js +8 -0
- package/lib/simple-tree/node-kinds/index.js.map +1 -0
- package/lib/simple-tree/node-kinds/map/index.d.ts +7 -0
- package/lib/simple-tree/node-kinds/map/index.d.ts.map +1 -0
- package/lib/simple-tree/node-kinds/map/index.js +7 -0
- package/lib/simple-tree/node-kinds/map/index.js.map +1 -0
- package/{dist/simple-tree → lib/simple-tree/node-kinds/map}/mapNode.d.ts +3 -3
- package/lib/simple-tree/node-kinds/map/mapNode.d.ts.map +1 -0
- package/lib/simple-tree/{mapNode.js → node-kinds/map/mapNode.js} +9 -9
- package/lib/simple-tree/node-kinds/map/mapNode.js.map +1 -0
- package/lib/simple-tree/{mapNodeTypes.d.ts → node-kinds/map/mapNodeTypes.d.ts} +3 -3
- package/lib/simple-tree/node-kinds/map/mapNodeTypes.d.ts.map +1 -0
- package/lib/simple-tree/{mapNodeTypes.js → node-kinds/map/mapNodeTypes.js} +1 -1
- package/lib/simple-tree/node-kinds/map/mapNodeTypes.js.map +1 -0
- package/lib/simple-tree/node-kinds/object/index.d.ts +7 -0
- package/lib/simple-tree/node-kinds/object/index.d.ts.map +1 -0
- package/lib/simple-tree/node-kinds/object/index.js +7 -0
- package/lib/simple-tree/node-kinds/object/index.js.map +1 -0
- package/{dist/simple-tree → lib/simple-tree/node-kinds/object}/objectNode.d.ts +6 -6
- package/lib/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -0
- package/lib/simple-tree/{objectNode.js → node-kinds/object/objectNode.js} +9 -17
- package/lib/simple-tree/node-kinds/object/objectNode.js.map +1 -0
- package/{dist/simple-tree → lib/simple-tree/node-kinds/object}/objectNodeTypes.d.ts +5 -5
- package/lib/simple-tree/node-kinds/object/objectNodeTypes.d.ts.map +1 -0
- package/lib/simple-tree/{objectNodeTypes.js → node-kinds/object/objectNodeTypes.js} +1 -1
- package/lib/simple-tree/node-kinds/object/objectNodeTypes.js.map +1 -0
- package/lib/simple-tree/prepareForInsertion.d.ts +20 -6
- package/lib/simple-tree/prepareForInsertion.d.ts.map +1 -1
- package/lib/simple-tree/prepareForInsertion.js +25 -19
- package/lib/simple-tree/prepareForInsertion.js.map +1 -1
- package/lib/simple-tree/schemaTypes.d.ts +9 -9
- package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
- package/lib/simple-tree/schemaTypes.js.map +1 -1
- package/lib/simple-tree/simpleSchema.d.ts.map +1 -1
- package/lib/simple-tree/simpleSchema.js.map +1 -1
- package/lib/simple-tree/toStoredSchema.d.ts +6 -1
- package/lib/simple-tree/toStoredSchema.d.ts.map +1 -1
- package/lib/simple-tree/toStoredSchema.js +5 -2
- package/lib/simple-tree/toStoredSchema.js.map +1 -1
- package/lib/simple-tree/treeNodeValid.d.ts +1 -1
- package/lib/simple-tree/treeNodeValid.d.ts.map +1 -1
- package/lib/simple-tree/treeNodeValid.js +2 -2
- package/lib/simple-tree/treeNodeValid.js.map +1 -1
- package/lib/simple-tree/unhydratedFlexTreeFromInsertable.d.ts +72 -0
- package/lib/simple-tree/unhydratedFlexTreeFromInsertable.d.ts.map +1 -0
- package/lib/simple-tree/{toMapTree.js → unhydratedFlexTreeFromInsertable.js} +138 -179
- package/lib/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -0
- package/lib/simple-tree/walkFieldSchema.d.ts.map +1 -1
- package/lib/simple-tree/walkFieldSchema.js.map +1 -1
- package/lib/tableSchema.d.ts +10 -10
- package/lib/treeFactory.d.ts +1 -1
- package/lib/treeFactory.d.ts.map +1 -1
- package/lib/treeFactory.js +7 -2
- package/lib/treeFactory.js.map +1 -1
- package/lib/util/bTreeUtils.d.ts.map +1 -1
- package/lib/util/bTreeUtils.js.map +1 -1
- package/lib/util/breakable.d.ts +23 -4
- package/lib/util/breakable.d.ts.map +1 -1
- package/lib/util/breakable.js +12 -3
- package/lib/util/breakable.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/utils.d.ts +4 -0
- package/lib/util/utils.d.ts.map +1 -1
- package/lib/util/utils.js +6 -0
- package/lib/util/utils.js.map +1 -1
- package/package.json +22 -22
- package/src/codec/codec.ts +37 -6
- package/src/codec/index.ts +1 -0
- package/src/codec/versioned/codec.ts +42 -5
- package/src/core/index.ts +1 -0
- package/src/core/rebase/types.ts +2 -2
- package/src/core/rebase/utils.ts +10 -10
- package/src/core/schema-stored/formatV1.ts +0 -2
- package/src/core/schema-stored/index.ts +1 -0
- package/src/core/schema-stored/schema.ts +7 -0
- package/src/core/tree/anchorSet.ts +2 -1
- package/src/core/tree/detachedFieldIndex.ts +13 -4
- package/src/core/tree/mapTree.ts +22 -7
- package/src/core/tree/pathTree.ts +12 -11
- package/src/core/tree/treeTextFormat.ts +1 -1
- package/src/core/tree/visitorUtils.ts +2 -2
- package/src/feature-libraries/chunked-forest/chunkedForest.ts +1 -1
- package/src/feature-libraries/default-schema/defaultEditBuilder.ts +4 -3
- package/src/feature-libraries/default-schema/index.ts +1 -1
- package/src/feature-libraries/default-schema/schemaChecker.ts +51 -35
- package/src/feature-libraries/flex-tree/context.ts +46 -15
- package/src/feature-libraries/flex-tree/flexTreeTypes.ts +39 -17
- package/src/feature-libraries/flex-tree/index.ts +4 -0
- package/src/feature-libraries/flex-tree/lazyField.ts +9 -7
- package/src/feature-libraries/flex-tree/lazyNode.ts +6 -2
- package/src/feature-libraries/flex-tree/utilities.ts +1 -1
- package/src/feature-libraries/forest-summary/forestSummarizer.ts +4 -3
- package/src/feature-libraries/index.ts +10 -2
- package/src/feature-libraries/indexing/anchorTreeIndex.ts +4 -2
- package/src/feature-libraries/mapTreeCursor.ts +103 -16
- package/src/feature-libraries/modular-schema/crossFieldQueries.ts +1 -0
- package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +1 -1
- package/src/feature-libraries/modular-schema/fieldKindWithEditor.ts +1 -1
- package/src/feature-libraries/modular-schema/genericFieldKind.ts +4 -2
- package/src/feature-libraries/modular-schema/genericFieldKindCodecs.ts +1 -0
- package/src/feature-libraries/modular-schema/genericFieldKindTypes.ts +1 -0
- package/src/feature-libraries/modular-schema/isNeverTree.ts +0 -2
- package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +10 -6
- package/src/feature-libraries/modular-schema/modularChangeFamily.ts +2 -0
- package/src/feature-libraries/modular-schema/modularChangeTypes.ts +1 -0
- package/src/feature-libraries/node-identifier/mockNodeIdentifierManager.ts +11 -5
- package/src/feature-libraries/object-forest/objectForest.ts +65 -7
- package/src/feature-libraries/schema-edits/schemaChangeCodecs.ts +5 -8
- package/src/feature-libraries/schema-index/codec.ts +13 -21
- package/src/feature-libraries/schema-index/formatV1.ts +2 -2
- package/src/feature-libraries/schema-index/index.ts +0 -1
- package/src/feature-libraries/schema-index/schemaSummarizer.ts +1 -1
- package/src/feature-libraries/sequence-field/formatV3.ts +1 -0
- package/src/feature-libraries/sequence-field/markQueue.ts +1 -0
- package/src/feature-libraries/sequence-field/prune.ts +1 -0
- package/src/feature-libraries/sequence-field/rebase.ts +1 -1
- package/src/feature-libraries/sequence-field/relevantRemovedRoots.ts +1 -1
- package/src/feature-libraries/sequence-field/replaceRevisions.ts +3 -1
- package/src/feature-libraries/sequence-field/sequenceFieldCodecV1.ts +2 -2
- package/src/feature-libraries/sequence-field/sequenceFieldCodecV2.ts +3 -3
- package/src/feature-libraries/sequence-field/sequenceFieldCodecV3.ts +3 -3
- package/src/feature-libraries/sequence-field/sequenceFieldCodecs.ts +2 -2
- package/src/feature-libraries/sequence-field/sequenceFieldToDelta.ts +1 -1
- package/src/feature-libraries/sequence-field/utils.ts +7 -5
- package/src/feature-libraries/treeCursorUtils.ts +23 -12
- package/src/feature-libraries/treeTextCursor.ts +1 -1
- package/src/index.ts +2 -4
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/checkoutFlexTreeView.ts +1 -0
- package/src/shared-tree/independentView.ts +10 -3
- package/src/shared-tree/index.ts +4 -1
- package/src/shared-tree/schematizeTree.ts +2 -1
- package/src/shared-tree/schematizingTreeView.ts +42 -24
- package/src/shared-tree/sharedTree.ts +35 -22
- package/src/shared-tree/sharedTreeChangeFamily.ts +1 -1
- package/src/shared-tree/tree.ts +6 -21
- package/src/shared-tree/treeAlpha.ts +159 -29
- package/src/shared-tree/treeCheckout.ts +9 -5
- package/src/shared-tree-core/branch.ts +3 -4
- package/src/shared-tree-core/branchCommitEnricher.ts +3 -1
- package/src/shared-tree-core/defaultResubmitMachine.ts +2 -0
- package/src/shared-tree-core/editManager.ts +4 -2
- package/src/shared-tree-core/editManagerCodecs.ts +1 -0
- package/src/shared-tree-core/editManagerSummarizer.ts +1 -1
- package/src/shared-tree-core/messageCodecs.ts +1 -1
- package/src/shared-tree-core/sequenceIdUtils.ts +1 -0
- package/src/shared-tree-core/sharedTreeCore.ts +5 -5
- package/src/shared-tree-core/transaction.ts +4 -2
- package/src/shared-tree-core/transactionEnricher.ts +2 -0
- package/src/simple-tree/api/conciseTree.ts +3 -2
- package/src/simple-tree/api/configuration.ts +4 -4
- package/src/simple-tree/api/create.ts +52 -99
- package/src/simple-tree/api/customTree.ts +14 -4
- package/src/simple-tree/api/getSimpleSchema.ts +1 -0
- package/src/simple-tree/api/identifierIndex.ts +1 -1
- package/src/simple-tree/api/index.ts +2 -14
- package/src/simple-tree/api/schemaCompatibilityTester.ts +2 -0
- package/src/simple-tree/api/schemaFactory.ts +89 -35
- package/src/simple-tree/api/schemaFactoryAlpha.ts +8 -6
- package/src/simple-tree/api/schemaFactoryRecursive.ts +3 -3
- package/src/simple-tree/api/schemaFromSimple.ts +3 -1
- package/src/simple-tree/api/simpleSchemaToJsonSchema.ts +1 -3
- package/src/simple-tree/api/storedSchema.ts +5 -4
- package/src/simple-tree/api/tree.ts +3 -4
- package/src/simple-tree/api/treeBeta.ts +3 -2
- package/src/simple-tree/api/treeNodeApi.ts +115 -45
- package/src/simple-tree/api/typesUnsafe.ts +1 -1
- package/src/simple-tree/api/verboseTree.ts +16 -13
- package/src/simple-tree/api/viewSchemaToSimpleSchema.ts +1 -3
- package/src/simple-tree/core/context.ts +1 -0
- package/src/simple-tree/core/getOrCreateNode.ts +6 -3
- package/src/simple-tree/core/index.ts +2 -3
- package/src/simple-tree/core/treeNode.ts +1 -1
- package/src/simple-tree/core/treeNodeKernel.ts +47 -62
- package/src/simple-tree/core/treeNodeSchema.ts +1 -0
- package/src/simple-tree/core/types.ts +1 -1
- package/src/simple-tree/core/unhydratedFlexTree.ts +224 -262
- package/src/simple-tree/core/withType.ts +1 -1
- package/src/simple-tree/createContext.ts +1 -0
- package/src/simple-tree/getTreeNodeForField.ts +2 -0
- package/src/simple-tree/index.ts +17 -24
- package/src/simple-tree/leafNodeSchema.ts +1 -0
- package/src/simple-tree/{arrayNode.ts → node-kinds/array/arrayNode.ts} +18 -19
- package/src/simple-tree/{arrayNodeTypes.ts → node-kinds/array/arrayNodeTypes.ts} +3 -3
- package/src/simple-tree/node-kinds/array/index.ts +18 -0
- package/src/simple-tree/node-kinds/index.ts +39 -0
- package/src/simple-tree/node-kinds/map/index.ts +16 -0
- package/src/simple-tree/{mapNode.ts → node-kinds/map/mapNode.ts} +14 -17
- package/src/simple-tree/{mapNodeTypes.ts → node-kinds/map/mapNodeTypes.ts} +3 -3
- package/src/simple-tree/node-kinds/object/index.ts +16 -0
- package/src/simple-tree/{objectNode.ts → node-kinds/object/objectNode.ts} +32 -45
- package/src/simple-tree/{objectNodeTypes.ts → node-kinds/object/objectNodeTypes.ts} +5 -5
- package/src/simple-tree/prepareForInsertion.ts +50 -43
- package/src/simple-tree/schemaTypes.ts +12 -10
- package/src/simple-tree/simpleSchema.ts +1 -0
- package/src/simple-tree/toStoredSchema.ts +10 -3
- package/src/simple-tree/treeNodeValid.ts +3 -3
- package/src/simple-tree/{toMapTree.ts → unhydratedFlexTreeFromInsertable.ts} +138 -249
- package/src/simple-tree/walkFieldSchema.ts +0 -1
- package/src/treeFactory.ts +7 -2
- package/src/util/bTreeUtils.ts +1 -0
- package/src/util/breakable.ts +19 -4
- package/src/util/index.ts +1 -0
- package/src/util/utils.ts +7 -0
- package/dist/simple-tree/api/testRecursiveDomain.d.ts +0 -62
- package/dist/simple-tree/api/testRecursiveDomain.d.ts.map +0 -1
- package/dist/simple-tree/api/testRecursiveDomain.js +0 -45
- package/dist/simple-tree/api/testRecursiveDomain.js.map +0 -1
- package/dist/simple-tree/arrayNode.d.ts.map +0 -1
- package/dist/simple-tree/arrayNode.js.map +0 -1
- package/dist/simple-tree/arrayNodeTypes.d.ts.map +0 -1
- package/dist/simple-tree/mapNode.d.ts.map +0 -1
- package/dist/simple-tree/mapNode.js.map +0 -1
- package/dist/simple-tree/mapNodeTypes.d.ts.map +0 -1
- package/dist/simple-tree/mapNodeTypes.js.map +0 -1
- package/dist/simple-tree/objectNode.d.ts.map +0 -1
- package/dist/simple-tree/objectNode.js.map +0 -1
- package/dist/simple-tree/objectNodeTypes.d.ts.map +0 -1
- package/dist/simple-tree/objectNodeTypes.js.map +0 -1
- package/dist/simple-tree/toMapTree.d.ts +0 -98
- package/dist/simple-tree/toMapTree.d.ts.map +0 -1
- package/dist/simple-tree/toMapTree.js.map +0 -1
- package/lib/simple-tree/api/testRecursiveDomain.d.ts +0 -62
- package/lib/simple-tree/api/testRecursiveDomain.d.ts.map +0 -1
- package/lib/simple-tree/api/testRecursiveDomain.js +0 -41
- package/lib/simple-tree/api/testRecursiveDomain.js.map +0 -1
- package/lib/simple-tree/arrayNode.d.ts.map +0 -1
- package/lib/simple-tree/arrayNode.js.map +0 -1
- package/lib/simple-tree/arrayNodeTypes.d.ts.map +0 -1
- package/lib/simple-tree/arrayNodeTypes.js.map +0 -1
- package/lib/simple-tree/mapNode.d.ts.map +0 -1
- package/lib/simple-tree/mapNode.js.map +0 -1
- package/lib/simple-tree/mapNodeTypes.d.ts.map +0 -1
- package/lib/simple-tree/mapNodeTypes.js.map +0 -1
- package/lib/simple-tree/objectNode.d.ts.map +0 -1
- package/lib/simple-tree/objectNode.js.map +0 -1
- package/lib/simple-tree/objectNodeTypes.d.ts.map +0 -1
- package/lib/simple-tree/objectNodeTypes.js.map +0 -1
- package/lib/simple-tree/toMapTree.d.ts +0 -98
- package/lib/simple-tree/toMapTree.d.ts.map +0 -1
- package/lib/simple-tree/toMapTree.js.map +0 -1
- package/src/simple-tree/api/testRecursiveDomain.ts +0 -53
|
@@ -177,7 +177,8 @@ export type NodeIndex = number;
|
|
|
177
177
|
export type PlaceIndex = number;
|
|
178
178
|
|
|
179
179
|
/**
|
|
180
|
-
*
|
|
180
|
+
* Gets the number of nodes above this one.
|
|
181
|
+
* @remarks
|
|
181
182
|
* Zero when the path's parent is undefined, meaning the path represents a node in a detached field.
|
|
182
183
|
* Runs in O(depth) time.
|
|
183
184
|
*/
|
|
@@ -192,14 +193,14 @@ export function getDepth(path: UpPath): number {
|
|
|
192
193
|
}
|
|
193
194
|
|
|
194
195
|
/**
|
|
195
|
-
*
|
|
196
|
-
* This is safe to hold onto and use deep object comparisons on.
|
|
196
|
+
* Creates deep copy of the provided path as simple JavaScript object.
|
|
197
|
+
* @remarks This is safe to hold onto and use deep object comparisons on.
|
|
197
198
|
*/
|
|
198
199
|
export function clonePath(path: UpPath): UpPath;
|
|
199
200
|
|
|
200
201
|
/**
|
|
201
|
-
*
|
|
202
|
-
* This is safe to hold onto and use deep object comparisons on.
|
|
202
|
+
* Creates a deep copy of the provided path as simple JavaScript object.
|
|
203
|
+
* @remarks This is safe to hold onto and use deep object comparisons on.
|
|
203
204
|
*/
|
|
204
205
|
export function clonePath(path: UpPath | undefined): UpPath | undefined;
|
|
205
206
|
|
|
@@ -215,8 +216,8 @@ export function clonePath(path: UpPath | undefined): UpPath | undefined {
|
|
|
215
216
|
}
|
|
216
217
|
|
|
217
218
|
/**
|
|
218
|
-
*
|
|
219
|
-
* These elements are unchanged and therefore still point "up".
|
|
219
|
+
* Gets the elements of the given `path`, ordered from root-most to child-most.
|
|
220
|
+
* @remarks These elements are unchanged and therefore still point "up".
|
|
220
221
|
*/
|
|
221
222
|
export function topDownPath(path: UpPath | undefined): UpPath[] {
|
|
222
223
|
const out: UpPath[] = [];
|
|
@@ -230,8 +231,8 @@ export function topDownPath(path: UpPath | undefined): UpPath[] {
|
|
|
230
231
|
}
|
|
231
232
|
|
|
232
233
|
/**
|
|
233
|
-
*
|
|
234
|
-
*
|
|
234
|
+
* Returns true if and only if `a` and `b` describe the same path.
|
|
235
|
+
* @remarks
|
|
235
236
|
* Note that for mutable paths (as used in `AnchorSet`), this equality may change over time: this only checks if the two paths are currently the same.
|
|
236
237
|
*/
|
|
237
238
|
export function compareUpPaths(a: UpPath | undefined, b: UpPath | undefined): boolean {
|
|
@@ -249,8 +250,8 @@ export function compareUpPaths(a: UpPath | undefined, b: UpPath | undefined): bo
|
|
|
249
250
|
}
|
|
250
251
|
|
|
251
252
|
/**
|
|
252
|
-
*
|
|
253
|
-
*
|
|
253
|
+
* Returns true if and only if `a` and `b` describe the same field path.
|
|
254
|
+
* @remarks
|
|
254
255
|
* Note that for mutable paths (as used in `AnchorSet`), this equality may change over time: this only checks if the two paths are currently the same.
|
|
255
256
|
*/
|
|
256
257
|
export function compareFieldUpPaths(a: FieldUpPath, b: FieldUpPath): boolean {
|
|
@@ -140,7 +140,7 @@ export function setGenericTreeField<T>(
|
|
|
140
140
|
}
|
|
141
141
|
|
|
142
142
|
/**
|
|
143
|
-
*
|
|
143
|
+
* Returns keys for fields of `tree`.
|
|
144
144
|
*/
|
|
145
145
|
export function genericTreeKeys<T>(tree: GenericFieldsNode<T>): readonly FieldKey[] {
|
|
146
146
|
const fields = tree.fields;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
import type { IIdCompressor } from "@fluidframework/id-compressor";
|
|
7
7
|
|
|
8
|
-
import type {
|
|
8
|
+
import type { CodecWriteOptions } from "../../codec/index.js";
|
|
9
9
|
import { type IdAllocator, idAllocatorFromMaxId } from "../../util/index.js";
|
|
10
10
|
import type { RevisionTag, RevisionTagCodec } from "../rebase/index.js";
|
|
11
11
|
import type { FieldKey } from "../schema-stored/index.js";
|
|
@@ -21,7 +21,7 @@ export function makeDetachedFieldIndex(
|
|
|
21
21
|
prefix: string = "Temp",
|
|
22
22
|
revisionTagCodec: RevisionTagCodec,
|
|
23
23
|
idCompressor: IIdCompressor,
|
|
24
|
-
options?:
|
|
24
|
+
options?: CodecWriteOptions,
|
|
25
25
|
): DetachedFieldIndex {
|
|
26
26
|
return new DetachedFieldIndex(
|
|
27
27
|
prefix,
|
|
@@ -468,7 +468,7 @@ class Cursor extends BasicChunkCursor implements ITreeSubscriptionCursor {
|
|
|
468
468
|
}
|
|
469
469
|
|
|
470
470
|
/**
|
|
471
|
-
*
|
|
471
|
+
* Creates an implementation of {@link IEditableForest} with no data or schema.
|
|
472
472
|
*/
|
|
473
473
|
export function buildChunkedForest(
|
|
474
474
|
chunker: IChunker,
|
|
@@ -434,8 +434,9 @@ export interface OptionalFieldEditBuilder<TContent> {
|
|
|
434
434
|
}
|
|
435
435
|
|
|
436
436
|
/**
|
|
437
|
+
* Edit builder for the sequence field kind.
|
|
437
438
|
*/
|
|
438
|
-
export interface SequenceFieldEditBuilder<TContent> {
|
|
439
|
+
export interface SequenceFieldEditBuilder<TContent, TRemoved = void> {
|
|
439
440
|
/**
|
|
440
441
|
* Issues a change which inserts the `newContent` at the given `index`.
|
|
441
442
|
* @param index - the index at which to insert the `newContent`.
|
|
@@ -448,11 +449,11 @@ export interface SequenceFieldEditBuilder<TContent> {
|
|
|
448
449
|
* @param index - The index of the first removed element.
|
|
449
450
|
* @param count - The number of elements to remove.
|
|
450
451
|
*/
|
|
451
|
-
remove(index: number, count: number):
|
|
452
|
+
remove(index: number, count: number): TRemoved;
|
|
452
453
|
}
|
|
453
454
|
|
|
454
455
|
/**
|
|
455
|
-
*
|
|
456
|
+
* Gets the number of path elements that both paths share, starting at index 0.
|
|
456
457
|
*/
|
|
457
458
|
function getSharedPrefixLength(pathA: readonly UpPath[], pathB: readonly UpPath[]): number {
|
|
458
459
|
const minDepth = Math.min(pathA.length, pathB.length);
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { unreachableCase, fail } from "@fluidframework/core-utils/internal";
|
|
7
|
+
import { UsageError } from "@fluidframework/telemetry-utils/internal";
|
|
7
8
|
|
|
8
9
|
import {
|
|
9
|
-
type MapTree,
|
|
10
10
|
type TreeFieldStoredSchema,
|
|
11
11
|
LeafNodeStoredSchema,
|
|
12
12
|
ObjectNodeStoredSchema,
|
|
@@ -15,27 +15,30 @@ import {
|
|
|
15
15
|
type SchemaAndPolicy,
|
|
16
16
|
} from "../../core/index.js";
|
|
17
17
|
import { allowsValue } from "../valueUtilities.js";
|
|
18
|
-
import {
|
|
18
|
+
import type { MapTreeFieldViewGeneric, MinimalMapTreeNodeView } from "../mapTreeCursor.js";
|
|
19
|
+
import { iterableHasSome, mapIterable } from "../../util/index.js";
|
|
19
20
|
|
|
20
|
-
export
|
|
21
|
-
NoError,
|
|
21
|
+
export enum SchemaValidationError {
|
|
22
22
|
Field_KindNotInSchemaPolicy,
|
|
23
|
-
|
|
23
|
+
Field_MissingRequiredChild,
|
|
24
|
+
Field_MultipleChildrenNotAllowed,
|
|
25
|
+
Field_ChildInForbiddenField,
|
|
24
26
|
Field_NodeTypeNotAllowed,
|
|
25
27
|
LeafNode_InvalidValue,
|
|
26
28
|
LeafNode_FieldsNotAllowed,
|
|
27
29
|
ObjectNode_FieldNotInSchema,
|
|
28
30
|
NonLeafNode_ValueNotAllowed,
|
|
29
31
|
Node_MissingSchema,
|
|
30
|
-
UnknownError,
|
|
31
32
|
}
|
|
32
33
|
|
|
33
34
|
/**
|
|
34
35
|
* Throws a UsageError if maybeError indicates a tree is out of schema.
|
|
35
36
|
*/
|
|
36
|
-
export function inSchemaOrThrow(maybeError:
|
|
37
|
-
if (maybeError !==
|
|
38
|
-
throw new UsageError(
|
|
37
|
+
export function inSchemaOrThrow(maybeError: SchemaValidationError | undefined): void {
|
|
38
|
+
if (maybeError !== undefined) {
|
|
39
|
+
throw new UsageError(
|
|
40
|
+
`Tree does not conform to schema: ${SchemaValidationError[maybeError]}`,
|
|
41
|
+
);
|
|
39
42
|
}
|
|
40
43
|
}
|
|
41
44
|
|
|
@@ -43,35 +46,35 @@ export function inSchemaOrThrow(maybeError: SchemaValidationErrors): void {
|
|
|
43
46
|
* Deeply checks that the provided node complies with the schema based on its identifier.
|
|
44
47
|
*/
|
|
45
48
|
export function isNodeInSchema(
|
|
46
|
-
node:
|
|
49
|
+
node: MinimalMapTreeNodeView,
|
|
47
50
|
schemaAndPolicy: SchemaAndPolicy,
|
|
48
|
-
):
|
|
51
|
+
): SchemaValidationError | undefined {
|
|
49
52
|
// Validate the schema declared by the node exists
|
|
50
53
|
const schema = schemaAndPolicy.schema.nodeSchema.get(node.type);
|
|
51
54
|
if (schema === undefined) {
|
|
52
|
-
return
|
|
55
|
+
return SchemaValidationError.Node_MissingSchema;
|
|
53
56
|
}
|
|
54
57
|
|
|
55
58
|
// Validate the node is well formed according to its schema
|
|
56
59
|
|
|
57
60
|
if (schema instanceof LeafNodeStoredSchema) {
|
|
58
|
-
if (node.fields
|
|
59
|
-
return
|
|
61
|
+
if (iterableHasSome(node.fields)) {
|
|
62
|
+
return SchemaValidationError.LeafNode_FieldsNotAllowed;
|
|
60
63
|
}
|
|
61
64
|
if (!allowsValue(schema.leafValue, node.value)) {
|
|
62
|
-
return
|
|
65
|
+
return SchemaValidationError.LeafNode_InvalidValue;
|
|
63
66
|
}
|
|
64
67
|
} else {
|
|
65
68
|
if (node.value !== undefined) {
|
|
66
|
-
return
|
|
69
|
+
return SchemaValidationError.NonLeafNode_ValueNotAllowed;
|
|
67
70
|
}
|
|
68
71
|
|
|
69
72
|
if (schema instanceof ObjectNodeStoredSchema) {
|
|
70
|
-
const uncheckedFieldsFromNode = new Set(node.fields
|
|
73
|
+
const uncheckedFieldsFromNode = new Set(mapIterable(node.fields, ([key, field]) => key));
|
|
71
74
|
for (const [fieldKey, fieldSchema] of schema.objectNodeFields) {
|
|
72
75
|
const nodeField = node.fields.get(fieldKey) ?? [];
|
|
73
76
|
const fieldInSchemaResult = isFieldInSchema(nodeField, fieldSchema, schemaAndPolicy);
|
|
74
|
-
if (fieldInSchemaResult !==
|
|
77
|
+
if (fieldInSchemaResult !== undefined) {
|
|
75
78
|
return fieldInSchemaResult;
|
|
76
79
|
}
|
|
77
80
|
uncheckedFieldsFromNode.delete(fieldKey);
|
|
@@ -81,12 +84,12 @@ export function isNodeInSchema(
|
|
|
81
84
|
uncheckedFieldsFromNode.size !== 0 &&
|
|
82
85
|
!schemaAndPolicy.policy.allowUnknownOptionalFields(node.type)
|
|
83
86
|
) {
|
|
84
|
-
return
|
|
87
|
+
return SchemaValidationError.ObjectNode_FieldNotInSchema;
|
|
85
88
|
}
|
|
86
89
|
} else if (schema instanceof MapNodeStoredSchema) {
|
|
87
|
-
for (const field of node.fields
|
|
90
|
+
for (const [_key, field] of node.fields) {
|
|
88
91
|
const fieldInSchemaResult = isFieldInSchema(field, schema.mapFields, schemaAndPolicy);
|
|
89
|
-
if (fieldInSchemaResult !==
|
|
92
|
+
if (fieldInSchemaResult !== undefined) {
|
|
90
93
|
return fieldInSchemaResult;
|
|
91
94
|
}
|
|
92
95
|
}
|
|
@@ -95,42 +98,45 @@ export function isNodeInSchema(
|
|
|
95
98
|
}
|
|
96
99
|
}
|
|
97
100
|
|
|
98
|
-
return
|
|
101
|
+
return undefined;
|
|
99
102
|
}
|
|
100
103
|
|
|
101
104
|
/**
|
|
102
105
|
* Deeply checks that the nodes comply with the field schema and included schema.
|
|
103
106
|
*/
|
|
104
107
|
export function isFieldInSchema(
|
|
105
|
-
childNodes:
|
|
108
|
+
childNodes: MapTreeFieldViewGeneric<MinimalMapTreeNodeView>,
|
|
106
109
|
schema: TreeFieldStoredSchema,
|
|
107
110
|
schemaAndPolicy: SchemaAndPolicy,
|
|
108
|
-
):
|
|
111
|
+
): SchemaValidationError | undefined {
|
|
109
112
|
// Validate that the field kind is handled by the schema policy
|
|
110
113
|
const kind = schemaAndPolicy.policy.fieldKinds.get(schema.kind);
|
|
111
114
|
if (kind === undefined) {
|
|
112
|
-
return
|
|
115
|
+
return SchemaValidationError.Field_KindNotInSchemaPolicy;
|
|
113
116
|
}
|
|
114
117
|
|
|
115
118
|
// Validate that the field doesn't contain more nodes than its type supports
|
|
116
|
-
|
|
117
|
-
|
|
119
|
+
{
|
|
120
|
+
const multiplicityCheck = compliesWithMultiplicity(childNodes.length, kind.multiplicity);
|
|
121
|
+
if (multiplicityCheck !== undefined) {
|
|
122
|
+
return multiplicityCheck;
|
|
123
|
+
}
|
|
118
124
|
}
|
|
119
125
|
|
|
120
126
|
for (const node of childNodes) {
|
|
121
127
|
// Validate the type declared by the node is allowed in this field
|
|
122
128
|
if (schema.types !== undefined && !schema.types.has(node.type)) {
|
|
123
|
-
return
|
|
129
|
+
return SchemaValidationError.Field_NodeTypeNotAllowed;
|
|
124
130
|
}
|
|
125
131
|
|
|
126
132
|
// Validate the node complies with the type it declares to be.
|
|
127
133
|
const nodeInSchemaResult = isNodeInSchema(node, schemaAndPolicy);
|
|
128
|
-
if (nodeInSchemaResult !==
|
|
134
|
+
if (nodeInSchemaResult !== undefined) {
|
|
129
135
|
return nodeInSchemaResult;
|
|
130
136
|
}
|
|
131
137
|
}
|
|
132
138
|
|
|
133
|
-
return
|
|
139
|
+
return undefined;
|
|
134
140
|
}
|
|
135
141
|
|
|
136
142
|
/**
|
|
@@ -142,16 +148,26 @@ export function isFieldInSchema(
|
|
|
142
148
|
export function compliesWithMultiplicity(
|
|
143
149
|
numberOfItems: number,
|
|
144
150
|
multiplicity: Multiplicity,
|
|
145
|
-
):
|
|
151
|
+
): SchemaValidationError | undefined {
|
|
146
152
|
switch (multiplicity) {
|
|
147
153
|
case Multiplicity.Single:
|
|
148
|
-
|
|
154
|
+
if (numberOfItems < 1) {
|
|
155
|
+
return SchemaValidationError.Field_MissingRequiredChild;
|
|
156
|
+
} else if (numberOfItems > 1) {
|
|
157
|
+
return SchemaValidationError.Field_MultipleChildrenNotAllowed;
|
|
158
|
+
} else {
|
|
159
|
+
return undefined;
|
|
160
|
+
}
|
|
149
161
|
case Multiplicity.Optional:
|
|
150
|
-
return numberOfItems
|
|
162
|
+
return numberOfItems > 1
|
|
163
|
+
? SchemaValidationError.Field_MultipleChildrenNotAllowed
|
|
164
|
+
: undefined;
|
|
151
165
|
case Multiplicity.Sequence:
|
|
152
|
-
return
|
|
166
|
+
return undefined;
|
|
153
167
|
case Multiplicity.Forbidden:
|
|
154
|
-
return numberOfItems === 0
|
|
168
|
+
return numberOfItems === 0
|
|
169
|
+
? undefined
|
|
170
|
+
: SchemaValidationError.Field_ChildInForbiddenField;
|
|
155
171
|
default:
|
|
156
172
|
unreachableCase(multiplicity);
|
|
157
173
|
}
|
|
@@ -3,23 +3,26 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
import type { Listenable } from "@fluidframework/core-interfaces";
|
|
6
7
|
import { assert, debugAssert } from "@fluidframework/core-utils/internal";
|
|
7
8
|
|
|
8
9
|
import {
|
|
10
|
+
type DetachedField,
|
|
11
|
+
type FieldKindIdentifier,
|
|
9
12
|
type ForestEvents,
|
|
10
13
|
type SchemaPolicy,
|
|
11
14
|
type TreeStoredSchema,
|
|
12
15
|
anchorSlot,
|
|
13
16
|
moveToDetachedField,
|
|
17
|
+
rootField,
|
|
14
18
|
} from "../../core/index.js";
|
|
15
|
-
import type {
|
|
19
|
+
import type { ITreeCheckout } from "../../shared-tree/index.js";
|
|
16
20
|
import { type IDisposable, disposeSymbol } from "../../util/index.js";
|
|
17
21
|
import type { NodeIdentifierManager } from "../node-identifier/index.js";
|
|
18
22
|
|
|
19
23
|
import type { FlexTreeField } from "./flexTreeTypes.js";
|
|
20
24
|
import type { LazyEntity } from "./lazyEntity.js";
|
|
21
25
|
import { makeField } from "./lazyField.js";
|
|
22
|
-
import type { ITreeCheckout } from "../../shared-tree/index.js";
|
|
23
26
|
|
|
24
27
|
/**
|
|
25
28
|
* Context for FlexTrees.
|
|
@@ -51,16 +54,12 @@ export interface FlexTreeContext {
|
|
|
51
54
|
}
|
|
52
55
|
|
|
53
56
|
/**
|
|
54
|
-
*
|
|
55
|
-
* It handles group operations like transforming cursors into anchors for edits.
|
|
57
|
+
* Subset of a hydrated context which can be used in more cases (like before the root and events are set up).
|
|
56
58
|
*/
|
|
57
|
-
export interface
|
|
58
|
-
readonly events: Listenable<ForestEvents>;
|
|
59
|
+
export interface FlexTreeHydratedContextMinimal {
|
|
59
60
|
/**
|
|
60
|
-
*
|
|
61
|
+
* The {@link NodeIdentifierManager} responsible for allocating and compressing identifiers for nodes in this context.
|
|
61
62
|
*/
|
|
62
|
-
get root(): FlexTreeField;
|
|
63
|
-
|
|
64
63
|
readonly nodeKeyManager: NodeIdentifierManager;
|
|
65
64
|
|
|
66
65
|
/**
|
|
@@ -69,6 +68,20 @@ export interface FlexTreeHydratedContext extends FlexTreeContext {
|
|
|
69
68
|
readonly checkout: ITreeCheckout;
|
|
70
69
|
}
|
|
71
70
|
|
|
71
|
+
/**
|
|
72
|
+
* A common context of a "forest" of FlexTrees.
|
|
73
|
+
* It handles group operations like transforming cursors into anchors for edits.
|
|
74
|
+
*/
|
|
75
|
+
export interface FlexTreeHydratedContext
|
|
76
|
+
extends FlexTreeContext,
|
|
77
|
+
FlexTreeHydratedContextMinimal {
|
|
78
|
+
readonly events: Listenable<ForestEvents>;
|
|
79
|
+
/**
|
|
80
|
+
* Gets the root field of the tree.
|
|
81
|
+
*/
|
|
82
|
+
get root(): FlexTreeField;
|
|
83
|
+
}
|
|
84
|
+
|
|
72
85
|
/**
|
|
73
86
|
* Creating multiple flex tree contexts for the same branch, and thus with the same underlying AnchorSet does not work due to how TreeNode caching works.
|
|
74
87
|
* This slot is used to detect if one already exists and error if creating a second.
|
|
@@ -82,6 +95,8 @@ export const ContextSlot = anchorSlot<Context>();
|
|
|
82
95
|
*
|
|
83
96
|
* A {@link FlexTreeContext} which is used to manage the cursors and anchors within the FlexTrees:
|
|
84
97
|
* This is necessary for supporting using this tree across edits to the forest, and not leaking memory.
|
|
98
|
+
*
|
|
99
|
+
* This context and the trees it produces observe the kinds of fields from the schema
|
|
85
100
|
*/
|
|
86
101
|
export class Context implements FlexTreeHydratedContext, IDisposable {
|
|
87
102
|
public readonly withCursors: Set<LazyEntity> = new Set();
|
|
@@ -159,6 +174,7 @@ export class Context implements FlexTreeHydratedContext, IDisposable {
|
|
|
159
174
|
|
|
160
175
|
/**
|
|
161
176
|
* Release any cursors and anchors held by tree entities created in this context.
|
|
177
|
+
* @remarks
|
|
162
178
|
* Ensures the cashed references to those entities on the Anchors are also cleared.
|
|
163
179
|
* The tree entities are invalid to use after this, but the context may still be used
|
|
164
180
|
* to create new trees starting from the root.
|
|
@@ -172,17 +188,32 @@ export class Context implements FlexTreeHydratedContext, IDisposable {
|
|
|
172
188
|
assert(this.withAnchors.size === 0, 0x775 /* free should remove all anchors */);
|
|
173
189
|
}
|
|
174
190
|
|
|
191
|
+
/**
|
|
192
|
+
* Gets the root field of the tree.
|
|
193
|
+
* @remarks
|
|
194
|
+
* This is a cached value: it should not be disposed by the accessor.
|
|
195
|
+
* Like all other fields from this context, it will become invalid to use after {@link clear} is called or the {@link disposeSymbol} method is called.
|
|
196
|
+
*/
|
|
175
197
|
public get root(): FlexTreeField {
|
|
176
198
|
assert(this.disposed === false, 0x804 /* use after dispose */);
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
199
|
+
|
|
200
|
+
this.lazyRootCache ??= this.detachedField(rootField, this.schema.rootFieldSchema.kind);
|
|
201
|
+
return this.lazyRootCache;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* Returns a new {@link FlexTreeField} that will live as long as the caller allows up to the next call to {@link clear} or disposal of the context.
|
|
206
|
+
* @remarks
|
|
207
|
+
* Due to limited support for detached fields, not all operations are supported.
|
|
208
|
+
* Additionally if the detached field's content is deleted, the field will become out of schema if it is required: it must not be used after that point.
|
|
209
|
+
*/
|
|
210
|
+
public detachedField(key: DetachedField, schema: FieldKindIdentifier): FlexTreeField {
|
|
211
|
+
assert(this.disposed === false, 0xb9c /* use after dispose */);
|
|
180
212
|
|
|
181
213
|
const cursor = this.checkout.forest.allocateCursor("root");
|
|
182
|
-
moveToDetachedField(this.checkout.forest, cursor);
|
|
183
|
-
const field = makeField(this,
|
|
214
|
+
moveToDetachedField(this.checkout.forest, cursor, key);
|
|
215
|
+
const field = makeField(this, schema, cursor);
|
|
184
216
|
cursor.free();
|
|
185
|
-
this.lazyRootCache = field;
|
|
186
217
|
return field;
|
|
187
218
|
}
|
|
188
219
|
|
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
|
|
6
6
|
import {
|
|
7
7
|
type AnchorNode,
|
|
8
|
-
type ExclusiveMapTree,
|
|
9
8
|
type FieldKey,
|
|
10
9
|
type FieldKindIdentifier,
|
|
11
10
|
type ITreeCursorSynchronous,
|
|
@@ -20,15 +19,16 @@ import type {
|
|
|
20
19
|
ValueFieldEditBuilder,
|
|
21
20
|
OptionalFieldEditBuilder,
|
|
22
21
|
} from "../default-schema/index.js";
|
|
22
|
+
import type { MinimalMapTreeNodeView } from "../mapTreeCursor.js";
|
|
23
23
|
import type { FlexFieldKind } from "../modular-schema/index.js";
|
|
24
24
|
|
|
25
|
-
import type { FlexTreeContext } from "./context.js";
|
|
25
|
+
import type { FlexTreeContext, FlexTreeHydratedContext } from "./context.js";
|
|
26
26
|
|
|
27
27
|
/**
|
|
28
28
|
* An anchor slot which records the {@link FlexTreeNode} associated with that anchor, if there is one.
|
|
29
29
|
* @remarks This always points to a "real" {@link FlexTreeNode} (i.e. a `LazyTreeNode`), never to a "raw" node.
|
|
30
30
|
*/
|
|
31
|
-
export const flexTreeSlot = anchorSlot<
|
|
31
|
+
export const flexTreeSlot = anchorSlot<HydratedFlexTreeNode>();
|
|
32
32
|
|
|
33
33
|
/**
|
|
34
34
|
* Indicates that an object is a flex tree.
|
|
@@ -98,6 +98,10 @@ export enum TreeStatus {
|
|
|
98
98
|
* Nodes can enter this state for multiple reasons:
|
|
99
99
|
* - The node was removed and nothing (e.g. undo/redo history) kept it from being cleaned up.
|
|
100
100
|
* - The {@link TreeView} was disposed or had a schema change which made the tree incompatible.
|
|
101
|
+
*
|
|
102
|
+
* Deleted nodes' contents should not be observed or edited. This includes functionality exposed via {@link (Tree:variable)},
|
|
103
|
+
* with the exception of {@link TreeNodeApi.status}.
|
|
104
|
+
*
|
|
101
105
|
* @privateRemarks
|
|
102
106
|
* There was planned work (AB#17948) to make the first reason a node could become "Deleted" impossible,
|
|
103
107
|
* at least as an opt in feature,
|
|
@@ -119,8 +123,9 @@ export enum TreeStatus {
|
|
|
119
123
|
*
|
|
120
124
|
* - Transactions do not work: transactions apply to a single {@link TreeView}, and `New` nodes are not part of one.
|
|
121
125
|
*
|
|
122
|
-
* -
|
|
123
|
-
*
|
|
126
|
+
* - Automatically generated {@link SchemaFactory.identifier | identifiers} will be less compressible if read.
|
|
127
|
+
*
|
|
128
|
+
* - {@link TreeIdentifierUtils.getShort} and {@link TreeNodeApi.shortId | Tree.shortId} cannot return their short identifiers.
|
|
124
129
|
*/
|
|
125
130
|
New = 3,
|
|
126
131
|
}
|
|
@@ -168,16 +173,6 @@ export interface FlexTreeNode extends FlexTreeEntity {
|
|
|
168
173
|
|
|
169
174
|
boxedIterator(): IterableIterator<FlexTreeField>;
|
|
170
175
|
|
|
171
|
-
/**
|
|
172
|
-
* The anchor node associated with this node
|
|
173
|
-
*
|
|
174
|
-
* @remarks
|
|
175
|
-
* The ref count keeping this alive is owned by the FlexTreeNode:
|
|
176
|
-
* if holding onto this anchor for longer than the FlexTreeNode might be alive,
|
|
177
|
-
* a separate Anchor (and thus ref count) must be allocated to keep it alive.
|
|
178
|
-
*/
|
|
179
|
-
readonly anchorNode: AnchorNode;
|
|
180
|
-
|
|
181
176
|
/**
|
|
182
177
|
* Returns an iterable of keys for non-empty fields.
|
|
183
178
|
*
|
|
@@ -201,6 +196,33 @@ export interface FlexTreeNode extends FlexTreeEntity {
|
|
|
201
196
|
* Must not be held onto across edits or any other tree API use.
|
|
202
197
|
*/
|
|
203
198
|
borrowCursor(): ITreeCursorSynchronous;
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* If true, this node is a {@link HydratedFlexTreeNode}.
|
|
202
|
+
*
|
|
203
|
+
* If false, this node is unhydrated.
|
|
204
|
+
*/
|
|
205
|
+
isHydrated(): this is HydratedFlexTreeNode;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* A FlexTreeNode that is hydrated, meaning it is associated with a {@link FlexTreeHydratedContext}.
|
|
210
|
+
*/
|
|
211
|
+
export interface HydratedFlexTreeNode extends FlexTreeNode {
|
|
212
|
+
/**
|
|
213
|
+
* {@inheritDoc FlexTreeNode.context}
|
|
214
|
+
*/
|
|
215
|
+
readonly context: FlexTreeHydratedContext;
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* The anchor node associated with this node
|
|
219
|
+
*
|
|
220
|
+
* @remarks
|
|
221
|
+
* The ref count keeping this alive is owned by the FlexTreeNode:
|
|
222
|
+
* if holding onto this anchor for longer than the FlexTreeNode might be alive,
|
|
223
|
+
* a separate Anchor (and thus ref count) must be allocated to keep it alive.
|
|
224
|
+
*/
|
|
225
|
+
readonly anchorNode: AnchorNode;
|
|
204
226
|
}
|
|
205
227
|
|
|
206
228
|
/**
|
|
@@ -277,12 +299,12 @@ export interface FlexTreeField extends FlexTreeEntity {
|
|
|
277
299
|
/**
|
|
278
300
|
* Typed tree for inserting as the content of a field.
|
|
279
301
|
*/
|
|
280
|
-
export type FlexibleFieldContent =
|
|
302
|
+
export type FlexibleFieldContent = readonly FlexibleNodeContent[];
|
|
281
303
|
|
|
282
304
|
/**
|
|
283
305
|
* Tree for inserting as a node.
|
|
284
306
|
*/
|
|
285
|
-
export type FlexibleNodeContent =
|
|
307
|
+
export type FlexibleNodeContent = MinimalMapTreeNodeView;
|
|
286
308
|
|
|
287
309
|
/**
|
|
288
310
|
* {@link FlexTreeField} that stores a sequence of children.
|
|
@@ -17,6 +17,9 @@ export {
|
|
|
17
17
|
FlexTreeEntityKind,
|
|
18
18
|
isFlexTreeNode,
|
|
19
19
|
flexTreeSlot,
|
|
20
|
+
type FlexibleNodeContent,
|
|
21
|
+
type FlexibleFieldContent,
|
|
22
|
+
type HydratedFlexTreeNode,
|
|
20
23
|
} from "./flexTreeTypes.js";
|
|
21
24
|
|
|
22
25
|
export {
|
|
@@ -32,6 +35,7 @@ export {
|
|
|
32
35
|
type FlexTreeHydratedContext,
|
|
33
36
|
Context,
|
|
34
37
|
ContextSlot,
|
|
38
|
+
type FlexTreeHydratedContextMinimal,
|
|
35
39
|
} from "./context.js";
|
|
36
40
|
|
|
37
41
|
export { type FlexTreeNodeEvents } from "./treeEvents.js";
|
|
@@ -30,18 +30,21 @@ import {
|
|
|
30
30
|
type SequenceFieldEditBuilder,
|
|
31
31
|
type ValueFieldEditBuilder,
|
|
32
32
|
} from "../default-schema/index.js";
|
|
33
|
+
import { cursorForMapTreeField } from "../mapTreeCursor.js";
|
|
33
34
|
import type { FlexFieldKind } from "../modular-schema/index.js";
|
|
34
35
|
|
|
35
36
|
import type { Context } from "./context.js";
|
|
36
37
|
import {
|
|
37
38
|
FlexTreeEntityKind,
|
|
38
39
|
type FlexTreeField,
|
|
39
|
-
type FlexTreeNode,
|
|
40
40
|
type FlexTreeOptionalField,
|
|
41
41
|
type FlexTreeRequiredField,
|
|
42
42
|
type FlexTreeSequenceField,
|
|
43
43
|
type FlexTreeTypedField,
|
|
44
44
|
type FlexTreeUnknownUnboxed,
|
|
45
|
+
type FlexibleFieldContent,
|
|
46
|
+
type FlexibleNodeContent,
|
|
47
|
+
type HydratedFlexTreeNode,
|
|
45
48
|
TreeStatus,
|
|
46
49
|
flexTreeMarker,
|
|
47
50
|
flexTreeSlot,
|
|
@@ -49,7 +52,6 @@ import {
|
|
|
49
52
|
import { LazyEntity } from "./lazyEntity.js";
|
|
50
53
|
import { type LazyTreeNode, makeTree } from "./lazyNode.js";
|
|
51
54
|
import { indexForAt, treeStatusFromAnchorCache } from "./utilities.js";
|
|
52
|
-
import { cursorForMapTreeField } from "../mapTreeCursor.js";
|
|
53
55
|
|
|
54
56
|
/**
|
|
55
57
|
* Reuse fields.
|
|
@@ -159,7 +161,7 @@ export abstract class LazyField extends LazyEntity<FieldAnchor> implements FlexT
|
|
|
159
161
|
return this.schema === kind.identifier;
|
|
160
162
|
}
|
|
161
163
|
|
|
162
|
-
public get parent():
|
|
164
|
+
public get parent(): HydratedFlexTreeNode | undefined {
|
|
163
165
|
if (this.anchor.parent === undefined) {
|
|
164
166
|
return undefined;
|
|
165
167
|
}
|
|
@@ -193,7 +195,7 @@ export abstract class LazyField extends LazyEntity<FieldAnchor> implements FlexT
|
|
|
193
195
|
);
|
|
194
196
|
}
|
|
195
197
|
|
|
196
|
-
public boxedAt(index: number):
|
|
198
|
+
public boxedAt(index: number): HydratedFlexTreeNode | undefined {
|
|
197
199
|
const finalIndex = indexForAt(index, this.length);
|
|
198
200
|
|
|
199
201
|
if (finalIndex === undefined) {
|
|
@@ -207,7 +209,7 @@ export abstract class LazyField extends LazyEntity<FieldAnchor> implements FlexT
|
|
|
207
209
|
return Array.from(this, callbackfn);
|
|
208
210
|
}
|
|
209
211
|
|
|
210
|
-
public boxedIterator(): IterableIterator<
|
|
212
|
+
public boxedIterator(): IterableIterator<HydratedFlexTreeNode> {
|
|
211
213
|
return iterateCursorField(this.cursor, (cursor) => makeTree(this.context, cursor));
|
|
212
214
|
}
|
|
213
215
|
|
|
@@ -263,7 +265,7 @@ export class LazySequence extends LazyField implements FlexTreeSequenceField {
|
|
|
263
265
|
return this.map((x) => x);
|
|
264
266
|
}
|
|
265
267
|
|
|
266
|
-
public editor: SequenceFieldEditBuilder<
|
|
268
|
+
public editor: SequenceFieldEditBuilder<FlexibleFieldContent> = {
|
|
267
269
|
insert: (index, newContent) => {
|
|
268
270
|
this.sequenceEditor().insert(index, cursorForMapTreeField(newContent));
|
|
269
271
|
},
|
|
@@ -279,7 +281,7 @@ export class LazySequence extends LazyField implements FlexTreeSequenceField {
|
|
|
279
281
|
}
|
|
280
282
|
|
|
281
283
|
export class LazyValueField extends LazyField implements FlexTreeRequiredField {
|
|
282
|
-
public editor: ValueFieldEditBuilder<
|
|
284
|
+
public editor: ValueFieldEditBuilder<FlexibleNodeContent> = {
|
|
283
285
|
set: (newContent) => {
|
|
284
286
|
this.valueFieldEditor().set(cursorForMapTreeField([newContent]));
|
|
285
287
|
},
|