@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
package/src/simple-tree/index.ts
CHANGED
|
@@ -47,14 +47,19 @@ export {
|
|
|
47
47
|
type UnannotateAllowedTypes,
|
|
48
48
|
type UnannotateAllowedType,
|
|
49
49
|
type UnannotateAllowedTypesList,
|
|
50
|
-
type UnannotateAllowedTypeOrLazyItem,
|
|
51
50
|
type AllowedTypeMetadata,
|
|
52
51
|
type AnnotatedAllowedTypes,
|
|
52
|
+
type SchemaUpgrade,
|
|
53
53
|
type LazyItem,
|
|
54
54
|
type FlexList,
|
|
55
55
|
type FlexListToUnion,
|
|
56
56
|
type ExtractItemType,
|
|
57
|
+
walkNodeSchema,
|
|
58
|
+
walkAllowedTypes,
|
|
59
|
+
type SchemaVisitor,
|
|
60
|
+
type SimpleNodeSchemaBase,
|
|
57
61
|
} from "./core/index.js";
|
|
62
|
+
export { walkFieldSchema } from "./walkFieldSchema.js";
|
|
58
63
|
export type { UnsafeUnknownSchema, Insertable } from "./unsafeUnknownSchema.js";
|
|
59
64
|
export {
|
|
60
65
|
type ITree,
|
|
@@ -157,6 +162,7 @@ export {
|
|
|
157
162
|
type TreeChangeEvents,
|
|
158
163
|
type NodeSchemaOptions,
|
|
159
164
|
type NodeSchemaOptionsAlpha,
|
|
165
|
+
type SchemaStaticsAlpha,
|
|
160
166
|
} from "./api/index.js";
|
|
161
167
|
export type {
|
|
162
168
|
SimpleTreeSchema,
|
|
@@ -166,7 +172,6 @@ export type {
|
|
|
166
172
|
SimpleMapNodeSchema,
|
|
167
173
|
SimpleArrayNodeSchema,
|
|
168
174
|
SimpleObjectNodeSchema,
|
|
169
|
-
SimpleNodeSchemaBase,
|
|
170
175
|
SimpleNodeSchemaBaseAlpha,
|
|
171
176
|
SimpleObjectFieldSchema,
|
|
172
177
|
SimpleRecordNodeSchema,
|
|
@@ -178,7 +183,7 @@ export {
|
|
|
178
183
|
type UnannotateImplicitFieldSchema,
|
|
179
184
|
FieldKind,
|
|
180
185
|
FieldSchema,
|
|
181
|
-
|
|
186
|
+
FieldSchemaAlpha,
|
|
182
187
|
type InsertableTreeFieldFromImplicitField,
|
|
183
188
|
type DefaultProvider,
|
|
184
189
|
type FieldProps,
|
|
@@ -218,7 +223,6 @@ export {
|
|
|
218
223
|
type InsertableObjectFromAnnotatedSchemaRecord,
|
|
219
224
|
type TreeObjectNode,
|
|
220
225
|
setField,
|
|
221
|
-
createUnknownOptionalFieldPolicy,
|
|
222
226
|
isRecordNodeSchema,
|
|
223
227
|
type RecordNodeCustomizableSchema,
|
|
224
228
|
type RecordNodeInsertableData,
|
|
@@ -237,7 +241,17 @@ export {
|
|
|
237
241
|
prepareForInsertion,
|
|
238
242
|
prepareForInsertionContextless,
|
|
239
243
|
} from "./prepareForInsertion.js";
|
|
240
|
-
export {
|
|
244
|
+
export {
|
|
245
|
+
toStoredSchema,
|
|
246
|
+
getStoredSchema,
|
|
247
|
+
convertFieldKind,
|
|
248
|
+
toUpgradeSchema,
|
|
249
|
+
toInitialSchema,
|
|
250
|
+
convertField,
|
|
251
|
+
toUnhydratedSchema,
|
|
252
|
+
restrictiveStoredSchemaGenerationOptions,
|
|
253
|
+
permissiveStoredSchemaGenerationOptions,
|
|
254
|
+
} from "./toStoredSchema.js";
|
|
241
255
|
export {
|
|
242
256
|
numberSchema,
|
|
243
257
|
stringSchema,
|
|
@@ -246,11 +260,3 @@ export {
|
|
|
246
260
|
nullSchema,
|
|
247
261
|
} from "./leafNodeSchema.js";
|
|
248
262
|
export type { LeafSchema } from "./leafNodeSchema.js";
|
|
249
|
-
export {
|
|
250
|
-
getAllowedContentDiscrepancies,
|
|
251
|
-
type FieldDiscrepancy,
|
|
252
|
-
comparePosetElements,
|
|
253
|
-
fieldRealizer,
|
|
254
|
-
type Realizer,
|
|
255
|
-
PosetComparisonResult,
|
|
256
|
-
} from "./discrepancies.js";
|
|
@@ -7,7 +7,7 @@ import { assert } from "@fluidframework/core-utils/internal";
|
|
|
7
7
|
import { UsageError } from "@fluidframework/telemetry-utils/internal";
|
|
8
8
|
import { isFluidHandle } from "@fluidframework/runtime-utils/internal";
|
|
9
9
|
|
|
10
|
-
import { type TreeValue, ValueSchema } from "../core/index.js";
|
|
10
|
+
import { LeafNodeStoredSchema, type TreeValue, ValueSchema } from "../core/index.js";
|
|
11
11
|
import {
|
|
12
12
|
type FlexTreeNode,
|
|
13
13
|
isFlexTreeNode,
|
|
@@ -64,6 +64,7 @@ export class LeafNodeSchema<Name extends string, const T extends ValueSchema>
|
|
|
64
64
|
): FlexContent => leafToFlexContent(data, this, allowedTypes),
|
|
65
65
|
})),
|
|
66
66
|
childAnnotatedAllowedTypes: [],
|
|
67
|
+
toStored: () => new LeafNodeStoredSchema(this.leafKind),
|
|
67
68
|
};
|
|
68
69
|
#initializedData: TreeNodeSchemaInitializedData | undefined;
|
|
69
70
|
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { Lazy, oob, fail } from "@fluidframework/core-utils/internal";
|
|
6
|
+
import { Lazy, oob, fail, assert } from "@fluidframework/core-utils/internal";
|
|
7
7
|
import { UsageError } from "@fluidframework/telemetry-utils/internal";
|
|
8
8
|
|
|
9
|
-
import { EmptyKey } from "../../../core/index.js";
|
|
9
|
+
import { EmptyKey, ObjectNodeStoredSchema } from "../../../core/index.js";
|
|
10
10
|
import type {
|
|
11
11
|
FlexibleFieldContent,
|
|
12
12
|
FlexTreeNode,
|
|
@@ -48,6 +48,7 @@ import {
|
|
|
48
48
|
createTreeNodeSchemaPrivateData,
|
|
49
49
|
type FlexContent,
|
|
50
50
|
type TreeNodeSchemaPrivateData,
|
|
51
|
+
convertAllowedTypes,
|
|
51
52
|
} from "../../core/index.js";
|
|
52
53
|
import {
|
|
53
54
|
type FactoryContent,
|
|
@@ -68,6 +69,7 @@ import type {
|
|
|
68
69
|
} from "./arrayNodeTypes.js";
|
|
69
70
|
import { brand, type JsonCompatibleReadOnlyObject } from "../../../util/index.js";
|
|
70
71
|
import { nullSchema } from "../../leafNodeSchema.js";
|
|
72
|
+
import { arrayNodeStoredSchema } from "../../toStoredSchema.js";
|
|
71
73
|
|
|
72
74
|
/**
|
|
73
75
|
* A covariant base type for {@link (TreeArrayNode:interface)}.
|
|
@@ -848,15 +850,15 @@ type Insertable<T extends ImplicitAllowedTypes> = readonly (
|
|
|
848
850
|
| IterableTreeArrayContent<InsertableTreeNodeFromImplicitAllowedTypes<T>>
|
|
849
851
|
)[];
|
|
850
852
|
|
|
851
|
-
abstract class CustomArrayNodeBase<const T extends
|
|
853
|
+
abstract class CustomArrayNodeBase<const T extends ImplicitAnnotatedAllowedTypes>
|
|
852
854
|
extends TreeNodeWithArrayFeatures<
|
|
853
|
-
Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T
|
|
854
|
-
TreeNodeFromImplicitAllowedTypes<T
|
|
855
|
+
Iterable<InsertableTreeNodeFromImplicitAllowedTypes<UnannotateImplicitAllowedTypes<T>>>,
|
|
856
|
+
TreeNodeFromImplicitAllowedTypes<UnannotateImplicitAllowedTypes<T>>
|
|
855
857
|
>
|
|
856
|
-
implements TreeArrayNode<T
|
|
858
|
+
implements TreeArrayNode<UnannotateImplicitAllowedTypes<T>>
|
|
857
859
|
{
|
|
858
860
|
// Indexing must be provided by subclass.
|
|
859
|
-
[k: number]: TreeNodeFromImplicitAllowedTypes<T
|
|
861
|
+
[k: number]: TreeNodeFromImplicitAllowedTypes<UnannotateImplicitAllowedTypes<T>>;
|
|
860
862
|
|
|
861
863
|
public static readonly kind = NodeKind.Array;
|
|
862
864
|
|
|
@@ -869,12 +871,16 @@ abstract class CustomArrayNodeBase<const T extends ImplicitAllowedTypes>
|
|
|
869
871
|
>;
|
|
870
872
|
|
|
871
873
|
public constructor(
|
|
872
|
-
input?:
|
|
874
|
+
input?:
|
|
875
|
+
| Iterable<InsertableTreeNodeFromImplicitAllowedTypes<UnannotateImplicitAllowedTypes<T>>>
|
|
876
|
+
| InternalTreeNode,
|
|
873
877
|
) {
|
|
874
878
|
super(input ?? []);
|
|
875
879
|
}
|
|
876
880
|
|
|
877
|
-
#mapTreesFromFieldData(
|
|
881
|
+
#mapTreesFromFieldData(
|
|
882
|
+
value: Insertable<UnannotateImplicitAllowedTypes<T>>,
|
|
883
|
+
): FlexibleFieldContent {
|
|
878
884
|
const sequenceField = getSequenceField(this);
|
|
879
885
|
const content = value as readonly (
|
|
880
886
|
| InsertableContent
|
|
@@ -884,10 +890,21 @@ abstract class CustomArrayNodeBase<const T extends ImplicitAllowedTypes>
|
|
|
884
890
|
const contentArray = content.flatMap((c): InsertableContent[] =>
|
|
885
891
|
c instanceof IterableTreeArrayContent ? Array.from(c) : [c],
|
|
886
892
|
);
|
|
893
|
+
|
|
894
|
+
const kernel = getKernel(this);
|
|
895
|
+
const flexContext = kernel.getOrCreateInnerNode().context;
|
|
896
|
+
assert(flexContext === kernel.context.flexContext, "Expected flexContext to match");
|
|
897
|
+
const innerSchema = kernel.context.flexContext.schema.nodeSchema.get(
|
|
898
|
+
brand(kernel.schema.identifier),
|
|
899
|
+
);
|
|
900
|
+
assert(innerSchema instanceof ObjectNodeStoredSchema, "Expected ObjectNodeStoredSchema");
|
|
901
|
+
const fieldSchema = innerSchema.getFieldSchema(EmptyKey);
|
|
902
|
+
|
|
887
903
|
const mapTrees = prepareArrayContentForInsertion(
|
|
888
904
|
contentArray,
|
|
889
905
|
this.simpleSchema,
|
|
890
906
|
sequenceField.context,
|
|
907
|
+
fieldSchema.types,
|
|
891
908
|
);
|
|
892
909
|
|
|
893
910
|
return mapTrees;
|
|
@@ -906,7 +923,9 @@ abstract class CustomArrayNodeBase<const T extends ImplicitAllowedTypes>
|
|
|
906
923
|
return fail(0xadb /* Proxy should intercept length */);
|
|
907
924
|
}
|
|
908
925
|
|
|
909
|
-
public [Symbol.iterator](): IterableIterator<
|
|
926
|
+
public [Symbol.iterator](): IterableIterator<
|
|
927
|
+
TreeNodeFromImplicitAllowedTypes<UnannotateImplicitAllowedTypes<T>>
|
|
928
|
+
> {
|
|
910
929
|
return this.values();
|
|
911
930
|
}
|
|
912
931
|
|
|
@@ -918,9 +937,9 @@ abstract class CustomArrayNodeBase<const T extends ImplicitAllowedTypes>
|
|
|
918
937
|
}
|
|
919
938
|
|
|
920
939
|
public at(
|
|
921
|
-
this: TreeArrayNode<T
|
|
940
|
+
this: TreeArrayNode<UnannotateImplicitAllowedTypes<T>>,
|
|
922
941
|
index: number,
|
|
923
|
-
): TreeNodeFromImplicitAllowedTypes<T
|
|
942
|
+
): TreeNodeFromImplicitAllowedTypes<UnannotateImplicitAllowedTypes<T>> | undefined {
|
|
924
943
|
const field = getSequenceField(this);
|
|
925
944
|
const val = field.boxedAt(index);
|
|
926
945
|
|
|
@@ -928,18 +947,23 @@ abstract class CustomArrayNodeBase<const T extends ImplicitAllowedTypes>
|
|
|
928
947
|
return val;
|
|
929
948
|
}
|
|
930
949
|
|
|
931
|
-
return getOrCreateNodeFromInnerNode(val) as TreeNodeFromImplicitAllowedTypes<
|
|
950
|
+
return getOrCreateNodeFromInnerNode(val) as TreeNodeFromImplicitAllowedTypes<
|
|
951
|
+
UnannotateImplicitAllowedTypes<T>
|
|
952
|
+
>;
|
|
932
953
|
}
|
|
933
|
-
public insertAt(
|
|
954
|
+
public insertAt(
|
|
955
|
+
index: number,
|
|
956
|
+
...value: Insertable<UnannotateImplicitAllowedTypes<T>>
|
|
957
|
+
): void {
|
|
934
958
|
const field = getSequenceField(this);
|
|
935
959
|
validateIndex(index, field, "insertAt", true);
|
|
936
960
|
const content = this.#mapTreesFromFieldData(value);
|
|
937
961
|
field.editor.insert(index, content);
|
|
938
962
|
}
|
|
939
|
-
public insertAtStart(...value: Insertable<T
|
|
963
|
+
public insertAtStart(...value: Insertable<UnannotateImplicitAllowedTypes<T>>): void {
|
|
940
964
|
this.insertAt(0, ...value);
|
|
941
965
|
}
|
|
942
|
-
public insertAtEnd(...value: Insertable<T
|
|
966
|
+
public insertAtEnd(...value: Insertable<UnannotateImplicitAllowedTypes<T>>): void {
|
|
943
967
|
this.insertAt(this.length, ...value);
|
|
944
968
|
}
|
|
945
969
|
public removeAt(index: number): void {
|
|
@@ -1018,6 +1042,11 @@ abstract class CustomArrayNodeBase<const T extends ImplicitAllowedTypes>
|
|
|
1018
1042
|
): void {
|
|
1019
1043
|
const destinationField = getSequenceField(this);
|
|
1020
1044
|
const destinationSchema = this.allowedTypes;
|
|
1045
|
+
const kernel = getKernel(this);
|
|
1046
|
+
const destinationStored = (
|
|
1047
|
+
kernel.context.flexContext.schema.nodeSchema.get(brand(kernel.schema.identifier)) ??
|
|
1048
|
+
fail("missing schema for array node")
|
|
1049
|
+
).getFieldSchema(EmptyKey).types;
|
|
1021
1050
|
const sourceField = source !== undefined ? getSequenceField(source) : destinationField;
|
|
1022
1051
|
|
|
1023
1052
|
validateIndex(destinationGap, destinationField, "moveRangeToIndex", true);
|
|
@@ -1029,7 +1058,15 @@ abstract class CustomArrayNodeBase<const T extends ImplicitAllowedTypes>
|
|
|
1029
1058
|
const sourceNode = sourceField.boxedAt(i) ?? oob();
|
|
1030
1059
|
const sourceSchema = getSimpleNodeSchemaFromInnerNode(sourceNode);
|
|
1031
1060
|
if (!destinationSchema.has(sourceSchema)) {
|
|
1032
|
-
throw new UsageError(
|
|
1061
|
+
throw new UsageError(
|
|
1062
|
+
`Type ${sourceNode.type} in source sequence is not allowed in destination.`,
|
|
1063
|
+
);
|
|
1064
|
+
}
|
|
1065
|
+
if (!destinationStored.has(sourceNode.type)) {
|
|
1066
|
+
// TODO: better and centralized messages for missing staged schema updates.
|
|
1067
|
+
throw new UsageError(
|
|
1068
|
+
`Type ${sourceNode.type} in source sequence is not allowed in destination's stored schema: this would likely require upgrading the document to permit a staged schema.`,
|
|
1069
|
+
);
|
|
1033
1070
|
}
|
|
1034
1071
|
}
|
|
1035
1072
|
}
|
|
@@ -1079,12 +1116,14 @@ abstract class CustomArrayNodeBase<const T extends ImplicitAllowedTypes>
|
|
|
1079
1116
|
}
|
|
1080
1117
|
}
|
|
1081
1118
|
|
|
1082
|
-
public values(): IterableIterator<
|
|
1119
|
+
public values(): IterableIterator<
|
|
1120
|
+
TreeNodeFromImplicitAllowedTypes<UnannotateImplicitAllowedTypes<T>>
|
|
1121
|
+
> {
|
|
1083
1122
|
return this.generateValues(getKernel(this).generationNumber);
|
|
1084
1123
|
}
|
|
1085
1124
|
private *generateValues(
|
|
1086
1125
|
initialLastUpdatedStamp: number,
|
|
1087
|
-
): Generator<TreeNodeFromImplicitAllowedTypes<T
|
|
1126
|
+
): Generator<TreeNodeFromImplicitAllowedTypes<UnannotateImplicitAllowedTypes<T>>> {
|
|
1088
1127
|
const kernel = getKernel(this);
|
|
1089
1128
|
if (initialLastUpdatedStamp !== kernel.generationNumber) {
|
|
1090
1129
|
throw new UsageError(`Concurrent editing and iteration is not allowed.`);
|
|
@@ -1138,7 +1177,7 @@ export function arraySchema<
|
|
|
1138
1177
|
|
|
1139
1178
|
// This class returns a proxy from its constructor to handle numeric indexing.
|
|
1140
1179
|
// Alternatively it could extend a normal class which gets tons of numeric properties added.
|
|
1141
|
-
class Schema extends CustomArrayNodeBase<
|
|
1180
|
+
class Schema extends CustomArrayNodeBase<T> {
|
|
1142
1181
|
public static override prepareInstance<T2>(
|
|
1143
1182
|
this: typeof TreeNodeValid<T2>,
|
|
1144
1183
|
instance: TreeNodeValid<T2>,
|
|
@@ -1229,15 +1268,17 @@ export function arraySchema<
|
|
|
1229
1268
|
return Schema.constructorCached?.constructor as unknown as Output;
|
|
1230
1269
|
}
|
|
1231
1270
|
|
|
1232
|
-
protected get simpleSchema():
|
|
1233
|
-
return
|
|
1271
|
+
protected get simpleSchema(): T {
|
|
1272
|
+
return info;
|
|
1234
1273
|
}
|
|
1235
1274
|
protected get allowedTypes(): ReadonlySet<TreeNodeSchema> {
|
|
1236
1275
|
return lazyChildTypes.value;
|
|
1237
1276
|
}
|
|
1238
1277
|
|
|
1239
1278
|
public static get [privateDataSymbol](): TreeNodeSchemaPrivateData {
|
|
1240
|
-
return (privateData ??= createTreeNodeSchemaPrivateData(this, [info])
|
|
1279
|
+
return (privateData ??= createTreeNodeSchemaPrivateData(this, [info], (storedOptions) =>
|
|
1280
|
+
arrayNodeStoredSchema(convertAllowedTypes(info, storedOptions), persistedMetadata),
|
|
1281
|
+
));
|
|
1241
1282
|
}
|
|
1242
1283
|
}
|
|
1243
1284
|
|
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { Lazy } from "@fluidframework/core-utils/internal";
|
|
6
|
+
import { assert, Lazy } from "@fluidframework/core-utils/internal";
|
|
7
7
|
import { UsageError } from "@fluidframework/telemetry-utils/internal";
|
|
8
8
|
|
|
9
9
|
import {
|
|
10
|
+
FieldKinds,
|
|
10
11
|
isTreeValue,
|
|
11
12
|
type FlexibleNodeContent,
|
|
12
13
|
type FlexTreeNode,
|
|
@@ -44,6 +45,7 @@ import {
|
|
|
44
45
|
createTreeNodeSchemaPrivateData,
|
|
45
46
|
type FlexContent,
|
|
46
47
|
type TreeNodeSchemaPrivateData,
|
|
48
|
+
convertAllowedTypes,
|
|
47
49
|
} from "../../core/index.js";
|
|
48
50
|
import {
|
|
49
51
|
unhydratedFlexTreeFromInsertable,
|
|
@@ -65,6 +67,7 @@ import type {
|
|
|
65
67
|
MapNodeSchema,
|
|
66
68
|
} from "./mapNodeTypes.js";
|
|
67
69
|
import { recordLikeDataToFlexContent } from "../common.js";
|
|
70
|
+
import { MapNodeStoredSchema } from "../../../core/index.js";
|
|
68
71
|
|
|
69
72
|
/**
|
|
70
73
|
* A map of string keys to tree objects.
|
|
@@ -209,10 +212,16 @@ abstract class CustomMapNodeBase<const T extends ImplicitAllowedTypes> extends T
|
|
|
209
212
|
public set(key: string, value: InsertableTreeNodeFromImplicitAllowedTypes<T>): this {
|
|
210
213
|
const kernel = getKernel(this);
|
|
211
214
|
const node = this.innerNode;
|
|
215
|
+
const innerSchema = this.innerNode.context.schema.nodeSchema.get(
|
|
216
|
+
brand(kernel.schema.identifier),
|
|
217
|
+
);
|
|
218
|
+
assert(innerSchema instanceof MapNodeStoredSchema, "Expected MapNodeStoredSchema");
|
|
219
|
+
|
|
212
220
|
const mapTree = prepareForInsertion(
|
|
213
221
|
value as InsertableContent | undefined,
|
|
214
222
|
createFieldSchema(FieldKind.Optional, kernel.schema.info as ImplicitAllowedTypes),
|
|
215
223
|
node.context,
|
|
224
|
+
innerSchema.mapFields,
|
|
216
225
|
);
|
|
217
226
|
|
|
218
227
|
const field = node.getBoxed(brand(key));
|
|
@@ -328,7 +337,19 @@ export function mapSchema<
|
|
|
328
337
|
}
|
|
329
338
|
|
|
330
339
|
public static get [privateDataSymbol](): TreeNodeSchemaPrivateData {
|
|
331
|
-
return (privateData ??= createTreeNodeSchemaPrivateData(
|
|
340
|
+
return (privateData ??= createTreeNodeSchemaPrivateData(
|
|
341
|
+
this,
|
|
342
|
+
[info],
|
|
343
|
+
(storedOptions) =>
|
|
344
|
+
new MapNodeStoredSchema(
|
|
345
|
+
{
|
|
346
|
+
kind: FieldKinds.optional.identifier,
|
|
347
|
+
types: convertAllowedTypes(info, storedOptions),
|
|
348
|
+
persistedMetadata,
|
|
349
|
+
},
|
|
350
|
+
persistedMetadata,
|
|
351
|
+
),
|
|
352
|
+
));
|
|
332
353
|
}
|
|
333
354
|
}
|
|
334
355
|
const schemaErased: MapNodeCustomizableSchema<
|
|
@@ -7,7 +7,11 @@ import { assert, Lazy, fail, debugAssert } from "@fluidframework/core-utils/inte
|
|
|
7
7
|
import { UsageError } from "@fluidframework/telemetry-utils/internal";
|
|
8
8
|
import { isFluidHandle } from "@fluidframework/runtime-utils/internal";
|
|
9
9
|
|
|
10
|
-
import
|
|
10
|
+
import {
|
|
11
|
+
ObjectNodeStoredSchema,
|
|
12
|
+
type FieldKey,
|
|
13
|
+
type TreeFieldStoredSchema,
|
|
14
|
+
} from "../../../core/index.js";
|
|
11
15
|
import {
|
|
12
16
|
FieldKinds,
|
|
13
17
|
isTreeValue,
|
|
@@ -55,12 +59,11 @@ import {
|
|
|
55
59
|
getUnhydratedContext,
|
|
56
60
|
} from "../../createContext.js";
|
|
57
61
|
import { tryGetTreeNodeForField } from "../../getTreeNodeForField.js";
|
|
58
|
-
import {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
type UnannotateSchemaRecord,
|
|
62
|
+
import type {
|
|
63
|
+
ObjectNodeSchema,
|
|
64
|
+
ObjectNodeSchemaInternalData,
|
|
65
|
+
ObjectNodeSchemaPrivate,
|
|
66
|
+
UnannotateSchemaRecord,
|
|
64
67
|
} from "./objectNodeTypes.js";
|
|
65
68
|
import { prepareForInsertion } from "../../prepareForInsertion.js";
|
|
66
69
|
import {
|
|
@@ -87,7 +90,7 @@ import {
|
|
|
87
90
|
type FactoryContentObject,
|
|
88
91
|
type InsertableContent,
|
|
89
92
|
} from "../../unhydratedFlexTreeFromInsertable.js";
|
|
90
|
-
import { convertFieldKind } from "../../toStoredSchema.js";
|
|
93
|
+
import { convertField, convertFieldKind } from "../../toStoredSchema.js";
|
|
91
94
|
|
|
92
95
|
/**
|
|
93
96
|
* Generates the properties for an ObjectNode from its field schema object.
|
|
@@ -224,8 +227,9 @@ function createFlexKeyMapping(
|
|
|
224
227
|
): SimpleKeyMap {
|
|
225
228
|
const keyMap: Map<string | symbol, { storedKey: FieldKey; schema: FieldSchema }> = new Map();
|
|
226
229
|
for (const [propertyKey, fieldSchema] of Object.entries(fields)) {
|
|
227
|
-
const
|
|
228
|
-
|
|
230
|
+
const schema = normalizeFieldSchema(fieldSchema);
|
|
231
|
+
const storedKey = getStoredKey(propertyKey, schema);
|
|
232
|
+
keyMap.set(propertyKey, { storedKey, schema });
|
|
229
233
|
}
|
|
230
234
|
|
|
231
235
|
return keyMap;
|
|
@@ -288,10 +292,16 @@ function createProxyHandler(
|
|
|
288
292
|
: false;
|
|
289
293
|
}
|
|
290
294
|
|
|
295
|
+
const innerNode = getOrCreateInnerNode(proxy);
|
|
296
|
+
|
|
297
|
+
const innerSchema = innerNode.context.schema.nodeSchema.get(brand(schema.identifier));
|
|
298
|
+
assert(innerSchema instanceof ObjectNodeStoredSchema, "Expected ObjectNodeStoredSchema");
|
|
299
|
+
|
|
291
300
|
setField(
|
|
292
|
-
|
|
301
|
+
innerNode.getBoxed(fieldInfo.storedKey),
|
|
293
302
|
fieldInfo.schema,
|
|
294
303
|
value,
|
|
304
|
+
innerSchema.getFieldSchema(fieldInfo.storedKey),
|
|
295
305
|
);
|
|
296
306
|
return true;
|
|
297
307
|
},
|
|
@@ -348,8 +358,14 @@ export function setField(
|
|
|
348
358
|
field: FlexTreeField,
|
|
349
359
|
simpleFieldSchema: FieldSchema,
|
|
350
360
|
value: InsertableContent | undefined,
|
|
361
|
+
destinationSchema: TreeFieldStoredSchema,
|
|
351
362
|
): void {
|
|
352
|
-
const mapTree = prepareForInsertion(
|
|
363
|
+
const mapTree = prepareForInsertion(
|
|
364
|
+
value,
|
|
365
|
+
simpleFieldSchema,
|
|
366
|
+
field.context,
|
|
367
|
+
destinationSchema,
|
|
368
|
+
);
|
|
353
369
|
|
|
354
370
|
switch (field.schema) {
|
|
355
371
|
case FieldKinds.required.identifier: {
|
|
@@ -585,6 +601,20 @@ export function objectSchema<
|
|
|
585
601
|
flexKeyMap.values(),
|
|
586
602
|
({ schema }) => normalizeFieldSchema(schema).annotatedAllowedTypes,
|
|
587
603
|
),
|
|
604
|
+
(storedOptions) => {
|
|
605
|
+
const fields: Map<FieldKey, TreeFieldStoredSchema> = new Map();
|
|
606
|
+
for (const fieldSchema of flexKeyMap.values()) {
|
|
607
|
+
assert(
|
|
608
|
+
fieldSchema.schema instanceof FieldSchemaAlpha,
|
|
609
|
+
"Expected FieldSchemaAlpha",
|
|
610
|
+
);
|
|
611
|
+
fields.set(
|
|
612
|
+
brand(fieldSchema.storedKey),
|
|
613
|
+
convertField(fieldSchema.schema, storedOptions),
|
|
614
|
+
);
|
|
615
|
+
}
|
|
616
|
+
return new ObjectNodeStoredSchema(fields, persistedMetadata);
|
|
617
|
+
},
|
|
588
618
|
));
|
|
589
619
|
}
|
|
590
620
|
}
|
|
@@ -649,24 +679,6 @@ function assertUniqueKeys<
|
|
|
649
679
|
}
|
|
650
680
|
}
|
|
651
681
|
|
|
652
|
-
/**
|
|
653
|
-
* Creates a policy for allowing unknown optional fields on an object node which delegates to the policy defined
|
|
654
|
-
* on the object node's internal schema data.
|
|
655
|
-
*/
|
|
656
|
-
export function createUnknownOptionalFieldPolicy(
|
|
657
|
-
schema: ImplicitFieldSchema,
|
|
658
|
-
): SchemaPolicy["allowUnknownOptionalFields"] {
|
|
659
|
-
const context = getUnhydratedContext(schema);
|
|
660
|
-
return (identifier) => {
|
|
661
|
-
const storedSchema = context.schema.get(identifier);
|
|
662
|
-
return (
|
|
663
|
-
storedSchema !== undefined &&
|
|
664
|
-
isObjectNodeSchema(storedSchema) &&
|
|
665
|
-
storedSchema.allowUnknownOptionalFields
|
|
666
|
-
);
|
|
667
|
-
};
|
|
668
|
-
}
|
|
669
|
-
|
|
670
682
|
/**
|
|
671
683
|
* {@link TreeNodeSchemaInitializedData.toFlexContent} for Map nodes.
|
|
672
684
|
*
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { Lazy } from "@fluidframework/core-utils/internal";
|
|
6
|
+
import { assert, Lazy } from "@fluidframework/core-utils/internal";
|
|
7
7
|
import { UsageError } from "@fluidframework/telemetry-utils/internal";
|
|
8
8
|
|
|
9
9
|
import { type JsonCompatibleReadOnlyObject, brand } from "../../../util/index.js";
|
|
@@ -34,6 +34,7 @@ import {
|
|
|
34
34
|
type FlexContent,
|
|
35
35
|
CompatibilityLevel,
|
|
36
36
|
type TreeNodeSchemaPrivateData,
|
|
37
|
+
convertAllowedTypes,
|
|
37
38
|
} from "../../core/index.js";
|
|
38
39
|
import { getTreeNodeSchemaInitializedData } from "../../createContext.js";
|
|
39
40
|
import { tryGetTreeNodeForField } from "../../getTreeNodeForField.js";
|
|
@@ -51,12 +52,14 @@ import type {
|
|
|
51
52
|
TreeRecordNode,
|
|
52
53
|
} from "./recordNodeTypes.js";
|
|
53
54
|
import {
|
|
55
|
+
FieldKinds,
|
|
54
56
|
isTreeValue,
|
|
55
57
|
type FlexTreeNode,
|
|
56
58
|
type FlexTreeOptionalField,
|
|
57
59
|
} from "../../../feature-libraries/index.js";
|
|
58
60
|
import { prepareForInsertion } from "../../prepareForInsertion.js";
|
|
59
61
|
import { recordLikeDataToFlexContent } from "../common.js";
|
|
62
|
+
import { MapNodeStoredSchema } from "../../../core/index.js";
|
|
60
63
|
|
|
61
64
|
/**
|
|
62
65
|
* Create a proxy which implements the {@link TreeRecordNode} API.
|
|
@@ -122,11 +125,14 @@ function createRecordNodeProxy(
|
|
|
122
125
|
const innerNode = getOrCreateInnerNode(receiver);
|
|
123
126
|
const field = innerNode.getBoxed(brand(key)) as FlexTreeOptionalField;
|
|
124
127
|
const kernel = getKernel(receiver);
|
|
128
|
+
const innerSchema = innerNode.context.schema.nodeSchema.get(brand(schema.identifier));
|
|
129
|
+
assert(innerSchema instanceof MapNodeStoredSchema, "Expected MapNodeStoredSchema");
|
|
125
130
|
|
|
126
131
|
const mapTree = prepareForInsertion(
|
|
127
132
|
value,
|
|
128
133
|
createFieldSchema(FieldKind.Optional, kernel.schema.info as ImplicitAllowedTypes),
|
|
129
134
|
innerNode.context,
|
|
135
|
+
innerSchema.mapFields,
|
|
130
136
|
);
|
|
131
137
|
|
|
132
138
|
field.editor.set(mapTree, field.length === 0);
|
|
@@ -390,7 +396,19 @@ export function recordSchema<
|
|
|
390
396
|
}
|
|
391
397
|
|
|
392
398
|
public static get [privateDataSymbol](): TreeNodeSchemaPrivateData {
|
|
393
|
-
return (privateData ??= createTreeNodeSchemaPrivateData(
|
|
399
|
+
return (privateData ??= createTreeNodeSchemaPrivateData(
|
|
400
|
+
this,
|
|
401
|
+
[info],
|
|
402
|
+
(storedOptions) =>
|
|
403
|
+
new MapNodeStoredSchema(
|
|
404
|
+
{
|
|
405
|
+
kind: FieldKinds.optional.identifier,
|
|
406
|
+
types: convertAllowedTypes(info, storedOptions),
|
|
407
|
+
persistedMetadata,
|
|
408
|
+
},
|
|
409
|
+
persistedMetadata,
|
|
410
|
+
),
|
|
411
|
+
));
|
|
394
412
|
}
|
|
395
413
|
}
|
|
396
414
|
|