fluid-framework 2.43.0 → 2.50.0-345060
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/api-report/fluid-framework.alpha.api.md +73 -16
- package/api-report/fluid-framework.beta.api.md +9 -3
- package/api-report/fluid-framework.legacy.alpha.api.md +8 -2
- package/api-report/fluid-framework.legacy.public.api.md +8 -2
- package/api-report/fluid-framework.public.api.md +8 -2
- package/dist/alpha.d.ts +9 -0
- package/lib/alpha.d.ts +9 -0
- package/package.json +12 -12
|
@@ -768,9 +768,7 @@ export namespace JsonAsTree {
|
|
|
768
768
|
export class JsonObject extends _APIExtractorWorkaroundObjectBase {
|
|
769
769
|
}
|
|
770
770
|
const // @system
|
|
771
|
-
_APIExtractorWorkaroundObjectBase: TreeNodeSchemaClass<"com.fluidframework.json.object", NodeKind.
|
|
772
|
-
[Symbol.iterator](): Iterator<[string, string | number | JsonObject | Array | System_Unsafe.InsertableTypedNodeUnsafe<LeafSchema<"boolean", boolean>, LeafSchema<"boolean", boolean>> | null], any, undefined>;
|
|
773
|
-
} | {
|
|
771
|
+
_APIExtractorWorkaroundObjectBase: TreeNodeSchemaClass<"com.fluidframework.json.object", NodeKind.Record, TreeRecordNodeUnsafe_2<readonly [LeafSchema<"null", null>, LeafSchema<"number", number>, LeafSchema<"string", string>, LeafSchema<"boolean", boolean>, () => typeof JsonObject, () => typeof Array]> & WithType<"com.fluidframework.json.object", NodeKind.Record, unknown>, {
|
|
774
772
|
readonly [x: string]: string | number | JsonObject | Array | System_Unsafe.InsertableTypedNodeUnsafe<LeafSchema<"boolean", boolean>, LeafSchema<"boolean", boolean>> | null;
|
|
775
773
|
}, false, readonly [LeafSchema<"null", null>, LeafSchema<"number", number>, LeafSchema<"string", string>, LeafSchema<"boolean", boolean>, () => typeof JsonObject, () => typeof Array], undefined>;
|
|
776
774
|
// (undocumented)
|
|
@@ -778,9 +776,7 @@ export namespace JsonAsTree {
|
|
|
778
776
|
// @system
|
|
779
777
|
export type _RecursiveArrayWorkaroundJsonArray = FixRecursiveArraySchema<typeof Array>;
|
|
780
778
|
const // @system
|
|
781
|
-
_APIExtractorWorkaroundArrayBase:
|
|
782
|
-
[Symbol.iterator](): Iterator<string | number | JsonObject | Array | System_Unsafe.InsertableTypedNodeUnsafe<LeafSchema<"boolean", boolean>, LeafSchema<"boolean", boolean>> | null, any, undefined>;
|
|
783
|
-
}, false, readonly [LeafSchema<"null", null>, LeafSchema<"number", number>, LeafSchema<"string", string>, LeafSchema<"boolean", boolean>, () => typeof JsonObject, () => typeof Array], undefined>;
|
|
779
|
+
_APIExtractorWorkaroundArrayBase: ArrayNodeCustomizableSchemaUnsafe_2<"com.fluidframework.json.array", readonly [LeafSchema<"null", null>, LeafSchema<"number", number>, LeafSchema<"string", string>, LeafSchema<"boolean", boolean>, () => typeof JsonObject, () => typeof Array], unknown>;
|
|
784
780
|
// (undocumented)
|
|
785
781
|
export type Tree = TreeNodeFromImplicitAllowedTypes<typeof Tree>;
|
|
786
782
|
}
|
|
@@ -818,13 +814,11 @@ export type JsonLeafSchemaType = "string" | "number" | "boolean" | "null";
|
|
|
818
814
|
|
|
819
815
|
// @alpha @sealed
|
|
820
816
|
export interface JsonMapNodeSchema extends JsonNodeSchemaBase<NodeKind.Map, "object"> {
|
|
821
|
-
readonly patternProperties:
|
|
822
|
-
"^.*$": JsonFieldSchema;
|
|
823
|
-
};
|
|
817
|
+
readonly patternProperties: JsonStringKeyPatternProperties;
|
|
824
818
|
}
|
|
825
819
|
|
|
826
820
|
// @alpha
|
|
827
|
-
export type JsonNodeSchema = JsonLeafNodeSchema | JsonMapNodeSchema | JsonArrayNodeSchema | JsonObjectNodeSchema;
|
|
821
|
+
export type JsonNodeSchema = JsonLeafNodeSchema | JsonMapNodeSchema | JsonArrayNodeSchema | JsonObjectNodeSchema | JsonRecordNodeSchema;
|
|
828
822
|
|
|
829
823
|
// @alpha @sealed
|
|
830
824
|
export interface JsonNodeSchemaBase<TNodeKind extends NodeKind, TJsonSchemaType extends JsonSchemaType> {
|
|
@@ -840,6 +834,11 @@ export interface JsonObjectNodeSchema extends JsonNodeSchemaBase<NodeKind.Object
|
|
|
840
834
|
readonly required?: string[];
|
|
841
835
|
}
|
|
842
836
|
|
|
837
|
+
// @alpha @sealed
|
|
838
|
+
export interface JsonRecordNodeSchema extends JsonNodeSchemaBase<NodeKind.Record, "object"> {
|
|
839
|
+
readonly patternProperties: JsonStringKeyPatternProperties;
|
|
840
|
+
}
|
|
841
|
+
|
|
843
842
|
// @alpha
|
|
844
843
|
export type JsonRefPath = `#/$defs/${JsonSchemaId}`;
|
|
845
844
|
|
|
@@ -854,6 +853,11 @@ export interface JsonSchemaRef {
|
|
|
854
853
|
// @alpha
|
|
855
854
|
export type JsonSchemaType = "object" | "array" | JsonLeafSchemaType;
|
|
856
855
|
|
|
856
|
+
// @alpha @sealed
|
|
857
|
+
export interface JsonStringKeyPatternProperties {
|
|
858
|
+
"^.*$": JsonFieldSchema;
|
|
859
|
+
}
|
|
860
|
+
|
|
857
861
|
// @alpha @sealed
|
|
858
862
|
export type JsonTreeSchema = JsonFieldSchema & {
|
|
859
863
|
readonly $defs: Record<JsonSchemaId, JsonNodeSchema>;
|
|
@@ -948,7 +952,8 @@ export enum NodeKind {
|
|
|
948
952
|
Array = 1,
|
|
949
953
|
Leaf = 3,
|
|
950
954
|
Map = 0,
|
|
951
|
-
Object = 2
|
|
955
|
+
Object = 2,
|
|
956
|
+
Record = 4
|
|
952
957
|
}
|
|
953
958
|
|
|
954
959
|
// @public @sealed
|
|
@@ -1015,6 +1020,25 @@ export type ReadSchema<TSchema extends ImplicitFieldSchema | UnsafeUnknownSchema
|
|
|
1015
1020
|
TSchema
|
|
1016
1021
|
] extends [ImplicitFieldSchema] ? TSchema : ImplicitFieldSchema;
|
|
1017
1022
|
|
|
1023
|
+
// @alpha @sealed @system
|
|
1024
|
+
export interface RecordNodeCustomizableSchema<out TName extends string = string, in out T extends ImplicitAnnotatedAllowedTypes = ImplicitAnnotatedAllowedTypes, out ImplicitlyConstructable extends boolean = true, out TCustomMetadata = unknown> extends TreeNodeSchemaClass<TName, NodeKind.Record, TreeRecordNode<UnannotateImplicitAllowedTypes<T>> & WithType<TName, NodeKind.Record, T>, RecordNodeInsertableData<UnannotateImplicitAllowedTypes<T>>, ImplicitlyConstructable, T, never, TCustomMetadata>, SimpleRecordNodeSchema<TCustomMetadata> {
|
|
1025
|
+
}
|
|
1026
|
+
|
|
1027
|
+
// @alpha @system
|
|
1028
|
+
export type RecordNodeInsertableData<T extends ImplicitAllowedTypes> = RestrictiveStringRecord<InsertableTreeNodeFromImplicitAllowedTypes<T>>;
|
|
1029
|
+
|
|
1030
|
+
// @alpha @sealed @system
|
|
1031
|
+
export interface RecordNodePojoEmulationSchema<out TName extends string = string, in out T extends ImplicitAnnotatedAllowedTypes = ImplicitAnnotatedAllowedTypes, out ImplicitlyConstructable extends boolean = true, out TCustomMetadata = unknown> extends TreeNodeSchemaNonClass<TName, NodeKind.Record, TreeRecordNode<UnannotateImplicitAllowedTypes<T>> & WithType<TName, NodeKind.Record, T>, RecordNodeInsertableData<UnannotateImplicitAllowedTypes<T>>, ImplicitlyConstructable, T, never, TCustomMetadata>, SimpleRecordNodeSchema<TCustomMetadata> {
|
|
1032
|
+
}
|
|
1033
|
+
|
|
1034
|
+
// @alpha
|
|
1035
|
+
export type RecordNodeSchema<TName extends string = string, T extends ImplicitAnnotatedAllowedTypes = ImplicitAnnotatedAllowedTypes, ImplicitlyConstructable extends boolean = true, TCustomMetadata = unknown> = RecordNodeCustomizableSchema<TName, T, ImplicitlyConstructable, TCustomMetadata> | RecordNodePojoEmulationSchema<TName, T, ImplicitlyConstructable, TCustomMetadata>;
|
|
1036
|
+
|
|
1037
|
+
// @alpha (undocumented)
|
|
1038
|
+
export const RecordNodeSchema: {
|
|
1039
|
+
readonly [Symbol.hasInstance]: (value: TreeNodeSchema) => value is RecordNodeSchema<string, ImplicitAnnotatedAllowedTypes, true, unknown>;
|
|
1040
|
+
};
|
|
1041
|
+
|
|
1018
1042
|
// @alpha
|
|
1019
1043
|
export function replaceConciseTreeHandles<T>(tree: ConciseTree, replacer: HandleConverter<T>): ConciseTree<T>;
|
|
1020
1044
|
|
|
@@ -1110,6 +1134,7 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
|
|
|
1110
1134
|
}, false, T, undefined>;
|
|
1111
1135
|
readonly boolean: LeafSchema<"boolean", boolean>;
|
|
1112
1136
|
static readonly boolean: LeafSchema<"boolean", boolean>;
|
|
1137
|
+
protected getStructuralType(fullName: string, types: TreeNodeSchema | readonly TreeNodeSchema[], builder: () => TreeNodeSchema): TreeNodeSchema;
|
|
1113
1138
|
readonly handle: LeafSchema<"handle", IFluidHandle<unknown>>;
|
|
1114
1139
|
static readonly handle: LeafSchema<"handle", IFluidHandle<unknown>>;
|
|
1115
1140
|
get identifier(): FieldSchema<FieldKind.Identifier, typeof SchemaFactory.string>;
|
|
@@ -1167,6 +1192,12 @@ export class SchemaFactoryAlpha<out TScope extends string | undefined = string |
|
|
|
1167
1192
|
};
|
|
1168
1193
|
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>;
|
|
1169
1194
|
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>;
|
|
1195
|
+
record<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchemaNonClass<ScopedSchemaName<TScope, `Record<${string}>`>, NodeKind.Record, TreeRecordNode<T> & WithType<ScopedSchemaName<TScope, `Record<${string}>`>, NodeKind.Record>, RecordNodeInsertableData<T>, true, T, undefined>;
|
|
1196
|
+
record<const Name extends TName, const T extends ImplicitAllowedTypes>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Record, TreeRecordNode<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Record>, RecordNodeInsertableData<T>, true, T, undefined>;
|
|
1197
|
+
recordAlpha<const Name extends TName, const T extends ImplicitAnnotatedAllowedTypes, const TCustomMetadata = unknown>(name: Name, allowedTypes: T, options?: NodeSchemaOptionsAlpha<TCustomMetadata>): RecordNodeCustomizableSchema<ScopedSchemaName<TScope, Name>, T, true, TCustomMetadata>;
|
|
1198
|
+
recordRecursive<Name extends TName, const T extends System_Unsafe.ImplicitAllowedTypesUnsafe>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Record, TreeRecordNodeUnsafe<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Record, unknown>, {
|
|
1199
|
+
readonly [x: string]: System_Unsafe.InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>;
|
|
1200
|
+
}, false, T, undefined>;
|
|
1170
1201
|
static readonly required: {
|
|
1171
1202
|
<const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha_2<TCustomMetadata>, "defaultProvider"> | undefined): FieldSchemaAlpha_2<FieldKind_2.Required, T, TCustomMetadata>;
|
|
1172
1203
|
<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>;
|
|
@@ -1265,7 +1296,7 @@ export interface SimpleMapNodeSchema<out TCustomMetadata = unknown> extends Simp
|
|
|
1265
1296
|
}
|
|
1266
1297
|
|
|
1267
1298
|
// @alpha
|
|
1268
|
-
export type SimpleNodeSchema = SimpleLeafNodeSchema | SimpleMapNodeSchema | SimpleArrayNodeSchema | SimpleObjectNodeSchema;
|
|
1299
|
+
export type SimpleNodeSchema = SimpleLeafNodeSchema | SimpleMapNodeSchema | SimpleArrayNodeSchema | SimpleObjectNodeSchema | SimpleRecordNodeSchema;
|
|
1269
1300
|
|
|
1270
1301
|
// @public @sealed @system
|
|
1271
1302
|
export interface SimpleNodeSchemaBase<out TNodeKind extends NodeKind, out TCustomMetadata = unknown> {
|
|
@@ -1288,6 +1319,11 @@ export interface SimpleObjectNodeSchema<out TCustomMetadata = unknown> extends S
|
|
|
1288
1319
|
readonly fields: ReadonlyMap<string, SimpleObjectFieldSchema>;
|
|
1289
1320
|
}
|
|
1290
1321
|
|
|
1322
|
+
// @alpha @sealed
|
|
1323
|
+
export interface SimpleRecordNodeSchema<out TCustomMetadata = unknown> extends SimpleNodeSchemaBaseAlpha<NodeKind.Record, TCustomMetadata> {
|
|
1324
|
+
readonly allowedTypesIdentifiers: ReadonlySet<string>;
|
|
1325
|
+
}
|
|
1326
|
+
|
|
1291
1327
|
// @alpha
|
|
1292
1328
|
export type SimpleTreeIndex<TKey extends TreeIndexKey, TValue> = TreeIndex<TKey, TValue>;
|
|
1293
1329
|
|
|
@@ -1324,7 +1360,7 @@ export namespace System_TableSchema {
|
|
|
1324
1360
|
// @sealed
|
|
1325
1361
|
export function createRowSchema<const TInputScope extends string | undefined, const TCellSchema extends ImplicitAllowedTypes, const TPropsSchema extends ImplicitAnnotatedFieldSchema>(inputSchemaFactory: SchemaFactoryAlpha<TInputScope>, cellSchema: TCellSchema, propsSchema: TPropsSchema): TreeNodeSchemaClass<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row">, NodeKind.Object, TreeNode & TableSchema.Row<TCellSchema, TPropsSchema> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row">, NodeKind, unknown>, object & {
|
|
1326
1362
|
readonly id?: string | undefined;
|
|
1327
|
-
readonly cells: (InsertableTypedNode_2<TreeNodeSchemaClass<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.
|
|
1363
|
+
readonly cells: (InsertableTypedNode_2<TreeNodeSchemaClass<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Record, TreeRecordNode_2<TCellSchema> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Record, unknown>, RecordNodeInsertableData_2<TCellSchema>, true, TCellSchema, undefined>, TreeNodeSchemaCore_2<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Record, true, TCellSchema, RecordNodeInsertableData_2<TCellSchema>, unknown> & (new (data?: InternalTreeNode | RecordNodeInsertableData_2<TCellSchema> | undefined) => TreeRecordNode_2<TCellSchema> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Record, unknown>)> | undefined) & InsertableTypedNode_2<TreeNodeSchemaClass<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Record, TreeRecordNode_2<TCellSchema> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Record, unknown>, RecordNodeInsertableData_2<TCellSchema>, true, TCellSchema, undefined>, TreeNodeSchemaCore_2<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Record, true, TCellSchema, RecordNodeInsertableData_2<TCellSchema>, unknown> & (new (data?: InternalTreeNode | RecordNodeInsertableData_2<TCellSchema> | undefined) => TreeRecordNode_2<TCellSchema> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Record, unknown>)>;
|
|
1328
1364
|
} & (FieldHasDefault<UnannotateImplicitFieldSchema<TPropsSchema>> extends true ? {
|
|
1329
1365
|
props?: InsertableTreeFieldFromImplicitField<UnannotateImplicitFieldSchema<TPropsSchema>> | undefined;
|
|
1330
1366
|
} : {
|
|
@@ -1332,7 +1368,7 @@ export namespace System_TableSchema {
|
|
|
1332
1368
|
}), true, {
|
|
1333
1369
|
readonly props: TPropsSchema;
|
|
1334
1370
|
readonly id: FieldSchema_2<FieldKind_3.Identifier, LeafSchema_3<"string", string>, unknown>;
|
|
1335
|
-
readonly cells: FieldSchemaAlpha_3<FieldKind_3.Required, TreeNodeSchemaClass<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.
|
|
1371
|
+
readonly cells: FieldSchemaAlpha_3<FieldKind_3.Required, TreeNodeSchemaClass<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Record, TreeRecordNode_2<TCellSchema> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Record, unknown>, RecordNodeInsertableData_2<TCellSchema>, true, TCellSchema, undefined>, unknown>;
|
|
1336
1372
|
}>;
|
|
1337
1373
|
// @system
|
|
1338
1374
|
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, {
|
|
@@ -1690,7 +1726,7 @@ export interface TreeChangeEvents {
|
|
|
1690
1726
|
|
|
1691
1727
|
// @beta @sealed
|
|
1692
1728
|
export interface TreeChangeEventsBeta<TNode extends TreeNode = TreeNode> extends TreeChangeEvents {
|
|
1693
|
-
nodeChanged: (data: NodeChangedData<TNode> & (TNode extends WithType<string, NodeKind.Map | NodeKind.Object> ? Required<Pick<NodeChangedData<TNode>, "changedProperties">> : unknown)) => void;
|
|
1729
|
+
nodeChanged: (data: NodeChangedData<TNode> & (TNode extends WithType<string, NodeKind.Map | NodeKind.Object | NodeKind.Record> ? Required<Pick<NodeChangedData<TNode>, "changedProperties">> : unknown)) => void;
|
|
1694
1730
|
}
|
|
1695
1731
|
|
|
1696
1732
|
// @alpha
|
|
@@ -1795,6 +1831,23 @@ export type TreeNodeSchemaNonClass<Name extends string = string, Kind extends No
|
|
|
1795
1831
|
// @public
|
|
1796
1832
|
export type TreeObjectNode<T extends RestrictiveStringRecord<ImplicitFieldSchema>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecord<T> & WithType<TypeName, NodeKind.Object, T>;
|
|
1797
1833
|
|
|
1834
|
+
// @alpha
|
|
1835
|
+
export interface TreeRecordNode<TAllowedTypes extends ImplicitAllowedTypes = ImplicitAllowedTypes> extends TreeNode, Record<string, TreeNodeFromImplicitAllowedTypes<TAllowedTypes>> {
|
|
1836
|
+
[Symbol.iterator](): IterableIterator<[
|
|
1837
|
+
string,
|
|
1838
|
+
TreeNodeFromImplicitAllowedTypes<TAllowedTypes>
|
|
1839
|
+
]>;
|
|
1840
|
+
}
|
|
1841
|
+
|
|
1842
|
+
// @alpha @sealed @system
|
|
1843
|
+
export interface TreeRecordNodeUnsafe<TAllowedTypes extends System_Unsafe.ImplicitAllowedTypesUnsafe> extends Record<string, System_Unsafe.TreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>>, TreeNode {
|
|
1844
|
+
// (undocumented)
|
|
1845
|
+
[Symbol.iterator](): IterableIterator<[
|
|
1846
|
+
string,
|
|
1847
|
+
System_Unsafe.TreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>
|
|
1848
|
+
]>;
|
|
1849
|
+
}
|
|
1850
|
+
|
|
1798
1851
|
// @alpha @sealed (undocumented)
|
|
1799
1852
|
export interface TreeSchema extends SimpleTreeSchema {
|
|
1800
1853
|
readonly definitions: ReadonlyMap<string, SimpleNodeSchema & TreeNodeSchema>;
|
|
@@ -1921,15 +1974,19 @@ export type UnsafeUnknownSchema = typeof UnsafeUnknownSchema;
|
|
|
1921
1974
|
export type ValidateRecursiveSchema<T extends ValidateRecursiveSchemaTemplate<T>> = true;
|
|
1922
1975
|
|
|
1923
1976
|
// @public @system
|
|
1924
|
-
export type ValidateRecursiveSchemaTemplate<T extends TreeNodeSchema> = TreeNodeSchema<string, NodeKind.Array | NodeKind.Map | NodeKind.Object, TreeNode & WithType<T["identifier"], T["kind"]>, {
|
|
1977
|
+
export type ValidateRecursiveSchemaTemplate<T extends TreeNodeSchema> = TreeNodeSchema<string, NodeKind.Array | NodeKind.Map | NodeKind.Object | NodeKind.Record, TreeNode & WithType<T["identifier"], T["kind"]>, {
|
|
1925
1978
|
[NodeKind.Object]: T["info"] extends RestrictiveStringRecord<ImplicitFieldSchema> ? InsertableObjectFromSchemaRecord<T["info"]> : unknown;
|
|
1926
1979
|
[NodeKind.Array]: T["info"] extends ImplicitAllowedTypes ? Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>> : unknown;
|
|
1927
1980
|
[NodeKind.Map]: T["info"] extends ImplicitAllowedTypes ? Iterable<[string, InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>]> : unknown;
|
|
1981
|
+
[NodeKind.Record]: {
|
|
1982
|
+
readonly [P in string]: InsertableTreeNodeFromImplicitAllowedTypes<T>;
|
|
1983
|
+
};
|
|
1928
1984
|
[NodeKind.Leaf]: unknown;
|
|
1929
1985
|
}[T["kind"]], false, {
|
|
1930
1986
|
[NodeKind.Object]: RestrictiveStringRecord<ImplicitFieldSchema>;
|
|
1931
1987
|
[NodeKind.Array]: ImplicitAllowedTypes;
|
|
1932
1988
|
[NodeKind.Map]: ImplicitAllowedTypes;
|
|
1989
|
+
[NodeKind.Record]: ImplicitAllowedTypes;
|
|
1933
1990
|
[NodeKind.Leaf]: unknown;
|
|
1934
1991
|
}[T["kind"]]>;
|
|
1935
1992
|
|
|
@@ -591,7 +591,8 @@ export enum NodeKind {
|
|
|
591
591
|
Array = 1,
|
|
592
592
|
Leaf = 3,
|
|
593
593
|
Map = 0,
|
|
594
|
-
Object = 2
|
|
594
|
+
Object = 2,
|
|
595
|
+
Record = 4
|
|
595
596
|
}
|
|
596
597
|
|
|
597
598
|
// @public @sealed
|
|
@@ -693,6 +694,7 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
|
|
|
693
694
|
}, false, T, undefined>;
|
|
694
695
|
readonly boolean: LeafSchema<"boolean", boolean>;
|
|
695
696
|
static readonly boolean: LeafSchema<"boolean", boolean>;
|
|
697
|
+
protected getStructuralType(fullName: string, types: TreeNodeSchema | readonly TreeNodeSchema[], builder: () => TreeNodeSchema): TreeNodeSchema;
|
|
696
698
|
readonly handle: LeafSchema<"handle", IFluidHandle<unknown>>;
|
|
697
699
|
static readonly handle: LeafSchema<"handle", IFluidHandle<unknown>>;
|
|
698
700
|
get identifier(): FieldSchema<FieldKind.Identifier, typeof SchemaFactory.string>;
|
|
@@ -922,7 +924,7 @@ export interface TreeChangeEvents {
|
|
|
922
924
|
|
|
923
925
|
// @beta @sealed
|
|
924
926
|
export interface TreeChangeEventsBeta<TNode extends TreeNode = TreeNode> extends TreeChangeEvents {
|
|
925
|
-
nodeChanged: (data: NodeChangedData<TNode> & (TNode extends WithType<string, NodeKind.Map | NodeKind.Object> ? Required<Pick<NodeChangedData<TNode>, "changedProperties">> : unknown)) => void;
|
|
927
|
+
nodeChanged: (data: NodeChangedData<TNode> & (TNode extends WithType<string, NodeKind.Map | NodeKind.Object | NodeKind.Record> ? Required<Pick<NodeChangedData<TNode>, "changedProperties">> : unknown)) => void;
|
|
926
928
|
}
|
|
927
929
|
|
|
928
930
|
// @public
|
|
@@ -1055,15 +1057,19 @@ export type UnionToTuple<Union, A extends unknown[] = [], First = PopUnion<Union
|
|
|
1055
1057
|
export type ValidateRecursiveSchema<T extends ValidateRecursiveSchemaTemplate<T>> = true;
|
|
1056
1058
|
|
|
1057
1059
|
// @public @system
|
|
1058
|
-
export type ValidateRecursiveSchemaTemplate<T extends TreeNodeSchema> = TreeNodeSchema<string, NodeKind.Array | NodeKind.Map | NodeKind.Object, TreeNode & WithType<T["identifier"], T["kind"]>, {
|
|
1060
|
+
export type ValidateRecursiveSchemaTemplate<T extends TreeNodeSchema> = TreeNodeSchema<string, NodeKind.Array | NodeKind.Map | NodeKind.Object | NodeKind.Record, TreeNode & WithType<T["identifier"], T["kind"]>, {
|
|
1059
1061
|
[NodeKind.Object]: T["info"] extends RestrictiveStringRecord<ImplicitFieldSchema> ? InsertableObjectFromSchemaRecord<T["info"]> : unknown;
|
|
1060
1062
|
[NodeKind.Array]: T["info"] extends ImplicitAllowedTypes ? Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>> : unknown;
|
|
1061
1063
|
[NodeKind.Map]: T["info"] extends ImplicitAllowedTypes ? Iterable<[string, InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>]> : unknown;
|
|
1064
|
+
[NodeKind.Record]: {
|
|
1065
|
+
readonly [P in string]: InsertableTreeNodeFromImplicitAllowedTypes<T>;
|
|
1066
|
+
};
|
|
1062
1067
|
[NodeKind.Leaf]: unknown;
|
|
1063
1068
|
}[T["kind"]], false, {
|
|
1064
1069
|
[NodeKind.Object]: RestrictiveStringRecord<ImplicitFieldSchema>;
|
|
1065
1070
|
[NodeKind.Array]: ImplicitAllowedTypes;
|
|
1066
1071
|
[NodeKind.Map]: ImplicitAllowedTypes;
|
|
1072
|
+
[NodeKind.Record]: ImplicitAllowedTypes;
|
|
1067
1073
|
[NodeKind.Leaf]: unknown;
|
|
1068
1074
|
}[T["kind"]]>;
|
|
1069
1075
|
|
|
@@ -856,7 +856,8 @@ export enum NodeKind {
|
|
|
856
856
|
Array = 1,
|
|
857
857
|
Leaf = 3,
|
|
858
858
|
Map = 0,
|
|
859
|
-
Object = 2
|
|
859
|
+
Object = 2,
|
|
860
|
+
Record = 4
|
|
860
861
|
}
|
|
861
862
|
|
|
862
863
|
// @public @sealed
|
|
@@ -955,6 +956,7 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
|
|
|
955
956
|
}, false, T, undefined>;
|
|
956
957
|
readonly boolean: LeafSchema<"boolean", boolean>;
|
|
957
958
|
static readonly boolean: LeafSchema<"boolean", boolean>;
|
|
959
|
+
protected getStructuralType(fullName: string, types: TreeNodeSchema | readonly TreeNodeSchema[], builder: () => TreeNodeSchema): TreeNodeSchema;
|
|
958
960
|
readonly handle: LeafSchema<"handle", IFluidHandle<unknown>>;
|
|
959
961
|
static readonly handle: LeafSchema<"handle", IFluidHandle<unknown>>;
|
|
960
962
|
get identifier(): FieldSchema<FieldKind.Identifier, typeof SchemaFactory.string>;
|
|
@@ -1385,15 +1387,19 @@ export type UnionToIntersection<T> = (T extends T ? (k: T) => unknown : never) e
|
|
|
1385
1387
|
export type ValidateRecursiveSchema<T extends ValidateRecursiveSchemaTemplate<T>> = true;
|
|
1386
1388
|
|
|
1387
1389
|
// @public @system
|
|
1388
|
-
export type ValidateRecursiveSchemaTemplate<T extends TreeNodeSchema> = TreeNodeSchema<string, NodeKind.Array | NodeKind.Map | NodeKind.Object, TreeNode & WithType<T["identifier"], T["kind"]>, {
|
|
1390
|
+
export type ValidateRecursiveSchemaTemplate<T extends TreeNodeSchema> = TreeNodeSchema<string, NodeKind.Array | NodeKind.Map | NodeKind.Object | NodeKind.Record, TreeNode & WithType<T["identifier"], T["kind"]>, {
|
|
1389
1391
|
[NodeKind.Object]: T["info"] extends RestrictiveStringRecord<ImplicitFieldSchema> ? InsertableObjectFromSchemaRecord<T["info"]> : unknown;
|
|
1390
1392
|
[NodeKind.Array]: T["info"] extends ImplicitAllowedTypes ? Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>> : unknown;
|
|
1391
1393
|
[NodeKind.Map]: T["info"] extends ImplicitAllowedTypes ? Iterable<[string, InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>]> : unknown;
|
|
1394
|
+
[NodeKind.Record]: {
|
|
1395
|
+
readonly [P in string]: InsertableTreeNodeFromImplicitAllowedTypes<T>;
|
|
1396
|
+
};
|
|
1392
1397
|
[NodeKind.Leaf]: unknown;
|
|
1393
1398
|
}[T["kind"]], false, {
|
|
1394
1399
|
[NodeKind.Object]: RestrictiveStringRecord<ImplicitFieldSchema>;
|
|
1395
1400
|
[NodeKind.Array]: ImplicitAllowedTypes;
|
|
1396
1401
|
[NodeKind.Map]: ImplicitAllowedTypes;
|
|
1402
|
+
[NodeKind.Record]: ImplicitAllowedTypes;
|
|
1397
1403
|
[NodeKind.Leaf]: unknown;
|
|
1398
1404
|
}[T["kind"]]>;
|
|
1399
1405
|
|
|
@@ -598,7 +598,8 @@ export enum NodeKind {
|
|
|
598
598
|
Array = 1,
|
|
599
599
|
Leaf = 3,
|
|
600
600
|
Map = 0,
|
|
601
|
-
Object = 2
|
|
601
|
+
Object = 2,
|
|
602
|
+
Record = 4
|
|
602
603
|
}
|
|
603
604
|
|
|
604
605
|
// @public @sealed
|
|
@@ -697,6 +698,7 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
|
|
|
697
698
|
}, false, T, undefined>;
|
|
698
699
|
readonly boolean: LeafSchema<"boolean", boolean>;
|
|
699
700
|
static readonly boolean: LeafSchema<"boolean", boolean>;
|
|
701
|
+
protected getStructuralType(fullName: string, types: TreeNodeSchema | readonly TreeNodeSchema[], builder: () => TreeNodeSchema): TreeNodeSchema;
|
|
700
702
|
readonly handle: LeafSchema<"handle", IFluidHandle<unknown>>;
|
|
701
703
|
static readonly handle: LeafSchema<"handle", IFluidHandle<unknown>>;
|
|
702
704
|
get identifier(): FieldSchema<FieldKind.Identifier, typeof SchemaFactory.string>;
|
|
@@ -1037,15 +1039,19 @@ export type UnionToIntersection<T> = (T extends T ? (k: T) => unknown : never) e
|
|
|
1037
1039
|
export type ValidateRecursiveSchema<T extends ValidateRecursiveSchemaTemplate<T>> = true;
|
|
1038
1040
|
|
|
1039
1041
|
// @public @system
|
|
1040
|
-
export type ValidateRecursiveSchemaTemplate<T extends TreeNodeSchema> = TreeNodeSchema<string, NodeKind.Array | NodeKind.Map | NodeKind.Object, TreeNode & WithType<T["identifier"], T["kind"]>, {
|
|
1042
|
+
export type ValidateRecursiveSchemaTemplate<T extends TreeNodeSchema> = TreeNodeSchema<string, NodeKind.Array | NodeKind.Map | NodeKind.Object | NodeKind.Record, TreeNode & WithType<T["identifier"], T["kind"]>, {
|
|
1041
1043
|
[NodeKind.Object]: T["info"] extends RestrictiveStringRecord<ImplicitFieldSchema> ? InsertableObjectFromSchemaRecord<T["info"]> : unknown;
|
|
1042
1044
|
[NodeKind.Array]: T["info"] extends ImplicitAllowedTypes ? Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>> : unknown;
|
|
1043
1045
|
[NodeKind.Map]: T["info"] extends ImplicitAllowedTypes ? Iterable<[string, InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>]> : unknown;
|
|
1046
|
+
[NodeKind.Record]: {
|
|
1047
|
+
readonly [P in string]: InsertableTreeNodeFromImplicitAllowedTypes<T>;
|
|
1048
|
+
};
|
|
1044
1049
|
[NodeKind.Leaf]: unknown;
|
|
1045
1050
|
}[T["kind"]], false, {
|
|
1046
1051
|
[NodeKind.Object]: RestrictiveStringRecord<ImplicitFieldSchema>;
|
|
1047
1052
|
[NodeKind.Array]: ImplicitAllowedTypes;
|
|
1048
1053
|
[NodeKind.Map]: ImplicitAllowedTypes;
|
|
1054
|
+
[NodeKind.Record]: ImplicitAllowedTypes;
|
|
1049
1055
|
[NodeKind.Leaf]: unknown;
|
|
1050
1056
|
}[T["kind"]]>;
|
|
1051
1057
|
|
|
@@ -564,7 +564,8 @@ export enum NodeKind {
|
|
|
564
564
|
Array = 1,
|
|
565
565
|
Leaf = 3,
|
|
566
566
|
Map = 0,
|
|
567
|
-
Object = 2
|
|
567
|
+
Object = 2,
|
|
568
|
+
Record = 4
|
|
568
569
|
}
|
|
569
570
|
|
|
570
571
|
// @public @sealed
|
|
@@ -663,6 +664,7 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
|
|
|
663
664
|
}, false, T, undefined>;
|
|
664
665
|
readonly boolean: LeafSchema<"boolean", boolean>;
|
|
665
666
|
static readonly boolean: LeafSchema<"boolean", boolean>;
|
|
667
|
+
protected getStructuralType(fullName: string, types: TreeNodeSchema | readonly TreeNodeSchema[], builder: () => TreeNodeSchema): TreeNodeSchema;
|
|
666
668
|
readonly handle: LeafSchema<"handle", IFluidHandle<unknown>>;
|
|
667
669
|
static readonly handle: LeafSchema<"handle", IFluidHandle<unknown>>;
|
|
668
670
|
get identifier(): FieldSchema<FieldKind.Identifier, typeof SchemaFactory.string>;
|
|
@@ -1003,15 +1005,19 @@ export type UnionToIntersection<T> = (T extends T ? (k: T) => unknown : never) e
|
|
|
1003
1005
|
export type ValidateRecursiveSchema<T extends ValidateRecursiveSchemaTemplate<T>> = true;
|
|
1004
1006
|
|
|
1005
1007
|
// @public @system
|
|
1006
|
-
export type ValidateRecursiveSchemaTemplate<T extends TreeNodeSchema> = TreeNodeSchema<string, NodeKind.Array | NodeKind.Map | NodeKind.Object, TreeNode & WithType<T["identifier"], T["kind"]>, {
|
|
1008
|
+
export type ValidateRecursiveSchemaTemplate<T extends TreeNodeSchema> = TreeNodeSchema<string, NodeKind.Array | NodeKind.Map | NodeKind.Object | NodeKind.Record, TreeNode & WithType<T["identifier"], T["kind"]>, {
|
|
1007
1009
|
[NodeKind.Object]: T["info"] extends RestrictiveStringRecord<ImplicitFieldSchema> ? InsertableObjectFromSchemaRecord<T["info"]> : unknown;
|
|
1008
1010
|
[NodeKind.Array]: T["info"] extends ImplicitAllowedTypes ? Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>> : unknown;
|
|
1009
1011
|
[NodeKind.Map]: T["info"] extends ImplicitAllowedTypes ? Iterable<[string, InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>]> : unknown;
|
|
1012
|
+
[NodeKind.Record]: {
|
|
1013
|
+
readonly [P in string]: InsertableTreeNodeFromImplicitAllowedTypes<T>;
|
|
1014
|
+
};
|
|
1010
1015
|
[NodeKind.Leaf]: unknown;
|
|
1011
1016
|
}[T["kind"]], false, {
|
|
1012
1017
|
[NodeKind.Object]: RestrictiveStringRecord<ImplicitFieldSchema>;
|
|
1013
1018
|
[NodeKind.Array]: ImplicitAllowedTypes;
|
|
1014
1019
|
[NodeKind.Map]: ImplicitAllowedTypes;
|
|
1020
|
+
[NodeKind.Record]: ImplicitAllowedTypes;
|
|
1015
1021
|
[NodeKind.Leaf]: unknown;
|
|
1016
1022
|
}[T["kind"]]>;
|
|
1017
1023
|
|
package/dist/alpha.d.ts
CHANGED
|
@@ -189,10 +189,12 @@ export {
|
|
|
189
189
|
JsonNodeSchema,
|
|
190
190
|
JsonNodeSchemaBase,
|
|
191
191
|
JsonObjectNodeSchema,
|
|
192
|
+
JsonRecordNodeSchema,
|
|
192
193
|
JsonRefPath,
|
|
193
194
|
JsonSchemaId,
|
|
194
195
|
JsonSchemaRef,
|
|
195
196
|
JsonSchemaType,
|
|
197
|
+
JsonStringKeyPatternProperties,
|
|
196
198
|
JsonTreeSchema,
|
|
197
199
|
JsonValidator,
|
|
198
200
|
MapNodeCustomizableSchema,
|
|
@@ -204,6 +206,10 @@ export {
|
|
|
204
206
|
ObjectNodeSchema,
|
|
205
207
|
ReadSchema,
|
|
206
208
|
ReadableField,
|
|
209
|
+
RecordNodeCustomizableSchema,
|
|
210
|
+
RecordNodeInsertableData,
|
|
211
|
+
RecordNodePojoEmulationSchema,
|
|
212
|
+
RecordNodeSchema,
|
|
207
213
|
RevertibleAlpha,
|
|
208
214
|
RevertibleAlphaFactory,
|
|
209
215
|
RunTransactionParams,
|
|
@@ -221,6 +227,7 @@ export {
|
|
|
221
227
|
SimpleNodeSchemaBaseAlpha,
|
|
222
228
|
SimpleObjectFieldSchema,
|
|
223
229
|
SimpleObjectNodeSchema,
|
|
230
|
+
SimpleRecordNodeSchema,
|
|
224
231
|
SimpleTreeIndex,
|
|
225
232
|
SimpleTreeSchema,
|
|
226
233
|
System_TableSchema,
|
|
@@ -240,6 +247,8 @@ export {
|
|
|
240
247
|
TreeIndex,
|
|
241
248
|
TreeIndexKey,
|
|
242
249
|
TreeIndexNodes,
|
|
250
|
+
TreeRecordNode,
|
|
251
|
+
TreeRecordNodeUnsafe,
|
|
243
252
|
TreeSchema,
|
|
244
253
|
TreeSchemaEncodingOptions,
|
|
245
254
|
TreeViewAlpha,
|
package/lib/alpha.d.ts
CHANGED
|
@@ -189,10 +189,12 @@ export {
|
|
|
189
189
|
JsonNodeSchema,
|
|
190
190
|
JsonNodeSchemaBase,
|
|
191
191
|
JsonObjectNodeSchema,
|
|
192
|
+
JsonRecordNodeSchema,
|
|
192
193
|
JsonRefPath,
|
|
193
194
|
JsonSchemaId,
|
|
194
195
|
JsonSchemaRef,
|
|
195
196
|
JsonSchemaType,
|
|
197
|
+
JsonStringKeyPatternProperties,
|
|
196
198
|
JsonTreeSchema,
|
|
197
199
|
JsonValidator,
|
|
198
200
|
MapNodeCustomizableSchema,
|
|
@@ -204,6 +206,10 @@ export {
|
|
|
204
206
|
ObjectNodeSchema,
|
|
205
207
|
ReadSchema,
|
|
206
208
|
ReadableField,
|
|
209
|
+
RecordNodeCustomizableSchema,
|
|
210
|
+
RecordNodeInsertableData,
|
|
211
|
+
RecordNodePojoEmulationSchema,
|
|
212
|
+
RecordNodeSchema,
|
|
207
213
|
RevertibleAlpha,
|
|
208
214
|
RevertibleAlphaFactory,
|
|
209
215
|
RunTransactionParams,
|
|
@@ -221,6 +227,7 @@ export {
|
|
|
221
227
|
SimpleNodeSchemaBaseAlpha,
|
|
222
228
|
SimpleObjectFieldSchema,
|
|
223
229
|
SimpleObjectNodeSchema,
|
|
230
|
+
SimpleRecordNodeSchema,
|
|
224
231
|
SimpleTreeIndex,
|
|
225
232
|
SimpleTreeSchema,
|
|
226
233
|
System_TableSchema,
|
|
@@ -240,6 +247,8 @@ export {
|
|
|
240
247
|
TreeIndex,
|
|
241
248
|
TreeIndexKey,
|
|
242
249
|
TreeIndexNodes,
|
|
250
|
+
TreeRecordNode,
|
|
251
|
+
TreeRecordNodeUnsafe,
|
|
243
252
|
TreeSchema,
|
|
244
253
|
TreeSchemaEncodingOptions,
|
|
245
254
|
TreeViewAlpha,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fluid-framework",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.50.0-345060",
|
|
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": "
|
|
61
|
-
"@fluidframework/container-loader": "
|
|
62
|
-
"@fluidframework/core-interfaces": "
|
|
63
|
-
"@fluidframework/core-utils": "
|
|
64
|
-
"@fluidframework/driver-definitions": "
|
|
65
|
-
"@fluidframework/fluid-static": "
|
|
66
|
-
"@fluidframework/map": "
|
|
67
|
-
"@fluidframework/runtime-utils": "
|
|
68
|
-
"@fluidframework/sequence": "
|
|
69
|
-
"@fluidframework/shared-object-base": "
|
|
70
|
-
"@fluidframework/tree": "
|
|
60
|
+
"@fluidframework/container-definitions": "2.50.0-345060",
|
|
61
|
+
"@fluidframework/container-loader": "2.50.0-345060",
|
|
62
|
+
"@fluidframework/core-interfaces": "2.50.0-345060",
|
|
63
|
+
"@fluidframework/core-utils": "2.50.0-345060",
|
|
64
|
+
"@fluidframework/driver-definitions": "2.50.0-345060",
|
|
65
|
+
"@fluidframework/fluid-static": "2.50.0-345060",
|
|
66
|
+
"@fluidframework/map": "2.50.0-345060",
|
|
67
|
+
"@fluidframework/runtime-utils": "2.50.0-345060",
|
|
68
|
+
"@fluidframework/sequence": "2.50.0-345060",
|
|
69
|
+
"@fluidframework/shared-object-base": "2.50.0-345060",
|
|
70
|
+
"@fluidframework/tree": "2.50.0-345060"
|
|
71
71
|
},
|
|
72
72
|
"devDependencies": {
|
|
73
73
|
"@arethetypeswrong/cli": "^0.17.1",
|