fluid-framework 2.53.1 → 2.60.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,78 @@
1
1
  # fluid-framework
2
2
 
3
+ ## 2.60.0
4
+
5
+ ### Minor Changes
6
+
7
+ - FormatValidator added to replace JsonValidator ([#25311](https://github.com/microsoft/FluidFramework/pull/25311)) [9db6e08ec12](https://github.com/microsoft/FluidFramework/commit/9db6e08ec12973e7cc4f7fe86fecd054bafcd1c0)
8
+
9
+ The existing `@alpha` type [`JsonValidator`](https://fluidframework.com/docs/api/fluid-framework/jsonvalidator-interface) has a new type-erased alternative, `FormatValidator`, which is planned to be stabilized to `@beta` in the future.
10
+ It replaces `JsonValidator` in `ICodecOptions`.
11
+ Existing code using `ICodecOptions` should migrate to use `FormatValidator`, but this is not required for adopting this release as `JsonValidator` is still supported.
12
+
13
+ - Single-node insertion/removal APIs have been removed from TableSchema (alpha) ([#25233](https://github.com/microsoft/FluidFramework/pull/25233)) [99281d2b24e](https://github.com/microsoft/FluidFramework/commit/99281d2b24ec406760c9029aad5aa72a9265a65d)
14
+
15
+ There is a significant performance benefit to inserting / removing rows / columns in batches.
16
+ To help encourage more performant usage patterns, single-node insertion and removal APIs have been removed.
17
+ The APIs that operate on batches should be used instead.
18
+
19
+ Specifically:
20
+
21
+ - `insertColumn`
22
+ - Use `insertColumns` instead
23
+ - `insertRow`
24
+ - Use `insertRows` instead
25
+ - `removeColumn`
26
+ - Use `removeColumns` instead
27
+ - `removeRow`
28
+ - Use `removeRows` instead
29
+
30
+ - Replace "TreeEncodingOptions.useStoredKeys" with "keys" and "KeyEncodingOptions" ([#25263](https://github.com/microsoft/FluidFramework/pull/25263)) [b65f2a86d44](https://github.com/microsoft/FluidFramework/commit/b65f2a86d44d690a675867600a0a7e3c1608a473)
31
+
32
+ The alpha API `TreeEncodingOptions` has had its `useStoredKeys` `boolean` replaced with `keys` that takes a `KeyEncodingOptions` allowing for three options instead of the previous two.
33
+ With the new API, it is now possible to control, for APIs which support it (like [`TreeAlpha.exportVerbose`](https://fluidframework.com/docs/api/fluid-framework/treealpha-interface#exportverbose-methodsignature)), if unknown optional fields will be included when exporting data using stored keys.
34
+
35
+ Additionally, the relevant options interfaces have been marked as `@input`, indicating that more options may be added as optional parameters in the future, and that should be considered non-breaking.
36
+
37
+ - Remove unnecessary and internal APIs in ISequenceIntervalCollection and related interval types ([#25244](https://github.com/microsoft/FluidFramework/pull/25244)) [15d476ea706](https://github.com/microsoft/FluidFramework/commit/15d476ea7069eb4de317a726733aa8fb9e8486e8)
38
+
39
+ The following APIs are now removed:
40
+
41
+ - `IInterval.clone`
42
+ - `IInterval.modify`
43
+ - `IInterval.union`
44
+ - `ISerializableInterval`
45
+ - `SequenceInterval.clone`
46
+ - `SequenceInterval.modify`
47
+ - `SequenceInterval.union`
48
+ - `SequenceInterval.serialize`
49
+ - `SequenceInterval.addPositionChangeListeners`
50
+ - `SequenceInterval.removePositionChangeListeners`
51
+
52
+ These APIs were never intended for public use. There is no migration path, and any usage is strongly discouraged, as it may result in severe errors or data corruption. Please remove any dependencies on these APIs as soon as possible.
53
+
54
+ - SchemaFactoryAlpha.recordRecursive now supports metadata ([#25289](https://github.com/microsoft/FluidFramework/pull/25289)) [83241702d5f](https://github.com/microsoft/FluidFramework/commit/83241702d5fb5608cfa0add569c7803837abcf82)
55
+
56
+ `SchemaFactoryAlpha.recordRecursive` now support metadata like `SchemaFactoryAlpha.recordAlpha` and the other `TreeNodeSchema` creation methods on `SchemaFactoryAlpha` (except for `SchemaFactoryAlpha.record` which does not support metadata).
57
+
58
+ - Range-based row/column removal methods have been added to TableSchema APIs (alpha) ([#25235](https://github.com/microsoft/FluidFramework/pull/25235)) [c803393cec6](https://github.com/microsoft/FluidFramework/commit/c803393cec6847f4294dc34b4a074ec93baf111c)
59
+
60
+ Adds range-based overloads to `removeColumns` and `removeRows` for removing contiguous ranges of rows and columns.
61
+
62
+ The `removeAllColumns` and `removeAllRows` methods have been removed, as they can be trivially implemented in terms of the new methods.
63
+
64
+ - Hoist runTransaction method from TreeViewAlpha to TreeBranch ([#25280](https://github.com/microsoft/FluidFramework/pull/25280)) [a66b3b77df3](https://github.com/microsoft/FluidFramework/commit/a66b3b77df346d1689ddedcefc16846eda45991a)
65
+
66
+ Transactions are not view-schema-dependent, so it isn't necessary for them to be exclusive to the view type.
67
+ `runTransaction` is now available on `TreeBranch` (alpha).
68
+ `TreeViewAlpha` extends `TreeBranch`, so this change strictly makes the API more accessible.
69
+
70
+ - Add SchemaFactoryBeta ([#25313](https://github.com/microsoft/FluidFramework/pull/25313)) [dca2361d33d](https://github.com/microsoft/FluidFramework/commit/dca2361d33dd959f5d913cbb59601685f85ff6f0)
71
+
72
+ `SchemaFactoryBeta` is added to provide a place to partially stabilize APIs from [`SchemaFactoryAlpha`](https://fluidframework.com/docs/api/fluid-framework/schemafactoryalpha-class).
73
+ Initially just one APIs is added as `@beta`: `scopedFactory`.
74
+ Users of the existing `@alpha` `scopedFactory` API on `SchemaFactoryAlpha` will need to update to use `scopedFactoryAlpha` if they require the returned factory to be a `SchemaFactoryAlpha` instance.
75
+
3
76
  ## 2.53.0
4
77
 
5
78
  ### Minor Changes
@@ -264,6 +264,7 @@ export class FieldSchemaAlpha<Kind extends FieldKind = FieldKind, Types extends
264
264
  // (undocumented)
265
265
  readonly annotatedAllowedTypes: ImplicitAnnotatedAllowedTypes;
266
266
  get annotatedAllowedTypesNormalized(): NormalizedAnnotatedAllowedTypes;
267
+ // (undocumented)
267
268
  get persistedMetadata(): JsonCompatibleReadOnlyObject | undefined;
268
269
  }
269
270
 
@@ -307,12 +308,12 @@ export type FluidObject<T = unknown> = {
307
308
  // @public
308
309
  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;
309
310
 
310
- // @alpha
311
+ // @beta @input
311
312
  export interface ForestOptions {
312
313
  readonly forest?: ForestType;
313
314
  }
314
315
 
315
- // @alpha @sealed
316
+ // @beta @sealed
316
317
  export interface ForestType extends ErasedType<"ForestType"> {
317
318
  }
318
319
 
@@ -325,6 +326,16 @@ export const ForestTypeOptimized: ForestType;
325
326
  // @alpha
326
327
  export const ForestTypeReference: ForestType;
327
328
 
329
+ // @alpha @sealed
330
+ export interface FormatValidator extends ErasedType<"FormatValidator"> {
331
+ }
332
+
333
+ // @alpha
334
+ export const FormatValidatorBasic: FormatValidator_2;
335
+
336
+ // @alpha
337
+ export const FormatValidatorNoOp: FormatValidator;
338
+
328
339
  // @alpha
329
340
  export function generateSchemaFromSimpleSchema(simple: SimpleTreeSchema): TreeSchema;
330
341
 
@@ -345,7 +356,7 @@ export type HandleConverter<TCustom> = (data: IFluidHandle) => TCustom;
345
356
 
346
357
  // @alpha @input
347
358
  export interface ICodecOptions {
348
- readonly jsonValidator: JsonValidator;
359
+ readonly jsonValidator: JsonValidator | FormatValidator;
349
360
  }
350
361
 
351
362
  // @public
@@ -776,7 +787,7 @@ export namespace JsonAsTree {
776
787
  const // @system
777
788
  _APIExtractorWorkaroundObjectBase: TreeNodeSchemaClass<"com.fluidframework.json.object", NodeKind.Record, TreeRecordNodeUnsafe<readonly [LeafSchema<"null", null>, LeafSchema<"number", number>, LeafSchema<"string", string>, LeafSchema<"boolean", boolean>, () => typeof JsonObject, () => typeof Array]> & WithType<"com.fluidframework.json.object", NodeKind.Record, unknown>, {
778
789
  readonly [x: string]: string | number | JsonObject | Array | System_Unsafe.InsertableTypedNodeUnsafe<LeafSchema<"boolean", boolean>, LeafSchema<"boolean", boolean>> | null;
779
- }, false, readonly [LeafSchema<"null", null>, LeafSchema<"number", number>, LeafSchema<"string", string>, LeafSchema<"boolean", boolean>, () => typeof JsonObject, () => typeof Array], undefined>;
790
+ }, false, readonly [LeafSchema<"null", null>, LeafSchema<"number", number>, LeafSchema<"string", string>, LeafSchema<"boolean", boolean>, () => typeof JsonObject, () => typeof Array], undefined, unknown>;
780
791
  export type Primitive = TreeNodeFromImplicitAllowedTypes<typeof Primitive>;
781
792
  // @system
782
793
  export type _RecursiveArrayWorkaroundJsonArray = FixRecursiveArraySchema<typeof Array>;
@@ -872,6 +883,13 @@ export interface JsonValidator {
872
883
  compile<Schema extends TSchema>(schema: Schema): SchemaValidationFunction<Schema>;
873
884
  }
874
885
 
886
+ // @alpha @input
887
+ export enum KeyEncodingOptions {
888
+ allStoredKeys = "allStoredKeys",
889
+ knownStoredKeys = "knownStoredKeys",
890
+ usePropertyKeys = "usePropertyKeys"
891
+ }
892
+
875
893
  // @public
876
894
  export type LazyItem<Item = unknown> = Item | (() => Item);
877
895
 
@@ -966,12 +984,12 @@ export interface NodeSchemaMetadata<out TCustomMetadata = unknown> {
966
984
  readonly description?: string | undefined;
967
985
  }
968
986
 
969
- // @public @sealed
987
+ // @public @input
970
988
  export interface NodeSchemaOptions<out TCustomMetadata = unknown> {
971
989
  readonly metadata?: NodeSchemaMetadata<TCustomMetadata> | undefined;
972
990
  }
973
991
 
974
- // @alpha
992
+ // @alpha @input
975
993
  export interface NodeSchemaOptionsAlpha<out TCustomMetadata = unknown> extends NodeSchemaOptions<TCustomMetadata> {
976
994
  readonly persistedMetadata?: JsonCompatibleReadOnlyObject | undefined;
977
995
  }
@@ -1112,7 +1130,7 @@ export interface RunTransaction {
1112
1130
  readonly rollback: typeof rollback;
1113
1131
  }
1114
1132
 
1115
- // @alpha
1133
+ // @alpha @input
1116
1134
  export interface RunTransactionParams {
1117
1135
  readonly preconditions?: readonly TransactionConstraint[];
1118
1136
  }
@@ -1172,7 +1190,7 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
1172
1190
  }
1173
1191
 
1174
1192
  // @alpha
1175
- export class SchemaFactoryAlpha<out TScope extends string | undefined = string | undefined, TName extends number | string = string> extends SchemaFactory<TScope, TName> {
1193
+ export class SchemaFactoryAlpha<out TScope extends string | undefined = string | undefined, TName extends number | string = string> extends SchemaFactoryBeta<TScope, TName> {
1176
1194
  arrayAlpha<const Name extends TName, const T extends ImplicitAnnotatedAllowedTypes, const TCustomMetadata = unknown>(name: Name, allowedTypes: T, options?: NodeSchemaOptionsAlpha<TCustomMetadata>): ArrayNodeCustomizableSchema<ScopedSchemaName<TScope, Name>, T, true, TCustomMetadata>;
1177
1195
  arrayRecursive<const Name extends TName, const T extends System_Unsafe.ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(name: Name, allowedTypes: T, options?: NodeSchemaOptionsAlpha<TCustomMetadata>): ArrayNodeCustomizableSchemaUnsafe<ScopedSchemaName<TScope, Name>, T, TCustomMetadata>;
1178
1196
  static readonly identifier: <const TCustomMetadata = unknown>(props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaAlpha<FieldKind.Identifier, LeafSchema<"string", string> & SimpleLeafNodeSchema, TCustomMetadata>;
@@ -1197,9 +1215,9 @@ export class SchemaFactoryAlpha<out TScope extends string | undefined = string |
1197
1215
  record<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchemaNonClass<ScopedSchemaName<TScope, `Record<${string}>`>, NodeKind.Record, TreeRecordNode<T> & WithType<ScopedSchemaName<TScope, `Record<${string}>`>, NodeKind.Record>, RecordNodeInsertableData<T>, true, T, undefined>;
1198
1216
  record<const Name extends TName, const T extends ImplicitAllowedTypes>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Record, TreeRecordNode<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Record>, RecordNodeInsertableData<T>, true, T, undefined>;
1199
1217
  recordAlpha<const Name extends TName, const T extends ImplicitAnnotatedAllowedTypes, const TCustomMetadata = unknown>(name: Name, allowedTypes: T, options?: NodeSchemaOptionsAlpha<TCustomMetadata>): RecordNodeCustomizableSchema<ScopedSchemaName<TScope, Name>, T, true, TCustomMetadata>;
1200
- recordRecursive<Name extends TName, const T extends System_Unsafe.ImplicitAllowedTypesUnsafe>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Record, TreeRecordNodeUnsafe<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Record, unknown>, {
1218
+ recordRecursive<Name extends TName, const T extends System_Unsafe.ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(name: Name, allowedTypes: T, options?: NodeSchemaOptionsAlpha<TCustomMetadata>): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Record, TreeRecordNodeUnsafe<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Record, unknown>, {
1201
1219
  readonly [x: string]: System_Unsafe.InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>;
1202
- }, false, T, undefined>;
1220
+ }, false, T, undefined, TCustomMetadata>;
1203
1221
  static readonly required: {
1204
1222
  <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha<TCustomMetadata>, "defaultProvider"> | undefined): FieldSchemaAlpha<FieldKind.Required, T, TCustomMetadata>;
1205
1223
  <const T_1 extends ImplicitAnnotatedAllowedTypes, const TCustomMetadata_1 = unknown>(t: T_1, props?: Omit<FieldPropsAlpha<TCustomMetadata_1>, "defaultProvider"> | undefined): FieldSchemaAlpha<FieldKind.Required, UnannotateImplicitAllowedTypes<T_1>, TCustomMetadata_1>;
@@ -1210,14 +1228,19 @@ export class SchemaFactoryAlpha<out TScope extends string | undefined = string |
1210
1228
  };
1211
1229
  static readonly requiredRecursive: <const T extends System_Unsafe.ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaAlphaUnsafe<FieldKind.Required, T, TCustomMetadata>;
1212
1230
  readonly requiredRecursive: <const T extends System_Unsafe.ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaAlphaUnsafe<FieldKind.Required, T, TCustomMetadata>;
1213
- scopedFactory<const T extends TName, TNameInner extends number | string = string>(name: T): SchemaFactoryAlpha<ScopedSchemaName<TScope, T>, TNameInner>;
1231
+ scopedFactoryAlpha<const T extends TName, TNameInner extends number | string = string>(name: T): SchemaFactoryAlpha<ScopedSchemaName<TScope, T>, TNameInner>;
1214
1232
  static staged: <const T extends LazyItem<TreeNodeSchema>>(t: T | AnnotatedAllowedType<T>) => AnnotatedAllowedType<T>;
1215
1233
  staged: <const T extends LazyItem<TreeNodeSchema>>(t: T | AnnotatedAllowedType<T>) => AnnotatedAllowedType<T>;
1216
1234
  }
1217
1235
 
1218
- // @alpha
1236
+ // @beta
1237
+ export class SchemaFactoryBeta<out TScope extends string | undefined = string | undefined, TName extends number | string = string> extends SchemaFactory<TScope, TName> {
1238
+ scopedFactory<const T extends TName, TNameInner extends number | string = string>(name: T): SchemaFactoryBeta<ScopedSchemaName<TScope, T>, TNameInner>;
1239
+ }
1240
+
1241
+ // @alpha @input
1219
1242
  export interface SchemaFactoryObjectOptions<TCustomMetadata = unknown> extends NodeSchemaOptionsAlpha<TCustomMetadata> {
1220
- allowUnknownOptionalFields?: boolean;
1243
+ readonly allowUnknownOptionalFields?: boolean;
1221
1244
  }
1222
1245
 
1223
1246
  // @public @sealed @system
@@ -1267,7 +1290,7 @@ export interface SharedObjectKind<out TSharedObject = unknown> extends ErasedTyp
1267
1290
  // @public
1268
1291
  export const SharedTree: SharedObjectKind<ITree>;
1269
1292
 
1270
- // @alpha
1293
+ // @alpha @input
1271
1294
  export interface SharedTreeFormatOptions {
1272
1295
  formatVersion: SharedTreeFormatVersion[keyof SharedTreeFormatVersion];
1273
1296
  treeEncodeType: TreeCompressionStrategy;
@@ -1522,18 +1545,10 @@ export namespace TableSchema {
1522
1545
  export function column<const TScope extends string | undefined, const TCell extends ImplicitAllowedTypes, const TProps extends ImplicitAnnotatedFieldSchema>(params: System_TableSchema.CreateColumnOptionsBase<SchemaFactoryAlpha<TScope>, TCell> & {
1523
1546
  readonly props: TProps;
1524
1547
  }): System_TableSchema.ColumnSchemaBase<TScope, TCell, TProps>;
1525
- export interface InsertColumnParameters<TColumn extends ImplicitAllowedTypes> {
1526
- readonly column: InsertableTreeNodeFromImplicitAllowedTypes<TColumn>;
1527
- readonly index?: number | undefined;
1528
- }
1529
1548
  export interface InsertColumnsParameters<TColumn extends ImplicitAllowedTypes> {
1530
1549
  readonly columns: InsertableTreeNodeFromImplicitAllowedTypes<TColumn>[];
1531
1550
  readonly index?: number | undefined;
1532
1551
  }
1533
- export interface InsertRowParameters<TRow extends ImplicitAllowedTypes> {
1534
- readonly index?: number | undefined;
1535
- readonly row: InsertableTreeNodeFromImplicitAllowedTypes<TRow>;
1536
- }
1537
1552
  export interface InsertRowsParameters<TRow extends ImplicitAllowedTypes> {
1538
1553
  readonly index?: number | undefined;
1539
1554
  readonly rows: InsertableTreeNodeFromImplicitAllowedTypes<TRow>[];
@@ -1568,17 +1583,13 @@ export namespace TableSchema {
1568
1583
  getCell(key: CellKey<TColumn, TRow>): TreeNodeFromImplicitAllowedTypes<TCell> | undefined;
1569
1584
  getColumn(id: string): TreeNodeFromImplicitAllowedTypes<TColumn> | undefined;
1570
1585
  getRow(id: string): TreeNodeFromImplicitAllowedTypes<TRow> | undefined;
1571
- insertColumn(params: InsertColumnParameters<TColumn>): TreeNodeFromImplicitAllowedTypes<TColumn>;
1572
1586
  insertColumns(params: InsertColumnsParameters<TColumn>): TreeNodeFromImplicitAllowedTypes<TColumn>[];
1573
- insertRow(params: InsertRowParameters<TRow>): TreeNodeFromImplicitAllowedTypes<TRow>;
1574
1587
  insertRows(params: InsertRowsParameters<TRow>): TreeNodeFromImplicitAllowedTypes<TRow>[];
1575
- removeAllColumns(): TreeNodeFromImplicitAllowedTypes<TColumn>[];
1576
- removeAllRows(): TreeNodeFromImplicitAllowedTypes<TRow>[];
1577
1588
  removeCell(key: CellKey<TColumn, TRow>): TreeNodeFromImplicitAllowedTypes<TCell> | undefined;
1578
- removeColumn(column: string | TreeNodeFromImplicitAllowedTypes<TColumn>): TreeNodeFromImplicitAllowedTypes<TColumn>;
1589
+ removeColumns(index?: number | undefined, count?: number | undefined): TreeNodeFromImplicitAllowedTypes<TColumn>[];
1579
1590
  removeColumns(columns: readonly TreeNodeFromImplicitAllowedTypes<TColumn>[]): TreeNodeFromImplicitAllowedTypes<TColumn>[];
1580
1591
  removeColumns(columns: readonly string[]): TreeNodeFromImplicitAllowedTypes<TColumn>[];
1581
- removeRow(row: string | TreeNodeFromImplicitAllowedTypes<TRow>): TreeNodeFromImplicitAllowedTypes<TRow>;
1592
+ removeRows(index?: number | undefined, count?: number | undefined): TreeNodeFromImplicitAllowedTypes<TRow>[];
1582
1593
  removeRows(rows: readonly TreeNodeFromImplicitAllowedTypes<TRow>[]): TreeNodeFromImplicitAllowedTypes<TRow>[];
1583
1594
  removeRows(rows: readonly string[]): TreeNodeFromImplicitAllowedTypes<TRow>[];
1584
1595
  readonly rows: TreeArrayNode<TRow>;
@@ -1669,7 +1680,7 @@ export interface TreeAlpha {
1669
1680
  idCompressor?: IIdCompressor;
1670
1681
  } & ICodecOptions): Unhydrated<TreeFieldFromImplicitField<TSchema>>;
1671
1682
  importConcise<const TSchema extends ImplicitFieldSchema | UnsafeUnknownSchema>(schema: UnsafeUnknownSchema extends TSchema ? ImplicitFieldSchema : TSchema & ImplicitFieldSchema, data: ConciseTree | undefined): Unhydrated<TSchema extends ImplicitFieldSchema ? TreeFieldFromImplicitField<TSchema> : TreeNode | TreeLeafValue | undefined>;
1672
- importVerbose<const TSchema extends ImplicitFieldSchema>(schema: TSchema, data: VerboseTree | undefined, options?: Partial<TreeEncodingOptions>): Unhydrated<TreeFieldFromImplicitField<TSchema>>;
1683
+ importVerbose<const TSchema extends ImplicitFieldSchema>(schema: TSchema, data: VerboseTree | undefined, options?: TreeParsingOptions): Unhydrated<TreeFieldFromImplicitField<TSchema>>;
1673
1684
  key2(node: TreeNode): string | number | undefined;
1674
1685
  }
1675
1686
 
@@ -1720,6 +1731,8 @@ export interface TreeBranch extends IDisposable {
1720
1731
  hasRootSchema<TSchema extends ImplicitFieldSchema>(schema: TSchema): this is TreeViewAlpha<TSchema>;
1721
1732
  merge(branch: TreeBranch, disposeMerged?: boolean): void;
1722
1733
  rebaseOnto(branch: TreeBranch): void;
1734
+ runTransaction<TSuccessValue, TFailureValue>(transaction: () => TransactionCallbackStatus<TSuccessValue, TFailureValue>, params?: RunTransactionParams): TransactionResultExt<TSuccessValue, TFailureValue>;
1735
+ runTransaction(transaction: () => VoidTransactionCallbackStatus | void, params?: RunTransactionParams): TransactionResult;
1723
1736
  }
1724
1737
 
1725
1738
  // @alpha @sealed
@@ -1750,9 +1763,9 @@ export enum TreeCompressionStrategy {
1750
1763
  Uncompressed = 1
1751
1764
  }
1752
1765
 
1753
- // @alpha
1754
- export interface TreeEncodingOptions {
1755
- readonly useStoredKeys?: boolean;
1766
+ // @alpha @input
1767
+ export interface TreeEncodingOptions<TKeyOptions = KeyEncodingOptions> {
1768
+ readonly keys?: TKeyOptions;
1756
1769
  }
1757
1770
 
1758
1771
  // @public
@@ -1846,6 +1859,9 @@ export type TreeNodeSchemaNonClass<Name extends string = string, Kind extends No
1846
1859
  // @public
1847
1860
  export type TreeObjectNode<T extends RestrictiveStringRecord<ImplicitFieldSchema>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecord<T> & WithType<TypeName, NodeKind.Object, T>;
1848
1861
 
1862
+ // @alpha @input
1863
+ export type TreeParsingOptions = TreeEncodingOptions<KeyEncodingOptions.usePropertyKeys | KeyEncodingOptions.knownStoredKeys>;
1864
+
1849
1865
  // @alpha
1850
1866
  export interface TreeRecordNode<TAllowedTypes extends ImplicitAllowedTypes = ImplicitAllowedTypes> extends TreeNode, Record<string, TreeNodeFromImplicitAllowedTypes<TAllowedTypes>> {
1851
1867
  [Symbol.iterator](): IterableIterator<[
@@ -1869,8 +1885,8 @@ export interface TreeSchema extends SimpleTreeSchema {
1869
1885
  readonly root: FieldSchemaAlpha;
1870
1886
  }
1871
1887
 
1872
- // @alpha
1873
- export interface TreeSchemaEncodingOptions extends TreeEncodingOptions {
1888
+ // @alpha @input
1889
+ export interface TreeSchemaEncodingOptions extends TreeParsingOptions {
1874
1890
  readonly requireFieldsWithDefaults?: boolean;
1875
1891
  }
1876
1892
 
@@ -1904,8 +1920,6 @@ export interface TreeViewAlpha<in out TSchema extends ImplicitFieldSchema | Unsa
1904
1920
  // (undocumented)
1905
1921
  get root(): ReadableField<TSchema>;
1906
1922
  set root(newRoot: InsertableField<TSchema>);
1907
- runTransaction<TSuccessValue, TFailureValue>(transaction: () => TransactionCallbackStatus<TSuccessValue, TFailureValue>, params?: RunTransactionParams): TransactionResultExt<TSuccessValue, TFailureValue>;
1908
- runTransaction(transaction: () => VoidTransactionCallbackStatus | void, params?: RunTransactionParams): TransactionResult;
1909
1923
  }
1910
1924
 
1911
1925
  // @public @sealed
@@ -165,6 +165,15 @@ export type FluidObject<T = unknown> = {
165
165
  // @public
166
166
  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;
167
167
 
168
+ // @beta @input
169
+ export interface ForestOptions {
170
+ readonly forest?: ForestType;
171
+ }
172
+
173
+ // @beta @sealed
174
+ export interface ForestType extends ErasedType<"ForestType"> {
175
+ }
176
+
168
177
  // @public
169
178
  export interface IConnection {
170
179
  readonly id: string;
@@ -605,7 +614,7 @@ export interface NodeSchemaMetadata<out TCustomMetadata = unknown> {
605
614
  readonly description?: string | undefined;
606
615
  }
607
616
 
608
- // @public @sealed
617
+ // @public @input
609
618
  export interface NodeSchemaOptions<out TCustomMetadata = unknown> {
610
619
  readonly metadata?: NodeSchemaMetadata<TCustomMetadata> | undefined;
611
620
  }
@@ -733,6 +742,11 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
733
742
  static readonly string: LeafSchema<"string", string>;
734
743
  }
735
744
 
745
+ // @beta
746
+ export class SchemaFactoryBeta<out TScope extends string | undefined = string | undefined, TName extends number | string = string> extends SchemaFactory<TScope, TName> {
747
+ scopedFactory<const T extends TName, TNameInner extends number | string = string>(name: T): SchemaFactoryBeta<ScopedSchemaName<TScope, T>, TNameInner>;
748
+ }
749
+
736
750
  // @public @sealed @system
737
751
  export interface SchemaStatics {
738
752
  readonly boolean: LeafSchema<"boolean", boolean>;
@@ -1,4 +1,4 @@
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
 
@@ -75,7 +75,7 @@ export interface ContainerSchema {
75
75
  interface DefaultProvider extends ErasedType<"@fluidframework/tree.FieldProvider"> {
76
76
  }
77
77
 
78
- // @alpha @legacy (undocumented)
78
+ // @beta @legacy (undocumented)
79
79
  export type DeserializeCallback = (properties: PropertySet) => void;
80
80
 
81
81
  // @public @sealed
@@ -146,7 +146,7 @@ export type FluidObject<T = unknown> = {
146
146
  // @public
147
147
  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
148
 
149
- // @alpha @legacy
149
+ // @beta @legacy
150
150
  export interface IBranchOrigin {
151
151
  id: string;
152
152
  minimumSequenceNumber: number;
@@ -427,19 +427,13 @@ export interface IFluidLoadable extends IProvideFluidLoadable {
427
427
  readonly handle: IFluidHandle;
428
428
  }
429
429
 
430
- // @alpha @legacy
430
+ // @beta @legacy
431
431
  export interface IInterval {
432
- // @deprecated (undocumented)
433
- clone(): IInterval;
434
432
  compare(b: IInterval): number;
435
433
  compareEnd(b: IInterval): number;
436
434
  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
435
  // (undocumented)
440
436
  overlaps(b: IInterval): boolean;
441
- // @deprecated
442
- union(b: IInterval): IInterval;
443
437
  }
444
438
 
445
439
  // @public
@@ -515,7 +509,7 @@ declare namespace InternalTypes {
515
509
  }
516
510
  export { InternalTypes }
517
511
 
518
- // @alpha @legacy
512
+ // @beta @legacy
519
513
  export const IntervalStickiness: {
520
514
  readonly NONE: 0;
521
515
  readonly START: 1;
@@ -523,10 +517,10 @@ export const IntervalStickiness: {
523
517
  readonly FULL: 3;
524
518
  };
525
519
 
526
- // @alpha @legacy
520
+ // @beta @legacy
527
521
  export type IntervalStickiness = (typeof IntervalStickiness)[keyof typeof IntervalStickiness];
528
522
 
529
- // @alpha @legacy (undocumented)
523
+ // @beta @legacy (undocumented)
530
524
  export enum IntervalType {
531
525
  // (undocumented)
532
526
  Simple = 0,
@@ -539,7 +533,7 @@ export interface IProvideFluidLoadable {
539
533
  readonly IFluidLoadable: IFluidLoadable;
540
534
  }
541
535
 
542
- // @alpha @legacy
536
+ // @beta @legacy
543
537
  export interface ISequencedDocumentMessage {
544
538
  clientId: string | null;
545
539
  clientSequenceNumber: number;
@@ -560,7 +554,7 @@ export interface ISequencedDocumentMessage {
560
554
  type: string;
561
555
  }
562
556
 
563
- // @alpha @legacy
557
+ // @beta @legacy
564
558
  export interface ISequenceDeltaRange<TOperation extends MergeTreeDeltaOperationTypes = MergeTreeDeltaOperationTypes> {
565
559
  operation: TOperation;
566
560
  position: number;
@@ -568,7 +562,7 @@ export interface ISequenceDeltaRange<TOperation extends MergeTreeDeltaOperationT
568
562
  segment: ISegment;
569
563
  }
570
564
 
571
- // @alpha @legacy
565
+ // @beta @legacy
572
566
  export interface ISequenceIntervalCollection extends TypedEventEmitter<ISequenceIntervalCollectionEvents> {
573
567
  // (undocumented)
574
568
  [Symbol.iterator](): Iterator<SequenceInterval>;
@@ -609,7 +603,7 @@ export interface ISequenceIntervalCollection extends TypedEventEmitter<ISequence
609
603
  removeIntervalById(id: string): SequenceInterval | undefined;
610
604
  }
611
605
 
612
- // @alpha @legacy
606
+ // @beta @legacy
613
607
  export interface ISequenceIntervalCollectionEvents extends IEvent {
614
608
  (event: "changeInterval", listener: (interval: SequenceInterval, previousInterval: SequenceInterval, local: boolean, op: ISequencedDocumentMessage | undefined, slide: boolean) => void): void;
615
609
  (event: "addInterval" | "deleteInterval", listener: (interval: SequenceInterval, local: boolean, op: ISequencedDocumentMessage | undefined) => void): void;
@@ -617,15 +611,7 @@ export interface ISequenceIntervalCollectionEvents extends IEvent {
617
611
  (event: "changed", listener: (interval: SequenceInterval, propertyDeltas: PropertySet, previousInterval: SequenceInterval | undefined, local: boolean, slide: boolean) => void): void;
618
612
  }
619
613
 
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
614
+ // @beta @legacy
629
615
  export interface ISerializedInterval {
630
616
  end: number | "start" | "end";
631
617
  // (undocumented)
@@ -658,7 +644,7 @@ export interface IServiceAudienceEvents<M extends IMember> extends IEvent {
658
644
  // @public
659
645
  export function isFluidHandle(value: unknown): value is IFluidHandle;
660
646
 
661
- // @alpha @sealed @legacy
647
+ // @beta @sealed @legacy
662
648
  export interface ISharedDirectory extends ISharedObject<ISharedDirectoryEvents & IDirectoryEvents>, Omit<IDirectory, "on" | "once" | "off"> {
663
649
  // (undocumented)
664
650
  [Symbol.iterator](): IterableIterator<[string, any]>;
@@ -666,7 +652,7 @@ export interface ISharedDirectory extends ISharedObject<ISharedDirectoryEvents &
666
652
  readonly [Symbol.toStringTag]: string;
667
653
  }
668
654
 
669
- // @alpha @sealed @legacy
655
+ // @beta @sealed @legacy
670
656
  export interface ISharedDirectoryEvents extends ISharedObjectEvents {
671
657
  (event: "valueChanged", listener: (changed: IDirectoryValueChanged, local: boolean, target: IEventThisPlaceHolder) => void): any;
672
658
  (event: "clear", listener: (local: boolean, target: IEventThisPlaceHolder) => void): any;
@@ -674,24 +660,24 @@ export interface ISharedDirectoryEvents extends ISharedObjectEvents {
674
660
  (event: "subDirectoryDeleted", listener: (path: string, local: boolean, target: IEventThisPlaceHolder) => void): any;
675
661
  }
676
662
 
677
- // @alpha @sealed @legacy
663
+ // @beta @sealed @legacy
678
664
  export interface ISharedMap extends ISharedObject<ISharedMapEvents>, Map<string, any> {
679
665
  get<T = any>(key: string): T | undefined;
680
666
  set<T = unknown>(key: string, value: T): this;
681
667
  }
682
668
 
683
- // @alpha @sealed @legacy
669
+ // @beta @sealed @legacy
684
670
  export interface ISharedMapEvents extends ISharedObjectEvents {
685
671
  (event: "valueChanged", listener: (changed: IValueChanged, local: boolean, target: IEventThisPlaceHolder) => void): any;
686
672
  (event: "clear", listener: (local: boolean, target: IEventThisPlaceHolder) => void): any;
687
673
  }
688
674
 
689
- // @alpha @legacy
675
+ // @beta @legacy
690
676
  export interface ISharedObject<TEvent extends ISharedObjectEvents = ISharedObjectEvents> extends IChannel, IEventProvider<TEvent> {
691
677
  bindToContext(): void;
692
678
  }
693
679
 
694
- // @alpha @legacy
680
+ // @beta @legacy
695
681
  export interface ISharedObjectEvents extends IErrorEvent {
696
682
  // @eventProperty
697
683
  (event: "pre-op", listener: (op: ISequencedDocumentMessage, local: boolean, target: IEventThisPlaceHolder) => void): any;
@@ -699,7 +685,7 @@ export interface ISharedObjectEvents extends IErrorEvent {
699
685
  (event: "op", listener: (op: ISequencedDocumentMessage, local: boolean, target: IEventThisPlaceHolder) => void): any;
700
686
  }
701
687
 
702
- // @alpha @legacy (undocumented)
688
+ // @beta @legacy (undocumented)
703
689
  export interface ISharedSegmentSequence<T extends ISegment> extends ISharedObject<ISharedSegmentSequenceEvents>, MergeTreeRevertibleDriver {
704
690
  annotateAdjustRange(start: number, end: number, adjust: MapLike<AdjustParams>): void;
705
691
  annotateRange(start: number, end: number, props: PropertySet): void;
@@ -737,7 +723,7 @@ export interface ISharedSegmentSequence<T extends ISegment> extends ISharedObjec
737
723
  walkSegments<TClientData>(handler: ISegmentAction<TClientData>, start?: number, end?: number, accum?: TClientData, splitRange?: boolean): void;
738
724
  }
739
725
 
740
- // @alpha @legacy
726
+ // @beta @legacy
741
727
  export interface ISharedSegmentSequenceEvents extends ISharedObjectEvents {
742
728
  // (undocumented)
743
729
  (event: "createIntervalCollection", listener: (label: string, local: boolean, target: IEventThisPlaceHolder) => void): void;
@@ -747,7 +733,7 @@ export interface ISharedSegmentSequenceEvents extends ISharedObjectEvents {
747
733
  (event: "maintenance", listener: (event: SequenceMaintenanceEvent, target: IEventThisPlaceHolder) => void): void;
748
734
  }
749
735
 
750
- // @alpha @legacy
736
+ // @beta @legacy
751
737
  export interface ISharedString extends ISharedSegmentSequence<SharedStringSegment> {
752
738
  annotateMarker(marker: Marker, props: PropertySet): void;
753
739
  getMarkerFromId(id: string): ISegment | undefined;
@@ -780,7 +766,7 @@ export class IterableTreeArrayContent<T> implements Iterable<T> {
780
766
  [Symbol.iterator](): Iterator<T>;
781
767
  }
782
768
 
783
- // @alpha @legacy
769
+ // @beta @legacy
784
770
  export interface ITrace {
785
771
  action: string;
786
772
  service: string;
@@ -870,7 +856,7 @@ export interface NodeSchemaMetadata<out TCustomMetadata = unknown> {
870
856
  readonly description?: string | undefined;
871
857
  }
872
858
 
873
- // @public @sealed
859
+ // @public @input
874
860
  export interface NodeSchemaOptions<out TCustomMetadata = unknown> {
875
861
  readonly metadata?: NodeSchemaMetadata<TCustomMetadata> | undefined;
876
862
  }
@@ -1018,14 +1004,14 @@ export interface SchemaStatics {
1018
1004
  // @public @system
1019
1005
  type ScopedSchemaName<TScope extends string | undefined, TName extends number | string> = TScope extends undefined ? `${TName}` : `${TScope}.${TName}`;
1020
1006
 
1021
- // @alpha @legacy
1007
+ // @beta @legacy
1022
1008
  export interface SequenceDeltaEvent extends SequenceEvent<MergeTreeDeltaOperationType> {
1023
1009
  readonly isLocal: boolean;
1024
1010
  // (undocumented)
1025
1011
  readonly opArgs: IMergeTreeDeltaOpArgs;
1026
1012
  }
1027
1013
 
1028
- // @alpha @legacy
1014
+ // @beta @legacy
1029
1015
  export interface SequenceEvent<TOperation extends MergeTreeDeltaOperationTypes = MergeTreeDeltaOperationTypes> {
1030
1016
  readonly clientId: string | undefined;
1031
1017
  // (undocumented)
@@ -1037,12 +1023,8 @@ export interface SequenceEvent<TOperation extends MergeTreeDeltaOperationTypes =
1037
1023
  readonly ranges: readonly Readonly<ISequenceDeltaRange<TOperation>>[];
1038
1024
  }
1039
1025
 
1040
- // @alpha @legacy
1041
- export interface SequenceInterval extends ISerializableInterval {
1042
- // @deprecated
1043
- addPositionChangeListeners(beforePositionChange: () => void, afterPositionChange: () => void): void;
1044
- // @deprecated (undocumented)
1045
- clone(): SequenceInterval;
1026
+ // @beta @legacy
1027
+ export interface SequenceInterval extends IInterval {
1046
1028
  compare(b: SequenceInterval): number;
1047
1029
  compareEnd(b: SequenceInterval): number;
1048
1030
  compareStart(b: SequenceInterval): number;
@@ -1052,32 +1034,26 @@ export interface SequenceInterval extends ISerializableInterval {
1052
1034
  getIntervalId(): string;
1053
1035
  // (undocumented)
1054
1036
  readonly intervalType: IntervalType;
1055
- // @deprecated
1056
- modify(label: string, start: SequencePlace | undefined, end: SequencePlace | undefined, op?: ISequencedDocumentMessage, localSeq?: number, canSlideToEndpoint?: boolean): SequenceInterval | undefined;
1057
1037
  // (undocumented)
1058
1038
  overlaps(b: SequenceInterval): boolean;
1059
1039
  // (undocumented)
1060
1040
  overlapsPos(bstart: number, bend: number): boolean;
1061
1041
  properties: PropertySet;
1062
- // @deprecated
1063
- removePositionChangeListeners(): void;
1064
1042
  // (undocumented)
1065
1043
  readonly start: LocalReferencePosition;
1066
1044
  // (undocumented)
1067
1045
  readonly startSide: Side;
1068
1046
  // (undocumented)
1069
1047
  readonly stickiness: IntervalStickiness;
1070
- // @deprecated
1071
- union(b: SequenceInterval): SequenceInterval;
1072
1048
  }
1073
1049
 
1074
- // @alpha @legacy
1050
+ // @beta @legacy
1075
1051
  export interface SequenceIntervalIndex {
1076
1052
  add(interval: SequenceInterval): void;
1077
1053
  remove(interval: SequenceInterval): void;
1078
1054
  }
1079
1055
 
1080
- // @alpha @legacy
1056
+ // @beta @legacy
1081
1057
  export interface SequenceMaintenanceEvent extends SequenceEvent<MergeTreeMaintenanceType> {
1082
1058
  // (undocumented)
1083
1059
  readonly opArgs: IMergeTreeDeltaOpArgs | undefined;
@@ -1085,16 +1061,16 @@ export interface SequenceMaintenanceEvent extends SequenceEvent<MergeTreeMainten
1085
1061
 
1086
1062
  export { SequencePlace }
1087
1063
 
1088
- // @alpha @legacy
1064
+ // @beta @legacy
1089
1065
  export const SharedDirectory: ISharedObjectKind<ISharedDirectory> & SharedObjectKind_2<ISharedDirectory>;
1090
1066
 
1091
- // @alpha @legacy
1067
+ // @beta @legacy
1092
1068
  export type SharedDirectory = ISharedDirectory;
1093
1069
 
1094
- // @alpha @legacy
1070
+ // @beta @legacy
1095
1071
  export const SharedMap: ISharedObjectKind<ISharedMap> & SharedObjectKind_2<ISharedMap>;
1096
1072
 
1097
- // @alpha @legacy
1073
+ // @beta @legacy
1098
1074
  export type SharedMap = ISharedMap;
1099
1075
 
1100
1076
  // @public @sealed
@@ -1102,13 +1078,13 @@ export interface SharedObjectKind<out TSharedObject = unknown> extends ErasedTyp
1102
1078
  is(value: IFluidLoadable): value is IFluidLoadable & TSharedObject;
1103
1079
  }
1104
1080
 
1105
- // @alpha @legacy
1081
+ // @beta @legacy
1106
1082
  export const SharedString: ISharedObjectKind<ISharedString> & SharedObjectKind_2<ISharedString>;
1107
1083
 
1108
- // @alpha @legacy
1084
+ // @beta @legacy
1109
1085
  export type SharedString = ISharedString;
1110
1086
 
1111
- // @alpha @legacy (undocumented)
1087
+ // @beta @legacy (undocumented)
1112
1088
  export type SharedStringSegment = TextSegment | Marker;
1113
1089
 
1114
1090
  // @public
@@ -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
  }
@@ -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
  }
package/dist/alpha.d.ts CHANGED
@@ -133,8 +133,11 @@ export {
133
133
  typeSchemaSymbol,
134
134
 
135
135
  // @beta APIs
136
+ ForestOptions,
137
+ ForestType,
136
138
  NodeChangedData,
137
139
  PopUnion,
140
+ SchemaFactoryBeta,
138
141
  TreeBeta,
139
142
  TreeChangeEventsBeta,
140
143
  UnionToTuple,
@@ -161,11 +164,12 @@ export {
161
164
  FieldSchemaAlphaUnsafe,
162
165
  FixRecursiveArraySchema,
163
166
  FluidClientVersion,
164
- ForestOptions,
165
- ForestType,
166
167
  ForestTypeExpensiveDebug,
167
168
  ForestTypeOptimized,
168
169
  ForestTypeReference,
170
+ FormatValidator,
171
+ FormatValidatorBasic,
172
+ FormatValidatorNoOp,
169
173
  HandleConverter,
170
174
  ICodecOptions,
171
175
  ITreeAlpha,
@@ -197,6 +201,7 @@ export {
197
201
  JsonStringKeyPatternProperties,
198
202
  JsonTreeSchema,
199
203
  JsonValidator,
204
+ KeyEncodingOptions,
200
205
  MapNodeCustomizableSchema,
201
206
  MapNodeCustomizableSchemaUnsafe,
202
207
  MapNodePojoEmulationSchema,
@@ -249,6 +254,7 @@ export {
249
254
  TreeIndex,
250
255
  TreeIndexKey,
251
256
  TreeIndexNodes,
257
+ TreeParsingOptions,
252
258
  TreeRecordNode,
253
259
  TreeRecordNodeUnsafe,
254
260
  TreeSchema,
package/dist/beta.d.ts CHANGED
@@ -133,8 +133,11 @@ export {
133
133
  typeSchemaSymbol,
134
134
 
135
135
  // @beta APIs
136
+ ForestOptions,
137
+ ForestType,
136
138
  NodeChangedData,
137
139
  PopUnion,
140
+ SchemaFactoryBeta,
138
141
  TreeBeta,
139
142
  TreeChangeEventsBeta,
140
143
  UnionToTuple,
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"]}
package/dist/legacy.d.ts CHANGED
@@ -143,7 +143,6 @@ export {
143
143
  ISequenceIntervalCollection,
144
144
  ISequenceIntervalCollectionEvents,
145
145
  ISequencedDocumentMessage,
146
- ISerializableInterval,
147
146
  ISerializedInterval,
148
147
  ISharedDirectory,
149
148
  ISharedDirectoryEvents,
package/lib/alpha.d.ts CHANGED
@@ -133,8 +133,11 @@ export {
133
133
  typeSchemaSymbol,
134
134
 
135
135
  // @beta APIs
136
+ ForestOptions,
137
+ ForestType,
136
138
  NodeChangedData,
137
139
  PopUnion,
140
+ SchemaFactoryBeta,
138
141
  TreeBeta,
139
142
  TreeChangeEventsBeta,
140
143
  UnionToTuple,
@@ -161,11 +164,12 @@ export {
161
164
  FieldSchemaAlphaUnsafe,
162
165
  FixRecursiveArraySchema,
163
166
  FluidClientVersion,
164
- ForestOptions,
165
- ForestType,
166
167
  ForestTypeExpensiveDebug,
167
168
  ForestTypeOptimized,
168
169
  ForestTypeReference,
170
+ FormatValidator,
171
+ FormatValidatorBasic,
172
+ FormatValidatorNoOp,
169
173
  HandleConverter,
170
174
  ICodecOptions,
171
175
  ITreeAlpha,
@@ -197,6 +201,7 @@ export {
197
201
  JsonStringKeyPatternProperties,
198
202
  JsonTreeSchema,
199
203
  JsonValidator,
204
+ KeyEncodingOptions,
200
205
  MapNodeCustomizableSchema,
201
206
  MapNodeCustomizableSchemaUnsafe,
202
207
  MapNodePojoEmulationSchema,
@@ -249,6 +254,7 @@ export {
249
254
  TreeIndex,
250
255
  TreeIndexKey,
251
256
  TreeIndexNodes,
257
+ TreeParsingOptions,
252
258
  TreeRecordNode,
253
259
  TreeRecordNodeUnsafe,
254
260
  TreeSchema,
package/lib/beta.d.ts CHANGED
@@ -133,8 +133,11 @@ export {
133
133
  typeSchemaSymbol,
134
134
 
135
135
  // @beta APIs
136
+ ForestOptions,
137
+ ForestType,
136
138
  NodeChangedData,
137
139
  PopUnion,
140
+ SchemaFactoryBeta,
138
141
  TreeBeta,
139
142
  TreeChangeEventsBeta,
140
143
  UnionToTuple,
package/lib/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/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiBH,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AA0CnE,4GAA4G;AAC5G,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAIzE,mDAAmD;AACnD,4FAA4F;AAC5F;;;;MAIG;AACH,cAAc,4BAA4B,CAAC;AAU3C,OAAO,EACN,UAAU,IAAI,kBAAkB,EAChC,oBAAoB,IAAI,4BAA4B,GAEpD,MAAM,+BAA+B,CAAC;AAEvC;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,UAAU,GAA4B,kBAAkB,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAA0B;IAC9D,OAAO,4BAA4B,CAAC,OAAO,CAAC,CAAC;AAC9C,CAAC;AAmBD,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AA6B1E,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAajE,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,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AA0CnE,4GAA4G;AAC5G,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAIzE,mDAAmD;AACnD,4FAA4F;AAC5F;;;;MAIG;AACH,cAAc,4BAA4B,CAAC;AAU3C,OAAO,EACN,UAAU,IAAI,kBAAkB,EAChC,oBAAoB,IAAI,4BAA4B,GAEpD,MAAM,+BAA+B,CAAC;AAEvC;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,UAAU,GAA4B,kBAAkB,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAA0B;IAC9D,OAAO,4BAA4B,CAAC,OAAO,CAAC,CAAC;AAC9C,CAAC;AAmBD,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AA4B1E,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAajE,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"]}
package/lib/legacy.d.ts CHANGED
@@ -143,7 +143,6 @@ export {
143
143
  ISequenceIntervalCollection,
144
144
  ISequenceIntervalCollectionEvents,
145
145
  ISequencedDocumentMessage,
146
- ISerializableInterval,
147
146
  ISerializedInterval,
148
147
  ISharedDirectory,
149
148
  ISharedDirectoryEvents,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fluid-framework",
3
- "version": "2.53.1",
3
+ "version": "2.60.0",
4
4
  "description": "The main entry point into Fluid Framework public packages",
5
5
  "homepage": "https://fluidframework.com",
6
6
  "repository": {
@@ -57,17 +57,17 @@
57
57
  "main": "lib/index.js",
58
58
  "types": "lib/public.d.ts",
59
59
  "dependencies": {
60
- "@fluidframework/container-definitions": "~2.53.1",
61
- "@fluidframework/container-loader": "~2.53.1",
62
- "@fluidframework/core-interfaces": "~2.53.1",
63
- "@fluidframework/core-utils": "~2.53.1",
64
- "@fluidframework/driver-definitions": "~2.53.1",
65
- "@fluidframework/fluid-static": "~2.53.1",
66
- "@fluidframework/map": "~2.53.1",
67
- "@fluidframework/runtime-utils": "~2.53.1",
68
- "@fluidframework/sequence": "~2.53.1",
69
- "@fluidframework/shared-object-base": "~2.53.1",
70
- "@fluidframework/tree": "~2.53.1"
60
+ "@fluidframework/container-definitions": "~2.60.0",
61
+ "@fluidframework/container-loader": "~2.60.0",
62
+ "@fluidframework/core-interfaces": "~2.60.0",
63
+ "@fluidframework/core-utils": "~2.60.0",
64
+ "@fluidframework/driver-definitions": "~2.60.0",
65
+ "@fluidframework/fluid-static": "~2.60.0",
66
+ "@fluidframework/map": "~2.60.0",
67
+ "@fluidframework/runtime-utils": "~2.60.0",
68
+ "@fluidframework/sequence": "~2.60.0",
69
+ "@fluidframework/shared-object-base": "~2.60.0",
70
+ "@fluidframework/tree": "~2.60.0"
71
71
  },
72
72
  "devDependencies": {
73
73
  "@arethetypeswrong/cli": "^0.17.1",
@@ -75,7 +75,7 @@
75
75
  "@fluid-tools/build-cli": "^0.57.0",
76
76
  "@fluidframework/build-common": "^2.0.3",
77
77
  "@fluidframework/build-tools": "^0.57.0",
78
- "@fluidframework/eslint-config-fluid": "^5.7.4",
78
+ "@fluidframework/eslint-config-fluid": "^6.0.0",
79
79
  "@microsoft/api-extractor": "7.52.8",
80
80
  "@types/node": "^18.19.0",
81
81
  "concurrently": "^8.2.1",
package/src/index.ts CHANGED
@@ -150,7 +150,6 @@ export type {
150
150
  IInterval,
151
151
  IntervalStickiness,
152
152
  ISequenceDeltaRange,
153
- ISerializableInterval,
154
153
  ISerializedInterval,
155
154
  ISharedSegmentSequenceEvents,
156
155
  ISharedString,