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;
|
|
@@ -402,9 +406,15 @@ export interface IMember {
|
|
|
402
406
|
// @public
|
|
403
407
|
export type ImplicitAllowedTypes = AllowedTypes | TreeNodeSchema;
|
|
404
408
|
|
|
409
|
+
// @public
|
|
410
|
+
export type ImplicitAllowedTypesUnsafe = TreeNodeSchemaUnsafe | readonly LazyItem<Unenforced<TreeNodeSchema>>[];
|
|
411
|
+
|
|
405
412
|
// @public
|
|
406
413
|
export type ImplicitFieldSchema = FieldSchema | ImplicitAllowedTypes;
|
|
407
414
|
|
|
415
|
+
// @public
|
|
416
|
+
export type ImplicitFieldSchemaUnsafe = FieldSchemaUnsafe<FieldKind, ImplicitAllowedTypesUnsafe> | ImplicitAllowedTypesUnsafe;
|
|
417
|
+
|
|
408
418
|
// @public
|
|
409
419
|
export type InitialObjects<T extends ContainerSchema> = {
|
|
410
420
|
[K in keyof T["initialObjects"]]: T["initialObjects"][K] extends SharedObjectKind<infer TChannel> ? TChannel : never;
|
|
@@ -417,24 +427,26 @@ type _InlineTrick = 0;
|
|
|
417
427
|
export type Input<T extends never> = T;
|
|
418
428
|
|
|
419
429
|
// @public
|
|
420
|
-
type InsertableObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFieldSchema>> =
|
|
430
|
+
type InsertableObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFieldSchema>> = RestrictiveStringRecord<ImplicitFieldSchema> extends T ? {
|
|
431
|
+
arbitraryKey: "arbitraryValue";
|
|
432
|
+
} extends T ? Record<string, never> : never : FlattenKeys<{
|
|
421
433
|
readonly [Property in keyof T]?: InsertableTreeFieldFromImplicitField<T[Property & string]>;
|
|
422
434
|
} & {
|
|
423
435
|
readonly [Property in keyof T as FieldHasDefault<T[Property & string]> extends false ? Property : never]: InsertableTreeFieldFromImplicitField<T[Property & string]>;
|
|
424
436
|
}>;
|
|
425
437
|
|
|
426
438
|
// @public
|
|
427
|
-
export type InsertableObjectFromSchemaRecordUnsafe<T extends
|
|
428
|
-
readonly [Property in keyof T as FieldHasDefaultUnsafe<T[Property]> extends false ? Property : never]: InsertableTreeFieldFromImplicitFieldUnsafe<T[Property]>;
|
|
439
|
+
export type InsertableObjectFromSchemaRecordUnsafe<T extends RestrictiveStringRecord<ImplicitFieldSchemaUnsafe>> = {
|
|
440
|
+
readonly [Property in keyof T as FieldHasDefaultUnsafe<T[Property & string]> extends false ? Property : never]: InsertableTreeFieldFromImplicitFieldUnsafe<T[Property & string]>;
|
|
429
441
|
} & {
|
|
430
|
-
readonly [Property in keyof T as FieldHasDefaultUnsafe<T[Property]> extends true ? Property : never]?: InsertableTreeFieldFromImplicitFieldUnsafe<T[Property]>;
|
|
442
|
+
readonly [Property in keyof T as FieldHasDefaultUnsafe<T[Property & string]> extends true ? Property : never]?: InsertableTreeFieldFromImplicitFieldUnsafe<T[Property & string]>;
|
|
431
443
|
};
|
|
432
444
|
|
|
433
445
|
// @public
|
|
434
446
|
export type InsertableTreeFieldFromImplicitField<TSchemaInput extends ImplicitFieldSchema, TSchema = UnionToIntersection<TSchemaInput>> = [TSchema] extends [FieldSchema<infer Kind, infer Types>] ? ApplyKindInput<InsertableTreeNodeFromImplicitAllowedTypes<Types>, Kind, true> : [TSchema] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TSchema> : never;
|
|
435
447
|
|
|
436
448
|
// @public
|
|
437
|
-
export type InsertableTreeFieldFromImplicitFieldUnsafe<TSchemaInput extends
|
|
449
|
+
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;
|
|
438
450
|
|
|
439
451
|
// @public
|
|
440
452
|
export type InsertableTreeNodeFromAllowedTypes<TList extends AllowedTypes> = TList extends readonly [
|
|
@@ -443,7 +455,7 @@ LazyItem<infer TSchema extends TreeNodeSchema>,
|
|
|
443
455
|
] ? InsertableTypedNode<TSchema> | InsertableTreeNodeFromAllowedTypes<Rest> : never;
|
|
444
456
|
|
|
445
457
|
// @public
|
|
446
|
-
export type InsertableTreeNodeFromAllowedTypesUnsafe<TList extends
|
|
458
|
+
export type InsertableTreeNodeFromAllowedTypesUnsafe<TList extends AllowedTypesUnsafe> = TList extends readonly [
|
|
447
459
|
LazyItem<infer TSchema extends TreeNodeSchemaUnsafe>,
|
|
448
460
|
...infer Rest extends AllowedTypesUnsafe
|
|
449
461
|
] ? InsertableTypedNodeUnsafe<TSchema> | InsertableTreeNodeFromAllowedTypesUnsafe<Rest> : never;
|
|
@@ -454,13 +466,13 @@ TSchema
|
|
|
454
466
|
] extends [TreeNodeSchema] ? InsertableTypedNode<TSchema> : [TSchema] extends [AllowedTypes] ? InsertableTreeNodeFromAllowedTypes<TSchema> : never;
|
|
455
467
|
|
|
456
468
|
// @public
|
|
457
|
-
export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends
|
|
469
|
+
export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends ImplicitAllowedTypesUnsafe> = [TSchema] extends [TreeNodeSchemaUnsafe] ? InsertableTypedNodeUnsafe<TSchema> : [TSchema] extends [AllowedTypesUnsafe] ? InsertableTreeNodeFromAllowedTypesUnsafe<TSchema> : never;
|
|
458
470
|
|
|
459
471
|
// @public
|
|
460
472
|
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);
|
|
461
473
|
|
|
462
474
|
// @public
|
|
463
|
-
type InsertableTypedNodeUnsafe<TSchema extends
|
|
475
|
+
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);
|
|
464
476
|
|
|
465
477
|
// @public @sealed
|
|
466
478
|
export interface InternalTreeNode extends ErasedType<"@fluidframework/tree.InternalTreeNode"> {
|
|
@@ -560,6 +572,10 @@ export interface ITreeViewConfiguration<TSchema extends ImplicitFieldSchema = Im
|
|
|
560
572
|
// @public
|
|
561
573
|
export type LazyItem<Item = unknown> = Item | (() => Item);
|
|
562
574
|
|
|
575
|
+
// @public @sealed
|
|
576
|
+
export interface LeafSchema<Name extends string, T extends TreeLeafValue> extends TreeNodeSchemaNonClass<`com.fluidframework.leaf.${Name}`, NodeKind.Leaf, T, T, true> {
|
|
577
|
+
}
|
|
578
|
+
|
|
563
579
|
// @public @sealed
|
|
564
580
|
export interface Listenable<TListeners extends object> {
|
|
565
581
|
off<K extends keyof Listeners<TListeners>>(eventName: K, listener: TListeners[K]): void;
|
|
@@ -631,13 +647,13 @@ export interface NodeSchemaOptions<out TCustomMetadata = unknown> {
|
|
|
631
647
|
}
|
|
632
648
|
|
|
633
649
|
// @public
|
|
634
|
-
type ObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFieldSchema>> = {
|
|
650
|
+
type ObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFieldSchema>> = RestrictiveStringRecord<ImplicitFieldSchema> extends T ? {} : {
|
|
635
651
|
-readonly [Property in keyof T]: Property extends string ? TreeFieldFromImplicitField<T[Property]> : unknown;
|
|
636
652
|
};
|
|
637
653
|
|
|
638
654
|
// @public
|
|
639
|
-
type ObjectFromSchemaRecordUnsafe<T extends
|
|
640
|
-
-readonly [Property in keyof T]: TreeFieldFromImplicitFieldUnsafe<T[Property]
|
|
655
|
+
type ObjectFromSchemaRecordUnsafe<T extends RestrictiveStringRecord<ImplicitFieldSchemaUnsafe>> = {
|
|
656
|
+
-readonly [Property in keyof T]: Property extends string ? TreeFieldFromImplicitFieldUnsafe<T[Property]> : unknown;
|
|
641
657
|
};
|
|
642
658
|
|
|
643
659
|
// @public
|
|
@@ -648,7 +664,7 @@ export interface ReadonlyArrayNode<out T = TreeNode | TreeLeafValue> extends Rea
|
|
|
648
664
|
}
|
|
649
665
|
|
|
650
666
|
// @public @sealed
|
|
651
|
-
interface ReadonlyMapInlined<K, T extends
|
|
667
|
+
interface ReadonlyMapInlined<K, T extends ImplicitAllowedTypesUnsafe> {
|
|
652
668
|
[Symbol.iterator](): IterableIterator<[K, TreeNodeFromImplicitAllowedTypesUnsafe<T>]>;
|
|
653
669
|
entries(): IterableIterator<[K, TreeNodeFromImplicitAllowedTypesUnsafe<T>]>;
|
|
654
670
|
// (undocumented)
|
|
@@ -726,24 +742,24 @@ export interface SchemaCompatibilityStatus {
|
|
|
726
742
|
}
|
|
727
743
|
|
|
728
744
|
// @public @sealed
|
|
729
|
-
export class SchemaFactory<out TScope extends string | undefined = string | undefined, TName extends number | string = string> {
|
|
745
|
+
export class SchemaFactory<out TScope extends string | undefined = string | undefined, TName extends number | string = string> implements SchemaStatics {
|
|
730
746
|
constructor(
|
|
731
747
|
scope: TScope);
|
|
732
748
|
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>;
|
|
733
749
|
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>;
|
|
734
|
-
arrayRecursive<const Name extends TName, const T extends
|
|
750
|
+
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>, {
|
|
735
751
|
[Symbol.iterator](): Iterator<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>>;
|
|
736
752
|
}, false, T, undefined>;
|
|
737
|
-
readonly boolean:
|
|
738
|
-
static readonly boolean:
|
|
739
|
-
readonly handle:
|
|
740
|
-
static readonly handle:
|
|
753
|
+
readonly boolean: LeafSchema<"boolean", boolean>;
|
|
754
|
+
static readonly boolean: LeafSchema<"boolean", boolean>;
|
|
755
|
+
readonly handle: LeafSchema<"handle", IFluidHandle<unknown>>;
|
|
756
|
+
static readonly handle: LeafSchema<"handle", IFluidHandle<unknown>>;
|
|
741
757
|
get identifier(): FieldSchema<FieldKind.Identifier, typeof SchemaFactory.string>;
|
|
742
|
-
readonly leaves: readonly [
|
|
743
|
-
static readonly leaves: readonly [
|
|
758
|
+
readonly leaves: readonly [LeafSchema<"string", string>, LeafSchema<"number", number>, LeafSchema<"boolean", boolean>, LeafSchema<"null", null>, LeafSchema<"handle", IFluidHandle<unknown>>];
|
|
759
|
+
static readonly leaves: readonly [LeafSchema<"string", string>, LeafSchema<"number", number>, LeafSchema<"boolean", boolean>, LeafSchema<"null", null>, LeafSchema<"handle", IFluidHandle<unknown>>];
|
|
744
760
|
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>;
|
|
745
761
|
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>;
|
|
746
|
-
mapRecursive<Name extends TName, const T extends
|
|
762
|
+
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>, {
|
|
747
763
|
[Symbol.iterator](): Iterator<[
|
|
748
764
|
string,
|
|
749
765
|
InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>
|
|
@@ -751,38 +767,44 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
|
|
|
751
767
|
} | {
|
|
752
768
|
readonly [x: string]: InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>;
|
|
753
769
|
}, false, T, undefined>;
|
|
754
|
-
readonly null:
|
|
755
|
-
static readonly null:
|
|
756
|
-
readonly number:
|
|
757
|
-
static readonly number:
|
|
770
|
+
readonly null: LeafSchema<"null", null>;
|
|
771
|
+
static readonly null: LeafSchema<"null", null>;
|
|
772
|
+
readonly number: LeafSchema<"number", number>;
|
|
773
|
+
static readonly number: LeafSchema<"number", number>;
|
|
758
774
|
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>;
|
|
759
|
-
objectRecursive<const Name extends TName, const T extends
|
|
775
|
+
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>;
|
|
760
776
|
readonly optional: <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchema<FieldKind.Optional, T, TCustomMetadata>;
|
|
761
777
|
static readonly optional: <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchema<FieldKind.Optional, T, TCustomMetadata>;
|
|
762
|
-
readonly optionalRecursive: <const T extends unknown>(t: T, props?: Omit<FieldProps<
|
|
763
|
-
static readonly optionalRecursive: <const T extends unknown>(t: T, props?: Omit<FieldProps<
|
|
778
|
+
readonly optionalRecursive: <const T extends ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaUnsafe<FieldKind.Optional, T, TCustomMetadata>;
|
|
779
|
+
static readonly optionalRecursive: <const T extends ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaUnsafe<FieldKind.Optional, T, TCustomMetadata>;
|
|
764
780
|
readonly required: <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchema<FieldKind.Required, T, TCustomMetadata>;
|
|
765
781
|
static readonly required: <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchema<FieldKind.Required, T, TCustomMetadata>;
|
|
766
|
-
readonly requiredRecursive: <const T extends unknown>(t: T, props?: Omit<FieldProps<
|
|
767
|
-
static readonly requiredRecursive: <const T extends unknown>(t: T, props?: Omit<FieldProps<
|
|
782
|
+
readonly requiredRecursive: <const T extends ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaUnsafe<FieldKind.Required, T, TCustomMetadata>;
|
|
783
|
+
static readonly requiredRecursive: <const T extends ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaUnsafe<FieldKind.Required, T, TCustomMetadata>;
|
|
768
784
|
readonly scope: TScope;
|
|
769
|
-
readonly string:
|
|
770
|
-
static readonly string:
|
|
785
|
+
readonly string: LeafSchema<"string", string>;
|
|
786
|
+
static readonly string: LeafSchema<"string", string>;
|
|
771
787
|
}
|
|
772
788
|
|
|
773
789
|
// @public @sealed
|
|
774
|
-
export
|
|
775
|
-
readonly
|
|
776
|
-
readonly
|
|
777
|
-
readonly
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
790
|
+
export interface SchemaStatics {
|
|
791
|
+
readonly boolean: LeafSchema<"boolean", boolean>;
|
|
792
|
+
readonly handle: LeafSchema<"handle", IFluidHandle>;
|
|
793
|
+
readonly leaves: readonly [
|
|
794
|
+
SchemaStatics["string"],
|
|
795
|
+
SchemaStatics["number"],
|
|
796
|
+
SchemaStatics["boolean"],
|
|
797
|
+
SchemaStatics["null"],
|
|
798
|
+
SchemaStatics["handle"]
|
|
799
|
+
];
|
|
800
|
+
readonly null: LeafSchema<"null", null>;
|
|
801
|
+
readonly number: LeafSchema<"number", number>;
|
|
781
802
|
readonly optional: <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider">) => FieldSchema<FieldKind.Optional, T, TCustomMetadata>;
|
|
782
|
-
readonly
|
|
783
|
-
readonly
|
|
784
|
-
readonly requiredRecursive: <const
|
|
785
|
-
|
|
803
|
+
readonly optionalRecursive: <const T extends ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider">) => FieldSchemaUnsafe<FieldKind.Optional, T, TCustomMetadata>;
|
|
804
|
+
readonly required: <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider">) => FieldSchema<FieldKind.Required, T, TCustomMetadata>;
|
|
805
|
+
readonly requiredRecursive: <const T extends ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider">) => FieldSchemaUnsafe<FieldKind.Required, T, TCustomMetadata>;
|
|
806
|
+
readonly string: LeafSchema<"string", string>;
|
|
807
|
+
}
|
|
786
808
|
|
|
787
809
|
// @public
|
|
788
810
|
type ScopedSchemaName<TScope extends string | undefined, TName extends number | string> = TScope extends undefined ? `${TName}` : `${TScope}.${TName}`;
|
|
@@ -795,6 +817,12 @@ export interface SharedObjectKind<out TSharedObject = unknown> extends ErasedTyp
|
|
|
795
817
|
// @public
|
|
796
818
|
export const SharedTree: SharedObjectKind<ITree>;
|
|
797
819
|
|
|
820
|
+
// @public @sealed
|
|
821
|
+
export interface SimpleNodeSchemaBase<out TNodeKind extends NodeKind, out TCustomMetadata = unknown> {
|
|
822
|
+
readonly kind: TNodeKind;
|
|
823
|
+
readonly metadata: NodeSchemaMetadata<TCustomMetadata>;
|
|
824
|
+
}
|
|
825
|
+
|
|
798
826
|
// @public
|
|
799
827
|
export interface Tagged<V, T extends string = string> {
|
|
800
828
|
// (undocumented)
|
|
@@ -822,7 +850,7 @@ interface TreeApi extends TreeNodeApi {
|
|
|
822
850
|
}
|
|
823
851
|
|
|
824
852
|
// @public @sealed
|
|
825
|
-
export interface TreeArrayNode<TAllowedTypes extends
|
|
853
|
+
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> {
|
|
826
854
|
insertAt(index: number, ...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
827
855
|
insertAtEnd(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
828
856
|
insertAtStart(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
@@ -849,7 +877,7 @@ export const TreeArrayNode: {
|
|
|
849
877
|
};
|
|
850
878
|
|
|
851
879
|
// @public @sealed
|
|
852
|
-
export interface TreeArrayNodeUnsafe<TAllowedTypes extends
|
|
880
|
+
export interface TreeArrayNodeUnsafe<TAllowedTypes extends ImplicitAllowedTypesUnsafe> extends TreeArrayNode<TAllowedTypes, TreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>> {
|
|
853
881
|
}
|
|
854
882
|
|
|
855
883
|
// @beta @sealed
|
|
@@ -873,7 +901,7 @@ export interface TreeChangeEventsBeta<TNode extends TreeNode = TreeNode> extends
|
|
|
873
901
|
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;
|
|
874
902
|
|
|
875
903
|
// @public
|
|
876
|
-
type TreeFieldFromImplicitFieldUnsafe<TSchema extends
|
|
904
|
+
type TreeFieldFromImplicitFieldUnsafe<TSchema extends ImplicitFieldSchemaUnsafe> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind> : TSchema extends ImplicitAllowedTypesUnsafe ? TreeNodeFromImplicitAllowedTypesUnsafe<TSchema> : unknown;
|
|
877
905
|
|
|
878
906
|
// @public
|
|
879
907
|
export type TreeLeafValue = number | string | boolean | IFluidHandle | null;
|
|
@@ -889,7 +917,7 @@ export interface TreeMapNode<T extends ImplicitAllowedTypes = ImplicitAllowedTyp
|
|
|
889
917
|
}
|
|
890
918
|
|
|
891
919
|
// @public @sealed
|
|
892
|
-
export interface TreeMapNodeUnsafe<T extends
|
|
920
|
+
export interface TreeMapNodeUnsafe<T extends ImplicitAllowedTypesUnsafe> extends ReadonlyMapInlined<string, T>, TreeNode {
|
|
893
921
|
delete(key: string): void;
|
|
894
922
|
set(key: string, value: InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T> | undefined): void;
|
|
895
923
|
}
|
|
@@ -919,7 +947,7 @@ export interface TreeNodeApi {
|
|
|
919
947
|
export type TreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
|
|
920
948
|
|
|
921
949
|
// @public
|
|
922
|
-
type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends
|
|
950
|
+
type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends ImplicitAllowedTypesUnsafe> = TSchema extends TreeNodeSchemaUnsafe ? NodeFromSchemaUnsafe<TSchema> : TSchema extends AllowedTypesUnsafe ? NodeFromSchemaUnsafe<FlexListToUnion<TSchema>> : unknown;
|
|
923
951
|
|
|
924
952
|
// @public @sealed
|
|
925
953
|
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>;
|
|
@@ -932,22 +960,19 @@ export type TreeNodeSchemaClass<Name extends string = string, Kind extends NodeK
|
|
|
932
960
|
});
|
|
933
961
|
|
|
934
962
|
// @public
|
|
935
|
-
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> {
|
|
963
|
+
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> {
|
|
936
964
|
// @sealed
|
|
937
965
|
new (data: TInsertable | InternalTreeNode): Unhydrated<TNode>;
|
|
938
966
|
}
|
|
939
967
|
|
|
940
968
|
// @public @sealed
|
|
941
|
-
export interface TreeNodeSchemaCore<out Name extends string, out Kind extends NodeKind, out ImplicitlyConstructable extends boolean, out Info = unknown, out TInsertable = never, out TCustomMetadata = unknown> {
|
|
969
|
+
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> {
|
|
942
970
|
readonly childTypes: ReadonlySet<TreeNodeSchema>;
|
|
943
971
|
// @sealed
|
|
944
972
|
createFromInsertable(data: TInsertable): Unhydrated<TreeNode | TreeLeafValue>;
|
|
945
973
|
readonly identifier: Name;
|
|
946
974
|
readonly implicitlyConstructable: ImplicitlyConstructable;
|
|
947
975
|
readonly info: Info;
|
|
948
|
-
// (undocumented)
|
|
949
|
-
readonly kind: Kind;
|
|
950
|
-
readonly metadata?: NodeSchemaMetadata<TCustomMetadata> | undefined;
|
|
951
976
|
}
|
|
952
977
|
|
|
953
978
|
// @public @sealed
|
|
@@ -970,7 +995,7 @@ type TreeNodeSchemaUnsafe<Name extends string = string, Kind extends NodeKind =
|
|
|
970
995
|
export type TreeObjectNode<T extends RestrictiveStringRecord<ImplicitFieldSchema>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecord<T> & WithType<TypeName, NodeKind.Object, T>;
|
|
971
996
|
|
|
972
997
|
// @public
|
|
973
|
-
export type TreeObjectNodeUnsafe<T extends
|
|
998
|
+
export type TreeObjectNodeUnsafe<T extends RestrictiveStringRecord<ImplicitFieldSchemaUnsafe>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecordUnsafe<T> & WithType<TypeName, NodeKind.Object, T>;
|
|
974
999
|
|
|
975
1000
|
// @public
|
|
976
1001
|
export enum TreeStatus {
|