@fluidframework/tree 2.72.0 → 2.74.0-365691
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/CHANGELOG.md +99 -0
- package/api-report/tree.alpha.api.md +32 -31
- package/dist/alpha.d.ts +7 -1
- package/dist/api.d.ts +6 -2
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +2 -11
- package/dist/api.js.map +1 -1
- package/dist/codec/codec.d.ts +9 -2
- package/dist/codec/codec.d.ts.map +1 -1
- package/dist/codec/codec.js +9 -2
- package/dist/codec/codec.js.map +1 -1
- package/dist/codec/index.d.ts +1 -1
- package/dist/codec/index.d.ts.map +1 -1
- package/dist/codec/index.js +2 -1
- package/dist/codec/index.js.map +1 -1
- package/dist/codec/versioned/codec.d.ts +7 -2
- package/dist/codec/versioned/codec.d.ts.map +1 -1
- package/dist/codec/versioned/codec.js +24 -1
- package/dist/codec/versioned/codec.js.map +1 -1
- package/dist/codec/versioned/index.d.ts +1 -1
- package/dist/codec/versioned/index.d.ts.map +1 -1
- package/dist/codec/versioned/index.js +2 -1
- package/dist/codec/versioned/index.js.map +1 -1
- package/dist/core/schema-stored/schema.d.ts +12 -1
- package/dist/core/schema-stored/schema.d.ts.map +1 -1
- package/dist/core/schema-stored/schema.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecs.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecs.js +5 -3
- package/dist/core/tree/detachedFieldIndexCodecs.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkTree.d.ts +4 -5
- package/dist/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js +1 -0
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts +2 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts +3 -3
- package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/codecs.js +32 -18
- package/dist/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +6 -6
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js +4 -2
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/format.d.ts +156 -4
- package/dist/feature-libraries/chunked-forest/codec/format.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/format.js +7 -3
- package/dist/feature-libraries/chunked-forest/codec/format.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/formatGeneric.d.ts +8 -3
- package/dist/feature-libraries/chunked-forest/codec/formatGeneric.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/formatGeneric.js +4 -1
- package/dist/feature-libraries/chunked-forest/codec/formatGeneric.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.d.ts +2 -2
- package/dist/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/index.d.ts +1 -1
- package/dist/feature-libraries/chunked-forest/codec/index.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/index.js +2 -1
- package/dist/feature-libraries/chunked-forest/codec/index.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.d.ts +13 -13
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.js +23 -6
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts +9 -8
- package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.js +20 -4
- package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/index.d.ts +1 -1
- package/dist/feature-libraries/chunked-forest/index.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/index.js +2 -1
- package/dist/feature-libraries/chunked-forest/index.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts +35 -17
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js +53 -55
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/dist/feature-libraries/default-schema/index.d.ts +1 -3
- package/dist/feature-libraries/default-schema/index.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/index.js +2 -8
- package/dist/feature-libraries/default-schema/index.js.map +1 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.js +1 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/dist/feature-libraries/forest-summary/format.d.ts +2 -2
- package/dist/feature-libraries/forest-summary/format.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/format.js +4 -2
- package/dist/feature-libraries/forest-summary/format.js.map +1 -1
- package/dist/feature-libraries/index.d.ts +5 -4
- package/dist/feature-libraries/index.d.ts.map +1 -1
- package/dist/feature-libraries/index.js +8 -8
- package/dist/feature-libraries/index.js.map +1 -1
- package/dist/feature-libraries/modular-schema/comparison.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/comparison.js +1 -2
- package/dist/feature-libraries/modular-schema/comparison.js.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldKind.d.ts +38 -12
- package/dist/feature-libraries/modular-schema/fieldKind.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldKind.js +29 -11
- package/dist/feature-libraries/modular-schema/fieldKind.js.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldKindConfiguration.d.ts +2 -2
- package/dist/feature-libraries/modular-schema/fieldKindConfiguration.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldKindConfiguration.js.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts +2 -2
- package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKind.js +3 -2
- package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/dist/feature-libraries/modular-schema/index.d.ts +0 -1
- package/dist/feature-libraries/modular-schema/index.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/index.js +1 -3
- package/dist/feature-libraries/modular-schema/index.js.map +1 -1
- package/dist/feature-libraries/modular-schema/isNeverTree.d.ts +5 -6
- package/dist/feature-libraries/modular-schema/isNeverTree.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/isNeverTree.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts +2 -2
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +8 -8
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js +1 -2
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts +66 -9
- 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 +3 -2
- package/dist/feature-libraries/object-forest/objectForest.js.map +1 -1
- package/dist/feature-libraries/optional-field/index.d.ts +1 -1
- package/dist/feature-libraries/optional-field/index.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/index.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecs.js +1 -5
- package/dist/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -1
- package/dist/feature-libraries/schema-index/codec.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/codec.js +5 -3
- package/dist/feature-libraries/schema-index/codec.js.map +1 -1
- package/dist/feature-libraries/{default-schema/schemaChecker.d.ts → schemaChecker.d.ts} +2 -2
- package/dist/feature-libraries/schemaChecker.d.ts.map +1 -0
- package/dist/feature-libraries/{default-schema/schemaChecker.js → schemaChecker.js} +3 -3
- package/dist/feature-libraries/schemaChecker.js.map +1 -0
- package/dist/feature-libraries/sequence-field/formatV2.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/formatV2.js +1 -0
- package/dist/feature-libraries/sequence-field/formatV2.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.js +0 -2
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -1
- package/dist/feature-libraries/treeCompressionUtils.d.ts +2 -12
- package/dist/feature-libraries/treeCompressionUtils.d.ts.map +1 -1
- package/dist/feature-libraries/treeCompressionUtils.js +4 -14
- package/dist/feature-libraries/treeCompressionUtils.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -3
- package/dist/index.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/index.d.ts +1 -1
- package/dist/shared-tree/index.d.ts.map +1 -1
- package/dist/shared-tree/index.js +1 -2
- package/dist/shared-tree/index.js.map +1 -1
- package/dist/shared-tree/sharedTree.d.ts +7 -54
- package/dist/shared-tree/sharedTree.d.ts.map +1 -1
- package/dist/shared-tree/sharedTree.js +2 -52
- package/dist/shared-tree/sharedTree.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.d.ts +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.js +0 -2
- package/dist/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts +2 -2
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/dist/shared-tree/treeCheckout.d.ts +2 -2
- package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
- package/dist/shared-tree/treeCheckout.js.map +1 -1
- package/dist/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerCodecs.js +12 -6
- package/dist/shared-tree-core/editManagerCodecs.js.map +1 -1
- package/dist/shared-tree-core/editManagerFormatCommons.d.ts +3 -4
- package/dist/shared-tree-core/editManagerFormatCommons.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerFormatCommons.js +5 -8
- package/dist/shared-tree-core/editManagerFormatCommons.js.map +1 -1
- package/dist/shared-tree-core/index.d.ts +3 -3
- package/dist/shared-tree-core/index.d.ts.map +1 -1
- package/dist/shared-tree-core/index.js +3 -2
- package/dist/shared-tree-core/index.js.map +1 -1
- package/dist/shared-tree-core/messageCodecs.d.ts.map +1 -1
- package/dist/shared-tree-core/messageCodecs.js +20 -9
- package/dist/shared-tree-core/messageCodecs.js.map +1 -1
- package/dist/shared-tree-core/messageFormat.d.ts +4 -6
- package/dist/shared-tree-core/messageFormat.d.ts.map +1 -1
- package/dist/shared-tree-core/messageFormat.js +9 -7
- package/dist/shared-tree-core/messageFormat.js.map +1 -1
- package/dist/simple-tree/api/configuration.d.ts +2 -0
- package/dist/simple-tree/api/configuration.d.ts.map +1 -1
- package/dist/simple-tree/api/configuration.js +10 -0
- package/dist/simple-tree/api/configuration.js.map +1 -1
- package/dist/simple-tree/api/incrementalAllowedTypes.d.ts +15 -12
- package/dist/simple-tree/api/incrementalAllowedTypes.d.ts.map +1 -1
- package/dist/simple-tree/api/incrementalAllowedTypes.js +17 -14
- package/dist/simple-tree/api/incrementalAllowedTypes.js.map +1 -1
- package/dist/simple-tree/api/index.d.ts +2 -1
- package/dist/simple-tree/api/index.d.ts.map +1 -1
- package/dist/simple-tree/api/index.js +6 -2
- package/dist/simple-tree/api/index.js.map +1 -1
- package/dist/simple-tree/api/schemaFromSimple.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFromSimple.js +7 -1
- package/dist/simple-tree/api/schemaFromSimple.js.map +1 -1
- package/dist/simple-tree/api/simpleSchemaCodec.js +4 -6
- package/dist/simple-tree/api/simpleSchemaCodec.js.map +1 -1
- package/dist/simple-tree/api/snapshotCompatibilityChecker.d.ts +103 -0
- package/dist/simple-tree/api/snapshotCompatibilityChecker.d.ts.map +1 -0
- package/dist/simple-tree/api/snapshotCompatibilityChecker.js +128 -0
- package/dist/simple-tree/api/snapshotCompatibilityChecker.js.map +1 -0
- package/dist/simple-tree/api/tree.d.ts +2 -2
- package/dist/simple-tree/api/tree.js +1 -1
- package/dist/simple-tree/api/tree.js.map +1 -1
- package/dist/simple-tree/core/allowedTypes.js +1 -1
- package/dist/simple-tree/core/allowedTypes.js.map +1 -1
- package/dist/simple-tree/core/index.d.ts +3 -3
- package/dist/simple-tree/core/index.d.ts.map +1 -1
- package/dist/simple-tree/core/index.js +3 -1
- package/dist/simple-tree/core/index.js.map +1 -1
- package/dist/simple-tree/core/toStored.d.ts +12 -5
- package/dist/simple-tree/core/toStored.d.ts.map +1 -1
- package/dist/simple-tree/core/toStored.js +26 -10
- package/dist/simple-tree/core/toStored.js.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.js +1 -0
- package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/dist/simple-tree/core/treeNodeSchema.d.ts +1 -6
- 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 +1 -1
- package/dist/simple-tree/core/treeNodeValid.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeValid.js +1 -2
- package/dist/simple-tree/core/treeNodeValid.js.map +1 -1
- package/dist/simple-tree/fieldSchema.d.ts.map +1 -1
- package/dist/simple-tree/fieldSchema.js +1 -8
- package/dist/simple-tree/fieldSchema.js.map +1 -1
- package/dist/simple-tree/index.d.ts +3 -3
- package/dist/simple-tree/index.d.ts.map +1 -1
- package/dist/simple-tree/index.js +10 -4
- 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 +0 -1
- 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 +14 -49
- package/dist/simple-tree/node-kinds/array/arrayNode.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 +1 -5
- package/dist/simple-tree/node-kinds/map/mapNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNode.js +3 -10
- 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 +1 -5
- package/dist/simple-tree/node-kinds/record/recordNode.js.map +1 -1
- package/dist/simple-tree/simpleSchema.d.ts +15 -3
- 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 +20 -8
- package/dist/simple-tree/toStoredSchema.d.ts.map +1 -1
- package/dist/simple-tree/toStoredSchema.js +27 -22
- package/dist/simple-tree/toStoredSchema.js.map +1 -1
- package/dist/simple-tree/unhydratedFlexTreeFromInsertable.d.ts.map +1 -1
- package/dist/simple-tree/unhydratedFlexTreeFromInsertable.js +18 -15
- package/dist/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -1
- package/dist/tableSchema.d.ts +22 -52
- package/dist/tableSchema.d.ts.map +1 -1
- package/dist/tableSchema.js +141 -277
- package/dist/tableSchema.js.map +1 -1
- package/dist/treeFactory.d.ts +5 -0
- package/dist/treeFactory.d.ts.map +1 -1
- package/dist/treeFactory.js +12 -5
- package/dist/treeFactory.js.map +1 -1
- package/dist/util/arrayUtilities.d.ts +45 -0
- package/dist/util/arrayUtilities.d.ts.map +1 -0
- package/dist/util/arrayUtilities.js +76 -0
- package/dist/util/arrayUtilities.js.map +1 -0
- package/dist/util/breakable.js +3 -3
- package/dist/util/breakable.js.map +1 -1
- package/dist/util/index.d.ts +1 -0
- package/dist/util/index.d.ts.map +1 -1
- package/dist/util/index.js +7 -2
- package/dist/util/index.js.map +1 -1
- package/dist/util/typeCheckTests.d.ts.map +1 -1
- package/dist/util/typeCheckTests.js.map +1 -1
- package/lib/alpha.d.ts +7 -1
- package/lib/api.d.ts +6 -2
- package/lib/api.d.ts.map +1 -1
- package/lib/api.js +2 -13
- package/lib/api.js.map +1 -1
- package/lib/codec/codec.d.ts +9 -2
- package/lib/codec/codec.d.ts.map +1 -1
- package/lib/codec/codec.js +9 -2
- package/lib/codec/codec.js.map +1 -1
- package/lib/codec/index.d.ts +1 -1
- package/lib/codec/index.d.ts.map +1 -1
- package/lib/codec/index.js +1 -1
- package/lib/codec/index.js.map +1 -1
- package/lib/codec/versioned/codec.d.ts +7 -2
- package/lib/codec/versioned/codec.d.ts.map +1 -1
- package/lib/codec/versioned/codec.js +22 -0
- package/lib/codec/versioned/codec.js.map +1 -1
- package/lib/codec/versioned/index.d.ts +1 -1
- package/lib/codec/versioned/index.d.ts.map +1 -1
- package/lib/codec/versioned/index.js +1 -1
- package/lib/codec/versioned/index.js.map +1 -1
- package/lib/core/schema-stored/schema.d.ts +12 -1
- package/lib/core/schema-stored/schema.d.ts.map +1 -1
- package/lib/core/schema-stored/schema.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecs.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecs.js +5 -3
- package/lib/core/tree/detachedFieldIndexCodecs.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkTree.d.ts +4 -5
- package/lib/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js +2 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts +2 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts +3 -3
- package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/codecs.js +36 -22
- package/lib/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +6 -6
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js +4 -2
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/format.d.ts +156 -4
- package/lib/feature-libraries/chunked-forest/codec/format.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/format.js +6 -2
- package/lib/feature-libraries/chunked-forest/codec/format.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/formatGeneric.d.ts +8 -3
- package/lib/feature-libraries/chunked-forest/codec/formatGeneric.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/formatGeneric.js +4 -1
- package/lib/feature-libraries/chunked-forest/codec/formatGeneric.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.d.ts +2 -2
- package/lib/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/index.d.ts +1 -1
- package/lib/feature-libraries/chunked-forest/codec/index.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/index.js +1 -1
- package/lib/feature-libraries/chunked-forest/codec/index.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.d.ts +13 -13
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.js +22 -6
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts +9 -8
- package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.js +17 -2
- package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/index.d.ts +1 -1
- package/lib/feature-libraries/chunked-forest/index.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/index.js +1 -1
- package/lib/feature-libraries/chunked-forest/index.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts +35 -17
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.js +55 -57
- package/lib/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/lib/feature-libraries/default-schema/index.d.ts +1 -3
- package/lib/feature-libraries/default-schema/index.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/index.js +1 -3
- package/lib/feature-libraries/default-schema/index.js.map +1 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.js +2 -2
- package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/lib/feature-libraries/forest-summary/format.d.ts +2 -2
- package/lib/feature-libraries/forest-summary/format.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/format.js +4 -2
- package/lib/feature-libraries/forest-summary/format.js.map +1 -1
- package/lib/feature-libraries/index.d.ts +5 -4
- package/lib/feature-libraries/index.d.ts.map +1 -1
- package/lib/feature-libraries/index.js +5 -4
- package/lib/feature-libraries/index.js.map +1 -1
- package/lib/feature-libraries/modular-schema/comparison.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/comparison.js +1 -2
- package/lib/feature-libraries/modular-schema/comparison.js.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldKind.d.ts +38 -12
- package/lib/feature-libraries/modular-schema/fieldKind.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldKind.js +29 -11
- package/lib/feature-libraries/modular-schema/fieldKind.js.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldKindConfiguration.d.ts +2 -2
- package/lib/feature-libraries/modular-schema/fieldKindConfiguration.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldKindConfiguration.js.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts +2 -2
- package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKind.js +3 -2
- package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/lib/feature-libraries/modular-schema/index.d.ts +0 -1
- package/lib/feature-libraries/modular-schema/index.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/index.js +0 -1
- package/lib/feature-libraries/modular-schema/index.js.map +1 -1
- package/lib/feature-libraries/modular-schema/isNeverTree.d.ts +5 -6
- package/lib/feature-libraries/modular-schema/isNeverTree.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/isNeverTree.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts +2 -2
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +8 -8
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js +1 -2
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts +66 -9
- 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 +2 -1
- package/lib/feature-libraries/object-forest/objectForest.js.map +1 -1
- package/lib/feature-libraries/optional-field/index.d.ts +1 -1
- package/lib/feature-libraries/optional-field/index.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/index.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecs.js +1 -5
- package/lib/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -1
- package/lib/feature-libraries/schema-index/codec.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/codec.js +5 -3
- package/lib/feature-libraries/schema-index/codec.js.map +1 -1
- package/lib/feature-libraries/{default-schema/schemaChecker.d.ts → schemaChecker.d.ts} +2 -2
- package/lib/feature-libraries/schemaChecker.d.ts.map +1 -0
- package/lib/feature-libraries/{default-schema/schemaChecker.js → schemaChecker.js} +3 -3
- package/lib/feature-libraries/schemaChecker.js.map +1 -0
- package/lib/feature-libraries/sequence-field/formatV2.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/formatV2.js +1 -0
- package/lib/feature-libraries/sequence-field/formatV2.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.js +0 -2
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -1
- package/lib/feature-libraries/treeCompressionUtils.d.ts +2 -12
- package/lib/feature-libraries/treeCompressionUtils.d.ts.map +1 -1
- package/lib/feature-libraries/treeCompressionUtils.js +3 -13
- package/lib/feature-libraries/treeCompressionUtils.js.map +1 -1
- package/lib/index.d.ts +4 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -3
- package/lib/index.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/index.d.ts +1 -1
- package/lib/shared-tree/index.d.ts.map +1 -1
- package/lib/shared-tree/index.js +1 -1
- package/lib/shared-tree/index.js.map +1 -1
- package/lib/shared-tree/sharedTree.d.ts +7 -54
- package/lib/shared-tree/sharedTree.d.ts.map +1 -1
- package/lib/shared-tree/sharedTree.js +1 -51
- package/lib/shared-tree/sharedTree.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.d.ts +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.js +0 -2
- package/lib/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts +2 -2
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/lib/shared-tree/treeCheckout.d.ts +2 -2
- package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
- package/lib/shared-tree/treeCheckout.js.map +1 -1
- package/lib/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerCodecs.js +13 -7
- package/lib/shared-tree-core/editManagerCodecs.js.map +1 -1
- package/lib/shared-tree-core/editManagerFormatCommons.d.ts +3 -4
- package/lib/shared-tree-core/editManagerFormatCommons.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerFormatCommons.js +4 -7
- package/lib/shared-tree-core/editManagerFormatCommons.js.map +1 -1
- package/lib/shared-tree-core/index.d.ts +3 -3
- package/lib/shared-tree-core/index.d.ts.map +1 -1
- package/lib/shared-tree-core/index.js +2 -2
- package/lib/shared-tree-core/index.js.map +1 -1
- package/lib/shared-tree-core/messageCodecs.d.ts.map +1 -1
- package/lib/shared-tree-core/messageCodecs.js +21 -10
- package/lib/shared-tree-core/messageCodecs.js.map +1 -1
- package/lib/shared-tree-core/messageFormat.d.ts +4 -6
- package/lib/shared-tree-core/messageFormat.d.ts.map +1 -1
- package/lib/shared-tree-core/messageFormat.js +8 -6
- package/lib/shared-tree-core/messageFormat.js.map +1 -1
- package/lib/simple-tree/api/configuration.d.ts +2 -0
- package/lib/simple-tree/api/configuration.d.ts.map +1 -1
- package/lib/simple-tree/api/configuration.js +10 -0
- package/lib/simple-tree/api/configuration.js.map +1 -1
- package/lib/simple-tree/api/incrementalAllowedTypes.d.ts +15 -12
- package/lib/simple-tree/api/incrementalAllowedTypes.d.ts.map +1 -1
- package/lib/simple-tree/api/incrementalAllowedTypes.js +15 -12
- package/lib/simple-tree/api/incrementalAllowedTypes.js.map +1 -1
- package/lib/simple-tree/api/index.d.ts +2 -1
- 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/schemaFromSimple.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFromSimple.js +8 -2
- package/lib/simple-tree/api/schemaFromSimple.js.map +1 -1
- package/lib/simple-tree/api/simpleSchemaCodec.js +5 -7
- package/lib/simple-tree/api/simpleSchemaCodec.js.map +1 -1
- package/lib/simple-tree/api/snapshotCompatibilityChecker.d.ts +103 -0
- package/lib/simple-tree/api/snapshotCompatibilityChecker.d.ts.map +1 -0
- package/lib/simple-tree/api/snapshotCompatibilityChecker.js +122 -0
- package/lib/simple-tree/api/snapshotCompatibilityChecker.js.map +1 -0
- package/lib/simple-tree/api/tree.d.ts +2 -2
- package/lib/simple-tree/api/tree.js +1 -1
- package/lib/simple-tree/api/tree.js.map +1 -1
- package/lib/simple-tree/core/allowedTypes.js +1 -1
- package/lib/simple-tree/core/allowedTypes.js.map +1 -1
- package/lib/simple-tree/core/index.d.ts +3 -3
- package/lib/simple-tree/core/index.d.ts.map +1 -1
- package/lib/simple-tree/core/index.js +2 -2
- package/lib/simple-tree/core/index.js.map +1 -1
- package/lib/simple-tree/core/toStored.d.ts +12 -5
- package/lib/simple-tree/core/toStored.d.ts.map +1 -1
- package/lib/simple-tree/core/toStored.js +25 -9
- package/lib/simple-tree/core/toStored.js.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.js +1 -0
- package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/lib/simple-tree/core/treeNodeSchema.d.ts +1 -6
- 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 +1 -1
- package/lib/simple-tree/core/treeNodeValid.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeValid.js +1 -2
- package/lib/simple-tree/core/treeNodeValid.js.map +1 -1
- package/lib/simple-tree/fieldSchema.d.ts.map +1 -1
- package/lib/simple-tree/fieldSchema.js +2 -9
- package/lib/simple-tree/fieldSchema.js.map +1 -1
- package/lib/simple-tree/index.d.ts +3 -3
- package/lib/simple-tree/index.d.ts.map +1 -1
- package/lib/simple-tree/index.js +3 -3
- 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 +1 -2
- 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 +16 -51
- package/lib/simple-tree/node-kinds/array/arrayNode.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 +3 -7
- package/lib/simple-tree/node-kinds/map/mapNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNode.js +4 -11
- 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 +3 -7
- package/lib/simple-tree/node-kinds/record/recordNode.js.map +1 -1
- package/lib/simple-tree/simpleSchema.d.ts +15 -3
- 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 +20 -8
- package/lib/simple-tree/toStoredSchema.d.ts.map +1 -1
- package/lib/simple-tree/toStoredSchema.js +28 -24
- package/lib/simple-tree/toStoredSchema.js.map +1 -1
- package/lib/simple-tree/unhydratedFlexTreeFromInsertable.d.ts.map +1 -1
- package/lib/simple-tree/unhydratedFlexTreeFromInsertable.js +20 -17
- package/lib/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -1
- package/lib/tableSchema.d.ts +22 -52
- package/lib/tableSchema.d.ts.map +1 -1
- package/lib/tableSchema.js +143 -279
- package/lib/tableSchema.js.map +1 -1
- package/lib/treeFactory.d.ts +5 -0
- package/lib/treeFactory.d.ts.map +1 -1
- package/lib/treeFactory.js +10 -4
- package/lib/treeFactory.js.map +1 -1
- package/lib/util/arrayUtilities.d.ts +45 -0
- package/lib/util/arrayUtilities.d.ts.map +1 -0
- package/lib/util/arrayUtilities.js +69 -0
- package/lib/util/arrayUtilities.js.map +1 -0
- package/lib/util/breakable.js +3 -3
- package/lib/util/breakable.js.map +1 -1
- package/lib/util/index.d.ts +1 -0
- package/lib/util/index.d.ts.map +1 -1
- package/lib/util/index.js +1 -0
- package/lib/util/index.js.map +1 -1
- package/lib/util/typeCheckTests.d.ts.map +1 -1
- package/lib/util/typeCheckTests.js.map +1 -1
- package/package.json +22 -22
- package/src/api.ts +22 -11
- package/src/codec/codec.ts +10 -2
- package/src/codec/index.ts +1 -0
- package/src/codec/versioned/codec.ts +40 -2
- package/src/codec/versioned/index.ts +1 -0
- package/src/core/schema-stored/schema.ts +12 -1
- package/src/core/tree/detachedFieldIndexCodecs.ts +10 -3
- package/src/feature-libraries/README.md +1 -1
- package/src/feature-libraries/chunked-forest/chunkTree.ts +3 -3
- package/src/feature-libraries/chunked-forest/codec/chunkDecoding.ts +5 -0
- package/src/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.ts +2 -1
- package/src/feature-libraries/chunked-forest/codec/codecs.ts +55 -26
- package/src/feature-libraries/chunked-forest/codec/compressedEncode.ts +8 -3
- package/src/feature-libraries/chunked-forest/codec/format.ts +14 -4
- package/src/feature-libraries/chunked-forest/codec/formatGeneric.ts +7 -2
- package/src/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.ts +5 -6
- package/src/feature-libraries/chunked-forest/codec/index.ts +1 -4
- package/src/feature-libraries/chunked-forest/codec/schemaBasedEncode.ts +62 -9
- package/src/feature-libraries/chunked-forest/codec/uncompressedEncode.ts +24 -2
- package/src/feature-libraries/chunked-forest/index.ts +1 -1
- package/src/feature-libraries/default-schema/defaultFieldKinds.ts +86 -74
- package/src/feature-libraries/default-schema/index.ts +1 -9
- package/src/feature-libraries/forest-summary/forestSummarizer.ts +2 -2
- package/src/feature-libraries/forest-summary/format.ts +15 -9
- package/src/feature-libraries/index.ts +8 -10
- package/src/feature-libraries/modular-schema/comparison.ts +2 -3
- package/src/feature-libraries/modular-schema/fieldKind.ts +90 -13
- package/src/feature-libraries/modular-schema/fieldKindConfiguration.ts +2 -3
- package/src/feature-libraries/modular-schema/genericFieldKind.ts +6 -6
- package/src/feature-libraries/modular-schema/index.ts +0 -1
- package/src/feature-libraries/modular-schema/isNeverTree.ts +7 -8
- package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +3 -6
- package/src/feature-libraries/modular-schema/modularChangeFamily.ts +13 -13
- package/src/feature-libraries/object-forest/objectForest.ts +2 -6
- package/src/feature-libraries/optional-field/index.ts +1 -0
- package/src/feature-libraries/optional-field/optionalFieldCodecs.ts +1 -5
- package/src/feature-libraries/schema-index/codec.ts +10 -3
- package/src/feature-libraries/{default-schema/schemaChecker.ts → schemaChecker.ts} +4 -4
- package/src/feature-libraries/sequence-field/formatV2.ts +1 -0
- package/src/feature-libraries/sequence-field/sequenceFieldCodecs.ts +0 -2
- package/src/feature-libraries/treeCompressionUtils.ts +1 -15
- package/src/index.ts +7 -1
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/index.ts +0 -1
- package/src/shared-tree/sharedTree.ts +12 -88
- package/src/shared-tree/sharedTreeChangeCodecs.ts +1 -6
- package/src/shared-tree/sharedTreeChangeFamily.ts +2 -2
- package/src/shared-tree/treeCheckout.ts +2 -2
- package/src/shared-tree-core/editManagerCodecs.ts +19 -7
- package/src/shared-tree-core/editManagerFormatCommons.ts +11 -12
- package/src/shared-tree-core/index.ts +7 -3
- package/src/shared-tree-core/messageCodecs.ts +32 -17
- package/src/shared-tree-core/messageFormat.ts +8 -6
- package/src/simple-tree/api/configuration.ts +17 -4
- package/src/simple-tree/api/incrementalAllowedTypes.ts +20 -18
- package/src/simple-tree/api/index.ts +6 -1
- package/src/simple-tree/api/schemaFromSimple.ts +14 -6
- package/src/simple-tree/api/simpleSchemaCodec.ts +10 -9
- package/src/simple-tree/api/snapshotCompatibilityChecker.ts +135 -0
- package/src/simple-tree/api/tree.ts +2 -2
- package/src/simple-tree/core/allowedTypes.ts +1 -1
- package/src/simple-tree/core/index.ts +3 -1
- package/src/simple-tree/core/toStored.ts +42 -18
- package/src/simple-tree/core/treeNodeKernel.ts +1 -0
- package/src/simple-tree/core/treeNodeSchema.ts +1 -7
- package/src/simple-tree/core/treeNodeValid.ts +0 -2
- package/src/simple-tree/fieldSchema.ts +2 -11
- package/src/simple-tree/index.ts +7 -2
- package/src/simple-tree/leafNodeSchema.ts +1 -2
- package/src/simple-tree/node-kinds/array/arrayNode.ts +28 -75
- package/src/simple-tree/node-kinds/map/mapNode.ts +1 -15
- package/src/simple-tree/node-kinds/object/objectNode.ts +4 -18
- package/src/simple-tree/node-kinds/record/recordNode.ts +1 -15
- package/src/simple-tree/simpleSchema.ts +16 -3
- package/src/simple-tree/toStoredSchema.ts +54 -38
- package/src/simple-tree/unhydratedFlexTreeFromInsertable.ts +22 -17
- package/src/tableSchema.ts +110 -334
- package/src/treeFactory.ts +13 -4
- package/src/util/arrayUtilities.ts +88 -0
- package/src/util/breakable.ts +4 -4
- package/src/util/index.ts +6 -0
- package/src/util/typeCheckTests.ts +0 -1
- package/dist/feature-libraries/default-schema/defaultSchema.d.ts +0 -10
- package/dist/feature-libraries/default-schema/defaultSchema.d.ts.map +0 -1
- package/dist/feature-libraries/default-schema/defaultSchema.js +0 -15
- package/dist/feature-libraries/default-schema/defaultSchema.js.map +0 -1
- package/dist/feature-libraries/default-schema/schemaChecker.d.ts.map +0 -1
- package/dist/feature-libraries/default-schema/schemaChecker.js.map +0 -1
- package/dist/feature-libraries/modular-schema/fieldKindWithEditor.d.ts +0 -50
- package/dist/feature-libraries/modular-schema/fieldKindWithEditor.d.ts.map +0 -1
- package/dist/feature-libraries/modular-schema/fieldKindWithEditor.js +0 -76
- package/dist/feature-libraries/modular-schema/fieldKindWithEditor.js.map +0 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecV1.d.ts +0 -12
- package/dist/feature-libraries/optional-field/optionalFieldCodecV1.d.ts.map +0 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecV1.js +0 -158
- package/dist/feature-libraries/optional-field/optionalFieldCodecV1.js.map +0 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV1.d.ts +0 -11
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV1.d.ts.map +0 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV1.js +0 -245
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV1.js.map +0 -1
- package/lib/feature-libraries/default-schema/defaultSchema.d.ts +0 -10
- package/lib/feature-libraries/default-schema/defaultSchema.d.ts.map +0 -1
- package/lib/feature-libraries/default-schema/defaultSchema.js +0 -12
- package/lib/feature-libraries/default-schema/defaultSchema.js.map +0 -1
- package/lib/feature-libraries/default-schema/schemaChecker.d.ts.map +0 -1
- package/lib/feature-libraries/default-schema/schemaChecker.js.map +0 -1
- package/lib/feature-libraries/modular-schema/fieldKindWithEditor.d.ts +0 -50
- package/lib/feature-libraries/modular-schema/fieldKindWithEditor.d.ts.map +0 -1
- package/lib/feature-libraries/modular-schema/fieldKindWithEditor.js +0 -71
- package/lib/feature-libraries/modular-schema/fieldKindWithEditor.js.map +0 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecV1.d.ts +0 -12
- package/lib/feature-libraries/optional-field/optionalFieldCodecV1.d.ts.map +0 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecV1.js +0 -154
- package/lib/feature-libraries/optional-field/optionalFieldCodecV1.js.map +0 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV1.d.ts +0 -11
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV1.d.ts.map +0 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV1.js +0 -241
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV1.js.map +0 -1
- package/src/feature-libraries/default-schema/defaultSchema.ts +0 -15
- package/src/feature-libraries/modular-schema/fieldKindWithEditor.ts +0 -108
- package/src/feature-libraries/optional-field/optionalFieldCodecV1.ts +0 -208
- package/src/feature-libraries/sequence-field/sequenceFieldCodecV1.ts +0 -344
|
@@ -4,18 +4,15 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { brand } from "../../util/index.js";
|
|
7
|
-
import {
|
|
8
|
-
normalizeAndEvaluateAnnotatedAllowedTypes,
|
|
9
|
-
type AnnotatedAllowedType,
|
|
10
|
-
type ImplicitAllowedTypes,
|
|
11
|
-
type SchemaUpgrade,
|
|
12
|
-
} from "./allowedTypes.js";
|
|
7
|
+
import type { SchemaUpgrade } from "./allowedTypes.js";
|
|
13
8
|
import type { TreeNodeSchemaIdentifier, TreeTypeSet } from "../../core/index.js";
|
|
9
|
+
import type { SimpleAllowedTypeAttributes, SimpleAllowedTypes } from "../simpleSchema.js";
|
|
10
|
+
import { UsageError } from "@fluidframework/telemetry-utils/internal";
|
|
14
11
|
|
|
15
12
|
/**
|
|
16
13
|
* Options for generating a {@link TreeStoredSchema} from view schema.
|
|
17
14
|
*/
|
|
18
|
-
export interface
|
|
15
|
+
export interface StoredFromViewSchemaGenerationOptions {
|
|
19
16
|
/**
|
|
20
17
|
* Determines whether to include staged schema in the resulting stored schema.
|
|
21
18
|
* @remarks
|
|
@@ -24,6 +21,16 @@ export interface StoredSchemaGenerationOptions {
|
|
|
24
21
|
includeStaged(upgrade: SchemaUpgrade): boolean;
|
|
25
22
|
}
|
|
26
23
|
|
|
24
|
+
/**
|
|
25
|
+
* Marker type indicating that the input schema is already a stored schema.
|
|
26
|
+
*/
|
|
27
|
+
export const ExpectStored = Symbol("ExpectStored");
|
|
28
|
+
export type ExpectStored = typeof ExpectStored;
|
|
29
|
+
|
|
30
|
+
export type StoredSchemaGenerationOptions =
|
|
31
|
+
| StoredFromViewSchemaGenerationOptions
|
|
32
|
+
| ExpectStored;
|
|
33
|
+
|
|
27
34
|
/**
|
|
28
35
|
* Filters an allowed type based on the provided options.
|
|
29
36
|
* @param allowedType - The allowed type to filter.
|
|
@@ -31,30 +38,47 @@ export interface StoredSchemaGenerationOptions {
|
|
|
31
38
|
* @returns Whether the allowed type passes the filter.
|
|
32
39
|
*/
|
|
33
40
|
export function allowedTypeFilter(
|
|
34
|
-
|
|
41
|
+
data: SimpleAllowedTypeAttributes,
|
|
35
42
|
options: StoredSchemaGenerationOptions,
|
|
36
43
|
): boolean {
|
|
44
|
+
if (options === ExpectStored) {
|
|
45
|
+
if (data.isStaged !== undefined) {
|
|
46
|
+
throw new UsageError(
|
|
47
|
+
"Failed to covert view schema to stored schema. The simple schema provided was indicated to be a stored schema by the use of `ExpectStored`, but view schema specific content was encountered which requires a `StoredFromViewSchemaGenerationOptions` to process.",
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
if (data.isStaged === undefined) {
|
|
54
|
+
throw new UsageError(
|
|
55
|
+
"Failed to covert view schema to stored schema. The simple schema provided as the view schema was actually a stored schema. If this was intended, use `ExpectStored` for the `StoredSchemaGenerationOptions` to indicate the input is already a stored schema and only a format conversion is required.",
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
|
|
37
59
|
// If the allowed type is staged, only include it if the options allow it.
|
|
38
|
-
if (
|
|
39
|
-
return
|
|
60
|
+
if (data.isStaged === false) {
|
|
61
|
+
return true;
|
|
40
62
|
}
|
|
41
|
-
|
|
63
|
+
|
|
64
|
+
return options.includeStaged(data.isStaged);
|
|
42
65
|
}
|
|
43
66
|
|
|
44
67
|
/**
|
|
45
|
-
* Converts
|
|
68
|
+
* Converts a {@link SimpleAllowedTypes} to a stored schema.
|
|
46
69
|
* @param schema - The schema to convert.
|
|
47
70
|
* @param options - The options to use for filtering.
|
|
48
71
|
* @returns The converted stored schema.
|
|
49
72
|
*/
|
|
50
73
|
export function convertAllowedTypes(
|
|
51
|
-
schema:
|
|
74
|
+
schema: SimpleAllowedTypes,
|
|
52
75
|
options: StoredSchemaGenerationOptions,
|
|
53
76
|
): TreeTypeSet {
|
|
54
|
-
const filtered: TreeNodeSchemaIdentifier[] =
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
77
|
+
const filtered: TreeNodeSchemaIdentifier[] = [];
|
|
78
|
+
for (const [type, data] of schema) {
|
|
79
|
+
if (allowedTypeFilter(data, options)) {
|
|
80
|
+
filtered.push(brand<TreeNodeSchemaIdentifier>(type));
|
|
81
|
+
}
|
|
82
|
+
}
|
|
59
83
|
return new Set(filtered);
|
|
60
84
|
}
|
|
@@ -294,6 +294,7 @@ export class TreeNodeKernel {
|
|
|
294
294
|
}
|
|
295
295
|
}
|
|
296
296
|
|
|
297
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
297
298
|
const kernelEvents = ["childrenChangedAfterBatch", "subtreeChangedAfterBatch"] as const;
|
|
298
299
|
|
|
299
300
|
type KernelEvents = Pick<AnchorEvents, (typeof kernelEvents)[number]>;
|
|
@@ -12,10 +12,9 @@ import type { InternalTreeNode, Unhydrated } from "./types.js";
|
|
|
12
12
|
import type { UnionToIntersection } from "../../util/index.js";
|
|
13
13
|
import type { AllowedTypesFullEvaluated, AllowedTypesFull } from "./allowedTypes.js";
|
|
14
14
|
import type { Context } from "./context.js";
|
|
15
|
-
import type { FieldKey, NodeData
|
|
15
|
+
import type { FieldKey, NodeData } from "../../core/index.js";
|
|
16
16
|
import type { UnhydratedFlexTreeField } from "./unhydratedFlexTree.js";
|
|
17
17
|
import type { FactoryContent } from "../unhydratedFlexTreeFromInsertable.js";
|
|
18
|
-
import type { StoredSchemaGenerationOptions } from "./toStored.js";
|
|
19
18
|
|
|
20
19
|
/**
|
|
21
20
|
* Schema for a {@link TreeNode} or {@link TreeLeafValue}.
|
|
@@ -389,11 +388,6 @@ export interface TreeNodeSchemaPrivateData {
|
|
|
389
388
|
* Idempotent initialization function that pre-caches data and can dereference lazy schema references.
|
|
390
389
|
*/
|
|
391
390
|
idempotentInitialize(): TreeNodeSchemaInitializedData;
|
|
392
|
-
|
|
393
|
-
/**
|
|
394
|
-
* Converts a the schema into a {@link TreeNodeStoredSchema}.
|
|
395
|
-
*/
|
|
396
|
-
toStored(options: StoredSchemaGenerationOptions): TreeNodeStoredSchema;
|
|
397
391
|
}
|
|
398
392
|
|
|
399
393
|
/**
|
|
@@ -260,7 +260,6 @@ export function isClassBasedSchema(
|
|
|
260
260
|
export function createTreeNodeSchemaPrivateData(
|
|
261
261
|
schema: TreeNodeSchemaCore<string, NodeKind, boolean>,
|
|
262
262
|
childAllowedTypes: readonly AllowedTypesFull[],
|
|
263
|
-
toStored: TreeNodeSchemaPrivateData["toStored"],
|
|
264
263
|
): TreeNodeSchemaPrivateData {
|
|
265
264
|
const schemaValid = schemaAsTreeNodeValid(schema);
|
|
266
265
|
// Since this closes over the schema, ensure this schema is marked as most derived
|
|
@@ -270,7 +269,6 @@ export function createTreeNodeSchemaPrivateData(
|
|
|
270
269
|
return {
|
|
271
270
|
idempotentInitialize: () => schemaValid.oneTimeInitialize().oneTimeInitialized,
|
|
272
271
|
childAllowedTypes,
|
|
273
|
-
toStored,
|
|
274
272
|
};
|
|
275
273
|
}
|
|
276
274
|
|
|
@@ -29,7 +29,7 @@ import type {
|
|
|
29
29
|
InsertableTreeNodeFromImplicitAllowedTypes,
|
|
30
30
|
AllowedTypesFull,
|
|
31
31
|
} from "./core/index.js";
|
|
32
|
-
import { normalizeAllowedTypes } from "./core/index.js";
|
|
32
|
+
import { AnnotatedAllowedTypesInternal, normalizeAllowedTypes } from "./core/index.js";
|
|
33
33
|
|
|
34
34
|
import type { SimpleAllowedTypeAttributes, SimpleFieldSchema } from "./simpleSchema.js";
|
|
35
35
|
import type { UnsafeUnknownSchema } from "./unsafeUnknownSchema.js";
|
|
@@ -413,16 +413,7 @@ export class FieldSchemaAlpha<
|
|
|
413
413
|
}
|
|
414
414
|
|
|
415
415
|
public get simpleAllowedTypes(): ReadonlyMap<string, SimpleAllowedTypeAttributes> {
|
|
416
|
-
|
|
417
|
-
const info = new Map<string, SimpleAllowedTypeAttributes>();
|
|
418
|
-
|
|
419
|
-
for (const type of types) {
|
|
420
|
-
info.set(type.type.identifier, {
|
|
421
|
-
isStaged: type.metadata.stagedSchemaUpgrade !== undefined,
|
|
422
|
-
});
|
|
423
|
-
}
|
|
424
|
-
|
|
425
|
-
return info;
|
|
416
|
+
return AnnotatedAllowedTypesInternal.evaluateSimpleAllowedTypes(this.allowedTypesFull);
|
|
426
417
|
}
|
|
427
418
|
|
|
428
419
|
protected constructor(
|
package/src/simple-tree/index.ts
CHANGED
|
@@ -44,7 +44,7 @@ export {
|
|
|
44
44
|
type UnannotateAllowedTypesList,
|
|
45
45
|
type AllowedTypeMetadata,
|
|
46
46
|
type AnnotatedAllowedTypes,
|
|
47
|
-
|
|
47
|
+
SchemaUpgrade,
|
|
48
48
|
type LazyItem,
|
|
49
49
|
type FlexList,
|
|
50
50
|
type FlexListToUnion,
|
|
@@ -59,6 +59,8 @@ export {
|
|
|
59
59
|
type AllowedTypesFullFromMixed,
|
|
60
60
|
AnnotatedAllowedTypesInternal,
|
|
61
61
|
type NumberKeys,
|
|
62
|
+
ExpectStored,
|
|
63
|
+
createSchemaUpgrade,
|
|
62
64
|
} from "./core/index.js";
|
|
63
65
|
export { walkFieldSchema } from "./walkFieldSchema.js";
|
|
64
66
|
export type { UnsafeUnknownSchema, Insertable } from "./unsafeUnknownSchema.js";
|
|
@@ -184,7 +186,7 @@ export {
|
|
|
184
186
|
KeyEncodingOptions,
|
|
185
187
|
type TreeParsingOptions,
|
|
186
188
|
incrementalSummaryHint,
|
|
187
|
-
|
|
189
|
+
incrementalEncodingPolicyForAllowedTypes,
|
|
188
190
|
type SchemaFactory_base,
|
|
189
191
|
} from "./api/index.js";
|
|
190
192
|
export type {
|
|
@@ -283,4 +285,7 @@ export type { LeafSchema } from "./leafNodeSchema.js";
|
|
|
283
285
|
export {
|
|
284
286
|
encodeSimpleSchema,
|
|
285
287
|
decodeSimpleSchema,
|
|
288
|
+
exportCompatibilitySchemaSnapshot,
|
|
289
|
+
importCompatibilitySchemaSnapshot,
|
|
290
|
+
checkCompatibility,
|
|
286
291
|
} from "./api/index.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 {
|
|
10
|
+
import { type TreeValue, ValueSchema } from "../core/index.js";
|
|
11
11
|
import {
|
|
12
12
|
type FlexTreeNode,
|
|
13
13
|
isFlexTreeNode,
|
|
@@ -64,7 +64,6 @@ export class LeafNodeSchema<Name extends string, const T extends ValueSchema>
|
|
|
64
64
|
): FlexContent => leafToFlexContent(data, this, allowedTypes),
|
|
65
65
|
})),
|
|
66
66
|
childAllowedTypes: [],
|
|
67
|
-
toStored: () => new LeafNodeStoredSchema(this.leafKind),
|
|
68
67
|
};
|
|
69
68
|
#initializedData: TreeNodeSchemaInitializedData | undefined;
|
|
70
69
|
|
|
@@ -45,7 +45,6 @@ import {
|
|
|
45
45
|
createTreeNodeSchemaPrivateData,
|
|
46
46
|
type FlexContent,
|
|
47
47
|
type TreeNodeSchemaPrivateData,
|
|
48
|
-
convertAllowedTypes,
|
|
49
48
|
withBufferedTreeEvents,
|
|
50
49
|
AnnotatedAllowedTypesInternal,
|
|
51
50
|
} from "../../core/index.js";
|
|
@@ -66,9 +65,13 @@ import type {
|
|
|
66
65
|
ArrayNodePojoEmulationSchema,
|
|
67
66
|
ArrayNodeSchema,
|
|
68
67
|
} from "./arrayNodeTypes.js";
|
|
69
|
-
import {
|
|
68
|
+
import {
|
|
69
|
+
brand,
|
|
70
|
+
validateIndex,
|
|
71
|
+
validateIndexRange,
|
|
72
|
+
type JsonCompatibleReadOnlyObject,
|
|
73
|
+
} from "../../../util/index.js";
|
|
70
74
|
import { nullSchema } from "../../leafNodeSchema.js";
|
|
71
|
-
import { arrayNodeStoredSchema } from "../../toStoredSchema.js";
|
|
72
75
|
import type { SimpleAllowedTypeAttributes } from "../../simpleSchema.js";
|
|
73
76
|
|
|
74
77
|
/**
|
|
@@ -575,6 +578,7 @@ const TreeNodeWithArrayFeatures = (() => {
|
|
|
575
578
|
*/
|
|
576
579
|
/* eslint-disable @typescript-eslint/explicit-member-accessibility, @typescript-eslint/no-explicit-any */
|
|
577
580
|
// prettier-ignore
|
|
581
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
578
582
|
declare abstract class NodeWithArrayFeatures<Input, T>
|
|
579
583
|
extends TreeNodeValid<Input>
|
|
580
584
|
implements Pick<readonly T[], (typeof arrayPrototypeKeys)[number]>
|
|
@@ -951,7 +955,7 @@ abstract class CustomArrayNodeBase<const T extends ImplicitAllowedTypes>
|
|
|
951
955
|
}
|
|
952
956
|
public insertAt(index: number, ...value: Insertable<T>): void {
|
|
953
957
|
const field = getSequenceField(this);
|
|
954
|
-
validateIndex(index, field, "insertAt", true);
|
|
958
|
+
validateIndex(index, field, "TreeArrayNode.insertAt", true);
|
|
955
959
|
const content = this.#mapTreesFromFieldData(value);
|
|
956
960
|
field.editor.insert(index, content);
|
|
957
961
|
}
|
|
@@ -963,32 +967,30 @@ abstract class CustomArrayNodeBase<const T extends ImplicitAllowedTypes>
|
|
|
963
967
|
}
|
|
964
968
|
public removeAt(index: number): void {
|
|
965
969
|
const field = getSequenceField(this);
|
|
966
|
-
validateIndex(index, field, "removeAt");
|
|
970
|
+
validateIndex(index, field, "TreeArrayNode.removeAt");
|
|
967
971
|
field.editor.remove(index, 1);
|
|
968
972
|
}
|
|
969
973
|
public removeRange(start?: number, end?: number): void {
|
|
970
974
|
const field = getSequenceField(this);
|
|
971
975
|
const { length } = field;
|
|
972
976
|
const removeStart = start ?? 0;
|
|
977
|
+
validateIndex(removeStart, field, "TreeArrayNode.removeRange", true);
|
|
978
|
+
|
|
973
979
|
const removeEnd = Math.min(length, end ?? length);
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
if (removeEnd < removeStart) {
|
|
977
|
-
// This catches both the case where start is > array.length and when start is > end.
|
|
978
|
-
throw new UsageError('Too large of "start" value passed to TreeArrayNode.removeRange.');
|
|
979
|
-
}
|
|
980
|
+
validateIndexRange(removeStart, removeEnd, field, "TreeArrayNode.removeRange");
|
|
981
|
+
|
|
980
982
|
field.editor.remove(removeStart, removeEnd - removeStart);
|
|
981
983
|
}
|
|
982
984
|
public moveToStart(sourceIndex: number, source?: ReadonlyArrayNode): void {
|
|
983
985
|
const sourceArray = source ?? this;
|
|
984
986
|
const sourceField = getSequenceField(sourceArray);
|
|
985
|
-
validateIndex(sourceIndex, sourceField, "moveToStart");
|
|
987
|
+
validateIndex(sourceIndex, sourceField, "TreeArrayNode.moveToStart");
|
|
986
988
|
this.moveRangeToIndex(0, sourceIndex, sourceIndex + 1, source);
|
|
987
989
|
}
|
|
988
990
|
public moveToEnd(sourceIndex: number, source?: ReadonlyArrayNode): void {
|
|
989
991
|
const sourceArray = source ?? this;
|
|
990
992
|
const sourceField = getSequenceField(sourceArray);
|
|
991
|
-
validateIndex(sourceIndex, sourceField, "moveToEnd");
|
|
993
|
+
validateIndex(sourceIndex, sourceField, "TreeArrayNode.moveToEnd");
|
|
992
994
|
this.moveRangeToIndex(this.length, sourceIndex, sourceIndex + 1, source);
|
|
993
995
|
}
|
|
994
996
|
public moveToIndex(
|
|
@@ -999,8 +1001,8 @@ abstract class CustomArrayNodeBase<const T extends ImplicitAllowedTypes>
|
|
|
999
1001
|
const sourceArray = source ?? this;
|
|
1000
1002
|
const sourceField = getSequenceField(sourceArray);
|
|
1001
1003
|
const destinationField = getSequenceField(this);
|
|
1002
|
-
validateIndex(destinationGap, destinationField, "moveToIndex", true);
|
|
1003
|
-
validateIndex(sourceIndex, sourceField, "moveToIndex");
|
|
1004
|
+
validateIndex(destinationGap, destinationField, "TreeArrayNode.moveToIndex", true);
|
|
1005
|
+
validateIndex(sourceIndex, sourceField, "TreeArrayNode.moveToIndex");
|
|
1004
1006
|
this.moveRangeToIndex(destinationGap, sourceIndex, sourceIndex + 1, source);
|
|
1005
1007
|
}
|
|
1006
1008
|
public moveRangeToStart(
|
|
@@ -1012,7 +1014,7 @@ abstract class CustomArrayNodeBase<const T extends ImplicitAllowedTypes>
|
|
|
1012
1014
|
sourceStart,
|
|
1013
1015
|
sourceEnd,
|
|
1014
1016
|
source ?? getSequenceField(this),
|
|
1015
|
-
"moveRangeToStart",
|
|
1017
|
+
"TreeArrayNode.moveRangeToStart",
|
|
1016
1018
|
);
|
|
1017
1019
|
this.moveRangeToIndex(0, sourceStart, sourceEnd, source);
|
|
1018
1020
|
}
|
|
@@ -1025,7 +1027,7 @@ abstract class CustomArrayNodeBase<const T extends ImplicitAllowedTypes>
|
|
|
1025
1027
|
sourceStart,
|
|
1026
1028
|
sourceEnd,
|
|
1027
1029
|
source ?? getSequenceField(this),
|
|
1028
|
-
"moveRangeToEnd",
|
|
1030
|
+
"TreeArrayNode.moveRangeToEnd",
|
|
1029
1031
|
);
|
|
1030
1032
|
this.moveRangeToIndex(this.length, sourceStart, sourceEnd, source);
|
|
1031
1033
|
}
|
|
@@ -1044,8 +1046,13 @@ abstract class CustomArrayNodeBase<const T extends ImplicitAllowedTypes>
|
|
|
1044
1046
|
).getFieldSchema(EmptyKey).types;
|
|
1045
1047
|
const sourceField = source !== undefined ? getSequenceField(source) : destinationField;
|
|
1046
1048
|
|
|
1047
|
-
validateIndex(destinationGap, destinationField, "moveRangeToIndex", true);
|
|
1048
|
-
validateIndexRange(
|
|
1049
|
+
validateIndex(destinationGap, destinationField, "TreeArrayNode.moveRangeToIndex", true);
|
|
1050
|
+
validateIndexRange(
|
|
1051
|
+
sourceStart,
|
|
1052
|
+
sourceEnd,
|
|
1053
|
+
source ?? destinationField,
|
|
1054
|
+
"TreeArrayNode.moveRangeToIndex",
|
|
1055
|
+
);
|
|
1049
1056
|
|
|
1050
1057
|
// TODO: determine support for move across different sequence types
|
|
1051
1058
|
if (sourceField !== destinationField) {
|
|
@@ -1282,12 +1289,7 @@ export function arraySchema<
|
|
|
1282
1289
|
}
|
|
1283
1290
|
|
|
1284
1291
|
public static get [privateDataSymbol](): TreeNodeSchemaPrivateData {
|
|
1285
|
-
return (privateData ??= createTreeNodeSchemaPrivateData(
|
|
1286
|
-
this,
|
|
1287
|
-
[normalizedTypes],
|
|
1288
|
-
(storedOptions) =>
|
|
1289
|
-
arrayNodeStoredSchema(convertAllowedTypes(info, storedOptions), persistedMetadata),
|
|
1290
|
-
));
|
|
1292
|
+
return (privateData ??= createTreeNodeSchemaPrivateData(this, [normalizedTypes]));
|
|
1291
1293
|
}
|
|
1292
1294
|
}
|
|
1293
1295
|
|
|
@@ -1295,56 +1297,6 @@ export function arraySchema<
|
|
|
1295
1297
|
return output;
|
|
1296
1298
|
}
|
|
1297
1299
|
|
|
1298
|
-
function validateSafeInteger(index: number): void {
|
|
1299
|
-
if (!Number.isSafeInteger(index)) {
|
|
1300
|
-
throw new UsageError(`Expected a safe integer, got ${index}.`);
|
|
1301
|
-
}
|
|
1302
|
-
}
|
|
1303
|
-
|
|
1304
|
-
function validatePositiveIndex(index: number): void {
|
|
1305
|
-
validateSafeInteger(index);
|
|
1306
|
-
if (index < 0) {
|
|
1307
|
-
throw new UsageError(`Expected non-negative index, got ${index}.`);
|
|
1308
|
-
}
|
|
1309
|
-
}
|
|
1310
|
-
|
|
1311
|
-
function validateIndex(
|
|
1312
|
-
index: number,
|
|
1313
|
-
array: { readonly length: number },
|
|
1314
|
-
methodName: string,
|
|
1315
|
-
allowOnePastEnd: boolean = false,
|
|
1316
|
-
): void {
|
|
1317
|
-
validatePositiveIndex(index);
|
|
1318
|
-
if (allowOnePastEnd) {
|
|
1319
|
-
if (index > array.length) {
|
|
1320
|
-
throw new UsageError(
|
|
1321
|
-
`Index value passed to TreeArrayNode.${methodName} is out of bounds.`,
|
|
1322
|
-
);
|
|
1323
|
-
}
|
|
1324
|
-
} else {
|
|
1325
|
-
if (index >= array.length) {
|
|
1326
|
-
throw new UsageError(
|
|
1327
|
-
`Index value passed to TreeArrayNode.${methodName} is out of bounds.`,
|
|
1328
|
-
);
|
|
1329
|
-
}
|
|
1330
|
-
}
|
|
1331
|
-
}
|
|
1332
|
-
|
|
1333
|
-
function validateIndexRange(
|
|
1334
|
-
startIndex: number,
|
|
1335
|
-
endIndex: number,
|
|
1336
|
-
array: { readonly length: number },
|
|
1337
|
-
methodName: string,
|
|
1338
|
-
): void {
|
|
1339
|
-
validateIndex(startIndex, array, methodName, true);
|
|
1340
|
-
validateIndex(endIndex, array, methodName, true);
|
|
1341
|
-
if (startIndex > endIndex || array.length < endIndex) {
|
|
1342
|
-
throw new UsageError(
|
|
1343
|
-
`Index value passed to TreeArrayNode.${methodName} is out of bounds.`,
|
|
1344
|
-
);
|
|
1345
|
-
}
|
|
1346
|
-
}
|
|
1347
|
-
|
|
1348
1300
|
/**
|
|
1349
1301
|
* Transforms data for a child of an array.
|
|
1350
1302
|
* @param child - The tree data to be transformed.
|
|
@@ -1375,6 +1327,7 @@ function arrayChildToFlexTree(
|
|
|
1375
1327
|
*/
|
|
1376
1328
|
function arrayToFlexContent(data: FactoryContent, schema: ArrayNodeSchema): FlexContent {
|
|
1377
1329
|
if (!(typeof data === "object" && data !== null && Symbol.iterator in data)) {
|
|
1330
|
+
// eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
1378
1331
|
throw new UsageError(`Input data is incompatible with Array schema: ${data}`);
|
|
1379
1332
|
}
|
|
1380
1333
|
|
|
@@ -7,7 +7,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,
|
|
11
10
|
isTreeValue,
|
|
12
11
|
type FlexibleNodeContent,
|
|
13
12
|
type FlexTreeNode,
|
|
@@ -42,7 +41,6 @@ import {
|
|
|
42
41
|
createTreeNodeSchemaPrivateData,
|
|
43
42
|
type FlexContent,
|
|
44
43
|
type TreeNodeSchemaPrivateData,
|
|
45
|
-
convertAllowedTypes,
|
|
46
44
|
AnnotatedAllowedTypesInternal,
|
|
47
45
|
} from "../../core/index.js";
|
|
48
46
|
import {
|
|
@@ -343,19 +341,7 @@ export function mapSchema<
|
|
|
343
341
|
}
|
|
344
342
|
|
|
345
343
|
public static get [privateDataSymbol](): TreeNodeSchemaPrivateData {
|
|
346
|
-
return (privateData ??= createTreeNodeSchemaPrivateData(
|
|
347
|
-
this,
|
|
348
|
-
[normalizedTypes],
|
|
349
|
-
(storedOptions) =>
|
|
350
|
-
new MapNodeStoredSchema(
|
|
351
|
-
{
|
|
352
|
-
kind: FieldKinds.optional.identifier,
|
|
353
|
-
types: convertAllowedTypes(info, storedOptions),
|
|
354
|
-
persistedMetadata,
|
|
355
|
-
},
|
|
356
|
-
persistedMetadata,
|
|
357
|
-
),
|
|
358
|
-
));
|
|
344
|
+
return (privateData ??= createTreeNodeSchemaPrivateData(this, [normalizedTypes]));
|
|
359
345
|
}
|
|
360
346
|
}
|
|
361
347
|
const schemaErased: MapNodeCustomizableSchema<
|
|
@@ -86,7 +86,7 @@ import {
|
|
|
86
86
|
type FactoryContentObject,
|
|
87
87
|
type InsertableContent,
|
|
88
88
|
} from "../../unhydratedFlexTreeFromInsertable.js";
|
|
89
|
-
import {
|
|
89
|
+
import { convertFieldKind } from "../../toStoredSchema.js";
|
|
90
90
|
import type { ObjectSchemaOptionsAlpha } from "../../api/index.js";
|
|
91
91
|
|
|
92
92
|
/**
|
|
@@ -99,7 +99,7 @@ import type { ObjectSchemaOptionsAlpha } from "../../api/index.js";
|
|
|
99
99
|
*/
|
|
100
100
|
export type ObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFieldSchema>> =
|
|
101
101
|
RestrictiveStringRecord<ImplicitFieldSchema> extends T
|
|
102
|
-
? // eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
|
102
|
+
? // eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
|
103
103
|
{}
|
|
104
104
|
: {
|
|
105
105
|
-readonly [Property in keyof T]: Property extends string
|
|
@@ -585,20 +585,6 @@ export function objectSchema<
|
|
|
585
585
|
return (privateData ??= createTreeNodeSchemaPrivateData(
|
|
586
586
|
this,
|
|
587
587
|
Array.from(CustomObjectNode.fields.values(), (schema) => schema.allowedTypesFull),
|
|
588
|
-
(storedOptions) => {
|
|
589
|
-
const fields: Map<FieldKey, TreeFieldStoredSchema> = new Map();
|
|
590
|
-
for (const fieldSchema of flexKeyMap.values()) {
|
|
591
|
-
assert(
|
|
592
|
-
fieldSchema.schema instanceof FieldSchemaAlpha,
|
|
593
|
-
0xc19 /* Expected FieldSchemaAlpha */,
|
|
594
|
-
);
|
|
595
|
-
fields.set(
|
|
596
|
-
brand(fieldSchema.storedKey),
|
|
597
|
-
convertField(fieldSchema.schema, storedOptions),
|
|
598
|
-
);
|
|
599
|
-
}
|
|
600
|
-
return new ObjectNodeStoredSchema(fields, nodeOptions.persistedMetadata);
|
|
601
|
-
},
|
|
602
588
|
));
|
|
603
589
|
}
|
|
604
590
|
}
|
|
@@ -650,9 +636,8 @@ function assertUniqueKeys<
|
|
|
650
636
|
}
|
|
651
637
|
|
|
652
638
|
/**
|
|
653
|
-
* {@link TreeNodeSchemaInitializedData.toFlexContent} for
|
|
639
|
+
* {@link TreeNodeSchemaInitializedData.toFlexContent} for object nodes.
|
|
654
640
|
*
|
|
655
|
-
* Transforms data under an Object schema.
|
|
656
641
|
* @param data - The tree data to be transformed. Must be a Record-like object.
|
|
657
642
|
* @param schema - The schema to comply with.
|
|
658
643
|
*/
|
|
@@ -666,6 +651,7 @@ function objectToFlexContent(
|
|
|
666
651
|
Symbol.iterator in data ||
|
|
667
652
|
isFluidHandle(data)
|
|
668
653
|
) {
|
|
654
|
+
// eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
669
655
|
throw new UsageError(`Input data is incompatible with Object schema: ${data}`);
|
|
670
656
|
}
|
|
671
657
|
|
|
@@ -31,7 +31,6 @@ import {
|
|
|
31
31
|
type FlexContent,
|
|
32
32
|
CompatibilityLevel,
|
|
33
33
|
type TreeNodeSchemaPrivateData,
|
|
34
|
-
convertAllowedTypes,
|
|
35
34
|
AnnotatedAllowedTypesInternal,
|
|
36
35
|
} from "../../core/index.js";
|
|
37
36
|
import { getTreeNodeSchemaInitializedData } from "../../createContext.js";
|
|
@@ -50,7 +49,6 @@ import type {
|
|
|
50
49
|
TreeRecordNode,
|
|
51
50
|
} from "./recordNodeTypes.js";
|
|
52
51
|
import {
|
|
53
|
-
FieldKinds,
|
|
54
52
|
isTreeValue,
|
|
55
53
|
type FlexTreeNode,
|
|
56
54
|
type FlexTreeOptionalField,
|
|
@@ -388,19 +386,7 @@ export function recordSchema<
|
|
|
388
386
|
}
|
|
389
387
|
|
|
390
388
|
public static get [privateDataSymbol](): TreeNodeSchemaPrivateData {
|
|
391
|
-
return (privateData ??= createTreeNodeSchemaPrivateData(
|
|
392
|
-
this,
|
|
393
|
-
[normalizedTypes],
|
|
394
|
-
(storedOptions) =>
|
|
395
|
-
new MapNodeStoredSchema(
|
|
396
|
-
{
|
|
397
|
-
kind: FieldKinds.optional.identifier,
|
|
398
|
-
types: convertAllowedTypes(info, storedOptions),
|
|
399
|
-
persistedMetadata,
|
|
400
|
-
},
|
|
401
|
-
persistedMetadata,
|
|
402
|
-
),
|
|
403
|
-
));
|
|
389
|
+
return (privateData ??= createTreeNodeSchemaPrivateData(this, [normalizedTypes]));
|
|
404
390
|
}
|
|
405
391
|
}
|
|
406
392
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
import type { ValueSchema } from "../core/index.js";
|
|
7
7
|
import type { JsonCompatibleReadOnlyObject } from "../util/index.js";
|
|
8
|
-
import type { NodeKind, SimpleNodeSchemaBase } from "./core/index.js";
|
|
8
|
+
import type { NodeKind, SchemaUpgrade, SimpleNodeSchemaBase } from "./core/index.js";
|
|
9
9
|
import type { FieldKind, FieldSchemaMetadata } from "./fieldSchema.js";
|
|
10
10
|
|
|
11
11
|
/*
|
|
@@ -39,6 +39,15 @@ export interface SimpleNodeSchemaBaseAlpha<
|
|
|
39
39
|
readonly persistedMetadata: JsonCompatibleReadOnlyObject | undefined;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
+
/**
|
|
43
|
+
* {@link AllowedTypes} for a location in the tree, expressed for use in the Simple Schema layer of abstraction.
|
|
44
|
+
*
|
|
45
|
+
* @remarks
|
|
46
|
+
* Refers to the types by identifier.
|
|
47
|
+
* A {@link SimpleTreeSchema} is needed to resolve these identifiers to their schema {@link SimpleTreeSchema.definitions}.
|
|
48
|
+
*/
|
|
49
|
+
export type SimpleAllowedTypes = ReadonlyMap<string, SimpleAllowedTypeAttributes>;
|
|
50
|
+
|
|
42
51
|
/**
|
|
43
52
|
* A {@link SimpleNodeSchema} for an object node.
|
|
44
53
|
*
|
|
@@ -179,13 +188,17 @@ export type SimpleNodeSchema =
|
|
|
179
188
|
*/
|
|
180
189
|
export interface SimpleAllowedTypeAttributes {
|
|
181
190
|
/**
|
|
182
|
-
*
|
|
191
|
+
* {@link SchemaUpgrade} if this schema is included as a {@link SchemaStaticsBeta.staged | staged} schema upgrade,
|
|
183
192
|
* allowing the view schema be compatible with stored schema with (post upgrade) or without it (pre-upgrade).
|
|
184
193
|
* New documents and schema upgrades will omit any staged schema.
|
|
185
194
|
*
|
|
186
195
|
* Undefined if derived from a stored schema.
|
|
196
|
+
*
|
|
197
|
+
* @privateRemarks
|
|
198
|
+
* The false and undefined cases here are a bit odd.
|
|
199
|
+
* This API should be reevaluated before stabilizing.
|
|
187
200
|
*/
|
|
188
|
-
readonly isStaged:
|
|
201
|
+
readonly isStaged: false | SchemaUpgrade | undefined;
|
|
189
202
|
}
|
|
190
203
|
|
|
191
204
|
/**
|