@fluidframework/tree 2.51.0 → 2.53.0-350190
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vscode/settings.json +0 -1
- package/CHANGELOG.md +43 -0
- package/api-report/tree.alpha.api.md +40 -30
- package/dist/alpha.d.ts +2 -1
- package/dist/codec/codec.d.ts +2 -1
- package/dist/codec/codec.d.ts.map +1 -1
- package/dist/codec/codec.js +4 -3
- package/dist/codec/codec.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +3 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/rebase/index.d.ts +1 -1
- package/dist/core/rebase/index.d.ts.map +1 -1
- package/dist/core/rebase/index.js +2 -1
- package/dist/core/rebase/index.js.map +1 -1
- package/dist/core/rebase/types.d.ts +3 -1
- package/dist/core/rebase/types.d.ts.map +1 -1
- package/dist/core/rebase/types.js +2 -1
- package/dist/core/rebase/types.js.map +1 -1
- package/dist/core/schema-stored/schema.d.ts +1 -23
- package/dist/core/schema-stored/schema.d.ts.map +1 -1
- package/dist/core/schema-stored/schema.js +2 -2
- package/dist/core/schema-stored/schema.js.map +1 -1
- package/dist/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndex.js +2 -3
- package/dist/core/tree/detachedFieldIndex.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecCommon.d.ts +17 -0
- package/dist/core/tree/detachedFieldIndexCodecCommon.d.ts.map +1 -0
- package/dist/core/tree/detachedFieldIndexCodecCommon.js +68 -0
- package/dist/core/tree/detachedFieldIndexCodecCommon.js.map +1 -0
- package/dist/core/tree/detachedFieldIndexCodecV1.d.ts +11 -0
- package/dist/core/tree/detachedFieldIndexCodecV1.d.ts.map +1 -0
- package/dist/core/tree/detachedFieldIndexCodecV1.js +55 -0
- package/dist/core/tree/detachedFieldIndexCodecV1.js.map +1 -0
- package/dist/core/tree/detachedFieldIndexCodecV2.d.ts +11 -0
- package/dist/core/tree/detachedFieldIndexCodecV2.d.ts.map +1 -0
- package/dist/core/tree/detachedFieldIndexCodecV2.js +49 -0
- package/dist/core/tree/detachedFieldIndexCodecV2.js.map +1 -0
- package/dist/core/tree/detachedFieldIndexCodecs.d.ts +11 -0
- package/dist/core/tree/detachedFieldIndexCodecs.d.ts.map +1 -0
- package/dist/core/tree/detachedFieldIndexCodecs.js +26 -0
- package/dist/core/tree/detachedFieldIndexCodecs.js.map +1 -0
- package/dist/core/tree/detachedFieldIndexFormatCommon.d.ts +37 -0
- package/dist/core/tree/detachedFieldIndexFormatCommon.d.ts.map +1 -0
- package/dist/core/tree/{detachedFieldIndexFormat.js → detachedFieldIndexFormatCommon.js} +18 -13
- package/dist/core/tree/detachedFieldIndexFormatCommon.js.map +1 -0
- package/dist/core/tree/detachedFieldIndexFormatV1.d.ts +13 -0
- package/dist/core/tree/detachedFieldIndexFormatV1.d.ts.map +1 -0
- package/dist/core/tree/detachedFieldIndexFormatV1.js +12 -0
- package/dist/core/tree/detachedFieldIndexFormatV1.js.map +1 -0
- package/dist/core/tree/detachedFieldIndexFormatV2.d.ts +14 -0
- package/dist/core/tree/detachedFieldIndexFormatV2.d.ts.map +1 -0
- package/dist/core/tree/detachedFieldIndexFormatV2.js +14 -0
- package/dist/core/tree/detachedFieldIndexFormatV2.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts +9 -9
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js +21 -21
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts +4 -2
- package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js +4 -4
- package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +50 -31
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js +74 -61
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/format.d.ts +20 -14
- package/dist/feature-libraries/chunked-forest/codec/format.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/format.js +18 -12
- package/dist/feature-libraries/chunked-forest/codec/format.js.map +1 -1
- package/{lib/feature-libraries/chunked-forest/codec/nodeShape.d.ts → dist/feature-libraries/chunked-forest/codec/nodeEncoder.d.ts} +20 -14
- package/dist/feature-libraries/chunked-forest/codec/nodeEncoder.d.ts.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/{nodeShape.js → nodeEncoder.js} +23 -17
- package/dist/feature-libraries/chunked-forest/codec/nodeEncoder.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.d.ts +7 -7
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.js +22 -22
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.js +2 -2
- package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts +5 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js +15 -2
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultSchema.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultSchema.js +0 -2
- package/dist/feature-libraries/default-schema/defaultSchema.js.map +1 -1
- package/dist/feature-libraries/default-schema/index.d.ts +1 -1
- package/dist/feature-libraries/default-schema/index.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/index.js +2 -2
- package/dist/feature-libraries/default-schema/index.js.map +1 -1
- package/dist/feature-libraries/default-schema/schemaChecker.d.ts +14 -4
- package/dist/feature-libraries/default-schema/schemaChecker.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/schemaChecker.js +31 -26
- package/dist/feature-libraries/default-schema/schemaChecker.js.map +1 -1
- package/dist/feature-libraries/index.d.ts +1 -2
- package/dist/feature-libraries/index.d.ts.map +1 -1
- package/dist/feature-libraries/index.js +2 -4
- package/dist/feature-libraries/index.js.map +1 -1
- package/dist/feature-libraries/modular-schema/comparison.d.ts +5 -6
- package/dist/feature-libraries/modular-schema/comparison.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/comparison.js +15 -16
- package/dist/feature-libraries/modular-schema/comparison.js.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts +7 -0
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.js +1 -0
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKind.js +1 -0
- package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +9 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js +49 -20
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts +9 -3
- package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
- package/dist/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
- package/dist/feature-libraries/object-forest/objectForest.js +2 -3
- package/dist/feature-libraries/object-forest/objectForest.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalField.js +3 -0
- package/dist/feature-libraries/optional-field/optionalField.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts +1 -0
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js +4 -0
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/jsonDomainSchema.d.ts +5 -3
- package/dist/jsonDomainSchema.d.ts.map +1 -1
- package/dist/jsonDomainSchema.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.d.ts.map +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/shared-tree/independentView.d.ts +8 -0
- package/dist/shared-tree/independentView.d.ts.map +1 -1
- package/dist/shared-tree/independentView.js +23 -11
- package/dist/shared-tree/independentView.js.map +1 -1
- package/dist/shared-tree/schematizeTree.d.ts.map +1 -1
- package/dist/shared-tree/schematizeTree.js +1 -1
- package/dist/shared-tree/schematizeTree.js.map +1 -1
- package/dist/shared-tree/schematizingTreeView.d.ts +0 -1
- package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/dist/shared-tree/schematizingTreeView.js +9 -12
- package/dist/shared-tree/schematizingTreeView.js.map +1 -1
- package/dist/shared-tree/sharedTree.d.ts.map +1 -1
- package/dist/shared-tree/sharedTree.js +1 -29
- package/dist/shared-tree/sharedTree.js.map +1 -1
- package/dist/shared-tree/treeAlpha.d.ts +20 -6
- package/dist/shared-tree/treeAlpha.d.ts.map +1 -1
- package/dist/shared-tree/treeAlpha.js +18 -7
- package/dist/shared-tree/treeAlpha.js.map +1 -1
- package/dist/shared-tree/treeCheckout.d.ts +2 -1
- package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
- package/dist/shared-tree/treeCheckout.js +32 -0
- package/dist/shared-tree/treeCheckout.js.map +1 -1
- package/dist/shared-tree-core/branch.d.ts.map +1 -1
- package/dist/shared-tree-core/branch.js +1 -1
- package/dist/shared-tree-core/branch.js.map +1 -1
- package/dist/simple-tree/api/conciseTree.d.ts +2 -2
- package/dist/simple-tree/api/conciseTree.d.ts.map +1 -1
- package/dist/simple-tree/api/conciseTree.js +6 -6
- package/dist/simple-tree/api/conciseTree.js.map +1 -1
- package/dist/simple-tree/api/configuration.d.ts +11 -2
- package/dist/simple-tree/api/configuration.d.ts.map +1 -1
- package/dist/simple-tree/api/configuration.js +5 -1
- package/dist/simple-tree/api/configuration.js.map +1 -1
- package/dist/simple-tree/api/create.d.ts +8 -7
- package/dist/simple-tree/api/create.d.ts.map +1 -1
- package/dist/simple-tree/api/create.js +33 -23
- package/dist/simple-tree/api/create.js.map +1 -1
- package/dist/simple-tree/api/customTree.d.ts +25 -4
- package/dist/simple-tree/api/customTree.d.ts.map +1 -1
- package/dist/simple-tree/api/customTree.js +42 -16
- package/dist/simple-tree/api/customTree.js.map +1 -1
- package/dist/simple-tree/api/discrepancies.d.ts +94 -0
- package/dist/simple-tree/api/discrepancies.d.ts.map +1 -0
- package/dist/simple-tree/api/discrepancies.js +256 -0
- package/dist/simple-tree/api/discrepancies.js.map +1 -0
- package/dist/simple-tree/api/index.d.ts +3 -2
- package/dist/simple-tree/api/index.d.ts.map +1 -1
- package/dist/simple-tree/api/index.js +3 -2
- package/dist/simple-tree/api/index.js.map +1 -1
- package/dist/simple-tree/api/schemaCompatibilityTester.d.ts +9 -7
- package/dist/simple-tree/api/schemaCompatibilityTester.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaCompatibilityTester.js +17 -117
- package/dist/simple-tree/api/schemaCompatibilityTester.js.map +1 -1
- package/dist/simple-tree/api/schemaFactory.d.ts +16 -159
- package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactory.js +4 -47
- package/dist/simple-tree/api/schemaFactory.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryAlpha.d.ts +157 -16
- package/dist/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactoryAlpha.js +33 -11
- package/dist/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryRecursive.d.ts +1 -3
- package/dist/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactoryRecursive.js +1 -7
- package/dist/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
- package/dist/simple-tree/api/schemaStatics.d.ts +158 -0
- package/dist/simple-tree/api/schemaStatics.d.ts.map +1 -0
- package/dist/simple-tree/api/schemaStatics.js +59 -0
- package/dist/simple-tree/api/schemaStatics.js.map +1 -0
- package/dist/simple-tree/api/storedSchema.d.ts +5 -3
- package/dist/simple-tree/api/storedSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/storedSchema.js +9 -3
- package/dist/simple-tree/api/storedSchema.js.map +1 -1
- package/dist/simple-tree/api/treeBeta.d.ts +2 -2
- package/dist/simple-tree/api/treeBeta.d.ts.map +1 -1
- package/dist/simple-tree/api/treeBeta.js +16 -4
- package/dist/simple-tree/api/treeBeta.js.map +1 -1
- package/dist/simple-tree/api/verboseTree.d.ts +2 -2
- package/dist/simple-tree/api/verboseTree.d.ts.map +1 -1
- package/dist/simple-tree/api/verboseTree.js +15 -15
- package/dist/simple-tree/api/verboseTree.js.map +1 -1
- package/dist/simple-tree/core/allowedTypes.d.ts +43 -11
- package/dist/simple-tree/core/allowedTypes.d.ts.map +1 -1
- package/dist/simple-tree/core/allowedTypes.js +51 -11
- package/dist/simple-tree/core/allowedTypes.js.map +1 -1
- package/dist/simple-tree/core/context.d.ts +13 -2
- package/dist/simple-tree/core/context.d.ts.map +1 -1
- package/dist/simple-tree/core/context.js +22 -9
- package/dist/simple-tree/core/context.js.map +1 -1
- package/dist/simple-tree/core/index.d.ts +6 -4
- package/dist/simple-tree/core/index.d.ts.map +1 -1
- package/dist/simple-tree/core/index.js +8 -1
- package/dist/simple-tree/core/index.js.map +1 -1
- package/dist/simple-tree/core/simpleNodeSchemaBase.d.ts +25 -0
- package/dist/simple-tree/core/simpleNodeSchemaBase.d.ts.map +1 -0
- package/dist/simple-tree/core/simpleNodeSchemaBase.js +7 -0
- package/dist/simple-tree/core/simpleNodeSchemaBase.js.map +1 -0
- package/dist/simple-tree/core/toStored.d.ts +32 -0
- package/dist/simple-tree/core/toStored.d.ts.map +1 -0
- package/dist/simple-tree/core/toStored.js +37 -0
- package/dist/simple-tree/core/toStored.js.map +1 -0
- package/dist/simple-tree/core/treeNodeKernel.d.ts +1 -1
- package/dist/simple-tree/core/treeNodeKernel.js +1 -1
- package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/dist/simple-tree/core/treeNodeSchema.d.ts +7 -2
- 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 +7 -2
- package/dist/simple-tree/core/treeNodeValid.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeValid.js +19 -4
- package/dist/simple-tree/core/treeNodeValid.js.map +1 -1
- package/dist/simple-tree/core/walkSchema.d.ts +22 -5
- package/dist/simple-tree/core/walkSchema.d.ts.map +1 -1
- package/dist/simple-tree/core/walkSchema.js +6 -2
- package/dist/simple-tree/core/walkSchema.js.map +1 -1
- package/dist/simple-tree/createContext.d.ts +2 -0
- package/dist/simple-tree/createContext.d.ts.map +1 -1
- package/dist/simple-tree/createContext.js +4 -2
- package/dist/simple-tree/createContext.js.map +1 -1
- package/dist/simple-tree/fieldSchema.d.ts +1 -0
- package/dist/simple-tree/fieldSchema.d.ts.map +1 -1
- package/dist/simple-tree/fieldSchema.js +2 -1
- package/dist/simple-tree/fieldSchema.js.map +1 -1
- package/dist/simple-tree/index.d.ts +7 -7
- package/dist/simple-tree/index.d.ts.map +1 -1
- package/dist/simple-tree/index.js +13 -8
- package/dist/simple-tree/index.js.map +1 -1
- package/dist/simple-tree/leafNodeSchema.d.ts.map +1 -1
- package/dist/simple-tree/leafNodeSchema.js +1 -0
- package/dist/simple-tree/leafNodeSchema.js.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNode.js +18 -4
- package/dist/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/index.d.ts +1 -1
- package/dist/simple-tree/node-kinds/index.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/index.js +1 -2
- package/dist/simple-tree/node-kinds/index.js.map +1 -1
- package/dist/simple-tree/node-kinds/map/mapNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/map/mapNode.js +9 -2
- package/dist/simple-tree/node-kinds/map/mapNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/object/index.d.ts +1 -1
- package/dist/simple-tree/node-kinds/object/index.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/object/index.js +1 -2
- package/dist/simple-tree/node-kinds/object/index.js.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNode.d.ts +3 -8
- package/dist/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNode.js +41 -44
- package/dist/simple-tree/node-kinds/object/objectNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/record/recordNode.js +9 -2
- package/dist/simple-tree/node-kinds/record/recordNode.js.map +1 -1
- package/dist/simple-tree/prepareForInsertion.d.ts +6 -6
- package/dist/simple-tree/prepareForInsertion.d.ts.map +1 -1
- package/dist/simple-tree/prepareForInsertion.js +19 -13
- package/dist/simple-tree/prepareForInsertion.js.map +1 -1
- package/dist/simple-tree/simpleSchema.d.ts +6 -21
- package/dist/simple-tree/simpleSchema.d.ts.map +1 -1
- package/dist/simple-tree/simpleSchema.js.map +1 -1
- package/dist/simple-tree/toStoredSchema.d.ts +38 -11
- package/dist/simple-tree/toStoredSchema.d.ts.map +1 -1
- package/dist/simple-tree/toStoredSchema.js +71 -33
- 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/walkFieldSchema.d.ts +1 -0
- package/dist/simple-tree/walkFieldSchema.d.ts.map +1 -1
- package/dist/simple-tree/walkFieldSchema.js +1 -0
- package/dist/simple-tree/walkFieldSchema.js.map +1 -1
- package/lib/alpha.d.ts +2 -1
- package/lib/codec/codec.d.ts +2 -1
- package/lib/codec/codec.d.ts.map +1 -1
- package/lib/codec/codec.js +4 -3
- package/lib/codec/codec.js.map +1 -1
- package/lib/core/index.d.ts +1 -1
- package/lib/core/index.d.ts.map +1 -1
- package/lib/core/index.js +1 -1
- package/lib/core/index.js.map +1 -1
- package/lib/core/rebase/index.d.ts +1 -1
- package/lib/core/rebase/index.d.ts.map +1 -1
- package/lib/core/rebase/index.js +1 -1
- package/lib/core/rebase/index.js.map +1 -1
- package/lib/core/rebase/types.d.ts +3 -1
- package/lib/core/rebase/types.d.ts.map +1 -1
- package/lib/core/rebase/types.js +1 -0
- package/lib/core/rebase/types.js.map +1 -1
- package/lib/core/schema-stored/schema.d.ts +1 -23
- package/lib/core/schema-stored/schema.d.ts.map +1 -1
- package/lib/core/schema-stored/schema.js +2 -2
- package/lib/core/schema-stored/schema.js.map +1 -1
- package/lib/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndex.js +2 -3
- package/lib/core/tree/detachedFieldIndex.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecCommon.d.ts +17 -0
- package/lib/core/tree/detachedFieldIndexCodecCommon.d.ts.map +1 -0
- package/lib/core/tree/detachedFieldIndexCodecCommon.js +64 -0
- package/lib/core/tree/detachedFieldIndexCodecCommon.js.map +1 -0
- package/lib/core/tree/detachedFieldIndexCodecV1.d.ts +11 -0
- package/lib/core/tree/detachedFieldIndexCodecV1.d.ts.map +1 -0
- package/lib/core/tree/detachedFieldIndexCodecV1.js +51 -0
- package/lib/core/tree/detachedFieldIndexCodecV1.js.map +1 -0
- package/lib/core/tree/detachedFieldIndexCodecV2.d.ts +11 -0
- package/lib/core/tree/detachedFieldIndexCodecV2.d.ts.map +1 -0
- package/lib/core/tree/detachedFieldIndexCodecV2.js +45 -0
- package/lib/core/tree/detachedFieldIndexCodecV2.js.map +1 -0
- package/lib/core/tree/detachedFieldIndexCodecs.d.ts +11 -0
- package/lib/core/tree/detachedFieldIndexCodecs.d.ts.map +1 -0
- package/lib/core/tree/detachedFieldIndexCodecs.js +21 -0
- package/lib/core/tree/detachedFieldIndexCodecs.js.map +1 -0
- package/lib/core/tree/detachedFieldIndexFormatCommon.d.ts +37 -0
- package/lib/core/tree/detachedFieldIndexFormatCommon.d.ts.map +1 -0
- package/lib/core/tree/{detachedFieldIndexFormat.js → detachedFieldIndexFormatCommon.js} +13 -10
- package/lib/core/tree/detachedFieldIndexFormatCommon.js.map +1 -0
- package/lib/core/tree/detachedFieldIndexFormatV1.d.ts +13 -0
- package/lib/core/tree/detachedFieldIndexFormatV1.d.ts.map +1 -0
- package/lib/core/tree/detachedFieldIndexFormatV1.js +9 -0
- package/lib/core/tree/detachedFieldIndexFormatV1.js.map +1 -0
- package/lib/core/tree/detachedFieldIndexFormatV2.d.ts +14 -0
- package/lib/core/tree/detachedFieldIndexFormatV2.d.ts.map +1 -0
- package/lib/core/tree/detachedFieldIndexFormatV2.js +11 -0
- package/lib/core/tree/detachedFieldIndexFormatV2.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts +9 -9
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js +19 -19
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts +4 -2
- package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js +4 -4
- package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +50 -31
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js +70 -57
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/format.d.ts +20 -14
- package/lib/feature-libraries/chunked-forest/codec/format.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/format.js +17 -11
- package/lib/feature-libraries/chunked-forest/codec/format.js.map +1 -1
- package/{dist/feature-libraries/chunked-forest/codec/nodeShape.d.ts → lib/feature-libraries/chunked-forest/codec/nodeEncoder.d.ts} +20 -14
- package/lib/feature-libraries/chunked-forest/codec/nodeEncoder.d.ts.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/{nodeShape.js → nodeEncoder.js} +21 -15
- package/lib/feature-libraries/chunked-forest/codec/nodeEncoder.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.d.ts +7 -7
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.js +19 -19
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.js +2 -2
- package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts +5 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.js +15 -2
- package/lib/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultSchema.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultSchema.js +0 -2
- package/lib/feature-libraries/default-schema/defaultSchema.js.map +1 -1
- package/lib/feature-libraries/default-schema/index.d.ts +1 -1
- package/lib/feature-libraries/default-schema/index.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/index.js +1 -1
- package/lib/feature-libraries/default-schema/index.js.map +1 -1
- package/lib/feature-libraries/default-schema/schemaChecker.d.ts +14 -4
- package/lib/feature-libraries/default-schema/schemaChecker.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/schemaChecker.js +29 -24
- package/lib/feature-libraries/default-schema/schemaChecker.js.map +1 -1
- package/lib/feature-libraries/index.d.ts +1 -2
- package/lib/feature-libraries/index.d.ts.map +1 -1
- package/lib/feature-libraries/index.js +1 -2
- package/lib/feature-libraries/index.js.map +1 -1
- package/lib/feature-libraries/modular-schema/comparison.d.ts +5 -6
- package/lib/feature-libraries/modular-schema/comparison.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/comparison.js +14 -14
- package/lib/feature-libraries/modular-schema/comparison.js.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +7 -0
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.js +1 -0
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKind.js +1 -0
- package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +9 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js +50 -21
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts +9 -3
- package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
- package/lib/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
- package/lib/feature-libraries/object-forest/objectForest.js +3 -4
- package/lib/feature-libraries/object-forest/objectForest.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalField.js +3 -0
- package/lib/feature-libraries/optional-field/optionalField.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts +1 -0
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js +4 -0
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/jsonDomainSchema.d.ts +5 -3
- package/lib/jsonDomainSchema.d.ts.map +1 -1
- package/lib/jsonDomainSchema.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.d.ts.map +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/shared-tree/independentView.d.ts +8 -0
- package/lib/shared-tree/independentView.d.ts.map +1 -1
- package/lib/shared-tree/independentView.js +21 -10
- package/lib/shared-tree/independentView.js.map +1 -1
- package/lib/shared-tree/schematizeTree.d.ts.map +1 -1
- package/lib/shared-tree/schematizeTree.js +2 -2
- package/lib/shared-tree/schematizeTree.js.map +1 -1
- package/lib/shared-tree/schematizingTreeView.d.ts +0 -1
- package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/lib/shared-tree/schematizingTreeView.js +10 -13
- package/lib/shared-tree/schematizingTreeView.js.map +1 -1
- package/lib/shared-tree/sharedTree.d.ts.map +1 -1
- package/lib/shared-tree/sharedTree.js +2 -30
- package/lib/shared-tree/sharedTree.js.map +1 -1
- package/lib/shared-tree/treeAlpha.d.ts +20 -6
- package/lib/shared-tree/treeAlpha.d.ts.map +1 -1
- package/lib/shared-tree/treeAlpha.js +19 -8
- package/lib/shared-tree/treeAlpha.js.map +1 -1
- package/lib/shared-tree/treeCheckout.d.ts +2 -1
- package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
- package/lib/shared-tree/treeCheckout.js +33 -1
- package/lib/shared-tree/treeCheckout.js.map +1 -1
- package/lib/shared-tree-core/branch.d.ts.map +1 -1
- package/lib/shared-tree-core/branch.js +1 -1
- package/lib/shared-tree-core/branch.js.map +1 -1
- package/lib/simple-tree/api/conciseTree.d.ts +2 -2
- package/lib/simple-tree/api/conciseTree.d.ts.map +1 -1
- package/lib/simple-tree/api/conciseTree.js +6 -6
- package/lib/simple-tree/api/conciseTree.js.map +1 -1
- package/lib/simple-tree/api/configuration.d.ts +11 -2
- package/lib/simple-tree/api/configuration.d.ts.map +1 -1
- package/lib/simple-tree/api/configuration.js +6 -2
- package/lib/simple-tree/api/configuration.js.map +1 -1
- package/lib/simple-tree/api/create.d.ts +8 -7
- package/lib/simple-tree/api/create.d.ts.map +1 -1
- package/lib/simple-tree/api/create.js +35 -25
- package/lib/simple-tree/api/create.js.map +1 -1
- package/lib/simple-tree/api/customTree.d.ts +25 -4
- package/lib/simple-tree/api/customTree.d.ts.map +1 -1
- package/lib/simple-tree/api/customTree.js +43 -17
- package/lib/simple-tree/api/customTree.js.map +1 -1
- package/lib/simple-tree/api/discrepancies.d.ts +94 -0
- package/lib/simple-tree/api/discrepancies.d.ts.map +1 -0
- package/lib/simple-tree/api/discrepancies.js +251 -0
- package/lib/simple-tree/api/discrepancies.js.map +1 -0
- package/lib/simple-tree/api/index.d.ts +3 -2
- package/lib/simple-tree/api/index.d.ts.map +1 -1
- package/lib/simple-tree/api/index.js +2 -1
- package/lib/simple-tree/api/index.js.map +1 -1
- package/lib/simple-tree/api/schemaCompatibilityTester.d.ts +9 -7
- package/lib/simple-tree/api/schemaCompatibilityTester.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaCompatibilityTester.js +19 -119
- package/lib/simple-tree/api/schemaCompatibilityTester.js.map +1 -1
- package/lib/simple-tree/api/schemaFactory.d.ts +16 -159
- package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactory.js +2 -45
- package/lib/simple-tree/api/schemaFactory.js.map +1 -1
- package/lib/simple-tree/api/schemaFactoryAlpha.d.ts +157 -16
- package/lib/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactoryAlpha.js +23 -1
- package/lib/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
- package/lib/simple-tree/api/schemaFactoryRecursive.d.ts +1 -3
- package/lib/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactoryRecursive.js +0 -5
- package/lib/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
- package/lib/simple-tree/api/schemaStatics.d.ts +158 -0
- package/lib/simple-tree/api/schemaStatics.d.ts.map +1 -0
- package/lib/simple-tree/api/schemaStatics.js +56 -0
- package/lib/simple-tree/api/schemaStatics.js.map +1 -0
- package/lib/simple-tree/api/storedSchema.d.ts +5 -3
- package/lib/simple-tree/api/storedSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/storedSchema.js +12 -6
- package/lib/simple-tree/api/storedSchema.js.map +1 -1
- package/lib/simple-tree/api/treeBeta.d.ts +2 -2
- package/lib/simple-tree/api/treeBeta.d.ts.map +1 -1
- package/lib/simple-tree/api/treeBeta.js +14 -2
- package/lib/simple-tree/api/treeBeta.js.map +1 -1
- package/lib/simple-tree/api/verboseTree.d.ts +2 -2
- package/lib/simple-tree/api/verboseTree.d.ts.map +1 -1
- package/lib/simple-tree/api/verboseTree.js +9 -9
- package/lib/simple-tree/api/verboseTree.js.map +1 -1
- package/lib/simple-tree/core/allowedTypes.d.ts +43 -11
- package/lib/simple-tree/core/allowedTypes.d.ts.map +1 -1
- package/lib/simple-tree/core/allowedTypes.js +52 -11
- package/lib/simple-tree/core/allowedTypes.js.map +1 -1
- package/lib/simple-tree/core/context.d.ts +13 -2
- package/lib/simple-tree/core/context.d.ts.map +1 -1
- package/lib/simple-tree/core/context.js +22 -9
- package/lib/simple-tree/core/context.js.map +1 -1
- package/lib/simple-tree/core/index.d.ts +6 -4
- package/lib/simple-tree/core/index.d.ts.map +1 -1
- package/lib/simple-tree/core/index.js +4 -3
- package/lib/simple-tree/core/index.js.map +1 -1
- package/lib/simple-tree/core/simpleNodeSchemaBase.d.ts +25 -0
- package/lib/simple-tree/core/simpleNodeSchemaBase.d.ts.map +1 -0
- package/lib/simple-tree/core/simpleNodeSchemaBase.js +6 -0
- package/lib/simple-tree/core/simpleNodeSchemaBase.js.map +1 -0
- package/lib/simple-tree/core/toStored.d.ts +32 -0
- package/lib/simple-tree/core/toStored.d.ts.map +1 -0
- package/lib/simple-tree/core/toStored.js +32 -0
- package/lib/simple-tree/core/toStored.js.map +1 -0
- package/lib/simple-tree/core/treeNodeKernel.d.ts +1 -1
- package/lib/simple-tree/core/treeNodeKernel.js +1 -1
- package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/lib/simple-tree/core/treeNodeSchema.d.ts +7 -2
- 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 +7 -2
- package/lib/simple-tree/core/treeNodeValid.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeValid.js +17 -3
- package/lib/simple-tree/core/treeNodeValid.js.map +1 -1
- package/lib/simple-tree/core/walkSchema.d.ts +22 -5
- package/lib/simple-tree/core/walkSchema.d.ts.map +1 -1
- package/lib/simple-tree/core/walkSchema.js +6 -2
- package/lib/simple-tree/core/walkSchema.js.map +1 -1
- package/lib/simple-tree/createContext.d.ts +2 -0
- package/lib/simple-tree/createContext.d.ts.map +1 -1
- package/lib/simple-tree/createContext.js +5 -3
- package/lib/simple-tree/createContext.js.map +1 -1
- package/lib/simple-tree/fieldSchema.d.ts +1 -0
- package/lib/simple-tree/fieldSchema.d.ts.map +1 -1
- package/lib/simple-tree/fieldSchema.js +2 -1
- package/lib/simple-tree/fieldSchema.js.map +1 -1
- package/lib/simple-tree/index.d.ts +7 -7
- package/lib/simple-tree/index.d.ts.map +1 -1
- package/lib/simple-tree/index.js +5 -5
- package/lib/simple-tree/index.js.map +1 -1
- package/lib/simple-tree/leafNodeSchema.d.ts.map +1 -1
- package/lib/simple-tree/leafNodeSchema.js +2 -1
- package/lib/simple-tree/leafNodeSchema.js.map +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNode.js +21 -7
- package/lib/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/index.d.ts +1 -1
- package/lib/simple-tree/node-kinds/index.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/index.js +1 -1
- package/lib/simple-tree/node-kinds/index.js.map +1 -1
- package/lib/simple-tree/node-kinds/map/mapNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/map/mapNode.js +12 -5
- package/lib/simple-tree/node-kinds/map/mapNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/object/index.d.ts +1 -1
- package/lib/simple-tree/node-kinds/object/index.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/object/index.js +1 -1
- package/lib/simple-tree/node-kinds/object/index.js.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNode.d.ts +3 -8
- package/lib/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNode.js +19 -21
- package/lib/simple-tree/node-kinds/object/objectNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/record/recordNode.js +12 -5
- package/lib/simple-tree/node-kinds/record/recordNode.js.map +1 -1
- package/lib/simple-tree/prepareForInsertion.d.ts +6 -6
- package/lib/simple-tree/prepareForInsertion.d.ts.map +1 -1
- package/lib/simple-tree/prepareForInsertion.js +21 -15
- package/lib/simple-tree/prepareForInsertion.js.map +1 -1
- package/lib/simple-tree/simpleSchema.d.ts +6 -21
- package/lib/simple-tree/simpleSchema.d.ts.map +1 -1
- package/lib/simple-tree/simpleSchema.js.map +1 -1
- package/lib/simple-tree/toStoredSchema.d.ts +38 -11
- package/lib/simple-tree/toStoredSchema.d.ts.map +1 -1
- package/lib/simple-tree/toStoredSchema.js +70 -34
- 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/walkFieldSchema.d.ts +1 -0
- package/lib/simple-tree/walkFieldSchema.d.ts.map +1 -1
- package/lib/simple-tree/walkFieldSchema.js +1 -0
- package/lib/simple-tree/walkFieldSchema.js.map +1 -1
- package/package.json +23 -23
- package/src/codec/codec.ts +4 -3
- package/src/core/index.ts +2 -0
- package/src/core/rebase/index.ts +2 -0
- package/src/core/rebase/types.ts +4 -0
- package/src/core/schema-stored/schema.ts +2 -26
- package/src/core/tree/detachedFieldIndex.ts +4 -6
- package/src/core/tree/detachedFieldIndexCodecCommon.ts +87 -0
- package/src/core/tree/{detachedFieldIndexCodec.ts → detachedFieldIndexCodecV1.ts} +22 -68
- package/src/core/tree/detachedFieldIndexCodecV2.ts +72 -0
- package/src/core/tree/detachedFieldIndexCodecs.ts +44 -0
- package/src/core/tree/{detachedFieldIndexFormat.ts → detachedFieldIndexFormatCommon.ts} +32 -23
- package/src/core/tree/detachedFieldIndexFormatV1.ts +15 -0
- package/src/core/tree/detachedFieldIndexFormatV2.ts +17 -0
- package/src/feature-libraries/chunked-forest/codec/README.md +1 -1
- package/src/feature-libraries/chunked-forest/codec/chunkDecoding.ts +25 -25
- package/src/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.ts +10 -6
- package/src/feature-libraries/chunked-forest/codec/compressedEncode.ts +96 -73
- package/src/feature-libraries/chunked-forest/codec/format.ts +20 -14
- package/src/feature-libraries/chunked-forest/codec/{nodeShape.ts → nodeEncoder.ts} +23 -17
- package/src/feature-libraries/chunked-forest/codec/schemaBasedEncode.ts +34 -34
- package/src/feature-libraries/chunked-forest/codec/uncompressedEncode.ts +5 -5
- package/src/feature-libraries/default-schema/defaultFieldKinds.ts +11 -0
- package/src/feature-libraries/default-schema/defaultSchema.ts +0 -2
- package/src/feature-libraries/default-schema/index.ts +1 -1
- package/src/feature-libraries/default-schema/schemaChecker.ts +47 -30
- package/src/feature-libraries/index.ts +1 -3
- package/src/feature-libraries/modular-schema/comparison.ts +14 -29
- package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +9 -0
- package/src/feature-libraries/modular-schema/genericFieldKind.ts +1 -0
- package/src/feature-libraries/modular-schema/modularChangeFamily.ts +61 -19
- package/src/feature-libraries/object-forest/objectForest.ts +10 -6
- package/src/feature-libraries/optional-field/optionalField.ts +4 -0
- package/src/feature-libraries/sequence-field/sequenceFieldChangeRebaser.ts +4 -0
- package/src/index.ts +7 -1
- package/src/jsonDomainSchema.ts +4 -0
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/independentView.ts +45 -19
- package/src/shared-tree/schematizeTree.ts +2 -2
- package/src/shared-tree/schematizingTreeView.ts +24 -15
- package/src/shared-tree/sharedTree.ts +2 -42
- package/src/shared-tree/treeAlpha.ts +48 -22
- package/src/shared-tree/treeCheckout.ts +54 -10
- package/src/shared-tree-core/branch.ts +1 -6
- package/src/simple-tree/api/conciseTree.ts +9 -7
- package/src/simple-tree/api/configuration.ts +18 -4
- package/src/simple-tree/api/create.ts +44 -36
- package/src/simple-tree/api/customTree.ts +59 -20
- package/src/simple-tree/api/discrepancies.ts +474 -0
- package/src/simple-tree/api/index.ts +2 -3
- package/src/simple-tree/api/schemaCompatibilityTester.ts +23 -151
- package/src/simple-tree/api/schemaFactory.ts +13 -254
- package/src/simple-tree/api/schemaFactoryAlpha.ts +174 -1
- package/src/simple-tree/api/schemaFactoryRecursive.ts +1 -25
- package/src/simple-tree/api/schemaStatics.ts +291 -0
- package/src/simple-tree/api/storedSchema.ts +18 -14
- package/src/simple-tree/api/treeBeta.ts +24 -4
- package/src/simple-tree/api/verboseTree.ts +17 -8
- package/src/simple-tree/core/allowedTypes.ts +87 -34
- package/src/simple-tree/core/context.ts +24 -22
- package/src/simple-tree/core/index.ts +11 -2
- package/src/simple-tree/core/simpleNodeSchemaBase.ts +30 -0
- package/src/simple-tree/core/toStored.ts +58 -0
- package/src/simple-tree/core/treeNodeKernel.ts +1 -1
- package/src/simple-tree/core/treeNodeSchema.ts +8 -2
- package/src/simple-tree/core/treeNodeValid.ts +23 -4
- package/src/simple-tree/core/walkSchema.ts +26 -6
- package/src/simple-tree/createContext.ts +11 -3
- package/src/simple-tree/fieldSchema.ts +3 -1
- package/src/simple-tree/index.ts +19 -13
- package/src/simple-tree/leafNodeSchema.ts +2 -1
- package/src/simple-tree/node-kinds/array/arrayNode.ts +64 -23
- package/src/simple-tree/node-kinds/index.ts +0 -1
- package/src/simple-tree/node-kinds/map/mapNode.ts +23 -2
- package/src/simple-tree/node-kinds/object/index.ts +0 -1
- package/src/simple-tree/node-kinds/object/objectNode.ts +42 -30
- package/src/simple-tree/node-kinds/record/recordNode.ts +20 -2
- package/src/simple-tree/prepareForInsertion.ts +28 -15
- package/src/simple-tree/simpleSchema.ts +6 -26
- package/src/simple-tree/toStoredSchema.ts +110 -44
- package/src/simple-tree/unhydratedFlexTreeFromInsertable.ts +6 -2
- package/src/simple-tree/walkFieldSchema.ts +1 -0
- package/dist/core/tree/detachedFieldIndexCodec.d.ts +0 -11
- package/dist/core/tree/detachedFieldIndexCodec.d.ts.map +0 -1
- package/dist/core/tree/detachedFieldIndexCodec.js +0 -100
- package/dist/core/tree/detachedFieldIndexCodec.js.map +0 -1
- package/dist/core/tree/detachedFieldIndexFormat.d.ts +0 -33
- package/dist/core/tree/detachedFieldIndexFormat.d.ts.map +0 -1
- package/dist/core/tree/detachedFieldIndexFormat.js.map +0 -1
- package/dist/feature-libraries/chunked-forest/codec/nodeShape.d.ts.map +0 -1
- package/dist/feature-libraries/chunked-forest/codec/nodeShape.js.map +0 -1
- package/dist/feature-libraries/initializeForest.d.ts +0 -18
- package/dist/feature-libraries/initializeForest.d.ts.map +0 -1
- package/dist/feature-libraries/initializeForest.js +0 -35
- package/dist/feature-libraries/initializeForest.js.map +0 -1
- package/dist/simple-tree/discrepancies.d.ts +0 -167
- package/dist/simple-tree/discrepancies.d.ts.map +0 -1
- package/dist/simple-tree/discrepancies.js +0 -382
- package/dist/simple-tree/discrepancies.js.map +0 -1
- package/lib/core/tree/detachedFieldIndexCodec.d.ts +0 -11
- package/lib/core/tree/detachedFieldIndexCodec.d.ts.map +0 -1
- package/lib/core/tree/detachedFieldIndexCodec.js +0 -96
- package/lib/core/tree/detachedFieldIndexCodec.js.map +0 -1
- package/lib/core/tree/detachedFieldIndexFormat.d.ts +0 -33
- package/lib/core/tree/detachedFieldIndexFormat.d.ts.map +0 -1
- package/lib/core/tree/detachedFieldIndexFormat.js.map +0 -1
- package/lib/feature-libraries/chunked-forest/codec/nodeShape.d.ts.map +0 -1
- package/lib/feature-libraries/chunked-forest/codec/nodeShape.js.map +0 -1
- package/lib/feature-libraries/initializeForest.d.ts +0 -18
- package/lib/feature-libraries/initializeForest.d.ts.map +0 -1
- package/lib/feature-libraries/initializeForest.js +0 -31
- package/lib/feature-libraries/initializeForest.js.map +0 -1
- package/lib/simple-tree/discrepancies.d.ts +0 -167
- package/lib/simple-tree/discrepancies.d.ts.map +0 -1
- package/lib/simple-tree/discrepancies.js +0 -376
- package/lib/simple-tree/discrepancies.js.map +0 -1
- package/src/feature-libraries/initializeForest.ts +0 -55
- package/src/simple-tree/discrepancies.ts +0 -648
|
@@ -39,6 +39,7 @@ import {
|
|
|
39
39
|
newChangeAtomIdRangeMap,
|
|
40
40
|
type DeltaDetachedNodeChanges,
|
|
41
41
|
type DeltaDetachedNodeRename,
|
|
42
|
+
mapTaggedChange,
|
|
42
43
|
} from "../../core/index.js";
|
|
43
44
|
import {
|
|
44
45
|
type IdAllocationState,
|
|
@@ -213,24 +214,16 @@ export class ModularChangeFamily
|
|
|
213
214
|
}
|
|
214
215
|
|
|
215
216
|
private composeAllFields(
|
|
216
|
-
|
|
217
|
-
|
|
217
|
+
potentiallyConflictedChange1: ModularChangeset,
|
|
218
|
+
potentiallyConflictedChange2: ModularChangeset,
|
|
218
219
|
revInfos: RevisionInfo[],
|
|
219
220
|
idState: IdAllocationState,
|
|
220
221
|
): ModularChangesetContent {
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
nodeAliases: newTupleBTree(),
|
|
227
|
-
crossFieldKeys: newCrossFieldKeyTable(),
|
|
228
|
-
};
|
|
229
|
-
} else if (hasConflicts(change1)) {
|
|
230
|
-
return change2;
|
|
231
|
-
} else if (hasConflicts(change2)) {
|
|
232
|
-
return change1;
|
|
233
|
-
}
|
|
222
|
+
// Our current cell ordering scheme in sequences depends on being able to rebase over a change with conflicts.
|
|
223
|
+
// This means that compose must preserve declarations (e.g., new cells) made by conflicted changes (so that we can rebase over the composition).
|
|
224
|
+
// TODO: remove once AB#46104 is completed
|
|
225
|
+
const change1 = this.getEffectiveChange(potentiallyConflictedChange1);
|
|
226
|
+
const change2 = this.getEffectiveChange(potentiallyConflictedChange2);
|
|
234
227
|
|
|
235
228
|
const genId: IdAllocator = idAllocatorFromState(idState);
|
|
236
229
|
const revisionMetadata: RevisionMetadataSource = revisionMetadataSourceFromInfo(revInfos);
|
|
@@ -857,12 +850,17 @@ export class ModularChangeFamily
|
|
|
857
850
|
|
|
858
851
|
public rebase(
|
|
859
852
|
taggedChange: TaggedChange<ModularChangeset>,
|
|
860
|
-
|
|
853
|
+
potentiallyConflictedOver: TaggedChange<ModularChangeset>,
|
|
861
854
|
revisionMetadata: RevisionMetadataSource,
|
|
862
855
|
): ModularChangeset {
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
856
|
+
// Our current cell ordering scheme in sequences depends on being able to rebase over a change with conflicts.
|
|
857
|
+
// This means that we must rebase over a muted version of the conflicted changeset.
|
|
858
|
+
// That is, a version that includes its declarations (e.g., new cells) but not its changes.
|
|
859
|
+
// TODO: remove once AB#46104 is completed
|
|
860
|
+
const over = mapTaggedChange(
|
|
861
|
+
potentiallyConflictedOver,
|
|
862
|
+
this.getEffectiveChange(potentiallyConflictedOver.change),
|
|
863
|
+
);
|
|
866
864
|
|
|
867
865
|
const change = taggedChange.change;
|
|
868
866
|
const maxId = Math.max(change.maxId ?? -1, over.change.maxId ?? -1);
|
|
@@ -1711,6 +1709,50 @@ export class ModularChangeFamily
|
|
|
1711
1709
|
|
|
1712
1710
|
return numChildren;
|
|
1713
1711
|
}
|
|
1712
|
+
|
|
1713
|
+
private getEffectiveChange(change: ModularChangeset): ModularChangeset {
|
|
1714
|
+
if (hasConflicts(change)) {
|
|
1715
|
+
return this.muteChange(change);
|
|
1716
|
+
}
|
|
1717
|
+
return change;
|
|
1718
|
+
}
|
|
1719
|
+
|
|
1720
|
+
/**
|
|
1721
|
+
* Returns a copy of the given changeset with the same declarations (e.g., new cells) but no actual changes.
|
|
1722
|
+
*/
|
|
1723
|
+
private muteChange(change: ModularChangeset): ModularChangeset {
|
|
1724
|
+
const muted: Mutable<ModularChangeset> = {
|
|
1725
|
+
...change,
|
|
1726
|
+
crossFieldKeys: newCrossFieldKeyTable(),
|
|
1727
|
+
fieldChanges: this.muteFieldChanges(change.fieldChanges),
|
|
1728
|
+
nodeChanges: brand(change.nodeChanges.mapValues((v) => this.muteNodeChange(v))),
|
|
1729
|
+
};
|
|
1730
|
+
return muted;
|
|
1731
|
+
}
|
|
1732
|
+
|
|
1733
|
+
private muteNodeChange(change: NodeChangeset): NodeChangeset {
|
|
1734
|
+
if (change.fieldChanges === undefined) {
|
|
1735
|
+
return change;
|
|
1736
|
+
}
|
|
1737
|
+
return {
|
|
1738
|
+
...change,
|
|
1739
|
+
fieldChanges: this.muteFieldChanges(change.fieldChanges),
|
|
1740
|
+
};
|
|
1741
|
+
}
|
|
1742
|
+
|
|
1743
|
+
private muteFieldChanges(change: FieldChangeMap): FieldChangeMap {
|
|
1744
|
+
return new Map(
|
|
1745
|
+
Array.from(change.entries(), ([key, value]) => [key, this.muteFieldChange(value)]),
|
|
1746
|
+
);
|
|
1747
|
+
}
|
|
1748
|
+
|
|
1749
|
+
private muteFieldChange(change: FieldChange): FieldChange {
|
|
1750
|
+
const handler = getChangeHandler(this.fieldKinds, change.fieldKind);
|
|
1751
|
+
return {
|
|
1752
|
+
fieldKind: change.fieldKind,
|
|
1753
|
+
change: brand(handler.rebaser.mute(change.change)),
|
|
1754
|
+
};
|
|
1755
|
+
}
|
|
1714
1756
|
}
|
|
1715
1757
|
|
|
1716
1758
|
function replaceCrossFieldKeyTableRevisions(
|
|
@@ -55,8 +55,8 @@ import { type CursorWithNode, SynchronousCursor } from "../treeCursorUtils.js";
|
|
|
55
55
|
import {
|
|
56
56
|
defaultSchemaPolicy,
|
|
57
57
|
FieldKinds,
|
|
58
|
-
inSchemaOrThrow,
|
|
59
58
|
isFieldInSchema,
|
|
59
|
+
throwOutOfSchema,
|
|
60
60
|
} from "../default-schema/index.js";
|
|
61
61
|
|
|
62
62
|
/** A `MapTree` with mutable fields */
|
|
@@ -158,11 +158,15 @@ export class ObjectForest implements IEditableForest, WithBreakable {
|
|
|
158
158
|
// Metadata is not used for schema checks
|
|
159
159
|
persistedMetadata: undefined,
|
|
160
160
|
};
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
161
|
+
isFieldInSchema(
|
|
162
|
+
documentRoot,
|
|
163
|
+
fieldSchema,
|
|
164
|
+
{
|
|
165
|
+
schema,
|
|
166
|
+
policy: defaultSchemaPolicy,
|
|
167
|
+
},
|
|
168
|
+
throwOutOfSchema,
|
|
169
|
+
);
|
|
166
170
|
}
|
|
167
171
|
}
|
|
168
172
|
}
|
|
@@ -465,6 +465,10 @@ export const optionalChangeRebaser: FieldChangeRebaser<OptionalChangeset> = {
|
|
|
465
465
|
|
|
466
466
|
return updated;
|
|
467
467
|
},
|
|
468
|
+
|
|
469
|
+
mute: (change: OptionalChangeset): OptionalChangeset => {
|
|
470
|
+
return { childChanges: change.childChanges, moves: [] };
|
|
471
|
+
},
|
|
468
472
|
};
|
|
469
473
|
|
|
470
474
|
function replaceReplaceRevisions(
|
|
@@ -11,6 +11,7 @@ import { prune } from "./prune.js";
|
|
|
11
11
|
import { rebase } from "./rebase.js";
|
|
12
12
|
import { replaceRevisions } from "./replaceRevisions.js";
|
|
13
13
|
import type { Changeset } from "./types.js";
|
|
14
|
+
import { omitMarkEffect } from "./utils.js";
|
|
14
15
|
|
|
15
16
|
export type SequenceChangeRebaser = FieldChangeRebaser<Changeset>;
|
|
16
17
|
|
|
@@ -20,4 +21,7 @@ export const sequenceFieldChangeRebaser = {
|
|
|
20
21
|
rebase,
|
|
21
22
|
prune,
|
|
22
23
|
replaceRevisions,
|
|
24
|
+
mute: (change: Changeset): Changeset => {
|
|
25
|
+
return change.map((mark) => omitMarkEffect(mark));
|
|
26
|
+
},
|
|
23
27
|
};
|
package/src/index.ts
CHANGED
|
@@ -114,9 +114,11 @@ export {
|
|
|
114
114
|
type SchemaCompatibilityStatus,
|
|
115
115
|
type FieldProps,
|
|
116
116
|
type FieldPropsAlpha,
|
|
117
|
+
normalizeFieldSchema,
|
|
117
118
|
type InternalTreeNode,
|
|
118
119
|
type WithType,
|
|
119
120
|
type NodeChangedData,
|
|
121
|
+
type SchemaUpgrade,
|
|
120
122
|
// Types not really intended for public use, but used in links.
|
|
121
123
|
// Can not be moved to internalTypes since doing so causes app code to throw errors like:
|
|
122
124
|
// Error: src/simple-tree/objectNode.ts:72:1 - (ae-unresolved-link) The @link reference could not be resolved: The package "@fluidframework/tree" does not have an export "TreeNodeApi"
|
|
@@ -167,9 +169,9 @@ export {
|
|
|
167
169
|
type UnannotateAllowedTypes,
|
|
168
170
|
type UnannotateAllowedType,
|
|
169
171
|
type UnannotateAllowedTypesList,
|
|
170
|
-
type UnannotateAllowedTypeOrLazyItem,
|
|
171
172
|
type UnannotateImplicitFieldSchema,
|
|
172
173
|
type UnannotateSchemaRecord,
|
|
174
|
+
type SchemaStaticsAlpha,
|
|
173
175
|
// Beta APIs
|
|
174
176
|
TreeBeta,
|
|
175
177
|
type TreeChangeEventsBeta,
|
|
@@ -214,6 +216,10 @@ export {
|
|
|
214
216
|
type SimpleObjectFieldSchema,
|
|
215
217
|
type SimpleRecordNodeSchema,
|
|
216
218
|
normalizeAllowedTypes,
|
|
219
|
+
walkFieldSchema,
|
|
220
|
+
walkNodeSchema,
|
|
221
|
+
walkAllowedTypes,
|
|
222
|
+
type SchemaVisitor,
|
|
217
223
|
getSimpleSchema,
|
|
218
224
|
type ReadonlyArrayNode,
|
|
219
225
|
type InsertableTreeNodeFromAllowedTypes,
|
package/src/jsonDomainSchema.ts
CHANGED
|
@@ -11,9 +11,11 @@ import type {
|
|
|
11
11
|
ValidateRecursiveSchema,
|
|
12
12
|
// #region Unused imports to make d.ts cleaner
|
|
13
13
|
/* eslint-disable unused-imports/no-unused-imports, @typescript-eslint/no-unused-vars */
|
|
14
|
+
ArrayNodeCustomizableSchemaUnsafe,
|
|
14
15
|
System_Unsafe,
|
|
15
16
|
TreeNodeSchemaNonClass,
|
|
16
17
|
TreeNodeSchemaClass,
|
|
18
|
+
TreeRecordNodeUnsafe,
|
|
17
19
|
NodeKind,
|
|
18
20
|
TreeNodeSchemaCore,
|
|
19
21
|
WithType,
|
|
@@ -52,6 +54,7 @@ export namespace JsonAsTree {
|
|
|
52
54
|
] as const satisfies AllowedTypes;
|
|
53
55
|
|
|
54
56
|
/**
|
|
57
|
+
* {@inheritDoc JsonAsTree.(Primitive:variable)}
|
|
55
58
|
* @alpha
|
|
56
59
|
*/
|
|
57
60
|
export type Primitive = TreeNodeFromImplicitAllowedTypes<typeof Primitive>;
|
|
@@ -72,6 +75,7 @@ export namespace JsonAsTree {
|
|
|
72
75
|
export const Tree = [...Primitive, () => JsonObject, () => Array] as const;
|
|
73
76
|
|
|
74
77
|
/**
|
|
78
|
+
* {@inheritDoc JsonAsTree.(Tree:variable)}
|
|
75
79
|
* @alpha
|
|
76
80
|
*/
|
|
77
81
|
export type Tree = TreeNodeFromImplicitAllowedTypes<typeof Tree>;
|
package/src/packageVersion.ts
CHANGED
|
@@ -12,9 +12,11 @@ import {
|
|
|
12
12
|
|
|
13
13
|
import type { ICodecOptions } from "../codec/index.js";
|
|
14
14
|
import {
|
|
15
|
+
type ITreeCursorSynchronous,
|
|
15
16
|
type RevisionTag,
|
|
16
17
|
RevisionTagCodec,
|
|
17
18
|
SchemaVersion,
|
|
19
|
+
type TreeStoredSchema,
|
|
18
20
|
TreeStoredSchemaRepository,
|
|
19
21
|
} from "../core/index.js";
|
|
20
22
|
import {
|
|
@@ -24,7 +26,6 @@ import {
|
|
|
24
26
|
type FieldBatchEncodingContext,
|
|
25
27
|
defaultSchemaPolicy,
|
|
26
28
|
TreeCompressionStrategy,
|
|
27
|
-
initializeForest,
|
|
28
29
|
} from "../feature-libraries/index.js";
|
|
29
30
|
// eslint-disable-next-line import/no-internal-modules
|
|
30
31
|
import type { Format } from "../feature-libraries/schema-index/formatV1.js";
|
|
@@ -41,6 +42,7 @@ import {
|
|
|
41
42
|
} from "./sharedTree.js";
|
|
42
43
|
import { createTreeCheckout } from "./treeCheckout.js";
|
|
43
44
|
import { SchematizingSimpleTreeView } from "./schematizingTreeView.js";
|
|
45
|
+
import { initialize } from "./schematizeTree.js";
|
|
44
46
|
|
|
45
47
|
/**
|
|
46
48
|
* Create an uninitialized {@link TreeView} that is not tied to any {@link ITree} instance.
|
|
@@ -85,6 +87,8 @@ export function independentView<const TSchema extends ImplicitFieldSchema>(
|
|
|
85
87
|
* Such a view can never experience collaboration or be persisted to to a Fluid Container.
|
|
86
88
|
*
|
|
87
89
|
* This can be useful for testing, as well as use-cases like working on local files instead of documents stored in some Fluid service.
|
|
90
|
+
* @privateRemarks
|
|
91
|
+
* TODO: Providing an API which generates a {@link ViewableTree} extended with export options from {@link ITreeAlpha} and maybe even branching APIs would likely be better that just exposing a {@link TreeViewAlpha}.
|
|
88
92
|
* @alpha
|
|
89
93
|
*/
|
|
90
94
|
export function independentInitializedView<const TSchema extends ImplicitFieldSchema>(
|
|
@@ -92,22 +96,11 @@ export function independentInitializedView<const TSchema extends ImplicitFieldSc
|
|
|
92
96
|
options: ForestOptions & ICodecOptions,
|
|
93
97
|
content: ViewContent,
|
|
94
98
|
): TreeViewAlpha<TSchema> {
|
|
95
|
-
const breaker = new Breakable("independentInitializedView");
|
|
96
99
|
const idCompressor: IIdCompressor = content.idCompressor;
|
|
97
|
-
const mintRevisionTag = (): RevisionTag => idCompressor.generateCompressedId();
|
|
98
|
-
const revisionTagCodec = new RevisionTagCodec(idCompressor);
|
|
99
|
-
|
|
100
100
|
const fieldBatchCodec = makeFieldBatchCodec(options, 1);
|
|
101
101
|
const schemaCodec = makeSchemaCodec(options, SchemaVersion.v1);
|
|
102
102
|
|
|
103
|
-
const schema =
|
|
104
|
-
const forest = buildConfiguredForest(
|
|
105
|
-
breaker,
|
|
106
|
-
options.forest ?? defaultSharedTreeOptions.forest,
|
|
107
|
-
schema,
|
|
108
|
-
idCompressor,
|
|
109
|
-
);
|
|
110
|
-
|
|
103
|
+
const schema = schemaCodec.decode(content.schema as Format);
|
|
111
104
|
const context: FieldBatchEncodingContext = {
|
|
112
105
|
encodeType: TreeCompressionStrategy.Compressed,
|
|
113
106
|
idCompressor,
|
|
@@ -117,21 +110,54 @@ export function independentInitializedView<const TSchema extends ImplicitFieldSc
|
|
|
117
110
|
|
|
118
111
|
const fieldCursors = fieldBatchCodec.decode(content.tree as JsonCompatibleReadOnly, context);
|
|
119
112
|
assert(fieldCursors.length === 1, 0xa5b /* must have exactly 1 field in batch */);
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
113
|
+
|
|
114
|
+
return independentInitializedViewInternal(
|
|
115
|
+
config,
|
|
116
|
+
options,
|
|
117
|
+
schema,
|
|
118
|
+
// Checked above.
|
|
119
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
120
|
+
fieldCursors[0]!,
|
|
121
|
+
idCompressor,
|
|
122
|
+
);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* {@link independentInitializedView} but using internal types instead of persisted data formats.
|
|
127
|
+
*/
|
|
128
|
+
export function independentInitializedViewInternal<const TSchema extends ImplicitFieldSchema>(
|
|
129
|
+
config: TreeViewConfiguration<TSchema>,
|
|
130
|
+
options: ForestOptions & ICodecOptions,
|
|
131
|
+
schema: TreeStoredSchema,
|
|
132
|
+
rootFieldCursor: ITreeCursorSynchronous,
|
|
133
|
+
idCompressor: IIdCompressor,
|
|
134
|
+
): SchematizingSimpleTreeView<TSchema> {
|
|
135
|
+
const breaker = new Breakable("independentInitializedView");
|
|
136
|
+
const revisionTagCodec = new RevisionTagCodec(idCompressor);
|
|
137
|
+
const mintRevisionTag = (): RevisionTag => idCompressor.generateCompressedId();
|
|
138
|
+
|
|
139
|
+
// To ensure the forest is in schema when constructed, start it with an empty schema and set the schema repository content later.
|
|
140
|
+
const schemaRepository = new TreeStoredSchemaRepository();
|
|
141
|
+
|
|
142
|
+
const forest = buildConfiguredForest(
|
|
143
|
+
breaker,
|
|
144
|
+
options.forest ?? defaultSharedTreeOptions.forest,
|
|
145
|
+
schemaRepository,
|
|
146
|
+
idCompressor,
|
|
147
|
+
);
|
|
123
148
|
|
|
124
149
|
const checkout = createTreeCheckout(idCompressor, mintRevisionTag, revisionTagCodec, {
|
|
125
150
|
forest,
|
|
126
|
-
schema,
|
|
151
|
+
schema: schemaRepository,
|
|
127
152
|
breaker,
|
|
128
153
|
});
|
|
129
|
-
|
|
154
|
+
|
|
155
|
+
initialize(checkout, { schema, initialTree: rootFieldCursor });
|
|
156
|
+
return new SchematizingSimpleTreeView<TSchema>(
|
|
130
157
|
checkout,
|
|
131
158
|
config,
|
|
132
159
|
createNodeIdentifierManager(idCompressor),
|
|
133
160
|
);
|
|
134
|
-
return out;
|
|
135
161
|
}
|
|
136
162
|
|
|
137
163
|
/**
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
defaultSchemaPolicy,
|
|
20
20
|
mapTreeFromCursor,
|
|
21
21
|
} from "../feature-libraries/index.js";
|
|
22
|
-
import {
|
|
22
|
+
import { toUpgradeSchema, type SchemaCompatibilityTester } from "../simple-tree/index.js";
|
|
23
23
|
import { isReadonlyArray } from "../util/index.js";
|
|
24
24
|
|
|
25
25
|
import type { ITreeCheckout } from "./treeCheckout.js";
|
|
@@ -219,7 +219,7 @@ export function ensureSchema(
|
|
|
219
219
|
return false;
|
|
220
220
|
}
|
|
221
221
|
case UpdateType.SchemaCompatible: {
|
|
222
|
-
checkout.updateSchema(
|
|
222
|
+
checkout.updateSchema(toUpgradeSchema(viewSchema.viewSchema.root));
|
|
223
223
|
return true;
|
|
224
224
|
}
|
|
225
225
|
default: {
|
|
@@ -12,7 +12,7 @@ import type {
|
|
|
12
12
|
import { assert, unreachableCase } from "@fluidframework/core-utils/internal";
|
|
13
13
|
import { UsageError } from "@fluidframework/telemetry-utils/internal";
|
|
14
14
|
|
|
15
|
-
import { anchorSlot
|
|
15
|
+
import { anchorSlot } from "../core/index.js";
|
|
16
16
|
import {
|
|
17
17
|
type NodeIdentifierManager,
|
|
18
18
|
defaultSchemaPolicy,
|
|
@@ -49,11 +49,12 @@ import {
|
|
|
49
49
|
HydratedContext,
|
|
50
50
|
SimpleContextSlot,
|
|
51
51
|
areImplicitFieldSchemaEqual,
|
|
52
|
-
createUnknownOptionalFieldPolicy,
|
|
53
52
|
prepareForInsertionContextless,
|
|
54
53
|
type FieldSchema,
|
|
55
|
-
toStoredSchema,
|
|
56
54
|
tryDisposeTreeNode,
|
|
55
|
+
FieldSchemaAlpha,
|
|
56
|
+
TreeViewConfigurationAlpha,
|
|
57
|
+
toInitialSchema,
|
|
57
58
|
} from "../simple-tree/index.js";
|
|
58
59
|
import {
|
|
59
60
|
type Breakable,
|
|
@@ -90,7 +91,6 @@ export class SchematizingSimpleTreeView<
|
|
|
90
91
|
* Undefined iff uninitialized or disposed.
|
|
91
92
|
*/
|
|
92
93
|
private currentCompatibility: SchemaCompatibilityStatus | undefined;
|
|
93
|
-
private readonly schemaPolicy: SchemaPolicy;
|
|
94
94
|
public readonly events: Listenable<TreeViewEvents & TreeBranchEvents> &
|
|
95
95
|
IEmitter<TreeViewEvents & TreeBranchEvents> &
|
|
96
96
|
HasListeners<TreeViewEvents & TreeBranchEvents> = createEmitter();
|
|
@@ -132,13 +132,10 @@ export class SchematizingSimpleTreeView<
|
|
|
132
132
|
checkout.forest.anchors.slots.set(ViewSlot, this);
|
|
133
133
|
|
|
134
134
|
this.rootFieldSchema = normalizeFieldSchema(config.schema);
|
|
135
|
-
this.schemaPolicy = {
|
|
136
|
-
...defaultSchemaPolicy,
|
|
137
|
-
validateSchema: config.enableSchemaValidation,
|
|
138
|
-
allowUnknownOptionalFields: createUnknownOptionalFieldPolicy(this.rootFieldSchema),
|
|
139
|
-
};
|
|
140
135
|
|
|
141
|
-
|
|
136
|
+
const configAlpha = new TreeViewConfigurationAlpha({ schema: config.schema });
|
|
137
|
+
|
|
138
|
+
this.viewSchema = new SchemaCompatibilityTester(configAlpha);
|
|
142
139
|
// This must be initialized before `update` can be called.
|
|
143
140
|
this.currentCompatibility = {
|
|
144
141
|
canView: false,
|
|
@@ -175,15 +172,16 @@ export class SchematizingSimpleTreeView<
|
|
|
175
172
|
}
|
|
176
173
|
|
|
177
174
|
this.runSchemaEdit(() => {
|
|
178
|
-
const schema =
|
|
175
|
+
const schema = toInitialSchema(this.config.schema);
|
|
179
176
|
const mapTree = prepareForInsertionContextless(
|
|
180
177
|
content as InsertableContent | undefined,
|
|
181
178
|
this.rootFieldSchema,
|
|
182
179
|
{
|
|
183
180
|
schema,
|
|
184
|
-
policy:
|
|
181
|
+
policy: defaultSchemaPolicy,
|
|
185
182
|
},
|
|
186
183
|
this,
|
|
184
|
+
schema.rootFieldSchema,
|
|
187
185
|
);
|
|
188
186
|
|
|
189
187
|
initialize(this.checkout, {
|
|
@@ -316,16 +314,22 @@ export class SchematizingSimpleTreeView<
|
|
|
316
314
|
|
|
317
315
|
if (compatibility.canView) {
|
|
318
316
|
this.flexTreeContext = new Context(
|
|
319
|
-
|
|
317
|
+
defaultSchemaPolicy,
|
|
320
318
|
this.checkout,
|
|
321
319
|
this.nodeKeyManager,
|
|
322
320
|
);
|
|
323
321
|
assert(!slots.has(SimpleContextSlot), 0xa47 /* extra simple tree context */);
|
|
322
|
+
assert(
|
|
323
|
+
this.rootFieldSchema instanceof FieldSchemaAlpha,
|
|
324
|
+
0xbfa /* all field schema should be FieldSchemaAlpha */,
|
|
325
|
+
);
|
|
324
326
|
slots.set(
|
|
325
327
|
SimpleContextSlot,
|
|
326
328
|
new HydratedContext(
|
|
327
|
-
normalizeFieldSchema(this.rootFieldSchema).annotatedAllowedTypesNormalized,
|
|
328
329
|
this.flexTreeContext,
|
|
330
|
+
HydratedContext.schemaMapFromRootSchema(
|
|
331
|
+
this.rootFieldSchema.annotatedAllowedTypesNormalized,
|
|
332
|
+
),
|
|
329
333
|
),
|
|
330
334
|
);
|
|
331
335
|
|
|
@@ -433,7 +437,12 @@ export class SchematizingSimpleTreeView<
|
|
|
433
437
|
);
|
|
434
438
|
}
|
|
435
439
|
const view = this.getFlexTreeContext();
|
|
436
|
-
setField(
|
|
440
|
+
setField(
|
|
441
|
+
view.root,
|
|
442
|
+
this.rootFieldSchema,
|
|
443
|
+
newRoot as InsertableContent | undefined,
|
|
444
|
+
this.checkout.storedSchema.rootFieldSchema,
|
|
445
|
+
);
|
|
437
446
|
}
|
|
438
447
|
|
|
439
448
|
// #region Branching
|
|
@@ -3,11 +3,7 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import type {
|
|
7
|
-
ErasedType,
|
|
8
|
-
IFluidHandle,
|
|
9
|
-
IFluidLoadable,
|
|
10
|
-
} from "@fluidframework/core-interfaces/internal";
|
|
6
|
+
import type { ErasedType, IFluidLoadable } from "@fluidframework/core-interfaces/internal";
|
|
11
7
|
import { assert, fail } from "@fluidframework/core-utils/internal";
|
|
12
8
|
import type { IChannelStorageService } from "@fluidframework/datastore-definitions/internal";
|
|
13
9
|
import type { IIdCompressor } from "@fluidframework/id-compressor";
|
|
@@ -31,7 +27,6 @@ import {
|
|
|
31
27
|
type FieldKey,
|
|
32
28
|
type GraphCommit,
|
|
33
29
|
type IEditableForest,
|
|
34
|
-
type ITreeCursor,
|
|
35
30
|
type JsonableTree,
|
|
36
31
|
LeafNodeStoredSchema,
|
|
37
32
|
MapNodeStoredSchema,
|
|
@@ -40,7 +35,6 @@ import {
|
|
|
40
35
|
SchemaVersion,
|
|
41
36
|
type TaggedChange,
|
|
42
37
|
type TreeFieldStoredSchema,
|
|
43
|
-
type TreeNodeSchemaIdentifier,
|
|
44
38
|
type TreeNodeStoredSchema,
|
|
45
39
|
type TreeStoredSchema,
|
|
46
40
|
TreeStoredSchemaRepository,
|
|
@@ -85,10 +79,7 @@ import {
|
|
|
85
79
|
type VerboseTree,
|
|
86
80
|
tryStoredSchemaAsArray,
|
|
87
81
|
type SimpleNodeSchema,
|
|
88
|
-
customFromCursorStored,
|
|
89
82
|
FieldKind,
|
|
90
|
-
type CustomTreeNode,
|
|
91
|
-
type CustomTreeValue,
|
|
92
83
|
type ITreeAlpha,
|
|
93
84
|
type SimpleObjectFieldSchema,
|
|
94
85
|
} from "../simple-tree/index.js";
|
|
@@ -382,21 +373,7 @@ export class SharedTreeKernel
|
|
|
382
373
|
}
|
|
383
374
|
|
|
384
375
|
public exportVerbose(): VerboseTree | undefined {
|
|
385
|
-
|
|
386
|
-
try {
|
|
387
|
-
moveToDetachedField(this.checkout.forest, cursor);
|
|
388
|
-
const length = cursor.getFieldLength();
|
|
389
|
-
if (length === 0) {
|
|
390
|
-
return undefined;
|
|
391
|
-
} else if (length === 1) {
|
|
392
|
-
cursor.enterNode(0);
|
|
393
|
-
return verboseFromCursor(cursor, this.storedSchema.nodeSchema);
|
|
394
|
-
} else {
|
|
395
|
-
fail(0xac8 /* Invalid document root length */);
|
|
396
|
-
}
|
|
397
|
-
} finally {
|
|
398
|
-
cursor.free();
|
|
399
|
-
}
|
|
376
|
+
return this.checkout.exportVerbose();
|
|
400
377
|
}
|
|
401
378
|
|
|
402
379
|
public exportSimpleSchema(): SimpleTreeSchema {
|
|
@@ -723,23 +700,6 @@ export const defaultSharedTreeOptions: Required<SharedTreeOptionsInternal> = {
|
|
|
723
700
|
disposeForksAfterTransaction: true,
|
|
724
701
|
};
|
|
725
702
|
|
|
726
|
-
function verboseFromCursor(
|
|
727
|
-
reader: ITreeCursor,
|
|
728
|
-
schema: ReadonlyMap<TreeNodeSchemaIdentifier, TreeNodeStoredSchema>,
|
|
729
|
-
): VerboseTree {
|
|
730
|
-
const fields = customFromCursorStored(reader, schema, verboseFromCursor);
|
|
731
|
-
const nodeSchema =
|
|
732
|
-
schema.get(reader.type) ?? fail(0xac9 /* missing schema for type in cursor */);
|
|
733
|
-
if (nodeSchema instanceof LeafNodeStoredSchema) {
|
|
734
|
-
return fields as CustomTreeValue;
|
|
735
|
-
}
|
|
736
|
-
|
|
737
|
-
return {
|
|
738
|
-
type: reader.type,
|
|
739
|
-
fields: fields as CustomTreeNode<IFluidHandle>,
|
|
740
|
-
};
|
|
741
|
-
}
|
|
742
|
-
|
|
743
703
|
function exportSimpleFieldSchemaStored(schema: TreeFieldStoredSchema): SimpleFieldSchema {
|
|
744
704
|
let kind: FieldKind;
|
|
745
705
|
switch (schema.kind) {
|