@fluidframework/container-loader 2.0.0-internal.1.0.0.83139 → 2.0.0-internal.1.0.0.84253

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/lib/deltaQueue.js CHANGED
@@ -82,9 +82,9 @@ export class DeltaQueue extends TypedEventEmitter {
82
82
  if (this.anythingToProcess() && this.processingPromise === undefined) {
83
83
  // Use a resolved promise to start the processing on a separate stack.
84
84
  this.processingPromise = Promise.resolve().then(() => {
85
- assert(this.processingPromise !== undefined, "reentrancy?");
85
+ assert(this.processingPromise !== undefined, 0x37f /* reentrancy? */);
86
86
  const result = this.processDeltas();
87
- assert(this.processingPromise !== undefined, "reentrancy?");
87
+ assert(this.processingPromise !== undefined, 0x380 /* reentrancy? */);
88
88
  // WARNING: Do not move next line to .finally() clause!
89
89
  // It runs async and creates a race condition where incoming ensureProcessing() call observes
90
90
  // from previous run while previous run is over (but finally clause was not scheduled yet)
@@ -96,7 +96,7 @@ export class DeltaQueue extends TypedEventEmitter {
96
96
  this.emit("error", error);
97
97
  return { count: 0, duration: 0 };
98
98
  });
99
- assert(this.processingPromise !== undefined, "processDeltas() should run async");
99
+ assert(this.processingPromise !== undefined, 0x381 /* processDeltas() should run async */);
100
100
  }
101
101
  }
102
102
  anythingToProcess() {
@@ -1 +1 @@
1
- {"version":3,"file":"deltaQueue.js","sourceRoot":"","sources":["../src/deltaQueue.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 { IDeltaQueue, IDeltaQueueEvents } from \"@fluidframework/container-definitions\";\nimport { assert, performance, TypedEventEmitter } from \"@fluidframework/common-utils\";\nimport Deque from \"double-ended-queue\";\n\nexport interface IDeltaQueueWriter<T> {\n push(task: T): void;\n clear(): void;\n}\n\nexport class DeltaQueue<T>\n extends TypedEventEmitter<IDeltaQueueEvents<T>>\n implements IDeltaQueue<T>, IDeltaQueueWriter<T> {\n private isDisposed: boolean = false;\n private readonly q = new Deque<T>();\n\n /**\n * Tracks the number of pause requests for the queue\n * The DeltaQueue is create initially paused.\n */\n private pauseCount = 1;\n\n private error: any | undefined;\n\n /**\n * When processing is ongoing, holds a deferred that will resolve once processing stops.\n * Undefined when not processing.\n */\n private processingPromise: Promise<{ count: number; duration: number; }> | undefined;\n\n public get disposed(): boolean {\n return this.isDisposed;\n }\n\n /**\n * @returns True if the queue is paused, false if not.\n */\n public get paused(): boolean {\n return this.pauseCount !== 0;\n }\n\n public get length(): number {\n return this.q.length;\n }\n\n public get idle(): boolean {\n return this.processingPromise === undefined && this.q.length === 0;\n }\n\n public async waitTillProcessingDone() {\n return this.processingPromise ?? { count: 0, duration: 0 };\n }\n\n /**\n * @param worker - A callback to process a delta.\n * @param logger - For logging telemetry.\n */\n constructor(\n private readonly worker: (delta: T) => void,\n ) {\n super();\n }\n\n public dispose() {\n throw new Error(\"Not implemented.\");\n this.isDisposed = true;\n }\n\n public clear(): void {\n this.q.clear();\n }\n\n public peek(): T | undefined {\n return this.q.peekFront();\n }\n\n public toArray(): T[] {\n return this.q.toArray();\n }\n\n public push(task: T) {\n try {\n this.q.push(task);\n this.emit(\"push\", task);\n this.ensureProcessing();\n } catch (error) {\n this.emit(\"error\", error);\n }\n }\n\n public async pause(): Promise<void> {\n this.pauseCount++;\n // If called from within the processing loop, we are in the middle of processing an op. Return a promise\n // that will resolve when processing has actually stopped.\n await this.waitTillProcessingDone();\n }\n\n public resume(): void {\n assert(this.pauseCount > 0, 0x0f4 /* \"Nonzero pause-count on resume()\" */);\n this.pauseCount--;\n this.ensureProcessing();\n }\n\n /**\n * There are several actions that may need to kick off delta processing, so we want to guard against\n * accidental reentrancy. ensureProcessing can be called safely to start the processing loop if it is\n * not already started.\n */\n private ensureProcessing() {\n if (this.anythingToProcess() && this.processingPromise === undefined) {\n // Use a resolved promise to start the processing on a separate stack.\n this.processingPromise = Promise.resolve().then(() => {\n assert(this.processingPromise !== undefined, \"reentrancy?\");\n const result = this.processDeltas();\n assert(this.processingPromise !== undefined, \"reentrancy?\");\n // WARNING: Do not move next line to .finally() clause!\n // It runs async and creates a race condition where incoming ensureProcessing() call observes\n // from previous run while previous run is over (but finally clause was not scheduled yet)\n this.processingPromise = undefined;\n return result;\n }).catch((error) => {\n this.error = error;\n this.processingPromise = undefined;\n this.emit(\"error\", error);\n return { count: 0, duration: 0 };\n });\n assert(this.processingPromise !== undefined, \"processDeltas() should run async\");\n }\n }\n\n private anythingToProcess() {\n return this.q.length !== 0 && !this.paused && this.error === undefined;\n }\n\n /**\n * Executes the delta processing loop until a stop condition is reached.\n */\n private processDeltas() {\n const start = performance.now();\n let count = 0;\n\n // For grouping to work we must process all local messages immediately and in the single turn.\n // So loop over them until no messages to process, we have become paused, or hit an error.\n while (this.anythingToProcess()) {\n // Get the next message in the queue\n const next = this.q.shift();\n count++;\n // Process the message.\n // We know next is defined since we did a length check just prior to shifting.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.worker(next!);\n this.emit(\"op\", next);\n }\n\n const duration = performance.now() - start;\n if (this.q.length === 0) {\n this.emit(\"idle\", count, duration);\n }\n return { count, duration };\n }\n}\n"]}
1
+ {"version":3,"file":"deltaQueue.js","sourceRoot":"","sources":["../src/deltaQueue.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 { IDeltaQueue, IDeltaQueueEvents } from \"@fluidframework/container-definitions\";\nimport { assert, performance, TypedEventEmitter } from \"@fluidframework/common-utils\";\nimport Deque from \"double-ended-queue\";\n\nexport interface IDeltaQueueWriter<T> {\n push(task: T): void;\n clear(): void;\n}\n\nexport class DeltaQueue<T>\n extends TypedEventEmitter<IDeltaQueueEvents<T>>\n implements IDeltaQueue<T>, IDeltaQueueWriter<T> {\n private isDisposed: boolean = false;\n private readonly q = new Deque<T>();\n\n /**\n * Tracks the number of pause requests for the queue\n * The DeltaQueue is create initially paused.\n */\n private pauseCount = 1;\n\n private error: any | undefined;\n\n /**\n * When processing is ongoing, holds a deferred that will resolve once processing stops.\n * Undefined when not processing.\n */\n private processingPromise: Promise<{ count: number; duration: number; }> | undefined;\n\n public get disposed(): boolean {\n return this.isDisposed;\n }\n\n /**\n * @returns True if the queue is paused, false if not.\n */\n public get paused(): boolean {\n return this.pauseCount !== 0;\n }\n\n public get length(): number {\n return this.q.length;\n }\n\n public get idle(): boolean {\n return this.processingPromise === undefined && this.q.length === 0;\n }\n\n public async waitTillProcessingDone() {\n return this.processingPromise ?? { count: 0, duration: 0 };\n }\n\n /**\n * @param worker - A callback to process a delta.\n * @param logger - For logging telemetry.\n */\n constructor(\n private readonly worker: (delta: T) => void,\n ) {\n super();\n }\n\n public dispose() {\n throw new Error(\"Not implemented.\");\n this.isDisposed = true;\n }\n\n public clear(): void {\n this.q.clear();\n }\n\n public peek(): T | undefined {\n return this.q.peekFront();\n }\n\n public toArray(): T[] {\n return this.q.toArray();\n }\n\n public push(task: T) {\n try {\n this.q.push(task);\n this.emit(\"push\", task);\n this.ensureProcessing();\n } catch (error) {\n this.emit(\"error\", error);\n }\n }\n\n public async pause(): Promise<void> {\n this.pauseCount++;\n // If called from within the processing loop, we are in the middle of processing an op. Return a promise\n // that will resolve when processing has actually stopped.\n await this.waitTillProcessingDone();\n }\n\n public resume(): void {\n assert(this.pauseCount > 0, 0x0f4 /* \"Nonzero pause-count on resume()\" */);\n this.pauseCount--;\n this.ensureProcessing();\n }\n\n /**\n * There are several actions that may need to kick off delta processing, so we want to guard against\n * accidental reentrancy. ensureProcessing can be called safely to start the processing loop if it is\n * not already started.\n */\n private ensureProcessing() {\n if (this.anythingToProcess() && this.processingPromise === undefined) {\n // Use a resolved promise to start the processing on a separate stack.\n this.processingPromise = Promise.resolve().then(() => {\n assert(this.processingPromise !== undefined, 0x37f /* reentrancy? */);\n const result = this.processDeltas();\n assert(this.processingPromise !== undefined, 0x380 /* reentrancy? */);\n // WARNING: Do not move next line to .finally() clause!\n // It runs async and creates a race condition where incoming ensureProcessing() call observes\n // from previous run while previous run is over (but finally clause was not scheduled yet)\n this.processingPromise = undefined;\n return result;\n }).catch((error) => {\n this.error = error;\n this.processingPromise = undefined;\n this.emit(\"error\", error);\n return { count: 0, duration: 0 };\n });\n assert(this.processingPromise !== undefined, 0x381 /* processDeltas() should run async */);\n }\n }\n\n private anythingToProcess() {\n return this.q.length !== 0 && !this.paused && this.error === undefined;\n }\n\n /**\n * Executes the delta processing loop until a stop condition is reached.\n */\n private processDeltas() {\n const start = performance.now();\n let count = 0;\n\n // For grouping to work we must process all local messages immediately and in the single turn.\n // So loop over them until no messages to process, we have become paused, or hit an error.\n while (this.anythingToProcess()) {\n // Get the next message in the queue\n const next = this.q.shift();\n count++;\n // Process the message.\n // We know next is defined since we did a length check just prior to shifting.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.worker(next!);\n this.emit(\"op\", next);\n }\n\n const duration = performance.now() - start;\n if (this.q.length === 0) {\n this.emit(\"idle\", count, duration);\n }\n return { count, duration };\n }\n}\n"]}
@@ -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-loader";
8
- export declare const pkgVersion = "2.0.0-internal.1.0.0.83139";
8
+ export declare const pkgVersion = "2.0.0-internal.1.0.0.84253";
9
9
  //# sourceMappingURL=packageVersion.d.ts.map
@@ -5,5 +5,5 @@
5
5
  * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY
6
6
  */
7
7
  export const pkgName = "@fluidframework/container-loader";
8
- export const pkgVersion = "2.0.0-internal.1.0.0.83139";
8
+ export const pkgVersion = "2.0.0-internal.1.0.0.84253";
9
9
  //# sourceMappingURL=packageVersion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,kCAAkC,CAAC;AAC1D,MAAM,CAAC,MAAM,UAAU,GAAG,4BAA4B,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-loader\";\nexport const pkgVersion = \"2.0.0-internal.1.0.0.83139\";\n"]}
1
+ {"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,kCAAkC,CAAC;AAC1D,MAAM,CAAC,MAAM,UAAU,GAAG,4BAA4B,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-loader\";\nexport const pkgVersion = \"2.0.0-internal.1.0.0.84253\";\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluidframework/container-loader",
3
- "version": "2.0.0-internal.1.0.0.83139",
3
+ "version": "2.0.0-internal.1.0.0.84253",
4
4
  "description": "Fluid container loader",
5
5
  "homepage": "https://fluidframework.com",
6
6
  "repository": {
@@ -62,15 +62,15 @@
62
62
  },
63
63
  "dependencies": {
64
64
  "@fluidframework/common-definitions": "^0.20.1",
65
- "@fluidframework/common-utils": "^0.32.1",
66
- "@fluidframework/container-definitions": "2.0.0-internal.1.0.0.83139",
67
- "@fluidframework/container-utils": "2.0.0-internal.1.0.0.83139",
68
- "@fluidframework/core-interfaces": "2.0.0-internal.1.0.0.83139",
69
- "@fluidframework/driver-definitions": "2.0.0-internal.1.0.0.83139",
70
- "@fluidframework/driver-utils": "2.0.0-internal.1.0.0.83139",
71
- "@fluidframework/protocol-base": "^0.1037.1000-0",
72
- "@fluidframework/protocol-definitions": "^0.1029.1000-0",
73
- "@fluidframework/telemetry-utils": "2.0.0-internal.1.0.0.83139",
65
+ "@fluidframework/common-utils": "^1.0.0",
66
+ "@fluidframework/container-definitions": "2.0.0-internal.1.0.0.84253",
67
+ "@fluidframework/container-utils": "2.0.0-internal.1.0.0.84253",
68
+ "@fluidframework/core-interfaces": "2.0.0-internal.1.0.0.84253",
69
+ "@fluidframework/driver-definitions": "2.0.0-internal.1.0.0.84253",
70
+ "@fluidframework/driver-utils": "2.0.0-internal.1.0.0.84253",
71
+ "@fluidframework/protocol-base": "^0.1037.1000",
72
+ "@fluidframework/protocol-definitions": "^1.0.0",
73
+ "@fluidframework/telemetry-utils": "2.0.0-internal.1.0.0.84253",
74
74
  "abort-controller": "^3.0.0",
75
75
  "double-ended-queue": "^2.1.0-0",
76
76
  "lodash": "^4.17.21",
@@ -79,11 +79,11 @@
79
79
  },
80
80
  "devDependencies": {
81
81
  "@fluidframework/build-common": "^0.24.0",
82
- "@fluidframework/build-tools": "^0.3.0-0",
82
+ "@fluidframework/build-tools": "^0.3.1000",
83
83
  "@fluidframework/container-loader-previous": "npm:@fluidframework/container-loader@^1.0.0",
84
84
  "@fluidframework/eslint-config-fluid": "^0.28.2000",
85
- "@fluidframework/mocha-test-setup": "2.0.0-internal.1.0.0.83139",
86
- "@fluidframework/test-loader-utils": "2.0.0-internal.1.0.0.83139",
85
+ "@fluidframework/mocha-test-setup": "2.0.0-internal.1.0.0.84253",
86
+ "@fluidframework/test-loader-utils": "2.0.0-internal.1.0.0.84253",
87
87
  "@microsoft/api-extractor": "^7.22.2",
88
88
  "@rushstack/eslint-config": "^2.5.1",
89
89
  "@types/double-ended-queue": "^2.1.0",
@@ -45,7 +45,7 @@ export class CatchUpMonitor extends TypedEventEmitter<ICatchUpMonitorEvents> imp
45
45
  this.targetSeqNumber = this.deltaManager.lastKnownSeqNumber;
46
46
 
47
47
  assert(this.targetSeqNumber >= this.deltaManager.lastSequenceNumber,
48
- "Cannot wait for seqNumber below last processed sequence number");
48
+ 0x37c /* Cannot wait for seqNumber below last processed sequence number */);
49
49
 
50
50
  this.deltaManager.on("op", this.opHandler);
51
51
 
@@ -190,7 +190,7 @@ export class ConnectionStateHandler {
190
190
  this.waitEvent?.end({ source });
191
191
 
192
192
  assert(this.catchUpMonitor !== undefined,
193
- "catchUpMonitor should always be set if pendingClientId is set");
193
+ 0x37d /* catchUpMonitor should always be set if pendingClientId is set */);
194
194
  this.catchUpMonitor.on("caughtUp", this.transitionToConnectedState);
195
195
  } else {
196
196
  // Adding this event temporarily so that we can get help debugging if something goes wrong.
package/src/container.ts CHANGED
@@ -805,7 +805,8 @@ export class Container extends EventEmitterWithErrorHandling<IContainerEvents> i
805
805
  assert(this.resolvedUrl !== undefined && this.resolvedUrl.type === "fluid",
806
806
  0x0d2 /* "resolved url should be valid Fluid url" */);
807
807
  assert(!!this._protocolHandler, 0x2e3 /* "Must have a valid protocol handler instance" */);
808
- assert(this._protocolHandler.attributes.term !== undefined, "Must have a valid protocol handler instance");
808
+ assert(this._protocolHandler.attributes.term !== undefined,
809
+ 0x37e /* Must have a valid protocol handler instance */);
809
810
  const pendingState: IPendingContainerState = {
810
811
  pendingRuntimeState: this.context.getPendingLocalState(),
811
812
  url: this.resolvedUrl.url,
package/src/deltaQueue.ts CHANGED
@@ -114,9 +114,9 @@ export class DeltaQueue<T>
114
114
  if (this.anythingToProcess() && this.processingPromise === undefined) {
115
115
  // Use a resolved promise to start the processing on a separate stack.
116
116
  this.processingPromise = Promise.resolve().then(() => {
117
- assert(this.processingPromise !== undefined, "reentrancy?");
117
+ assert(this.processingPromise !== undefined, 0x37f /* reentrancy? */);
118
118
  const result = this.processDeltas();
119
- assert(this.processingPromise !== undefined, "reentrancy?");
119
+ assert(this.processingPromise !== undefined, 0x380 /* reentrancy? */);
120
120
  // WARNING: Do not move next line to .finally() clause!
121
121
  // It runs async and creates a race condition where incoming ensureProcessing() call observes
122
122
  // from previous run while previous run is over (but finally clause was not scheduled yet)
@@ -128,7 +128,7 @@ export class DeltaQueue<T>
128
128
  this.emit("error", error);
129
129
  return { count: 0, duration: 0 };
130
130
  });
131
- assert(this.processingPromise !== undefined, "processDeltas() should run async");
131
+ assert(this.processingPromise !== undefined, 0x381 /* processDeltas() should run async */);
132
132
  }
133
133
  }
134
134
 
@@ -6,4 +6,4 @@
6
6
  */
7
7
 
8
8
  export const pkgName = "@fluidframework/container-loader";
9
- export const pkgVersion = "2.0.0-internal.1.0.0.83139";
9
+ export const pkgVersion = "2.0.0-internal.1.0.0.84253";