@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
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
var _a, _b;
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.unsupportedUsageError = exports.
|
|
8
|
+
exports.unsupportedUsageError = exports.createField = exports.UnhydratedSequenceField = exports.UnhydratedOptionalField = exports.UnhydratedFlexTreeField = exports.UnhydratedContext = exports.UnhydratedFlexTreeNode = void 0;
|
|
9
9
|
const client_utils_1 = require("@fluid-internal/client-utils");
|
|
10
10
|
const internal_1 = require("@fluidframework/core-utils/internal");
|
|
11
11
|
const internal_2 = require("@fluidframework/telemetry-utils/internal");
|
|
@@ -13,70 +13,90 @@ const index_js_1 = require("../../core/index.js");
|
|
|
13
13
|
const index_js_2 = require("../../feature-libraries/index.js");
|
|
14
14
|
const index_js_3 = require("../../util/index.js");
|
|
15
15
|
/**
|
|
16
|
-
*
|
|
17
|
-
* @remarks
|
|
18
|
-
* MapTreeNodes are unconditionally cached -
|
|
19
|
-
* when retrieved via {@link getOrCreateNodeFromInnerNode}, the same {@link MapTree} object will always produce the same `UnhydratedFlexTreeNode` object.
|
|
20
|
-
*
|
|
21
|
-
* Create a `UnhydratedFlexTreeNode` by calling {@link getOrCreate}.
|
|
16
|
+
* The {@link Unhydrated} implementation of {@link FlexTreeNode}.
|
|
22
17
|
*/
|
|
23
18
|
class UnhydratedFlexTreeNode {
|
|
24
|
-
|
|
25
|
-
return
|
|
19
|
+
isHydrated() {
|
|
20
|
+
return false;
|
|
26
21
|
}
|
|
27
22
|
get storedSchema() {
|
|
28
|
-
return (this.context.schema.nodeSchema.get(this.
|
|
23
|
+
return (this.context.schema.nodeSchema.get(this.data.type) ?? (0, internal_1.fail)(0xb46 /* missing schema */));
|
|
29
24
|
}
|
|
30
25
|
get events() {
|
|
31
26
|
return this._events;
|
|
32
27
|
}
|
|
33
|
-
/**
|
|
34
|
-
* Create a {@link UnhydratedFlexTreeNode} that wraps the given {@link MapTree}, or get the node that already exists for that {@link MapTree} if there is one.
|
|
35
|
-
* @param nodeSchema - the {@link FlexTreeNodeSchema | schema} that the node conforms to
|
|
36
|
-
* @param mapTree - the {@link MapTree} containing the data for this node.
|
|
37
|
-
* @remarks It must conform to the `nodeSchema`.
|
|
38
|
-
*/
|
|
39
|
-
static getOrCreate(context, mapTree) {
|
|
40
|
-
return nodeCache.get(mapTree) ?? new UnhydratedFlexTreeNode(context, mapTree, undefined);
|
|
41
|
-
}
|
|
42
28
|
get context() {
|
|
43
29
|
return this.simpleContext.flexContext;
|
|
44
30
|
}
|
|
45
31
|
/**
|
|
46
32
|
* Create a new UnhydratedFlexTreeNode.
|
|
47
|
-
* @param location - the parentage of this node, if it is being created underneath an existing node and field, or undefined if not
|
|
48
|
-
* @remarks This class (and its subclasses) should not be directly constructed outside of this module.
|
|
49
|
-
* Instead, use {@link getOrCreateNodeFromInnerNode} to create a UnhydratedFlexTreeNode from a {@link MapTree}.
|
|
50
|
-
* A `UnhydratedFlexTreeNode` may never be constructed more than once for the same {@link MapTree} object.
|
|
51
|
-
* Instead, it should always be acquired via {@link getOrCreateNodeFromInnerNode}.
|
|
52
33
|
*/
|
|
53
|
-
constructor(
|
|
54
|
-
/**
|
|
55
|
-
|
|
34
|
+
constructor(
|
|
35
|
+
/**
|
|
36
|
+
* The {@link NodeData} for this node.
|
|
37
|
+
*/
|
|
38
|
+
data,
|
|
39
|
+
/**
|
|
40
|
+
* All {@link UnhydratedFlexTreeField} for this node that have been created so far.
|
|
41
|
+
* @remarks
|
|
42
|
+
* This includes all non-empty fields, but also any empty fields which have been previously requested.
|
|
43
|
+
*/
|
|
44
|
+
fieldsAll,
|
|
45
|
+
/**
|
|
46
|
+
* The {@link Context} for this node.
|
|
47
|
+
* @remarks
|
|
48
|
+
* Provides access to all schema reachable from this node.
|
|
49
|
+
* See {@link getUnhydratedContext}.
|
|
50
|
+
*/
|
|
51
|
+
simpleContext) {
|
|
52
|
+
this.data = data;
|
|
53
|
+
this.fieldsAll = fieldsAll;
|
|
56
54
|
this.simpleContext = simpleContext;
|
|
57
|
-
this.
|
|
58
|
-
this.location = location;
|
|
55
|
+
this.location = unparentedLocation;
|
|
59
56
|
this[_a] = index_js_2.FlexTreeEntityKind.Node;
|
|
60
57
|
this._events = (0, client_utils_1.createEmitter)();
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
58
|
+
/**
|
|
59
|
+
* The non-empty fields on this node.
|
|
60
|
+
* @remarks
|
|
61
|
+
* This is needed to implement {@link MapTreeNodeViewGeneric.fields}, which must omit empty fields.
|
|
62
|
+
* Due to having to detect if a field is empty, this forces the evaluation of any pending defaults in the fields.
|
|
63
|
+
* Use {@link allFieldsLazy} to avoid evaluating pending defaults.
|
|
64
|
+
*/
|
|
65
|
+
this.fields = {
|
|
66
|
+
get: (key) => this.tryGetField(key),
|
|
67
|
+
[Symbol.iterator]: () => (0, index_js_3.filterIterable)(this.fieldsAll, ([, field]) => field.length > 0),
|
|
68
|
+
};
|
|
69
|
+
for (const [_key, field] of this.fieldsAll) {
|
|
70
|
+
field.parent = this;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
[(_a = index_js_2.flexTreeMarker, Symbol.iterator)]() {
|
|
74
|
+
return (0, index_js_3.mapIterable)(this.fields, ([, field]) => field)[Symbol.iterator]();
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Gets all fields, without filtering out empty ones.
|
|
78
|
+
* @remarks
|
|
79
|
+
* This avoids forcing the evaluating of pending defaults in the fields, and also saves a copy on access.
|
|
80
|
+
*/
|
|
81
|
+
get allFieldsLazy() {
|
|
82
|
+
return this.fieldsAll;
|
|
71
83
|
}
|
|
72
84
|
get type() {
|
|
73
|
-
return this.
|
|
85
|
+
return this.data.type;
|
|
86
|
+
}
|
|
87
|
+
getOrCreateField(key) {
|
|
88
|
+
return (0, index_js_3.getOrCreate)(this.fieldsAll, key, () => {
|
|
89
|
+
const stored = this.storedSchema.getFieldSchema(key).kind;
|
|
90
|
+
const field = createField(this.context, stored, key, []);
|
|
91
|
+
field.parent = this;
|
|
92
|
+
return field;
|
|
93
|
+
});
|
|
74
94
|
}
|
|
75
95
|
adoptBy(parent, index) {
|
|
76
96
|
if (parent !== undefined) {
|
|
77
97
|
(0, internal_1.assert)(index !== undefined, 0xa08 /* Expected index */);
|
|
78
98
|
if (this.location !== unparentedLocation) {
|
|
79
|
-
throw new internal_2.UsageError("A node may not be
|
|
99
|
+
throw new internal_2.UsageError("A node may not be in more than one place in the tree");
|
|
80
100
|
}
|
|
81
101
|
let unhydratedNode = parent.parent;
|
|
82
102
|
while (unhydratedNode !== undefined) {
|
|
@@ -102,56 +122,30 @@ class UnhydratedFlexTreeNode {
|
|
|
102
122
|
return this.location;
|
|
103
123
|
}
|
|
104
124
|
borrowCursor() {
|
|
105
|
-
return (0, index_js_2.cursorForMapTreeNode)(this
|
|
125
|
+
return (0, index_js_2.cursorForMapTreeNode)(this);
|
|
106
126
|
}
|
|
107
127
|
tryGetField(key) {
|
|
108
|
-
const field = this.
|
|
128
|
+
const field = this.fieldsAll.get(key);
|
|
109
129
|
// Only return the field if it is not empty, in order to fulfill the contract of `tryGetField`.
|
|
110
130
|
if (field !== undefined && field.length > 0) {
|
|
111
|
-
return
|
|
131
|
+
return field;
|
|
112
132
|
}
|
|
113
133
|
}
|
|
114
134
|
getBoxed(key) {
|
|
115
135
|
const fieldKey = (0, index_js_3.brand)(key);
|
|
116
|
-
return
|
|
117
|
-
}
|
|
118
|
-
boxedIterator() {
|
|
119
|
-
return (0, index_js_3.mapIterable)(this.mapTree.fields.entries(), ([key]) => getOrCreateField(this, key, this.storedSchema.getFieldSchema(key).kind, () => this.emitChangedEvent(key)));
|
|
136
|
+
return this.getOrCreateField(fieldKey);
|
|
120
137
|
}
|
|
121
138
|
keys() {
|
|
122
|
-
|
|
123
|
-
return this.mapTree.fields.keys();
|
|
139
|
+
return Array.from(this.fields, ([key]) => key)[Symbol.iterator]();
|
|
124
140
|
}
|
|
125
141
|
get value() {
|
|
126
|
-
return this.
|
|
127
|
-
}
|
|
128
|
-
get anchorNode() {
|
|
129
|
-
// This API is relevant to `LazyTreeNode`s, but not `UnhydratedFlexTreeNode`s.
|
|
130
|
-
// TODO: Refactor the FlexTreeNode interface so that stubbing this out isn't necessary.
|
|
131
|
-
return (0, internal_1.fail)(0xb47 /* UnhydratedFlexTreeNode does not implement anchorNode */);
|
|
132
|
-
}
|
|
133
|
-
walkTree() {
|
|
134
|
-
for (const [key, mapTrees] of this.mapTree.fields) {
|
|
135
|
-
const field = getOrCreateField(this, key, this.storedSchema.getFieldSchema(key).kind, () => this.emitChangedEvent(key));
|
|
136
|
-
for (let index = 0; index < field.length; index++) {
|
|
137
|
-
const child = getOrCreateChild(this.simpleContext, mapTrees[index] ?? (0, internal_1.oob)(), {
|
|
138
|
-
parent: field,
|
|
139
|
-
index,
|
|
140
|
-
});
|
|
141
|
-
// These next asserts detect the case where `getOrCreateChild` gets a cache hit of a different node than the one we're trying to create
|
|
142
|
-
(0, internal_1.assert)(child.location !== undefined, 0x98d /* Expected node to have parent */);
|
|
143
|
-
(0, internal_1.assert)(child.location.parent.parent === this, 0x98e /* Node may not be multi-parented */);
|
|
144
|
-
(0, internal_1.assert)(child.location.index === index, 0x98f /* Node may not be multi-parented */);
|
|
145
|
-
child.walkTree();
|
|
146
|
-
}
|
|
147
|
-
}
|
|
142
|
+
return this.data.value;
|
|
148
143
|
}
|
|
149
144
|
emitChangedEvent(key) {
|
|
150
145
|
this._events.emit("childrenChangedAfterBatch", { changedFields: new Set([key]) });
|
|
151
146
|
}
|
|
152
147
|
}
|
|
153
148
|
exports.UnhydratedFlexTreeNode = UnhydratedFlexTreeNode;
|
|
154
|
-
_a = index_js_2.flexTreeMarker;
|
|
155
149
|
/**
|
|
156
150
|
* Implementation of `FlexTreeContext`.
|
|
157
151
|
*
|
|
@@ -181,87 +175,93 @@ exports.UnhydratedContext = UnhydratedContext;
|
|
|
181
175
|
* However, this field cannot be used in any practical way because it is empty, i.e. it does not actually contain the children that claim to be parented under it.
|
|
182
176
|
* It has the "empty" schema and it will always contain zero children if queried.
|
|
183
177
|
* Any nodes with this location will have a dummy parent index of `-1`.
|
|
178
|
+
*
|
|
179
|
+
* TODO: make this make sense.
|
|
184
180
|
*/
|
|
185
181
|
const unparentedLocation = {
|
|
186
182
|
parent: {
|
|
187
|
-
|
|
188
|
-
length: 0,
|
|
189
|
-
key: index_js_1.EmptyKey,
|
|
183
|
+
key: index_js_1.dummyRoot,
|
|
190
184
|
parent: undefined,
|
|
191
|
-
|
|
192
|
-
return this.schema === kind.identifier;
|
|
193
|
-
},
|
|
194
|
-
boxedIterator() {
|
|
195
|
-
return [].values();
|
|
196
|
-
},
|
|
197
|
-
boxedAt(index) {
|
|
198
|
-
return undefined;
|
|
199
|
-
},
|
|
200
|
-
schema: (0, index_js_3.brand)(index_js_1.forbiddenFieldKindIdentifier),
|
|
201
|
-
get context() {
|
|
202
|
-
return (0, internal_1.fail)(0xb48 /* unsupported */);
|
|
203
|
-
},
|
|
204
|
-
getFieldPath() {
|
|
205
|
-
(0, internal_1.fail)(0xb49 /* unsupported */);
|
|
206
|
-
},
|
|
185
|
+
schema: (0, index_js_3.brand)(index_js_2.FieldKinds.optional.identifier),
|
|
207
186
|
},
|
|
208
|
-
index:
|
|
187
|
+
index: 0,
|
|
209
188
|
};
|
|
189
|
+
/**
|
|
190
|
+
* The {@link Unhydrated} implementation of {@link FlexTreeField}.
|
|
191
|
+
*/
|
|
210
192
|
class UnhydratedFlexTreeField {
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
193
|
+
constructor(context, schema, key,
|
|
194
|
+
/**
|
|
195
|
+
* The children of this field.
|
|
196
|
+
* @remarks
|
|
197
|
+
* This is either an array of {@link UnhydratedFlexTreeNode}s or a {@link ContextualFieldProvider} that will be used to populate the children lazily (after which it will become an array).
|
|
198
|
+
* See {@link fillPendingDefaults}.
|
|
199
|
+
* Note that any fields using a {@link ConstantFieldProvider} should be evaluated before constructing the UnhydratedFlexTreeField.
|
|
200
|
+
*/
|
|
201
|
+
lazyChildren) {
|
|
202
|
+
this.context = context;
|
|
216
203
|
this.schema = schema;
|
|
217
204
|
this.key = key;
|
|
218
|
-
this.
|
|
219
|
-
this.onEdit = onEdit;
|
|
205
|
+
this.lazyChildren = lazyChildren;
|
|
220
206
|
this[_b] = index_js_2.FlexTreeEntityKind.Field;
|
|
221
|
-
|
|
222
|
-
(0, internal_1.assert)(!fieldKeyCache.has(key), 0x990 /* A field already exists for the given MapTrees */);
|
|
223
|
-
fieldKeyCache.set(key, this);
|
|
207
|
+
this.parent = undefined;
|
|
224
208
|
// When this field is created (which only happens one time, because it is cached), all the children become parented for the first time.
|
|
225
209
|
// "Adopt" each child by updating its parent information to point to this field.
|
|
226
|
-
|
|
227
|
-
const
|
|
228
|
-
|
|
229
|
-
if (mapTreeNodeChild.parentField !== unparentedLocation) {
|
|
230
|
-
throw new internal_2.UsageError("A node may not be in more than one place in the tree");
|
|
231
|
-
}
|
|
232
|
-
mapTreeNodeChild.adoptBy(this, i);
|
|
210
|
+
if (Array.isArray(lazyChildren)) {
|
|
211
|
+
for (const [i, child] of lazyChildren.entries()) {
|
|
212
|
+
child.adoptBy(this, i);
|
|
233
213
|
}
|
|
234
214
|
}
|
|
235
215
|
}
|
|
236
|
-
|
|
237
|
-
return
|
|
216
|
+
borrowCursor() {
|
|
217
|
+
return (0, index_js_2.cursorForMapTreeField)(this.children);
|
|
218
|
+
}
|
|
219
|
+
getPendingDefault() {
|
|
220
|
+
return !Array.isArray(this.lazyChildren) ? this.lazyChildren : undefined;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Populate pending default (if present) using the provided context.
|
|
224
|
+
* @remarks
|
|
225
|
+
* This apply to just this field: caller will likely want to recursively walk the tree.
|
|
226
|
+
* @see {@link pendingDefault}.
|
|
227
|
+
*/
|
|
228
|
+
fillPendingDefaults(context) {
|
|
229
|
+
const provider = this.getPendingDefault();
|
|
230
|
+
if (provider) {
|
|
231
|
+
const content = provider(context);
|
|
232
|
+
this.lazyChildren = content;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Returns true if this field has a pending default due to defined defined using a {@link ContextualFieldProvider}.
|
|
237
|
+
*/
|
|
238
|
+
get pendingDefault() {
|
|
239
|
+
return this.getPendingDefault() !== undefined;
|
|
240
|
+
}
|
|
241
|
+
get children() {
|
|
242
|
+
const provider = this.getPendingDefault();
|
|
243
|
+
if (provider) {
|
|
244
|
+
const content = provider("UseGlobalContext");
|
|
245
|
+
this.lazyChildren = content;
|
|
246
|
+
}
|
|
247
|
+
return this.lazyChildren;
|
|
238
248
|
}
|
|
239
249
|
get length() {
|
|
240
|
-
return this.
|
|
250
|
+
return this.children.length;
|
|
241
251
|
}
|
|
242
252
|
is(kind) {
|
|
243
253
|
return this.schema === kind.identifier;
|
|
244
254
|
}
|
|
245
|
-
boxedIterator() {
|
|
246
|
-
return this.mapTrees
|
|
247
|
-
.map((m, index) => getOrCreateChild(this.simpleContext, m, {
|
|
248
|
-
parent: this,
|
|
249
|
-
index,
|
|
250
|
-
}))
|
|
251
|
-
.values();
|
|
252
|
-
}
|
|
253
255
|
boxedAt(index) {
|
|
254
256
|
const i = (0, index_js_2.indexForAt)(index, this.length);
|
|
255
257
|
if (i === undefined) {
|
|
256
258
|
return undefined;
|
|
257
259
|
}
|
|
258
|
-
const m = this.
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
});
|
|
264
|
-
}
|
|
260
|
+
const m = this.children[i];
|
|
261
|
+
return m;
|
|
262
|
+
}
|
|
263
|
+
[(_b = index_js_2.flexTreeMarker, Symbol.iterator)]() {
|
|
264
|
+
return this.children[Symbol.iterator]();
|
|
265
265
|
}
|
|
266
266
|
/**
|
|
267
267
|
* Mutate this field.
|
|
@@ -272,43 +272,41 @@ class UnhydratedFlexTreeField {
|
|
|
272
272
|
* This function ensures that the parent MapTree has no empty fields (which is an invariant of `MapTree`) after the mutation.
|
|
273
273
|
*/
|
|
274
274
|
edit(edit) {
|
|
275
|
-
|
|
276
|
-
const
|
|
277
|
-
|
|
278
|
-
this.parent.mapTree.fields.set(this.key, newMapTrees);
|
|
275
|
+
// Clear parents for all old map trees.
|
|
276
|
+
for (const tree of this.children) {
|
|
277
|
+
tree.adoptBy(undefined);
|
|
279
278
|
}
|
|
280
|
-
|
|
281
|
-
|
|
279
|
+
this.lazyChildren = edit(this.children) ?? this.children;
|
|
280
|
+
// Set parents for all new map trees.
|
|
281
|
+
for (const [index, tree] of this.children.entries()) {
|
|
282
|
+
tree.adoptBy(this, index);
|
|
282
283
|
}
|
|
283
|
-
this.
|
|
284
|
+
this.parent?.emitChangedEvent(this.key);
|
|
284
285
|
}
|
|
285
286
|
getFieldPath() {
|
|
286
287
|
throw unsupportedUsageError("Editing an array");
|
|
287
288
|
}
|
|
288
289
|
/** Unboxes leaf nodes to their values */
|
|
289
290
|
unboxed(index) {
|
|
290
|
-
const
|
|
291
|
-
const value =
|
|
291
|
+
const child = this.children[index] ?? (0, internal_1.oob)();
|
|
292
|
+
const value = child.value;
|
|
292
293
|
if (value !== undefined) {
|
|
293
294
|
return value;
|
|
294
295
|
}
|
|
295
|
-
return
|
|
296
|
+
return child;
|
|
296
297
|
}
|
|
297
298
|
}
|
|
298
|
-
|
|
299
|
-
|
|
299
|
+
exports.UnhydratedFlexTreeField = UnhydratedFlexTreeField;
|
|
300
|
+
/**
|
|
301
|
+
* The {@link Unhydrated} implementation of {@link FlexTreeOptionalField}.
|
|
302
|
+
*/
|
|
303
|
+
class UnhydratedOptionalField extends UnhydratedFlexTreeField {
|
|
300
304
|
constructor() {
|
|
301
305
|
super(...arguments);
|
|
302
306
|
this.editor = {
|
|
303
307
|
set: (newContent) => {
|
|
304
|
-
// If the new content is a UnhydratedFlexTreeNode, it needs to have its parent pointer updated
|
|
305
308
|
if (newContent !== undefined) {
|
|
306
|
-
|
|
307
|
-
}
|
|
308
|
-
// If the old content is a UnhydratedFlexTreeNode, it needs to have its parent pointer unset
|
|
309
|
-
const oldContent = this.mapTrees[0];
|
|
310
|
-
if (oldContent !== undefined) {
|
|
311
|
-
nodeCache.get(oldContent)?.adoptBy(undefined);
|
|
309
|
+
(0, internal_1.assert)(newContent instanceof UnhydratedFlexTreeNode, 0xbb7 /* Expected unhydrated node */);
|
|
312
310
|
}
|
|
313
311
|
this.edit((mapTrees) => {
|
|
314
312
|
if (newContent !== undefined) {
|
|
@@ -322,46 +320,49 @@ class EagerMapTreeOptionalField extends UnhydratedFlexTreeField {
|
|
|
322
320
|
};
|
|
323
321
|
}
|
|
324
322
|
get content() {
|
|
325
|
-
const value = this.
|
|
323
|
+
const value = this.children[0];
|
|
326
324
|
if (value !== undefined) {
|
|
327
325
|
return this.unboxed(0);
|
|
328
326
|
}
|
|
329
327
|
return undefined;
|
|
330
328
|
}
|
|
331
329
|
}
|
|
332
|
-
|
|
330
|
+
exports.UnhydratedOptionalField = UnhydratedOptionalField;
|
|
331
|
+
class UnhydratedRequiredField extends UnhydratedOptionalField {
|
|
333
332
|
get content() {
|
|
334
333
|
// This cannot use ?? since null is a legal value here.
|
|
335
334
|
(0, internal_1.assert)(super.content !== undefined, 0xa57 /* Expected EagerMapTree required field to have a value */);
|
|
336
335
|
return super.content;
|
|
337
336
|
}
|
|
338
337
|
}
|
|
339
|
-
|
|
338
|
+
/**
|
|
339
|
+
* The {@link Unhydrated} implementation of {@link FlexTreeSequenceField}.
|
|
340
|
+
*/
|
|
341
|
+
class UnhydratedSequenceField extends UnhydratedFlexTreeField {
|
|
340
342
|
constructor() {
|
|
341
343
|
super(...arguments);
|
|
342
344
|
this.editor = {
|
|
343
345
|
insert: (index, newContent) => {
|
|
344
|
-
for (
|
|
345
|
-
const c = newContent[i];
|
|
346
|
+
for (const c of newContent) {
|
|
346
347
|
(0, internal_1.assert)(c !== undefined, 0xa0a /* Unexpected sparse array content */);
|
|
347
|
-
|
|
348
|
+
(0, internal_1.assert)(c instanceof UnhydratedFlexTreeNode, 0xbb8 /* Expected unhydrated node */);
|
|
348
349
|
}
|
|
350
|
+
const newContentChecked = newContent;
|
|
349
351
|
this.edit((mapTrees) => {
|
|
350
352
|
if (newContent.length < 1000) {
|
|
351
353
|
// For "smallish arrays" (`1000` is not empirically derived), the `splice` function is appropriate...
|
|
352
|
-
mapTrees.splice(index, 0, ...
|
|
354
|
+
mapTrees.splice(index, 0, ...newContentChecked);
|
|
353
355
|
}
|
|
354
356
|
else {
|
|
355
357
|
// ...but we avoid using `splice` + spread for very large input arrays since there is a limit on how many elements can be spread (too many will overflow the stack).
|
|
356
|
-
return mapTrees.slice(0, index).concat(
|
|
358
|
+
return mapTrees.slice(0, index).concat(newContentChecked, mapTrees.slice(index));
|
|
357
359
|
}
|
|
358
360
|
});
|
|
359
361
|
},
|
|
360
362
|
remove: (index, count) => {
|
|
361
363
|
for (let i = index; i < index + count; i++) {
|
|
362
|
-
const c = this.
|
|
364
|
+
const c = this.children[i];
|
|
363
365
|
(0, internal_1.assert)(c !== undefined, 0xa0b /* Unexpected sparse array */);
|
|
364
|
-
nodeCache.get(c)?.adoptBy(undefined);
|
|
365
366
|
}
|
|
366
367
|
let removed;
|
|
367
368
|
this.edit((mapTrees) => {
|
|
@@ -381,60 +382,27 @@ class UnhydratedTreeSequenceField extends UnhydratedFlexTreeField {
|
|
|
381
382
|
map(callbackfn) {
|
|
382
383
|
return Array.from(this, callbackfn);
|
|
383
384
|
}
|
|
384
|
-
*[Symbol.iterator]() {
|
|
385
|
-
for (const [i] of this.mapTrees.entries()) {
|
|
386
|
-
yield this.unboxed(i);
|
|
387
|
-
}
|
|
388
|
-
}
|
|
389
385
|
}
|
|
390
|
-
exports.
|
|
386
|
+
exports.UnhydratedSequenceField = UnhydratedSequenceField;
|
|
391
387
|
// #endregion Fields
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
/** Helper for creating a `UnhydratedFlexTreeNode` given the parent field (e.g. when "walking down") */
|
|
408
|
-
function getOrCreateChild(context, mapTree, parent) {
|
|
409
|
-
const cached = nodeCache.get(mapTree);
|
|
410
|
-
if (cached !== undefined) {
|
|
411
|
-
return cached;
|
|
412
|
-
}
|
|
413
|
-
return new UnhydratedFlexTreeNode(context, mapTree, parent);
|
|
414
|
-
}
|
|
415
|
-
/** Creates a field with the given attributes, or returns a cached field if there is one */
|
|
416
|
-
function getOrCreateField(parent, key, schema, onEdit) {
|
|
417
|
-
const cached = getFieldKeyCache(parent).get(key);
|
|
418
|
-
if (cached !== undefined) {
|
|
419
|
-
return cached;
|
|
420
|
-
}
|
|
421
|
-
if (schema === index_js_2.FieldKinds.required.identifier ||
|
|
422
|
-
schema === index_js_2.FieldKinds.identifier.identifier) {
|
|
423
|
-
return new EagerMapTreeRequiredField(parent.simpleContext, schema, key, parent, onEdit);
|
|
424
|
-
}
|
|
425
|
-
if (schema === index_js_2.FieldKinds.optional.identifier) {
|
|
426
|
-
return new EagerMapTreeOptionalField(parent.simpleContext, schema, key, parent, onEdit);
|
|
427
|
-
}
|
|
428
|
-
if (schema === index_js_2.FieldKinds.sequence.identifier) {
|
|
429
|
-
return new UnhydratedTreeSequenceField(parent.simpleContext, schema, key, parent, onEdit);
|
|
430
|
-
}
|
|
431
|
-
// TODO: this seems to used by unknown optional fields. They should probably use "optional" not "Forbidden" schema.
|
|
432
|
-
if (schema === index_js_2.FieldKinds.forbidden.identifier) {
|
|
433
|
-
return new UnhydratedFlexTreeField(parent.simpleContext, schema, key, parent, onEdit);
|
|
388
|
+
/** Creates a field with the given attributes */
|
|
389
|
+
function createField(...args) {
|
|
390
|
+
switch (args[1]) {
|
|
391
|
+
case index_js_2.FieldKinds.required.identifier:
|
|
392
|
+
case index_js_2.FieldKinds.identifier.identifier:
|
|
393
|
+
return new UnhydratedRequiredField(...args);
|
|
394
|
+
case index_js_2.FieldKinds.optional.identifier:
|
|
395
|
+
return new UnhydratedOptionalField(...args);
|
|
396
|
+
case index_js_2.FieldKinds.sequence.identifier:
|
|
397
|
+
return new UnhydratedSequenceField(...args);
|
|
398
|
+
case index_js_2.FieldKinds.forbidden.identifier:
|
|
399
|
+
// TODO: this seems to used by unknown optional fields. They should probably use "optional" not "Forbidden" schema.
|
|
400
|
+
return new UnhydratedFlexTreeField(...args);
|
|
401
|
+
default:
|
|
402
|
+
return (0, internal_1.fail)(0xb9d /* unsupported field kind */);
|
|
434
403
|
}
|
|
435
|
-
return (0, internal_1.fail)(0xb9d /* unsupported field kind */);
|
|
436
404
|
}
|
|
437
|
-
|
|
405
|
+
exports.createField = createField;
|
|
438
406
|
function unsupportedUsageError(message) {
|
|
439
407
|
return new internal_2.UsageError(`${message ?? "Operation"} is not supported for content that has not yet been inserted into the tree`);
|
|
440
408
|
}
|