fluid-framework 2.33.1 → 2.40.0-336023

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.
@@ -84,7 +84,9 @@ export abstract class ErasedType<out Name = unknown> {
84
84
  type ExtractItemType<Item extends LazyItem> = Item extends () => infer Result ? Result : Item;
85
85
 
86
86
  // @public @system
87
- type FieldHasDefault<T extends ImplicitFieldSchema> = T extends FieldSchema<FieldKind.Optional | FieldKind.Identifier> ? true : false;
87
+ type FieldHasDefault<T extends ImplicitFieldSchema> = [T] extends [
88
+ FieldSchema<FieldKind.Optional | FieldKind.Identifier>
89
+ ] ? true : false;
88
90
 
89
91
  // @public
90
92
  export enum FieldKind {
@@ -418,7 +420,6 @@ export const IFluidLoadable: keyof IProvideFluidLoadable;
418
420
 
419
421
  // @public @sealed
420
422
  export interface IFluidLoadable extends IProvideFluidLoadable {
421
- // (undocumented)
422
423
  readonly handle: IFluidHandle;
423
424
  }
424
425
 
@@ -435,55 +436,6 @@ export interface IInterval {
435
436
  union(b: IInterval): IInterval;
436
437
  }
437
438
 
438
- // @alpha @deprecated @legacy
439
- export interface IIntervalCollection<TInterval extends ISerializableInterval> extends TypedEventEmitter<IIntervalCollectionEvent<TInterval>> {
440
- // (undocumented)
441
- [Symbol.iterator](): Iterator<TInterval>;
442
- add({ start, end, props, }: {
443
- start: SequencePlace;
444
- end: SequencePlace;
445
- props?: PropertySet;
446
- }): TInterval;
447
- // (undocumented)
448
- attachDeserializer(onDeserialize: DeserializeCallback): void;
449
- // (undocumented)
450
- readonly attached: boolean;
451
- attachIndex(index: IntervalIndex<TInterval>): void;
452
- change(id: string, { start, end, props }: {
453
- start?: SequencePlace;
454
- end?: SequencePlace;
455
- props?: PropertySet;
456
- }): TInterval | undefined;
457
- // (undocumented)
458
- CreateBackwardIteratorWithEndPosition(endPosition: number): Iterator<TInterval>;
459
- // (undocumented)
460
- CreateBackwardIteratorWithStartPosition(startPosition: number): Iterator<TInterval>;
461
- // (undocumented)
462
- CreateForwardIteratorWithEndPosition(endPosition: number): Iterator<TInterval>;
463
- // (undocumented)
464
- CreateForwardIteratorWithStartPosition(startPosition: number): Iterator<TInterval>;
465
- detachIndex(index: IntervalIndex<TInterval>): boolean;
466
- // @deprecated (undocumented)
467
- findOverlappingIntervals(startPosition: number, endPosition: number): TInterval[];
468
- gatherIterationResults(results: TInterval[], iteratesForward: boolean, start?: number, end?: number): void;
469
- // (undocumented)
470
- getIntervalById(id: string): TInterval | undefined;
471
- map(fn: (interval: TInterval) => void): void;
472
- // @deprecated (undocumented)
473
- nextInterval(pos: number): TInterval | undefined;
474
- // @deprecated (undocumented)
475
- previousInterval(pos: number): TInterval | undefined;
476
- removeIntervalById(id: string): TInterval | undefined;
477
- }
478
-
479
- // @alpha @deprecated @legacy
480
- export interface IIntervalCollectionEvent<TInterval extends ISerializableInterval> extends IEvent {
481
- (event: "changeInterval", listener: (interval: TInterval, previousInterval: TInterval, local: boolean, op: ISequencedDocumentMessage | undefined, slide: boolean) => void): void;
482
- (event: "addInterval" | "deleteInterval", listener: (interval: TInterval, local: boolean, op: ISequencedDocumentMessage | undefined) => void): void;
483
- (event: "propertyChanged", listener: (interval: TInterval, propertyDeltas: PropertySet, local: boolean, op: ISequencedDocumentMessage | undefined) => void): void;
484
- (event: "changed", listener: (interval: TInterval, propertyDeltas: PropertySet, previousInterval: TInterval | undefined, local: boolean, slide: boolean) => void): void;
485
- }
486
-
487
439
  // @public
488
440
  export interface IMember {
489
441
  readonly connections: IConnection[];
@@ -520,12 +472,9 @@ type InsertableObjectFromSchemaRecord<T extends RestrictiveStringRecord<Implicit
520
472
  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;
521
473
 
522
474
  // @public @system
523
- export type InsertableTreeNodeFromAllowedTypes<TList extends AllowedTypes> = [TList] extends [
524
- readonly [
525
- LazyItem<infer TSchema extends TreeNodeSchema>,
526
- ...infer Rest extends AllowedTypes
527
- ]
528
- ] ? InsertableTypedNode<TSchema> | InsertableTreeNodeFromAllowedTypes<Rest> : never;
475
+ export type InsertableTreeNodeFromAllowedTypes<TList extends AllowedTypes> = IsUnion<TList> extends true ? never : {
476
+ readonly [Property in keyof TList]: TList[Property] extends LazyItem<infer TSchema extends TreeNodeSchema> ? InsertableTypedNode<TSchema> : never;
477
+ }[number];
529
478
 
530
479
  // @public
531
480
  export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes> = [
@@ -555,18 +504,11 @@ declare namespace InternalTypes {
555
504
  InsertableObjectFromSchemaRecord,
556
505
  FlexList,
557
506
  FlexListToUnion,
558
- ExtractItemType,
559
- TreeApi
507
+ ExtractItemType
560
508
  }
561
509
  }
562
510
  export { InternalTypes }
563
511
 
564
- // @alpha @deprecated @legacy
565
- export interface IntervalIndex<TInterval extends ISerializableInterval> {
566
- add(interval: TInterval): void;
567
- remove(interval: TInterval): void;
568
- }
569
-
570
512
  // @alpha @legacy
571
513
  export const IntervalStickiness: {
572
514
  readonly NONE: 0;
@@ -726,12 +668,6 @@ export interface ISharedDirectoryEvents extends ISharedObjectEvents {
726
668
  (event: "subDirectoryDeleted", listener: (path: string, local: boolean, target: IEventThisPlaceHolder) => void): any;
727
669
  }
728
670
 
729
- // @alpha @deprecated @legacy (undocumented)
730
- export interface ISharedIntervalCollection<TInterval extends ISerializableInterval> {
731
- // (undocumented)
732
- getIntervalCollection(label: string): IIntervalCollection<TInterval>;
733
- }
734
-
735
671
  // @alpha @sealed @legacy
736
672
  export interface ISharedMap extends ISharedObject<ISharedMapEvents>, Map<string, any> {
737
673
  get<T = any>(key: string): T | undefined;
@@ -825,6 +761,9 @@ export interface ISharedString extends ISharedSegmentSequence<SharedStringSegmen
825
761
  // @public
826
762
  export type IsListener<TListener> = TListener extends (...args: any[]) => void ? true : false;
827
763
 
764
+ // @public @system
765
+ export type IsUnion<T, T2 = T> = T extends unknown ? [T2] extends [T] ? false : true : "error";
766
+
828
767
  // @public
829
768
  export interface ITelemetryBaseProperties {
830
769
  [index: string]: TelemetryBaseEventPropertyType | Tagged<TelemetryBaseEventPropertyType>;
@@ -1194,14 +1133,9 @@ export namespace System_Unsafe {
1194
1133
  // @system
1195
1134
  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;
1196
1135
  // @system
1197
- export type InsertableTreeNodeFromAllowedTypesUnsafe<TList extends AllowedTypesUnsafe> = [
1198
- TList
1199
- ] extends [
1200
- readonly [
1201
- LazyItem<infer TSchema extends TreeNodeSchemaUnsafe>,
1202
- ...infer Rest extends AllowedTypesUnsafe
1203
- ]
1204
- ] ? InsertableTypedNodeUnsafe<TSchema> | InsertableTreeNodeFromAllowedTypesUnsafe<Rest> : never;
1136
+ export type InsertableTreeNodeFromAllowedTypesUnsafe<TList extends AllowedTypesUnsafe> = IsUnion<TList> extends true ? never : {
1137
+ readonly [Property in keyof TList]: TList[Property] extends LazyItem<infer TSchema extends TreeNodeSchemaUnsafe> ? InsertableTypedNodeUnsafe<TSchema> : never;
1138
+ }[number];
1205
1139
  // @system
1206
1140
  export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends ImplicitAllowedTypesUnsafe> = [TSchema] extends [TreeNodeSchemaUnsafe] ? InsertableTypedNodeUnsafe<TSchema> : [TSchema] extends [AllowedTypesUnsafe] ? InsertableTreeNodeFromAllowedTypesUnsafe<TSchema> : never;
1207
1141
  // @system
@@ -1274,15 +1208,15 @@ export type TransactionConstraint = NodeInDocumentConstraint;
1274
1208
  // @public
1275
1209
  export type TransformedEvent<TThis, E, A extends any[]> = (event: E, listener: (...args: ReplaceIEventThisPlaceHolder<A, TThis>) => void) => TThis;
1276
1210
 
1277
- // @public
1278
- export const Tree: TreeApi;
1279
-
1280
1211
  // @public @sealed @system
1281
- interface TreeApi extends TreeNodeApi {
1212
+ export interface Tree extends TreeNodeApi {
1282
1213
  contains(node: TreeNode, other: TreeNode): boolean;
1283
1214
  readonly runTransaction: RunTransaction;
1284
1215
  }
1285
1216
 
1217
+ // @public
1218
+ export const Tree: Tree;
1219
+
1286
1220
  // @public @sealed
1287
1221
  export interface TreeArrayNode<TAllowedTypes extends System_Unsafe.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> {
1288
1222
  insertAt(index: number, ...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
@@ -1439,15 +1373,20 @@ export type Unhydrated<T> = T;
1439
1373
  export type UnionToIntersection<T> = (T extends T ? (k: T) => unknown : never) extends (k: infer U) => unknown ? U : never;
1440
1374
 
1441
1375
  // @public
1442
- export type ValidateRecursiveSchema<T extends TreeNodeSchemaClass<string, NodeKind.Array | NodeKind.Map | NodeKind.Object, TreeNode & WithType<T["identifier"], T["kind"]>, {
1376
+ export type ValidateRecursiveSchema<T extends ValidateRecursiveSchemaTemplate<T>> = true;
1377
+
1378
+ // @public @system
1379
+ export type ValidateRecursiveSchemaTemplate<T extends TreeNodeSchema> = TreeNodeSchema<string, NodeKind.Array | NodeKind.Map | NodeKind.Object, TreeNode & WithType<T["identifier"], T["kind"]>, {
1443
1380
  [NodeKind.Object]: T["info"] extends RestrictiveStringRecord<ImplicitFieldSchema> ? InsertableObjectFromSchemaRecord<T["info"]> : unknown;
1444
1381
  [NodeKind.Array]: T["info"] extends ImplicitAllowedTypes ? Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>> : unknown;
1445
1382
  [NodeKind.Map]: T["info"] extends ImplicitAllowedTypes ? Iterable<[string, InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>]> : unknown;
1383
+ [NodeKind.Leaf]: unknown;
1446
1384
  }[T["kind"]], false, {
1447
1385
  [NodeKind.Object]: RestrictiveStringRecord<ImplicitFieldSchema>;
1448
1386
  [NodeKind.Array]: ImplicitAllowedTypes;
1449
1387
  [NodeKind.Map]: ImplicitAllowedTypes;
1450
- }[T["kind"]]>> = true;
1388
+ [NodeKind.Leaf]: unknown;
1389
+ }[T["kind"]]>;
1451
1390
 
1452
1391
  // @public @sealed @system
1453
1392
  export interface ViewableTree {
@@ -81,7 +81,9 @@ export abstract class ErasedType<out Name = unknown> {
81
81
  type ExtractItemType<Item extends LazyItem> = Item extends () => infer Result ? Result : Item;
82
82
 
83
83
  // @public @system
84
- type FieldHasDefault<T extends ImplicitFieldSchema> = T extends FieldSchema<FieldKind.Optional | FieldKind.Identifier> ? true : false;
84
+ type FieldHasDefault<T extends ImplicitFieldSchema> = [T] extends [
85
+ FieldSchema<FieldKind.Optional | FieldKind.Identifier>
86
+ ] ? true : false;
85
87
 
86
88
  // @public
87
89
  export enum FieldKind {
@@ -408,7 +410,6 @@ export const IFluidLoadable: keyof IProvideFluidLoadable;
408
410
 
409
411
  // @public @sealed
410
412
  export interface IFluidLoadable extends IProvideFluidLoadable {
411
- // (undocumented)
412
413
  readonly handle: IFluidHandle;
413
414
  }
414
415
 
@@ -448,12 +449,9 @@ type InsertableObjectFromSchemaRecord<T extends RestrictiveStringRecord<Implicit
448
449
  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;
449
450
 
450
451
  // @public @system
451
- export type InsertableTreeNodeFromAllowedTypes<TList extends AllowedTypes> = [TList] extends [
452
- readonly [
453
- LazyItem<infer TSchema extends TreeNodeSchema>,
454
- ...infer Rest extends AllowedTypes
455
- ]
456
- ] ? InsertableTypedNode<TSchema> | InsertableTreeNodeFromAllowedTypes<Rest> : never;
452
+ export type InsertableTreeNodeFromAllowedTypes<TList extends AllowedTypes> = IsUnion<TList> extends true ? never : {
453
+ readonly [Property in keyof TList]: TList[Property] extends LazyItem<infer TSchema extends TreeNodeSchema> ? InsertableTypedNode<TSchema> : never;
454
+ }[number];
457
455
 
458
456
  // @public
459
457
  export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes> = [
@@ -483,8 +481,7 @@ declare namespace InternalTypes {
483
481
  InsertableObjectFromSchemaRecord,
484
482
  FlexList,
485
483
  FlexListToUnion,
486
- ExtractItemType,
487
- TreeApi
484
+ ExtractItemType
488
485
  }
489
486
  }
490
487
  export { InternalTypes }
@@ -517,6 +514,9 @@ export function isFluidHandle(value: unknown): value is IFluidHandle;
517
514
  // @public
518
515
  export type IsListener<TListener> = TListener extends (...args: any[]) => void ? true : false;
519
516
 
517
+ // @public @system
518
+ export type IsUnion<T, T2 = T> = T extends unknown ? [T2] extends [T] ? false : true : "error";
519
+
520
520
  // @public
521
521
  export interface ITelemetryBaseProperties {
522
522
  [index: string]: TelemetryBaseEventPropertyType | Tagged<TelemetryBaseEventPropertyType>;
@@ -799,14 +799,9 @@ export namespace System_Unsafe {
799
799
  // @system
800
800
  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;
801
801
  // @system
802
- export type InsertableTreeNodeFromAllowedTypesUnsafe<TList extends AllowedTypesUnsafe> = [
803
- TList
804
- ] extends [
805
- readonly [
806
- LazyItem<infer TSchema extends TreeNodeSchemaUnsafe>,
807
- ...infer Rest extends AllowedTypesUnsafe
808
- ]
809
- ] ? InsertableTypedNodeUnsafe<TSchema> | InsertableTreeNodeFromAllowedTypesUnsafe<Rest> : never;
802
+ export type InsertableTreeNodeFromAllowedTypesUnsafe<TList extends AllowedTypesUnsafe> = IsUnion<TList> extends true ? never : {
803
+ readonly [Property in keyof TList]: TList[Property] extends LazyItem<infer TSchema extends TreeNodeSchemaUnsafe> ? InsertableTypedNodeUnsafe<TSchema> : never;
804
+ }[number];
810
805
  // @system
811
806
  export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends ImplicitAllowedTypesUnsafe> = [TSchema] extends [TreeNodeSchemaUnsafe] ? InsertableTypedNodeUnsafe<TSchema> : [TSchema] extends [AllowedTypesUnsafe] ? InsertableTreeNodeFromAllowedTypesUnsafe<TSchema> : never;
812
807
  // @system
@@ -879,15 +874,15 @@ export type TransactionConstraint = NodeInDocumentConstraint;
879
874
  // @public
880
875
  export type TransformedEvent<TThis, E, A extends any[]> = (event: E, listener: (...args: ReplaceIEventThisPlaceHolder<A, TThis>) => void) => TThis;
881
876
 
882
- // @public
883
- export const Tree: TreeApi;
884
-
885
877
  // @public @sealed @system
886
- interface TreeApi extends TreeNodeApi {
878
+ export interface Tree extends TreeNodeApi {
887
879
  contains(node: TreeNode, other: TreeNode): boolean;
888
880
  readonly runTransaction: RunTransaction;
889
881
  }
890
882
 
883
+ // @public
884
+ export const Tree: Tree;
885
+
891
886
  // @public @sealed
892
887
  export interface TreeArrayNode<TAllowedTypes extends System_Unsafe.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> {
893
888
  insertAt(index: number, ...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
@@ -1044,15 +1039,20 @@ export type Unhydrated<T> = T;
1044
1039
  export type UnionToIntersection<T> = (T extends T ? (k: T) => unknown : never) extends (k: infer U) => unknown ? U : never;
1045
1040
 
1046
1041
  // @public
1047
- export type ValidateRecursiveSchema<T extends TreeNodeSchemaClass<string, NodeKind.Array | NodeKind.Map | NodeKind.Object, TreeNode & WithType<T["identifier"], T["kind"]>, {
1042
+ export type ValidateRecursiveSchema<T extends ValidateRecursiveSchemaTemplate<T>> = true;
1043
+
1044
+ // @public @system
1045
+ export type ValidateRecursiveSchemaTemplate<T extends TreeNodeSchema> = TreeNodeSchema<string, NodeKind.Array | NodeKind.Map | NodeKind.Object, TreeNode & WithType<T["identifier"], T["kind"]>, {
1048
1046
  [NodeKind.Object]: T["info"] extends RestrictiveStringRecord<ImplicitFieldSchema> ? InsertableObjectFromSchemaRecord<T["info"]> : unknown;
1049
1047
  [NodeKind.Array]: T["info"] extends ImplicitAllowedTypes ? Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>> : unknown;
1050
1048
  [NodeKind.Map]: T["info"] extends ImplicitAllowedTypes ? Iterable<[string, InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>]> : unknown;
1049
+ [NodeKind.Leaf]: unknown;
1051
1050
  }[T["kind"]], false, {
1052
1051
  [NodeKind.Object]: RestrictiveStringRecord<ImplicitFieldSchema>;
1053
1052
  [NodeKind.Array]: ImplicitAllowedTypes;
1054
1053
  [NodeKind.Map]: ImplicitAllowedTypes;
1055
- }[T["kind"]]>> = true;
1054
+ [NodeKind.Leaf]: unknown;
1055
+ }[T["kind"]]>;
1056
1056
 
1057
1057
  // @public @sealed @system
1058
1058
  export interface ViewableTree {
@@ -81,7 +81,9 @@ export abstract class ErasedType<out Name = unknown> {
81
81
  type ExtractItemType<Item extends LazyItem> = Item extends () => infer Result ? Result : Item;
82
82
 
83
83
  // @public @system
84
- type FieldHasDefault<T extends ImplicitFieldSchema> = T extends FieldSchema<FieldKind.Optional | FieldKind.Identifier> ? true : false;
84
+ type FieldHasDefault<T extends ImplicitFieldSchema> = [T] extends [
85
+ FieldSchema<FieldKind.Optional | FieldKind.Identifier>
86
+ ] ? true : false;
85
87
 
86
88
  // @public
87
89
  export enum FieldKind {
@@ -380,7 +382,6 @@ export const IFluidLoadable: keyof IProvideFluidLoadable;
380
382
 
381
383
  // @public @sealed
382
384
  export interface IFluidLoadable extends IProvideFluidLoadable {
383
- // (undocumented)
384
385
  readonly handle: IFluidHandle;
385
386
  }
386
387
 
@@ -420,12 +421,9 @@ type InsertableObjectFromSchemaRecord<T extends RestrictiveStringRecord<Implicit
420
421
  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;
421
422
 
422
423
  // @public @system
423
- export type InsertableTreeNodeFromAllowedTypes<TList extends AllowedTypes> = [TList] extends [
424
- readonly [
425
- LazyItem<infer TSchema extends TreeNodeSchema>,
426
- ...infer Rest extends AllowedTypes
427
- ]
428
- ] ? InsertableTypedNode<TSchema> | InsertableTreeNodeFromAllowedTypes<Rest> : never;
424
+ export type InsertableTreeNodeFromAllowedTypes<TList extends AllowedTypes> = IsUnion<TList> extends true ? never : {
425
+ readonly [Property in keyof TList]: TList[Property] extends LazyItem<infer TSchema extends TreeNodeSchema> ? InsertableTypedNode<TSchema> : never;
426
+ }[number];
429
427
 
430
428
  // @public
431
429
  export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes> = [
@@ -453,8 +451,7 @@ declare namespace InternalTypes {
453
451
  InsertableObjectFromSchemaRecord,
454
452
  FlexList,
455
453
  FlexListToUnion,
456
- ExtractItemType,
457
- TreeApi
454
+ ExtractItemType
458
455
  }
459
456
  }
460
457
  export { InternalTypes }
@@ -487,6 +484,9 @@ export function isFluidHandle(value: unknown): value is IFluidHandle;
487
484
  // @public
488
485
  export type IsListener<TListener> = TListener extends (...args: any[]) => void ? true : false;
489
486
 
487
+ // @public @system
488
+ export type IsUnion<T, T2 = T> = T extends unknown ? [T2] extends [T] ? false : true : "error";
489
+
490
490
  // @public
491
491
  export interface ITelemetryBaseProperties {
492
492
  [index: string]: TelemetryBaseEventPropertyType | Tagged<TelemetryBaseEventPropertyType>;
@@ -759,14 +759,9 @@ export namespace System_Unsafe {
759
759
  // @system
760
760
  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;
761
761
  // @system
762
- export type InsertableTreeNodeFromAllowedTypesUnsafe<TList extends AllowedTypesUnsafe> = [
763
- TList
764
- ] extends [
765
- readonly [
766
- LazyItem<infer TSchema extends TreeNodeSchemaUnsafe>,
767
- ...infer Rest extends AllowedTypesUnsafe
768
- ]
769
- ] ? InsertableTypedNodeUnsafe<TSchema> | InsertableTreeNodeFromAllowedTypesUnsafe<Rest> : never;
762
+ export type InsertableTreeNodeFromAllowedTypesUnsafe<TList extends AllowedTypesUnsafe> = IsUnion<TList> extends true ? never : {
763
+ readonly [Property in keyof TList]: TList[Property] extends LazyItem<infer TSchema extends TreeNodeSchemaUnsafe> ? InsertableTypedNodeUnsafe<TSchema> : never;
764
+ }[number];
770
765
  // @system
771
766
  export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends ImplicitAllowedTypesUnsafe> = [TSchema] extends [TreeNodeSchemaUnsafe] ? InsertableTypedNodeUnsafe<TSchema> : [TSchema] extends [AllowedTypesUnsafe] ? InsertableTreeNodeFromAllowedTypesUnsafe<TSchema> : never;
772
767
  // @system
@@ -839,15 +834,15 @@ export type TransactionConstraint = NodeInDocumentConstraint;
839
834
  // @public
840
835
  export type TransformedEvent<TThis, E, A extends any[]> = (event: E, listener: (...args: ReplaceIEventThisPlaceHolder<A, TThis>) => void) => TThis;
841
836
 
842
- // @public
843
- export const Tree: TreeApi;
844
-
845
837
  // @public @sealed @system
846
- interface TreeApi extends TreeNodeApi {
838
+ export interface Tree extends TreeNodeApi {
847
839
  contains(node: TreeNode, other: TreeNode): boolean;
848
840
  readonly runTransaction: RunTransaction;
849
841
  }
850
842
 
843
+ // @public
844
+ export const Tree: Tree;
845
+
851
846
  // @public @sealed
852
847
  export interface TreeArrayNode<TAllowedTypes extends System_Unsafe.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> {
853
848
  insertAt(index: number, ...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
@@ -1004,15 +999,20 @@ export type Unhydrated<T> = T;
1004
999
  export type UnionToIntersection<T> = (T extends T ? (k: T) => unknown : never) extends (k: infer U) => unknown ? U : never;
1005
1000
 
1006
1001
  // @public
1007
- export type ValidateRecursiveSchema<T extends TreeNodeSchemaClass<string, NodeKind.Array | NodeKind.Map | NodeKind.Object, TreeNode & WithType<T["identifier"], T["kind"]>, {
1002
+ export type ValidateRecursiveSchema<T extends ValidateRecursiveSchemaTemplate<T>> = true;
1003
+
1004
+ // @public @system
1005
+ export type ValidateRecursiveSchemaTemplate<T extends TreeNodeSchema> = TreeNodeSchema<string, NodeKind.Array | NodeKind.Map | NodeKind.Object, TreeNode & WithType<T["identifier"], T["kind"]>, {
1008
1006
  [NodeKind.Object]: T["info"] extends RestrictiveStringRecord<ImplicitFieldSchema> ? InsertableObjectFromSchemaRecord<T["info"]> : unknown;
1009
1007
  [NodeKind.Array]: T["info"] extends ImplicitAllowedTypes ? Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>> : unknown;
1010
1008
  [NodeKind.Map]: T["info"] extends ImplicitAllowedTypes ? Iterable<[string, InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>]> : unknown;
1009
+ [NodeKind.Leaf]: unknown;
1011
1010
  }[T["kind"]], false, {
1012
1011
  [NodeKind.Object]: RestrictiveStringRecord<ImplicitFieldSchema>;
1013
1012
  [NodeKind.Array]: ImplicitAllowedTypes;
1014
1013
  [NodeKind.Map]: ImplicitAllowedTypes;
1015
- }[T["kind"]]>> = true;
1014
+ [NodeKind.Leaf]: unknown;
1015
+ }[T["kind"]]>;
1016
1016
 
1017
1017
  // @public @sealed @system
1018
1018
  export interface ViewableTree {
package/dist/alpha.d.ts CHANGED
@@ -67,6 +67,7 @@ export {
67
67
  InsertableTypedNode,
68
68
  InternalTreeNode,
69
69
  IsListener,
70
+ IsUnion,
70
71
  IterableTreeArrayContent,
71
72
  LazyItem,
72
73
  LeafSchema,
@@ -124,6 +125,7 @@ export {
124
125
  Unhydrated,
125
126
  UnionToIntersection,
126
127
  ValidateRecursiveSchema,
128
+ ValidateRecursiveSchemaTemplate,
127
129
  ViewableTree,
128
130
  WithType,
129
131
  isFluidHandle,
@@ -136,6 +138,10 @@ export {
136
138
  TreeChangeEventsBeta,
137
139
 
138
140
  // @alpha APIs
141
+ AllowedTypeMetadata,
142
+ AllowedTypesMetadata,
143
+ AnnotatedAllowedType,
144
+ AnnotatedAllowedTypes,
139
145
  ArrayNodeCustomizableSchema,
140
146
  ArrayNodeCustomizableSchemaUnsafe,
141
147
  ArrayNodePojoEmulationSchema,
@@ -157,10 +163,12 @@ export {
157
163
  ICodecOptions,
158
164
  ITreeAlpha,
159
165
  IdentifierIndex,
166
+ ImplicitAnnotatedAllowedTypes,
167
+ ImplicitAnnotatedFieldSchema,
160
168
  Insertable,
161
169
  InsertableContent,
162
170
  InsertableField,
163
- IsUnion,
171
+ InsertableObjectFromAnnotatedSchemaRecord,
164
172
  JsonArrayNodeSchema,
165
173
  JsonAsTree,
166
174
  JsonCompatible,
@@ -222,6 +230,13 @@ export {
222
230
  TreeSchemaEncodingOptions,
223
231
  TreeViewAlpha,
224
232
  TreeViewConfigurationAlpha,
233
+ UnannotateAllowedType,
234
+ UnannotateAllowedTypeOrLazyItem,
235
+ UnannotateAllowedTypes,
236
+ UnannotateAllowedTypesList,
237
+ UnannotateImplicitAllowedTypes,
238
+ UnannotateImplicitFieldSchema,
239
+ UnannotateSchemaRecord,
225
240
  UnionToTuple,
226
241
  UnsafeUnknownSchema,
227
242
  ValueSchema,
package/dist/beta.d.ts CHANGED
@@ -67,6 +67,7 @@ export {
67
67
  InsertableTypedNode,
68
68
  InternalTreeNode,
69
69
  IsListener,
70
+ IsUnion,
70
71
  IterableTreeArrayContent,
71
72
  LazyItem,
72
73
  LeafSchema,
@@ -124,6 +125,7 @@ export {
124
125
  Unhydrated,
125
126
  UnionToIntersection,
126
127
  ValidateRecursiveSchema,
128
+ ValidateRecursiveSchemaTemplate,
127
129
  ViewableTree,
128
130
  WithType,
129
131
  isFluidHandle,
package/dist/index.d.ts CHANGED
@@ -57,7 +57,7 @@ export declare const SharedTree: SharedObjectKind<ITree>;
57
57
  export declare function configuredSharedTree(options: SharedTreeOptions): SharedObjectKind<ITree>;
58
58
  export type { IDirectory, IDirectoryEvents, IDirectoryValueChanged, ISharedDirectory, ISharedDirectoryEvents, ISharedMap, ISharedMapEvents, IValueChanged, } from "@fluidframework/map/internal";
59
59
  export { SharedDirectory, SharedMap } from "@fluidframework/map/internal";
60
- export type { DeserializeCallback, InteriorSequencePlace, IInterval, IIntervalCollectionEvent, IIntervalCollection, IntervalIndex, IntervalStickiness, ISequenceDeltaRange, ISerializableInterval, ISerializedInterval, ISharedIntervalCollection, ISharedSegmentSequenceEvents, ISharedString, SequencePlace, SharedStringSegment, Side, ISharedSegmentSequence, ISequenceIntervalCollection, ISequenceIntervalCollectionEvents, SequenceIntervalIndex, } from "@fluidframework/sequence/internal";
60
+ export type { DeserializeCallback, InteriorSequencePlace, IInterval, IntervalStickiness, ISequenceDeltaRange, ISerializableInterval, ISerializedInterval, ISharedSegmentSequenceEvents, ISharedString, SequencePlace, SharedStringSegment, Side, ISharedSegmentSequence, ISequenceIntervalCollection, ISequenceIntervalCollectionEvents, SequenceIntervalIndex, } from "@fluidframework/sequence/internal";
61
61
  export type { IntervalType, SequenceDeltaEvent, SequenceEvent, SequenceInterval, SequenceMaintenanceEvent, } from "@fluidframework/sequence/internal";
62
62
  export { SharedString } from "@fluidframework/sequence/internal";
63
63
  export type { ISharedObject, ISharedObjectEvents, } from "@fluidframework/shared-object-base/internal";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AAMH,YAAY,EACX,eAAe,IAAI,mBAAmB,EAAE,0CAA0C;AAClF,uBAAuB,GACvB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,YAAY,EACX,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,OAAO,EACP,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,MAAM,GACN,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,YAAY,EACX,UAAU,EACV,cAAc,EACd,WAAW,EACX,MAAM,EACN,qBAAqB,EACrB,WAAW,EACX,UAAU,EACV,YAAY,EACZ,cAAc,EACd,wBAAwB,EACxB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,8BAA8B,EAC9B,MAAM,EACN,4BAA4B,EAC5B,WAAW,EAAE,wBAAwB;AACrC,uBAAuB,EAAE,sBAAsB;AAE/C,SAAS,EACT,UAAU,EACV,UAAU,EACV,GAAG,GAEH,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAEzE,YAAY,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AASnE,cAAc,4BAA4B,CAAC;AAQ3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAGN,KAAK,iBAAiB,EACtB,MAAM,+BAA+B,CAAC;AAEvC;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,EAAE,gBAAgB,CAAC,KAAK,CAAsB,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAExF;AAQD,YAAY,EACX,UAAU,EACV,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,EACtB,UAAU,EACV,gBAAgB,EAChB,aAAa,GACb,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE1E,YAAY,EACX,mBAAmB,EACnB,qBAAqB,EACrB,SAAS,EACT,wBAAwB,EACxB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,yBAAyB,EACzB,4BAA4B,EAC5B,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,IAAI,EACJ,sBAAsB,EACtB,2BAA2B,EAC3B,iCAAiC,EACjC,qBAAqB,GACrB,MAAM,mCAAmC,CAAC;AAE3C,YAAY,EACX,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,wBAAwB,GACxB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEjE,YAAY,EACX,aAAa,EACb,mBAAmB,GACnB,MAAM,6CAA6C,CAAC;AAErD,YAAY,EACX,yBAAyB,EAAE,iCAAiC;AAC5D,aAAa,EAAE,yCAAyC;AACxD,MAAM,GACN,MAAM,6CAA6C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AAMH,YAAY,EACX,eAAe,IAAI,mBAAmB,EAAE,0CAA0C;AAClF,uBAAuB,GACvB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,YAAY,EACX,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,OAAO,EACP,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,MAAM,GACN,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,YAAY,EACX,UAAU,EACV,cAAc,EACd,WAAW,EACX,MAAM,EACN,qBAAqB,EACrB,WAAW,EACX,UAAU,EACV,YAAY,EACZ,cAAc,EACd,wBAAwB,EACxB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,8BAA8B,EAC9B,MAAM,EACN,4BAA4B,EAC5B,WAAW,EAAE,wBAAwB;AACrC,uBAAuB,EAAE,sBAAsB;AAE/C,SAAS,EACT,UAAU,EACV,UAAU,EACV,GAAG,GAEH,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAEzE,YAAY,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AASnE,cAAc,4BAA4B,CAAC;AAQ3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAGN,KAAK,iBAAiB,EACtB,MAAM,+BAA+B,CAAC;AAEvC;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,EAAE,gBAAgB,CAAC,KAAK,CAAsB,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAExF;AAQD,YAAY,EACX,UAAU,EACV,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,EACtB,UAAU,EACV,gBAAgB,EAChB,aAAa,GACb,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE1E,YAAY,EACX,mBAAmB,EACnB,qBAAqB,EACrB,SAAS,EACT,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,4BAA4B,EAC5B,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,IAAI,EACJ,sBAAsB,EACtB,2BAA2B,EAC3B,iCAAiC,EACjC,qBAAqB,GACrB,MAAM,mCAAmC,CAAC;AAE3C,YAAY,EACX,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,wBAAwB,GACxB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEjE,YAAY,EACX,aAAa,EACb,mBAAmB,GACnB,MAAM,6CAA6C,CAAC;AAErD,YAAY,EACX,yBAAyB,EAAE,iCAAiC;AAC5D,aAAa,EAAE,yCAAyC;AACxD,MAAM,GACN,MAAM,6CAA6C,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAiBH,+EAAoE;AAA3D,oHAAA,WAAW,OAAA;AACpB,qEAAmE;AAA1D,mHAAA,eAAe,OAAA;AA0CxB,4GAA4G;AAC5G,gEAAyE;AAAhE,8GAAA,kBAAkB,OAAA;AAI3B,mDAAmD;AACnD,4FAA4F;AAC5F;;;;MAIG;AACH,6DAA2C;AAU3C,4DAIuC;AAEvC;;;;;;;;;GASG;AACU,QAAA,UAAU,GAA4B,qBAAkB,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,oBAAoB,CAAC,OAA0B;IAC9D,OAAO,IAAA,+BAA4B,EAAC,OAAO,CAAC,CAAC;AAC9C,CAAC;AAFD,oDAEC;AAmBD,yDAA0E;AAAjE,2GAAA,eAAe,OAAA;AAAE,qGAAA,SAAS,OAAA;AAiCnC,8DAAiE;AAAxD,wGAAA,YAAY,OAAA;AAarB,4BAA4B","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Bundles a collection of Fluid Framework client libraries for easy use when paired with a corresponding service client\n * package (e.g. `@fluidframework/azure-client`, `@fluidframework/tinylicious-client`, or `@fluidframework/odsp-client (BETA)`).\n *\n * @packageDocumentation\n */\n\n// ===============================================================\n// #region Public, Beta and Alpha (non-legacy) exports\n// #region Basic re-exports\n\nexport type {\n\tConnectionState as ConnectionStateType, // TODO: deduplicate ConnectionState types\n\tICriticalContainerError,\n} from \"@fluidframework/container-definitions\";\nexport { AttachState } from \"@fluidframework/container-definitions\";\nexport { ConnectionState } from \"@fluidframework/container-loader\";\nexport type {\n\tContainerAttachProps,\n\tContainerSchema,\n\tIConnection,\n\tIFluidContainer,\n\tIFluidContainerEvents,\n\tIMember,\n\tInitialObjects,\n\tIServiceAudience,\n\tIServiceAudienceEvents,\n\tMemberChangedListener,\n\tMyself,\n} from \"@fluidframework/fluid-static\";\nexport type { SharedObjectKind } from \"@fluidframework/shared-object-base\";\nexport type {\n\tIErrorBase,\n\tIEventProvider,\n\tIDisposable,\n\tIEvent,\n\tIEventThisPlaceHolder,\n\tIErrorEvent,\n\tErasedType,\n\tIFluidHandle,\n\tIFluidLoadable,\n\tITelemetryBaseProperties,\n\tIEventTransformer,\n\tIProvideFluidLoadable,\n\tIFluidHandleErased,\n\tTransformedEvent,\n\tTelemetryBaseEventPropertyType,\n\tTagged,\n\tReplaceIEventThisPlaceHolder,\n\tFluidObject, // Linked in doc comment\n\tFluidObjectProviderKeys, // Used by FluidObject\n\t/* eslint-disable import/export -- The event APIs are known to conflict, and this is intended as the exports via `@fluidframework/core-interfaces` are preferred over the deprecated ones from `@fluidframework/tree`. */\n\tListeners,\n\tIsListener,\n\tListenable,\n\tOff,\n\t/* eslint-enable import/export */\n} from \"@fluidframework/core-interfaces\";\n// This is an alpha API, but this package doesn't have an alpha entry point so its imported from \"internal\".\nexport { onAssertionFailure } from \"@fluidframework/core-utils/internal\";\n\nexport type { isFluidHandle } from \"@fluidframework/runtime-utils\";\n\n// Let the tree package manage its own API surface.\n// Note: this only surfaces the `@public, @beta and @alpha` API items from the tree package.\n/* eslint-disable-next-line\n\tno-restricted-syntax,\n\timport/no-internal-modules,\n\timport/export -- This re-exports all non-conflicting APIs from `@fluidframework/tree`. In cases where * exports conflict with named exports, the named exports take precedence per https://tc39.es/ecma262/multipage/ecmascript-language-scripts-and-modules.html#sec-getexportednames. This does trigger the `import/export` lint warning (which is intentionally disabled here). This approach ensures that the non-deprecated versions of the event APIs from `@fluidframework/core-interfaces` (provided as named indirect exports) eclipse the deprecated ones from `@fluidframework/tree`. The preferred versions of the event APIs are those exported via `@fluidframework/core-interfaces`.\n\t*/\nexport * from \"@fluidframework/tree/alpha\";\n\n// End of basic public+beta+alpha exports - nothing above this line should\n// depend on an /internal path.\n// #endregion Basic re-exports\n// ---------------------------------------------------------------\n// #region Custom re-exports\n\nimport type { SharedObjectKind } from \"@fluidframework/shared-object-base\";\nimport type { ITree } from \"@fluidframework/tree\";\nimport {\n\tSharedTree as OriginalSharedTree,\n\tconfiguredSharedTree as originalConfiguredSharedTree,\n\ttype SharedTreeOptions,\n} from \"@fluidframework/tree/internal\";\n\n/**\n * A hierarchical data structure for collaboratively editing strongly typed JSON-like trees\n * of objects, arrays, and other data types.\n * @privateRemarks\n * Here we reexport SharedTree, but with the `@alpha` types (`ISharedObjectKind`) removed, just keeping the `SharedObjectKind`.\n * Doing this requires creating this new typed export rather than relying on a reexport directly from the tree package.\n * The tree package itself does not do this because it's API needs to be usable from the encapsulated API which requires `ISharedObjectKind`.\n * This package however is not intended for use by users of the encapsulated API, and therefor it can discard that interface.\n * @public\n */\nexport const SharedTree: SharedObjectKind<ITree> = OriginalSharedTree;\n\n/**\n * {@link SharedTree} but allowing a non-default configuration.\n * @remarks\n * This is useful for debugging and testing to opt into extra validation or see if opting out of some optimizations fixes an issue.\n * @example\n * ```typescript\n * import {\n * \tForestType,\n * \tTreeCompressionStrategy,\n * \tconfiguredSharedTree,\n * \ttypeboxValidator,\n * } from \"@fluid-framework/alpha\";\n * const SharedTree = configuredSharedTree({\n * \tforest: ForestType.Reference,\n * \tjsonValidator: typeboxValidator,\n * \ttreeEncodeType: TreeCompressionStrategy.Uncompressed,\n * });\n * ```\n * @alpha\n */\nexport function configuredSharedTree(options: SharedTreeOptions): SharedObjectKind<ITree> {\n\treturn originalConfiguredSharedTree(options);\n}\n\n// #endregion Custom re-exports\n// #endregion\n\n// ===============================================================\n// #region Legacy exports\n\nexport type {\n\tIDirectory,\n\tIDirectoryEvents,\n\tIDirectoryValueChanged,\n\tISharedDirectory,\n\tISharedDirectoryEvents,\n\tISharedMap,\n\tISharedMapEvents,\n\tIValueChanged,\n} from \"@fluidframework/map/internal\";\n\nexport { SharedDirectory, SharedMap } from \"@fluidframework/map/internal\";\n\nexport type {\n\tDeserializeCallback,\n\tInteriorSequencePlace,\n\tIInterval,\n\tIIntervalCollectionEvent,\n\tIIntervalCollection,\n\tIntervalIndex,\n\tIntervalStickiness,\n\tISequenceDeltaRange,\n\tISerializableInterval,\n\tISerializedInterval,\n\tISharedIntervalCollection,\n\tISharedSegmentSequenceEvents,\n\tISharedString,\n\tSequencePlace,\n\tSharedStringSegment,\n\tSide,\n\tISharedSegmentSequence,\n\tISequenceIntervalCollection,\n\tISequenceIntervalCollectionEvents,\n\tSequenceIntervalIndex,\n} from \"@fluidframework/sequence/internal\";\n\nexport type {\n\tIntervalType,\n\tSequenceDeltaEvent,\n\tSequenceEvent,\n\tSequenceInterval,\n\tSequenceMaintenanceEvent,\n} from \"@fluidframework/sequence/internal\";\n\nexport { SharedString } from \"@fluidframework/sequence/internal\";\n\nexport type {\n\tISharedObject,\n\tISharedObjectEvents,\n} from \"@fluidframework/shared-object-base/internal\";\n\nexport type {\n\tISequencedDocumentMessage, // Leaked via ISharedObjectEvents\n\tIBranchOrigin, // Required for ISequencedDocumentMessage\n\tITrace, // Required for ISequencedDocumentMessage\n} from \"@fluidframework/driver-definitions/internal\";\n\n// #endregion Legacy exports\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAiBH,+EAAoE;AAA3D,oHAAA,WAAW,OAAA;AACpB,qEAAmE;AAA1D,mHAAA,eAAe,OAAA;AA0CxB,4GAA4G;AAC5G,gEAAyE;AAAhE,8GAAA,kBAAkB,OAAA;AAI3B,mDAAmD;AACnD,4FAA4F;AAC5F;;;;MAIG;AACH,6DAA2C;AAU3C,4DAIuC;AAEvC;;;;;;;;;GASG;AACU,QAAA,UAAU,GAA4B,qBAAkB,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,oBAAoB,CAAC,OAA0B;IAC9D,OAAO,IAAA,+BAA4B,EAAC,OAAO,CAAC,CAAC;AAC9C,CAAC;AAFD,oDAEC;AAmBD,yDAA0E;AAAjE,2GAAA,eAAe,OAAA;AAAE,qGAAA,SAAS,OAAA;AA6BnC,8DAAiE;AAAxD,wGAAA,YAAY,OAAA;AAarB,4BAA4B","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Bundles a collection of Fluid Framework client libraries for easy use when paired with a corresponding service client\n * package (e.g. `@fluidframework/azure-client`, `@fluidframework/tinylicious-client`, or `@fluidframework/odsp-client (BETA)`).\n *\n * @packageDocumentation\n */\n\n// ===============================================================\n// #region Public, Beta and Alpha (non-legacy) exports\n// #region Basic re-exports\n\nexport type {\n\tConnectionState as ConnectionStateType, // TODO: deduplicate ConnectionState types\n\tICriticalContainerError,\n} from \"@fluidframework/container-definitions\";\nexport { AttachState } from \"@fluidframework/container-definitions\";\nexport { ConnectionState } from \"@fluidframework/container-loader\";\nexport type {\n\tContainerAttachProps,\n\tContainerSchema,\n\tIConnection,\n\tIFluidContainer,\n\tIFluidContainerEvents,\n\tIMember,\n\tInitialObjects,\n\tIServiceAudience,\n\tIServiceAudienceEvents,\n\tMemberChangedListener,\n\tMyself,\n} from \"@fluidframework/fluid-static\";\nexport type { SharedObjectKind } from \"@fluidframework/shared-object-base\";\nexport type {\n\tIErrorBase,\n\tIEventProvider,\n\tIDisposable,\n\tIEvent,\n\tIEventThisPlaceHolder,\n\tIErrorEvent,\n\tErasedType,\n\tIFluidHandle,\n\tIFluidLoadable,\n\tITelemetryBaseProperties,\n\tIEventTransformer,\n\tIProvideFluidLoadable,\n\tIFluidHandleErased,\n\tTransformedEvent,\n\tTelemetryBaseEventPropertyType,\n\tTagged,\n\tReplaceIEventThisPlaceHolder,\n\tFluidObject, // Linked in doc comment\n\tFluidObjectProviderKeys, // Used by FluidObject\n\t/* eslint-disable import/export -- The event APIs are known to conflict, and this is intended as the exports via `@fluidframework/core-interfaces` are preferred over the deprecated ones from `@fluidframework/tree`. */\n\tListeners,\n\tIsListener,\n\tListenable,\n\tOff,\n\t/* eslint-enable import/export */\n} from \"@fluidframework/core-interfaces\";\n// This is an alpha API, but this package doesn't have an alpha entry point so its imported from \"internal\".\nexport { onAssertionFailure } from \"@fluidframework/core-utils/internal\";\n\nexport type { isFluidHandle } from \"@fluidframework/runtime-utils\";\n\n// Let the tree package manage its own API surface.\n// Note: this only surfaces the `@public, @beta and @alpha` API items from the tree package.\n/* eslint-disable-next-line\n\tno-restricted-syntax,\n\timport/no-internal-modules,\n\timport/export -- This re-exports all non-conflicting APIs from `@fluidframework/tree`. In cases where * exports conflict with named exports, the named exports take precedence per https://tc39.es/ecma262/multipage/ecmascript-language-scripts-and-modules.html#sec-getexportednames. This does trigger the `import/export` lint warning (which is intentionally disabled here). This approach ensures that the non-deprecated versions of the event APIs from `@fluidframework/core-interfaces` (provided as named indirect exports) eclipse the deprecated ones from `@fluidframework/tree`. The preferred versions of the event APIs are those exported via `@fluidframework/core-interfaces`.\n\t*/\nexport * from \"@fluidframework/tree/alpha\";\n\n// End of basic public+beta+alpha exports - nothing above this line should\n// depend on an /internal path.\n// #endregion Basic re-exports\n// ---------------------------------------------------------------\n// #region Custom re-exports\n\nimport type { SharedObjectKind } from \"@fluidframework/shared-object-base\";\nimport type { ITree } from \"@fluidframework/tree\";\nimport {\n\tSharedTree as OriginalSharedTree,\n\tconfiguredSharedTree as originalConfiguredSharedTree,\n\ttype SharedTreeOptions,\n} from \"@fluidframework/tree/internal\";\n\n/**\n * A hierarchical data structure for collaboratively editing strongly typed JSON-like trees\n * of objects, arrays, and other data types.\n * @privateRemarks\n * Here we reexport SharedTree, but with the `@alpha` types (`ISharedObjectKind`) removed, just keeping the `SharedObjectKind`.\n * Doing this requires creating this new typed export rather than relying on a reexport directly from the tree package.\n * The tree package itself does not do this because it's API needs to be usable from the encapsulated API which requires `ISharedObjectKind`.\n * This package however is not intended for use by users of the encapsulated API, and therefor it can discard that interface.\n * @public\n */\nexport const SharedTree: SharedObjectKind<ITree> = OriginalSharedTree;\n\n/**\n * {@link SharedTree} but allowing a non-default configuration.\n * @remarks\n * This is useful for debugging and testing to opt into extra validation or see if opting out of some optimizations fixes an issue.\n * @example\n * ```typescript\n * import {\n * \tForestType,\n * \tTreeCompressionStrategy,\n * \tconfiguredSharedTree,\n * \ttypeboxValidator,\n * } from \"@fluid-framework/alpha\";\n * const SharedTree = configuredSharedTree({\n * \tforest: ForestType.Reference,\n * \tjsonValidator: typeboxValidator,\n * \ttreeEncodeType: TreeCompressionStrategy.Uncompressed,\n * });\n * ```\n * @alpha\n */\nexport function configuredSharedTree(options: SharedTreeOptions): SharedObjectKind<ITree> {\n\treturn originalConfiguredSharedTree(options);\n}\n\n// #endregion Custom re-exports\n// #endregion\n\n// ===============================================================\n// #region Legacy exports\n\nexport type {\n\tIDirectory,\n\tIDirectoryEvents,\n\tIDirectoryValueChanged,\n\tISharedDirectory,\n\tISharedDirectoryEvents,\n\tISharedMap,\n\tISharedMapEvents,\n\tIValueChanged,\n} from \"@fluidframework/map/internal\";\n\nexport { SharedDirectory, SharedMap } from \"@fluidframework/map/internal\";\n\nexport type {\n\tDeserializeCallback,\n\tInteriorSequencePlace,\n\tIInterval,\n\tIntervalStickiness,\n\tISequenceDeltaRange,\n\tISerializableInterval,\n\tISerializedInterval,\n\tISharedSegmentSequenceEvents,\n\tISharedString,\n\tSequencePlace,\n\tSharedStringSegment,\n\tSide,\n\tISharedSegmentSequence,\n\tISequenceIntervalCollection,\n\tISequenceIntervalCollectionEvents,\n\tSequenceIntervalIndex,\n} from \"@fluidframework/sequence/internal\";\n\nexport type {\n\tIntervalType,\n\tSequenceDeltaEvent,\n\tSequenceEvent,\n\tSequenceInterval,\n\tSequenceMaintenanceEvent,\n} from \"@fluidframework/sequence/internal\";\n\nexport { SharedString } from \"@fluidframework/sequence/internal\";\n\nexport type {\n\tISharedObject,\n\tISharedObjectEvents,\n} from \"@fluidframework/shared-object-base/internal\";\n\nexport type {\n\tISequencedDocumentMessage, // Leaked via ISharedObjectEvents\n\tIBranchOrigin, // Required for ISequencedDocumentMessage\n\tITrace, // Required for ISequencedDocumentMessage\n} from \"@fluidframework/driver-definitions/internal\";\n\n// #endregion Legacy exports\n"]}
package/dist/legacy.d.ts CHANGED
@@ -67,6 +67,7 @@ export {
67
67
  InsertableTypedNode,
68
68
  InternalTreeNode,
69
69
  IsListener,
70
+ IsUnion,
70
71
  IterableTreeArrayContent,
71
72
  LazyItem,
72
73
  LeafSchema,
@@ -124,6 +125,7 @@ export {
124
125
  Unhydrated,
125
126
  UnionToIntersection,
126
127
  ValidateRecursiveSchema,
128
+ ValidateRecursiveSchemaTemplate,
127
129
  ViewableTree,
128
130
  WithType,
129
131
  isFluidHandle,
@@ -137,8 +139,6 @@ export {
137
139
  IDirectoryEvents,
138
140
  IDirectoryValueChanged,
139
141
  IInterval,
140
- IIntervalCollection,
141
- IIntervalCollectionEvent,
142
142
  ISequenceDeltaRange,
143
143
  ISequenceIntervalCollection,
144
144
  ISequenceIntervalCollectionEvents,
@@ -147,7 +147,6 @@ export {
147
147
  ISerializedInterval,
148
148
  ISharedDirectory,
149
149
  ISharedDirectoryEvents,
150
- ISharedIntervalCollection,
151
150
  ISharedMap,
152
151
  ISharedMapEvents,
153
152
  ISharedObject,
@@ -158,7 +157,6 @@ export {
158
157
  ITrace,
159
158
  IValueChanged,
160
159
  InteriorSequencePlace,
161
- IntervalIndex,
162
160
  IntervalStickiness,
163
161
  IntervalType,
164
162
  SequenceDeltaEvent,
package/dist/public.d.ts CHANGED
@@ -67,6 +67,7 @@ export {
67
67
  InsertableTypedNode,
68
68
  InternalTreeNode,
69
69
  IsListener,
70
+ IsUnion,
70
71
  IterableTreeArrayContent,
71
72
  LazyItem,
72
73
  LeafSchema,
@@ -124,6 +125,7 @@ export {
124
125
  Unhydrated,
125
126
  UnionToIntersection,
126
127
  ValidateRecursiveSchema,
128
+ ValidateRecursiveSchemaTemplate,
127
129
  ViewableTree,
128
130
  WithType,
129
131
  isFluidHandle,