fluid-framework 2.3.0-288113 → 2.4.0-294316
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 +84 -0
- package/README.md +4 -0
- package/alpha.d.ts +11 -0
- package/api-extractor/api-extractor-lint-alpha.cjs.json +6 -0
- package/api-extractor/api-extractor-lint-alpha.esm.json +6 -0
- package/api-extractor/api-extractor-lint-beta.cjs.json +6 -0
- package/api-extractor/api-extractor-lint-beta.esm.json +6 -0
- package/api-extractor/api-extractor.current.json +4 -1
- package/api-report/fluid-framework.alpha.api.md +1021 -0
- package/api-report/fluid-framework.beta.api.md +35 -16
- package/api-report/fluid-framework.legacy.alpha.api.md +22 -18
- package/api-report/fluid-framework.legacy.public.api.md +22 -18
- package/api-report/fluid-framework.public.api.md +22 -18
- package/beta.d.ts +11 -0
- package/dist/alpha.d.ts +147 -0
- package/dist/beta.d.ts +130 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -6
- package/dist/index.js.map +1 -1
- package/dist/legacy.d.ts +1 -1
- package/dist/public.d.ts +1 -1
- package/lib/alpha.d.ts +147 -0
- package/lib/beta.d.ts +130 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +4 -6
- package/lib/index.js.map +1 -1
- package/lib/legacy.d.ts +1 -1
- package/lib/public.d.ts +1 -1
- package/lib/tsdoc-metadata.json +1 -1
- package/package.json +46 -16
- package/src/index.ts +7 -9
|
@@ -89,21 +89,29 @@ export enum FieldKind {
|
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
// @public
|
|
92
|
-
export interface FieldProps {
|
|
92
|
+
export interface FieldProps<TCustomMetadata = unknown> {
|
|
93
93
|
readonly defaultProvider?: DefaultProvider;
|
|
94
94
|
readonly key?: string;
|
|
95
|
+
readonly metadata?: FieldSchemaMetadata<TCustomMetadata>;
|
|
95
96
|
}
|
|
96
97
|
|
|
97
98
|
// @public @sealed
|
|
98
|
-
export class FieldSchema<out Kind extends FieldKind = FieldKind, out Types extends ImplicitAllowedTypes = ImplicitAllowedTypes> {
|
|
99
|
+
export class FieldSchema<out Kind extends FieldKind = FieldKind, out Types extends ImplicitAllowedTypes = ImplicitAllowedTypes, out TCustomMetadata = unknown> {
|
|
99
100
|
readonly allowedTypes: Types;
|
|
100
101
|
get allowedTypeSet(): ReadonlySet<TreeNodeSchema>;
|
|
101
102
|
readonly kind: Kind;
|
|
102
|
-
|
|
103
|
+
get metadata(): FieldSchemaMetadata<TCustomMetadata> | undefined;
|
|
104
|
+
readonly props?: FieldProps<TCustomMetadata> | undefined;
|
|
103
105
|
readonly requiresValue: boolean;
|
|
104
106
|
protected _typeCheck: MakeNominal;
|
|
105
107
|
}
|
|
106
108
|
|
|
109
|
+
// @public @sealed
|
|
110
|
+
export interface FieldSchemaMetadata<TCustomMetadata = unknown> {
|
|
111
|
+
custom?: TCustomMetadata;
|
|
112
|
+
description?: string | undefined;
|
|
113
|
+
}
|
|
114
|
+
|
|
107
115
|
// @public
|
|
108
116
|
export interface FieldSchemaUnsafe<out Kind extends FieldKind, out Types extends Unenforced<ImplicitAllowedTypes>> extends FieldSchema<Kind, any> {
|
|
109
117
|
readonly allowedTypes: Types;
|
|
@@ -563,9 +571,9 @@ type NodeBuilderData<T extends TreeNodeSchema> = T extends TreeNodeSchema<string
|
|
|
563
571
|
// @public
|
|
564
572
|
type NodeBuilderDataUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchema<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
|
|
565
573
|
|
|
566
|
-
// @
|
|
567
|
-
export interface NodeChangedData {
|
|
568
|
-
readonly changedProperties?: ReadonlySet<string>;
|
|
574
|
+
// @beta @sealed
|
|
575
|
+
export interface NodeChangedData<TNode extends TreeNode = TreeNode> {
|
|
576
|
+
readonly changedProperties?: ReadonlySet<TNode extends WithType<string, NodeKind.Object, infer TInfo> ? string & keyof TInfo : string>;
|
|
569
577
|
}
|
|
570
578
|
|
|
571
579
|
// @public
|
|
@@ -679,7 +687,7 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
|
|
|
679
687
|
constructor(scope: TScope);
|
|
680
688
|
array<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchema<ScopedSchemaName<TScope, `Array<${string}>`>, NodeKind.Array, TreeArrayNode<T> & WithType<ScopedSchemaName<TScope, `Array<${string}>`>, NodeKind.Array>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>, true, T>;
|
|
681
689
|
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>;
|
|
682
|
-
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>, {
|
|
690
|
+
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>, {
|
|
683
691
|
[Symbol.iterator](): Iterator<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>>;
|
|
684
692
|
}, false, T>;
|
|
685
693
|
readonly boolean: TreeNodeSchema<"com.fluidframework.leaf.boolean", NodeKind.Leaf, boolean, boolean>;
|
|
@@ -687,7 +695,7 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
|
|
|
687
695
|
get identifier(): FieldSchema<FieldKind.Identifier, typeof SchemaFactory.string>;
|
|
688
696
|
map<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchema<ScopedSchemaName<TScope, `Map<${string}>`>, NodeKind.Map, TreeMapNode<T> & WithType<ScopedSchemaName<TScope, `Map<${string}>`>, NodeKind.Map>, MapNodeInsertableData<T>, true, T>;
|
|
689
697
|
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>;
|
|
690
|
-
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>, {
|
|
698
|
+
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>, {
|
|
691
699
|
[Symbol.iterator](): Iterator<[
|
|
692
700
|
string,
|
|
693
701
|
InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>
|
|
@@ -697,9 +705,9 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
|
|
|
697
705
|
readonly number: TreeNodeSchema<"com.fluidframework.leaf.number", NodeKind.Leaf, number, number>;
|
|
698
706
|
object<const Name extends TName, const T extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema>>(name: Name, fields: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, TreeObjectNode<T, ScopedSchemaName<TScope, Name>>, object & InsertableObjectFromSchemaRecord<T>, true, T>;
|
|
699
707
|
objectRecursive<const Name extends TName, const T extends Unenforced<RestrictiveReadonlyRecord<string, 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]>; } & { readonly [Property_1 in keyof T as FieldHasDefaultUnsafe<T[Property_1]> extends true ? Property_1 : never]?: InsertableTreeFieldFromImplicitFieldUnsafe<T[Property_1]> | undefined; }, false, T>;
|
|
700
|
-
optional<const T extends ImplicitAllowedTypes>(t: T, props?: Omit<FieldProps
|
|
708
|
+
optional<const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider">): FieldSchema<FieldKind.Optional, T, TCustomMetadata>;
|
|
701
709
|
optionalRecursive<const T extends Unenforced<ImplicitAllowedTypes>>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchemaUnsafe<FieldKind.Optional, T>;
|
|
702
|
-
required<const T extends ImplicitAllowedTypes>(t: T, props?: Omit<FieldProps
|
|
710
|
+
required<const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider">): FieldSchema<FieldKind.Required, T, TCustomMetadata>;
|
|
703
711
|
requiredRecursive<const T extends Unenforced<ImplicitAllowedTypes>>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchemaUnsafe<FieldKind.Required, T>;
|
|
704
712
|
// (undocumented)
|
|
705
713
|
readonly scope: TScope;
|
|
@@ -778,12 +786,22 @@ interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom> extends ReadonlyArray<
|
|
|
778
786
|
export interface TreeArrayNodeUnsafe<TAllowedTypes extends Unenforced<ImplicitAllowedTypes>> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, TreeArrayNode> {
|
|
779
787
|
}
|
|
780
788
|
|
|
789
|
+
// @beta @sealed
|
|
790
|
+
export const TreeBeta: {
|
|
791
|
+
readonly on: <K extends keyof TreeChangeEventsBeta<TNode>, TNode extends TreeNode>(node: TNode, eventName: K, listener: NoInfer<TreeChangeEventsBeta<TNode>[K]>) => () => void;
|
|
792
|
+
};
|
|
793
|
+
|
|
781
794
|
// @public @sealed
|
|
782
|
-
export interface TreeChangeEvents
|
|
783
|
-
nodeChanged(
|
|
795
|
+
export interface TreeChangeEvents {
|
|
796
|
+
nodeChanged(unstable?: unknown): void;
|
|
784
797
|
treeChanged(): void;
|
|
785
798
|
}
|
|
786
799
|
|
|
800
|
+
// @beta @sealed
|
|
801
|
+
export interface TreeChangeEventsBeta<TNode extends TreeNode = TreeNode> extends TreeChangeEvents {
|
|
802
|
+
nodeChanged: (data: NodeChangedData<TNode> & (TNode extends WithType<string, NodeKind.Map | NodeKind.Object> ? Required<Pick<NodeChangedData<TNode>, "changedProperties">> : unknown)) => void;
|
|
803
|
+
}
|
|
804
|
+
|
|
787
805
|
// @public
|
|
788
806
|
export type TreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypes<Types>, Kind, false> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypes<TSchema> : unknown;
|
|
789
807
|
|
|
@@ -823,7 +841,7 @@ export abstract class TreeNode implements WithType {
|
|
|
823
841
|
export interface TreeNodeApi {
|
|
824
842
|
is<TSchema extends ImplicitAllowedTypes>(value: unknown, schema: TSchema): value is TreeNodeFromImplicitAllowedTypes<TSchema>;
|
|
825
843
|
key(node: TreeNode): string | number;
|
|
826
|
-
on<K extends keyof TreeChangeEvents
|
|
844
|
+
on<K extends keyof TreeChangeEvents>(node: TreeNode, eventName: K, listener: TreeChangeEvents[K]): () => void;
|
|
827
845
|
parent(node: TreeNode): TreeNode | undefined;
|
|
828
846
|
schema(node: TreeNode | TreeLeafValue): TreeNodeSchema;
|
|
829
847
|
shortId(node: TreeNode): number | string | undefined;
|
|
@@ -861,7 +879,7 @@ interface TreeNodeSchemaNonClass<out Name extends string = string, out Kind exte
|
|
|
861
879
|
}
|
|
862
880
|
|
|
863
881
|
// @public
|
|
864
|
-
export type TreeObjectNode<T extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecord<T> & WithType<TypeName, NodeKind.Object>;
|
|
882
|
+
export type TreeObjectNode<T extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecord<T> & WithType<TypeName, NodeKind.Object, T>;
|
|
865
883
|
|
|
866
884
|
// @public
|
|
867
885
|
export type TreeObjectNodeUnsafe<T extends Unenforced<RestrictiveReadonlyRecord<string, ImplicitFieldSchema>>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecordUnsafe<T> & WithType<TypeName, NodeKind.Object>;
|
|
@@ -881,6 +899,7 @@ export interface TreeView<TSchema extends ImplicitFieldSchema> extends IDisposab
|
|
|
881
899
|
initialize(content: InsertableTreeFieldFromImplicitField<TSchema>): void;
|
|
882
900
|
get root(): TreeFieldFromImplicitField<TSchema>;
|
|
883
901
|
set root(newRoot: InsertableTreeFieldFromImplicitField<TSchema>);
|
|
902
|
+
readonly schema: TSchema;
|
|
884
903
|
upgradeSchema(): void;
|
|
885
904
|
}
|
|
886
905
|
|
|
@@ -925,10 +944,10 @@ export type ValidateRecursiveSchema<T extends TreeNodeSchemaClass<string, NodeKi
|
|
|
925
944
|
}[T["kind"]]>> = true;
|
|
926
945
|
|
|
927
946
|
// @public @sealed
|
|
928
|
-
export interface WithType<out TName extends string = string, out TKind extends NodeKind = NodeKind> {
|
|
947
|
+
export interface WithType<out TName extends string = string, out TKind extends NodeKind = NodeKind, out TInfo = unknown> {
|
|
929
948
|
// @deprecated
|
|
930
949
|
get [typeNameSymbol](): TName;
|
|
931
|
-
get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind>;
|
|
950
|
+
get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind, unknown, never, boolean, TInfo>;
|
|
932
951
|
}
|
|
933
952
|
|
|
934
953
|
```
|
|
@@ -92,21 +92,29 @@ export enum FieldKind {
|
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
// @public
|
|
95
|
-
export interface FieldProps {
|
|
95
|
+
export interface FieldProps<TCustomMetadata = unknown> {
|
|
96
96
|
readonly defaultProvider?: DefaultProvider;
|
|
97
97
|
readonly key?: string;
|
|
98
|
+
readonly metadata?: FieldSchemaMetadata<TCustomMetadata>;
|
|
98
99
|
}
|
|
99
100
|
|
|
100
101
|
// @public @sealed
|
|
101
|
-
export class FieldSchema<out Kind extends FieldKind = FieldKind, out Types extends ImplicitAllowedTypes = ImplicitAllowedTypes> {
|
|
102
|
+
export class FieldSchema<out Kind extends FieldKind = FieldKind, out Types extends ImplicitAllowedTypes = ImplicitAllowedTypes, out TCustomMetadata = unknown> {
|
|
102
103
|
readonly allowedTypes: Types;
|
|
103
104
|
get allowedTypeSet(): ReadonlySet<TreeNodeSchema>;
|
|
104
105
|
readonly kind: Kind;
|
|
105
|
-
|
|
106
|
+
get metadata(): FieldSchemaMetadata<TCustomMetadata> | undefined;
|
|
107
|
+
readonly props?: FieldProps<TCustomMetadata> | undefined;
|
|
106
108
|
readonly requiresValue: boolean;
|
|
107
109
|
protected _typeCheck: MakeNominal;
|
|
108
110
|
}
|
|
109
111
|
|
|
112
|
+
// @public @sealed
|
|
113
|
+
export interface FieldSchemaMetadata<TCustomMetadata = unknown> {
|
|
114
|
+
custom?: TCustomMetadata;
|
|
115
|
+
description?: string | undefined;
|
|
116
|
+
}
|
|
117
|
+
|
|
110
118
|
// @public
|
|
111
119
|
export interface FieldSchemaUnsafe<out Kind extends FieldKind, out Types extends Unenforced<ImplicitAllowedTypes>> extends FieldSchema<Kind, any> {
|
|
112
120
|
readonly allowedTypes: Types;
|
|
@@ -869,11 +877,6 @@ type NodeBuilderData<T extends TreeNodeSchema> = T extends TreeNodeSchema<string
|
|
|
869
877
|
// @public
|
|
870
878
|
type NodeBuilderDataUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchema<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
|
|
871
879
|
|
|
872
|
-
// @public
|
|
873
|
-
export interface NodeChangedData {
|
|
874
|
-
readonly changedProperties?: ReadonlySet<string>;
|
|
875
|
-
}
|
|
876
|
-
|
|
877
880
|
// @public
|
|
878
881
|
export type NodeFromSchema<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, infer TNode> ? TNode : never;
|
|
879
882
|
|
|
@@ -985,7 +988,7 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
|
|
|
985
988
|
constructor(scope: TScope);
|
|
986
989
|
array<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchema<ScopedSchemaName<TScope, `Array<${string}>`>, NodeKind.Array, TreeArrayNode<T> & WithType<ScopedSchemaName<TScope, `Array<${string}>`>, NodeKind.Array>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>, true, T>;
|
|
987
990
|
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>;
|
|
988
|
-
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>, {
|
|
991
|
+
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>, {
|
|
989
992
|
[Symbol.iterator](): Iterator<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>>;
|
|
990
993
|
}, false, T>;
|
|
991
994
|
readonly boolean: TreeNodeSchema<"com.fluidframework.leaf.boolean", NodeKind.Leaf, boolean, boolean>;
|
|
@@ -993,7 +996,7 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
|
|
|
993
996
|
get identifier(): FieldSchema<FieldKind.Identifier, typeof SchemaFactory.string>;
|
|
994
997
|
map<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchema<ScopedSchemaName<TScope, `Map<${string}>`>, NodeKind.Map, TreeMapNode<T> & WithType<ScopedSchemaName<TScope, `Map<${string}>`>, NodeKind.Map>, MapNodeInsertableData<T>, true, T>;
|
|
995
998
|
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>;
|
|
996
|
-
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>, {
|
|
999
|
+
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>, {
|
|
997
1000
|
[Symbol.iterator](): Iterator<[
|
|
998
1001
|
string,
|
|
999
1002
|
InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>
|
|
@@ -1003,9 +1006,9 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
|
|
|
1003
1006
|
readonly number: TreeNodeSchema<"com.fluidframework.leaf.number", NodeKind.Leaf, number, number>;
|
|
1004
1007
|
object<const Name extends TName, const T extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema>>(name: Name, fields: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, TreeObjectNode<T, ScopedSchemaName<TScope, Name>>, object & InsertableObjectFromSchemaRecord<T>, true, T>;
|
|
1005
1008
|
objectRecursive<const Name extends TName, const T extends Unenforced<RestrictiveReadonlyRecord<string, 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]>; } & { readonly [Property_1 in keyof T as FieldHasDefaultUnsafe<T[Property_1]> extends true ? Property_1 : never]?: InsertableTreeFieldFromImplicitFieldUnsafe<T[Property_1]> | undefined; }, false, T>;
|
|
1006
|
-
optional<const T extends ImplicitAllowedTypes>(t: T, props?: Omit<FieldProps
|
|
1009
|
+
optional<const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider">): FieldSchema<FieldKind.Optional, T, TCustomMetadata>;
|
|
1007
1010
|
optionalRecursive<const T extends Unenforced<ImplicitAllowedTypes>>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchemaUnsafe<FieldKind.Optional, T>;
|
|
1008
|
-
required<const T extends ImplicitAllowedTypes>(t: T, props?: Omit<FieldProps
|
|
1011
|
+
required<const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider">): FieldSchema<FieldKind.Required, T, TCustomMetadata>;
|
|
1009
1012
|
requiredRecursive<const T extends Unenforced<ImplicitAllowedTypes>>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchemaUnsafe<FieldKind.Required, T>;
|
|
1010
1013
|
// (undocumented)
|
|
1011
1014
|
readonly scope: TScope;
|
|
@@ -1176,8 +1179,8 @@ export interface TreeArrayNodeUnsafe<TAllowedTypes extends Unenforced<ImplicitAl
|
|
|
1176
1179
|
}
|
|
1177
1180
|
|
|
1178
1181
|
// @public @sealed
|
|
1179
|
-
export interface TreeChangeEvents
|
|
1180
|
-
nodeChanged(
|
|
1182
|
+
export interface TreeChangeEvents {
|
|
1183
|
+
nodeChanged(unstable?: unknown): void;
|
|
1181
1184
|
treeChanged(): void;
|
|
1182
1185
|
}
|
|
1183
1186
|
|
|
@@ -1220,7 +1223,7 @@ export abstract class TreeNode implements WithType {
|
|
|
1220
1223
|
export interface TreeNodeApi {
|
|
1221
1224
|
is<TSchema extends ImplicitAllowedTypes>(value: unknown, schema: TSchema): value is TreeNodeFromImplicitAllowedTypes<TSchema>;
|
|
1222
1225
|
key(node: TreeNode): string | number;
|
|
1223
|
-
on<K extends keyof TreeChangeEvents
|
|
1226
|
+
on<K extends keyof TreeChangeEvents>(node: TreeNode, eventName: K, listener: TreeChangeEvents[K]): () => void;
|
|
1224
1227
|
parent(node: TreeNode): TreeNode | undefined;
|
|
1225
1228
|
schema(node: TreeNode | TreeLeafValue): TreeNodeSchema;
|
|
1226
1229
|
shortId(node: TreeNode): number | string | undefined;
|
|
@@ -1258,7 +1261,7 @@ interface TreeNodeSchemaNonClass<out Name extends string = string, out Kind exte
|
|
|
1258
1261
|
}
|
|
1259
1262
|
|
|
1260
1263
|
// @public
|
|
1261
|
-
export type TreeObjectNode<T extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecord<T> & WithType<TypeName, NodeKind.Object>;
|
|
1264
|
+
export type TreeObjectNode<T extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecord<T> & WithType<TypeName, NodeKind.Object, T>;
|
|
1262
1265
|
|
|
1263
1266
|
// @public
|
|
1264
1267
|
export type TreeObjectNodeUnsafe<T extends Unenforced<RestrictiveReadonlyRecord<string, ImplicitFieldSchema>>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecordUnsafe<T> & WithType<TypeName, NodeKind.Object>;
|
|
@@ -1278,6 +1281,7 @@ export interface TreeView<TSchema extends ImplicitFieldSchema> extends IDisposab
|
|
|
1278
1281
|
initialize(content: InsertableTreeFieldFromImplicitField<TSchema>): void;
|
|
1279
1282
|
get root(): TreeFieldFromImplicitField<TSchema>;
|
|
1280
1283
|
set root(newRoot: InsertableTreeFieldFromImplicitField<TSchema>);
|
|
1284
|
+
readonly schema: TSchema;
|
|
1281
1285
|
upgradeSchema(): void;
|
|
1282
1286
|
}
|
|
1283
1287
|
|
|
@@ -1322,10 +1326,10 @@ export type ValidateRecursiveSchema<T extends TreeNodeSchemaClass<string, NodeKi
|
|
|
1322
1326
|
}[T["kind"]]>> = true;
|
|
1323
1327
|
|
|
1324
1328
|
// @public @sealed
|
|
1325
|
-
export interface WithType<out TName extends string = string, out TKind extends NodeKind = NodeKind> {
|
|
1329
|
+
export interface WithType<out TName extends string = string, out TKind extends NodeKind = NodeKind, out TInfo = unknown> {
|
|
1326
1330
|
// @deprecated
|
|
1327
1331
|
get [typeNameSymbol](): TName;
|
|
1328
|
-
get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind>;
|
|
1332
|
+
get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind, unknown, never, boolean, TInfo>;
|
|
1329
1333
|
}
|
|
1330
1334
|
|
|
1331
1335
|
```
|
|
@@ -89,21 +89,29 @@ export enum FieldKind {
|
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
// @public
|
|
92
|
-
export interface FieldProps {
|
|
92
|
+
export interface FieldProps<TCustomMetadata = unknown> {
|
|
93
93
|
readonly defaultProvider?: DefaultProvider;
|
|
94
94
|
readonly key?: string;
|
|
95
|
+
readonly metadata?: FieldSchemaMetadata<TCustomMetadata>;
|
|
95
96
|
}
|
|
96
97
|
|
|
97
98
|
// @public @sealed
|
|
98
|
-
export class FieldSchema<out Kind extends FieldKind = FieldKind, out Types extends ImplicitAllowedTypes = ImplicitAllowedTypes> {
|
|
99
|
+
export class FieldSchema<out Kind extends FieldKind = FieldKind, out Types extends ImplicitAllowedTypes = ImplicitAllowedTypes, out TCustomMetadata = unknown> {
|
|
99
100
|
readonly allowedTypes: Types;
|
|
100
101
|
get allowedTypeSet(): ReadonlySet<TreeNodeSchema>;
|
|
101
102
|
readonly kind: Kind;
|
|
102
|
-
|
|
103
|
+
get metadata(): FieldSchemaMetadata<TCustomMetadata> | undefined;
|
|
104
|
+
readonly props?: FieldProps<TCustomMetadata> | undefined;
|
|
103
105
|
readonly requiresValue: boolean;
|
|
104
106
|
protected _typeCheck: MakeNominal;
|
|
105
107
|
}
|
|
106
108
|
|
|
109
|
+
// @public @sealed
|
|
110
|
+
export interface FieldSchemaMetadata<TCustomMetadata = unknown> {
|
|
111
|
+
custom?: TCustomMetadata;
|
|
112
|
+
description?: string | undefined;
|
|
113
|
+
}
|
|
114
|
+
|
|
107
115
|
// @public
|
|
108
116
|
export interface FieldSchemaUnsafe<out Kind extends FieldKind, out Types extends Unenforced<ImplicitAllowedTypes>> extends FieldSchema<Kind, any> {
|
|
109
117
|
readonly allowedTypes: Types;
|
|
@@ -599,11 +607,6 @@ type NodeBuilderData<T extends TreeNodeSchema> = T extends TreeNodeSchema<string
|
|
|
599
607
|
// @public
|
|
600
608
|
type NodeBuilderDataUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchema<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
|
|
601
609
|
|
|
602
|
-
// @public
|
|
603
|
-
export interface NodeChangedData {
|
|
604
|
-
readonly changedProperties?: ReadonlySet<string>;
|
|
605
|
-
}
|
|
606
|
-
|
|
607
610
|
// @public
|
|
608
611
|
export type NodeFromSchema<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, infer TNode> ? TNode : never;
|
|
609
612
|
|
|
@@ -715,7 +718,7 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
|
|
|
715
718
|
constructor(scope: TScope);
|
|
716
719
|
array<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchema<ScopedSchemaName<TScope, `Array<${string}>`>, NodeKind.Array, TreeArrayNode<T> & WithType<ScopedSchemaName<TScope, `Array<${string}>`>, NodeKind.Array>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>, true, T>;
|
|
717
720
|
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>;
|
|
718
|
-
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>, {
|
|
721
|
+
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>, {
|
|
719
722
|
[Symbol.iterator](): Iterator<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>>;
|
|
720
723
|
}, false, T>;
|
|
721
724
|
readonly boolean: TreeNodeSchema<"com.fluidframework.leaf.boolean", NodeKind.Leaf, boolean, boolean>;
|
|
@@ -723,7 +726,7 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
|
|
|
723
726
|
get identifier(): FieldSchema<FieldKind.Identifier, typeof SchemaFactory.string>;
|
|
724
727
|
map<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchema<ScopedSchemaName<TScope, `Map<${string}>`>, NodeKind.Map, TreeMapNode<T> & WithType<ScopedSchemaName<TScope, `Map<${string}>`>, NodeKind.Map>, MapNodeInsertableData<T>, true, T>;
|
|
725
728
|
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>;
|
|
726
|
-
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>, {
|
|
729
|
+
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>, {
|
|
727
730
|
[Symbol.iterator](): Iterator<[
|
|
728
731
|
string,
|
|
729
732
|
InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>
|
|
@@ -733,9 +736,9 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
|
|
|
733
736
|
readonly number: TreeNodeSchema<"com.fluidframework.leaf.number", NodeKind.Leaf, number, number>;
|
|
734
737
|
object<const Name extends TName, const T extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema>>(name: Name, fields: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, TreeObjectNode<T, ScopedSchemaName<TScope, Name>>, object & InsertableObjectFromSchemaRecord<T>, true, T>;
|
|
735
738
|
objectRecursive<const Name extends TName, const T extends Unenforced<RestrictiveReadonlyRecord<string, 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]>; } & { readonly [Property_1 in keyof T as FieldHasDefaultUnsafe<T[Property_1]> extends true ? Property_1 : never]?: InsertableTreeFieldFromImplicitFieldUnsafe<T[Property_1]> | undefined; }, false, T>;
|
|
736
|
-
optional<const T extends ImplicitAllowedTypes>(t: T, props?: Omit<FieldProps
|
|
739
|
+
optional<const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider">): FieldSchema<FieldKind.Optional, T, TCustomMetadata>;
|
|
737
740
|
optionalRecursive<const T extends Unenforced<ImplicitAllowedTypes>>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchemaUnsafe<FieldKind.Optional, T>;
|
|
738
|
-
required<const T extends ImplicitAllowedTypes>(t: T, props?: Omit<FieldProps
|
|
741
|
+
required<const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider">): FieldSchema<FieldKind.Required, T, TCustomMetadata>;
|
|
739
742
|
requiredRecursive<const T extends Unenforced<ImplicitAllowedTypes>>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchemaUnsafe<FieldKind.Required, T>;
|
|
740
743
|
// (undocumented)
|
|
741
744
|
readonly scope: TScope;
|
|
@@ -819,8 +822,8 @@ export interface TreeArrayNodeUnsafe<TAllowedTypes extends Unenforced<ImplicitAl
|
|
|
819
822
|
}
|
|
820
823
|
|
|
821
824
|
// @public @sealed
|
|
822
|
-
export interface TreeChangeEvents
|
|
823
|
-
nodeChanged(
|
|
825
|
+
export interface TreeChangeEvents {
|
|
826
|
+
nodeChanged(unstable?: unknown): void;
|
|
824
827
|
treeChanged(): void;
|
|
825
828
|
}
|
|
826
829
|
|
|
@@ -863,7 +866,7 @@ export abstract class TreeNode implements WithType {
|
|
|
863
866
|
export interface TreeNodeApi {
|
|
864
867
|
is<TSchema extends ImplicitAllowedTypes>(value: unknown, schema: TSchema): value is TreeNodeFromImplicitAllowedTypes<TSchema>;
|
|
865
868
|
key(node: TreeNode): string | number;
|
|
866
|
-
on<K extends keyof TreeChangeEvents
|
|
869
|
+
on<K extends keyof TreeChangeEvents>(node: TreeNode, eventName: K, listener: TreeChangeEvents[K]): () => void;
|
|
867
870
|
parent(node: TreeNode): TreeNode | undefined;
|
|
868
871
|
schema(node: TreeNode | TreeLeafValue): TreeNodeSchema;
|
|
869
872
|
shortId(node: TreeNode): number | string | undefined;
|
|
@@ -901,7 +904,7 @@ interface TreeNodeSchemaNonClass<out Name extends string = string, out Kind exte
|
|
|
901
904
|
}
|
|
902
905
|
|
|
903
906
|
// @public
|
|
904
|
-
export type TreeObjectNode<T extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecord<T> & WithType<TypeName, NodeKind.Object>;
|
|
907
|
+
export type TreeObjectNode<T extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecord<T> & WithType<TypeName, NodeKind.Object, T>;
|
|
905
908
|
|
|
906
909
|
// @public
|
|
907
910
|
export type TreeObjectNodeUnsafe<T extends Unenforced<RestrictiveReadonlyRecord<string, ImplicitFieldSchema>>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecordUnsafe<T> & WithType<TypeName, NodeKind.Object>;
|
|
@@ -921,6 +924,7 @@ export interface TreeView<TSchema extends ImplicitFieldSchema> extends IDisposab
|
|
|
921
924
|
initialize(content: InsertableTreeFieldFromImplicitField<TSchema>): void;
|
|
922
925
|
get root(): TreeFieldFromImplicitField<TSchema>;
|
|
923
926
|
set root(newRoot: InsertableTreeFieldFromImplicitField<TSchema>);
|
|
927
|
+
readonly schema: TSchema;
|
|
924
928
|
upgradeSchema(): void;
|
|
925
929
|
}
|
|
926
930
|
|
|
@@ -965,10 +969,10 @@ export type ValidateRecursiveSchema<T extends TreeNodeSchemaClass<string, NodeKi
|
|
|
965
969
|
}[T["kind"]]>> = true;
|
|
966
970
|
|
|
967
971
|
// @public @sealed
|
|
968
|
-
export interface WithType<out TName extends string = string, out TKind extends NodeKind = NodeKind> {
|
|
972
|
+
export interface WithType<out TName extends string = string, out TKind extends NodeKind = NodeKind, out TInfo = unknown> {
|
|
969
973
|
// @deprecated
|
|
970
974
|
get [typeNameSymbol](): TName;
|
|
971
|
-
get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind>;
|
|
975
|
+
get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind, unknown, never, boolean, TInfo>;
|
|
972
976
|
}
|
|
973
977
|
|
|
974
978
|
```
|
|
@@ -89,21 +89,29 @@ export enum FieldKind {
|
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
// @public
|
|
92
|
-
export interface FieldProps {
|
|
92
|
+
export interface FieldProps<TCustomMetadata = unknown> {
|
|
93
93
|
readonly defaultProvider?: DefaultProvider;
|
|
94
94
|
readonly key?: string;
|
|
95
|
+
readonly metadata?: FieldSchemaMetadata<TCustomMetadata>;
|
|
95
96
|
}
|
|
96
97
|
|
|
97
98
|
// @public @sealed
|
|
98
|
-
export class FieldSchema<out Kind extends FieldKind = FieldKind, out Types extends ImplicitAllowedTypes = ImplicitAllowedTypes> {
|
|
99
|
+
export class FieldSchema<out Kind extends FieldKind = FieldKind, out Types extends ImplicitAllowedTypes = ImplicitAllowedTypes, out TCustomMetadata = unknown> {
|
|
99
100
|
readonly allowedTypes: Types;
|
|
100
101
|
get allowedTypeSet(): ReadonlySet<TreeNodeSchema>;
|
|
101
102
|
readonly kind: Kind;
|
|
102
|
-
|
|
103
|
+
get metadata(): FieldSchemaMetadata<TCustomMetadata> | undefined;
|
|
104
|
+
readonly props?: FieldProps<TCustomMetadata> | undefined;
|
|
103
105
|
readonly requiresValue: boolean;
|
|
104
106
|
protected _typeCheck: MakeNominal;
|
|
105
107
|
}
|
|
106
108
|
|
|
109
|
+
// @public @sealed
|
|
110
|
+
export interface FieldSchemaMetadata<TCustomMetadata = unknown> {
|
|
111
|
+
custom?: TCustomMetadata;
|
|
112
|
+
description?: string | undefined;
|
|
113
|
+
}
|
|
114
|
+
|
|
107
115
|
// @public
|
|
108
116
|
export interface FieldSchemaUnsafe<out Kind extends FieldKind, out Types extends Unenforced<ImplicitAllowedTypes>> extends FieldSchema<Kind, any> {
|
|
109
117
|
readonly allowedTypes: Types;
|
|
@@ -563,11 +571,6 @@ type NodeBuilderData<T extends TreeNodeSchema> = T extends TreeNodeSchema<string
|
|
|
563
571
|
// @public
|
|
564
572
|
type NodeBuilderDataUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchema<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
|
|
565
573
|
|
|
566
|
-
// @public
|
|
567
|
-
export interface NodeChangedData {
|
|
568
|
-
readonly changedProperties?: ReadonlySet<string>;
|
|
569
|
-
}
|
|
570
|
-
|
|
571
574
|
// @public
|
|
572
575
|
export type NodeFromSchema<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, infer TNode> ? TNode : never;
|
|
573
576
|
|
|
@@ -679,7 +682,7 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
|
|
|
679
682
|
constructor(scope: TScope);
|
|
680
683
|
array<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchema<ScopedSchemaName<TScope, `Array<${string}>`>, NodeKind.Array, TreeArrayNode<T> & WithType<ScopedSchemaName<TScope, `Array<${string}>`>, NodeKind.Array>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>, true, T>;
|
|
681
684
|
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>;
|
|
682
|
-
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>, {
|
|
685
|
+
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>, {
|
|
683
686
|
[Symbol.iterator](): Iterator<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>>;
|
|
684
687
|
}, false, T>;
|
|
685
688
|
readonly boolean: TreeNodeSchema<"com.fluidframework.leaf.boolean", NodeKind.Leaf, boolean, boolean>;
|
|
@@ -687,7 +690,7 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
|
|
|
687
690
|
get identifier(): FieldSchema<FieldKind.Identifier, typeof SchemaFactory.string>;
|
|
688
691
|
map<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchema<ScopedSchemaName<TScope, `Map<${string}>`>, NodeKind.Map, TreeMapNode<T> & WithType<ScopedSchemaName<TScope, `Map<${string}>`>, NodeKind.Map>, MapNodeInsertableData<T>, true, T>;
|
|
689
692
|
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>;
|
|
690
|
-
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>, {
|
|
693
|
+
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>, {
|
|
691
694
|
[Symbol.iterator](): Iterator<[
|
|
692
695
|
string,
|
|
693
696
|
InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>
|
|
@@ -697,9 +700,9 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
|
|
|
697
700
|
readonly number: TreeNodeSchema<"com.fluidframework.leaf.number", NodeKind.Leaf, number, number>;
|
|
698
701
|
object<const Name extends TName, const T extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema>>(name: Name, fields: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, TreeObjectNode<T, ScopedSchemaName<TScope, Name>>, object & InsertableObjectFromSchemaRecord<T>, true, T>;
|
|
699
702
|
objectRecursive<const Name extends TName, const T extends Unenforced<RestrictiveReadonlyRecord<string, 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]>; } & { readonly [Property_1 in keyof T as FieldHasDefaultUnsafe<T[Property_1]> extends true ? Property_1 : never]?: InsertableTreeFieldFromImplicitFieldUnsafe<T[Property_1]> | undefined; }, false, T>;
|
|
700
|
-
optional<const T extends ImplicitAllowedTypes>(t: T, props?: Omit<FieldProps
|
|
703
|
+
optional<const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider">): FieldSchema<FieldKind.Optional, T, TCustomMetadata>;
|
|
701
704
|
optionalRecursive<const T extends Unenforced<ImplicitAllowedTypes>>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchemaUnsafe<FieldKind.Optional, T>;
|
|
702
|
-
required<const T extends ImplicitAllowedTypes>(t: T, props?: Omit<FieldProps
|
|
705
|
+
required<const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider">): FieldSchema<FieldKind.Required, T, TCustomMetadata>;
|
|
703
706
|
requiredRecursive<const T extends Unenforced<ImplicitAllowedTypes>>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchemaUnsafe<FieldKind.Required, T>;
|
|
704
707
|
// (undocumented)
|
|
705
708
|
readonly scope: TScope;
|
|
@@ -779,8 +782,8 @@ export interface TreeArrayNodeUnsafe<TAllowedTypes extends Unenforced<ImplicitAl
|
|
|
779
782
|
}
|
|
780
783
|
|
|
781
784
|
// @public @sealed
|
|
782
|
-
export interface TreeChangeEvents
|
|
783
|
-
nodeChanged(
|
|
785
|
+
export interface TreeChangeEvents {
|
|
786
|
+
nodeChanged(unstable?: unknown): void;
|
|
784
787
|
treeChanged(): void;
|
|
785
788
|
}
|
|
786
789
|
|
|
@@ -823,7 +826,7 @@ export abstract class TreeNode implements WithType {
|
|
|
823
826
|
export interface TreeNodeApi {
|
|
824
827
|
is<TSchema extends ImplicitAllowedTypes>(value: unknown, schema: TSchema): value is TreeNodeFromImplicitAllowedTypes<TSchema>;
|
|
825
828
|
key(node: TreeNode): string | number;
|
|
826
|
-
on<K extends keyof TreeChangeEvents
|
|
829
|
+
on<K extends keyof TreeChangeEvents>(node: TreeNode, eventName: K, listener: TreeChangeEvents[K]): () => void;
|
|
827
830
|
parent(node: TreeNode): TreeNode | undefined;
|
|
828
831
|
schema(node: TreeNode | TreeLeafValue): TreeNodeSchema;
|
|
829
832
|
shortId(node: TreeNode): number | string | undefined;
|
|
@@ -861,7 +864,7 @@ interface TreeNodeSchemaNonClass<out Name extends string = string, out Kind exte
|
|
|
861
864
|
}
|
|
862
865
|
|
|
863
866
|
// @public
|
|
864
|
-
export type TreeObjectNode<T extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecord<T> & WithType<TypeName, NodeKind.Object>;
|
|
867
|
+
export type TreeObjectNode<T extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecord<T> & WithType<TypeName, NodeKind.Object, T>;
|
|
865
868
|
|
|
866
869
|
// @public
|
|
867
870
|
export type TreeObjectNodeUnsafe<T extends Unenforced<RestrictiveReadonlyRecord<string, ImplicitFieldSchema>>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecordUnsafe<T> & WithType<TypeName, NodeKind.Object>;
|
|
@@ -881,6 +884,7 @@ export interface TreeView<TSchema extends ImplicitFieldSchema> extends IDisposab
|
|
|
881
884
|
initialize(content: InsertableTreeFieldFromImplicitField<TSchema>): void;
|
|
882
885
|
get root(): TreeFieldFromImplicitField<TSchema>;
|
|
883
886
|
set root(newRoot: InsertableTreeFieldFromImplicitField<TSchema>);
|
|
887
|
+
readonly schema: TSchema;
|
|
884
888
|
upgradeSchema(): void;
|
|
885
889
|
}
|
|
886
890
|
|
|
@@ -925,10 +929,10 @@ export type ValidateRecursiveSchema<T extends TreeNodeSchemaClass<string, NodeKi
|
|
|
925
929
|
}[T["kind"]]>> = true;
|
|
926
930
|
|
|
927
931
|
// @public @sealed
|
|
928
|
-
export interface WithType<out TName extends string = string, out TKind extends NodeKind = NodeKind> {
|
|
932
|
+
export interface WithType<out TName extends string = string, out TKind extends NodeKind = NodeKind, out TInfo = unknown> {
|
|
929
933
|
// @deprecated
|
|
930
934
|
get [typeNameSymbol](): TName;
|
|
931
|
-
get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind>;
|
|
935
|
+
get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind, unknown, never, boolean, TInfo>;
|
|
932
936
|
}
|
|
933
937
|
|
|
934
938
|
```
|
package/beta.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/*
|
|
7
|
+
* THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
|
8
|
+
* Generated by "flub generate entrypoints" in @fluid-tools/build-cli.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
export * from "./lib/beta.js";
|