fluid-framework 2.53.1 → 2.61.0-355054

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.
@@ -1,9 +1,20 @@
1
- ## Alpha API Report File for "fluid-framework"
1
+ ## Beta API Report File for "fluid-framework"
2
2
 
3
3
  > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
4
4
 
5
5
  ```ts
6
6
 
7
+ // @beta
8
+ export function adaptEnum<TScope extends string, const TEnum extends Record<string, string | number>>(factory: SchemaFactory<TScope>, members: TEnum): (<TValue extends TEnum[keyof TEnum]>(value: TValue) => TValue extends unknown ? TreeNode & {
9
+ readonly value: TValue;
10
+ } : never) & { readonly [Property in keyof TEnum]: TreeNodeSchemaClass<ScopedSchemaName<TScope, TEnum[Property]>, NodeKind.Object, TreeNode & {
11
+ readonly value: TEnum[Property];
12
+ }, Record<string, never>, true, Record<string, never>, undefined>; } & {
13
+ readonly schema: UnionToTuple<{ readonly [Property in keyof TEnum]: TreeNodeSchemaClass<ScopedSchemaName<TScope, TEnum[Property]>, NodeKind.Object, TreeNode & {
14
+ readonly value: TEnum[Property];
15
+ }, Record<string, never>, true, Record<string, never>, undefined>; }[keyof TEnum]>;
16
+ };
17
+
7
18
  // @public @system
8
19
  export type AllowedTypes = readonly LazyItem<TreeNodeSchema>[];
9
20
 
@@ -75,9 +86,20 @@ export interface ContainerSchema {
75
86
  interface DefaultProvider extends ErasedType<"@fluidframework/tree.FieldProvider"> {
76
87
  }
77
88
 
78
- // @alpha @legacy (undocumented)
89
+ // @beta @legacy (undocumented)
79
90
  export type DeserializeCallback = (properties: PropertySet) => void;
80
91
 
92
+ // @beta
93
+ export function enumFromStrings<TScope extends string, const Members extends readonly string[]>(factory: SchemaFactory<TScope>, members: Members): (<TValue extends Members[number]>(value: TValue) => TValue extends unknown ? TreeNode & {
94
+ readonly value: TValue;
95
+ } : never) & { [Index in Extract<keyof Members, `${number}`> extends `${infer N extends number}` ? N : never as Members[Index]]: TreeNodeSchemaClass<ScopedSchemaName<TScope, Members[Index]>, NodeKind.Object, TreeNode & {
96
+ readonly value: Members[Index];
97
+ }, Record<string, never>, true, Record<string, never>, undefined>; } & {
98
+ readonly schema: UnionToTuple<Members[number] extends unknown ? { [Index in Extract<keyof Members, `${number}`> extends `${infer N extends number}` ? N : never as Members[Index]]: TreeNodeSchemaClass<ScopedSchemaName<TScope, Members[Index]>, NodeKind.Object, TreeNode & {
99
+ readonly value: Members[Index];
100
+ }, Record<string, never>, true, Record<string, never>, undefined>; }[Members[number]] : never>;
101
+ };
102
+
81
103
  // @public @sealed
82
104
  export abstract class ErasedType<out Name = unknown> {
83
105
  static [Symbol.hasInstance](value: never): value is never;
@@ -146,7 +168,16 @@ export type FluidObject<T = unknown> = {
146
168
  // @public
147
169
  export type FluidObjectProviderKeys<T, TProp extends keyof T = keyof T> = string extends TProp ? never : number extends TProp ? never : TProp extends keyof Required<T>[TProp] ? Required<T>[TProp] extends Required<Required<T>[TProp]>[TProp] ? TProp : never : never;
148
170
 
149
- // @alpha @legacy
171
+ // @beta @input
172
+ export interface ForestOptions {
173
+ readonly forest?: ForestType;
174
+ }
175
+
176
+ // @beta @sealed
177
+ export interface ForestType extends ErasedType<"ForestType"> {
178
+ }
179
+
180
+ // @beta @legacy
150
181
  export interface IBranchOrigin {
151
182
  id: string;
152
183
  minimumSequenceNumber: number;
@@ -427,19 +458,13 @@ export interface IFluidLoadable extends IProvideFluidLoadable {
427
458
  readonly handle: IFluidHandle;
428
459
  }
429
460
 
430
- // @alpha @legacy
461
+ // @beta @legacy
431
462
  export interface IInterval {
432
- // @deprecated (undocumented)
433
- clone(): IInterval;
434
463
  compare(b: IInterval): number;
435
464
  compareEnd(b: IInterval): number;
436
465
  compareStart(b: IInterval): number;
437
- // @deprecated
438
- modify(label: string, start: SequencePlace | undefined, end: SequencePlace | undefined, op?: ISequencedDocumentMessage, localSeq?: number, canSlideToEndpoint?: boolean): IInterval | undefined;
439
466
  // (undocumented)
440
467
  overlaps(b: IInterval): boolean;
441
- // @deprecated
442
- union(b: IInterval): IInterval;
443
468
  }
444
469
 
445
470
  // @public
@@ -515,7 +540,7 @@ declare namespace InternalTypes {
515
540
  }
516
541
  export { InternalTypes }
517
542
 
518
- // @alpha @legacy
543
+ // @beta @legacy
519
544
  export const IntervalStickiness: {
520
545
  readonly NONE: 0;
521
546
  readonly START: 1;
@@ -523,10 +548,10 @@ export const IntervalStickiness: {
523
548
  readonly FULL: 3;
524
549
  };
525
550
 
526
- // @alpha @legacy
551
+ // @beta @legacy
527
552
  export type IntervalStickiness = (typeof IntervalStickiness)[keyof typeof IntervalStickiness];
528
553
 
529
- // @alpha @legacy (undocumented)
554
+ // @beta @legacy (undocumented)
530
555
  export enum IntervalType {
531
556
  // (undocumented)
532
557
  Simple = 0,
@@ -539,7 +564,7 @@ export interface IProvideFluidLoadable {
539
564
  readonly IFluidLoadable: IFluidLoadable;
540
565
  }
541
566
 
542
- // @alpha @legacy
567
+ // @beta @legacy
543
568
  export interface ISequencedDocumentMessage {
544
569
  clientId: string | null;
545
570
  clientSequenceNumber: number;
@@ -560,7 +585,7 @@ export interface ISequencedDocumentMessage {
560
585
  type: string;
561
586
  }
562
587
 
563
- // @alpha @legacy
588
+ // @beta @legacy
564
589
  export interface ISequenceDeltaRange<TOperation extends MergeTreeDeltaOperationTypes = MergeTreeDeltaOperationTypes> {
565
590
  operation: TOperation;
566
591
  position: number;
@@ -568,7 +593,7 @@ export interface ISequenceDeltaRange<TOperation extends MergeTreeDeltaOperationT
568
593
  segment: ISegment;
569
594
  }
570
595
 
571
- // @alpha @legacy
596
+ // @beta @legacy
572
597
  export interface ISequenceIntervalCollection extends TypedEventEmitter<ISequenceIntervalCollectionEvents> {
573
598
  // (undocumented)
574
599
  [Symbol.iterator](): Iterator<SequenceInterval>;
@@ -609,7 +634,7 @@ export interface ISequenceIntervalCollection extends TypedEventEmitter<ISequence
609
634
  removeIntervalById(id: string): SequenceInterval | undefined;
610
635
  }
611
636
 
612
- // @alpha @legacy
637
+ // @beta @legacy
613
638
  export interface ISequenceIntervalCollectionEvents extends IEvent {
614
639
  (event: "changeInterval", listener: (interval: SequenceInterval, previousInterval: SequenceInterval, local: boolean, op: ISequencedDocumentMessage | undefined, slide: boolean) => void): void;
615
640
  (event: "addInterval" | "deleteInterval", listener: (interval: SequenceInterval, local: boolean, op: ISequencedDocumentMessage | undefined) => void): void;
@@ -617,15 +642,7 @@ export interface ISequenceIntervalCollectionEvents extends IEvent {
617
642
  (event: "changed", listener: (interval: SequenceInterval, propertyDeltas: PropertySet, previousInterval: SequenceInterval | undefined, local: boolean, slide: boolean) => void): void;
618
643
  }
619
644
 
620
- // @alpha @deprecated @legacy (undocumented)
621
- export interface ISerializableInterval extends IInterval {
622
- getIntervalId(): string;
623
- properties: PropertySet;
624
- // @deprecated (undocumented)
625
- serialize(): ISerializedInterval;
626
- }
627
-
628
- // @alpha @legacy
645
+ // @beta @legacy
629
646
  export interface ISerializedInterval {
630
647
  end: number | "start" | "end";
631
648
  // (undocumented)
@@ -658,7 +675,7 @@ export interface IServiceAudienceEvents<M extends IMember> extends IEvent {
658
675
  // @public
659
676
  export function isFluidHandle(value: unknown): value is IFluidHandle;
660
677
 
661
- // @alpha @sealed @legacy
678
+ // @beta @sealed @legacy
662
679
  export interface ISharedDirectory extends ISharedObject<ISharedDirectoryEvents & IDirectoryEvents>, Omit<IDirectory, "on" | "once" | "off"> {
663
680
  // (undocumented)
664
681
  [Symbol.iterator](): IterableIterator<[string, any]>;
@@ -666,7 +683,7 @@ export interface ISharedDirectory extends ISharedObject<ISharedDirectoryEvents &
666
683
  readonly [Symbol.toStringTag]: string;
667
684
  }
668
685
 
669
- // @alpha @sealed @legacy
686
+ // @beta @sealed @legacy
670
687
  export interface ISharedDirectoryEvents extends ISharedObjectEvents {
671
688
  (event: "valueChanged", listener: (changed: IDirectoryValueChanged, local: boolean, target: IEventThisPlaceHolder) => void): any;
672
689
  (event: "clear", listener: (local: boolean, target: IEventThisPlaceHolder) => void): any;
@@ -674,24 +691,24 @@ export interface ISharedDirectoryEvents extends ISharedObjectEvents {
674
691
  (event: "subDirectoryDeleted", listener: (path: string, local: boolean, target: IEventThisPlaceHolder) => void): any;
675
692
  }
676
693
 
677
- // @alpha @sealed @legacy
694
+ // @beta @sealed @legacy
678
695
  export interface ISharedMap extends ISharedObject<ISharedMapEvents>, Map<string, any> {
679
696
  get<T = any>(key: string): T | undefined;
680
697
  set<T = unknown>(key: string, value: T): this;
681
698
  }
682
699
 
683
- // @alpha @sealed @legacy
700
+ // @beta @sealed @legacy
684
701
  export interface ISharedMapEvents extends ISharedObjectEvents {
685
702
  (event: "valueChanged", listener: (changed: IValueChanged, local: boolean, target: IEventThisPlaceHolder) => void): any;
686
703
  (event: "clear", listener: (local: boolean, target: IEventThisPlaceHolder) => void): any;
687
704
  }
688
705
 
689
- // @alpha @legacy
706
+ // @beta @legacy
690
707
  export interface ISharedObject<TEvent extends ISharedObjectEvents = ISharedObjectEvents> extends IChannel, IEventProvider<TEvent> {
691
708
  bindToContext(): void;
692
709
  }
693
710
 
694
- // @alpha @legacy
711
+ // @beta @legacy
695
712
  export interface ISharedObjectEvents extends IErrorEvent {
696
713
  // @eventProperty
697
714
  (event: "pre-op", listener: (op: ISequencedDocumentMessage, local: boolean, target: IEventThisPlaceHolder) => void): any;
@@ -699,7 +716,7 @@ export interface ISharedObjectEvents extends IErrorEvent {
699
716
  (event: "op", listener: (op: ISequencedDocumentMessage, local: boolean, target: IEventThisPlaceHolder) => void): any;
700
717
  }
701
718
 
702
- // @alpha @legacy (undocumented)
719
+ // @beta @legacy (undocumented)
703
720
  export interface ISharedSegmentSequence<T extends ISegment> extends ISharedObject<ISharedSegmentSequenceEvents>, MergeTreeRevertibleDriver {
704
721
  annotateAdjustRange(start: number, end: number, adjust: MapLike<AdjustParams>): void;
705
722
  annotateRange(start: number, end: number, props: PropertySet): void;
@@ -737,7 +754,7 @@ export interface ISharedSegmentSequence<T extends ISegment> extends ISharedObjec
737
754
  walkSegments<TClientData>(handler: ISegmentAction<TClientData>, start?: number, end?: number, accum?: TClientData, splitRange?: boolean): void;
738
755
  }
739
756
 
740
- // @alpha @legacy
757
+ // @beta @legacy
741
758
  export interface ISharedSegmentSequenceEvents extends ISharedObjectEvents {
742
759
  // (undocumented)
743
760
  (event: "createIntervalCollection", listener: (label: string, local: boolean, target: IEventThisPlaceHolder) => void): void;
@@ -747,7 +764,7 @@ export interface ISharedSegmentSequenceEvents extends ISharedObjectEvents {
747
764
  (event: "maintenance", listener: (event: SequenceMaintenanceEvent, target: IEventThisPlaceHolder) => void): void;
748
765
  }
749
766
 
750
- // @alpha @legacy
767
+ // @beta @legacy
751
768
  export interface ISharedString extends ISharedSegmentSequence<SharedStringSegment> {
752
769
  annotateMarker(marker: Marker, props: PropertySet): void;
753
770
  getMarkerFromId(id: string): ISegment | undefined;
@@ -780,7 +797,7 @@ export class IterableTreeArrayContent<T> implements Iterable<T> {
780
797
  [Symbol.iterator](): Iterator<T>;
781
798
  }
782
799
 
783
- // @alpha @legacy
800
+ // @beta @legacy
784
801
  export interface ITrace {
785
802
  action: string;
786
803
  service: string;
@@ -844,6 +861,11 @@ export type Myself<M extends IMember = IMember> = M & {
844
861
  // @public @system
845
862
  type NodeBuilderData<T extends TreeNodeSchemaCore<string, NodeKind, boolean>> = T extends TreeNodeSchemaCore<string, NodeKind, boolean, unknown, infer TBuild> ? TBuild : never;
846
863
 
864
+ // @beta @sealed
865
+ export interface NodeChangedData<TNode extends TreeNode = TreeNode> {
866
+ readonly changedProperties?: ReadonlySet<TNode extends WithType<string, NodeKind.Object, infer TInfo> ? string & keyof TInfo : string>;
867
+ }
868
+
847
869
  // @public
848
870
  export type NodeFromSchema<T extends TreeNodeSchema> = T extends TreeNodeSchemaClass<string, NodeKind, infer TNode> ? TNode : T extends TreeNodeSchemaNonClass<string, NodeKind, infer TNode> ? TNode : never;
849
871
 
@@ -870,7 +892,7 @@ export interface NodeSchemaMetadata<out TCustomMetadata = unknown> {
870
892
  readonly description?: string | undefined;
871
893
  }
872
894
 
873
- // @public @sealed
895
+ // @public @input
874
896
  export interface NodeSchemaOptions<out TCustomMetadata = unknown> {
875
897
  readonly metadata?: NodeSchemaMetadata<TCustomMetadata> | undefined;
876
898
  }
@@ -883,6 +905,9 @@ export type ObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFie
883
905
  // @public
884
906
  export type Off = () => void;
885
907
 
908
+ // @beta @system
909
+ export type PopUnion<Union, AsOverloadedFunction = UnionToIntersection<Union extends unknown ? (f: Union) => void : never>> = AsOverloadedFunction extends (a: infer First) => void ? First : never;
910
+
886
911
  // @public @sealed @system
887
912
  export interface ReadonlyArrayNode<out T = TreeNode | TreeLeafValue> extends ReadonlyArray<T>, Awaited<TreeNode & WithType<string, NodeKind.Array>> {
888
913
  }
@@ -995,6 +1020,11 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
995
1020
  static readonly string: LeafSchema<"string", string>;
996
1021
  }
997
1022
 
1023
+ // @beta
1024
+ export class SchemaFactoryBeta<out TScope extends string | undefined = string | undefined, TName extends number | string = string> extends SchemaFactory<TScope, TName> {
1025
+ scopedFactory<const T extends TName, TNameInner extends number | string = string>(name: T): SchemaFactoryBeta<ScopedSchemaName<TScope, T>, TNameInner>;
1026
+ }
1027
+
998
1028
  // @public @sealed @system
999
1029
  export interface SchemaStatics {
1000
1030
  readonly boolean: LeafSchema<"boolean", boolean>;
@@ -1018,14 +1048,14 @@ export interface SchemaStatics {
1018
1048
  // @public @system
1019
1049
  type ScopedSchemaName<TScope extends string | undefined, TName extends number | string> = TScope extends undefined ? `${TName}` : `${TScope}.${TName}`;
1020
1050
 
1021
- // @alpha @legacy
1051
+ // @beta @legacy
1022
1052
  export interface SequenceDeltaEvent extends SequenceEvent<MergeTreeDeltaOperationType> {
1023
1053
  readonly isLocal: boolean;
1024
1054
  // (undocumented)
1025
1055
  readonly opArgs: IMergeTreeDeltaOpArgs;
1026
1056
  }
1027
1057
 
1028
- // @alpha @legacy
1058
+ // @beta @legacy
1029
1059
  export interface SequenceEvent<TOperation extends MergeTreeDeltaOperationTypes = MergeTreeDeltaOperationTypes> {
1030
1060
  readonly clientId: string | undefined;
1031
1061
  // (undocumented)
@@ -1037,12 +1067,8 @@ export interface SequenceEvent<TOperation extends MergeTreeDeltaOperationTypes =
1037
1067
  readonly ranges: readonly Readonly<ISequenceDeltaRange<TOperation>>[];
1038
1068
  }
1039
1069
 
1040
- // @alpha @legacy
1041
- export interface SequenceInterval extends ISerializableInterval {
1042
- // @deprecated
1043
- addPositionChangeListeners(beforePositionChange: () => void, afterPositionChange: () => void): void;
1044
- // @deprecated (undocumented)
1045
- clone(): SequenceInterval;
1070
+ // @beta @legacy
1071
+ export interface SequenceInterval extends IInterval {
1046
1072
  compare(b: SequenceInterval): number;
1047
1073
  compareEnd(b: SequenceInterval): number;
1048
1074
  compareStart(b: SequenceInterval): number;
@@ -1052,32 +1078,26 @@ export interface SequenceInterval extends ISerializableInterval {
1052
1078
  getIntervalId(): string;
1053
1079
  // (undocumented)
1054
1080
  readonly intervalType: IntervalType;
1055
- // @deprecated
1056
- modify(label: string, start: SequencePlace | undefined, end: SequencePlace | undefined, op?: ISequencedDocumentMessage, localSeq?: number, canSlideToEndpoint?: boolean): SequenceInterval | undefined;
1057
1081
  // (undocumented)
1058
1082
  overlaps(b: SequenceInterval): boolean;
1059
1083
  // (undocumented)
1060
1084
  overlapsPos(bstart: number, bend: number): boolean;
1061
1085
  properties: PropertySet;
1062
- // @deprecated
1063
- removePositionChangeListeners(): void;
1064
1086
  // (undocumented)
1065
1087
  readonly start: LocalReferencePosition;
1066
1088
  // (undocumented)
1067
1089
  readonly startSide: Side;
1068
1090
  // (undocumented)
1069
1091
  readonly stickiness: IntervalStickiness;
1070
- // @deprecated
1071
- union(b: SequenceInterval): SequenceInterval;
1072
1092
  }
1073
1093
 
1074
- // @alpha @legacy
1094
+ // @beta @legacy
1075
1095
  export interface SequenceIntervalIndex {
1076
1096
  add(interval: SequenceInterval): void;
1077
1097
  remove(interval: SequenceInterval): void;
1078
1098
  }
1079
1099
 
1080
- // @alpha @legacy
1100
+ // @beta @legacy
1081
1101
  export interface SequenceMaintenanceEvent extends SequenceEvent<MergeTreeMaintenanceType> {
1082
1102
  // (undocumented)
1083
1103
  readonly opArgs: IMergeTreeDeltaOpArgs | undefined;
@@ -1085,16 +1105,16 @@ export interface SequenceMaintenanceEvent extends SequenceEvent<MergeTreeMainten
1085
1105
 
1086
1106
  export { SequencePlace }
1087
1107
 
1088
- // @alpha @legacy
1108
+ // @beta @legacy
1089
1109
  export const SharedDirectory: ISharedObjectKind<ISharedDirectory> & SharedObjectKind_2<ISharedDirectory>;
1090
1110
 
1091
- // @alpha @legacy
1111
+ // @beta @legacy
1092
1112
  export type SharedDirectory = ISharedDirectory;
1093
1113
 
1094
- // @alpha @legacy
1114
+ // @beta @legacy
1095
1115
  export const SharedMap: ISharedObjectKind<ISharedMap> & SharedObjectKind_2<ISharedMap>;
1096
1116
 
1097
- // @alpha @legacy
1117
+ // @beta @legacy
1098
1118
  export type SharedMap = ISharedMap;
1099
1119
 
1100
1120
  // @public @sealed
@@ -1102,13 +1122,13 @@ export interface SharedObjectKind<out TSharedObject = unknown> extends ErasedTyp
1102
1122
  is(value: IFluidLoadable): value is IFluidLoadable & TSharedObject;
1103
1123
  }
1104
1124
 
1105
- // @alpha @legacy
1125
+ // @beta @legacy
1106
1126
  export const SharedString: ISharedObjectKind<ISharedString> & SharedObjectKind_2<ISharedString>;
1107
1127
 
1108
- // @alpha @legacy
1128
+ // @beta @legacy
1109
1129
  export type SharedString = ISharedString;
1110
1130
 
1111
- // @alpha @legacy (undocumented)
1131
+ // @beta @legacy (undocumented)
1112
1132
  export type SharedStringSegment = TextSegment | Marker;
1113
1133
 
1114
1134
  // @public
@@ -1122,6 +1142,11 @@ export interface SimpleNodeSchemaBase<out TNodeKind extends NodeKind, out TCusto
1122
1142
  readonly metadata: NodeSchemaMetadata<TCustomMetadata>;
1123
1143
  }
1124
1144
 
1145
+ // @beta
1146
+ export function singletonSchema<TScope extends string, TName extends string | number>(factory: SchemaFactory<TScope, TName>, name: TName): TreeNodeSchemaClass<ScopedSchemaName<TScope, TName>, NodeKind.Object, TreeNode & {
1147
+ readonly value: TName;
1148
+ }, Record<string, never>, true, Record<string, never>, undefined>;
1149
+
1125
1150
  // @public @system
1126
1151
  export namespace System_Unsafe {
1127
1152
  // @system
@@ -1258,12 +1283,26 @@ export const TreeArrayNode: {
1258
1283
  readonly spread: <T>(content: Iterable<T>) => IterableTreeArrayContent<T>;
1259
1284
  };
1260
1285
 
1286
+ // @beta @sealed @system
1287
+ export interface TreeBeta {
1288
+ clone<const TSchema extends ImplicitFieldSchema>(node: TreeFieldFromImplicitField<TSchema>): TreeFieldFromImplicitField<TSchema>;
1289
+ on<K extends keyof TreeChangeEventsBeta<TNode>, TNode extends TreeNode>(node: TNode, eventName: K, listener: NoInfer<TreeChangeEventsBeta<TNode>[K]>): () => void;
1290
+ }
1291
+
1292
+ // @beta
1293
+ export const TreeBeta: TreeBeta;
1294
+
1261
1295
  // @public @sealed
1262
1296
  export interface TreeChangeEvents {
1263
1297
  nodeChanged(unstable?: unknown): void;
1264
1298
  treeChanged(): void;
1265
1299
  }
1266
1300
 
1301
+ // @beta @sealed
1302
+ export interface TreeChangeEventsBeta<TNode extends TreeNode = TreeNode> extends TreeChangeEvents {
1303
+ nodeChanged: (data: NodeChangedData<TNode> & (TNode extends WithType<string, NodeKind.Map | NodeKind.Object | NodeKind.Record> ? Required<Pick<NodeChangedData<TNode>, "changedProperties">> : unknown)) => void;
1304
+ }
1305
+
1267
1306
  // @public
1268
1307
  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;
1269
1308
 
@@ -1387,11 +1426,14 @@ export type Unhydrated<T> = T;
1387
1426
  // @public @system
1388
1427
  export type UnionToIntersection<T> = (T extends T ? (k: T) => unknown : never) extends (k: infer U) => unknown ? U : never;
1389
1428
 
1429
+ // @beta @system
1430
+ export type UnionToTuple<Union, A extends unknown[] = [], First = PopUnion<Union>> = IsUnion<Union> extends true ? UnionToTuple<Exclude<Union, First>, [First, ...A]> : [Union, ...A];
1431
+
1390
1432
  // @public
1391
1433
  export type ValidateRecursiveSchema<T extends ValidateRecursiveSchemaTemplate<T>> = true;
1392
1434
 
1393
1435
  // @public @system
1394
- export type ValidateRecursiveSchemaTemplate<T extends TreeNodeSchema> = TreeNodeSchema<string, NodeKind.Array | NodeKind.Map | NodeKind.Object | NodeKind.Record, TreeNode & WithType<T["identifier"], T["kind"]>, {
1436
+ export type ValidateRecursiveSchemaTemplate<T extends TreeNodeSchemaClass> = TreeNodeSchemaClass<string, NodeKind.Array | NodeKind.Map | NodeKind.Object | NodeKind.Record, TreeNode & WithType<T["identifier"], T["kind"]>, {
1395
1437
  [NodeKind.Object]: T["info"] extends RestrictiveStringRecord<ImplicitFieldSchema> ? InsertableObjectFromSchemaRecord<T["info"]> : unknown;
1396
1438
  [NodeKind.Array]: T["info"] extends ImplicitAllowedTypes ? Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>> : unknown;
1397
1439
  [NodeKind.Map]: T["info"] extends ImplicitAllowedTypes ? Iterable<[string, InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>]> : unknown;
@@ -612,7 +612,7 @@ export interface NodeSchemaMetadata<out TCustomMetadata = unknown> {
612
612
  readonly description?: string | undefined;
613
613
  }
614
614
 
615
- // @public @sealed
615
+ // @public @input
616
616
  export interface NodeSchemaOptions<out TCustomMetadata = unknown> {
617
617
  readonly metadata?: NodeSchemaMetadata<TCustomMetadata> | undefined;
618
618
  }
@@ -1043,7 +1043,7 @@ export type UnionToIntersection<T> = (T extends T ? (k: T) => unknown : never) e
1043
1043
  export type ValidateRecursiveSchema<T extends ValidateRecursiveSchemaTemplate<T>> = true;
1044
1044
 
1045
1045
  // @public @system
1046
- export type ValidateRecursiveSchemaTemplate<T extends TreeNodeSchema> = TreeNodeSchema<string, NodeKind.Array | NodeKind.Map | NodeKind.Object | NodeKind.Record, TreeNode & WithType<T["identifier"], T["kind"]>, {
1046
+ export type ValidateRecursiveSchemaTemplate<T extends TreeNodeSchemaClass> = TreeNodeSchemaClass<string, NodeKind.Array | NodeKind.Map | NodeKind.Object | NodeKind.Record, TreeNode & WithType<T["identifier"], T["kind"]>, {
1047
1047
  [NodeKind.Object]: T["info"] extends RestrictiveStringRecord<ImplicitFieldSchema> ? InsertableObjectFromSchemaRecord<T["info"]> : unknown;
1048
1048
  [NodeKind.Array]: T["info"] extends ImplicitAllowedTypes ? Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>> : unknown;
1049
1049
  [NodeKind.Map]: T["info"] extends ImplicitAllowedTypes ? Iterable<[string, InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>]> : unknown;
@@ -578,7 +578,7 @@ export interface NodeSchemaMetadata<out TCustomMetadata = unknown> {
578
578
  readonly description?: string | undefined;
579
579
  }
580
580
 
581
- // @public @sealed
581
+ // @public @input
582
582
  export interface NodeSchemaOptions<out TCustomMetadata = unknown> {
583
583
  readonly metadata?: NodeSchemaMetadata<TCustomMetadata> | undefined;
584
584
  }
@@ -1009,7 +1009,7 @@ export type UnionToIntersection<T> = (T extends T ? (k: T) => unknown : never) e
1009
1009
  export type ValidateRecursiveSchema<T extends ValidateRecursiveSchemaTemplate<T>> = true;
1010
1010
 
1011
1011
  // @public @system
1012
- export type ValidateRecursiveSchemaTemplate<T extends TreeNodeSchema> = TreeNodeSchema<string, NodeKind.Array | NodeKind.Map | NodeKind.Object | NodeKind.Record, TreeNode & WithType<T["identifier"], T["kind"]>, {
1012
+ export type ValidateRecursiveSchemaTemplate<T extends TreeNodeSchemaClass> = TreeNodeSchemaClass<string, NodeKind.Array | NodeKind.Map | NodeKind.Object | NodeKind.Record, TreeNode & WithType<T["identifier"], T["kind"]>, {
1013
1013
  [NodeKind.Object]: T["info"] extends RestrictiveStringRecord<ImplicitFieldSchema> ? InsertableObjectFromSchemaRecord<T["info"]> : unknown;
1014
1014
  [NodeKind.Array]: T["info"] extends ImplicitAllowedTypes ? Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>> : unknown;
1015
1015
  [NodeKind.Map]: T["info"] extends ImplicitAllowedTypes ? Iterable<[string, InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>]> : unknown;
package/beta.d.ts CHANGED
@@ -8,4 +8,4 @@
8
8
  * Generated by "flub generate entrypoints" in @fluid-tools/build-cli.
9
9
  */
10
10
 
11
- export * from "./lib/beta.js";
11
+ export * from "lib/beta.js";
package/dist/alpha.d.ts CHANGED
@@ -16,10 +16,11 @@
16
16
  */
17
17
 
18
18
  export {
19
- // Unrestricted APIs
19
+ // #region Unrestricted APIs
20
20
  InternalTypes,
21
-
22
- // @public APIs
21
+ // #endregion
22
+
23
+ // #region @public APIs
23
24
  AllowedTypes,
24
25
  AttachState,
25
26
  CommitKind,
@@ -131,18 +132,23 @@ export {
131
132
  isFluidHandle,
132
133
  rollback,
133
134
  typeSchemaSymbol,
135
+ // #endregion
134
136
 
135
- // @beta APIs
137
+ // #region @beta APIs
138
+ ForestOptions,
139
+ ForestType,
136
140
  NodeChangedData,
137
141
  PopUnion,
142
+ SchemaFactoryBeta,
138
143
  TreeBeta,
139
144
  TreeChangeEventsBeta,
140
145
  UnionToTuple,
141
146
  adaptEnum,
142
147
  enumFromStrings,
143
148
  singletonSchema,
149
+ // #endregion
144
150
 
145
- // @alpha APIs
151
+ // #region @alpha APIs
146
152
  AllowedTypeMetadata,
147
153
  AllowedTypesMetadata,
148
154
  AnnotatedAllowedType,
@@ -161,11 +167,12 @@ export {
161
167
  FieldSchemaAlphaUnsafe,
162
168
  FixRecursiveArraySchema,
163
169
  FluidClientVersion,
164
- ForestOptions,
165
- ForestType,
166
170
  ForestTypeExpensiveDebug,
167
171
  ForestTypeOptimized,
168
172
  ForestTypeReference,
173
+ FormatValidator,
174
+ FormatValidatorBasic,
175
+ FormatValidatorNoOp,
169
176
  HandleConverter,
170
177
  ICodecOptions,
171
178
  ITreeAlpha,
@@ -197,6 +204,7 @@ export {
197
204
  JsonStringKeyPatternProperties,
198
205
  JsonTreeSchema,
199
206
  JsonValidator,
207
+ KeyEncodingOptions,
200
208
  MapNodeCustomizableSchema,
201
209
  MapNodeCustomizableSchemaUnsafe,
202
210
  MapNodePojoEmulationSchema,
@@ -249,6 +257,7 @@ export {
249
257
  TreeIndex,
250
258
  TreeIndexKey,
251
259
  TreeIndexNodes,
260
+ TreeParsingOptions,
252
261
  TreeRecordNode,
253
262
  TreeRecordNodeUnsafe,
254
263
  TreeSchema,
@@ -289,4 +298,5 @@ export {
289
298
  replaceHandles,
290
299
  replaceVerboseTreeHandles,
291
300
  typeboxValidator
301
+ // #endregion
292
302
  } from "./index.js";
package/dist/beta.d.ts CHANGED
@@ -16,10 +16,11 @@
16
16
  */
17
17
 
18
18
  export {
19
- // Unrestricted APIs
19
+ // #region Unrestricted APIs
20
20
  InternalTypes,
21
-
22
- // @public APIs
21
+ // #endregion
22
+
23
+ // #region @public APIs
23
24
  AllowedTypes,
24
25
  AttachState,
25
26
  CommitKind,
@@ -131,14 +132,19 @@ export {
131
132
  isFluidHandle,
132
133
  rollback,
133
134
  typeSchemaSymbol,
135
+ // #endregion
134
136
 
135
- // @beta APIs
137
+ // #region @beta APIs
138
+ ForestOptions,
139
+ ForestType,
136
140
  NodeChangedData,
137
141
  PopUnion,
142
+ SchemaFactoryBeta,
138
143
  TreeBeta,
139
144
  TreeChangeEventsBeta,
140
145
  UnionToTuple,
141
146
  adaptEnum,
142
147
  enumFromStrings,
143
148
  singletonSchema
149
+ // #endregion
144
150
  } from "./index.js";
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, IntervalStickiness, ISequenceDeltaRange, ISerializableInterval, ISerializedInterval, ISharedSegmentSequenceEvents, ISharedString, SequencePlace, SharedStringSegment, Side, ISharedSegmentSequence, ISequenceIntervalCollection, ISequenceIntervalCollectionEvents, SequenceIntervalIndex, } from "@fluidframework/sequence/internal";
60
+ export type { DeserializeCallback, InteriorSequencePlace, IInterval, IntervalStickiness, ISequenceDeltaRange, 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,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"}
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,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;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: ForestTypeReference,\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"]}
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;AA4BnC,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: ForestTypeReference,\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\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"]}