fluid-framework 2.23.0 → 2.31.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 +1311 -1158
- package/api-extractor/api-extractor.current.json +0 -3
- package/api-report/fluid-framework.alpha.api.md +264 -100
- package/api-report/fluid-framework.beta.api.md +83 -58
- package/api-report/fluid-framework.legacy.alpha.api.md +141 -61
- package/api-report/fluid-framework.legacy.public.api.md +83 -58
- package/api-report/fluid-framework.public.api.md +83 -58
- package/dist/alpha.d.ts +33 -1
- package/dist/beta.d.ts +5 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -9
- package/dist/index.js.map +1 -1
- package/dist/legacy.d.ts +8 -1
- package/dist/public.d.ts +5 -1
- package/lib/alpha.d.ts +33 -1
- package/lib/beta.d.ts +5 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/lib/legacy.d.ts +8 -1
- package/lib/public.d.ts +5 -1
- package/lib/tsdoc-metadata.json +1 -1
- package/package.json +13 -15
- package/src/index.ts +5 -0
- package/prettier.config.cjs +0 -8
|
@@ -87,7 +87,7 @@ type ExtractItemType<Item extends LazyItem> = Item extends () => infer Result ?
|
|
|
87
87
|
type FieldHasDefault<T extends ImplicitFieldSchema> = T extends FieldSchema<FieldKind.Optional | FieldKind.Identifier> ? true : false;
|
|
88
88
|
|
|
89
89
|
// @public @sealed
|
|
90
|
-
type FieldHasDefaultUnsafe<T extends
|
|
90
|
+
type FieldHasDefaultUnsafe<T extends ImplicitFieldSchemaUnsafe> = T extends FieldSchemaUnsafe<FieldKind.Optional | FieldKind.Identifier, ImplicitAllowedTypesUnsafe> ? true : false;
|
|
91
91
|
|
|
92
92
|
// @public
|
|
93
93
|
export enum FieldKind {
|
|
@@ -105,10 +105,14 @@ export interface FieldProps<TCustomMetadata = unknown> {
|
|
|
105
105
|
|
|
106
106
|
// @public @sealed
|
|
107
107
|
export class FieldSchema<out Kind extends FieldKind = FieldKind, out Types extends ImplicitAllowedTypes = ImplicitAllowedTypes, out TCustomMetadata = unknown> {
|
|
108
|
+
protected constructor(
|
|
109
|
+
kind: Kind,
|
|
110
|
+
allowedTypes: Types,
|
|
111
|
+
props?: FieldProps<TCustomMetadata> | undefined);
|
|
108
112
|
readonly allowedTypes: Types;
|
|
109
113
|
get allowedTypeSet(): ReadonlySet<TreeNodeSchema>;
|
|
110
114
|
readonly kind: Kind;
|
|
111
|
-
get metadata(): FieldSchemaMetadata<TCustomMetadata
|
|
115
|
+
get metadata(): FieldSchemaMetadata<TCustomMetadata>;
|
|
112
116
|
readonly props?: FieldProps<TCustomMetadata> | undefined;
|
|
113
117
|
readonly requiresValue: boolean;
|
|
114
118
|
protected _typeCheck: MakeNominal;
|
|
@@ -120,8 +124,8 @@ export interface FieldSchemaMetadata<TCustomMetadata = unknown> {
|
|
|
120
124
|
readonly description?: string | undefined;
|
|
121
125
|
}
|
|
122
126
|
|
|
123
|
-
// @public
|
|
124
|
-
export interface FieldSchemaUnsafe<out Kind extends FieldKind, out Types extends
|
|
127
|
+
// @public @sealed
|
|
128
|
+
export interface FieldSchemaUnsafe<out Kind extends FieldKind, out Types extends ImplicitAllowedTypesUnsafe, out TCustomMetadata = unknown> extends FieldSchema<Kind, any, TCustomMetadata> {
|
|
125
129
|
readonly allowedTypes: Types;
|
|
126
130
|
readonly allowedTypeSet: ReadonlySet<TreeNodeSchema>;
|
|
127
131
|
readonly kind: Kind;
|
|
@@ -430,9 +434,15 @@ export interface IMember {
|
|
|
430
434
|
// @public
|
|
431
435
|
export type ImplicitAllowedTypes = AllowedTypes | TreeNodeSchema;
|
|
432
436
|
|
|
437
|
+
// @public
|
|
438
|
+
export type ImplicitAllowedTypesUnsafe = TreeNodeSchemaUnsafe | readonly LazyItem<Unenforced<TreeNodeSchema>>[];
|
|
439
|
+
|
|
433
440
|
// @public
|
|
434
441
|
export type ImplicitFieldSchema = FieldSchema | ImplicitAllowedTypes;
|
|
435
442
|
|
|
443
|
+
// @public
|
|
444
|
+
export type ImplicitFieldSchemaUnsafe = FieldSchemaUnsafe<FieldKind, ImplicitAllowedTypesUnsafe> | ImplicitAllowedTypesUnsafe;
|
|
445
|
+
|
|
436
446
|
// @public
|
|
437
447
|
export type InitialObjects<T extends ContainerSchema> = {
|
|
438
448
|
[K in keyof T["initialObjects"]]: T["initialObjects"][K] extends SharedObjectKind<infer TChannel> ? TChannel : never;
|
|
@@ -445,24 +455,26 @@ type _InlineTrick = 0;
|
|
|
445
455
|
export type Input<T extends never> = T;
|
|
446
456
|
|
|
447
457
|
// @public
|
|
448
|
-
type InsertableObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFieldSchema>> =
|
|
458
|
+
type InsertableObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFieldSchema>> = RestrictiveStringRecord<ImplicitFieldSchema> extends T ? {
|
|
459
|
+
arbitraryKey: "arbitraryValue";
|
|
460
|
+
} extends T ? Record<string, never> : never : FlattenKeys<{
|
|
449
461
|
readonly [Property in keyof T]?: InsertableTreeFieldFromImplicitField<T[Property & string]>;
|
|
450
462
|
} & {
|
|
451
463
|
readonly [Property in keyof T as FieldHasDefault<T[Property & string]> extends false ? Property : never]: InsertableTreeFieldFromImplicitField<T[Property & string]>;
|
|
452
464
|
}>;
|
|
453
465
|
|
|
454
466
|
// @public
|
|
455
|
-
export type InsertableObjectFromSchemaRecordUnsafe<T extends
|
|
456
|
-
readonly [Property in keyof T as FieldHasDefaultUnsafe<T[Property]> extends false ? Property : never]: InsertableTreeFieldFromImplicitFieldUnsafe<T[Property]>;
|
|
467
|
+
export type InsertableObjectFromSchemaRecordUnsafe<T extends RestrictiveStringRecord<ImplicitFieldSchemaUnsafe>> = {
|
|
468
|
+
readonly [Property in keyof T as FieldHasDefaultUnsafe<T[Property & string]> extends false ? Property : never]: InsertableTreeFieldFromImplicitFieldUnsafe<T[Property & string]>;
|
|
457
469
|
} & {
|
|
458
|
-
readonly [Property in keyof T as FieldHasDefaultUnsafe<T[Property]> extends true ? Property : never]?: InsertableTreeFieldFromImplicitFieldUnsafe<T[Property]>;
|
|
470
|
+
readonly [Property in keyof T as FieldHasDefaultUnsafe<T[Property & string]> extends true ? Property : never]?: InsertableTreeFieldFromImplicitFieldUnsafe<T[Property & string]>;
|
|
459
471
|
};
|
|
460
472
|
|
|
461
473
|
// @public
|
|
462
474
|
export type InsertableTreeFieldFromImplicitField<TSchemaInput extends ImplicitFieldSchema, TSchema = UnionToIntersection<TSchemaInput>> = [TSchema] extends [FieldSchema<infer Kind, infer Types>] ? ApplyKindInput<InsertableTreeNodeFromImplicitAllowedTypes<Types>, Kind, true> : [TSchema] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TSchema> : never;
|
|
463
475
|
|
|
464
476
|
// @public
|
|
465
|
-
export type InsertableTreeFieldFromImplicitFieldUnsafe<TSchemaInput extends
|
|
477
|
+
export type InsertableTreeFieldFromImplicitFieldUnsafe<TSchemaInput extends ImplicitFieldSchemaUnsafe, TSchema = UnionToIntersection<TSchemaInput>> = [TSchema] extends [FieldSchemaUnsafe<infer Kind, infer Types>] ? ApplyKindInput<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind, true> : [TSchema] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema> : never;
|
|
466
478
|
|
|
467
479
|
// @public
|
|
468
480
|
export type InsertableTreeNodeFromAllowedTypes<TList extends AllowedTypes> = TList extends readonly [
|
|
@@ -471,7 +483,7 @@ LazyItem<infer TSchema extends TreeNodeSchema>,
|
|
|
471
483
|
] ? InsertableTypedNode<TSchema> | InsertableTreeNodeFromAllowedTypes<Rest> : never;
|
|
472
484
|
|
|
473
485
|
// @public
|
|
474
|
-
export type InsertableTreeNodeFromAllowedTypesUnsafe<TList extends
|
|
486
|
+
export type InsertableTreeNodeFromAllowedTypesUnsafe<TList extends AllowedTypesUnsafe> = TList extends readonly [
|
|
475
487
|
LazyItem<infer TSchema extends TreeNodeSchemaUnsafe>,
|
|
476
488
|
...infer Rest extends AllowedTypesUnsafe
|
|
477
489
|
] ? InsertableTypedNodeUnsafe<TSchema> | InsertableTreeNodeFromAllowedTypesUnsafe<Rest> : never;
|
|
@@ -482,13 +494,13 @@ TSchema
|
|
|
482
494
|
] extends [TreeNodeSchema] ? InsertableTypedNode<TSchema> : [TSchema] extends [AllowedTypes] ? InsertableTreeNodeFromAllowedTypes<TSchema> : never;
|
|
483
495
|
|
|
484
496
|
// @public
|
|
485
|
-
export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends
|
|
497
|
+
export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends ImplicitAllowedTypesUnsafe> = [TSchema] extends [TreeNodeSchemaUnsafe] ? InsertableTypedNodeUnsafe<TSchema> : [TSchema] extends [AllowedTypesUnsafe] ? InsertableTreeNodeFromAllowedTypesUnsafe<TSchema> : never;
|
|
486
498
|
|
|
487
499
|
// @public
|
|
488
500
|
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
501
|
|
|
490
502
|
// @public
|
|
491
|
-
type InsertableTypedNodeUnsafe<TSchema extends
|
|
503
|
+
type InsertableTypedNodeUnsafe<TSchema extends TreeNodeSchemaUnsafe, T = UnionToIntersection<TSchema>> = (T extends TreeNodeSchemaUnsafe<string, NodeKind, TreeNode | TreeLeafValue, never, true> ? NodeBuilderDataUnsafe<T> : never) | (T extends TreeNodeSchemaUnsafe ? NodeFromSchemaUnsafe<T> : never);
|
|
492
504
|
|
|
493
505
|
export { InteriorSequencePlace }
|
|
494
506
|
|
|
@@ -596,6 +608,10 @@ export interface IValueChanged {
|
|
|
596
608
|
// @public
|
|
597
609
|
export type LazyItem<Item = unknown> = Item | (() => Item);
|
|
598
610
|
|
|
611
|
+
// @public @sealed
|
|
612
|
+
export interface LeafSchema<Name extends string, T extends TreeLeafValue> extends TreeNodeSchemaNonClass<`com.fluidframework.leaf.${Name}`, NodeKind.Leaf, T, T, true> {
|
|
613
|
+
}
|
|
614
|
+
|
|
599
615
|
// @public @sealed
|
|
600
616
|
export interface Listenable<TListeners extends object> {
|
|
601
617
|
off<K extends keyof Listeners<TListeners>>(eventName: K, listener: TListeners[K]): void;
|
|
@@ -662,13 +678,13 @@ export interface NodeSchemaOptions<out TCustomMetadata = unknown> {
|
|
|
662
678
|
}
|
|
663
679
|
|
|
664
680
|
// @public
|
|
665
|
-
type ObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFieldSchema>> = {
|
|
681
|
+
type ObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFieldSchema>> = RestrictiveStringRecord<ImplicitFieldSchema> extends T ? {} : {
|
|
666
682
|
-readonly [Property in keyof T]: Property extends string ? TreeFieldFromImplicitField<T[Property]> : unknown;
|
|
667
683
|
};
|
|
668
684
|
|
|
669
685
|
// @public
|
|
670
|
-
type ObjectFromSchemaRecordUnsafe<T extends
|
|
671
|
-
-readonly [Property in keyof T]: TreeFieldFromImplicitFieldUnsafe<T[Property]
|
|
686
|
+
type ObjectFromSchemaRecordUnsafe<T extends RestrictiveStringRecord<ImplicitFieldSchemaUnsafe>> = {
|
|
687
|
+
-readonly [Property in keyof T]: Property extends string ? TreeFieldFromImplicitFieldUnsafe<T[Property]> : unknown;
|
|
672
688
|
};
|
|
673
689
|
|
|
674
690
|
// @public
|
|
@@ -679,7 +695,7 @@ export interface ReadonlyArrayNode<out T = TreeNode | TreeLeafValue> extends Rea
|
|
|
679
695
|
}
|
|
680
696
|
|
|
681
697
|
// @public @sealed
|
|
682
|
-
interface ReadonlyMapInlined<K, T extends
|
|
698
|
+
interface ReadonlyMapInlined<K, T extends ImplicitAllowedTypesUnsafe> {
|
|
683
699
|
[Symbol.iterator](): IterableIterator<[K, TreeNodeFromImplicitAllowedTypesUnsafe<T>]>;
|
|
684
700
|
entries(): IterableIterator<[K, TreeNodeFromImplicitAllowedTypesUnsafe<T>]>;
|
|
685
701
|
// (undocumented)
|
|
@@ -757,24 +773,24 @@ export interface SchemaCompatibilityStatus {
|
|
|
757
773
|
}
|
|
758
774
|
|
|
759
775
|
// @public @sealed
|
|
760
|
-
export class SchemaFactory<out TScope extends string | undefined = string | undefined, TName extends number | string = string> {
|
|
776
|
+
export class SchemaFactory<out TScope extends string | undefined = string | undefined, TName extends number | string = string> implements SchemaStatics {
|
|
761
777
|
constructor(
|
|
762
778
|
scope: TScope);
|
|
763
779
|
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>;
|
|
764
780
|
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>;
|
|
765
|
-
arrayRecursive<const Name extends TName, const T extends
|
|
781
|
+
arrayRecursive<const Name extends TName, const T extends ImplicitAllowedTypesUnsafe>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Array, TreeArrayNodeUnsafe<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Array, unknown>, {
|
|
766
782
|
[Symbol.iterator](): Iterator<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>>;
|
|
767
783
|
}, false, T, undefined>;
|
|
768
|
-
readonly boolean:
|
|
769
|
-
static readonly boolean:
|
|
770
|
-
readonly handle:
|
|
771
|
-
static readonly handle:
|
|
784
|
+
readonly boolean: LeafSchema<"boolean", boolean>;
|
|
785
|
+
static readonly boolean: LeafSchema<"boolean", boolean>;
|
|
786
|
+
readonly handle: LeafSchema<"handle", IFluidHandle<unknown>>;
|
|
787
|
+
static readonly handle: LeafSchema<"handle", IFluidHandle<unknown>>;
|
|
772
788
|
get identifier(): FieldSchema<FieldKind.Identifier, typeof SchemaFactory.string>;
|
|
773
|
-
readonly leaves: readonly [
|
|
774
|
-
static readonly leaves: readonly [
|
|
789
|
+
readonly leaves: readonly [LeafSchema<"string", string>, LeafSchema<"number", number>, LeafSchema<"boolean", boolean>, LeafSchema<"null", null>, LeafSchema<"handle", IFluidHandle<unknown>>];
|
|
790
|
+
static readonly leaves: readonly [LeafSchema<"string", string>, LeafSchema<"number", number>, LeafSchema<"boolean", boolean>, LeafSchema<"null", null>, LeafSchema<"handle", IFluidHandle<unknown>>];
|
|
775
791
|
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>;
|
|
776
792
|
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>;
|
|
777
|
-
mapRecursive<Name extends TName, const T extends
|
|
793
|
+
mapRecursive<Name extends TName, const T extends ImplicitAllowedTypesUnsafe>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Map, TreeMapNodeUnsafe<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Map, unknown>, {
|
|
778
794
|
[Symbol.iterator](): Iterator<[
|
|
779
795
|
string,
|
|
780
796
|
InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>
|
|
@@ -782,38 +798,44 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
|
|
|
782
798
|
} | {
|
|
783
799
|
readonly [x: string]: InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>;
|
|
784
800
|
}, false, T, undefined>;
|
|
785
|
-
readonly null:
|
|
786
|
-
static readonly null:
|
|
787
|
-
readonly number:
|
|
788
|
-
static readonly number:
|
|
801
|
+
readonly null: LeafSchema<"null", null>;
|
|
802
|
+
static readonly null: LeafSchema<"null", null>;
|
|
803
|
+
readonly number: LeafSchema<"number", number>;
|
|
804
|
+
static readonly number: LeafSchema<"number", number>;
|
|
789
805
|
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>;
|
|
790
|
-
objectRecursive<const Name extends TName, const T extends
|
|
806
|
+
objectRecursive<const Name extends TName, const T extends RestrictiveStringRecord<ImplicitFieldSchemaUnsafe>>(name: Name, t: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, TreeObjectNodeUnsafe<T, ScopedSchemaName<TScope, Name>>, object & InsertableObjectFromSchemaRecordUnsafe<T>, false, T>;
|
|
791
807
|
readonly optional: <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchema<FieldKind.Optional, T, TCustomMetadata>;
|
|
792
808
|
static readonly optional: <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchema<FieldKind.Optional, T, TCustomMetadata>;
|
|
793
|
-
readonly optionalRecursive: <const T extends unknown>(t: T, props?: Omit<FieldProps<
|
|
794
|
-
static readonly optionalRecursive: <const T extends unknown>(t: T, props?: Omit<FieldProps<
|
|
809
|
+
readonly optionalRecursive: <const T extends ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaUnsafe<FieldKind.Optional, T, TCustomMetadata>;
|
|
810
|
+
static readonly optionalRecursive: <const T extends ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaUnsafe<FieldKind.Optional, T, TCustomMetadata>;
|
|
795
811
|
readonly required: <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchema<FieldKind.Required, T, TCustomMetadata>;
|
|
796
812
|
static readonly required: <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchema<FieldKind.Required, T, TCustomMetadata>;
|
|
797
|
-
readonly requiredRecursive: <const T extends unknown>(t: T, props?: Omit<FieldProps<
|
|
798
|
-
static readonly requiredRecursive: <const T extends unknown>(t: T, props?: Omit<FieldProps<
|
|
813
|
+
readonly requiredRecursive: <const T extends ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaUnsafe<FieldKind.Required, T, TCustomMetadata>;
|
|
814
|
+
static readonly requiredRecursive: <const T extends ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaUnsafe<FieldKind.Required, T, TCustomMetadata>;
|
|
799
815
|
readonly scope: TScope;
|
|
800
|
-
readonly string:
|
|
801
|
-
static readonly string:
|
|
816
|
+
readonly string: LeafSchema<"string", string>;
|
|
817
|
+
static readonly string: LeafSchema<"string", string>;
|
|
802
818
|
}
|
|
803
819
|
|
|
804
820
|
// @public @sealed
|
|
805
|
-
export
|
|
806
|
-
readonly
|
|
807
|
-
readonly
|
|
808
|
-
readonly
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
821
|
+
export interface SchemaStatics {
|
|
822
|
+
readonly boolean: LeafSchema<"boolean", boolean>;
|
|
823
|
+
readonly handle: LeafSchema<"handle", IFluidHandle>;
|
|
824
|
+
readonly leaves: readonly [
|
|
825
|
+
SchemaStatics["string"],
|
|
826
|
+
SchemaStatics["number"],
|
|
827
|
+
SchemaStatics["boolean"],
|
|
828
|
+
SchemaStatics["null"],
|
|
829
|
+
SchemaStatics["handle"]
|
|
830
|
+
];
|
|
831
|
+
readonly null: LeafSchema<"null", null>;
|
|
832
|
+
readonly number: LeafSchema<"number", number>;
|
|
812
833
|
readonly optional: <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider">) => FieldSchema<FieldKind.Optional, T, TCustomMetadata>;
|
|
813
|
-
readonly
|
|
814
|
-
readonly
|
|
815
|
-
readonly requiredRecursive: <const
|
|
816
|
-
|
|
834
|
+
readonly optionalRecursive: <const T extends ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider">) => FieldSchemaUnsafe<FieldKind.Optional, T, TCustomMetadata>;
|
|
835
|
+
readonly required: <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider">) => FieldSchema<FieldKind.Required, T, TCustomMetadata>;
|
|
836
|
+
readonly requiredRecursive: <const T extends ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider">) => FieldSchemaUnsafe<FieldKind.Required, T, TCustomMetadata>;
|
|
837
|
+
readonly string: LeafSchema<"string", string>;
|
|
838
|
+
}
|
|
817
839
|
|
|
818
840
|
// @public
|
|
819
841
|
type ScopedSchemaName<TScope extends string | undefined, TName extends number | string> = TScope extends undefined ? `${TName}` : `${TScope}.${TName}`;
|
|
@@ -830,6 +852,12 @@ export const SharedTree: SharedObjectKind<ITree>;
|
|
|
830
852
|
|
|
831
853
|
export { Side }
|
|
832
854
|
|
|
855
|
+
// @public @sealed
|
|
856
|
+
export interface SimpleNodeSchemaBase<out TNodeKind extends NodeKind, out TCustomMetadata = unknown> {
|
|
857
|
+
readonly kind: TNodeKind;
|
|
858
|
+
readonly metadata: NodeSchemaMetadata<TCustomMetadata>;
|
|
859
|
+
}
|
|
860
|
+
|
|
833
861
|
// @public
|
|
834
862
|
export interface Tagged<V, T extends string = string> {
|
|
835
863
|
// (undocumented)
|
|
@@ -857,7 +885,7 @@ interface TreeApi extends TreeNodeApi {
|
|
|
857
885
|
}
|
|
858
886
|
|
|
859
887
|
// @public @sealed
|
|
860
|
-
export interface TreeArrayNode<TAllowedTypes extends
|
|
888
|
+
export interface TreeArrayNode<TAllowedTypes extends ImplicitAllowedTypesUnsafe = ImplicitAllowedTypes, out T = [TAllowedTypes] extends [ImplicitAllowedTypes] ? TreeNodeFromImplicitAllowedTypes<TAllowedTypes> : TreeNodeFromImplicitAllowedTypes<ImplicitAllowedTypes>, in TNew = [TAllowedTypes] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TAllowedTypes> : InsertableTreeNodeFromImplicitAllowedTypes<ImplicitAllowedTypes>, in TMoveFrom = ReadonlyArrayNode> extends ReadonlyArrayNode<T> {
|
|
861
889
|
insertAt(index: number, ...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
862
890
|
insertAtEnd(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
863
891
|
insertAtStart(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
@@ -884,7 +912,7 @@ export const TreeArrayNode: {
|
|
|
884
912
|
};
|
|
885
913
|
|
|
886
914
|
// @public @sealed
|
|
887
|
-
export interface TreeArrayNodeUnsafe<TAllowedTypes extends
|
|
915
|
+
export interface TreeArrayNodeUnsafe<TAllowedTypes extends ImplicitAllowedTypesUnsafe> extends TreeArrayNode<TAllowedTypes, TreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>> {
|
|
888
916
|
}
|
|
889
917
|
|
|
890
918
|
// @public @sealed
|
|
@@ -897,7 +925,7 @@ export interface TreeChangeEvents {
|
|
|
897
925
|
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;
|
|
898
926
|
|
|
899
927
|
// @public
|
|
900
|
-
type TreeFieldFromImplicitFieldUnsafe<TSchema extends
|
|
928
|
+
type TreeFieldFromImplicitFieldUnsafe<TSchema extends ImplicitFieldSchemaUnsafe> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind> : TSchema extends ImplicitAllowedTypesUnsafe ? TreeNodeFromImplicitAllowedTypesUnsafe<TSchema> : unknown;
|
|
901
929
|
|
|
902
930
|
// @public
|
|
903
931
|
export type TreeLeafValue = number | string | boolean | IFluidHandle | null;
|
|
@@ -913,7 +941,7 @@ export interface TreeMapNode<T extends ImplicitAllowedTypes = ImplicitAllowedTyp
|
|
|
913
941
|
}
|
|
914
942
|
|
|
915
943
|
// @public @sealed
|
|
916
|
-
export interface TreeMapNodeUnsafe<T extends
|
|
944
|
+
export interface TreeMapNodeUnsafe<T extends ImplicitAllowedTypesUnsafe> extends ReadonlyMapInlined<string, T>, TreeNode {
|
|
917
945
|
delete(key: string): void;
|
|
918
946
|
set(key: string, value: InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T> | undefined): void;
|
|
919
947
|
}
|
|
@@ -943,7 +971,7 @@ export interface TreeNodeApi {
|
|
|
943
971
|
export type TreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
|
|
944
972
|
|
|
945
973
|
// @public
|
|
946
|
-
type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends
|
|
974
|
+
type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends ImplicitAllowedTypesUnsafe> = TSchema extends TreeNodeSchemaUnsafe ? NodeFromSchemaUnsafe<TSchema> : TSchema extends AllowedTypesUnsafe ? NodeFromSchemaUnsafe<FlexListToUnion<TSchema>> : unknown;
|
|
947
975
|
|
|
948
976
|
// @public @sealed
|
|
949
977
|
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, TCustomMetadata = unknown> = (TNode extends TreeNode ? TreeNodeSchemaClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info, never, TCustomMetadata> : never) | TreeNodeSchemaNonClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info, never, TCustomMetadata>;
|
|
@@ -956,22 +984,19 @@ export type TreeNodeSchemaClass<Name extends string = string, Kind extends NodeK
|
|
|
956
984
|
});
|
|
957
985
|
|
|
958
986
|
// @public
|
|
959
|
-
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> {
|
|
987
|
+
export interface TreeNodeSchemaClassUnsafe<out Name extends string, out Kind extends NodeKind, out TNode extends Unenforced<TreeNode>, in TInsertable, out ImplicitlyConstructable extends boolean, out Info, out TCustomMetadata = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info, never, TCustomMetadata> {
|
|
960
988
|
// @sealed
|
|
961
989
|
new (data: TInsertable | InternalTreeNode): Unhydrated<TNode>;
|
|
962
990
|
}
|
|
963
991
|
|
|
964
992
|
// @public @sealed
|
|
965
|
-
export interface TreeNodeSchemaCore<out Name extends string, out Kind extends NodeKind, out ImplicitlyConstructable extends boolean, out Info = unknown, out TInsertable = never, out TCustomMetadata = unknown> {
|
|
993
|
+
export interface TreeNodeSchemaCore<out Name extends string, out Kind extends NodeKind, out ImplicitlyConstructable extends boolean, out Info = unknown, out TInsertable = never, out TCustomMetadata = unknown> extends SimpleNodeSchemaBase<Kind, TCustomMetadata> {
|
|
966
994
|
readonly childTypes: ReadonlySet<TreeNodeSchema>;
|
|
967
995
|
// @sealed
|
|
968
996
|
createFromInsertable(data: TInsertable): Unhydrated<TreeNode | TreeLeafValue>;
|
|
969
997
|
readonly identifier: Name;
|
|
970
998
|
readonly implicitlyConstructable: ImplicitlyConstructable;
|
|
971
999
|
readonly info: Info;
|
|
972
|
-
// (undocumented)
|
|
973
|
-
readonly kind: Kind;
|
|
974
|
-
readonly metadata?: NodeSchemaMetadata<TCustomMetadata> | undefined;
|
|
975
1000
|
}
|
|
976
1001
|
|
|
977
1002
|
// @public @sealed
|
|
@@ -994,7 +1019,7 @@ type TreeNodeSchemaUnsafe<Name extends string = string, Kind extends NodeKind =
|
|
|
994
1019
|
export type TreeObjectNode<T extends RestrictiveStringRecord<ImplicitFieldSchema>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecord<T> & WithType<TypeName, NodeKind.Object, T>;
|
|
995
1020
|
|
|
996
1021
|
// @public
|
|
997
|
-
export type TreeObjectNodeUnsafe<T extends
|
|
1022
|
+
export type TreeObjectNodeUnsafe<T extends RestrictiveStringRecord<ImplicitFieldSchemaUnsafe>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecordUnsafe<T> & WithType<TypeName, NodeKind.Object, T>;
|
|
998
1023
|
|
|
999
1024
|
// @public
|
|
1000
1025
|
export enum TreeStatus {
|