@fluidframework/container-loader 2.0.0-dev-rc.5.0.0.268409 → 2.0.0-dev-rc.5.0.0.270987
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/api-report/container-loader.alpha.api.md +59 -4
- package/api-report/container-loader.beta.api.md +7 -3
- package/api-report/container-loader.public.api.md +7 -3
- package/biome.jsonc +4 -0
- package/dist/audience.js +2 -1
- package/dist/audience.js.map +1 -1
- package/dist/catchUpMonitor.js +11 -8
- package/dist/catchUpMonitor.js.map +1 -1
- package/dist/connectionManager.d.ts +2 -2
- package/dist/connectionManager.d.ts.map +1 -1
- package/dist/connectionManager.js +91 -63
- package/dist/connectionManager.js.map +1 -1
- package/dist/connectionStateHandler.js +35 -11
- package/dist/connectionStateHandler.js.map +1 -1
- package/dist/container.d.ts +3 -2
- package/dist/container.d.ts.map +1 -1
- package/dist/container.js +162 -126
- package/dist/container.js.map +1 -1
- package/dist/containerContext.d.ts +2 -2
- package/dist/containerContext.d.ts.map +1 -1
- package/dist/containerContext.js +34 -8
- package/dist/containerContext.js.map +1 -1
- package/dist/containerStorageAdapter.js +17 -9
- package/dist/containerStorageAdapter.js.map +1 -1
- package/dist/contracts.d.ts +2 -2
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js.map +1 -1
- package/dist/debugLogger.js +2 -0
- package/dist/debugLogger.js.map +1 -1
- package/dist/deltaManager.d.ts +2 -2
- package/dist/deltaManager.d.ts.map +1 -1
- package/dist/deltaManager.js +48 -35
- package/dist/deltaManager.js.map +1 -1
- package/dist/deltaQueue.js +14 -7
- package/dist/deltaQueue.js.map +1 -1
- package/dist/error.js +5 -4
- package/dist/error.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/legacy.d.ts +5 -0
- package/dist/loader.js +5 -1
- package/dist/loader.js.map +1 -1
- package/dist/noopHeuristic.d.ts +1 -1
- package/dist/noopHeuristic.d.ts.map +1 -1
- package/dist/noopHeuristic.js +3 -1
- package/dist/noopHeuristic.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/dist/protocol/index.d.ts +7 -0
- package/dist/protocol/index.d.ts.map +1 -0
- package/dist/protocol/index.js +12 -0
- package/dist/protocol/index.js.map +1 -0
- package/dist/protocol/protocol.d.ts +52 -0
- package/dist/protocol/protocol.d.ts.map +1 -0
- package/dist/protocol/protocol.js +115 -0
- package/dist/protocol/protocol.js.map +1 -0
- package/dist/protocol/quorum.d.ts +185 -0
- package/dist/protocol/quorum.d.ts.map +1 -0
- package/dist/protocol/quorum.js +440 -0
- package/dist/protocol/quorum.js.map +1 -0
- package/dist/protocol.d.ts +2 -3
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +4 -2
- package/dist/protocol.js.map +1 -1
- package/dist/protocolTreeDocumentStorageService.d.ts +7 -7
- package/dist/protocolTreeDocumentStorageService.d.ts.map +1 -1
- package/dist/protocolTreeDocumentStorageService.js +16 -7
- package/dist/protocolTreeDocumentStorageService.js.map +1 -1
- package/dist/retriableDocumentStorageService.js +4 -1
- package/dist/retriableDocumentStorageService.js.map +1 -1
- package/dist/serializedStateManager.d.ts +5 -3
- package/dist/serializedStateManager.d.ts.map +1 -1
- package/dist/serializedStateManager.js +26 -5
- package/dist/serializedStateManager.js.map +1 -1
- package/lib/audience.js +2 -1
- package/lib/audience.js.map +1 -1
- package/lib/catchUpMonitor.js +11 -8
- package/lib/catchUpMonitor.js.map +1 -1
- package/lib/connectionManager.d.ts +2 -2
- package/lib/connectionManager.d.ts.map +1 -1
- package/lib/connectionManager.js +91 -63
- package/lib/connectionManager.js.map +1 -1
- package/lib/connectionStateHandler.js +35 -11
- package/lib/connectionStateHandler.js.map +1 -1
- package/lib/container.d.ts +3 -2
- package/lib/container.d.ts.map +1 -1
- package/lib/container.js +162 -126
- package/lib/container.js.map +1 -1
- package/lib/containerContext.d.ts +2 -2
- package/lib/containerContext.d.ts.map +1 -1
- package/lib/containerContext.js +34 -8
- package/lib/containerContext.js.map +1 -1
- package/lib/containerStorageAdapter.js +17 -9
- package/lib/containerStorageAdapter.js.map +1 -1
- package/lib/contracts.d.ts +2 -2
- package/lib/contracts.d.ts.map +1 -1
- package/lib/contracts.js.map +1 -1
- package/lib/debugLogger.js +2 -0
- package/lib/debugLogger.js.map +1 -1
- package/lib/deltaManager.d.ts +2 -2
- package/lib/deltaManager.d.ts.map +1 -1
- package/lib/deltaManager.js +48 -35
- package/lib/deltaManager.js.map +1 -1
- package/lib/deltaQueue.js +14 -7
- package/lib/deltaQueue.js.map +1 -1
- package/lib/error.js +5 -4
- package/lib/error.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/legacy.d.ts +5 -0
- package/lib/loader.js +5 -1
- package/lib/loader.js.map +1 -1
- package/lib/noopHeuristic.d.ts +1 -1
- package/lib/noopHeuristic.d.ts.map +1 -1
- package/lib/noopHeuristic.js +3 -1
- package/lib/noopHeuristic.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/lib/protocol/index.d.ts +7 -0
- package/lib/protocol/index.d.ts.map +1 -0
- package/lib/protocol/index.js +7 -0
- package/lib/protocol/index.js.map +1 -0
- package/lib/protocol/protocol.d.ts +52 -0
- package/lib/protocol/protocol.d.ts.map +1 -0
- package/lib/protocol/protocol.js +111 -0
- package/lib/protocol/protocol.js.map +1 -0
- package/lib/protocol/quorum.d.ts +185 -0
- package/lib/protocol/quorum.d.ts.map +1 -0
- package/lib/protocol/quorum.js +431 -0
- package/lib/protocol/quorum.js.map +1 -0
- package/lib/protocol.d.ts +2 -3
- package/lib/protocol.d.ts.map +1 -1
- package/lib/protocol.js +3 -1
- package/lib/protocol.js.map +1 -1
- package/lib/protocolTreeDocumentStorageService.d.ts +7 -7
- package/lib/protocolTreeDocumentStorageService.d.ts.map +1 -1
- package/lib/protocolTreeDocumentStorageService.js +16 -7
- package/lib/protocolTreeDocumentStorageService.js.map +1 -1
- package/lib/retriableDocumentStorageService.js +4 -1
- package/lib/retriableDocumentStorageService.js.map +1 -1
- package/lib/serializedStateManager.d.ts +5 -3
- package/lib/serializedStateManager.d.ts.map +1 -1
- package/lib/serializedStateManager.js +26 -5
- package/lib/serializedStateManager.js.map +1 -1
- package/package.json +19 -14
- package/src/catchUpMonitor.ts +1 -1
- package/src/connectionManager.ts +3 -7
- package/src/container.ts +16 -9
- package/src/containerContext.ts +2 -5
- package/src/contracts.ts +3 -6
- package/src/deltaManager.ts +3 -5
- package/src/index.ts +7 -0
- package/src/noopHeuristic.ts +1 -1
- package/src/packageVersion.ts +1 -1
- package/src/protocol/README.md +10 -0
- package/src/protocol/index.ts +16 -0
- package/src/protocol/protocol.ts +185 -0
- package/src/protocol/quorum.ts +584 -0
- package/src/protocol.ts +4 -6
- package/src/protocolTreeDocumentStorageService.ts +16 -8
- package/src/serializedStateManager.ts +25 -4
- package/tsconfig.json +2 -0
|
@@ -10,7 +10,6 @@ import {
|
|
|
10
10
|
} from "@fluidframework/container-definitions/internal";
|
|
11
11
|
import type { IEventProvider, IEvent, ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
|
|
12
12
|
import { assert } from "@fluidframework/core-utils/internal";
|
|
13
|
-
import { ISequencedDocumentMessage } from "@fluidframework/driver-definitions";
|
|
14
13
|
import {
|
|
15
14
|
FetchSource,
|
|
16
15
|
IDocumentStorageService,
|
|
@@ -19,6 +18,7 @@ import {
|
|
|
19
18
|
type IDocumentAttributes,
|
|
20
19
|
ISnapshotTree,
|
|
21
20
|
IVersion,
|
|
21
|
+
ISequencedDocumentMessage,
|
|
22
22
|
} from "@fluidframework/driver-definitions/internal";
|
|
23
23
|
import { getSnapshotTree } from "@fluidframework/driver-utils/internal";
|
|
24
24
|
import {
|
|
@@ -131,6 +131,19 @@ export class SerializedStateManager {
|
|
|
131
131
|
private latestSnapshot: ISnapshotInfo | undefined;
|
|
132
132
|
private refreshSnapshotP: Promise<void> | undefined;
|
|
133
133
|
private readonly lastSavedOpSequenceNumber: number = 0;
|
|
134
|
+
private _supportGetSnapshotApi: boolean | undefined;
|
|
135
|
+
|
|
136
|
+
private set supportGetSnapshotApi(value: boolean | undefined) {
|
|
137
|
+
assert(
|
|
138
|
+
this._supportGetSnapshotApi === undefined,
|
|
139
|
+
"supportGetSnapshotApi should be declared just once",
|
|
140
|
+
);
|
|
141
|
+
this._supportGetSnapshotApi = value;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
private get supportGetSnapshotApi(): boolean | undefined {
|
|
145
|
+
return this._supportGetSnapshotApi;
|
|
146
|
+
}
|
|
134
147
|
|
|
135
148
|
/**
|
|
136
149
|
* @param pendingLocalState - The pendingLocalState being rehydrated, if any (undefined when loading directly from storage)
|
|
@@ -153,6 +166,9 @@ export class SerializedStateManager {
|
|
|
153
166
|
namespace: "serializedStateManager",
|
|
154
167
|
});
|
|
155
168
|
|
|
169
|
+
// special case handle. Obtaining the last saved op seq num to avoid
|
|
170
|
+
// refreshing the snapshot before we have processed it. It could cause
|
|
171
|
+
// a subsequent stashing to have a newer snapshot than allowed.
|
|
156
172
|
if (pendingLocalState && pendingLocalState.savedOps.length > 0) {
|
|
157
173
|
const savedOpsSize = pendingLocalState.savedOps.length;
|
|
158
174
|
this.lastSavedOpSequenceNumber =
|
|
@@ -196,11 +212,12 @@ export class SerializedStateManager {
|
|
|
196
212
|
specifiedVersion: string | undefined,
|
|
197
213
|
supportGetSnapshotApi: boolean,
|
|
198
214
|
) {
|
|
215
|
+
this.supportGetSnapshotApi = supportGetSnapshotApi;
|
|
199
216
|
if (this.pendingLocalState === undefined) {
|
|
200
217
|
const { baseSnapshot, version } = await getSnapshot(
|
|
201
218
|
this.mc,
|
|
202
219
|
this.storageAdapter,
|
|
203
|
-
supportGetSnapshotApi,
|
|
220
|
+
this.supportGetSnapshotApi,
|
|
204
221
|
specifiedVersion,
|
|
205
222
|
);
|
|
206
223
|
const baseSnapshotTree: ISnapshotTree | undefined = getSnapshotTree(baseSnapshot);
|
|
@@ -235,7 +252,7 @@ export class SerializedStateManager {
|
|
|
235
252
|
this.mc.config.getBoolean("Fluid.Container.enableOfflineSnapshotRefresh") === true
|
|
236
253
|
) {
|
|
237
254
|
// Don't block on the refresh snapshot call - it is for the next time we serialize, not booting this incarnation
|
|
238
|
-
this.refreshSnapshotP = this.refreshLatestSnapshot(supportGetSnapshotApi);
|
|
255
|
+
this.refreshSnapshotP = this.refreshLatestSnapshot(this.supportGetSnapshotApi);
|
|
239
256
|
this.refreshSnapshotP.catch((e) => {
|
|
240
257
|
this.mc.logger.sendErrorEvent({
|
|
241
258
|
eventName: "RefreshLatestSnapshotFailed",
|
|
@@ -353,7 +370,11 @@ export class SerializedStateManager {
|
|
|
353
370
|
* base snapshot when attaching.
|
|
354
371
|
* @param snapshot - snapshot and blobs collected while attaching (a form of the attach summary)
|
|
355
372
|
*/
|
|
356
|
-
public setInitialSnapshot(
|
|
373
|
+
public setInitialSnapshot(
|
|
374
|
+
snapshot: SnapshotWithBlobs | undefined,
|
|
375
|
+
supportGetSnapshotApi: boolean,
|
|
376
|
+
) {
|
|
377
|
+
this.supportGetSnapshotApi = supportGetSnapshotApi;
|
|
357
378
|
if (this.offlineLoadEnabled) {
|
|
358
379
|
assert(
|
|
359
380
|
this.snapshot === undefined,
|