fluid-framework 2.4.0 → 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 +271 -80
- package/api-report/fluid-framework.beta.api.md +100 -51
- package/api-report/fluid-framework.legacy.alpha.api.md +99 -50
- package/api-report/fluid-framework.legacy.public.api.md +99 -50
- package/api-report/fluid-framework.public.api.md +99 -50
- package/dist/alpha.d.ts +32 -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 +32 -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;
|
|
452
463
|
|
|
453
464
|
// @public
|
|
454
|
-
export type InsertableTreeFieldFromImplicitFieldUnsafe<
|
|
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;
|
|
455
466
|
|
|
456
467
|
// @public
|
|
457
|
-
export type
|
|
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;
|
|
458
472
|
|
|
459
473
|
// @public
|
|
460
|
-
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;
|
|
461
478
|
|
|
462
479
|
// @public
|
|
463
|
-
export type
|
|
464
|
-
|
|
465
|
-
|
|
480
|
+
export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes> = [
|
|
481
|
+
TSchema
|
|
482
|
+
] extends [TreeNodeSchema] ? InsertableTypedNode<TSchema> : [TSchema] extends [AllowedTypes] ? InsertableTreeNodeFromAllowedTypes<TSchema> : never;
|
|
466
483
|
|
|
467
484
|
// @public
|
|
468
|
-
type
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
485
|
+
export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = [TSchema] extends [TreeNodeSchemaUnsafe] ? InsertableTypedNodeUnsafe<TSchema> : [TSchema] extends [AllowedTypesUnsafe] ? InsertableTreeNodeFromAllowedTypesUnsafe<TSchema> : never;
|
|
486
|
+
|
|
487
|
+
// @public
|
|
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);
|
|
489
|
+
|
|
490
|
+
// @public
|
|
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
|
|
626
|
+
type NodeBuilderData<T extends TreeNodeSchemaCore<string, NodeKind, boolean>> = T extends TreeNodeSchemaCore<string, NodeKind, boolean, unknown, 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
|
|
|
@@ -721,33 +748,33 @@ export interface SchemaCompatibilityStatus {
|
|
|
721
748
|
// @public @sealed
|
|
722
749
|
export class SchemaFactory<out TScope extends string | undefined = string | undefined, TName extends number | string = string> {
|
|
723
750
|
constructor(scope: TScope);
|
|
724
|
-
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>;
|
|
725
|
-
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>;
|
|
751
|
+
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>;
|
|
752
|
+
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>;
|
|
726
753
|
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>, {
|
|
727
754
|
[Symbol.iterator](): Iterator<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>>;
|
|
728
|
-
}, false, T>;
|
|
729
|
-
readonly boolean:
|
|
730
|
-
readonly handle:
|
|
755
|
+
}, false, T, undefined>;
|
|
756
|
+
readonly boolean: TreeNodeSchemaNonClass<"com.fluidframework.leaf.boolean", NodeKind.Leaf, boolean, boolean, true, unknown, never>;
|
|
757
|
+
readonly handle: TreeNodeSchemaNonClass<"com.fluidframework.leaf.handle", NodeKind.Leaf, IFluidHandle<unknown>, IFluidHandle<unknown>, true, unknown, never>;
|
|
731
758
|
get identifier(): FieldSchema<FieldKind.Identifier, typeof SchemaFactory.string>;
|
|
732
|
-
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>;
|
|
733
|
-
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>;
|
|
759
|
+
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>;
|
|
760
|
+
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>;
|
|
734
761
|
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>, {
|
|
735
762
|
[Symbol.iterator](): Iterator<[
|
|
736
763
|
string,
|
|
737
764
|
InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>
|
|
738
765
|
]>;
|
|
739
|
-
}, false, T>;
|
|
740
|
-
readonly null:
|
|
741
|
-
readonly number:
|
|
766
|
+
}, false, T, undefined>;
|
|
767
|
+
readonly null: TreeNodeSchemaNonClass<"com.fluidframework.leaf.null", NodeKind.Leaf, null, null, true, unknown, never>;
|
|
768
|
+
readonly number: TreeNodeSchemaNonClass<"com.fluidframework.leaf.number", NodeKind.Leaf, number, number, true, unknown, never>;
|
|
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>;
|
|
747
774
|
requiredRecursive<const T extends Unenforced<ImplicitAllowedTypes>>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchemaUnsafe<FieldKind.Required, T>;
|
|
748
775
|
// (undocumented)
|
|
749
776
|
readonly scope: TScope;
|
|
750
|
-
readonly string:
|
|
777
|
+
readonly string: TreeNodeSchemaNonClass<"com.fluidframework.leaf.string", NodeKind.Leaf, string, string, true, unknown, never>;
|
|
751
778
|
}
|
|
752
779
|
|
|
753
780
|
// @public
|
|
@@ -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,20 +909,29 @@ 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> = (TNode extends TreeNode ? TreeNodeSchemaClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info> : never) | TreeNodeSchemaNonClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info>;
|
|
889
916
|
|
|
890
917
|
// @public @sealed
|
|
891
|
-
export
|
|
918
|
+
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 ? {
|
|
919
|
+
new (data?: TInsertable | InternalTreeNode | TConstructorExtra): Unhydrated<TNode>;
|
|
920
|
+
} : {
|
|
921
|
+
new (data: TInsertable | InternalTreeNode | TConstructorExtra): Unhydrated<TNode>;
|
|
922
|
+
});
|
|
923
|
+
|
|
924
|
+
// @public
|
|
925
|
+
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> {
|
|
892
926
|
// @sealed
|
|
893
927
|
new (data: TInsertable | InternalTreeNode): Unhydrated<TNode>;
|
|
894
928
|
}
|
|
895
929
|
|
|
896
930
|
// @public @sealed
|
|
897
|
-
export interface TreeNodeSchemaCore<out Name extends string, out Kind extends NodeKind, out ImplicitlyConstructable extends boolean, out Info = unknown> {
|
|
931
|
+
export interface TreeNodeSchemaCore<out Name extends string, out Kind extends NodeKind, out ImplicitlyConstructable extends boolean, out Info = unknown, out TInsertable = never> {
|
|
898
932
|
readonly childTypes: ReadonlySet<TreeNodeSchema>;
|
|
933
|
+
// @sealed
|
|
934
|
+
createFromInsertable(data: TInsertable): Unhydrated<TreeNode | TreeLeafValue>;
|
|
899
935
|
readonly identifier: Name;
|
|
900
936
|
readonly implicitlyConstructable: ImplicitlyConstructable;
|
|
901
937
|
readonly info: Info;
|
|
@@ -904,11 +940,21 @@ export interface TreeNodeSchemaCore<out Name extends string, out Kind extends No
|
|
|
904
940
|
}
|
|
905
941
|
|
|
906
942
|
// @public @sealed
|
|
907
|
-
export
|
|
943
|
+
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 ? {
|
|
944
|
+
create(data?: TInsertable | TConstructorExtra): TNode;
|
|
945
|
+
} : {
|
|
946
|
+
create(data: TInsertable | TConstructorExtra): TNode;
|
|
947
|
+
});
|
|
948
|
+
|
|
949
|
+
// @public
|
|
950
|
+
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> {
|
|
908
951
|
// (undocumented)
|
|
909
952
|
create(data: TInsertable): TNode;
|
|
910
953
|
}
|
|
911
954
|
|
|
955
|
+
// @public
|
|
956
|
+
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>;
|
|
957
|
+
|
|
912
958
|
// @public
|
|
913
959
|
export type TreeObjectNode<T extends RestrictiveStringRecord<ImplicitFieldSchema>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecord<T> & WithType<TypeName, NodeKind.Object, T>;
|
|
914
960
|
|
|
@@ -924,7 +970,7 @@ export enum TreeStatus {
|
|
|
924
970
|
}
|
|
925
971
|
|
|
926
972
|
// @public @sealed
|
|
927
|
-
export interface TreeView<TSchema extends ImplicitFieldSchema> extends IDisposable {
|
|
973
|
+
export interface TreeView<in out TSchema extends ImplicitFieldSchema> extends IDisposable {
|
|
928
974
|
readonly compatibility: SchemaCompatibilityStatus;
|
|
929
975
|
readonly events: Listenable<TreeViewEvents>;
|
|
930
976
|
initialize(content: InsertableTreeFieldFromImplicitField<TSchema>): void;
|
|
@@ -935,7 +981,7 @@ export interface TreeView<TSchema extends ImplicitFieldSchema> extends IDisposab
|
|
|
935
981
|
}
|
|
936
982
|
|
|
937
983
|
// @public @sealed
|
|
938
|
-
export class TreeViewConfiguration<TSchema extends ImplicitFieldSchema = ImplicitFieldSchema> implements Required<ITreeViewConfiguration<TSchema>> {
|
|
984
|
+
export class TreeViewConfiguration<const TSchema extends ImplicitFieldSchema = ImplicitFieldSchema> implements Required<ITreeViewConfiguration<TSchema>> {
|
|
939
985
|
constructor(props: ITreeViewConfiguration<TSchema>);
|
|
940
986
|
readonly enableSchemaValidation: boolean;
|
|
941
987
|
readonly preventAmbiguity: boolean;
|
|
@@ -963,6 +1009,9 @@ export type Unenforced<_DesiredExtendsConstraint> = unknown;
|
|
|
963
1009
|
// @public
|
|
964
1010
|
export type Unhydrated<T> = T;
|
|
965
1011
|
|
|
1012
|
+
// @public
|
|
1013
|
+
export type UnionToIntersection<T> = (T extends T ? (k: T) => unknown : never) extends (k: infer U) => unknown ? U : never;
|
|
1014
|
+
|
|
966
1015
|
// @public
|
|
967
1016
|
export type ValidateRecursiveSchema<T extends TreeNodeSchemaClass<string, NodeKind.Array | NodeKind.Map | NodeKind.Object, TreeNode & WithType<T["identifier"], T["kind"]>, {
|
|
968
1017
|
[NodeKind.Object]: T["info"] extends RestrictiveStringRecord<ImplicitFieldSchema> ? InsertableObjectFromSchemaRecord<T["info"]> : unknown;
|
|
@@ -983,7 +1032,7 @@ export interface ViewableTree {
|
|
|
983
1032
|
export interface WithType<out TName extends string = string, out TKind extends NodeKind = NodeKind, out TInfo = unknown> {
|
|
984
1033
|
// @deprecated
|
|
985
1034
|
get [typeNameSymbol](): TName;
|
|
986
|
-
get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind,
|
|
1035
|
+
get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind, TreeNode, never, boolean, TInfo>;
|
|
987
1036
|
}
|
|
988
1037
|
|
|
989
1038
|
```
|