@fluidframework/container-loader 2.0.0-dev.4.3.0.157531 → 2.0.0-dev.4.3.0.158678

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/index.d.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
  export { ConnectionState } from "./connectionState";
6
- export { IContainerConfig, IContainerLoadOptions, IPendingContainerState, waitContainerToCatchUp, } from "./container";
6
+ export { IContainerConfig, IContainerExperimental, IContainerLoadOptions, IPendingContainerState, waitContainerToCatchUp, } from "./container";
7
7
  export { ISerializableBlobContents } from "./containerStorageAdapter";
8
8
  export { ICodeDetailsLoader, IDetachedBlobStorage, IFluidModuleWithDetails, ILoaderOptions, ILoaderProps, ILoaderServices, Loader, requestResolvedObjectFromContainer, } from "./loader";
9
9
  export { IProtocolHandler, ProtocolHandlerBuilder } from "./protocol";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EACN,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EACN,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,cAAc,EACd,YAAY,EACZ,eAAe,EACf,MAAM,EACN,kCAAkC,GAClC,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EACN,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EACN,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,cAAc,EACd,YAAY,EACZ,eAAe,EACf,MAAM,EACN,kCAAkC,GAClC,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC"}
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAIN,sBAAsB,GACtB,MAAM,aAAa,CAAC;AAErB,OAAO,EAON,MAAM,EACN,kCAAkC,GAClC,MAAM,UAAU,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport { ConnectionState } from \"./connectionState\";\nexport {\n\tIContainerConfig,\n\tIContainerLoadOptions,\n\tIPendingContainerState,\n\twaitContainerToCatchUp,\n} from \"./container\";\nexport { ISerializableBlobContents } from \"./containerStorageAdapter\";\nexport {\n\tICodeDetailsLoader,\n\tIDetachedBlobStorage,\n\tIFluidModuleWithDetails,\n\tILoaderOptions,\n\tILoaderProps,\n\tILoaderServices,\n\tLoader,\n\trequestResolvedObjectFromContainer,\n} from \"./loader\";\nexport { IProtocolHandler, ProtocolHandlerBuilder } from \"./protocol\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAKN,sBAAsB,GACtB,MAAM,aAAa,CAAC;AAErB,OAAO,EAON,MAAM,EACN,kCAAkC,GAClC,MAAM,UAAU,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport { ConnectionState } from \"./connectionState\";\nexport {\n\tIContainerConfig,\n\tIContainerExperimental,\n\tIContainerLoadOptions,\n\tIPendingContainerState,\n\twaitContainerToCatchUp,\n} from \"./container\";\nexport { ISerializableBlobContents } from \"./containerStorageAdapter\";\nexport {\n\tICodeDetailsLoader,\n\tIDetachedBlobStorage,\n\tIFluidModuleWithDetails,\n\tILoaderOptions,\n\tILoaderProps,\n\tILoaderServices,\n\tLoader,\n\trequestResolvedObjectFromContainer,\n} from \"./loader\";\nexport { IProtocolHandler, ProtocolHandlerBuilder } from \"./protocol\";\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-dev.4.3.0.157531";
8
+ export declare const pkgVersion = "2.0.0-dev.4.3.0.158678";
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-dev.4.3.0.157531";
8
+ export const pkgVersion = "2.0.0-dev.4.3.0.158678";
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,wBAAwB,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-dev.4.3.0.157531\";\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,wBAAwB,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-dev.4.3.0.158678\";\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluidframework/container-loader",
3
- "version": "2.0.0-dev.4.3.0.157531",
3
+ "version": "2.0.0-dev.4.3.0.158678",
4
4
  "description": "Fluid container loader",
5
5
  "homepage": "https://fluidframework.com",
6
6
  "repository": {
@@ -37,14 +37,14 @@
37
37
  "dependencies": {
38
38
  "@fluidframework/common-definitions": "^0.20.1",
39
39
  "@fluidframework/common-utils": "^1.1.1",
40
- "@fluidframework/container-definitions": "2.0.0-dev.4.3.0.157531",
41
- "@fluidframework/container-utils": "2.0.0-dev.4.3.0.157531",
42
- "@fluidframework/core-interfaces": "2.0.0-dev.4.3.0.157531",
43
- "@fluidframework/driver-definitions": "2.0.0-dev.4.3.0.157531",
44
- "@fluidframework/driver-utils": "2.0.0-dev.4.3.0.157531",
40
+ "@fluidframework/container-definitions": "2.0.0-dev.4.3.0.158678",
41
+ "@fluidframework/container-utils": "2.0.0-dev.4.3.0.158678",
42
+ "@fluidframework/core-interfaces": "2.0.0-dev.4.3.0.158678",
43
+ "@fluidframework/driver-definitions": "2.0.0-dev.4.3.0.158678",
44
+ "@fluidframework/driver-utils": "2.0.0-dev.4.3.0.158678",
45
45
  "@fluidframework/protocol-base": "^0.1039.1000",
46
46
  "@fluidframework/protocol-definitions": "^1.1.0",
47
- "@fluidframework/telemetry-utils": "2.0.0-dev.4.3.0.157531",
47
+ "@fluidframework/telemetry-utils": "2.0.0-dev.4.3.0.158678",
48
48
  "abort-controller": "^3.0.0",
49
49
  "double-ended-queue": "^2.1.0-0",
50
50
  "events": "^3.1.0",
@@ -53,13 +53,13 @@
53
53
  "uuid": "^8.3.1"
54
54
  },
55
55
  "devDependencies": {
56
- "@fluid-internal/test-loader-utils": "2.0.0-dev.4.3.0.157531",
56
+ "@fluid-internal/test-loader-utils": "2.0.0-dev.4.3.0.158678",
57
57
  "@fluid-tools/build-cli": "^0.17.0",
58
58
  "@fluidframework/build-common": "^1.1.0",
59
59
  "@fluidframework/build-tools": "^0.17.0",
60
60
  "@fluidframework/container-loader-previous": "npm:@fluidframework/container-loader@2.0.0-internal.4.1.0",
61
61
  "@fluidframework/eslint-config-fluid": "^2.0.0",
62
- "@fluidframework/mocha-test-setup": "2.0.0-dev.4.3.0.157531",
62
+ "@fluidframework/mocha-test-setup": "2.0.0-dev.4.3.0.158678",
63
63
  "@microsoft/api-extractor": "^7.34.4",
64
64
  "@types/double-ended-queue": "^2.1.0",
65
65
  "@types/events": "^3.0.0",
package/src/container.ts CHANGED
@@ -305,7 +305,7 @@ const summarizerClientType = "summarizer";
305
305
  */
306
306
  export class Container
307
307
  extends EventEmitterWithErrorHandling<IContainerEvents>
308
- implements IContainer
308
+ implements IContainer, IContainerExperimental
309
309
  {
310
310
  public static version = "^0.1.0";
311
311
 
@@ -1000,6 +1000,12 @@ export class Container
1000
1000
  // runtime matches pending ops to successful ones by clientId and client seq num, so we need to close the
1001
1001
  // container at the same time we get pending state, otherwise this container could reconnect and resubmit with
1002
1002
  // a new clientId and a future container using stale pending state without the new clientId would resubmit them
1003
+ const pendingState = this.getPendingLocalState();
1004
+ this.close();
1005
+ return pendingState;
1006
+ }
1007
+
1008
+ public getPendingLocalState(): string {
1003
1009
  if (!this.offlineLoadEnabled) {
1004
1010
  throw new UsageError("Can't get pending local state unless offline load is enabled");
1005
1011
  }
@@ -1011,7 +1017,6 @@ export class Container
1011
1017
  this.resolvedUrl !== undefined && this.resolvedUrl.type === "fluid",
1012
1018
  0x0d2 /* "resolved url should be valid Fluid url" */,
1013
1019
  );
1014
- assert(!!this._protocolHandler, 0x2e3 /* "Must have a valid protocol handler instance" */);
1015
1020
  assert(!!this.baseSnapshot, 0x5d4 /* no base snapshot */);
1016
1021
  assert(!!this.baseSnapshotBlobs, 0x5d5 /* no snapshot blobs */);
1017
1022
  const pendingState: IPendingContainerState = {
@@ -1024,10 +1029,7 @@ export class Container
1024
1029
  clientId: this.clientId,
1025
1030
  };
1026
1031
 
1027
- this.mc.logger.sendTelemetryEvent({ eventName: "CloseAndGetPendingLocalState" });
1028
-
1029
- // Only close here as method name suggests
1030
- this.close();
1032
+ this.mc.logger.sendTelemetryEvent({ eventName: "GetPendingLocalState" });
1031
1033
 
1032
1034
  return JSON.stringify(pendingState);
1033
1035
  }
@@ -2228,3 +2230,19 @@ export class Container
2228
2230
  }
2229
2231
  }
2230
2232
  }
2233
+
2234
+ /**
2235
+ * IContainer interface that includes experimental features still under development.
2236
+ * @internal
2237
+ */
2238
+ export interface IContainerExperimental extends IContainer {
2239
+ /**
2240
+ * Get pending state from container. WARNING: misuse of this API can result in duplicate op
2241
+ * submission and potential document corruption. The blob returned MUST be deleted if and when this
2242
+ * container emits a "connected" event.
2243
+ * @returns serialized blob that can be passed to Loader.resolve()
2244
+ * @experimental misuse of this API can result in duplicate op submission and potential document corruption
2245
+ * {@link https://github.com/microsoft/FluidFramework/blob/main/packages/loader/container-loader/closeAndGetPendingLocalState.md}
2246
+ */
2247
+ getPendingLocalState(): string;
2248
+ }
package/src/index.ts CHANGED
@@ -6,6 +6,7 @@
6
6
  export { ConnectionState } from "./connectionState";
7
7
  export {
8
8
  IContainerConfig,
9
+ IContainerExperimental,
9
10
  IContainerLoadOptions,
10
11
  IPendingContainerState,
11
12
  waitContainerToCatchUp,
@@ -6,4 +6,4 @@
6
6
  */
7
7
 
8
8
  export const pkgName = "@fluidframework/container-loader";
9
- export const pkgVersion = "2.0.0-dev.4.3.0.157531";
9
+ export const pkgVersion = "2.0.0-dev.4.3.0.158678";