fluid-framework 2.4.0-297385 → 2.4.0-299374
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 +181 -21
- package/api-report/fluid-framework.beta.api.md +46 -21
- package/api-report/fluid-framework.legacy.alpha.api.md +46 -21
- package/api-report/fluid-framework.legacy.public.api.md +46 -21
- package/api-report/fluid-framework.public.api.md +46 -21
- package/dist/alpha.d.ts +30 -1
- package/dist/beta.d.ts +2 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -1
- package/dist/index.js.map +1 -1
- package/dist/legacy.d.ts +2 -0
- package/dist/public.d.ts +2 -0
- package/lib/alpha.d.ts +30 -1
- package/lib/beta.d.ts +2 -0
- package/lib/index.d.ts +22 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +24 -1
- package/lib/index.js.map +1 -1
- package/lib/legacy.d.ts +2 -0
- package/lib/public.d.ts +2 -0
- package/package.json +13 -13
- package/src/index.ts +29 -1
|
@@ -4,9 +4,21 @@
|
|
|
4
4
|
|
|
5
5
|
```ts
|
|
6
6
|
|
|
7
|
+
// @alpha
|
|
8
|
+
export function adaptEnum<TScope extends string, const TEnum extends Record<string, string | number>>(factory: SchemaFactory<TScope>, members: TEnum): (<TValue extends TEnum[keyof TEnum]>(value: TValue) => TreeNode & {
|
|
9
|
+
readonly value: TValue;
|
|
10
|
+
}) & { readonly [Property in keyof TEnum]: TreeNodeSchemaClass<ScopedSchemaName<TScope, TEnum[Property]>, NodeKind.Object, TreeNode & {
|
|
11
|
+
readonly value: TEnum[Property];
|
|
12
|
+
}, never, true, unknown> & (new () => TreeNode & {
|
|
13
|
+
readonly value: TEnum[Property];
|
|
14
|
+
}); };
|
|
15
|
+
|
|
7
16
|
// @public
|
|
8
17
|
export type AllowedTypes = readonly LazyItem<TreeNodeSchema>[];
|
|
9
18
|
|
|
19
|
+
// @public
|
|
20
|
+
type AllowedTypesUnsafe = readonly LazyItem<TreeNodeSchemaUnsafe>[];
|
|
21
|
+
|
|
10
22
|
// @public
|
|
11
23
|
type ApplyKind<T, Kind extends FieldKind, DefaultsAreOptional extends boolean> = {
|
|
12
24
|
[FieldKind.Required]: T;
|
|
@@ -34,6 +46,12 @@ export interface CommitMetadata {
|
|
|
34
46
|
readonly kind: CommitKind;
|
|
35
47
|
}
|
|
36
48
|
|
|
49
|
+
// @alpha
|
|
50
|
+
export function comparePersistedSchema(persisted: JsonCompatible, view: JsonCompatible, options: ICodecOptions, canInitialize: boolean): SchemaCompatibilityStatus;
|
|
51
|
+
|
|
52
|
+
// @alpha
|
|
53
|
+
export function configuredSharedTree(options: SharedTreeOptions): SharedObjectKind<ITree>;
|
|
54
|
+
|
|
37
55
|
// @public
|
|
38
56
|
export enum ConnectionState {
|
|
39
57
|
CatchingUp = 1,
|
|
@@ -66,6 +84,15 @@ export interface ContainerSchema {
|
|
|
66
84
|
interface DefaultProvider extends ErasedType<"@fluidframework/tree.FieldProvider"> {
|
|
67
85
|
}
|
|
68
86
|
|
|
87
|
+
// @alpha
|
|
88
|
+
export function enumFromStrings<TScope extends string, const Members extends string>(factory: SchemaFactory<TScope>, members: readonly Members[]): (<TValue extends Members>(value: TValue) => TreeNode & {
|
|
89
|
+
readonly value: TValue;
|
|
90
|
+
}) & Record<Members, TreeNodeSchemaClass<ScopedSchemaName<TScope, Members>, NodeKind.Object, TreeNode & {
|
|
91
|
+
readonly value: Members;
|
|
92
|
+
}, never, true, unknown> & (new () => TreeNode & {
|
|
93
|
+
readonly value: Members;
|
|
94
|
+
})>;
|
|
95
|
+
|
|
69
96
|
// @public @sealed
|
|
70
97
|
export abstract class ErasedType<out Name = unknown> {
|
|
71
98
|
static [Symbol.hasInstance](value: never): value is never;
|
|
@@ -75,6 +102,17 @@ export abstract class ErasedType<out Name = unknown> {
|
|
|
75
102
|
// @public
|
|
76
103
|
type ExtractItemType<Item extends LazyItem> = Item extends () => infer Result ? Result : Item;
|
|
77
104
|
|
|
105
|
+
// @alpha
|
|
106
|
+
export function extractPersistedSchema(schema: ImplicitFieldSchema): JsonCompatible;
|
|
107
|
+
|
|
108
|
+
// @alpha
|
|
109
|
+
export type FactoryContent = IFluidHandle | string | number | boolean | null | Iterable<readonly [string, InsertableContent]> | readonly InsertableContent[] | FactoryContentObject;
|
|
110
|
+
|
|
111
|
+
// @alpha
|
|
112
|
+
export type FactoryContentObject = {
|
|
113
|
+
readonly [P in string]?: InsertableContent;
|
|
114
|
+
};
|
|
115
|
+
|
|
78
116
|
// @public
|
|
79
117
|
type FieldHasDefault<T extends ImplicitFieldSchema> = T extends FieldSchema<FieldKind.Optional | FieldKind.Identifier> ? true : false;
|
|
80
118
|
|
|
@@ -141,6 +179,18 @@ export type FluidObject<T = unknown> = {
|
|
|
141
179
|
// @public
|
|
142
180
|
export type FluidObjectProviderKeys<T, TProp extends keyof T = keyof T> = string extends TProp ? never : number extends TProp ? never : TProp extends keyof Required<T>[TProp] ? Required<T>[TProp] extends Required<Required<T>[TProp]>[TProp] ? TProp : never : never;
|
|
143
181
|
|
|
182
|
+
// @alpha
|
|
183
|
+
export interface ForestOptions {
|
|
184
|
+
readonly forest?: ForestType;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
// @alpha
|
|
188
|
+
export enum ForestType {
|
|
189
|
+
Expensive = 2,
|
|
190
|
+
Optimized = 1,
|
|
191
|
+
Reference = 0
|
|
192
|
+
}
|
|
193
|
+
|
|
144
194
|
// @alpha
|
|
145
195
|
export function getBranch(tree: ITree): TreeBranch;
|
|
146
196
|
|
|
@@ -150,6 +200,11 @@ export function getBranch(view: TreeView<ImplicitFieldSchema>): TreeBranch;
|
|
|
150
200
|
// @alpha
|
|
151
201
|
export function getJsonSchema(schema: ImplicitFieldSchema): JsonTreeSchema;
|
|
152
202
|
|
|
203
|
+
// @alpha
|
|
204
|
+
export interface ICodecOptions {
|
|
205
|
+
readonly jsonValidator: JsonValidator;
|
|
206
|
+
}
|
|
207
|
+
|
|
153
208
|
// @public
|
|
154
209
|
export interface IConnection {
|
|
155
210
|
readonly id: string;
|
|
@@ -417,6 +472,15 @@ export type InitialObjects<T extends ContainerSchema> = {
|
|
|
417
472
|
// @public
|
|
418
473
|
type _InlineTrick = 0;
|
|
419
474
|
|
|
475
|
+
// @alpha
|
|
476
|
+
export type Insertable<TSchema extends ImplicitAllowedTypes | UnsafeUnknownSchema> = TSchema extends ImplicitAllowedTypes ? InsertableTreeNodeFromImplicitAllowedTypes<TSchema> : InsertableContent;
|
|
477
|
+
|
|
478
|
+
// @alpha
|
|
479
|
+
export type InsertableContent = Unhydrated<TreeNode> | FactoryContent;
|
|
480
|
+
|
|
481
|
+
// @alpha
|
|
482
|
+
export type InsertableField<TSchema extends ImplicitFieldSchema | UnsafeUnknownSchema> = TSchema extends ImplicitFieldSchema ? InsertableTreeFieldFromImplicitField<TSchema> : InsertableContent | undefined;
|
|
483
|
+
|
|
420
484
|
// @public
|
|
421
485
|
type InsertableObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFieldSchema>> = FlattenKeys<{
|
|
422
486
|
readonly [Property in keyof T]?: InsertableTreeFieldFromImplicitField<T[Property] & string>;
|
|
@@ -432,7 +496,7 @@ export type InsertableObjectFromSchemaRecordUnsafe<T extends Unenforced<Restrict
|
|
|
432
496
|
};
|
|
433
497
|
|
|
434
498
|
// @public
|
|
435
|
-
export type InsertableTreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<InsertableTreeNodeFromImplicitAllowedTypes<Types>, Kind, true> : TSchema extends ImplicitAllowedTypes ? InsertableTreeNodeFromImplicitAllowedTypes<TSchema> :
|
|
499
|
+
export type InsertableTreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<InsertableTreeNodeFromImplicitAllowedTypes<Types>, Kind, true> : TSchema extends ImplicitAllowedTypes ? InsertableTreeNodeFromImplicitAllowedTypes<TSchema> : never;
|
|
436
500
|
|
|
437
501
|
// @public
|
|
438
502
|
export type InsertableTreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind, true> : InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema>;
|
|
@@ -441,7 +505,7 @@ export type InsertableTreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforce
|
|
|
441
505
|
export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? InsertableTypedNode<TSchema> : TSchema extends AllowedTypes ? InsertableTypedNode<FlexListToUnion<TSchema>> : never;
|
|
442
506
|
|
|
443
507
|
// @public
|
|
444
|
-
export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends
|
|
508
|
+
export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends AllowedTypesUnsafe ? InsertableTypedNodeUnsafe<FlexListToUnion<TSchema>> : InsertableTypedNodeUnsafe<TSchema>;
|
|
445
509
|
|
|
446
510
|
// @public
|
|
447
511
|
export type InsertableTypedNode<T extends TreeNodeSchema> = (T extends {
|
|
@@ -486,6 +550,9 @@ declare namespace InternalTypes {
|
|
|
486
550
|
NodeBuilderDataUnsafe,
|
|
487
551
|
NodeFromSchemaUnsafe,
|
|
488
552
|
ReadonlyMapInlined,
|
|
553
|
+
TreeNodeSchemaUnsafe,
|
|
554
|
+
AllowedTypesUnsafe,
|
|
555
|
+
TreeNodeSchemaNonClassUnsafe,
|
|
489
556
|
FlexList,
|
|
490
557
|
FlexListToUnion,
|
|
491
558
|
ExtractItemType,
|
|
@@ -552,6 +619,14 @@ export interface JsonArrayNodeSchema extends JsonNodeSchemaBase<NodeKind.Array,
|
|
|
552
619
|
readonly items: JsonFieldSchema;
|
|
553
620
|
}
|
|
554
621
|
|
|
622
|
+
// @alpha
|
|
623
|
+
export type JsonCompatible = string | number | boolean | null | JsonCompatible[] | JsonCompatibleObject;
|
|
624
|
+
|
|
625
|
+
// @alpha
|
|
626
|
+
export type JsonCompatibleObject = {
|
|
627
|
+
[P in string]?: JsonCompatible;
|
|
628
|
+
};
|
|
629
|
+
|
|
555
630
|
// @alpha @sealed
|
|
556
631
|
export type JsonFieldSchema = {
|
|
557
632
|
readonly description?: string | undefined;
|
|
@@ -609,6 +684,11 @@ export type JsonTreeSchema = JsonFieldSchema & {
|
|
|
609
684
|
readonly $defs: Record<JsonSchemaId, JsonNodeSchema>;
|
|
610
685
|
};
|
|
611
686
|
|
|
687
|
+
// @alpha
|
|
688
|
+
export interface JsonValidator {
|
|
689
|
+
compile<Schema extends TSchema>(schema: Schema): SchemaValidationFunction<Schema>;
|
|
690
|
+
}
|
|
691
|
+
|
|
612
692
|
// @public
|
|
613
693
|
export type LazyItem<Item = unknown> = Item | (() => Item);
|
|
614
694
|
|
|
@@ -638,10 +718,10 @@ export type Myself<M extends IMember = IMember> = M & {
|
|
|
638
718
|
};
|
|
639
719
|
|
|
640
720
|
// @public
|
|
641
|
-
type NodeBuilderData<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind,
|
|
721
|
+
type NodeBuilderData<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, TreeNode | TreeLeafValue, infer TBuild> ? TBuild : never;
|
|
642
722
|
|
|
643
723
|
// @public
|
|
644
|
-
type NodeBuilderDataUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends
|
|
724
|
+
type NodeBuilderDataUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchemaUnsafe<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
|
|
645
725
|
|
|
646
726
|
// @beta @sealed
|
|
647
727
|
export interface NodeChangedData<TNode extends TreeNode = TreeNode> {
|
|
@@ -652,7 +732,7 @@ export interface NodeChangedData<TNode extends TreeNode = TreeNode> {
|
|
|
652
732
|
export type NodeFromSchema<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, infer TNode> ? TNode : never;
|
|
653
733
|
|
|
654
734
|
// @public
|
|
655
|
-
type NodeFromSchemaUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends
|
|
735
|
+
type NodeFromSchemaUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchemaUnsafe<string, NodeKind, infer TNode> ? TNode : never;
|
|
656
736
|
|
|
657
737
|
// @public
|
|
658
738
|
export interface NodeInDocumentConstraint {
|
|
@@ -670,6 +750,9 @@ export enum NodeKind {
|
|
|
670
750
|
Object = 2
|
|
671
751
|
}
|
|
672
752
|
|
|
753
|
+
// @alpha
|
|
754
|
+
export const noopValidator: JsonValidator;
|
|
755
|
+
|
|
673
756
|
// @public
|
|
674
757
|
type ObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFieldSchema>> = {
|
|
675
758
|
-readonly [Property in keyof T]: Property extends string ? TreeFieldFromImplicitField<T[Property]> : unknown;
|
|
@@ -683,6 +766,10 @@ type ObjectFromSchemaRecordUnsafe<T extends Unenforced<RestrictiveStringRecord<I
|
|
|
683
766
|
// @public
|
|
684
767
|
export type Off = () => void;
|
|
685
768
|
|
|
769
|
+
// @public @sealed
|
|
770
|
+
export interface ReadonlyArrayNode<out T = TreeNode | TreeLeafValue> extends ReadonlyArray<T>, Awaited<TreeNode & WithType<string, NodeKind.Array>> {
|
|
771
|
+
}
|
|
772
|
+
|
|
686
773
|
// @public @sealed
|
|
687
774
|
interface ReadonlyMapInlined<K, T extends Unenforced<ImplicitAllowedTypes>> {
|
|
688
775
|
[Symbol.iterator](): IterableIterator<[K, TreeNodeFromImplicitAllowedTypesUnsafe<T>]>;
|
|
@@ -739,17 +826,17 @@ export const rollback: unique symbol;
|
|
|
739
826
|
// @public @sealed
|
|
740
827
|
export interface RunTransaction {
|
|
741
828
|
<TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult): TResult;
|
|
742
|
-
<TView extends TreeView<
|
|
829
|
+
<TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult): TResult;
|
|
743
830
|
<TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult | typeof rollback): TResult | typeof rollback;
|
|
744
|
-
<TView extends TreeView<
|
|
831
|
+
<TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback): TResult | typeof rollback;
|
|
745
832
|
<TNode extends TreeNode>(node: TNode, transaction: (node: TNode) => void): void;
|
|
746
|
-
<TView extends TreeView<
|
|
833
|
+
<TView extends TreeView<any>>(tree: TView, transaction: (root: TView["root"]) => void): void;
|
|
747
834
|
<TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult, preconditions?: readonly TransactionConstraint[]): TResult;
|
|
748
|
-
<TView extends TreeView<
|
|
835
|
+
<TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult, preconditions?: readonly TransactionConstraint[]): TResult;
|
|
749
836
|
<TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult | typeof rollback, preconditions?: readonly TransactionConstraint[]): TResult | typeof rollback;
|
|
750
|
-
<TView extends TreeView<
|
|
837
|
+
<TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback, preconditions?: readonly TransactionConstraint[]): TResult | typeof rollback;
|
|
751
838
|
<TNode extends TreeNode>(node: TNode, transaction: (node: TNode) => void, preconditions?: readonly TransactionConstraint[]): void;
|
|
752
|
-
<TView extends TreeView<
|
|
839
|
+
<TView extends TreeView<any>>(tree: TView, transaction: (root: TView["root"]) => void, preconditions?: readonly TransactionConstraint[]): void;
|
|
753
840
|
readonly rollback: typeof rollback;
|
|
754
841
|
}
|
|
755
842
|
|
|
@@ -793,6 +880,11 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
|
|
|
793
880
|
readonly string: TreeNodeSchema<"com.fluidframework.leaf.string", NodeKind.Leaf, string, string>;
|
|
794
881
|
}
|
|
795
882
|
|
|
883
|
+
// @alpha
|
|
884
|
+
export interface SchemaValidationFunction<Schema extends TSchema> {
|
|
885
|
+
check(data: unknown): data is Static<Schema>;
|
|
886
|
+
}
|
|
887
|
+
|
|
796
888
|
// @public
|
|
797
889
|
type ScopedSchemaName<TScope extends string | undefined, TName extends number | string> = TScope extends undefined ? `${TName}` : `${TScope}.${TName}`;
|
|
798
890
|
|
|
@@ -804,6 +896,32 @@ export interface SharedObjectKind<out TSharedObject = unknown> extends ErasedTyp
|
|
|
804
896
|
// @public
|
|
805
897
|
export const SharedTree: SharedObjectKind<ITree>;
|
|
806
898
|
|
|
899
|
+
// @alpha
|
|
900
|
+
export interface SharedTreeFormatOptions {
|
|
901
|
+
formatVersion: SharedTreeFormatVersion[keyof SharedTreeFormatVersion];
|
|
902
|
+
treeEncodeType: TreeCompressionStrategy;
|
|
903
|
+
}
|
|
904
|
+
|
|
905
|
+
// @alpha
|
|
906
|
+
export const SharedTreeFormatVersion: {
|
|
907
|
+
readonly v1: 1;
|
|
908
|
+
readonly v2: 2;
|
|
909
|
+
readonly v3: 3;
|
|
910
|
+
};
|
|
911
|
+
|
|
912
|
+
// @alpha
|
|
913
|
+
export type SharedTreeFormatVersion = typeof SharedTreeFormatVersion;
|
|
914
|
+
|
|
915
|
+
// @alpha
|
|
916
|
+
export type SharedTreeOptions = Partial<ICodecOptions> & Partial<SharedTreeFormatOptions> & ForestOptions;
|
|
917
|
+
|
|
918
|
+
// @alpha
|
|
919
|
+
export function singletonSchema<TScope extends string, TName extends string | number>(factory: SchemaFactory<TScope, TName>, name: TName): TreeNodeSchemaClass<ScopedSchemaName<TScope, TName>, NodeKind.Object, TreeNode & {
|
|
920
|
+
readonly value: TName;
|
|
921
|
+
}, never, true, unknown> & (new () => TreeNode & {
|
|
922
|
+
readonly value: TName;
|
|
923
|
+
});
|
|
924
|
+
|
|
807
925
|
// @public
|
|
808
926
|
export interface Tagged<V, T extends string = string> {
|
|
809
927
|
// (undocumented)
|
|
@@ -831,7 +949,7 @@ interface TreeApi extends TreeNodeApi {
|
|
|
831
949
|
}
|
|
832
950
|
|
|
833
951
|
// @public @sealed
|
|
834
|
-
export interface TreeArrayNode<TAllowedTypes extends ImplicitAllowedTypes = ImplicitAllowedTypes> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypes<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypes<TAllowedTypes
|
|
952
|
+
export interface TreeArrayNode<TAllowedTypes extends ImplicitAllowedTypes = ImplicitAllowedTypes> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypes<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypes<TAllowedTypes>> {
|
|
835
953
|
}
|
|
836
954
|
|
|
837
955
|
// @public
|
|
@@ -840,7 +958,7 @@ export const TreeArrayNode: {
|
|
|
840
958
|
};
|
|
841
959
|
|
|
842
960
|
// @public @sealed
|
|
843
|
-
interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom> extends
|
|
961
|
+
interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom = ReadonlyArrayNode> extends ReadonlyArrayNode<T> {
|
|
844
962
|
insertAt(index: number, ...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
845
963
|
insertAtEnd(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
846
964
|
insertAtStart(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
@@ -862,7 +980,7 @@ interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom> extends ReadonlyArray<
|
|
|
862
980
|
}
|
|
863
981
|
|
|
864
982
|
// @public @sealed
|
|
865
|
-
export interface TreeArrayNodeUnsafe<TAllowedTypes extends Unenforced<ImplicitAllowedTypes>> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes
|
|
983
|
+
export interface TreeArrayNodeUnsafe<TAllowedTypes extends Unenforced<ImplicitAllowedTypes>> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>> {
|
|
866
984
|
}
|
|
867
985
|
|
|
868
986
|
// @beta @sealed
|
|
@@ -894,8 +1012,14 @@ export interface TreeChangeEventsBeta<TNode extends TreeNode = TreeNode> extends
|
|
|
894
1012
|
nodeChanged: (data: NodeChangedData<TNode> & (TNode extends WithType<string, NodeKind.Map | NodeKind.Object> ? Required<Pick<NodeChangedData<TNode>, "changedProperties">> : unknown)) => void;
|
|
895
1013
|
}
|
|
896
1014
|
|
|
1015
|
+
// @alpha
|
|
1016
|
+
export enum TreeCompressionStrategy {
|
|
1017
|
+
Compressed = 0,
|
|
1018
|
+
Uncompressed = 1
|
|
1019
|
+
}
|
|
1020
|
+
|
|
897
1021
|
// @public
|
|
898
|
-
export type TreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypes<Types>, Kind, false> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypes<TSchema> :
|
|
1022
|
+
export type TreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypes<Types>, Kind, false> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypes<TSchema> : TreeNode | TreeLeafValue | undefined;
|
|
899
1023
|
|
|
900
1024
|
// @public
|
|
901
1025
|
type TreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind, false> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypesUnsafe<TSchema> : unknown;
|
|
@@ -944,13 +1068,19 @@ export interface TreeNodeApi {
|
|
|
944
1068
|
export type TreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
|
|
945
1069
|
|
|
946
1070
|
// @public
|
|
947
|
-
type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends
|
|
1071
|
+
type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends TreeNodeSchemaUnsafe ? NodeFromSchemaUnsafe<TSchema> : TSchema extends AllowedTypesUnsafe ? NodeFromSchemaUnsafe<FlexListToUnion<TSchema>> : unknown;
|
|
948
1072
|
|
|
949
1073
|
// @public @sealed
|
|
950
|
-
export type TreeNodeSchema<Name extends string = string, Kind extends NodeKind = NodeKind, TNode =
|
|
1074
|
+
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>;
|
|
951
1075
|
|
|
952
1076
|
// @public @sealed
|
|
953
|
-
export interface TreeNodeSchemaClass<out Name extends string = string, out Kind extends NodeKind = NodeKind, out TNode =
|
|
1077
|
+
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> {
|
|
1078
|
+
// @sealed
|
|
1079
|
+
new (data: TInsertable | InternalTreeNode): Unhydrated<TNode>;
|
|
1080
|
+
}
|
|
1081
|
+
|
|
1082
|
+
// @public
|
|
1083
|
+
export interface TreeNodeSchemaClassUnsafe<out Name extends string, out Kind extends NodeKind, out TNode extends Unenforced<TreeNode | TreeLeafValue>, in TInsertable = never, out ImplicitlyConstructable extends boolean = boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
|
|
954
1084
|
// @sealed
|
|
955
1085
|
new (data: TInsertable | InternalTreeNode): Unhydrated<TNode>;
|
|
956
1086
|
}
|
|
@@ -966,11 +1096,20 @@ export interface TreeNodeSchemaCore<out Name extends string, out Kind extends No
|
|
|
966
1096
|
}
|
|
967
1097
|
|
|
968
1098
|
// @public @sealed
|
|
969
|
-
export interface TreeNodeSchemaNonClass<out Name extends string = string, out Kind extends NodeKind = NodeKind, out TNode =
|
|
1099
|
+
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> {
|
|
970
1100
|
// (undocumented)
|
|
971
1101
|
create(data: TInsertable): TNode;
|
|
972
1102
|
}
|
|
973
1103
|
|
|
1104
|
+
// @public
|
|
1105
|
+
interface TreeNodeSchemaNonClassUnsafe<out Name extends string, out Kind extends NodeKind, out TNode extends Unenforced<TreeNode | TreeLeafValue>, in TInsertable = never, out ImplicitlyConstructable extends boolean = boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
|
|
1106
|
+
// (undocumented)
|
|
1107
|
+
create(data: TInsertable): TNode;
|
|
1108
|
+
}
|
|
1109
|
+
|
|
1110
|
+
// @public
|
|
1111
|
+
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>;
|
|
1112
|
+
|
|
974
1113
|
// @public
|
|
975
1114
|
export type TreeObjectNode<T extends RestrictiveStringRecord<ImplicitFieldSchema>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecord<T> & WithType<TypeName, NodeKind.Object, T>;
|
|
976
1115
|
|
|
@@ -986,7 +1125,7 @@ export enum TreeStatus {
|
|
|
986
1125
|
}
|
|
987
1126
|
|
|
988
1127
|
// @public @sealed
|
|
989
|
-
export interface TreeView<TSchema extends ImplicitFieldSchema> extends IDisposable {
|
|
1128
|
+
export interface TreeView<in out TSchema extends ImplicitFieldSchema> extends IDisposable {
|
|
990
1129
|
readonly compatibility: SchemaCompatibilityStatus;
|
|
991
1130
|
readonly events: Listenable<TreeViewEvents>;
|
|
992
1131
|
initialize(content: InsertableTreeFieldFromImplicitField<TSchema>): void;
|
|
@@ -996,6 +1135,15 @@ export interface TreeView<TSchema extends ImplicitFieldSchema> extends IDisposab
|
|
|
996
1135
|
upgradeSchema(): void;
|
|
997
1136
|
}
|
|
998
1137
|
|
|
1138
|
+
// @alpha
|
|
1139
|
+
export interface TreeViewAlpha<in out TSchema extends ImplicitFieldSchema | UnsafeUnknownSchema> extends Omit<TreeView<TSchema extends ImplicitFieldSchema ? TSchema : ImplicitFieldSchema>, "root" | "initialize"> {
|
|
1140
|
+
// (undocumented)
|
|
1141
|
+
initialize(content: InsertableField<TSchema>): void;
|
|
1142
|
+
// (undocumented)
|
|
1143
|
+
get root(): TSchema extends ImplicitFieldSchema ? TreeFieldFromImplicitField<TSchema> : TreeLeafValue | TreeNode;
|
|
1144
|
+
set root(newRoot: InsertableField<TSchema>);
|
|
1145
|
+
}
|
|
1146
|
+
|
|
999
1147
|
// @public @sealed
|
|
1000
1148
|
export class TreeViewConfiguration<TSchema extends ImplicitFieldSchema = ImplicitFieldSchema> implements Required<ITreeViewConfiguration<TSchema>> {
|
|
1001
1149
|
constructor(props: ITreeViewConfiguration<TSchema>);
|
|
@@ -1013,6 +1161,12 @@ export interface TreeViewEvents {
|
|
|
1013
1161
|
schemaChanged(): void;
|
|
1014
1162
|
}
|
|
1015
1163
|
|
|
1164
|
+
// @alpha
|
|
1165
|
+
export const typeboxValidator: JsonValidator;
|
|
1166
|
+
|
|
1167
|
+
// @alpha
|
|
1168
|
+
export function typedObjectValues<TKey extends string, TValues>(object: Record<TKey, TValues>): TValues[];
|
|
1169
|
+
|
|
1016
1170
|
// @public @deprecated
|
|
1017
1171
|
const typeNameSymbol: unique symbol;
|
|
1018
1172
|
|
|
@@ -1025,6 +1179,12 @@ export type Unenforced<_DesiredExtendsConstraint> = unknown;
|
|
|
1025
1179
|
// @public
|
|
1026
1180
|
export type Unhydrated<T> = T;
|
|
1027
1181
|
|
|
1182
|
+
// @alpha
|
|
1183
|
+
export const UnsafeUnknownSchema: unique symbol;
|
|
1184
|
+
|
|
1185
|
+
// @alpha
|
|
1186
|
+
export type UnsafeUnknownSchema = typeof UnsafeUnknownSchema;
|
|
1187
|
+
|
|
1028
1188
|
// @public
|
|
1029
1189
|
export type ValidateRecursiveSchema<T extends TreeNodeSchemaClass<string, NodeKind.Array | NodeKind.Map | NodeKind.Object, TreeNode & WithType<T["identifier"], T["kind"]>, {
|
|
1030
1190
|
[NodeKind.Object]: T["info"] extends RestrictiveStringRecord<ImplicitFieldSchema> ? InsertableObjectFromSchemaRecord<T["info"]> : unknown;
|
|
@@ -1045,7 +1205,7 @@ export interface ViewableTree {
|
|
|
1045
1205
|
export interface WithType<out TName extends string = string, out TKind extends NodeKind = NodeKind, out TInfo = unknown> {
|
|
1046
1206
|
// @deprecated
|
|
1047
1207
|
get [typeNameSymbol](): TName;
|
|
1048
|
-
get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind,
|
|
1208
|
+
get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind, TreeNode | TreeLeafValue, never, boolean, TInfo>;
|
|
1049
1209
|
}
|
|
1050
1210
|
|
|
1051
1211
|
```
|
|
@@ -7,6 +7,9 @@
|
|
|
7
7
|
// @public
|
|
8
8
|
export type AllowedTypes = readonly LazyItem<TreeNodeSchema>[];
|
|
9
9
|
|
|
10
|
+
// @public
|
|
11
|
+
type AllowedTypesUnsafe = readonly LazyItem<TreeNodeSchemaUnsafe>[];
|
|
12
|
+
|
|
10
13
|
// @public
|
|
11
14
|
type ApplyKind<T, Kind extends FieldKind, DefaultsAreOptional extends boolean> = {
|
|
12
15
|
[FieldKind.Required]: T;
|
|
@@ -420,7 +423,7 @@ export type InsertableObjectFromSchemaRecordUnsafe<T extends Unenforced<Restrict
|
|
|
420
423
|
};
|
|
421
424
|
|
|
422
425
|
// @public
|
|
423
|
-
export type InsertableTreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<InsertableTreeNodeFromImplicitAllowedTypes<Types>, Kind, true> : TSchema extends ImplicitAllowedTypes ? InsertableTreeNodeFromImplicitAllowedTypes<TSchema> :
|
|
426
|
+
export type InsertableTreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<InsertableTreeNodeFromImplicitAllowedTypes<Types>, Kind, true> : TSchema extends ImplicitAllowedTypes ? InsertableTreeNodeFromImplicitAllowedTypes<TSchema> : never;
|
|
424
427
|
|
|
425
428
|
// @public
|
|
426
429
|
export type InsertableTreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind, true> : InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema>;
|
|
@@ -429,7 +432,7 @@ export type InsertableTreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforce
|
|
|
429
432
|
export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? InsertableTypedNode<TSchema> : TSchema extends AllowedTypes ? InsertableTypedNode<FlexListToUnion<TSchema>> : never;
|
|
430
433
|
|
|
431
434
|
// @public
|
|
432
|
-
export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends
|
|
435
|
+
export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends AllowedTypesUnsafe ? InsertableTypedNodeUnsafe<FlexListToUnion<TSchema>> : InsertableTypedNodeUnsafe<TSchema>;
|
|
433
436
|
|
|
434
437
|
// @public
|
|
435
438
|
export type InsertableTypedNode<T extends TreeNodeSchema> = (T extends {
|
|
@@ -474,6 +477,9 @@ declare namespace InternalTypes {
|
|
|
474
477
|
NodeBuilderDataUnsafe,
|
|
475
478
|
NodeFromSchemaUnsafe,
|
|
476
479
|
ReadonlyMapInlined,
|
|
480
|
+
TreeNodeSchemaUnsafe,
|
|
481
|
+
AllowedTypesUnsafe,
|
|
482
|
+
TreeNodeSchemaNonClassUnsafe,
|
|
477
483
|
FlexList,
|
|
478
484
|
FlexListToUnion,
|
|
479
485
|
ExtractItemType,
|
|
@@ -564,10 +570,10 @@ export type Myself<M extends IMember = IMember> = M & {
|
|
|
564
570
|
};
|
|
565
571
|
|
|
566
572
|
// @public
|
|
567
|
-
type NodeBuilderData<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind,
|
|
573
|
+
type NodeBuilderData<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, TreeNode | TreeLeafValue, infer TBuild> ? TBuild : never;
|
|
568
574
|
|
|
569
575
|
// @public
|
|
570
|
-
type NodeBuilderDataUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends
|
|
576
|
+
type NodeBuilderDataUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchemaUnsafe<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
|
|
571
577
|
|
|
572
578
|
// @beta @sealed
|
|
573
579
|
export interface NodeChangedData<TNode extends TreeNode = TreeNode> {
|
|
@@ -578,7 +584,7 @@ export interface NodeChangedData<TNode extends TreeNode = TreeNode> {
|
|
|
578
584
|
export type NodeFromSchema<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, infer TNode> ? TNode : never;
|
|
579
585
|
|
|
580
586
|
// @public
|
|
581
|
-
type NodeFromSchemaUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends
|
|
587
|
+
type NodeFromSchemaUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchemaUnsafe<string, NodeKind, infer TNode> ? TNode : never;
|
|
582
588
|
|
|
583
589
|
// @public
|
|
584
590
|
export interface NodeInDocumentConstraint {
|
|
@@ -609,6 +615,10 @@ type ObjectFromSchemaRecordUnsafe<T extends Unenforced<RestrictiveStringRecord<I
|
|
|
609
615
|
// @public
|
|
610
616
|
export type Off = () => void;
|
|
611
617
|
|
|
618
|
+
// @public @sealed
|
|
619
|
+
export interface ReadonlyArrayNode<out T = TreeNode | TreeLeafValue> extends ReadonlyArray<T>, Awaited<TreeNode & WithType<string, NodeKind.Array>> {
|
|
620
|
+
}
|
|
621
|
+
|
|
612
622
|
// @public @sealed
|
|
613
623
|
interface ReadonlyMapInlined<K, T extends Unenforced<ImplicitAllowedTypes>> {
|
|
614
624
|
[Symbol.iterator](): IterableIterator<[K, TreeNodeFromImplicitAllowedTypesUnsafe<T>]>;
|
|
@@ -665,17 +675,17 @@ export const rollback: unique symbol;
|
|
|
665
675
|
// @public @sealed
|
|
666
676
|
export interface RunTransaction {
|
|
667
677
|
<TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult): TResult;
|
|
668
|
-
<TView extends TreeView<
|
|
678
|
+
<TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult): TResult;
|
|
669
679
|
<TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult | typeof rollback): TResult | typeof rollback;
|
|
670
|
-
<TView extends TreeView<
|
|
680
|
+
<TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback): TResult | typeof rollback;
|
|
671
681
|
<TNode extends TreeNode>(node: TNode, transaction: (node: TNode) => void): void;
|
|
672
|
-
<TView extends TreeView<
|
|
682
|
+
<TView extends TreeView<any>>(tree: TView, transaction: (root: TView["root"]) => void): void;
|
|
673
683
|
<TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult, preconditions?: readonly TransactionConstraint[]): TResult;
|
|
674
|
-
<TView extends TreeView<
|
|
684
|
+
<TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult, preconditions?: readonly TransactionConstraint[]): TResult;
|
|
675
685
|
<TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult | typeof rollback, preconditions?: readonly TransactionConstraint[]): TResult | typeof rollback;
|
|
676
|
-
<TView extends TreeView<
|
|
686
|
+
<TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback, preconditions?: readonly TransactionConstraint[]): TResult | typeof rollback;
|
|
677
687
|
<TNode extends TreeNode>(node: TNode, transaction: (node: TNode) => void, preconditions?: readonly TransactionConstraint[]): void;
|
|
678
|
-
<TView extends TreeView<
|
|
688
|
+
<TView extends TreeView<any>>(tree: TView, transaction: (root: TView["root"]) => void, preconditions?: readonly TransactionConstraint[]): void;
|
|
679
689
|
readonly rollback: typeof rollback;
|
|
680
690
|
}
|
|
681
691
|
|
|
@@ -757,7 +767,7 @@ interface TreeApi extends TreeNodeApi {
|
|
|
757
767
|
}
|
|
758
768
|
|
|
759
769
|
// @public @sealed
|
|
760
|
-
export interface TreeArrayNode<TAllowedTypes extends ImplicitAllowedTypes = ImplicitAllowedTypes> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypes<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypes<TAllowedTypes
|
|
770
|
+
export interface TreeArrayNode<TAllowedTypes extends ImplicitAllowedTypes = ImplicitAllowedTypes> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypes<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypes<TAllowedTypes>> {
|
|
761
771
|
}
|
|
762
772
|
|
|
763
773
|
// @public
|
|
@@ -766,7 +776,7 @@ export const TreeArrayNode: {
|
|
|
766
776
|
};
|
|
767
777
|
|
|
768
778
|
// @public @sealed
|
|
769
|
-
interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom> extends
|
|
779
|
+
interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom = ReadonlyArrayNode> extends ReadonlyArrayNode<T> {
|
|
770
780
|
insertAt(index: number, ...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
771
781
|
insertAtEnd(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
772
782
|
insertAtStart(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
@@ -788,7 +798,7 @@ interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom> extends ReadonlyArray<
|
|
|
788
798
|
}
|
|
789
799
|
|
|
790
800
|
// @public @sealed
|
|
791
|
-
export interface TreeArrayNodeUnsafe<TAllowedTypes extends Unenforced<ImplicitAllowedTypes>> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes
|
|
801
|
+
export interface TreeArrayNodeUnsafe<TAllowedTypes extends Unenforced<ImplicitAllowedTypes>> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>> {
|
|
792
802
|
}
|
|
793
803
|
|
|
794
804
|
// @beta @sealed
|
|
@@ -808,7 +818,7 @@ export interface TreeChangeEventsBeta<TNode extends TreeNode = TreeNode> extends
|
|
|
808
818
|
}
|
|
809
819
|
|
|
810
820
|
// @public
|
|
811
|
-
export type TreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypes<Types>, Kind, false> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypes<TSchema> :
|
|
821
|
+
export type TreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypes<Types>, Kind, false> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypes<TSchema> : TreeNode | TreeLeafValue | undefined;
|
|
812
822
|
|
|
813
823
|
// @public
|
|
814
824
|
type TreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind, false> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypesUnsafe<TSchema> : unknown;
|
|
@@ -857,13 +867,19 @@ export interface TreeNodeApi {
|
|
|
857
867
|
export type TreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
|
|
858
868
|
|
|
859
869
|
// @public
|
|
860
|
-
type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends
|
|
870
|
+
type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends TreeNodeSchemaUnsafe ? NodeFromSchemaUnsafe<TSchema> : TSchema extends AllowedTypesUnsafe ? NodeFromSchemaUnsafe<FlexListToUnion<TSchema>> : unknown;
|
|
861
871
|
|
|
862
872
|
// @public @sealed
|
|
863
|
-
export type TreeNodeSchema<Name extends string = string, Kind extends NodeKind = NodeKind, TNode =
|
|
873
|
+
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>;
|
|
864
874
|
|
|
865
875
|
// @public @sealed
|
|
866
|
-
export interface TreeNodeSchemaClass<out Name extends string = string, out Kind extends NodeKind = NodeKind, out TNode =
|
|
876
|
+
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> {
|
|
877
|
+
// @sealed
|
|
878
|
+
new (data: TInsertable | InternalTreeNode): Unhydrated<TNode>;
|
|
879
|
+
}
|
|
880
|
+
|
|
881
|
+
// @public
|
|
882
|
+
export interface TreeNodeSchemaClassUnsafe<out Name extends string, out Kind extends NodeKind, out TNode extends Unenforced<TreeNode | TreeLeafValue>, in TInsertable = never, out ImplicitlyConstructable extends boolean = boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
|
|
867
883
|
// @sealed
|
|
868
884
|
new (data: TInsertable | InternalTreeNode): Unhydrated<TNode>;
|
|
869
885
|
}
|
|
@@ -879,11 +895,20 @@ export interface TreeNodeSchemaCore<out Name extends string, out Kind extends No
|
|
|
879
895
|
}
|
|
880
896
|
|
|
881
897
|
// @public @sealed
|
|
882
|
-
export interface TreeNodeSchemaNonClass<out Name extends string = string, out Kind extends NodeKind = NodeKind, out TNode =
|
|
898
|
+
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> {
|
|
899
|
+
// (undocumented)
|
|
900
|
+
create(data: TInsertable): TNode;
|
|
901
|
+
}
|
|
902
|
+
|
|
903
|
+
// @public
|
|
904
|
+
interface TreeNodeSchemaNonClassUnsafe<out Name extends string, out Kind extends NodeKind, out TNode extends Unenforced<TreeNode | TreeLeafValue>, in TInsertable = never, out ImplicitlyConstructable extends boolean = boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
|
|
883
905
|
// (undocumented)
|
|
884
906
|
create(data: TInsertable): TNode;
|
|
885
907
|
}
|
|
886
908
|
|
|
909
|
+
// @public
|
|
910
|
+
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>;
|
|
911
|
+
|
|
887
912
|
// @public
|
|
888
913
|
export type TreeObjectNode<T extends RestrictiveStringRecord<ImplicitFieldSchema>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecord<T> & WithType<TypeName, NodeKind.Object, T>;
|
|
889
914
|
|
|
@@ -899,7 +924,7 @@ export enum TreeStatus {
|
|
|
899
924
|
}
|
|
900
925
|
|
|
901
926
|
// @public @sealed
|
|
902
|
-
export interface TreeView<TSchema extends ImplicitFieldSchema> extends IDisposable {
|
|
927
|
+
export interface TreeView<in out TSchema extends ImplicitFieldSchema> extends IDisposable {
|
|
903
928
|
readonly compatibility: SchemaCompatibilityStatus;
|
|
904
929
|
readonly events: Listenable<TreeViewEvents>;
|
|
905
930
|
initialize(content: InsertableTreeFieldFromImplicitField<TSchema>): void;
|
|
@@ -958,7 +983,7 @@ export interface ViewableTree {
|
|
|
958
983
|
export interface WithType<out TName extends string = string, out TKind extends NodeKind = NodeKind, out TInfo = unknown> {
|
|
959
984
|
// @deprecated
|
|
960
985
|
get [typeNameSymbol](): TName;
|
|
961
|
-
get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind,
|
|
986
|
+
get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind, TreeNode | TreeLeafValue, never, boolean, TInfo>;
|
|
962
987
|
}
|
|
963
988
|
|
|
964
989
|
```
|