@fluidframework/container-loader 2.0.0-dev.7.4.0.217884 → 2.0.0-dev.7.4.0.221926

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 (56) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/api-extractor.json +0 -3
  3. package/dist/connectionStateHandler.cjs +3 -3
  4. package/dist/connectionStateHandler.cjs.map +1 -1
  5. package/dist/connectionStateHandler.d.ts +10 -0
  6. package/dist/connectionStateHandler.d.ts.map +1 -1
  7. package/dist/container-loader-alpha.d.ts +1 -0
  8. package/dist/container-loader-beta.d.ts +18 -0
  9. package/dist/container-loader-public.d.ts +18 -0
  10. package/dist/packageVersion.cjs +1 -1
  11. package/dist/packageVersion.cjs.map +1 -1
  12. package/dist/packageVersion.d.ts +1 -1
  13. package/lib/audience.d.ts +0 -4
  14. package/lib/audience.d.ts.map +1 -1
  15. package/lib/catchUpMonitor.d.ts.map +1 -1
  16. package/lib/connectionManager.d.ts +1 -1
  17. package/lib/connectionManager.d.ts.map +1 -1
  18. package/lib/connectionStateHandler.d.ts +13 -3
  19. package/lib/connectionStateHandler.d.ts.map +1 -1
  20. package/lib/connectionStateHandler.mjs +3 -3
  21. package/lib/connectionStateHandler.mjs.map +1 -1
  22. package/lib/container-loader-alpha.d.ts +1 -0
  23. package/lib/container-loader-beta.d.ts +18 -0
  24. package/lib/container-loader-public.d.ts +18 -0
  25. package/lib/container.d.ts +4 -4
  26. package/lib/container.d.ts.map +1 -1
  27. package/lib/containerContext.d.ts.map +1 -1
  28. package/lib/containerStorageAdapter.d.ts +1 -1
  29. package/lib/containerStorageAdapter.d.ts.map +1 -1
  30. package/lib/contracts.d.ts.map +1 -1
  31. package/lib/debugLogger.d.ts.map +1 -1
  32. package/lib/deltaManager.d.ts +1 -1
  33. package/lib/deltaManager.d.ts.map +1 -1
  34. package/lib/deltaQueue.d.ts.map +1 -1
  35. package/lib/disposal.d.ts.map +1 -1
  36. package/lib/error.d.ts.map +1 -1
  37. package/lib/index.d.ts +6 -6
  38. package/lib/index.d.ts.map +1 -1
  39. package/lib/loader.d.ts +2 -2
  40. package/lib/loader.d.ts.map +1 -1
  41. package/lib/location-redirection-utilities/index.d.ts +1 -1
  42. package/lib/location-redirection-utilities/index.d.ts.map +1 -1
  43. package/lib/location-redirection-utilities/resolveWithLocationRedirection.d.ts.map +1 -1
  44. package/lib/noopHeuristic.d.ts.map +1 -1
  45. package/lib/packageVersion.d.ts +1 -1
  46. package/lib/packageVersion.mjs +1 -1
  47. package/lib/packageVersion.mjs.map +1 -1
  48. package/lib/protocol.d.ts.map +1 -1
  49. package/lib/protocolTreeDocumentStorageService.d.ts.map +1 -1
  50. package/lib/quorum.d.ts +0 -4
  51. package/lib/quorum.d.ts.map +1 -1
  52. package/lib/retriableDocumentStorageService.d.ts.map +1 -1
  53. package/lib/utils.d.ts.map +1 -1
  54. package/package.json +12 -10
  55. package/src/connectionStateHandler.ts +16 -3
  56. package/src/packageVersion.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"quorum.d.ts","sourceRoot":"","sources":["../src/quorum.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE1E,wBAAgB,+BAA+B,CAC9C,MAAM,EAAE,iBAAiB,GACvB,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,CAUhC"}
1
+ {"version":3,"file":"quorum.d.ts","sourceRoot":"","sources":["../src/quorum.ts"],"names":[],"mappings":"OAIO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC;OAC5D,EAAE,kBAAkB,EAAE,MAAM,sCAAsC;AAEzE,wBAAgB,+BAA+B,CAC9C,MAAM,EAAE,iBAAiB,GACvB,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,CAUhC"}
@@ -1 +1 @@
1
- {"version":3,"file":"retriableDocumentStorageService.d.ts","sourceRoot":"","sources":["../src/retriableDocumentStorageService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACN,WAAW,EACX,uBAAuB,EACvB,+BAA+B,EAC/B,eAAe,EACf,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACN,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAgB,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAGpF,qBAAa,+BAAgC,YAAW,uBAAuB,EAAE,WAAW;IAI1F,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,sBAAsB,CAAsC;gBAElD,uBAAuB,EAAE,OAAO,CAAC,uBAAuB,CAAC,EACzD,MAAM,EAAE,mBAAmB;IAK7C,IAAW,QAAQ,IAAI,+BAA+B,GAAG,SAAS,CAKjE;IACD,IAAW,QAAQ,YAElB;IACM,OAAO;IAId,IAAW,aAAa,IAAI,MAAM,CAKjC;IAEY,eAAe,CAC3B,OAAO,CAAC,EAAE,QAAQ,EAClB,YAAY,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAUnB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAO9C,WAAW,CACvB,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,MAAM,EACrB,WAAW,CAAC,EAAE,WAAW,GACvB,OAAO,CAAC,QAAQ,EAAE,CAAC;IAUT,wBAAwB,CACpC,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,eAAe,GACtB,OAAO,CAAC,MAAM,CAAC;IA8BL,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;IAO9D,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAO5E,OAAO,CAAC,oBAAoB;YAiBd,YAAY;CAM1B"}
1
+ {"version":3,"file":"retriableDocumentStorageService.d.ts","sourceRoot":"","sources":["../src/retriableDocumentStorageService.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAGI,EACN,WAAW,EACX,uBAAuB,EACvB,+BAA+B,EAC/B,eAAe,EACf,MAAM,oCAAoC;OACpC,EACN,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,MAAM,sCAAsC;OACtC,EAAE,WAAW,EAAE,MAAM,iCAAiC;OACtD,EAAgB,mBAAmB,EAAE,MAAM,iCAAiC;AAGnF,qBAAa,+BAAgC,YAAW,uBAAuB,EAAE,WAAW;IAI1F,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,sBAAsB,CAAsC;gBAElD,uBAAuB,EAAE,OAAO,CAAC,uBAAuB,CAAC,EACzD,MAAM,EAAE,mBAAmB;IAK7C,IAAW,QAAQ,IAAI,+BAA+B,GAAG,SAAS,CAKjE;IACD,IAAW,QAAQ,YAElB;IACM,OAAO;IAId,IAAW,aAAa,IAAI,MAAM,CAKjC;IAEY,eAAe,CAC3B,OAAO,CAAC,EAAE,QAAQ,EAClB,YAAY,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAUnB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAO9C,WAAW,CACvB,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,MAAM,EACrB,WAAW,CAAC,EAAE,WAAW,GACvB,OAAO,CAAC,QAAQ,EAAE,CAAC;IAUT,wBAAwB,CACpC,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,eAAe,GACtB,OAAO,CAAC,MAAM,CAAC;IA8BL,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;IAO9D,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAO5E,OAAO,CAAC,oBAAoB;YAiBd,YAAY;CAM1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAe,MAAM,sCAAsC,CAAC;AAEhG,OAAO,EACN,6BAA6B,EAC7B,mCAAmC,EAEnC,MAAM,8BAA8B,CAAC;AAKtC,MAAM,WAAW,6BAA8B,SAAQ,aAAa;IACnE,aAAa,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAA;KAAE,CAAC;IACnD,KAAK,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,6BAA6B,CAAA;KAAE,CAAC;CACzD;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IAC1B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACnC;AAED;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAWjF;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC3C,UAAU,EAAE,YAAY,EACxB,eAAe,EAAE,YAAY,GAC3B,6BAA6B,CAiB/B;AA0DD;;;;GAIG;AACH,wBAAgB,0CAA0C,CACzD,mBAAmB,EAAE,YAAY,EACjC,cAAc,EAAE,YAAY,GAC1B,6BAA6B,CAW/B;AAID,eAAO,MAAM,sCAAsC,8BACvB,YAAY,KACrC,6BAYF,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,aAAa,GAAG,aAAa,CAE9E;AAED,wBAAgB,qCAAqC,CACpD,KAAK,EAAE,GAAG,GACR,KAAK,IAAI,mCAAmC,CAM9C"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAMI,EAAE,YAAY,EAAE,aAAa,EAAe,MAAM,sCAAsC;OAExF,EACN,6BAA6B,EAC7B,mCAAmC,EAEnC,MAAM,8BAA8B;AAKrC,MAAM,WAAW,6BAA8B,SAAQ,aAAa;IACnE,aAAa,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAA;KAAE,CAAC;IACnD,KAAK,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,6BAA6B,CAAA;KAAE,CAAC;CACzD;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IAC1B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACnC;AAED;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAWjF;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC3C,UAAU,EAAE,YAAY,EACxB,eAAe,EAAE,YAAY,GAC3B,6BAA6B,CAiB/B;AA0DD;;;;GAIG;AACH,wBAAgB,0CAA0C,CACzD,mBAAmB,EAAE,YAAY,EACjC,cAAc,EAAE,YAAY,GAC1B,6BAA6B,CAW/B;AAID,eAAO,MAAM,sCAAsC,8BACvB,YAAY,KACrC,6BAYF,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,aAAa,GAAG,aAAa,CAE9E;AAED,wBAAgB,qCAAqC,CACpD,KAAK,EAAE,GAAG,GACR,KAAK,IAAI,mCAAmC,CAM9C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluidframework/container-loader",
3
- "version": "2.0.0-dev.7.4.0.217884",
3
+ "version": "2.0.0-dev.7.4.0.221926",
4
4
  "description": "Fluid container loader",
5
5
  "homepage": "https://fluidframework.com",
6
6
  "repository": {
@@ -35,15 +35,15 @@
35
35
  "temp-directory": "nyc/.nyc_output"
36
36
  },
37
37
  "dependencies": {
38
- "@fluid-internal/client-utils": "2.0.0-dev.7.4.0.217884",
39
- "@fluidframework/container-definitions": "2.0.0-dev.7.4.0.217884",
40
- "@fluidframework/core-interfaces": "2.0.0-dev.7.4.0.217884",
41
- "@fluidframework/core-utils": "2.0.0-dev.7.4.0.217884",
42
- "@fluidframework/driver-definitions": "2.0.0-dev.7.4.0.217884",
43
- "@fluidframework/driver-utils": "2.0.0-dev.7.4.0.217884",
38
+ "@fluid-internal/client-utils": "2.0.0-dev.7.4.0.221926",
39
+ "@fluidframework/container-definitions": "2.0.0-dev.7.4.0.221926",
40
+ "@fluidframework/core-interfaces": "2.0.0-dev.7.4.0.221926",
41
+ "@fluidframework/core-utils": "2.0.0-dev.7.4.0.221926",
42
+ "@fluidframework/driver-definitions": "2.0.0-dev.7.4.0.221926",
43
+ "@fluidframework/driver-utils": "2.0.0-dev.7.4.0.221926",
44
44
  "@fluidframework/protocol-base": "^2.0.1",
45
45
  "@fluidframework/protocol-definitions": "^3.0.0",
46
- "@fluidframework/telemetry-utils": "2.0.0-dev.7.4.0.217884",
46
+ "@fluidframework/telemetry-utils": "2.0.0-dev.7.4.0.221926",
47
47
  "debug": "^4.3.4",
48
48
  "double-ended-queue": "^2.1.0-0",
49
49
  "events": "^3.1.0",
@@ -51,13 +51,14 @@
51
51
  "uuid": "^9.0.0"
52
52
  },
53
53
  "devDependencies": {
54
- "@fluid-private/test-loader-utils": "2.0.0-dev.7.4.0.217884",
54
+ "@arethetypeswrong/cli": "^0.13.3",
55
+ "@fluid-private/test-loader-utils": "2.0.0-dev.7.4.0.221926",
55
56
  "@fluid-tools/build-cli": "^0.28.0",
56
57
  "@fluidframework/build-common": "^2.0.3",
57
58
  "@fluidframework/build-tools": "^0.28.0",
58
59
  "@fluidframework/container-loader-previous": "npm:@fluidframework/container-loader@2.0.0-internal.7.2.0",
59
60
  "@fluidframework/eslint-config-fluid": "^3.1.0",
60
- "@fluidframework/mocha-test-setup": "2.0.0-dev.7.4.0.217884",
61
+ "@fluidframework/mocha-test-setup": "2.0.0-dev.7.4.0.221926",
61
62
  "@microsoft/api-extractor": "^7.38.3",
62
63
  "@types/debug": "^4.1.5",
63
64
  "@types/double-ended-queue": "^2.1.0",
@@ -105,6 +106,7 @@
105
106
  "build:esnext": "tsc-multi --config ../../../common/build/build-common/tsc-multi.esm.json",
106
107
  "build:genver": "gen-version",
107
108
  "build:test": "tsc-multi --config tsc-multi.test.json",
109
+ "check:are-the-types-wrong": "attw --pack",
108
110
  "check:release-tags": "api-extractor run --local --config ./api-extractor-lint.json",
109
111
  "ci:build:docs": "api-extractor run",
110
112
  "clean": "rimraf --glob dist lib \"**/*.tsbuildinfo\" \"**/*.build.log\" _api-extractor-temp nyc",
@@ -312,12 +312,25 @@ class ConnectionStateCatchup extends ConnectionStateHandlerPassThrough {
312
312
  class ConnectionStateHandler implements IConnectionStateHandler {
313
313
  private _connectionState = ConnectionState.Disconnected;
314
314
  private _pendingClientId: string | undefined;
315
+
316
+ /**
317
+ * Tracks that we observe the "leave" op within the timeout for our previous clientId (see comment on ConnectionStateHandler class)
318
+ * ! This ensures we do not switch to a new clientId until we process all potential messages from old clientId
319
+ * ! i.e. We will always see the "leave" op for a client after we have seen all the ops it has sent
320
+ * ! This check helps prevent the same op from being resubmitted by the PendingStateManager upon reconnecting
321
+ */
315
322
  private readonly prevClientLeftTimer: Timer;
323
+
324
+ /**
325
+ * Tracks that we observe our own "join" op within the timeout after receiving a "connected" event from the DeltaManager
326
+ */
316
327
  private readonly joinOpTimer: Timer;
328
+
317
329
  private protocol?: IProtocolHandler;
318
330
  private connection?: IConnectionDetailsInternal;
319
331
  private _clientId?: string;
320
332
 
333
+ /** Track how long we waited to see "leave" op for previous clientId */
321
334
  private waitEvent: PerformanceEvent | undefined;
322
335
 
323
336
  public get connectionState(): ConnectionState {
@@ -453,9 +466,9 @@ class ConnectionStateHandler implements IConnectionStateHandler {
453
466
  0x2e2 /* "Must only wait for leave message when clientId in quorum" */,
454
467
  );
455
468
 
456
- // Move to connected state only if we are in Connecting state, we have seen our join op
457
- // and there is no timer running which means we are not waiting for previous client to leave
458
- // or timeout has occurred while doing so.
469
+ // Move to connected state only if:
470
+ // 1. We have seen our own "join" op (i.e. for this.pendingClientId)
471
+ // 2. There is no "leave" timer running, meaning this is our first connection or the previous client has left (via this.prevClientLeftTimer)
459
472
  if (
460
473
  this.pendingClientId !== this.clientId &&
461
474
  this.hasMember(this.pendingClientId) &&
@@ -6,4 +6,4 @@
6
6
  */
7
7
 
8
8
  export const pkgName = "@fluidframework/container-loader";
9
- export const pkgVersion = "2.0.0-dev.7.4.0.217884";
9
+ export const pkgVersion = "2.0.0-dev.7.4.0.221926";