@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
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,89 @@
|
|
|
1
1
|
# @fluidframework/tree
|
|
2
2
|
|
|
3
|
+
## 2.72.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- `formatVersion` removed from the options passed to `configuredSharedTree` ([#25752](https://github.com/microsoft/FluidFramework/pull/25752)) [df533906e3](https://github.com/microsoft/FluidFramework/commit/df533906e3a8e5d54024009704ca0c0eedb95e95)
|
|
8
|
+
|
|
9
|
+
Note: this change may break users of alpha APIs. See below for details.
|
|
10
|
+
|
|
11
|
+
`SharedTreeOptions` (which is passed to `configuredSharedTree`) no longer includes a `formatVersion: SharedTreeFormatVersion[keyof SharedTreeFormatVersion]` field.
|
|
12
|
+
The concept of `SharedTreeFormatVersion` has been removed altogether.
|
|
13
|
+
Instead, users are expected to leverage the already existing `minVersionForCollab` field.
|
|
14
|
+
|
|
15
|
+
For migration purposes, the mapping from `SharedTreeFormatVersion` to `minVersionForCollab` is as follows:
|
|
16
|
+
- `SharedTreeFormatVersion.v1`: no supported equivalent
|
|
17
|
+
- `SharedTreeFormatVersion.v2`: no supported equivalent
|
|
18
|
+
- `SharedTreeFormatVersion.v3`: `minVersionForCollab: FluidClientVersion.v2_0`
|
|
19
|
+
- `SharedTreeFormatVersion.v5`: `minVersionForCollab: FluidClientVersion.v2_43`
|
|
20
|
+
- `SharedTreeFormatVersion.vSharedBranches`: `minVersionForCollab: FluidClientVersion.v2_43` + `SharedTreeOptions.enableSharedBranches`
|
|
21
|
+
|
|
22
|
+
The values for which there is no supported equivalent `minVersionForCollab` were never given official support.
|
|
23
|
+
[Contact](https://github.com/microsoft/FluidFramework/issues) the Fluid Framework team if you need help migrating away from them.
|
|
24
|
+
|
|
25
|
+
- Expose staged, types, stagedRecursive and typesRecursive on SchemaFactoryBeta ([#25779](https://github.com/microsoft/FluidFramework/pull/25779)) [75d7f113e4](https://github.com/microsoft/FluidFramework/commit/75d7f113e4a5492221201f7ee3585a16e5d1790f)
|
|
26
|
+
|
|
27
|
+
These APIs were previously only available on `SchemaFactoryAlpha`, but are now available on `SchemaFactoryBeta`.
|
|
28
|
+
|
|
29
|
+
## 2.71.0
|
|
30
|
+
|
|
31
|
+
### Minor Changes
|
|
32
|
+
|
|
33
|
+
- delete keyword support for ObjectNodes ([#25738](https://github.com/microsoft/FluidFramework/pull/25738)) [31dca54e30](https://github.com/microsoft/FluidFramework/commit/31dca54e303003fde9eddbaab56f89671a1b5884)
|
|
34
|
+
|
|
35
|
+
Added support for using the `delete` keyword to remove content under optional fields for ObjectNodes.
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
// This is now equivalent to node.foo = undefined
|
|
39
|
+
delete node.foo;
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
- Add IndependentTree API ([#25785](https://github.com/microsoft/FluidFramework/pull/25785)) [21c4245a25](https://github.com/microsoft/FluidFramework/commit/21c4245a25f60f939434b65c5555b13a4d54ea17)
|
|
43
|
+
|
|
44
|
+
New `IndependentTreeAlpha` and `IndependentTreeBeta` APIs provide similar utility to the existing alpha [`IndependentView`](https://fluidframework.com/docs/api/tree#independentview-function) API, except providing access to the [`ViewableTree`](https://fluidframework.com/docs/api/fluid-framework/viewabletree-interface).
|
|
45
|
+
|
|
46
|
+
This allows for multiple views (in sequence, not concurrently) to be created to test things like schema upgrades and incompatible view schema much more easily (see example below).
|
|
47
|
+
For `IndependentTreeAlpha`, this also provides access to `exportVerbose` and `exportSimpleSchema` from [`ITreeAlpha`](https://fluidframework.com/docs/api/tree/itreealpha-interface).
|
|
48
|
+
|
|
49
|
+
An example of how to use `createIndependentTreeBeta` to create multiple views to test a schema upgrade:
|
|
50
|
+
|
|
51
|
+
```typescript
|
|
52
|
+
const tree = createIndependentTreeBeta();
|
|
53
|
+
|
|
54
|
+
const stagedConfig = new TreeViewConfiguration({
|
|
55
|
+
schema: SchemaFactoryAlpha.types([
|
|
56
|
+
SchemaFactory.number,
|
|
57
|
+
SchemaFactoryAlpha.staged(SchemaFactory.string),
|
|
58
|
+
]),
|
|
59
|
+
});
|
|
60
|
+
const afterConfig = new TreeViewConfigurationAlpha({
|
|
61
|
+
schema: [SchemaFactory.number, SchemaFactory.string],
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
// Initialize tree
|
|
65
|
+
{
|
|
66
|
+
const view = tree.viewWith(stagedConfig);
|
|
67
|
+
view.initialize(1);
|
|
68
|
+
view.dispose();
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// Do schema upgrade
|
|
72
|
+
{
|
|
73
|
+
const view = tree.viewWith(afterConfig);
|
|
74
|
+
view.upgradeSchema();
|
|
75
|
+
view.root = "A";
|
|
76
|
+
view.dispose();
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// Can still view tree with staged schema
|
|
80
|
+
{
|
|
81
|
+
const view = tree.viewWith(stagedConfig);
|
|
82
|
+
assert.equal(view.root, "A");
|
|
83
|
+
view.dispose();
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
3
87
|
## 2.70.0
|
|
4
88
|
|
|
5
89
|
### Minor Changes
|
|
@@ -12,7 +96,6 @@
|
|
|
12
96
|
- A minimal set of branching APIs has been promoted to beta. ([#25744](https://github.com/microsoft/FluidFramework/pull/25744)) [32cc2c75d8](https://github.com/microsoft/FluidFramework/commit/32cc2c75d82c35403caa91e67e81f71baee5d092)
|
|
13
97
|
|
|
14
98
|
The following APIs have been promoted to beta in `@fluidframework/tree`:
|
|
15
|
-
|
|
16
99
|
- `TreeBranch.fork()`
|
|
17
100
|
- `TreeBranch.merge()`
|
|
18
101
|
- `TreeBranch.rebaseOnto()`
|
|
@@ -160,7 +243,6 @@
|
|
|
160
243
|
The `@alpha` API `JsonValidator` has been removed: its replacement `FormatValidator` must now be used.
|
|
161
244
|
|
|
162
245
|
As part of this:
|
|
163
|
-
|
|
164
246
|
- `typeboxValidator` has been replaced with `FormatValidatorBasic`.
|
|
165
247
|
- `noopValidator` has been replaced with `FormatValidatorNoOp`.
|
|
166
248
|
|
|
@@ -316,7 +398,6 @@ Dependency updates only.
|
|
|
316
398
|
The APIs that operate on batches should be used instead.
|
|
317
399
|
|
|
318
400
|
Specifically:
|
|
319
|
-
|
|
320
401
|
- `insertColumn`
|
|
321
402
|
- Use `insertColumns` instead
|
|
322
403
|
- `insertRow`
|
|
@@ -465,7 +546,6 @@ Dependency updates only.
|
|
|
465
546
|
- Allow edits in arrays to be concurrent to dependent edits of transactions with violated constraints ([#25191](https://github.com/microsoft/FluidFramework/pull/25191)) [ef64bae6ab2](https://github.com/microsoft/FluidFramework/commit/ef64bae6ab2848c67d778d14ad56ae021f54ac7a)
|
|
466
547
|
|
|
467
548
|
Before this release, making concurrent edits to an array could lead to assertion error `0x8a2` being thrown if the following conditions were met:
|
|
468
|
-
|
|
469
549
|
- Some edit `e1` was a transaction with a constraint that turned out to be violated by edits concurrent to (and sequenced before) `e1`
|
|
470
550
|
- Some edit `e2` was dependent on `e1` (from before the violation of its constraint)
|
|
471
551
|
- Some edit `e3` was concurrent to and sequenced after both `e1` and `e2`
|
|
@@ -515,7 +595,6 @@ Dependency updates only.
|
|
|
515
595
|
(This is the case when nodes are removed before attaching and there is a local branch that forks from a commit that made such a removal or from an earlier commit. This is also the case when retaining `Revertible` objects for those commits).
|
|
516
596
|
|
|
517
597
|
After this release, the behavior depends on the `CodecWriteOptions.oldestCompatibleClient` value:
|
|
518
|
-
|
|
519
598
|
- For values < `FluidClientVersion.v2_52`, the behavior is the same.
|
|
520
599
|
- For values >= `FluidClientVersion.v2_52`, the attach will succeed, but use a newer storage format.
|
|
521
600
|
|
|
@@ -611,7 +690,6 @@ Dependency updates only.
|
|
|
611
690
|
We recommend updating your code to be more tolerant of unknown node kinds going forward.
|
|
612
691
|
|
|
613
692
|
Also see alternative options for schema-agnostic tree traversal if needed:
|
|
614
|
-
|
|
615
693
|
- [Tree.parent](https://fluidframework.com/docs/api/fluid-framework/treenodeapi-interface#parent-methodsignature)
|
|
616
694
|
- [TreeAlpha.child](https://fluidframework.com/docs/api/fluid-framework/treealpha-interface#child-methodsignature)
|
|
617
695
|
- [TreeAlpha.children](https://fluidframework.com/docs/api/fluid-framework/treealpha-interface#children-methodsignature)
|
|
@@ -1023,7 +1101,6 @@ Dependency updates only.
|
|
|
1023
1101
|
|
|
1024
1102
|
Table trees created using `TableSchema` offer various APIs to make working with tabular data easy.
|
|
1025
1103
|
These include:
|
|
1026
|
-
|
|
1027
1104
|
- Insertion and removal of columns, rows, and cells.
|
|
1028
1105
|
- Cell access by column/row.
|
|
1029
1106
|
|
|
@@ -1174,7 +1251,6 @@ Dependency updates only.
|
|
|
1174
1251
|
You can retrieve the long identifier with `TreeAlpha.identifier(node)`, where `node` is a `TreeNode`. The long identifier is a stable, compressible UUID generated by the tree.
|
|
1175
1252
|
In cases where the node does not yet have an identifier assigned, this will return `undefined`.
|
|
1176
1253
|
These cases include:
|
|
1177
|
-
|
|
1178
1254
|
- The node does not contain an identifier field.
|
|
1179
1255
|
- The node is a non-hydrated node with a user provided identifier. Note that if it is a non-hydrated node without an identifier provided, it will throw an error.
|
|
1180
1256
|
|
|
@@ -1185,7 +1261,6 @@ Dependency updates only.
|
|
|
1185
1261
|
to get the original valid long `identifier` back.
|
|
1186
1262
|
In the cases where it's not possible to shorten the `identifier`, it will return `undefined`.
|
|
1187
1263
|
These cases include:
|
|
1188
|
-
|
|
1189
1264
|
- A compressible long identifier, but it is unrecognized by the tree that the node belongs to. This can occur if the identifier is not generated from the tree.
|
|
1190
1265
|
- An identifier which is not compressible by the tree. This can occur if the node's identifier was a user provided string.
|
|
1191
1266
|
|
|
@@ -1195,7 +1270,6 @@ Dependency updates only.
|
|
|
1195
1270
|
If the method returns a valid long identifier, this identifier can be passed into `TreeAlpha.identifier.shorten` to get the original `identifier` back.
|
|
1196
1271
|
In the cases where it's not possible to lengthen the `identifier`, this method will throw an error.
|
|
1197
1272
|
These cases include:
|
|
1198
|
-
|
|
1199
1273
|
- An unrecognized short identifier. This can occur if the identifier is not generated from the tree.
|
|
1200
1274
|
|
|
1201
1275
|
#### TreeAlpha.identifier.getShort
|
|
@@ -1216,7 +1290,6 @@ Dependency updates only.
|
|
|
1216
1290
|
|
|
1217
1291
|
In cases where the node provided does not contain an identifier that is recognized or compressible by the tree that the node belongs to, this method will return undefined.
|
|
1218
1292
|
This will occur in the following cases:
|
|
1219
|
-
|
|
1220
1293
|
- The node is an non-hydrated node with a user provided identifier. Note that if it is an non-hydrated node without an identifier provided, it will throw an error.
|
|
1221
1294
|
- The node does not contain an identifier field.
|
|
1222
1295
|
- The node contains a compressible long identifier, but it is unrecognized by the tree that the node belongs to. This can occur if the identifier is not generated from the tree.
|
|
@@ -1345,7 +1418,6 @@ Dependency updates only.
|
|
|
1345
1418
|
|
|
1346
1419
|
[TreeNodes](https://fluidframework.com/docs/api/fluid-framework/treenode-class) which are [deleted](https://fluidframework.com/docs/api/fluid-framework/treestatus-enum#deleted-enummember) were not handled correctly.
|
|
1347
1420
|
This has been improved in two ways:
|
|
1348
|
-
|
|
1349
1421
|
1. Accessing fields of deleted nodes now consistently throws a usage error indicating that doing so is invalid.
|
|
1350
1422
|
Previously, this would throw an assertion error, which was a bug.
|
|
1351
1423
|
2. When a `TreeNode` is deleted, but that node still exists within the [`ITree`](https://fluidframework.com/docs/api/driver-definitions/itree-interface), then becomes accessible again later, a new `TreeNode` is now allocated instead of trying to reuse the deleted one.
|
|
@@ -1411,7 +1483,6 @@ Dependency updates only.
|
|
|
1411
1483
|
As a side effect of this work, some schema which violated the documented allowed patterns specified by [SchemaFactory](https://fluidframework.com/docs/api/fluid-framework/schemafactory-class#schemafactory-remarks) but used to work (as long as they were not package exported) no longer compile.
|
|
1412
1484
|
|
|
1413
1485
|
The specific case known to break is when:
|
|
1414
|
-
|
|
1415
1486
|
1. An Object node schema is co-recursive with an Array node schema.
|
|
1416
1487
|
2. The Array does not declare a named subclass.
|
|
1417
1488
|
3. The schema reference from the Object to the Array is not using the [lazy syntax](https://fluidframework.com/docs/api/fluid-framework/lazyitem-typealias).
|
|
@@ -1461,7 +1532,6 @@ Dependency updates only.
|
|
|
1461
1532
|
trunk commits and 100 peer commits, the performance increases by 97%.
|
|
1462
1533
|
|
|
1463
1534
|
Some example scenarios where the performance will be improved:
|
|
1464
|
-
|
|
1465
1535
|
- A client makes some local changes and another client simultaneously makes a large number of changes in a single JavaScript turn.
|
|
1466
1536
|
For example, a client is typing into a canvas while another client pastes a large amount of content into a table.
|
|
1467
1537
|
- A client makes a local branch with some changes and rebases it into the trunk. For example, an AI agent makes changes
|
|
@@ -1489,7 +1559,6 @@ Dependency updates only.
|
|
|
1489
1559
|
Additionally an alpha `ObjectNodeSchema` object is added to enable support for `schema instanceof ObjectNodeSchema` to safely narrow `TreeNodeSchema` to this new type.
|
|
1490
1560
|
|
|
1491
1561
|
In support of this work, several typing details were fixed including:
|
|
1492
|
-
|
|
1493
1562
|
- `info` field of `[typeSchemaSymbol]` type brand on recursive object schema was specified to match non-recursive variants.
|
|
1494
1563
|
- Type of field metadata was correctly plumbed through `optionalReclusive` and `requiredRecursive`.
|
|
1495
1564
|
- When fields object provided to [SchemaFactory.object](https://fluidframework.com/docs/api/fluid-framework/schemafactory-class#object-method) is typed as `RestrictiveStringRecord<ImplicitFieldSchema>` the resulting [TreeObjectNode](https://fluidframework.com/docs/api/fluid-framework/treeobjectnode-typealias) no longer gets a `Record<string, TreeNode | TreeLeafValue>` signature which could incorrectly conflict with custom members added to the object. Instead `{}` is used to provide no information about felids on the type when the schema provides no information about them. Additionally this case is explicitly made non-constructable: the constructor takes in `never` instead of a `Record<string,never>` which could be erroneously satisfied with an empty object due to how TypeScript assignability rules consider records to have all allowed fields, but also allow objects missing those fields to be assigned to them.
|
|
@@ -1516,7 +1585,6 @@ Dependency updates only.
|
|
|
1516
1585
|
The various import and export [`VerboseTree`](https://fluidframework.com/docs/api/fluid-framework/verbosetree-typealias) and [`ConciseTree`](https://fluidframework.com/docs/api/fluid-framework/concisetree-typealias) APIs no longer include `valueConverter` options.
|
|
1517
1586
|
Instead the resulting tree can be further processed to do any desired replacements.
|
|
1518
1587
|
The following `@alpha` APIs have been added to assist with this:
|
|
1519
|
-
|
|
1520
1588
|
1. `cloneWithReplacements`
|
|
1521
1589
|
2. `replaceHandles`
|
|
1522
1590
|
3. `replaceConciseTreeHandles`
|
|
@@ -1567,7 +1635,6 @@ Dependency updates only.
|
|
|
1567
1635
|
For example, with 10 local ops + 10 incoming ops, the performance increases by 70%; with 100 local ops + 100 incoming ops, the performance increases by 94%.
|
|
1568
1636
|
|
|
1569
1637
|
This will help improve performance in the following scenarios:
|
|
1570
|
-
|
|
1571
1638
|
- A client makes a large number of changes in a single JS turn. For example, copy pasting large data like a table.
|
|
1572
1639
|
- A client has a large number of local changes. For example, slow clients whose changes are slow to ack or clients with
|
|
1573
1640
|
a local branch with large number of changes.
|
|
@@ -1605,7 +1672,6 @@ Dependency updates only.
|
|
|
1605
1672
|
|
|
1606
1673
|
The following interfaces and types have been moved from the `@fluidframework/tree` package into the
|
|
1607
1674
|
`@fluidframework/core-interfaces` package. As such, they are now deprecated in the `@fluidframework/tree` package.
|
|
1608
|
-
|
|
1609
1675
|
- Listeners
|
|
1610
1676
|
- IsListener
|
|
1611
1677
|
- Listenable
|
|
@@ -1647,7 +1713,6 @@ Dependency updates only.
|
|
|
1647
1713
|
These properties will not be used by the system by default, but can be used to associate common application-specific properties with Node Schema.
|
|
1648
1714
|
|
|
1649
1715
|
#### `SchemaFactoryAlpha` Updates
|
|
1650
|
-
|
|
1651
1716
|
- `object` and `objectRecursive`, `arrayRecursive`, and `mapRecursive` now support `metadata` in their `options` parameter.
|
|
1652
1717
|
- (new) `arrayAlpha` - Variant of `array` that accepts an options parameter which supports `metadata`
|
|
1653
1718
|
- (new) `mapAlpha` - Variant of `map` that accepts an options parameter which supports `metadata`
|
|
@@ -1700,7 +1765,6 @@ Dependency updates only.
|
|
|
1700
1765
|
One of these checks verifies that the view schema (defined in application's code) aligns with the document schema (determined by the document data at rest).
|
|
1701
1766
|
This helps to ensure that clients running incompatible versions of the application's code don't collaborate at the same time on some document, which could cause data loss or disrupt application invariants.
|
|
1702
1767
|
One general solution application authors can perform is to stage the rollout of a feature which changes document schema into multiple phases:
|
|
1703
|
-
|
|
1704
1768
|
1. Release an application version which understands documents written with the new format but doesn't attempt to upgrade any documents
|
|
1705
1769
|
2. Wait for this application version to saturate in the app's ecosystem
|
|
1706
1770
|
3. Release an application version which upgrades documents to start leveraging the new format.
|
|
@@ -1874,7 +1938,6 @@ Dependency updates only.
|
|
|
1874
1938
|
`independentView` has also been added, which is similar but handles the case of creating a new view without an existing schema or tree.
|
|
1875
1939
|
|
|
1876
1940
|
Together these APIs address several use-cases:
|
|
1877
|
-
|
|
1878
1941
|
1. Using SharedTree as an in-memory non-collaborative datastore.
|
|
1879
1942
|
2. Importing and exporting data from a SharedTree to and from other services or storage locations (such as locally saved files).
|
|
1880
1943
|
3. Testing various scenarios without relying on a service.
|
|
@@ -2622,7 +2685,6 @@ Dependency updates only.
|
|
|
2622
2685
|
The runtime behavior is unaffected: any code which worked and still compiles is fine and does not need changes.
|
|
2623
2686
|
|
|
2624
2687
|
`Tree.schema` was changed to mitigate two different issues:
|
|
2625
|
-
|
|
2626
2688
|
1. It tried to give a more specific type based on the type of the passed in value.
|
|
2627
2689
|
When the type of the input is not known precisely (for example it is a union of node types like `Foo | Bar`, or `TreeNode` or even `TreeNode | TreeLeafValue`), this was fine since schema are covariant over their node type.
|
|
2628
2690
|
However when the input was more specific that the schema type, for example the type is simply `0`, this would result in unsound typing, since the create function could actually return values that did not conform with that schema (for example `schema.create(1)` for the number schema typed with `0` would return `1` with type `0`).
|
|
@@ -2792,7 +2854,6 @@ Dependency updates only.
|
|
|
2792
2854
|
```
|
|
2793
2855
|
|
|
2794
2856
|
Skipping the constructor causes the following problems:
|
|
2795
|
-
|
|
2796
2857
|
1. `TreeViewConfiguration` does validation in its constructor, so skipping it also skips the validation which leads to much less friendly error messages for invalid schema.
|
|
2797
2858
|
2. Skipping the constructor also discards any default values for options like `enableSchemaValidation`.
|
|
2798
2859
|
This means that code written in that style would break if more options were added. Since such changes are planned,
|
|
@@ -2867,7 +2928,6 @@ Dependency updates only.
|
|
|
2867
2928
|
|
|
2868
2929
|
Several cases of invalid usage patterns for tree APIs have gained improved error reporting, as well as improved documentation on the APIs detailing what usage is supported.
|
|
2869
2930
|
These improvements include:
|
|
2870
|
-
|
|
2871
2931
|
- Unsupported usages of schema classes: using more than one schema class derived from a single SchemaFactory generated base class. This used to hit internal asserts, but now has a descriptive user-facing UsageError. Most of this work was done in [9fb3dcf](https://github.com/microsoft/FluidFramework/commit/9fb3dcf491a7f0d66f4abbdc64ab97ccabef4707).
|
|
2872
2932
|
- Improved detection of when prior exception may have left SharedTree in an invalid state.
|
|
2873
2933
|
These cases now report a UsageError including a reference to the prior exception. This was mainly done in [9fb3dcf](https://github.com/microsoft/FluidFramework/commit/9fb3dcf491a7f0d66f4abbdc64ab97ccabef4707) and [b77d530](https://github.com/microsoft/FluidFramework/commit/b77d530b9252201c40a90d1a2a6315f76f1a4a4b).
|
|
@@ -2886,7 +2946,6 @@ Dependency updates only.
|
|
|
2886
2946
|
|
|
2887
2947
|
Access to these now less public types should not be required for users of the `@public` "declarative API" exposed in the `fluid-framework` package, but can still be accessed for those who need them under the `/legacy` import paths.
|
|
2888
2948
|
The full list of such types is:
|
|
2889
|
-
|
|
2890
2949
|
- `SharedTree` as exported from `@fluidframwork/tree`: It is still exported as `@public` from `fluid-framework` as `SharedObjectKind`.
|
|
2891
2950
|
- `ISharedObjectKind`: See new `SharedObjectKind` type for use in `@public` APIs.
|
|
2892
2951
|
`ISharedObject`
|
|
@@ -2904,7 +2963,6 @@ Dependency updates only.
|
|
|
2904
2963
|
- `IProvideFluidHandleContext`
|
|
2905
2964
|
|
|
2906
2965
|
Removed APIs:
|
|
2907
|
-
|
|
2908
2966
|
- `DataObjectClass`: Usages replaced with `SharedObjectKind`.
|
|
2909
2967
|
- `LoadableObjectClass`: Replaced with `SharedObjectKind`.
|
|
2910
2968
|
- `LoadableObjectClassRecord`: Replaced with `Record<string, SharedObjectKind>`.
|
|
@@ -2940,7 +2998,6 @@ Dependency updates only.
|
|
|
2940
2998
|
Update tsconfig to target ES 2022.
|
|
2941
2999
|
|
|
2942
3000
|
- tree: Event types have been renamed ([#21233](https://github.com/microsoft/FluidFramework/pull/21233)) [4d56fd1f99](https://github.com/microsoft/FluidFramework/commit/4d56fd1f99a25f34c69d1aed2b60fbe156fc068f)
|
|
2943
|
-
|
|
2944
3001
|
- `ISubscribable` is renamed to `Listenable`.
|
|
2945
3002
|
- `IsEvent` type helper is renamed to `IsListener`.
|
|
2946
3003
|
- `Events` is renamed to `Listeners`.
|
|
@@ -2949,7 +3006,6 @@ Dependency updates only.
|
|
|
2949
3006
|
|
|
2950
3007
|
The stable public API surface for Tree has been reduced.
|
|
2951
3008
|
Several types have been moved into InternalTypes, indicating that they are not fully stable nor intended to be referenced by users of Tree.
|
|
2952
|
-
|
|
2953
3009
|
- NodeBuilderData
|
|
2954
3010
|
- FieldHasDefault
|
|
2955
3011
|
- TreeNodeSchemaNonClass
|
|
@@ -2976,7 +3032,6 @@ Dependency updates only.
|
|
|
2976
3032
|
- TreeApi
|
|
2977
3033
|
|
|
2978
3034
|
Additionally a few more types which could not be moved due to technically limitations have been documented that they should be treated similarly.
|
|
2979
|
-
|
|
2980
3035
|
- TreeNodeApi
|
|
2981
3036
|
- TreeNodeSchemaCore
|
|
2982
3037
|
- All \*Unsafe type (use for construction of recursive schema).
|
|
@@ -3161,7 +3216,6 @@ Dependency updates only.
|
|
|
3161
3216
|
TypeScript types and implementation code.
|
|
3162
3217
|
|
|
3163
3218
|
This means that using Fluid Framework packages require the following TypeScript settings in tsconfig.json:
|
|
3164
|
-
|
|
3165
3219
|
- `"moduleResolution": "Node16"` with `"module": "Node16"`
|
|
3166
3220
|
- `"moduleResolution": "Bundler"` with `"module": "ESNext"`
|
|
3167
3221
|
|
|
@@ -3252,7 +3306,6 @@ Dependency updates only.
|
|
|
3252
3306
|
- Updated server dependencies ([#19122](https://github.com/microsoft/FluidFramework/issues/19122)) [25366b4229](https://github.com/microsoft/FluidFramework/commits/25366b422918cb43685c5f328b50450749592902)
|
|
3253
3307
|
|
|
3254
3308
|
The following Fluid server dependencies have been updated to the latest version, 3.0.0. [See the full changelog.](https://github.com/microsoft/FluidFramework/releases/tag/server_v3.0.0)
|
|
3255
|
-
|
|
3256
3309
|
- @fluidframework/gitresources
|
|
3257
3310
|
- @fluidframework/server-kafka-orderer
|
|
3258
3311
|
- @fluidframework/server-lambdas
|
|
@@ -3290,7 +3343,6 @@ Dependency updates only.
|
|
|
3290
3343
|
limitation of serialization.
|
|
3291
3344
|
|
|
3292
3345
|
Additional modifications:
|
|
3293
|
-
|
|
3294
3346
|
- `Jsonable`'s `TReplacement` parameter default has also been changed from `void` to `never`, which now disallows
|
|
3295
3347
|
`void`.
|
|
3296
3348
|
- Unrecognized primitive types like `symbol` are now filtered to `never` instead of `{}`.
|
|
@@ -3324,14 +3376,12 @@ Dependency updates only.
|
|
|
3324
3376
|
- tree2: Rename DocumentSchema and toDocumentSchema ([#17854](https://github.com/microsoft/FluidFramework/issues/17854)) [0b5944050d](https://github.com/microsoft/FluidFramework/commits/0b5944050d3bc4470a87de4a4332235d37cb719c)
|
|
3325
3377
|
|
|
3326
3378
|
The following APIs have been renamed:
|
|
3327
|
-
|
|
3328
3379
|
- `DocumentSchema` is now `TreeSchema`
|
|
3329
3380
|
- `toDocumentSchema` is now `intoSchema`
|
|
3330
3381
|
|
|
3331
3382
|
- tree2: Rename SchemaData, FieldSchema, and FieldStoredSchema ([#17888](https://github.com/microsoft/FluidFramework/issues/17888)) [27f5a5e24d](https://github.com/microsoft/FluidFramework/commits/27f5a5e24dda81eafe5678742d68cd7d8afdc060)
|
|
3332
3383
|
|
|
3333
3384
|
The following APIs have been renamed:
|
|
3334
|
-
|
|
3335
3385
|
- `SchemaData` is now `TreeStoredSchema`
|
|
3336
3386
|
- `FieldSchema` is now `TreeFieldSchema`
|
|
3337
3387
|
- `FieldStoredSchema` is now `TreeFieldStoredSchema`
|
|
@@ -3343,13 +3393,11 @@ Dependency updates only.
|
|
|
3343
3393
|
- tree2: Rename TreeSchema ([#17845](https://github.com/microsoft/FluidFramework/issues/17845)) [908ee8921e](https://github.com/microsoft/FluidFramework/commits/908ee8921eb8d7fc21f64eee88a12c678e9756dd)
|
|
3344
3394
|
|
|
3345
3395
|
The following APIs have been renamed:
|
|
3346
|
-
|
|
3347
3396
|
- `TreeSchema` is now `TreeNodeSchema`
|
|
3348
3397
|
|
|
3349
3398
|
- tree2: Rename Struct ([#17899](https://github.com/microsoft/FluidFramework/issues/17899)) [d90af254fe](https://github.com/microsoft/FluidFramework/commits/d90af254fe4224dd6391908e88055f3c98cc1d18)
|
|
3350
3399
|
|
|
3351
3400
|
The following APIs have been renamed:
|
|
3352
|
-
|
|
3353
3401
|
- `Struct` is now `ObjectNode`
|
|
3354
3402
|
|
|
3355
3403
|
## 2.0.0-internal.7.1.0
|
|
@@ -3406,7 +3454,6 @@ Dependency updates only.
|
|
|
3406
3454
|
- Dependencies on @fluidframework/protocol-definitions package updated to 3.0.0 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
3407
3455
|
|
|
3408
3456
|
This included the following changes from the protocol-definitions release:
|
|
3409
|
-
|
|
3410
3457
|
- Updating signal interfaces for some planned improvements. The intention is split the interface between signals
|
|
3411
3458
|
submitted by clients to the server and the resulting signals sent from the server to clients.
|
|
3412
3459
|
- A new optional type member is available on the ISignalMessage interface and a new ISentSignalMessage interface has
|
|
@@ -3417,7 +3464,6 @@ Dependency updates only.
|
|
|
3417
3464
|
- Server upgrade: dependencies on Fluid server packages updated to 2.0.1 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
3418
3465
|
|
|
3419
3466
|
Dependencies on the following Fluid server package have been updated to version 2.0.1:
|
|
3420
|
-
|
|
3421
3467
|
- @fluidframework/gitresources: 2.0.1
|
|
3422
3468
|
- @fluidframework/server-kafka-orderer: 2.0.1
|
|
3423
3469
|
- @fluidframework/server-lambdas: 2.0.1
|
|
@@ -3471,7 +3517,6 @@ Dependency updates only.
|
|
|
3471
3517
|
|
|
3472
3518
|
The **@fluidframework/common-definitions** package is being deprecated, so the following interfaces and types are now
|
|
3473
3519
|
imported from the **@fluidframework/core-interfaces** package:
|
|
3474
|
-
|
|
3475
3520
|
- interface IDisposable
|
|
3476
3521
|
- interface IErrorEvent
|
|
3477
3522
|
- interface IErrorEvent
|
|
@@ -3565,7 +3610,6 @@ Dependency updates only.
|
|
|
3565
3610
|
The `@fluidframework/garbage-collector` package is deprecated with the following functions, interfaces, and types in it.
|
|
3566
3611
|
These are internal implementation details and have been deprecated for public use. They will be removed in an upcoming
|
|
3567
3612
|
release.
|
|
3568
|
-
|
|
3569
3613
|
- `cloneGCData`
|
|
3570
3614
|
- `concatGarbageCollectionData`
|
|
3571
3615
|
- `concatGarbageCollectionStates`
|
|
@@ -33,7 +33,7 @@ export type AllowedTypesFullEvaluated = AllowedTypesFull<readonly AnnotatedAllow
|
|
|
33
33
|
// @beta @sealed @system
|
|
34
34
|
export type AllowedTypesFullFromMixed<T extends readonly (AnnotatedAllowedType | LazyItem<TreeNodeSchema>)[]> = UnannotateAllowedTypesList<T> & AnnotatedAllowedTypes<AnnotateAllowedTypesList<T>>;
|
|
35
35
|
|
|
36
|
-
// @
|
|
36
|
+
// @beta @sealed @system
|
|
37
37
|
export type AllowedTypesFullFromMixedUnsafe<T extends readonly Unenforced<AnnotatedAllowedType | LazyItem<TreeNodeSchema>>[]> = UnannotateAllowedTypesListUnsafe<T> & AnnotatedAllowedTypes<AnnotateAllowedTypesListUnsafe<T>>;
|
|
38
38
|
|
|
39
39
|
// @alpha @sealed @system
|
|
@@ -52,7 +52,7 @@ export type AnnotateAllowedTypesList<T extends readonly (AnnotatedAllowedType |
|
|
|
52
52
|
[I in keyof T]: T[I] extends AnnotatedAllowedType<unknown> ? T[I] : AnnotatedAllowedType<T[I]>;
|
|
53
53
|
};
|
|
54
54
|
|
|
55
|
-
// @
|
|
55
|
+
// @beta @sealed @system
|
|
56
56
|
export type AnnotateAllowedTypesListUnsafe<T extends readonly Unenforced<AnnotatedAllowedType | LazyItem<TreeNodeSchema>>[]> = {
|
|
57
57
|
[I in keyof T]: T[I] extends AnnotatedAllowedTypeUnsafe ? T[I] : AnnotatedAllowedTypeUnsafe<T[I]>;
|
|
58
58
|
};
|
|
@@ -72,11 +72,11 @@ export interface AnnotatedAllowedTypes<T = readonly AnnotatedAllowedType[]> exte
|
|
|
72
72
|
readonly types: T;
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
-
// @
|
|
75
|
+
// @beta @sealed @system
|
|
76
76
|
export interface AnnotatedAllowedTypesUnsafe extends AnnotatedAllowedTypes<LazyItem<System_Unsafe.TreeNodeSchemaUnsafe>> {
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
// @
|
|
79
|
+
// @beta @sealed @system
|
|
80
80
|
export interface AnnotatedAllowedTypeUnsafe<T = Unenforced<LazyItem<TreeNodeSchema>>> extends AnnotatedAllowedType<T> {
|
|
81
81
|
}
|
|
82
82
|
|
|
@@ -172,6 +172,20 @@ export const contentSchemaSymbol: unique symbol;
|
|
|
172
172
|
// @alpha
|
|
173
173
|
export function createIdentifierIndex<TSchema extends ImplicitFieldSchema>(view: TreeView<TSchema>): IdentifierIndex;
|
|
174
174
|
|
|
175
|
+
// @alpha
|
|
176
|
+
export function createIndependentTreeAlpha<const TSchema extends ImplicitFieldSchema>(options?: ForestOptions & (({
|
|
177
|
+
idCompressor?: IIdCompressor | undefined;
|
|
178
|
+
} & {
|
|
179
|
+
content?: undefined;
|
|
180
|
+
}) | (ICodecOptions & {
|
|
181
|
+
content: ViewContent;
|
|
182
|
+
} & {
|
|
183
|
+
idCompressor?: undefined;
|
|
184
|
+
}))): ViewableTree & Pick<ITreeAlpha, "exportVerbose" | "exportSimpleSchema">;
|
|
185
|
+
|
|
186
|
+
// @beta
|
|
187
|
+
export function createIndependentTreeBeta<const TSchema extends ImplicitFieldSchema>(options?: ForestOptions): ViewableTree;
|
|
188
|
+
|
|
175
189
|
// @alpha
|
|
176
190
|
export function createSimpleTreeIndex<TFieldSchema extends ImplicitFieldSchema, TKey extends TreeIndexKey, TValue>(view: TreeView<TFieldSchema>, indexer: (schema: TreeNodeSchema) => string | undefined, getValue: (nodes: TreeIndexNodes<TreeNode>) => TValue, isKeyValid: (key: TreeIndexKey) => key is TKey): SimpleTreeIndex<TKey, TValue>;
|
|
177
191
|
|
|
@@ -184,6 +198,9 @@ export function createSimpleTreeIndex<TFieldSchema extends ImplicitFieldSchema,
|
|
|
184
198
|
// @alpha
|
|
185
199
|
export function createSimpleTreeIndex<TFieldSchema extends ImplicitFieldSchema, TKey extends TreeIndexKey, TValue, TSchema extends TreeNodeSchema>(view: TreeView<TFieldSchema>, indexer: Map<TreeNodeSchema, string>, getValue: (nodes: TreeIndexNodes<NodeFromSchema<TSchema>>) => TValue, isKeyValid: (key: TreeIndexKey) => key is TKey, indexableSchema: readonly TSchema[]): SimpleTreeIndex<TKey, TValue>;
|
|
186
200
|
|
|
201
|
+
// @alpha
|
|
202
|
+
export function decodeSimpleSchema(encodedSchema: JsonCompatibleReadOnly, validator?: FormatValidator): SimpleTreeSchema;
|
|
203
|
+
|
|
187
204
|
// @public @sealed @system
|
|
188
205
|
interface DefaultProvider extends ErasedType<"@fluidframework/tree.FieldProvider"> {
|
|
189
206
|
}
|
|
@@ -199,6 +216,9 @@ export interface DirtyTreeMap {
|
|
|
199
216
|
// @alpha
|
|
200
217
|
export type DirtyTreeStatus = "new" | "changed" | "moved";
|
|
201
218
|
|
|
219
|
+
// @alpha
|
|
220
|
+
export function encodeSimpleSchema(simpleSchema: SimpleTreeSchema): JsonCompatibleReadOnly;
|
|
221
|
+
|
|
202
222
|
// @beta
|
|
203
223
|
export function enumFromStrings<TScope extends string, const Members extends readonly string[]>(factory: SchemaFactory<TScope>, members: Members): (<TValue extends Members[number]>(value: TValue) => TValue extends unknown ? TreeNode & {
|
|
204
224
|
readonly value: TValue;
|
|
@@ -274,6 +294,8 @@ export class FieldSchemaAlpha<Kind extends FieldKind = FieldKind, Types extends
|
|
|
274
294
|
get allowedTypesIdentifiers(): ReadonlySet<string>;
|
|
275
295
|
// (undocumented)
|
|
276
296
|
get persistedMetadata(): JsonCompatibleReadOnlyObject | undefined;
|
|
297
|
+
// (undocumented)
|
|
298
|
+
get simpleAllowedTypes(): ReadonlyMap<string, SimpleAllowedTypeAttributes>;
|
|
277
299
|
}
|
|
278
300
|
|
|
279
301
|
// @alpha @sealed @system
|
|
@@ -304,6 +326,7 @@ type FlexListToUnion<TList extends FlexList> = ExtractItemType<TList[number]>;
|
|
|
304
326
|
// @alpha
|
|
305
327
|
export const FluidClientVersion: {
|
|
306
328
|
readonly v2_0: "2.0.0";
|
|
329
|
+
readonly v2_43: "2.43.0";
|
|
307
330
|
readonly v2_52: "2.52.0";
|
|
308
331
|
};
|
|
309
332
|
|
|
@@ -920,14 +943,6 @@ export class SchemaFactoryAlpha<out TScope extends string | undefined = string |
|
|
|
920
943
|
static readonly requiredRecursive: <const T extends System_Unsafe.ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaAlphaUnsafe<FieldKind.Required, T, TCustomMetadata>;
|
|
921
944
|
readonly requiredRecursive: <const T extends System_Unsafe.ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaAlphaUnsafe<FieldKind.Required, T, TCustomMetadata>;
|
|
922
945
|
scopedFactoryAlpha<const T extends TName, TNameInner extends number | string = string>(name: T): SchemaFactoryAlpha<ScopedSchemaName<TScope, T>, TNameInner>;
|
|
923
|
-
static staged: <const T extends LazyItem<TreeNodeSchema>>(t: T | AnnotatedAllowedType<T>) => AnnotatedAllowedType<T>;
|
|
924
|
-
staged: <const T extends LazyItem<TreeNodeSchema>>(t: T | AnnotatedAllowedType<T>) => AnnotatedAllowedType<T>;
|
|
925
|
-
static stagedRecursive: <const T extends unknown>(t: T) => AnnotatedAllowedTypeUnsafe<UnannotateAllowedTypeUnsafe<T>>;
|
|
926
|
-
stagedRecursive: <const T extends unknown>(t: T) => AnnotatedAllowedTypeUnsafe<UnannotateAllowedTypeUnsafe<T>>;
|
|
927
|
-
static types: <const T extends readonly (LazyItem<TreeNodeSchema> | AnnotatedAllowedType<LazyItem<TreeNodeSchema>>)[]>(t: T, metadata?: AllowedTypesMetadata | undefined) => AllowedTypesFullFromMixed<T>;
|
|
928
|
-
types: <const T extends readonly (LazyItem<TreeNodeSchema> | AnnotatedAllowedType<LazyItem<TreeNodeSchema>>)[]>(t: T, metadata?: AllowedTypesMetadata | undefined) => AllowedTypesFullFromMixed<T>;
|
|
929
|
-
static typesRecursive: <const T extends readonly unknown[]>(t: T, metadata?: AllowedTypesMetadata | undefined) => AllowedTypesFullFromMixedUnsafe<T>;
|
|
930
|
-
typesRecursive: <const T extends readonly unknown[]>(t: T, metadata?: AllowedTypesMetadata | undefined) => AllowedTypesFullFromMixedUnsafe<T>;
|
|
931
946
|
}
|
|
932
947
|
|
|
933
948
|
// @beta
|
|
@@ -941,6 +956,14 @@ export class SchemaFactoryBeta<out TScope extends string | undefined = string |
|
|
|
941
956
|
readonly [x: string]: System_Unsafe.InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>;
|
|
942
957
|
}, false, T, undefined, TCustomMetadata>;
|
|
943
958
|
scopedFactory<const T extends TName, TNameInner extends number | string = string>(name: T): SchemaFactoryBeta<ScopedSchemaName<TScope, T>, TNameInner>;
|
|
959
|
+
static staged: <const T extends LazyItem<TreeNodeSchema>>(t: T | AnnotatedAllowedType<T>) => AnnotatedAllowedType<T>;
|
|
960
|
+
staged: <const T extends LazyItem<TreeNodeSchema>>(t: T | AnnotatedAllowedType<T>) => AnnotatedAllowedType<T>;
|
|
961
|
+
static stagedRecursive: <const T extends unknown>(t: T) => AnnotatedAllowedTypeUnsafe<UnannotateAllowedTypeUnsafe<T>>;
|
|
962
|
+
stagedRecursive: <const T extends unknown>(t: T) => AnnotatedAllowedTypeUnsafe<UnannotateAllowedTypeUnsafe<T>>;
|
|
963
|
+
static types: <const T extends readonly (LazyItem<TreeNodeSchema> | AnnotatedAllowedType<LazyItem<TreeNodeSchema>>)[]>(t: T, metadata?: AllowedTypesMetadata | undefined) => AllowedTypesFullFromMixed<T>;
|
|
964
|
+
types: <const T extends readonly (LazyItem<TreeNodeSchema> | AnnotatedAllowedType<LazyItem<TreeNodeSchema>>)[]>(t: T, metadata?: AllowedTypesMetadata | undefined) => AllowedTypesFullFromMixed<T>;
|
|
965
|
+
static typesRecursive: <const T extends readonly unknown[]>(t: T, metadata?: AllowedTypesMetadata | undefined) => AllowedTypesFullFromMixedUnsafe<T>;
|
|
966
|
+
typesRecursive: <const T extends readonly unknown[]>(t: T, metadata?: AllowedTypesMetadata | undefined) => AllowedTypesFullFromMixedUnsafe<T>;
|
|
944
967
|
}
|
|
945
968
|
|
|
946
969
|
// @public @sealed @system
|
|
@@ -963,8 +986,8 @@ export interface SchemaStatics {
|
|
|
963
986
|
readonly string: LeafSchema<"string", string>;
|
|
964
987
|
}
|
|
965
988
|
|
|
966
|
-
// @
|
|
967
|
-
export interface
|
|
989
|
+
// @beta @sealed @system
|
|
990
|
+
export interface SchemaStaticsBeta {
|
|
968
991
|
readonly staged: <const T extends LazyItem<TreeNodeSchema>>(t: T | AnnotatedAllowedType<T>) => AnnotatedAllowedType<T>;
|
|
969
992
|
stagedRecursive: <const T extends Unenforced<AnnotatedAllowedType | LazyItem<TreeNodeSchema>>>(t: T) => AnnotatedAllowedTypeUnsafe<UnannotateAllowedTypeUnsafe<T>>;
|
|
970
993
|
readonly types: <const T extends readonly (AnnotatedAllowedType | LazyItem<TreeNodeSchema>)[]>(t: T, metadata?: AllowedTypesMetadata) => AllowedTypesFullFromMixed<T>;
|
|
@@ -982,7 +1005,6 @@ type ScopedSchemaName<TScope extends string | undefined, TName extends number |
|
|
|
982
1005
|
|
|
983
1006
|
// @alpha @input
|
|
984
1007
|
export interface SharedTreeFormatOptions {
|
|
985
|
-
formatVersion: SharedTreeFormatVersion[keyof SharedTreeFormatVersion];
|
|
986
1008
|
treeEncodeType: TreeCompressionStrategy;
|
|
987
1009
|
}
|
|
988
1010
|
|
|
@@ -999,22 +1021,29 @@ export const SharedTreeFormatVersion: {
|
|
|
999
1021
|
export type SharedTreeFormatVersion = typeof SharedTreeFormatVersion;
|
|
1000
1022
|
|
|
1001
1023
|
// @alpha @input
|
|
1002
|
-
export
|
|
1024
|
+
export interface SharedTreeOptions extends Partial<CodecWriteOptions>, Partial<SharedTreeFormatOptions>, SharedTreeOptionsBeta {
|
|
1025
|
+
readonly enableSharedBranches?: boolean;
|
|
1026
|
+
}
|
|
1003
1027
|
|
|
1004
1028
|
// @beta @input
|
|
1005
1029
|
export type SharedTreeOptionsBeta = ForestOptions;
|
|
1006
1030
|
|
|
1031
|
+
// @alpha @sealed
|
|
1032
|
+
export interface SimpleAllowedTypeAttributes {
|
|
1033
|
+
readonly isStaged: boolean | undefined;
|
|
1034
|
+
}
|
|
1035
|
+
|
|
1007
1036
|
// @alpha @sealed
|
|
1008
1037
|
export interface SimpleArrayNodeSchema<out TCustomMetadata = unknown> extends SimpleNodeSchemaBaseAlpha<NodeKind.Array, TCustomMetadata> {
|
|
1009
|
-
readonly
|
|
1038
|
+
readonly simpleAllowedTypes: ReadonlyMap<string, SimpleAllowedTypeAttributes>;
|
|
1010
1039
|
}
|
|
1011
1040
|
|
|
1012
1041
|
// @alpha @sealed
|
|
1013
1042
|
export interface SimpleFieldSchema {
|
|
1014
|
-
readonly allowedTypesIdentifiers: ReadonlySet<string>;
|
|
1015
1043
|
readonly kind: FieldKind;
|
|
1016
1044
|
readonly metadata: FieldSchemaMetadata;
|
|
1017
1045
|
readonly persistedMetadata?: JsonCompatibleReadOnlyObject | undefined;
|
|
1046
|
+
readonly simpleAllowedTypes: ReadonlyMap<string, SimpleAllowedTypeAttributes>;
|
|
1018
1047
|
}
|
|
1019
1048
|
|
|
1020
1049
|
// @alpha @sealed
|
|
@@ -1024,7 +1053,7 @@ export interface SimpleLeafNodeSchema extends SimpleNodeSchemaBaseAlpha<NodeKind
|
|
|
1024
1053
|
|
|
1025
1054
|
// @alpha @sealed
|
|
1026
1055
|
export interface SimpleMapNodeSchema<out TCustomMetadata = unknown> extends SimpleNodeSchemaBaseAlpha<NodeKind.Map, TCustomMetadata> {
|
|
1027
|
-
readonly
|
|
1056
|
+
readonly simpleAllowedTypes: ReadonlyMap<string, SimpleAllowedTypeAttributes>;
|
|
1028
1057
|
}
|
|
1029
1058
|
|
|
1030
1059
|
// @alpha
|
|
@@ -1048,12 +1077,13 @@ export interface SimpleObjectFieldSchema extends SimpleFieldSchema {
|
|
|
1048
1077
|
|
|
1049
1078
|
// @alpha @sealed
|
|
1050
1079
|
export interface SimpleObjectNodeSchema<out TCustomMetadata = unknown> extends SimpleNodeSchemaBaseAlpha<NodeKind.Object, TCustomMetadata> {
|
|
1080
|
+
readonly allowUnknownOptionalFields: boolean | undefined;
|
|
1051
1081
|
readonly fields: ReadonlyMap<string, SimpleObjectFieldSchema>;
|
|
1052
1082
|
}
|
|
1053
1083
|
|
|
1054
1084
|
// @alpha @sealed
|
|
1055
1085
|
export interface SimpleRecordNodeSchema<out TCustomMetadata = unknown> extends SimpleNodeSchemaBaseAlpha<NodeKind.Record, TCustomMetadata> {
|
|
1056
|
-
readonly
|
|
1086
|
+
readonly simpleAllowedTypes: ReadonlyMap<string, SimpleAllowedTypeAttributes>;
|
|
1057
1087
|
}
|
|
1058
1088
|
|
|
1059
1089
|
// @alpha
|
|
@@ -1662,14 +1692,14 @@ export type UnannotateAllowedTypesList<T extends readonly (AnnotatedAllowedType
|
|
|
1662
1692
|
[I in keyof T]: T[I] extends AnnotatedAllowedType<infer X> ? X : T[I];
|
|
1663
1693
|
};
|
|
1664
1694
|
|
|
1665
|
-
// @
|
|
1695
|
+
// @beta @sealed @system
|
|
1666
1696
|
export type UnannotateAllowedTypesListUnsafe<T extends readonly Unenforced<AnnotatedAllowedType | LazyItem<TreeNodeSchema>>[]> = {
|
|
1667
1697
|
readonly [I in keyof T]: T[I] extends {
|
|
1668
1698
|
type: infer X;
|
|
1669
1699
|
} ? X : T[I];
|
|
1670
1700
|
};
|
|
1671
1701
|
|
|
1672
|
-
// @
|
|
1702
|
+
// @beta @sealed @system
|
|
1673
1703
|
export type UnannotateAllowedTypeUnsafe<T extends Unenforced<AnnotatedAllowedTypeUnsafe | LazyItem<System_Unsafe.TreeNodeSchemaUnsafe>>> = T extends AnnotatedAllowedTypeUnsafe<infer X> ? X : T;
|
|
1674
1704
|
|
|
1675
1705
|
// @public
|