@fluidframework/container-runtime 2.0.0-rc.2.0.6 → 2.0.0-rc.2.0.7
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/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +14 -11
- package/dist/containerRuntime.js.map +1 -1
- package/dist/metadata.d.ts +2 -2
- package/dist/metadata.d.ts.map +1 -1
- package/dist/metadata.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/lib/containerRuntime.d.ts.map +1 -1
- package/lib/containerRuntime.js +14 -11
- package/lib/containerRuntime.js.map +1 -1
- package/lib/metadata.d.ts +2 -2
- package/lib/metadata.d.ts.map +1 -1
- package/lib/metadata.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/package.json +16 -16
- package/src/containerRuntime.ts +26 -23
- package/src/metadata.ts +2 -2
- package/src/packageVersion.ts +1 -1
package/lib/metadata.d.ts
CHANGED
|
@@ -16,9 +16,9 @@ export interface IBlobMetadata {
|
|
|
16
16
|
localId?: string;
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
19
|
+
* ContainerRuntime needs to know if this is a replayed savedOp as those need to be skipped in stashed ops scenarios.
|
|
20
20
|
*/
|
|
21
|
-
export interface
|
|
21
|
+
export interface ISavedOpMetadata {
|
|
22
22
|
savedOp?: boolean;
|
|
23
23
|
}
|
|
24
24
|
//# sourceMappingURL=metadata.d.ts.map
|
package/lib/metadata.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB"}
|
package/lib/metadata.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Batching makes assumptions about what might be on the metadata. This interface codifies those assumptions, but does not validate them.\n */\nexport interface IBatchMetadata {\n\tbatch?: boolean;\n}\n\n/**\n * Blob handling makes assumptions about what might be on the metadata. This interface codifies those assumptions, but does not validate them.\n */\nexport interface IBlobMetadata {\n\tblobId?: string;\n\tlocalId?: string;\n}\n\n/**\n *
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Batching makes assumptions about what might be on the metadata. This interface codifies those assumptions, but does not validate them.\n */\nexport interface IBatchMetadata {\n\tbatch?: boolean;\n}\n\n/**\n * Blob handling makes assumptions about what might be on the metadata. This interface codifies those assumptions, but does not validate them.\n */\nexport interface IBlobMetadata {\n\tblobId?: string;\n\tlocalId?: string;\n}\n\n/**\n * ContainerRuntime needs to know if this is a replayed savedOp as those need to be skipped in stashed ops scenarios.\n */\nexport interface ISavedOpMetadata {\n\tsavedOp?: boolean;\n}\n"]}
|
package/lib/packageVersion.d.ts
CHANGED
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
* THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY
|
|
6
6
|
*/
|
|
7
7
|
export declare const pkgName = "@fluidframework/container-runtime";
|
|
8
|
-
export declare const pkgVersion = "2.0.0-rc.2.0.
|
|
8
|
+
export declare const pkgVersion = "2.0.0-rc.2.0.7";
|
|
9
9
|
//# sourceMappingURL=packageVersion.d.ts.map
|
package/lib/packageVersion.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,mCAAmC,CAAC;AAC3D,MAAM,CAAC,MAAM,UAAU,GAAG,gBAAgB,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n *\n * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY\n */\n\nexport const pkgName = \"@fluidframework/container-runtime\";\nexport const pkgVersion = \"2.0.0-rc.2.0.
|
|
1
|
+
{"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,mCAAmC,CAAC;AAC3D,MAAM,CAAC,MAAM,UAAU,GAAG,gBAAgB,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n *\n * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY\n */\n\nexport const pkgName = \"@fluidframework/container-runtime\";\nexport const pkgVersion = \"2.0.0-rc.2.0.7\";\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluidframework/container-runtime",
|
|
3
|
-
"version": "2.0.0-rc.2.0.
|
|
3
|
+
"version": "2.0.0-rc.2.0.7",
|
|
4
4
|
"description": "Fluid container runtime",
|
|
5
5
|
"homepage": "https://fluidframework.com",
|
|
6
6
|
"repository": {
|
|
@@ -137,19 +137,19 @@
|
|
|
137
137
|
"temp-directory": "nyc/.nyc_output"
|
|
138
138
|
},
|
|
139
139
|
"dependencies": {
|
|
140
|
-
"@fluid-internal/client-utils": ">=2.0.0-rc.2.0.
|
|
141
|
-
"@fluidframework/container-definitions": ">=2.0.0-rc.2.0.
|
|
142
|
-
"@fluidframework/container-runtime-definitions": ">=2.0.0-rc.2.0.
|
|
143
|
-
"@fluidframework/core-interfaces": ">=2.0.0-rc.2.0.
|
|
144
|
-
"@fluidframework/core-utils": ">=2.0.0-rc.2.0.
|
|
145
|
-
"@fluidframework/datastore": ">=2.0.0-rc.2.0.
|
|
146
|
-
"@fluidframework/driver-definitions": ">=2.0.0-rc.2.0.
|
|
147
|
-
"@fluidframework/driver-utils": ">=2.0.0-rc.2.0.
|
|
148
|
-
"@fluidframework/id-compressor": ">=2.0.0-rc.2.0.
|
|
140
|
+
"@fluid-internal/client-utils": ">=2.0.0-rc.2.0.7 <2.0.0-rc.2.1.0",
|
|
141
|
+
"@fluidframework/container-definitions": ">=2.0.0-rc.2.0.7 <2.0.0-rc.2.1.0",
|
|
142
|
+
"@fluidframework/container-runtime-definitions": ">=2.0.0-rc.2.0.7 <2.0.0-rc.2.1.0",
|
|
143
|
+
"@fluidframework/core-interfaces": ">=2.0.0-rc.2.0.7 <2.0.0-rc.2.1.0",
|
|
144
|
+
"@fluidframework/core-utils": ">=2.0.0-rc.2.0.7 <2.0.0-rc.2.1.0",
|
|
145
|
+
"@fluidframework/datastore": ">=2.0.0-rc.2.0.7 <2.0.0-rc.2.1.0",
|
|
146
|
+
"@fluidframework/driver-definitions": ">=2.0.0-rc.2.0.7 <2.0.0-rc.2.1.0",
|
|
147
|
+
"@fluidframework/driver-utils": ">=2.0.0-rc.2.0.7 <2.0.0-rc.2.1.0",
|
|
148
|
+
"@fluidframework/id-compressor": ">=2.0.0-rc.2.0.7 <2.0.0-rc.2.1.0",
|
|
149
149
|
"@fluidframework/protocol-definitions": "^3.2.0",
|
|
150
|
-
"@fluidframework/runtime-definitions": ">=2.0.0-rc.2.0.
|
|
151
|
-
"@fluidframework/runtime-utils": ">=2.0.0-rc.2.0.
|
|
152
|
-
"@fluidframework/telemetry-utils": ">=2.0.0-rc.2.0.
|
|
150
|
+
"@fluidframework/runtime-definitions": ">=2.0.0-rc.2.0.7 <2.0.0-rc.2.1.0",
|
|
151
|
+
"@fluidframework/runtime-utils": ">=2.0.0-rc.2.0.7 <2.0.0-rc.2.1.0",
|
|
152
|
+
"@fluidframework/telemetry-utils": ">=2.0.0-rc.2.0.7 <2.0.0-rc.2.1.0",
|
|
153
153
|
"@tylerbu/sorted-btree-es6": "^1.8.0",
|
|
154
154
|
"double-ended-queue": "^2.1.0-0",
|
|
155
155
|
"lz4js": "^0.2.0",
|
|
@@ -157,15 +157,15 @@
|
|
|
157
157
|
},
|
|
158
158
|
"devDependencies": {
|
|
159
159
|
"@arethetypeswrong/cli": "^0.13.3",
|
|
160
|
-
"@fluid-internal/mocha-test-setup": ">=2.0.0-rc.2.0.
|
|
161
|
-
"@fluid-private/stochastic-test-utils": ">=2.0.0-rc.2.0.
|
|
160
|
+
"@fluid-internal/mocha-test-setup": ">=2.0.0-rc.2.0.7 <2.0.0-rc.2.1.0",
|
|
161
|
+
"@fluid-private/stochastic-test-utils": ">=2.0.0-rc.2.0.7 <2.0.0-rc.2.1.0",
|
|
162
162
|
"@fluid-tools/benchmark": "^0.48.0",
|
|
163
163
|
"@fluid-tools/build-cli": "^0.34.0",
|
|
164
164
|
"@fluidframework/build-common": "^2.0.3",
|
|
165
165
|
"@fluidframework/build-tools": "^0.34.0",
|
|
166
166
|
"@fluidframework/container-runtime-previous": "npm:@fluidframework/container-runtime@2.0.0-internal.8.0.0",
|
|
167
167
|
"@fluidframework/eslint-config-fluid": "^4.0.0",
|
|
168
|
-
"@fluidframework/test-runtime-utils": ">=2.0.0-rc.2.0.
|
|
168
|
+
"@fluidframework/test-runtime-utils": ">=2.0.0-rc.2.0.7 <2.0.0-rc.2.1.0",
|
|
169
169
|
"@microsoft/api-extractor": "^7.42.3",
|
|
170
170
|
"@types/double-ended-queue": "^2.1.0",
|
|
171
171
|
"@types/mocha": "^9.1.1",
|
package/src/containerRuntime.ts
CHANGED
|
@@ -186,7 +186,7 @@ import {
|
|
|
186
186
|
getLongStack,
|
|
187
187
|
} from "./opLifecycle/index.js";
|
|
188
188
|
import { DeltaManagerSummarizerProxy } from "./deltaManagerSummarizerProxy.js";
|
|
189
|
-
import { IBatchMetadata,
|
|
189
|
+
import { IBatchMetadata, ISavedOpMetadata } from "./metadata.js";
|
|
190
190
|
import {
|
|
191
191
|
ContainerMessageType,
|
|
192
192
|
type InboundSequencedContainerRuntimeMessage,
|
|
@@ -652,11 +652,13 @@ type MessageWithContext =
|
|
|
652
652
|
message: InboundSequencedContainerRuntimeMessage;
|
|
653
653
|
modernRuntimeMessage: true;
|
|
654
654
|
local: boolean;
|
|
655
|
+
savedOp?: boolean;
|
|
655
656
|
}
|
|
656
657
|
| {
|
|
657
658
|
message: InboundSequencedContainerRuntimeMessageOrSystemMessage;
|
|
658
659
|
modernRuntimeMessage: false;
|
|
659
660
|
local: boolean;
|
|
661
|
+
savedOp?: boolean;
|
|
660
662
|
};
|
|
661
663
|
|
|
662
664
|
const summarizerRequestUrl = "_summarizer";
|
|
@@ -1017,7 +1019,7 @@ export class ContainerRuntime
|
|
|
1017
1019
|
// Id Compressor serializes final state (see getPendingLocalState()). As result, it needs to skip all ops that preceeded that state
|
|
1018
1020
|
// (such ops will be marked by Loader layer as savedOp === true)
|
|
1019
1021
|
// That said, in "delayed" mode it's possible that Id Compressor was never initialized before getPendingLocalState() is called.
|
|
1020
|
-
// In such case we have to process all ops, including those marked with
|
|
1022
|
+
// In such case we have to process all ops, including those marked with savedOp === true.
|
|
1021
1023
|
private readonly skipSavedCompressorOps: boolean;
|
|
1022
1024
|
|
|
1023
1025
|
/**
|
|
@@ -2369,21 +2371,28 @@ export class ContainerRuntime
|
|
|
2369
2371
|
// We do not need to make a deep copy. Each layer will just replace message.contents itself,
|
|
2370
2372
|
// but will not modify the contents object (likely it will replace it on the message).
|
|
2371
2373
|
const messageCopy = { ...messageArg };
|
|
2374
|
+
const savedOp = (messageCopy.metadata as ISavedOpMetadata)?.savedOp;
|
|
2372
2375
|
for (const message of this.remoteMessageProcessor.process(messageCopy)) {
|
|
2373
|
-
|
|
2374
|
-
|
|
2375
|
-
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
|
|
2383
|
-
|
|
2384
|
-
|
|
2385
|
-
|
|
2386
|
-
|
|
2376
|
+
const msg: MessageWithContext = modernRuntimeMessage
|
|
2377
|
+
? {
|
|
2378
|
+
// Cast it since we expect it to be this based on modernRuntimeMessage computation above.
|
|
2379
|
+
// There is nothing really ensuring that anytime original message.type is Operation that
|
|
2380
|
+
// the result messages will be so. In the end modern bool being true only directs to
|
|
2381
|
+
// throw error if ultimately unrecognized without compat details saying otherwise.
|
|
2382
|
+
message: message as InboundSequencedContainerRuntimeMessage,
|
|
2383
|
+
local,
|
|
2384
|
+
modernRuntimeMessage,
|
|
2385
|
+
}
|
|
2386
|
+
: // Unrecognized message will be ignored.
|
|
2387
|
+
{
|
|
2388
|
+
message,
|
|
2389
|
+
local,
|
|
2390
|
+
modernRuntimeMessage,
|
|
2391
|
+
};
|
|
2392
|
+
msg.savedOp = savedOp;
|
|
2393
|
+
|
|
2394
|
+
// ensure that we observe any re-entrancy, and if needed, rebase ops
|
|
2395
|
+
this.ensureNoDataModelChanges(() => this.processCore(msg));
|
|
2387
2396
|
}
|
|
2388
2397
|
}
|
|
2389
2398
|
|
|
@@ -2466,13 +2475,7 @@ export class ContainerRuntime
|
|
|
2466
2475
|
// stashed ops flow. The compressor is stashed with these ops already processed.
|
|
2467
2476
|
// That said, in idCompressorMode === "delayed", we might not serialize ID compressor, and
|
|
2468
2477
|
// thus we need to process all the ops.
|
|
2469
|
-
if (
|
|
2470
|
-
!(
|
|
2471
|
-
this.skipSavedCompressorOps &&
|
|
2472
|
-
(messageWithContext.message.metadata as IIdAllocationMetadata)?.savedOp ===
|
|
2473
|
-
true
|
|
2474
|
-
)
|
|
2475
|
-
) {
|
|
2478
|
+
if (!(this.skipSavedCompressorOps && messageWithContext.savedOp === true)) {
|
|
2476
2479
|
const range = messageWithContext.message.contents;
|
|
2477
2480
|
if (this._idCompressor === undefined) {
|
|
2478
2481
|
this.pendingIdCompressorOps.push(range);
|
package/src/metadata.ts
CHANGED
|
@@ -19,8 +19,8 @@ export interface IBlobMetadata {
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
|
-
*
|
|
22
|
+
* ContainerRuntime needs to know if this is a replayed savedOp as those need to be skipped in stashed ops scenarios.
|
|
23
23
|
*/
|
|
24
|
-
export interface
|
|
24
|
+
export interface ISavedOpMetadata {
|
|
25
25
|
savedOp?: boolean;
|
|
26
26
|
}
|
package/src/packageVersion.ts
CHANGED