@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 +16 -0
- package/esm/common/notification-client.d.ts +10 -0
- package/esm/common/notification-client.d.ts.map +1 -1
- package/esm/common/notification-client.js +36 -2
- package/esm/contracts/index.d.ts +1 -0
- package/esm/contracts/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/script/common/notification-client.d.ts +10 -0
- package/script/common/notification-client.d.ts.map +1 -1
- package/script/common/notification-client.js +36 -2
- package/script/contracts/index.d.ts +1 -0
- package/script/contracts/index.d.ts.map +1 -1
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;
|
|
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
|
|
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
|
/**
|
package/esm/contracts/index.d.ts
CHANGED
|
@@ -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
|
@@ -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;
|
|
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
|
|
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"}
|