fluid-framework 2.41.0 → 2.43.0-343119

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 CHANGED
@@ -1,5 +1,38 @@
1
1
  # fluid-framework
2
2
 
3
+ ## 2.42.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Fix Tree.key and Tree.parent for Unhydrated nodes after edits ([#24708](https://github.com/microsoft/FluidFramework/pull/24708)) [8aa5c233e2](https://github.com/microsoft/FluidFramework/commit/8aa5c233e2d59f440fd9c923bca14687bb958d66)
8
+
9
+ In some cases, editing [Unhydrated](https://fluidframework.com/docs/api/fluid-framework/unhydrated-typealias) nodes could result in incorrect results being returned from [Tree.key](https://fluidframework.com/docs/data-structures/tree/nodes#treekey) and [Tree.parent](https://fluidframework.com/docs/data-structures/tree/nodes#treeparent).
10
+ This has been fixed.
11
+
12
+ - Defaulted identifier fields on unhydrated nodes are now enumerable ([#24739](https://github.com/microsoft/FluidFramework/pull/24739)) [3a5d0acfb6](https://github.com/microsoft/FluidFramework/commit/3a5d0acfb65f93a927405241e6047c8a04c8da58)
13
+
14
+ Previously, there was a special case for defaulted [identifier](https://fluidframework.com/docs/api/fluid-framework/schemafactory-class#identifier-property) fields on unhydrated nodes where they were not enumerable.
15
+ This special case has been removed: they are now enumerable independent of hydration status and defaulting.
16
+
17
+ - Name collisions from structurally named schema now error ([#24707](https://github.com/microsoft/FluidFramework/pull/24707)) [a343f0498f](https://github.com/microsoft/FluidFramework/commit/a343f0498f2039e68aa11e8ede98f32391ce727d)
18
+
19
+ It is legal to have multiple [TreeNodeSchema](https://fluidframework.com/docs/api/fluid-framework/treenodeschema-typealias) with the same name so long as they are not used together in the same tree.
20
+ Using different schema with the same name when building otherwise identical [structurally named](https://fluidframework.com/docs/api/fluid-framework/schemafactory-class#schemafactory-remarks) in the same [SchemaFactory](https://fluidframework.com/docs/api/fluid-framework/schemafactory-class) is not valid, however.
21
+ Previously doing this would not error, and instead return the first structurally named schema with that name.
22
+ Now this case throws an informative error:
23
+
24
+ ```typescript
25
+ const factory = new SchemaFactory(undefined);
26
+ class Child1 extends factory.object("Child", {}) {}
27
+ class Child2 extends factory.object("Child", {}) {}
28
+
29
+ const a = factory.map(Child1);
30
+
31
+ // Throws a UsageError with the message:
32
+ // "Structurally named schema collision: two schema named "Array<["Child"]>" were defined with different input schema."
33
+ const b = factory.array(Child2);
34
+ ```
35
+
3
36
  ## 2.41.0
4
37
 
5
38
  ### Minor Changes
@@ -4,7 +4,7 @@
4
4
 
5
5
  ```ts
6
6
 
7
- // @alpha
7
+ // @beta
8
8
  export function adaptEnum<TScope extends string, const TEnum extends Record<string, string | number>>(factory: SchemaFactory<TScope>, members: TEnum): (<TValue extends TEnum[keyof TEnum]>(value: TValue) => TValue extends unknown ? TreeNode & {
9
9
  readonly value: TValue;
10
10
  } : never) & { readonly [Property in keyof TEnum]: TreeNodeSchemaClass<ScopedSchemaName<TScope, TEnum[Property]>, NodeKind.Object, TreeNode & {
@@ -101,6 +101,11 @@ export function cloneWithReplacements(root: unknown, rootKey: string, replacer:
101
101
  value: unknown;
102
102
  }): unknown;
103
103
 
104
+ // @alpha @input
105
+ export interface CodecWriteOptions extends ICodecOptions {
106
+ readonly oldestCompatibleClient: FluidClientVersion;
107
+ }
108
+
104
109
  // @public
105
110
  export enum CommitKind {
106
111
  Default = 0,
@@ -172,7 +177,7 @@ export function createSimpleTreeIndex<TFieldSchema extends ImplicitFieldSchema,
172
177
  interface DefaultProvider extends ErasedType<"@fluidframework/tree.FieldProvider"> {
173
178
  }
174
179
 
175
- // @alpha
180
+ // @beta
176
181
  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 & {
177
182
  readonly value: TValue;
178
183
  } : never) & { [Index in Extract<keyof Members, `${number}`> extends `${infer N extends number}` ? N : never as Members[Index]]: TreeNodeSchemaClass<ScopedSchemaName<TScope, Members[Index]>, NodeKind.Object, TreeNode & {
@@ -225,6 +230,11 @@ export interface FieldProps<TCustomMetadata = unknown> {
225
230
  readonly metadata?: FieldSchemaMetadata<TCustomMetadata>;
226
231
  }
227
232
 
233
+ // @alpha @input
234
+ export interface FieldPropsAlpha<TCustomMetadata = unknown> extends FieldProps<TCustomMetadata> {
235
+ readonly persistedMetadata?: JsonCompatibleReadOnlyObject | undefined;
236
+ }
237
+
228
238
  // @public @sealed
229
239
  export class FieldSchema<out Kind extends FieldKind = FieldKind, out Types extends ImplicitAllowedTypes = ImplicitAllowedTypes, out TCustomMetadata = unknown> {
230
240
  protected constructor(
@@ -242,13 +252,14 @@ export class FieldSchema<out Kind extends FieldKind = FieldKind, out Types exten
242
252
 
243
253
  // @alpha @sealed
244
254
  export class FieldSchemaAlpha<Kind extends FieldKind = FieldKind, Types extends ImplicitAllowedTypes = ImplicitAllowedTypes, TCustomMetadata = unknown> extends FieldSchema<Kind, Types, TCustomMetadata> implements SimpleFieldSchema {
245
- protected constructor(kind: Kind, types: Types, annotatedAllowedTypes: ImplicitAnnotatedAllowedTypes, props?: FieldProps<TCustomMetadata>);
255
+ protected constructor(kind: Kind, types: Types, annotatedAllowedTypes: ImplicitAnnotatedAllowedTypes, props?: FieldPropsAlpha<TCustomMetadata>);
246
256
  // (undocumented)
247
257
  get allowedTypesIdentifiers(): ReadonlySet<string>;
248
258
  readonly allowedTypesMetadata: AllowedTypesMetadata;
249
259
  // (undocumented)
250
260
  readonly annotatedAllowedTypes: ImplicitAnnotatedAllowedTypes;
251
261
  get annotatedAllowedTypeSet(): ReadonlyMap<TreeNodeSchema, AllowedTypeMetadata>;
262
+ get persistedMetadata(): JsonCompatibleReadOnlyObject | undefined;
252
263
  }
253
264
 
254
265
  // @alpha @sealed @system
@@ -326,7 +337,7 @@ export function getSimpleSchema(schema: ImplicitFieldSchema): SimpleTreeSchema;
326
337
  // @alpha
327
338
  export type HandleConverter<TCustom> = (data: IFluidHandle) => TCustom;
328
339
 
329
- // @alpha
340
+ // @alpha @input
330
341
  export interface ICodecOptions {
331
342
  readonly jsonValidator: JsonValidator;
332
343
  }
@@ -782,6 +793,14 @@ export type JsonCompatibleObject<TExtra = never> = {
782
793
  [P in string]?: JsonCompatible<TExtra>;
783
794
  };
784
795
 
796
+ // @alpha
797
+ export type JsonCompatibleReadOnly = string | number | boolean | null | readonly JsonCompatibleReadOnly[] | JsonCompatibleReadOnlyObject;
798
+
799
+ // @alpha
800
+ export type JsonCompatibleReadOnlyObject = {
801
+ readonly [P in string]?: JsonCompatibleReadOnly;
802
+ };
803
+
785
804
  // @alpha @sealed
786
805
  export type JsonFieldSchema = {
787
806
  readonly description?: string | undefined;
@@ -840,7 +859,7 @@ export type JsonTreeSchema = JsonFieldSchema & {
840
859
  readonly $defs: Record<JsonSchemaId, JsonNodeSchema>;
841
860
  };
842
861
 
843
- // @alpha
862
+ // @alpha @input
844
863
  export interface JsonValidator {
845
864
  compile<Schema extends TSchema>(schema: Schema): SchemaValidationFunction<Schema>;
846
865
  }
@@ -943,6 +962,11 @@ export interface NodeSchemaOptions<out TCustomMetadata = unknown> {
943
962
  readonly metadata?: NodeSchemaMetadata<TCustomMetadata> | undefined;
944
963
  }
945
964
 
965
+ // @alpha
966
+ export interface NodeSchemaOptionsAlpha<out TCustomMetadata = unknown> extends NodeSchemaOptions<TCustomMetadata> {
967
+ readonly persistedMetadata?: JsonCompatibleReadOnlyObject | undefined;
968
+ }
969
+
946
970
  // @alpha
947
971
  export const noopValidator: JsonValidator;
948
972
 
@@ -970,7 +994,7 @@ export function onAssertionFailure(handler: (error: Error) => void): () => void;
970
994
  // @alpha
971
995
  export function persistedToSimpleSchema(persisted: JsonCompatible, options: ICodecOptions): SimpleTreeSchema;
972
996
 
973
- // @alpha @system
997
+ // @beta @system
974
998
  export type PopUnion<Union, AsOverloadedFunction = UnionToIntersection<Union extends unknown ? (f: Union) => void : never>> = AsOverloadedFunction extends (a: infer First) => void ? First : never;
975
999
 
976
1000
  // @alpha @system
@@ -1116,30 +1140,42 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
1116
1140
 
1117
1141
  // @alpha
1118
1142
  export class SchemaFactoryAlpha<out TScope extends string | undefined = string | undefined, TName extends number | string = string> extends SchemaFactory<TScope, TName> {
1119
- arrayAlpha<const Name extends TName, const T extends ImplicitAnnotatedAllowedTypes, const TCustomMetadata = unknown>(name: Name, allowedTypes: T, options?: NodeSchemaOptions<TCustomMetadata>): ArrayNodeCustomizableSchema<ScopedSchemaName<TScope, Name>, T, true, TCustomMetadata>;
1120
- arrayRecursive<const Name extends TName, const T extends System_Unsafe.ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(name: Name, allowedTypes: T, options?: NodeSchemaOptions<TCustomMetadata>): ArrayNodeCustomizableSchemaUnsafe<ScopedSchemaName<TScope, Name>, T, TCustomMetadata>;
1143
+ arrayAlpha<const Name extends TName, const T extends ImplicitAnnotatedAllowedTypes, const TCustomMetadata = unknown>(name: Name, allowedTypes: T, options?: NodeSchemaOptionsAlpha<TCustomMetadata>): ArrayNodeCustomizableSchema<ScopedSchemaName<TScope, Name>, T, true, TCustomMetadata>;
1144
+ arrayRecursive<const Name extends TName, const T extends System_Unsafe.ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(name: Name, allowedTypes: T, options?: NodeSchemaOptionsAlpha<TCustomMetadata>): ArrayNodeCustomizableSchemaUnsafe<ScopedSchemaName<TScope, Name>, T, TCustomMetadata>;
1121
1145
  static readonly identifier: <const TCustomMetadata = unknown>(props?: Omit<FieldProps_2<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaAlpha_2<FieldKind_2.Identifier, LeafSchema_2<"string", string> & SimpleLeafNodeSchema_2, TCustomMetadata>;
1122
1146
  static readonly leaves: readonly [LeafSchema_2<"string", string> & SimpleLeafNodeSchema_2, LeafSchema_2<"number", number> & SimpleLeafNodeSchema_2, LeafSchema_2<"boolean", boolean> & SimpleLeafNodeSchema_2, LeafSchema_2<"null", null> & SimpleLeafNodeSchema_2, LeafSchema_2<"handle", IFluidHandle_2<unknown>> & SimpleLeafNodeSchema_2];
1123
- mapAlpha<Name extends TName, const T extends ImplicitAnnotatedAllowedTypes, const TCustomMetadata = unknown>(name: Name, allowedTypes: T, options?: NodeSchemaOptions<TCustomMetadata>): MapNodeCustomizableSchema<ScopedSchemaName<TScope, Name>, T, true, TCustomMetadata>;
1124
- mapRecursive<Name extends TName, const T extends System_Unsafe.ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(name: Name, allowedTypes: T, options?: NodeSchemaOptions<TCustomMetadata>): MapNodeCustomizableSchemaUnsafe<ScopedSchemaName<TScope, Name>, T, TCustomMetadata>;
1147
+ readonly leaves: readonly [LeafSchema_2<"string", string> & SimpleLeafNodeSchema_2, LeafSchema_2<"number", number> & SimpleLeafNodeSchema_2, LeafSchema_2<"boolean", boolean> & SimpleLeafNodeSchema_2, LeafSchema_2<"null", null> & SimpleLeafNodeSchema_2, LeafSchema_2<"handle", IFluidHandle_2<unknown>> & SimpleLeafNodeSchema_2];
1148
+ mapAlpha<Name extends TName, const T extends ImplicitAnnotatedAllowedTypes, const TCustomMetadata = unknown>(name: Name, allowedTypes: T, options?: NodeSchemaOptionsAlpha<TCustomMetadata>): MapNodeCustomizableSchema<ScopedSchemaName<TScope, Name>, T, true, TCustomMetadata>;
1149
+ mapRecursive<Name extends TName, const T extends System_Unsafe.ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(name: Name, allowedTypes: T, options?: NodeSchemaOptionsAlpha<TCustomMetadata>): MapNodeCustomizableSchemaUnsafe<ScopedSchemaName<TScope, Name>, T, TCustomMetadata>;
1125
1150
  objectAlpha<const Name extends TName, const T extends RestrictiveStringRecord<ImplicitAnnotatedFieldSchema>, const TCustomMetadata = unknown>(name: Name, fields: T, options?: SchemaFactoryObjectOptions<TCustomMetadata>): ObjectNodeSchema<ScopedSchemaName<TScope, Name>, T, true, TCustomMetadata> & {
1126
1151
  readonly createFromInsertable: unknown;
1127
1152
  };
1128
1153
  objectRecursive<const Name extends TName, const T extends RestrictiveStringRecord<System_Unsafe.ImplicitFieldSchemaUnsafe>, const TCustomMetadata = unknown>(name: Name, t: T, options?: SchemaFactoryObjectOptions<TCustomMetadata>): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, System_Unsafe.TreeObjectNodeUnsafe<T, ScopedSchemaName<TScope, Name>>, object & System_Unsafe.InsertableObjectFromSchemaRecordUnsafe<T>, false, T, never, TCustomMetadata> & SimpleObjectNodeSchema<TCustomMetadata> & Pick<ObjectNodeSchema, "fields">;
1129
1154
  static readonly optional: {
1130
- <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps_2<TCustomMetadata>, "defaultProvider"> | undefined): FieldSchemaAlpha_2<FieldKind_2.Optional, T, TCustomMetadata>;
1131
- <const T_1 extends ImplicitAnnotatedAllowedTypes, const TCustomMetadata_1 = unknown>(t: T_1, props?: Omit<FieldProps_2<TCustomMetadata_1>, "defaultProvider"> | undefined): FieldSchemaAlpha_2<FieldKind_2.Optional, UnannotateImplicitAllowedTypes_2<T_1>, TCustomMetadata_1>;
1155
+ <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha_2<TCustomMetadata>, "defaultProvider"> | undefined): FieldSchemaAlpha_2<FieldKind_2.Optional, T, TCustomMetadata>;
1156
+ <const T_1 extends ImplicitAnnotatedAllowedTypes, const TCustomMetadata_1 = unknown>(t: T_1, props?: Omit<FieldPropsAlpha_2<TCustomMetadata_1>, "defaultProvider"> | undefined): FieldSchemaAlpha_2<FieldKind_2.Optional, UnannotateImplicitAllowedTypes_2<T_1>, TCustomMetadata_1>;
1132
1157
  };
1133
- static readonly optionalRecursive: <const T extends System_Unsafe.ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps_2<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaAlphaUnsafe_2<FieldKind_2.Optional, T, TCustomMetadata>;
1158
+ readonly optional: {
1159
+ <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha_2<TCustomMetadata>, "defaultProvider"> | undefined): FieldSchemaAlpha_2<FieldKind_2.Optional, T, TCustomMetadata>;
1160
+ <const T_1 extends ImplicitAnnotatedAllowedTypes, const TCustomMetadata_1 = unknown>(t: T_1, props?: Omit<FieldPropsAlpha_2<TCustomMetadata_1>, "defaultProvider"> | undefined): FieldSchemaAlpha_2<FieldKind_2.Optional, UnannotateImplicitAllowedTypes_2<T_1>, TCustomMetadata_1>;
1161
+ };
1162
+ static readonly optionalRecursive: <const T extends System_Unsafe.ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha_2<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaAlphaUnsafe_2<FieldKind_2.Optional, T, TCustomMetadata>;
1163
+ readonly optionalRecursive: <const T extends System_Unsafe.ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha_2<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaAlphaUnsafe_2<FieldKind_2.Optional, T, TCustomMetadata>;
1134
1164
  static readonly required: {
1135
- <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps_2<TCustomMetadata>, "defaultProvider"> | undefined): FieldSchemaAlpha_2<FieldKind_2.Required, T, TCustomMetadata>;
1136
- <const T_1 extends ImplicitAnnotatedAllowedTypes, const TCustomMetadata_1 = unknown>(t: T_1, props?: Omit<FieldProps_2<TCustomMetadata_1>, "defaultProvider"> | undefined): FieldSchemaAlpha_2<FieldKind_2.Required, UnannotateImplicitAllowedTypes_2<T_1>, TCustomMetadata_1>;
1165
+ <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha_2<TCustomMetadata>, "defaultProvider"> | undefined): FieldSchemaAlpha_2<FieldKind_2.Required, T, TCustomMetadata>;
1166
+ <const T_1 extends ImplicitAnnotatedAllowedTypes, const TCustomMetadata_1 = unknown>(t: T_1, props?: Omit<FieldPropsAlpha_2<TCustomMetadata_1>, "defaultProvider"> | undefined): FieldSchemaAlpha_2<FieldKind_2.Required, UnannotateImplicitAllowedTypes_2<T_1>, TCustomMetadata_1>;
1167
+ };
1168
+ readonly required: {
1169
+ <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha_2<TCustomMetadata>, "defaultProvider"> | undefined): FieldSchemaAlpha_2<FieldKind_2.Required, T, TCustomMetadata>;
1170
+ <const T_1 extends ImplicitAnnotatedAllowedTypes, const TCustomMetadata_1 = unknown>(t: T_1, props?: Omit<FieldPropsAlpha_2<TCustomMetadata_1>, "defaultProvider"> | undefined): FieldSchemaAlpha_2<FieldKind_2.Required, UnannotateImplicitAllowedTypes_2<T_1>, TCustomMetadata_1>;
1137
1171
  };
1172
+ static readonly requiredRecursive: <const T extends System_Unsafe.ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha_2<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaAlphaUnsafe_2<FieldKind_2.Required, T, TCustomMetadata>;
1173
+ readonly requiredRecursive: <const T extends System_Unsafe.ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha_2<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaAlphaUnsafe_2<FieldKind_2.Required, T, TCustomMetadata>;
1138
1174
  scopedFactory<const T extends TName, TNameInner extends number | string = string>(name: T): SchemaFactoryAlpha<ScopedSchemaName<TScope, T>, TNameInner>;
1139
1175
  }
1140
1176
 
1141
1177
  // @alpha
1142
- export interface SchemaFactoryObjectOptions<TCustomMetadata = unknown> extends NodeSchemaOptions<TCustomMetadata> {
1178
+ export interface SchemaFactoryObjectOptions<TCustomMetadata = unknown> extends NodeSchemaOptionsAlpha<TCustomMetadata> {
1143
1179
  allowUnknownOptionalFields?: boolean;
1144
1180
  }
1145
1181
 
@@ -1163,7 +1199,7 @@ export interface SchemaStatics {
1163
1199
  readonly string: LeafSchema<"string", string>;
1164
1200
  }
1165
1201
 
1166
- // @alpha
1202
+ // @alpha @input
1167
1203
  export interface SchemaValidationFunction<Schema extends TSchema> {
1168
1204
  check(data: unknown): data is Static<Schema>;
1169
1205
  }
@@ -1190,16 +1226,17 @@ export const SharedTreeFormatVersion: {
1190
1226
  readonly v1: 1;
1191
1227
  readonly v2: 2;
1192
1228
  readonly v3: 3;
1229
+ readonly v5: 5;
1193
1230
  };
1194
1231
 
1195
1232
  // @alpha
1196
1233
  export type SharedTreeFormatVersion = typeof SharedTreeFormatVersion;
1197
1234
 
1198
- // @alpha
1199
- export type SharedTreeOptions = Partial<ICodecOptions> & Partial<SharedTreeFormatOptions> & ForestOptions;
1235
+ // @alpha @input
1236
+ export type SharedTreeOptions = Partial<CodecWriteOptions> & Partial<SharedTreeFormatOptions> & ForestOptions;
1200
1237
 
1201
1238
  // @alpha @sealed
1202
- export interface SimpleArrayNodeSchema<out TCustomMetadata = unknown> extends SimpleNodeSchemaBase<NodeKind.Array, TCustomMetadata> {
1239
+ export interface SimpleArrayNodeSchema<out TCustomMetadata = unknown> extends SimpleNodeSchemaBaseAlpha<NodeKind.Array, TCustomMetadata> {
1203
1240
  readonly allowedTypesIdentifiers: ReadonlySet<string>;
1204
1241
  }
1205
1242
 
@@ -1208,15 +1245,16 @@ export interface SimpleFieldSchema {
1208
1245
  readonly allowedTypesIdentifiers: ReadonlySet<string>;
1209
1246
  readonly kind: FieldKind;
1210
1247
  readonly metadata: FieldSchemaMetadata;
1248
+ readonly persistedMetadata?: JsonCompatibleReadOnlyObject | undefined;
1211
1249
  }
1212
1250
 
1213
1251
  // @alpha @sealed
1214
- export interface SimpleLeafNodeSchema extends SimpleNodeSchemaBase<NodeKind.Leaf> {
1252
+ export interface SimpleLeafNodeSchema extends SimpleNodeSchemaBaseAlpha<NodeKind.Leaf> {
1215
1253
  readonly leafKind: ValueSchema;
1216
1254
  }
1217
1255
 
1218
1256
  // @alpha @sealed
1219
- export interface SimpleMapNodeSchema<out TCustomMetadata = unknown> extends SimpleNodeSchemaBase<NodeKind.Map, TCustomMetadata> {
1257
+ export interface SimpleMapNodeSchema<out TCustomMetadata = unknown> extends SimpleNodeSchemaBaseAlpha<NodeKind.Map, TCustomMetadata> {
1220
1258
  readonly allowedTypesIdentifiers: ReadonlySet<string>;
1221
1259
  }
1222
1260
 
@@ -1229,13 +1267,18 @@ export interface SimpleNodeSchemaBase<out TNodeKind extends NodeKind, out TCusto
1229
1267
  readonly metadata: NodeSchemaMetadata<TCustomMetadata>;
1230
1268
  }
1231
1269
 
1270
+ // @alpha @sealed @system
1271
+ export interface SimpleNodeSchemaBaseAlpha<out TNodeKind extends NodeKind, out TCustomMetadata = unknown> extends SimpleNodeSchemaBase<TNodeKind, TCustomMetadata> {
1272
+ readonly persistedMetadata: JsonCompatibleReadOnlyObject | undefined;
1273
+ }
1274
+
1232
1275
  // @alpha @sealed
1233
1276
  export interface SimpleObjectFieldSchema extends SimpleFieldSchema {
1234
1277
  readonly storedKey: string;
1235
1278
  }
1236
1279
 
1237
1280
  // @alpha @sealed
1238
- export interface SimpleObjectNodeSchema<out TCustomMetadata = unknown> extends SimpleNodeSchemaBase<NodeKind.Object, TCustomMetadata> {
1281
+ export interface SimpleObjectNodeSchema<out TCustomMetadata = unknown> extends SimpleNodeSchemaBaseAlpha<NodeKind.Object, TCustomMetadata> {
1239
1282
  readonly fields: ReadonlyMap<string, SimpleObjectFieldSchema>;
1240
1283
  }
1241
1284
 
@@ -1248,7 +1291,7 @@ export interface SimpleTreeSchema {
1248
1291
  readonly root: SimpleFieldSchema;
1249
1292
  }
1250
1293
 
1251
- // @alpha
1294
+ // @beta
1252
1295
  export function singletonSchema<TScope extends string, TName extends string | number>(factory: SchemaFactory<TScope, TName>, name: TName): TreeNodeSchemaClass<ScopedSchemaName<TScope, TName>, NodeKind.Object, TreeNode & {
1253
1296
  readonly value: TName;
1254
1297
  }, Record<string, never>, true, Record<string, never>, undefined>;
@@ -1283,7 +1326,7 @@ export namespace System_TableSchema {
1283
1326
  }), true, {
1284
1327
  readonly props: TPropsSchema;
1285
1328
  readonly id: FieldSchema_2<FieldKind_3.Identifier, LeafSchema_3<"string", string>, unknown>;
1286
- readonly cells: FieldSchema_2<FieldKind_3.Required, TreeNodeSchemaClass<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Map, TreeMapNode_2<TCellSchema> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Map, unknown>, MapNodeInsertableData_2<TCellSchema>, true, TCellSchema, undefined>, unknown>;
1329
+ readonly cells: FieldSchemaAlpha_3<FieldKind_3.Required, TreeNodeSchemaClass<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Map, TreeMapNode_2<TCellSchema> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Map, unknown>, MapNodeInsertableData_2<TCellSchema>, true, TCellSchema, undefined>, unknown>;
1287
1330
  }>;
1288
1331
  // @system
1289
1332
  export function createTableSchema<const TInputScope extends string | undefined, const TCellSchema extends ImplicitAllowedTypes, const TColumnSchema extends ColumnSchemaBase<TInputScope, TCellSchema>, const TRowSchema extends RowSchemaBase<TInputScope, TCellSchema>>(inputSchemaFactory: SchemaFactoryAlpha<TInputScope>, _cellSchema: TCellSchema, columnSchema: TColumnSchema, rowSchema: TRowSchema): TreeNodeSchemaCore_2<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table">, NodeKind.Object, true, {
@@ -1557,9 +1600,8 @@ export interface TreeAlpha {
1557
1600
  branch(node: TreeNode): TreeBranch | undefined;
1558
1601
  create<const TSchema extends ImplicitFieldSchema | UnsafeUnknownSchema>(schema: UnsafeUnknownSchema extends TSchema ? ImplicitFieldSchema : TSchema & ImplicitFieldSchema, data: InsertableField<TSchema>): Unhydrated<TSchema extends ImplicitFieldSchema ? TreeFieldFromImplicitField<TSchema> : TreeNode | TreeLeafValue | undefined>;
1559
1602
  exportCompressed(tree: TreeNode | TreeLeafValue, options: {
1560
- oldestCompatibleClient: FluidClientVersion;
1561
1603
  idCompressor?: IIdCompressor;
1562
- }): JsonCompatible<IFluidHandle>;
1604
+ } & Pick<CodecWriteOptions, "oldestCompatibleClient">): JsonCompatible<IFluidHandle>;
1563
1605
  exportConcise(node: TreeNode | TreeLeafValue, options?: TreeEncodingOptions): ConciseTree;
1564
1606
  exportConcise(node: TreeNode | TreeLeafValue | undefined, options?: TreeEncodingOptions): ConciseTree | undefined;
1565
1607
  exportVerbose(node: TreeNode | TreeLeafValue, options?: TreeEncodingOptions): VerboseTree;
@@ -1857,7 +1899,7 @@ export type Unhydrated<T> = T;
1857
1899
  // @public @system
1858
1900
  export type UnionToIntersection<T> = (T extends T ? (k: T) => unknown : never) extends (k: infer U) => unknown ? U : never;
1859
1901
 
1860
- // @alpha
1902
+ // @beta @system
1861
1903
  export type UnionToTuple<Union, A extends unknown[] = [], First = PopUnion<Union>> = IsUnion<Union> extends true ? UnionToTuple<Exclude<Union, First>, [First, ...A]> : [Union, ...A];
1862
1904
 
1863
1905
  // @alpha
@@ -4,6 +4,17 @@
4
4
 
5
5
  ```ts
6
6
 
7
+ // @beta
8
+ export function adaptEnum<TScope extends string, const TEnum extends Record<string, string | number>>(factory: SchemaFactory<TScope>, members: TEnum): (<TValue extends TEnum[keyof TEnum]>(value: TValue) => TValue extends unknown ? TreeNode & {
9
+ readonly value: TValue;
10
+ } : never) & { readonly [Property in keyof TEnum]: TreeNodeSchemaClass<ScopedSchemaName<TScope, TEnum[Property]>, NodeKind.Object, TreeNode & {
11
+ readonly value: TEnum[Property];
12
+ }, Record<string, never>, true, Record<string, never>, undefined>; } & {
13
+ readonly schema: UnionToTuple<{ readonly [Property in keyof TEnum]: TreeNodeSchemaClass<ScopedSchemaName<TScope, TEnum[Property]>, NodeKind.Object, TreeNode & {
14
+ readonly value: TEnum[Property];
15
+ }, Record<string, never>, true, Record<string, never>, undefined>; }[keyof TEnum]>;
16
+ };
17
+
7
18
  // @public @system
8
19
  export type AllowedTypes = readonly LazyItem<TreeNodeSchema>[];
9
20
 
@@ -71,6 +82,17 @@ export interface ContainerSchema {
71
82
  interface DefaultProvider extends ErasedType<"@fluidframework/tree.FieldProvider"> {
72
83
  }
73
84
 
85
+ // @beta
86
+ 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 & {
87
+ readonly value: TValue;
88
+ } : never) & { [Index in Extract<keyof Members, `${number}`> extends `${infer N extends number}` ? N : never as Members[Index]]: TreeNodeSchemaClass<ScopedSchemaName<TScope, Members[Index]>, NodeKind.Object, TreeNode & {
89
+ readonly value: Members[Index];
90
+ }, Record<string, never>, true, Record<string, never>, undefined>; } & {
91
+ readonly schema: UnionToTuple<Members[number] extends unknown ? { [Index in Extract<keyof Members, `${number}`> extends `${infer N extends number}` ? N : never as Members[Index]]: TreeNodeSchemaClass<ScopedSchemaName<TScope, Members[Index]>, NodeKind.Object, TreeNode & {
92
+ readonly value: Members[Index];
93
+ }, Record<string, never>, true, Record<string, never>, undefined>; }[Members[number]] : never>;
94
+ };
95
+
74
96
  // @public @sealed
75
97
  export abstract class ErasedType<out Name = unknown> {
76
98
  static [Symbol.hasInstance](value: never): value is never;
@@ -591,6 +613,9 @@ export type ObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFie
591
613
  // @public
592
614
  export type Off = () => void;
593
615
 
616
+ // @beta @system
617
+ export type PopUnion<Union, AsOverloadedFunction = UnionToIntersection<Union extends unknown ? (f: Union) => void : never>> = AsOverloadedFunction extends (a: infer First) => void ? First : never;
618
+
594
619
  // @public @sealed @system
595
620
  export interface ReadonlyArrayNode<out T = TreeNode | TreeLeafValue> extends ReadonlyArray<T>, Awaited<TreeNode & WithType<string, NodeKind.Array>> {
596
621
  }
@@ -739,6 +764,11 @@ export interface SimpleNodeSchemaBase<out TNodeKind extends NodeKind, out TCusto
739
764
  readonly metadata: NodeSchemaMetadata<TCustomMetadata>;
740
765
  }
741
766
 
767
+ // @beta
768
+ export function singletonSchema<TScope extends string, TName extends string | number>(factory: SchemaFactory<TScope, TName>, name: TName): TreeNodeSchemaClass<ScopedSchemaName<TScope, TName>, NodeKind.Object, TreeNode & {
769
+ readonly value: TName;
770
+ }, Record<string, never>, true, Record<string, never>, undefined>;
771
+
742
772
  // @public @system
743
773
  export namespace System_Unsafe {
744
774
  // @system
@@ -1017,6 +1047,9 @@ export type Unhydrated<T> = T;
1017
1047
  // @public @system
1018
1048
  export type UnionToIntersection<T> = (T extends T ? (k: T) => unknown : never) extends (k: infer U) => unknown ? U : never;
1019
1049
 
1050
+ // @beta @system
1051
+ export type UnionToTuple<Union, A extends unknown[] = [], First = PopUnion<Union>> = IsUnion<Union> extends true ? UnionToTuple<Exclude<Union, First>, [First, ...A]> : [Union, ...A];
1052
+
1020
1053
  // @public
1021
1054
  export type ValidateRecursiveSchema<T extends ValidateRecursiveSchemaTemplate<T>> = true;
1022
1055
 
@@ -425,14 +425,16 @@ export interface IFluidLoadable extends IProvideFluidLoadable {
425
425
 
426
426
  // @alpha @legacy
427
427
  export interface IInterval {
428
- // (undocumented)
428
+ // @deprecated (undocumented)
429
429
  clone(): IInterval;
430
430
  compare(b: IInterval): number;
431
431
  compareEnd(b: IInterval): number;
432
432
  compareStart(b: IInterval): number;
433
+ // @deprecated
433
434
  modify(label: string, start: SequencePlace | undefined, end: SequencePlace | undefined, op?: ISequencedDocumentMessage, localSeq?: number, useNewSlidingBehavior?: boolean): IInterval | undefined;
434
435
  // (undocumented)
435
436
  overlaps(b: IInterval): boolean;
437
+ // @deprecated
436
438
  union(b: IInterval): IInterval;
437
439
  }
438
440
 
@@ -571,7 +573,7 @@ export interface ISequenceIntervalCollection extends TypedEventEmitter<ISequence
571
573
  end: SequencePlace;
572
574
  props?: PropertySet;
573
575
  }): SequenceInterval;
574
- // (undocumented)
576
+ // @deprecated (undocumented)
575
577
  attachDeserializer(onDeserialize: DeserializeCallback): void;
576
578
  // (undocumented)
577
579
  readonly attached: boolean;
@@ -611,11 +613,11 @@ export interface ISequenceIntervalCollectionEvents extends IEvent {
611
613
  (event: "changed", listener: (interval: SequenceInterval, propertyDeltas: PropertySet, previousInterval: SequenceInterval | undefined, local: boolean, slide: boolean) => void): void;
612
614
  }
613
615
 
614
- // @alpha @legacy (undocumented)
616
+ // @alpha @deprecated @legacy (undocumented)
615
617
  export interface ISerializableInterval extends IInterval {
616
618
  getIntervalId(): string;
617
619
  properties: PropertySet;
618
- // (undocumented)
620
+ // @deprecated (undocumented)
619
621
  serialize(): ISerializedInterval;
620
622
  }
621
623
 
@@ -1031,8 +1033,9 @@ export interface SequenceEvent<TOperation extends MergeTreeDeltaOperationTypes =
1031
1033
 
1032
1034
  // @alpha @legacy
1033
1035
  export interface SequenceInterval extends ISerializableInterval {
1036
+ // @deprecated
1034
1037
  addPositionChangeListeners(beforePositionChange: () => void, afterPositionChange: () => void): void;
1035
- // (undocumented)
1038
+ // @deprecated (undocumented)
1036
1039
  clone(): SequenceInterval;
1037
1040
  compare(b: SequenceInterval): number;
1038
1041
  compareEnd(b: SequenceInterval): number;
@@ -1040,13 +1043,17 @@ export interface SequenceInterval extends ISerializableInterval {
1040
1043
  readonly end: LocalReferencePosition;
1041
1044
  // (undocumented)
1042
1045
  readonly endSide: Side;
1046
+ getIntervalId(): string;
1043
1047
  // (undocumented)
1044
1048
  readonly intervalType: IntervalType;
1049
+ // @deprecated
1045
1050
  modify(label: string, start: SequencePlace | undefined, end: SequencePlace | undefined, op?: ISequencedDocumentMessage, localSeq?: number, useNewSlidingBehavior?: boolean): SequenceInterval | undefined;
1046
1051
  // (undocumented)
1047
1052
  overlaps(b: SequenceInterval): boolean;
1048
1053
  // (undocumented)
1049
1054
  overlapsPos(bstart: number, bend: number): boolean;
1055
+ properties: PropertySet;
1056
+ // @deprecated
1050
1057
  removePositionChangeListeners(): void;
1051
1058
  // (undocumented)
1052
1059
  readonly start: LocalReferencePosition;
@@ -1054,6 +1061,7 @@ export interface SequenceInterval extends ISerializableInterval {
1054
1061
  readonly startSide: Side;
1055
1062
  // (undocumented)
1056
1063
  readonly stickiness: IntervalStickiness;
1064
+ // @deprecated
1057
1065
  union(b: SequenceInterval): SequenceInterval;
1058
1066
  }
1059
1067
 
package/dist/alpha.d.ts CHANGED
@@ -134,8 +134,13 @@ export {
134
134
 
135
135
  // @beta APIs
136
136
  NodeChangedData,
137
+ PopUnion,
137
138
  TreeBeta,
138
- TreeChangeEventsBeta,
139
+ TreeChangeEventsBeta,
140
+ UnionToTuple,
141
+ adaptEnum,
142
+ enumFromStrings,
143
+ singletonSchema,
139
144
 
140
145
  // @alpha APIs
141
146
  AllowedTypeMetadata,
@@ -147,9 +152,11 @@ export {
147
152
  ArrayNodePojoEmulationSchema,
148
153
  ArrayNodeSchema,
149
154
  BranchableTree,
155
+ CodecWriteOptions,
150
156
  ConciseTree,
151
157
  FactoryContent,
152
158
  FactoryContentObject,
159
+ FieldPropsAlpha,
153
160
  FieldSchemaAlpha,
154
161
  FieldSchemaAlphaUnsafe,
155
162
  FixRecursiveArraySchema,
@@ -173,6 +180,8 @@ export {
173
180
  JsonAsTree,
174
181
  JsonCompatible,
175
182
  JsonCompatibleObject,
183
+ JsonCompatibleReadOnly,
184
+ JsonCompatibleReadOnlyObject,
176
185
  JsonFieldSchema,
177
186
  JsonLeafNodeSchema,
178
187
  JsonLeafSchemaType,
@@ -190,8 +199,8 @@ export {
190
199
  MapNodeCustomizableSchemaUnsafe,
191
200
  MapNodePojoEmulationSchema,
192
201
  MapNodeSchema,
202
+ NodeSchemaOptionsAlpha,
193
203
  ObjectNodeSchema,
194
- PopUnion,
195
204
  ReadSchema,
196
205
  ReadableField,
197
206
  RevertibleAlpha,
@@ -208,6 +217,7 @@ export {
208
217
  SimpleLeafNodeSchema,
209
218
  SimpleMapNodeSchema,
210
219
  SimpleNodeSchema,
220
+ SimpleNodeSchemaBaseAlpha,
211
221
  SimpleObjectFieldSchema,
212
222
  SimpleObjectNodeSchema,
213
223
  SimpleTreeIndex,
@@ -240,14 +250,12 @@ export {
240
250
  UnannotateImplicitAllowedTypes,
241
251
  UnannotateImplicitFieldSchema,
242
252
  UnannotateSchemaRecord,
243
- UnionToTuple,
244
253
  UnsafeUnknownSchema,
245
254
  ValueSchema,
246
255
  VerboseTree,
247
256
  VerboseTreeNode,
248
257
  ViewContent,
249
258
  VoidTransactionCallbackStatus,
250
- adaptEnum,
251
259
  allowUnused,
252
260
  asTreeViewAlpha,
253
261
  cloneWithReplacements,
@@ -255,7 +263,6 @@ export {
255
263
  configuredSharedTree,
256
264
  createIdentifierIndex,
257
265
  createSimpleTreeIndex,
258
- enumFromStrings,
259
266
  evaluateLazySchema,
260
267
  extractPersistedSchema,
261
268
  generateSchemaFromSimpleSchema,
@@ -270,6 +277,5 @@ export {
270
277
  replaceConciseTreeHandles,
271
278
  replaceHandles,
272
279
  replaceVerboseTreeHandles,
273
- singletonSchema,
274
280
  typeboxValidator
275
281
  } from "./index.js";
package/dist/beta.d.ts CHANGED
@@ -134,6 +134,11 @@ export {
134
134
 
135
135
  // @beta APIs
136
136
  NodeChangedData,
137
+ PopUnion,
137
138
  TreeBeta,
138
- TreeChangeEventsBeta
139
+ TreeChangeEventsBeta,
140
+ UnionToTuple,
141
+ adaptEnum,
142
+ enumFromStrings,
143
+ singletonSchema
139
144
  } from "./index.js";
package/lib/alpha.d.ts CHANGED
@@ -134,8 +134,13 @@ export {
134
134
 
135
135
  // @beta APIs
136
136
  NodeChangedData,
137
+ PopUnion,
137
138
  TreeBeta,
138
- TreeChangeEventsBeta,
139
+ TreeChangeEventsBeta,
140
+ UnionToTuple,
141
+ adaptEnum,
142
+ enumFromStrings,
143
+ singletonSchema,
139
144
 
140
145
  // @alpha APIs
141
146
  AllowedTypeMetadata,
@@ -147,9 +152,11 @@ export {
147
152
  ArrayNodePojoEmulationSchema,
148
153
  ArrayNodeSchema,
149
154
  BranchableTree,
155
+ CodecWriteOptions,
150
156
  ConciseTree,
151
157
  FactoryContent,
152
158
  FactoryContentObject,
159
+ FieldPropsAlpha,
153
160
  FieldSchemaAlpha,
154
161
  FieldSchemaAlphaUnsafe,
155
162
  FixRecursiveArraySchema,
@@ -173,6 +180,8 @@ export {
173
180
  JsonAsTree,
174
181
  JsonCompatible,
175
182
  JsonCompatibleObject,
183
+ JsonCompatibleReadOnly,
184
+ JsonCompatibleReadOnlyObject,
176
185
  JsonFieldSchema,
177
186
  JsonLeafNodeSchema,
178
187
  JsonLeafSchemaType,
@@ -190,8 +199,8 @@ export {
190
199
  MapNodeCustomizableSchemaUnsafe,
191
200
  MapNodePojoEmulationSchema,
192
201
  MapNodeSchema,
202
+ NodeSchemaOptionsAlpha,
193
203
  ObjectNodeSchema,
194
- PopUnion,
195
204
  ReadSchema,
196
205
  ReadableField,
197
206
  RevertibleAlpha,
@@ -208,6 +217,7 @@ export {
208
217
  SimpleLeafNodeSchema,
209
218
  SimpleMapNodeSchema,
210
219
  SimpleNodeSchema,
220
+ SimpleNodeSchemaBaseAlpha,
211
221
  SimpleObjectFieldSchema,
212
222
  SimpleObjectNodeSchema,
213
223
  SimpleTreeIndex,
@@ -240,14 +250,12 @@ export {
240
250
  UnannotateImplicitAllowedTypes,
241
251
  UnannotateImplicitFieldSchema,
242
252
  UnannotateSchemaRecord,
243
- UnionToTuple,
244
253
  UnsafeUnknownSchema,
245
254
  ValueSchema,
246
255
  VerboseTree,
247
256
  VerboseTreeNode,
248
257
  ViewContent,
249
258
  VoidTransactionCallbackStatus,
250
- adaptEnum,
251
259
  allowUnused,
252
260
  asTreeViewAlpha,
253
261
  cloneWithReplacements,
@@ -255,7 +263,6 @@ export {
255
263
  configuredSharedTree,
256
264
  createIdentifierIndex,
257
265
  createSimpleTreeIndex,
258
- enumFromStrings,
259
266
  evaluateLazySchema,
260
267
  extractPersistedSchema,
261
268
  generateSchemaFromSimpleSchema,
@@ -270,6 +277,5 @@ export {
270
277
  replaceConciseTreeHandles,
271
278
  replaceHandles,
272
279
  replaceVerboseTreeHandles,
273
- singletonSchema,
274
280
  typeboxValidator
275
281
  } from "./index.js";
package/lib/beta.d.ts CHANGED
@@ -134,6 +134,11 @@ export {
134
134
 
135
135
  // @beta APIs
136
136
  NodeChangedData,
137
+ PopUnion,
137
138
  TreeBeta,
138
- TreeChangeEventsBeta
139
+ TreeChangeEventsBeta,
140
+ UnionToTuple,
141
+ adaptEnum,
142
+ enumFromStrings,
143
+ singletonSchema
139
144
  } from "./index.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fluid-framework",
3
- "version": "2.41.0",
3
+ "version": "2.43.0-343119",
4
4
  "description": "The main entry point into Fluid Framework public packages",
5
5
  "homepage": "https://fluidframework.com",
6
6
  "repository": {
@@ -57,17 +57,17 @@
57
57
  "main": "lib/index.js",
58
58
  "types": "lib/public.d.ts",
59
59
  "dependencies": {
60
- "@fluidframework/container-definitions": "~2.41.0",
61
- "@fluidframework/container-loader": "~2.41.0",
62
- "@fluidframework/core-interfaces": "~2.41.0",
63
- "@fluidframework/core-utils": "~2.41.0",
64
- "@fluidframework/driver-definitions": "~2.41.0",
65
- "@fluidframework/fluid-static": "~2.41.0",
66
- "@fluidframework/map": "~2.41.0",
67
- "@fluidframework/runtime-utils": "~2.41.0",
68
- "@fluidframework/sequence": "~2.41.0",
69
- "@fluidframework/shared-object-base": "~2.41.0",
70
- "@fluidframework/tree": "~2.41.0"
60
+ "@fluidframework/container-definitions": "2.43.0-343119",
61
+ "@fluidframework/container-loader": "2.43.0-343119",
62
+ "@fluidframework/core-interfaces": "2.43.0-343119",
63
+ "@fluidframework/core-utils": "2.43.0-343119",
64
+ "@fluidframework/driver-definitions": "2.43.0-343119",
65
+ "@fluidframework/fluid-static": "2.43.0-343119",
66
+ "@fluidframework/map": "2.43.0-343119",
67
+ "@fluidframework/runtime-utils": "2.43.0-343119",
68
+ "@fluidframework/sequence": "2.43.0-343119",
69
+ "@fluidframework/shared-object-base": "2.43.0-343119",
70
+ "@fluidframework/tree": "2.43.0-343119"
71
71
  },
72
72
  "devDependencies": {
73
73
  "@arethetypeswrong/cli": "^0.17.1",