fluid-framework 2.4.0 → 2.5.0-302463
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 +148 -51
- package/api-report/fluid-framework.beta.api.md +83 -38
- package/api-report/fluid-framework.legacy.alpha.api.md +83 -38
- package/api-report/fluid-framework.legacy.public.api.md +83 -38
- package/api-report/fluid-framework.public.api.md +83 -38
- package/dist/alpha.d.ts +17 -2
- package/dist/beta.d.ts +6 -0
- package/dist/legacy.d.ts +6 -0
- package/dist/public.d.ts +6 -0
- package/lib/alpha.d.ts +17 -2
- package/lib/beta.d.ts +6 -0
- package/lib/legacy.d.ts +6 -0
- package/lib/public.d.ts +6 -0
- package/package.json +14 -14
|
@@ -9,20 +9,34 @@ 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
|
-
},
|
|
12
|
+
}, Record<string, never>, true, unknown> & (new (data?: InternalTreeNode | Record<string, never> | undefined) => TreeNode & {
|
|
13
13
|
readonly value: TEnum[Property];
|
|
14
|
-
}); }
|
|
14
|
+
}); } & {
|
|
15
|
+
readonly schema: UnionToTuple<{ readonly [Property in keyof TEnum]: TreeNodeSchemaClass<ScopedSchemaName<TScope, TEnum[Property]>, NodeKind.Object, TreeNode & {
|
|
16
|
+
readonly value: TEnum[Property];
|
|
17
|
+
}, Record<string, never>, true, unknown> & (new (data?: InternalTreeNode | Record<string, never> | undefined) => TreeNode & {
|
|
18
|
+
readonly value: TEnum[Property];
|
|
19
|
+
}); }[keyof TEnum]>;
|
|
20
|
+
};
|
|
15
21
|
|
|
16
22
|
// @public
|
|
17
23
|
export type AllowedTypes = readonly LazyItem<TreeNodeSchema>[];
|
|
18
24
|
|
|
19
25
|
// @public
|
|
20
|
-
type
|
|
26
|
+
type AllowedTypesUnsafe = readonly LazyItem<TreeNodeSchemaUnsafe>[];
|
|
27
|
+
|
|
28
|
+
// @public
|
|
29
|
+
type ApplyKind<T, Kind extends FieldKind> = {
|
|
21
30
|
[FieldKind.Required]: T;
|
|
22
31
|
[FieldKind.Optional]: T | undefined;
|
|
23
|
-
[FieldKind.Identifier]:
|
|
32
|
+
[FieldKind.Identifier]: T;
|
|
24
33
|
}[Kind];
|
|
25
34
|
|
|
35
|
+
// @public
|
|
36
|
+
type ApplyKindInput<T, Kind extends FieldKind, DefaultsAreOptional extends boolean> = [
|
|
37
|
+
Kind
|
|
38
|
+
] extends [FieldKind.Required] ? T : [Kind] extends [FieldKind.Optional] ? T | undefined : [Kind] extends [FieldKind.Identifier] ? DefaultsAreOptional extends true ? T | undefined : T : never;
|
|
39
|
+
|
|
26
40
|
// @public
|
|
27
41
|
export enum AttachState {
|
|
28
42
|
Attached = "Attached",
|
|
@@ -82,13 +96,19 @@ interface DefaultProvider extends ErasedType<"@fluidframework/tree.FieldProvider
|
|
|
82
96
|
}
|
|
83
97
|
|
|
84
98
|
// @alpha
|
|
85
|
-
export function enumFromStrings<TScope extends string, const Members extends string>(factory: SchemaFactory<TScope>, members:
|
|
99
|
+
export function enumFromStrings<TScope extends string, const Members extends readonly string[]>(factory: SchemaFactory<TScope>, members: Members): (<TValue extends Members[number]>(value: TValue) => TreeNode & {
|
|
86
100
|
readonly value: TValue;
|
|
87
|
-
}) & Record<Members, TreeNodeSchemaClass<ScopedSchemaName<TScope, Members>, NodeKind.Object, TreeNode & {
|
|
88
|
-
readonly value: Members;
|
|
89
|
-
},
|
|
90
|
-
readonly value: Members;
|
|
91
|
-
})
|
|
101
|
+
}) & Record<Members[number], TreeNodeSchemaClass<ScopedSchemaName<TScope, Members[number]>, NodeKind.Object, TreeNode & {
|
|
102
|
+
readonly value: Members[number];
|
|
103
|
+
}, Record<string, never>, true, unknown> & (new (data?: InternalTreeNode | Record<string, never> | undefined) => TreeNode & {
|
|
104
|
+
readonly value: Members[number];
|
|
105
|
+
})> & {
|
|
106
|
+
readonly schema: UnionToTuple<Record<Members[number], TreeNodeSchemaClass<ScopedSchemaName<TScope, Members[number]>, NodeKind.Object, TreeNode & {
|
|
107
|
+
readonly value: Members[number];
|
|
108
|
+
}, Record<string, never>, true, unknown> & (new (data?: InternalTreeNode | Record<string, never> | undefined) => TreeNode & {
|
|
109
|
+
readonly value: Members[number];
|
|
110
|
+
})>[Members[number]]>;
|
|
111
|
+
};
|
|
92
112
|
|
|
93
113
|
// @public @sealed
|
|
94
114
|
export abstract class ErasedType<out Name = unknown> {
|
|
@@ -102,6 +122,14 @@ type ExtractItemType<Item extends LazyItem> = Item extends () => infer Result ?
|
|
|
102
122
|
// @alpha
|
|
103
123
|
export function extractPersistedSchema(schema: ImplicitFieldSchema): JsonCompatible;
|
|
104
124
|
|
|
125
|
+
// @alpha
|
|
126
|
+
export type FactoryContent = IFluidHandle | string | number | boolean | null | Iterable<readonly [string, InsertableContent]> | readonly InsertableContent[] | FactoryContentObject;
|
|
127
|
+
|
|
128
|
+
// @alpha
|
|
129
|
+
export type FactoryContentObject = {
|
|
130
|
+
readonly [P in string]?: InsertableContent;
|
|
131
|
+
};
|
|
132
|
+
|
|
105
133
|
// @public
|
|
106
134
|
type FieldHasDefault<T extends ImplicitFieldSchema> = T extends FieldSchema<FieldKind.Optional | FieldKind.Identifier> ? true : false;
|
|
107
135
|
|
|
@@ -184,7 +212,7 @@ export enum ForestType {
|
|
|
184
212
|
export function getBranch(tree: ITree): TreeBranch;
|
|
185
213
|
|
|
186
214
|
// @alpha
|
|
187
|
-
export function getBranch(view: TreeView<
|
|
215
|
+
export function getBranch<T extends ImplicitFieldSchema>(view: TreeView<T>): TreeBranch;
|
|
188
216
|
|
|
189
217
|
// @alpha
|
|
190
218
|
export function getJsonSchema(schema: ImplicitFieldSchema): JsonTreeSchema;
|
|
@@ -461,11 +489,25 @@ export type InitialObjects<T extends ContainerSchema> = {
|
|
|
461
489
|
// @public
|
|
462
490
|
type _InlineTrick = 0;
|
|
463
491
|
|
|
492
|
+
// @public
|
|
493
|
+
export type Input<T extends never> = T;
|
|
494
|
+
|
|
495
|
+
// @alpha
|
|
496
|
+
export type Insertable<TSchema extends ImplicitAllowedTypes | UnsafeUnknownSchema> = TSchema extends ImplicitAllowedTypes ? InsertableTreeNodeFromImplicitAllowedTypes<TSchema> : InsertableContent;
|
|
497
|
+
|
|
498
|
+
// @alpha
|
|
499
|
+
export type InsertableContent = Unhydrated<TreeNode> | FactoryContent;
|
|
500
|
+
|
|
501
|
+
// @alpha
|
|
502
|
+
export type InsertableField<TSchema extends ImplicitFieldSchema | UnsafeUnknownSchema> = [
|
|
503
|
+
TSchema
|
|
504
|
+
] extends [ImplicitFieldSchema] ? InsertableTreeFieldFromImplicitField<TSchema> : [TSchema] extends [UnsafeUnknownSchema] ? InsertableContent | undefined : never;
|
|
505
|
+
|
|
464
506
|
// @public
|
|
465
507
|
type InsertableObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFieldSchema>> = FlattenKeys<{
|
|
466
|
-
readonly [Property in keyof T]?: InsertableTreeFieldFromImplicitField<T[Property
|
|
508
|
+
readonly [Property in keyof T]?: InsertableTreeFieldFromImplicitField<T[Property & string]>;
|
|
467
509
|
} & {
|
|
468
|
-
readonly [Property in keyof T as FieldHasDefault<T[Property
|
|
510
|
+
readonly [Property in keyof T as FieldHasDefault<T[Property & string]> extends false ? Property : never]: InsertableTreeFieldFromImplicitField<T[Property & string]>;
|
|
469
511
|
}>;
|
|
470
512
|
|
|
471
513
|
// @public
|
|
@@ -476,28 +518,36 @@ export type InsertableObjectFromSchemaRecordUnsafe<T extends Unenforced<Restrict
|
|
|
476
518
|
};
|
|
477
519
|
|
|
478
520
|
// @public
|
|
479
|
-
export type InsertableTreeFieldFromImplicitField<
|
|
521
|
+
export type InsertableTreeFieldFromImplicitField<TSchemaInput extends ImplicitFieldSchema, TSchema = UnionToIntersection<TSchemaInput>> = [TSchema] extends [FieldSchema<infer Kind, infer Types>] ? ApplyKindInput<InsertableTreeNodeFromImplicitAllowedTypes<Types>, Kind, true> : [TSchema] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TSchema> : never;
|
|
522
|
+
|
|
523
|
+
// @public
|
|
524
|
+
export type InsertableTreeFieldFromImplicitFieldUnsafe<TSchemaInput extends Unenforced<ImplicitFieldSchema>, TSchema = UnionToIntersection<TSchemaInput>> = [TSchema] extends [FieldSchemaUnsafe<infer Kind, infer Types>] ? ApplyKindInput<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind, true> : [TSchema] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema> : never;
|
|
525
|
+
|
|
526
|
+
// @public
|
|
527
|
+
export type InsertableTreeNodeFromAllowedTypes<TList extends AllowedTypes> = TList extends readonly [
|
|
528
|
+
LazyItem<infer TSchema extends TreeNodeSchema>,
|
|
529
|
+
...infer Rest extends AllowedTypes
|
|
530
|
+
] ? InsertableTypedNode<TSchema> | InsertableTreeNodeFromAllowedTypes<Rest> : never;
|
|
480
531
|
|
|
481
532
|
// @public
|
|
482
|
-
export type
|
|
533
|
+
export type InsertableTreeNodeFromAllowedTypesUnsafe<TList extends Unenforced<AllowedTypesUnsafe>> = TList extends readonly [
|
|
534
|
+
LazyItem<infer TSchema extends TreeNodeSchemaUnsafe>,
|
|
535
|
+
...infer Rest extends AllowedTypesUnsafe
|
|
536
|
+
] ? InsertableTypedNodeUnsafe<TSchema> | InsertableTreeNodeFromAllowedTypesUnsafe<Rest> : never;
|
|
483
537
|
|
|
484
538
|
// @public
|
|
485
|
-
export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes
|
|
539
|
+
export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes> = [
|
|
540
|
+
TSchema
|
|
541
|
+
] extends [TreeNodeSchema] ? InsertableTypedNode<TSchema> : [TSchema] extends [AllowedTypes] ? InsertableTreeNodeFromAllowedTypes<TSchema> : never;
|
|
486
542
|
|
|
487
543
|
// @public
|
|
488
|
-
export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends
|
|
544
|
+
export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = [TSchema] extends [TreeNodeSchemaUnsafe] ? InsertableTypedNodeUnsafe<TSchema> : [TSchema] extends [AllowedTypesUnsafe] ? InsertableTreeNodeFromAllowedTypesUnsafe<TSchema> : never;
|
|
489
545
|
|
|
490
546
|
// @public
|
|
491
|
-
export type InsertableTypedNode<T extends TreeNodeSchema>
|
|
492
|
-
implicitlyConstructable: true;
|
|
493
|
-
} ? NodeBuilderData<T> : never) | Unhydrated<NodeFromSchema<T>>;
|
|
547
|
+
export type InsertableTypedNode<TSchema extends TreeNodeSchema, T = UnionToIntersection<TSchema>> = (T extends TreeNodeSchema<string, NodeKind, TreeNode | TreeLeafValue, never, true> ? NodeBuilderData<T> : never) | (T extends TreeNodeSchema ? Unhydrated<TreeNode extends NodeFromSchema<T> ? never : NodeFromSchema<T>> : never);
|
|
494
548
|
|
|
495
549
|
// @public
|
|
496
|
-
type InsertableTypedNodeUnsafe<
|
|
497
|
-
Unhydrated<NodeFromSchemaUnsafe<T>> | (T extends {
|
|
498
|
-
implicitlyConstructable: true;
|
|
499
|
-
} ? NodeBuilderDataUnsafe<T> : never)
|
|
500
|
-
][_InlineTrick];
|
|
550
|
+
type InsertableTypedNodeUnsafe<TSchema extends Unenforced<TreeNodeSchemaUnsafe>, T = UnionToIntersection<TSchema>> = (T extends TreeNodeSchemaUnsafe<string, NodeKind, TreeNode | TreeLeafValue, never, true> ? NodeBuilderDataUnsafe<T> : never) | (T extends TreeNodeSchemaUnsafe ? NodeFromSchemaUnsafe<T> : never);
|
|
501
551
|
|
|
502
552
|
// @public @sealed
|
|
503
553
|
export interface InternalTreeNode extends ErasedType<"@fluidframework/tree.InternalTreeNode"> {
|
|
@@ -508,6 +558,7 @@ declare namespace InternalTypes {
|
|
|
508
558
|
_InlineTrick,
|
|
509
559
|
FlattenKeys,
|
|
510
560
|
ApplyKind,
|
|
561
|
+
ApplyKindInput,
|
|
511
562
|
NodeBuilderData,
|
|
512
563
|
FieldHasDefault,
|
|
513
564
|
TreeArrayNodeBase,
|
|
@@ -530,6 +581,9 @@ declare namespace InternalTypes {
|
|
|
530
581
|
NodeBuilderDataUnsafe,
|
|
531
582
|
NodeFromSchemaUnsafe,
|
|
532
583
|
ReadonlyMapInlined,
|
|
584
|
+
TreeNodeSchemaUnsafe,
|
|
585
|
+
AllowedTypesUnsafe,
|
|
586
|
+
TreeNodeSchemaNonClassUnsafe,
|
|
533
587
|
FlexList,
|
|
534
588
|
FlexListToUnion,
|
|
535
589
|
ExtractItemType,
|
|
@@ -566,6 +620,9 @@ export function isFluidHandle(value: unknown): value is IFluidHandle;
|
|
|
566
620
|
// @public
|
|
567
621
|
export type IsListener<TListener> = TListener extends (...args: any[]) => void ? true : false;
|
|
568
622
|
|
|
623
|
+
// @alpha
|
|
624
|
+
export type IsUnion<T, T2 = T> = T extends unknown ? [T2] extends [T] ? false : true : "error";
|
|
625
|
+
|
|
569
626
|
// @public
|
|
570
627
|
export interface ITelemetryBaseProperties {
|
|
571
628
|
[index: string]: TelemetryBaseEventPropertyType | Tagged<TelemetryBaseEventPropertyType>;
|
|
@@ -695,10 +752,10 @@ export type Myself<M extends IMember = IMember> = M & {
|
|
|
695
752
|
};
|
|
696
753
|
|
|
697
754
|
// @public
|
|
698
|
-
type NodeBuilderData<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind,
|
|
755
|
+
type NodeBuilderData<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, TreeNode | TreeLeafValue, infer TBuild> ? TBuild : never;
|
|
699
756
|
|
|
700
757
|
// @public
|
|
701
|
-
type NodeBuilderDataUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends
|
|
758
|
+
type NodeBuilderDataUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchemaUnsafe<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
|
|
702
759
|
|
|
703
760
|
// @beta @sealed
|
|
704
761
|
export interface NodeChangedData<TNode extends TreeNode = TreeNode> {
|
|
@@ -709,7 +766,7 @@ export interface NodeChangedData<TNode extends TreeNode = TreeNode> {
|
|
|
709
766
|
export type NodeFromSchema<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, infer TNode> ? TNode : never;
|
|
710
767
|
|
|
711
768
|
// @public
|
|
712
|
-
type NodeFromSchemaUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends
|
|
769
|
+
type NodeFromSchemaUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchemaUnsafe<string, NodeKind, infer TNode> ? TNode : never;
|
|
713
770
|
|
|
714
771
|
// @public
|
|
715
772
|
export interface NodeInDocumentConstraint {
|
|
@@ -743,6 +800,13 @@ type ObjectFromSchemaRecordUnsafe<T extends Unenforced<RestrictiveStringRecord<I
|
|
|
743
800
|
// @public
|
|
744
801
|
export type Off = () => void;
|
|
745
802
|
|
|
803
|
+
// @alpha
|
|
804
|
+
export type PopUnion<Union, AsOverloadedFunction = UnionToIntersection<Union extends unknown ? (f: Union) => void : never>> = AsOverloadedFunction extends (a: infer First) => void ? First : never;
|
|
805
|
+
|
|
806
|
+
// @public @sealed
|
|
807
|
+
export interface ReadonlyArrayNode<out T = TreeNode | TreeLeafValue> extends ReadonlyArray<T>, Awaited<TreeNode & WithType<string, NodeKind.Array>> {
|
|
808
|
+
}
|
|
809
|
+
|
|
746
810
|
// @public @sealed
|
|
747
811
|
interface ReadonlyMapInlined<K, T extends Unenforced<ImplicitAllowedTypes>> {
|
|
748
812
|
[Symbol.iterator](): IterableIterator<[K, TreeNodeFromImplicitAllowedTypesUnsafe<T>]>;
|
|
@@ -799,17 +863,17 @@ export const rollback: unique symbol;
|
|
|
799
863
|
// @public @sealed
|
|
800
864
|
export interface RunTransaction {
|
|
801
865
|
<TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult): TResult;
|
|
802
|
-
<TView extends TreeView<
|
|
866
|
+
<TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult): TResult;
|
|
803
867
|
<TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult | typeof rollback): TResult | typeof rollback;
|
|
804
|
-
<TView extends TreeView<
|
|
868
|
+
<TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback): TResult | typeof rollback;
|
|
805
869
|
<TNode extends TreeNode>(node: TNode, transaction: (node: TNode) => void): void;
|
|
806
|
-
<TView extends TreeView<
|
|
870
|
+
<TView extends TreeView<any>>(tree: TView, transaction: (root: TView["root"]) => void): void;
|
|
807
871
|
<TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult, preconditions?: readonly TransactionConstraint[]): TResult;
|
|
808
|
-
<TView extends TreeView<
|
|
872
|
+
<TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult, preconditions?: readonly TransactionConstraint[]): TResult;
|
|
809
873
|
<TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult | typeof rollback, preconditions?: readonly TransactionConstraint[]): TResult | typeof rollback;
|
|
810
|
-
<TView extends TreeView<
|
|
874
|
+
<TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback, preconditions?: readonly TransactionConstraint[]): TResult | typeof rollback;
|
|
811
875
|
<TNode extends TreeNode>(node: TNode, transaction: (node: TNode) => void, preconditions?: readonly TransactionConstraint[]): void;
|
|
812
|
-
<TView extends TreeView<
|
|
876
|
+
<TView extends TreeView<any>>(tree: TView, transaction: (root: TView["root"]) => void, preconditions?: readonly TransactionConstraint[]): void;
|
|
813
877
|
readonly rollback: typeof rollback;
|
|
814
878
|
}
|
|
815
879
|
|
|
@@ -843,7 +907,7 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
|
|
|
843
907
|
readonly null: TreeNodeSchema<"com.fluidframework.leaf.null", NodeKind.Leaf, null, null>;
|
|
844
908
|
readonly number: TreeNodeSchema<"com.fluidframework.leaf.number", NodeKind.Leaf, number, number>;
|
|
845
909
|
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>;
|
|
846
|
-
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]
|
|
910
|
+
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>;
|
|
847
911
|
optional<const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider">): FieldSchema<FieldKind.Optional, T, TCustomMetadata>;
|
|
848
912
|
optionalRecursive<const T extends Unenforced<ImplicitAllowedTypes>>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchemaUnsafe<FieldKind.Optional, T>;
|
|
849
913
|
required<const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider">): FieldSchema<FieldKind.Required, T, TCustomMetadata>;
|
|
@@ -891,7 +955,7 @@ export type SharedTreeOptions = Partial<ICodecOptions> & Partial<SharedTreeForma
|
|
|
891
955
|
// @alpha
|
|
892
956
|
export function singletonSchema<TScope extends string, TName extends string | number>(factory: SchemaFactory<TScope, TName>, name: TName): TreeNodeSchemaClass<ScopedSchemaName<TScope, TName>, NodeKind.Object, TreeNode & {
|
|
893
957
|
readonly value: TName;
|
|
894
|
-
},
|
|
958
|
+
}, Record<string, never>, true, unknown> & (new (data?: InternalTreeNode | Record<string, never>) => TreeNode & {
|
|
895
959
|
readonly value: TName;
|
|
896
960
|
});
|
|
897
961
|
|
|
@@ -922,7 +986,7 @@ interface TreeApi extends TreeNodeApi {
|
|
|
922
986
|
}
|
|
923
987
|
|
|
924
988
|
// @public @sealed
|
|
925
|
-
export interface TreeArrayNode<TAllowedTypes extends ImplicitAllowedTypes = ImplicitAllowedTypes> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypes<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypes<TAllowedTypes
|
|
989
|
+
export interface TreeArrayNode<TAllowedTypes extends ImplicitAllowedTypes = ImplicitAllowedTypes> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypes<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypes<TAllowedTypes>> {
|
|
926
990
|
}
|
|
927
991
|
|
|
928
992
|
// @public
|
|
@@ -931,7 +995,7 @@ export const TreeArrayNode: {
|
|
|
931
995
|
};
|
|
932
996
|
|
|
933
997
|
// @public @sealed
|
|
934
|
-
interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom> extends
|
|
998
|
+
interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom = ReadonlyArrayNode> extends ReadonlyArrayNode<T> {
|
|
935
999
|
insertAt(index: number, ...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
936
1000
|
insertAtEnd(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
937
1001
|
insertAtStart(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
@@ -953,7 +1017,7 @@ interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom> extends ReadonlyArray<
|
|
|
953
1017
|
}
|
|
954
1018
|
|
|
955
1019
|
// @public @sealed
|
|
956
|
-
export interface TreeArrayNodeUnsafe<TAllowedTypes extends Unenforced<ImplicitAllowedTypes>> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes
|
|
1020
|
+
export interface TreeArrayNodeUnsafe<TAllowedTypes extends Unenforced<ImplicitAllowedTypes>> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>> {
|
|
957
1021
|
}
|
|
958
1022
|
|
|
959
1023
|
// @beta @sealed
|
|
@@ -993,10 +1057,10 @@ export enum TreeCompressionStrategy {
|
|
|
993
1057
|
}
|
|
994
1058
|
|
|
995
1059
|
// @public
|
|
996
|
-
export type TreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypes<Types>, Kind
|
|
1060
|
+
export type TreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypes<Types>, Kind> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypes<TSchema> : TreeNode | TreeLeafValue | undefined;
|
|
997
1061
|
|
|
998
1062
|
// @public
|
|
999
|
-
type TreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind
|
|
1063
|
+
type TreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypesUnsafe<TSchema> : unknown;
|
|
1000
1064
|
|
|
1001
1065
|
// @public
|
|
1002
1066
|
export type TreeLeafValue = number | string | boolean | IFluidHandle | null;
|
|
@@ -1042,13 +1106,19 @@ export interface TreeNodeApi {
|
|
|
1042
1106
|
export type TreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
|
|
1043
1107
|
|
|
1044
1108
|
// @public
|
|
1045
|
-
type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends
|
|
1109
|
+
type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends TreeNodeSchemaUnsafe ? NodeFromSchemaUnsafe<TSchema> : TSchema extends AllowedTypesUnsafe ? NodeFromSchemaUnsafe<FlexListToUnion<TSchema>> : unknown;
|
|
1046
1110
|
|
|
1047
1111
|
// @public @sealed
|
|
1048
|
-
export type TreeNodeSchema<Name extends string = string, Kind extends NodeKind = NodeKind, TNode =
|
|
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>;
|
|
1049
1113
|
|
|
1050
1114
|
// @public @sealed
|
|
1051
|
-
export interface TreeNodeSchemaClass<out Name extends string = string, out Kind extends NodeKind = NodeKind, out TNode =
|
|
1115
|
+
export interface TreeNodeSchemaClass<out Name extends string = string, out Kind extends NodeKind = NodeKind, out TNode extends TreeNode | TreeLeafValue = TreeNode | TreeLeafValue, in TInsertable = never, out ImplicitlyConstructable extends boolean = boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
|
|
1116
|
+
// @sealed
|
|
1117
|
+
new (data: TInsertable | InternalTreeNode): Unhydrated<TNode>;
|
|
1118
|
+
}
|
|
1119
|
+
|
|
1120
|
+
// @public
|
|
1121
|
+
export interface TreeNodeSchemaClassUnsafe<out Name extends string, out Kind extends NodeKind, out TNode extends Unenforced<TreeNode | TreeLeafValue>, in TInsertable, out ImplicitlyConstructable extends boolean, out Info> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
|
|
1052
1122
|
// @sealed
|
|
1053
1123
|
new (data: TInsertable | InternalTreeNode): Unhydrated<TNode>;
|
|
1054
1124
|
}
|
|
@@ -1064,11 +1134,20 @@ export interface TreeNodeSchemaCore<out Name extends string, out Kind extends No
|
|
|
1064
1134
|
}
|
|
1065
1135
|
|
|
1066
1136
|
// @public @sealed
|
|
1067
|
-
export interface TreeNodeSchemaNonClass<out Name extends string = string, out Kind extends NodeKind = NodeKind, out TNode =
|
|
1137
|
+
export interface TreeNodeSchemaNonClass<out Name extends string = string, out Kind extends NodeKind = NodeKind, out TNode extends TreeNode | TreeLeafValue = TreeNode | TreeLeafValue, in TInsertable = never, out ImplicitlyConstructable extends boolean = boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
|
|
1138
|
+
// (undocumented)
|
|
1139
|
+
create(data: TInsertable): TNode;
|
|
1140
|
+
}
|
|
1141
|
+
|
|
1142
|
+
// @public
|
|
1143
|
+
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> {
|
|
1068
1144
|
// (undocumented)
|
|
1069
1145
|
create(data: TInsertable): TNode;
|
|
1070
1146
|
}
|
|
1071
1147
|
|
|
1148
|
+
// @public
|
|
1149
|
+
type TreeNodeSchemaUnsafe<Name extends string = string, Kind extends NodeKind = NodeKind, TNode extends Unenforced<TreeNode | TreeLeafValue> = unknown, TBuild = never, ImplicitlyConstructable extends boolean = boolean, Info = unknown> = TreeNodeSchemaClassUnsafe<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info> | TreeNodeSchemaNonClassUnsafe<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info>;
|
|
1150
|
+
|
|
1072
1151
|
// @public
|
|
1073
1152
|
export type TreeObjectNode<T extends RestrictiveStringRecord<ImplicitFieldSchema>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecord<T> & WithType<TypeName, NodeKind.Object, T>;
|
|
1074
1153
|
|
|
@@ -1084,7 +1163,7 @@ export enum TreeStatus {
|
|
|
1084
1163
|
}
|
|
1085
1164
|
|
|
1086
1165
|
// @public @sealed
|
|
1087
|
-
export interface TreeView<TSchema extends ImplicitFieldSchema> extends IDisposable {
|
|
1166
|
+
export interface TreeView<in out TSchema extends ImplicitFieldSchema> extends IDisposable {
|
|
1088
1167
|
readonly compatibility: SchemaCompatibilityStatus;
|
|
1089
1168
|
readonly events: Listenable<TreeViewEvents>;
|
|
1090
1169
|
initialize(content: InsertableTreeFieldFromImplicitField<TSchema>): void;
|
|
@@ -1094,8 +1173,17 @@ export interface TreeView<TSchema extends ImplicitFieldSchema> extends IDisposab
|
|
|
1094
1173
|
upgradeSchema(): void;
|
|
1095
1174
|
}
|
|
1096
1175
|
|
|
1176
|
+
// @alpha
|
|
1177
|
+
export interface TreeViewAlpha<in out TSchema extends ImplicitFieldSchema | UnsafeUnknownSchema> extends Omit<TreeView<TSchema extends ImplicitFieldSchema ? TSchema : ImplicitFieldSchema>, "root" | "initialize"> {
|
|
1178
|
+
// (undocumented)
|
|
1179
|
+
initialize(content: InsertableField<TSchema>): void;
|
|
1180
|
+
// (undocumented)
|
|
1181
|
+
get root(): TSchema extends ImplicitFieldSchema ? TreeFieldFromImplicitField<TSchema> : TreeLeafValue | TreeNode;
|
|
1182
|
+
set root(newRoot: InsertableField<TSchema>);
|
|
1183
|
+
}
|
|
1184
|
+
|
|
1097
1185
|
// @public @sealed
|
|
1098
|
-
export class TreeViewConfiguration<TSchema extends ImplicitFieldSchema = ImplicitFieldSchema> implements Required<ITreeViewConfiguration<TSchema>> {
|
|
1186
|
+
export class TreeViewConfiguration<const TSchema extends ImplicitFieldSchema = ImplicitFieldSchema> implements Required<ITreeViewConfiguration<TSchema>> {
|
|
1099
1187
|
constructor(props: ITreeViewConfiguration<TSchema>);
|
|
1100
1188
|
readonly enableSchemaValidation: boolean;
|
|
1101
1189
|
readonly preventAmbiguity: boolean;
|
|
@@ -1114,9 +1202,6 @@ export interface TreeViewEvents {
|
|
|
1114
1202
|
// @alpha
|
|
1115
1203
|
export const typeboxValidator: JsonValidator;
|
|
1116
1204
|
|
|
1117
|
-
// @alpha
|
|
1118
|
-
export function typedObjectValues<TKey extends string, TValues>(object: Record<TKey, TValues>): TValues[];
|
|
1119
|
-
|
|
1120
1205
|
// @public @deprecated
|
|
1121
1206
|
const typeNameSymbol: unique symbol;
|
|
1122
1207
|
|
|
@@ -1129,6 +1214,18 @@ export type Unenforced<_DesiredExtendsConstraint> = unknown;
|
|
|
1129
1214
|
// @public
|
|
1130
1215
|
export type Unhydrated<T> = T;
|
|
1131
1216
|
|
|
1217
|
+
// @public
|
|
1218
|
+
export type UnionToIntersection<T> = (T extends T ? (k: T) => unknown : never) extends (k: infer U) => unknown ? U : never;
|
|
1219
|
+
|
|
1220
|
+
// @alpha
|
|
1221
|
+
export type UnionToTuple<Union, A extends unknown[] = [], First = PopUnion<Union>> = IsUnion<Union> extends true ? UnionToTuple<Exclude<Union, First>, [First, ...A]> : [Union, ...A];
|
|
1222
|
+
|
|
1223
|
+
// @alpha
|
|
1224
|
+
export const UnsafeUnknownSchema: unique symbol;
|
|
1225
|
+
|
|
1226
|
+
// @alpha
|
|
1227
|
+
export type UnsafeUnknownSchema = typeof UnsafeUnknownSchema;
|
|
1228
|
+
|
|
1132
1229
|
// @public
|
|
1133
1230
|
export type ValidateRecursiveSchema<T extends TreeNodeSchemaClass<string, NodeKind.Array | NodeKind.Map | NodeKind.Object, TreeNode & WithType<T["identifier"], T["kind"]>, {
|
|
1134
1231
|
[NodeKind.Object]: T["info"] extends RestrictiveStringRecord<ImplicitFieldSchema> ? InsertableObjectFromSchemaRecord<T["info"]> : unknown;
|
|
@@ -1149,7 +1246,7 @@ export interface ViewableTree {
|
|
|
1149
1246
|
export interface WithType<out TName extends string = string, out TKind extends NodeKind = NodeKind, out TInfo = unknown> {
|
|
1150
1247
|
// @deprecated
|
|
1151
1248
|
get [typeNameSymbol](): TName;
|
|
1152
|
-
get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind,
|
|
1249
|
+
get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind, TreeNode | TreeLeafValue, never, boolean, TInfo>;
|
|
1153
1250
|
}
|
|
1154
1251
|
|
|
1155
1252
|
```
|