@fluidframework/tree 2.41.0 → 2.43.0-343119
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 +33 -0
- package/api-report/tree.alpha.api.md +70 -28
- package/api-report/tree.beta.api.md +33 -0
- package/dist/alpha.d.ts +12 -6
- package/dist/beta.d.ts +6 -1
- package/dist/codec/codec.d.ts +23 -3
- package/dist/codec/codec.d.ts.map +1 -1
- package/dist/codec/codec.js.map +1 -1
- package/dist/codec/index.d.ts +1 -1
- package/dist/codec/index.d.ts.map +1 -1
- package/dist/codec/index.js.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 +5 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/schema-stored/formatV2.d.ts +80 -0
- package/dist/core/schema-stored/formatV2.d.ts.map +1 -0
- package/dist/core/schema-stored/formatV2.js +55 -0
- package/dist/core/schema-stored/formatV2.js.map +1 -0
- package/dist/core/schema-stored/index.d.ts +3 -1
- package/dist/core/schema-stored/index.d.ts.map +1 -1
- package/dist/core/schema-stored/index.js +5 -2
- package/dist/core/schema-stored/index.js.map +1 -1
- package/dist/core/schema-stored/schema.d.ts +49 -17
- package/dist/core/schema-stored/schema.d.ts.map +1 -1
- package/dist/core/schema-stored/schema.js +65 -22
- package/dist/core/schema-stored/schema.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/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/codec/chunkEncodingGeneric.d.ts +9 -7
- package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js +13 -9
- package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +3 -3
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js +6 -6
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/nodeShape.d.ts +1 -1
- package/dist/feature-libraries/chunked-forest/codec/nodeShape.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/nodeShape.js +3 -3
- package/dist/feature-libraries/chunked-forest/codec/nodeShape.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.map +1 -1
- package/dist/feature-libraries/default-schema/schemaChecker.d.ts +4 -3
- package/dist/feature-libraries/default-schema/schemaChecker.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/schemaChecker.js +4 -3
- package/dist/feature-libraries/default-schema/schemaChecker.js.map +1 -1
- package/dist/feature-libraries/detachedFieldIndexSummarizer.d.ts +8 -3
- package/dist/feature-libraries/detachedFieldIndexSummarizer.d.ts.map +1 -1
- package/dist/feature-libraries/detachedFieldIndexSummarizer.js +2 -5
- package/dist/feature-libraries/detachedFieldIndexSummarizer.js.map +1 -1
- package/dist/feature-libraries/flex-tree/context.d.ts +14 -6
- package/dist/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/context.js.map +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts +48 -29
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.js +4 -0
- package/dist/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
- package/dist/feature-libraries/flex-tree/index.d.ts +2 -3
- package/dist/feature-libraries/flex-tree/index.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/index.js +1 -7
- package/dist/feature-libraries/flex-tree/index.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyEntity.d.ts +2 -2
- package/dist/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyEntity.js +3 -0
- package/dist/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.d.ts +6 -7
- package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.js +2 -5
- package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyNode.d.ts +8 -7
- package/dist/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyNode.js +17 -6
- package/dist/feature-libraries/flex-tree/lazyNode.js.map +1 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts +10 -5
- package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.js +9 -12
- package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/dist/feature-libraries/index.d.ts +2 -2
- package/dist/feature-libraries/index.d.ts.map +1 -1
- package/dist/feature-libraries/index.js +4 -3
- package/dist/feature-libraries/index.js.map +1 -1
- package/dist/feature-libraries/mapTreeCursor.d.ts +53 -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/fieldKindWithEditor.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldKindWithEditor.js +2 -0
- package/dist/feature-libraries/modular-schema/fieldKindWithEditor.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/object-forest/objectForest.d.ts.map +1 -1
- package/dist/feature-libraries/object-forest/objectForest.js +2 -0
- package/dist/feature-libraries/object-forest/objectForest.js.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js +8 -4
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts +2 -36
- package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeFormat.js +3 -3
- package/dist/feature-libraries/schema-edits/schemaChangeFormat.js.map +1 -1
- package/dist/feature-libraries/schema-index/codec.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/codec.js +59 -9
- package/dist/feature-libraries/schema-index/codec.js.map +1 -1
- package/dist/feature-libraries/schema-index/formatV1.d.ts +1 -1
- package/dist/feature-libraries/schema-index/formatV2.d.ts +42 -0
- package/dist/feature-libraries/schema-index/formatV2.d.ts.map +1 -0
- package/dist/feature-libraries/schema-index/formatV2.js +26 -0
- package/dist/feature-libraries/schema-index/formatV2.js.map +1 -0
- package/dist/feature-libraries/schema-index/index.d.ts +2 -1
- package/dist/feature-libraries/schema-index/index.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/index.js +4 -2
- package/dist/feature-libraries/schema-index/index.js.map +1 -1
- package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts +7 -2
- package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/schemaSummarizer.js +6 -6
- package/dist/feature-libraries/schema-index/schemaSummarizer.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 +8 -2
- package/dist/feature-libraries/treeCursorUtils.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- 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/schematizeTree.d.ts.map +1 -1
- package/dist/shared-tree/schematizeTree.js +1 -0
- package/dist/shared-tree/schematizeTree.js.map +1 -1
- package/dist/shared-tree/schematizingTreeView.d.ts +11 -1
- package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/dist/shared-tree/schematizingTreeView.js +36 -22
- package/dist/shared-tree/schematizingTreeView.js.map +1 -1
- package/dist/shared-tree/sharedTree.d.ts +8 -4
- package/dist/shared-tree/sharedTree.d.ts.map +1 -1
- package/dist/shared-tree/sharedTree.js +35 -5
- package/dist/shared-tree/sharedTree.js.map +1 -1
- package/dist/shared-tree/tree.d.ts.map +1 -1
- package/dist/shared-tree/tree.js +8 -24
- package/dist/shared-tree/tree.js.map +1 -1
- package/dist/shared-tree/treeAlpha.d.ts +2 -3
- package/dist/shared-tree/treeAlpha.d.ts.map +1 -1
- package/dist/shared-tree/treeAlpha.js +4 -5
- 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 +5 -2
- package/dist/shared-tree/treeCheckout.js.map +1 -1
- package/dist/shared-tree-core/editManagerSummarizer.d.ts +8 -3
- package/dist/shared-tree-core/editManagerSummarizer.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerSummarizer.js +2 -5
- package/dist/shared-tree-core/editManagerSummarizer.js.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.d.ts +18 -7
- package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.js +15 -2
- package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/dist/simple-tree/api/configuration.d.ts +2 -2
- package/dist/simple-tree/api/configuration.js +1 -1
- package/dist/simple-tree/api/configuration.js.map +1 -1
- package/dist/simple-tree/api/create.d.ts +9 -4
- package/dist/simple-tree/api/create.d.ts.map +1 -1
- package/dist/simple-tree/api/create.js +29 -16
- package/dist/simple-tree/api/create.js.map +1 -1
- package/dist/simple-tree/api/customTree.d.ts +4 -0
- package/dist/simple-tree/api/customTree.d.ts.map +1 -1
- package/dist/simple-tree/api/customTree.js +9 -1
- package/dist/simple-tree/api/customTree.js.map +1 -1
- package/dist/simple-tree/api/index.d.ts +1 -1
- package/dist/simple-tree/api/index.d.ts.map +1 -1
- package/dist/simple-tree/api/index.js +1 -2
- package/dist/simple-tree/api/index.js.map +1 -1
- package/dist/simple-tree/api/schemaCompatibilityTester.js +1 -1
- package/dist/simple-tree/api/schemaCompatibilityTester.js.map +1 -1
- package/dist/simple-tree/api/schemaCreationUtilities.d.ts +3 -3
- package/dist/simple-tree/api/schemaCreationUtilities.js +3 -3
- package/dist/simple-tree/api/schemaCreationUtilities.js.map +1 -1
- package/dist/simple-tree/api/schemaFactory.d.ts +25 -13
- package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactory.js +42 -9
- package/dist/simple-tree/api/schemaFactory.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryAlpha.d.ts +41 -11
- package/dist/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactoryAlpha.js +31 -4
- package/dist/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
- package/dist/simple-tree/api/storedSchema.js +2 -2
- package/dist/simple-tree/api/storedSchema.js.map +1 -1
- package/dist/simple-tree/api/treeChangeEvents.d.ts +8 -3
- package/dist/simple-tree/api/treeChangeEvents.d.ts.map +1 -1
- package/dist/simple-tree/api/treeChangeEvents.js.map +1 -1
- package/dist/simple-tree/api/treeNodeApi.d.ts +14 -3
- package/dist/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/dist/simple-tree/api/treeNodeApi.js +32 -17
- package/dist/simple-tree/api/treeNodeApi.js.map +1 -1
- package/dist/simple-tree/api/verboseTree.d.ts.map +1 -1
- package/dist/simple-tree/api/verboseTree.js +12 -9
- 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 +5 -0
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.js.map +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/treeNodeKernel.d.ts +15 -25
- package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.js +27 -34
- package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/dist/simple-tree/core/unhydratedFlexTree.d.ts +129 -64
- package/dist/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
- package/dist/simple-tree/core/unhydratedFlexTree.js +175 -207
- package/dist/simple-tree/core/unhydratedFlexTree.js.map +1 -1
- package/dist/simple-tree/index.d.ts +5 -5
- package/dist/simple-tree/index.d.ts.map +1 -1
- package/dist/simple-tree/index.js +5 -5
- package/dist/simple-tree/index.js.map +1 -1
- package/dist/simple-tree/leafNodeSchema.d.ts +2 -0
- package/dist/simple-tree/leafNodeSchema.d.ts.map +1 -1
- package/dist/simple-tree/leafNodeSchema.js.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNode.d.ts +3 -1
- package/dist/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNode.js +8 -7
- package/dist/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/index.d.ts +1 -1
- package/dist/simple-tree/node-kinds/index.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/index.js +1 -2
- package/dist/simple-tree/node-kinds/index.js.map +1 -1
- package/dist/simple-tree/node-kinds/map/mapNode.d.ts +3 -2
- package/dist/simple-tree/node-kinds/map/mapNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/map/mapNode.js +6 -4
- package/dist/simple-tree/node-kinds/map/mapNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/object/index.d.ts +1 -1
- package/dist/simple-tree/node-kinds/object/index.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/object/index.js +1 -2
- package/dist/simple-tree/node-kinds/object/index.js.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNode.d.ts +5 -15
- package/dist/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNode.js +15 -44
- package/dist/simple-tree/node-kinds/object/objectNode.js.map +1 -1
- 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 +31 -20
- package/dist/simple-tree/prepareForInsertion.js.map +1 -1
- package/dist/simple-tree/schemaTypes.d.ts +56 -9
- package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
- package/dist/simple-tree/schemaTypes.js +28 -1
- package/dist/simple-tree/schemaTypes.js.map +1 -1
- package/dist/simple-tree/simpleSchema.d.ts +22 -4
- 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 +8 -1
- package/dist/simple-tree/toStoredSchema.d.ts.map +1 -1
- package/dist/simple-tree/toStoredSchema.js +19 -7
- package/dist/simple-tree/toStoredSchema.js.map +1 -1
- package/{lib/simple-tree/toMapTree.d.ts → dist/simple-tree/unhydratedFlexTreeFromInsertable.d.ts} +12 -23
- package/dist/simple-tree/unhydratedFlexTreeFromInsertable.d.ts.map +1 -0
- package/dist/simple-tree/{toMapTree.js → unhydratedFlexTreeFromInsertable.js} +103 -185
- package/dist/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -0
- package/dist/tableSchema.d.ts +1 -1
- package/dist/treeFactory.d.ts.map +1 -1
- package/dist/treeFactory.js +6 -1
- package/dist/treeFactory.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/typeUtils.d.ts +2 -2
- package/dist/util/typeUtils.js.map +1 -1
- package/dist/util/utils.d.ts +6 -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/user-facing/schema-evolution.md +1 -1
- package/lib/alpha.d.ts +12 -6
- package/lib/beta.d.ts +6 -1
- package/lib/codec/codec.d.ts +23 -3
- package/lib/codec/codec.d.ts.map +1 -1
- 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/schema-stored/formatV2.d.ts +80 -0
- package/lib/core/schema-stored/formatV2.d.ts.map +1 -0
- package/lib/core/schema-stored/formatV2.js +52 -0
- package/lib/core/schema-stored/formatV2.js.map +1 -0
- package/lib/core/schema-stored/index.d.ts +3 -1
- package/lib/core/schema-stored/index.d.ts.map +1 -1
- package/lib/core/schema-stored/index.js +3 -1
- package/lib/core/schema-stored/index.js.map +1 -1
- package/lib/core/schema-stored/schema.d.ts +49 -17
- package/lib/core/schema-stored/schema.d.ts.map +1 -1
- package/lib/core/schema-stored/schema.js +63 -21
- package/lib/core/schema-stored/schema.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/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/codec/chunkEncodingGeneric.d.ts +9 -7
- package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js +11 -7
- package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +3 -3
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js +7 -7
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/nodeShape.d.ts +1 -1
- package/lib/feature-libraries/chunked-forest/codec/nodeShape.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/nodeShape.js +3 -3
- package/lib/feature-libraries/chunked-forest/codec/nodeShape.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.map +1 -1
- package/lib/feature-libraries/default-schema/schemaChecker.d.ts +4 -3
- package/lib/feature-libraries/default-schema/schemaChecker.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/schemaChecker.js +4 -3
- package/lib/feature-libraries/default-schema/schemaChecker.js.map +1 -1
- package/lib/feature-libraries/detachedFieldIndexSummarizer.d.ts +8 -3
- package/lib/feature-libraries/detachedFieldIndexSummarizer.d.ts.map +1 -1
- package/lib/feature-libraries/detachedFieldIndexSummarizer.js +2 -5
- package/lib/feature-libraries/detachedFieldIndexSummarizer.js.map +1 -1
- package/lib/feature-libraries/flex-tree/context.d.ts +14 -6
- package/lib/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/context.js.map +1 -1
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts +48 -29
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/flexTreeTypes.js +4 -0
- package/lib/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
- package/lib/feature-libraries/flex-tree/index.d.ts +2 -3
- package/lib/feature-libraries/flex-tree/index.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/index.js +0 -1
- package/lib/feature-libraries/flex-tree/index.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyEntity.d.ts +2 -2
- package/lib/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyEntity.js +3 -0
- package/lib/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.d.ts +6 -7
- package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.js +3 -6
- package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyNode.d.ts +8 -7
- package/lib/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyNode.js +17 -6
- package/lib/feature-libraries/flex-tree/lazyNode.js.map +1 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts +10 -5
- package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.js +4 -7
- package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/lib/feature-libraries/index.d.ts +2 -2
- package/lib/feature-libraries/index.d.ts.map +1 -1
- package/lib/feature-libraries/index.js +2 -2
- package/lib/feature-libraries/index.js.map +1 -1
- package/lib/feature-libraries/mapTreeCursor.d.ts +53 -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/fieldKindWithEditor.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldKindWithEditor.js +2 -0
- package/lib/feature-libraries/modular-schema/fieldKindWithEditor.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/object-forest/objectForest.d.ts.map +1 -1
- package/lib/feature-libraries/object-forest/objectForest.js +2 -0
- package/lib/feature-libraries/object-forest/objectForest.js.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js +8 -4
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts +2 -36
- package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeFormat.js +3 -3
- package/lib/feature-libraries/schema-edits/schemaChangeFormat.js.map +1 -1
- package/lib/feature-libraries/schema-index/codec.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/codec.js +60 -10
- package/lib/feature-libraries/schema-index/codec.js.map +1 -1
- package/lib/feature-libraries/schema-index/formatV1.d.ts +1 -1
- package/lib/feature-libraries/schema-index/formatV2.d.ts +42 -0
- package/lib/feature-libraries/schema-index/formatV2.d.ts.map +1 -0
- package/lib/feature-libraries/schema-index/formatV2.js +23 -0
- package/lib/feature-libraries/schema-index/formatV2.js.map +1 -0
- package/lib/feature-libraries/schema-index/index.d.ts +2 -1
- package/lib/feature-libraries/schema-index/index.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/index.js +2 -1
- package/lib/feature-libraries/schema-index/index.js.map +1 -1
- package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts +7 -2
- package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/schemaSummarizer.js +6 -6
- package/lib/feature-libraries/schema-index/schemaSummarizer.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 +8 -2
- package/lib/feature-libraries/treeCursorUtils.js.map +1 -1
- package/lib/index.d.ts +3 -3
- package/lib/index.d.ts.map +1 -1
- 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/schematizeTree.d.ts.map +1 -1
- package/lib/shared-tree/schematizeTree.js +1 -0
- package/lib/shared-tree/schematizeTree.js.map +1 -1
- package/lib/shared-tree/schematizingTreeView.d.ts +11 -1
- package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/lib/shared-tree/schematizingTreeView.js +34 -21
- package/lib/shared-tree/schematizingTreeView.js.map +1 -1
- package/lib/shared-tree/sharedTree.d.ts +8 -4
- package/lib/shared-tree/sharedTree.d.ts.map +1 -1
- package/lib/shared-tree/sharedTree.js +36 -6
- package/lib/shared-tree/sharedTree.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 +2 -3
- package/lib/shared-tree/treeAlpha.d.ts.map +1 -1
- package/lib/shared-tree/treeAlpha.js +6 -7
- 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 +6 -3
- package/lib/shared-tree/treeCheckout.js.map +1 -1
- package/lib/shared-tree-core/editManagerSummarizer.d.ts +8 -3
- package/lib/shared-tree-core/editManagerSummarizer.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerSummarizer.js +2 -5
- package/lib/shared-tree-core/editManagerSummarizer.js.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.d.ts +18 -7
- package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.js +15 -2
- package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/lib/simple-tree/api/configuration.d.ts +2 -2
- package/lib/simple-tree/api/configuration.js +1 -1
- package/lib/simple-tree/api/configuration.js.map +1 -1
- package/lib/simple-tree/api/create.d.ts +9 -4
- package/lib/simple-tree/api/create.d.ts.map +1 -1
- package/lib/simple-tree/api/create.js +22 -9
- package/lib/simple-tree/api/create.js.map +1 -1
- package/lib/simple-tree/api/customTree.d.ts +4 -0
- package/lib/simple-tree/api/customTree.d.ts.map +1 -1
- package/lib/simple-tree/api/customTree.js +7 -0
- package/lib/simple-tree/api/customTree.js.map +1 -1
- package/lib/simple-tree/api/index.d.ts +1 -1
- package/lib/simple-tree/api/index.d.ts.map +1 -1
- package/lib/simple-tree/api/index.js +1 -1
- package/lib/simple-tree/api/index.js.map +1 -1
- package/lib/simple-tree/api/schemaCompatibilityTester.js +1 -1
- package/lib/simple-tree/api/schemaCompatibilityTester.js.map +1 -1
- package/lib/simple-tree/api/schemaCreationUtilities.d.ts +3 -3
- package/lib/simple-tree/api/schemaCreationUtilities.js +3 -3
- package/lib/simple-tree/api/schemaCreationUtilities.js.map +1 -1
- package/lib/simple-tree/api/schemaFactory.d.ts +25 -13
- package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactory.js +44 -11
- package/lib/simple-tree/api/schemaFactory.js.map +1 -1
- package/lib/simple-tree/api/schemaFactoryAlpha.d.ts +41 -11
- package/lib/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactoryAlpha.js +31 -4
- package/lib/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
- package/lib/simple-tree/api/storedSchema.js +2 -2
- package/lib/simple-tree/api/storedSchema.js.map +1 -1
- package/lib/simple-tree/api/treeChangeEvents.d.ts +8 -3
- package/lib/simple-tree/api/treeChangeEvents.d.ts.map +1 -1
- package/lib/simple-tree/api/treeChangeEvents.js.map +1 -1
- package/lib/simple-tree/api/treeNodeApi.d.ts +14 -3
- package/lib/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/lib/simple-tree/api/treeNodeApi.js +35 -20
- package/lib/simple-tree/api/treeNodeApi.js.map +1 -1
- package/lib/simple-tree/api/verboseTree.d.ts.map +1 -1
- package/lib/simple-tree/api/verboseTree.js +13 -10
- 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 +5 -0
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.js.map +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/treeNodeKernel.d.ts +15 -25
- package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.js +25 -33
- package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/lib/simple-tree/core/unhydratedFlexTree.d.ts +129 -64
- package/lib/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
- package/lib/simple-tree/core/unhydratedFlexTree.js +174 -208
- package/lib/simple-tree/core/unhydratedFlexTree.js.map +1 -1
- package/lib/simple-tree/index.d.ts +5 -5
- package/lib/simple-tree/index.d.ts.map +1 -1
- package/lib/simple-tree/index.js +3 -3
- package/lib/simple-tree/index.js.map +1 -1
- package/lib/simple-tree/leafNodeSchema.d.ts +2 -0
- package/lib/simple-tree/leafNodeSchema.d.ts.map +1 -1
- package/lib/simple-tree/leafNodeSchema.js.map +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNode.d.ts +3 -1
- package/lib/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNode.js +7 -6
- package/lib/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/index.d.ts +1 -1
- package/lib/simple-tree/node-kinds/index.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/index.js +1 -1
- package/lib/simple-tree/node-kinds/index.js.map +1 -1
- package/lib/simple-tree/node-kinds/map/mapNode.d.ts +3 -2
- package/lib/simple-tree/node-kinds/map/mapNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/map/mapNode.js +8 -6
- package/lib/simple-tree/node-kinds/map/mapNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/object/index.d.ts +1 -1
- package/lib/simple-tree/node-kinds/object/index.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/object/index.js +1 -1
- package/lib/simple-tree/node-kinds/object/index.js.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNode.d.ts +5 -15
- package/lib/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNode.js +6 -34
- package/lib/simple-tree/node-kinds/object/objectNode.js.map +1 -1
- 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 +30 -20
- package/lib/simple-tree/prepareForInsertion.js.map +1 -1
- package/lib/simple-tree/schemaTypes.d.ts +56 -9
- package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
- package/lib/simple-tree/schemaTypes.js +28 -1
- package/lib/simple-tree/schemaTypes.js.map +1 -1
- package/lib/simple-tree/simpleSchema.d.ts +22 -4
- 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 +8 -1
- package/lib/simple-tree/toStoredSchema.d.ts.map +1 -1
- package/lib/simple-tree/toStoredSchema.js +17 -5
- package/lib/simple-tree/toStoredSchema.js.map +1 -1
- package/{dist/simple-tree/toMapTree.d.ts → lib/simple-tree/unhydratedFlexTreeFromInsertable.d.ts} +12 -23
- package/lib/simple-tree/unhydratedFlexTreeFromInsertable.d.ts.map +1 -0
- package/lib/simple-tree/{toMapTree.js → unhydratedFlexTreeFromInsertable.js} +105 -186
- package/lib/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -0
- package/lib/tableSchema.d.ts +1 -1
- package/lib/treeFactory.d.ts.map +1 -1
- package/lib/treeFactory.js +6 -1
- package/lib/treeFactory.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/typeUtils.d.ts +2 -2
- package/lib/util/typeUtils.js.map +1 -1
- package/lib/util/utils.d.ts +6 -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 +21 -21
- package/src/codec/codec.ts +24 -3
- package/src/codec/index.ts +1 -0
- package/src/codec/versioned/codec.ts +42 -5
- package/src/core/index.ts +3 -1
- package/src/core/schema-stored/formatV2.ts +78 -0
- package/src/core/schema-stored/index.ts +4 -1
- package/src/core/schema-stored/schema.ts +123 -33
- package/src/core/tree/detachedFieldIndex.ts +13 -4
- package/src/core/tree/mapTree.ts +22 -7
- package/src/core/tree/visitorUtils.ts +2 -2
- package/src/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.ts +16 -11
- package/src/feature-libraries/chunked-forest/codec/compressedEncode.ts +16 -7
- package/src/feature-libraries/chunked-forest/codec/nodeShape.ts +4 -4
- package/src/feature-libraries/default-schema/defaultEditBuilder.ts +3 -2
- package/src/feature-libraries/default-schema/schemaChecker.ts +7 -6
- package/src/feature-libraries/detachedFieldIndexSummarizer.ts +9 -16
- package/src/feature-libraries/flex-tree/context.ts +17 -7
- package/src/feature-libraries/flex-tree/flexTreeTypes.ts +57 -33
- package/src/feature-libraries/flex-tree/index.ts +4 -8
- package/src/feature-libraries/flex-tree/lazyEntity.ts +5 -1
- package/src/feature-libraries/flex-tree/lazyField.ts +12 -13
- package/src/feature-libraries/flex-tree/lazyNode.ts +21 -8
- package/src/feature-libraries/forest-summary/forestSummarizer.ts +12 -18
- package/src/feature-libraries/index.ts +10 -1
- package/src/feature-libraries/mapTreeCursor.ts +112 -16
- package/src/feature-libraries/modular-schema/fieldKindWithEditor.ts +2 -0
- package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +9 -5
- package/src/feature-libraries/object-forest/objectForest.ts +3 -0
- package/src/feature-libraries/schema-edits/schemaChangeCodecs.ts +11 -6
- package/src/feature-libraries/schema-edits/schemaChangeFormat.ts +3 -3
- package/src/feature-libraries/schema-index/codec.ts +73 -14
- package/src/feature-libraries/schema-index/formatV2.ts +30 -0
- package/src/feature-libraries/schema-index/index.ts +2 -1
- package/src/feature-libraries/schema-index/schemaSummarizer.ts +11 -18
- package/src/feature-libraries/treeCursorUtils.ts +21 -10
- package/src/index.ts +6 -0
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/schematizeTree.ts +1 -0
- package/src/shared-tree/schematizingTreeView.ts +40 -22
- package/src/shared-tree/sharedTree.ts +51 -15
- package/src/shared-tree/tree.ts +5 -20
- package/src/shared-tree/treeAlpha.ts +23 -12
- package/src/shared-tree/treeCheckout.ts +6 -3
- package/src/shared-tree-core/editManagerSummarizer.ts +9 -16
- package/src/shared-tree-core/sharedTreeCore.ts +33 -24
- package/src/simple-tree/api/configuration.ts +3 -3
- package/src/simple-tree/api/create.ts +49 -19
- package/src/simple-tree/api/customTree.ts +10 -0
- package/src/simple-tree/api/index.ts +1 -4
- package/src/simple-tree/api/schemaCompatibilityTester.ts +1 -1
- package/src/simple-tree/api/schemaCreationUtilities.ts +3 -3
- package/src/simple-tree/api/schemaFactory.ts +78 -24
- package/src/simple-tree/api/schemaFactoryAlpha.ts +53 -8
- package/src/simple-tree/api/storedSchema.ts +4 -4
- package/src/simple-tree/api/treeChangeEvents.ts +8 -3
- package/src/simple-tree/api/treeNodeApi.ts +48 -27
- package/src/simple-tree/api/verboseTree.ts +15 -12
- package/src/simple-tree/api/viewSchemaToSimpleSchema.ts +5 -0
- package/src/simple-tree/core/getOrCreateNode.ts +4 -2
- package/src/simple-tree/core/index.ts +2 -3
- package/src/simple-tree/core/treeNodeKernel.ts +38 -55
- package/src/simple-tree/core/unhydratedFlexTree.ts +231 -292
- package/src/simple-tree/index.ts +6 -3
- package/src/simple-tree/leafNodeSchema.ts +2 -0
- package/src/simple-tree/node-kinds/array/arrayNode.ts +17 -13
- package/src/simple-tree/node-kinds/index.ts +0 -1
- package/src/simple-tree/node-kinds/map/mapNode.ts +17 -11
- package/src/simple-tree/node-kinds/object/index.ts +0 -1
- package/src/simple-tree/node-kinds/object/objectNode.ts +15 -49
- package/src/simple-tree/prepareForInsertion.ts +54 -43
- package/src/simple-tree/schemaTypes.ts +103 -13
- package/src/simple-tree/simpleSchema.ts +27 -5
- package/src/simple-tree/toStoredSchema.ts +22 -5
- package/src/simple-tree/{toMapTree.ts → unhydratedFlexTreeFromInsertable.ts} +134 -226
- package/src/treeFactory.ts +6 -1
- package/src/util/index.ts +1 -0
- package/src/util/typeUtils.ts +2 -2
- package/src/util/utils.ts +9 -0
- package/dist/feature-libraries/flex-tree/navigation.d.ts +0 -46
- package/dist/feature-libraries/flex-tree/navigation.d.ts.map +0 -1
- package/dist/feature-libraries/flex-tree/navigation.js +0 -104
- package/dist/feature-libraries/flex-tree/navigation.js.map +0 -1
- package/dist/simple-tree/toMapTree.d.ts.map +0 -1
- package/dist/simple-tree/toMapTree.js.map +0 -1
- package/lib/feature-libraries/flex-tree/navigation.d.ts +0 -46
- package/lib/feature-libraries/flex-tree/navigation.d.ts.map +0 -1
- package/lib/feature-libraries/flex-tree/navigation.js +0 -97
- package/lib/feature-libraries/flex-tree/navigation.js.map +0 -1
- package/lib/simple-tree/toMapTree.d.ts.map +0 -1
- package/lib/simple-tree/toMapTree.js.map +0 -1
- package/src/feature-libraries/flex-tree/navigation.ts +0 -121
|
@@ -7,7 +7,6 @@ import { unreachableCase, fail } from "@fluidframework/core-utils/internal";
|
|
|
7
7
|
import { UsageError } from "@fluidframework/telemetry-utils/internal";
|
|
8
8
|
|
|
9
9
|
import {
|
|
10
|
-
type MapTree,
|
|
11
10
|
type TreeFieldStoredSchema,
|
|
12
11
|
LeafNodeStoredSchema,
|
|
13
12
|
ObjectNodeStoredSchema,
|
|
@@ -16,6 +15,8 @@ import {
|
|
|
16
15
|
type SchemaAndPolicy,
|
|
17
16
|
} from "../../core/index.js";
|
|
18
17
|
import { allowsValue } from "../valueUtilities.js";
|
|
18
|
+
import type { MapTreeFieldViewGeneric, MinimalMapTreeNodeView } from "../mapTreeCursor.js";
|
|
19
|
+
import { iterableHasSome, mapIterable } from "../../util/index.js";
|
|
19
20
|
|
|
20
21
|
export enum SchemaValidationError {
|
|
21
22
|
Field_KindNotInSchemaPolicy,
|
|
@@ -45,7 +46,7 @@ export function inSchemaOrThrow(maybeError: SchemaValidationError | undefined):
|
|
|
45
46
|
* Deeply checks that the provided node complies with the schema based on its identifier.
|
|
46
47
|
*/
|
|
47
48
|
export function isNodeInSchema(
|
|
48
|
-
node:
|
|
49
|
+
node: MinimalMapTreeNodeView,
|
|
49
50
|
schemaAndPolicy: SchemaAndPolicy,
|
|
50
51
|
): SchemaValidationError | undefined {
|
|
51
52
|
// Validate the schema declared by the node exists
|
|
@@ -57,7 +58,7 @@ export function isNodeInSchema(
|
|
|
57
58
|
// Validate the node is well formed according to its schema
|
|
58
59
|
|
|
59
60
|
if (schema instanceof LeafNodeStoredSchema) {
|
|
60
|
-
if (node.fields
|
|
61
|
+
if (iterableHasSome(node.fields)) {
|
|
61
62
|
return SchemaValidationError.LeafNode_FieldsNotAllowed;
|
|
62
63
|
}
|
|
63
64
|
if (!allowsValue(schema.leafValue, node.value)) {
|
|
@@ -69,7 +70,7 @@ export function isNodeInSchema(
|
|
|
69
70
|
}
|
|
70
71
|
|
|
71
72
|
if (schema instanceof ObjectNodeStoredSchema) {
|
|
72
|
-
const uncheckedFieldsFromNode = new Set(node.fields
|
|
73
|
+
const uncheckedFieldsFromNode = new Set(mapIterable(node.fields, ([key, field]) => key));
|
|
73
74
|
for (const [fieldKey, fieldSchema] of schema.objectNodeFields) {
|
|
74
75
|
const nodeField = node.fields.get(fieldKey) ?? [];
|
|
75
76
|
const fieldInSchemaResult = isFieldInSchema(nodeField, fieldSchema, schemaAndPolicy);
|
|
@@ -86,7 +87,7 @@ export function isNodeInSchema(
|
|
|
86
87
|
return SchemaValidationError.ObjectNode_FieldNotInSchema;
|
|
87
88
|
}
|
|
88
89
|
} else if (schema instanceof MapNodeStoredSchema) {
|
|
89
|
-
for (const field of node.fields
|
|
90
|
+
for (const [_key, field] of node.fields) {
|
|
90
91
|
const fieldInSchemaResult = isFieldInSchema(field, schema.mapFields, schemaAndPolicy);
|
|
91
92
|
if (fieldInSchemaResult !== undefined) {
|
|
92
93
|
return fieldInSchemaResult;
|
|
@@ -104,7 +105,7 @@ export function isNodeInSchema(
|
|
|
104
105
|
* Deeply checks that the nodes comply with the field schema and included schema.
|
|
105
106
|
*/
|
|
106
107
|
export function isFieldInSchema(
|
|
107
|
-
childNodes:
|
|
108
|
+
childNodes: MapTreeFieldViewGeneric<MinimalMapTreeNodeView>,
|
|
108
109
|
schema: TreeFieldStoredSchema,
|
|
109
110
|
schemaAndPolicy: SchemaAndPolicy,
|
|
110
111
|
): SchemaValidationError | undefined {
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import { bufferToString } from "@fluid-internal/client-utils";
|
|
7
7
|
import type { IChannelStorageService } from "@fluidframework/datastore-definitions/internal";
|
|
8
8
|
import type {
|
|
9
|
+
IExperimentalIncrementalSummaryContext,
|
|
9
10
|
ISummaryTreeWithStats,
|
|
10
11
|
ITelemetryContext,
|
|
11
12
|
} from "@fluidframework/runtime-definitions/internal";
|
|
@@ -32,23 +33,15 @@ export class DetachedFieldIndexSummarizer implements Summarizable {
|
|
|
32
33
|
|
|
33
34
|
public constructor(private readonly detachedFieldIndex: DetachedFieldIndex) {}
|
|
34
35
|
|
|
35
|
-
public
|
|
36
|
-
stringify: SummaryElementStringifier
|
|
37
|
-
fullTree?: boolean
|
|
38
|
-
trackState?: boolean
|
|
39
|
-
telemetryContext?: ITelemetryContext
|
|
40
|
-
|
|
36
|
+
public summarize(props: {
|
|
37
|
+
stringify: SummaryElementStringifier;
|
|
38
|
+
fullTree?: boolean;
|
|
39
|
+
trackState?: boolean;
|
|
40
|
+
telemetryContext?: ITelemetryContext;
|
|
41
|
+
incrementalSummaryContext?: IExperimentalIncrementalSummaryContext;
|
|
42
|
+
}): ISummaryTreeWithStats {
|
|
41
43
|
const data = this.detachedFieldIndex.encode();
|
|
42
|
-
return createSingleBlobSummary(detachedFieldIndexBlobKey, stringify(data));
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
public async summarize(
|
|
46
|
-
stringify: SummaryElementStringifier,
|
|
47
|
-
fullTree?: boolean,
|
|
48
|
-
trackState?: boolean,
|
|
49
|
-
telemetryContext?: ITelemetryContext,
|
|
50
|
-
): Promise<ISummaryTreeWithStats> {
|
|
51
|
-
return this.getAttachSummary(stringify, fullTree, trackState, telemetryContext);
|
|
44
|
+
return createSingleBlobSummary(detachedFieldIndexBlobKey, props.stringify(data));
|
|
52
45
|
}
|
|
53
46
|
|
|
54
47
|
public async load(
|
|
@@ -54,16 +54,12 @@ export interface FlexTreeContext {
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
/**
|
|
57
|
-
*
|
|
58
|
-
* 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).
|
|
59
58
|
*/
|
|
60
|
-
export interface
|
|
61
|
-
readonly events: Listenable<ForestEvents>;
|
|
59
|
+
export interface FlexTreeHydratedContextMinimal {
|
|
62
60
|
/**
|
|
63
|
-
*
|
|
61
|
+
* The {@link NodeIdentifierManager} responsible for allocating and compressing identifiers for nodes in this context.
|
|
64
62
|
*/
|
|
65
|
-
get root(): FlexTreeField;
|
|
66
|
-
|
|
67
63
|
readonly nodeKeyManager: NodeIdentifierManager;
|
|
68
64
|
|
|
69
65
|
/**
|
|
@@ -72,6 +68,20 @@ export interface FlexTreeHydratedContext extends FlexTreeContext {
|
|
|
72
68
|
readonly checkout: ITreeCheckout;
|
|
73
69
|
}
|
|
74
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
|
+
|
|
75
85
|
/**
|
|
76
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.
|
|
77
87
|
* This slot is used to detect if one already exists and error if creating a second.
|
|
@@ -5,12 +5,10 @@
|
|
|
5
5
|
|
|
6
6
|
import {
|
|
7
7
|
type AnchorNode,
|
|
8
|
-
type ExclusiveMapTree,
|
|
9
8
|
type FieldKey,
|
|
10
9
|
type FieldKindIdentifier,
|
|
11
10
|
type ITreeCursorSynchronous,
|
|
12
11
|
type NormalizedFieldUpPath,
|
|
13
|
-
type TreeNodeSchemaIdentifier,
|
|
14
12
|
type TreeValue,
|
|
15
13
|
anchorSlot,
|
|
16
14
|
} from "../../core/index.js";
|
|
@@ -20,15 +18,21 @@ import type {
|
|
|
20
18
|
ValueFieldEditBuilder,
|
|
21
19
|
OptionalFieldEditBuilder,
|
|
22
20
|
} from "../default-schema/index.js";
|
|
21
|
+
import type {
|
|
22
|
+
MapTreeFieldViewGeneric,
|
|
23
|
+
MapTreeNodeViewGeneric,
|
|
24
|
+
MinimalFieldMap,
|
|
25
|
+
MinimalMapTreeNodeView,
|
|
26
|
+
} from "../mapTreeCursor.js";
|
|
23
27
|
import type { FlexFieldKind } from "../modular-schema/index.js";
|
|
24
28
|
|
|
25
|
-
import type { FlexTreeContext } from "./context.js";
|
|
29
|
+
import type { FlexTreeContext, FlexTreeHydratedContext } from "./context.js";
|
|
26
30
|
|
|
27
31
|
/**
|
|
28
32
|
* An anchor slot which records the {@link FlexTreeNode} associated with that anchor, if there is one.
|
|
29
33
|
* @remarks This always points to a "real" {@link FlexTreeNode} (i.e. a `LazyTreeNode`), never to a "raw" node.
|
|
30
34
|
*/
|
|
31
|
-
export const flexTreeSlot = anchorSlot<
|
|
35
|
+
export const flexTreeSlot = anchorSlot<HydratedFlexTreeNode>();
|
|
32
36
|
|
|
33
37
|
/**
|
|
34
38
|
* Indicates that an object is a flex tree.
|
|
@@ -75,6 +79,14 @@ export interface FlexTreeEntity {
|
|
|
75
79
|
* A common context of FlexTrees.
|
|
76
80
|
*/
|
|
77
81
|
readonly context: FlexTreeContext;
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Get a cursor for the underlying data.
|
|
85
|
+
* @remarks
|
|
86
|
+
* This cursor might be one the node uses in its implementation, and thus must be returned to its original location before using any other APIs to interact with the tree.
|
|
87
|
+
* Must not be held onto across edits or any other tree API use.
|
|
88
|
+
*/
|
|
89
|
+
borrowCursor(): ITreeCursorSynchronous;
|
|
78
90
|
}
|
|
79
91
|
|
|
80
92
|
/**
|
|
@@ -98,6 +110,10 @@ export enum TreeStatus {
|
|
|
98
110
|
* Nodes can enter this state for multiple reasons:
|
|
99
111
|
* - The node was removed and nothing (e.g. undo/redo history) kept it from being cleaned up.
|
|
100
112
|
* - The {@link TreeView} was disposed or had a schema change which made the tree incompatible.
|
|
113
|
+
*
|
|
114
|
+
* Deleted nodes' contents should not be observed or edited. This includes functionality exposed via {@link (Tree:variable)},
|
|
115
|
+
* with the exception of {@link TreeNodeApi.status}.
|
|
116
|
+
*
|
|
101
117
|
* @privateRemarks
|
|
102
118
|
* There was planned work (AB#17948) to make the first reason a node could become "Deleted" impossible,
|
|
103
119
|
* at least as an opt in feature,
|
|
@@ -138,14 +154,9 @@ export enum TreeStatus {
|
|
|
138
154
|
* @remarks
|
|
139
155
|
* All editing is actually done via {@link FlexTreeField}s: the nodes are immutable other than that they contain mutable fields.
|
|
140
156
|
*/
|
|
141
|
-
export interface FlexTreeNode extends FlexTreeEntity {
|
|
157
|
+
export interface FlexTreeNode extends FlexTreeEntity, MapTreeNodeViewGeneric<FlexTreeNode> {
|
|
142
158
|
readonly [flexTreeMarker]: FlexTreeEntityKind.Node;
|
|
143
159
|
|
|
144
|
-
/**
|
|
145
|
-
* Value stored on this node.
|
|
146
|
-
*/
|
|
147
|
-
readonly value?: TreeValue;
|
|
148
|
-
|
|
149
160
|
/**
|
|
150
161
|
* Gets a field of this node, if it is not empty.
|
|
151
162
|
*/
|
|
@@ -164,20 +175,24 @@ export interface FlexTreeNode extends FlexTreeEntity {
|
|
|
164
175
|
|
|
165
176
|
/**
|
|
166
177
|
* The field this tree is in, and the index within that field.
|
|
178
|
+
* @remarks
|
|
179
|
+
* The behavior of this at the root (especially removed and unhydrated roots) is currently not very consistent.
|
|
180
|
+
* Since very little relies on this, limit what it exposes to reduce the potential impact of inconsistent root handling.
|
|
167
181
|
*/
|
|
168
|
-
readonly parentField: {
|
|
182
|
+
readonly parentField: {
|
|
183
|
+
readonly parent: Pick<FlexTreeField, "parent" | "schema" | "key">;
|
|
184
|
+
readonly index: number;
|
|
185
|
+
};
|
|
169
186
|
|
|
170
|
-
|
|
187
|
+
/**
|
|
188
|
+
* The non-empty fields on this node.
|
|
189
|
+
*/
|
|
190
|
+
readonly fields: MinimalFieldMap<FlexTreeField>;
|
|
171
191
|
|
|
172
192
|
/**
|
|
173
|
-
* The
|
|
174
|
-
*
|
|
175
|
-
* @remarks
|
|
176
|
-
* The ref count keeping this alive is owned by the FlexTreeNode:
|
|
177
|
-
* if holding onto this anchor for longer than the FlexTreeNode might be alive,
|
|
178
|
-
* a separate Anchor (and thus ref count) must be allocated to keep it alive.
|
|
193
|
+
* The non-empty fields on this node.
|
|
179
194
|
*/
|
|
180
|
-
|
|
195
|
+
[Symbol.iterator](): IterableIterator<FlexTreeField>;
|
|
181
196
|
|
|
182
197
|
/**
|
|
183
198
|
* Returns an iterable of keys for non-empty fields.
|
|
@@ -190,18 +205,31 @@ export interface FlexTreeNode extends FlexTreeEntity {
|
|
|
190
205
|
keys(): IterableIterator<FieldKey>;
|
|
191
206
|
|
|
192
207
|
/**
|
|
193
|
-
*
|
|
194
|
-
*
|
|
208
|
+
* If true, this node is a {@link HydratedFlexTreeNode}.
|
|
209
|
+
*
|
|
210
|
+
* If false, this node is unhydrated.
|
|
195
211
|
*/
|
|
196
|
-
|
|
212
|
+
isHydrated(): this is HydratedFlexTreeNode;
|
|
213
|
+
}
|
|
197
214
|
|
|
215
|
+
/**
|
|
216
|
+
* A FlexTreeNode that is hydrated, meaning it is associated with a {@link FlexTreeHydratedContext}.
|
|
217
|
+
*/
|
|
218
|
+
export interface HydratedFlexTreeNode extends FlexTreeNode {
|
|
198
219
|
/**
|
|
199
|
-
*
|
|
220
|
+
* {@inheritDoc FlexTreeNode.context}
|
|
221
|
+
*/
|
|
222
|
+
readonly context: FlexTreeHydratedContext;
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* The anchor node associated with this node
|
|
226
|
+
*
|
|
200
227
|
* @remarks
|
|
201
|
-
*
|
|
202
|
-
*
|
|
228
|
+
* The ref count keeping this alive is owned by the FlexTreeNode:
|
|
229
|
+
* if holding onto this anchor for longer than the FlexTreeNode might be alive,
|
|
230
|
+
* a separate Anchor (and thus ref count) must be allocated to keep it alive.
|
|
203
231
|
*/
|
|
204
|
-
|
|
232
|
+
readonly anchorNode: AnchorNode;
|
|
205
233
|
}
|
|
206
234
|
|
|
207
235
|
/**
|
|
@@ -222,7 +250,7 @@ export interface FlexTreeNode extends FlexTreeEntity {
|
|
|
222
250
|
* All content in the tree is accessible without down-casting, but if the schema is known,
|
|
223
251
|
* the schema aware API may be more ergonomic.
|
|
224
252
|
*/
|
|
225
|
-
export interface FlexTreeField extends FlexTreeEntity {
|
|
253
|
+
export interface FlexTreeField extends FlexTreeEntity, MapTreeFieldViewGeneric<FlexTreeNode> {
|
|
226
254
|
readonly [flexTreeMarker]: FlexTreeEntityKind.Field;
|
|
227
255
|
|
|
228
256
|
/**
|
|
@@ -247,8 +275,6 @@ export interface FlexTreeField extends FlexTreeEntity {
|
|
|
247
275
|
*/
|
|
248
276
|
is<TKind extends FlexFieldKind>(kind: TKind): this is FlexTreeTypedField<TKind>;
|
|
249
277
|
|
|
250
|
-
boxedIterator(): IterableIterator<FlexTreeNode>;
|
|
251
|
-
|
|
252
278
|
/**
|
|
253
279
|
* Gets a node of this field by its index without unboxing.
|
|
254
280
|
* @param index - Zero-based index of the item to retrieve. Negative values are interpreted from the end of the sequence.
|
|
@@ -278,12 +304,12 @@ export interface FlexTreeField extends FlexTreeEntity {
|
|
|
278
304
|
/**
|
|
279
305
|
* Typed tree for inserting as the content of a field.
|
|
280
306
|
*/
|
|
281
|
-
export type FlexibleFieldContent =
|
|
307
|
+
export type FlexibleFieldContent = readonly FlexibleNodeContent[];
|
|
282
308
|
|
|
283
309
|
/**
|
|
284
310
|
* Tree for inserting as a node.
|
|
285
311
|
*/
|
|
286
|
-
export type FlexibleNodeContent =
|
|
312
|
+
export type FlexibleNodeContent = MinimalMapTreeNodeView;
|
|
287
313
|
|
|
288
314
|
/**
|
|
289
315
|
* {@link FlexTreeField} that stores a sequence of children.
|
|
@@ -329,8 +355,6 @@ export interface FlexTreeSequenceField extends FlexTreeField {
|
|
|
329
355
|
* Get an editor for this sequence.
|
|
330
356
|
*/
|
|
331
357
|
readonly editor: SequenceFieldEditBuilder<FlexibleFieldContent>;
|
|
332
|
-
|
|
333
|
-
boxedIterator(): IterableIterator<FlexTreeNode>;
|
|
334
358
|
}
|
|
335
359
|
|
|
336
360
|
/**
|
|
@@ -17,21 +17,17 @@ 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
|
-
export {
|
|
23
|
-
visitBipartiteIterableTree,
|
|
24
|
-
Skip,
|
|
25
|
-
visitBipartiteIterableTreeWithState,
|
|
26
|
-
visitIterableTree,
|
|
27
|
-
visitIterableTreeWithState,
|
|
28
|
-
} from "./navigation.js";
|
|
29
|
-
|
|
30
25
|
export {
|
|
31
26
|
type FlexTreeContext,
|
|
32
27
|
type FlexTreeHydratedContext,
|
|
33
28
|
Context,
|
|
34
29
|
ContextSlot,
|
|
30
|
+
type FlexTreeHydratedContextMinimal,
|
|
35
31
|
} from "./context.js";
|
|
36
32
|
|
|
37
33
|
export { type FlexTreeNodeEvents } from "./treeEvents.js";
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import { assert } from "@fluidframework/core-utils/internal";
|
|
7
7
|
|
|
8
8
|
import {
|
|
9
|
+
type ITreeCursorSynchronous,
|
|
9
10
|
type ITreeSubscriptionCursor,
|
|
10
11
|
ITreeSubscriptionCursorState,
|
|
11
12
|
TreeNavigationResult,
|
|
@@ -48,7 +49,10 @@ export abstract class LazyEntity<TAnchor = unknown> implements FlexTreeEntity, I
|
|
|
48
49
|
this.context.withAnchors.add(this);
|
|
49
50
|
}
|
|
50
51
|
|
|
51
|
-
public
|
|
52
|
+
public borrowCursor(): ITreeCursorSynchronous {
|
|
53
|
+
return this.cursor as ITreeCursorSynchronous;
|
|
54
|
+
}
|
|
55
|
+
|
|
52
56
|
public abstract get [flexTreeMarker](): FlexTreeEntityKind;
|
|
53
57
|
|
|
54
58
|
public [disposeSymbol](): void {
|
|
@@ -19,6 +19,7 @@ import {
|
|
|
19
19
|
type TreeNavigationResult,
|
|
20
20
|
inCursorNode,
|
|
21
21
|
iterateCursorField,
|
|
22
|
+
mapCursorField,
|
|
22
23
|
rootFieldKey,
|
|
23
24
|
} from "../../core/index.js";
|
|
24
25
|
import { disposeSymbol, getOrCreate } from "../../util/index.js";
|
|
@@ -37,12 +38,14 @@ import type { Context } from "./context.js";
|
|
|
37
38
|
import {
|
|
38
39
|
FlexTreeEntityKind,
|
|
39
40
|
type FlexTreeField,
|
|
40
|
-
type FlexTreeNode,
|
|
41
41
|
type FlexTreeOptionalField,
|
|
42
42
|
type FlexTreeRequiredField,
|
|
43
43
|
type FlexTreeSequenceField,
|
|
44
44
|
type FlexTreeTypedField,
|
|
45
45
|
type FlexTreeUnknownUnboxed,
|
|
46
|
+
type FlexibleFieldContent,
|
|
47
|
+
type FlexibleNodeContent,
|
|
48
|
+
type HydratedFlexTreeNode,
|
|
46
49
|
TreeStatus,
|
|
47
50
|
flexTreeMarker,
|
|
48
51
|
flexTreeSlot,
|
|
@@ -159,7 +162,7 @@ export abstract class LazyField extends LazyEntity<FieldAnchor> implements FlexT
|
|
|
159
162
|
return this.schema === kind.identifier;
|
|
160
163
|
}
|
|
161
164
|
|
|
162
|
-
public get parent():
|
|
165
|
+
public get parent(): HydratedFlexTreeNode | undefined {
|
|
163
166
|
if (this.anchor.parent === undefined) {
|
|
164
167
|
return undefined;
|
|
165
168
|
}
|
|
@@ -193,7 +196,7 @@ export abstract class LazyField extends LazyEntity<FieldAnchor> implements FlexT
|
|
|
193
196
|
);
|
|
194
197
|
}
|
|
195
198
|
|
|
196
|
-
public boxedAt(index: number):
|
|
199
|
+
public boxedAt(index: number): HydratedFlexTreeNode | undefined {
|
|
197
200
|
const finalIndex = indexForAt(index, this.length);
|
|
198
201
|
|
|
199
202
|
if (finalIndex === undefined) {
|
|
@@ -204,19 +207,15 @@ export abstract class LazyField extends LazyEntity<FieldAnchor> implements FlexT
|
|
|
204
207
|
}
|
|
205
208
|
|
|
206
209
|
public map<U>(callbackfn: (value: FlexTreeUnknownUnboxed, index: number) => U): U[] {
|
|
207
|
-
return
|
|
210
|
+
return mapCursorField(this.cursor, (cursor) =>
|
|
211
|
+
callbackfn(unboxedFlexNode(this.context, cursor, this.anchor), cursor.fieldIndex),
|
|
212
|
+
);
|
|
208
213
|
}
|
|
209
214
|
|
|
210
|
-
public
|
|
215
|
+
public [Symbol.iterator](): IterableIterator<HydratedFlexTreeNode> {
|
|
211
216
|
return iterateCursorField(this.cursor, (cursor) => makeTree(this.context, cursor));
|
|
212
217
|
}
|
|
213
218
|
|
|
214
|
-
public [Symbol.iterator](): IterableIterator<FlexTreeUnknownUnboxed> {
|
|
215
|
-
return iterateCursorField(this.cursor, (cursor) =>
|
|
216
|
-
unboxedFlexNode(this.context, cursor, this.anchor),
|
|
217
|
-
);
|
|
218
|
-
}
|
|
219
|
-
|
|
220
219
|
public getFieldPath(): NormalizedFieldUpPath {
|
|
221
220
|
return { parent: this.parent?.anchorNode, field: this.key };
|
|
222
221
|
}
|
|
@@ -263,7 +262,7 @@ export class LazySequence extends LazyField implements FlexTreeSequenceField {
|
|
|
263
262
|
return this.map((x) => x);
|
|
264
263
|
}
|
|
265
264
|
|
|
266
|
-
public editor: SequenceFieldEditBuilder<
|
|
265
|
+
public editor: SequenceFieldEditBuilder<FlexibleFieldContent> = {
|
|
267
266
|
insert: (index, newContent) => {
|
|
268
267
|
this.sequenceEditor().insert(index, cursorForMapTreeField(newContent));
|
|
269
268
|
},
|
|
@@ -279,7 +278,7 @@ export class LazySequence extends LazyField implements FlexTreeSequenceField {
|
|
|
279
278
|
}
|
|
280
279
|
|
|
281
280
|
export class LazyValueField extends LazyField implements FlexTreeRequiredField {
|
|
282
|
-
public editor: ValueFieldEditBuilder<
|
|
281
|
+
public editor: ValueFieldEditBuilder<FlexibleNodeContent> = {
|
|
283
282
|
set: (newContent) => {
|
|
284
283
|
this.valueFieldEditor().set(cursorForMapTreeField([newContent]));
|
|
285
284
|
},
|
|
@@ -10,7 +10,6 @@ import {
|
|
|
10
10
|
type AnchorNode,
|
|
11
11
|
CursorLocationType,
|
|
12
12
|
type FieldKey,
|
|
13
|
-
type ITreeCursorSynchronous,
|
|
14
13
|
type FieldKindIdentifier,
|
|
15
14
|
type ITreeSubscriptionCursor,
|
|
16
15
|
type TreeNavigationResult,
|
|
@@ -28,7 +27,7 @@ import type { Context } from "./context.js";
|
|
|
28
27
|
import {
|
|
29
28
|
FlexTreeEntityKind,
|
|
30
29
|
type FlexTreeField,
|
|
31
|
-
type
|
|
30
|
+
type HydratedFlexTreeNode,
|
|
32
31
|
flexTreeMarker,
|
|
33
32
|
flexTreeSlot,
|
|
34
33
|
} from "./flexTreeTypes.js";
|
|
@@ -63,7 +62,7 @@ function cleanupTree(anchor: AnchorNode): void {
|
|
|
63
62
|
/**
|
|
64
63
|
* Lazy implementation of {@link FlexTreeNode}.
|
|
65
64
|
*/
|
|
66
|
-
export class LazyTreeNode extends LazyEntity<Anchor> implements
|
|
65
|
+
export class LazyTreeNode extends LazyEntity<Anchor> implements HydratedFlexTreeNode {
|
|
67
66
|
public get [flexTreeMarker](): FlexTreeEntityKind.Node {
|
|
68
67
|
return FlexTreeEntityKind.Node;
|
|
69
68
|
}
|
|
@@ -75,21 +74,21 @@ export class LazyTreeNode extends LazyEntity<Anchor> implements FlexTreeNode {
|
|
|
75
74
|
|
|
76
75
|
public constructor(
|
|
77
76
|
context: Context,
|
|
78
|
-
public readonly
|
|
77
|
+
public readonly type: TreeNodeSchemaIdentifier,
|
|
79
78
|
cursor: ITreeSubscriptionCursor,
|
|
80
79
|
public readonly anchorNode: AnchorNode,
|
|
81
80
|
anchor: Anchor,
|
|
82
81
|
) {
|
|
83
82
|
super(context, cursor, anchor);
|
|
84
83
|
this.storedSchema =
|
|
85
|
-
context.schema.nodeSchema.get(this.
|
|
84
|
+
context.schema.nodeSchema.get(this.type) ?? fail(0xb14 /* missing schema */);
|
|
86
85
|
assert(cursor.mode === CursorLocationType.Nodes, 0x783 /* must be in nodes mode */);
|
|
87
86
|
anchorNode.slots.set(flexTreeSlot, this);
|
|
88
87
|
this.#removeDeleteCallback = anchorNode.events.on("afterDestroy", cleanupTree);
|
|
89
88
|
}
|
|
90
89
|
|
|
91
|
-
public
|
|
92
|
-
return
|
|
90
|
+
public isHydrated(): this is HydratedFlexTreeNode {
|
|
91
|
+
return true;
|
|
93
92
|
}
|
|
94
93
|
|
|
95
94
|
protected override tryMoveCursorToAnchor(
|
|
@@ -111,6 +110,20 @@ export class LazyTreeNode extends LazyEntity<Anchor> implements FlexTreeNode {
|
|
|
111
110
|
return this.cursor.value;
|
|
112
111
|
}
|
|
113
112
|
|
|
113
|
+
public readonly fields: Pick<Map<FieldKey, FlexTreeField>, typeof Symbol.iterator | "get"> =
|
|
114
|
+
{
|
|
115
|
+
get: (key: FieldKey): FlexTreeField | undefined => this.tryGetField(key),
|
|
116
|
+
[Symbol.iterator]: (): IterableIterator<[FieldKey, FlexTreeField]> =>
|
|
117
|
+
mapCursorFields(this.cursor, (cursor) => {
|
|
118
|
+
const key: FieldKey = cursor.getFieldKey();
|
|
119
|
+
const pair: [FieldKey, FlexTreeField] = [
|
|
120
|
+
key,
|
|
121
|
+
makeField(this.context, this.storedSchema.getFieldSchema(key).kind, cursor),
|
|
122
|
+
];
|
|
123
|
+
return pair;
|
|
124
|
+
}).values(),
|
|
125
|
+
};
|
|
126
|
+
|
|
114
127
|
public tryGetField(fieldKey: FieldKey): FlexTreeField | undefined {
|
|
115
128
|
const schema = this.storedSchema.getFieldSchema(fieldKey);
|
|
116
129
|
return inCursorField(this.cursor, fieldKey, (cursor) => {
|
|
@@ -128,7 +141,7 @@ export class LazyTreeNode extends LazyEntity<Anchor> implements FlexTreeNode {
|
|
|
128
141
|
});
|
|
129
142
|
}
|
|
130
143
|
|
|
131
|
-
public
|
|
144
|
+
public [Symbol.iterator](): IterableIterator<FlexTreeField> {
|
|
132
145
|
return mapCursorFields(this.cursor, (cursor) =>
|
|
133
146
|
makeField(
|
|
134
147
|
this.context,
|
|
@@ -8,12 +8,13 @@ import { assert } from "@fluidframework/core-utils/internal";
|
|
|
8
8
|
import type { IChannelStorageService } from "@fluidframework/datastore-definitions/internal";
|
|
9
9
|
import type { IIdCompressor } from "@fluidframework/id-compressor";
|
|
10
10
|
import type {
|
|
11
|
+
IExperimentalIncrementalSummaryContext,
|
|
11
12
|
ISummaryTreeWithStats,
|
|
12
13
|
ITelemetryContext,
|
|
13
14
|
} from "@fluidframework/runtime-definitions/internal";
|
|
14
15
|
import { createSingleBlobSummary } from "@fluidframework/shared-object-base/internal";
|
|
15
16
|
|
|
16
|
-
import
|
|
17
|
+
import type { CodecWriteOptions } from "../../codec/index.js";
|
|
17
18
|
import {
|
|
18
19
|
type DeltaDetachedNodeBuild,
|
|
19
20
|
type DeltaFieldChanges,
|
|
@@ -60,9 +61,10 @@ export class ForestSummarizer implements Summarizable {
|
|
|
60
61
|
private readonly revisionTagCodec: RevisionTagCodec,
|
|
61
62
|
fieldBatchCodec: FieldBatchCodec,
|
|
62
63
|
private readonly encoderContext: FieldBatchEncodingContext,
|
|
63
|
-
options:
|
|
64
|
+
options: CodecWriteOptions,
|
|
64
65
|
private readonly idCompressor: IIdCompressor,
|
|
65
66
|
) {
|
|
67
|
+
// TODO: this should take in CodecWriteOptions, and use it to pick the write version.
|
|
66
68
|
this.codec = makeForestSummarizerCodec(options, fieldBatchCodec);
|
|
67
69
|
}
|
|
68
70
|
|
|
@@ -94,22 +96,14 @@ export class ForestSummarizer implements Summarizable {
|
|
|
94
96
|
return stringify(encoded);
|
|
95
97
|
}
|
|
96
98
|
|
|
97
|
-
public
|
|
98
|
-
stringify: SummaryElementStringifier
|
|
99
|
-
fullTree?: boolean
|
|
100
|
-
trackState?: boolean
|
|
101
|
-
telemetryContext?: ITelemetryContext
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
public async summarize(
|
|
107
|
-
stringify: SummaryElementStringifier,
|
|
108
|
-
fullTree?: boolean,
|
|
109
|
-
trackState?: boolean,
|
|
110
|
-
telemetryContext?: ITelemetryContext,
|
|
111
|
-
): Promise<ISummaryTreeWithStats> {
|
|
112
|
-
return createSingleBlobSummary(treeBlobKey, this.getTreeString(stringify));
|
|
99
|
+
public summarize(props: {
|
|
100
|
+
stringify: SummaryElementStringifier;
|
|
101
|
+
fullTree?: boolean;
|
|
102
|
+
trackState?: boolean;
|
|
103
|
+
telemetryContext?: ITelemetryContext;
|
|
104
|
+
incrementalSummaryContext?: IExperimentalIncrementalSummaryContext;
|
|
105
|
+
}): ISummaryTreeWithStats {
|
|
106
|
+
return createSingleBlobSummary(treeBlobKey, this.getTreeString(props.stringify));
|
|
113
107
|
}
|
|
114
108
|
|
|
115
109
|
public async load(
|
|
@@ -15,6 +15,12 @@ export {
|
|
|
15
15
|
cursorForMapTreeNode,
|
|
16
16
|
mapTreeFromCursor,
|
|
17
17
|
mapTreeFieldFromCursor,
|
|
18
|
+
type MinimalMapTreeNodeView,
|
|
19
|
+
mapTreeFieldsWithField,
|
|
20
|
+
mapTreeWithField,
|
|
21
|
+
type MapTreeFieldViewGeneric,
|
|
22
|
+
type MapTreeNodeViewGeneric,
|
|
23
|
+
type MinimalFieldMap,
|
|
18
24
|
} from "./mapTreeCursor.js";
|
|
19
25
|
export { buildForest } from "./object-forest/index.js";
|
|
20
26
|
export {
|
|
@@ -152,7 +158,6 @@ export {
|
|
|
152
158
|
type FlexTreeOptionalField,
|
|
153
159
|
type FlexTreeRequiredField,
|
|
154
160
|
type FlexTreeSequenceField,
|
|
155
|
-
Skip,
|
|
156
161
|
type FlexTreeContext,
|
|
157
162
|
type FlexTreeHydratedContext,
|
|
158
163
|
type FlexTreeTypedField,
|
|
@@ -174,6 +179,10 @@ export {
|
|
|
174
179
|
treeStatusFromAnchorCache,
|
|
175
180
|
indexForAt,
|
|
176
181
|
FlexTreeEntityKind,
|
|
182
|
+
type FlexibleNodeContent,
|
|
183
|
+
type FlexibleFieldContent,
|
|
184
|
+
type FlexTreeHydratedContextMinimal,
|
|
185
|
+
type HydratedFlexTreeNode,
|
|
177
186
|
} from "./flex-tree/index.js";
|
|
178
187
|
|
|
179
188
|
export { TreeCompressionStrategy } from "./treeCompressionUtils.js";
|