@fluidframework/container-loader 2.62.0 → 2.63.0-359286

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.
Files changed (84) hide show
  1. package/api-report/container-loader.legacy.alpha.api.md +1 -9
  2. package/dist/connectionManager.d.ts.map +1 -1
  3. package/dist/connectionManager.js +64 -49
  4. package/dist/connectionManager.js.map +1 -1
  5. package/dist/container.d.ts.map +1 -1
  6. package/dist/container.js +3 -5
  7. package/dist/container.js.map +1 -1
  8. package/dist/containerContext.d.ts +10 -22
  9. package/dist/containerContext.d.ts.map +1 -1
  10. package/dist/containerContext.js +3 -1
  11. package/dist/containerContext.js.map +1 -1
  12. package/dist/contracts.d.ts +5 -1
  13. package/dist/contracts.d.ts.map +1 -1
  14. package/dist/contracts.js.map +1 -1
  15. package/dist/createAndLoadContainerUtils.d.ts +1 -33
  16. package/dist/createAndLoadContainerUtils.d.ts.map +1 -1
  17. package/dist/createAndLoadContainerUtils.js +1 -1
  18. package/dist/createAndLoadContainerUtils.js.map +1 -1
  19. package/dist/deltaManager.d.ts.map +1 -1
  20. package/dist/deltaManager.js +56 -55
  21. package/dist/deltaManager.js.map +1 -1
  22. package/dist/frozenServices.d.ts +2 -0
  23. package/dist/frozenServices.d.ts.map +1 -1
  24. package/dist/frozenServices.js +20 -12
  25. package/dist/frozenServices.js.map +1 -1
  26. package/dist/packageVersion.d.ts +1 -1
  27. package/dist/packageVersion.d.ts.map +1 -1
  28. package/dist/packageVersion.js +1 -1
  29. package/dist/packageVersion.js.map +1 -1
  30. package/dist/protocol.d.ts +51 -8
  31. package/dist/protocol.d.ts.map +1 -1
  32. package/dist/protocol.js +11 -12
  33. package/dist/protocol.js.map +1 -1
  34. package/dist/serializedStateManager.d.ts +4 -3
  35. package/dist/serializedStateManager.d.ts.map +1 -1
  36. package/dist/serializedStateManager.js +63 -23
  37. package/dist/serializedStateManager.js.map +1 -1
  38. package/lib/connectionManager.d.ts.map +1 -1
  39. package/lib/connectionManager.js +18 -3
  40. package/lib/connectionManager.js.map +1 -1
  41. package/lib/container.d.ts.map +1 -1
  42. package/lib/container.js +3 -5
  43. package/lib/container.js.map +1 -1
  44. package/lib/containerContext.d.ts +10 -22
  45. package/lib/containerContext.d.ts.map +1 -1
  46. package/lib/containerContext.js +3 -1
  47. package/lib/containerContext.js.map +1 -1
  48. package/lib/contracts.d.ts +5 -1
  49. package/lib/contracts.d.ts.map +1 -1
  50. package/lib/contracts.js.map +1 -1
  51. package/lib/createAndLoadContainerUtils.d.ts +1 -33
  52. package/lib/createAndLoadContainerUtils.d.ts.map +1 -1
  53. package/lib/createAndLoadContainerUtils.js +1 -1
  54. package/lib/createAndLoadContainerUtils.js.map +1 -1
  55. package/lib/deltaManager.d.ts.map +1 -1
  56. package/lib/deltaManager.js +2 -1
  57. package/lib/deltaManager.js.map +1 -1
  58. package/lib/frozenServices.d.ts +2 -0
  59. package/lib/frozenServices.d.ts.map +1 -1
  60. package/lib/frozenServices.js +20 -12
  61. package/lib/frozenServices.js.map +1 -1
  62. package/lib/packageVersion.d.ts +1 -1
  63. package/lib/packageVersion.d.ts.map +1 -1
  64. package/lib/packageVersion.js +1 -1
  65. package/lib/packageVersion.js.map +1 -1
  66. package/lib/protocol.d.ts +51 -8
  67. package/lib/protocol.d.ts.map +1 -1
  68. package/lib/protocol.js +5 -6
  69. package/lib/protocol.js.map +1 -1
  70. package/lib/serializedStateManager.d.ts +4 -3
  71. package/lib/serializedStateManager.d.ts.map +1 -1
  72. package/lib/serializedStateManager.js +63 -23
  73. package/lib/serializedStateManager.js.map +1 -1
  74. package/package.json +12 -12
  75. package/src/connectionManager.ts +31 -14
  76. package/src/container.ts +9 -13
  77. package/src/containerContext.ts +34 -34
  78. package/src/contracts.ts +4 -1
  79. package/src/createAndLoadContainerUtils.ts +3 -42
  80. package/src/deltaManager.ts +12 -5
  81. package/src/frozenServices.ts +24 -12
  82. package/src/packageVersion.ts +1 -1
  83. package/src/protocol.ts +67 -10
  84. package/src/serializedStateManager.ts +60 -29
@@ -5,10 +5,11 @@
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.DeltaManager = void 0;
8
- const internal_1 = require("@fluidframework/core-utils/internal");
9
- const internal_2 = require("@fluidframework/driver-definitions/internal");
10
- const internal_3 = require("@fluidframework/driver-utils/internal");
11
- const internal_4 = require("@fluidframework/telemetry-utils/internal");
8
+ const internal_1 = require("@fluidframework/core-interfaces/internal");
9
+ const internal_2 = require("@fluidframework/core-utils/internal");
10
+ const internal_3 = require("@fluidframework/driver-definitions/internal");
11
+ const internal_4 = require("@fluidframework/driver-utils/internal");
12
+ const internal_5 = require("@fluidframework/telemetry-utils/internal");
12
13
  const uuid_1 = require("uuid");
13
14
  const deltaQueue_js_1 = require("./deltaQueue.js");
14
15
  const error_js_1 = require("./error.js");
@@ -16,15 +17,15 @@ const error_js_1 = require("./error.js");
16
17
  * Determines if message was sent by client, not service
17
18
  */
18
19
  function isClientMessage(message) {
19
- if ((0, internal_3.isRuntimeMessage)(message)) {
20
+ if ((0, internal_4.isRuntimeMessage)(message)) {
20
21
  return true;
21
22
  }
22
23
  switch (message.type) {
23
- case internal_2.MessageType.Propose:
24
- case internal_2.MessageType.Reject:
25
- case internal_2.MessageType.NoOp:
26
- case internal_2.MessageType.Accept:
27
- case internal_2.MessageType.Summarize: {
24
+ case internal_3.MessageType.Propose:
25
+ case internal_3.MessageType.Reject:
26
+ case internal_3.MessageType.NoOp:
27
+ case internal_3.MessageType.Accept:
28
+ case internal_3.MessageType.Summarize: {
28
29
  return true;
29
30
  }
30
31
  default: {
@@ -53,7 +54,7 @@ function logIfFalse(condition, logger, event) {
53
54
  * Manages the flow of both inbound and outbound messages. This class ensures that shared objects receive delta
54
55
  * messages in order regardless of possible network conditions or timings causing out of order delivery.
55
56
  */
56
- class DeltaManager extends internal_4.EventEmitterWithErrorHandling {
57
+ class DeltaManager extends internal_5.EventEmitterWithErrorHandling {
57
58
  get active() {
58
59
  return this._active();
59
60
  }
@@ -90,7 +91,7 @@ class DeltaManager extends internal_4.EventEmitterWithErrorHandling {
90
91
  */
91
92
  get hasCheckpointSequenceNumber() {
92
93
  // Valid to be called only if we have active connection.
93
- (0, internal_1.assert)(this.connectionManager.connected, 0x0df /* "Missing active connection" */);
94
+ (0, internal_2.assert)(this.connectionManager.connected, 0x0df /* "Missing active connection" */);
94
95
  return this._checkpointSequenceNumber !== undefined;
95
96
  }
96
97
  // Forwarding connection manager properties / IDeltaManager implementation
@@ -129,12 +130,12 @@ class DeltaManager extends internal_4.EventEmitterWithErrorHandling {
129
130
  if (message === undefined) {
130
131
  return -1;
131
132
  }
132
- (0, internal_1.assert)(isClientMessage(message), 0x419 /* client sends non-client message */);
133
+ (0, internal_2.assert)(isClientMessage(message), 0x419 /* client sends non-client message */);
133
134
  if (contents !== undefined) {
134
135
  this.opsSize += contents.length;
135
136
  }
136
137
  this.messageBuffer.push(message);
137
- if (message.type === internal_2.MessageType.NoOp) {
138
+ if (message.type === internal_3.MessageType.NoOp) {
138
139
  this.noOpCount++;
139
140
  }
140
141
  this.emit("submitOp", message);
@@ -155,14 +156,14 @@ class DeltaManager extends internal_4.EventEmitterWithErrorHandling {
155
156
  // The prepareFlush event allows listeners to append metadata to the batch prior to submission.
156
157
  this.emit("prepareSend", batch);
157
158
  if (batch.length === 1) {
158
- (0, internal_1.assert)(batch[0].metadata?.batch === undefined, 0x3c9 /* no batch markup on single message */);
159
+ (0, internal_2.assert)(batch[0].metadata?.batch === undefined, 0x3c9 /* no batch markup on single message */);
159
160
  }
160
161
  else {
161
- (0, internal_1.assert)(batch[0].metadata?.batch === true, 0x3ca /* no start batch markup */);
162
- (0, internal_1.assert)(batch[batch.length - 1].metadata?.batch === false, 0x3cb /* no end batch markup */);
162
+ (0, internal_2.assert)(batch[0].metadata?.batch === true, 0x3ca /* no start batch markup */);
163
+ (0, internal_2.assert)(batch[batch.length - 1].metadata?.batch === false, 0x3cb /* no end batch markup */);
163
164
  }
164
165
  this.connectionManager.sendMessages(batch);
165
- (0, internal_1.assert)(this.messageBuffer.length === 0, 0x3cc /* reentrancy */);
166
+ (0, internal_2.assert)(this.messageBuffer.length === 0, 0x3cc /* reentrancy */);
166
167
  }
167
168
  get connectionProps() {
168
169
  return {
@@ -179,7 +180,7 @@ class DeltaManager extends internal_4.EventEmitterWithErrorHandling {
179
180
  * @param event - Event to log.
180
181
  */
181
182
  logConnectionIssue(event) {
182
- (0, internal_1.assert)(this.connectionManager.connected, 0x238 /* "called only in connected state" */);
183
+ (0, internal_2.assert)(this.connectionManager.connected, 0x238 /* "called only in connected state" */);
183
184
  const pendingSorted = this.pending.sort((a, b) => a.sequenceNumber - b.sequenceNumber);
184
185
  this.logger.sendTelemetryEvent({
185
186
  ...event,
@@ -205,7 +206,7 @@ class DeltaManager extends internal_4.EventEmitterWithErrorHandling {
205
206
  eventName: "DeltaManagerEventHandlerException",
206
207
  name: typeof name === "string" ? name : undefined,
207
208
  }, error);
208
- this.close((0, internal_4.normalizeError)(error));
209
+ this.close((0, internal_5.normalizeError)(error));
209
210
  });
210
211
  this.serviceProvider = serviceProvider;
211
212
  this.logger = logger;
@@ -256,7 +257,7 @@ class DeltaManager extends internal_4.EventEmitterWithErrorHandling {
256
257
  }
257
258
  catch (error) {
258
259
  this.logger.sendErrorEvent({ eventName: "EnqueueMessages_Exception" }, error);
259
- this.close((0, internal_4.normalizeError)(error));
260
+ this.close((0, internal_5.normalizeError)(error));
260
261
  }
261
262
  },
262
263
  signalHandler: (signals) => {
@@ -270,7 +271,7 @@ class DeltaManager extends internal_4.EventEmitterWithErrorHandling {
270
271
  connectHandler: (connection) => this.connectHandler(connection),
271
272
  pongHandler: (latency) => this.emit("pong", latency),
272
273
  readonlyChangeHandler: (readonly, readonlyConnectionReason) => {
273
- (0, internal_4.safeRaiseEvent)(this, this.logger, "readonly", readonly, readonlyConnectionReason);
274
+ (0, internal_5.safeRaiseEvent)(this, this.logger, "readonly", readonly, readonlyConnectionReason);
274
275
  },
275
276
  establishConnectionHandler: (reason) => this.establishingConnection(reason),
276
277
  cancelConnectionHandler: (reason) => this.cancelEstablishingConnection(reason),
@@ -280,7 +281,7 @@ class DeltaManager extends internal_4.EventEmitterWithErrorHandling {
280
281
  this.processInboundMessage(op);
281
282
  });
282
283
  this._inbound.on("error", (error) => {
283
- this.close(internal_4.DataProcessingError.wrapIfUnrecognized(error, "deltaManagerInboundErrorHandler", this.lastMessage));
284
+ this.close(internal_5.DataProcessingError.wrapIfUnrecognized(error, "deltaManagerInboundErrorHandler", this.lastMessage));
284
285
  });
285
286
  // Inbound signal queue
286
287
  this._inboundSignal = new deltaQueue_js_1.DeltaQueue((message) => {
@@ -289,11 +290,11 @@ class DeltaManager extends internal_4.EventEmitterWithErrorHandling {
289
290
  }
290
291
  this.handler.processSignal({
291
292
  ...message,
292
- content: JSON.parse(message.content),
293
+ content: (0, internal_1.JsonParse)(message.content),
293
294
  });
294
295
  });
295
296
  this._inboundSignal.on("error", (error) => {
296
- this.close((0, internal_4.normalizeError)(error));
297
+ this.close((0, internal_5.normalizeError)(error));
297
298
  });
298
299
  // Initially, all queues are created paused.
299
300
  // - outbound is flipped back and forth in setupNewSuccessfulConnection / disconnectFromDeltaStream
@@ -320,7 +321,7 @@ class DeltaManager extends internal_4.EventEmitterWithErrorHandling {
320
321
  // but it's safe to assume (until better design is put into place) that batches should not exist
321
322
  // across multiple connections. Right now we assume runtime will not submit any ops in disconnected
322
323
  // state. As requirements change, so should these checks.
323
- (0, internal_1.assert)(this.messageBuffer.length === 0, 0x0e9 /* "messageBuffer is not empty on new connection" */);
324
+ (0, internal_2.assert)(this.messageBuffer.length === 0, 0x0e9 /* "messageBuffer is not empty on new connection" */);
324
325
  this.opsSize = 0;
325
326
  this.noOpCount = 0;
326
327
  this.emit("connect", connection, checkpointSequenceNumber === undefined
@@ -354,16 +355,16 @@ class DeltaManager extends internal_4.EventEmitterWithErrorHandling {
354
355
  this.lastQueuedSequenceNumber = lastProcessedSequenceNumber;
355
356
  this.lastObservedSeqNumber = lastProcessedSequenceNumber;
356
357
  // We will use same check in other places to make sure all the seq number above are set properly.
357
- (0, internal_1.assert)(this.handler === undefined, 0x0e2 /* "DeltaManager already has attached op handler!" */);
358
+ (0, internal_2.assert)(this.handler === undefined, 0x0e2 /* "DeltaManager already has attached op handler!" */);
358
359
  this.handler = handler;
359
360
  // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
360
- (0, internal_1.assert)(!!this.handler, 0x0e3 /* "Newly set op handler is null/undefined!" */);
361
+ (0, internal_2.assert)(!!this.handler, 0x0e3 /* "Newly set op handler is null/undefined!" */);
361
362
  // There should be no pending fetch!
362
363
  // This API is called right after attachOpHandler by Container.load().
363
364
  // We might have connection already and it might have called fetchMissingDeltas() from
364
365
  // setupNewSuccessfulConnection. But it should do nothing, because there is no way to fetch ops before
365
366
  // we know snapshot sequence number that is set in attachOpHandler. So all such calls should be noop.
366
- (0, internal_1.assert)(this.fetchReason === undefined, 0x268 /* "There can't be pending fetch that early in boot sequence!" */);
367
+ (0, internal_2.assert)(this.fetchReason === undefined, 0x268 /* "There can't be pending fetch that early in boot sequence!" */);
367
368
  if (this._closed) {
368
369
  return;
369
370
  }
@@ -382,7 +383,7 @@ class DeltaManager extends internal_4.EventEmitterWithErrorHandling {
382
383
  }
383
384
  }
384
385
  // Ensure there is no need to call this.processPendingOps() at the end of boot sequence
385
- (0, internal_1.assert)(this.fetchReason !== undefined || this.pending.length === 0, 0x269 /* "pending ops are not dropped" */);
386
+ (0, internal_2.assert)(this.fetchReason !== undefined || this.pending.length === 0, 0x269 /* "pending ops are not dropped" */);
386
387
  }
387
388
  connect(args) {
388
389
  const fetchOpsFromStorage = args.fetchOpsFromStorage ?? true;
@@ -445,7 +446,7 @@ class DeltaManager extends internal_4.EventEmitterWithErrorHandling {
445
446
  const controller = new AbortController();
446
447
  let opsFromFetch = false;
447
448
  const opListener = (op) => {
448
- (0, internal_1.assert)(op.sequenceNumber === this.lastQueuedSequenceNumber, 0x23a /* "seq#'s" */);
449
+ (0, internal_2.assert)(op.sequenceNumber === this.lastQueuedSequenceNumber, 0x23a /* "seq#'s" */);
449
450
  // Ops that are coming from this request should not cancel itself.
450
451
  // This is useless for known ranges (to is defined) as it means request is over either way.
451
452
  // And it will cancel unbound request too early, not allowing us to learn where the end of the file is.
@@ -456,7 +457,7 @@ class DeltaManager extends internal_4.EventEmitterWithErrorHandling {
456
457
  };
457
458
  try {
458
459
  this._inbound.on("push", opListener);
459
- (0, internal_1.assert)(this.closeAbortController.signal.onabort === null, 0x1e8 /* "reentrancy" */);
460
+ (0, internal_2.assert)(this.closeAbortController.signal.onabort === null, 0x1e8 /* "reentrancy" */);
460
461
  this.closeAbortController.signal.addEventListener("abort", () => controller.abort(this.closeAbortController.signal.reason));
461
462
  const stream = this.deltaStorage.fetchMessages(from, // inclusive
462
463
  to, // exclusive
@@ -488,7 +489,7 @@ class DeltaManager extends internal_4.EventEmitterWithErrorHandling {
488
489
  // eslint-disable-next-line unicorn/no-null, unicorn/prefer-add-event-listener
489
490
  this.closeAbortController.signal.onabort = null;
490
491
  this._inbound.off("push", opListener);
491
- (0, internal_1.assert)(!opsFromFetch, 0x289 /* "logic error" */);
492
+ (0, internal_2.assert)(!opsFromFetch, 0x289 /* "logic error" */);
492
493
  }
493
494
  }
494
495
  /**
@@ -520,8 +521,8 @@ class DeltaManager extends internal_4.EventEmitterWithErrorHandling {
520
521
  if (this._disposed) {
521
522
  return;
522
523
  }
523
- if (error !== undefined && !(0, internal_4.isFluidError)(error)) {
524
- throw new internal_4.UsageError("Error must be a Fluid error");
524
+ if (error !== undefined && !(0, internal_5.isFluidError)(error)) {
525
+ throw new internal_5.UsageError("Error must be a Fluid error");
525
526
  }
526
527
  this._disposed = true;
527
528
  this._closed = true; // We consider "disposed" as a further state than "closed"
@@ -594,7 +595,7 @@ class DeltaManager extends internal_4.EventEmitterWithErrorHandling {
594
595
  // It's responsibility of
595
596
  // - attachOpHandler()
596
597
  // - fetchMissingDeltas() after it's done with querying storage
597
- (0, internal_1.assert)(this.pending.length === 0 || this.fetchReason !== undefined, 0x1e9 /* "Pending ops" */);
598
+ (0, internal_2.assert)(this.pending.length === 0 || this.fetchReason !== undefined, 0x1e9 /* "Pending ops" */);
598
599
  if (messages.length === 0) {
599
600
  return;
600
601
  }
@@ -660,7 +661,7 @@ class DeltaManager extends internal_4.EventEmitterWithErrorHandling {
660
661
  }
661
662
  this.updateLatestKnownOpSeqNumber(messages[messages.length - 1].sequenceNumber);
662
663
  const n = this.previouslyProcessedMessage?.sequenceNumber;
663
- (0, internal_1.assert)(n === undefined || n === this.lastQueuedSequenceNumber, 0x0ec /* "Unexpected value for previously processed message's sequence number" */);
664
+ (0, internal_2.assert)(n === undefined || n === this.lastQueuedSequenceNumber, 0x0ec /* "Unexpected value for previously processed message's sequence number" */);
664
665
  for (const message of messages) {
665
666
  // Check that the messages are arriving in the expected order
666
667
  if (message.sequenceNumber <= this.lastQueuedSequenceNumber) {
@@ -670,7 +671,7 @@ class DeltaManager extends internal_4.EventEmitterWithErrorHandling {
670
671
  const message1 = this.comparableMessagePayload(this.previouslyProcessedMessage);
671
672
  const message2 = this.comparableMessagePayload(message);
672
673
  if (message1 !== message2) {
673
- const error = new internal_3.NonRetryableError(
674
+ const error = new internal_4.NonRetryableError(
674
675
  // This looks like a data corruption but the culprit was that the file was overwritten
675
676
  // in storage. See PR #5882.
676
677
  // Likely to be an issue with Fluid Services. Content does not match previous client
@@ -679,7 +680,7 @@ class DeltaManager extends internal_4.EventEmitterWithErrorHandling {
679
680
  // instances such that the same sequence number is reused for two different ops.
680
681
  // pre-0.58 error message: twoMessagesWithSameSeqNumAndDifferentPayload
681
682
  "Found two messages with the same sequenceNumber but different payloads. Likely to be a " +
682
- "service issue", internal_2.DriverErrorTypes.fileOverwrittenInStorage, {
683
+ "service issue", internal_3.DriverErrorTypes.fileOverwrittenInStorage, {
683
684
  clientId: this.connectionManager.clientId,
684
685
  sequenceNumber: message.sequenceNumber,
685
686
  message1,
@@ -707,18 +708,18 @@ class DeltaManager extends internal_4.EventEmitterWithErrorHandling {
707
708
  }
708
709
  processInboundMessage(message) {
709
710
  const startTime = Date.now();
710
- (0, internal_1.assert)(!this.currentlyProcessingOps, 0x3af /* Already processing ops. */);
711
+ (0, internal_2.assert)(!this.currentlyProcessingOps, 0x3af /* Already processing ops. */);
711
712
  this.currentlyProcessingOps = true;
712
713
  this.lastProcessedMessage = message;
713
714
  const isString = typeof message.clientId === "string";
714
- (0, internal_1.assert)(message.clientId === null || isString, 0x41a /* undefined or string */);
715
+ (0, internal_2.assert)(message.clientId === null || isString, 0x41a /* undefined or string */);
715
716
  // All client messages are coming from some client, and should have clientId,
716
717
  // and non-client message should not have clientId. But, there are two exceptions:
717
718
  // 1. (Legacy) We can see message.type === "attach" or "chunkedOp" for legacy files before RTM
718
719
  // 2. Non-immediate noops (contents: null) can be sent by service without clientId
719
- if (!isString && isClientMessage(message) && message.type !== internal_2.MessageType.NoOp) {
720
- throw new internal_4.DataCorruptionError("Mismatch in clientId", {
721
- ...(0, internal_4.extractSafePropertiesFromMessage)(message),
720
+ if (!isString && isClientMessage(message) && message.type !== internal_3.MessageType.NoOp) {
721
+ throw new internal_5.DataCorruptionError("Mismatch in clientId", {
722
+ ...(0, internal_5.extractSafePropertiesFromMessage)(message),
722
723
  messageType: message.type,
723
724
  });
724
725
  }
@@ -726,7 +727,7 @@ class DeltaManager extends internal_4.EventEmitterWithErrorHandling {
726
727
  // If the count ends up negative, that means we have a real gap and throw error
727
728
  if (this.connectionManager.clientId !== undefined &&
728
729
  this.connectionManager.clientId === message.clientId) {
729
- if (message.type === internal_2.MessageType.NoOp) {
730
+ if (message.type === internal_3.MessageType.NoOp) {
730
731
  this.noOpCount--;
731
732
  }
732
733
  const clientSeqNumGap = message.clientSequenceNumber - this.lastClientSequenceNumber - 1;
@@ -746,7 +747,7 @@ class DeltaManager extends internal_4.EventEmitterWithErrorHandling {
746
747
  // something has changed out from under the file on the server, such that the service lost some ops
747
748
  // which this client already processed - the very ops that made this _next_ op to appear invalid.
748
749
  // In this case, only this client will fail (and lose this recent data), but others will be able to connect and continue.
749
- throw internal_4.DataProcessingError.create(
750
+ throw internal_5.DataProcessingError.create(
750
751
  // error message through v0.57: msnMovesBackwards
751
752
  // error message through v2.1: "Found a lower minimumSequenceNumber (msn) than previously recorded",
752
753
  "Invalid MinimumSequenceNumber from service - document may have been restored to previous state", "DeltaManager.processInboundMessage", message, {
@@ -758,19 +759,19 @@ class DeltaManager extends internal_4.EventEmitterWithErrorHandling {
758
759
  // System ops (when no clients are connected) are the only ops where equation is possible.
759
760
  const diff = message.sequenceNumber - message.minimumSequenceNumber;
760
761
  if (diff < 0 || (diff === 0 && message.clientId !== null)) {
761
- throw new internal_4.DataCorruptionError("MSN has to be lower than sequence #", (0, internal_4.extractSafePropertiesFromMessage)(message));
762
+ throw new internal_5.DataCorruptionError("MSN has to be lower than sequence #", (0, internal_5.extractSafePropertiesFromMessage)(message));
762
763
  }
763
764
  this.minSequenceNumber = message.minimumSequenceNumber;
764
765
  if (message.sequenceNumber !== this.lastProcessedSequenceNumber + 1) {
765
766
  // pre-0.58 error message: nonSequentialSequenceNumber
766
- throw new internal_4.DataCorruptionError("Found a non-Sequential sequenceNumber", {
767
- ...(0, internal_4.extractSafePropertiesFromMessage)(message),
767
+ throw new internal_5.DataCorruptionError("Found a non-Sequential sequenceNumber", {
768
+ ...(0, internal_5.extractSafePropertiesFromMessage)(message),
768
769
  clientId: this.connectionManager.clientId,
769
770
  });
770
771
  }
771
772
  this.lastProcessedSequenceNumber = message.sequenceNumber;
772
773
  // a bunch of code assumes that this is true
773
- (0, internal_1.assert)(this.lastProcessedSequenceNumber <= this.lastObservedSeqNumber, 0x267 /* "lastObservedSeqNumber should be updated first" */);
774
+ (0, internal_2.assert)(this.lastProcessedSequenceNumber <= this.lastObservedSeqNumber, 0x267 /* "lastObservedSeqNumber should be updated first" */);
774
775
  if (this.handler === undefined) {
775
776
  throw new Error("Attempted to process an inbound message without a handler attached");
776
777
  }
@@ -806,7 +807,7 @@ class DeltaManager extends internal_4.EventEmitterWithErrorHandling {
806
807
  }
807
808
  if (this.handler === undefined) {
808
809
  // We do not poses yet any information
809
- (0, internal_1.assert)(this.lastQueuedSequenceNumber === 0, 0x26b /* "initial state" */);
810
+ (0, internal_2.assert)(this.lastQueuedSequenceNumber === 0, 0x26b /* "initial state" */);
810
811
  return;
811
812
  }
812
813
  try {
@@ -818,8 +819,8 @@ class DeltaManager extends internal_4.EventEmitterWithErrorHandling {
818
819
  // Knowing about this mechanism, we could ask for op we already observed to increase validation.
819
820
  // This is especially useful when coming out of offline mode or loading from
820
821
  // very old cached (by client / driver) snapshot.
821
- (0, internal_1.assert)(n === this.lastQueuedSequenceNumber, 0x0f2 /* "previouslyProcessedMessage" */);
822
- (0, internal_1.assert)(from > 1, 0x0f3 /* "not positive" */);
822
+ (0, internal_2.assert)(n === this.lastQueuedSequenceNumber, 0x0f2 /* "previouslyProcessedMessage" */);
823
+ (0, internal_2.assert)(from > 1, 0x0f3 /* "not positive" */);
823
824
  from--;
824
825
  }
825
826
  const fetchReason = `${reason}_fetch`;
@@ -831,7 +832,7 @@ class DeltaManager extends internal_4.EventEmitterWithErrorHandling {
831
832
  }
832
833
  catch (error) {
833
834
  this.logger.sendErrorEvent({ eventName: "GetDeltas_Exception" }, error);
834
- this.close((0, internal_4.normalizeError)(error));
835
+ this.close((0, internal_5.normalizeError)(error));
835
836
  }
836
837
  finally {
837
838
  this.refreshDelayInfo(this.deltaStorageDelayId);
@@ -846,7 +847,7 @@ class DeltaManager extends internal_4.EventEmitterWithErrorHandling {
846
847
  if (this._closed) {
847
848
  return;
848
849
  }
849
- (0, internal_1.assert)(this.handler !== undefined, 0x26c /* "handler should be installed" */);
850
+ (0, internal_2.assert)(this.handler !== undefined, 0x26c /* "handler should be installed" */);
850
851
  const pendingSorted = this.pending.sort((a, b) => a.sequenceNumber - b.sequenceNumber);
851
852
  this.pending = [];
852
853
  // Given that we do not track where these ops came from any more, it's not very