@rc-ex/ws 0.11.0 → 0.12.1
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/index.ts +12 -6
- package/lib/index.d.ts +1 -0
- package/lib/index.js +11 -5
- package/lib/index.js.map +1 -1
- package/lib/package.json +5 -11
- package/lib/subscription.d.ts +2 -2
- package/lib/subscription.js +2 -1
- package/lib/subscription.js.map +1 -1
- package/lib/utils.js +4 -2
- package/lib/utils.js.map +1 -1
- package/package.json +5 -11
- package/subscription.ts +4 -2
- package/utils.ts +5 -3
package/index.ts
CHANGED
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
RestMethod,
|
|
6
6
|
} from '@rc-ex/core/lib/Rest';
|
|
7
7
|
import SdkExtension from '@rc-ex/core/lib/SdkExtension';
|
|
8
|
-
import WS, {OPEN, CONNECTING} from 'isomorphic-ws';
|
|
8
|
+
import WS, {OPEN, CONNECTING, MessageEvent} from 'isomorphic-ws';
|
|
9
9
|
import hyperid from 'hyperid';
|
|
10
10
|
import {EventEmitter} from 'events';
|
|
11
11
|
import waitFor from 'wait-for-async';
|
|
@@ -41,6 +41,7 @@ class WebSocketExtension extends SdkExtension {
|
|
|
41
41
|
options: WebSocketOptions;
|
|
42
42
|
rc!: RingCentral;
|
|
43
43
|
wsToken!: WsToken;
|
|
44
|
+
wsTokenExpiresAt = 0;
|
|
44
45
|
ws!: WS;
|
|
45
46
|
connectionDetails!: ConnectionDetails;
|
|
46
47
|
wsc!: Wsc;
|
|
@@ -234,10 +235,13 @@ class WebSocketExtension extends SdkExtension {
|
|
|
234
235
|
}
|
|
235
236
|
|
|
236
237
|
async connect(recoverSession = false) {
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
238
|
+
if (Date.now() > this.wsTokenExpiresAt) {
|
|
239
|
+
this.rateLimitExtension.enable();
|
|
240
|
+
const r = await this.rc.post('/restapi/oauth/wstoken');
|
|
241
|
+
this.rateLimitExtension.disable();
|
|
242
|
+
this.wsToken = r.data as WsToken;
|
|
243
|
+
this.wsTokenExpiresAt = Date.now() + this.wsToken.expires_in - 10;
|
|
244
|
+
}
|
|
241
245
|
let wsUri = `${this.wsToken.uri}?access_token=${this.wsToken.ws_access_token}`;
|
|
242
246
|
if (recoverSession) {
|
|
243
247
|
wsUri = `${wsUri}&wsc=${this.wsc.token}`;
|
|
@@ -275,7 +279,8 @@ class WebSocketExtension extends SdkExtension {
|
|
|
275
279
|
}
|
|
276
280
|
|
|
277
281
|
// listen for new wsc data
|
|
278
|
-
this.ws.addEventListener('message', (
|
|
282
|
+
this.ws.addEventListener('message', (mEvent: MessageEvent) => {
|
|
283
|
+
const event = mEvent as WsgEvent;
|
|
279
284
|
const [meta, body] = Utils.splitWsgData(event.data);
|
|
280
285
|
if (
|
|
281
286
|
meta.wsc &&
|
|
@@ -297,6 +302,7 @@ class WebSocketExtension extends SdkExtension {
|
|
|
297
302
|
throw new ConnectionException(event);
|
|
298
303
|
}
|
|
299
304
|
this.connectionDetails = body;
|
|
305
|
+
this.wsTokenExpiresAt = 0; // mark wsToken as expired after ws connection success
|
|
300
306
|
|
|
301
307
|
// recover all subscriptions, if there are any
|
|
302
308
|
for (const subscription of this.subscriptions.filter(sub => sub.enabled)) {
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -49,6 +49,7 @@ class WebSocketExtension extends SdkExtension_1.default {
|
|
|
49
49
|
var _f, _g, _h, _j, _k;
|
|
50
50
|
super();
|
|
51
51
|
this.eventEmitter = new events_1.EventEmitter();
|
|
52
|
+
this.wsTokenExpiresAt = 0;
|
|
52
53
|
this.subscriptions = [];
|
|
53
54
|
this.request = rest_1.request; // request method was moved to another file to keep this file short
|
|
54
55
|
this.rateLimitExtension = new rate_limit_1.default(); // to rate limit /restapi/oauth/wstoken
|
|
@@ -211,10 +212,13 @@ class WebSocketExtension extends SdkExtension_1.default {
|
|
|
211
212
|
}
|
|
212
213
|
async connect(recoverSession = false) {
|
|
213
214
|
var _a;
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
215
|
+
if (Date.now() > this.wsTokenExpiresAt) {
|
|
216
|
+
this.rateLimitExtension.enable();
|
|
217
|
+
const r = await this.rc.post('/restapi/oauth/wstoken');
|
|
218
|
+
this.rateLimitExtension.disable();
|
|
219
|
+
this.wsToken = r.data;
|
|
220
|
+
this.wsTokenExpiresAt = Date.now() + this.wsToken.expires_in - 10;
|
|
221
|
+
}
|
|
218
222
|
let wsUri = `${this.wsToken.uri}?access_token=${this.wsToken.ws_access_token}`;
|
|
219
223
|
if (recoverSession) {
|
|
220
224
|
wsUri = `${wsUri}&wsc=${this.wsc.token}`;
|
|
@@ -245,7 +249,8 @@ class WebSocketExtension extends SdkExtension_1.default {
|
|
|
245
249
|
utils_1.default.debugWebSocket(this.ws);
|
|
246
250
|
}
|
|
247
251
|
// listen for new wsc data
|
|
248
|
-
this.ws.addEventListener('message', (
|
|
252
|
+
this.ws.addEventListener('message', (mEvent) => {
|
|
253
|
+
const event = mEvent;
|
|
249
254
|
const [meta, body] = utils_1.default.splitWsgData(event.data);
|
|
250
255
|
if (meta.wsc &&
|
|
251
256
|
(!this.wsc ||
|
|
@@ -261,6 +266,7 @@ class WebSocketExtension extends SdkExtension_1.default {
|
|
|
261
266
|
throw new exceptions_1.ConnectionException(event);
|
|
262
267
|
}
|
|
263
268
|
this.connectionDetails = body;
|
|
269
|
+
this.wsTokenExpiresAt = 0; // mark wsToken as expired after ws connection success
|
|
264
270
|
// recover all subscriptions, if there are any
|
|
265
271
|
for (const subscription of this.subscriptions.filter(sub => sub.enabled)) {
|
|
266
272
|
// because we have a new ws object
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAMA,gFAAwD;AACxD,+
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
package/lib/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rc-ex/ws",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.1",
|
|
4
4
|
"description": "WebSocket extension for ringcentral-extensible project",
|
|
5
5
|
"author": "Tyler Liu <tyler.liu@ringcentral.com>",
|
|
6
6
|
"homepage": "https://github.com/ringcentral/ringcentral-extensible/tree/master/packages/extensions/ws",
|
|
@@ -18,19 +18,13 @@
|
|
|
18
18
|
"access": "public"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@rc-ex/rate-limit": "^0.8.
|
|
22
|
-
"@types/ws": "^
|
|
21
|
+
"@rc-ex/rate-limit": "^0.8.2",
|
|
22
|
+
"@types/ws": "^8.2.0",
|
|
23
23
|
"http-status-codes": "^2.1.4",
|
|
24
24
|
"hyperid": "^2.3.1",
|
|
25
25
|
"isomorphic-ws": "^4.0.1",
|
|
26
26
|
"wait-for-async": "^0.5.0",
|
|
27
|
-
"ws": "^8.2.
|
|
27
|
+
"ws": "^8.2.3"
|
|
28
28
|
},
|
|
29
|
-
"
|
|
30
|
-
"@rc-ex/core": "^0.10.0"
|
|
31
|
-
},
|
|
32
|
-
"peerDependencies": {
|
|
33
|
-
"@rc-ex/core": "^0.9.3"
|
|
34
|
-
},
|
|
35
|
-
"gitHead": "302cabecc4136125aeec02292399eb1d93a9dd6e"
|
|
29
|
+
"gitHead": "1463339989302d3a3adf917f299716eb397227ad"
|
|
36
30
|
}
|
package/lib/subscription.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { CreateSubscriptionRequest, SubscriptionInfo } from '@rc-ex/core/lib/definitions';
|
|
3
|
+
import { MessageEvent } from 'ws';
|
|
3
4
|
import WebSocketExtension from './index';
|
|
4
|
-
import { WsgEvent } from './types';
|
|
5
5
|
declare class Subscription {
|
|
6
6
|
wse: WebSocketExtension;
|
|
7
7
|
eventFilters: string[];
|
|
8
|
-
eventListener: (event:
|
|
8
|
+
eventListener: (event: MessageEvent) => void;
|
|
9
9
|
timeout?: NodeJS.Timeout;
|
|
10
10
|
enabled: boolean;
|
|
11
11
|
constructor(wse: WebSocketExtension, eventFilters: string[], callback: (event: {}) => void);
|
package/lib/subscription.js
CHANGED
|
@@ -9,7 +9,8 @@ class Subscription {
|
|
|
9
9
|
this.enabled = true;
|
|
10
10
|
this.wse = wse;
|
|
11
11
|
this.eventFilters = eventFilters;
|
|
12
|
-
this.eventListener = (
|
|
12
|
+
this.eventListener = (mEvent) => {
|
|
13
|
+
const event = mEvent;
|
|
13
14
|
const [meta, body] = utils_1.default.splitWsgData(event.data);
|
|
14
15
|
if (this.enabled &&
|
|
15
16
|
meta.type === 'ServerNotification' &&
|
package/lib/subscription.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../subscription.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../subscription.ts"],"names":[],"mappings":"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"}
|
package/lib/utils.js
CHANGED
|
@@ -23,7 +23,8 @@ class Utils {
|
|
|
23
23
|
${JSON.stringify(JSON.parse(str), null, 2)}
|
|
24
24
|
******`);
|
|
25
25
|
};
|
|
26
|
-
ws.addEventListener('message', (
|
|
26
|
+
ws.addEventListener('message', (mEvent) => {
|
|
27
|
+
const event = mEvent;
|
|
27
28
|
console.debug(`*** WebSocket incoming message: ***
|
|
28
29
|
${JSON.stringify(JSON.parse(event.data), null, 2)}
|
|
29
30
|
******`);
|
|
@@ -53,7 +54,8 @@ ${JSON.stringify(JSON.parse(event.data), null, 2)}
|
|
|
53
54
|
reject(new exceptions_1.TimeoutException());
|
|
54
55
|
return;
|
|
55
56
|
}, timeout);
|
|
56
|
-
const handler = (
|
|
57
|
+
const handler = (mEvent) => {
|
|
58
|
+
const event = mEvent;
|
|
57
59
|
const [meta, body] = Utils.splitWsgData(event.data);
|
|
58
60
|
if (matchCondition(meta)) {
|
|
59
61
|
ws.removeEventListener('message', handler);
|
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../utils.ts"],"names":[],"mappings":";;AAGA,6CAA+D;AAE/D,MAAM,KAAK;IACT,8DAA8D;IAC9D,MAAM,CAAC,YAAY,CAAC,OAAe;QACjC,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;YACnC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC7C,OAAO;gBACL,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBACvC,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;aACjD,CAAC;SACH;aAAM;YACL,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SAC5B;IACH,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,EAAM;QAC1B,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9B,EAAE,CAAC,IAAI,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE;YAC9B,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,OAAO,CAAC,KAAK,CACX;EACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;OACnC,CACA,CAAC;QACJ,CAAC,CAAC;QACF,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rc-ex/ws",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.1",
|
|
4
4
|
"description": "WebSocket extension for ringcentral-extensible project",
|
|
5
5
|
"author": "Tyler Liu <tyler.liu@ringcentral.com>",
|
|
6
6
|
"homepage": "https://github.com/ringcentral/ringcentral-extensible/tree/master/packages/extensions/ws",
|
|
@@ -18,19 +18,13 @@
|
|
|
18
18
|
"access": "public"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@rc-ex/rate-limit": "^0.8.
|
|
22
|
-
"@types/ws": "^
|
|
21
|
+
"@rc-ex/rate-limit": "^0.8.2",
|
|
22
|
+
"@types/ws": "^8.2.0",
|
|
23
23
|
"http-status-codes": "^2.1.4",
|
|
24
24
|
"hyperid": "^2.3.1",
|
|
25
25
|
"isomorphic-ws": "^4.0.1",
|
|
26
26
|
"wait-for-async": "^0.5.0",
|
|
27
|
-
"ws": "^8.2.
|
|
27
|
+
"ws": "^8.2.3"
|
|
28
28
|
},
|
|
29
|
-
"
|
|
30
|
-
"@rc-ex/core": "^0.10.0"
|
|
31
|
-
},
|
|
32
|
-
"peerDependencies": {
|
|
33
|
-
"@rc-ex/core": "^0.9.3"
|
|
34
|
-
},
|
|
35
|
-
"gitHead": "302cabecc4136125aeec02292399eb1d93a9dd6e"
|
|
29
|
+
"gitHead": "1463339989302d3a3adf917f299716eb397227ad"
|
|
36
30
|
}
|
package/subscription.ts
CHANGED
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
SubscriptionInfo,
|
|
4
4
|
} from '@rc-ex/core/lib/definitions';
|
|
5
5
|
import {RestResponse} from '@rc-ex/core/lib/Rest';
|
|
6
|
+
import {MessageEvent} from 'ws';
|
|
6
7
|
|
|
7
8
|
import WebSocketExtension from './index';
|
|
8
9
|
import {WsgEvent, WsgMeta} from './types';
|
|
@@ -11,7 +12,7 @@ import Utils from './utils';
|
|
|
11
12
|
class Subscription {
|
|
12
13
|
wse: WebSocketExtension;
|
|
13
14
|
eventFilters: string[];
|
|
14
|
-
eventListener: (event:
|
|
15
|
+
eventListener: (event: MessageEvent) => void;
|
|
15
16
|
timeout?: NodeJS.Timeout;
|
|
16
17
|
enabled = true;
|
|
17
18
|
|
|
@@ -22,7 +23,8 @@ class Subscription {
|
|
|
22
23
|
) {
|
|
23
24
|
this.wse = wse;
|
|
24
25
|
this.eventFilters = eventFilters;
|
|
25
|
-
this.eventListener = (
|
|
26
|
+
this.eventListener = (mEvent: MessageEvent) => {
|
|
27
|
+
const event = mEvent as WsgEvent;
|
|
26
28
|
const [meta, body]: [WsgMeta, {subscriptionId: string}] =
|
|
27
29
|
Utils.splitWsgData(event.data);
|
|
28
30
|
if (
|
package/utils.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import WS from 'isomorphic-ws';
|
|
1
|
+
import WS, {MessageEvent} from 'isomorphic-ws';
|
|
2
2
|
|
|
3
3
|
import {WsgMeta, WsgEvent} from './types';
|
|
4
4
|
import {ClosedException, TimeoutException} from './exceptions';
|
|
@@ -27,7 +27,8 @@ ${JSON.stringify(JSON.parse(str), null, 2)}
|
|
|
27
27
|
******`
|
|
28
28
|
);
|
|
29
29
|
};
|
|
30
|
-
ws.addEventListener('message', (
|
|
30
|
+
ws.addEventListener('message', (mEvent: MessageEvent) => {
|
|
31
|
+
const event = mEvent as WsgEvent;
|
|
31
32
|
console.debug(
|
|
32
33
|
`*** WebSocket incoming message: ***
|
|
33
34
|
${JSON.stringify(JSON.parse(event.data), null, 2)}
|
|
@@ -64,7 +65,8 @@ ${JSON.stringify(JSON.parse(event.data), null, 2)}
|
|
|
64
65
|
reject(new TimeoutException());
|
|
65
66
|
return;
|
|
66
67
|
}, timeout);
|
|
67
|
-
const handler = (
|
|
68
|
+
const handler = (mEvent: MessageEvent) => {
|
|
69
|
+
const event = mEvent as WsgEvent;
|
|
68
70
|
const [meta, body] = Utils.splitWsgData(event.data);
|
|
69
71
|
if (matchCondition(meta)) {
|
|
70
72
|
ws.removeEventListener('message', handler);
|