@fluidframework/tree 2.50.0-345060 → 2.51.0-347100
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/Tree.code-workspace +14 -1
- package/.vscode/settings.json +16 -0
- package/CHANGELOG.md +102 -2
- package/api-report/tree.alpha.api.md +7 -7
- package/dist/core/schema-stored/schema.d.ts +14 -1
- package/dist/core/schema-stored/schema.d.ts.map +1 -1
- package/dist/core/schema-stored/schema.js.map +1 -1
- package/dist/feature-libraries/default-schema/schemaChecker.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/schemaChecker.js +3 -0
- package/dist/feature-libraries/default-schema/schemaChecker.js.map +1 -1
- package/dist/feature-libraries/flex-tree/context.d.ts +7 -2
- package/dist/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/context.js +4 -4
- package/dist/feature-libraries/flex-tree/context.js.map +1 -1
- package/dist/feature-libraries/flex-tree/index.d.ts +1 -0
- package/dist/feature-libraries/flex-tree/index.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/index.js +3 -1
- package/dist/feature-libraries/flex-tree/index.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.js +5 -5
- package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyNode.d.ts +3 -1
- package/dist/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyNode.js +5 -3
- package/dist/feature-libraries/flex-tree/lazyNode.js.map +1 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.js +3 -4
- package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/dist/feature-libraries/index.d.ts +1 -1
- package/dist/feature-libraries/index.d.ts.map +1 -1
- package/dist/feature-libraries/index.js +2 -1
- package/dist/feature-libraries/index.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/shared-tree/index.d.ts +0 -1
- package/dist/shared-tree/index.d.ts.map +1 -1
- package/dist/shared-tree/index.js +1 -3
- package/dist/shared-tree/index.js.map +1 -1
- package/dist/shared-tree/schematizeTree.d.ts.map +1 -1
- package/dist/shared-tree/schematizeTree.js +2 -6
- package/dist/shared-tree/schematizeTree.js.map +1 -1
- package/dist/shared-tree/schematizingTreeView.d.ts +11 -13
- package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/dist/shared-tree/schematizingTreeView.js +58 -81
- package/dist/shared-tree/schematizingTreeView.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeTypes.d.ts +1 -1
- package/dist/shared-tree/sharedTreeChangeTypes.js.map +1 -1
- package/dist/shared-tree/tree.d.ts.map +1 -1
- package/dist/shared-tree/tree.js +4 -3
- package/dist/shared-tree/tree.js.map +1 -1
- package/dist/shared-tree/treeAlpha.d.ts +7 -1
- package/dist/shared-tree/treeAlpha.d.ts.map +1 -1
- package/dist/shared-tree/treeAlpha.js.map +1 -1
- package/dist/shared-tree/treeCheckout.d.ts +7 -2
- package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
- package/dist/shared-tree/treeCheckout.js +4 -1
- package/dist/shared-tree/treeCheckout.js.map +1 -1
- package/dist/shared-tree-core/defaultResubmitMachine.d.ts +8 -12
- package/dist/shared-tree-core/defaultResubmitMachine.d.ts.map +1 -1
- package/dist/shared-tree-core/defaultResubmitMachine.js +54 -46
- package/dist/shared-tree-core/defaultResubmitMachine.js.map +1 -1
- package/dist/shared-tree-core/resubmitMachine.d.ts +6 -0
- package/dist/shared-tree-core/resubmitMachine.d.ts.map +1 -1
- package/dist/shared-tree-core/resubmitMachine.js.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.d.ts +1 -0
- package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.js +16 -3
- package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/dist/simple-tree/api/conciseTree.d.ts +1 -1
- package/dist/simple-tree/api/conciseTree.d.ts.map +1 -1
- package/dist/simple-tree/api/conciseTree.js.map +1 -1
- package/dist/simple-tree/api/configuration.d.ts +1 -1
- package/dist/simple-tree/api/configuration.d.ts.map +1 -1
- package/dist/simple-tree/api/configuration.js +9 -9
- package/dist/simple-tree/api/configuration.js.map +1 -1
- package/dist/simple-tree/api/create.d.ts +3 -1
- package/dist/simple-tree/api/create.d.ts.map +1 -1
- package/dist/simple-tree/api/create.js +2 -0
- package/dist/simple-tree/api/create.js.map +1 -1
- package/dist/simple-tree/api/customTree.d.ts +1 -2
- package/dist/simple-tree/api/customTree.d.ts.map +1 -1
- package/dist/simple-tree/api/customTree.js.map +1 -1
- package/dist/simple-tree/api/getJsonSchema.d.ts +1 -1
- package/dist/simple-tree/api/getJsonSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/getJsonSchema.js.map +1 -1
- package/dist/simple-tree/api/getSimpleSchema.d.ts +1 -1
- package/dist/simple-tree/api/getSimpleSchema.js.map +1 -1
- package/dist/simple-tree/api/identifierIndex.d.ts +1 -1
- package/dist/simple-tree/api/identifierIndex.js +2 -2
- package/dist/simple-tree/api/identifierIndex.js.map +1 -1
- package/dist/simple-tree/api/index.d.ts +1 -1
- package/dist/simple-tree/api/index.d.ts.map +1 -1
- package/dist/simple-tree/api/index.js.map +1 -1
- package/dist/simple-tree/api/schemaCompatibilityTester.d.ts +1 -1
- package/dist/simple-tree/api/schemaCompatibilityTester.js.map +1 -1
- package/dist/simple-tree/api/schemaCreationUtilities.d.ts +14 -2
- package/dist/simple-tree/api/schemaCreationUtilities.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaCreationUtilities.js +41 -4
- package/dist/simple-tree/api/schemaCreationUtilities.js.map +1 -1
- package/dist/simple-tree/api/schemaFactory.d.ts +36 -3
- package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactory.js +18 -18
- package/dist/simple-tree/api/schemaFactory.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryAlpha.d.ts +16 -16
- package/dist/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryRecursive.d.ts +2 -2
- package/dist/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactoryRecursive.js +2 -2
- package/dist/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
- package/dist/simple-tree/api/schemaFromSimple.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFromSimple.js +4 -4
- package/dist/simple-tree/api/schemaFromSimple.js.map +1 -1
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.js +2 -2
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
- package/dist/simple-tree/api/simpleTreeIndex.d.ts +2 -2
- package/dist/simple-tree/api/simpleTreeIndex.d.ts.map +1 -1
- package/dist/simple-tree/api/simpleTreeIndex.js +1 -1
- package/dist/simple-tree/api/simpleTreeIndex.js.map +1 -1
- package/dist/simple-tree/api/storedSchema.d.ts +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/tree.d.ts +2 -1
- package/dist/simple-tree/api/tree.d.ts.map +1 -1
- package/dist/simple-tree/api/tree.js.map +1 -1
- package/dist/simple-tree/api/treeBeta.d.ts +4 -1
- package/dist/simple-tree/api/treeBeta.d.ts.map +1 -1
- package/dist/simple-tree/api/treeBeta.js.map +1 -1
- package/dist/simple-tree/api/treeNodeApi.d.ts +1 -2
- package/dist/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/dist/simple-tree/api/treeNodeApi.js +3 -3
- package/dist/simple-tree/api/treeNodeApi.js.map +1 -1
- package/dist/simple-tree/api/typesUnsafe.d.ts +2 -3
- package/dist/simple-tree/api/typesUnsafe.d.ts.map +1 -1
- package/dist/simple-tree/api/typesUnsafe.js.map +1 -1
- package/dist/simple-tree/api/verboseTree.d.ts +2 -1
- package/dist/simple-tree/api/verboseTree.d.ts.map +1 -1
- package/dist/simple-tree/api/verboseTree.js.map +1 -1
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.d.ts +1 -1
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.js +2 -2
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.js.map +1 -1
- package/dist/simple-tree/core/allowedTypes.d.ts +316 -0
- package/dist/simple-tree/core/allowedTypes.d.ts.map +1 -0
- package/dist/simple-tree/core/allowedTypes.js +173 -0
- package/dist/simple-tree/core/allowedTypes.js.map +1 -0
- package/dist/simple-tree/core/context.d.ts +3 -9
- package/dist/simple-tree/core/context.d.ts.map +1 -1
- package/dist/simple-tree/core/context.js +3 -11
- package/dist/simple-tree/core/context.js.map +1 -1
- package/dist/simple-tree/core/flexList.d.ts.map +1 -0
- package/dist/simple-tree/core/flexList.js.map +1 -0
- package/dist/simple-tree/core/getOrCreateNode.d.ts +1 -1
- package/dist/simple-tree/core/getOrCreateNode.d.ts.map +1 -1
- package/dist/simple-tree/core/getOrCreateNode.js.map +1 -1
- package/dist/simple-tree/core/index.d.ts +9 -3
- package/dist/simple-tree/core/index.d.ts.map +1 -1
- package/dist/simple-tree/core/index.js +19 -3
- package/dist/simple-tree/core/index.js.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.d.ts +8 -1
- package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.js +24 -20
- package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/dist/simple-tree/core/treeNodeSchema.d.ts +182 -39
- package/dist/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeSchema.js +47 -17
- package/dist/simple-tree/core/treeNodeSchema.js.map +1 -1
- package/dist/simple-tree/{treeNodeValid.d.ts → core/treeNodeValid.d.ts} +18 -4
- package/dist/simple-tree/core/treeNodeValid.d.ts.map +1 -0
- package/dist/simple-tree/{treeNodeValid.js → core/treeNodeValid.js} +41 -11
- package/dist/simple-tree/core/treeNodeValid.js.map +1 -0
- package/dist/simple-tree/core/unhydratedFlexTree.d.ts +1 -1
- package/dist/simple-tree/core/unhydratedFlexTree.js.map +1 -1
- package/dist/simple-tree/core/walkSchema.d.ts +2 -1
- package/dist/simple-tree/core/walkSchema.d.ts.map +1 -1
- package/dist/simple-tree/core/walkSchema.js +6 -2
- package/dist/simple-tree/core/walkSchema.js.map +1 -1
- package/dist/simple-tree/createContext.d.ts +6 -2
- package/dist/simple-tree/createContext.d.ts.map +1 -1
- package/dist/simple-tree/createContext.js +15 -3
- package/dist/simple-tree/createContext.js.map +1 -1
- package/dist/simple-tree/fieldSchema.d.ts +423 -0
- package/dist/simple-tree/fieldSchema.d.ts.map +1 -0
- package/dist/simple-tree/{schemaTypes.js → fieldSchema.js} +5 -195
- package/dist/simple-tree/fieldSchema.js.map +1 -0
- 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 +11 -11
- package/dist/simple-tree/index.js.map +1 -1
- package/dist/simple-tree/leafNodeSchema.d.ts +14 -5
- package/dist/simple-tree/leafNodeSchema.d.ts.map +1 -1
- package/dist/simple-tree/leafNodeSchema.js +117 -2
- package/dist/simple-tree/leafNodeSchema.js.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNode.d.ts +3 -4
- package/dist/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNode.js +97 -26
- package/dist/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNodeTypes.d.ts +2 -2
- package/dist/simple-tree/node-kinds/array/arrayNodeTypes.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNodeTypes.js.map +1 -1
- package/dist/simple-tree/node-kinds/common.d.ts +16 -0
- package/dist/simple-tree/node-kinds/common.d.ts.map +1 -0
- package/dist/simple-tree/node-kinds/common.js +42 -0
- package/dist/simple-tree/node-kinds/common.js.map +1 -0
- 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.map +1 -1
- package/dist/simple-tree/node-kinds/map/mapNode.d.ts +2 -3
- package/dist/simple-tree/node-kinds/map/mapNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/map/mapNode.js +64 -26
- package/dist/simple-tree/node-kinds/map/mapNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/map/mapNodeTypes.d.ts +2 -2
- package/dist/simple-tree/node-kinds/map/mapNodeTypes.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/map/mapNodeTypes.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.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNode.d.ts +19 -5
- package/dist/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNode.js +131 -27
- package/dist/simple-tree/node-kinds/object/objectNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNodeTypes.d.ts +11 -4
- package/dist/simple-tree/node-kinds/object/objectNodeTypes.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNodeTypes.js.map +1 -1
- package/dist/simple-tree/node-kinds/record/recordNode.d.ts +2 -2
- package/dist/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/record/recordNode.js +41 -13
- package/dist/simple-tree/node-kinds/record/recordNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/record/recordNodeTypes.d.ts +2 -2
- package/dist/simple-tree/node-kinds/record/recordNodeTypes.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/record/recordNodeTypes.js.map +1 -1
- package/dist/simple-tree/prepareForInsertion.d.ts +2 -2
- package/dist/simple-tree/prepareForInsertion.d.ts.map +1 -1
- package/dist/simple-tree/prepareForInsertion.js +3 -3
- package/dist/simple-tree/prepareForInsertion.js.map +1 -1
- package/dist/simple-tree/simpleSchema.d.ts +2 -2
- 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 +1 -1
- package/dist/simple-tree/toStoredSchema.d.ts.map +1 -1
- package/dist/simple-tree/toStoredSchema.js +6 -7
- package/dist/simple-tree/toStoredSchema.js.map +1 -1
- package/dist/simple-tree/unhydratedFlexTreeFromInsertable.d.ts +5 -11
- package/dist/simple-tree/unhydratedFlexTreeFromInsertable.d.ts.map +1 -1
- package/dist/simple-tree/unhydratedFlexTreeFromInsertable.js +25 -395
- package/dist/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -1
- package/dist/simple-tree/unsafeUnknownSchema.d.ts +52 -0
- package/dist/simple-tree/unsafeUnknownSchema.d.ts.map +1 -0
- package/dist/simple-tree/unsafeUnknownSchema.js +13 -0
- package/dist/simple-tree/unsafeUnknownSchema.js.map +1 -0
- package/dist/simple-tree/walkFieldSchema.d.ts +1 -1
- package/dist/simple-tree/walkFieldSchema.js +2 -2
- package/dist/simple-tree/walkFieldSchema.js.map +1 -1
- package/dist/tableSchema.d.ts +12 -12
- package/dist/treeFactory.d.ts +0 -1
- package/dist/treeFactory.d.ts.map +1 -1
- package/dist/treeFactory.js +0 -1
- package/dist/treeFactory.js.map +1 -1
- package/lib/core/schema-stored/schema.d.ts +14 -1
- package/lib/core/schema-stored/schema.d.ts.map +1 -1
- package/lib/core/schema-stored/schema.js.map +1 -1
- package/lib/feature-libraries/default-schema/schemaChecker.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/schemaChecker.js +3 -0
- package/lib/feature-libraries/default-schema/schemaChecker.js.map +1 -1
- package/lib/feature-libraries/flex-tree/context.d.ts +7 -2
- package/lib/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/context.js +4 -4
- package/lib/feature-libraries/flex-tree/context.js.map +1 -1
- package/lib/feature-libraries/flex-tree/index.d.ts +1 -0
- package/lib/feature-libraries/flex-tree/index.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/index.js +1 -0
- package/lib/feature-libraries/flex-tree/index.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.js +6 -6
- package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyNode.d.ts +3 -1
- package/lib/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyNode.js +3 -1
- package/lib/feature-libraries/flex-tree/lazyNode.js.map +1 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.js +1 -2
- package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/lib/feature-libraries/index.d.ts +1 -1
- package/lib/feature-libraries/index.d.ts.map +1 -1
- package/lib/feature-libraries/index.js +1 -1
- package/lib/feature-libraries/index.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/shared-tree/index.d.ts +0 -1
- package/lib/shared-tree/index.d.ts.map +1 -1
- package/lib/shared-tree/index.js +0 -1
- package/lib/shared-tree/index.js.map +1 -1
- package/lib/shared-tree/schematizeTree.d.ts.map +1 -1
- package/lib/shared-tree/schematizeTree.js +2 -6
- package/lib/shared-tree/schematizeTree.js.map +1 -1
- package/lib/shared-tree/schematizingTreeView.d.ts +11 -13
- package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/lib/shared-tree/schematizingTreeView.js +59 -81
- package/lib/shared-tree/schematizingTreeView.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeTypes.d.ts +1 -1
- package/lib/shared-tree/sharedTreeChangeTypes.js.map +1 -1
- package/lib/shared-tree/tree.d.ts.map +1 -1
- package/lib/shared-tree/tree.js +4 -3
- package/lib/shared-tree/tree.js.map +1 -1
- package/lib/shared-tree/treeAlpha.d.ts +7 -1
- package/lib/shared-tree/treeAlpha.d.ts.map +1 -1
- package/lib/shared-tree/treeAlpha.js.map +1 -1
- package/lib/shared-tree/treeCheckout.d.ts +7 -2
- package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
- package/lib/shared-tree/treeCheckout.js +5 -2
- package/lib/shared-tree/treeCheckout.js.map +1 -1
- package/lib/shared-tree-core/defaultResubmitMachine.d.ts +8 -12
- package/lib/shared-tree-core/defaultResubmitMachine.d.ts.map +1 -1
- package/lib/shared-tree-core/defaultResubmitMachine.js +55 -47
- package/lib/shared-tree-core/defaultResubmitMachine.js.map +1 -1
- package/lib/shared-tree-core/resubmitMachine.d.ts +6 -0
- package/lib/shared-tree-core/resubmitMachine.d.ts.map +1 -1
- package/lib/shared-tree-core/resubmitMachine.js.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.d.ts +1 -0
- package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.js +16 -3
- package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/lib/simple-tree/api/conciseTree.d.ts +1 -1
- package/lib/simple-tree/api/conciseTree.d.ts.map +1 -1
- package/lib/simple-tree/api/conciseTree.js.map +1 -1
- package/lib/simple-tree/api/configuration.d.ts +1 -1
- package/lib/simple-tree/api/configuration.d.ts.map +1 -1
- package/lib/simple-tree/api/configuration.js +6 -6
- package/lib/simple-tree/api/configuration.js.map +1 -1
- package/lib/simple-tree/api/create.d.ts +3 -1
- package/lib/simple-tree/api/create.d.ts.map +1 -1
- package/lib/simple-tree/api/create.js +2 -0
- package/lib/simple-tree/api/create.js.map +1 -1
- package/lib/simple-tree/api/customTree.d.ts +1 -2
- package/lib/simple-tree/api/customTree.d.ts.map +1 -1
- package/lib/simple-tree/api/customTree.js.map +1 -1
- package/lib/simple-tree/api/getJsonSchema.d.ts +1 -1
- package/lib/simple-tree/api/getJsonSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/getJsonSchema.js.map +1 -1
- package/lib/simple-tree/api/getSimpleSchema.d.ts +1 -1
- package/lib/simple-tree/api/getSimpleSchema.js.map +1 -1
- package/lib/simple-tree/api/identifierIndex.d.ts +1 -1
- package/lib/simple-tree/api/identifierIndex.js +1 -1
- package/lib/simple-tree/api/identifierIndex.js.map +1 -1
- package/lib/simple-tree/api/index.d.ts +1 -1
- package/lib/simple-tree/api/index.d.ts.map +1 -1
- package/lib/simple-tree/api/index.js.map +1 -1
- package/lib/simple-tree/api/schemaCompatibilityTester.d.ts +1 -1
- package/lib/simple-tree/api/schemaCompatibilityTester.js.map +1 -1
- package/lib/simple-tree/api/schemaCreationUtilities.d.ts +14 -2
- package/lib/simple-tree/api/schemaCreationUtilities.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaCreationUtilities.js +40 -4
- package/lib/simple-tree/api/schemaCreationUtilities.js.map +1 -1
- package/lib/simple-tree/api/schemaFactory.d.ts +36 -3
- package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactory.js +2 -2
- package/lib/simple-tree/api/schemaFactory.js.map +1 -1
- package/lib/simple-tree/api/schemaFactoryAlpha.d.ts +16 -16
- package/lib/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
- package/lib/simple-tree/api/schemaFactoryRecursive.d.ts +2 -2
- package/lib/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactoryRecursive.js +1 -1
- package/lib/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
- package/lib/simple-tree/api/schemaFromSimple.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFromSimple.js +1 -1
- package/lib/simple-tree/api/schemaFromSimple.js.map +1 -1
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.js +1 -1
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
- package/lib/simple-tree/api/simpleTreeIndex.d.ts +2 -2
- package/lib/simple-tree/api/simpleTreeIndex.d.ts.map +1 -1
- package/lib/simple-tree/api/simpleTreeIndex.js +2 -2
- package/lib/simple-tree/api/simpleTreeIndex.js.map +1 -1
- package/lib/simple-tree/api/storedSchema.d.ts +1 -1
- package/lib/simple-tree/api/storedSchema.js +1 -1
- package/lib/simple-tree/api/storedSchema.js.map +1 -1
- package/lib/simple-tree/api/tree.d.ts +2 -1
- package/lib/simple-tree/api/tree.d.ts.map +1 -1
- package/lib/simple-tree/api/tree.js.map +1 -1
- package/lib/simple-tree/api/treeBeta.d.ts +4 -1
- package/lib/simple-tree/api/treeBeta.d.ts.map +1 -1
- package/lib/simple-tree/api/treeBeta.js.map +1 -1
- package/lib/simple-tree/api/treeNodeApi.d.ts +1 -2
- package/lib/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/lib/simple-tree/api/treeNodeApi.js +2 -2
- package/lib/simple-tree/api/treeNodeApi.js.map +1 -1
- package/lib/simple-tree/api/typesUnsafe.d.ts +2 -3
- package/lib/simple-tree/api/typesUnsafe.d.ts.map +1 -1
- package/lib/simple-tree/api/typesUnsafe.js.map +1 -1
- package/lib/simple-tree/api/verboseTree.d.ts +2 -1
- package/lib/simple-tree/api/verboseTree.d.ts.map +1 -1
- package/lib/simple-tree/api/verboseTree.js.map +1 -1
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.d.ts +1 -1
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.js +1 -1
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.js.map +1 -1
- package/lib/simple-tree/core/allowedTypes.d.ts +316 -0
- package/lib/simple-tree/core/allowedTypes.d.ts.map +1 -0
- package/lib/simple-tree/core/allowedTypes.js +162 -0
- package/lib/simple-tree/core/allowedTypes.js.map +1 -0
- package/lib/simple-tree/core/context.d.ts +3 -9
- package/lib/simple-tree/core/context.d.ts.map +1 -1
- package/lib/simple-tree/core/context.js +0 -8
- package/lib/simple-tree/core/context.js.map +1 -1
- package/lib/simple-tree/core/flexList.d.ts.map +1 -0
- package/lib/simple-tree/core/flexList.js.map +1 -0
- package/lib/simple-tree/core/getOrCreateNode.d.ts +1 -1
- package/lib/simple-tree/core/getOrCreateNode.d.ts.map +1 -1
- package/lib/simple-tree/core/getOrCreateNode.js.map +1 -1
- package/lib/simple-tree/core/index.d.ts +9 -3
- package/lib/simple-tree/core/index.d.ts.map +1 -1
- package/lib/simple-tree/core/index.js +6 -3
- package/lib/simple-tree/core/index.js.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.d.ts +8 -1
- package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.js +10 -6
- package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/lib/simple-tree/core/treeNodeSchema.d.ts +182 -39
- package/lib/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeSchema.js +44 -14
- package/lib/simple-tree/core/treeNodeSchema.js.map +1 -1
- package/lib/simple-tree/{treeNodeValid.d.ts → core/treeNodeValid.d.ts} +18 -4
- package/lib/simple-tree/core/treeNodeValid.d.ts.map +1 -0
- package/lib/simple-tree/{treeNodeValid.js → core/treeNodeValid.js} +31 -3
- package/lib/simple-tree/core/treeNodeValid.js.map +1 -0
- package/lib/simple-tree/core/unhydratedFlexTree.d.ts +1 -1
- package/lib/simple-tree/core/unhydratedFlexTree.js.map +1 -1
- package/lib/simple-tree/core/walkSchema.d.ts +2 -1
- package/lib/simple-tree/core/walkSchema.d.ts.map +1 -1
- package/lib/simple-tree/core/walkSchema.js +7 -3
- package/lib/simple-tree/core/walkSchema.js.map +1 -1
- package/lib/simple-tree/createContext.d.ts +6 -2
- package/lib/simple-tree/createContext.d.ts.map +1 -1
- package/lib/simple-tree/createContext.js +13 -2
- package/lib/simple-tree/createContext.js.map +1 -1
- package/lib/simple-tree/fieldSchema.d.ts +423 -0
- package/lib/simple-tree/fieldSchema.d.ts.map +1 -0
- package/lib/simple-tree/{schemaTypes.js → fieldSchema.js} +3 -183
- package/lib/simple-tree/fieldSchema.js.map +1 -0
- 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 +2 -2
- package/lib/simple-tree/index.js.map +1 -1
- package/lib/simple-tree/leafNodeSchema.d.ts +14 -5
- package/lib/simple-tree/leafNodeSchema.d.ts.map +1 -1
- package/lib/simple-tree/leafNodeSchema.js +117 -3
- package/lib/simple-tree/leafNodeSchema.js.map +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNode.d.ts +3 -4
- package/lib/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNode.js +86 -15
- package/lib/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNodeTypes.d.ts +2 -2
- package/lib/simple-tree/node-kinds/array/arrayNodeTypes.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNodeTypes.js +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNodeTypes.js.map +1 -1
- package/lib/simple-tree/node-kinds/common.d.ts +16 -0
- package/lib/simple-tree/node-kinds/common.d.ts.map +1 -0
- package/lib/simple-tree/node-kinds/common.js +38 -0
- package/lib/simple-tree/node-kinds/common.js.map +1 -0
- 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.map +1 -1
- package/lib/simple-tree/node-kinds/map/mapNode.d.ts +2 -3
- package/lib/simple-tree/node-kinds/map/mapNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/map/mapNode.js +51 -13
- package/lib/simple-tree/node-kinds/map/mapNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/map/mapNodeTypes.d.ts +2 -2
- package/lib/simple-tree/node-kinds/map/mapNodeTypes.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/map/mapNodeTypes.js +1 -1
- package/lib/simple-tree/node-kinds/map/mapNodeTypes.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.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNode.d.ts +19 -5
- package/lib/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNode.js +116 -14
- package/lib/simple-tree/node-kinds/object/objectNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNodeTypes.d.ts +11 -4
- package/lib/simple-tree/node-kinds/object/objectNodeTypes.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNodeTypes.js +1 -1
- package/lib/simple-tree/node-kinds/object/objectNodeTypes.js.map +1 -1
- package/lib/simple-tree/node-kinds/record/recordNode.d.ts +2 -2
- package/lib/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/record/recordNode.js +40 -12
- package/lib/simple-tree/node-kinds/record/recordNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/record/recordNodeTypes.d.ts +2 -2
- package/lib/simple-tree/node-kinds/record/recordNodeTypes.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/record/recordNodeTypes.js +1 -1
- package/lib/simple-tree/node-kinds/record/recordNodeTypes.js.map +1 -1
- package/lib/simple-tree/prepareForInsertion.d.ts +2 -2
- package/lib/simple-tree/prepareForInsertion.d.ts.map +1 -1
- package/lib/simple-tree/prepareForInsertion.js +2 -2
- package/lib/simple-tree/prepareForInsertion.js.map +1 -1
- package/lib/simple-tree/simpleSchema.d.ts +2 -2
- 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 +1 -1
- package/lib/simple-tree/toStoredSchema.d.ts.map +1 -1
- package/lib/simple-tree/toStoredSchema.js +2 -3
- package/lib/simple-tree/toStoredSchema.js.map +1 -1
- package/lib/simple-tree/unhydratedFlexTreeFromInsertable.d.ts +5 -11
- package/lib/simple-tree/unhydratedFlexTreeFromInsertable.d.ts.map +1 -1
- package/lib/simple-tree/unhydratedFlexTreeFromInsertable.js +10 -381
- package/lib/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -1
- package/lib/simple-tree/unsafeUnknownSchema.d.ts +52 -0
- package/lib/simple-tree/unsafeUnknownSchema.d.ts.map +1 -0
- package/lib/simple-tree/unsafeUnknownSchema.js +10 -0
- package/lib/simple-tree/unsafeUnknownSchema.js.map +1 -0
- package/lib/simple-tree/walkFieldSchema.d.ts +1 -1
- package/lib/simple-tree/walkFieldSchema.js +1 -1
- package/lib/simple-tree/walkFieldSchema.js.map +1 -1
- package/lib/tableSchema.d.ts +12 -12
- package/lib/treeFactory.d.ts +0 -1
- package/lib/treeFactory.d.ts.map +1 -1
- package/lib/treeFactory.js +0 -1
- package/lib/treeFactory.js.map +1 -1
- package/package.json +22 -23
- package/src/core/schema-stored/schema.ts +14 -1
- package/src/feature-libraries/default-schema/schemaChecker.ts +3 -0
- package/src/feature-libraries/flex-tree/context.ts +10 -5
- package/src/feature-libraries/flex-tree/index.ts +2 -0
- package/src/feature-libraries/flex-tree/lazyField.ts +10 -6
- package/src/feature-libraries/flex-tree/lazyNode.ts +6 -1
- package/src/feature-libraries/forest-summary/forestSummarizer.ts +1 -2
- package/src/feature-libraries/index.ts +1 -0
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/index.ts +0 -2
- package/src/shared-tree/schematizeTree.ts +2 -6
- package/src/shared-tree/schematizingTreeView.ts +72 -107
- package/src/shared-tree/sharedTreeChangeTypes.ts +1 -1
- package/src/shared-tree/tree.ts +4 -3
- package/src/shared-tree/treeAlpha.ts +7 -1
- package/src/shared-tree/treeCheckout.ts +15 -2
- package/src/shared-tree-core/defaultResubmitMachine.ts +99 -52
- package/src/shared-tree-core/resubmitMachine.ts +7 -0
- package/src/shared-tree-core/sharedTreeCore.ts +18 -6
- package/src/simple-tree/api/conciseTree.ts +1 -2
- package/src/simple-tree/api/configuration.ts +11 -8
- package/src/simple-tree/api/create.ts +3 -1
- package/src/simple-tree/api/customTree.ts +1 -2
- package/src/simple-tree/api/getJsonSchema.ts +1 -1
- package/src/simple-tree/api/getSimpleSchema.ts +1 -1
- package/src/simple-tree/api/identifierIndex.ts +1 -1
- package/src/simple-tree/api/index.ts +2 -0
- package/src/simple-tree/api/schemaCompatibilityTester.ts +1 -1
- package/src/simple-tree/api/schemaCreationUtilities.ts +47 -5
- package/src/simple-tree/api/schemaFactory.ts +45 -10
- package/src/simple-tree/api/schemaFactoryAlpha.ts +4 -7
- package/src/simple-tree/api/schemaFactoryRecursive.ts +9 -4
- package/src/simple-tree/api/schemaFromSimple.ts +2 -3
- package/src/simple-tree/api/simpleSchemaToJsonSchema.ts +1 -1
- package/src/simple-tree/api/simpleTreeIndex.ts +8 -3
- package/src/simple-tree/api/storedSchema.ts +1 -1
- package/src/simple-tree/api/tree.ts +2 -2
- package/src/simple-tree/api/treeBeta.ts +4 -1
- package/src/simple-tree/api/treeNodeApi.ts +5 -8
- package/src/simple-tree/api/typesUnsafe.ts +5 -4
- package/src/simple-tree/api/verboseTree.ts +3 -6
- package/src/simple-tree/api/viewSchemaToSimpleSchema.ts +1 -1
- package/src/simple-tree/core/README.md +1 -1
- package/src/simple-tree/core/allowedTypes.ts +496 -0
- package/src/simple-tree/core/context.ts +3 -10
- package/src/simple-tree/core/getOrCreateNode.ts +1 -1
- package/src/simple-tree/core/index.ts +62 -9
- package/src/simple-tree/core/treeNodeKernel.ts +12 -6
- package/src/simple-tree/core/treeNodeSchema.ts +247 -63
- package/src/simple-tree/{treeNodeValid.ts → core/treeNodeValid.ts} +59 -15
- package/src/simple-tree/core/unhydratedFlexTree.ts +1 -1
- package/src/simple-tree/core/walkSchema.ts +9 -5
- package/src/simple-tree/createContext.ts +26 -2
- package/src/simple-tree/fieldSchema.ts +734 -0
- package/src/simple-tree/index.ts +32 -30
- package/src/simple-tree/leafNodeSchema.ts +137 -5
- package/src/simple-tree/node-kinds/array/arrayNode.ts +141 -30
- package/src/simple-tree/node-kinds/array/arrayNodeTypes.ts +5 -7
- package/src/simple-tree/node-kinds/common.ts +60 -0
- package/src/simple-tree/node-kinds/index.ts +1 -0
- package/src/simple-tree/node-kinds/map/mapNode.ts +91 -33
- package/src/simple-tree/node-kinds/map/mapNodeTypes.ts +5 -7
- package/src/simple-tree/node-kinds/object/index.ts +1 -0
- package/src/simple-tree/node-kinds/object/objectNode.ts +205 -25
- package/src/simple-tree/node-kinds/object/objectNodeTypes.ts +22 -5
- package/src/simple-tree/node-kinds/record/recordNode.ts +68 -26
- package/src/simple-tree/node-kinds/record/recordNodeTypes.ts +6 -8
- package/src/simple-tree/prepareForInsertion.ts +7 -6
- package/src/simple-tree/simpleSchema.ts +2 -2
- package/src/simple-tree/toStoredSchema.ts +2 -3
- package/src/simple-tree/unhydratedFlexTreeFromInsertable.ts +12 -494
- package/src/simple-tree/unsafeUnknownSchema.ts +70 -0
- package/src/simple-tree/walkFieldSchema.ts +1 -1
- package/src/treeFactory.ts +0 -1
- package/dist/shared-tree/checkoutFlexTreeView.d.ts +0 -58
- package/dist/shared-tree/checkoutFlexTreeView.d.ts.map +0 -1
- package/dist/shared-tree/checkoutFlexTreeView.js +0 -77
- package/dist/shared-tree/checkoutFlexTreeView.js.map +0 -1
- package/dist/simple-tree/flexList.d.ts.map +0 -1
- package/dist/simple-tree/flexList.js.map +0 -1
- package/dist/simple-tree/schemaTypes.d.ts +0 -856
- package/dist/simple-tree/schemaTypes.d.ts.map +0 -1
- package/dist/simple-tree/schemaTypes.js.map +0 -1
- package/dist/simple-tree/treeNodeValid.d.ts.map +0 -1
- package/dist/simple-tree/treeNodeValid.js.map +0 -1
- package/lib/shared-tree/checkoutFlexTreeView.d.ts +0 -58
- package/lib/shared-tree/checkoutFlexTreeView.d.ts.map +0 -1
- package/lib/shared-tree/checkoutFlexTreeView.js +0 -72
- package/lib/shared-tree/checkoutFlexTreeView.js.map +0 -1
- package/lib/simple-tree/flexList.d.ts.map +0 -1
- package/lib/simple-tree/flexList.js.map +0 -1
- package/lib/simple-tree/schemaTypes.d.ts +0 -856
- package/lib/simple-tree/schemaTypes.d.ts.map +0 -1
- package/lib/simple-tree/schemaTypes.js.map +0 -1
- package/lib/simple-tree/treeNodeValid.d.ts.map +0 -1
- package/lib/simple-tree/treeNodeValid.js.map +0 -1
- package/src/shared-tree/checkoutFlexTreeView.ts +0 -100
- package/src/simple-tree/schemaTypes.ts +0 -1420
- /package/dist/simple-tree/{flexList.d.ts → core/flexList.d.ts} +0 -0
- /package/dist/simple-tree/{flexList.js → core/flexList.js} +0 -0
- /package/lib/simple-tree/{flexList.d.ts → core/flexList.d.ts} +0 -0
- /package/lib/simple-tree/{flexList.js → core/flexList.js} +0 -0
- /package/src/simple-tree/{flexList.ts → core/flexList.ts} +0 -0
|
@@ -397,14 +397,12 @@ export class SharedTreeCore<TEditor extends ChangeFamilyEditor, TChange>
|
|
|
397
397
|
} = this.messageCodec.decode(this.serializer.decode(content), {
|
|
398
398
|
idCompressor: this.idCompressor,
|
|
399
399
|
});
|
|
400
|
-
const [commit] = this.editManager.findLocalCommit(revision);
|
|
401
400
|
// If a resubmit phase is not already in progress, then this must be the first commit of a new resubmit phase.
|
|
402
401
|
if (this.resubmitMachine.isInResubmitPhase === false) {
|
|
403
|
-
const
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
);
|
|
402
|
+
const localCommits = this.editManager.getLocalCommits();
|
|
403
|
+
const revisionIndex = localCommits.findIndex((c) => c.revision === revision);
|
|
404
|
+
assert(revisionIndex >= 0, 0xbdb /* revision must exist in local commits */);
|
|
405
|
+
const toResubmit = localCommits.slice(revisionIndex);
|
|
408
406
|
this.resubmitMachine.prepareForResubmit(toResubmit);
|
|
409
407
|
}
|
|
410
408
|
assert(
|
|
@@ -418,6 +416,20 @@ export class SharedTreeCore<TEditor extends ChangeFamilyEditor, TChange>
|
|
|
418
416
|
const enrichedCommit = this.resubmitMachine.peekNextCommit();
|
|
419
417
|
this.submitCommit(enrichedCommit, localOpMetadata, true);
|
|
420
418
|
}
|
|
419
|
+
public rollback(content: JsonCompatibleReadOnly, localOpMetadata: unknown): void {
|
|
420
|
+
// Empty context object is passed in, as our decode function is schema-agnostic.
|
|
421
|
+
const {
|
|
422
|
+
commit: { revision },
|
|
423
|
+
} = this.messageCodec.decode(this.serializer.decode(content), {
|
|
424
|
+
idCompressor: this.idCompressor,
|
|
425
|
+
});
|
|
426
|
+
const [commit] = this.editManager.findLocalCommit(revision);
|
|
427
|
+
const { parent } = commit;
|
|
428
|
+
assert(parent !== undefined, 0xbdc /* must have parent */);
|
|
429
|
+
const [precedingCommit] = this.editManager.findLocalCommit(parent.revision);
|
|
430
|
+
this.editManager.localBranch.removeAfter(precedingCommit);
|
|
431
|
+
this.resubmitMachine.onCommitRollback(commit);
|
|
432
|
+
}
|
|
421
433
|
|
|
422
434
|
public applyStashedOp(content: JsonCompatibleReadOnly): void {
|
|
423
435
|
// Empty context object is passed in, as our decode function is schema-agnostic.
|
|
@@ -6,9 +6,8 @@
|
|
|
6
6
|
import type { IFluidHandle } from "@fluidframework/core-interfaces";
|
|
7
7
|
|
|
8
8
|
import type { ITreeCursor } from "../../core/index.js";
|
|
9
|
-
import type { TreeNodeSchema } from "../core/index.js";
|
|
9
|
+
import type { TreeNodeSchema, TreeLeafValue, ImplicitAllowedTypes } from "../core/index.js";
|
|
10
10
|
import { getUnhydratedContext } from "../createContext.js";
|
|
11
|
-
import type { TreeLeafValue, ImplicitAllowedTypes } from "../schemaTypes.js";
|
|
12
11
|
|
|
13
12
|
import {
|
|
14
13
|
customFromCursor,
|
|
@@ -15,13 +15,16 @@ import { UsageError } from "@fluidframework/telemetry-utils/internal";
|
|
|
15
15
|
import {
|
|
16
16
|
type FieldSchemaAlpha,
|
|
17
17
|
type ImplicitFieldSchema,
|
|
18
|
-
evaluateLazySchema,
|
|
19
18
|
FieldKind,
|
|
19
|
+
normalizeFieldSchema,
|
|
20
|
+
} from "../fieldSchema.js";
|
|
21
|
+
import {
|
|
22
|
+
NodeKind,
|
|
23
|
+
type TreeNodeSchema,
|
|
20
24
|
isAnnotatedAllowedType,
|
|
25
|
+
evaluateLazySchema,
|
|
21
26
|
markSchemaMostDerived,
|
|
22
|
-
|
|
23
|
-
} from "../schemaTypes.js";
|
|
24
|
-
import { NodeKind, type TreeNodeSchema } from "../core/index.js";
|
|
27
|
+
} from "../core/index.js";
|
|
25
28
|
import { toStoredSchema } from "../toStoredSchema.js";
|
|
26
29
|
import {
|
|
27
30
|
isArrayNodeSchema,
|
|
@@ -327,7 +330,7 @@ export function checkUnion(
|
|
|
327
330
|
break;
|
|
328
331
|
}
|
|
329
332
|
case NodeKind.Object: {
|
|
330
|
-
assert(isObjectNodeSchema(schema),
|
|
333
|
+
assert(isObjectNodeSchema(schema), 0xbde /* Expected object schema. */);
|
|
331
334
|
objects.push(schema);
|
|
332
335
|
for (const key of schema.fields.keys()) {
|
|
333
336
|
getOrCreate(allObjectKeys, key, () => new Set()).add(schema);
|
|
@@ -335,17 +338,17 @@ export function checkUnion(
|
|
|
335
338
|
break;
|
|
336
339
|
}
|
|
337
340
|
case NodeKind.Array: {
|
|
338
|
-
assert(isArrayNodeSchema(schema),
|
|
341
|
+
assert(isArrayNodeSchema(schema), 0xbdf /* Expected array schema. */);
|
|
339
342
|
arrays.push(schema);
|
|
340
343
|
break;
|
|
341
344
|
}
|
|
342
345
|
case NodeKind.Map: {
|
|
343
|
-
assert(isMapNodeSchema(schema),
|
|
346
|
+
assert(isMapNodeSchema(schema), 0xbe0 /* Expected map schema. */);
|
|
344
347
|
maps.push(schema);
|
|
345
348
|
break;
|
|
346
349
|
}
|
|
347
350
|
case NodeKind.Record: {
|
|
348
|
-
assert(isRecordNodeSchema(schema),
|
|
351
|
+
assert(isRecordNodeSchema(schema), 0xbe1 /* Expected record schema. */);
|
|
349
352
|
records.push(schema);
|
|
350
353
|
break;
|
|
351
354
|
}
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
type ITreeCursorSynchronous,
|
|
13
13
|
type SchemaAndPolicy,
|
|
14
14
|
} from "../../core/index.js";
|
|
15
|
-
import type { ImplicitFieldSchema, TreeFieldFromImplicitField } from "../
|
|
15
|
+
import type { ImplicitFieldSchema, TreeFieldFromImplicitField } from "../fieldSchema.js";
|
|
16
16
|
import {
|
|
17
17
|
type Context,
|
|
18
18
|
getOrCreateNodeFromInnerNode,
|
|
@@ -37,6 +37,8 @@ import { unknownTypeError } from "./customTree.js";
|
|
|
37
37
|
* @remarks
|
|
38
38
|
* Does not support defaults.
|
|
39
39
|
* Validates the field is in schema.
|
|
40
|
+
*
|
|
41
|
+
* TODO: AB#43548: How this handles unknown optional fields needs to be figured out, tested and documented.
|
|
40
42
|
*/
|
|
41
43
|
export function createFromCursor<const TSchema extends ImplicitFieldSchema>(
|
|
42
44
|
schema: TSchema,
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
} from "../../core/index.js";
|
|
23
23
|
import { FieldKinds, valueSchemaAllows } from "../../feature-libraries/index.js";
|
|
24
24
|
import { cloneWithReplacements } from "../../util/index.js";
|
|
25
|
-
import type { TreeNodeSchema } from "../core/index.js";
|
|
25
|
+
import type { TreeNodeSchema, TreeLeafValue } from "../core/index.js";
|
|
26
26
|
import {
|
|
27
27
|
booleanSchema,
|
|
28
28
|
handleSchema,
|
|
@@ -31,7 +31,6 @@ import {
|
|
|
31
31
|
stringSchema,
|
|
32
32
|
} from "../leafNodeSchema.js";
|
|
33
33
|
import { isArrayNodeSchema, isObjectNodeSchema } from "../node-kinds/index.js";
|
|
34
|
-
import type { TreeLeafValue } from "../schemaTypes.js";
|
|
35
34
|
|
|
36
35
|
/**
|
|
37
36
|
* Options for how to interpret or encode a tree when schema information is available.
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import type { JsonTreeSchema } from "./jsonSchema.js";
|
|
7
|
-
import type { ImplicitAllowedTypes } from "../
|
|
7
|
+
import type { ImplicitAllowedTypes } from "../core/index.js";
|
|
8
8
|
import { toJsonSchema } from "./simpleSchemaToJsonSchema.js";
|
|
9
9
|
import type { TreeEncodingOptions } from "./customTree.js";
|
|
10
10
|
import { TreeViewConfigurationAlpha } from "./configuration.js";
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import type { ImplicitFieldSchema } from "../
|
|
6
|
+
import type { ImplicitFieldSchema } from "../fieldSchema.js";
|
|
7
7
|
import type { SimpleTreeSchema } from "../simpleSchema.js";
|
|
8
8
|
|
|
9
9
|
import { toSimpleTreeSchema } from "./viewSchemaToSimpleSchema.js";
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
import { UsageError } from "@fluidframework/telemetry-utils/internal";
|
|
7
7
|
import type { TreeIndexKey } from "../../feature-libraries/index.js";
|
|
8
|
-
import { FieldKind, type ImplicitFieldSchema } from "../
|
|
8
|
+
import { FieldKind, type ImplicitFieldSchema } from "../fieldSchema.js";
|
|
9
9
|
import type { TreeNode } from "../core/index.js";
|
|
10
10
|
import { ObjectNodeSchema } from "../node-kinds/index.js";
|
|
11
11
|
import type { TreeView } from "./tree.js";
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
fieldRealizer,
|
|
24
24
|
comparePosetElements,
|
|
25
25
|
} from "../../feature-libraries/index.js";
|
|
26
|
-
import type { FieldSchema } from "../
|
|
26
|
+
import type { FieldSchema } from "../fieldSchema.js";
|
|
27
27
|
import { toStoredSchema } from "../toStoredSchema.js";
|
|
28
28
|
|
|
29
29
|
import type { SchemaCompatibilityStatus } from "./tree.js";
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { UsageError } from "@fluidframework/telemetry-utils/internal";
|
|
7
|
-
import { fail } from "@fluidframework/core-utils/internal";
|
|
7
|
+
import { assert, fail } from "@fluidframework/core-utils/internal";
|
|
8
8
|
|
|
9
9
|
import type { SchemaFactory, ScopedSchemaName } from "./schemaFactory.js";
|
|
10
|
-
import type { NodeFromSchema } from "../schemaTypes.js";
|
|
11
10
|
import type {
|
|
11
|
+
NodeFromSchema,
|
|
12
12
|
InternalTreeNode,
|
|
13
13
|
NodeKind,
|
|
14
14
|
TreeNode,
|
|
@@ -47,6 +47,12 @@ export function singletonSchema<TScope extends string, TName extends string | nu
|
|
|
47
47
|
public get value(): TName {
|
|
48
48
|
return name;
|
|
49
49
|
}
|
|
50
|
+
|
|
51
|
+
public static override toString(): string {
|
|
52
|
+
return `SingletonSchema(${name})`;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
public static [Symbol.toStringTag] = `SingletonSchema(${name})`;
|
|
50
56
|
}
|
|
51
57
|
|
|
52
58
|
type SingletonNodeType = TreeNode & { readonly value: TName };
|
|
@@ -71,10 +77,16 @@ export function singletonSchema<TScope extends string, TName extends string | nu
|
|
|
71
77
|
|
|
72
78
|
/**
|
|
73
79
|
* Converts an enum into a collection of schema which can be used in a union.
|
|
80
|
+
*
|
|
81
|
+
* @typeParam TScope - The scope of the provided factory.
|
|
82
|
+
* There is a known issue where if a factory is provided that is typed as a {@link SchemaFactoryAlpha}, and its scope contains a "." character,
|
|
83
|
+
* the inferred type for the scope will end up as a union of the scope up to the first "." character and the scope as it should be.
|
|
84
|
+
* This can be mitigated by explicitly providing the TScope type parameter or by typing the provided factory as a {@link SchemaFactory} instead of a {@link SchemaFactoryAlpha}.
|
|
85
|
+
*
|
|
74
86
|
* @remarks
|
|
75
87
|
* The string value of the enum is used as the name of the schema: callers must ensure that it is stable and unique.
|
|
76
88
|
* Numeric enums values have the value implicitly converted into a string.
|
|
77
|
-
* Consider making a dedicated schema factory with a nested scope to avoid the enum members colliding with other schema.
|
|
89
|
+
* Consider making a dedicated schema factory with a nested scope (for example using {@link SchemaFactoryAlpha.scopedFactory}) to avoid the enum members colliding with other schema.
|
|
78
90
|
* @example
|
|
79
91
|
* ```typescript
|
|
80
92
|
* const schemaFactory = new SchemaFactory("com.myApp");
|
|
@@ -105,7 +117,8 @@ export function singletonSchema<TScope extends string, TName extends string | nu
|
|
|
105
117
|
* }
|
|
106
118
|
* ```
|
|
107
119
|
* @privateRemarks
|
|
108
|
-
*
|
|
120
|
+
* TODO: AB#43345: see TScope known issue above, and other references to this work item.
|
|
121
|
+
*
|
|
109
122
|
* @see {@link enumFromStrings} for a similar function that works on arrays of strings instead of an enum.
|
|
110
123
|
* @beta
|
|
111
124
|
*/
|
|
@@ -144,7 +157,7 @@ export function adaptEnum<
|
|
|
144
157
|
: never;
|
|
145
158
|
};
|
|
146
159
|
const out = factoryOut as typeof factoryOut & TOut & { readonly schema: SchemaArray };
|
|
147
|
-
for (const [key, value] of
|
|
160
|
+
for (const [key, value] of enumEntries(members)) {
|
|
148
161
|
const schema = singletonSchema(factory, value);
|
|
149
162
|
schemaArray.push(schema);
|
|
150
163
|
Object.defineProperty(out, key, {
|
|
@@ -165,6 +178,35 @@ export function adaptEnum<
|
|
|
165
178
|
return out;
|
|
166
179
|
}
|
|
167
180
|
|
|
181
|
+
/**
|
|
182
|
+
* Returns en "entries" (like Object.entries) for an enum object, omitting the
|
|
183
|
+
* {@link https://www.typescriptlang.org/docs/handbook/enums.html#reverse-mappings|reverse mappings}
|
|
184
|
+
*/
|
|
185
|
+
export function enumEntries(
|
|
186
|
+
enumObject: Record<string, string | number>,
|
|
187
|
+
): [string, string | number][] {
|
|
188
|
+
// Skip reverse mapping for numeric entries.
|
|
189
|
+
// For numeric entries, TypeScript defines an additional property keyed with the number implicitly converted to a string.
|
|
190
|
+
// Note TypeScript can overwrite its own enum entries in some edge cases (see https://github.com/microsoft/TypeScript/issues/48956), so it's not possible to handle all cases correctly.
|
|
191
|
+
return Object.entries(enumObject).filter(([key, value]) => {
|
|
192
|
+
// All reverse mapping must also have a inverse mapping (the regular forward mapping) to a number:
|
|
193
|
+
const inverse = enumObject[value];
|
|
194
|
+
if (typeof inverse !== "number") {
|
|
195
|
+
// Known not to be a reverse mapping, so keep it.
|
|
196
|
+
return true;
|
|
197
|
+
}
|
|
198
|
+
// At this point, it is expected that all remaining cases are reverse mappings,
|
|
199
|
+
// but do some asserts to ensure that the above logic is sufficient.
|
|
200
|
+
assert(typeof value === "string", "expected reverse mapping and thus a string value");
|
|
201
|
+
assert(
|
|
202
|
+
Number.parseFloat(key).toString() === key,
|
|
203
|
+
"expected reverse mapping and thus a key that is a normalized number",
|
|
204
|
+
);
|
|
205
|
+
// Discard the reverse mapping.
|
|
206
|
+
return false;
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
|
|
168
210
|
/**
|
|
169
211
|
* Converts an array of distinct strings into a collection of schema which can be used like an enum style union.
|
|
170
212
|
* @remarks
|
|
@@ -13,11 +13,13 @@ import type { TreeValue } from "../../core/index.js";
|
|
|
13
13
|
// eslint-disable-next-line unused-imports/no-unused-imports, @typescript-eslint/no-unused-vars
|
|
14
14
|
import type { TreeAlpha } from "../../shared-tree/index.js";
|
|
15
15
|
import {
|
|
16
|
+
type JsonCompatibleReadOnlyObject,
|
|
16
17
|
type RestrictiveStringRecord,
|
|
17
18
|
compareSets,
|
|
18
19
|
getOrCreate,
|
|
19
20
|
isReadonlyArray,
|
|
20
21
|
} from "../../util/index.js";
|
|
22
|
+
import { normalizeAllowedTypes, markSchemaMostDerived, isLazy } from "../core/index.js";
|
|
21
23
|
import type {
|
|
22
24
|
NodeKind,
|
|
23
25
|
WithType,
|
|
@@ -26,8 +28,12 @@ import type {
|
|
|
26
28
|
TreeNodeSchemaNonClass,
|
|
27
29
|
TreeNodeSchemaBoth,
|
|
28
30
|
UnhydratedFlexTreeNode,
|
|
31
|
+
NodeSchemaMetadata,
|
|
32
|
+
ImplicitAnnotatedAllowedTypes,
|
|
33
|
+
UnannotateImplicitAllowedTypes,
|
|
34
|
+
ImplicitAllowedTypes,
|
|
35
|
+
InsertableTreeNodeFromImplicitAllowedTypes,
|
|
29
36
|
} from "../core/index.js";
|
|
30
|
-
import { isLazy } from "../flexList.js";
|
|
31
37
|
import {
|
|
32
38
|
booleanSchema,
|
|
33
39
|
handleSchema,
|
|
@@ -45,26 +51,19 @@ import {
|
|
|
45
51
|
type InsertableObjectFromSchemaRecord,
|
|
46
52
|
type TreeMapNode,
|
|
47
53
|
type TreeObjectNode,
|
|
54
|
+
type UnannotateSchemaRecord,
|
|
48
55
|
} from "../node-kinds/index.js";
|
|
49
56
|
import {
|
|
50
57
|
FieldKind,
|
|
51
58
|
type FieldSchema,
|
|
52
|
-
type ImplicitAllowedTypes,
|
|
53
59
|
type ImplicitFieldSchema,
|
|
54
|
-
type InsertableTreeNodeFromImplicitAllowedTypes,
|
|
55
60
|
type FieldProps,
|
|
56
61
|
createFieldSchema,
|
|
57
62
|
type DefaultProvider,
|
|
58
63
|
getDefaultProvider,
|
|
59
|
-
markSchemaMostDerived,
|
|
60
64
|
type FieldSchemaAlpha,
|
|
61
|
-
type ImplicitAnnotatedAllowedTypes,
|
|
62
|
-
type UnannotateImplicitAllowedTypes,
|
|
63
|
-
type UnannotateSchemaRecord,
|
|
64
|
-
type NodeSchemaOptionsAlpha,
|
|
65
|
-
normalizeAllowedTypes,
|
|
66
65
|
type FieldPropsAlpha,
|
|
67
|
-
} from "../
|
|
66
|
+
} from "../fieldSchema.js";
|
|
68
67
|
|
|
69
68
|
import { createFieldSchemaUnsafe } from "./schemaFactoryRecursive.js";
|
|
70
69
|
import type { System_Unsafe, FieldSchemaAlphaUnsafe } from "./typesUnsafe.js";
|
|
@@ -1312,3 +1311,39 @@ export function structuralName<const T extends string>(
|
|
|
1312
1311
|
* Using this is only better than creating fully random V4 UUIDs because it reduces the entropy making it possible for things like text compression to work slightly better.
|
|
1313
1312
|
*/
|
|
1314
1313
|
const globalIdentifierAllocator: IIdCompressor = createIdCompressor();
|
|
1314
|
+
|
|
1315
|
+
/**
|
|
1316
|
+
* Additional information to provide to Node Schema creation.
|
|
1317
|
+
*
|
|
1318
|
+
* @typeParam TCustomMetadata - Custom metadata properties to associate with the Node Schema.
|
|
1319
|
+
* See {@link NodeSchemaMetadata.custom}.
|
|
1320
|
+
*
|
|
1321
|
+
* @sealed
|
|
1322
|
+
* @public
|
|
1323
|
+
*/
|
|
1324
|
+
export interface NodeSchemaOptions<out TCustomMetadata = unknown> {
|
|
1325
|
+
/**
|
|
1326
|
+
* Optional metadata to associate with the Node Schema.
|
|
1327
|
+
*
|
|
1328
|
+
* @remarks
|
|
1329
|
+
* Note: this metadata is not persisted nor made part of the collaborative state; it is strictly client-local.
|
|
1330
|
+
* Different clients in the same collaborative session may see different metadata for the same field.
|
|
1331
|
+
*/
|
|
1332
|
+
readonly metadata?: NodeSchemaMetadata<TCustomMetadata> | undefined;
|
|
1333
|
+
}
|
|
1334
|
+
|
|
1335
|
+
/**
|
|
1336
|
+
* Additional information to provide to Node Schema creation. Includes fields for alpha features.
|
|
1337
|
+
*
|
|
1338
|
+
* @typeParam TCustomMetadata - Custom metadata properties to associate with the Node Schema.
|
|
1339
|
+
* See {@link NodeSchemaMetadata.custom}.
|
|
1340
|
+
*
|
|
1341
|
+
* @alpha
|
|
1342
|
+
*/
|
|
1343
|
+
export interface NodeSchemaOptionsAlpha<out TCustomMetadata = unknown>
|
|
1344
|
+
extends NodeSchemaOptions<TCustomMetadata> {
|
|
1345
|
+
/**
|
|
1346
|
+
* The persisted metadata for this schema element.
|
|
1347
|
+
*/
|
|
1348
|
+
readonly persistedMetadata?: JsonCompatibleReadOnlyObject | undefined;
|
|
1349
|
+
}
|
|
@@ -20,16 +20,11 @@ import {
|
|
|
20
20
|
SchemaFactory,
|
|
21
21
|
schemaStatics,
|
|
22
22
|
structuralName,
|
|
23
|
+
type NodeSchemaOptionsAlpha,
|
|
23
24
|
type SchemaFactoryObjectOptions,
|
|
24
25
|
type ScopedSchemaName,
|
|
25
26
|
} from "./schemaFactory.js";
|
|
26
|
-
import type {
|
|
27
|
-
ImplicitAllowedTypes,
|
|
28
|
-
ImplicitAnnotatedAllowedTypes,
|
|
29
|
-
ImplicitAnnotatedFieldSchema,
|
|
30
|
-
ImplicitFieldSchema,
|
|
31
|
-
NodeSchemaOptionsAlpha,
|
|
32
|
-
} from "../schemaTypes.js";
|
|
27
|
+
import type { ImplicitAnnotatedFieldSchema, ImplicitFieldSchema } from "../fieldSchema.js";
|
|
33
28
|
import type { RestrictiveStringRecord } from "../../util/index.js";
|
|
34
29
|
import type {
|
|
35
30
|
NodeKind,
|
|
@@ -38,6 +33,8 @@ import type {
|
|
|
38
33
|
TreeNodeSchemaClass,
|
|
39
34
|
TreeNodeSchemaNonClass,
|
|
40
35
|
WithType,
|
|
36
|
+
ImplicitAllowedTypes,
|
|
37
|
+
ImplicitAnnotatedAllowedTypes,
|
|
41
38
|
} from "../core/index.js";
|
|
42
39
|
import type {
|
|
43
40
|
ArrayNodeCustomizableSchemaUnsafe,
|
|
@@ -4,16 +4,21 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import type { RestrictiveStringRecord } from "../../util/index.js";
|
|
7
|
-
import type {
|
|
7
|
+
import type {
|
|
8
|
+
NodeKind,
|
|
9
|
+
TreeNodeSchema,
|
|
10
|
+
WithType,
|
|
11
|
+
TreeNode,
|
|
12
|
+
ImplicitAllowedTypes,
|
|
13
|
+
InsertableTreeNodeFromImplicitAllowedTypes,
|
|
14
|
+
} from "../core/index.js";
|
|
8
15
|
import type { InsertableObjectFromSchemaRecord } from "../node-kinds/index.js";
|
|
9
16
|
import {
|
|
10
17
|
type FieldKind,
|
|
11
18
|
type FieldProps,
|
|
12
19
|
createFieldSchema,
|
|
13
|
-
type ImplicitAllowedTypes,
|
|
14
20
|
type ImplicitFieldSchema,
|
|
15
|
-
|
|
16
|
-
} from "../schemaTypes.js";
|
|
21
|
+
} from "../fieldSchema.js";
|
|
17
22
|
|
|
18
23
|
import type { FieldSchemaAlphaUnsafe, System_Unsafe } from "./typesUnsafe.js";
|
|
19
24
|
|
|
@@ -5,14 +5,13 @@
|
|
|
5
5
|
|
|
6
6
|
import { unreachableCase, fail } from "@fluidframework/core-utils/internal";
|
|
7
7
|
|
|
8
|
-
import { NodeKind, type TreeNodeSchema } from "../core/index.js";
|
|
8
|
+
import { NodeKind, type TreeNodeSchema, type AllowedTypes } from "../core/index.js";
|
|
9
9
|
import {
|
|
10
10
|
type FieldSchema,
|
|
11
|
-
type AllowedTypes,
|
|
12
11
|
type FieldSchemaAlpha,
|
|
13
12
|
FieldKind,
|
|
14
13
|
type FieldProps,
|
|
15
|
-
} from "../
|
|
14
|
+
} from "../fieldSchema.js";
|
|
16
15
|
import type {
|
|
17
16
|
SimpleFieldSchema,
|
|
18
17
|
SimpleNodeSchema,
|
|
@@ -20,8 +20,13 @@ import {
|
|
|
20
20
|
type KeyFinder,
|
|
21
21
|
} from "../../feature-libraries/index.js";
|
|
22
22
|
import { brand } from "../../util/index.js";
|
|
23
|
-
import type { ImplicitFieldSchema
|
|
24
|
-
import {
|
|
23
|
+
import type { ImplicitFieldSchema } from "../fieldSchema.js";
|
|
24
|
+
import {
|
|
25
|
+
treeNodeFromAnchor,
|
|
26
|
+
type TreeNode,
|
|
27
|
+
type TreeNodeSchema,
|
|
28
|
+
type NodeFromSchema,
|
|
29
|
+
} from "../core/index.js";
|
|
25
30
|
import { treeNodeApi } from "./treeNodeApi.js";
|
|
26
31
|
import type { TreeView } from "./tree.js";
|
|
27
32
|
import { walkFieldSchema } from "../walkFieldSchema.js";
|
|
@@ -180,7 +185,7 @@ export function createSimpleTreeIndex<
|
|
|
180
185
|
};
|
|
181
186
|
|
|
182
187
|
const index = new AnchorTreeIndex<TKey, TValue>(
|
|
183
|
-
(view as SchematizingSimpleTreeView<TFieldSchema>).
|
|
188
|
+
(view as SchematizingSimpleTreeView<TFieldSchema>).checkout.forest,
|
|
184
189
|
schemaIndexer,
|
|
185
190
|
(anchorNodes) => {
|
|
186
191
|
const simpleTreeNodes: TreeNode[] = [];
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
// eslint-disable-next-line import/no-internal-modules
|
|
17
17
|
} from "../../feature-libraries/schema-index/index.js";
|
|
18
18
|
import type { JsonCompatible } from "../../util/index.js";
|
|
19
|
-
import { normalizeFieldSchema, type ImplicitFieldSchema } from "../
|
|
19
|
+
import { normalizeFieldSchema, type ImplicitFieldSchema } from "../fieldSchema.js";
|
|
20
20
|
import type { SimpleTreeSchema } from "../simpleSchema.js";
|
|
21
21
|
import { simpleToStoredSchema } from "../toStoredSchema.js";
|
|
22
22
|
|
|
@@ -22,8 +22,8 @@ import type {
|
|
|
22
22
|
ReadableField,
|
|
23
23
|
ReadSchema,
|
|
24
24
|
TreeFieldFromImplicitField,
|
|
25
|
-
|
|
26
|
-
} from "../
|
|
25
|
+
} from "../fieldSchema.js";
|
|
26
|
+
import type { UnsafeUnknownSchema } from "../unsafeUnknownSchema.js";
|
|
27
27
|
import type { SimpleTreeSchema } from "../simpleSchema.js";
|
|
28
28
|
|
|
29
29
|
import type { TreeViewConfiguration } from "./configuration.js";
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
type Unhydrated,
|
|
12
12
|
type WithType,
|
|
13
13
|
} from "../core/index.js";
|
|
14
|
-
import type { ImplicitFieldSchema, TreeFieldFromImplicitField } from "../
|
|
14
|
+
import type { ImplicitFieldSchema, TreeFieldFromImplicitField } from "../fieldSchema.js";
|
|
15
15
|
|
|
16
16
|
import { createFromCursor } from "./create.js";
|
|
17
17
|
import type { TreeChangeEvents } from "./treeChangeEvents.js";
|
|
@@ -127,6 +127,9 @@ export interface TreeBeta {
|
|
|
127
127
|
* - Value node types (i.e., numbers, strings, booleans, nulls and Fluid handles) will be returned as is.
|
|
128
128
|
*
|
|
129
129
|
* - The identifiers in the node's subtree will be preserved, i.e., they are not replaced with new values.
|
|
130
|
+
*
|
|
131
|
+
* @privateRemarks
|
|
132
|
+
* TODO: AB#43548: How this handles unknown optional fields needs to be figured out, tested and documented.
|
|
130
133
|
*/
|
|
131
134
|
clone<const TSchema extends ImplicitFieldSchema>(
|
|
132
135
|
node: TreeFieldFromImplicitField<TSchema>,
|
|
@@ -8,14 +8,7 @@ import { assert, oob, fail, unreachableCase } from "@fluidframework/core-utils/i
|
|
|
8
8
|
import { EmptyKey, rootFieldKey } from "../../core/index.js";
|
|
9
9
|
import { type TreeStatus, isTreeValue, FieldKinds } from "../../feature-libraries/index.js";
|
|
10
10
|
import { extractFromOpaque } from "../../util/index.js";
|
|
11
|
-
import {
|
|
12
|
-
type TreeLeafValue,
|
|
13
|
-
type ImplicitFieldSchema,
|
|
14
|
-
FieldSchema,
|
|
15
|
-
type ImplicitAllowedTypes,
|
|
16
|
-
type TreeNodeFromImplicitAllowedTypes,
|
|
17
|
-
normalizeAllowedTypes,
|
|
18
|
-
} from "../schemaTypes.js";
|
|
11
|
+
import { type ImplicitFieldSchema, FieldSchema } from "../fieldSchema.js";
|
|
19
12
|
import {
|
|
20
13
|
booleanSchema,
|
|
21
14
|
handleSchema,
|
|
@@ -36,6 +29,10 @@ import {
|
|
|
36
29
|
getOrCreateNodeFromInnerNode,
|
|
37
30
|
typeSchemaSymbol,
|
|
38
31
|
getOrCreateInnerNode,
|
|
32
|
+
type TreeLeafValue,
|
|
33
|
+
type ImplicitAllowedTypes,
|
|
34
|
+
type TreeNodeFromImplicitAllowedTypes,
|
|
35
|
+
normalizeAllowedTypes,
|
|
39
36
|
} from "../core/index.js";
|
|
40
37
|
import type { TreeChangeEvents } from "./treeChangeEvents.js";
|
|
41
38
|
import { isArrayNodeSchema, isObjectNodeSchema } from "../node-kinds/index.js";
|
|
@@ -15,9 +15,7 @@ import type {
|
|
|
15
15
|
FieldKind,
|
|
16
16
|
FieldSchema,
|
|
17
17
|
FieldSchemaAlpha,
|
|
18
|
-
|
|
19
|
-
TreeLeafValue,
|
|
20
|
-
} from "../schemaTypes.js";
|
|
18
|
+
} from "../fieldSchema.js";
|
|
21
19
|
import type {
|
|
22
20
|
NodeKind,
|
|
23
21
|
WithType,
|
|
@@ -27,9 +25,12 @@ import type {
|
|
|
27
25
|
TreeNodeSchema,
|
|
28
26
|
TreeNodeSchemaCore,
|
|
29
27
|
TreeNodeSchemaClass,
|
|
28
|
+
ImplicitAllowedTypes,
|
|
29
|
+
TreeLeafValue,
|
|
30
|
+
FlexListToUnion,
|
|
31
|
+
LazyItem,
|
|
30
32
|
} from "../core/index.js";
|
|
31
33
|
import type { TreeArrayNode } from "../node-kinds/index.js";
|
|
32
|
-
import type { FlexListToUnion, LazyItem } from "../flexList.js";
|
|
33
34
|
import type { SimpleArrayNodeSchema, SimpleMapNodeSchema } from "../simpleSchema.js";
|
|
34
35
|
|
|
35
36
|
/*
|
|
@@ -17,12 +17,9 @@ import {
|
|
|
17
17
|
type ITreeCursorSynchronous,
|
|
18
18
|
} from "../../core/index.js";
|
|
19
19
|
import { brand } from "../../util/index.js";
|
|
20
|
-
import type {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
ImplicitAllowedTypes,
|
|
24
|
-
} from "../schemaTypes.js";
|
|
25
|
-
import { NodeKind, type TreeNodeSchema } from "../core/index.js";
|
|
20
|
+
import type { ImplicitFieldSchema } from "../fieldSchema.js";
|
|
21
|
+
import { NodeKind } from "../core/index.js";
|
|
22
|
+
import type { TreeNodeSchema, ImplicitAllowedTypes, TreeLeafValue } from "../core/index.js";
|
|
26
23
|
import {
|
|
27
24
|
isTreeValue,
|
|
28
25
|
stackTreeFieldCursor,
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { assert, unreachableCase } from "@fluidframework/core-utils/internal";
|
|
7
|
-
import { normalizeFieldSchema, type ImplicitFieldSchema } from "../
|
|
7
|
+
import { normalizeFieldSchema, type ImplicitFieldSchema } from "../fieldSchema.js";
|
|
8
8
|
import type {
|
|
9
9
|
SimpleArrayNodeSchema,
|
|
10
10
|
SimpleFieldSchema,
|