@rc-ex/ws 1.3.2 → 1.3.5

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 (88) hide show
  1. package/dist/cjs/exceptions/ClosedException.js +26 -0
  2. package/dist/cjs/exceptions/ClosedException.js.map +1 -0
  3. package/{lib → dist/cjs}/exceptions/ConnectionException.d.ts +1 -1
  4. package/dist/cjs/exceptions/ConnectionException.js +35 -0
  5. package/dist/cjs/exceptions/ConnectionException.js.map +1 -0
  6. package/dist/cjs/exceptions/TimeoutException.js +26 -0
  7. package/dist/cjs/exceptions/TimeoutException.js.map +1 -0
  8. package/{lib/esm → dist/cjs}/index.d.ts +6 -6
  9. package/dist/cjs/index.js +515 -0
  10. package/dist/cjs/index.js.map +1 -0
  11. package/{lib/esm → dist/cjs}/rest.d.ts +2 -2
  12. package/dist/cjs/rest.js +104 -0
  13. package/dist/cjs/rest.js.map +1 -0
  14. package/{lib → dist/cjs}/subscription.d.ts +3 -3
  15. package/dist/cjs/subscription.js +178 -0
  16. package/dist/cjs/subscription.js.map +1 -0
  17. package/{lib → dist/cjs}/types.d.ts +2 -2
  18. package/{lib/esm → dist/cjs}/utils.d.ts +1 -1
  19. package/dist/cjs/utils.js +116 -0
  20. package/dist/cjs/utils.js.map +1 -0
  21. package/dist/esm/exceptions/ClosedException.js +24 -0
  22. package/dist/esm/exceptions/ClosedException.js.map +1 -0
  23. package/{lib → dist}/esm/exceptions/ConnectionException.d.ts +1 -1
  24. package/dist/esm/exceptions/ConnectionException.js +30 -0
  25. package/dist/esm/exceptions/ConnectionException.js.map +1 -0
  26. package/dist/esm/exceptions/TimeoutException.js +24 -0
  27. package/dist/esm/exceptions/TimeoutException.js.map +1 -0
  28. package/{lib → dist/esm}/index.d.ts +6 -6
  29. package/dist/esm/index.js +509 -0
  30. package/dist/esm/index.js.map +1 -0
  31. package/{lib → dist/esm}/rest.d.ts +2 -2
  32. package/dist/esm/rest.js +98 -0
  33. package/dist/esm/rest.js.map +1 -0
  34. package/{lib → dist}/esm/subscription.d.ts +3 -3
  35. package/dist/esm/subscription.js +173 -0
  36. package/dist/esm/subscription.js.map +1 -0
  37. package/{lib → dist}/esm/types.d.ts +2 -2
  38. package/dist/esm/types.js +2 -0
  39. package/dist/esm/types.js.map +1 -0
  40. package/{lib → dist/esm}/utils.d.ts +1 -1
  41. package/dist/esm/utils.js +111 -0
  42. package/dist/esm/utils.js.map +1 -0
  43. package/package.json +23 -9
  44. package/src/exceptions/ConnectionException.ts +2 -2
  45. package/src/index.ts +10 -10
  46. package/src/rest.ts +4 -4
  47. package/src/subscription.ts +5 -9
  48. package/src/types.ts +2 -2
  49. package/src/utils.ts +3 -3
  50. package/tsconfig.cjs.json +28 -0
  51. package/tsconfig.esm.json +28 -0
  52. package/lib/esm/exceptions/ClosedException.js +0 -9
  53. package/lib/esm/exceptions/ClosedException.js.map +0 -1
  54. package/lib/esm/exceptions/ConnectionException.js +0 -18
  55. package/lib/esm/exceptions/ConnectionException.js.map +0 -1
  56. package/lib/esm/exceptions/TimeoutException.js +0 -9
  57. package/lib/esm/exceptions/TimeoutException.js.map +0 -1
  58. package/lib/esm/index.js +0 -334
  59. package/lib/esm/index.js.map +0 -1
  60. package/lib/esm/rest.js +0 -54
  61. package/lib/esm/rest.js.map +0 -1
  62. package/lib/esm/subscription.js +0 -96
  63. package/lib/esm/subscription.js.map +0 -1
  64. package/lib/esm/utils.js +0 -72
  65. package/lib/esm/utils.js.map +0 -1
  66. package/lib/exceptions/ClosedException.js +0 -9
  67. package/lib/exceptions/ClosedException.js.map +0 -1
  68. package/lib/exceptions/ConnectionException.js +0 -18
  69. package/lib/exceptions/ConnectionException.js.map +0 -1
  70. package/lib/exceptions/TimeoutException.js +0 -9
  71. package/lib/exceptions/TimeoutException.js.map +0 -1
  72. package/lib/index.js +0 -334
  73. package/lib/index.js.map +0 -1
  74. package/lib/rest.js +0 -54
  75. package/lib/rest.js.map +0 -1
  76. package/lib/subscription.js +0 -96
  77. package/lib/subscription.js.map +0 -1
  78. package/lib/types.js +0 -3
  79. package/lib/types.js.map +0 -1
  80. package/lib/utils.js +0 -72
  81. package/lib/utils.js.map +0 -1
  82. package/tsconfig.json +0 -8
  83. /package/{lib/esm → dist/cjs}/exceptions/ClosedException.d.ts +0 -0
  84. /package/{lib/esm → dist/cjs}/exceptions/TimeoutException.d.ts +0 -0
  85. /package/{lib/esm → dist/cjs}/types.js +0 -0
  86. /package/{lib/esm → dist/cjs}/types.js.map +0 -0
  87. /package/{lib → dist/esm}/exceptions/ClosedException.d.ts +0 -0
  88. /package/{lib → dist/esm}/exceptions/TimeoutException.d.ts +0 -0
package/lib/index.js DELETED
@@ -1,334 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Events = void 0;
7
- const SdkExtension_js_1 = __importDefault(require("@rc-ex/core/lib/esm/SdkExtension.js"));
8
- const isomorphic_ws_1 = __importDefault(require("isomorphic-ws"));
9
- const hyperid_1 = __importDefault(require("hyperid"));
10
- const events_1 = require("events");
11
- const wait_for_async_1 = __importDefault(require("wait-for-async"));
12
- const RestException_js_1 = __importDefault(require("@rc-ex/core/lib/esm/RestException.js"));
13
- const rest_js_1 = require("./rest.js");
14
- const subscription_js_1 = __importDefault(require("./subscription.js"));
15
- const ConnectionException_js_1 = __importDefault(require("./exceptions/ConnectionException.js"));
16
- const utils_js_1 = __importDefault(require("./utils.js"));
17
- const CONNECTING = 0;
18
- const OPEN = 1;
19
- const uuid = (0, hyperid_1.default)();
20
- var Events;
21
- (function (Events) {
22
- Events["autoRecoverSuccess"] = "autoRecoverSuccess";
23
- Events["autoRecoverFailed"] = "autoRecoverFailed";
24
- Events["autoRecoverError"] = "autoRecoverError";
25
- Events["newWebSocketObject"] = "newWebSocketObject";
26
- Events["newWsc"] = "newWsc";
27
- Events["connectionReady"] = "connectionReady";
28
- })(Events || (exports.Events = Events = {}));
29
- class WebSocketExtension extends SdkExtension_js_1.default {
30
- eventEmitter = new events_1.EventEmitter();
31
- options;
32
- rc;
33
- wsToken;
34
- wsTokenExpiresAt = 0;
35
- ws;
36
- connectionDetails;
37
- wsc;
38
- subscription;
39
- // for auto recover
40
- intervalHandle;
41
- recoverTimestamp;
42
- pingServerHandle;
43
- _recoverPromise;
44
- _connectPromise;
45
- request = rest_js_1.request; // request method was moved to another file to keep this file short
46
- constructor(options = {}) {
47
- super();
48
- this.options = options;
49
- this.options.restOverWebSocket ??= false;
50
- this.options.debugMode ??= false;
51
- this.options.autoRecover ??= {
52
- enabled: true,
53
- };
54
- this.options.autoRecover.checkInterval ??= (retriesAttempted) => {
55
- const interval = 2000 + 2000 * retriesAttempted;
56
- return Math.min(8000, interval);
57
- };
58
- this.options.autoRecover.pingServerInterval ??= 60000;
59
- }
60
- disable() {
61
- super.disable();
62
- if (this.subscription) {
63
- this.subscription.enabled = false;
64
- }
65
- }
66
- async install(rc) {
67
- this.rc = rc;
68
- if (this.options.restOverWebSocket) {
69
- const request = rc.request.bind(rc);
70
- rc.request = async (method, endpoint, content, queryParams, config) => {
71
- if (!this.enabled || !this.options.restOverWebSocket) {
72
- return request(method, endpoint, content, queryParams, config);
73
- }
74
- if (
75
- // the following cannot be done with WebSocket
76
- config?.headers?.getContentType?.toString()?.includes("multipart/form-data") ||
77
- config?.responseType === "arraybuffer" ||
78
- endpoint.startsWith("/restapi/oauth/") // token, revoke, wstoken
79
- ) {
80
- return request(method, endpoint, content, queryParams, config);
81
- }
82
- return this.request(method, endpoint, content, queryParams, config);
83
- };
84
- }
85
- // should recover if this.options.wscToken
86
- let connectMethod = this.connect.bind(this);
87
- if (this.options.wscToken) {
88
- this.wsc = {
89
- token: this.options.wscToken,
90
- sequence: 0,
91
- };
92
- connectMethod = this.recover.bind(this);
93
- }
94
- if (!this.options.autoRecover.enabled) {
95
- await connectMethod();
96
- return;
97
- }
98
- // code after is for auto recover
99
- try {
100
- await connectMethod();
101
- }
102
- catch (e) {
103
- if (e instanceof RestException_js_1.default) {
104
- throw e; // such as InsufficientPermissions
105
- }
106
- if (this.options.debugMode) {
107
- console.debug("Initial connect failed:", e);
108
- }
109
- }
110
- let retriesAttempted = 0;
111
- let checking = false;
112
- const check = async () => {
113
- if (!this.enabled) {
114
- return;
115
- }
116
- if (this.options.autoRecover?.enabled !== true) {
117
- return;
118
- }
119
- if (checking) {
120
- return;
121
- }
122
- checking = true;
123
- if (this.ws?.readyState !== OPEN && this.ws?.readyState !== CONNECTING) {
124
- clearInterval(this.intervalHandle);
125
- try {
126
- await this.recover();
127
- retriesAttempted = 0;
128
- if (this.options.debugMode) {
129
- console.debug(`Auto recover done, recoveryState: ${this.connectionDetails.recoveryState}`);
130
- }
131
- this.eventEmitter.emit(this.connectionDetails.recoveryState === "Successful"
132
- ? Events.autoRecoverSuccess
133
- : Events.autoRecoverFailed, this.ws);
134
- }
135
- catch (e) {
136
- if (e instanceof RestException_js_1.default) {
137
- throw e; // such as InsufficientPermissions
138
- }
139
- retriesAttempted += 1;
140
- if (this.options.debugMode) {
141
- console.debug("Auto recover error:", e);
142
- }
143
- this.eventEmitter.emit(Events.autoRecoverError, e);
144
- }
145
- this.intervalHandle = setInterval(check, this.options.autoRecover.checkInterval(retriesAttempted));
146
- }
147
- checking = false;
148
- };
149
- this.intervalHandle = setInterval(check, this.options.autoRecover.checkInterval(retriesAttempted));
150
- // browser only code start
151
- if (typeof globalThis.window !== "undefined" &&
152
- globalThis.window.addEventListener) {
153
- globalThis.window.addEventListener("offline", () => {
154
- if (this.pingServerHandle) {
155
- clearTimeout(this.pingServerHandle);
156
- }
157
- this.ws?.close();
158
- });
159
- globalThis.window.addEventListener("online", () => {
160
- check();
161
- });
162
- }
163
- // browser only code end
164
- }
165
- async recover() {
166
- if (this._recoverPromise) {
167
- return this._recoverPromise;
168
- }
169
- this._recoverPromise = this._recover();
170
- try {
171
- await this._recoverPromise;
172
- }
173
- finally {
174
- this._recoverPromise = undefined;
175
- }
176
- return undefined;
177
- }
178
- async _recover() {
179
- if (this.ws?.readyState === OPEN || this.ws?.readyState === CONNECTING) {
180
- return;
181
- }
182
- if (!this.wsc || !this.wsc.token) {
183
- await this.connect(false); // connect to WSG but do not recover
184
- return;
185
- }
186
- if (this.recoverTimestamp === undefined) {
187
- this.recoverTimestamp = Date.now();
188
- }
189
- if (this.connectionDetails !== undefined &&
190
- Date.now() - this.recoverTimestamp >
191
- this.connectionDetails.recoveryTimeout * 1000) {
192
- if (this.options.debugMode) {
193
- console.debug("connect to WSG but do not recover");
194
- }
195
- await this.connect(false); // connect to WSG but do not recover
196
- }
197
- else {
198
- if (this.options.debugMode) {
199
- console.debug("connect to WSG and recover");
200
- }
201
- await this.connect(true); // connect to WSG and recover
202
- }
203
- this.recoverTimestamp = undefined;
204
- this.enable();
205
- }
206
- async pingServer() {
207
- if (this.options.autoRecover?.enabled !== true) {
208
- return;
209
- }
210
- if (this.ws?.readyState !== OPEN) {
211
- return;
212
- }
213
- try {
214
- await this.ws.send(JSON.stringify([
215
- {
216
- type: "Heartbeat",
217
- messageId: uuid(),
218
- },
219
- ]));
220
- }
221
- catch (e) {
222
- this.ws.close(); // Explicitly mark WS as closed
223
- }
224
- }
225
- async connect(recoverSession) {
226
- if (this._connectPromise) {
227
- return this._connectPromise;
228
- }
229
- this._connectPromise = this._connect(recoverSession);
230
- try {
231
- await this._connectPromise;
232
- }
233
- finally {
234
- this._connectPromise = undefined;
235
- }
236
- return undefined;
237
- }
238
- async _connect(recoverSession = false) {
239
- if (!this.wsToken || Date.now() > this.wsTokenExpiresAt) {
240
- const r = await this.rc.post("/restapi/oauth/wstoken");
241
- this.wsToken = r.data;
242
- // `expires_in` default value is 600 seconds. That's why we `* 0.8`
243
- this.wsTokenExpiresAt = Date.now() + this.wsToken.expires_in * 0.8 * 1000;
244
- }
245
- let wsUri = `${this.wsToken.uri}?access_token=${this.wsToken.ws_access_token}`;
246
- if (recoverSession && this.wsc) {
247
- wsUri += `&wsc=${this.wsc.token}`;
248
- }
249
- this.ws = new isomorphic_ws_1.default(wsUri);
250
- this.eventEmitter.emit(Events.newWebSocketObject, this.ws);
251
- // override send method to wait for connecting
252
- const send = this.ws.send.bind(this.ws);
253
- this.ws.send = async (s) => {
254
- if (this.ws.readyState === CONNECTING) {
255
- await (0, wait_for_async_1.default)({
256
- interval: 100,
257
- condition: () => this.ws.readyState !== CONNECTING,
258
- });
259
- }
260
- await send(s);
261
- };
262
- if (this.options.autoRecover?.enabled) {
263
- this.ws.addEventListener("message", () => {
264
- if (this.pingServerHandle) {
265
- clearTimeout(this.pingServerHandle);
266
- }
267
- this.pingServerHandle = setTimeout(() => this.pingServer(), this.options.autoRecover.pingServerInterval);
268
- });
269
- }
270
- // debug mode to print all WebSocket traffic
271
- if (this.options.debugMode) {
272
- utils_js_1.default.debugWebSocket(this.ws);
273
- }
274
- // listen for new wsc data
275
- this.ws.addEventListener("message", (mEvent) => {
276
- const event = mEvent;
277
- const [meta, body] = utils_js_1.default.splitWsgData(event.data);
278
- if (meta.wsc &&
279
- (!this.wsc ||
280
- (meta.type === "ConnectionDetails" && body.recoveryState) ||
281
- this.wsc.sequence < meta.wsc.sequence)) {
282
- this.wsc = meta.wsc;
283
- this.eventEmitter.emit(Events.newWsc, this.wsc);
284
- }
285
- });
286
- // get initial ConnectionDetails data
287
- const [meta, body, event] = await utils_js_1.default.waitForWebSocketMessage(this.ws, (meta) => meta.type === "ConnectionDetails" || meta.type === "Error");
288
- if (meta.type === "Error") {
289
- throw new ConnectionException_js_1.default(event);
290
- }
291
- this.connectionDetails = body;
292
- // fired when ws connection is ready for creating subscription
293
- this.eventEmitter.emit(Events.connectionReady, this.ws);
294
- // recover the subscription, if it exists and enabled
295
- if (this.subscription && this.subscription.enabled) {
296
- // because we have a new ws object
297
- this.subscription.setupWsEventListener();
298
- if (!recoverSession || this.connectionDetails.recoveryState === "Failed") {
299
- // create new subscription if don't recover existing one
300
- await this.subscription.subscribe();
301
- }
302
- }
303
- }
304
- // keepInterval means we do not clear the interval
305
- async revoke(keepInterval = false) {
306
- await this.subscription?.revoke();
307
- this.subscription = undefined;
308
- if (!keepInterval && this.intervalHandle) {
309
- clearInterval(this.intervalHandle);
310
- }
311
- if (this.pingServerHandle) {
312
- clearTimeout(this.pingServerHandle);
313
- }
314
- this.ws?.close();
315
- this.wsc = undefined;
316
- this.wsToken = undefined;
317
- this.wsTokenExpiresAt = 0;
318
- this.disable();
319
- }
320
- async subscribe(eventFilters, callback, cache = undefined) {
321
- const subscription = new subscription_js_1.default(this, eventFilters, callback);
322
- if (cache === undefined || cache === null) {
323
- await subscription.subscribe();
324
- }
325
- else {
326
- subscription.subscriptionInfo = cache;
327
- await subscription.refresh();
328
- }
329
- this.subscription = subscription;
330
- return subscription;
331
- }
332
- }
333
- exports.default = WebSocketExtension;
334
- //# sourceMappingURL=index.js.map
package/lib/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/lib/rest.js DELETED
@@ -1,54 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.request = request;
7
- const RestException_js_1 = __importDefault(require("@rc-ex/core/lib/esm/RestException.js"));
8
- const hyperid_1 = __importDefault(require("hyperid"));
9
- const http_status_codes_1 = require("http-status-codes");
10
- const utils_js_1 = __importDefault(require("./utils.js"));
11
- const version = "0.16";
12
- const uuid = (0, hyperid_1.default)();
13
- async function request(method, endpoint, content, queryParams, config) {
14
- const newConfig = {
15
- method,
16
- baseURL: this.wsToken?.uri,
17
- url: endpoint,
18
- data: content,
19
- params: queryParams,
20
- ...config,
21
- };
22
- newConfig.headers = {
23
- ...newConfig.headers,
24
- "X-User-Agent": `${this.rc.rest.appName}/${this.rc.rest.appVersion} ringcentral-extensible/ws/${version}`,
25
- };
26
- const messageId = uuid();
27
- const requestBody = [
28
- {
29
- type: "ClientRequest",
30
- messageId,
31
- method: newConfig.method,
32
- path: newConfig.url,
33
- headers: newConfig.headers,
34
- query: newConfig.params,
35
- },
36
- ];
37
- if (newConfig.data) {
38
- requestBody.push(newConfig.data);
39
- }
40
- await this.ws.send(JSON.stringify(requestBody));
41
- const [meta, body] = await utils_js_1.default.waitForWebSocketMessage(this.ws, (_meta) => _meta.messageId === messageId);
42
- const response = {
43
- data: body,
44
- status: meta.status,
45
- statusText: (0, http_status_codes_1.getReasonPhrase)(meta.status),
46
- headers: meta.headers,
47
- config: newConfig,
48
- };
49
- if (meta.type === "ClientRequest" && meta.status >= 200 && meta.status < 300) {
50
- return response;
51
- }
52
- throw new RestException_js_1.default(response);
53
- }
54
- //# sourceMappingURL=rest.js.map
package/lib/rest.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"rest.js","sourceRoot":"","sources":["../src/rest.ts"],"names":[],"mappings":";;;;;AAgBA,0BAsDC;AAjED,4FAAiE;AACjE,sDAA8B;AAC9B,yDAAoD;AAEpD,0DAA+B;AAG/B,MAAM,OAAO,GAAG,MAAM,CAAC;AAEvB,MAAM,IAAI,GAAG,IAAA,iBAAO,GAAE,CAAC;AAEhB,KAAK,UAAU,OAAO,CAE3B,MAAkB,EAClB,QAAgB,EAChB,OAAY,EACZ,WAAgB,EAChB,MAA0B;IAE1B,MAAM,SAAS,GAAsB;QACnC,MAAM;QACN,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG;QAC1B,GAAG,EAAE,QAAQ;QACb,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,WAAW;QACnB,GAAG,MAAM;KACV,CAAC;IACF,SAAS,CAAC,OAAO,GAAG;QAClB,GAAG,SAAS,CAAC,OAAO;QACpB,cAAc,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,IAAK,CAAC,OAAO,IACtC,IAAI,CAAC,EAAE,CAAC,IAAK,CAAC,UAChB,8BAA8B,OAAO,EAAE;KACjC,CAAC;IACT,MAAM,SAAS,GAAG,IAAI,EAAE,CAAC;IACzB,MAAM,WAAW,GAAG;QAClB;YACE,IAAI,EAAE,eAAe;YACrB,SAAS;YACT,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,IAAI,EAAE,SAAS,CAAC,GAAG;YACnB,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,KAAK,EAAE,SAAS,CAAC,MAAM;SACxB;KACF,CAAC;IACF,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;QACnB,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;IAChD,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,kBAAK,CAAC,uBAAuB,CACtD,IAAI,CAAC,EAAE,EACP,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CACzC,CAAC;IACF,MAAM,QAAQ,GAAiB;QAC7B,IAAI,EAAE,IAAS;QACf,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,UAAU,EAAE,IAAA,mCAAe,EAAC,IAAI,CAAC,MAAM,CAAC;QACxC,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,SAAgB;KACzB,CAAC;IACF,IACE,IAAI,CAAC,IAAI,KAAK,eAAe,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EACxE,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,IAAI,0BAAa,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC"}
@@ -1,96 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const utils_js_1 = __importDefault(require("./utils.js"));
7
- class Subscription {
8
- subscriptionInfo;
9
- wse;
10
- eventFilters;
11
- eventListener;
12
- timeout;
13
- enabled = true;
14
- constructor(wse, eventFilters, callback) {
15
- this.wse = wse;
16
- this.eventFilters = eventFilters;
17
- this.eventListener = (mEvent) => {
18
- const event = mEvent;
19
- const [meta, body] = utils_js_1.default
20
- .splitWsgData(event.data);
21
- if (this.enabled && meta.type === "ServerNotification" &&
22
- body.subscriptionId === this.subscriptionInfo.id) {
23
- callback(body);
24
- }
25
- };
26
- this.setupWsEventListener();
27
- }
28
- setupWsEventListener() {
29
- this.wse.ws.addEventListener("message", this.eventListener);
30
- }
31
- get requestBody() {
32
- return {
33
- deliveryMode: { transportType: "WebSocket" }, // because WebSocket is not in spec
34
- eventFilters: this.eventFilters,
35
- };
36
- }
37
- async subscribe() {
38
- this.subscriptionInfo = (await this.wse.request("POST", "/restapi/v1.0/subscription", this.requestBody)).data;
39
- }
40
- async refresh() {
41
- if (!this.subscriptionInfo) {
42
- return;
43
- }
44
- try {
45
- this.subscriptionInfo = (await this.wse.request("PUT", `/restapi/v1.0/subscription/${this.subscriptionInfo.id}`, this.requestBody)).data;
46
- }
47
- catch (e) {
48
- const re = e;
49
- if (re.response && re.response.status === 404) {
50
- // subscription expired
51
- await this.subscribe();
52
- }
53
- }
54
- }
55
- async revoke() {
56
- if (!this.subscriptionInfo) {
57
- return;
58
- }
59
- try {
60
- await this.wse.request("DELETE", `/restapi/v1.0/subscription/${this.subscriptionInfo.id}`);
61
- }
62
- catch (e) {
63
- const re = e;
64
- if (re.response && re.response.status === 404) {
65
- // ignore
66
- if (this.wse.options.debugMode) {
67
- console.debug(`Subscription ${this.subscriptionInfo.id} doesn't exist on server side`);
68
- }
69
- }
70
- else if (re.response && re.response.status === 401) {
71
- // ignore
72
- if (this.wse.options.debugMode) {
73
- console.debug("Token invalid when trying to revoke subscription");
74
- }
75
- }
76
- else {
77
- throw e;
78
- }
79
- }
80
- this.remove();
81
- }
82
- remove() {
83
- if (this.timeout) {
84
- global.clearTimeout(this.timeout);
85
- this.timeout = undefined;
86
- }
87
- this.enabled = false;
88
- this.subscriptionInfo = undefined;
89
- if (this.wse.ws) {
90
- this.wse.ws.removeEventListener("message", this.eventListener);
91
- }
92
- this.wse.subscription = undefined;
93
- }
94
- }
95
- exports.default = Subscription;
96
- //# sourceMappingURL=subscription.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subscription.js","sourceRoot":"","sources":["../src/subscription.ts"],"names":[],"mappings":"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"}
package/lib/types.js DELETED
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
package/lib/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/lib/utils.js DELETED
@@ -1,72 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const ClosedException_js_1 = __importDefault(require("./exceptions/ClosedException.js"));
7
- const TimeoutException_js_1 = __importDefault(require("./exceptions/TimeoutException.js"));
8
- class Utils {
9
- static splitWsgData(wsgData) {
10
- if (wsgData.includes(",--Boundary")) {
11
- const index = wsgData.indexOf(",--Boundary");
12
- return [
13
- JSON.parse(wsgData.substring(1, index)),
14
- wsgData.substring(index + 1, wsgData.length - 1),
15
- ];
16
- }
17
- return JSON.parse(wsgData);
18
- }
19
- static debugWebSocket(_ws) {
20
- const ws = _ws;
21
- const send = ws.send.bind(ws);
22
- ws.send = async (str) => {
23
- await send(str);
24
- console.debug(`*** WebSocket outgoing message: ***
25
- ${JSON.stringify(JSON.parse(str), null, 2)}
26
- ******`);
27
- };
28
- ws.addEventListener("message", (mEvent) => {
29
- const event = mEvent;
30
- console.debug(`*** WebSocket incoming message: ***
31
- ${JSON.stringify(JSON.parse(event.data), null, 2)}
32
- ******`);
33
- });
34
- ws.addEventListener("open", (event) => {
35
- console.debug("WebSocket open event:", event);
36
- });
37
- ws.addEventListener("error", (event) => {
38
- console.debug("WebSocket error event:", event);
39
- });
40
- ws.addEventListener("close", (event) => {
41
- console.debug("WebSocket close event:", event);
42
- });
43
- }
44
- static waitForWebSocketMessage(ws, matchCondition, timeout = 60000) {
45
- return new Promise((resolve, reject) => {
46
- const checkHandle = setInterval(() => {
47
- if (ws.readyState === ws.CLOSED) {
48
- clearInterval(checkHandle);
49
- reject(new ClosedException_js_1.default());
50
- }
51
- }, 1000);
52
- const timeoutHandle = setTimeout(() => {
53
- ws.removeEventListener("message", handler);
54
- clearInterval(checkHandle);
55
- reject(new TimeoutException_js_1.default());
56
- }, timeout);
57
- const handler = (mEvent) => {
58
- const event = mEvent;
59
- const [meta, body] = Utils.splitWsgData(event.data);
60
- if (matchCondition(meta)) {
61
- ws.removeEventListener("message", handler);
62
- clearInterval(checkHandle);
63
- clearTimeout(timeoutHandle);
64
- resolve([meta, body, event]);
65
- }
66
- };
67
- ws.addEventListener("message", handler);
68
- });
69
- }
70
- }
71
- exports.default = Utils;
72
- //# sourceMappingURL=utils.js.map
package/lib/utils.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/tsconfig.json DELETED
@@ -1,8 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "esModuleInterop": true,
4
- "sourceMap": true,
5
- "declaration": true
6
- },
7
- "include": ["src"]
8
- }
File without changes
File without changes