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
|
@@ -8,12 +8,20 @@
|
|
|
8
8
|
export type AllowedTypes = readonly LazyItem<TreeNodeSchema>[];
|
|
9
9
|
|
|
10
10
|
// @public
|
|
11
|
-
type
|
|
11
|
+
type AllowedTypesUnsafe = readonly LazyItem<TreeNodeSchemaUnsafe>[];
|
|
12
|
+
|
|
13
|
+
// @public
|
|
14
|
+
type ApplyKind<T, Kind extends FieldKind> = {
|
|
12
15
|
[FieldKind.Required]: T;
|
|
13
16
|
[FieldKind.Optional]: T | undefined;
|
|
14
|
-
[FieldKind.Identifier]:
|
|
17
|
+
[FieldKind.Identifier]: T;
|
|
15
18
|
}[Kind];
|
|
16
19
|
|
|
20
|
+
// @public
|
|
21
|
+
type ApplyKindInput<T, Kind extends FieldKind, DefaultsAreOptional extends boolean> = [
|
|
22
|
+
Kind
|
|
23
|
+
] extends [FieldKind.Required] ? T : [Kind] extends [FieldKind.Optional] ? T | undefined : [Kind] extends [FieldKind.Identifier] ? DefaultsAreOptional extends true ? T | undefined : T : never;
|
|
24
|
+
|
|
17
25
|
// @public
|
|
18
26
|
export enum AttachState {
|
|
19
27
|
Attached = "Attached",
|
|
@@ -433,11 +441,14 @@ export type InitialObjects<T extends ContainerSchema> = {
|
|
|
433
441
|
// @public
|
|
434
442
|
type _InlineTrick = 0;
|
|
435
443
|
|
|
444
|
+
// @public
|
|
445
|
+
export type Input<T extends never> = T;
|
|
446
|
+
|
|
436
447
|
// @public
|
|
437
448
|
type InsertableObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFieldSchema>> = FlattenKeys<{
|
|
438
|
-
readonly [Property in keyof T]?: InsertableTreeFieldFromImplicitField<T[Property
|
|
449
|
+
readonly [Property in keyof T]?: InsertableTreeFieldFromImplicitField<T[Property & string]>;
|
|
439
450
|
} & {
|
|
440
|
-
readonly [Property in keyof T as FieldHasDefault<T[Property
|
|
451
|
+
readonly [Property in keyof T as FieldHasDefault<T[Property & string]> extends false ? Property : never]: InsertableTreeFieldFromImplicitField<T[Property & string]>;
|
|
441
452
|
}>;
|
|
442
453
|
|
|
443
454
|
// @public
|
|
@@ -448,28 +459,36 @@ export type InsertableObjectFromSchemaRecordUnsafe<T extends Unenforced<Restrict
|
|
|
448
459
|
};
|
|
449
460
|
|
|
450
461
|
// @public
|
|
451
|
-
export type InsertableTreeFieldFromImplicitField<
|
|
462
|
+
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;
|
|
463
|
+
|
|
464
|
+
// @public
|
|
465
|
+
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;
|
|
466
|
+
|
|
467
|
+
// @public
|
|
468
|
+
export type InsertableTreeNodeFromAllowedTypes<TList extends AllowedTypes> = TList extends readonly [
|
|
469
|
+
LazyItem<infer TSchema extends TreeNodeSchema>,
|
|
470
|
+
...infer Rest extends AllowedTypes
|
|
471
|
+
] ? InsertableTypedNode<TSchema> | InsertableTreeNodeFromAllowedTypes<Rest> : never;
|
|
452
472
|
|
|
453
473
|
// @public
|
|
454
|
-
export type
|
|
474
|
+
export type InsertableTreeNodeFromAllowedTypesUnsafe<TList extends Unenforced<AllowedTypesUnsafe>> = TList extends readonly [
|
|
475
|
+
LazyItem<infer TSchema extends TreeNodeSchemaUnsafe>,
|
|
476
|
+
...infer Rest extends AllowedTypesUnsafe
|
|
477
|
+
] ? InsertableTypedNodeUnsafe<TSchema> | InsertableTreeNodeFromAllowedTypesUnsafe<Rest> : never;
|
|
455
478
|
|
|
456
479
|
// @public
|
|
457
|
-
export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes
|
|
480
|
+
export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes> = [
|
|
481
|
+
TSchema
|
|
482
|
+
] extends [TreeNodeSchema] ? InsertableTypedNode<TSchema> : [TSchema] extends [AllowedTypes] ? InsertableTreeNodeFromAllowedTypes<TSchema> : never;
|
|
458
483
|
|
|
459
484
|
// @public
|
|
460
|
-
export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends
|
|
485
|
+
export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = [TSchema] extends [TreeNodeSchemaUnsafe] ? InsertableTypedNodeUnsafe<TSchema> : [TSchema] extends [AllowedTypesUnsafe] ? InsertableTreeNodeFromAllowedTypesUnsafe<TSchema> : never;
|
|
461
486
|
|
|
462
487
|
// @public
|
|
463
|
-
export type InsertableTypedNode<T extends TreeNodeSchema>
|
|
464
|
-
implicitlyConstructable: true;
|
|
465
|
-
} ? NodeBuilderData<T> : never) | Unhydrated<NodeFromSchema<T>>;
|
|
488
|
+
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);
|
|
466
489
|
|
|
467
490
|
// @public
|
|
468
|
-
type InsertableTypedNodeUnsafe<
|
|
469
|
-
Unhydrated<NodeFromSchemaUnsafe<T>> | (T extends {
|
|
470
|
-
implicitlyConstructable: true;
|
|
471
|
-
} ? NodeBuilderDataUnsafe<T> : never)
|
|
472
|
-
][_InlineTrick];
|
|
491
|
+
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);
|
|
473
492
|
|
|
474
493
|
export { InteriorSequencePlace }
|
|
475
494
|
|
|
@@ -482,6 +501,7 @@ declare namespace InternalTypes {
|
|
|
482
501
|
_InlineTrick,
|
|
483
502
|
FlattenKeys,
|
|
484
503
|
ApplyKind,
|
|
504
|
+
ApplyKindInput,
|
|
485
505
|
NodeBuilderData,
|
|
486
506
|
FieldHasDefault,
|
|
487
507
|
TreeArrayNodeBase,
|
|
@@ -504,6 +524,9 @@ declare namespace InternalTypes {
|
|
|
504
524
|
NodeBuilderDataUnsafe,
|
|
505
525
|
NodeFromSchemaUnsafe,
|
|
506
526
|
ReadonlyMapInlined,
|
|
527
|
+
TreeNodeSchemaUnsafe,
|
|
528
|
+
AllowedTypesUnsafe,
|
|
529
|
+
TreeNodeSchemaNonClassUnsafe,
|
|
507
530
|
FlexList,
|
|
508
531
|
FlexListToUnion,
|
|
509
532
|
ExtractItemType,
|
|
@@ -600,16 +623,16 @@ export type Myself<M extends IMember = IMember> = M & {
|
|
|
600
623
|
};
|
|
601
624
|
|
|
602
625
|
// @public
|
|
603
|
-
type NodeBuilderData<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind,
|
|
626
|
+
type NodeBuilderData<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, TreeNode | TreeLeafValue, infer TBuild> ? TBuild : never;
|
|
604
627
|
|
|
605
628
|
// @public
|
|
606
|
-
type NodeBuilderDataUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends
|
|
629
|
+
type NodeBuilderDataUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchemaUnsafe<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
|
|
607
630
|
|
|
608
631
|
// @public
|
|
609
632
|
export type NodeFromSchema<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, infer TNode> ? TNode : never;
|
|
610
633
|
|
|
611
634
|
// @public
|
|
612
|
-
type NodeFromSchemaUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends
|
|
635
|
+
type NodeFromSchemaUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchemaUnsafe<string, NodeKind, infer TNode> ? TNode : never;
|
|
613
636
|
|
|
614
637
|
// @public
|
|
615
638
|
export interface NodeInDocumentConstraint {
|
|
@@ -640,6 +663,10 @@ type ObjectFromSchemaRecordUnsafe<T extends Unenforced<RestrictiveStringRecord<I
|
|
|
640
663
|
// @public
|
|
641
664
|
export type Off = () => void;
|
|
642
665
|
|
|
666
|
+
// @public @sealed
|
|
667
|
+
export interface ReadonlyArrayNode<out T = TreeNode | TreeLeafValue> extends ReadonlyArray<T>, Awaited<TreeNode & WithType<string, NodeKind.Array>> {
|
|
668
|
+
}
|
|
669
|
+
|
|
643
670
|
// @public @sealed
|
|
644
671
|
interface ReadonlyMapInlined<K, T extends Unenforced<ImplicitAllowedTypes>> {
|
|
645
672
|
[Symbol.iterator](): IterableIterator<[K, TreeNodeFromImplicitAllowedTypesUnsafe<T>]>;
|
|
@@ -696,17 +723,17 @@ export const rollback: unique symbol;
|
|
|
696
723
|
// @public @sealed
|
|
697
724
|
export interface RunTransaction {
|
|
698
725
|
<TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult): TResult;
|
|
699
|
-
<TView extends TreeView<
|
|
726
|
+
<TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult): TResult;
|
|
700
727
|
<TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult | typeof rollback): TResult | typeof rollback;
|
|
701
|
-
<TView extends TreeView<
|
|
728
|
+
<TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback): TResult | typeof rollback;
|
|
702
729
|
<TNode extends TreeNode>(node: TNode, transaction: (node: TNode) => void): void;
|
|
703
|
-
<TView extends TreeView<
|
|
730
|
+
<TView extends TreeView<any>>(tree: TView, transaction: (root: TView["root"]) => void): void;
|
|
704
731
|
<TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult, preconditions?: readonly TransactionConstraint[]): TResult;
|
|
705
|
-
<TView extends TreeView<
|
|
732
|
+
<TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult, preconditions?: readonly TransactionConstraint[]): TResult;
|
|
706
733
|
<TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult | typeof rollback, preconditions?: readonly TransactionConstraint[]): TResult | typeof rollback;
|
|
707
|
-
<TView extends TreeView<
|
|
734
|
+
<TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback, preconditions?: readonly TransactionConstraint[]): TResult | typeof rollback;
|
|
708
735
|
<TNode extends TreeNode>(node: TNode, transaction: (node: TNode) => void, preconditions?: readonly TransactionConstraint[]): void;
|
|
709
|
-
<TView extends TreeView<
|
|
736
|
+
<TView extends TreeView<any>>(tree: TView, transaction: (root: TView["root"]) => void, preconditions?: readonly TransactionConstraint[]): void;
|
|
710
737
|
readonly rollback: typeof rollback;
|
|
711
738
|
}
|
|
712
739
|
|
|
@@ -740,7 +767,7 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
|
|
|
740
767
|
readonly null: TreeNodeSchema<"com.fluidframework.leaf.null", NodeKind.Leaf, null, null>;
|
|
741
768
|
readonly number: TreeNodeSchema<"com.fluidframework.leaf.number", NodeKind.Leaf, number, number>;
|
|
742
769
|
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>;
|
|
743
|
-
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]
|
|
770
|
+
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>;
|
|
744
771
|
optional<const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider">): FieldSchema<FieldKind.Optional, T, TCustomMetadata>;
|
|
745
772
|
optionalRecursive<const T extends Unenforced<ImplicitAllowedTypes>>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchemaUnsafe<FieldKind.Optional, T>;
|
|
746
773
|
required<const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider">): FieldSchema<FieldKind.Required, T, TCustomMetadata>;
|
|
@@ -792,7 +819,7 @@ interface TreeApi extends TreeNodeApi {
|
|
|
792
819
|
}
|
|
793
820
|
|
|
794
821
|
// @public @sealed
|
|
795
|
-
export interface TreeArrayNode<TAllowedTypes extends ImplicitAllowedTypes = ImplicitAllowedTypes> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypes<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypes<TAllowedTypes
|
|
822
|
+
export interface TreeArrayNode<TAllowedTypes extends ImplicitAllowedTypes = ImplicitAllowedTypes> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypes<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypes<TAllowedTypes>> {
|
|
796
823
|
}
|
|
797
824
|
|
|
798
825
|
// @public
|
|
@@ -801,7 +828,7 @@ export const TreeArrayNode: {
|
|
|
801
828
|
};
|
|
802
829
|
|
|
803
830
|
// @public @sealed
|
|
804
|
-
interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom> extends
|
|
831
|
+
interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom = ReadonlyArrayNode> extends ReadonlyArrayNode<T> {
|
|
805
832
|
insertAt(index: number, ...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
806
833
|
insertAtEnd(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
807
834
|
insertAtStart(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
@@ -823,7 +850,7 @@ interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom> extends ReadonlyArray<
|
|
|
823
850
|
}
|
|
824
851
|
|
|
825
852
|
// @public @sealed
|
|
826
|
-
export interface TreeArrayNodeUnsafe<TAllowedTypes extends Unenforced<ImplicitAllowedTypes>> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes
|
|
853
|
+
export interface TreeArrayNodeUnsafe<TAllowedTypes extends Unenforced<ImplicitAllowedTypes>> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>> {
|
|
827
854
|
}
|
|
828
855
|
|
|
829
856
|
// @public @sealed
|
|
@@ -833,10 +860,10 @@ export interface TreeChangeEvents {
|
|
|
833
860
|
}
|
|
834
861
|
|
|
835
862
|
// @public
|
|
836
|
-
export type TreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypes<Types>, Kind
|
|
863
|
+
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;
|
|
837
864
|
|
|
838
865
|
// @public
|
|
839
|
-
type TreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind
|
|
866
|
+
type TreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypesUnsafe<TSchema> : unknown;
|
|
840
867
|
|
|
841
868
|
// @public
|
|
842
869
|
export type TreeLeafValue = number | string | boolean | IFluidHandle | null;
|
|
@@ -882,13 +909,19 @@ export interface TreeNodeApi {
|
|
|
882
909
|
export type TreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
|
|
883
910
|
|
|
884
911
|
// @public
|
|
885
|
-
type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends
|
|
912
|
+
type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends TreeNodeSchemaUnsafe ? NodeFromSchemaUnsafe<TSchema> : TSchema extends AllowedTypesUnsafe ? NodeFromSchemaUnsafe<FlexListToUnion<TSchema>> : unknown;
|
|
886
913
|
|
|
887
914
|
// @public @sealed
|
|
888
|
-
export type TreeNodeSchema<Name extends string = string, Kind extends NodeKind = NodeKind, TNode =
|
|
915
|
+
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>;
|
|
889
916
|
|
|
890
917
|
// @public @sealed
|
|
891
|
-
export interface TreeNodeSchemaClass<out Name extends string = string, out Kind extends NodeKind = NodeKind, out TNode =
|
|
918
|
+
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> {
|
|
919
|
+
// @sealed
|
|
920
|
+
new (data: TInsertable | InternalTreeNode): Unhydrated<TNode>;
|
|
921
|
+
}
|
|
922
|
+
|
|
923
|
+
// @public
|
|
924
|
+
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> {
|
|
892
925
|
// @sealed
|
|
893
926
|
new (data: TInsertable | InternalTreeNode): Unhydrated<TNode>;
|
|
894
927
|
}
|
|
@@ -904,11 +937,20 @@ export interface TreeNodeSchemaCore<out Name extends string, out Kind extends No
|
|
|
904
937
|
}
|
|
905
938
|
|
|
906
939
|
// @public @sealed
|
|
907
|
-
export interface TreeNodeSchemaNonClass<out Name extends string = string, out Kind extends NodeKind = NodeKind, out TNode =
|
|
940
|
+
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> {
|
|
908
941
|
// (undocumented)
|
|
909
942
|
create(data: TInsertable): TNode;
|
|
910
943
|
}
|
|
911
944
|
|
|
945
|
+
// @public
|
|
946
|
+
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> {
|
|
947
|
+
// (undocumented)
|
|
948
|
+
create(data: TInsertable): TNode;
|
|
949
|
+
}
|
|
950
|
+
|
|
951
|
+
// @public
|
|
952
|
+
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>;
|
|
953
|
+
|
|
912
954
|
// @public
|
|
913
955
|
export type TreeObjectNode<T extends RestrictiveStringRecord<ImplicitFieldSchema>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecord<T> & WithType<TypeName, NodeKind.Object, T>;
|
|
914
956
|
|
|
@@ -924,7 +966,7 @@ export enum TreeStatus {
|
|
|
924
966
|
}
|
|
925
967
|
|
|
926
968
|
// @public @sealed
|
|
927
|
-
export interface TreeView<TSchema extends ImplicitFieldSchema> extends IDisposable {
|
|
969
|
+
export interface TreeView<in out TSchema extends ImplicitFieldSchema> extends IDisposable {
|
|
928
970
|
readonly compatibility: SchemaCompatibilityStatus;
|
|
929
971
|
readonly events: Listenable<TreeViewEvents>;
|
|
930
972
|
initialize(content: InsertableTreeFieldFromImplicitField<TSchema>): void;
|
|
@@ -935,7 +977,7 @@ export interface TreeView<TSchema extends ImplicitFieldSchema> extends IDisposab
|
|
|
935
977
|
}
|
|
936
978
|
|
|
937
979
|
// @public @sealed
|
|
938
|
-
export class TreeViewConfiguration<TSchema extends ImplicitFieldSchema = ImplicitFieldSchema> implements Required<ITreeViewConfiguration<TSchema>> {
|
|
980
|
+
export class TreeViewConfiguration<const TSchema extends ImplicitFieldSchema = ImplicitFieldSchema> implements Required<ITreeViewConfiguration<TSchema>> {
|
|
939
981
|
constructor(props: ITreeViewConfiguration<TSchema>);
|
|
940
982
|
readonly enableSchemaValidation: boolean;
|
|
941
983
|
readonly preventAmbiguity: boolean;
|
|
@@ -963,6 +1005,9 @@ export type Unenforced<_DesiredExtendsConstraint> = unknown;
|
|
|
963
1005
|
// @public
|
|
964
1006
|
export type Unhydrated<T> = T;
|
|
965
1007
|
|
|
1008
|
+
// @public
|
|
1009
|
+
export type UnionToIntersection<T> = (T extends T ? (k: T) => unknown : never) extends (k: infer U) => unknown ? U : never;
|
|
1010
|
+
|
|
966
1011
|
// @public
|
|
967
1012
|
export type ValidateRecursiveSchema<T extends TreeNodeSchemaClass<string, NodeKind.Array | NodeKind.Map | NodeKind.Object, TreeNode & WithType<T["identifier"], T["kind"]>, {
|
|
968
1013
|
[NodeKind.Object]: T["info"] extends RestrictiveStringRecord<ImplicitFieldSchema> ? InsertableObjectFromSchemaRecord<T["info"]> : unknown;
|
|
@@ -983,7 +1028,7 @@ export interface ViewableTree {
|
|
|
983
1028
|
export interface WithType<out TName extends string = string, out TKind extends NodeKind = NodeKind, out TInfo = unknown> {
|
|
984
1029
|
// @deprecated
|
|
985
1030
|
get [typeNameSymbol](): TName;
|
|
986
|
-
get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind,
|
|
1031
|
+
get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind, TreeNode | TreeLeafValue, never, boolean, TInfo>;
|
|
987
1032
|
}
|
|
988
1033
|
|
|
989
1034
|
```
|
|
@@ -8,12 +8,20 @@
|
|
|
8
8
|
export type AllowedTypes = readonly LazyItem<TreeNodeSchema>[];
|
|
9
9
|
|
|
10
10
|
// @public
|
|
11
|
-
type
|
|
11
|
+
type AllowedTypesUnsafe = readonly LazyItem<TreeNodeSchemaUnsafe>[];
|
|
12
|
+
|
|
13
|
+
// @public
|
|
14
|
+
type ApplyKind<T, Kind extends FieldKind> = {
|
|
12
15
|
[FieldKind.Required]: T;
|
|
13
16
|
[FieldKind.Optional]: T | undefined;
|
|
14
|
-
[FieldKind.Identifier]:
|
|
17
|
+
[FieldKind.Identifier]: T;
|
|
15
18
|
}[Kind];
|
|
16
19
|
|
|
20
|
+
// @public
|
|
21
|
+
type ApplyKindInput<T, Kind extends FieldKind, DefaultsAreOptional extends boolean> = [
|
|
22
|
+
Kind
|
|
23
|
+
] extends [FieldKind.Required] ? T : [Kind] extends [FieldKind.Optional] ? T | undefined : [Kind] extends [FieldKind.Identifier] ? DefaultsAreOptional extends true ? T | undefined : T : never;
|
|
24
|
+
|
|
17
25
|
// @public
|
|
18
26
|
export enum AttachState {
|
|
19
27
|
Attached = "Attached",
|
|
@@ -405,11 +413,14 @@ export type InitialObjects<T extends ContainerSchema> = {
|
|
|
405
413
|
// @public
|
|
406
414
|
type _InlineTrick = 0;
|
|
407
415
|
|
|
416
|
+
// @public
|
|
417
|
+
export type Input<T extends never> = T;
|
|
418
|
+
|
|
408
419
|
// @public
|
|
409
420
|
type InsertableObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFieldSchema>> = FlattenKeys<{
|
|
410
|
-
readonly [Property in keyof T]?: InsertableTreeFieldFromImplicitField<T[Property
|
|
421
|
+
readonly [Property in keyof T]?: InsertableTreeFieldFromImplicitField<T[Property & string]>;
|
|
411
422
|
} & {
|
|
412
|
-
readonly [Property in keyof T as FieldHasDefault<T[Property
|
|
423
|
+
readonly [Property in keyof T as FieldHasDefault<T[Property & string]> extends false ? Property : never]: InsertableTreeFieldFromImplicitField<T[Property & string]>;
|
|
413
424
|
}>;
|
|
414
425
|
|
|
415
426
|
// @public
|
|
@@ -420,28 +431,36 @@ export type InsertableObjectFromSchemaRecordUnsafe<T extends Unenforced<Restrict
|
|
|
420
431
|
};
|
|
421
432
|
|
|
422
433
|
// @public
|
|
423
|
-
export type InsertableTreeFieldFromImplicitField<
|
|
434
|
+
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;
|
|
435
|
+
|
|
436
|
+
// @public
|
|
437
|
+
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;
|
|
438
|
+
|
|
439
|
+
// @public
|
|
440
|
+
export type InsertableTreeNodeFromAllowedTypes<TList extends AllowedTypes> = TList extends readonly [
|
|
441
|
+
LazyItem<infer TSchema extends TreeNodeSchema>,
|
|
442
|
+
...infer Rest extends AllowedTypes
|
|
443
|
+
] ? InsertableTypedNode<TSchema> | InsertableTreeNodeFromAllowedTypes<Rest> : never;
|
|
424
444
|
|
|
425
445
|
// @public
|
|
426
|
-
export type
|
|
446
|
+
export type InsertableTreeNodeFromAllowedTypesUnsafe<TList extends Unenforced<AllowedTypesUnsafe>> = TList extends readonly [
|
|
447
|
+
LazyItem<infer TSchema extends TreeNodeSchemaUnsafe>,
|
|
448
|
+
...infer Rest extends AllowedTypesUnsafe
|
|
449
|
+
] ? InsertableTypedNodeUnsafe<TSchema> | InsertableTreeNodeFromAllowedTypesUnsafe<Rest> : never;
|
|
427
450
|
|
|
428
451
|
// @public
|
|
429
|
-
export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes
|
|
452
|
+
export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes> = [
|
|
453
|
+
TSchema
|
|
454
|
+
] extends [TreeNodeSchema] ? InsertableTypedNode<TSchema> : [TSchema] extends [AllowedTypes] ? InsertableTreeNodeFromAllowedTypes<TSchema> : never;
|
|
430
455
|
|
|
431
456
|
// @public
|
|
432
|
-
export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends
|
|
457
|
+
export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = [TSchema] extends [TreeNodeSchemaUnsafe] ? InsertableTypedNodeUnsafe<TSchema> : [TSchema] extends [AllowedTypesUnsafe] ? InsertableTreeNodeFromAllowedTypesUnsafe<TSchema> : never;
|
|
433
458
|
|
|
434
459
|
// @public
|
|
435
|
-
export type InsertableTypedNode<T extends TreeNodeSchema>
|
|
436
|
-
implicitlyConstructable: true;
|
|
437
|
-
} ? NodeBuilderData<T> : never) | Unhydrated<NodeFromSchema<T>>;
|
|
460
|
+
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);
|
|
438
461
|
|
|
439
462
|
// @public
|
|
440
|
-
type InsertableTypedNodeUnsafe<
|
|
441
|
-
Unhydrated<NodeFromSchemaUnsafe<T>> | (T extends {
|
|
442
|
-
implicitlyConstructable: true;
|
|
443
|
-
} ? NodeBuilderDataUnsafe<T> : never)
|
|
444
|
-
][_InlineTrick];
|
|
463
|
+
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);
|
|
445
464
|
|
|
446
465
|
// @public @sealed
|
|
447
466
|
export interface InternalTreeNode extends ErasedType<"@fluidframework/tree.InternalTreeNode"> {
|
|
@@ -452,6 +471,7 @@ declare namespace InternalTypes {
|
|
|
452
471
|
_InlineTrick,
|
|
453
472
|
FlattenKeys,
|
|
454
473
|
ApplyKind,
|
|
474
|
+
ApplyKindInput,
|
|
455
475
|
NodeBuilderData,
|
|
456
476
|
FieldHasDefault,
|
|
457
477
|
TreeArrayNodeBase,
|
|
@@ -474,6 +494,9 @@ declare namespace InternalTypes {
|
|
|
474
494
|
NodeBuilderDataUnsafe,
|
|
475
495
|
NodeFromSchemaUnsafe,
|
|
476
496
|
ReadonlyMapInlined,
|
|
497
|
+
TreeNodeSchemaUnsafe,
|
|
498
|
+
AllowedTypesUnsafe,
|
|
499
|
+
TreeNodeSchemaNonClassUnsafe,
|
|
477
500
|
FlexList,
|
|
478
501
|
FlexListToUnion,
|
|
479
502
|
ExtractItemType,
|
|
@@ -564,16 +587,16 @@ export type Myself<M extends IMember = IMember> = M & {
|
|
|
564
587
|
};
|
|
565
588
|
|
|
566
589
|
// @public
|
|
567
|
-
type NodeBuilderData<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind,
|
|
590
|
+
type NodeBuilderData<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, TreeNode | TreeLeafValue, infer TBuild> ? TBuild : never;
|
|
568
591
|
|
|
569
592
|
// @public
|
|
570
|
-
type NodeBuilderDataUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends
|
|
593
|
+
type NodeBuilderDataUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchemaUnsafe<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
|
|
571
594
|
|
|
572
595
|
// @public
|
|
573
596
|
export type NodeFromSchema<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, infer TNode> ? TNode : never;
|
|
574
597
|
|
|
575
598
|
// @public
|
|
576
|
-
type NodeFromSchemaUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends
|
|
599
|
+
type NodeFromSchemaUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchemaUnsafe<string, NodeKind, infer TNode> ? TNode : never;
|
|
577
600
|
|
|
578
601
|
// @public
|
|
579
602
|
export interface NodeInDocumentConstraint {
|
|
@@ -604,6 +627,10 @@ type ObjectFromSchemaRecordUnsafe<T extends Unenforced<RestrictiveStringRecord<I
|
|
|
604
627
|
// @public
|
|
605
628
|
export type Off = () => void;
|
|
606
629
|
|
|
630
|
+
// @public @sealed
|
|
631
|
+
export interface ReadonlyArrayNode<out T = TreeNode | TreeLeafValue> extends ReadonlyArray<T>, Awaited<TreeNode & WithType<string, NodeKind.Array>> {
|
|
632
|
+
}
|
|
633
|
+
|
|
607
634
|
// @public @sealed
|
|
608
635
|
interface ReadonlyMapInlined<K, T extends Unenforced<ImplicitAllowedTypes>> {
|
|
609
636
|
[Symbol.iterator](): IterableIterator<[K, TreeNodeFromImplicitAllowedTypesUnsafe<T>]>;
|
|
@@ -660,17 +687,17 @@ export const rollback: unique symbol;
|
|
|
660
687
|
// @public @sealed
|
|
661
688
|
export interface RunTransaction {
|
|
662
689
|
<TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult): TResult;
|
|
663
|
-
<TView extends TreeView<
|
|
690
|
+
<TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult): TResult;
|
|
664
691
|
<TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult | typeof rollback): TResult | typeof rollback;
|
|
665
|
-
<TView extends TreeView<
|
|
692
|
+
<TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback): TResult | typeof rollback;
|
|
666
693
|
<TNode extends TreeNode>(node: TNode, transaction: (node: TNode) => void): void;
|
|
667
|
-
<TView extends TreeView<
|
|
694
|
+
<TView extends TreeView<any>>(tree: TView, transaction: (root: TView["root"]) => void): void;
|
|
668
695
|
<TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult, preconditions?: readonly TransactionConstraint[]): TResult;
|
|
669
|
-
<TView extends TreeView<
|
|
696
|
+
<TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult, preconditions?: readonly TransactionConstraint[]): TResult;
|
|
670
697
|
<TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult | typeof rollback, preconditions?: readonly TransactionConstraint[]): TResult | typeof rollback;
|
|
671
|
-
<TView extends TreeView<
|
|
698
|
+
<TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback, preconditions?: readonly TransactionConstraint[]): TResult | typeof rollback;
|
|
672
699
|
<TNode extends TreeNode>(node: TNode, transaction: (node: TNode) => void, preconditions?: readonly TransactionConstraint[]): void;
|
|
673
|
-
<TView extends TreeView<
|
|
700
|
+
<TView extends TreeView<any>>(tree: TView, transaction: (root: TView["root"]) => void, preconditions?: readonly TransactionConstraint[]): void;
|
|
674
701
|
readonly rollback: typeof rollback;
|
|
675
702
|
}
|
|
676
703
|
|
|
@@ -704,7 +731,7 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
|
|
|
704
731
|
readonly null: TreeNodeSchema<"com.fluidframework.leaf.null", NodeKind.Leaf, null, null>;
|
|
705
732
|
readonly number: TreeNodeSchema<"com.fluidframework.leaf.number", NodeKind.Leaf, number, number>;
|
|
706
733
|
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>;
|
|
707
|
-
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]
|
|
734
|
+
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>;
|
|
708
735
|
optional<const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider">): FieldSchema<FieldKind.Optional, T, TCustomMetadata>;
|
|
709
736
|
optionalRecursive<const T extends Unenforced<ImplicitAllowedTypes>>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchemaUnsafe<FieldKind.Optional, T>;
|
|
710
737
|
required<const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider">): FieldSchema<FieldKind.Required, T, TCustomMetadata>;
|
|
@@ -752,7 +779,7 @@ interface TreeApi extends TreeNodeApi {
|
|
|
752
779
|
}
|
|
753
780
|
|
|
754
781
|
// @public @sealed
|
|
755
|
-
export interface TreeArrayNode<TAllowedTypes extends ImplicitAllowedTypes = ImplicitAllowedTypes> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypes<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypes<TAllowedTypes
|
|
782
|
+
export interface TreeArrayNode<TAllowedTypes extends ImplicitAllowedTypes = ImplicitAllowedTypes> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypes<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypes<TAllowedTypes>> {
|
|
756
783
|
}
|
|
757
784
|
|
|
758
785
|
// @public
|
|
@@ -761,7 +788,7 @@ export const TreeArrayNode: {
|
|
|
761
788
|
};
|
|
762
789
|
|
|
763
790
|
// @public @sealed
|
|
764
|
-
interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom> extends
|
|
791
|
+
interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom = ReadonlyArrayNode> extends ReadonlyArrayNode<T> {
|
|
765
792
|
insertAt(index: number, ...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
766
793
|
insertAtEnd(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
767
794
|
insertAtStart(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
@@ -783,7 +810,7 @@ interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom> extends ReadonlyArray<
|
|
|
783
810
|
}
|
|
784
811
|
|
|
785
812
|
// @public @sealed
|
|
786
|
-
export interface TreeArrayNodeUnsafe<TAllowedTypes extends Unenforced<ImplicitAllowedTypes>> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes
|
|
813
|
+
export interface TreeArrayNodeUnsafe<TAllowedTypes extends Unenforced<ImplicitAllowedTypes>> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>> {
|
|
787
814
|
}
|
|
788
815
|
|
|
789
816
|
// @public @sealed
|
|
@@ -793,10 +820,10 @@ export interface TreeChangeEvents {
|
|
|
793
820
|
}
|
|
794
821
|
|
|
795
822
|
// @public
|
|
796
|
-
export type TreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypes<Types>, Kind
|
|
823
|
+
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;
|
|
797
824
|
|
|
798
825
|
// @public
|
|
799
|
-
type TreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind
|
|
826
|
+
type TreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypesUnsafe<TSchema> : unknown;
|
|
800
827
|
|
|
801
828
|
// @public
|
|
802
829
|
export type TreeLeafValue = number | string | boolean | IFluidHandle | null;
|
|
@@ -842,13 +869,19 @@ export interface TreeNodeApi {
|
|
|
842
869
|
export type TreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
|
|
843
870
|
|
|
844
871
|
// @public
|
|
845
|
-
type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends
|
|
872
|
+
type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends TreeNodeSchemaUnsafe ? NodeFromSchemaUnsafe<TSchema> : TSchema extends AllowedTypesUnsafe ? NodeFromSchemaUnsafe<FlexListToUnion<TSchema>> : unknown;
|
|
846
873
|
|
|
847
874
|
// @public @sealed
|
|
848
|
-
export type TreeNodeSchema<Name extends string = string, Kind extends NodeKind = NodeKind, TNode =
|
|
875
|
+
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>;
|
|
849
876
|
|
|
850
877
|
// @public @sealed
|
|
851
|
-
export interface TreeNodeSchemaClass<out Name extends string = string, out Kind extends NodeKind = NodeKind, out TNode =
|
|
878
|
+
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> {
|
|
879
|
+
// @sealed
|
|
880
|
+
new (data: TInsertable | InternalTreeNode): Unhydrated<TNode>;
|
|
881
|
+
}
|
|
882
|
+
|
|
883
|
+
// @public
|
|
884
|
+
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> {
|
|
852
885
|
// @sealed
|
|
853
886
|
new (data: TInsertable | InternalTreeNode): Unhydrated<TNode>;
|
|
854
887
|
}
|
|
@@ -864,11 +897,20 @@ export interface TreeNodeSchemaCore<out Name extends string, out Kind extends No
|
|
|
864
897
|
}
|
|
865
898
|
|
|
866
899
|
// @public @sealed
|
|
867
|
-
export interface TreeNodeSchemaNonClass<out Name extends string = string, out Kind extends NodeKind = NodeKind, out TNode =
|
|
900
|
+
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> {
|
|
868
901
|
// (undocumented)
|
|
869
902
|
create(data: TInsertable): TNode;
|
|
870
903
|
}
|
|
871
904
|
|
|
905
|
+
// @public
|
|
906
|
+
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> {
|
|
907
|
+
// (undocumented)
|
|
908
|
+
create(data: TInsertable): TNode;
|
|
909
|
+
}
|
|
910
|
+
|
|
911
|
+
// @public
|
|
912
|
+
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>;
|
|
913
|
+
|
|
872
914
|
// @public
|
|
873
915
|
export type TreeObjectNode<T extends RestrictiveStringRecord<ImplicitFieldSchema>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecord<T> & WithType<TypeName, NodeKind.Object, T>;
|
|
874
916
|
|
|
@@ -884,7 +926,7 @@ export enum TreeStatus {
|
|
|
884
926
|
}
|
|
885
927
|
|
|
886
928
|
// @public @sealed
|
|
887
|
-
export interface TreeView<TSchema extends ImplicitFieldSchema> extends IDisposable {
|
|
929
|
+
export interface TreeView<in out TSchema extends ImplicitFieldSchema> extends IDisposable {
|
|
888
930
|
readonly compatibility: SchemaCompatibilityStatus;
|
|
889
931
|
readonly events: Listenable<TreeViewEvents>;
|
|
890
932
|
initialize(content: InsertableTreeFieldFromImplicitField<TSchema>): void;
|
|
@@ -895,7 +937,7 @@ export interface TreeView<TSchema extends ImplicitFieldSchema> extends IDisposab
|
|
|
895
937
|
}
|
|
896
938
|
|
|
897
939
|
// @public @sealed
|
|
898
|
-
export class TreeViewConfiguration<TSchema extends ImplicitFieldSchema = ImplicitFieldSchema> implements Required<ITreeViewConfiguration<TSchema>> {
|
|
940
|
+
export class TreeViewConfiguration<const TSchema extends ImplicitFieldSchema = ImplicitFieldSchema> implements Required<ITreeViewConfiguration<TSchema>> {
|
|
899
941
|
constructor(props: ITreeViewConfiguration<TSchema>);
|
|
900
942
|
readonly enableSchemaValidation: boolean;
|
|
901
943
|
readonly preventAmbiguity: boolean;
|
|
@@ -923,6 +965,9 @@ export type Unenforced<_DesiredExtendsConstraint> = unknown;
|
|
|
923
965
|
// @public
|
|
924
966
|
export type Unhydrated<T> = T;
|
|
925
967
|
|
|
968
|
+
// @public
|
|
969
|
+
export type UnionToIntersection<T> = (T extends T ? (k: T) => unknown : never) extends (k: infer U) => unknown ? U : never;
|
|
970
|
+
|
|
926
971
|
// @public
|
|
927
972
|
export type ValidateRecursiveSchema<T extends TreeNodeSchemaClass<string, NodeKind.Array | NodeKind.Map | NodeKind.Object, TreeNode & WithType<T["identifier"], T["kind"]>, {
|
|
928
973
|
[NodeKind.Object]: T["info"] extends RestrictiveStringRecord<ImplicitFieldSchema> ? InsertableObjectFromSchemaRecord<T["info"]> : unknown;
|
|
@@ -943,7 +988,7 @@ export interface ViewableTree {
|
|
|
943
988
|
export interface WithType<out TName extends string = string, out TKind extends NodeKind = NodeKind, out TInfo = unknown> {
|
|
944
989
|
// @deprecated
|
|
945
990
|
get [typeNameSymbol](): TName;
|
|
946
|
-
get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind,
|
|
991
|
+
get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind, TreeNode | TreeLeafValue, never, boolean, TInfo>;
|
|
947
992
|
}
|
|
948
993
|
|
|
949
994
|
```
|