@fluidframework/tree 2.73.0 → 2.74.0-365691

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.
Files changed (176) hide show
  1. package/api-report/tree.alpha.api.md +15 -1
  2. package/dist/alpha.d.ts +4 -0
  3. package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts +2 -2
  4. package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
  5. package/dist/feature-libraries/chunked-forest/codec/codecs.js +1 -1
  6. package/dist/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
  7. package/dist/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.d.ts +2 -2
  8. package/dist/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.d.ts.map +1 -1
  9. package/dist/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.js.map +1 -1
  10. package/dist/feature-libraries/forest-summary/forestSummarizer.js +1 -1
  11. package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  12. package/dist/feature-libraries/index.d.ts +1 -1
  13. package/dist/feature-libraries/index.d.ts.map +1 -1
  14. package/dist/feature-libraries/index.js +1 -2
  15. package/dist/feature-libraries/index.js.map +1 -1
  16. package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts +2 -2
  17. package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
  18. package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
  19. package/dist/feature-libraries/sequence-field/formatV2.d.ts.map +1 -1
  20. package/dist/feature-libraries/sequence-field/formatV2.js +1 -0
  21. package/dist/feature-libraries/sequence-field/formatV2.js.map +1 -1
  22. package/dist/feature-libraries/treeCompressionUtils.d.ts +2 -12
  23. package/dist/feature-libraries/treeCompressionUtils.d.ts.map +1 -1
  24. package/dist/feature-libraries/treeCompressionUtils.js +4 -14
  25. package/dist/feature-libraries/treeCompressionUtils.js.map +1 -1
  26. package/dist/index.d.ts +3 -3
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +4 -1
  29. package/dist/index.js.map +1 -1
  30. package/dist/packageVersion.d.ts +1 -1
  31. package/dist/packageVersion.d.ts.map +1 -1
  32. package/dist/packageVersion.js +1 -1
  33. package/dist/packageVersion.js.map +1 -1
  34. package/dist/shared-tree/sharedTree.d.ts +7 -10
  35. package/dist/shared-tree/sharedTree.d.ts.map +1 -1
  36. package/dist/shared-tree/sharedTree.js +1 -0
  37. package/dist/shared-tree/sharedTree.js.map +1 -1
  38. package/dist/shared-tree/sharedTreeChangeFamily.d.ts +2 -2
  39. package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
  40. package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
  41. package/dist/shared-tree/treeCheckout.d.ts +2 -2
  42. package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
  43. package/dist/shared-tree/treeCheckout.js.map +1 -1
  44. package/dist/shared-tree-core/index.d.ts +1 -1
  45. package/dist/shared-tree-core/index.d.ts.map +1 -1
  46. package/dist/shared-tree-core/index.js.map +1 -1
  47. package/dist/simple-tree/api/incrementalAllowedTypes.d.ts +15 -12
  48. package/dist/simple-tree/api/incrementalAllowedTypes.d.ts.map +1 -1
  49. package/dist/simple-tree/api/incrementalAllowedTypes.js +17 -14
  50. package/dist/simple-tree/api/incrementalAllowedTypes.js.map +1 -1
  51. package/dist/simple-tree/api/index.d.ts +1 -1
  52. package/dist/simple-tree/api/index.d.ts.map +1 -1
  53. package/dist/simple-tree/api/index.js +2 -2
  54. package/dist/simple-tree/api/index.js.map +1 -1
  55. package/dist/simple-tree/api/tree.d.ts +1 -1
  56. package/dist/simple-tree/api/tree.js.map +1 -1
  57. package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
  58. package/dist/simple-tree/core/treeNodeKernel.js +1 -0
  59. package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
  60. package/dist/simple-tree/index.d.ts +1 -1
  61. package/dist/simple-tree/index.d.ts.map +1 -1
  62. package/dist/simple-tree/index.js +2 -2
  63. package/dist/simple-tree/index.js.map +1 -1
  64. package/dist/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
  65. package/dist/simple-tree/node-kinds/array/arrayNode.js +1 -0
  66. package/dist/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
  67. package/dist/simple-tree/node-kinds/object/objectNode.js +1 -0
  68. package/dist/simple-tree/node-kinds/object/objectNode.js.map +1 -1
  69. package/dist/treeFactory.d.ts +5 -0
  70. package/dist/treeFactory.d.ts.map +1 -1
  71. package/dist/treeFactory.js +12 -5
  72. package/dist/treeFactory.js.map +1 -1
  73. package/dist/util/breakable.js +3 -3
  74. package/dist/util/breakable.js.map +1 -1
  75. package/dist/util/typeCheckTests.d.ts.map +1 -1
  76. package/dist/util/typeCheckTests.js.map +1 -1
  77. package/lib/alpha.d.ts +4 -0
  78. package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts +2 -2
  79. package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
  80. package/lib/feature-libraries/chunked-forest/codec/codecs.js +2 -2
  81. package/lib/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
  82. package/lib/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.d.ts +2 -2
  83. package/lib/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.d.ts.map +1 -1
  84. package/lib/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.js.map +1 -1
  85. package/lib/feature-libraries/forest-summary/forestSummarizer.js +2 -2
  86. package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  87. package/lib/feature-libraries/index.d.ts +1 -1
  88. package/lib/feature-libraries/index.d.ts.map +1 -1
  89. package/lib/feature-libraries/index.js +1 -1
  90. package/lib/feature-libraries/index.js.map +1 -1
  91. package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts +2 -2
  92. package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
  93. package/lib/feature-libraries/modular-schema/modularChangeCodecs.js +1 -1
  94. package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
  95. package/lib/feature-libraries/sequence-field/formatV2.d.ts.map +1 -1
  96. package/lib/feature-libraries/sequence-field/formatV2.js +1 -0
  97. package/lib/feature-libraries/sequence-field/formatV2.js.map +1 -1
  98. package/lib/feature-libraries/treeCompressionUtils.d.ts +2 -12
  99. package/lib/feature-libraries/treeCompressionUtils.d.ts.map +1 -1
  100. package/lib/feature-libraries/treeCompressionUtils.js +3 -13
  101. package/lib/feature-libraries/treeCompressionUtils.js.map +1 -1
  102. package/lib/index.d.ts +3 -3
  103. package/lib/index.d.ts.map +1 -1
  104. package/lib/index.js +2 -2
  105. package/lib/index.js.map +1 -1
  106. package/lib/packageVersion.d.ts +1 -1
  107. package/lib/packageVersion.d.ts.map +1 -1
  108. package/lib/packageVersion.js +1 -1
  109. package/lib/packageVersion.js.map +1 -1
  110. package/lib/shared-tree/sharedTree.d.ts +7 -10
  111. package/lib/shared-tree/sharedTree.d.ts.map +1 -1
  112. package/lib/shared-tree/sharedTree.js +1 -0
  113. package/lib/shared-tree/sharedTree.js.map +1 -1
  114. package/lib/shared-tree/sharedTreeChangeFamily.d.ts +2 -2
  115. package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
  116. package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
  117. package/lib/shared-tree/treeCheckout.d.ts +2 -2
  118. package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
  119. package/lib/shared-tree/treeCheckout.js.map +1 -1
  120. package/lib/shared-tree-core/index.d.ts +1 -1
  121. package/lib/shared-tree-core/index.d.ts.map +1 -1
  122. package/lib/shared-tree-core/index.js.map +1 -1
  123. package/lib/simple-tree/api/incrementalAllowedTypes.d.ts +15 -12
  124. package/lib/simple-tree/api/incrementalAllowedTypes.d.ts.map +1 -1
  125. package/lib/simple-tree/api/incrementalAllowedTypes.js +15 -12
  126. package/lib/simple-tree/api/incrementalAllowedTypes.js.map +1 -1
  127. package/lib/simple-tree/api/index.d.ts +1 -1
  128. package/lib/simple-tree/api/index.d.ts.map +1 -1
  129. package/lib/simple-tree/api/index.js +1 -1
  130. package/lib/simple-tree/api/index.js.map +1 -1
  131. package/lib/simple-tree/api/tree.d.ts +1 -1
  132. package/lib/simple-tree/api/tree.js.map +1 -1
  133. package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
  134. package/lib/simple-tree/core/treeNodeKernel.js +1 -0
  135. package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
  136. package/lib/simple-tree/index.d.ts +1 -1
  137. package/lib/simple-tree/index.d.ts.map +1 -1
  138. package/lib/simple-tree/index.js +1 -1
  139. package/lib/simple-tree/index.js.map +1 -1
  140. package/lib/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
  141. package/lib/simple-tree/node-kinds/array/arrayNode.js +1 -0
  142. package/lib/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
  143. package/lib/simple-tree/node-kinds/object/objectNode.js +1 -0
  144. package/lib/simple-tree/node-kinds/object/objectNode.js.map +1 -1
  145. package/lib/treeFactory.d.ts +5 -0
  146. package/lib/treeFactory.d.ts.map +1 -1
  147. package/lib/treeFactory.js +10 -4
  148. package/lib/treeFactory.js.map +1 -1
  149. package/lib/util/breakable.js +3 -3
  150. package/lib/util/breakable.js.map +1 -1
  151. package/lib/util/typeCheckTests.d.ts.map +1 -1
  152. package/lib/util/typeCheckTests.js.map +1 -1
  153. package/package.json +22 -22
  154. package/src/feature-libraries/chunked-forest/codec/codecs.ts +3 -7
  155. package/src/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.ts +5 -6
  156. package/src/feature-libraries/forest-summary/forestSummarizer.ts +2 -2
  157. package/src/feature-libraries/index.ts +1 -5
  158. package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +3 -6
  159. package/src/feature-libraries/sequence-field/formatV2.ts +1 -0
  160. package/src/feature-libraries/treeCompressionUtils.ts +1 -15
  161. package/src/index.ts +4 -0
  162. package/src/packageVersion.ts +1 -1
  163. package/src/shared-tree/sharedTree.ts +12 -18
  164. package/src/shared-tree/sharedTreeChangeFamily.ts +2 -2
  165. package/src/shared-tree/treeCheckout.ts +2 -2
  166. package/src/shared-tree-core/index.ts +1 -1
  167. package/src/simple-tree/api/incrementalAllowedTypes.ts +20 -18
  168. package/src/simple-tree/api/index.ts +1 -1
  169. package/src/simple-tree/api/tree.ts +1 -1
  170. package/src/simple-tree/core/treeNodeKernel.ts +1 -0
  171. package/src/simple-tree/index.ts +1 -1
  172. package/src/simple-tree/node-kinds/array/arrayNode.ts +2 -0
  173. package/src/simple-tree/node-kinds/object/objectNode.ts +2 -1
  174. package/src/treeFactory.ts +13 -4
  175. package/src/util/breakable.ts +4 -4
  176. package/src/util/typeCheckTests.ts +0 -1
@@ -23,7 +23,7 @@ import {
23
23
  ModularChangeFamily,
24
24
  type ModularChangeset,
25
25
  type TreeChunk,
26
- type TreeCompressionStrategyPrivate,
26
+ type TreeCompressionStrategy,
27
27
  fieldKindConfigurations,
28
28
  fieldKinds,
29
29
  makeModularChangeCodecFamily,
@@ -61,7 +61,7 @@ export class SharedTreeChangeFamily
61
61
  revisionTagCodec: RevisionTagCodec,
62
62
  fieldBatchCodec: FieldBatchCodec,
63
63
  codecOptions: CodecWriteOptions,
64
- chunkCompressionStrategy?: TreeCompressionStrategyPrivate,
64
+ chunkCompressionStrategy?: TreeCompressionStrategy,
65
65
  private readonly idCompressor?: IIdCompressor,
66
66
  ) {
67
67
  const modularChangeCodec = makeModularChangeCodecFamily(
@@ -51,7 +51,7 @@ import {
51
51
  } from "../core/index.js";
52
52
  import {
53
53
  type FieldBatchCodec,
54
- type TreeCompressionStrategyPrivate,
54
+ type TreeCompressionStrategy,
55
55
  allowsRepoSuperset,
56
56
  buildForest,
57
57
  createNodeIdentifierManager,
@@ -287,7 +287,7 @@ export function createTreeCheckout(
287
287
  forest?: IEditableForest;
288
288
  fieldBatchCodec?: FieldBatchCodec;
289
289
  removedRoots?: DetachedFieldIndex;
290
- chunkCompressionStrategy?: TreeCompressionStrategyPrivate;
290
+ chunkCompressionStrategy?: TreeCompressionStrategy;
291
291
  logger?: ITelemetryLoggerExt;
292
292
  breaker?: Breakable;
293
293
  disposeForksAfterTransaction?: boolean;
@@ -27,7 +27,7 @@ export {
27
27
  type SummaryElementParser,
28
28
  type SummaryElementStringifier,
29
29
  type ClonableSchemaAndPolicy,
30
- type SharedTreeCoreOptionsInternal as SharedTreCoreOptionsInternal,
30
+ type SharedTreeCoreOptionsInternal,
31
31
  } from "./sharedTreeCore.js";
32
32
 
33
33
  export type { ResubmitMachine } from "./resubmitMachine.js";
@@ -3,21 +3,21 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import type { FieldKey, TreeNodeSchemaIdentifier } from "../../core/index.js";
7
6
  import { getTreeNodeSchemaPrivateData, type AllowedTypesFull } from "../core/index.js";
8
7
  import { isObjectNodeSchema } from "../node-kinds/index.js";
9
8
  import type { TreeSchema } from "./configuration.js";
10
9
  import type { IncrementalEncodingPolicy } from "../../feature-libraries/index.js";
11
10
  import { oneFromIterable } from "../../util/index.js";
12
11
  import { assert } from "@fluidframework/core-utils/internal";
12
+ import type { FieldKey } from "../../core/index.js";
13
13
 
14
14
  /**
15
- * A symbol when present in the {@link AnnotatedAllowedTypes.metadata.custom} property as true, opts in the allowed
15
+ * A symbol when present in the {@link AnnotatedAllowedTypes.metadata}'s `custom` property as true, opts in the allowed
16
16
  * types to incremental summary optimization.
17
17
  * These allowed types will be optimized during summary such that if they don't change across summaries,
18
18
  * they will not be encoded and their content will not be included in the summary that is uploaded to the service.
19
19
  * @remarks
20
- * See {@link getShouldIncrementallySummarizeAllowedTypes} for more details.
20
+ * See {@link incrementalEncodingPolicyForAllowedTypes} for more details.
21
21
  *
22
22
  * Use {@link SchemaStaticsBeta.types} to add this metadata to allowed types in a schema.
23
23
  * @example
@@ -29,6 +29,7 @@ import { assert } from "@fluidframework/core-utils/internal";
29
29
  * }),
30
30
  * }) {}
31
31
  * ```
32
+ * @alpha
32
33
  */
33
34
  export const incrementalSummaryHint: unique symbol = Symbol("IncrementalSummaryHint");
34
35
 
@@ -44,31 +45,30 @@ function isIncrementalSummaryHintInAllowedTypes(allowedTypes: AllowedTypesFull):
44
45
  }
45
46
 
46
47
  /**
47
- * This helper function {@link getShouldIncrementallySummarizeAllowedTypes} can be used to generate a callback function
48
- * of type {@link IncrementalEncodingPolicy}.
49
- * This callback can be passed as the value for {@link SharedTreeOptionsInternal.shouldEncodeFieldIncrementally} parameter
48
+ * This helper function {@link incrementalEncodingPolicyForAllowedTypes} can be used to generate a callback function
49
+ * of type {@link IncrementalEncodingPolicy}. It determines if each {@link AllowedTypes} in a schema should be
50
+ * incrementally summarized.
51
+ * This callback can be passed as the value for {@link SharedTreeOptions.shouldEncodeIncrementally} parameter
50
52
  * when creating the tree.
51
- * It will be called for each {@link AllowedTypes} in the schema to determine if it should be incrementally summarized.
52
53
  *
53
54
  * @param rootSchema - The schema for the root of the tree.
54
- * @returns A callback function of type {@link IncrementalEncodingPolicy} which can be used to determine if a field
55
- * should be incrementally summarized based on whether it is an allowed types with the
56
- * {@link incrementalAllowedTypesMetadata} metadata.
55
+ * @returns A callback function of type {@link IncrementalEncodingPolicy} which determines if allowed types should
56
+ * be incrementally summarized based on whether they have opted in via the {@link incrementalSummaryHint} metadata.
57
57
  *
58
58
  * @remarks
59
59
  * This only works for forest type {@link ForestTypeOptimized} and compression strategy
60
- * {@link TreeCompressionStrategyExtended.CompressedIncremental}.
60
+ * {@link TreeCompressionStrategy.CompressedIncremental}.
61
61
  *
62
- * The {@link incrementalAllowedTypesMetadata} will be replaced with a specialized metadata property once the
62
+ * @privateRemarks
63
+ * The {@link incrementalSummaryHint} will be replaced with a specialized metadata property once the
63
64
  * incremental summary feature and APIs are stabilized.
65
+ *
66
+ * @alpha
64
67
  */
65
- export function getShouldIncrementallySummarizeAllowedTypes(
68
+ export function incrementalEncodingPolicyForAllowedTypes(
66
69
  rootSchema: TreeSchema,
67
70
  ): IncrementalEncodingPolicy {
68
- return (
69
- targetNodeIdentifier: TreeNodeSchemaIdentifier | undefined,
70
- targetFieldKey: FieldKey,
71
- ) => {
71
+ return (targetNodeIdentifier: string | undefined, targetFieldKey: string) => {
72
72
  if (targetNodeIdentifier === undefined) {
73
73
  // Root fields cannot be allowed types, so we don't incrementally summarize them.
74
74
  return false;
@@ -85,7 +85,9 @@ export function getShouldIncrementallySummarizeAllowedTypes(
85
85
  }
86
86
 
87
87
  if (isObjectNodeSchema(targetNode)) {
88
- const targetPropertyKey = targetNode.storedKeyToPropertyKey.get(targetFieldKey);
88
+ const targetPropertyKey = targetNode.storedKeyToPropertyKey.get(
89
+ targetFieldKey as FieldKey,
90
+ );
89
91
  if (targetPropertyKey !== undefined) {
90
92
  const fieldSchema = targetNode.fields.get(targetPropertyKey);
91
93
  if (fieldSchema !== undefined) {
@@ -164,7 +164,7 @@ export { generateSchemaFromSimpleSchema } from "./schemaFromSimple.js";
164
164
  export { toSimpleTreeSchema } from "./viewSchemaToSimpleSchema.js";
165
165
  export type { TreeChangeEvents } from "./treeChangeEvents.js";
166
166
  export {
167
- getShouldIncrementallySummarizeAllowedTypes,
167
+ incrementalEncodingPolicyForAllowedTypes,
168
168
  incrementalSummaryHint,
169
169
  } from "./incrementalAllowedTypes.js";
170
170
  export {
@@ -449,7 +449,7 @@ export interface SchemaCompatibilityStatus {
449
449
  *
450
450
  * In these cases `canUpgrade` and `isEquivalent` will be false.
451
451
  *
452
- * When the documents allowed by the view schema is a strict superset of those by the stored schema,
452
+ * When the set of documents allowed by the view schema is a strict superset of those allowed by the stored schema,
453
453
  * `canView` is false because writes to the document using the view schema could make the document violate its stored schema.
454
454
  * In this case, the stored schema could be updated to match the provided view schema, allowing read-write access to the tree.
455
455
  * See {@link SchemaCompatibilityStatus.canUpgrade}.
@@ -294,6 +294,7 @@ export class TreeNodeKernel {
294
294
  }
295
295
  }
296
296
 
297
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
297
298
  const kernelEvents = ["childrenChangedAfterBatch", "subtreeChangedAfterBatch"] as const;
298
299
 
299
300
  type KernelEvents = Pick<AnchorEvents, (typeof kernelEvents)[number]>;
@@ -186,7 +186,7 @@ export {
186
186
  KeyEncodingOptions,
187
187
  type TreeParsingOptions,
188
188
  incrementalSummaryHint,
189
- getShouldIncrementallySummarizeAllowedTypes,
189
+ incrementalEncodingPolicyForAllowedTypes,
190
190
  type SchemaFactory_base,
191
191
  } from "./api/index.js";
192
192
  export type {
@@ -578,6 +578,7 @@ const TreeNodeWithArrayFeatures = (() => {
578
578
  */
579
579
  /* eslint-disable @typescript-eslint/explicit-member-accessibility, @typescript-eslint/no-explicit-any */
580
580
  // prettier-ignore
581
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
581
582
  declare abstract class NodeWithArrayFeatures<Input, T>
582
583
  extends TreeNodeValid<Input>
583
584
  implements Pick<readonly T[], (typeof arrayPrototypeKeys)[number]>
@@ -1326,6 +1327,7 @@ function arrayChildToFlexTree(
1326
1327
  */
1327
1328
  function arrayToFlexContent(data: FactoryContent, schema: ArrayNodeSchema): FlexContent {
1328
1329
  if (!(typeof data === "object" && data !== null && Symbol.iterator in data)) {
1330
+ // eslint-disable-next-line @typescript-eslint/no-base-to-string
1329
1331
  throw new UsageError(`Input data is incompatible with Array schema: ${data}`);
1330
1332
  }
1331
1333
 
@@ -99,7 +99,7 @@ import type { ObjectSchemaOptionsAlpha } from "../../api/index.js";
99
99
  */
100
100
  export type ObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFieldSchema>> =
101
101
  RestrictiveStringRecord<ImplicitFieldSchema> extends T
102
- ? // eslint-disable-next-line @typescript-eslint/no-empty-object-type, @typescript-eslint/ban-types
102
+ ? // eslint-disable-next-line @typescript-eslint/no-empty-object-type
103
103
  {}
104
104
  : {
105
105
  -readonly [Property in keyof T]: Property extends string
@@ -651,6 +651,7 @@ function objectToFlexContent(
651
651
  Symbol.iterator in data ||
652
652
  isFluidHandle(data)
653
653
  ) {
654
+ // eslint-disable-next-line @typescript-eslint/no-base-to-string
654
655
  throw new UsageError(`Input data is incompatible with Object schema: ${data}`);
655
656
  }
656
657
 
@@ -148,6 +148,16 @@ export function configuredSharedTreeBetaLegacy(
148
148
  return configuredSharedTree(options);
149
149
  }
150
150
 
151
+ /**
152
+ * {@link configuredSharedTreeBeta} but including the alpha {@link SharedTreeOptions}.
153
+ * @alpha
154
+ */
155
+ export function configuredSharedTreeAlpha(
156
+ options: SharedTreeOptions,
157
+ ): SharedObjectKind<ITree> {
158
+ return configuredSharedTree(options);
159
+ }
160
+
151
161
  /**
152
162
  * {@link configuredSharedTreeBetaLegacy} but including `@alpha` options.
153
163
  *
@@ -195,10 +205,9 @@ export function resolveOptions(options: SharedTreeOptions): SharedTreeOptionsInt
195
205
  const internal: SharedTreeOptionsInternal = {
196
206
  ...resolveSharedBranchesOptions(options.enableSharedBranches),
197
207
  };
198
- copyProperty(options, "forest", internal);
199
- copyProperty(options, "jsonValidator", internal);
200
- copyProperty(options, "minVersionForCollab", internal);
201
- copyProperty(options, "treeEncodeType", internal);
208
+ for (const optionName of Object.keys(options)) {
209
+ copyProperty(options, optionName, internal);
210
+ }
202
211
  return internal;
203
212
  }
204
213
 
@@ -171,10 +171,10 @@ export function throwIfBroken<
171
171
  return replacementMethod as Target;
172
172
  }
173
173
 
174
- // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type, @typescript-eslint/ban-types
174
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
175
175
  type PossiblyNamedFunction = Function & { displayName?: undefined | string };
176
176
 
177
- // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type, @typescript-eslint/ban-types
177
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
178
178
  function nameFunctionFrom(toName: Function, nameFrom: Function): void {
179
179
  (toName as PossiblyNamedFunction).displayName =
180
180
  (nameFrom as PossiblyNamedFunction).displayName ?? nameFrom.name;
@@ -183,13 +183,13 @@ function nameFunctionFrom(toName: Function, nameFrom: Function): void {
183
183
  const isBreakerSymbol: unique symbol = Symbol("isBreaker");
184
184
 
185
185
  // Accepting any function like value is desired and safe here as this does not call the provided function.
186
- // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type, @typescript-eslint/ban-types
186
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
187
187
  function markBreaker(f: Function): void {
188
188
  (f as unknown as Record<typeof isBreakerSymbol, true>)[isBreakerSymbol] = true;
189
189
  }
190
190
 
191
191
  // Accepting any function like value is desired and safe here as this does not call the provided function.
192
- // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type, @typescript-eslint/ban-types
192
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
193
193
  function isBreaker(f: Function): boolean {
194
194
  return isBreakerSymbol in (f as unknown as Record<typeof isBreakerSymbol, true>);
195
195
  }
@@ -6,7 +6,6 @@
6
6
  // These tests include making sure some banned types (like `{}`) work correctly,
7
7
  // and are authored with awareness of the issues with these types.
8
8
 
9
- /* eslint-disable @typescript-eslint/ban-types */
10
9
  /* eslint-disable @typescript-eslint/no-explicit-any */
11
10
  /* eslint-disable @typescript-eslint/no-extraneous-class */
12
11