fluid-framework 2.74.0 → 2.80.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,23 @@
1
1
  # fluid-framework
2
2
 
3
+ ## 2.80.0
4
+
5
+ ### Minor Changes
6
+
7
+ - TreeBranch operations throw when called during transactions ([#26097](https://github.com/microsoft/FluidFramework/pull/26097)) [33b1ec0827c](https://github.com/microsoft/FluidFramework/commit/33b1ec0827c433ce9afc126f26457a9245bd43eb)
8
+
9
+ This breaking change only affects the behavior of `TreeBranch` methods (currently released as beta).
10
+ - Invoking `TreeBranch.fork()` now throws an error if a transaction is ongoing on the branch.
11
+ - Invoking `TreeBranch.merge(sourceBranch)` now throws an error if a transaction is ongoing on the source branch.
12
+ As before, it also throws an error if a transaction is ongoing on the target (i.e., `this`) branch.
13
+ - Invoking `TreeBranch.rebaseOnto(targetBranch)` now throws an error if a transaction is ongoing on the target branch.
14
+ As before, it also throws an error if a transaction is ongoing on the source (i.e., `this`) branch.
15
+
16
+ These new restrictions insulate branches and their dependents from experiencing incomplete transaction changes.
17
+ This is important because incomplete transaction changes may not uphold application invariants.
18
+
19
+ In scenarios that experience the new errors, application authors should consider whether the ongoing transaction can safely be closed before invoking these methods.
20
+
3
21
  ## 2.74.0
4
22
 
5
23
  ### Minor Changes
@@ -159,9 +159,14 @@ export function cloneWithReplacements(root: unknown, rootKey: string, replacer:
159
159
  value: unknown;
160
160
  }): unknown;
161
161
 
162
+ // @alpha
163
+ export type CodecName = string;
164
+
162
165
  // @alpha @input
163
166
  export interface CodecWriteOptions extends ICodecOptions {
167
+ readonly allowPossiblyIncompatibleWriteVersionOverrides?: boolean;
164
168
  readonly minVersionForCollab: MinimumVersionForCollab;
169
+ readonly writeVersionOverrides?: ReadonlyMap<CodecName, FormatVersion>;
165
170
  }
166
171
 
167
172
  // @public
@@ -411,6 +416,7 @@ export const FluidClientVersion: {
411
416
  readonly v2_52: "2.52.0";
412
417
  readonly v2_73: "2.73.0";
413
418
  readonly v2_74: "2.74.0";
419
+ readonly v2_80: "2.80.0";
414
420
  };
415
421
 
416
422
  // @public
@@ -473,6 +479,9 @@ export const FormatValidatorBasic: FormatValidator_2;
473
479
  // @alpha
474
480
  export const FormatValidatorNoOp: FormatValidator;
475
481
 
482
+ // @alpha
483
+ export type FormatVersion = number | string | undefined;
484
+
476
485
  // @alpha
477
486
  export function generateSchemaFromSimpleSchema(simple: SimpleTreeSchema): TreeSchema;
478
487
 
@@ -1090,6 +1099,12 @@ export type Myself<M extends IMember = IMember> = M & {
1090
1099
  readonly currentConnection: string;
1091
1100
  };
1092
1101
 
1102
+ // @alpha
1103
+ export interface NoChangeConstraint {
1104
+ // (undocumented)
1105
+ readonly type: "noChange";
1106
+ }
1107
+
1093
1108
  // @public @system
1094
1109
  type NodeBuilderData<T extends TreeNodeSchemaCore<string, NodeKind, boolean>> = T extends TreeNodeSchemaCore<string, NodeKind, boolean, unknown, infer TBuild> ? TBuild : never;
1095
1110
 
@@ -1288,7 +1303,7 @@ export interface RunTransaction {
1288
1303
 
1289
1304
  // @alpha @input
1290
1305
  export interface RunTransactionParams {
1291
- readonly preconditions?: readonly TransactionConstraint[];
1306
+ readonly preconditions?: readonly TransactionConstraintAlpha[];
1292
1307
  }
1293
1308
 
1294
1309
  // @public @sealed
@@ -1770,12 +1785,15 @@ export type TransactionCallbackStatus<TSuccessValue, TFailureValue> = ({
1770
1785
  rollback: true;
1771
1786
  value: TFailureValue;
1772
1787
  }) & {
1773
- preconditionsOnRevert?: readonly TransactionConstraint[];
1788
+ preconditionsOnRevert?: readonly TransactionConstraintAlpha[];
1774
1789
  };
1775
1790
 
1776
1791
  // @public
1777
1792
  export type TransactionConstraint = NodeInDocumentConstraint;
1778
1793
 
1794
+ // @alpha @sealed
1795
+ export type TransactionConstraintAlpha = TransactionConstraint | NoChangeConstraint;
1796
+
1779
1797
  // @alpha
1780
1798
  export type TransactionResult = Omit<TransactionResultSuccess<unknown>, "value"> | Omit<TransactionResultFailed<unknown>, "value">;
1781
1799
 
package/dist/alpha.d.ts CHANGED
@@ -196,6 +196,7 @@ export {
196
196
  ArrayNodeSchema,
197
197
  BranchableTree,
198
198
  ChangeMetadata,
199
+ CodecName,
199
200
  CodecWriteOptions,
200
201
  DirtyTreeMap,
201
202
  DirtyTreeStatus,
@@ -208,6 +209,7 @@ export {
208
209
  FormatValidator,
209
210
  FormatValidatorBasic,
210
211
  FormatValidatorNoOp,
212
+ FormatVersion,
211
213
  HandleConverter,
212
214
  ICodecOptions,
213
215
  ITreeAlpha,
@@ -238,6 +240,7 @@ export {
238
240
  MapNodeCustomizableSchemaUnsafe,
239
241
  MapNodePojoEmulationSchema,
240
242
  MapNodeSchema,
243
+ NoChangeConstraint,
241
244
  NodeSchemaOptionsAlpha,
242
245
  ObjectNodeSchema,
243
246
  ObjectSchemaOptionsAlpha,
@@ -269,6 +272,7 @@ export {
269
272
  System_TableSchema,
270
273
  TableSchema,
271
274
  TransactionCallbackStatus,
275
+ TransactionConstraintAlpha,
272
276
  TransactionResult,
273
277
  TransactionResultExt,
274
278
  TransactionResultFailed,
package/lib/alpha.d.ts CHANGED
@@ -196,6 +196,7 @@ export {
196
196
  ArrayNodeSchema,
197
197
  BranchableTree,
198
198
  ChangeMetadata,
199
+ CodecName,
199
200
  CodecWriteOptions,
200
201
  DirtyTreeMap,
201
202
  DirtyTreeStatus,
@@ -208,6 +209,7 @@ export {
208
209
  FormatValidator,
209
210
  FormatValidatorBasic,
210
211
  FormatValidatorNoOp,
212
+ FormatVersion,
211
213
  HandleConverter,
212
214
  ICodecOptions,
213
215
  ITreeAlpha,
@@ -238,6 +240,7 @@ export {
238
240
  MapNodeCustomizableSchemaUnsafe,
239
241
  MapNodePojoEmulationSchema,
240
242
  MapNodeSchema,
243
+ NoChangeConstraint,
241
244
  NodeSchemaOptionsAlpha,
242
245
  ObjectNodeSchema,
243
246
  ObjectSchemaOptionsAlpha,
@@ -269,6 +272,7 @@ export {
269
272
  System_TableSchema,
270
273
  TableSchema,
271
274
  TransactionCallbackStatus,
275
+ TransactionConstraintAlpha,
272
276
  TransactionResult,
273
277
  TransactionResultExt,
274
278
  TransactionResultFailed,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fluid-framework",
3
- "version": "2.74.0",
3
+ "version": "2.80.0",
4
4
  "description": "The main entry point into Fluid Framework public packages",
5
5
  "homepage": "https://fluidframework.com",
6
6
  "repository": {
@@ -57,32 +57,32 @@
57
57
  "main": "lib/index.js",
58
58
  "types": "lib/public.d.ts",
59
59
  "dependencies": {
60
- "@fluidframework/container-definitions": "~2.74.0",
61
- "@fluidframework/container-loader": "~2.74.0",
62
- "@fluidframework/core-interfaces": "~2.74.0",
63
- "@fluidframework/core-utils": "~2.74.0",
64
- "@fluidframework/driver-definitions": "~2.74.0",
65
- "@fluidframework/fluid-static": "~2.74.0",
66
- "@fluidframework/map": "~2.74.0",
67
- "@fluidframework/runtime-utils": "~2.74.0",
68
- "@fluidframework/sequence": "~2.74.0",
69
- "@fluidframework/shared-object-base": "~2.74.0",
70
- "@fluidframework/tree": "~2.74.0"
60
+ "@fluidframework/container-definitions": "~2.80.0",
61
+ "@fluidframework/container-loader": "~2.80.0",
62
+ "@fluidframework/core-interfaces": "~2.80.0",
63
+ "@fluidframework/core-utils": "~2.80.0",
64
+ "@fluidframework/driver-definitions": "~2.80.0",
65
+ "@fluidframework/fluid-static": "~2.80.0",
66
+ "@fluidframework/map": "~2.80.0",
67
+ "@fluidframework/runtime-utils": "~2.80.0",
68
+ "@fluidframework/sequence": "~2.80.0",
69
+ "@fluidframework/shared-object-base": "~2.80.0",
70
+ "@fluidframework/tree": "~2.80.0"
71
71
  },
72
72
  "devDependencies": {
73
- "@arethetypeswrong/cli": "^0.17.1",
73
+ "@arethetypeswrong/cli": "^0.18.2",
74
74
  "@biomejs/biome": "~1.9.3",
75
- "@fluid-tools/build-cli": "^0.61.0",
75
+ "@fluid-tools/build-cli": "^0.62.0",
76
76
  "@fluidframework/build-common": "^2.0.3",
77
- "@fluidframework/build-tools": "^0.61.0",
78
- "@fluidframework/eslint-config-fluid": "~2.74.0",
77
+ "@fluidframework/build-tools": "^0.62.0",
78
+ "@fluidframework/eslint-config-fluid": "~2.80.0",
79
79
  "@microsoft/api-extractor": "7.52.11",
80
80
  "@types/node": "^18.19.0",
81
- "concurrently": "^8.2.1",
81
+ "concurrently": "^9.2.1",
82
82
  "copyfiles": "^2.4.1",
83
- "eslint": "~8.57.1",
83
+ "eslint": "~9.39.1",
84
84
  "jiti": "^2.6.1",
85
- "rimraf": "^4.4.0",
85
+ "rimraf": "^6.1.2",
86
86
  "typescript": "~5.4.5"
87
87
  },
88
88
  "fluidBuild": {