airdcpp-apisocket 2.5.0-beta.2 → 3.0.0-beta.2

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 (75) hide show
  1. package/babel.config.cjs +1 -1
  2. package/dist-es/Promise.js.map +1 -1
  3. package/dist-es/PublicHelpers.js +21 -4
  4. package/dist-es/PublicHelpers.js.map +1 -1
  5. package/dist-es/SocketBase.js.map +1 -1
  6. package/dist-es/SocketLogger.js.map +1 -1
  7. package/dist-es/SocketRequestHandler.js.map +1 -1
  8. package/dist-es/SocketSubscriptionHandler.js.map +1 -1
  9. package/dist-es/types/public_helpers.d.ts +12 -3
  10. package/dist-es/utils.js.map +1 -1
  11. package/jest.config.js +0 -5
  12. package/package.json +8 -9
  13. package/src/PublicHelpers.ts +22 -4
  14. package/src/tests/Socket.test.ts +4 -10
  15. package/src/tests/public_helpers.test.ts +38 -21
  16. package/src/types/public_helpers.ts +10 -10
  17. package/tsconfig.json +4 -4
  18. package/tslint.json +0 -2
  19. package/dist/ApiConstants.d.ts +0 -6
  20. package/dist/ApiConstants.js +0 -8
  21. package/dist/ApiConstants.js.map +0 -1
  22. package/dist/NodeSocket.d.ts +0 -4
  23. package/dist/NodeSocket.js +0 -25
  24. package/dist/NodeSocket.js.map +0 -1
  25. package/dist/Promise.d.ts +0 -8
  26. package/dist/Promise.js +0 -27
  27. package/dist/Promise.js.map +0 -1
  28. package/dist/PublicHelpers.d.ts +0 -2
  29. package/dist/PublicHelpers.js +0 -95
  30. package/dist/PublicHelpers.js.map +0 -1
  31. package/dist/SocketBase.d.ts +0 -4
  32. package/dist/SocketBase.js +0 -352
  33. package/dist/SocketBase.js.map +0 -1
  34. package/dist/SocketLogger.d.ts +0 -9
  35. package/dist/SocketLogger.js +0 -75
  36. package/dist/SocketLogger.js.map +0 -1
  37. package/dist/SocketRequestHandler.d.ts +0 -14
  38. package/dist/SocketRequestHandler.js +0 -169
  39. package/dist/SocketRequestHandler.js.map +0 -1
  40. package/dist/SocketSubscriptionHandler.d.ts +0 -11
  41. package/dist/SocketSubscriptionHandler.js +0 -162
  42. package/dist/SocketSubscriptionHandler.js.map +0 -1
  43. package/dist/types/api.d.ts +0 -30
  44. package/dist/types/api.js +0 -4
  45. package/dist/types/api.js.map +0 -1
  46. package/dist/types/api_internal.d.ts +0 -24
  47. package/dist/types/api_internal.js +0 -3
  48. package/dist/types/api_internal.js.map +0 -1
  49. package/dist/types/index.d.ts +0 -7
  50. package/dist/types/index.js +0 -24
  51. package/dist/types/index.js.map +0 -1
  52. package/dist/types/logger.d.ts +0 -6
  53. package/dist/types/logger.js +0 -3
  54. package/dist/types/logger.js.map +0 -1
  55. package/dist/types/options.d.ts +0 -31
  56. package/dist/types/options.js +0 -4
  57. package/dist/types/options.js.map +0 -1
  58. package/dist/types/public_helpers.d.ts +0 -19
  59. package/dist/types/public_helpers.js +0 -3
  60. package/dist/types/public_helpers.js.map +0 -1
  61. package/dist/types/public_helpers_internal.d.ts +0 -27
  62. package/dist/types/public_helpers_internal.js +0 -3
  63. package/dist/types/public_helpers_internal.js.map +0 -1
  64. package/dist/types/requests.d.ts +0 -14
  65. package/dist/types/requests.js +0 -3
  66. package/dist/types/requests.js.map +0 -1
  67. package/dist/types/socket.d.ts +0 -23
  68. package/dist/types/socket.js +0 -3
  69. package/dist/types/socket.js.map +0 -1
  70. package/dist/types/subscriptions.d.ts +0 -20
  71. package/dist/types/subscriptions.js +0 -3
  72. package/dist/types/subscriptions.js.map +0 -1
  73. package/dist/utils.d.ts +0 -2
  74. package/dist/utils.js +0 -16
  75. package/dist/utils.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"ApiConstants.js","sourceRoot":"","sources":["../src/ApiConstants.ts"],"names":[],"mappings":";;AAAA,kBAAe;IACb,SAAS,EAAE,oBAAoB;IAC/B,WAAW,EAAE,iBAAiB;IAC9B,UAAU,EAAE,eAAe;CAC5B,CAAC"}
@@ -1,4 +0,0 @@
1
- import SocketBase from './SocketBase.js';
2
- export * from './types/index.js';
3
- export * from './PublicHelpers.js';
4
- export { SocketBase as Socket };
@@ -1,25 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
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);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- var __importDefault = (this && this.__importDefault) || function (mod) {
17
- return (mod && mod.__esModule) ? mod : { "default": mod };
18
- };
19
- Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.Socket = void 0;
21
- const SocketBase_js_1 = __importDefault(require("./SocketBase.js"));
22
- exports.Socket = SocketBase_js_1.default;
23
- __exportStar(require("./types/index.js"), exports);
24
- __exportStar(require("./PublicHelpers.js"), exports);
25
- //# sourceMappingURL=NodeSocket.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NodeSocket.js","sourceRoot":"","sources":["../src/NodeSocket.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,oEAAyC;AAMlB,iBANhB,uBAAU,CAMY;AAH7B,mDAAiC;AACjC,qDAAmC"}
package/dist/Promise.d.ts DELETED
@@ -1,8 +0,0 @@
1
- export interface PendingResult extends Pick<PromiseConstructor, 'resolve' | 'reject'> {
2
- promise: Promise<any>;
3
- }
4
- export interface AppPromise extends PromiseConstructor {
5
- pending: () => PendingResult;
6
- }
7
- declare const PendingPromise: AppPromise;
8
- export default PendingPromise;
package/dist/Promise.js DELETED
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- // Use native promises when available
4
- let AppPromise;
5
- if (typeof Promise !== 'undefined') {
6
- AppPromise = Promise;
7
- }
8
- else {
9
- AppPromise = require('promise');
10
- }
11
- function pending() {
12
- let resolve, reject;
13
- let promise = new AppPromise(function () {
14
- resolve = arguments[0];
15
- reject = arguments[1];
16
- });
17
- return {
18
- resolve: resolve,
19
- reject: reject,
20
- promise
21
- };
22
- }
23
- const PendingPromise = Object.assign(AppPromise, {
24
- pending
25
- });
26
- exports.default = PendingPromise;
27
- //# sourceMappingURL=Promise.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Promise.js","sourceRoot":"","sources":["../src/Promise.ts"],"names":[],"mappings":";;AAAA,qCAAqC;AACrC,IAAI,UAA8B,CAAC;AACnC,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;IAClC,UAAU,GAAG,OAAO,CAAC;CACtB;KAAM;IACL,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;CACjC;AAOD,SAAS,OAAO;IACd,IAAI,OAAkC,EAAE,MAAgC,CAAC;IACzE,IAAI,OAAO,GAAG,IAAI,UAAU,CAAC;QAC3B,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,OAAQ;QACjB,MAAM,EAAE,MAAO;QACf,OAAO;KACR,CAAC;AACJ,CAAC;AAMD,MAAM,cAAc,GAAe,MAAM,CAAC,MAAM,CAC9C,UAAU,EACV;IACE,OAAO;CACR,CACF,CAAC;AAEF,kBAAe,cAAc,CAAC"}
@@ -1,2 +0,0 @@
1
- import { APISocket, ContextMenuItem, EntityId, ContextMenu } from './types/index.js';
2
- export declare const addContextMenuItems: <IdT, EntityIdT extends EntityId | undefined = undefined>(socket: APISocket, menuItems: ContextMenuItem<IdT, EntityIdT>[], menuTypeId: string, menu: ContextMenu) => Promise<() => void>;
@@ -1,95 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addContextMenuItems = void 0;
4
- const checkAccess = (menuItem, permissions) => {
5
- if (!menuItem.access) {
6
- return true;
7
- }
8
- return permissions.indexOf('admin') !== -1 || permissions.indexOf(menuItem.access) !== -1;
9
- };
10
- const URLS_SUPPORT = 'urls';
11
- const FORM_SUPPORT = 'form';
12
- const hasSupport = (support, supports) => {
13
- return !!supports && supports.indexOf(support) !== -1;
14
- };
15
- // Check whether the item passes the access and filter checks
16
- const validateItem = async (menuItem, data) => {
17
- const { selected_ids, entity_id, permissions, supports } = data;
18
- if (!!menuItem.urls && !hasSupport(URLS_SUPPORT, supports)) {
19
- return false;
20
- }
21
- if (!!menuItem.filter && !(await menuItem.filter(selected_ids, entity_id, permissions, supports))) {
22
- return false;
23
- }
24
- return checkAccess(menuItem, data.permissions);
25
- };
26
- const parseCallbackData = async (item, data) => {
27
- const { selected_ids, entity_id, permissions, supports } = data;
28
- if (!!item.urls && !!item.urls.length) {
29
- let urls;
30
- if (typeof item.urls === 'function') {
31
- urls = await item.urls(selected_ids, entity_id, permissions, supports);
32
- }
33
- else {
34
- urls = item.urls;
35
- }
36
- return {
37
- urls,
38
- };
39
- }
40
- else if (!!item.formDefinitions && hasSupport(FORM_SUPPORT, supports)) {
41
- let formDefinitions;
42
- if (typeof item.formDefinitions === 'function') {
43
- formDefinitions = await item.formDefinitions(selected_ids, entity_id, permissions, supports);
44
- }
45
- else {
46
- formDefinitions = item.formDefinitions;
47
- }
48
- return {
49
- form_definitions: formDefinitions,
50
- };
51
- }
52
- return {};
53
- };
54
- const addContextMenuItems = async (socket, menuItems, menuTypeId, menu) => {
55
- const removeListener = await socket.addListener('menus', `${menuTypeId}_menuitem_selected`, async (data) => {
56
- if (data.hook_id === menu.id) {
57
- const menuItem = menuItems.find(i => data.menuitem_id === i.id);
58
- if (!!menuItem) {
59
- const isValid = await validateItem(menuItem, data);
60
- if (isValid && !!menuItem.onClick) {
61
- const { selected_ids, entity_id, permissions, supports, form_values } = data;
62
- menuItem.onClick(selected_ids, entity_id, permissions, supports, form_values);
63
- }
64
- }
65
- }
66
- });
67
- const removeHook = await socket.addHook('menus', `${menuTypeId}_list_menuitems`, async (data, accept, reject) => {
68
- const validItems = [];
69
- for (const item of menuItems) {
70
- const isValid = await validateItem(item, data);
71
- if (isValid) {
72
- const parsedCallbackData = await parseCallbackData(item, data);
73
- const { onClick, id, title, icon } = item;
74
- if (!!onClick || (!!parsedCallbackData.urls && parsedCallbackData.urls.length)) {
75
- validItems.push({
76
- id,
77
- title,
78
- icon,
79
- ...parsedCallbackData,
80
- });
81
- }
82
- }
83
- }
84
- accept({
85
- menuitems: validItems,
86
- icon: menu.icon,
87
- });
88
- }, menu);
89
- return () => {
90
- removeHook();
91
- removeListener();
92
- };
93
- };
94
- exports.addContextMenuItems = addContextMenuItems;
95
- //# sourceMappingURL=PublicHelpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PublicHelpers.js","sourceRoot":"","sources":["../src/PublicHelpers.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import * as Options from './types/options.js';
2
- import * as Socket from './types/socket.js';
3
- declare const ApiSocket: (userOptions: Options.APISocketOptions, WebSocketImpl: WebSocket) => Socket.APISocket;
4
- export default ApiSocket;
@@ -1,352 +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 ApiConstants_js_1 = __importDefault(require("./ApiConstants.js"));
7
- const SocketLogger_js_1 = __importDefault(require("./SocketLogger.js"));
8
- const SocketSubscriptionHandler_js_1 = __importDefault(require("./SocketSubscriptionHandler.js"));
9
- const SocketRequestHandler_js_1 = __importDefault(require("./SocketRequestHandler.js"));
10
- const invariant_1 = __importDefault(require("invariant"));
11
- const Promise_js_1 = __importDefault(require("./Promise.js"));
12
- // CONSTANTS
13
- const defaultOptions = {
14
- autoReconnect: true,
15
- reconnectInterval: 10,
16
- userSession: false,
17
- };
18
- const ApiSocket = (userOptions, WebSocketImpl) => {
19
- const options = {
20
- ...defaultOptions,
21
- ...userOptions
22
- };
23
- let ws = null;
24
- let authToken = null;
25
- let socket = null;
26
- let reconnectTimer;
27
- let forceNoAutoConnect = true;
28
- let connectedCallback = null;
29
- let sessionResetCallback = null;
30
- let disconnectedCallback = null;
31
- const logger = (0, SocketLogger_js_1.default)(options);
32
- const subscriptions = (0, SocketSubscriptionHandler_js_1.default)(() => socket, logger, options);
33
- const requests = (0, SocketRequestHandler_js_1.default)(() => socket, logger, options);
34
- (0, invariant_1.default)(userOptions.url, '"url" must be defined in settings object');
35
- const resetSession = () => {
36
- if (authToken) {
37
- if (sessionResetCallback) {
38
- sessionResetCallback();
39
- }
40
- authToken = null;
41
- }
42
- };
43
- const onClosed = (event) => {
44
- if (event.wasClean) {
45
- logger.info('Websocket was closed normally');
46
- }
47
- else {
48
- logger.error(`Websocket failed: ${event.reason} (code: ${event.code})`);
49
- }
50
- requests.onSocketDisconnected();
51
- subscriptions.onSocketDisconnected();
52
- ws = null;
53
- if (disconnectedCallback) {
54
- disconnectedCallback(event.reason, event.code, event.wasClean);
55
- }
56
- if (authToken && options.autoReconnect && !forceNoAutoConnect) {
57
- setTimeout(() => {
58
- if (forceNoAutoConnect) {
59
- return;
60
- }
61
- socket.reconnect()
62
- .catch((error) => {
63
- logger.error('Reconnect failed for a closed socket', error.message);
64
- });
65
- });
66
- }
67
- };
68
- const onMessage = (event) => {
69
- const messageObj = JSON.parse(event.data);
70
- if (messageObj.callback_id) {
71
- // Callback
72
- requests.handleMessage(messageObj);
73
- }
74
- else {
75
- // Listener message
76
- subscriptions.handleMessage(messageObj);
77
- }
78
- };
79
- const setSocketHandlers = () => {
80
- ws.onerror = (event) => {
81
- logger.error(`Websocket failed: ${event.reason}`);
82
- };
83
- ws.onclose = onClosed;
84
- ws.onmessage = onMessage;
85
- };
86
- // Connect handler for creation of new session
87
- const handlePasswordLogin = (username = options.username, password = options.password) => {
88
- if (!username) {
89
- throw '"username" option was not supplied for authentication';
90
- }
91
- if (!password) {
92
- throw '"password" option was not supplied for authentication';
93
- }
94
- const data = {
95
- username,
96
- password,
97
- grant_type: 'password',
98
- };
99
- return requests.postAuthenticate(ApiConstants_js_1.default.LOGIN_URL, data);
100
- };
101
- const handleRefreshTokenLogin = (refreshToken) => {
102
- if (!refreshToken) {
103
- throw '"refreshToken" option was not supplied for authentication';
104
- }
105
- const data = {
106
- refresh_token: refreshToken,
107
- grant_type: 'refresh_token',
108
- };
109
- return requests.postAuthenticate(ApiConstants_js_1.default.LOGIN_URL, data);
110
- };
111
- // Connect handler for associating socket with an existing session token
112
- const handleAuthorizeToken = () => {
113
- const data = {
114
- auth_token: authToken,
115
- };
116
- return requests.postAuthenticate(ApiConstants_js_1.default.CONNECT_URL, data);
117
- };
118
- // Called after a successful authentication request
119
- const onSocketAuthenticated = (data) => {
120
- if (!authToken) {
121
- // New session
122
- logger.info('Login succeed');
123
- authToken = data.auth_token;
124
- }
125
- else {
126
- // Existing session
127
- logger.info('Socket associated with an existing session');
128
- }
129
- if (connectedCallback) {
130
- // Catch separately as we don't want an infinite reconnect loop
131
- try {
132
- connectedCallback(data);
133
- }
134
- catch (e) {
135
- console.error('Error in socket connect handler', e.message);
136
- }
137
- requests.onSocketConnected();
138
- }
139
- };
140
- // Send API authentication and handle the result
141
- // Authentication handler should send the actual authentication request
142
- const authenticate = (resolve, reject, authenticationHandler, reconnectHandler) => {
143
- authenticationHandler()
144
- .then((data) => {
145
- onSocketAuthenticated(data);
146
- resolve(data);
147
- })
148
- .catch((error) => {
149
- if (error.code) {
150
- if (authToken && error.code === 400 && options.autoReconnect) {
151
- // The session was lost (most likely the client was restarted)
152
- logger.info('Session lost, re-sending credentials');
153
- resetSession();
154
- authenticate(resolve, reject, handlePasswordLogin, reconnectHandler);
155
- return;
156
- }
157
- else if (error.code === 401) {
158
- // Invalid credentials, reset the token if we were reconnecting to avoid an infinite loop
159
- resetSession();
160
- }
161
- // Authentication was rejected
162
- socket.disconnect(undefined, 'Authentication failed');
163
- }
164
- else {
165
- // Socket was disconnected during the authentication
166
- logger.info('Socket disconnected during authentication, reconnecting');
167
- reconnectHandler();
168
- return;
169
- }
170
- reject(error);
171
- });
172
- };
173
- // Authentication handler should send the actual authentication request
174
- const connectInternal = (resolve, reject, authenticationHandler, reconnectOnFailure = true) => {
175
- ws = new WebSocketImpl(options.url);
176
- const scheduleReconnect = () => {
177
- ws = null;
178
- if (!reconnectOnFailure) {
179
- reject('Cannot connect to the server');
180
- return;
181
- }
182
- reconnectTimer = setTimeout(() => {
183
- logger.info('Socket reconnecting');
184
- connectInternal(resolve, reject, authenticationHandler, reconnectOnFailure);
185
- }, options.reconnectInterval * 1000);
186
- };
187
- ws.onopen = () => {
188
- logger.info('Socket connected');
189
- setSocketHandlers();
190
- authenticate(resolve, reject, authenticationHandler, scheduleReconnect);
191
- };
192
- ws.onerror = (event) => {
193
- logger.error('Connecting socket failed');
194
- scheduleReconnect();
195
- };
196
- };
197
- // Authentication handler should send the actual authentication request
198
- const startConnect = (authenticationHandler, reconnectOnFailure) => {
199
- forceNoAutoConnect = false;
200
- return new Promise_js_1.default((resolve, reject) => {
201
- logger.info('Starting socket connect');
202
- connectInternal(resolve, reject, authenticationHandler, reconnectOnFailure);
203
- });
204
- };
205
- // Is the socket connected and authorized?
206
- const isConnected = () => {
207
- return !!(ws && ws.readyState === (ws.OPEN || 1) && authToken);
208
- };
209
- // Is the socket connected but not possibly authorized?
210
- const isConnecting = () => {
211
- return !!(ws && !isConnected());
212
- };
213
- // Socket exists
214
- const isActive = () => {
215
- return !!ws;
216
- };
217
- const disableReconnect = () => {
218
- clearTimeout(reconnectTimer);
219
- forceNoAutoConnect = true;
220
- };
221
- const waitDisconnected = (timeoutMs = 2000) => {
222
- const checkInterval = 50;
223
- const maxAttempts = timeoutMs > 0 ? timeoutMs / checkInterval : 0;
224
- return new Promise_js_1.default((resolve, reject) => {
225
- let attempts = 0;
226
- const wait = () => {
227
- if (isActive()) {
228
- if (attempts >= maxAttempts) {
229
- logger.error(`Socket disconnect timed out after ${timeoutMs} ms`);
230
- reject('Socket disconnect timed out');
231
- }
232
- else {
233
- setTimeout(wait, checkInterval);
234
- attempts++;
235
- }
236
- }
237
- else {
238
- resolve();
239
- }
240
- };
241
- wait();
242
- });
243
- };
244
- // Disconnects the socket but keeps the session token
245
- const disconnect = (autoConnect = false, reason = 'Manually disconnected by the client') => {
246
- if (!ws) {
247
- if (!forceNoAutoConnect) {
248
- if (!autoConnect) {
249
- logger.verbose('Disconnecting a closed socket with auto reconnect enabled (cancel reconnect)');
250
- disableReconnect();
251
- }
252
- else {
253
- logger.verbose('Attempting to disconnect a closed socket with auto reconnect enabled (continue connecting)');
254
- }
255
- }
256
- else {
257
- logger.warn('Attempting to disconnect a closed socket (ignore)');
258
- //throw 'Attempting to disconnect a closed socket';
259
- }
260
- return;
261
- }
262
- logger.info('Disconnecting socket');
263
- if (!autoConnect) {
264
- disableReconnect();
265
- }
266
- ws.close(1000, reason);
267
- };
268
- socket = {
269
- // Start connect
270
- // Username and password are not required if those are available in socket options
271
- connect: (username, password, reconnectOnFailure = true) => {
272
- if (isActive()) {
273
- throw 'Connect may only be used for a closed socket';
274
- }
275
- resetSession();
276
- return startConnect(() => handlePasswordLogin(username, password), reconnectOnFailure);
277
- },
278
- connectRefreshToken: (refreshToken, reconnectOnFailure = true) => {
279
- if (isActive()) {
280
- throw 'Connect may only be used for a closed socket';
281
- }
282
- resetSession();
283
- return startConnect(() => handleRefreshTokenLogin(refreshToken), reconnectOnFailure);
284
- },
285
- // Connect and attempt to associate the socket with an existing session
286
- reconnect: (token = undefined, reconnectOnFailure = true) => {
287
- if (isActive()) {
288
- throw 'Reconnect may only be used for a closed socket';
289
- }
290
- if (token) {
291
- authToken = token;
292
- }
293
- if (!authToken) {
294
- throw 'No session token available for reconnecting';
295
- }
296
- logger.info('Reconnecting socket');
297
- return startConnect(handleAuthorizeToken, reconnectOnFailure);
298
- },
299
- // Remove the associated API session and close the socket
300
- logout: () => {
301
- const resolver = Promise_js_1.default.pending();
302
- socket.delete(ApiConstants_js_1.default.LOGOUT_URL)
303
- .then((data) => {
304
- logger.info('Logout succeed');
305
- resetSession();
306
- resolver.resolve(data);
307
- // Don't fire the disconnected event before resolver actions are handled
308
- disconnect(undefined, 'Logged out');
309
- })
310
- .catch((error) => {
311
- logger.error('Logout failed', error);
312
- resolver.reject(error);
313
- });
314
- return resolver.promise;
315
- },
316
- disconnect,
317
- isConnecting,
318
- isConnected,
319
- isActive,
320
- logger,
321
- waitDisconnected,
322
- // Function to call each time the socket has been connected (and authorized)
323
- set onConnected(handler) {
324
- connectedCallback = handler;
325
- },
326
- // Function to call each time the stored session token was reset (manual logout/rejected reconnect)
327
- set onSessionReset(handler) {
328
- sessionResetCallback = handler;
329
- },
330
- // Function to call each time the socket has been disconnected
331
- set onDisconnected(handler) {
332
- disconnectedCallback = handler;
333
- },
334
- get onConnected() {
335
- return connectedCallback;
336
- },
337
- get onSessionReset() {
338
- return sessionResetCallback;
339
- },
340
- get onDisconnected() {
341
- return disconnectedCallback;
342
- },
343
- get nativeSocket() {
344
- return ws;
345
- },
346
- ...subscriptions.socket,
347
- ...requests.socket,
348
- };
349
- return socket;
350
- };
351
- exports.default = ApiSocket;
352
- //# sourceMappingURL=SocketBase.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SocketBase.js","sourceRoot":"","sources":["../src/SocketBase.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import * as Options from './types/options.js';
2
- import { Logger } from './types/logger.js';
3
- export declare const LOG_NONE = "none";
4
- export declare const LOG_ERROR = "error";
5
- export declare const LOG_WARN = "warn";
6
- export declare const LOG_INFO = "info";
7
- export declare const LOG_VERBOSE = "verbose";
8
- declare const Logger: ({ logLevel: logSetting, logOutput }: Options.LoggerOptions) => Logger;
9
- export default Logger;
@@ -1,75 +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.LOG_VERBOSE = exports.LOG_INFO = exports.LOG_WARN = exports.LOG_ERROR = exports.LOG_NONE = void 0;
7
- const chalk_1 = __importDefault(require("chalk"));
8
- // @ts-ignore
9
- const is_in_browser_1 = require("is-in-browser");
10
- const invariant_1 = __importDefault(require("invariant"));
11
- exports.LOG_NONE = 'none';
12
- exports.LOG_ERROR = 'error';
13
- exports.LOG_WARN = 'warn';
14
- exports.LOG_INFO = 'info';
15
- exports.LOG_VERBOSE = 'verbose';
16
- const Severities = {
17
- [exports.LOG_NONE]: -1,
18
- [exports.LOG_ERROR]: 0,
19
- [exports.LOG_WARN]: 1,
20
- [exports.LOG_INFO]: 2,
21
- [exports.LOG_VERBOSE]: 3,
22
- };
23
- // Should we format the line with timestamp and coloring or let the logger implementation to handle it?
24
- // Do this when running in terminal (node.js/tests in browser env)
25
- const shouldFormatLine = is_in_browser_1.isJsDom || !is_in_browser_1.isBrowser;
26
- const Logger = ({ logLevel: logSetting = exports.LOG_VERBOSE, logOutput = console }) => {
27
- const logLevel = Severities[logSetting];
28
- (0, invariant_1.default)(
29
- // @ts-ignore: This condition will always return true since the function is always defined
30
- logOutput.log && logOutput.info && logOutput.warn && logOutput.error, 'Invalid logOutput provided');
31
- const formatCurrentTime = () => {
32
- const d = new Date();
33
- return `[${d.toLocaleDateString()} ${d.toLocaleTimeString()}:${d.getMilliseconds()}]`;
34
- };
35
- const print = (args, printHandler, argFormat) => {
36
- let printableArgs = [...Array.prototype.slice.call(args)];
37
- if (shouldFormatLine && argFormat) {
38
- // Add the current time as well
39
- printableArgs = [
40
- chalk_1.default.magenta(formatCurrentTime()),
41
- ...printableArgs.map(arg => argFormat(typeof arg === 'object' ? JSON.stringify(arg, null, ' ') : arg)),
42
- ];
43
- }
44
- printHandler.apply(logOutput, printableArgs);
45
- };
46
- const Impl = {
47
- verbose() {
48
- if (logLevel < Severities[exports.LOG_VERBOSE]) {
49
- return;
50
- }
51
- print(arguments, logOutput.log, chalk_1.default.gray);
52
- },
53
- info() {
54
- if (logLevel < Severities[exports.LOG_INFO]) {
55
- return;
56
- }
57
- print(arguments, logOutput.info, chalk_1.default.white.bold);
58
- },
59
- warn() {
60
- if (logLevel < Severities[exports.LOG_WARN]) {
61
- return;
62
- }
63
- print(arguments, logOutput.warn, chalk_1.default.yellow.bold);
64
- },
65
- error() {
66
- if (logLevel < Severities[exports.LOG_ERROR]) {
67
- return;
68
- }
69
- print(arguments, logOutput.error, chalk_1.default.red.bold);
70
- },
71
- };
72
- return Impl;
73
- };
74
- exports.default = Logger;
75
- //# sourceMappingURL=SocketLogger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SocketLogger.js","sourceRoot":"","sources":["../src/SocketLogger.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,aAAa;AACb,iDAAmD;AACnD,0DAAkC;AAMrB,QAAA,QAAQ,GAAG,MAAM,CAAC;AAClB,QAAA,SAAS,GAAG,OAAO,CAAC;AACpB,QAAA,QAAQ,GAAG,MAAM,CAAC;AAClB,QAAA,QAAQ,GAAG,MAAM,CAAC;AAClB,QAAA,WAAW,GAAG,SAAS,CAAC;AAErC,MAAM,UAAU,GAAG;IACjB,CAAC,gBAAQ,CAAC,EAAE,CAAC,CAAC;IACd,CAAC,iBAAS,CAAC,EAAE,CAAC;IACd,CAAC,gBAAQ,CAAC,EAAE,CAAC;IACb,CAAC,gBAAQ,CAAC,EAAE,CAAC;IACb,CAAC,mBAAW,CAAC,EAAE,CAAC;CACjB,CAAC;AAGF,uGAAuG;AACvG,kEAAkE;AAClE,MAAM,gBAAgB,GAAG,uBAAO,IAAI,CAAC,yBAAS,CAAC;AAE/C,MAAM,MAAM,GAAG,CAAC,EAAE,QAAQ,EAAE,UAAU,GAAG,mBAAW,EAAE,SAAS,GAAG,OAAO,EAAyB,EAAE,EAAE;IACpG,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAqC,CAAC,CAAC;IAEnE,IAAA,mBAAS;IACP,0FAA0F;IAC1F,SAAS,CAAC,GAAG,IAAI,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,KAAK,EACpE,4BAA4B,CAC7B,CAAC;IAEF,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC7B,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,eAAe,EAAE,GAAG,CAAC;IACxF,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,CAAC,IAAgB,EAAE,YAAkC,EAAE,SAAkC,EAAE,EAAE;QACzG,IAAI,aAAa,GAAG,CAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,CAAC;QAE5D,IAAI,gBAAgB,IAAI,SAAS,EAAE;YACjC,+BAA+B;YAC/B,aAAa,GAAG;gBACd,eAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;gBAClC,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;aACxG,CAAC;SACH;QAED,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAC/C,CAAC,CAAC;IAEF,MAAM,IAAI,GAAW;QACnB,OAAO;YACL,IAAI,QAAQ,GAAG,UAAU,CAAC,mBAAW,CAAC,EAAE;gBACtC,OAAO;aACR;YAED,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,EAAE,eAAK,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI;YACF,IAAI,QAAQ,GAAG,UAAU,CAAC,gBAAQ,CAAC,EAAE;gBACnC,OAAO;aACR;YAED,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC;QAED,IAAI;YACF,IAAI,QAAQ,GAAG,UAAU,CAAC,gBAAQ,CAAC,EAAE;gBACnC,OAAO;aACR;YAED,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACtD,CAAC;QAED,KAAK;YACH,IAAI,QAAQ,GAAG,UAAU,CAAC,iBAAS,CAAC,EAAE;gBACpC,OAAO;aACR;YAED,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,KAAK,EAAE,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;KACF,CAAC;IAEF,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,kBAAe,MAAM,CAAC"}