@fluidframework/tree 2.63.0-359461 → 2.63.0-359962
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/.mocharc.cjs +9 -1
- package/api-report/tree.alpha.api.md +126 -96
- package/api-report/tree.beta.api.md +37 -2
- package/api-report/tree.legacy.beta.api.md +37 -2
- package/api-report/tree.legacy.public.api.md +9 -2
- package/api-report/tree.public.api.md +9 -2
- package/dist/alpha.d.ts +18 -13
- package/dist/beta.d.ts +5 -0
- package/dist/feature-libraries/chunked-forest/chunkTree.d.ts +67 -13
- package/dist/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkTree.js +70 -35
- package/dist/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts +5 -5
- package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.d.ts +23 -0
- package/dist/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.d.ts.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.js +15 -0
- package/dist/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/index.d.ts +1 -0
- package/dist/feature-libraries/chunked-forest/codec/index.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/index.js +3 -1
- package/dist/feature-libraries/chunked-forest/codec/index.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.js +3 -2
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/index.d.ts +1 -1
- package/dist/feature-libraries/chunked-forest/index.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/index.js +2 -1
- package/dist/feature-libraries/chunked-forest/index.js.map +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts +3 -3
- package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.js +3 -3
- package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts +4 -11
- package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.js +2 -6
- package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.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/feature-libraries/treeCursorUtils.d.ts.map +1 -1
- package/dist/feature-libraries/treeCursorUtils.js +17 -15
- package/dist/feature-libraries/treeCursorUtils.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/jsonDomainSchema.d.ts +5 -5
- package/dist/jsonDomainSchema.js +5 -5
- package/dist/jsonDomainSchema.js.map +1 -1
- package/dist/legacy.d.ts +5 -0
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/public.d.ts +1 -0
- package/dist/serializableDomainSchema.d.ts +6 -6
- package/dist/serializableDomainSchema.js +5 -5
- package/dist/serializableDomainSchema.js.map +1 -1
- package/dist/shared-tree/independentView.d.ts.map +1 -1
- package/dist/shared-tree/independentView.js +2 -2
- package/dist/shared-tree/independentView.js.map +1 -1
- package/dist/shared-tree/schematizingTreeView.d.ts +5 -0
- package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/dist/shared-tree/schematizingTreeView.js +38 -8
- package/dist/shared-tree/schematizingTreeView.js.map +1 -1
- package/dist/shared-tree/sharedTree.d.ts +6 -8
- package/dist/shared-tree/sharedTree.d.ts.map +1 -1
- package/dist/shared-tree/sharedTree.js +6 -8
- package/dist/shared-tree/sharedTree.js.map +1 -1
- package/dist/shared-tree/tree.js +1 -1
- package/dist/shared-tree/tree.js.map +1 -1
- package/dist/shared-tree/treeAlpha.d.ts +20 -28
- package/dist/shared-tree/treeAlpha.d.ts.map +1 -1
- package/dist/shared-tree/treeAlpha.js +6 -31
- package/dist/shared-tree/treeAlpha.js.map +1 -1
- package/dist/simple-tree/api/conciseTree.d.ts +1 -1
- package/dist/simple-tree/api/conciseTree.js.map +1 -1
- package/dist/simple-tree/api/configuration.d.ts +0 -3
- package/dist/simple-tree/api/configuration.d.ts.map +1 -1
- package/dist/simple-tree/api/configuration.js +1 -4
- package/dist/simple-tree/api/configuration.js.map +1 -1
- package/dist/simple-tree/api/customTree.d.ts +7 -7
- package/dist/simple-tree/api/customTree.js +5 -5
- package/dist/simple-tree/api/customTree.js.map +1 -1
- package/dist/simple-tree/api/discrepancies.js +2 -2
- package/dist/simple-tree/api/discrepancies.js.map +1 -1
- package/dist/simple-tree/api/index.d.ts +3 -3
- package/dist/simple-tree/api/index.d.ts.map +1 -1
- package/dist/simple-tree/api/index.js +4 -1
- package/dist/simple-tree/api/index.js.map +1 -1
- package/dist/simple-tree/api/schemaFactory.d.ts +12 -4
- package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactory.js +3 -8
- package/dist/simple-tree/api/schemaFactory.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryAlpha.d.ts +64 -28
- package/dist/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactoryAlpha.js +42 -11
- package/dist/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryBeta.d.ts +13 -2
- package/dist/simple-tree/api/schemaFactoryBeta.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactoryBeta.js +14 -0
- package/dist/simple-tree/api/schemaFactoryBeta.js.map +1 -1
- package/dist/simple-tree/api/schemaStatics.d.ts +9 -14
- package/dist/simple-tree/api/schemaStatics.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaStatics.js +12 -12
- package/dist/simple-tree/api/schemaStatics.js.map +1 -1
- package/dist/simple-tree/api/storedSchema.d.ts +2 -2
- package/dist/simple-tree/api/storedSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/storedSchema.js.map +1 -1
- package/dist/simple-tree/api/tree.d.ts +3 -3
- package/dist/simple-tree/api/tree.js.map +1 -1
- package/dist/simple-tree/api/treeBeta.d.ts +52 -2
- package/dist/simple-tree/api/treeBeta.d.ts.map +1 -1
- package/dist/simple-tree/api/treeBeta.js +37 -2
- package/dist/simple-tree/api/treeBeta.js.map +1 -1
- package/dist/simple-tree/api/treeNodeApi.js +4 -4
- package/dist/simple-tree/api/treeNodeApi.js.map +1 -1
- package/dist/simple-tree/api/typesUnsafe.d.ts +60 -1
- package/dist/simple-tree/api/typesUnsafe.d.ts.map +1 -1
- package/dist/simple-tree/api/typesUnsafe.js.map +1 -1
- package/dist/simple-tree/core/allowedTypes.d.ts +120 -62
- package/dist/simple-tree/core/allowedTypes.d.ts.map +1 -1
- package/dist/simple-tree/core/allowedTypes.js +162 -84
- package/dist/simple-tree/core/allowedTypes.js.map +1 -1
- package/dist/simple-tree/core/context.d.ts +2 -2
- package/dist/simple-tree/core/context.d.ts.map +1 -1
- package/dist/simple-tree/core/context.js.map +1 -1
- package/dist/simple-tree/core/index.d.ts +3 -3
- package/dist/simple-tree/core/index.d.ts.map +1 -1
- package/dist/simple-tree/core/index.js +5 -4
- package/dist/simple-tree/core/index.js.map +1 -1
- package/dist/simple-tree/core/toStored.d.ts +3 -3
- package/dist/simple-tree/core/toStored.d.ts.map +1 -1
- package/dist/simple-tree/core/toStored.js +2 -2
- package/dist/simple-tree/core/toStored.js.map +1 -1
- package/dist/simple-tree/core/treeNode.d.ts +1 -1
- package/dist/simple-tree/core/treeNode.js +1 -1
- package/dist/simple-tree/core/treeNode.js.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.d.ts +7 -11
- package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.js +24 -47
- package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/dist/simple-tree/core/treeNodeSchema.d.ts +3 -3
- package/dist/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeSchema.js.map +1 -1
- package/dist/simple-tree/core/treeNodeValid.d.ts +2 -2
- package/dist/simple-tree/core/treeNodeValid.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeValid.js.map +1 -1
- package/dist/simple-tree/core/walkSchema.d.ts +3 -3
- package/dist/simple-tree/core/walkSchema.d.ts.map +1 -1
- package/dist/simple-tree/core/walkSchema.js +1 -1
- package/dist/simple-tree/core/walkSchema.js.map +1 -1
- package/dist/simple-tree/createContext.js +2 -2
- package/dist/simple-tree/createContext.js.map +1 -1
- package/dist/simple-tree/fieldSchema.d.ts +9 -32
- package/dist/simple-tree/fieldSchema.d.ts.map +1 -1
- package/dist/simple-tree/fieldSchema.js +12 -20
- package/dist/simple-tree/fieldSchema.js.map +1 -1
- package/dist/simple-tree/getTreeNodeForField.js +1 -1
- package/dist/simple-tree/getTreeNodeForField.js.map +1 -1
- package/dist/simple-tree/index.d.ts +4 -4
- package/dist/simple-tree/index.d.ts.map +1 -1
- package/dist/simple-tree/index.js +7 -3
- package/dist/simple-tree/index.js.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNode.d.ts +2 -2
- package/dist/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNode.js +7 -8
- package/dist/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNodeTypes.d.ts +3 -3
- 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.map +1 -1
- package/dist/simple-tree/node-kinds/common.js +2 -2
- package/dist/simple-tree/node-kinds/common.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.map +1 -1
- package/dist/simple-tree/node-kinds/map/mapNode.d.ts +2 -2
- package/dist/simple-tree/node-kinds/map/mapNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/map/mapNode.js +5 -5
- package/dist/simple-tree/node-kinds/map/mapNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/map/mapNodeTypes.d.ts +3 -3
- 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 +2 -2
- 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 +5 -18
- package/dist/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNode.js +8 -18
- package/dist/simple-tree/node-kinds/object/objectNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNodeTypes.d.ts +4 -11
- 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 +3 -3
- package/dist/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/record/recordNode.js +9 -9
- package/dist/simple-tree/node-kinds/record/recordNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/record/recordNodeTypes.d.ts +5 -5
- 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 +39 -7
- package/dist/simple-tree/prepareForInsertion.d.ts.map +1 -1
- package/dist/simple-tree/prepareForInsertion.js +43 -15
- package/dist/simple-tree/prepareForInsertion.js.map +1 -1
- package/dist/simple-tree/toStoredSchema.d.ts +8 -8
- package/dist/simple-tree/toStoredSchema.d.ts.map +1 -1
- package/dist/simple-tree/toStoredSchema.js +5 -5
- package/dist/simple-tree/toStoredSchema.js.map +1 -1
- package/dist/simple-tree/unhydratedFlexTreeFromInsertable.d.ts +2 -2
- package/dist/simple-tree/unhydratedFlexTreeFromInsertable.d.ts.map +1 -1
- package/dist/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -1
- package/dist/simple-tree/unsafeUnknownSchema.d.ts.map +1 -1
- package/dist/simple-tree/unsafeUnknownSchema.js.map +1 -1
- package/dist/simple-tree/walkFieldSchema.js +1 -1
- package/dist/simple-tree/walkFieldSchema.js.map +1 -1
- package/dist/tableSchema.d.ts +19 -19
- package/dist/tableSchema.d.ts.map +1 -1
- package/dist/tableSchema.js +2 -2
- package/dist/tableSchema.js.map +1 -1
- package/lib/alpha.d.ts +18 -13
- package/lib/beta.d.ts +5 -0
- package/lib/feature-libraries/chunked-forest/chunkTree.d.ts +67 -13
- package/lib/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkTree.js +68 -32
- package/lib/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts +5 -5
- package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.d.ts +23 -0
- package/lib/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.d.ts.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.js +11 -0
- package/lib/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/index.d.ts +1 -0
- package/lib/feature-libraries/chunked-forest/codec/index.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/index.js +1 -0
- package/lib/feature-libraries/chunked-forest/codec/index.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.js +3 -2
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/index.d.ts +1 -1
- package/lib/feature-libraries/chunked-forest/index.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/index.js +1 -1
- package/lib/feature-libraries/chunked-forest/index.js.map +1 -1
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts +1 -1
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts +3 -3
- package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.js +3 -3
- package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts +4 -11
- package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.js +2 -6
- package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.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/feature-libraries/treeCursorUtils.d.ts.map +1 -1
- package/lib/feature-libraries/treeCursorUtils.js +17 -15
- package/lib/feature-libraries/treeCursorUtils.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/jsonDomainSchema.d.ts +5 -5
- package/lib/jsonDomainSchema.js +5 -5
- package/lib/jsonDomainSchema.js.map +1 -1
- package/lib/legacy.d.ts +5 -0
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/public.d.ts +1 -0
- package/lib/serializableDomainSchema.d.ts +6 -6
- package/lib/serializableDomainSchema.js +5 -5
- package/lib/serializableDomainSchema.js.map +1 -1
- package/lib/shared-tree/independentView.d.ts.map +1 -1
- package/lib/shared-tree/independentView.js +3 -3
- package/lib/shared-tree/independentView.js.map +1 -1
- package/lib/shared-tree/schematizingTreeView.d.ts +5 -0
- package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/lib/shared-tree/schematizingTreeView.js +41 -11
- package/lib/shared-tree/schematizingTreeView.js.map +1 -1
- package/lib/shared-tree/sharedTree.d.ts +6 -8
- package/lib/shared-tree/sharedTree.d.ts.map +1 -1
- package/lib/shared-tree/sharedTree.js +7 -9
- package/lib/shared-tree/sharedTree.js.map +1 -1
- package/lib/shared-tree/tree.js +2 -2
- package/lib/shared-tree/tree.js.map +1 -1
- package/lib/shared-tree/treeAlpha.d.ts +20 -28
- package/lib/shared-tree/treeAlpha.d.ts.map +1 -1
- package/lib/shared-tree/treeAlpha.js +5 -30
- package/lib/shared-tree/treeAlpha.js.map +1 -1
- package/lib/simple-tree/api/conciseTree.d.ts +1 -1
- package/lib/simple-tree/api/conciseTree.js.map +1 -1
- package/lib/simple-tree/api/configuration.d.ts +0 -3
- package/lib/simple-tree/api/configuration.d.ts.map +1 -1
- package/lib/simple-tree/api/configuration.js +2 -5
- package/lib/simple-tree/api/configuration.js.map +1 -1
- package/lib/simple-tree/api/customTree.d.ts +7 -7
- package/lib/simple-tree/api/customTree.js +5 -5
- package/lib/simple-tree/api/customTree.js.map +1 -1
- package/lib/simple-tree/api/discrepancies.js +3 -3
- package/lib/simple-tree/api/discrepancies.js.map +1 -1
- package/lib/simple-tree/api/index.d.ts +3 -3
- 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/schemaFactory.d.ts +12 -4
- package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactory.js +3 -8
- package/lib/simple-tree/api/schemaFactory.js.map +1 -1
- package/lib/simple-tree/api/schemaFactoryAlpha.d.ts +64 -28
- package/lib/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactoryAlpha.js +43 -12
- package/lib/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
- package/lib/simple-tree/api/schemaFactoryBeta.d.ts +13 -2
- package/lib/simple-tree/api/schemaFactoryBeta.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactoryBeta.js +16 -2
- package/lib/simple-tree/api/schemaFactoryBeta.js.map +1 -1
- package/lib/simple-tree/api/schemaStatics.d.ts +9 -14
- package/lib/simple-tree/api/schemaStatics.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaStatics.js +12 -12
- package/lib/simple-tree/api/schemaStatics.js.map +1 -1
- package/lib/simple-tree/api/storedSchema.d.ts +2 -2
- package/lib/simple-tree/api/storedSchema.d.ts.map +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 +3 -3
- package/lib/simple-tree/api/tree.js.map +1 -1
- package/lib/simple-tree/api/treeBeta.d.ts +52 -2
- package/lib/simple-tree/api/treeBeta.d.ts.map +1 -1
- package/lib/simple-tree/api/treeBeta.js +34 -2
- package/lib/simple-tree/api/treeBeta.js.map +1 -1
- package/lib/simple-tree/api/treeNodeApi.js +5 -5
- package/lib/simple-tree/api/treeNodeApi.js.map +1 -1
- package/lib/simple-tree/api/typesUnsafe.d.ts +60 -1
- package/lib/simple-tree/api/typesUnsafe.d.ts.map +1 -1
- package/lib/simple-tree/api/typesUnsafe.js.map +1 -1
- package/lib/simple-tree/core/allowedTypes.d.ts +120 -62
- package/lib/simple-tree/core/allowedTypes.d.ts.map +1 -1
- package/lib/simple-tree/core/allowedTypes.js +158 -80
- package/lib/simple-tree/core/allowedTypes.js.map +1 -1
- package/lib/simple-tree/core/context.d.ts +2 -2
- package/lib/simple-tree/core/context.d.ts.map +1 -1
- package/lib/simple-tree/core/context.js.map +1 -1
- package/lib/simple-tree/core/index.d.ts +3 -3
- 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/toStored.d.ts +3 -3
- package/lib/simple-tree/core/toStored.d.ts.map +1 -1
- package/lib/simple-tree/core/toStored.js +3 -3
- package/lib/simple-tree/core/toStored.js.map +1 -1
- package/lib/simple-tree/core/treeNode.d.ts +1 -1
- package/lib/simple-tree/core/treeNode.js +1 -1
- package/lib/simple-tree/core/treeNode.js.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.d.ts +7 -11
- package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.js +23 -46
- package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/lib/simple-tree/core/treeNodeSchema.d.ts +3 -3
- package/lib/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeSchema.js.map +1 -1
- package/lib/simple-tree/core/treeNodeValid.d.ts +2 -2
- package/lib/simple-tree/core/treeNodeValid.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeValid.js.map +1 -1
- package/lib/simple-tree/core/walkSchema.d.ts +3 -3
- package/lib/simple-tree/core/walkSchema.d.ts.map +1 -1
- package/lib/simple-tree/core/walkSchema.js +2 -2
- package/lib/simple-tree/core/walkSchema.js.map +1 -1
- package/lib/simple-tree/createContext.js +3 -3
- package/lib/simple-tree/createContext.js.map +1 -1
- package/lib/simple-tree/fieldSchema.d.ts +9 -32
- package/lib/simple-tree/fieldSchema.d.ts.map +1 -1
- package/lib/simple-tree/fieldSchema.js +13 -21
- package/lib/simple-tree/fieldSchema.js.map +1 -1
- package/lib/simple-tree/getTreeNodeForField.js +1 -1
- package/lib/simple-tree/getTreeNodeForField.js.map +1 -1
- package/lib/simple-tree/index.d.ts +4 -4
- 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/node-kinds/array/arrayNode.d.ts +2 -2
- package/lib/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNode.js +8 -9
- package/lib/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNodeTypes.d.ts +3 -3
- package/lib/simple-tree/node-kinds/array/arrayNodeTypes.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNodeTypes.js.map +1 -1
- package/lib/simple-tree/node-kinds/common.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/common.js +3 -3
- package/lib/simple-tree/node-kinds/common.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.map +1 -1
- package/lib/simple-tree/node-kinds/map/mapNode.d.ts +2 -2
- package/lib/simple-tree/node-kinds/map/mapNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/map/mapNode.js +6 -6
- package/lib/simple-tree/node-kinds/map/mapNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/map/mapNodeTypes.d.ts +3 -3
- package/lib/simple-tree/node-kinds/map/mapNodeTypes.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/map/mapNodeTypes.js.map +1 -1
- package/lib/simple-tree/node-kinds/object/index.d.ts +2 -2
- 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 +5 -18
- package/lib/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNode.js +9 -18
- package/lib/simple-tree/node-kinds/object/objectNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNodeTypes.d.ts +4 -11
- package/lib/simple-tree/node-kinds/object/objectNodeTypes.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNodeTypes.js.map +1 -1
- package/lib/simple-tree/node-kinds/record/recordNode.d.ts +3 -3
- package/lib/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/record/recordNode.js +10 -10
- package/lib/simple-tree/node-kinds/record/recordNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/record/recordNodeTypes.d.ts +5 -5
- package/lib/simple-tree/node-kinds/record/recordNodeTypes.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/record/recordNodeTypes.js.map +1 -1
- package/lib/simple-tree/prepareForInsertion.d.ts +39 -7
- package/lib/simple-tree/prepareForInsertion.d.ts.map +1 -1
- package/lib/simple-tree/prepareForInsertion.js +45 -17
- package/lib/simple-tree/prepareForInsertion.js.map +1 -1
- package/lib/simple-tree/toStoredSchema.d.ts +8 -8
- package/lib/simple-tree/toStoredSchema.d.ts.map +1 -1
- package/lib/simple-tree/toStoredSchema.js +5 -5
- package/lib/simple-tree/toStoredSchema.js.map +1 -1
- package/lib/simple-tree/unhydratedFlexTreeFromInsertable.d.ts +2 -2
- package/lib/simple-tree/unhydratedFlexTreeFromInsertable.d.ts.map +1 -1
- package/lib/simple-tree/unhydratedFlexTreeFromInsertable.js +1 -1
- package/lib/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -1
- package/lib/simple-tree/unsafeUnknownSchema.d.ts.map +1 -1
- package/lib/simple-tree/unsafeUnknownSchema.js.map +1 -1
- package/lib/simple-tree/walkFieldSchema.js +1 -1
- package/lib/simple-tree/walkFieldSchema.js.map +1 -1
- package/lib/tableSchema.d.ts +19 -19
- package/lib/tableSchema.d.ts.map +1 -1
- package/lib/tableSchema.js +2 -2
- package/lib/tableSchema.js.map +1 -1
- package/package.json +23 -21
- package/src/feature-libraries/chunked-forest/chunkTree.ts +112 -45
- package/src/feature-libraries/chunked-forest/codec/codecs.ts +4 -9
- package/src/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.ts +33 -0
- package/src/feature-libraries/chunked-forest/codec/index.ts +4 -0
- package/src/feature-libraries/chunked-forest/codec/schemaBasedEncode.ts +4 -7
- package/src/feature-libraries/chunked-forest/index.ts +2 -0
- package/src/feature-libraries/flex-tree/flexTreeTypes.ts +1 -1
- package/src/feature-libraries/forest-summary/forestSummarizer.ts +8 -12
- package/src/feature-libraries/forest-summary/incrementalSummaryBuilder.ts +3 -12
- package/src/feature-libraries/index.ts +2 -0
- package/src/feature-libraries/treeCursorUtils.ts +34 -19
- package/src/index.ts +14 -10
- package/src/jsonDomainSchema.ts +5 -5
- package/src/packageVersion.ts +1 -1
- package/src/serializableDomainSchema.ts +6 -6
- package/src/shared-tree/independentView.ts +3 -0
- package/src/shared-tree/schematizingTreeView.ts +58 -9
- package/src/shared-tree/sharedTree.ts +33 -20
- package/src/shared-tree/tree.ts +2 -2
- package/src/shared-tree/treeAlpha.ts +35 -84
- package/src/simple-tree/api/conciseTree.ts +1 -1
- package/src/simple-tree/api/configuration.ts +3 -7
- package/src/simple-tree/api/customTree.ts +7 -7
- package/src/simple-tree/api/discrepancies.ts +3 -3
- package/src/simple-tree/api/index.ts +17 -2
- package/src/simple-tree/api/schemaFactory.ts +18 -73
- package/src/simple-tree/api/schemaFactoryAlpha.ts +118 -25
- package/src/simple-tree/api/schemaFactoryBeta.ts +76 -1
- package/src/simple-tree/api/schemaStatics.ts +19 -61
- package/src/simple-tree/api/storedSchema.ts +2 -6
- package/src/simple-tree/api/tree.ts +3 -3
- package/src/simple-tree/api/treeBeta.ts +137 -4
- package/src/simple-tree/api/treeNodeApi.ts +5 -5
- package/src/simple-tree/api/typesUnsafe.ts +81 -0
- package/src/simple-tree/core/TreeNodeBinding.md +14 -70
- package/src/simple-tree/core/allowedTypes.ts +355 -159
- package/src/simple-tree/core/context.ts +2 -2
- package/src/simple-tree/core/index.ts +11 -9
- package/src/simple-tree/core/toStored.ts +7 -5
- package/src/simple-tree/core/treeNode.ts +1 -1
- package/src/simple-tree/core/treeNodeKernel.ts +25 -59
- package/src/simple-tree/core/treeNodeSchema.ts +3 -6
- package/src/simple-tree/core/treeNodeValid.ts +2 -2
- package/src/simple-tree/core/walkSchema.ts +9 -5
- package/src/simple-tree/createContext.ts +3 -3
- package/src/simple-tree/fieldSchema.ts +24 -98
- package/src/simple-tree/getTreeNodeForField.ts +1 -1
- package/src/simple-tree/index.ts +19 -11
- package/src/simple-tree/node-kinds/array/arrayNode.ts +12 -17
- package/src/simple-tree/node-kinds/array/arrayNodeTypes.ts +7 -8
- package/src/simple-tree/node-kinds/common.ts +5 -3
- package/src/simple-tree/node-kinds/index.ts +0 -2
- package/src/simple-tree/node-kinds/map/mapNode.ts +8 -16
- package/src/simple-tree/node-kinds/map/mapNodeTypes.ts +7 -8
- package/src/simple-tree/node-kinds/object/index.ts +0 -2
- package/src/simple-tree/node-kinds/object/objectNode.ts +17 -55
- package/src/simple-tree/node-kinds/object/objectNodeTypes.ts +5 -19
- package/src/simple-tree/node-kinds/record/recordNode.ts +16 -23
- package/src/simple-tree/node-kinds/record/recordNodeTypes.ts +7 -11
- package/src/simple-tree/prepareForInsertion.ts +92 -30
- package/src/simple-tree/toStoredSchema.ts +8 -9
- package/src/simple-tree/unhydratedFlexTreeFromInsertable.ts +2 -6
- package/src/simple-tree/unsafeUnknownSchema.ts +2 -3
- package/src/simple-tree/walkFieldSchema.ts +1 -1
- package/src/tableSchema.ts +24 -37
|
@@ -29,8 +29,6 @@ import {
|
|
|
29
29
|
type TreeFieldFromImplicitField,
|
|
30
30
|
type TreeLeafValue,
|
|
31
31
|
type UnsafeUnknownSchema,
|
|
32
|
-
conciseFromCursor,
|
|
33
|
-
type ConciseTree,
|
|
34
32
|
applySchemaToParserOptions,
|
|
35
33
|
cursorFromVerbose,
|
|
36
34
|
verboseFromCursor,
|
|
@@ -46,7 +44,7 @@ import {
|
|
|
46
44
|
unhydratedFlexTreeFromInsertable,
|
|
47
45
|
getOrCreateNodeFromInnerNode,
|
|
48
46
|
getOrCreateNodeFromInnerUnboxedNode,
|
|
49
|
-
|
|
47
|
+
getInnerNode,
|
|
50
48
|
NodeKind,
|
|
51
49
|
tryGetTreeNodeForField,
|
|
52
50
|
isObjectNodeSchema,
|
|
@@ -56,6 +54,10 @@ import {
|
|
|
56
54
|
toUnhydratedSchema,
|
|
57
55
|
type TreeParsingOptions,
|
|
58
56
|
type NodeChangedData,
|
|
57
|
+
type ConciseTree,
|
|
58
|
+
importConcise,
|
|
59
|
+
exportConcise,
|
|
60
|
+
borrowCursorFromTreeNodeOrValue,
|
|
59
61
|
} from "../simple-tree/index.js";
|
|
60
62
|
import { brand, extractFromOpaque, type JsonCompatible } from "../util/index.js";
|
|
61
63
|
import {
|
|
@@ -200,12 +202,12 @@ export interface TreeIdentifierUtils {
|
|
|
200
202
|
* @remarks
|
|
201
203
|
* Use via the {@link (TreeAlpha:variable)} singleton.
|
|
202
204
|
*
|
|
203
|
-
* The unhydrated node creation APIs in this interface do not support {@link
|
|
205
|
+
* The unhydrated node creation APIs in this interface do not support {@link ObjectSchemaOptions.allowUnknownOptionalFields | unknown optional fields}.
|
|
204
206
|
* This is because unknown optional fields still must have a schema: its just that the schema may come from the document's stored schema.
|
|
205
207
|
* Unhydrated nodes created via this interface are not associated with any document, so there is nowhere for them to get schema for unknown optional fields.
|
|
206
208
|
* Note that {@link (TreeBeta:interface).clone} can create an unhydrated node with unknown optional fields, as it uses the source node's stored schema (if any).
|
|
207
209
|
*
|
|
208
|
-
* Export APIs in this interface include {@link
|
|
210
|
+
* Export APIs in this interface include {@link ObjectSchemaOptions.allowUnknownOptionalFields | unknown optional fields}
|
|
209
211
|
* if they are using {@link KeyEncodingOptions.allStoredKeys}.
|
|
210
212
|
*
|
|
211
213
|
* @privateRemarks
|
|
@@ -248,19 +250,7 @@ export interface TreeAlpha {
|
|
|
248
250
|
>;
|
|
249
251
|
|
|
250
252
|
/**
|
|
251
|
-
*
|
|
252
|
-
* @remarks
|
|
253
|
-
* Due to {@link ConciseTree} relying on type inference from the data, its use is somewhat limited.
|
|
254
|
-
* This does not support {@link ConciseTree|ConciseTrees} with customized handle encodings or using persisted keys.
|
|
255
|
-
* Use "compressed" or "verbose" formats for more flexibility.
|
|
256
|
-
*
|
|
257
|
-
* When using this function,
|
|
258
|
-
* it is recommend to ensure your schema is unambiguous with {@link ITreeConfigurationOptions.preventAmbiguity}.
|
|
259
|
-
* If the schema is ambiguous, consider using {@link (TreeAlpha:interface).create} and {@link Unhydrated} nodes where needed,
|
|
260
|
-
* or using {@link (TreeAlpha:interface).(importVerbose:1)} and specify all types.
|
|
261
|
-
*
|
|
262
|
-
* Documented (and thus recoverable) error handling/reporting for this is not yet implemented,
|
|
263
|
-
* but for now most invalid inputs will throw a recoverable error.
|
|
253
|
+
* {@inheritDoc (TreeBeta:interface).importConcise}
|
|
264
254
|
*/
|
|
265
255
|
importConcise<const TSchema extends ImplicitFieldSchema | UnsafeUnknownSchema>(
|
|
266
256
|
schema: UnsafeUnknownSchema extends TSchema
|
|
@@ -273,13 +263,30 @@ export interface TreeAlpha {
|
|
|
273
263
|
: TreeNode | TreeLeafValue | undefined
|
|
274
264
|
>;
|
|
275
265
|
|
|
266
|
+
/**
|
|
267
|
+
* {@inheritDoc (TreeBeta:interface).(exportConcise:1)}
|
|
268
|
+
* @privateRemarks Note: this was retained on this interface because {@link (TreeAlpha:interface).importConcise} exists.
|
|
269
|
+
* It should be removed if/when that is removed from this interface.
|
|
270
|
+
*/
|
|
271
|
+
exportConcise(node: TreeNode | TreeLeafValue, options?: TreeEncodingOptions): ConciseTree;
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* {@inheritDoc (TreeBeta:interface).(exportConcise:2)}
|
|
275
|
+
* @privateRemarks Note: this was retained on this interface because {@link (TreeAlpha:interface).importConcise} exists.
|
|
276
|
+
* It should be removed if/when that is removed from this interface.
|
|
277
|
+
*/
|
|
278
|
+
exportConcise(
|
|
279
|
+
node: TreeNode | TreeLeafValue | undefined,
|
|
280
|
+
options?: TreeEncodingOptions,
|
|
281
|
+
): ConciseTree | undefined;
|
|
282
|
+
|
|
276
283
|
/**
|
|
277
284
|
* Construct tree content compatible with a field defined by the provided `schema`.
|
|
278
285
|
* @param schema - The schema for what to construct. As this is an {@link ImplicitFieldSchema}, a {@link FieldSchema}, {@link TreeNodeSchema} or {@link AllowedTypes} array can be provided.
|
|
279
286
|
* @param data - The data used to construct the field content. See {@link (TreeAlpha:interface).(exportVerbose:1)}.
|
|
280
287
|
* @remarks
|
|
281
288
|
* This currently does not support input containing
|
|
282
|
-
* {@link
|
|
289
|
+
* {@link ObjectSchemaOptions.allowUnknownOptionalFields| unknown optional fields} but does support
|
|
283
290
|
* {@link SchemaStaticsAlpha.staged | staged} allowed types.
|
|
284
291
|
* Non-empty default values for fields are currently not supported (must be provided in the input).
|
|
285
292
|
* The content will be validated against the schema and an error will be thrown if out of schema.
|
|
@@ -290,25 +297,12 @@ export interface TreeAlpha {
|
|
|
290
297
|
options?: TreeParsingOptions,
|
|
291
298
|
): Unhydrated<TreeFieldFromImplicitField<TSchema>>;
|
|
292
299
|
|
|
293
|
-
/**
|
|
294
|
-
* Copy a snapshot of the current version of a TreeNode into a {@link ConciseTree}.
|
|
295
|
-
*/
|
|
296
|
-
exportConcise(node: TreeNode | TreeLeafValue, options?: TreeEncodingOptions): ConciseTree;
|
|
297
|
-
|
|
298
|
-
/**
|
|
299
|
-
* Copy a snapshot of the current version of a TreeNode into a {@link ConciseTree}, allowing undefined.
|
|
300
|
-
*/
|
|
301
|
-
exportConcise(
|
|
302
|
-
node: TreeNode | TreeLeafValue | undefined,
|
|
303
|
-
options?: TreeEncodingOptions,
|
|
304
|
-
): ConciseTree | undefined;
|
|
305
|
-
|
|
306
300
|
/**
|
|
307
301
|
* Copy a snapshot of the current version of a TreeNode into a JSON compatible plain old JavaScript Object (except for {@link @fluidframework/core-interfaces#IFluidHandle|IFluidHandles}).
|
|
308
302
|
* Uses the {@link VerboseTree} format, with an explicit type on every node.
|
|
309
303
|
*
|
|
310
304
|
* @remarks
|
|
311
|
-
* There are several cases this may be preferred to {@link (
|
|
305
|
+
* There are several cases this may be preferred to {@link (TreeBeta:interface).(exportConcise:1)}:
|
|
312
306
|
*
|
|
313
307
|
* 1. When not using {@link ITreeConfigurationOptions.preventAmbiguity} (or when using `useStableFieldKeys`), `exportConcise` can produce ambiguous data (the type may be unclear on some nodes).
|
|
314
308
|
* `exportVerbose` will always be unambiguous and thus lossless.
|
|
@@ -385,7 +379,7 @@ export interface TreeAlpha {
|
|
|
385
379
|
/**
|
|
386
380
|
* Gets the child of the given node with the given property key if a child exists under that key.
|
|
387
381
|
*
|
|
388
|
-
* @remarks {@link
|
|
382
|
+
* @remarks {@link ObjectSchemaOptions.allowUnknownOptionalFields | Unknown optional fields} of Object nodes will not be returned by this method.
|
|
389
383
|
*
|
|
390
384
|
* @param node - The parent node whose child is being requested.
|
|
391
385
|
* @param key - The property key under the node under which the child is being requested.
|
|
@@ -406,7 +400,7 @@ export interface TreeAlpha {
|
|
|
406
400
|
*
|
|
407
401
|
* Optional properties of Object nodes with no value are not included in the result.
|
|
408
402
|
*
|
|
409
|
-
* {@link
|
|
403
|
+
* {@link ObjectSchemaOptions.allowUnknownOptionalFields | Unknown optional fields} of Object nodes are not included in the result.
|
|
410
404
|
*
|
|
411
405
|
* @param node - The node whose children are being requested.
|
|
412
406
|
*
|
|
@@ -767,7 +761,7 @@ export const TreeAlpha: TreeAlpha = {
|
|
|
767
761
|
>;
|
|
768
762
|
},
|
|
769
763
|
|
|
770
|
-
importConcise<TSchema extends ImplicitFieldSchema | UnsafeUnknownSchema>(
|
|
764
|
+
importConcise<const TSchema extends ImplicitFieldSchema | UnsafeUnknownSchema>(
|
|
771
765
|
schema: UnsafeUnknownSchema extends TSchema
|
|
772
766
|
? ImplicitFieldSchema
|
|
773
767
|
: TSchema & ImplicitFieldSchema,
|
|
@@ -777,12 +771,11 @@ export const TreeAlpha: TreeAlpha = {
|
|
|
777
771
|
? TreeFieldFromImplicitField<TSchema>
|
|
778
772
|
: TreeNode | TreeLeafValue | undefined
|
|
779
773
|
> {
|
|
780
|
-
|
|
781
|
-
// Perhaps it should error instead of hydrating nodes for example.
|
|
782
|
-
// For now however, it is a simple wrapper around `create`.
|
|
783
|
-
return this.create(schema, data as InsertableField<TSchema>);
|
|
774
|
+
return importConcise(schema, data);
|
|
784
775
|
},
|
|
785
776
|
|
|
777
|
+
exportConcise,
|
|
778
|
+
|
|
786
779
|
importVerbose<const TSchema extends ImplicitFieldSchema>(
|
|
787
780
|
schema: TSchema,
|
|
788
781
|
data: VerboseTree | undefined,
|
|
@@ -806,8 +799,6 @@ export const TreeAlpha: TreeAlpha = {
|
|
|
806
799
|
);
|
|
807
800
|
},
|
|
808
801
|
|
|
809
|
-
exportConcise,
|
|
810
|
-
|
|
811
802
|
exportVerbose(node: TreeNode | TreeLeafValue, options?: TreeEncodingOptions): VerboseTree {
|
|
812
803
|
if (isTreeValue(node)) {
|
|
813
804
|
return node;
|
|
@@ -890,7 +881,7 @@ export const TreeAlpha: TreeAlpha = {
|
|
|
890
881
|
node: TreeNode,
|
|
891
882
|
propertyKey: string | number,
|
|
892
883
|
): TreeNode | TreeLeafValue | undefined => {
|
|
893
|
-
const flexNode =
|
|
884
|
+
const flexNode = getInnerNode(node);
|
|
894
885
|
debugAssert(
|
|
895
886
|
() => !flexNode.context.isDisposed() || "The provided tree node has been disposed.",
|
|
896
887
|
);
|
|
@@ -960,7 +951,7 @@ export const TreeAlpha: TreeAlpha = {
|
|
|
960
951
|
},
|
|
961
952
|
|
|
962
953
|
children(node: TreeNode): [propertyKey: string | number, child: TreeNode | TreeLeafValue][] {
|
|
963
|
-
const flexNode =
|
|
954
|
+
const flexNode = getInnerNode(node);
|
|
964
955
|
debugAssert(
|
|
965
956
|
() => !flexNode.context.isDisposed() || "The provided tree node has been disposed.",
|
|
966
957
|
);
|
|
@@ -1020,46 +1011,6 @@ export const TreeAlpha: TreeAlpha = {
|
|
|
1020
1011
|
},
|
|
1021
1012
|
};
|
|
1022
1013
|
|
|
1023
|
-
function exportConcise(
|
|
1024
|
-
node: TreeNode | TreeLeafValue,
|
|
1025
|
-
options?: TreeEncodingOptions,
|
|
1026
|
-
): ConciseTree;
|
|
1027
|
-
|
|
1028
|
-
function exportConcise(
|
|
1029
|
-
node: TreeNode | TreeLeafValue | undefined,
|
|
1030
|
-
options?: TreeEncodingOptions,
|
|
1031
|
-
): ConciseTree | undefined;
|
|
1032
|
-
|
|
1033
|
-
function exportConcise(
|
|
1034
|
-
node: TreeNode | TreeLeafValue | undefined,
|
|
1035
|
-
options?: TreeEncodingOptions,
|
|
1036
|
-
): ConciseTree | undefined {
|
|
1037
|
-
if (!isTreeNode(node)) {
|
|
1038
|
-
return node;
|
|
1039
|
-
}
|
|
1040
|
-
const config: TreeEncodingOptions = { ...options };
|
|
1041
|
-
|
|
1042
|
-
const kernel = getKernel(node);
|
|
1043
|
-
const cursor = borrowCursorFromTreeNodeOrValue(node);
|
|
1044
|
-
return conciseFromCursor(cursor, kernel.context, config);
|
|
1045
|
-
}
|
|
1046
|
-
|
|
1047
|
-
/**
|
|
1048
|
-
* Borrow a cursor from a node.
|
|
1049
|
-
* @remarks
|
|
1050
|
-
* The cursor must be put back to its original location before the node is used again.
|
|
1051
|
-
*/
|
|
1052
|
-
function borrowCursorFromTreeNodeOrValue(
|
|
1053
|
-
node: TreeNode | TreeLeafValue,
|
|
1054
|
-
): ITreeCursorSynchronous {
|
|
1055
|
-
if (isTreeValue(node)) {
|
|
1056
|
-
return cursorFromVerbose(node, {});
|
|
1057
|
-
}
|
|
1058
|
-
const kernel = getKernel(node);
|
|
1059
|
-
const cursor = kernel.getOrCreateInnerNode().borrowCursor();
|
|
1060
|
-
return cursor;
|
|
1061
|
-
}
|
|
1062
|
-
|
|
1063
1014
|
/**
|
|
1064
1015
|
* Borrow a cursor from a field.
|
|
1065
1016
|
* @remarks
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
* @privateRemarks
|
|
29
29
|
* This can store all possible simple trees,
|
|
30
30
|
* but it can not store all possible trees representable by our internal representations like FlexTree and JsonableTree.
|
|
31
|
-
* @
|
|
31
|
+
* @beta
|
|
32
32
|
*/
|
|
33
33
|
export type ConciseTree<THandle = IFluidHandle> =
|
|
34
34
|
| Exclude<TreeLeafValue, IFluidHandle>
|
|
@@ -19,10 +19,9 @@ import {
|
|
|
19
19
|
normalizeFieldSchema,
|
|
20
20
|
} from "../fieldSchema.js";
|
|
21
21
|
import {
|
|
22
|
+
type AllowedTypesFullEvaluated,
|
|
22
23
|
NodeKind,
|
|
23
24
|
type TreeNodeSchema,
|
|
24
|
-
isAnnotatedAllowedType,
|
|
25
|
-
evaluateLazySchema,
|
|
26
25
|
markSchemaMostDerived,
|
|
27
26
|
} from "../core/index.js";
|
|
28
27
|
import {
|
|
@@ -165,9 +164,6 @@ export interface ITreeViewConfiguration<
|
|
|
165
164
|
|
|
166
165
|
/**
|
|
167
166
|
* Configuration for {@link ViewableTree.viewWith}.
|
|
168
|
-
* @privateRemarks
|
|
169
|
-
* When `ImplicitAnnotatedFieldSchema` is stabilized, TSchema should be updated to use it.
|
|
170
|
-
* When doing this, the example for `staged` will need to be updated/simplified.
|
|
171
167
|
* @sealed @public
|
|
172
168
|
*/
|
|
173
169
|
export class TreeViewConfiguration<
|
|
@@ -235,9 +231,9 @@ export class TreeViewConfiguration<
|
|
|
235
231
|
debugAssert(() => !definitions.has(schema.identifier));
|
|
236
232
|
definitions.set(schema.identifier, schema as SimpleNodeSchema & TreeNodeSchema);
|
|
237
233
|
},
|
|
238
|
-
allowedTypes({ types }): void {
|
|
234
|
+
allowedTypes({ types }: AllowedTypesFullEvaluated): void {
|
|
239
235
|
checkUnion(
|
|
240
|
-
types.map((t) =>
|
|
236
|
+
types.map((t) => t.type),
|
|
241
237
|
config.preventAmbiguity,
|
|
242
238
|
ambiguityErrors,
|
|
243
239
|
);
|
|
@@ -35,7 +35,7 @@ import { isObjectNodeSchema } from "../node-kinds/index.js";
|
|
|
35
35
|
|
|
36
36
|
/**
|
|
37
37
|
* Options for how to interpret or encode a tree when schema information is available.
|
|
38
|
-
* @
|
|
38
|
+
* @beta
|
|
39
39
|
* @input
|
|
40
40
|
*/
|
|
41
41
|
export interface TreeEncodingOptions<TKeyOptions = KeyEncodingOptions> {
|
|
@@ -44,7 +44,7 @@ export interface TreeEncodingOptions<TKeyOptions = KeyEncodingOptions> {
|
|
|
44
44
|
* @remarks
|
|
45
45
|
* Has no effect on {@link NodeKind}s other than {@link NodeKind.Object}.
|
|
46
46
|
*
|
|
47
|
-
* {@link
|
|
47
|
+
* {@link ObjectSchemaOptions.allowUnknownOptionalFields|Unknown optional field} will be omitted when using property keys.
|
|
48
48
|
* @defaultValue {@link KeyEncodingOptions.usePropertyKeys}.
|
|
49
49
|
*/
|
|
50
50
|
readonly keys?: TKeyOptions;
|
|
@@ -61,7 +61,7 @@ export type TreeParsingOptions = TreeEncodingOptions<
|
|
|
61
61
|
|
|
62
62
|
/**
|
|
63
63
|
* Options for how to encode keys in a tree.
|
|
64
|
-
* @
|
|
64
|
+
* @beta
|
|
65
65
|
* @input
|
|
66
66
|
*/
|
|
67
67
|
export enum KeyEncodingOptions {
|
|
@@ -69,21 +69,21 @@ export enum KeyEncodingOptions {
|
|
|
69
69
|
* Use property keys.
|
|
70
70
|
* @remarks
|
|
71
71
|
* Supported for import and export.
|
|
72
|
-
* {@link
|
|
72
|
+
* {@link ObjectSchemaOptions.allowUnknownOptionalFields|Unknown optional fields} will be omitted when using property keys.
|
|
73
73
|
*/
|
|
74
74
|
usePropertyKeys = "usePropertyKeys",
|
|
75
75
|
/**
|
|
76
|
-
* Use stored keys, and include {@link
|
|
76
|
+
* Use stored keys, and include {@link ObjectSchemaOptions.allowUnknownOptionalFields|Unknown optional fields}.
|
|
77
77
|
* @remarks
|
|
78
78
|
* Currently only supported for export.
|
|
79
79
|
*/
|
|
80
80
|
allStoredKeys = "allStoredKeys",
|
|
81
81
|
/**
|
|
82
|
-
* Use stored keys but do not include {@link
|
|
82
|
+
* Use stored keys but do not include {@link ObjectSchemaOptions.allowUnknownOptionalFields | unknown optional fields}.
|
|
83
83
|
* @remarks
|
|
84
84
|
* Supported for import and export.
|
|
85
85
|
* For export, this omits unknown optional fields.
|
|
86
|
-
* For import, any unexpected fields are errors, regardless of {@link
|
|
86
|
+
* For import, any unexpected fields are errors, regardless of {@link ObjectSchemaOptions.allowUnknownOptionalFields}.
|
|
87
87
|
*/
|
|
88
88
|
knownStoredKeys = "knownStoredKeys",
|
|
89
89
|
}
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
import { brand } from "../../util/index.js";
|
|
25
25
|
import {
|
|
26
26
|
NodeKind,
|
|
27
|
-
|
|
27
|
+
normalizeAndEvaluateAnnotatedAllowedTypes,
|
|
28
28
|
type AnnotatedAllowedType,
|
|
29
29
|
type TreeNodeSchema,
|
|
30
30
|
} from "../core/index.js";
|
|
@@ -237,7 +237,7 @@ function* getNodeDiscrepancies(
|
|
|
237
237
|
}
|
|
238
238
|
|
|
239
239
|
yield* getAllowedTypeDiscrepancies(
|
|
240
|
-
|
|
240
|
+
normalizeAndEvaluateAnnotatedAllowedTypes(view.info).types,
|
|
241
241
|
arrayStoredSchema,
|
|
242
242
|
brand(view.identifier),
|
|
243
243
|
EmptyKey,
|
|
@@ -346,7 +346,7 @@ function* getFieldDiscrepancies(
|
|
|
346
346
|
0xbee /* all field schema should be FieldSchemaAlpha */,
|
|
347
347
|
);
|
|
348
348
|
yield* getAllowedTypeDiscrepancies(
|
|
349
|
-
view.
|
|
349
|
+
view.allowedTypesFull.evaluate().types,
|
|
350
350
|
stored.types,
|
|
351
351
|
identifier,
|
|
352
352
|
fieldKey,
|
|
@@ -28,7 +28,8 @@ export { type SchemaStatics, schemaStatics } from "./schemaStatics.js";
|
|
|
28
28
|
export {
|
|
29
29
|
SchemaFactory,
|
|
30
30
|
type ScopedSchemaName,
|
|
31
|
-
type
|
|
31
|
+
type ObjectSchemaOptionsAlpha,
|
|
32
|
+
type ObjectSchemaOptions,
|
|
32
33
|
type NodeSchemaOptions,
|
|
33
34
|
type NodeSchemaOptionsAlpha,
|
|
34
35
|
type SchemaFactory_base,
|
|
@@ -89,6 +90,13 @@ export type {
|
|
|
89
90
|
MapNodeCustomizableSchemaUnsafe,
|
|
90
91
|
System_Unsafe,
|
|
91
92
|
TreeRecordNodeUnsafe,
|
|
93
|
+
UnannotateAllowedTypeUnsafe,
|
|
94
|
+
AnnotatedAllowedTypeUnsafe,
|
|
95
|
+
AnnotatedAllowedTypesUnsafe,
|
|
96
|
+
AllowedTypesFullUnsafe,
|
|
97
|
+
AllowedTypesFullFromMixedUnsafe,
|
|
98
|
+
UnannotateAllowedTypesListUnsafe,
|
|
99
|
+
AnnotateAllowedTypesListUnsafe,
|
|
92
100
|
} from "./typesUnsafe.js";
|
|
93
101
|
|
|
94
102
|
export {
|
|
@@ -118,7 +126,14 @@ export {
|
|
|
118
126
|
replaceConciseTreeHandles,
|
|
119
127
|
} from "./conciseTree.js";
|
|
120
128
|
|
|
121
|
-
export {
|
|
129
|
+
export {
|
|
130
|
+
borrowCursorFromTreeNodeOrValue,
|
|
131
|
+
exportConcise,
|
|
132
|
+
importConcise,
|
|
133
|
+
type NodeChangedData,
|
|
134
|
+
TreeBeta,
|
|
135
|
+
type TreeChangeEventsBeta,
|
|
136
|
+
} from "./treeBeta.js";
|
|
122
137
|
export { createSimpleTreeIndex, type SimpleTreeIndex } from "./simpleTreeIndex.js";
|
|
123
138
|
export {
|
|
124
139
|
createIdentifierIndex,
|
|
@@ -28,7 +28,6 @@ import type {
|
|
|
28
28
|
TreeNodeSchemaBoth,
|
|
29
29
|
UnhydratedFlexTreeNode,
|
|
30
30
|
NodeSchemaMetadata,
|
|
31
|
-
UnannotateImplicitAllowedTypes,
|
|
32
31
|
ImplicitAllowedTypes,
|
|
33
32
|
InsertableTreeNodeFromImplicitAllowedTypes,
|
|
34
33
|
} from "../core/index.js";
|
|
@@ -51,7 +50,6 @@ import {
|
|
|
51
50
|
type InsertableObjectFromSchemaRecord,
|
|
52
51
|
type TreeMapNode,
|
|
53
52
|
type TreeObjectNode,
|
|
54
|
-
type UnannotateSchemaRecord,
|
|
55
53
|
} from "../node-kinds/index.js";
|
|
56
54
|
import {
|
|
57
55
|
FieldKind,
|
|
@@ -96,13 +94,13 @@ export function schemaFromValue(value: TreeValue): TreeNodeSchema {
|
|
|
96
94
|
}
|
|
97
95
|
|
|
98
96
|
/**
|
|
99
|
-
* Options when declaring an {@link SchemaFactory.object|object node}'s schema
|
|
97
|
+
* Options when declaring an {@link SchemaFactory.object|object node}'s schema.
|
|
100
98
|
*
|
|
101
99
|
* @input
|
|
102
|
-
* @
|
|
100
|
+
* @beta
|
|
103
101
|
*/
|
|
104
|
-
export interface
|
|
105
|
-
extends
|
|
102
|
+
export interface ObjectSchemaOptions<TCustomMetadata = unknown>
|
|
103
|
+
extends NodeSchemaOptions<TCustomMetadata> {
|
|
106
104
|
/**
|
|
107
105
|
* Allow nodes typed with this object node schema to contain optional fields that are not present in the schema declaration.
|
|
108
106
|
* Such nodes can come into existence either via import APIs (see remarks) or by way of collaboration with another client
|
|
@@ -151,12 +149,22 @@ export interface SchemaFactoryObjectOptions<TCustomMetadata = unknown>
|
|
|
151
149
|
readonly allowUnknownOptionalFields?: boolean;
|
|
152
150
|
}
|
|
153
151
|
|
|
152
|
+
/**
|
|
153
|
+
* Options when declaring an {@link SchemaFactory.object|object node}'s schema
|
|
154
|
+
*
|
|
155
|
+
* @input
|
|
156
|
+
* @alpha
|
|
157
|
+
*/
|
|
158
|
+
export interface ObjectSchemaOptionsAlpha<TCustomMetadata = unknown>
|
|
159
|
+
extends ObjectSchemaOptions<TCustomMetadata>,
|
|
160
|
+
NodeSchemaOptionsAlpha<TCustomMetadata> {}
|
|
161
|
+
|
|
154
162
|
/**
|
|
155
163
|
* Default options for Object node schema creation.
|
|
156
164
|
* @remarks Omits parameters that are not relevant for common use cases.
|
|
157
165
|
*/
|
|
158
166
|
export const defaultSchemaFactoryObjectOptions: Required<
|
|
159
|
-
Omit<
|
|
167
|
+
Omit<ObjectSchemaOptionsAlpha, "metadata" | "persistedMetadata">
|
|
160
168
|
> = {
|
|
161
169
|
allowUnknownOptionalFields: false,
|
|
162
170
|
};
|
|
@@ -389,36 +397,12 @@ export class SchemaFactory<
|
|
|
389
397
|
true,
|
|
390
398
|
T
|
|
391
399
|
> {
|
|
392
|
-
|
|
393
|
-
const object: TreeNodeSchemaClass<
|
|
394
|
-
ScopedSchemaName<TScope, Name>,
|
|
395
|
-
NodeKind.Object,
|
|
396
|
-
TreeObjectNode<UnannotateSchemaRecord<T>, ScopedSchemaName<TScope, Name>>,
|
|
397
|
-
object & InsertableObjectFromSchemaRecord<UnannotateSchemaRecord<T>>,
|
|
398
|
-
true,
|
|
399
|
-
T
|
|
400
|
-
> = objectSchema(
|
|
400
|
+
return objectSchema(
|
|
401
401
|
scoped(this, name),
|
|
402
402
|
fields,
|
|
403
403
|
true,
|
|
404
404
|
defaultSchemaFactoryObjectOptions.allowUnknownOptionalFields,
|
|
405
405
|
);
|
|
406
|
-
|
|
407
|
-
return object as TreeNodeSchemaClass<
|
|
408
|
-
ScopedSchemaName<TScope, Name>,
|
|
409
|
-
NodeKind.Object,
|
|
410
|
-
TreeObjectNode<RestrictiveStringRecord<ImplicitFieldSchema>>,
|
|
411
|
-
unknown,
|
|
412
|
-
true,
|
|
413
|
-
T
|
|
414
|
-
> as TreeNodeSchemaClass<
|
|
415
|
-
ScopedSchemaName<TScope, Name>,
|
|
416
|
-
NodeKind.Object,
|
|
417
|
-
TreeObjectNode<T, ScopedSchemaName<TScope, Name>>,
|
|
418
|
-
object & InsertableObjectFromSchemaRecord<T>,
|
|
419
|
-
true,
|
|
420
|
-
T
|
|
421
|
-
>;
|
|
422
406
|
}
|
|
423
407
|
|
|
424
408
|
/**
|
|
@@ -545,17 +529,7 @@ export class SchemaFactory<
|
|
|
545
529
|
T,
|
|
546
530
|
undefined
|
|
547
531
|
> {
|
|
548
|
-
|
|
549
|
-
const map: TreeNodeSchemaBoth<
|
|
550
|
-
ScopedSchemaName<TScope, Name>,
|
|
551
|
-
NodeKind.Map,
|
|
552
|
-
TreeMapNode<UnannotateImplicitAllowedTypes<T>> &
|
|
553
|
-
WithType<ScopedSchemaName<TScope, Name>, NodeKind.Map>,
|
|
554
|
-
MapNodeInsertableData<UnannotateImplicitAllowedTypes<T>>,
|
|
555
|
-
ImplicitlyConstructable,
|
|
556
|
-
T,
|
|
557
|
-
undefined
|
|
558
|
-
> = mapSchema(
|
|
532
|
+
return mapSchema(
|
|
559
533
|
scoped(this, name),
|
|
560
534
|
allowedTypes,
|
|
561
535
|
implicitlyConstructable,
|
|
@@ -563,25 +537,6 @@ export class SchemaFactory<
|
|
|
563
537
|
!customizable,
|
|
564
538
|
undefined,
|
|
565
539
|
);
|
|
566
|
-
|
|
567
|
-
return map as TreeNodeSchemaBoth<
|
|
568
|
-
ScopedSchemaName<TScope, Name>,
|
|
569
|
-
NodeKind.Map,
|
|
570
|
-
TreeMapNode<UnannotateImplicitAllowedTypes<T>> &
|
|
571
|
-
WithType<ScopedSchemaName<TScope, Name>, NodeKind.Map>,
|
|
572
|
-
MapNodeInsertableData<ImplicitAllowedTypes>,
|
|
573
|
-
ImplicitlyConstructable,
|
|
574
|
-
T,
|
|
575
|
-
undefined
|
|
576
|
-
> as TreeNodeSchemaBoth<
|
|
577
|
-
ScopedSchemaName<TScope, Name>,
|
|
578
|
-
NodeKind.Map,
|
|
579
|
-
TreeMapNode<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Map>,
|
|
580
|
-
MapNodeInsertableData<T>,
|
|
581
|
-
ImplicitlyConstructable,
|
|
582
|
-
T,
|
|
583
|
-
undefined
|
|
584
|
-
>;
|
|
585
540
|
}
|
|
586
541
|
|
|
587
542
|
/**
|
|
@@ -757,22 +712,12 @@ export class SchemaFactory<
|
|
|
757
712
|
T,
|
|
758
713
|
undefined
|
|
759
714
|
> {
|
|
760
|
-
|
|
715
|
+
return arraySchema(
|
|
761
716
|
scoped(this, name),
|
|
762
717
|
allowedTypes,
|
|
763
718
|
implicitlyConstructable,
|
|
764
719
|
customizable,
|
|
765
720
|
);
|
|
766
|
-
|
|
767
|
-
return array as TreeNodeSchemaBoth<
|
|
768
|
-
ScopedSchemaName<TScope, Name>,
|
|
769
|
-
NodeKind.Array,
|
|
770
|
-
TreeArrayNode<T> & WithType<ScopedSchemaName<TScope, string>, NodeKind.Array>,
|
|
771
|
-
Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>,
|
|
772
|
-
ImplicitlyConstructable,
|
|
773
|
-
T,
|
|
774
|
-
undefined
|
|
775
|
-
>;
|
|
776
721
|
}
|
|
777
722
|
|
|
778
723
|
/**
|