fluid-framework 2.5.0-302463 → 2.5.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 +301 -0
- package/api-report/fluid-framework.alpha.api.md +151 -57
- package/api-report/fluid-framework.beta.api.md +29 -25
- package/api-report/fluid-framework.legacy.alpha.api.md +28 -24
- package/api-report/fluid-framework.legacy.public.api.md +28 -24
- package/api-report/fluid-framework.public.api.md +28 -24
- package/dist/alpha.d.ts +15 -0
- package/lib/alpha.d.ts +15 -0
- package/package.json +11 -11
|
@@ -9,14 +9,10 @@ export function adaptEnum<TScope extends string, const TEnum extends Record<stri
|
|
|
9
9
|
readonly value: TValue;
|
|
10
10
|
}) & { readonly [Property in keyof TEnum]: TreeNodeSchemaClass<ScopedSchemaName<TScope, TEnum[Property]>, NodeKind.Object, TreeNode & {
|
|
11
11
|
readonly value: TEnum[Property];
|
|
12
|
-
}, Record<string, never>, true,
|
|
13
|
-
readonly value: TEnum[Property];
|
|
14
|
-
}); } & {
|
|
12
|
+
}, Record<string, never>, true, Record<string, never>, undefined>; } & {
|
|
15
13
|
readonly schema: UnionToTuple<{ readonly [Property in keyof TEnum]: TreeNodeSchemaClass<ScopedSchemaName<TScope, TEnum[Property]>, NodeKind.Object, TreeNode & {
|
|
16
14
|
readonly value: TEnum[Property];
|
|
17
|
-
}, Record<string, never>, true,
|
|
18
|
-
readonly value: TEnum[Property];
|
|
19
|
-
}); }[keyof TEnum]>;
|
|
15
|
+
}, Record<string, never>, true, Record<string, never>, undefined>; }[keyof TEnum]>;
|
|
20
16
|
};
|
|
21
17
|
|
|
22
18
|
// @public
|
|
@@ -37,6 +33,9 @@ type ApplyKindInput<T, Kind extends FieldKind, DefaultsAreOptional extends boole
|
|
|
37
33
|
Kind
|
|
38
34
|
] extends [FieldKind.Required] ? T : [Kind] extends [FieldKind.Optional] ? T | undefined : [Kind] extends [FieldKind.Identifier] ? DefaultsAreOptional extends true ? T | undefined : T : never;
|
|
39
35
|
|
|
36
|
+
// @alpha
|
|
37
|
+
export function asTreeViewAlpha<TSchema extends ImplicitFieldSchema>(view: TreeView<TSchema>): TreeViewAlpha<TSchema>;
|
|
38
|
+
|
|
40
39
|
// @public
|
|
41
40
|
export enum AttachState {
|
|
42
41
|
Attached = "Attached",
|
|
@@ -44,6 +43,14 @@ export enum AttachState {
|
|
|
44
43
|
Detached = "Detached"
|
|
45
44
|
}
|
|
46
45
|
|
|
46
|
+
// @alpha @sealed
|
|
47
|
+
export interface BranchableTree extends ViewableTree {
|
|
48
|
+
branch(): TreeBranchFork;
|
|
49
|
+
merge(branch: TreeBranchFork): void;
|
|
50
|
+
merge(branch: TreeBranchFork, disposeMerged: boolean): void;
|
|
51
|
+
rebase(branch: TreeBranchFork): void;
|
|
52
|
+
}
|
|
53
|
+
|
|
47
54
|
// @public
|
|
48
55
|
export enum CommitKind {
|
|
49
56
|
Default = 0,
|
|
@@ -60,6 +67,11 @@ export interface CommitMetadata {
|
|
|
60
67
|
// @alpha
|
|
61
68
|
export function comparePersistedSchema(persisted: JsonCompatible, view: JsonCompatible, options: ICodecOptions, canInitialize: boolean): SchemaCompatibilityStatus;
|
|
62
69
|
|
|
70
|
+
// @alpha
|
|
71
|
+
export type ConciseTree<THandle = IFluidHandle> = Exclude<TreeLeafValue, IFluidHandle> | THandle | ConciseTree<THandle>[] | {
|
|
72
|
+
[key: string]: ConciseTree<THandle>;
|
|
73
|
+
};
|
|
74
|
+
|
|
63
75
|
// @alpha
|
|
64
76
|
export function configuredSharedTree(options: SharedTreeOptions): SharedObjectKind<ITree>;
|
|
65
77
|
|
|
@@ -95,19 +107,21 @@ export interface ContainerSchema {
|
|
|
95
107
|
interface DefaultProvider extends ErasedType<"@fluidframework/tree.FieldProvider"> {
|
|
96
108
|
}
|
|
97
109
|
|
|
110
|
+
// @alpha
|
|
111
|
+
export interface EncodeOptions<TCustom> {
|
|
112
|
+
readonly useStoredKeys?: boolean;
|
|
113
|
+
valueConverter(data: IFluidHandle): TCustom;
|
|
114
|
+
}
|
|
115
|
+
|
|
98
116
|
// @alpha
|
|
99
117
|
export function enumFromStrings<TScope extends string, const Members extends readonly string[]>(factory: SchemaFactory<TScope>, members: Members): (<TValue extends Members[number]>(value: TValue) => TreeNode & {
|
|
100
118
|
readonly value: TValue;
|
|
101
119
|
}) & Record<Members[number], TreeNodeSchemaClass<ScopedSchemaName<TScope, Members[number]>, NodeKind.Object, TreeNode & {
|
|
102
120
|
readonly value: Members[number];
|
|
103
|
-
}, Record<string, never>, true,
|
|
104
|
-
readonly value: Members[number];
|
|
105
|
-
})> & {
|
|
121
|
+
}, Record<string, never>, true, Record<string, never>, undefined>> & {
|
|
106
122
|
readonly schema: UnionToTuple<Record<Members[number], TreeNodeSchemaClass<ScopedSchemaName<TScope, Members[number]>, NodeKind.Object, TreeNode & {
|
|
107
123
|
readonly value: Members[number];
|
|
108
|
-
}, Record<string, never>, true,
|
|
109
|
-
readonly value: Members[number];
|
|
110
|
-
})>[Members[number]]>;
|
|
124
|
+
}, Record<string, never>, true, Record<string, never>, undefined>>[Members[number]]>;
|
|
111
125
|
};
|
|
112
126
|
|
|
113
127
|
// @public @sealed
|
|
@@ -188,6 +202,14 @@ type FlexList<Item = unknown> = readonly LazyItem<Item>[];
|
|
|
188
202
|
// @public
|
|
189
203
|
type FlexListToUnion<TList extends FlexList> = ExtractItemType<TList[number]>;
|
|
190
204
|
|
|
205
|
+
// @alpha
|
|
206
|
+
export enum FluidClientVersion {
|
|
207
|
+
v2_0 = "v2_0",
|
|
208
|
+
v2_1 = "v2_1",
|
|
209
|
+
v2_2 = "v2_2",
|
|
210
|
+
v2_3 = "v2_3"
|
|
211
|
+
}
|
|
212
|
+
|
|
191
213
|
// @public
|
|
192
214
|
export type FluidObject<T = unknown> = {
|
|
193
215
|
[P in FluidObjectProviderKeys<T>]?: T[P];
|
|
@@ -208,11 +230,11 @@ export enum ForestType {
|
|
|
208
230
|
Reference = 0
|
|
209
231
|
}
|
|
210
232
|
|
|
211
|
-
// @alpha
|
|
212
|
-
export function getBranch(tree: ITree):
|
|
233
|
+
// @alpha @deprecated
|
|
234
|
+
export function getBranch(tree: ITree): BranchableTree;
|
|
213
235
|
|
|
214
|
-
// @alpha
|
|
215
|
-
export function getBranch<T extends ImplicitFieldSchema>(view:
|
|
236
|
+
// @alpha @deprecated
|
|
237
|
+
export function getBranch<T extends ImplicitFieldSchema | UnsafeUnknownSchema>(view: TreeViewAlpha<T>): BranchableTree;
|
|
216
238
|
|
|
217
239
|
// @alpha
|
|
218
240
|
export function getJsonSchema(schema: ImplicitFieldSchema): JsonTreeSchema;
|
|
@@ -481,6 +503,14 @@ export type ImplicitAllowedTypes = AllowedTypes | TreeNodeSchema;
|
|
|
481
503
|
// @public
|
|
482
504
|
export type ImplicitFieldSchema = FieldSchema | ImplicitAllowedTypes;
|
|
483
505
|
|
|
506
|
+
// @alpha
|
|
507
|
+
export function independentInitializedView<const TSchema extends ImplicitFieldSchema>(config: TreeViewConfiguration<TSchema>, options: ForestOptions & ICodecOptions, content: ViewContent): TreeViewAlpha<TSchema>;
|
|
508
|
+
|
|
509
|
+
// @alpha
|
|
510
|
+
export function independentView<const TSchema extends ImplicitFieldSchema>(config: TreeViewConfiguration<TSchema>, options: ForestOptions & {
|
|
511
|
+
idCompressor?: IIdCompressor_2 | undefined;
|
|
512
|
+
}): TreeViewAlpha<TSchema>;
|
|
513
|
+
|
|
484
514
|
// @public
|
|
485
515
|
export type InitialObjects<T extends ContainerSchema> = {
|
|
486
516
|
[K in keyof T["initialObjects"]]: T["initialObjects"][K] extends SharedObjectKind<infer TChannel> ? TChannel : never;
|
|
@@ -654,11 +684,11 @@ export interface JsonArrayNodeSchema extends JsonNodeSchemaBase<NodeKind.Array,
|
|
|
654
684
|
}
|
|
655
685
|
|
|
656
686
|
// @alpha
|
|
657
|
-
export type JsonCompatible = string | number | boolean | null | JsonCompatible[] | JsonCompatibleObject;
|
|
687
|
+
export type JsonCompatible<TExtra = never> = string | number | boolean | null | JsonCompatible<TExtra>[] | JsonCompatibleObject<TExtra> | TExtra;
|
|
658
688
|
|
|
659
689
|
// @alpha
|
|
660
|
-
export type JsonCompatibleObject = {
|
|
661
|
-
[P in string]?: JsonCompatible
|
|
690
|
+
export type JsonCompatibleObject<TExtra = never> = {
|
|
691
|
+
[P in string]?: JsonCompatible<TExtra>;
|
|
662
692
|
};
|
|
663
693
|
|
|
664
694
|
// @alpha @sealed
|
|
@@ -752,7 +782,7 @@ export type Myself<M extends IMember = IMember> = M & {
|
|
|
752
782
|
};
|
|
753
783
|
|
|
754
784
|
// @public
|
|
755
|
-
type NodeBuilderData<T extends
|
|
785
|
+
type NodeBuilderData<T extends TreeNodeSchemaCore<string, NodeKind, boolean>> = T extends TreeNodeSchemaCore<string, NodeKind, boolean, unknown, infer TBuild> ? TBuild : never;
|
|
756
786
|
|
|
757
787
|
// @public
|
|
758
788
|
type NodeBuilderDataUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchemaUnsafe<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
|
|
@@ -800,9 +830,18 @@ type ObjectFromSchemaRecordUnsafe<T extends Unenforced<RestrictiveStringRecord<I
|
|
|
800
830
|
// @public
|
|
801
831
|
export type Off = () => void;
|
|
802
832
|
|
|
833
|
+
// @alpha
|
|
834
|
+
export interface ParseOptions<TCustom> {
|
|
835
|
+
readonly useStoredKeys?: boolean;
|
|
836
|
+
valueConverter(data: VerboseTree<TCustom>): TreeLeafValue | VerboseTreeNode<TCustom>;
|
|
837
|
+
}
|
|
838
|
+
|
|
803
839
|
// @alpha
|
|
804
840
|
export type PopUnion<Union, AsOverloadedFunction = UnionToIntersection<Union extends unknown ? (f: Union) => void : never>> = AsOverloadedFunction extends (a: infer First) => void ? First : never;
|
|
805
841
|
|
|
842
|
+
// @alpha
|
|
843
|
+
export type ReadableField<TSchema extends ImplicitFieldSchema | UnsafeUnknownSchema> = TreeFieldFromImplicitField<ReadSchema<TSchema>>;
|
|
844
|
+
|
|
806
845
|
// @public @sealed
|
|
807
846
|
export interface ReadonlyArrayNode<out T = TreeNode | TreeLeafValue> extends ReadonlyArray<T>, Awaited<TreeNode & WithType<string, NodeKind.Array>> {
|
|
808
847
|
}
|
|
@@ -823,6 +862,11 @@ interface ReadonlyMapInlined<K, T extends Unenforced<ImplicitAllowedTypes>> {
|
|
|
823
862
|
values(): IterableIterator<TreeNodeFromImplicitAllowedTypesUnsafe<T>>;
|
|
824
863
|
}
|
|
825
864
|
|
|
865
|
+
// @alpha
|
|
866
|
+
export type ReadSchema<TSchema extends ImplicitFieldSchema | UnsafeUnknownSchema> = [
|
|
867
|
+
TSchema
|
|
868
|
+
] extends [ImplicitFieldSchema] ? TSchema : ImplicitFieldSchema;
|
|
869
|
+
|
|
826
870
|
// @public
|
|
827
871
|
export type ReplaceIEventThisPlaceHolder<L extends any[], TThis> = L extends any[] ? {
|
|
828
872
|
[K in keyof L]: L[K] extends IEventThisPlaceHolder ? TThis : L[K];
|
|
@@ -888,24 +932,24 @@ export interface SchemaCompatibilityStatus {
|
|
|
888
932
|
// @public @sealed
|
|
889
933
|
export class SchemaFactory<out TScope extends string | undefined = string | undefined, TName extends number | string = string> {
|
|
890
934
|
constructor(scope: TScope);
|
|
891
|
-
array<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchemaNonClass<ScopedSchemaName<TScope, `Array<${string}>`>, NodeKind.Array, TreeArrayNode<T> & WithType<ScopedSchemaName<TScope, `Array<${string}>`>, NodeKind.Array>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>, true, T>;
|
|
892
|
-
array<const Name extends TName, const T extends ImplicitAllowedTypes>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Array, TreeArrayNode<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Array>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>, true, T>;
|
|
935
|
+
array<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchemaNonClass<ScopedSchemaName<TScope, `Array<${string}>`>, NodeKind.Array, TreeArrayNode<T> & WithType<ScopedSchemaName<TScope, `Array<${string}>`>, NodeKind.Array>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>, true, T, undefined>;
|
|
936
|
+
array<const Name extends TName, const T extends ImplicitAllowedTypes>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Array, TreeArrayNode<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Array>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>, true, T, undefined>;
|
|
893
937
|
arrayRecursive<const Name extends TName, const T extends Unenforced<ImplicitAllowedTypes>>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Array, TreeArrayNodeUnsafe<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Array, unknown>, {
|
|
894
938
|
[Symbol.iterator](): Iterator<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>>;
|
|
895
|
-
}, false, T>;
|
|
896
|
-
readonly boolean:
|
|
897
|
-
readonly handle:
|
|
939
|
+
}, false, T, undefined>;
|
|
940
|
+
readonly boolean: TreeNodeSchemaNonClass<"com.fluidframework.leaf.boolean", NodeKind.Leaf, boolean, boolean, true, unknown, never>;
|
|
941
|
+
readonly handle: TreeNodeSchemaNonClass<"com.fluidframework.leaf.handle", NodeKind.Leaf, IFluidHandle<unknown>, IFluidHandle<unknown>, true, unknown, never>;
|
|
898
942
|
get identifier(): FieldSchema<FieldKind.Identifier, typeof SchemaFactory.string>;
|
|
899
|
-
map<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchemaNonClass<ScopedSchemaName<TScope, `Map<${string}>`>, NodeKind.Map, TreeMapNode<T> & WithType<ScopedSchemaName<TScope, `Map<${string}>`>, NodeKind.Map>, MapNodeInsertableData<T>, true, T>;
|
|
900
|
-
map<Name extends TName, const T extends ImplicitAllowedTypes>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Map, TreeMapNode<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Map>, MapNodeInsertableData<T>, true, T>;
|
|
943
|
+
map<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchemaNonClass<ScopedSchemaName<TScope, `Map<${string}>`>, NodeKind.Map, TreeMapNode<T> & WithType<ScopedSchemaName<TScope, `Map<${string}>`>, NodeKind.Map>, MapNodeInsertableData<T>, true, T, undefined>;
|
|
944
|
+
map<Name extends TName, const T extends ImplicitAllowedTypes>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Map, TreeMapNode<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Map>, MapNodeInsertableData<T>, true, T, undefined>;
|
|
901
945
|
mapRecursive<Name extends TName, const T extends Unenforced<ImplicitAllowedTypes>>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Map, TreeMapNodeUnsafe<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Map, unknown>, {
|
|
902
946
|
[Symbol.iterator](): Iterator<[
|
|
903
947
|
string,
|
|
904
948
|
InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>
|
|
905
949
|
]>;
|
|
906
|
-
}, false, T>;
|
|
907
|
-
readonly null:
|
|
908
|
-
readonly number:
|
|
950
|
+
}, false, T, undefined>;
|
|
951
|
+
readonly null: TreeNodeSchemaNonClass<"com.fluidframework.leaf.null", NodeKind.Leaf, null, null, true, unknown, never>;
|
|
952
|
+
readonly number: TreeNodeSchemaNonClass<"com.fluidframework.leaf.number", NodeKind.Leaf, number, number, true, unknown, never>;
|
|
909
953
|
object<const Name extends TName, const T extends RestrictiveStringRecord<ImplicitFieldSchema>>(name: Name, fields: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, TreeObjectNode<T, ScopedSchemaName<TScope, Name>>, object & InsertableObjectFromSchemaRecord<T>, true, T>;
|
|
910
954
|
objectRecursive<const Name extends TName, const T extends Unenforced<RestrictiveStringRecord<ImplicitFieldSchema>>>(name: Name, t: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, TreeObjectNodeUnsafe<T, ScopedSchemaName<TScope, Name>>, object & { readonly [Property in keyof T as FieldHasDefaultUnsafe<T[Property]> extends false ? Property : never]: InsertableTreeFieldFromImplicitFieldUnsafe<T[Property], UnionToIntersection_2<T[Property]>>; } & { readonly [Property_1 in keyof T as FieldHasDefaultUnsafe<T[Property_1]> extends true ? Property_1 : never]?: InsertableTreeFieldFromImplicitFieldUnsafe<T[Property_1], UnionToIntersection_2<T[Property_1]>> | undefined; }, false, T>;
|
|
911
955
|
optional<const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider">): FieldSchema<FieldKind.Optional, T, TCustomMetadata>;
|
|
@@ -914,7 +958,7 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
|
|
|
914
958
|
requiredRecursive<const T extends Unenforced<ImplicitAllowedTypes>>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchemaUnsafe<FieldKind.Required, T>;
|
|
915
959
|
// (undocumented)
|
|
916
960
|
readonly scope: TScope;
|
|
917
|
-
readonly string:
|
|
961
|
+
readonly string: TreeNodeSchemaNonClass<"com.fluidframework.leaf.string", NodeKind.Leaf, string, string, true, unknown, never>;
|
|
918
962
|
}
|
|
919
963
|
|
|
920
964
|
// @alpha
|
|
@@ -955,9 +999,7 @@ export type SharedTreeOptions = Partial<ICodecOptions> & Partial<SharedTreeForma
|
|
|
955
999
|
// @alpha
|
|
956
1000
|
export function singletonSchema<TScope extends string, TName extends string | number>(factory: SchemaFactory<TScope, TName>, name: TName): TreeNodeSchemaClass<ScopedSchemaName<TScope, TName>, NodeKind.Object, TreeNode & {
|
|
957
1001
|
readonly value: TName;
|
|
958
|
-
}, Record<string, never>, true,
|
|
959
|
-
readonly value: TName;
|
|
960
|
-
});
|
|
1002
|
+
}, Record<string, never>, true, Record<string, never>, undefined>;
|
|
961
1003
|
|
|
962
1004
|
// @public
|
|
963
1005
|
export interface Tagged<V, T extends string = string> {
|
|
@@ -979,6 +1021,26 @@ export type TransformedEvent<TThis, E, A extends any[]> = (event: E, listener: (
|
|
|
979
1021
|
// @public
|
|
980
1022
|
export const Tree: TreeApi;
|
|
981
1023
|
|
|
1024
|
+
// @alpha @sealed
|
|
1025
|
+
export const TreeAlpha: {
|
|
1026
|
+
branch(node: TreeNode): TreeBranch | undefined;
|
|
1027
|
+
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>;
|
|
1028
|
+
importConcise<const TSchema extends ImplicitFieldSchema | UnsafeUnknownSchema>(schema: UnsafeUnknownSchema extends TSchema ? ImplicitFieldSchema : TSchema & ImplicitFieldSchema, data: ConciseTree | undefined): Unhydrated<TSchema extends ImplicitFieldSchema ? TreeFieldFromImplicitField<TSchema> : TreeNode | TreeLeafValue | undefined>;
|
|
1029
|
+
importVerbose<const TSchema extends ImplicitFieldSchema>(schema: TSchema, data: VerboseTree | undefined, options?: Partial<ParseOptions<IFluidHandle>>): Unhydrated<TreeFieldFromImplicitField<TSchema>>;
|
|
1030
|
+
importVerbose<const TSchema extends ImplicitFieldSchema, THandle>(schema: TSchema, data: VerboseTree<THandle> | undefined, options: ParseOptions<THandle>): Unhydrated<TreeFieldFromImplicitField<TSchema>>;
|
|
1031
|
+
exportConcise(node: TreeNode | TreeLeafValue, options?: Partial<EncodeOptions<IFluidHandle>>): ConciseTree;
|
|
1032
|
+
exportConcise<THandle>(node: TreeNode | TreeLeafValue, options: EncodeOptions<THandle>): ConciseTree<THandle>;
|
|
1033
|
+
exportVerbose(node: TreeNode | TreeLeafValue, options?: Partial<EncodeOptions<IFluidHandle>>): VerboseTree;
|
|
1034
|
+
exportVerbose<T>(node: TreeNode | TreeLeafValue, options: EncodeOptions<T>): VerboseTree<T>;
|
|
1035
|
+
exportCompressed(tree: TreeNode | TreeLeafValue, options: {
|
|
1036
|
+
oldestCompatibleClient: FluidClientVersion;
|
|
1037
|
+
idCompressor?: IIdCompressor;
|
|
1038
|
+
}): JsonCompatible<IFluidHandle>;
|
|
1039
|
+
importCompressed<const TSchema extends ImplicitFieldSchema>(schema: TSchema, compressedData: JsonCompatible<IFluidHandle>, options: {
|
|
1040
|
+
idCompressor?: IIdCompressor;
|
|
1041
|
+
} & ICodecOptions): Unhydrated<TreeFieldFromImplicitField<TSchema>>;
|
|
1042
|
+
};
|
|
1043
|
+
|
|
982
1044
|
// @public @sealed
|
|
983
1045
|
interface TreeApi extends TreeNodeApi {
|
|
984
1046
|
contains(node: TreeNode, other: TreeNode): boolean;
|
|
@@ -1023,20 +1085,28 @@ export interface TreeArrayNodeUnsafe<TAllowedTypes extends Unenforced<ImplicitAl
|
|
|
1023
1085
|
// @beta @sealed
|
|
1024
1086
|
export const TreeBeta: {
|
|
1025
1087
|
on<K extends keyof TreeChangeEventsBeta<TNode>, TNode extends TreeNode>(node: TNode, eventName: K, listener: NoInfer<TreeChangeEventsBeta<TNode>[K]>): () => void;
|
|
1026
|
-
clone<TSchema extends ImplicitFieldSchema>(node: TreeFieldFromImplicitField<TSchema>): TreeFieldFromImplicitField<TSchema>;
|
|
1088
|
+
clone<const TSchema extends ImplicitFieldSchema>(node: TreeFieldFromImplicitField<TSchema>): TreeFieldFromImplicitField<TSchema>;
|
|
1027
1089
|
};
|
|
1028
1090
|
|
|
1029
1091
|
// @alpha @sealed
|
|
1030
|
-
export interface TreeBranch extends
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1092
|
+
export interface TreeBranch extends IDisposable {
|
|
1093
|
+
dispose(error?: Error): void;
|
|
1094
|
+
readonly events: Listenable<TreeBranchEvents>;
|
|
1095
|
+
fork(): TreeBranch;
|
|
1096
|
+
hasRootSchema<TSchema extends ImplicitFieldSchema>(schema: TSchema): this is TreeViewAlpha<TSchema>;
|
|
1097
|
+
merge(branch: TreeBranch, disposeMerged?: boolean): void;
|
|
1098
|
+
rebaseOnto(branch: TreeBranch): void;
|
|
1035
1099
|
}
|
|
1036
1100
|
|
|
1037
1101
|
// @alpha @sealed
|
|
1038
|
-
export interface
|
|
1039
|
-
|
|
1102
|
+
export interface TreeBranchEvents {
|
|
1103
|
+
commitApplied(data: CommitMetadata, getRevertible?: RevertibleFactory): void;
|
|
1104
|
+
schemaChanged(): void;
|
|
1105
|
+
}
|
|
1106
|
+
|
|
1107
|
+
// @alpha @sealed
|
|
1108
|
+
export interface TreeBranchFork extends BranchableTree, IDisposable {
|
|
1109
|
+
rebaseOnto(branch: BranchableTree): void;
|
|
1040
1110
|
}
|
|
1041
1111
|
|
|
1042
1112
|
// @public @sealed
|
|
@@ -1109,23 +1179,26 @@ export type TreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedType
|
|
|
1109
1179
|
type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends TreeNodeSchemaUnsafe ? NodeFromSchemaUnsafe<TSchema> : TSchema extends AllowedTypesUnsafe ? NodeFromSchemaUnsafe<FlexListToUnion<TSchema>> : unknown;
|
|
1110
1180
|
|
|
1111
1181
|
// @public @sealed
|
|
1112
|
-
export type TreeNodeSchema<Name extends string = string, Kind extends NodeKind = NodeKind, TNode extends TreeNode | TreeLeafValue = TreeNode | TreeLeafValue, TBuild = never, ImplicitlyConstructable extends boolean = boolean, Info = unknown> = TreeNodeSchemaClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info> | TreeNodeSchemaNonClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info>;
|
|
1182
|
+
export type TreeNodeSchema<Name extends string = string, Kind extends NodeKind = NodeKind, TNode extends TreeNode | TreeLeafValue = TreeNode | TreeLeafValue, TBuild = never, ImplicitlyConstructable extends boolean = boolean, Info = unknown> = (TNode extends TreeNode ? TreeNodeSchemaClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info> : never) | TreeNodeSchemaNonClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info>;
|
|
1113
1183
|
|
|
1114
1184
|
// @public @sealed
|
|
1115
|
-
export
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1185
|
+
export type TreeNodeSchemaClass<Name extends string = string, Kind extends NodeKind = NodeKind, TNode extends TreeNode = TreeNode, TInsertable = never, ImplicitlyConstructable extends boolean = boolean, Info = unknown, TConstructorExtra = never> = TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info, TInsertable> & (undefined extends TConstructorExtra ? {
|
|
1186
|
+
new (data?: TInsertable | InternalTreeNode | TConstructorExtra): Unhydrated<TNode>;
|
|
1187
|
+
} : {
|
|
1188
|
+
new (data: TInsertable | InternalTreeNode | TConstructorExtra): Unhydrated<TNode>;
|
|
1189
|
+
});
|
|
1119
1190
|
|
|
1120
1191
|
// @public
|
|
1121
|
-
export interface TreeNodeSchemaClassUnsafe<out Name extends string, out Kind extends NodeKind, out TNode extends Unenforced<TreeNode
|
|
1192
|
+
export interface TreeNodeSchemaClassUnsafe<out Name extends string, out Kind extends NodeKind, out TNode extends Unenforced<TreeNode>, in TInsertable, out ImplicitlyConstructable extends boolean, out Info> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
|
|
1122
1193
|
// @sealed
|
|
1123
1194
|
new (data: TInsertable | InternalTreeNode): Unhydrated<TNode>;
|
|
1124
1195
|
}
|
|
1125
1196
|
|
|
1126
1197
|
// @public @sealed
|
|
1127
|
-
export interface TreeNodeSchemaCore<out Name extends string, out Kind extends NodeKind, out ImplicitlyConstructable extends boolean, out Info = unknown> {
|
|
1198
|
+
export interface TreeNodeSchemaCore<out Name extends string, out Kind extends NodeKind, out ImplicitlyConstructable extends boolean, out Info = unknown, out TInsertable = never> {
|
|
1128
1199
|
readonly childTypes: ReadonlySet<TreeNodeSchema>;
|
|
1200
|
+
// @sealed
|
|
1201
|
+
createFromInsertable(data: TInsertable): Unhydrated<TreeNode | TreeLeafValue>;
|
|
1129
1202
|
readonly identifier: Name;
|
|
1130
1203
|
readonly implicitlyConstructable: ImplicitlyConstructable;
|
|
1131
1204
|
readonly info: Info;
|
|
@@ -1134,10 +1207,11 @@ export interface TreeNodeSchemaCore<out Name extends string, out Kind extends No
|
|
|
1134
1207
|
}
|
|
1135
1208
|
|
|
1136
1209
|
// @public @sealed
|
|
1137
|
-
export
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1210
|
+
export type TreeNodeSchemaNonClass<Name extends string = string, Kind extends NodeKind = NodeKind, TNode extends TreeNode | TreeLeafValue = TreeNode | TreeLeafValue, TInsertable = never, ImplicitlyConstructable extends boolean = boolean, Info = unknown, TConstructorExtra = never> = TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info, TInsertable> & (undefined extends TConstructorExtra ? {
|
|
1211
|
+
create(data?: TInsertable | TConstructorExtra): TNode;
|
|
1212
|
+
} : {
|
|
1213
|
+
create(data: TInsertable | TConstructorExtra): TNode;
|
|
1214
|
+
});
|
|
1141
1215
|
|
|
1142
1216
|
// @public
|
|
1143
1217
|
interface TreeNodeSchemaNonClassUnsafe<out Name extends string, out Kind extends NodeKind, out TNode extends Unenforced<TreeNode | TreeLeafValue>, in TInsertable, out ImplicitlyConstructable extends boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
|
|
@@ -1173,12 +1247,14 @@ export interface TreeView<in out TSchema extends ImplicitFieldSchema> extends ID
|
|
|
1173
1247
|
upgradeSchema(): void;
|
|
1174
1248
|
}
|
|
1175
1249
|
|
|
1176
|
-
// @alpha
|
|
1177
|
-
export interface TreeViewAlpha<in out TSchema extends ImplicitFieldSchema | UnsafeUnknownSchema> extends Omit<TreeView<TSchema
|
|
1250
|
+
// @alpha @sealed
|
|
1251
|
+
export interface TreeViewAlpha<in out TSchema extends ImplicitFieldSchema | UnsafeUnknownSchema> extends Omit<TreeView<ReadSchema<TSchema>>, "root" | "initialize">, Omit<TreeBranch, "events"> {
|
|
1252
|
+
// (undocumented)
|
|
1253
|
+
fork(): ReturnType<TreeBranch["fork"]> & TreeViewAlpha<TSchema>;
|
|
1178
1254
|
// (undocumented)
|
|
1179
1255
|
initialize(content: InsertableField<TSchema>): void;
|
|
1180
1256
|
// (undocumented)
|
|
1181
|
-
get root():
|
|
1257
|
+
get root(): ReadableField<TSchema>;
|
|
1182
1258
|
set root(newRoot: InsertableField<TSchema>);
|
|
1183
1259
|
}
|
|
1184
1260
|
|
|
@@ -1237,16 +1313,34 @@ export type ValidateRecursiveSchema<T extends TreeNodeSchemaClass<string, NodeKi
|
|
|
1237
1313
|
[NodeKind.Map]: ImplicitAllowedTypes;
|
|
1238
1314
|
}[T["kind"]]>> = true;
|
|
1239
1315
|
|
|
1316
|
+
// @alpha
|
|
1317
|
+
export type VerboseTree<THandle = IFluidHandle> = VerboseTreeNode<THandle> | Exclude<TreeLeafValue, IFluidHandle> | THandle;
|
|
1318
|
+
|
|
1319
|
+
// @alpha
|
|
1320
|
+
export interface VerboseTreeNode<THandle = IFluidHandle> {
|
|
1321
|
+
fields: VerboseTree<THandle>[] | {
|
|
1322
|
+
[key: string]: VerboseTree<THandle>;
|
|
1323
|
+
};
|
|
1324
|
+
type: string;
|
|
1325
|
+
}
|
|
1326
|
+
|
|
1240
1327
|
// @public @sealed
|
|
1241
1328
|
export interface ViewableTree {
|
|
1242
1329
|
viewWith<TRoot extends ImplicitFieldSchema>(config: TreeViewConfiguration<TRoot>): TreeView<TRoot>;
|
|
1243
1330
|
}
|
|
1244
1331
|
|
|
1332
|
+
// @alpha
|
|
1333
|
+
export interface ViewContent {
|
|
1334
|
+
readonly idCompressor: IIdCompressor_2;
|
|
1335
|
+
readonly schema: JsonCompatible;
|
|
1336
|
+
readonly tree: JsonCompatible<IFluidHandle>;
|
|
1337
|
+
}
|
|
1338
|
+
|
|
1245
1339
|
// @public @sealed
|
|
1246
1340
|
export interface WithType<out TName extends string = string, out TKind extends NodeKind = NodeKind, out TInfo = unknown> {
|
|
1247
1341
|
// @deprecated
|
|
1248
1342
|
get [typeNameSymbol](): TName;
|
|
1249
|
-
get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind, TreeNode
|
|
1343
|
+
get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind, TreeNode, never, boolean, TInfo>;
|
|
1250
1344
|
}
|
|
1251
1345
|
|
|
1252
1346
|
```
|
|
@@ -587,7 +587,7 @@ export type Myself<M extends IMember = IMember> = M & {
|
|
|
587
587
|
};
|
|
588
588
|
|
|
589
589
|
// @public
|
|
590
|
-
type NodeBuilderData<T extends
|
|
590
|
+
type NodeBuilderData<T extends TreeNodeSchemaCore<string, NodeKind, boolean>> = T extends TreeNodeSchemaCore<string, NodeKind, boolean, unknown, infer TBuild> ? TBuild : never;
|
|
591
591
|
|
|
592
592
|
// @public
|
|
593
593
|
type NodeBuilderDataUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchemaUnsafe<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
|
|
@@ -717,24 +717,24 @@ export interface SchemaCompatibilityStatus {
|
|
|
717
717
|
// @public @sealed
|
|
718
718
|
export class SchemaFactory<out TScope extends string | undefined = string | undefined, TName extends number | string = string> {
|
|
719
719
|
constructor(scope: TScope);
|
|
720
|
-
array<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchemaNonClass<ScopedSchemaName<TScope, `Array<${string}>`>, NodeKind.Array, TreeArrayNode<T> & WithType<ScopedSchemaName<TScope, `Array<${string}>`>, NodeKind.Array>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>, true, T>;
|
|
721
|
-
array<const Name extends TName, const T extends ImplicitAllowedTypes>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Array, TreeArrayNode<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Array>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>, true, T>;
|
|
720
|
+
array<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchemaNonClass<ScopedSchemaName<TScope, `Array<${string}>`>, NodeKind.Array, TreeArrayNode<T> & WithType<ScopedSchemaName<TScope, `Array<${string}>`>, NodeKind.Array>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>, true, T, undefined>;
|
|
721
|
+
array<const Name extends TName, const T extends ImplicitAllowedTypes>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Array, TreeArrayNode<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Array>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>, true, T, undefined>;
|
|
722
722
|
arrayRecursive<const Name extends TName, const T extends Unenforced<ImplicitAllowedTypes>>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Array, TreeArrayNodeUnsafe<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Array, unknown>, {
|
|
723
723
|
[Symbol.iterator](): Iterator<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>>;
|
|
724
|
-
}, false, T>;
|
|
725
|
-
readonly boolean:
|
|
726
|
-
readonly handle:
|
|
724
|
+
}, false, T, undefined>;
|
|
725
|
+
readonly boolean: TreeNodeSchemaNonClass<"com.fluidframework.leaf.boolean", NodeKind.Leaf, boolean, boolean, true, unknown, never>;
|
|
726
|
+
readonly handle: TreeNodeSchemaNonClass<"com.fluidframework.leaf.handle", NodeKind.Leaf, IFluidHandle<unknown>, IFluidHandle<unknown>, true, unknown, never>;
|
|
727
727
|
get identifier(): FieldSchema<FieldKind.Identifier, typeof SchemaFactory.string>;
|
|
728
|
-
map<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchemaNonClass<ScopedSchemaName<TScope, `Map<${string}>`>, NodeKind.Map, TreeMapNode<T> & WithType<ScopedSchemaName<TScope, `Map<${string}>`>, NodeKind.Map>, MapNodeInsertableData<T>, true, T>;
|
|
729
|
-
map<Name extends TName, const T extends ImplicitAllowedTypes>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Map, TreeMapNode<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Map>, MapNodeInsertableData<T>, true, T>;
|
|
728
|
+
map<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchemaNonClass<ScopedSchemaName<TScope, `Map<${string}>`>, NodeKind.Map, TreeMapNode<T> & WithType<ScopedSchemaName<TScope, `Map<${string}>`>, NodeKind.Map>, MapNodeInsertableData<T>, true, T, undefined>;
|
|
729
|
+
map<Name extends TName, const T extends ImplicitAllowedTypes>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Map, TreeMapNode<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Map>, MapNodeInsertableData<T>, true, T, undefined>;
|
|
730
730
|
mapRecursive<Name extends TName, const T extends Unenforced<ImplicitAllowedTypes>>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Map, TreeMapNodeUnsafe<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Map, unknown>, {
|
|
731
731
|
[Symbol.iterator](): Iterator<[
|
|
732
732
|
string,
|
|
733
733
|
InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>
|
|
734
734
|
]>;
|
|
735
|
-
}, false, T>;
|
|
736
|
-
readonly null:
|
|
737
|
-
readonly number:
|
|
735
|
+
}, false, T, undefined>;
|
|
736
|
+
readonly null: TreeNodeSchemaNonClass<"com.fluidframework.leaf.null", NodeKind.Leaf, null, null, true, unknown, never>;
|
|
737
|
+
readonly number: TreeNodeSchemaNonClass<"com.fluidframework.leaf.number", NodeKind.Leaf, number, number, true, unknown, never>;
|
|
738
738
|
object<const Name extends TName, const T extends RestrictiveStringRecord<ImplicitFieldSchema>>(name: Name, fields: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, TreeObjectNode<T, ScopedSchemaName<TScope, Name>>, object & InsertableObjectFromSchemaRecord<T>, true, T>;
|
|
739
739
|
objectRecursive<const Name extends TName, const T extends Unenforced<RestrictiveStringRecord<ImplicitFieldSchema>>>(name: Name, t: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, TreeObjectNodeUnsafe<T, ScopedSchemaName<TScope, Name>>, object & { readonly [Property in keyof T as FieldHasDefaultUnsafe<T[Property]> extends false ? Property : never]: InsertableTreeFieldFromImplicitFieldUnsafe<T[Property], UnionToIntersection_2<T[Property]>>; } & { readonly [Property_1 in keyof T as FieldHasDefaultUnsafe<T[Property_1]> extends true ? Property_1 : never]?: InsertableTreeFieldFromImplicitFieldUnsafe<T[Property_1], UnionToIntersection_2<T[Property_1]>> | undefined; }, false, T>;
|
|
740
740
|
optional<const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider">): FieldSchema<FieldKind.Optional, T, TCustomMetadata>;
|
|
@@ -743,7 +743,7 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
|
|
|
743
743
|
requiredRecursive<const T extends Unenforced<ImplicitAllowedTypes>>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchemaUnsafe<FieldKind.Required, T>;
|
|
744
744
|
// (undocumented)
|
|
745
745
|
readonly scope: TScope;
|
|
746
|
-
readonly string:
|
|
746
|
+
readonly string: TreeNodeSchemaNonClass<"com.fluidframework.leaf.string", NodeKind.Leaf, string, string, true, unknown, never>;
|
|
747
747
|
}
|
|
748
748
|
|
|
749
749
|
// @public
|
|
@@ -821,7 +821,7 @@ export interface TreeArrayNodeUnsafe<TAllowedTypes extends Unenforced<ImplicitAl
|
|
|
821
821
|
// @beta @sealed
|
|
822
822
|
export const TreeBeta: {
|
|
823
823
|
on<K extends keyof TreeChangeEventsBeta<TNode>, TNode extends TreeNode>(node: TNode, eventName: K, listener: NoInfer<TreeChangeEventsBeta<TNode>[K]>): () => void;
|
|
824
|
-
clone<TSchema extends ImplicitFieldSchema>(node: TreeFieldFromImplicitField<TSchema>): TreeFieldFromImplicitField<TSchema>;
|
|
824
|
+
clone<const TSchema extends ImplicitFieldSchema>(node: TreeFieldFromImplicitField<TSchema>): TreeFieldFromImplicitField<TSchema>;
|
|
825
825
|
};
|
|
826
826
|
|
|
827
827
|
// @public @sealed
|
|
@@ -888,23 +888,26 @@ export type TreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedType
|
|
|
888
888
|
type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends TreeNodeSchemaUnsafe ? NodeFromSchemaUnsafe<TSchema> : TSchema extends AllowedTypesUnsafe ? NodeFromSchemaUnsafe<FlexListToUnion<TSchema>> : unknown;
|
|
889
889
|
|
|
890
890
|
// @public @sealed
|
|
891
|
-
export type TreeNodeSchema<Name extends string = string, Kind extends NodeKind = NodeKind, TNode extends TreeNode | TreeLeafValue = TreeNode | TreeLeafValue, TBuild = never, ImplicitlyConstructable extends boolean = boolean, Info = unknown> = TreeNodeSchemaClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info> | TreeNodeSchemaNonClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info>;
|
|
891
|
+
export type TreeNodeSchema<Name extends string = string, Kind extends NodeKind = NodeKind, TNode extends TreeNode | TreeLeafValue = TreeNode | TreeLeafValue, TBuild = never, ImplicitlyConstructable extends boolean = boolean, Info = unknown> = (TNode extends TreeNode ? TreeNodeSchemaClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info> : never) | TreeNodeSchemaNonClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info>;
|
|
892
892
|
|
|
893
893
|
// @public @sealed
|
|
894
|
-
export
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
894
|
+
export type TreeNodeSchemaClass<Name extends string = string, Kind extends NodeKind = NodeKind, TNode extends TreeNode = TreeNode, TInsertable = never, ImplicitlyConstructable extends boolean = boolean, Info = unknown, TConstructorExtra = never> = TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info, TInsertable> & (undefined extends TConstructorExtra ? {
|
|
895
|
+
new (data?: TInsertable | InternalTreeNode | TConstructorExtra): Unhydrated<TNode>;
|
|
896
|
+
} : {
|
|
897
|
+
new (data: TInsertable | InternalTreeNode | TConstructorExtra): Unhydrated<TNode>;
|
|
898
|
+
});
|
|
898
899
|
|
|
899
900
|
// @public
|
|
900
|
-
export interface TreeNodeSchemaClassUnsafe<out Name extends string, out Kind extends NodeKind, out TNode extends Unenforced<TreeNode
|
|
901
|
+
export interface TreeNodeSchemaClassUnsafe<out Name extends string, out Kind extends NodeKind, out TNode extends Unenforced<TreeNode>, in TInsertable, out ImplicitlyConstructable extends boolean, out Info> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
|
|
901
902
|
// @sealed
|
|
902
903
|
new (data: TInsertable | InternalTreeNode): Unhydrated<TNode>;
|
|
903
904
|
}
|
|
904
905
|
|
|
905
906
|
// @public @sealed
|
|
906
|
-
export interface TreeNodeSchemaCore<out Name extends string, out Kind extends NodeKind, out ImplicitlyConstructable extends boolean, out Info = unknown> {
|
|
907
|
+
export interface TreeNodeSchemaCore<out Name extends string, out Kind extends NodeKind, out ImplicitlyConstructable extends boolean, out Info = unknown, out TInsertable = never> {
|
|
907
908
|
readonly childTypes: ReadonlySet<TreeNodeSchema>;
|
|
909
|
+
// @sealed
|
|
910
|
+
createFromInsertable(data: TInsertable): Unhydrated<TreeNode | TreeLeafValue>;
|
|
908
911
|
readonly identifier: Name;
|
|
909
912
|
readonly implicitlyConstructable: ImplicitlyConstructable;
|
|
910
913
|
readonly info: Info;
|
|
@@ -913,10 +916,11 @@ export interface TreeNodeSchemaCore<out Name extends string, out Kind extends No
|
|
|
913
916
|
}
|
|
914
917
|
|
|
915
918
|
// @public @sealed
|
|
916
|
-
export
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
919
|
+
export type TreeNodeSchemaNonClass<Name extends string = string, Kind extends NodeKind = NodeKind, TNode extends TreeNode | TreeLeafValue = TreeNode | TreeLeafValue, TInsertable = never, ImplicitlyConstructable extends boolean = boolean, Info = unknown, TConstructorExtra = never> = TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info, TInsertable> & (undefined extends TConstructorExtra ? {
|
|
920
|
+
create(data?: TInsertable | TConstructorExtra): TNode;
|
|
921
|
+
} : {
|
|
922
|
+
create(data: TInsertable | TConstructorExtra): TNode;
|
|
923
|
+
});
|
|
920
924
|
|
|
921
925
|
// @public
|
|
922
926
|
interface TreeNodeSchemaNonClassUnsafe<out Name extends string, out Kind extends NodeKind, out TNode extends Unenforced<TreeNode | TreeLeafValue>, in TInsertable, out ImplicitlyConstructable extends boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
|
|
@@ -1004,7 +1008,7 @@ export interface ViewableTree {
|
|
|
1004
1008
|
export interface WithType<out TName extends string = string, out TKind extends NodeKind = NodeKind, out TInfo = unknown> {
|
|
1005
1009
|
// @deprecated
|
|
1006
1010
|
get [typeNameSymbol](): TName;
|
|
1007
|
-
get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind, TreeNode
|
|
1011
|
+
get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind, TreeNode, never, boolean, TInfo>;
|
|
1008
1012
|
}
|
|
1009
1013
|
|
|
1010
1014
|
```
|