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 +18 -0
- package/api-report/fluid-framework.alpha.api.md +20 -2
- package/dist/alpha.d.ts +4 -0
- package/lib/alpha.d.ts +4 -0
- package/package.json +19 -19
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
|
|
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
|
|
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.
|
|
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.
|
|
61
|
-
"@fluidframework/container-loader": "~2.
|
|
62
|
-
"@fluidframework/core-interfaces": "~2.
|
|
63
|
-
"@fluidframework/core-utils": "~2.
|
|
64
|
-
"@fluidframework/driver-definitions": "~2.
|
|
65
|
-
"@fluidframework/fluid-static": "~2.
|
|
66
|
-
"@fluidframework/map": "~2.
|
|
67
|
-
"@fluidframework/runtime-utils": "~2.
|
|
68
|
-
"@fluidframework/sequence": "~2.
|
|
69
|
-
"@fluidframework/shared-object-base": "~2.
|
|
70
|
-
"@fluidframework/tree": "~2.
|
|
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.
|
|
73
|
+
"@arethetypeswrong/cli": "^0.18.2",
|
|
74
74
|
"@biomejs/biome": "~1.9.3",
|
|
75
|
-
"@fluid-tools/build-cli": "^0.
|
|
75
|
+
"@fluid-tools/build-cli": "^0.62.0",
|
|
76
76
|
"@fluidframework/build-common": "^2.0.3",
|
|
77
|
-
"@fluidframework/build-tools": "^0.
|
|
78
|
-
"@fluidframework/eslint-config-fluid": "~2.
|
|
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": "^
|
|
81
|
+
"concurrently": "^9.2.1",
|
|
82
82
|
"copyfiles": "^2.4.1",
|
|
83
|
-
"eslint": "~
|
|
83
|
+
"eslint": "~9.39.1",
|
|
84
84
|
"jiti": "^2.6.1",
|
|
85
|
-
"rimraf": "^
|
|
85
|
+
"rimraf": "^6.1.2",
|
|
86
86
|
"typescript": "~5.4.5"
|
|
87
87
|
},
|
|
88
88
|
"fluidBuild": {
|