@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
|
@@ -43,6 +43,11 @@ export interface CommitMetadata {
|
|
|
43
43
|
readonly kind: CommitKind;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
// @beta
|
|
47
|
+
export type ConciseTree<THandle = IFluidHandle> = Exclude<TreeLeafValue, IFluidHandle> | THandle | ConciseTree<THandle>[] | {
|
|
48
|
+
[key: string]: ConciseTree<THandle>;
|
|
49
|
+
};
|
|
50
|
+
|
|
46
51
|
// @beta
|
|
47
52
|
export function configuredSharedTreeBeta(options: SharedTreeOptionsBeta): SharedObjectKind<ITree>;
|
|
48
53
|
|
|
@@ -159,8 +164,10 @@ export type InsertableTreeFieldFromImplicitField<TSchemaInput extends ImplicitFi
|
|
|
159
164
|
|
|
160
165
|
// @public @system
|
|
161
166
|
export type InsertableTreeNodeFromAllowedTypes<TList extends AllowedTypes> = IsUnion<TList> extends true ? never : {
|
|
162
|
-
readonly [Property in keyof TList]: TList[Property] extends
|
|
163
|
-
|
|
167
|
+
readonly [Property in keyof TList]: [TList[Property]] extends [
|
|
168
|
+
LazyItem<infer TSchema extends TreeNodeSchema>
|
|
169
|
+
] ? InsertableTypedNode<TSchema> : never;
|
|
170
|
+
}[NumberKeys<TList>];
|
|
164
171
|
|
|
165
172
|
// @public
|
|
166
173
|
export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes> = [
|
|
@@ -219,6 +226,13 @@ export interface ITreeViewConfiguration<TSchema extends ImplicitFieldSchema = Im
|
|
|
219
226
|
readonly schema: TSchema;
|
|
220
227
|
}
|
|
221
228
|
|
|
229
|
+
// @beta @input
|
|
230
|
+
export enum KeyEncodingOptions {
|
|
231
|
+
allStoredKeys = "allStoredKeys",
|
|
232
|
+
knownStoredKeys = "knownStoredKeys",
|
|
233
|
+
usePropertyKeys = "usePropertyKeys"
|
|
234
|
+
}
|
|
235
|
+
|
|
222
236
|
// @public
|
|
223
237
|
export type LazyItem<Item = unknown> = Item | (() => Item);
|
|
224
238
|
|
|
@@ -278,11 +292,21 @@ export interface NodeSchemaOptions<out TCustomMetadata = unknown> {
|
|
|
278
292
|
readonly metadata?: NodeSchemaMetadata<TCustomMetadata> | undefined;
|
|
279
293
|
}
|
|
280
294
|
|
|
295
|
+
// @public @system
|
|
296
|
+
export type NumberKeys<T, Transformed = {
|
|
297
|
+
readonly [Property in keyof T as number extends Property ? never : Property]: Property;
|
|
298
|
+
}> = Transformed[`${number}` & keyof Transformed];
|
|
299
|
+
|
|
281
300
|
// @public @system
|
|
282
301
|
export type ObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFieldSchema>> = RestrictiveStringRecord<ImplicitFieldSchema> extends T ? {} : {
|
|
283
302
|
-readonly [Property in keyof T]: Property extends string ? TreeFieldFromImplicitField<T[Property]> : unknown;
|
|
284
303
|
};
|
|
285
304
|
|
|
305
|
+
// @beta @input
|
|
306
|
+
export interface ObjectSchemaOptions<TCustomMetadata = unknown> extends NodeSchemaOptions<TCustomMetadata> {
|
|
307
|
+
readonly allowUnknownOptionalFields?: boolean;
|
|
308
|
+
}
|
|
309
|
+
|
|
286
310
|
// @public @deprecated
|
|
287
311
|
export type Off = Off_2;
|
|
288
312
|
|
|
@@ -384,6 +408,9 @@ export const SchemaFactory_base: SchemaStatics & (new () => SchemaStatics);
|
|
|
384
408
|
|
|
385
409
|
// @beta
|
|
386
410
|
export class SchemaFactoryBeta<out TScope extends string | undefined = string | undefined, TName extends number | string = string> extends SchemaFactory<TScope, TName> {
|
|
411
|
+
object<const Name extends TName, const T extends RestrictiveStringRecord<ImplicitFieldSchema>, const TCustomMetadata = unknown>(name: Name, fields: T, options?: ObjectSchemaOptions<TCustomMetadata>): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, TreeObjectNode<T, ScopedSchemaName<TScope, Name>>, object & InsertableObjectFromSchemaRecord<T>, true, T>;
|
|
412
|
+
// (undocumented)
|
|
413
|
+
objectRecursive<const Name extends TName, const T extends RestrictiveStringRecord<System_Unsafe.ImplicitFieldSchemaUnsafe>, const TCustomMetadata = unknown>(name: Name, t: T, options?: ObjectSchemaOptions<TCustomMetadata>): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, System_Unsafe.TreeObjectNodeUnsafe<T, ScopedSchemaName<TScope, Name>>, object & System_Unsafe.InsertableObjectFromSchemaRecordUnsafe<T>, false, T>;
|
|
387
414
|
record<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchemaNonClass<ScopedSchemaName<TScope, `Record<${string}>`>, NodeKind.Record, TreeRecordNode<T> & WithType<ScopedSchemaName<TScope, `Record<${string}>`>, NodeKind.Record>, RecordNodeInsertableData<T>, true, T, undefined>;
|
|
388
415
|
record<const Name extends TName, const T extends ImplicitAllowedTypes>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Record, TreeRecordNode<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Record>, RecordNodeInsertableData<T>, true, T, undefined>;
|
|
389
416
|
recordRecursive<Name extends TName, const T extends System_Unsafe.ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(name: Name, allowedTypes: T, options?: NodeSchemaOptions<TCustomMetadata>): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Record, TreeRecordNodeUnsafe<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Record, unknown>, {
|
|
@@ -555,6 +582,9 @@ export const TreeArrayNode: {
|
|
|
555
582
|
export interface TreeBeta {
|
|
556
583
|
clone<const TSchema extends ImplicitFieldSchema>(node: TreeFieldFromImplicitField<TSchema>): TreeFieldFromImplicitField<TSchema>;
|
|
557
584
|
create<const TSchema extends ImplicitFieldSchema>(schema: TSchema, data: InsertableTreeFieldFromImplicitField<TSchema>): Unhydrated<TreeFieldFromImplicitField<TSchema>>;
|
|
585
|
+
exportConcise(node: TreeNode | TreeLeafValue, options?: TreeEncodingOptions): ConciseTree;
|
|
586
|
+
exportConcise(node: TreeNode | TreeLeafValue | undefined, options?: TreeEncodingOptions): ConciseTree | undefined;
|
|
587
|
+
importConcise<const TSchema extends ImplicitFieldSchema>(schema: TSchema, data: ConciseTree | undefined): Unhydrated<TreeFieldFromImplicitField<TSchema>>;
|
|
558
588
|
on<K extends keyof TreeChangeEventsBeta<TNode>, TNode extends TreeNode>(node: TNode, eventName: K, listener: NoInfer<TreeChangeEventsBeta<TNode>[K]>): () => void;
|
|
559
589
|
}
|
|
560
590
|
|
|
@@ -572,6 +602,11 @@ export interface TreeChangeEventsBeta<TNode extends TreeNode = TreeNode> extends
|
|
|
572
602
|
nodeChanged: (data: NodeChangedData<TNode> & (TNode extends WithType<string, NodeKind.Map | NodeKind.Object | NodeKind.Record> ? Required<Pick<NodeChangedData<TNode>, "changedProperties">> : unknown)) => void;
|
|
573
603
|
}
|
|
574
604
|
|
|
605
|
+
// @beta @input
|
|
606
|
+
export interface TreeEncodingOptions<TKeyOptions = KeyEncodingOptions> {
|
|
607
|
+
readonly keys?: TKeyOptions;
|
|
608
|
+
}
|
|
609
|
+
|
|
575
610
|
// @public
|
|
576
611
|
export type TreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypes<Types>, Kind> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypes<TSchema> : TreeNode | TreeLeafValue | undefined;
|
|
577
612
|
|
|
@@ -43,6 +43,11 @@ export interface CommitMetadata {
|
|
|
43
43
|
readonly kind: CommitKind;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
// @beta
|
|
47
|
+
export type ConciseTree<THandle = IFluidHandle> = Exclude<TreeLeafValue, IFluidHandle> | THandle | ConciseTree<THandle>[] | {
|
|
48
|
+
[key: string]: ConciseTree<THandle>;
|
|
49
|
+
};
|
|
50
|
+
|
|
46
51
|
// @beta
|
|
47
52
|
export function configuredSharedTreeBeta(options: SharedTreeOptionsBeta): SharedObjectKind<ITree>;
|
|
48
53
|
|
|
@@ -162,8 +167,10 @@ export type InsertableTreeFieldFromImplicitField<TSchemaInput extends ImplicitFi
|
|
|
162
167
|
|
|
163
168
|
// @public @system
|
|
164
169
|
export type InsertableTreeNodeFromAllowedTypes<TList extends AllowedTypes> = IsUnion<TList> extends true ? never : {
|
|
165
|
-
readonly [Property in keyof TList]: TList[Property] extends
|
|
166
|
-
|
|
170
|
+
readonly [Property in keyof TList]: [TList[Property]] extends [
|
|
171
|
+
LazyItem<infer TSchema extends TreeNodeSchema>
|
|
172
|
+
] ? InsertableTypedNode<TSchema> : never;
|
|
173
|
+
}[NumberKeys<TList>];
|
|
167
174
|
|
|
168
175
|
// @public
|
|
169
176
|
export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes> = [
|
|
@@ -222,6 +229,13 @@ export interface ITreeViewConfiguration<TSchema extends ImplicitFieldSchema = Im
|
|
|
222
229
|
readonly schema: TSchema;
|
|
223
230
|
}
|
|
224
231
|
|
|
232
|
+
// @beta @input
|
|
233
|
+
export enum KeyEncodingOptions {
|
|
234
|
+
allStoredKeys = "allStoredKeys",
|
|
235
|
+
knownStoredKeys = "knownStoredKeys",
|
|
236
|
+
usePropertyKeys = "usePropertyKeys"
|
|
237
|
+
}
|
|
238
|
+
|
|
225
239
|
// @public
|
|
226
240
|
export type LazyItem<Item = unknown> = Item | (() => Item);
|
|
227
241
|
|
|
@@ -281,11 +295,21 @@ export interface NodeSchemaOptions<out TCustomMetadata = unknown> {
|
|
|
281
295
|
readonly metadata?: NodeSchemaMetadata<TCustomMetadata> | undefined;
|
|
282
296
|
}
|
|
283
297
|
|
|
298
|
+
// @public @system
|
|
299
|
+
export type NumberKeys<T, Transformed = {
|
|
300
|
+
readonly [Property in keyof T as number extends Property ? never : Property]: Property;
|
|
301
|
+
}> = Transformed[`${number}` & keyof Transformed];
|
|
302
|
+
|
|
284
303
|
// @public @system
|
|
285
304
|
export type ObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFieldSchema>> = RestrictiveStringRecord<ImplicitFieldSchema> extends T ? {} : {
|
|
286
305
|
-readonly [Property in keyof T]: Property extends string ? TreeFieldFromImplicitField<T[Property]> : unknown;
|
|
287
306
|
};
|
|
288
307
|
|
|
308
|
+
// @beta @input
|
|
309
|
+
export interface ObjectSchemaOptions<TCustomMetadata = unknown> extends NodeSchemaOptions<TCustomMetadata> {
|
|
310
|
+
readonly allowUnknownOptionalFields?: boolean;
|
|
311
|
+
}
|
|
312
|
+
|
|
289
313
|
// @public @deprecated
|
|
290
314
|
export type Off = Off_2;
|
|
291
315
|
|
|
@@ -387,6 +411,9 @@ export const SchemaFactory_base: SchemaStatics & (new () => SchemaStatics);
|
|
|
387
411
|
|
|
388
412
|
// @beta
|
|
389
413
|
export class SchemaFactoryBeta<out TScope extends string | undefined = string | undefined, TName extends number | string = string> extends SchemaFactory<TScope, TName> {
|
|
414
|
+
object<const Name extends TName, const T extends RestrictiveStringRecord<ImplicitFieldSchema>, const TCustomMetadata = unknown>(name: Name, fields: T, options?: ObjectSchemaOptions<TCustomMetadata>): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, TreeObjectNode<T, ScopedSchemaName<TScope, Name>>, object & InsertableObjectFromSchemaRecord<T>, true, T>;
|
|
415
|
+
// (undocumented)
|
|
416
|
+
objectRecursive<const Name extends TName, const T extends RestrictiveStringRecord<System_Unsafe.ImplicitFieldSchemaUnsafe>, const TCustomMetadata = unknown>(name: Name, t: T, options?: ObjectSchemaOptions<TCustomMetadata>): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, System_Unsafe.TreeObjectNodeUnsafe<T, ScopedSchemaName<TScope, Name>>, object & System_Unsafe.InsertableObjectFromSchemaRecordUnsafe<T>, false, T>;
|
|
390
417
|
record<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchemaNonClass<ScopedSchemaName<TScope, `Record<${string}>`>, NodeKind.Record, TreeRecordNode<T> & WithType<ScopedSchemaName<TScope, `Record<${string}>`>, NodeKind.Record>, RecordNodeInsertableData<T>, true, T, undefined>;
|
|
391
418
|
record<const Name extends TName, const T extends ImplicitAllowedTypes>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Record, TreeRecordNode<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Record>, RecordNodeInsertableData<T>, true, T, undefined>;
|
|
392
419
|
recordRecursive<Name extends TName, const T extends System_Unsafe.ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(name: Name, allowedTypes: T, options?: NodeSchemaOptions<TCustomMetadata>): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Record, TreeRecordNodeUnsafe<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Record, unknown>, {
|
|
@@ -567,6 +594,9 @@ export const TreeArrayNode: {
|
|
|
567
594
|
export interface TreeBeta {
|
|
568
595
|
clone<const TSchema extends ImplicitFieldSchema>(node: TreeFieldFromImplicitField<TSchema>): TreeFieldFromImplicitField<TSchema>;
|
|
569
596
|
create<const TSchema extends ImplicitFieldSchema>(schema: TSchema, data: InsertableTreeFieldFromImplicitField<TSchema>): Unhydrated<TreeFieldFromImplicitField<TSchema>>;
|
|
597
|
+
exportConcise(node: TreeNode | TreeLeafValue, options?: TreeEncodingOptions): ConciseTree;
|
|
598
|
+
exportConcise(node: TreeNode | TreeLeafValue | undefined, options?: TreeEncodingOptions): ConciseTree | undefined;
|
|
599
|
+
importConcise<const TSchema extends ImplicitFieldSchema>(schema: TSchema, data: ConciseTree | undefined): Unhydrated<TreeFieldFromImplicitField<TSchema>>;
|
|
570
600
|
on<K extends keyof TreeChangeEventsBeta<TNode>, TNode extends TreeNode>(node: TNode, eventName: K, listener: NoInfer<TreeChangeEventsBeta<TNode>[K]>): () => void;
|
|
571
601
|
}
|
|
572
602
|
|
|
@@ -584,6 +614,11 @@ export interface TreeChangeEventsBeta<TNode extends TreeNode = TreeNode> extends
|
|
|
584
614
|
nodeChanged: (data: NodeChangedData<TNode> & (TNode extends WithType<string, NodeKind.Map | NodeKind.Object | NodeKind.Record> ? Required<Pick<NodeChangedData<TNode>, "changedProperties">> : unknown)) => void;
|
|
585
615
|
}
|
|
586
616
|
|
|
617
|
+
// @beta @input
|
|
618
|
+
export interface TreeEncodingOptions<TKeyOptions = KeyEncodingOptions> {
|
|
619
|
+
readonly keys?: TKeyOptions;
|
|
620
|
+
}
|
|
621
|
+
|
|
587
622
|
// @public
|
|
588
623
|
export type TreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypes<Types>, Kind> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypes<TSchema> : TreeNode | TreeLeafValue | undefined;
|
|
589
624
|
|
|
@@ -116,8 +116,10 @@ export type InsertableTreeFieldFromImplicitField<TSchemaInput extends ImplicitFi
|
|
|
116
116
|
|
|
117
117
|
// @public @system
|
|
118
118
|
export type InsertableTreeNodeFromAllowedTypes<TList extends AllowedTypes> = IsUnion<TList> extends true ? never : {
|
|
119
|
-
readonly [Property in keyof TList]: TList[Property] extends
|
|
120
|
-
|
|
119
|
+
readonly [Property in keyof TList]: [TList[Property]] extends [
|
|
120
|
+
LazyItem<infer TSchema extends TreeNodeSchema>
|
|
121
|
+
] ? InsertableTypedNode<TSchema> : never;
|
|
122
|
+
}[NumberKeys<TList>];
|
|
121
123
|
|
|
122
124
|
// @public
|
|
123
125
|
export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes> = [
|
|
@@ -230,6 +232,11 @@ export interface NodeSchemaOptions<out TCustomMetadata = unknown> {
|
|
|
230
232
|
readonly metadata?: NodeSchemaMetadata<TCustomMetadata> | undefined;
|
|
231
233
|
}
|
|
232
234
|
|
|
235
|
+
// @public @system
|
|
236
|
+
export type NumberKeys<T, Transformed = {
|
|
237
|
+
readonly [Property in keyof T as number extends Property ? never : Property]: Property;
|
|
238
|
+
}> = Transformed[`${number}` & keyof Transformed];
|
|
239
|
+
|
|
233
240
|
// @public @system
|
|
234
241
|
export type ObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFieldSchema>> = RestrictiveStringRecord<ImplicitFieldSchema> extends T ? {} : {
|
|
235
242
|
-readonly [Property in keyof T]: Property extends string ? TreeFieldFromImplicitField<T[Property]> : unknown;
|
|
@@ -116,8 +116,10 @@ export type InsertableTreeFieldFromImplicitField<TSchemaInput extends ImplicitFi
|
|
|
116
116
|
|
|
117
117
|
// @public @system
|
|
118
118
|
export type InsertableTreeNodeFromAllowedTypes<TList extends AllowedTypes> = IsUnion<TList> extends true ? never : {
|
|
119
|
-
readonly [Property in keyof TList]: TList[Property] extends
|
|
120
|
-
|
|
119
|
+
readonly [Property in keyof TList]: [TList[Property]] extends [
|
|
120
|
+
LazyItem<infer TSchema extends TreeNodeSchema>
|
|
121
|
+
] ? InsertableTypedNode<TSchema> : never;
|
|
122
|
+
}[NumberKeys<TList>];
|
|
121
123
|
|
|
122
124
|
// @public
|
|
123
125
|
export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes> = [
|
|
@@ -230,6 +232,11 @@ export interface NodeSchemaOptions<out TCustomMetadata = unknown> {
|
|
|
230
232
|
readonly metadata?: NodeSchemaMetadata<TCustomMetadata> | undefined;
|
|
231
233
|
}
|
|
232
234
|
|
|
235
|
+
// @public @system
|
|
236
|
+
export type NumberKeys<T, Transformed = {
|
|
237
|
+
readonly [Property in keyof T as number extends Property ? never : Property]: Property;
|
|
238
|
+
}> = Transformed[`${number}` & keyof Transformed];
|
|
239
|
+
|
|
233
240
|
// @public @system
|
|
234
241
|
export type ObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFieldSchema>> = RestrictiveStringRecord<ImplicitFieldSchema> extends T ? {} : {
|
|
235
242
|
-readonly [Property in keyof T]: Property extends string ? TreeFieldFromImplicitField<T[Property]> : unknown;
|
package/dist/alpha.d.ts
CHANGED
|
@@ -46,6 +46,7 @@ export {
|
|
|
46
46
|
NodeKind,
|
|
47
47
|
NodeSchemaMetadata,
|
|
48
48
|
NodeSchemaOptions,
|
|
49
|
+
NumberKeys,
|
|
49
50
|
ObjectFromSchemaRecord,
|
|
50
51
|
Off,
|
|
51
52
|
ReadonlyArrayNode,
|
|
@@ -92,18 +93,22 @@ export {
|
|
|
92
93
|
// #endregion
|
|
93
94
|
|
|
94
95
|
// #region @beta APIs
|
|
96
|
+
ConciseTree,
|
|
95
97
|
ForestOptions,
|
|
96
98
|
ForestType,
|
|
97
99
|
ForestTypeExpensiveDebug,
|
|
98
100
|
ForestTypeOptimized,
|
|
99
101
|
ForestTypeReference,
|
|
102
|
+
KeyEncodingOptions,
|
|
100
103
|
NodeChangedData,
|
|
104
|
+
ObjectSchemaOptions,
|
|
101
105
|
PopUnion,
|
|
102
106
|
RecordNodeInsertableData,
|
|
103
107
|
SchemaFactoryBeta,
|
|
104
108
|
SharedTreeOptionsBeta,
|
|
105
109
|
TreeBeta,
|
|
106
110
|
TreeChangeEventsBeta,
|
|
111
|
+
TreeEncodingOptions,
|
|
107
112
|
TreeRecordNode,
|
|
108
113
|
TreeRecordNodeUnsafe,
|
|
109
114
|
UnionToTuple,
|
|
@@ -115,16 +120,24 @@ export {
|
|
|
115
120
|
|
|
116
121
|
// #region @alpha APIs
|
|
117
122
|
AllowedTypeMetadata,
|
|
123
|
+
AllowedTypesFull,
|
|
124
|
+
AllowedTypesFullEvaluated,
|
|
125
|
+
AllowedTypesFullFromMixed,
|
|
126
|
+
AllowedTypesFullFromMixedUnsafe,
|
|
127
|
+
AllowedTypesFullUnsafe,
|
|
118
128
|
AllowedTypesMetadata,
|
|
129
|
+
AnnotateAllowedTypesList,
|
|
130
|
+
AnnotateAllowedTypesListUnsafe,
|
|
119
131
|
AnnotatedAllowedType,
|
|
132
|
+
AnnotatedAllowedTypeUnsafe,
|
|
120
133
|
AnnotatedAllowedTypes,
|
|
134
|
+
AnnotatedAllowedTypesUnsafe,
|
|
121
135
|
ArrayNodeCustomizableSchema,
|
|
122
136
|
ArrayNodeCustomizableSchemaUnsafe,
|
|
123
137
|
ArrayNodePojoEmulationSchema,
|
|
124
138
|
ArrayNodeSchema,
|
|
125
139
|
BranchableTree,
|
|
126
140
|
CodecWriteOptions,
|
|
127
|
-
ConciseTree,
|
|
128
141
|
DirtyTreeMap,
|
|
129
142
|
DirtyTreeStatus,
|
|
130
143
|
FactoryContent,
|
|
@@ -142,12 +155,9 @@ export {
|
|
|
142
155
|
ICodecOptions,
|
|
143
156
|
ITreeAlpha,
|
|
144
157
|
IdentifierIndex,
|
|
145
|
-
ImplicitAnnotatedAllowedTypes,
|
|
146
|
-
ImplicitAnnotatedFieldSchema,
|
|
147
158
|
Insertable,
|
|
148
159
|
InsertableContent,
|
|
149
160
|
InsertableField,
|
|
150
|
-
InsertableObjectFromAnnotatedSchemaRecord,
|
|
151
161
|
JsonArrayNodeSchema,
|
|
152
162
|
JsonAsTree,
|
|
153
163
|
JsonCompatible,
|
|
@@ -168,14 +178,13 @@ export {
|
|
|
168
178
|
JsonSchemaType,
|
|
169
179
|
JsonStringKeyPatternProperties,
|
|
170
180
|
JsonTreeSchema,
|
|
171
|
-
KeyEncodingOptions,
|
|
172
181
|
MapNodeCustomizableSchema,
|
|
173
182
|
MapNodeCustomizableSchemaUnsafe,
|
|
174
183
|
MapNodePojoEmulationSchema,
|
|
175
184
|
MapNodeSchema,
|
|
176
185
|
NodeSchemaOptionsAlpha,
|
|
177
|
-
NormalizedAnnotatedAllowedTypes,
|
|
178
186
|
ObjectNodeSchema,
|
|
187
|
+
ObjectSchemaOptionsAlpha,
|
|
179
188
|
ObservationResults,
|
|
180
189
|
ReadSchema,
|
|
181
190
|
ReadableField,
|
|
@@ -186,7 +195,6 @@ export {
|
|
|
186
195
|
RevertibleAlphaFactory,
|
|
187
196
|
RunTransactionParams,
|
|
188
197
|
SchemaFactoryAlpha,
|
|
189
|
-
SchemaFactoryObjectOptions,
|
|
190
198
|
SchemaStaticsAlpha,
|
|
191
199
|
SchemaUpgrade,
|
|
192
200
|
SharedTreeFormatOptions,
|
|
@@ -215,7 +223,6 @@ export {
|
|
|
215
223
|
TreeBranchEvents,
|
|
216
224
|
TreeBranchFork,
|
|
217
225
|
TreeCompressionStrategy,
|
|
218
|
-
TreeEncodingOptions,
|
|
219
226
|
TreeIdentifierUtils,
|
|
220
227
|
TreeIndex,
|
|
221
228
|
TreeIndexKey,
|
|
@@ -225,12 +232,9 @@ export {
|
|
|
225
232
|
TreeSchemaEncodingOptions,
|
|
226
233
|
TreeViewAlpha,
|
|
227
234
|
TreeViewConfigurationAlpha,
|
|
228
|
-
|
|
229
|
-
UnannotateAllowedTypes,
|
|
235
|
+
UnannotateAllowedTypeUnsafe,
|
|
230
236
|
UnannotateAllowedTypesList,
|
|
231
|
-
|
|
232
|
-
UnannotateImplicitFieldSchema,
|
|
233
|
-
UnannotateSchemaRecord,
|
|
237
|
+
UnannotateAllowedTypesListUnsafe,
|
|
234
238
|
UnsafeUnknownSchema,
|
|
235
239
|
ValueSchema,
|
|
236
240
|
VerboseTree,
|
|
@@ -252,6 +256,7 @@ export {
|
|
|
252
256
|
getSimpleSchema,
|
|
253
257
|
independentInitializedView,
|
|
254
258
|
independentView,
|
|
259
|
+
normalizeAllowedTypes,
|
|
255
260
|
persistedToSimpleSchema,
|
|
256
261
|
replaceConciseTreeHandles,
|
|
257
262
|
replaceHandles,
|
package/dist/beta.d.ts
CHANGED
|
@@ -46,6 +46,7 @@ export {
|
|
|
46
46
|
NodeKind,
|
|
47
47
|
NodeSchemaMetadata,
|
|
48
48
|
NodeSchemaOptions,
|
|
49
|
+
NumberKeys,
|
|
49
50
|
ObjectFromSchemaRecord,
|
|
50
51
|
Off,
|
|
51
52
|
ReadonlyArrayNode,
|
|
@@ -92,18 +93,22 @@ export {
|
|
|
92
93
|
// #endregion
|
|
93
94
|
|
|
94
95
|
// #region @beta APIs
|
|
96
|
+
ConciseTree,
|
|
95
97
|
ForestOptions,
|
|
96
98
|
ForestType,
|
|
97
99
|
ForestTypeExpensiveDebug,
|
|
98
100
|
ForestTypeOptimized,
|
|
99
101
|
ForestTypeReference,
|
|
102
|
+
KeyEncodingOptions,
|
|
100
103
|
NodeChangedData,
|
|
104
|
+
ObjectSchemaOptions,
|
|
101
105
|
PopUnion,
|
|
102
106
|
RecordNodeInsertableData,
|
|
103
107
|
SchemaFactoryBeta,
|
|
104
108
|
SharedTreeOptionsBeta,
|
|
105
109
|
TreeBeta,
|
|
106
110
|
TreeChangeEventsBeta,
|
|
111
|
+
TreeEncodingOptions,
|
|
107
112
|
TreeRecordNode,
|
|
108
113
|
TreeRecordNodeUnsafe,
|
|
109
114
|
UnionToTuple,
|
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
import type { IIdCompressor } from "@fluidframework/id-compressor";
|
|
6
|
-
import { type FieldKey, type ITreeCursorSynchronous, type
|
|
6
|
+
import { type FieldKey, type ITreeCursorSynchronous, type TreeFieldStoredSchema, type TreeNodeSchemaIdentifier, type TreeStoredSchemaSubscription, type Value, type TreeChunk, type SchemaAndPolicy } from "../../core/index.js";
|
|
7
7
|
import type { FullSchemaPolicy } from "../modular-schema/index.js";
|
|
8
8
|
import { BasicChunk } from "./basicChunk.js";
|
|
9
9
|
import { type FieldShape, TreeShape, UniformChunk } from "./uniformChunk.js";
|
|
10
|
+
import type { IncrementalEncodingPolicy } from "./codec/index.js";
|
|
10
11
|
export interface Disposable {
|
|
11
12
|
/**
|
|
12
13
|
* Cleans up resources used by this, such as inbound event registrations.
|
|
@@ -16,7 +17,7 @@ export interface Disposable {
|
|
|
16
17
|
/**
|
|
17
18
|
* Creates a ChunkPolicy which responds to schema changes.
|
|
18
19
|
*/
|
|
19
|
-
export declare function makeTreeChunker(schema: TreeStoredSchemaSubscription, policy: FullSchemaPolicy): IChunker;
|
|
20
|
+
export declare function makeTreeChunker(schema: TreeStoredSchemaSubscription, policy: FullSchemaPolicy, shouldEncodeIncrementally: IncrementalEncodingPolicy): IChunker;
|
|
20
21
|
/**
|
|
21
22
|
* Extends ChunkPolicy to include stateful details required by ChunkedForest.
|
|
22
23
|
*
|
|
@@ -32,7 +33,7 @@ export interface IChunker extends ChunkPolicy, Disposable {
|
|
|
32
33
|
*
|
|
33
34
|
* @remarks
|
|
34
35
|
* For example, a schema transitively containing a sequence field, optional field, or allowing multiple child types will be Polymorphic.
|
|
35
|
-
* See `
|
|
36
|
+
* See `tryShapeFromNodeSchema` for how to tell if a type is Polymorphic.
|
|
36
37
|
*
|
|
37
38
|
* TODO: cache some of the possible shapes here.
|
|
38
39
|
*/
|
|
@@ -54,7 +55,7 @@ export declare class Chunker implements IChunker {
|
|
|
54
55
|
readonly sequenceChunkSplitThreshold: number;
|
|
55
56
|
readonly sequenceChunkInlineThreshold: number;
|
|
56
57
|
readonly uniformChunkNodeCount: number;
|
|
57
|
-
private readonly
|
|
58
|
+
private readonly tryShapeFromNodeSchema;
|
|
58
59
|
/**
|
|
59
60
|
* Cache for information about possible shapes for types.
|
|
60
61
|
* Corresponds to the version of the schema in `schema`.
|
|
@@ -62,7 +63,7 @@ export declare class Chunker implements IChunker {
|
|
|
62
63
|
*/
|
|
63
64
|
private readonly typeShapes;
|
|
64
65
|
private unregisterSchemaCallback;
|
|
65
|
-
constructor(schema: TreeStoredSchemaSubscription, policy: FullSchemaPolicy, sequenceChunkSplitThreshold: number, sequenceChunkInlineThreshold: number, uniformChunkNodeCount: number,
|
|
66
|
+
constructor(schema: TreeStoredSchemaSubscription, policy: FullSchemaPolicy, sequenceChunkSplitThreshold: number, sequenceChunkInlineThreshold: number, uniformChunkNodeCount: number, tryShapeFromNodeSchema: (type: TreeNodeSchemaIdentifier, shapes: Map<TreeNodeSchemaIdentifier, ShapeInfo>) => ShapeInfo);
|
|
66
67
|
clone(schema: TreeStoredSchemaSubscription): IChunker;
|
|
67
68
|
shapeFromSchema(schema: TreeNodeSchemaIdentifier): ShapeInfo;
|
|
68
69
|
dispose(): void;
|
|
@@ -91,19 +92,63 @@ export declare function chunkFieldSingle(cursor: ITreeCursorSynchronous, policy:
|
|
|
91
92
|
*/
|
|
92
93
|
export declare function basicChunkTree(cursor: ITreeCursorSynchronous, policy: ChunkCompressor): BasicChunk;
|
|
93
94
|
export declare function makePolicy(policy?: Partial<ChunkPolicy>): ChunkPolicy;
|
|
94
|
-
export
|
|
95
|
+
export interface ShapeFromSchemaParameters extends SchemaAndPolicy {
|
|
96
|
+
/**
|
|
97
|
+
* Policy function to determine if a field should be encoded incrementally.
|
|
98
|
+
* Incrementally encoding requires the subtree to not start in the middle of a larger uniform chunk.
|
|
99
|
+
* Thus returning true from this callback indicates that shapes should not be produced which could
|
|
100
|
+
*contain the incremental portion as a part of a larger shape.
|
|
101
|
+
*/
|
|
102
|
+
readonly shouldEncodeIncrementally: IncrementalEncodingPolicy;
|
|
103
|
+
/**
|
|
104
|
+
* A cache for shapes which may be read and/or updated.
|
|
105
|
+
* As the shape is a function of the other members of `ShapeFromSchemaParameters`,
|
|
106
|
+
* it must be replaced or cleared if any of the properties other than this cache are modified.
|
|
107
|
+
*/
|
|
108
|
+
readonly shapes: Map<TreeNodeSchemaIdentifier, ShapeInfo>;
|
|
109
|
+
}
|
|
95
110
|
/**
|
|
96
|
-
*
|
|
111
|
+
* A TreeFieldStoredSchema with some additional context about where it is in the tree.
|
|
112
|
+
*/
|
|
113
|
+
export interface FieldSchemaWithContext {
|
|
114
|
+
/**
|
|
115
|
+
* The identifier of the specific field schema to analyze for shape uniformity.
|
|
116
|
+
*/
|
|
117
|
+
readonly fieldSchema: TreeFieldStoredSchema;
|
|
118
|
+
/**
|
|
119
|
+
* The identifier of the parent node schema containing this field.
|
|
120
|
+
* If undefined, this is a root field.
|
|
121
|
+
*/
|
|
122
|
+
readonly parentNodeSchema?: TreeNodeSchemaIdentifier;
|
|
123
|
+
/**
|
|
124
|
+
* The field key/name used to identify this field within the parent node.
|
|
125
|
+
*/
|
|
126
|
+
readonly key: FieldKey;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Analyzes a tree node schema to determine if it has a single, uniform shape that can be optimized for chunking.
|
|
130
|
+
* If the schema defines a tree structure with a deterministic, fixed shape (no optional fields, no sequences,
|
|
131
|
+
* single child types), returns a TreeShape that can be used for efficient uniform chunking. Otherwise,
|
|
132
|
+
* returns Polymorphic to indicate the shape varies and should use basic chunking.
|
|
133
|
+
*
|
|
134
|
+
* @param context - {@link ShapeFromSchemaParameters}.
|
|
135
|
+
* @param nodeSchema - The identifier of the specific node schema to analyze for shape uniformity.
|
|
136
|
+
* @returns TreeShape if the schema has a uniform shape, or Polymorphic if shape varies.
|
|
97
137
|
*
|
|
98
|
-
*
|
|
138
|
+
* @remarks
|
|
139
|
+
* The determination here is conservative. `shouldEncodeIncrementally` is used to split up shapes so incrementally
|
|
140
|
+
* encoded schema are not part of larger shapes. It also does not tolerate optional or sequence fields, nor does it
|
|
141
|
+
* optimize for patterns of specific values.
|
|
99
142
|
*/
|
|
100
|
-
export declare function
|
|
143
|
+
export declare function tryShapeFromNodeSchema(context: ShapeFromSchemaParameters, nodeSchema: TreeNodeSchemaIdentifier): ShapeInfo;
|
|
101
144
|
/**
|
|
102
|
-
*
|
|
145
|
+
* Same as {@link tryShapeFromNodeSchema} but for fields with {@link FieldSchemaWithContext} instead of a nodeSchema.
|
|
103
146
|
*
|
|
104
|
-
*
|
|
147
|
+
* @param context - {@link ShapeFromFieldSchemaParameters}.
|
|
148
|
+
* @param fieldSchemaWithContext - {@link FieldSchemaWithContext}.
|
|
149
|
+
* @returns FieldShape if the field has a uniform shape, or undefined if the field is polymorphic.
|
|
105
150
|
*/
|
|
106
|
-
export declare function tryShapeFromFieldSchema(
|
|
151
|
+
export declare function tryShapeFromFieldSchema(context: ShapeFromSchemaParameters, fieldSchemaWithContext: FieldSchemaWithContext): FieldShape | undefined;
|
|
107
152
|
/**
|
|
108
153
|
* Default settings for use for {@link ChunkPolicy}.
|
|
109
154
|
* Use `makeTreeChunker` to create a policy with the defaults, but leverages to schema.
|
|
@@ -154,7 +199,16 @@ export interface ChunkCompressor {
|
|
|
154
199
|
*/
|
|
155
200
|
export declare function chunkRange(cursor: ITreeCursorSynchronous, chunkCompressor: ChunkCompressor, length: number, skipLastNavigation: boolean): TreeChunk[];
|
|
156
201
|
/**
|
|
157
|
-
*
|
|
202
|
+
* Extracts values from the current cursor position according to the provided tree shape.
|
|
203
|
+
*
|
|
204
|
+
* Walks through the tree structure defined by the shape, extracting values from leaf nodes
|
|
205
|
+
* and recursively processing child fields. If an ID compressor is provided, compressible
|
|
206
|
+
* string values (stable node identifiers) will be recompressed for optimal storage.
|
|
207
|
+
*
|
|
208
|
+
* @param cursor - Tree cursor positioned at the node to extract values from
|
|
209
|
+
* @param shape - The tree shape defining the structure to extract
|
|
210
|
+
* @param values - Array to append the extracted values to
|
|
211
|
+
* @param idCompressor - Optional compressor used to encode string values that are compressible by the idCompressor for in-memory representation.
|
|
158
212
|
* If the idCompressor is not provided, the values will be the original uncompressed values.
|
|
159
213
|
*/
|
|
160
214
|
export declare function insertValues(cursor: ITreeCursorSynchronous, shape: TreeShape, values: Value[], idCompressor?: IIdCompressor): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunkTree.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/chunked-forest/chunkTree.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,EAEN,KAAK,QAAQ,EACb,KAAK,sBAAsB,EAG3B,KAAK,
|
|
1
|
+
{"version":3,"file":"chunkTree.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/chunked-forest/chunkTree.ts"],"names":[],"mappings":"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"}
|