@fluidframework/container-loader 0.53.0 → 0.54.2

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 (57) hide show
  1. package/dist/connectionManager.d.ts +153 -0
  2. package/dist/connectionManager.d.ts.map +1 -0
  3. package/dist/connectionManager.js +664 -0
  4. package/dist/connectionManager.js.map +1 -0
  5. package/dist/container.d.ts +2 -1
  6. package/dist/container.d.ts.map +1 -1
  7. package/dist/container.js +25 -28
  8. package/dist/container.js.map +1 -1
  9. package/dist/contracts.d.ts +112 -0
  10. package/dist/contracts.d.ts.map +1 -0
  11. package/dist/contracts.js +14 -0
  12. package/dist/contracts.js.map +1 -0
  13. package/dist/deltaManager.d.ts +26 -135
  14. package/dist/deltaManager.d.ts.map +1 -1
  15. package/dist/deltaManager.js +142 -767
  16. package/dist/deltaManager.js.map +1 -1
  17. package/dist/loader.d.ts +9 -4
  18. package/dist/loader.d.ts.map +1 -1
  19. package/dist/loader.js +5 -4
  20. package/dist/loader.js.map +1 -1
  21. package/dist/packageVersion.d.ts +1 -1
  22. package/dist/packageVersion.js +1 -1
  23. package/dist/packageVersion.js.map +1 -1
  24. package/dist/protocolTreeDocumentStorageService.d.ts +2 -2
  25. package/dist/protocolTreeDocumentStorageService.d.ts.map +1 -1
  26. package/lib/connectionManager.d.ts +153 -0
  27. package/lib/connectionManager.d.ts.map +1 -0
  28. package/lib/connectionManager.js +660 -0
  29. package/lib/connectionManager.js.map +1 -0
  30. package/lib/container.d.ts +2 -1
  31. package/lib/container.d.ts.map +1 -1
  32. package/lib/container.js +25 -28
  33. package/lib/container.js.map +1 -1
  34. package/lib/contracts.d.ts +112 -0
  35. package/lib/contracts.d.ts.map +1 -0
  36. package/lib/contracts.js +11 -0
  37. package/lib/contracts.js.map +1 -0
  38. package/lib/deltaManager.d.ts +26 -135
  39. package/lib/deltaManager.d.ts.map +1 -1
  40. package/lib/deltaManager.js +146 -771
  41. package/lib/deltaManager.js.map +1 -1
  42. package/lib/loader.d.ts +9 -4
  43. package/lib/loader.d.ts.map +1 -1
  44. package/lib/loader.js +6 -5
  45. package/lib/loader.js.map +1 -1
  46. package/lib/packageVersion.d.ts +1 -1
  47. package/lib/packageVersion.js +1 -1
  48. package/lib/packageVersion.js.map +1 -1
  49. package/lib/protocolTreeDocumentStorageService.d.ts +2 -2
  50. package/lib/protocolTreeDocumentStorageService.d.ts.map +1 -1
  51. package/package.json +8 -8
  52. package/src/connectionManager.ts +892 -0
  53. package/src/container.ts +39 -39
  54. package/src/contracts.ts +156 -0
  55. package/src/deltaManager.ts +181 -978
  56. package/src/loader.ts +31 -9
  57. package/src/packageVersion.ts +1 -1
@@ -0,0 +1,112 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ import { ITelemetryProperties } from "@fluidframework/common-definitions";
6
+ import { IDeltaQueue, ReadOnlyInfo, IConnectionDetails } from "@fluidframework/container-definitions";
7
+ import { ConnectionMode, IDocumentMessage, ISequencedDocumentMessage, IClientConfiguration, IClientDetails, ISignalMessage } from "@fluidframework/protocol-definitions";
8
+ export declare enum ReconnectMode {
9
+ Never = "Never",
10
+ Disabled = "Disabled",
11
+ Enabled = "Enabled"
12
+ }
13
+ /**
14
+ * Connection manager (implements this interface) is responsible for maintaining connection
15
+ * to relay service.
16
+ */
17
+ export interface IConnectionManager {
18
+ readonly connected: boolean;
19
+ readonly clientId: string | undefined;
20
+ /** The queue of outbound delta messages */
21
+ readonly outbound: IDeltaQueue<IDocumentMessage[]>;
22
+ /** Details of client */
23
+ readonly clientDetails: IClientDetails;
24
+ /** Protocol version being used to communicate with the service */
25
+ readonly version: string;
26
+ /** Max message size allowed to the delta manager */
27
+ readonly maxMessageSize: number;
28
+ /** Service configuration provided by the service. */
29
+ readonly serviceConfiguration: IClientConfiguration | undefined;
30
+ readonly readOnlyInfo: ReadOnlyInfo;
31
+ readonly connectionProps: ITelemetryProperties;
32
+ readonly connectionVerboseProps: ITelemetryProperties;
33
+ /**
34
+ * Prepares message to be sent. Fills in clientSequenceNumber.
35
+ * Called only when active connection is present.
36
+ */
37
+ prepareMessageToSend(message: Omit<IDocumentMessage, "clientSequenceNumber">): IDocumentMessage | undefined;
38
+ /**
39
+ * Called before incomming message is processed. Incomming messages can be comming from connection,
40
+ * but also could come from storage.
41
+ * This call allows connection manager to adjust knowledge about acked ops sent on previous connection.
42
+ * Can be called at any time, including when there is no active connection.
43
+ */
44
+ beforeProcessingIncomingOp(message: ISequencedDocumentMessage): void;
45
+ /**
46
+ * Submits signal to relay service.
47
+ * Called only when active connection is present.
48
+ */
49
+ submitSignal(content: any): void;
50
+ /**
51
+ * Submits messages to relay service.
52
+ * Called only when active connection is present.
53
+ */
54
+ sendMessages(messages: IDocumentMessage[]): void;
55
+ /**
56
+ * Initiates connection to relay service (noop if already connected).
57
+ */
58
+ connect(connectionMode?: ConnectionMode): void;
59
+ /**
60
+ * Disposed connection manager
61
+ */
62
+ dispose(error: any): void;
63
+ }
64
+ /**
65
+ * This interface represents a set of callbacks provided by DeltaManager to IConnectionManager on its creation
66
+ * IConnectionManager instance will use them to communicate to DeltaManager abour various events.
67
+ */
68
+ export interface IConnectionManagerFactoryArgs {
69
+ /**
70
+ * Called by connection manager for each incomming op. Some ops maybe delivered before
71
+ * connectHandler is called (initial ops on socket connection)
72
+ */
73
+ readonly incomingOpHandler: (messages: ISequencedDocumentMessage[], reason: string) => void;
74
+ /**
75
+ * Called by connection manager for each incoming signals.
76
+ * Maybe called before connectHandler is called (initial signals on socket connection)
77
+ */
78
+ readonly signalHandler: (message: ISignalMessage) => void;
79
+ /**
80
+ * Called when connection manager experiences delay in connecting to relay service.
81
+ * This can happen because client is offline, or service is busy and asks to not connect for some time.
82
+ * Can be called many times while not connected.
83
+ * Situation is considered resolved when connection is established and connectHandler is called.
84
+ */
85
+ readonly reconnectionDelayHandler: (delayMs: number, error: unknown) => void;
86
+ /**
87
+ * Called by connection manager whwnever critical error happens and container should be closed.
88
+ * Expects dispose() call in respose to this call.
89
+ */
90
+ readonly closeHandler: (error?: any) => void;
91
+ /**
92
+ * Called whenever connection to relay service is lost.
93
+ */
94
+ readonly disconnectHandler: (reason: string) => void;
95
+ /**
96
+ * Called whenever new connection to rely service is established
97
+ */
98
+ readonly connectHandler: (connection: IConnectionDetails) => void;
99
+ /**
100
+ * Called whenever ping/pong messages are roundtripped on connection.
101
+ */
102
+ readonly pongHandler: (latency: number) => void;
103
+ /**
104
+ * Called whenever connection type changes from writable to read-only or vice versa.
105
+ * Connection can be read-only if user has no edit permissions, or if container forced
106
+ * connection to be read-only.
107
+ * This should not be confused with "read" / "write"connection mode which is internal
108
+ * optimization.
109
+ */
110
+ readonly readonlyChangeHandler: (readonly?: boolean) => void;
111
+ }
112
+ //# sourceMappingURL=contracts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACH,oBAAoB,EACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACH,WAAW,EACX,YAAY,EACZ,kBAAkB,EACrB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACH,cAAc,EACd,gBAAgB,EAChB,yBAAyB,EACzB,oBAAoB,EACpB,cAAc,EACd,cAAc,EACjB,MAAM,sCAAsC,CAAC;AAE9C,oBAAY,aAAa;IACrB,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,OAAO,YAAY;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAE5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAEtC,2CAA2C;IAC3C,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAEnD,wBAAwB;IACxB,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;IAEvC,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,oDAAoD;IACpD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC,qDAAqD;IACrD,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,SAAS,CAAC;IAEhE,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAKpC,QAAQ,CAAC,eAAe,EAAE,oBAAoB,CAAC;IAK/C,QAAQ,CAAC,sBAAsB,EAAE,oBAAoB,CAAC;IAEtD;;;OAGG;IACH,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,GAAG,gBAAgB,GAAG,SAAS,CAAC;IAE5G;;;;;OAKG;IACH,0BAA0B,CAAC,OAAO,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAErE;;;OAGG;IACH,YAAY,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC;IAEjC;;;OAGG;IACH,YAAY,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;IAEjD;;OAEG;IACH,OAAO,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IAE/C;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,6BAA6B;IAC1C;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,EAAE,CAAC,QAAQ,EAAE,yBAAyB,EAAE,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAE5F;;;OAGG;IACH,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAE1D;;;;;OAKG;IACH,QAAQ,CAAC,wBAAwB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAE7E;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAE7C;;OAEG;IACH,QAAQ,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAErD;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,CAAC,UAAU,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAElE;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAEhD;;;;;;OAMG;IACH,QAAQ,CAAC,qBAAqB,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAChE"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ /*!
3
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
4
+ * Licensed under the MIT License.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ReconnectMode = void 0;
8
+ var ReconnectMode;
9
+ (function (ReconnectMode) {
10
+ ReconnectMode["Never"] = "Never";
11
+ ReconnectMode["Disabled"] = "Disabled";
12
+ ReconnectMode["Enabled"] = "Enabled";
13
+ })(ReconnectMode = exports.ReconnectMode || (exports.ReconnectMode = {}));
14
+ //# sourceMappingURL=contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAmBH,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,gCAAe,CAAA;IACf,sCAAqB,CAAA;IACrB,oCAAmB,CAAA;AACvB,CAAC,EAJW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAIxB","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n ITelemetryProperties,\n} from \"@fluidframework/common-definitions\";\nimport {\n IDeltaQueue,\n ReadOnlyInfo,\n IConnectionDetails,\n} from \"@fluidframework/container-definitions\";\nimport {\n ConnectionMode,\n IDocumentMessage,\n ISequencedDocumentMessage,\n IClientConfiguration,\n IClientDetails,\n ISignalMessage,\n} from \"@fluidframework/protocol-definitions\";\n\nexport enum ReconnectMode {\n Never = \"Never\",\n Disabled = \"Disabled\",\n Enabled = \"Enabled\",\n}\n\n/**\n * Connection manager (implements this interface) is responsible for maintaining connection\n * to relay service.\n */\nexport interface IConnectionManager {\n readonly connected: boolean;\n\n readonly clientId: string | undefined;\n\n /** The queue of outbound delta messages */\n readonly outbound: IDeltaQueue<IDocumentMessage[]>;\n\n /** Details of client */\n readonly clientDetails: IClientDetails;\n\n /** Protocol version being used to communicate with the service */\n readonly version: string;\n\n /** Max message size allowed to the delta manager */\n readonly maxMessageSize: number;\n\n /** Service configuration provided by the service. */\n readonly serviceConfiguration: IClientConfiguration | undefined;\n\n readonly readOnlyInfo: ReadOnlyInfo;\n\n // Various connectivity propetries for telemetry describing type of current connection\n // Things like connection mode, service info, etc.\n // Called when connection state changes (connect / disconnect)\n readonly connectionProps: ITelemetryProperties;\n\n // Verbose information about connection logged to telemetry in case of issues with\n // maintaining healphy connection, including op gaps, not receiving join op in time, etc.\n // Contains details information, like sequence numbers at connection time, initial ops info, etc.\n readonly connectionVerboseProps: ITelemetryProperties;\n\n /**\n * Prepares message to be sent. Fills in clientSequenceNumber.\n * Called only when active connection is present.\n */\n prepareMessageToSend(message: Omit<IDocumentMessage, \"clientSequenceNumber\">): IDocumentMessage | undefined;\n\n /**\n * Called before incomming message is processed. Incomming messages can be comming from connection,\n * but also could come from storage.\n * This call allows connection manager to adjust knowledge about acked ops sent on previous connection.\n * Can be called at any time, including when there is no active connection.\n */\n beforeProcessingIncomingOp(message: ISequencedDocumentMessage): void;\n\n /**\n * Submits signal to relay service.\n * Called only when active connection is present.\n */\n submitSignal(content: any): void;\n\n /**\n * Submits messages to relay service.\n * Called only when active connection is present.\n */\n sendMessages(messages: IDocumentMessage[]): void;\n\n /**\n * Initiates connection to relay service (noop if already connected).\n */\n connect(connectionMode?: ConnectionMode): void;\n\n /**\n * Disposed connection manager\n */\n dispose(error: any): void;\n}\n\n/**\n * This interface represents a set of callbacks provided by DeltaManager to IConnectionManager on its creation\n * IConnectionManager instance will use them to communicate to DeltaManager abour various events.\n */\nexport interface IConnectionManagerFactoryArgs {\n /**\n * Called by connection manager for each incomming op. Some ops maybe delivered before\n * connectHandler is called (initial ops on socket connection)\n */\n readonly incomingOpHandler: (messages: ISequencedDocumentMessage[], reason: string) => void,\n\n /**\n * Called by connection manager for each incoming signals.\n * Maybe called before connectHandler is called (initial signals on socket connection)\n */\n readonly signalHandler: (message: ISignalMessage) => void,\n\n /**\n * Called when connection manager experiences delay in connecting to relay service.\n * This can happen because client is offline, or service is busy and asks to not connect for some time.\n * Can be called many times while not connected.\n * Situation is considered resolved when connection is established and connectHandler is called.\n */\n readonly reconnectionDelayHandler: (delayMs: number, error: unknown) => void,\n\n /**\n * Called by connection manager whwnever critical error happens and container should be closed.\n * Expects dispose() call in respose to this call.\n */\n readonly closeHandler: (error?: any) => void,\n\n /**\n * Called whenever connection to relay service is lost.\n */\n readonly disconnectHandler: (reason: string) => void,\n\n /**\n * Called whenever new connection to rely service is established\n */\n readonly connectHandler: (connection: IConnectionDetails) => void,\n\n /**\n * Called whenever ping/pong messages are roundtripped on connection.\n */\n readonly pongHandler: (latency: number) => void,\n\n /**\n * Called whenever connection type changes from writable to read-only or vice versa.\n * Connection can be read-only if user has no edit permissions, or if container forced\n * connection to be read-only.\n * This should not be confused with \"read\" / \"write\"connection mode which is internal\n * optimization.\n */\n readonly readonlyChangeHandler: (readonly?: boolean) => void,\n}\n"]}
@@ -3,20 +3,16 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
  import { ITelemetryLogger, IEventProvider, ITelemetryProperties, ITelemetryErrorEvent } from "@fluidframework/common-definitions";
6
- import { IConnectionDetails, IDeltaHandlerStrategy, IDeltaManager, IDeltaManagerEvents, IDeltaQueue, ICriticalContainerError, IThrottlingWarning, ReadOnlyInfo } from "@fluidframework/container-definitions";
6
+ import { IDeltaHandlerStrategy, IDeltaManager, IDeltaManagerEvents, IDeltaQueue, ICriticalContainerError, IThrottlingWarning } from "@fluidframework/container-definitions";
7
7
  import { TypedEventEmitter } from "@fluidframework/common-utils";
8
8
  import { IDocumentService } from "@fluidframework/driver-definitions";
9
- import { ConnectionMode, IClient, IClientConfiguration, IClientDetails, IDocumentMessage, ISequencedDocumentMessage, ISignalMessage, MessageType } from "@fluidframework/protocol-definitions";
9
+ import { IDocumentMessage, ISequencedDocumentMessage, ISignalMessage, MessageType, ConnectionMode } from "@fluidframework/protocol-definitions";
10
+ import { IConnectionManagerFactoryArgs, IConnectionManager } from "./contracts";
10
11
  export interface IConnectionArgs {
11
12
  mode?: ConnectionMode;
12
13
  fetchOpsFromStorage?: boolean;
13
14
  reason: string;
14
15
  }
15
- export declare enum ReconnectMode {
16
- Never = "Never",
17
- Disabled = "Disabled",
18
- Enabled = "Enabled"
19
- }
20
16
  /**
21
17
  * Includes events emitted by the concrete implementation DeltaManager
22
18
  * but not exposed on the public interface IDeltaManager
@@ -29,22 +25,14 @@ export interface IDeltaManagerInternalEvents extends IDeltaManagerEvents {
29
25
  * Manages the flow of both inbound and outbound messages. This class ensures that shared objects receive delta
30
26
  * messages in order regardless of possible network conditions or timings causing out of order delivery.
31
27
  */
32
- export declare class DeltaManager extends TypedEventEmitter<IDeltaManagerInternalEvents> implements IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>, IEventProvider<IDeltaManagerInternalEvents> {
28
+ export declare class DeltaManager<TConnectionManager extends IConnectionManager> extends TypedEventEmitter<IDeltaManagerInternalEvents> implements IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>, IEventProvider<IDeltaManagerInternalEvents> {
33
29
  private readonly serviceProvider;
34
- private client;
35
30
  private readonly logger;
36
31
  private readonly _active;
32
+ readonly connectionManager: TConnectionManager;
37
33
  get active(): boolean;
38
34
  get disposed(): boolean;
39
- readonly clientDetails: IClientDetails;
40
35
  get IDeltaSender(): this;
41
- /**
42
- * Controls whether the DeltaManager will automatically reconnect to the delta stream after receiving a disconnect.
43
- */
44
- private _reconnectMode;
45
- private _readonlyPermissions;
46
- private _forceReadonly;
47
- private readonly defaultReconnectionMode;
48
36
  private pending;
49
37
  private fetchReason;
50
38
  private minSequenceNumber;
@@ -58,34 +46,17 @@ export declare class DeltaManager extends TypedEventEmitter<IDeltaManagerInterna
58
46
  private initSequenceNumber;
59
47
  private readonly _inbound;
60
48
  private readonly _inboundSignal;
61
- private readonly _outbound;
62
- private connectionP;
63
- private connection;
64
- private clientSequenceNumber;
65
- private clientSequenceNumberObserved;
66
- private trailingNoopCount;
67
49
  private closed;
68
- private readonly deltaStreamDelayId;
69
- private readonly deltaStorageDelayId;
70
- private lastSubmittedClientId;
71
50
  private handler;
72
51
  private deltaStorage;
73
- private messageBuffer;
74
- private connectFirstConnection;
75
52
  private readonly throttlingIdSet;
76
53
  private timeTillThrottling;
77
- private connectionStateProps;
78
- private _hasCheckpointSequenceNumber;
79
54
  private readonly closeAbortController;
80
- private pendingReconnect;
81
- private downgradedConnection;
82
- /**
83
- * Tells if current connection has checkpoint information.
84
- * I.e. we know how far behind the client was at the time of establishing connection
85
- */
86
- get hasCheckpointSequenceNumber(): boolean;
55
+ private readonly deltaStorageDelayId;
56
+ private readonly deltaStreamDelayId;
57
+ private messageBuffer;
58
+ private _checkpointSequenceNumber;
87
59
  get inbound(): IDeltaQueue<ISequencedDocumentMessage>;
88
- get outbound(): IDeltaQueue<IDocumentMessage[]>;
89
60
  get inboundSignal(): IDeltaQueue<ISignalMessage>;
90
61
  get initialSequenceNumber(): number;
91
62
  get lastSequenceNumber(): number;
@@ -93,15 +64,17 @@ export declare class DeltaManager extends TypedEventEmitter<IDeltaManagerInterna
93
64
  get lastKnownSeqNumber(): number;
94
65
  get referenceTerm(): number;
95
66
  get minimumSequenceNumber(): number;
96
- get maxMessageSize(): number;
97
- get version(): string;
98
- get serviceConfiguration(): IClientConfiguration | undefined;
99
- get scopes(): string[] | undefined;
100
- get socketDocumentId(): string | undefined;
101
67
  /**
102
- * The current connection mode, initially read.
68
+ * Tells if current connection has checkpoint information.
69
+ * I.e. we know how far behind the client was at the time of establishing connection
103
70
  */
104
- get connectionMode(): ConnectionMode;
71
+ get hasCheckpointSequenceNumber(): boolean;
72
+ get maxMessageSize(): number;
73
+ get version(): string;
74
+ get serviceConfiguration(): import("@fluidframework/protocol-definitions").IClientConfiguration | undefined;
75
+ get outbound(): IDeltaQueue<IDocumentMessage[]>;
76
+ get readOnlyInfo(): import("@fluidframework/container-definitions").ReadOnlyInfo;
77
+ get clientDetails(): import("@fluidframework/protocol-definitions").IClientDetails;
105
78
  /**
106
79
  * Tells if container is in read-only mode.
107
80
  * Data stores should listen for "readonly" notifications and disallow user
@@ -113,41 +86,10 @@ export declare class DeltaManager extends TypedEventEmitter<IDeltaManagerInterna
113
86
  * @deprecated - use readOnlyInfo
114
87
  */
115
88
  get readonly(): boolean | undefined;
116
- get readOnlyInfo(): ReadOnlyInfo;
117
- /**
118
- * Automatic reconnecting enabled or disabled.
119
- * If set to Never, then reconnecting will never be allowed.
120
- */
121
- get reconnectMode(): ReconnectMode;
122
- shouldJoinWrite(): boolean;
123
- /**
124
- * Returns set of props that can be logged in telemetry that provide some insights / statistics
125
- * about current or last connection (if there is no connection at the moment)
126
- */
127
- connectionProps(): ITelemetryProperties;
128
- /**
129
- * Enables or disables automatic reconnecting.
130
- * Will throw an error if reconnectMode set to Never.
131
- */
132
- setAutoReconnect(mode: ReconnectMode): void;
133
- /**
134
- * Sends signal to runtime (and data stores) to be read-only.
135
- * Hosts may have read only views, indicating to data stores that no edits are allowed.
136
- * This is independent from this._readonlyPermissions (permissions) and this.connectionMode
137
- * (server can return "write" mode even when asked for "read")
138
- * Leveraging same "readonly" event as runtime & data stores should behave the same in such case
139
- * as in read-only permissions.
140
- * But this.active can be used by some DDSes to figure out if ops can be sent
141
- * (for example, read-only view still participates in code proposals / upgrades decisions)
142
- *
143
- * Forcing Readonly does not prevent DDS from generating ops. It is up to user code to honour
144
- * the readonly flag. If ops are generated, they will accumulate locally and not be sent. If
145
- * there are pending in the outbound queue, it will stop sending until force readonly is
146
- * cleared.
147
- *
148
- * @param readonly - set or clear force readonly.
149
- */
150
- forceReadonly(readonly: boolean): void;
89
+ submit(type: MessageType, contents: any, batch?: boolean, metadata?: any): number;
90
+ submitSignal(content: any): void;
91
+ flush(): void;
92
+ get connectionProps(): ITelemetryProperties;
151
93
  /**
152
94
  * Log error event with a bunch of internal to DeltaManager information about state of op processing
153
95
  * Used to diagnose connectivity issues related to op processing (i.e. cases where for some reason
@@ -155,39 +97,21 @@ export declare class DeltaManager extends TypedEventEmitter<IDeltaManagerInterna
155
97
  * @param event - Event to log.
156
98
  */
157
99
  logConnectionIssue(event: ITelemetryErrorEvent): void;
158
- private set_readonlyPermissions;
159
- constructor(serviceProvider: () => IDocumentService | undefined, client: IClient, logger: ITelemetryLogger, reconnectAllowed: boolean, _active: () => boolean);
100
+ constructor(serviceProvider: () => IDocumentService | undefined, logger: ITelemetryLogger, _active: () => boolean, createConnectionManager: (props: IConnectionManagerFactoryArgs) => TConnectionManager);
101
+ private connectHandler;
160
102
  dispose(): void;
161
103
  /**
162
104
  * Sets the sequence number from which inbound messages should be returned
163
105
  */
164
106
  attachOpHandler(minSequenceNumber: number, sequenceNumber: number, term: number, handler: IDeltaHandlerStrategy, prefetchType?: "cached" | "all" | "none"): Promise<void>;
165
- private static detailsFromConnection;
166
- connect(args: IConnectionArgs): Promise<IConnectionDetails>;
167
- /**
168
- * Start the connection. Any error should result in container being close.
169
- * And report the error if it excape for any reason.
170
- * @param args - The connection arguments
171
- */
172
- private triggerConnect;
173
- private connectCore;
174
- flush(): void;
175
- /**
176
- * Submits the given delta returning the client sequence number for the message. Contents is the actual
177
- * contents of the message. appData is optional metadata that can be attached to the op by the app.
178
- *
179
- * If batch is set to true then the submit will be batched - and as a result guaranteed to be ordered sequentially
180
- * in the global sequencing space. The batch will be flushed either when flush is called or when a non-batched
181
- * op is submitted.
182
- */
183
- submit(type: MessageType, contents: any, batch?: boolean, metadata?: any): number;
184
- submitSignal(content: any): void;
107
+ connect(args: IConnectionArgs): void;
185
108
  private getDeltas;
186
109
  /**
187
110
  * Closes the connection and clears inbound & outbound queues.
188
111
  */
189
112
  close(error?: ICriticalContainerError): void;
190
113
  refreshDelayInfo(id: string): void;
114
+ private disconnectHandler;
191
115
  /**
192
116
  * Emit info about a delay in service communication on account of throttling.
193
117
  * @param id - Id of the connection that is delayed
@@ -195,39 +119,6 @@ export declare class DeltaManager extends TypedEventEmitter<IDeltaManagerInterna
195
119
  * @param error - error object indicating the throttling
196
120
  */
197
121
  emitDelayInfo(id: string, delayMs: number, error: unknown): void;
198
- private readonly opHandler;
199
- private readonly signalHandler;
200
- private readonly nackHandler;
201
- private readonly disconnectHandler;
202
- private readonly errorHandler;
203
- private readonly pongHandler;
204
- /**
205
- * Once we've successfully gotten a connection, we need to set up state, attach event listeners, and process
206
- * initial messages.
207
- * @param connection - The newly established connection
208
- */
209
- private setupNewSuccessfulConnection;
210
- /**
211
- * Disconnect the current connection.
212
- * @param reason - Text description of disconnect reason to emit with disconnect event
213
- */
214
- private disconnectFromDeltaStream;
215
- /**
216
- * Disconnect the current connection and reconnect.
217
- * @param connection - The connection that wants to reconnect - no-op if it's different from this.connection
218
- * @param requestedMode - Read or write
219
- * @param error - Error reconnect information including whether or not to reconnect
220
- * @returns A promise that resolves when the connection is reestablished or we stop trying
221
- */
222
- private reconnectOnError;
223
- /**
224
- * Disconnect the current connection and reconnect.
225
- * @param connection - The connection that wants to reconnect - no-op if it's different from this.connection
226
- * @param requestedMode - Read or write
227
- * @param error - Error reconnect information including whether or not to reconnect
228
- * @returns A promise that resolves when the connection is reestablished or we stop trying
229
- */
230
- private reconnectOnErrorCore;
231
122
  private comparableMessagePayload;
232
123
  private enqueueMessages;
233
124
  private processInboundMessage;
@@ -1 +1 @@
1
- {"version":3,"file":"deltaManager.d.ts","sourceRoot":"","sources":["../src/deltaManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deltaManager.d.ts","sourceRoot":"","sources":["../src/deltaManager.ts"],"names":[],"mappings":"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"}