@rc-ex/ws 0.16.1 → 0.17.0
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/lib/exceptions/ClosedException.d.ts +4 -0
- package/lib/exceptions/ClosedException.js +9 -0
- package/lib/exceptions/ClosedException.js.map +1 -0
- package/lib/exceptions/ConnectionException.d.ts +7 -0
- package/lib/exceptions/ConnectionException.js +16 -0
- package/lib/exceptions/ConnectionException.js.map +1 -0
- package/lib/exceptions/TimeoutException.d.ts +4 -0
- package/lib/exceptions/TimeoutException.js +9 -0
- package/lib/exceptions/TimeoutException.js.map +1 -0
- package/lib/index.d.ts +2 -1
- package/lib/index.js +25 -22
- package/lib/index.js.map +1 -1
- package/lib/rest.d.ts +3 -3
- package/lib/rest.js +18 -20
- package/lib/rest.js.map +1 -1
- package/lib/subscription.d.ts +6 -4
- package/lib/subscription.js +15 -9
- package/lib/subscription.js.map +1 -1
- package/lib/types.d.ts +14 -0
- package/lib/types.js.map +1 -1
- package/lib/utils.d.ts +1 -1
- package/lib/utils.js +14 -12
- package/lib/utils.js.map +1 -1
- package/package.json +11 -5
- package/src/exceptions/ClosedException.ts +7 -0
- package/src/exceptions/ConnectionException.ts +17 -0
- package/src/exceptions/TimeoutException.ts +7 -0
- package/{index.ts → src/index.ts} +50 -36
- package/{rest.ts → src/rest.ts} +26 -26
- package/{subscription.ts → src/subscription.ts} +41 -32
- package/{types.ts → src/types.ts} +27 -5
- package/{utils.ts → src/utils.ts} +15 -14
- package/tsconfig.json +3 -2
- package/exceptions.ts +0 -25
- package/lib/exceptions.d.ts +0 -12
- package/lib/exceptions.js +0 -29
- package/lib/exceptions.js.map +0 -1
- package/lib/package.json +0 -31
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class ClosedException extends Error {
|
|
4
|
+
constructor(message) {
|
|
5
|
+
super(message !== null && message !== void 0 ? message : 'WebSocket has been closed');
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
exports.default = ClosedException;
|
|
9
|
+
//# sourceMappingURL=ClosedException.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClosedException.js","sourceRoot":"","sources":["../../src/exceptions/ClosedException.ts"],"names":[],"mappings":";;AAAA,MAAM,eAAgB,SAAQ,KAAK;IACjC,YAAY,OAAgB;QAC1B,KAAK,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,2BAA2B,CAAC,CAAC;IAChD,CAAC;CACF;AAED,kBAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
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_1 = __importDefault(require("../utils"));
|
|
7
|
+
class ConnectionException extends Error {
|
|
8
|
+
constructor(wsgEvent) {
|
|
9
|
+
const [, wsgError] = utils_1.default.splitWsgData(wsgEvent.data);
|
|
10
|
+
super(JSON.stringify(wsgError, null, 2));
|
|
11
|
+
this.wsgEvent = wsgEvent;
|
|
12
|
+
this.wsgError = wsgError;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.default = ConnectionException;
|
|
16
|
+
//# sourceMappingURL=ConnectionException.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConnectionException.js","sourceRoot":"","sources":["../../src/exceptions/ConnectionException.ts"],"names":[],"mappings":";;;;;AACA,qDAA6B;AAE7B,MAAM,mBAAoB,SAAQ,KAAK;IAKrC,YAAY,QAAkB;QAC5B,MAAM,CAAC,EAAE,QAAQ,CAAC,GAAwB,eAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5E,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAED,kBAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class TimeoutException extends Error {
|
|
4
|
+
constructor(message) {
|
|
5
|
+
super(message !== null && message !== void 0 ? message : 'Failed to receive expected WebSocket message in time.');
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
exports.default = TimeoutException;
|
|
9
|
+
//# sourceMappingURL=TimeoutException.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TimeoutException.js","sourceRoot":"","sources":["../../src/exceptions/TimeoutException.ts"],"names":[],"mappings":";;AAAA,MAAM,gBAAiB,SAAQ,KAAK;IAClC,YAAY,OAAgB;QAC1B,KAAK,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,uDAAuD,CAAC,CAAC;IAC5E,CAAC;CACF;AAED,kBAAe,gBAAgB,CAAC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="ws" />
|
|
3
|
+
/// <reference types="node" />
|
|
3
4
|
import RingCentral from '@rc-ex/core';
|
|
4
5
|
import SdkExtension from '@rc-ex/core/lib/SdkExtension';
|
|
5
6
|
import WS from 'isomorphic-ws';
|
|
6
7
|
import { EventEmitter } from 'events';
|
|
7
|
-
import
|
|
8
|
+
import SubscriptionInfo from '@rc-ex/core/lib/definitions/SubscriptionInfo';
|
|
8
9
|
import { request } from './rest';
|
|
9
10
|
import { WsToken, ConnectionDetails, WebSocketOptions, Wsc } from './types';
|
|
10
11
|
import Subscription from './subscription';
|
package/lib/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -32,7 +36,7 @@ const RestException_1 = __importDefault(require("@rc-ex/core/lib/RestException")
|
|
|
32
36
|
const debounce_1 = __importDefault(require("lodash/debounce"));
|
|
33
37
|
const rest_1 = require("./rest");
|
|
34
38
|
const subscription_1 = __importDefault(require("./subscription"));
|
|
35
|
-
const
|
|
39
|
+
const ConnectionException_1 = __importDefault(require("./exceptions/ConnectionException"));
|
|
36
40
|
const utils_1 = __importDefault(require("./utils"));
|
|
37
41
|
const uuid = (0, hyperid_1.default)();
|
|
38
42
|
var Events;
|
|
@@ -58,7 +62,7 @@ class WebSocketExtension extends SdkExtension_1.default {
|
|
|
58
62
|
(_c = (_h = this.options).autoRecover) !== null && _c !== void 0 ? _c : (_h.autoRecover = {
|
|
59
63
|
enabled: true,
|
|
60
64
|
});
|
|
61
|
-
(_d = (_j = this.options.autoRecover).checkInterval) !== null && _d !== void 0 ? _d : (_j.checkInterval = retriesAttempted => {
|
|
65
|
+
(_d = (_j = this.options.autoRecover).checkInterval) !== null && _d !== void 0 ? _d : (_j.checkInterval = (retriesAttempted) => {
|
|
62
66
|
const interval = 2000 + 2000 * retriesAttempted;
|
|
63
67
|
return Math.min(8000, interval);
|
|
64
68
|
});
|
|
@@ -75,9 +79,9 @@ class WebSocketExtension extends SdkExtension_1.default {
|
|
|
75
79
|
disable() {
|
|
76
80
|
var _a;
|
|
77
81
|
super.disable();
|
|
78
|
-
|
|
82
|
+
((_a = this.subscriptions) !== null && _a !== void 0 ? _a : []).forEach((subscription) => {
|
|
79
83
|
subscription.enabled = false;
|
|
80
|
-
}
|
|
84
|
+
});
|
|
81
85
|
}
|
|
82
86
|
async install(rc) {
|
|
83
87
|
this.rc = rc;
|
|
@@ -90,9 +94,9 @@ class WebSocketExtension extends SdkExtension_1.default {
|
|
|
90
94
|
}
|
|
91
95
|
if (
|
|
92
96
|
// the following cannot be done with WebSocket
|
|
93
|
-
((_b = (_a = config === null || config === void 0 ? void 0 : config.headers) === null || _a === void 0 ? void 0 : _a['Content-Type']) === null || _b === void 0 ? void 0 : _b.includes('multipart/form-data'))
|
|
94
|
-
(config === null || config === void 0 ? void 0 : config.responseType) === 'arraybuffer'
|
|
95
|
-
endpoint.startsWith('/restapi/oauth/') // token, revoke, wstoken
|
|
97
|
+
((_b = (_a = config === null || config === void 0 ? void 0 : config.headers) === null || _a === void 0 ? void 0 : _a['Content-Type']) === null || _b === void 0 ? void 0 : _b.includes('multipart/form-data'))
|
|
98
|
+
|| (config === null || config === void 0 ? void 0 : config.responseType) === 'arraybuffer'
|
|
99
|
+
|| endpoint.startsWith('/restapi/oauth/') // token, revoke, wstoken
|
|
96
100
|
) {
|
|
97
101
|
return request(method, endpoint, content, queryParams, config);
|
|
98
102
|
}
|
|
@@ -186,9 +190,9 @@ class WebSocketExtension extends SdkExtension_1.default {
|
|
|
186
190
|
if (this.recoverTimestamp === undefined) {
|
|
187
191
|
this.recoverTimestamp = Date.now();
|
|
188
192
|
}
|
|
189
|
-
if (this.connectionDetails !== undefined
|
|
190
|
-
Date.now() - this.recoverTimestamp
|
|
191
|
-
this.connectionDetails.recoveryTimeout * 1000) {
|
|
193
|
+
if (this.connectionDetails !== undefined
|
|
194
|
+
&& Date.now() - this.recoverTimestamp
|
|
195
|
+
> this.connectionDetails.recoveryTimeout * 1000) {
|
|
192
196
|
if (this.options.debugMode) {
|
|
193
197
|
console.debug('connect to WSG but do not recover');
|
|
194
198
|
}
|
|
@@ -232,8 +236,7 @@ class WebSocketExtension extends SdkExtension_1.default {
|
|
|
232
236
|
if (Date.now() > this.wsTokenExpiresAt) {
|
|
233
237
|
const r = await this.rc.post('/restapi/oauth/wstoken');
|
|
234
238
|
this.wsToken = r.data;
|
|
235
|
-
this.wsTokenExpiresAt =
|
|
236
|
-
Date.now() + (this.wsToken.expires_in - 10) * 1000;
|
|
239
|
+
this.wsTokenExpiresAt = Date.now() + (this.wsToken.expires_in - 10) * 1000;
|
|
237
240
|
}
|
|
238
241
|
let wsUri = '';
|
|
239
242
|
if (this.wsToken) {
|
|
@@ -271,26 +274,26 @@ class WebSocketExtension extends SdkExtension_1.default {
|
|
|
271
274
|
this.ws.addEventListener('message', (mEvent) => {
|
|
272
275
|
const event = mEvent;
|
|
273
276
|
const [meta, body] = utils_1.default.splitWsgData(event.data);
|
|
274
|
-
if (meta.wsc
|
|
275
|
-
(!this.wsc
|
|
276
|
-
(meta.type === 'ConnectionDetails' && body.recoveryState)
|
|
277
|
-
this.wsc.sequence < meta.wsc.sequence)) {
|
|
277
|
+
if (meta.wsc
|
|
278
|
+
&& (!this.wsc
|
|
279
|
+
|| (meta.type === 'ConnectionDetails' && body.recoveryState)
|
|
280
|
+
|| this.wsc.sequence < meta.wsc.sequence)) {
|
|
278
281
|
this.wsc = meta.wsc;
|
|
279
282
|
this.eventEmitter.emit(Events.newWsc, this.wsc);
|
|
280
283
|
}
|
|
281
284
|
});
|
|
282
285
|
// get initial ConnectionDetails data
|
|
283
|
-
const [meta, body, event] = await utils_1.default.waitForWebSocketMessage(this.ws, meta => meta.type === 'ConnectionDetails' || meta.type === 'Error');
|
|
286
|
+
const [meta, body, event] = await utils_1.default.waitForWebSocketMessage(this.ws, (meta) => meta.type === 'ConnectionDetails' || meta.type === 'Error');
|
|
284
287
|
if (meta.type === 'Error') {
|
|
285
|
-
throw new
|
|
288
|
+
throw new ConnectionException_1.default(event);
|
|
286
289
|
}
|
|
287
290
|
this.connectionDetails = body;
|
|
288
291
|
// recover all subscriptions, if there are any
|
|
289
|
-
for (const subscription of this.subscriptions.filter(sub => sub.enabled)) {
|
|
292
|
+
for (const subscription of this.subscriptions.filter((sub) => sub.enabled)) {
|
|
290
293
|
// because we have a new ws object
|
|
291
294
|
subscription.setupWsEventListener();
|
|
292
|
-
if (!recoverSession
|
|
293
|
-
this.connectionDetails.recoveryState === 'Failed') {
|
|
295
|
+
if (!recoverSession
|
|
296
|
+
|| this.connectionDetails.recoveryState === 'Failed') {
|
|
294
297
|
// create new subscription if don't recover existing one
|
|
295
298
|
await subscription.subscribe();
|
|
296
299
|
}
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,gFAAwD;AACxD,+DAAmE;AACnE,sDAA8B;AAC9B,mCAAsC;AACtC,oEAAqC;AACrC,kFAA0D;AAE1D,+DAAuC;AAEvC,iCAAiC;AASjC,kEAA0C;AAC1C,2FAAmE;AACnE,oDAA4B;AAE5B,MAAM,IAAI,GAAG,IAAA,iBAAO,GAAE,CAAC;AAEvB,IAAY,MAMX;AAND,WAAY,MAAM;IAChB,mDAAyC,CAAA;IACzC,iDAAuC,CAAA;IACvC,+CAAqC,CAAA;IACrC,mDAAyC,CAAA;IACzC,2BAAiB,CAAA;AACnB,CAAC,EANW,MAAM,GAAN,cAAM,KAAN,cAAM,QAMjB;AAED,MAAM,kBAAmB,SAAQ,sBAAY;IAgC3C,YAAY,UAA4B,EAAE;;;QACxC,KAAK,EAAE,CAAC;QAhCV,iBAAY,GAAG,IAAI,qBAAY,EAAE,CAAC;QAQlC,qBAAgB,GAAG,CAAC,CAAC;QAQrB,kBAAa,GAAmB,EAAE,CAAC;QAanC,YAAO,GAAG,cAAO,CAAC,CAAC,mEAAmE;QAIpF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,YAAA,IAAI,CAAC,OAAO,EAAC,iBAAiB,uCAAjB,iBAAiB,GAAK,KAAK,EAAC;QACzC,YAAA,IAAI,CAAC,OAAO,EAAC,SAAS,uCAAT,SAAS,GAAK,KAAK,EAAC;QACjC,YAAA,IAAI,CAAC,OAAO,EAAC,WAAW,uCAAX,WAAW,GAAK;YAC3B,OAAO,EAAE,IAAI;SACd,EAAC;QACF,YAAA,IAAI,CAAC,OAAO,CAAC,WAAW,EAAC,aAAa,uCAAb,aAAa,GAAK,CAAC,gBAAgB,EAAE,EAAE;YAC9D,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,gBAAgB,CAAC;YAChD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC,EAAC;QACF,YAAA,IAAI,CAAC,OAAO,CAAC,WAAW,EAAC,kBAAkB,uCAAlB,kBAAkB,GAAK,KAAK,EAAC;QACtD,IAAI,CAAC,OAAO,GAAG,IAAA,kBAAQ,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE;YAC3C,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,IAAA,kBAAQ,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE;YAC3C,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;IACL,CAAC;IAED,OAAO;;QACL,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,CAAC,MAAA,IAAI,CAAC,aAAa,mCAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;YAClD,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAe;QAC3B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;YAClC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpC,EAAE,CAAC,OAAO,GAAG,KAAK,EAChB,MAAkB,EAClB,QAAgB,EAChB,OAAY,EACZ,WAAgB,EAChB,MAA0B,EACA,EAAE;;gBAC5B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;oBACpD,OAAO,OAAO,CAAI,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;iBACnE;gBACD;gBACE,8CAA8C;gBAC9C,CAAA,MAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,0CAAG,cAAc,CAAwB,0CAAE,QAAQ,CACjE,qBAAqB,CACtB;uBACE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,MAAK,aAAa;uBACtC,QAAQ,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,yBAAyB;kBACnE;oBACA,OAAO,OAAO,CAAI,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;iBACnE;gBACD,OAAO,IAAI,CAAC,OAAO,CAAI,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YACzE,CAAC,CAAC;SACH;QAED,0CAA0C;QAC1C,IAAI,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YACzB,IAAI,CAAC,GAAG,GAAG;gBACT,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;gBAC5B,QAAQ,EAAE,CAAC;aACZ,CAAC;YACF,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACzC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAY,CAAC,OAAO,EAAE;YACtC,MAAM,aAAa,EAAE,CAAC;YACtB,OAAO;SACR;QAED,iCAAiC;QACjC,IAAI;YACF,MAAM,aAAa,EAAE,CAAC;SACvB;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,YAAY,uBAAa,EAAE;gBAC9B,MAAM,CAAC,CAAC,CAAC,kCAAkC;aAC5C;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;gBAC1B,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC;aAC7C;SACF;QACD,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE;;YACvB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBACjB,OAAO;aACR;YACD,IAAI,CAAA,MAAA,IAAI,CAAC,OAAO,CAAC,WAAW,0CAAE,OAAO,MAAK,IAAI,EAAE;gBAC9C,OAAO;aACR;YACD,IAAI,CAAA,MAAA,IAAI,CAAC,EAAE,0CAAE,UAAU,MAAK,oBAAI,IAAI,CAAA,MAAA,IAAI,CAAC,EAAE,0CAAE,UAAU,MAAK,0BAAU,EAAE;gBACtE,aAAa,CAAC,IAAI,CAAC,cAAe,CAAC,CAAC;gBACpC,IAAI;oBACF,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;oBACrB,gBAAgB,GAAG,CAAC,CAAC;oBACrB,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;wBAC1B,OAAO,CAAC,KAAK,CACX,qCAAqC,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAC5E,CAAC;qBACH;oBACD,IAAI,CAAC,YAAY,CAAC,IAAI,CACpB,IAAI,CAAC,iBAAiB,CAAC,aAAa,KAAK,YAAY;wBACnD,CAAC,CAAC,MAAM,CAAC,kBAAkB;wBAC3B,CAAC,CAAC,MAAM,CAAC,iBAAiB,EAC5B,IAAI,CAAC,EAAE,CACR,CAAC;iBACH;gBAAC,OAAO,CAAC,EAAE;oBACV,IAAI,CAAC,YAAY,uBAAa,EAAE;wBAC9B,MAAM,CAAC,CAAC,CAAC,kCAAkC;qBAC5C;oBACD,gBAAgB,IAAI,CAAC,CAAC;oBACtB,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;wBAC1B,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;qBACzC;oBACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;iBACpD;gBACD,IAAI,CAAC,cAAc,GAAG,WAAW,CAC/B,KAAK,EACL,IAAI,CAAC,OAAO,CAAC,WAAY,CAAC,aAAc,CAAC,gBAAgB,CAAC,CAC3D,CAAC;aACH;QACH,CAAC,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,WAAW,CAC/B,KAAK,EACL,IAAI,CAAC,OAAO,CAAC,WAAY,CAAC,aAAc,CAAC,gBAAgB,CAAC,CAC3D,CAAC;QAEF,0BAA0B;QAC1B,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,gBAAgB,EAAE;YAC5D,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE;;gBACtC,IAAI,IAAI,CAAC,gBAAgB,EAAE;oBACzB,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;iBACrC;gBACD,MAAA,IAAI,CAAC,EAAE,0CAAE,KAAK,EAAE,CAAC;YACnB,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE;gBACrC,KAAK,EAAE,CAAC;YACV,CAAC,CAAC,CAAC;SACJ;QACD,wBAAwB;IAC1B,CAAC;IAED,KAAK,CAAC,QAAQ;;QACZ,IAAI,CAAA,MAAA,IAAI,CAAC,EAAE,0CAAE,UAAU,MAAK,oBAAI,IAAI,CAAA,MAAA,IAAI,CAAC,EAAE,0CAAE,UAAU,MAAK,0BAAU,EAAE;YACtE,OAAO;SACR;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;YAChC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,oCAAoC;YAC/D,OAAO;SACR;QACD,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;YACvC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;SACpC;QACD,IACE,IAAI,CAAC,iBAAiB,KAAK,SAAS;eACjC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,gBAAgB;kBACnC,IAAI,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,EAC/C;YACA,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;gBAC1B,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;aACpD;YACD,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,oCAAoC;SAChE;aAAM;YACL,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;gBAC1B,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;aAC7C;YACD,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,6BAA6B;SACxD;QACD,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAClC,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,UAAU;;QACd,IAAI,CAAA,MAAA,IAAI,CAAC,OAAO,CAAC,WAAW,0CAAE,OAAO,MAAK,IAAI,EAAE;YAC9C,OAAO;SACR;QACD,IAAI;YACF,IAAI,MAAA,IAAI,CAAC,EAAE,0CAAE,IAAI,EAAE;gBACjB,UAAU;gBACV,MAAA,IAAI,CAAC,EAAE,0CAAE,IAAI,EAAE,CAAC;aACjB;iBAAM;gBACL,UAAU;gBACV,MAAM,CAAA,MAAA,IAAI,CAAC,EAAE,0CAAE,IAAI,CACjB,IAAI,CAAC,SAAS,CAAC;oBACb;wBACE,IAAI,EAAE,WAAW;wBACjB,SAAS,EAAE,IAAI,EAAE;qBAClB;iBACF,CAAC,CACH,CAAA,CAAC;aACH;SACF;QAAC,OAAO,CAAC,EAAE;YACV,MAAA,IAAI,CAAC,EAAE,0CAAE,KAAK,EAAE,CAAC,CAAC,+BAA+B;SAClD;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,cAAc,GAAG,KAAK;;QACnC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE;YACtC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACvD,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAe,CAAC;YACjC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;SAC5E;QACD,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,KAAK,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,iBAAiB,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;YAC3E,IAAI,cAAc,IAAI,IAAI,CAAC,GAAG,EAAE;gBAC9B,KAAK,IAAI,QAAQ,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;aACnC;SACF;QACD,IAAI,CAAC,EAAE,GAAG,IAAI,uBAAE,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAE3D,8CAA8C;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,KAAK,EAAE,CAAS,EAAE,EAAE;YACjC,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,0BAAU,EAAE;gBACrC,MAAM,IAAA,wBAAO,EAAC;oBACZ,QAAQ,EAAE,GAAG;oBACb,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,0BAAU;iBACnD,CAAC,CAAC;aACJ;YACD,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC,CAAC;QAEF,IAAI,MAAA,IAAI,CAAC,OAAO,CAAC,WAAW,0CAAE,OAAO,EAAE;YACrC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE;gBACvC,IAAI,IAAI,CAAC,gBAAgB,EAAE;oBACzB,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;iBACrC;gBACD,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAChC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,EACvB,IAAI,CAAC,OAAO,CAAC,WAAY,CAAC,kBAAkB,CAC7C,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;QAED,4CAA4C;QAC5C,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YAC1B,eAAK,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC/B;QAED,0BAA0B;QAC1B,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,MAAoB,EAAE,EAAE;YAC3D,MAAM,KAAK,GAAG,MAAkB,CAAC;YACjC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,eAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpD,IACE,IAAI,CAAC,GAAG;mBACL,CAAC,CAAC,IAAI,CAAC,GAAG;uBACR,CAAC,IAAI,CAAC,IAAI,KAAK,mBAAmB,IAAI,IAAI,CAAC,aAAa,CAAC;uBACzD,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAC3C;gBACA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;gBACpB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;aACjD;QACH,CAAC,CAAC,CAAC;QAEH,qCAAqC;QACrC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,eAAK,CAAC,uBAAuB,CAC7D,IAAI,CAAC,EAAE,EACP,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,mBAAmB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,CACrE,CAAC;QACF,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;YACzB,MAAM,IAAI,6BAAmB,CAAC,KAAK,CAAC,CAAC;SACtC;QACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAE9B,8CAA8C;QAC9C,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAClD,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CACrB,EAAE;YACD,kCAAkC;YAClC,YAAY,CAAC,oBAAoB,EAAE,CAAC;YACpC,IACE,CAAC,cAAc;mBACZ,IAAI,CAAC,iBAAiB,CAAC,aAAa,KAAK,QAAQ,EACpD;gBACA,wDAAwD;gBACxD,MAAM,YAAY,CAAC,SAAS,EAAE,CAAC;aAChC;SACF;IACH,CAAC;IAED,kDAAkD;IAClD,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,KAAK;;QAC/B,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE;YAC7C,MAAM,YAAY,CAAC,MAAM,EAAE,CAAC;SAC7B;QACD,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,cAAc,EAAE;YACxC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SACpC;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SACrC;QACD,MAAA,IAAI,CAAC,EAAE,0CAAE,KAAK,EAAE,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,SAAS,CACb,YAAsB,EACtB,QAA6B,EAC7B,QAA6C,SAAS;QAEtD,MAAM,YAAY,GAAG,IAAI,sBAAY,CAAC,IAAmC,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;QACnG,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;YACzC,MAAM,YAAY,CAAC,SAAS,EAAE,CAAC;SAChC;aAAM;YACL,YAAY,CAAC,gBAAgB,GAAG,KAAK,CAAC;YACtC,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;SAC9B;QACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtC,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AAED,kBAAe,kBAAkB,CAAC"}
|
package/lib/rest.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { RestMethod, RestRequestConfig, RestResponse } from '@rc-ex/core/lib/
|
|
2
|
-
import
|
|
3
|
-
export declare function request<T>(this:
|
|
1
|
+
import { RestMethod, RestRequestConfig, RestResponse } from '@rc-ex/core/lib/types';
|
|
2
|
+
import { WebSocketExtensionInterface } from './types';
|
|
3
|
+
export declare function request<T>(this: WebSocketExtensionInterface, method: RestMethod, endpoint: string, content?: {}, queryParams?: {}, config?: RestRequestConfig): Promise<RestResponse<T>>;
|
package/lib/rest.js
CHANGED
|
@@ -7,54 +7,52 @@ exports.request = void 0;
|
|
|
7
7
|
const RestException_1 = __importDefault(require("@rc-ex/core/lib/RestException"));
|
|
8
8
|
const hyperid_1 = __importDefault(require("hyperid"));
|
|
9
9
|
const http_status_codes_1 = require("http-status-codes");
|
|
10
|
-
const package_json_1 = require("./package.json");
|
|
11
10
|
const utils_1 = __importDefault(require("./utils"));
|
|
11
|
+
const version = '0.16';
|
|
12
12
|
const uuid = (0, hyperid_1.default)();
|
|
13
13
|
async function request(method, endpoint, content, queryParams, config) {
|
|
14
14
|
var _a;
|
|
15
|
-
const
|
|
16
|
-
method
|
|
15
|
+
const newConfig = {
|
|
16
|
+
method,
|
|
17
17
|
baseURL: (_a = this.wsToken) === null || _a === void 0 ? void 0 : _a.uri,
|
|
18
18
|
url: endpoint,
|
|
19
19
|
data: content,
|
|
20
20
|
params: queryParams,
|
|
21
21
|
...config,
|
|
22
22
|
};
|
|
23
|
-
|
|
24
|
-
...
|
|
25
|
-
'X-User-Agent': `${this.rc.rest.appName}/${this.rc.rest.appVersion} ringcentral-extensible/ws/${
|
|
23
|
+
newConfig.headers = {
|
|
24
|
+
...newConfig.headers,
|
|
25
|
+
'X-User-Agent': `${this.rc.rest.appName}/${this.rc.rest.appVersion} ringcentral-extensible/ws/${version}`,
|
|
26
26
|
};
|
|
27
27
|
const messageId = uuid();
|
|
28
28
|
const requestBody = [
|
|
29
29
|
{
|
|
30
30
|
type: 'ClientRequest',
|
|
31
31
|
messageId,
|
|
32
|
-
method:
|
|
33
|
-
path:
|
|
34
|
-
headers:
|
|
35
|
-
query:
|
|
32
|
+
method: newConfig.method,
|
|
33
|
+
path: newConfig.url,
|
|
34
|
+
headers: newConfig.headers,
|
|
35
|
+
query: newConfig.params,
|
|
36
36
|
},
|
|
37
37
|
];
|
|
38
|
-
if (
|
|
39
|
-
requestBody.push(
|
|
38
|
+
if (newConfig.data) {
|
|
39
|
+
requestBody.push(newConfig.data);
|
|
40
40
|
}
|
|
41
41
|
await this.ws.send(JSON.stringify(requestBody));
|
|
42
|
-
const [meta, body] = await utils_1.default.waitForWebSocketMessage(this.ws,
|
|
42
|
+
const [meta, body] = await utils_1.default.waitForWebSocketMessage(this.ws, (_meta) => _meta.messageId === messageId);
|
|
43
43
|
const response = {
|
|
44
44
|
data: body,
|
|
45
45
|
status: meta.status,
|
|
46
46
|
statusText: (0, http_status_codes_1.getReasonPhrase)(meta.status),
|
|
47
47
|
headers: meta.headers,
|
|
48
|
-
config:
|
|
48
|
+
config: newConfig,
|
|
49
49
|
};
|
|
50
|
-
if (meta.type === 'ClientRequest'
|
|
51
|
-
meta.status >= 200
|
|
52
|
-
meta.status < 300) {
|
|
50
|
+
if (meta.type === 'ClientRequest'
|
|
51
|
+
&& meta.status >= 200
|
|
52
|
+
&& meta.status < 300) {
|
|
53
53
|
return response;
|
|
54
54
|
}
|
|
55
|
-
|
|
56
|
-
throw new RestException_1.default(response);
|
|
57
|
-
}
|
|
55
|
+
throw new RestException_1.default(response);
|
|
58
56
|
}
|
|
59
57
|
exports.request = request;
|
|
60
58
|
//# sourceMappingURL=rest.js.map
|
package/lib/rest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest.js","sourceRoot":"","sources":["../rest.ts"],"names":[],"mappings":";;;;;;AAKA,kFAA0D;AAC1D,sDAA8B;AAC9B,
|
|
1
|
+
{"version":3,"file":"rest.js","sourceRoot":"","sources":["../src/rest.ts"],"names":[],"mappings":";;;;;;AAKA,kFAA0D;AAC1D,sDAA8B;AAC9B,yDAAoD;AAEpD,oDAA4B;AAK5B,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,MAAA,IAAI,CAAC,OAAO,0CAAE,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,IAAI,IAAI,CAAC,EAAE,CAAC,IAAK,CAAC,UAAU,8BAA8B,OAAO,EAAE;KAC5G,CAAC;IACF,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;QAClB,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KAClC;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,eAAK,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,SAAS;KAClB,CAAC;IACF,IACE,IAAI,CAAC,IAAI,KAAK,eAAe;WAC1B,IAAI,CAAC,MAAM,IAAI,GAAG;WAClB,IAAI,CAAC,MAAM,GAAG,GAAG,EACpB;QACA,OAAO,QAAQ,CAAC;KACjB;IACD,MAAM,IAAI,uBAAa,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC;AAtDD,0BAsDC"}
|
package/lib/subscription.d.ts
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import
|
|
2
|
+
import CreateSubscriptionRequest from '@rc-ex/core/lib/definitions/CreateSubscriptionRequest';
|
|
3
|
+
import SubscriptionInfo from '@rc-ex/core/lib/definitions/SubscriptionInfo';
|
|
3
4
|
import { MessageEvent } from 'ws';
|
|
4
|
-
import
|
|
5
|
+
import { WebSocketExtensionInterface } from './types';
|
|
5
6
|
declare class Subscription {
|
|
6
|
-
wse:
|
|
7
|
+
wse: WebSocketExtensionInterface;
|
|
7
8
|
eventFilters: string[];
|
|
8
9
|
eventListener: (event: MessageEvent) => void;
|
|
9
10
|
timeout?: NodeJS.Timeout;
|
|
10
11
|
enabled: boolean;
|
|
11
|
-
constructor(wse:
|
|
12
|
+
constructor(wse: WebSocketExtensionInterface, eventFilters: string[], callback: (event: {}) => void);
|
|
12
13
|
setupWsEventListener(): void;
|
|
13
14
|
get requestBody(): CreateSubscriptionRequest;
|
|
14
15
|
_subscriptionInfo?: SubscriptionInfo;
|
|
@@ -17,5 +18,6 @@ declare class Subscription {
|
|
|
17
18
|
subscribe(): Promise<void>;
|
|
18
19
|
refresh(): Promise<void>;
|
|
19
20
|
revoke(): Promise<void>;
|
|
21
|
+
remove(): void;
|
|
20
22
|
}
|
|
21
23
|
export default Subscription;
|
package/lib/subscription.js
CHANGED
|
@@ -12,9 +12,9 @@ class Subscription {
|
|
|
12
12
|
this.eventListener = (mEvent) => {
|
|
13
13
|
const event = mEvent;
|
|
14
14
|
const [meta, body] = utils_1.default.splitWsgData(event.data);
|
|
15
|
-
if (this.enabled
|
|
16
|
-
meta.type === 'ServerNotification'
|
|
17
|
-
body.subscriptionId === this.subscriptionInfo.id) {
|
|
15
|
+
if (this.enabled
|
|
16
|
+
&& meta.type === 'ServerNotification'
|
|
17
|
+
&& body.subscriptionId === this.subscriptionInfo.id) {
|
|
18
18
|
callback(body);
|
|
19
19
|
}
|
|
20
20
|
};
|
|
@@ -67,10 +67,6 @@ class Subscription {
|
|
|
67
67
|
if (!this.subscriptionInfo) {
|
|
68
68
|
return;
|
|
69
69
|
}
|
|
70
|
-
if (this.timeout) {
|
|
71
|
-
global.clearTimeout(this.timeout);
|
|
72
|
-
this.timeout = undefined;
|
|
73
|
-
}
|
|
74
70
|
try {
|
|
75
71
|
await this.wse.request('DELETE', `/restapi/v1.0/subscription/${this.subscriptionInfo.id}`);
|
|
76
72
|
}
|
|
@@ -92,9 +88,19 @@ class Subscription {
|
|
|
92
88
|
throw e;
|
|
93
89
|
}
|
|
94
90
|
}
|
|
95
|
-
this.
|
|
91
|
+
this.remove();
|
|
92
|
+
}
|
|
93
|
+
remove() {
|
|
94
|
+
if (this.timeout) {
|
|
95
|
+
global.clearTimeout(this.timeout);
|
|
96
|
+
this.timeout = undefined;
|
|
97
|
+
}
|
|
96
98
|
this.enabled = false;
|
|
97
|
-
this.
|
|
99
|
+
this.subscriptionInfo = undefined;
|
|
100
|
+
if (this.wse.ws) {
|
|
101
|
+
this.wse.ws.removeEventListener('message', this.eventListener);
|
|
102
|
+
}
|
|
103
|
+
this.wse.subscriptions = this.wse.subscriptions.filter((x) => x !== this);
|
|
98
104
|
}
|
|
99
105
|
}
|
|
100
106
|
exports.default = Subscription;
|
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":["../src/subscription.ts"],"names":[],"mappings":"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"}
|
package/lib/types.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/// <reference types="ws" />
|
|
2
|
+
import RingCentral from '@rc-ex/core';
|
|
3
|
+
import { RestMethod, RestRequestConfig, RestResponse } from '@rc-ex/core/lib/types';
|
|
4
|
+
import WS from 'isomorphic-ws';
|
|
1
5
|
export declare type WsToken = {
|
|
2
6
|
uri: string;
|
|
3
7
|
ws_access_token: string;
|
|
@@ -45,3 +49,13 @@ export declare type ConnectionDetails = {
|
|
|
45
49
|
recoveryState?: 'Successful' | 'Failed';
|
|
46
50
|
recoveryErrorCode?: string;
|
|
47
51
|
};
|
|
52
|
+
export interface WebSocketExtensionInterface {
|
|
53
|
+
options: WebSocketOptions;
|
|
54
|
+
subscriptions: SubscriptionInterface[];
|
|
55
|
+
ws: WS;
|
|
56
|
+
wsToken?: WsToken;
|
|
57
|
+
rc: RingCentral;
|
|
58
|
+
request<T>(method: RestMethod, endpoint: string, content?: {}, queryParams?: {}, config?: RestRequestConfig): Promise<RestResponse<T>>;
|
|
59
|
+
}
|
|
60
|
+
export interface SubscriptionInterface {
|
|
61
|
+
}
|
package/lib/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/lib/utils.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import WS from 'isomorphic-ws';
|
|
|
3
3
|
import { WsgMeta, WsgEvent } from './types';
|
|
4
4
|
declare class Utils {
|
|
5
5
|
static splitWsgData(wsgData: string): [WsgMeta, any];
|
|
6
|
-
static debugWebSocket(
|
|
6
|
+
static debugWebSocket(_ws: WS): void;
|
|
7
7
|
static waitForWebSocketMessage(ws: WS, matchCondition: (meta: WsgMeta) => boolean, timeout?: number): Promise<[WsgMeta, any, WsgEvent]>;
|
|
8
8
|
}
|
|
9
9
|
export default Utils;
|
package/lib/utils.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
6
|
+
const ClosedException_1 = __importDefault(require("./exceptions/ClosedException"));
|
|
7
|
+
const TimeoutException_1 = __importDefault(require("./exceptions/TimeoutException"));
|
|
4
8
|
class Utils {
|
|
5
9
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
6
10
|
static splitWsgData(wsgData) {
|
|
@@ -11,11 +15,10 @@ class Utils {
|
|
|
11
15
|
wsgData.substring(index + 1, wsgData.length - 1),
|
|
12
16
|
];
|
|
13
17
|
}
|
|
14
|
-
|
|
15
|
-
return JSON.parse(wsgData);
|
|
16
|
-
}
|
|
18
|
+
return JSON.parse(wsgData);
|
|
17
19
|
}
|
|
18
|
-
static debugWebSocket(
|
|
20
|
+
static debugWebSocket(_ws) {
|
|
21
|
+
const ws = _ws;
|
|
19
22
|
const send = ws.send.bind(ws);
|
|
20
23
|
ws.send = async (str) => {
|
|
21
24
|
await send(str);
|
|
@@ -29,13 +32,13 @@ ${JSON.stringify(JSON.parse(str), null, 2)}
|
|
|
29
32
|
${JSON.stringify(JSON.parse(event.data), null, 2)}
|
|
30
33
|
******`);
|
|
31
34
|
});
|
|
32
|
-
ws.addEventListener('open', event => {
|
|
35
|
+
ws.addEventListener('open', (event) => {
|
|
33
36
|
console.debug('WebSocket open event:', event);
|
|
34
37
|
});
|
|
35
|
-
ws.addEventListener('error', event => {
|
|
38
|
+
ws.addEventListener('error', (event) => {
|
|
36
39
|
console.debug('WebSocket error event:', event);
|
|
37
40
|
});
|
|
38
|
-
ws.addEventListener('close', event => {
|
|
41
|
+
ws.addEventListener('close', (event) => {
|
|
39
42
|
console.debug('WebSocket close event:', event);
|
|
40
43
|
});
|
|
41
44
|
}
|
|
@@ -45,14 +48,14 @@ ${JSON.stringify(JSON.parse(event.data), null, 2)}
|
|
|
45
48
|
const checkHandle = setInterval(() => {
|
|
46
49
|
if (ws.readyState === ws.CLOSED) {
|
|
47
50
|
clearInterval(checkHandle);
|
|
48
|
-
reject(new
|
|
51
|
+
reject(new ClosedException_1.default());
|
|
49
52
|
}
|
|
50
53
|
}, 1000);
|
|
51
54
|
const timeoutHandle = setTimeout(() => {
|
|
55
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
52
56
|
ws.removeEventListener('message', handler);
|
|
53
57
|
clearInterval(checkHandle);
|
|
54
|
-
reject(new
|
|
55
|
-
return;
|
|
58
|
+
reject(new TimeoutException_1.default());
|
|
56
59
|
}, timeout);
|
|
57
60
|
const handler = (mEvent) => {
|
|
58
61
|
const event = mEvent;
|
|
@@ -62,7 +65,6 @@ ${JSON.stringify(JSON.parse(event.data), null, 2)}
|
|
|
62
65
|
clearInterval(checkHandle);
|
|
63
66
|
clearTimeout(timeoutHandle);
|
|
64
67
|
resolve([meta, body, event]);
|
|
65
|
-
return;
|
|
66
68
|
}
|
|
67
69
|
};
|
|
68
70
|
ws.addEventListener('message', handler);
|
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/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.17.0",
|
|
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,14 +18,20 @@
|
|
|
18
18
|
"access": "public"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@types/lodash": "^4.14.
|
|
22
|
-
"@types/ws": "^8.5.
|
|
21
|
+
"@types/lodash": "^4.14.182",
|
|
22
|
+
"@types/ws": "^8.5.3",
|
|
23
23
|
"http-status-codes": "^2.2.0",
|
|
24
24
|
"hyperid": "^3.0.1",
|
|
25
25
|
"isomorphic-ws": "^4.0.1",
|
|
26
26
|
"lodash": "^4.17.21",
|
|
27
27
|
"wait-for-async": "^0.6.0",
|
|
28
|
-
"ws": "^8.
|
|
28
|
+
"ws": "^8.7.0"
|
|
29
29
|
},
|
|
30
|
-
"
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@rc-ex/core": "^0.13.0"
|
|
32
|
+
},
|
|
33
|
+
"peerDependencies": {
|
|
34
|
+
"@rc-ex/core": "^0.12.4"
|
|
35
|
+
},
|
|
36
|
+
"gitHead": "4a3c0ad89f45228f7e396ce733a3e4e44e13c414"
|
|
31
37
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { WsgError, WsgEvent, WsgMeta } from '../types';
|
|
2
|
+
import Utils from '../utils';
|
|
3
|
+
|
|
4
|
+
class ConnectionException extends Error {
|
|
5
|
+
wsgEvent: WsgEvent;
|
|
6
|
+
|
|
7
|
+
wsgError: WsgError;
|
|
8
|
+
|
|
9
|
+
constructor(wsgEvent: WsgEvent) {
|
|
10
|
+
const [, wsgError]: [WsgMeta, WsgError] = Utils.splitWsgData(wsgEvent.data);
|
|
11
|
+
super(JSON.stringify(wsgError, null, 2));
|
|
12
|
+
this.wsgEvent = wsgEvent;
|
|
13
|
+
this.wsgError = wsgError;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export default ConnectionException;
|