@flowcore/sdk 1.11.2 → 1.11.4

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/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.11.4](https://github.com/flowcore-io/flowcore-sdk/compare/v1.11.3...v1.11.4) (2025-02-12)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * do not reconnect on 1005 ([4949d97](https://github.com/flowcore-io/flowcore-sdk/commit/4949d978c98412a5019a0cd6614d418cad10dc59))
9
+ * use code 1000 when manually disconnecting ([c83202d](https://github.com/flowcore-io/flowcore-sdk/commit/c83202d42e23aeb3d41cfc93ee131b21b2ba11f6))
10
+
11
+ ## [1.11.3](https://github.com/flowcore-io/flowcore-sdk/compare/v1.11.2...v1.11.3) (2025-02-12)
12
+
13
+
14
+ ### Bug Fixes
15
+
16
+ * add isopen and isconnecting to notification client ([fa90737](https://github.com/flowcore-io/flowcore-sdk/commit/fa907373c05a255889978190bea9a6e3750b18f9))
17
+ * add return types ([c51fbac](https://github.com/flowcore-io/flowcore-sdk/commit/c51fbac0d4fd1ac6208451837fb192afa3ffa6bb))
18
+
3
19
  ## [1.11.2](https://github.com/flowcore-io/flowcore-sdk/compare/v1.11.1...v1.11.2) (2025-02-12)
4
20
 
5
21
 
@@ -46,6 +46,8 @@ export declare class NotificationClient {
46
46
  private eventCount;
47
47
  private reconnectInterval;
48
48
  private reconnectAttempts;
49
+ private _isOpen;
50
+ private _isConnecting;
49
51
  /**
50
52
  * Creates a new NotificationClient instance
51
53
  * @param observer - RxJS Subject for emitting notification events
@@ -59,6 +61,14 @@ export declare class NotificationClient {
59
61
  flowType?: string;
60
62
  eventType?: string;
61
63
  }, options?: Partial<NotificationClientOptions>);
64
+ /**
65
+ * Is the websocket connection open
66
+ */
67
+ get isOpen(): boolean;
68
+ /**
69
+ * Is the websocket connection currently connecting
70
+ */
71
+ get isConnecting(): boolean;
62
72
  /**
63
73
  * Establishes WebSocket connection and sets up event handlers
64
74
  */
@@ -1 +1 @@
1
- {"version":3,"file":"notification-client.d.ts","sourceRoot":"","sources":["../../src/common/notification-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AASnC,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAM/D;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,EAAE,MAAM,CAAA;QACf,UAAU,EAAE,MAAM,CAAA;QAClB,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,MAAM,CAAA;QACjB,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;CACF,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE,MAAM,OAAO,CAAC;QACtB,WAAW,EAAE,MAAM,CAAA;KACpB,CAAC,CAAA;CACH,CAAA;AAcD;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,iBAAiB,EAAE,MAAM,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAKD;;;GAGG;AACH,qBAAa,kBAAkB;IAiB3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAlBnC,OAAO,CAAC,GAAG,CAA+C;IAC1D,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,iBAAiB,CAAQ;IACjC,OAAO,CAAC,iBAAiB,CAAI;IAE7B;;;;;;OAMG;gBAEgB,QAAQ,EAAE,OAAO,CAAC,iBAAiB,CAAC,EACpC,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE;QACjC,MAAM,EAAE,MAAM,CAAA;QACd,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,EACD,OAAO,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC;IAU9C;;OAEG;IACG,OAAO;IAyHb;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAqBxB;;OAEG;IACH,UAAU;IAMV;;;OAGG;IACI,eAAe,CAAC,GAAG,EAAE,MAAM;CAGnC"}
1
+ {"version":3,"file":"notification-client.d.ts","sourceRoot":"","sources":["../../src/common/notification-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AASnC,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAM/D;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,EAAE,MAAM,CAAA;QACf,UAAU,EAAE,MAAM,CAAA;QAClB,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,MAAM,CAAA;QACjB,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;CACF,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE,MAAM,OAAO,CAAC;QACtB,WAAW,EAAE,MAAM,CAAA;KACpB,CAAC,CAAA;CACH,CAAA;AAcD;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,iBAAiB,EAAE,MAAM,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAKD;;;GAGG;AACH,qBAAa,kBAAkB;IAmB3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IApBnC,OAAO,CAAC,GAAG,CAA+C;IAC1D,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,iBAAiB,CAAQ;IACjC,OAAO,CAAC,iBAAiB,CAAI;IAC7B,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,aAAa,CAAiB;IAEtC;;;;;;OAMG;gBAEgB,QAAQ,EAAE,OAAO,CAAC,iBAAiB,CAAC,EACpC,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE;QACjC,MAAM,EAAE,MAAM,CAAA;QACd,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,EACD,OAAO,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC;IAU9C;;OAEG;IACH,IAAW,MAAM,IAAI,OAAO,CAE3B;IAED;;OAEG;IACH,IAAW,YAAY,IAAI,OAAO,CAEjC;IAED;;OAEG;IACG,OAAO;IAmIb;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAqBxB;;OAEG;IACH,UAAU;IAMV;;;OAGG;IACI,eAAe,CAAC,GAAG,EAAE,MAAM;CAGnC"}
@@ -78,6 +78,18 @@ export class NotificationClient {
78
78
  writable: true,
79
79
  value: 0
80
80
  });
81
+ Object.defineProperty(this, "_isOpen", {
82
+ enumerable: true,
83
+ configurable: true,
84
+ writable: true,
85
+ value: false
86
+ });
87
+ Object.defineProperty(this, "_isConnecting", {
88
+ enumerable: true,
89
+ configurable: true,
90
+ writable: true,
91
+ value: false
92
+ });
81
93
  this.options = {
82
94
  reconnectInterval: 1000,
83
95
  ...options,
@@ -85,10 +97,27 @@ export class NotificationClient {
85
97
  this.logger = options?.logger ?? defaultLogger;
86
98
  this.reconnectInterval = options?.reconnectInterval ?? 1000;
87
99
  }
100
+ /**
101
+ * Is the websocket connection open
102
+ */
103
+ get isOpen() {
104
+ return this._isOpen;
105
+ }
106
+ /**
107
+ * Is the websocket connection currently connecting
108
+ */
109
+ get isConnecting() {
110
+ return this._isConnecting;
111
+ }
88
112
  /**
89
113
  * Establishes WebSocket connection and sets up event handlers
90
114
  */
91
115
  async connect() {
116
+ if (this._isConnecting || this._isOpen) {
117
+ this.logger.debug("Is already connecting or open");
118
+ return;
119
+ }
120
+ this._isConnecting = true;
92
121
  const token = await this.oidcClient.getToken();
93
122
  const flowcoreClient = new FlowcoreClient({
94
123
  getBearerToken: () => Promise.resolve(token.accessToken),
@@ -116,6 +145,8 @@ export class NotificationClient {
116
145
  }
117
146
  this.webSocket = new dntShim.WebSocket(`${this.url}?token=${encodeURIComponent(token.accessToken)}`);
118
147
  this.webSocket.onopen = () => {
148
+ this._isOpen = true;
149
+ this._isConnecting = false;
119
150
  this.logger.info("WebSocket connection opened.");
120
151
  this.reconnectInterval = this.options.reconnectInterval;
121
152
  this.reconnectAttempts = 0;
@@ -167,11 +198,13 @@ export class NotificationClient {
167
198
  }
168
199
  };
169
200
  this.webSocket.onclose = (event) => {
201
+ this._isOpen = false;
170
202
  this.logger.info(`Connection closed: Code [${event.code}], Reason: ${event.reason}`);
171
- if (event.code !== 1000) {
203
+ if (![1000].includes(event.code)) {
172
204
  this.attemptReconnect();
173
205
  return;
174
206
  }
207
+ this._isConnecting = false;
175
208
  this.observer.complete();
176
209
  };
177
210
  this.webSocket.onerror = (error) => {
@@ -189,6 +222,7 @@ export class NotificationClient {
189
222
  return;
190
223
  }
191
224
  this.reconnectAttempts++;
225
+ this._isConnecting = true;
192
226
  this.logger.info(`Attempting reconnection ${this.reconnectAttempts}${this.options.maxReconnects ? `/${this.options.maxReconnects}` : ""} in ${this.reconnectInterval} ms...`);
193
227
  setTimeout(() => {
194
228
  this.connect();
@@ -200,7 +234,7 @@ export class NotificationClient {
200
234
  */
201
235
  disconnect() {
202
236
  if (this.webSocket) {
203
- this.webSocket.close();
237
+ this.webSocket.close(1000, "Disconnected by user");
204
238
  }
205
239
  }
206
240
  /**
@@ -2,4 +2,5 @@ export type { DataCore } from "./data-core.js";
2
2
  export type { EventType } from "./event-type.js";
3
3
  export type { FlowType } from "./flow-type.js";
4
4
  export type { FlowcoreEvent } from "./event.js";
5
+ export type { Tenant } from "./tenant.js";
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC/C,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowcore/sdk",
3
- "version": "1.11.2",
3
+ "version": "1.11.4",
4
4
  "description": "Flowcore SDK",
5
5
  "homepage": "https://github.com/flowcore-io/flowcore-sdk#readme",
6
6
  "repository": {
@@ -46,6 +46,8 @@ export declare class NotificationClient {
46
46
  private eventCount;
47
47
  private reconnectInterval;
48
48
  private reconnectAttempts;
49
+ private _isOpen;
50
+ private _isConnecting;
49
51
  /**
50
52
  * Creates a new NotificationClient instance
51
53
  * @param observer - RxJS Subject for emitting notification events
@@ -59,6 +61,14 @@ export declare class NotificationClient {
59
61
  flowType?: string;
60
62
  eventType?: string;
61
63
  }, options?: Partial<NotificationClientOptions>);
64
+ /**
65
+ * Is the websocket connection open
66
+ */
67
+ get isOpen(): boolean;
68
+ /**
69
+ * Is the websocket connection currently connecting
70
+ */
71
+ get isConnecting(): boolean;
62
72
  /**
63
73
  * Establishes WebSocket connection and sets up event handlers
64
74
  */
@@ -1 +1 @@
1
- {"version":3,"file":"notification-client.d.ts","sourceRoot":"","sources":["../../src/common/notification-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AASnC,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAM/D;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,EAAE,MAAM,CAAA;QACf,UAAU,EAAE,MAAM,CAAA;QAClB,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,MAAM,CAAA;QACjB,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;CACF,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE,MAAM,OAAO,CAAC;QACtB,WAAW,EAAE,MAAM,CAAA;KACpB,CAAC,CAAA;CACH,CAAA;AAcD;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,iBAAiB,EAAE,MAAM,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAKD;;;GAGG;AACH,qBAAa,kBAAkB;IAiB3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAlBnC,OAAO,CAAC,GAAG,CAA+C;IAC1D,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,iBAAiB,CAAQ;IACjC,OAAO,CAAC,iBAAiB,CAAI;IAE7B;;;;;;OAMG;gBAEgB,QAAQ,EAAE,OAAO,CAAC,iBAAiB,CAAC,EACpC,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE;QACjC,MAAM,EAAE,MAAM,CAAA;QACd,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,EACD,OAAO,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC;IAU9C;;OAEG;IACG,OAAO;IAyHb;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAqBxB;;OAEG;IACH,UAAU;IAMV;;;OAGG;IACI,eAAe,CAAC,GAAG,EAAE,MAAM;CAGnC"}
1
+ {"version":3,"file":"notification-client.d.ts","sourceRoot":"","sources":["../../src/common/notification-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AASnC,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAM/D;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,EAAE,MAAM,CAAA;QACf,UAAU,EAAE,MAAM,CAAA;QAClB,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,MAAM,CAAA;QACjB,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;CACF,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE,MAAM,OAAO,CAAC;QACtB,WAAW,EAAE,MAAM,CAAA;KACpB,CAAC,CAAA;CACH,CAAA;AAcD;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,iBAAiB,EAAE,MAAM,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAKD;;;GAGG;AACH,qBAAa,kBAAkB;IAmB3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IApBnC,OAAO,CAAC,GAAG,CAA+C;IAC1D,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,iBAAiB,CAAQ;IACjC,OAAO,CAAC,iBAAiB,CAAI;IAC7B,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,aAAa,CAAiB;IAEtC;;;;;;OAMG;gBAEgB,QAAQ,EAAE,OAAO,CAAC,iBAAiB,CAAC,EACpC,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE;QACjC,MAAM,EAAE,MAAM,CAAA;QACd,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,EACD,OAAO,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC;IAU9C;;OAEG;IACH,IAAW,MAAM,IAAI,OAAO,CAE3B;IAED;;OAEG;IACH,IAAW,YAAY,IAAI,OAAO,CAEjC;IAED;;OAEG;IACG,OAAO;IAmIb;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAqBxB;;OAEG;IACH,UAAU;IAMV;;;OAGG;IACI,eAAe,CAAC,GAAG,EAAE,MAAM;CAGnC"}
@@ -104,6 +104,18 @@ class NotificationClient {
104
104
  writable: true,
105
105
  value: 0
106
106
  });
107
+ Object.defineProperty(this, "_isOpen", {
108
+ enumerable: true,
109
+ configurable: true,
110
+ writable: true,
111
+ value: false
112
+ });
113
+ Object.defineProperty(this, "_isConnecting", {
114
+ enumerable: true,
115
+ configurable: true,
116
+ writable: true,
117
+ value: false
118
+ });
107
119
  this.options = {
108
120
  reconnectInterval: 1000,
109
121
  ...options,
@@ -111,10 +123,27 @@ class NotificationClient {
111
123
  this.logger = options?.logger ?? logger_js_1.defaultLogger;
112
124
  this.reconnectInterval = options?.reconnectInterval ?? 1000;
113
125
  }
126
+ /**
127
+ * Is the websocket connection open
128
+ */
129
+ get isOpen() {
130
+ return this._isOpen;
131
+ }
132
+ /**
133
+ * Is the websocket connection currently connecting
134
+ */
135
+ get isConnecting() {
136
+ return this._isConnecting;
137
+ }
114
138
  /**
115
139
  * Establishes WebSocket connection and sets up event handlers
116
140
  */
117
141
  async connect() {
142
+ if (this._isConnecting || this._isOpen) {
143
+ this.logger.debug("Is already connecting or open");
144
+ return;
145
+ }
146
+ this._isConnecting = true;
118
147
  const token = await this.oidcClient.getToken();
119
148
  const flowcoreClient = new flowcore_client_js_1.FlowcoreClient({
120
149
  getBearerToken: () => Promise.resolve(token.accessToken),
@@ -142,6 +171,8 @@ class NotificationClient {
142
171
  }
143
172
  this.webSocket = new dntShim.WebSocket(`${this.url}?token=${encodeURIComponent(token.accessToken)}`);
144
173
  this.webSocket.onopen = () => {
174
+ this._isOpen = true;
175
+ this._isConnecting = false;
145
176
  this.logger.info("WebSocket connection opened.");
146
177
  this.reconnectInterval = this.options.reconnectInterval;
147
178
  this.reconnectAttempts = 0;
@@ -193,11 +224,13 @@ class NotificationClient {
193
224
  }
194
225
  };
195
226
  this.webSocket.onclose = (event) => {
227
+ this._isOpen = false;
196
228
  this.logger.info(`Connection closed: Code [${event.code}], Reason: ${event.reason}`);
197
- if (event.code !== 1000) {
229
+ if (![1000].includes(event.code)) {
198
230
  this.attemptReconnect();
199
231
  return;
200
232
  }
233
+ this._isConnecting = false;
201
234
  this.observer.complete();
202
235
  };
203
236
  this.webSocket.onerror = (error) => {
@@ -215,6 +248,7 @@ class NotificationClient {
215
248
  return;
216
249
  }
217
250
  this.reconnectAttempts++;
251
+ this._isConnecting = true;
218
252
  this.logger.info(`Attempting reconnection ${this.reconnectAttempts}${this.options.maxReconnects ? `/${this.options.maxReconnects}` : ""} in ${this.reconnectInterval} ms...`);
219
253
  setTimeout(() => {
220
254
  this.connect();
@@ -226,7 +260,7 @@ class NotificationClient {
226
260
  */
227
261
  disconnect() {
228
262
  if (this.webSocket) {
229
- this.webSocket.close();
263
+ this.webSocket.close(1000, "Disconnected by user");
230
264
  }
231
265
  }
232
266
  /**
@@ -2,4 +2,5 @@ export type { DataCore } from "./data-core.js";
2
2
  export type { EventType } from "./event-type.js";
3
3
  export type { FlowType } from "./flow-type.js";
4
4
  export type { FlowcoreEvent } from "./event.js";
5
+ export type { Tenant } from "./tenant.js";
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC/C,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA"}