@fluidframework/tree 2.70.0 → 2.72.0
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 +84 -40
- package/api-report/tree.alpha.api.md +52 -22
- package/api-report/tree.beta.api.md +45 -0
- package/api-report/tree.legacy.beta.api.md +45 -0
- package/dist/alpha.d.ts +12 -7
- package/dist/api.js +1 -1
- package/dist/api.js.map +1 -1
- package/dist/beta.d.ts +8 -0
- package/dist/codec/codec.d.ts +16 -1
- package/dist/codec/codec.d.ts.map +1 -1
- package/dist/codec/codec.js +16 -3
- package/dist/codec/codec.js.map +1 -1
- package/dist/codec/discriminatedUnions.d.ts +1 -1
- package/dist/codec/discriminatedUnions.js +1 -1
- package/dist/codec/discriminatedUnions.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 +2 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/schema-stored/index.d.ts +1 -1
- package/dist/core/schema-stored/index.d.ts.map +1 -1
- package/dist/core/schema-stored/index.js +2 -2
- package/dist/core/schema-stored/index.js.map +1 -1
- package/dist/core/schema-stored/schema.d.ts +6 -6
- package/dist/core/schema-stored/schema.d.ts.map +1 -1
- package/dist/core/schema-stored/schema.js +6 -7
- package/dist/core/schema-stored/schema.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecCommon.d.ts +2 -1
- package/dist/core/tree/detachedFieldIndexCodecCommon.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecCommon.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecV1.d.ts +1 -1
- package/dist/core/tree/detachedFieldIndexCodecV1.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecV1.js +3 -2
- package/dist/core/tree/detachedFieldIndexCodecV1.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecV2.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecV2.js +3 -1
- package/dist/core/tree/detachedFieldIndexCodecV2.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecs.d.ts +2 -3
- package/dist/core/tree/detachedFieldIndexCodecs.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecs.js +29 -8
- package/dist/core/tree/detachedFieldIndexCodecs.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexFormatCommon.d.ts +10 -1
- package/dist/core/tree/detachedFieldIndexFormatCommon.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexFormatCommon.js +8 -1
- package/dist/core/tree/detachedFieldIndexFormatCommon.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexFormatV1.d.ts +2 -2
- package/dist/core/tree/detachedFieldIndexFormatV1.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexFormatV1.js +3 -3
- package/dist/core/tree/detachedFieldIndexFormatV1.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexFormatV2.d.ts +2 -2
- package/dist/core/tree/detachedFieldIndexFormatV2.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexFormatV2.js +3 -3
- package/dist/core/tree/detachedFieldIndexFormatV2.js.map +1 -1
- package/dist/core/tree/index.d.ts +2 -1
- package/dist/core/tree/index.d.ts.map +1 -1
- package/dist/core/tree/index.js.map +1 -1
- package/dist/external-utilities/typeboxValidator.js +1 -1
- package/dist/external-utilities/typeboxValidator.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts +4 -10
- package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/codecs.js +12 -8
- package/dist/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js +1 -1
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/format.d.ts +8 -3
- package/dist/feature-libraries/chunked-forest/codec/format.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/format.js +9 -4
- package/dist/feature-libraries/chunked-forest/codec/format.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/index.d.ts +2 -2
- package/dist/feature-libraries/chunked-forest/codec/index.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/index.js +1 -2
- package/dist/feature-libraries/chunked-forest/codec/index.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.js +1 -1
- 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 +1 -2
- package/dist/feature-libraries/chunked-forest/index.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts +1 -9
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js +3 -21
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/dist/feature-libraries/forest-summary/codec.d.ts +4 -5
- package/dist/feature-libraries/forest-summary/codec.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/codec.js +15 -4
- package/dist/feature-libraries/forest-summary/codec.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 +8 -1
- package/dist/feature-libraries/forest-summary/format.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/format.js +8 -3
- package/dist/feature-libraries/forest-summary/format.js.map +1 -1
- package/dist/feature-libraries/forest-summary/index.d.ts +2 -1
- package/dist/feature-libraries/forest-summary/index.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/index.js +3 -1
- package/dist/feature-libraries/forest-summary/index.js.map +1 -1
- package/dist/feature-libraries/index.d.ts +3 -3
- package/dist/feature-libraries/index.d.ts.map +1 -1
- package/dist/feature-libraries/index.js +2 -2
- package/dist/feature-libraries/index.js.map +1 -1
- package/dist/feature-libraries/schema-edits/index.d.ts +1 -1
- package/dist/feature-libraries/schema-edits/index.d.ts.map +1 -1
- package/dist/feature-libraries/schema-edits/index.js.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +6 -7
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js +5 -4
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/schema-index/codec.d.ts +10 -10
- package/dist/feature-libraries/schema-index/codec.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/codec.js +22 -18
- package/dist/feature-libraries/schema-index/codec.js.map +1 -1
- package/dist/feature-libraries/schema-index/formatV1.d.ts +2 -2
- package/dist/feature-libraries/schema-index/formatV1.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/formatV1.js +1 -1
- package/dist/feature-libraries/schema-index/formatV1.js.map +1 -1
- package/dist/feature-libraries/schema-index/formatV2.d.ts +1 -2
- package/dist/feature-libraries/schema-index/formatV2.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/formatV2.js +1 -1
- package/dist/feature-libraries/schema-index/formatV2.js.map +1 -1
- package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts +2 -2
- package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/legacy.d.ts +8 -0
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/shared-tree/independentView.d.ts +75 -6
- package/dist/shared-tree/independentView.d.ts.map +1 -1
- package/dist/shared-tree/independentView.js +116 -43
- package/dist/shared-tree/independentView.js.map +1 -1
- package/dist/shared-tree/index.d.ts +2 -1
- package/dist/shared-tree/index.d.ts.map +1 -1
- package/dist/shared-tree/index.js +6 -1
- package/dist/shared-tree/index.js.map +1 -1
- package/dist/shared-tree/sharedTree.d.ts +12 -16
- package/dist/shared-tree/sharedTree.d.ts.map +1 -1
- package/dist/shared-tree/sharedTree.js +105 -130
- package/dist/shared-tree/sharedTree.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.d.ts +7 -6
- package/dist/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.js +12 -11
- 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/treeAlpha.d.ts +1 -1
- package/dist/shared-tree/treeAlpha.d.ts.map +1 -1
- package/dist/shared-tree/treeAlpha.js +4 -2
- package/dist/shared-tree/treeAlpha.js.map +1 -1
- package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
- package/dist/shared-tree/treeCheckout.js +1 -3
- package/dist/shared-tree/treeCheckout.js.map +1 -1
- package/dist/shared-tree-core/editManagerCodecs.d.ts +19 -6
- package/dist/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerCodecs.js +35 -17
- package/dist/shared-tree-core/editManagerCodecs.js.map +1 -1
- package/dist/shared-tree-core/editManagerFormatCommons.d.ts +37 -0
- package/dist/shared-tree-core/editManagerFormatCommons.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerFormatCommons.js +43 -1
- package/dist/shared-tree-core/editManagerFormatCommons.js.map +1 -1
- package/dist/shared-tree-core/editManagerFormatV1toV4.d.ts +2 -2
- package/dist/shared-tree-core/editManagerFormatV1toV4.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerFormatV1toV4.js +4 -4
- package/dist/shared-tree-core/editManagerFormatV1toV4.js.map +1 -1
- package/dist/shared-tree-core/editManagerFormatV5.d.ts +2 -2
- package/dist/shared-tree-core/editManagerFormatV5.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerFormatV5.js +1 -1
- package/dist/shared-tree-core/editManagerFormatV5.js.map +1 -1
- package/dist/shared-tree-core/index.d.ts +5 -3
- package/dist/shared-tree-core/index.d.ts.map +1 -1
- package/dist/shared-tree-core/index.js +11 -3
- package/dist/shared-tree-core/index.js.map +1 -1
- package/dist/shared-tree-core/messageCodecV1ToV4.d.ts +2 -1
- package/dist/shared-tree-core/messageCodecV1ToV4.d.ts.map +1 -1
- package/dist/shared-tree-core/messageCodecV1ToV4.js.map +1 -1
- package/dist/shared-tree-core/messageCodecV5.d.ts +2 -1
- package/dist/shared-tree-core/messageCodecV5.d.ts.map +1 -1
- package/dist/shared-tree-core/messageCodecV5.js.map +1 -1
- package/dist/shared-tree-core/messageCodecs.d.ts +19 -6
- package/dist/shared-tree-core/messageCodecs.d.ts.map +1 -1
- package/dist/shared-tree-core/messageCodecs.js +38 -21
- package/dist/shared-tree-core/messageCodecs.js.map +1 -1
- package/dist/shared-tree-core/messageFormat.d.ts +50 -0
- package/dist/shared-tree-core/messageFormat.d.ts.map +1 -0
- package/dist/shared-tree-core/messageFormat.js +51 -0
- package/dist/shared-tree-core/messageFormat.js.map +1 -0
- package/dist/shared-tree-core/sharedTreeCore.d.ts +8 -8
- package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.js +3 -3
- package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/dist/simple-tree/api/discrepancies.d.ts +2 -2
- package/dist/simple-tree/api/discrepancies.js.map +1 -1
- package/dist/simple-tree/api/incrementalAllowedTypes.d.ts +1 -1
- package/dist/simple-tree/api/incrementalAllowedTypes.js +1 -1
- package/dist/simple-tree/api/incrementalAllowedTypes.js.map +1 -1
- 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 +4 -1
- package/dist/simple-tree/api/index.js.map +1 -1
- package/dist/simple-tree/api/schemaFactory.d.ts +2 -2
- package/dist/simple-tree/api/schemaFactory.js +2 -2
- package/dist/simple-tree/api/schemaFactory.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryAlpha.d.ts +2 -98
- package/dist/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactoryAlpha.js +1 -52
- package/dist/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryBeta.d.ts +98 -2
- package/dist/simple-tree/api/schemaFactoryBeta.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactoryBeta.js +61 -7
- package/dist/simple-tree/api/schemaFactoryBeta.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactoryRecursive.js +1 -0
- package/dist/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
- package/dist/simple-tree/api/schemaFromSimple.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFromSimple.js +15 -8
- package/dist/simple-tree/api/schemaFromSimple.js.map +1 -1
- package/dist/simple-tree/api/simpleSchemaCodec.d.ts +28 -0
- package/dist/simple-tree/api/simpleSchemaCodec.d.ts.map +1 -0
- package/dist/simple-tree/api/simpleSchemaCodec.js +292 -0
- package/dist/simple-tree/api/simpleSchemaCodec.js.map +1 -0
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.js +4 -2
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
- package/dist/simple-tree/api/storedSchema.d.ts +2 -2
- package/dist/simple-tree/api/storedSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/storedSchema.js +8 -6
- package/dist/simple-tree/api/storedSchema.js.map +1 -1
- package/dist/simple-tree/api/tree.d.ts +2 -2
- package/dist/simple-tree/api/tree.js.map +1 -1
- package/dist/simple-tree/api/typesUnsafe.d.ts +6 -6
- package/dist/simple-tree/api/typesUnsafe.js.map +1 -1
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.d.ts +17 -1
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.js +71 -7
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.js.map +1 -1
- package/dist/simple-tree/core/allowedTypes.d.ts +12 -7
- package/dist/simple-tree/core/allowedTypes.d.ts.map +1 -1
- package/dist/simple-tree/core/allowedTypes.js +18 -5
- package/dist/simple-tree/core/allowedTypes.js.map +1 -1
- package/dist/simple-tree/core/treeNode.js +1 -1
- package/dist/simple-tree/core/treeNode.js.map +1 -1
- package/dist/simple-tree/fieldSchema.d.ts +2 -1
- package/dist/simple-tree/fieldSchema.d.ts.map +1 -1
- package/dist/simple-tree/fieldSchema.js +10 -0
- package/dist/simple-tree/fieldSchema.js.map +1 -1
- package/dist/simple-tree/index.d.ts +3 -2
- package/dist/simple-tree/index.d.ts.map +1 -1
- package/dist/simple-tree/index.js +4 -0
- package/dist/simple-tree/index.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 +7 -1
- 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 +7 -1
- package/dist/simple-tree/node-kinds/map/mapNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNode.d.ts +17 -0
- package/dist/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNode.js +21 -8
- 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 +8 -2
- package/dist/simple-tree/node-kinds/record/recordNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/record/recordNodeTypes.d.ts +16 -0
- package/dist/simple-tree/node-kinds/record/recordNodeTypes.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/record/recordNodeTypes.js.map +1 -1
- package/dist/simple-tree/simpleSchema.d.ts +30 -6
- package/dist/simple-tree/simpleSchema.d.ts.map +1 -1
- package/dist/simple-tree/simpleSchema.js.map +1 -1
- package/dist/simple-tree/simpleSchemaFormatV1.d.ts +249 -0
- package/dist/simple-tree/simpleSchemaFormatV1.d.ts.map +1 -0
- package/dist/simple-tree/simpleSchemaFormatV1.js +115 -0
- package/dist/simple-tree/simpleSchemaFormatV1.js.map +1 -0
- package/dist/simple-tree/toStoredSchema.d.ts.map +1 -1
- package/dist/simple-tree/toStoredSchema.js +6 -3
- package/dist/simple-tree/toStoredSchema.js.map +1 -1
- package/dist/tableSchema.d.ts.map +1 -1
- package/dist/tableSchema.js +1 -1
- package/dist/tableSchema.js.map +1 -1
- package/dist/treeFactory.d.ts +3 -1
- package/dist/treeFactory.d.ts.map +1 -1
- package/dist/treeFactory.js +26 -2
- package/dist/treeFactory.js.map +1 -1
- package/dist/util/brand.d.ts +31 -2
- package/dist/util/brand.d.ts.map +1 -1
- package/dist/util/brand.js +28 -2
- package/dist/util/brand.js.map +1 -1
- package/dist/util/brandedMap.d.ts +3 -1
- package/dist/util/brandedMap.d.ts.map +1 -1
- package/dist/util/brandedMap.js.map +1 -1
- package/dist/util/index.d.ts +1 -1
- package/dist/util/index.d.ts.map +1 -1
- package/dist/util/index.js +3 -2
- package/dist/util/index.js.map +1 -1
- package/dist/util/referenceCounting.d.ts.map +1 -1
- package/dist/util/referenceCounting.js +1 -0
- package/dist/util/referenceCounting.js.map +1 -1
- package/lib/alpha.d.ts +12 -7
- package/lib/api.js +2 -2
- package/lib/api.js.map +1 -1
- package/lib/beta.d.ts +8 -0
- package/lib/codec/codec.d.ts +16 -1
- package/lib/codec/codec.d.ts.map +1 -1
- package/lib/codec/codec.js +16 -3
- package/lib/codec/codec.js.map +1 -1
- package/lib/codec/discriminatedUnions.d.ts +1 -1
- package/lib/codec/discriminatedUnions.js +1 -1
- package/lib/codec/discriminatedUnions.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/schema-stored/index.d.ts +1 -1
- package/lib/core/schema-stored/index.d.ts.map +1 -1
- package/lib/core/schema-stored/index.js +1 -1
- package/lib/core/schema-stored/index.js.map +1 -1
- package/lib/core/schema-stored/schema.d.ts +6 -6
- package/lib/core/schema-stored/schema.d.ts.map +1 -1
- package/lib/core/schema-stored/schema.js +6 -7
- package/lib/core/schema-stored/schema.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecCommon.d.ts +2 -1
- package/lib/core/tree/detachedFieldIndexCodecCommon.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecCommon.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecV1.d.ts +1 -1
- package/lib/core/tree/detachedFieldIndexCodecV1.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecV1.js +3 -2
- package/lib/core/tree/detachedFieldIndexCodecV1.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecV2.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecV2.js +4 -2
- package/lib/core/tree/detachedFieldIndexCodecV2.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecs.d.ts +2 -3
- package/lib/core/tree/detachedFieldIndexCodecs.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecs.js +29 -8
- package/lib/core/tree/detachedFieldIndexCodecs.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexFormatCommon.d.ts +10 -1
- package/lib/core/tree/detachedFieldIndexFormatCommon.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndexFormatCommon.js +7 -0
- package/lib/core/tree/detachedFieldIndexFormatCommon.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexFormatV1.d.ts +2 -2
- package/lib/core/tree/detachedFieldIndexFormatV1.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndexFormatV1.js +3 -3
- package/lib/core/tree/detachedFieldIndexFormatV1.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexFormatV2.d.ts +2 -2
- package/lib/core/tree/detachedFieldIndexFormatV2.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndexFormatV2.js +3 -3
- package/lib/core/tree/detachedFieldIndexFormatV2.js.map +1 -1
- package/lib/core/tree/index.d.ts +2 -1
- package/lib/core/tree/index.d.ts.map +1 -1
- package/lib/core/tree/index.js +1 -1
- package/lib/core/tree/index.js.map +1 -1
- package/lib/external-utilities/typeboxValidator.js +1 -1
- package/lib/external-utilities/typeboxValidator.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts +4 -10
- package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/codecs.js +13 -8
- package/lib/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js +2 -2
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/format.d.ts +8 -3
- package/lib/feature-libraries/chunked-forest/codec/format.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/format.js +8 -3
- package/lib/feature-libraries/chunked-forest/codec/format.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/index.d.ts +2 -2
- package/lib/feature-libraries/chunked-forest/codec/index.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/index.js +2 -2
- package/lib/feature-libraries/chunked-forest/codec/index.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts.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/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 +1 -9
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.js +2 -20
- package/lib/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/lib/feature-libraries/forest-summary/codec.d.ts +4 -5
- package/lib/feature-libraries/forest-summary/codec.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/codec.js +16 -5
- package/lib/feature-libraries/forest-summary/codec.js.map +1 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.js +1 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/lib/feature-libraries/forest-summary/format.d.ts +8 -1
- package/lib/feature-libraries/forest-summary/format.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/format.js +7 -2
- package/lib/feature-libraries/forest-summary/format.js.map +1 -1
- package/lib/feature-libraries/forest-summary/index.d.ts +2 -1
- package/lib/feature-libraries/forest-summary/index.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/index.js +1 -0
- package/lib/feature-libraries/forest-summary/index.js.map +1 -1
- package/lib/feature-libraries/index.d.ts +3 -3
- package/lib/feature-libraries/index.d.ts.map +1 -1
- package/lib/feature-libraries/index.js +2 -2
- package/lib/feature-libraries/index.js.map +1 -1
- package/lib/feature-libraries/schema-edits/index.d.ts +1 -1
- package/lib/feature-libraries/schema-edits/index.d.ts.map +1 -1
- package/lib/feature-libraries/schema-edits/index.js.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +6 -7
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js +6 -5
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
- package/lib/feature-libraries/schema-index/codec.d.ts +10 -10
- package/lib/feature-libraries/schema-index/codec.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/codec.js +24 -20
- package/lib/feature-libraries/schema-index/codec.js.map +1 -1
- package/lib/feature-libraries/schema-index/formatV1.d.ts +2 -2
- package/lib/feature-libraries/schema-index/formatV1.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/formatV1.js +2 -2
- package/lib/feature-libraries/schema-index/formatV1.js.map +1 -1
- package/lib/feature-libraries/schema-index/formatV2.d.ts +1 -2
- package/lib/feature-libraries/schema-index/formatV2.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/formatV2.js +2 -2
- package/lib/feature-libraries/schema-index/formatV2.js.map +1 -1
- package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts +2 -2
- package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/legacy.d.ts +8 -0
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/shared-tree/independentView.d.ts +75 -6
- package/lib/shared-tree/independentView.d.ts.map +1 -1
- package/lib/shared-tree/independentView.js +111 -39
- package/lib/shared-tree/independentView.js.map +1 -1
- package/lib/shared-tree/index.d.ts +2 -1
- package/lib/shared-tree/index.d.ts.map +1 -1
- package/lib/shared-tree/index.js +2 -1
- package/lib/shared-tree/index.js.map +1 -1
- package/lib/shared-tree/sharedTree.d.ts +12 -16
- package/lib/shared-tree/sharedTree.d.ts.map +1 -1
- package/lib/shared-tree/sharedTree.js +108 -133
- package/lib/shared-tree/sharedTree.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.d.ts +7 -6
- package/lib/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.js +7 -6
- 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/treeAlpha.d.ts +1 -1
- package/lib/shared-tree/treeAlpha.d.ts.map +1 -1
- package/lib/shared-tree/treeAlpha.js +5 -3
- package/lib/shared-tree/treeAlpha.js.map +1 -1
- package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
- package/lib/shared-tree/treeCheckout.js +1 -3
- package/lib/shared-tree/treeCheckout.js.map +1 -1
- package/lib/shared-tree-core/editManagerCodecs.d.ts +19 -6
- package/lib/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerCodecs.js +32 -16
- package/lib/shared-tree-core/editManagerCodecs.js.map +1 -1
- package/lib/shared-tree-core/editManagerFormatCommons.d.ts +37 -0
- package/lib/shared-tree-core/editManagerFormatCommons.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerFormatCommons.js +42 -0
- package/lib/shared-tree-core/editManagerFormatCommons.js.map +1 -1
- package/lib/shared-tree-core/editManagerFormatV1toV4.d.ts +2 -2
- package/lib/shared-tree-core/editManagerFormatV1toV4.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerFormatV1toV4.js +5 -5
- package/lib/shared-tree-core/editManagerFormatV1toV4.js.map +1 -1
- package/lib/shared-tree-core/editManagerFormatV5.d.ts +2 -2
- package/lib/shared-tree-core/editManagerFormatV5.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerFormatV5.js +2 -2
- package/lib/shared-tree-core/editManagerFormatV5.js.map +1 -1
- package/lib/shared-tree-core/index.d.ts +5 -3
- package/lib/shared-tree-core/index.d.ts.map +1 -1
- package/lib/shared-tree-core/index.js +4 -2
- package/lib/shared-tree-core/index.js.map +1 -1
- package/lib/shared-tree-core/messageCodecV1ToV4.d.ts +2 -1
- package/lib/shared-tree-core/messageCodecV1ToV4.d.ts.map +1 -1
- package/lib/shared-tree-core/messageCodecV1ToV4.js.map +1 -1
- package/lib/shared-tree-core/messageCodecV5.d.ts +2 -1
- package/lib/shared-tree-core/messageCodecV5.d.ts.map +1 -1
- package/lib/shared-tree-core/messageCodecV5.js.map +1 -1
- package/lib/shared-tree-core/messageCodecs.d.ts +19 -6
- package/lib/shared-tree-core/messageCodecs.d.ts.map +1 -1
- package/lib/shared-tree-core/messageCodecs.js +35 -20
- package/lib/shared-tree-core/messageCodecs.js.map +1 -1
- package/lib/shared-tree-core/messageFormat.d.ts +50 -0
- package/lib/shared-tree-core/messageFormat.d.ts.map +1 -0
- package/lib/shared-tree-core/messageFormat.js +48 -0
- package/lib/shared-tree-core/messageFormat.js.map +1 -0
- package/lib/shared-tree-core/sharedTreeCore.d.ts +8 -8
- package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.js +3 -3
- package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/lib/simple-tree/api/discrepancies.d.ts +2 -2
- package/lib/simple-tree/api/discrepancies.js.map +1 -1
- package/lib/simple-tree/api/incrementalAllowedTypes.d.ts +1 -1
- package/lib/simple-tree/api/incrementalAllowedTypes.js +1 -1
- package/lib/simple-tree/api/incrementalAllowedTypes.js.map +1 -1
- 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 +1 -0
- package/lib/simple-tree/api/index.js.map +1 -1
- package/lib/simple-tree/api/schemaFactory.d.ts +2 -2
- package/lib/simple-tree/api/schemaFactory.js +2 -2
- package/lib/simple-tree/api/schemaFactory.js.map +1 -1
- package/lib/simple-tree/api/schemaFactoryAlpha.d.ts +2 -98
- package/lib/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactoryAlpha.js +1 -52
- package/lib/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
- package/lib/simple-tree/api/schemaFactoryBeta.d.ts +98 -2
- package/lib/simple-tree/api/schemaFactoryBeta.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactoryBeta.js +58 -4
- package/lib/simple-tree/api/schemaFactoryBeta.js.map +1 -1
- package/lib/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactoryRecursive.js +1 -0
- package/lib/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
- package/lib/simple-tree/api/schemaFromSimple.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFromSimple.js +15 -8
- package/lib/simple-tree/api/schemaFromSimple.js.map +1 -1
- package/lib/simple-tree/api/simpleSchemaCodec.d.ts +28 -0
- package/lib/simple-tree/api/simpleSchemaCodec.d.ts.map +1 -0
- package/lib/simple-tree/api/simpleSchemaCodec.js +264 -0
- package/lib/simple-tree/api/simpleSchemaCodec.js.map +1 -0
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.js +4 -2
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
- package/lib/simple-tree/api/storedSchema.d.ts +2 -2
- package/lib/simple-tree/api/storedSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/storedSchema.js +5 -3
- package/lib/simple-tree/api/storedSchema.js.map +1 -1
- package/lib/simple-tree/api/tree.d.ts +2 -2
- package/lib/simple-tree/api/tree.js.map +1 -1
- package/lib/simple-tree/api/typesUnsafe.d.ts +6 -6
- package/lib/simple-tree/api/typesUnsafe.js.map +1 -1
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.d.ts +17 -1
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.js +69 -7
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.js.map +1 -1
- package/lib/simple-tree/core/allowedTypes.d.ts +12 -7
- package/lib/simple-tree/core/allowedTypes.d.ts.map +1 -1
- package/lib/simple-tree/core/allowedTypes.js +19 -6
- package/lib/simple-tree/core/allowedTypes.js.map +1 -1
- package/lib/simple-tree/core/treeNode.js +1 -1
- package/lib/simple-tree/core/treeNode.js.map +1 -1
- package/lib/simple-tree/fieldSchema.d.ts +2 -1
- package/lib/simple-tree/fieldSchema.d.ts.map +1 -1
- package/lib/simple-tree/fieldSchema.js +10 -0
- package/lib/simple-tree/fieldSchema.js.map +1 -1
- package/lib/simple-tree/index.d.ts +3 -2
- package/lib/simple-tree/index.d.ts.map +1 -1
- package/lib/simple-tree/index.js +1 -0
- package/lib/simple-tree/index.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 +9 -3
- 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 +9 -3
- package/lib/simple-tree/node-kinds/map/mapNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNode.d.ts +17 -0
- package/lib/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNode.js +22 -9
- 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 +10 -4
- package/lib/simple-tree/node-kinds/record/recordNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/record/recordNodeTypes.d.ts +16 -0
- package/lib/simple-tree/node-kinds/record/recordNodeTypes.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/record/recordNodeTypes.js.map +1 -1
- package/lib/simple-tree/simpleSchema.d.ts +30 -6
- package/lib/simple-tree/simpleSchema.d.ts.map +1 -1
- package/lib/simple-tree/simpleSchema.js.map +1 -1
- package/lib/simple-tree/simpleSchemaFormatV1.d.ts +249 -0
- package/lib/simple-tree/simpleSchemaFormatV1.d.ts.map +1 -0
- package/lib/simple-tree/simpleSchemaFormatV1.js +112 -0
- package/lib/simple-tree/simpleSchemaFormatV1.js.map +1 -0
- package/lib/simple-tree/toStoredSchema.d.ts.map +1 -1
- package/lib/simple-tree/toStoredSchema.js +6 -3
- package/lib/simple-tree/toStoredSchema.js.map +1 -1
- package/lib/tableSchema.d.ts.map +1 -1
- package/lib/tableSchema.js +1 -1
- package/lib/tableSchema.js.map +1 -1
- package/lib/treeFactory.d.ts +3 -1
- package/lib/treeFactory.d.ts.map +1 -1
- package/lib/treeFactory.js +23 -1
- package/lib/treeFactory.js.map +1 -1
- package/lib/util/brand.d.ts +31 -2
- package/lib/util/brand.d.ts.map +1 -1
- package/lib/util/brand.js +26 -1
- package/lib/util/brand.js.map +1 -1
- package/lib/util/brandedMap.d.ts +3 -1
- package/lib/util/brandedMap.d.ts.map +1 -1
- package/lib/util/brandedMap.js.map +1 -1
- package/lib/util/index.d.ts +1 -1
- package/lib/util/index.d.ts.map +1 -1
- package/lib/util/index.js +1 -1
- package/lib/util/index.js.map +1 -1
- package/lib/util/referenceCounting.d.ts.map +1 -1
- package/lib/util/referenceCounting.js +1 -0
- package/lib/util/referenceCounting.js.map +1 -1
- package/package.json +26 -26
- package/src/api.ts +2 -2
- package/src/codec/codec.ts +17 -3
- package/src/codec/discriminatedUnions.ts +1 -1
- package/src/core/index.ts +1 -2
- package/src/core/schema-stored/index.ts +1 -2
- package/src/core/schema-stored/schema.ts +10 -7
- package/src/core/tree/detachedFieldIndexCodecCommon.ts +2 -1
- package/src/core/tree/detachedFieldIndexCodecV1.ts +4 -2
- package/src/core/tree/detachedFieldIndexCodecV2.ts +4 -6
- package/src/core/tree/detachedFieldIndexCodecs.ts +33 -11
- package/src/core/tree/detachedFieldIndexFormatCommon.ts +17 -2
- package/src/core/tree/detachedFieldIndexFormatV1.ts +6 -4
- package/src/core/tree/detachedFieldIndexFormatV2.ts +6 -4
- package/src/core/tree/index.ts +2 -4
- package/src/external-utilities/typeboxValidator.ts +1 -1
- package/src/feature-libraries/chunked-forest/codec/codecs.ts +18 -13
- package/src/feature-libraries/chunked-forest/codec/compressedEncode.ts +2 -2
- package/src/feature-libraries/chunked-forest/codec/format.ts +15 -4
- package/src/feature-libraries/chunked-forest/codec/index.ts +4 -2
- package/src/feature-libraries/chunked-forest/codec/uncompressedEncode.ts +2 -2
- package/src/feature-libraries/chunked-forest/index.ts +0 -1
- package/src/feature-libraries/default-schema/defaultFieldKinds.ts +2 -29
- package/src/feature-libraries/forest-summary/codec.ts +24 -9
- package/src/feature-libraries/forest-summary/forestSummarizer.ts +1 -1
- package/src/feature-libraries/forest-summary/format.ts +12 -2
- package/src/feature-libraries/forest-summary/index.ts +2 -1
- package/src/feature-libraries/index.ts +1 -2
- package/src/feature-libraries/schema-edits/index.ts +0 -1
- package/src/feature-libraries/schema-edits/schemaChangeCodecs.ts +16 -16
- package/src/feature-libraries/schema-index/codec.ts +34 -22
- package/src/feature-libraries/schema-index/formatV1.ts +2 -2
- package/src/feature-libraries/schema-index/formatV2.ts +2 -2
- package/src/feature-libraries/schema-index/schemaSummarizer.ts +2 -1
- package/src/index.ts +6 -1
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/independentView.ts +161 -75
- package/src/shared-tree/index.ts +4 -0
- package/src/shared-tree/sharedTree.ts +137 -175
- package/src/shared-tree/sharedTreeChangeCodecs.ts +15 -9
- package/src/shared-tree/sharedTreeChangeFamily.ts +2 -2
- package/src/shared-tree/treeAlpha.ts +6 -5
- package/src/shared-tree/treeCheckout.ts +1 -3
- package/src/shared-tree-core/editManagerCodecs.ts +56 -19
- package/src/shared-tree-core/editManagerFormatCommons.ts +47 -0
- package/src/shared-tree-core/editManagerFormatV1toV4.ts +10 -5
- package/src/shared-tree-core/editManagerFormatV5.ts +3 -3
- package/src/shared-tree-core/index.ts +11 -5
- package/src/shared-tree-core/messageCodecV1ToV4.ts +6 -1
- package/src/shared-tree-core/messageCodecV5.ts +2 -1
- package/src/shared-tree-core/messageCodecs.ts +60 -26
- package/src/shared-tree-core/messageFormat.ts +56 -0
- package/src/shared-tree-core/sharedTreeCore.ts +11 -13
- package/src/simple-tree/api/discrepancies.ts +2 -2
- package/src/simple-tree/api/incrementalAllowedTypes.ts +1 -1
- package/src/simple-tree/api/index.ts +6 -2
- package/src/simple-tree/api/schemaFactory.ts +2 -2
- package/src/simple-tree/api/schemaFactoryAlpha.ts +2 -168
- package/src/simple-tree/api/schemaFactoryBeta.ts +180 -14
- package/src/simple-tree/api/schemaFactoryRecursive.ts +2 -0
- package/src/simple-tree/api/schemaFromSimple.ts +23 -17
- package/src/simple-tree/api/simpleSchemaCodec.ts +360 -0
- package/src/simple-tree/api/simpleSchemaToJsonSchema.ts +8 -2
- package/src/simple-tree/api/storedSchema.ts +8 -5
- package/src/simple-tree/api/tree.ts +2 -2
- package/src/simple-tree/api/typesUnsafe.ts +6 -6
- package/src/simple-tree/api/viewSchemaToSimpleSchema.ts +76 -7
- package/src/simple-tree/core/allowedTypes.ts +29 -16
- package/src/simple-tree/core/treeNode.ts +2 -2
- package/src/simple-tree/fieldSchema.ts +14 -1
- package/src/simple-tree/index.ts +6 -1
- package/src/simple-tree/node-kinds/array/arrayNode.ts +11 -2
- package/src/simple-tree/node-kinds/map/mapNode.ts +11 -2
- package/src/simple-tree/node-kinds/object/objectNode.ts +57 -21
- package/src/simple-tree/node-kinds/record/recordNode.ts +12 -3
- package/src/simple-tree/node-kinds/record/recordNodeTypes.ts +16 -0
- package/src/simple-tree/simpleSchema.ts +32 -6
- package/src/simple-tree/simpleSchemaFormatV1.ts +179 -0
- package/src/simple-tree/toStoredSchema.ts +12 -3
- package/src/tableSchema.ts +5 -2
- package/src/treeFactory.ts +33 -1
- package/src/util/brand.ts +40 -2
- package/src/util/brandedMap.ts +3 -1
- package/src/util/index.ts +1 -0
- package/src/util/referenceCounting.ts +1 -0
|
@@ -4,9 +4,10 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import type { ErasedType, IFluidLoadable } from "@fluidframework/core-interfaces/internal";
|
|
7
|
-
import { assert, fail
|
|
7
|
+
import { assert, fail } from "@fluidframework/core-utils/internal";
|
|
8
8
|
import type { IChannelStorageService } from "@fluidframework/datastore-definitions/internal";
|
|
9
9
|
import type { IIdCompressor, StableId } from "@fluidframework/id-compressor";
|
|
10
|
+
import type { MinimumVersionForCollab } from "@fluidframework/runtime-definitions/internal";
|
|
10
11
|
import type {
|
|
11
12
|
IChannelView,
|
|
12
13
|
IFluidSerializer,
|
|
@@ -26,7 +27,6 @@ import {
|
|
|
26
27
|
type ICodecOptions,
|
|
27
28
|
} from "../codec/index.js";
|
|
28
29
|
import {
|
|
29
|
-
type DetachedFieldIndexFormatVersion,
|
|
30
30
|
type FieldKey,
|
|
31
31
|
type GraphCommit,
|
|
32
32
|
type IEditableForest,
|
|
@@ -35,13 +35,12 @@ import {
|
|
|
35
35
|
MapNodeStoredSchema,
|
|
36
36
|
ObjectNodeStoredSchema,
|
|
37
37
|
RevisionTagCodec,
|
|
38
|
-
type SchemaFormatVersion,
|
|
39
|
-
SchemaVersion,
|
|
40
38
|
type TreeFieldStoredSchema,
|
|
41
39
|
type TreeNodeStoredSchema,
|
|
42
40
|
type TreeStoredSchema,
|
|
43
41
|
TreeStoredSchemaRepository,
|
|
44
42
|
type TreeStoredSchemaSubscription,
|
|
43
|
+
type TreeTypeSet,
|
|
45
44
|
getCodecTreeForDetachedFieldIndexFormat,
|
|
46
45
|
makeDetachedFieldIndex,
|
|
47
46
|
moveToDetachedField,
|
|
@@ -65,21 +64,21 @@ import {
|
|
|
65
64
|
makeSchemaCodec,
|
|
66
65
|
makeTreeChunker,
|
|
67
66
|
type IncrementalEncodingPolicy,
|
|
68
|
-
type FieldBatchFormatVersion,
|
|
69
|
-
type ForestFormatVersion,
|
|
70
67
|
type TreeCompressionStrategyPrivate,
|
|
71
68
|
} from "../feature-libraries/index.js";
|
|
72
|
-
// eslint-disable-next-line import/no-internal-modules
|
|
69
|
+
// eslint-disable-next-line import-x/no-internal-modules
|
|
73
70
|
import type { FormatV1 } from "../feature-libraries/schema-index/index.js";
|
|
74
71
|
import {
|
|
75
72
|
type BranchId,
|
|
73
|
+
clientVersionToEditManagerFormatVersion,
|
|
74
|
+
clientVersionToMessageFormatVersion,
|
|
76
75
|
type ClonableSchemaAndPolicy,
|
|
77
|
-
type EditManagerFormatVersion,
|
|
78
|
-
type ExplicitCoreCodecVersions,
|
|
79
76
|
getCodecTreeForEditManagerFormatWithChange,
|
|
80
77
|
getCodecTreeForMessageFormatWithChange,
|
|
81
|
-
type
|
|
78
|
+
type SharedTreCoreOptionsInternal,
|
|
79
|
+
MessageFormatVersion,
|
|
82
80
|
SharedTreeCore,
|
|
81
|
+
EditManagerFormatVersion,
|
|
83
82
|
} from "../shared-tree-core/index.js";
|
|
84
83
|
import {
|
|
85
84
|
type ITree,
|
|
@@ -98,6 +97,7 @@ import {
|
|
|
98
97
|
FieldKind,
|
|
99
98
|
type ITreeAlpha,
|
|
100
99
|
type SimpleObjectFieldSchema,
|
|
100
|
+
type SimpleAllowedTypeAttributes,
|
|
101
101
|
} from "../simple-tree/index.js";
|
|
102
102
|
|
|
103
103
|
import { SchematizingSimpleTreeView } from "./schematizingTreeView.js";
|
|
@@ -170,98 +170,6 @@ export interface ITreePrivate extends ITreeInternal {
|
|
|
170
170
|
readonly kernel: SharedTreeKernel;
|
|
171
171
|
}
|
|
172
172
|
|
|
173
|
-
/**
|
|
174
|
-
* Has an entry for each codec which writes an explicit version into its data.
|
|
175
|
-
*
|
|
176
|
-
* This is used to map the single API entrypoint controlling the format {@link SharedTreeOptions.formatVersion}
|
|
177
|
-
* to a list of write versions that for each codec that should be used for that format.
|
|
178
|
-
*
|
|
179
|
-
* Note that all explicitly versioned codecs should be using the format version from the data to read encoded data.
|
|
180
|
-
*
|
|
181
|
-
* TODO: Plumb these write versions into forest, schema, detached field index codec creation.
|
|
182
|
-
*/
|
|
183
|
-
interface ExplicitCodecVersions extends ExplicitCoreCodecVersions {
|
|
184
|
-
forest: ForestFormatVersion;
|
|
185
|
-
schema: SchemaFormatVersion;
|
|
186
|
-
detachedFieldIndex: DetachedFieldIndexFormatVersion;
|
|
187
|
-
fieldBatch: FieldBatchFormatVersion;
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
const formatVersionToTopLevelCodecVersions = new Map<number, ExplicitCodecVersions>([
|
|
191
|
-
[
|
|
192
|
-
1,
|
|
193
|
-
{
|
|
194
|
-
forest: brand(1),
|
|
195
|
-
schema: brand(1),
|
|
196
|
-
detachedFieldIndex: brand(1),
|
|
197
|
-
editManager: brand(1),
|
|
198
|
-
message: brand(1),
|
|
199
|
-
fieldBatch: brand(1),
|
|
200
|
-
},
|
|
201
|
-
],
|
|
202
|
-
[
|
|
203
|
-
2,
|
|
204
|
-
{
|
|
205
|
-
forest: brand(1),
|
|
206
|
-
schema: brand(1),
|
|
207
|
-
detachedFieldIndex: brand(1),
|
|
208
|
-
editManager: brand(2),
|
|
209
|
-
message: brand(2),
|
|
210
|
-
fieldBatch: brand(1),
|
|
211
|
-
},
|
|
212
|
-
],
|
|
213
|
-
[
|
|
214
|
-
3,
|
|
215
|
-
{
|
|
216
|
-
forest: brand(1),
|
|
217
|
-
schema: brand(1),
|
|
218
|
-
detachedFieldIndex: brand(1),
|
|
219
|
-
editManager: brand(3),
|
|
220
|
-
message: brand(3),
|
|
221
|
-
fieldBatch: brand(1),
|
|
222
|
-
},
|
|
223
|
-
],
|
|
224
|
-
[
|
|
225
|
-
4,
|
|
226
|
-
{
|
|
227
|
-
forest: brand(1),
|
|
228
|
-
schema: brand(1),
|
|
229
|
-
detachedFieldIndex: brand(1),
|
|
230
|
-
editManager: brand(4),
|
|
231
|
-
message: brand(4),
|
|
232
|
-
fieldBatch: brand(1),
|
|
233
|
-
},
|
|
234
|
-
],
|
|
235
|
-
[
|
|
236
|
-
5,
|
|
237
|
-
{
|
|
238
|
-
forest: brand(1),
|
|
239
|
-
schema: brand(2),
|
|
240
|
-
detachedFieldIndex: brand(1),
|
|
241
|
-
editManager: brand(4),
|
|
242
|
-
message: brand(4),
|
|
243
|
-
fieldBatch: brand(1),
|
|
244
|
-
},
|
|
245
|
-
],
|
|
246
|
-
[
|
|
247
|
-
100, // SharedTreeFormatVersion.vSharedBranches
|
|
248
|
-
{
|
|
249
|
-
forest: brand(1),
|
|
250
|
-
schema: brand(2),
|
|
251
|
-
detachedFieldIndex: brand(1),
|
|
252
|
-
editManager: brand(5),
|
|
253
|
-
message: brand(5),
|
|
254
|
-
fieldBatch: brand(1),
|
|
255
|
-
},
|
|
256
|
-
],
|
|
257
|
-
]);
|
|
258
|
-
|
|
259
|
-
function getCodecVersions(formatVersion: number): ExplicitCodecVersions {
|
|
260
|
-
const versions = formatVersionToTopLevelCodecVersions.get(formatVersion);
|
|
261
|
-
assert(versions !== undefined, 0x90e /* Unknown format version */);
|
|
262
|
-
return versions;
|
|
263
|
-
}
|
|
264
|
-
|
|
265
173
|
/**
|
|
266
174
|
* The type SharedTree's kernel's view must implement so what when its merged with the underling SharedObject's API it fully implements the required tree API surface ({@link ITreePrivate }).
|
|
267
175
|
*/
|
|
@@ -304,8 +212,13 @@ export class SharedTreeKernel
|
|
|
304
212
|
idCompressor: IIdCompressor,
|
|
305
213
|
optionsParam: SharedTreeOptionsInternal,
|
|
306
214
|
) {
|
|
307
|
-
const options = {
|
|
308
|
-
|
|
215
|
+
const options: Required<SharedTreeOptionsInternal> = {
|
|
216
|
+
...defaultSharedTreeOptions,
|
|
217
|
+
...optionsParam,
|
|
218
|
+
};
|
|
219
|
+
if (options.minVersionForCollab < FluidClientVersion.v2_0) {
|
|
220
|
+
throw new UsageError("SharedTree requires minVersionForCollab of at least 2.0.0");
|
|
221
|
+
}
|
|
309
222
|
const schema = new TreeStoredSchemaRepository();
|
|
310
223
|
const forest = buildConfiguredForest(
|
|
311
224
|
breaker,
|
|
@@ -321,7 +234,7 @@ export class SharedTreeKernel
|
|
|
321
234
|
idCompressor,
|
|
322
235
|
options,
|
|
323
236
|
);
|
|
324
|
-
const schemaCodec = makeSchemaCodec(options
|
|
237
|
+
const schemaCodec = makeSchemaCodec(options);
|
|
325
238
|
const schemaSummarizer = new SchemaSummarizer(
|
|
326
239
|
schema,
|
|
327
240
|
{
|
|
@@ -329,7 +242,7 @@ export class SharedTreeKernel
|
|
|
329
242
|
},
|
|
330
243
|
schemaCodec,
|
|
331
244
|
);
|
|
332
|
-
const fieldBatchCodec = makeFieldBatchCodec(options
|
|
245
|
+
const fieldBatchCodec = makeFieldBatchCodec(options);
|
|
333
246
|
|
|
334
247
|
const encoderContext = {
|
|
335
248
|
schema: {
|
|
@@ -390,7 +303,6 @@ export class SharedTreeKernel
|
|
|
390
303
|
[schemaSummarizer, forestSummarizer, removedRootsSummarizer],
|
|
391
304
|
changeFamily,
|
|
392
305
|
options,
|
|
393
|
-
codecVersions,
|
|
394
306
|
changeFormatVersionForEditManager,
|
|
395
307
|
changeFormatVersionForMessage,
|
|
396
308
|
idCompressor,
|
|
@@ -619,7 +531,12 @@ export function persistedToSimpleSchema(
|
|
|
619
531
|
persisted: JsonCompatible,
|
|
620
532
|
options: ICodecOptions,
|
|
621
533
|
): SimpleTreeSchema {
|
|
622
|
-
|
|
534
|
+
// Any version can be passed down to makeSchemaCodec here.
|
|
535
|
+
// We only use the decode part, which always dispatches to the correct codec based on the version in the data, not the version passed to `makeSchemaCodec`.
|
|
536
|
+
const schemaCodec = makeSchemaCodec({
|
|
537
|
+
...options,
|
|
538
|
+
minVersionForCollab: FluidClientVersion.v2_0,
|
|
539
|
+
});
|
|
623
540
|
const stored = schemaCodec.decode(persisted as FormatV1);
|
|
624
541
|
return exportSimpleSchema(stored);
|
|
625
542
|
}
|
|
@@ -714,11 +631,26 @@ export type SharedTreeFormatVersion = typeof SharedTreeFormatVersion;
|
|
|
714
631
|
* This is because the format for SharedTree changes are not explicitly versioned.
|
|
715
632
|
*/
|
|
716
633
|
export const changeFormatVersionForEditManager = DependentFormatVersion.fromPairs([
|
|
717
|
-
[
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
[
|
|
634
|
+
[
|
|
635
|
+
brand<EditManagerFormatVersion>(EditManagerFormatVersion.v1),
|
|
636
|
+
brand<SharedTreeChangeFormatVersion>(1),
|
|
637
|
+
],
|
|
638
|
+
[
|
|
639
|
+
brand<EditManagerFormatVersion>(EditManagerFormatVersion.v2),
|
|
640
|
+
brand<SharedTreeChangeFormatVersion>(2),
|
|
641
|
+
],
|
|
642
|
+
[
|
|
643
|
+
brand<EditManagerFormatVersion>(EditManagerFormatVersion.v3),
|
|
644
|
+
brand<SharedTreeChangeFormatVersion>(3),
|
|
645
|
+
],
|
|
646
|
+
[
|
|
647
|
+
brand<EditManagerFormatVersion>(EditManagerFormatVersion.v4),
|
|
648
|
+
brand<SharedTreeChangeFormatVersion>(4),
|
|
649
|
+
],
|
|
650
|
+
[
|
|
651
|
+
brand<EditManagerFormatVersion>(EditManagerFormatVersion.v5),
|
|
652
|
+
brand<SharedTreeChangeFormatVersion>(4),
|
|
653
|
+
],
|
|
722
654
|
]);
|
|
723
655
|
|
|
724
656
|
/**
|
|
@@ -728,58 +660,61 @@ export const changeFormatVersionForEditManager = DependentFormatVersion.fromPair
|
|
|
728
660
|
* This is because the format for SharedTree changes are not explicitly versioned.
|
|
729
661
|
*/
|
|
730
662
|
export const changeFormatVersionForMessage = DependentFormatVersion.fromPairs([
|
|
731
|
-
[
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
[
|
|
736
|
-
|
|
663
|
+
[
|
|
664
|
+
brand<MessageFormatVersion>(MessageFormatVersion.undefined),
|
|
665
|
+
brand<SharedTreeChangeFormatVersion>(1),
|
|
666
|
+
],
|
|
667
|
+
[
|
|
668
|
+
brand<MessageFormatVersion>(MessageFormatVersion.v1),
|
|
669
|
+
brand<SharedTreeChangeFormatVersion>(1),
|
|
670
|
+
],
|
|
671
|
+
[
|
|
672
|
+
brand<MessageFormatVersion>(MessageFormatVersion.v2),
|
|
673
|
+
brand<SharedTreeChangeFormatVersion>(2),
|
|
674
|
+
],
|
|
675
|
+
[
|
|
676
|
+
brand<MessageFormatVersion>(MessageFormatVersion.v3),
|
|
677
|
+
brand<SharedTreeChangeFormatVersion>(3),
|
|
678
|
+
],
|
|
679
|
+
[
|
|
680
|
+
brand<MessageFormatVersion>(MessageFormatVersion.v4),
|
|
681
|
+
brand<SharedTreeChangeFormatVersion>(4),
|
|
682
|
+
],
|
|
683
|
+
[
|
|
684
|
+
brand<MessageFormatVersion>(MessageFormatVersion.v5),
|
|
685
|
+
brand<SharedTreeChangeFormatVersion>(4),
|
|
686
|
+
],
|
|
737
687
|
]);
|
|
738
688
|
|
|
739
|
-
function getCodecTreeForEditManagerFormat(
|
|
740
|
-
const change = changeFormatVersionForEditManager.lookup(
|
|
741
|
-
|
|
742
|
-
|
|
689
|
+
function getCodecTreeForEditManagerFormat(clientVersion: MinimumVersionForCollab): CodecTree {
|
|
690
|
+
const change = changeFormatVersionForEditManager.lookup(
|
|
691
|
+
clientVersionToEditManagerFormatVersion(clientVersion),
|
|
692
|
+
);
|
|
693
|
+
const changeCodecTree = getCodecTreeForChangeFormat(change, clientVersion);
|
|
694
|
+
return getCodecTreeForEditManagerFormatWithChange(clientVersion, changeCodecTree);
|
|
743
695
|
}
|
|
744
696
|
|
|
745
|
-
function getCodecTreeForMessageFormat(
|
|
746
|
-
const change = changeFormatVersionForMessage.lookup(
|
|
747
|
-
|
|
748
|
-
|
|
697
|
+
function getCodecTreeForMessageFormat(clientVersion: MinimumVersionForCollab): CodecTree {
|
|
698
|
+
const change = changeFormatVersionForMessage.lookup(
|
|
699
|
+
clientVersionToMessageFormatVersion(clientVersion),
|
|
700
|
+
);
|
|
701
|
+
const changeCodecTree = getCodecTreeForChangeFormat(change, clientVersion);
|
|
702
|
+
return getCodecTreeForMessageFormatWithChange(clientVersion, changeCodecTree);
|
|
749
703
|
}
|
|
750
704
|
|
|
751
705
|
export function getCodecTreeForSharedTreeFormat(
|
|
752
|
-
|
|
706
|
+
clientVersion: MinimumVersionForCollab,
|
|
753
707
|
): CodecTree {
|
|
754
708
|
const children: CodecTree[] = [];
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
case "message":
|
|
762
|
-
children.push(getCodecTreeForMessageFormat(childCodecs.message));
|
|
763
|
-
break;
|
|
764
|
-
case "forest":
|
|
765
|
-
children.push(getCodecTreeForForestFormat(childCodecs.forest));
|
|
766
|
-
break;
|
|
767
|
-
case "schema":
|
|
768
|
-
children.push(getCodecTreeForSchemaFormat(childCodecs.schema));
|
|
769
|
-
break;
|
|
770
|
-
case "detachedFieldIndex":
|
|
771
|
-
children.push(getCodecTreeForDetachedFieldIndexFormat(childCodecs.detachedFieldIndex));
|
|
772
|
-
break;
|
|
773
|
-
case "fieldBatch":
|
|
774
|
-
children.push(getCodecTreeForFieldBatchFormat(childCodecs.fieldBatch));
|
|
775
|
-
break;
|
|
776
|
-
default:
|
|
777
|
-
unreachableCase(name);
|
|
778
|
-
}
|
|
779
|
-
}
|
|
709
|
+
children.push(getCodecTreeForForestFormat(clientVersion));
|
|
710
|
+
children.push(getCodecTreeForSchemaFormat(clientVersion));
|
|
711
|
+
children.push(getCodecTreeForDetachedFieldIndexFormat(clientVersion));
|
|
712
|
+
children.push(getCodecTreeForEditManagerFormat(clientVersion));
|
|
713
|
+
children.push(getCodecTreeForMessageFormat(clientVersion));
|
|
714
|
+
children.push(getCodecTreeForFieldBatchFormat(clientVersion));
|
|
780
715
|
return {
|
|
781
716
|
name: "SharedTree",
|
|
782
|
-
version,
|
|
717
|
+
version: undefined, // SharedTree does not have a version of its own.
|
|
783
718
|
children,
|
|
784
719
|
};
|
|
785
720
|
}
|
|
@@ -794,12 +729,21 @@ export type SharedTreeOptionsBeta = ForestOptions;
|
|
|
794
729
|
* Configuration options for SharedTree.
|
|
795
730
|
* @alpha @input
|
|
796
731
|
*/
|
|
797
|
-
export
|
|
798
|
-
Partial<
|
|
799
|
-
|
|
732
|
+
export interface SharedTreeOptions
|
|
733
|
+
extends Partial<CodecWriteOptions>,
|
|
734
|
+
Partial<SharedTreeFormatOptions>,
|
|
735
|
+
SharedTreeOptionsBeta {
|
|
736
|
+
/**
|
|
737
|
+
* Experimental feature flag to enable shared branches.
|
|
738
|
+
* This feature is not yet complete and should not be used in production.
|
|
739
|
+
* Defaults to false.
|
|
740
|
+
*/
|
|
741
|
+
readonly enableSharedBranches?: boolean;
|
|
742
|
+
}
|
|
800
743
|
|
|
801
744
|
export interface SharedTreeOptionsInternal
|
|
802
|
-
extends
|
|
745
|
+
extends Partial<SharedTreCoreOptionsInternal>,
|
|
746
|
+
Partial<ForestOptions>,
|
|
803
747
|
Partial<SharedTreeFormatOptionsInternal> {
|
|
804
748
|
disposeForksAfterTransaction?: boolean;
|
|
805
749
|
/**
|
|
@@ -809,6 +753,7 @@ export interface SharedTreeOptionsInternal
|
|
|
809
753
|
*/
|
|
810
754
|
shouldEncodeIncrementally?: IncrementalEncodingPolicy;
|
|
811
755
|
}
|
|
756
|
+
|
|
812
757
|
/**
|
|
813
758
|
* Configuration options for SharedTree's internal tree storage.
|
|
814
759
|
* @beta @input
|
|
@@ -830,18 +775,6 @@ export interface SharedTreeFormatOptions {
|
|
|
830
775
|
* default: TreeCompressionStrategy.Compressed
|
|
831
776
|
*/
|
|
832
777
|
treeEncodeType: TreeCompressionStrategy;
|
|
833
|
-
/**
|
|
834
|
-
* The format version SharedTree should use to persist documents.
|
|
835
|
-
*
|
|
836
|
-
* This option has compatibility implications for applications using SharedTree.
|
|
837
|
-
* Each version documents a required minimum version of \@fluidframework/tree.
|
|
838
|
-
* If this minimum version fails to be met, the SharedTree may fail to load.
|
|
839
|
-
* To be safe, application authors should verify that they have saturated this version
|
|
840
|
-
* of \@fluidframework/tree in their ecosystem before changing the format version.
|
|
841
|
-
*
|
|
842
|
-
* This option defaults to SharedTreeFormatVersion.v2.
|
|
843
|
-
*/
|
|
844
|
-
formatVersion: SharedTreeFormatVersion[keyof SharedTreeFormatVersion];
|
|
845
778
|
}
|
|
846
779
|
|
|
847
780
|
export interface SharedTreeFormatOptionsInternal
|
|
@@ -947,11 +880,30 @@ export const defaultSharedTreeOptions: Required<SharedTreeOptionsInternal> = {
|
|
|
947
880
|
minVersionForCollab: FluidClientVersion.v2_0,
|
|
948
881
|
forest: ForestTypeReference,
|
|
949
882
|
treeEncodeType: TreeCompressionStrategy.Compressed,
|
|
950
|
-
formatVersion: SharedTreeFormatVersion.v3,
|
|
951
883
|
disposeForksAfterTransaction: true,
|
|
952
884
|
shouldEncodeIncrementally: defaultIncrementalEncodingPolicy,
|
|
885
|
+
editManagerFormatSelector: clientVersionToEditManagerFormatVersion,
|
|
886
|
+
messageFormatSelector: clientVersionToMessageFormatVersion,
|
|
953
887
|
};
|
|
954
888
|
|
|
889
|
+
/**
|
|
890
|
+
* Build the allowed types for a Stored Schema.
|
|
891
|
+
*
|
|
892
|
+
* @remarks Staged upgrades do not apply to stored schemas, so we omit the {@link SimpleAllowedTypeAttributes.isStaged | staging flag } when building {@link SimpleAllowedTypeAttributes}.
|
|
893
|
+
* @param types - The types to create allowed types for.
|
|
894
|
+
* @returns The allowed types.
|
|
895
|
+
*/
|
|
896
|
+
function buildSimpleAllowedTypeAttributesForStoredSchema(
|
|
897
|
+
types: TreeTypeSet,
|
|
898
|
+
): ReadonlyMap<string, SimpleAllowedTypeAttributes> {
|
|
899
|
+
const allowedTypesInfo = new Map<string, SimpleAllowedTypeAttributes>();
|
|
900
|
+
for (const type of types) {
|
|
901
|
+
// Stored schemas do not have staged upgrades
|
|
902
|
+
allowedTypesInfo.set(type, { isStaged: undefined });
|
|
903
|
+
}
|
|
904
|
+
return allowedTypesInfo;
|
|
905
|
+
}
|
|
906
|
+
|
|
955
907
|
function exportSimpleFieldSchemaStored(schema: TreeFieldStoredSchema): SimpleFieldSchema {
|
|
956
908
|
let kind: FieldKind;
|
|
957
909
|
switch (schema.kind) {
|
|
@@ -973,7 +925,7 @@ function exportSimpleFieldSchemaStored(schema: TreeFieldStoredSchema): SimpleFie
|
|
|
973
925
|
}
|
|
974
926
|
return {
|
|
975
927
|
kind,
|
|
976
|
-
|
|
928
|
+
simpleAllowedTypes: buildSimpleAllowedTypeAttributesForStoredSchema(schema.types),
|
|
977
929
|
metadata: {},
|
|
978
930
|
persistedMetadata: schema.persistedMetadata,
|
|
979
931
|
};
|
|
@@ -983,13 +935,15 @@ function exportSimpleFieldSchemaStored(schema: TreeFieldStoredSchema): SimpleFie
|
|
|
983
935
|
* Export a {@link SimpleNodeSchema} from a {@link TreeNodeStoredSchema}.
|
|
984
936
|
* @privateRemarks
|
|
985
937
|
* TODO: Persist node metadata once schema FormatV2 is supported.
|
|
938
|
+
* Note on SimpleNodeSchema construction: In the persisted format `persistedMetadata` is just called `metadata` whereas the `metadata`
|
|
939
|
+
* field on SimpleNodeSchema is not persisted.
|
|
986
940
|
*/
|
|
987
941
|
function exportSimpleNodeSchemaStored(schema: TreeNodeStoredSchema): SimpleNodeSchema {
|
|
988
942
|
const arrayTypes = tryStoredSchemaAsArray(schema);
|
|
989
943
|
if (arrayTypes !== undefined) {
|
|
990
944
|
return {
|
|
991
945
|
kind: NodeKind.Array,
|
|
992
|
-
|
|
946
|
+
simpleAllowedTypes: buildSimpleAllowedTypeAttributesForStoredSchema(arrayTypes),
|
|
993
947
|
metadata: {},
|
|
994
948
|
persistedMetadata: schema.metadata,
|
|
995
949
|
};
|
|
@@ -999,7 +953,13 @@ function exportSimpleNodeSchemaStored(schema: TreeNodeStoredSchema): SimpleNodeS
|
|
|
999
953
|
for (const [storedKey, field] of schema.objectNodeFields) {
|
|
1000
954
|
fields.set(storedKey, { ...exportSimpleFieldSchemaStored(field), storedKey });
|
|
1001
955
|
}
|
|
1002
|
-
return {
|
|
956
|
+
return {
|
|
957
|
+
kind: NodeKind.Object,
|
|
958
|
+
fields,
|
|
959
|
+
allowUnknownOptionalFields: undefined,
|
|
960
|
+
metadata: {},
|
|
961
|
+
persistedMetadata: schema.metadata,
|
|
962
|
+
};
|
|
1003
963
|
}
|
|
1004
964
|
if (schema instanceof MapNodeStoredSchema) {
|
|
1005
965
|
assert(
|
|
@@ -1008,7 +968,9 @@ function exportSimpleNodeSchemaStored(schema: TreeNodeStoredSchema): SimpleNodeS
|
|
|
1008
968
|
);
|
|
1009
969
|
return {
|
|
1010
970
|
kind: NodeKind.Map,
|
|
1011
|
-
|
|
971
|
+
simpleAllowedTypes: buildSimpleAllowedTypeAttributesForStoredSchema(
|
|
972
|
+
schema.mapFields.types,
|
|
973
|
+
),
|
|
1012
974
|
metadata: {},
|
|
1013
975
|
persistedMetadata: schema.metadata,
|
|
1014
976
|
};
|
|
@@ -4,8 +4,10 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { fail } from "@fluidframework/core-utils/internal";
|
|
7
|
+
import type { MinimumVersionForCollab } from "@fluidframework/runtime-definitions/internal";
|
|
7
8
|
import {
|
|
8
9
|
type CodecTree,
|
|
10
|
+
type CodecWriteOptions,
|
|
9
11
|
DiscriminatedUnionDispatcher,
|
|
10
12
|
type FormatVersion,
|
|
11
13
|
type ICodecFamily,
|
|
@@ -14,12 +16,15 @@ import {
|
|
|
14
16
|
makeCodecFamily,
|
|
15
17
|
withSchemaValidation,
|
|
16
18
|
} from "../codec/index.js";
|
|
17
|
-
import
|
|
19
|
+
import {
|
|
20
|
+
type ChangeEncodingContext,
|
|
21
|
+
SchemaFormatVersion,
|
|
22
|
+
type TreeStoredSchema,
|
|
23
|
+
} from "../core/index.js";
|
|
18
24
|
import {
|
|
19
25
|
type ModularChangeFormatVersion,
|
|
20
26
|
type ModularChangeset,
|
|
21
27
|
type SchemaChange,
|
|
22
|
-
type SchemaChangeFormatVersion,
|
|
23
28
|
defaultSchemaPolicy,
|
|
24
29
|
getCodecTreeForModularChangeFormat,
|
|
25
30
|
getCodecTreeForSchemaChangeFormat,
|
|
@@ -40,7 +45,7 @@ import type { SharedTreeChange, SharedTreeInnerChange } from "./sharedTreeChange
|
|
|
40
45
|
|
|
41
46
|
export function makeSharedTreeChangeCodecFamily(
|
|
42
47
|
modularChangeCodecFamily: ICodecFamily<ModularChangeset, ChangeEncodingContext>,
|
|
43
|
-
options:
|
|
48
|
+
options: CodecWriteOptions,
|
|
44
49
|
): ICodecFamily<SharedTreeChange, ChangeEncodingContext> {
|
|
45
50
|
const schemaChangeCodecs = makeSchemaChangeCodecs(options);
|
|
46
51
|
const versions: [
|
|
@@ -66,7 +71,7 @@ export function makeSharedTreeChangeCodecFamily(
|
|
|
66
71
|
|
|
67
72
|
interface ChangeFormatDependencies {
|
|
68
73
|
readonly modularChange: ModularChangeFormatVersion;
|
|
69
|
-
readonly schemaChange:
|
|
74
|
+
readonly schemaChange: SchemaFormatVersion;
|
|
70
75
|
}
|
|
71
76
|
|
|
72
77
|
export type SharedTreeChangeFormatVersion = Brand<
|
|
@@ -84,14 +89,15 @@ export const dependenciesForChangeFormat: Map<
|
|
|
84
89
|
SharedTreeChangeFormatVersion,
|
|
85
90
|
ChangeFormatDependencies
|
|
86
91
|
> = new Map([
|
|
87
|
-
[brand(1), { modularChange: brand(1), schemaChange: brand(
|
|
88
|
-
[brand(2), { modularChange: brand(2), schemaChange: brand(
|
|
89
|
-
[brand(3), { modularChange: brand(3), schemaChange: brand(
|
|
90
|
-
[brand(4), { modularChange: brand(4), schemaChange: brand(
|
|
92
|
+
[brand(1), { modularChange: brand(1), schemaChange: brand(SchemaFormatVersion.v1) }],
|
|
93
|
+
[brand(2), { modularChange: brand(2), schemaChange: brand(SchemaFormatVersion.v1) }],
|
|
94
|
+
[brand(3), { modularChange: brand(3), schemaChange: brand(SchemaFormatVersion.v1) }],
|
|
95
|
+
[brand(4), { modularChange: brand(4), schemaChange: brand(SchemaFormatVersion.v1) }],
|
|
91
96
|
]);
|
|
92
97
|
|
|
93
98
|
export function getCodecTreeForChangeFormat(
|
|
94
99
|
version: SharedTreeChangeFormatVersion,
|
|
100
|
+
clientVersion: MinimumVersionForCollab,
|
|
95
101
|
): CodecTree {
|
|
96
102
|
const { modularChange, schemaChange } =
|
|
97
103
|
dependenciesForChangeFormat.get(version) ?? fail(0xc78 /* Unknown change format */);
|
|
@@ -100,7 +106,7 @@ export function getCodecTreeForChangeFormat(
|
|
|
100
106
|
version,
|
|
101
107
|
children: [
|
|
102
108
|
getCodecTreeForModularChangeFormat(modularChange),
|
|
103
|
-
getCodecTreeForSchemaChangeFormat(schemaChange),
|
|
109
|
+
getCodecTreeForSchemaChangeFormat(schemaChange, clientVersion),
|
|
104
110
|
],
|
|
105
111
|
};
|
|
106
112
|
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { assert, fail } from "@fluidframework/core-utils/internal";
|
|
7
7
|
import type { IIdCompressor } from "@fluidframework/id-compressor";
|
|
8
8
|
|
|
9
|
-
import type {
|
|
9
|
+
import type { CodecWriteOptions, ICodecFamily } from "../codec/index.js";
|
|
10
10
|
import {
|
|
11
11
|
type ChangeEncodingContext,
|
|
12
12
|
type ChangeFamily,
|
|
@@ -60,7 +60,7 @@ export class SharedTreeChangeFamily
|
|
|
60
60
|
public constructor(
|
|
61
61
|
revisionTagCodec: RevisionTagCodec,
|
|
62
62
|
fieldBatchCodec: FieldBatchCodec,
|
|
63
|
-
codecOptions:
|
|
63
|
+
codecOptions: CodecWriteOptions,
|
|
64
64
|
chunkCompressionStrategy?: TreeCompressionStrategyPrivate,
|
|
65
65
|
private readonly idCompressor?: IIdCompressor,
|
|
66
66
|
) {
|
|
@@ -78,7 +78,6 @@ import {
|
|
|
78
78
|
TreeCompressionStrategy,
|
|
79
79
|
type FieldBatch,
|
|
80
80
|
type FieldBatchEncodingContext,
|
|
81
|
-
fluidVersionToFieldBatchCodecWriteVersion,
|
|
82
81
|
type LocalNodeIdentifier,
|
|
83
82
|
type FlexTreeSequenceField,
|
|
84
83
|
type FlexTreeNode,
|
|
@@ -291,7 +290,7 @@ export interface TreeAlpha {
|
|
|
291
290
|
* @remarks
|
|
292
291
|
* This currently does not support input containing
|
|
293
292
|
* {@link ObjectSchemaOptions.allowUnknownOptionalFields| unknown optional fields} but does support
|
|
294
|
-
* {@link
|
|
293
|
+
* {@link SchemaStaticsBeta.staged | staged} allowed types.
|
|
295
294
|
* Non-empty default values for fields are currently not supported (must be provided in the input).
|
|
296
295
|
* The content will be validated against the schema and an error will be thrown if out of schema.
|
|
297
296
|
*/
|
|
@@ -845,8 +844,10 @@ export const TreeAlpha: TreeAlpha = {
|
|
|
845
844
|
options: { idCompressor?: IIdCompressor } & Pick<CodecWriteOptions, "minVersionForCollab">,
|
|
846
845
|
): JsonCompatible<IFluidHandle> {
|
|
847
846
|
const schema = tryGetSchema(node) ?? fail(0xacf /* invalid input */);
|
|
848
|
-
const
|
|
849
|
-
|
|
847
|
+
const codec = makeFieldBatchCodec({
|
|
848
|
+
jsonValidator: FormatValidatorNoOp,
|
|
849
|
+
minVersionForCollab: options.minVersionForCollab,
|
|
850
|
+
});
|
|
850
851
|
const cursor = borrowFieldCursorFromTreeNodeOrValue(node);
|
|
851
852
|
const batch: FieldBatch = [cursor];
|
|
852
853
|
// If none provided, create a compressor which will not compress anything.
|
|
@@ -873,7 +874,7 @@ export const TreeAlpha: TreeAlpha = {
|
|
|
873
874
|
compressedData: JsonCompatible<IFluidHandle>,
|
|
874
875
|
options: {
|
|
875
876
|
idCompressor?: IIdCompressor;
|
|
876
|
-
} &
|
|
877
|
+
} & CodecWriteOptions,
|
|
877
878
|
): Unhydrated<TreeFieldFromImplicitField<TSchema>> {
|
|
878
879
|
const config = new TreeViewConfigurationAlpha({ schema });
|
|
879
880
|
const content: ViewContent = {
|
|
@@ -300,13 +300,11 @@ export function createTreeCheckout(
|
|
|
300
300
|
jsonValidator: FormatValidatorNoOp,
|
|
301
301
|
minVersionForCollab: FluidClientVersion.v2_0,
|
|
302
302
|
};
|
|
303
|
-
const defaultFieldBatchVersion = 1;
|
|
304
303
|
const changeFamily =
|
|
305
304
|
args?.changeFamily ??
|
|
306
305
|
new SharedTreeChangeFamily(
|
|
307
306
|
revisionTagCodec,
|
|
308
|
-
args?.fieldBatchCodec ??
|
|
309
|
-
makeFieldBatchCodec(defaultCodecOptions, defaultFieldBatchVersion),
|
|
307
|
+
args?.fieldBatchCodec ?? makeFieldBatchCodec(defaultCodecOptions),
|
|
310
308
|
defaultCodecOptions,
|
|
311
309
|
args?.chunkCompressionStrategy,
|
|
312
310
|
idCompressor,
|