@fluidframework/container-loader 2.117.0 → 3.0.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 +76 -2
- package/README.md +53 -50
- package/{api-extractor.json → api-extractor/api-extractor-model.json} +1 -1
- package/api-report/container-loader.legacy.alpha.api.md +4 -3
- package/dist/attachment.d.ts.map +1 -1
- package/dist/audience.js +3 -2
- package/dist/audience.js.map +1 -1
- package/dist/captureReferencedContents.js +9 -9
- package/dist/captureReferencedContents.js.map +1 -1
- package/dist/catchUpMonitor.js +11 -8
- package/dist/catchUpMonitor.js.map +1 -1
- package/dist/connectionManager.d.ts.map +1 -1
- package/dist/connectionManager.js +86 -51
- package/dist/connectionManager.js.map +1 -1
- package/dist/connectionStateHandler.js +40 -14
- package/dist/connectionStateHandler.js.map +1 -1
- package/dist/container.d.ts +1 -1
- package/dist/container.d.ts.map +1 -1
- package/dist/container.js +193 -143
- package/dist/container.js.map +1 -1
- package/dist/containerContext.js +48 -11
- package/dist/containerContext.js.map +1 -1
- package/dist/containerStorageAdapter.js +25 -17
- package/dist/containerStorageAdapter.js.map +1 -1
- package/dist/contracts.d.ts.map +1 -1
- package/dist/createAndLoadContainerUtils.d.ts +34 -13
- package/dist/createAndLoadContainerUtils.d.ts.map +1 -1
- package/dist/createAndLoadContainerUtils.js +97 -37
- package/dist/createAndLoadContainerUtils.js.map +1 -1
- package/dist/debugLogger.d.ts +7 -22
- package/dist/debugLogger.d.ts.map +1 -1
- package/dist/debugLogger.js +34 -34
- package/dist/debugLogger.js.map +1 -1
- package/dist/deltaManager.d.ts +16 -4
- package/dist/deltaManager.d.ts.map +1 -1
- package/dist/deltaManager.js +75 -49
- package/dist/deltaManager.js.map +1 -1
- package/dist/deltaManagerFactory.d.ts +23 -0
- package/dist/deltaManagerFactory.d.ts.map +1 -0
- package/dist/deltaManagerFactory.js +17 -0
- package/dist/deltaManagerFactory.js.map +1 -0
- package/dist/deltaQueue.js +14 -7
- package/dist/deltaQueue.js.map +1 -1
- package/dist/disposal.js +1 -2
- package/dist/disposal.js.map +1 -1
- package/dist/error.js +5 -4
- package/dist/error.js.map +1 -1
- package/dist/frozenServices.d.ts +2 -2
- package/dist/frozenServices.d.ts.map +1 -1
- package/dist/frozenServices.js +52 -34
- package/dist/frozenServices.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/loadContainerToSequenceNumber.d.ts +6 -5
- package/dist/loadContainerToSequenceNumber.d.ts.map +1 -1
- package/dist/loadContainerToSequenceNumber.js +5 -6
- package/dist/loadContainerToSequenceNumber.js.map +1 -1
- package/dist/loadPaused.js +1 -2
- package/dist/loadPaused.js.map +1 -1
- package/dist/loader.js +5 -1
- package/dist/loader.js.map +1 -1
- package/dist/loaderLayerCompatState.d.ts +25 -1
- package/dist/loaderLayerCompatState.d.ts.map +1 -1
- package/dist/loaderLayerCompatState.js +79 -11
- package/dist/loaderLayerCompatState.js.map +1 -1
- package/dist/location-redirection-utilities/resolveWithLocationRedirection.js +2 -3
- package/dist/location-redirection-utilities/resolveWithLocationRedirection.js.map +1 -1
- package/dist/memoryBlobStorage.js +2 -3
- package/dist/memoryBlobStorage.js.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.d.ts.map +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/pendingLocalStateStore.d.ts +4 -3
- package/dist/pendingLocalStateStore.d.ts.map +1 -1
- package/dist/pendingLocalStateStore.js +26 -37
- package/dist/pendingLocalStateStore.js.map +1 -1
- package/dist/pointInTimeServices.js +4 -2
- package/dist/pointInTimeServices.js.map +1 -1
- package/dist/protocol/protocol.js +3 -0
- package/dist/protocol/protocol.js.map +1 -1
- package/dist/protocol/quorum.js +26 -5
- package/dist/protocol/quorum.js.map +1 -1
- package/dist/protocol.js +5 -3
- package/dist/protocol.js.map +1 -1
- package/dist/protocolTreeDocumentStorageService.js +10 -0
- package/dist/protocolTreeDocumentStorageService.js.map +1 -1
- package/dist/quorum.js +1 -2
- package/dist/quorum.js.map +1 -1
- package/dist/retriableDocumentStorageService.d.ts.map +1 -1
- package/dist/retriableDocumentStorageService.js +5 -1
- package/dist/retriableDocumentStorageService.js.map +1 -1
- package/dist/serializedStateManager.d.ts +6 -0
- package/dist/serializedStateManager.d.ts.map +1 -1
- package/dist/serializedStateManager.js +19 -24
- package/dist/serializedStateManager.js.map +1 -1
- package/dist/snapshotRefresher.js +31 -36
- package/dist/snapshotRefresher.js.map +1 -1
- package/dist/utils.d.ts +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +13 -13
- package/dist/utils.js.map +1 -1
- package/lib/attachment.d.ts.map +1 -1
- package/lib/audience.js +3 -2
- 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.map +1 -1
- package/lib/connectionManager.js +86 -51
- package/lib/connectionManager.js.map +1 -1
- package/lib/connectionStateHandler.js +37 -11
- package/lib/connectionStateHandler.js.map +1 -1
- package/lib/container.d.ts +1 -1
- package/lib/container.d.ts.map +1 -1
- package/lib/container.js +191 -141
- package/lib/container.js.map +1 -1
- package/lib/containerContext.js +48 -11
- package/lib/containerContext.js.map +1 -1
- package/lib/containerStorageAdapter.js +22 -14
- package/lib/containerStorageAdapter.js.map +1 -1
- package/lib/contracts.d.ts.map +1 -1
- package/lib/createAndLoadContainerUtils.d.ts +34 -13
- package/lib/createAndLoadContainerUtils.d.ts.map +1 -1
- package/lib/createAndLoadContainerUtils.js +93 -32
- package/lib/createAndLoadContainerUtils.js.map +1 -1
- package/lib/debugLogger.d.ts +7 -22
- package/lib/debugLogger.d.ts.map +1 -1
- package/lib/debugLogger.js +34 -33
- package/lib/debugLogger.js.map +1 -1
- package/lib/deltaManager.d.ts +16 -4
- package/lib/deltaManager.d.ts.map +1 -1
- package/lib/deltaManager.js +75 -49
- package/lib/deltaManager.js.map +1 -1
- package/lib/deltaManagerFactory.d.ts +23 -0
- package/lib/deltaManagerFactory.d.ts.map +1 -0
- package/lib/deltaManagerFactory.js +14 -0
- package/lib/deltaManagerFactory.js.map +1 -0
- 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/frozenServices.d.ts +2 -2
- package/lib/frozenServices.d.ts.map +1 -1
- package/lib/frozenServices.js +48 -30
- package/lib/frozenServices.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/legacy.d.ts +1 -1
- package/lib/legacyAlpha.d.ts +1 -1
- package/lib/loadContainerToSequenceNumber.d.ts +6 -5
- package/lib/loadContainerToSequenceNumber.d.ts.map +1 -1
- package/lib/loadContainerToSequenceNumber.js +4 -4
- package/lib/loadContainerToSequenceNumber.js.map +1 -1
- package/lib/loader.js +6 -2
- package/lib/loader.js.map +1 -1
- package/lib/loaderLayerCompatState.d.ts +25 -1
- package/lib/loaderLayerCompatState.d.ts.map +1 -1
- package/lib/loaderLayerCompatState.js +76 -9
- package/lib/loaderLayerCompatState.js.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.d.ts.map +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/pendingLocalStateStore.d.ts +4 -3
- package/lib/pendingLocalStateStore.d.ts.map +1 -1
- package/lib/pendingLocalStateStore.js +26 -37
- package/lib/pendingLocalStateStore.js.map +1 -1
- package/lib/pointInTimeServices.js +2 -0
- package/lib/pointInTimeServices.js.map +1 -1
- package/lib/protocol/protocol.js +3 -0
- package/lib/protocol/protocol.js.map +1 -1
- package/lib/protocol/quorum.js +26 -5
- package/lib/protocol/quorum.js.map +1 -1
- package/lib/protocol.js +2 -0
- package/lib/protocol.js.map +1 -1
- package/lib/protocolTreeDocumentStorageService.js +10 -0
- package/lib/protocolTreeDocumentStorageService.js.map +1 -1
- package/lib/public.d.ts +1 -1
- package/lib/retriableDocumentStorageService.d.ts.map +1 -1
- package/lib/retriableDocumentStorageService.js +5 -1
- package/lib/retriableDocumentStorageService.js.map +1 -1
- package/lib/serializedStateManager.d.ts +6 -0
- package/lib/serializedStateManager.d.ts.map +1 -1
- package/lib/serializedStateManager.js +15 -20
- package/lib/serializedStateManager.js.map +1 -1
- package/lib/snapshotRefresher.js +31 -36
- package/lib/snapshotRefresher.js.map +1 -1
- package/lib/utils.d.ts +1 -1
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +3 -3
- package/lib/utils.js.map +1 -1
- package/package.json +44 -106
- package/src/container.ts +35 -22
- package/src/createAndLoadContainerUtils.ts +131 -46
- package/src/debugLogger.ts +39 -40
- package/src/deltaManager.ts +18 -5
- package/src/deltaManagerFactory.ts +53 -0
- package/src/frozenServices.ts +6 -7
- package/src/index.ts +1 -0
- package/src/loadContainerToSequenceNumber.ts +7 -6
- package/src/loader.ts +2 -2
- package/src/loaderLayerCompatState.ts +85 -20
- package/src/packageVersion.ts +1 -1
- package/src/pendingLocalStateStore.ts +7 -3
- package/src/pointInTime/DEV.md +47 -4
- package/src/serializedStateManager.ts +6 -0
- package/src/utils.ts +3 -3
- package/tsconfig.json +1 -1
- package/internal.d.ts +0 -11
- package/legacy/alpha.d.ts +0 -11
- package/legacy.d.ts +0 -11
- /package/api-extractor/{api-extractor.current.json → api-extractor-report.current.json} +0 -0
- /package/api-extractor/{api-extractor.legacy.json → api-extractor-report.legacy.json} +0 -0
package/dist/debugLogger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debugLogger.js","sourceRoot":"","sources":["../src/debugLogger.ts"],"names":[],"mappings":";AAAA;;;GAGG
|
|
1
|
+
{"version":3,"file":"debugLogger.js","sourceRoot":"","sources":["../src/debugLogger.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { performanceNow } from \"@fluid-internal/client-utils\";\nimport type {\n\tITelemetryBaseEvent,\n\tITelemetryBaseLogger,\n\tITelemetryBaseProperties,\n} from \"@fluidframework/core-interfaces\";\nimport {\n\tcreateMultiSinkLogger,\n\teventNamespaceSeparator,\n\tformatTick,\n\ttype ITelemetryLoggerPropertyBags,\n\ttype TelemetryLoggerExt,\n} from \"@fluidframework/telemetry-utils/internal\";\n// This import style is necessary to ensure the emitted JS code works in both CJS and ESM.\nimport debugPkg from \"debug\";\nimport type { IDebugger } from \"debug\";\n\nconst { debug: registerDebug } = debugPkg;\n\n/**\n * Implementation of debug logger\n */\nclass DebugLogger implements ITelemetryBaseLogger {\n\tpublic constructor(\n\t\tprivate readonly debug: IDebugger,\n\t\tprivate readonly debugErr: IDebugger,\n\t) {}\n\n\t/**\n\t * Send an event to debug loggers\n\t *\n\t * @param event - the event to send\n\t */\n\tpublic send(event: ITelemetryBaseEvent): void {\n\t\tconst newEvent: ITelemetryBaseProperties = { ...event };\n\t\tconst isError = newEvent.category === \"error\";\n\t\tlet logger = isError ? this.debugErr : this.debug;\n\n\t\t// Use debug's coloring schema for base of the event\n\t\tconst index = event.eventName.lastIndexOf(eventNamespaceSeparator);\n\t\tconst name = event.eventName.slice(Math.max(0, index + 1));\n\t\tif (index > 0) {\n\t\t\tlogger = logger.extend(event.eventName.slice(0, index));\n\t\t}\n\t\tnewEvent.eventName = undefined;\n\n\t\tlet tick = \"\";\n\t\ttick = `tick=${formatTick(performanceNow())}`;\n\n\t\t// Extract stack to put it last, but also to avoid escaping '\\n' in it by JSON.stringify below\n\t\tconst stack = newEvent.stack ?? \"\";\n\t\tnewEvent.stack = undefined;\n\n\t\t// Watch out for circular references - they can come from two sources\n\t\t// 1) error object - we do not control it and should remove it and retry\n\t\t// 2) properties supplied by telemetry caller - that's a bug that should be addressed!\n\t\tlet payload: string;\n\t\ttry {\n\t\t\tpayload = JSON.stringify(newEvent);\n\t\t} catch {\n\t\t\tnewEvent.error = undefined;\n\t\t\tpayload = JSON.stringify(newEvent);\n\t\t}\n\n\t\tif (payload === \"{}\") {\n\t\t\tpayload = \"\";\n\t\t}\n\n\t\t// Force errors out, to help with diagnostics\n\t\tif (isError) {\n\t\t\tlogger.enabled = true;\n\t\t}\n\n\t\t// Print multi-line.\n\t\t// eslint-disable-next-line @typescript-eslint/no-base-to-string\n\t\tlogger(`${name} ${payload} ${tick} ${stack}`);\n\t}\n}\n\n/**\n * Mix in debug logger with another logger.\n * Returned logger will output events to both newly created debug logger, as well as base logger\n * @param namespace - Telemetry event name prefix to add to all events\n * @param baseLogger - Base logger to output events (in addition to debug logger being created). Can be undefined.\n * @param properties - Base properties to add to all events\n */\nexport function mixinDebugLogger(\n\tnamespace: string,\n\tbaseLogger?: ITelemetryBaseLogger,\n\tproperties?: ITelemetryLoggerPropertyBags,\n): TelemetryLoggerExt {\n\t// Setup base logger upfront, such that host can disable it (if needed)\n\tconst debug = registerDebug(namespace);\n\n\t// Create one for errors that is always enabled\n\t// It can be silenced by replacing console.error if the debug namespace is not enabled.\n\tconst debugErr = registerDebug(namespace);\n\tdebugErr.log = function (...args: unknown[]): void {\n\t\tif (debug.enabled === true) {\n\t\t\t// if the namespace is enabled, just use the default logger\n\t\t\tregisterDebug.log(...args);\n\t\t} else {\n\t\t\t// other wise, use the console logger (which could be replaced and silenced)\n\t\t\tconsole.error(...args);\n\t\t}\n\t};\n\tdebugErr.enabled = true;\n\n\treturn createMultiSinkLogger({\n\t\tnamespace,\n\t\tloggers: [baseLogger, new DebugLogger(debug, debugErr)],\n\t\tproperties,\n\t\ttryInheritProperties: true,\n\t});\n}\n"]}
|
package/dist/deltaManager.d.ts
CHANGED
|
@@ -126,10 +126,22 @@ export declare class DeltaManager<TConnectionManager extends IConnectionManager>
|
|
|
126
126
|
private establishingConnection;
|
|
127
127
|
private connectHandler;
|
|
128
128
|
/**
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
*
|
|
132
|
-
*
|
|
129
|
+
* Initializes sequence number tracking, attaches the handler for inbound ops and signals, and
|
|
130
|
+
* resumes the inbound queues.
|
|
131
|
+
*
|
|
132
|
+
* @param minSequenceNumber - The document's current minimum sequence number. This is used for client-side
|
|
133
|
+
* protocol validation.
|
|
134
|
+
* @param snapshotSequenceNumber - The sequence number of the snapshot from which the document
|
|
135
|
+
* was loaded.
|
|
136
|
+
* @param handler - The op/signal handler to attach.
|
|
137
|
+
* @param prefetchType - Controls how missing ops are fetched before the returned promise resolves:
|
|
138
|
+
* `"none"` does not initiate a fetch; `"all"` waits for all available missing ops from storage;
|
|
139
|
+
* and `"cached"` waits only for cached ops before continuing the remaining storage fetch in the
|
|
140
|
+
* background.
|
|
141
|
+
* @param lastProcessedSequenceNumber - The latest sequence number already reflected in the
|
|
142
|
+
* loaded state. It defaults to `snapshotSequenceNumber`. Offline loads may provide a later
|
|
143
|
+
* sequence number so the DeltaManager skips downloading and processing ops already included in
|
|
144
|
+
* that state.
|
|
133
145
|
*/
|
|
134
146
|
attachOpHandler(minSequenceNumber: number, snapshotSequenceNumber: number, handler: IDeltaHandlerStrategy, prefetchType?: "cached" | "all" | "none", lastProcessedSequenceNumber?: number): Promise<void>;
|
|
135
147
|
connect(args: IConnectionArgs): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deltaManager.d.ts","sourceRoot":"","sources":["../src/deltaManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,KAAK,EACX,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,MAAM,gDAAgD,CAAC;AACxD,OAAO,KAAK,EACX,cAAc,EAEd,wBAAwB,EACxB,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"deltaManager.d.ts","sourceRoot":"","sources":["../src/deltaManager.ts"],"names":[],"mappings":"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"}
|
package/dist/deltaManager.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.DeltaManager = void 0;
|
|
8
|
+
const core_interfaces_1 = require("@fluidframework/core-interfaces");
|
|
8
9
|
const internal_1 = require("@fluidframework/core-interfaces/internal");
|
|
9
10
|
const internal_2 = require("@fluidframework/core-utils/internal");
|
|
10
11
|
const internal_3 = require("@fluidframework/driver-definitions/internal");
|
|
@@ -47,7 +48,7 @@ function logIfFalse(condition, logger, event) {
|
|
|
47
48
|
const newEvent = typeof event === "string"
|
|
48
49
|
? { eventName: event, category: "error" }
|
|
49
50
|
: { category: "error", ...event };
|
|
50
|
-
logger.send(newEvent);
|
|
51
|
+
logger.send(newEvent, core_interfaces_1.LogLevel.essential);
|
|
51
52
|
return false;
|
|
52
53
|
}
|
|
53
54
|
/**
|
|
@@ -55,6 +56,10 @@ function logIfFalse(condition, logger, event) {
|
|
|
55
56
|
* messages in order regardless of possible network conditions or timings causing out of order delivery.
|
|
56
57
|
*/
|
|
57
58
|
class DeltaManager extends internal_5.EventEmitterWithErrorHandling {
|
|
59
|
+
serviceProvider;
|
|
60
|
+
logger;
|
|
61
|
+
_active;
|
|
62
|
+
connectionManager;
|
|
58
63
|
get active() {
|
|
59
64
|
return this._active();
|
|
60
65
|
}
|
|
@@ -64,6 +69,59 @@ class DeltaManager extends internal_5.EventEmitterWithErrorHandling {
|
|
|
64
69
|
get IDeltaSender() {
|
|
65
70
|
return this;
|
|
66
71
|
}
|
|
72
|
+
pending = [];
|
|
73
|
+
fetchReason;
|
|
74
|
+
// A boolean used to assert that ops are not being sent while processing another op.
|
|
75
|
+
currentlyProcessingOps = false;
|
|
76
|
+
// The minimum sequence number and last sequence number received from the server
|
|
77
|
+
minSequenceNumber = 0;
|
|
78
|
+
// There are three numbers we track
|
|
79
|
+
// * lastQueuedSequenceNumber is the last queued sequence number. If there are gaps in seq numbers, then this number
|
|
80
|
+
// is not updated until we cover that gap, so it increases each time by 1.
|
|
81
|
+
// * lastObservedSeqNumber is an estimation of last known sequence number for container in storage. It's initially
|
|
82
|
+
// populated at web socket connection time (if storage provides that info) and is updated once ops shows up.
|
|
83
|
+
// It's never less than lastQueuedSequenceNumber
|
|
84
|
+
// * lastProcessedSequenceNumber - last processed sequence number
|
|
85
|
+
lastQueuedSequenceNumber = 0;
|
|
86
|
+
lastObservedSeqNumber = 0;
|
|
87
|
+
lastProcessedSequenceNumber = 0;
|
|
88
|
+
lastProcessedMessage;
|
|
89
|
+
/**
|
|
90
|
+
* Map of clientId to the last observed message from that client. This is used to validate
|
|
91
|
+
* that clientSequenceNumbers are always increasing for a given clientId.
|
|
92
|
+
*/
|
|
93
|
+
lastObservedMessageByClient = new Map();
|
|
94
|
+
/**
|
|
95
|
+
* Count the number of noops sent by the client which may not be acked
|
|
96
|
+
*/
|
|
97
|
+
noOpCount = 0;
|
|
98
|
+
/**
|
|
99
|
+
* Track clientSequenceNumber of the last op
|
|
100
|
+
*/
|
|
101
|
+
lastClientSequenceNumber = 0;
|
|
102
|
+
/**
|
|
103
|
+
* Track down the ops size.
|
|
104
|
+
*/
|
|
105
|
+
opsSize = 0;
|
|
106
|
+
prevEnqueueMessagesReason;
|
|
107
|
+
previouslyProcessedMessage;
|
|
108
|
+
// The sequence number we initially loaded from
|
|
109
|
+
// In case of reading from a snapshot or pending state, its value will be equal to
|
|
110
|
+
// the last message that got serialized.
|
|
111
|
+
initSequenceNumber = 0;
|
|
112
|
+
_inbound;
|
|
113
|
+
_inboundSignal;
|
|
114
|
+
_closed = false;
|
|
115
|
+
_disposed = false;
|
|
116
|
+
handler;
|
|
117
|
+
deltaStorage;
|
|
118
|
+
throttlingIdSet = new Set();
|
|
119
|
+
timeTillThrottling = 0;
|
|
120
|
+
closeAbortController = new AbortController();
|
|
121
|
+
deltaStorageDelayId = (0, uuid_1.v4)();
|
|
122
|
+
deltaStreamDelayId = (0, uuid_1.v4)();
|
|
123
|
+
messageBuffer = [];
|
|
124
|
+
_checkpointSequenceNumber;
|
|
67
125
|
get inbound() {
|
|
68
126
|
return this._inbound;
|
|
69
127
|
}
|
|
@@ -211,50 +269,6 @@ class DeltaManager extends internal_5.EventEmitterWithErrorHandling {
|
|
|
211
269
|
this.serviceProvider = serviceProvider;
|
|
212
270
|
this.logger = logger;
|
|
213
271
|
this._active = _active;
|
|
214
|
-
this.pending = [];
|
|
215
|
-
// A boolean used to assert that ops are not being sent while processing another op.
|
|
216
|
-
this.currentlyProcessingOps = false;
|
|
217
|
-
// The minimum sequence number and last sequence number received from the server
|
|
218
|
-
this.minSequenceNumber = 0;
|
|
219
|
-
// There are three numbers we track
|
|
220
|
-
// * lastQueuedSequenceNumber is the last queued sequence number. If there are gaps in seq numbers, then this number
|
|
221
|
-
// is not updated until we cover that gap, so it increases each time by 1.
|
|
222
|
-
// * lastObservedSeqNumber is an estimation of last known sequence number for container in storage. It's initially
|
|
223
|
-
// populated at web socket connection time (if storage provides that info) and is updated once ops shows up.
|
|
224
|
-
// It's never less than lastQueuedSequenceNumber
|
|
225
|
-
// * lastProcessedSequenceNumber - last processed sequence number
|
|
226
|
-
this.lastQueuedSequenceNumber = 0;
|
|
227
|
-
this.lastObservedSeqNumber = 0;
|
|
228
|
-
this.lastProcessedSequenceNumber = 0;
|
|
229
|
-
/**
|
|
230
|
-
* Map of clientId to the last observed message from that client. This is used to validate
|
|
231
|
-
* that clientSequenceNumbers are always increasing for a given clientId.
|
|
232
|
-
*/
|
|
233
|
-
this.lastObservedMessageByClient = new Map();
|
|
234
|
-
/**
|
|
235
|
-
* Count the number of noops sent by the client which may not be acked
|
|
236
|
-
*/
|
|
237
|
-
this.noOpCount = 0;
|
|
238
|
-
/**
|
|
239
|
-
* Track clientSequenceNumber of the last op
|
|
240
|
-
*/
|
|
241
|
-
this.lastClientSequenceNumber = 0;
|
|
242
|
-
/**
|
|
243
|
-
* Track down the ops size.
|
|
244
|
-
*/
|
|
245
|
-
this.opsSize = 0;
|
|
246
|
-
// The sequence number we initially loaded from
|
|
247
|
-
// In case of reading from a snapshot or pending state, its value will be equal to
|
|
248
|
-
// the last message that got serialized.
|
|
249
|
-
this.initSequenceNumber = 0;
|
|
250
|
-
this._closed = false;
|
|
251
|
-
this._disposed = false;
|
|
252
|
-
this.throttlingIdSet = new Set();
|
|
253
|
-
this.timeTillThrottling = 0;
|
|
254
|
-
this.closeAbortController = new AbortController();
|
|
255
|
-
this.deltaStorageDelayId = (0, uuid_1.v4)();
|
|
256
|
-
this.deltaStreamDelayId = (0, uuid_1.v4)();
|
|
257
|
-
this.messageBuffer = [];
|
|
258
272
|
const props = {
|
|
259
273
|
incomingOpHandler: (messages, reason) => {
|
|
260
274
|
try {
|
|
@@ -348,10 +362,22 @@ class DeltaManager extends internal_5.EventEmitterWithErrorHandling {
|
|
|
348
362
|
}
|
|
349
363
|
}
|
|
350
364
|
/**
|
|
351
|
-
*
|
|
352
|
-
*
|
|
353
|
-
*
|
|
354
|
-
*
|
|
365
|
+
* Initializes sequence number tracking, attaches the handler for inbound ops and signals, and
|
|
366
|
+
* resumes the inbound queues.
|
|
367
|
+
*
|
|
368
|
+
* @param minSequenceNumber - The document's current minimum sequence number. This is used for client-side
|
|
369
|
+
* protocol validation.
|
|
370
|
+
* @param snapshotSequenceNumber - The sequence number of the snapshot from which the document
|
|
371
|
+
* was loaded.
|
|
372
|
+
* @param handler - The op/signal handler to attach.
|
|
373
|
+
* @param prefetchType - Controls how missing ops are fetched before the returned promise resolves:
|
|
374
|
+
* `"none"` does not initiate a fetch; `"all"` waits for all available missing ops from storage;
|
|
375
|
+
* and `"cached"` waits only for cached ops before continuing the remaining storage fetch in the
|
|
376
|
+
* background.
|
|
377
|
+
* @param lastProcessedSequenceNumber - The latest sequence number already reflected in the
|
|
378
|
+
* loaded state. It defaults to `snapshotSequenceNumber`. Offline loads may provide a later
|
|
379
|
+
* sequence number so the DeltaManager skips downloading and processing ops already included in
|
|
380
|
+
* that state.
|
|
355
381
|
*/
|
|
356
382
|
async attachOpHandler(minSequenceNumber, snapshotSequenceNumber, handler, prefetchType = "none", lastProcessedSequenceNumber = snapshotSequenceNumber) {
|
|
357
383
|
this.initSequenceNumber = snapshotSequenceNumber;
|