airdcpp-apisocket 2.4.3 → 2.4.5-beta.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.
Files changed (112) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/GUIDE.md +16 -13
  3. package/babel.config.cjs +6 -0
  4. package/dist/NodeSocket.d.ts +3 -3
  5. package/dist/NodeSocket.js +9 -5
  6. package/dist/NodeSocket.js.map +1 -1
  7. package/dist/Promise.js +6 -6
  8. package/dist/Promise.js.map +1 -1
  9. package/dist/PublicHelpers.d.ts +1 -1
  10. package/dist/PublicHelpers.js +75 -168
  11. package/dist/PublicHelpers.js.map +1 -1
  12. package/dist/SocketBase.d.ts +2 -2
  13. package/dist/SocketBase.js +82 -98
  14. package/dist/SocketBase.js.map +1 -1
  15. package/dist/SocketLogger.d.ts +2 -2
  16. package/dist/SocketLogger.js +29 -35
  17. package/dist/SocketLogger.js.map +1 -1
  18. package/dist/SocketRequestHandler.d.ts +6 -6
  19. package/dist/SocketRequestHandler.js +56 -70
  20. package/dist/SocketRequestHandler.js.map +1 -1
  21. package/dist/SocketSubscriptionHandler.d.ts +5 -5
  22. package/dist/SocketSubscriptionHandler.js +58 -71
  23. package/dist/SocketSubscriptionHandler.js.map +1 -1
  24. package/dist/types/api.d.ts +3 -3
  25. package/dist/types/api_internal.d.ts +2 -2
  26. package/dist/types/index.d.ts +7 -7
  27. package/dist/types/index.js +12 -8
  28. package/dist/types/index.js.map +1 -1
  29. package/dist/types/options.d.ts +3 -3
  30. package/dist/types/public_helpers.d.ts +1 -1
  31. package/dist/types/public_helpers_internal.d.ts +2 -2
  32. package/dist/types/requests.d.ts +1 -1
  33. package/dist/types/socket.d.ts +7 -7
  34. package/dist/types/socket.js +0 -1
  35. package/dist/types/socket.js.map +1 -1
  36. package/dist/types/subscriptions.d.ts +11 -11
  37. package/dist/utils.d.ts +2 -2
  38. package/dist/utils.js +1 -1
  39. package/dist/utils.js.map +1 -1
  40. package/dist-es/NodeSocket.d.ts +3 -3
  41. package/dist-es/NodeSocket.js +3 -3
  42. package/dist-es/NodeSocket.js.map +1 -1
  43. package/dist-es/Promise.js +6 -6
  44. package/dist-es/Promise.js.map +1 -1
  45. package/dist-es/PublicHelpers.d.ts +1 -1
  46. package/dist-es/PublicHelpers.js +75 -168
  47. package/dist-es/PublicHelpers.js.map +1 -1
  48. package/dist-es/SocketBase.d.ts +2 -2
  49. package/dist-es/SocketBase.js +76 -92
  50. package/dist-es/SocketBase.js.map +1 -1
  51. package/dist-es/SocketLogger.d.ts +2 -2
  52. package/dist-es/SocketLogger.js +31 -37
  53. package/dist-es/SocketLogger.js.map +1 -1
  54. package/dist-es/SocketRequestHandler.d.ts +6 -6
  55. package/dist-es/SocketRequestHandler.js +51 -65
  56. package/dist-es/SocketRequestHandler.js.map +1 -1
  57. package/dist-es/SocketSubscriptionHandler.d.ts +5 -5
  58. package/dist-es/SocketSubscriptionHandler.js +54 -67
  59. package/dist-es/SocketSubscriptionHandler.js.map +1 -1
  60. package/dist-es/types/api.d.ts +3 -3
  61. package/dist-es/types/api_internal.d.ts +2 -2
  62. package/dist-es/types/index.d.ts +7 -7
  63. package/dist-es/types/index.js +7 -7
  64. package/dist-es/types/index.js.map +1 -1
  65. package/dist-es/types/options.d.ts +3 -3
  66. package/dist-es/types/public_helpers.d.ts +1 -1
  67. package/dist-es/types/public_helpers_internal.d.ts +2 -2
  68. package/dist-es/types/requests.d.ts +1 -1
  69. package/dist-es/types/socket.d.ts +7 -7
  70. package/dist-es/types/socket.js +0 -1
  71. package/dist-es/types/socket.js.map +1 -1
  72. package/dist-es/types/subscriptions.d.ts +11 -11
  73. package/dist-es/utils.d.ts +2 -2
  74. package/dist-es/utils.js +1 -1
  75. package/dist-es/utils.js.map +1 -1
  76. package/jest.config.js +18 -3
  77. package/package.json +16 -14
  78. package/src/NodeSocket.ts +3 -3
  79. package/src/PublicHelpers.ts +2 -2
  80. package/src/SocketBase.ts +9 -9
  81. package/src/SocketLogger.ts +5 -5
  82. package/src/SocketRequestHandler.ts +8 -8
  83. package/src/SocketSubscriptionHandler.ts +28 -18
  84. package/src/tests/Socket.test.ts +30 -22
  85. package/src/tests/helpers.ts +7 -6
  86. package/src/tests/public_helpers.test.ts +9 -8
  87. package/src/types/api_internal.ts +1 -1
  88. package/src/types/index.ts +7 -7
  89. package/src/types/public_helpers_internal.ts +1 -1
  90. package/src/types/requests.ts +1 -1
  91. package/src/types/socket.ts +4 -20
  92. package/src/types/subscriptions.ts +3 -3
  93. package/src/utils.ts +1 -1
  94. package/tsconfig.json +4 -8
  95. package/dist/tests/Socket.test.d.ts +0 -1
  96. package/dist/tests/Socket.test.js +0 -758
  97. package/dist/tests/Socket.test.js.map +0 -1
  98. package/dist/tests/helpers.d.ts +0 -57
  99. package/dist/tests/helpers.js +0 -178
  100. package/dist/tests/helpers.js.map +0 -1
  101. package/dist/tests/public_helpers.test.d.ts +0 -1
  102. package/dist/tests/public_helpers.test.js +0 -241
  103. package/dist/tests/public_helpers.test.js.map +0 -1
  104. package/dist-es/tests/Socket.test.d.ts +0 -1
  105. package/dist-es/tests/Socket.test.js +0 -734
  106. package/dist-es/tests/Socket.test.js.map +0 -1
  107. package/dist-es/tests/helpers.d.ts +0 -57
  108. package/dist-es/tests/helpers.js +0 -168
  109. package/dist-es/tests/helpers.js.map +0 -1
  110. package/dist-es/tests/public_helpers.test.d.ts +0 -1
  111. package/dist-es/tests/public_helpers.test.js +0 -236
  112. package/dist-es/tests/public_helpers.test.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ### 2.4.4 (2021-08-27)
2
+
3
+ - Throw when attempting to add listeners for individual entities incorrectly
4
+
1
5
  ### 2.4.3 (2021-08-21)
2
6
 
3
7
  - Handle cases when an error code is returned by the API without an accompanying error message (this may have previously crashed the process e.g. when attempting to remove hooks: https://github.com/airdcpp/airdcpp-windows/commit/596b31a9c8c4e72f6c9279972a40ea30f10798c4).
package/GUIDE.md CHANGED
@@ -9,8 +9,8 @@
9
9
  - [isConnected](#isconnected)
10
10
  - [logout](#logout)
11
11
  - [Connect state events](#connect-state-events)
12
- - [onSocketConnected](#onsocketconnected)
13
- - [onSocketDisconnected](#onsocketdisconnected)
12
+ - [onConnected](#onconnected)
13
+ - [onDisconnected](#ondisconnected)
14
14
  - [onSessionReset](#onsessionreset)
15
15
  - [Logger](#logger)
16
16
  - [API requests](#api-requests)
@@ -71,7 +71,7 @@ const socket = Socket(settings, w3cwebsocket);
71
71
  | :--- | :--- | :---: | :--- |
72
72
  | **url** | `string` | | Fully qualified API URL (**required**). Example: ws://localhost:5600/api/v1/ |
73
73
  | **username, password** | `string` | | Username and password to use when connecting to the API. Alternatively you may provide the credentials when calling [`connect`](#connect). |
74
- | **autoReconnect** | `boolean` | true | Reconnect automatically if the socket gets disconnected |
74
+ | **autoReconnect** | `boolean` | true | Reconnect automatically if there are network errors when initializing connection or when a connected socket gets disconnected |
75
75
  | **reconnectInterval** | `number` | 10 | Interval of automatic reconnection (seconds) |
76
76
  | **requestTimeout** | `number` | 30 | Notify about about API requests that have taken longer than this to complete (seconds). This is mainly used for detecting possible issues (deadlocks) with the backend as messages sent via WebSocket should always be delivered (pending request will be aborted automatically when the socket is disconnected). |
77
77
  | **reconnectInterval** | `number` | 10 | Interval of automatic reconnection (seconds) |
@@ -160,13 +160,13 @@ Promise that will be resolved with the possible response of the [DELETE /session
160
160
 
161
161
  ## Connect state events
162
162
 
163
- ### `onSocketConnected`
163
+ ### `onConnected`
164
164
 
165
- `onSocketConnected(data)`
165
+ `onConnected(data)`
166
166
 
167
167
  Fired after the socket was connected and authenticated. `data` is the data received from the API authentication request ([`connect`](#connect)/[`reconnect`](#reconnect)).
168
168
 
169
- ### `onSocketDisconnected`
169
+ ### `onDisconnected`
170
170
 
171
171
  Fired after the socket was disconnected.
172
172
 
@@ -236,13 +236,13 @@ socket.post('events', {
236
236
 
237
237
  **Arguments**
238
238
 
239
- **`path`** (string, required)
239
+ **`apiSection`** (string, required)
240
240
 
241
- API path without the `listener/name` part.
241
+ API section of the listener (the first part of the documented listener URL, e.g. `hubs` or `search`).
242
242
 
243
243
  **`listenerName`** (string, required)
244
244
 
245
- Name of the API event
245
+ Name of the API listener (last part of the documented listener URL)
246
246
 
247
247
  **`callback`** (function, required)
248
248
 
@@ -272,6 +272,9 @@ const onMessageReceived = (message, hubId) => {
272
272
  // NOTE: async function
273
273
  const removeListener = await socket.addListener('hubs', 'hub_chat_message', onMessageReceived);
274
274
 
275
+ // If you want to add the listener only for a single hub, add the session ID argument at the end:
276
+ // const removeListener = await socket.addListener('hubs', 'hub_chat_message', onMessageReceived, replace_with_the_wanted_session_id);
277
+
275
278
  // ... other code
276
279
 
277
280
 
@@ -290,13 +293,13 @@ Action hooks are meant to be used only if you are going to change the behavior h
290
293
 
291
294
  **Arguments**
292
295
 
293
- **`path`** (string, required)
296
+ **`apiSection`** (string, required)
294
297
 
295
- API path without the `hook/name` part.
298
+ API section of the wanted hook (the first part of the documented hook URL, e.g. `hubs` or `search`).
296
299
 
297
300
  **`hookName`** (string, required)
298
301
 
299
- Name of the hook
302
+ Name of the hook (last part of the documented hook URL)
300
303
 
301
304
  **`callback`** (function, required)
302
305
 
@@ -462,4 +465,4 @@ socket.onConnected = (sessionInfo) => {
462
465
  );
463
466
  }
464
467
  }
465
- ```
468
+ ```
@@ -0,0 +1,6 @@
1
+ module.exports = {
2
+ presets: [
3
+ '@babel/preset-env'
4
+ ]
5
+ };
6
+
@@ -1,4 +1,4 @@
1
- import SocketBase from './SocketBase';
2
- export * from './types';
3
- export * from './PublicHelpers';
1
+ import SocketBase from './SocketBase.js';
2
+ export * from './types/index.js';
3
+ export * from './PublicHelpers.js';
4
4
  export { SocketBase as Socket };
@@ -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.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -14,8 +18,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
18
  };
15
19
  Object.defineProperty(exports, "__esModule", { value: true });
16
20
  exports.Socket = void 0;
17
- var SocketBase_1 = __importDefault(require("./SocketBase"));
18
- exports.Socket = SocketBase_1.default;
19
- __exportStar(require("./types"), exports);
20
- __exportStar(require("./PublicHelpers"), exports);
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);
21
25
  //# sourceMappingURL=NodeSocket.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeSocket.js","sourceRoot":"","sources":["../src/NodeSocket.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAAsC;AAMf,iBANhB,oBAAU,CAMY;AAH7B,0CAAwB;AACxB,kDAAgC"}
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.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  // Use native promises when available
4
- var AppPromise;
4
+ let AppPromise;
5
5
  if (typeof Promise !== 'undefined') {
6
6
  AppPromise = Promise;
7
7
  }
@@ -9,19 +9,19 @@ else {
9
9
  AppPromise = require('promise');
10
10
  }
11
11
  function pending() {
12
- var resolve, reject;
13
- var promise = new AppPromise(function () {
12
+ let resolve, reject;
13
+ let promise = new AppPromise(function () {
14
14
  resolve = arguments[0];
15
15
  reject = arguments[1];
16
16
  });
17
17
  return {
18
18
  resolve: resolve,
19
19
  reject: reject,
20
- promise: promise
20
+ promise
21
21
  };
22
22
  }
23
- var PendingPromise = Object.assign(AppPromise, {
24
- pending: pending
23
+ const PendingPromise = Object.assign(AppPromise, {
24
+ pending
25
25
  });
26
26
  exports.default = PendingPromise;
27
27
  //# sourceMappingURL=Promise.js.map
@@ -1 +1 @@
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,SAAA;KACR,CAAC;AACJ,CAAC;AAMD,IAAM,cAAc,GAAe,MAAM,CAAC,MAAM,CAC9C,UAAU,EACV;IACE,OAAO,SAAA;CACR,CACF,CAAC;AAEF,kBAAe,cAAc,CAAC"}
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 +1,2 @@
1
- import { HookSubscriberInfo, APISocket, ContextMenuItem, EntityId } from './types';
1
+ import { HookSubscriberInfo, APISocket, ContextMenuItem, EntityId } from './types/index.js';
2
2
  export declare const addContextMenuItems: <IdT, EntityIdT extends EntityId | undefined = undefined>(socket: APISocket, menuItems: ContextMenuItem<IdT, EntityIdT>[], menuId: string, subscriberInfo: HookSubscriberInfo) => Promise<() => void>;
@@ -1,15 +1,4 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -19,175 +8,93 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
19
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
20
9
  });
21
10
  };
22
- var __generator = (this && this.__generator) || function (thisArg, body) {
23
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
- function verb(n) { return function (v) { return step([n, v]); }; }
26
- function step(op) {
27
- if (f) throw new TypeError("Generator is already executing.");
28
- while (_) try {
29
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
- if (y = 0, t) op = [op[0] & 2, t.value];
31
- switch (op[0]) {
32
- case 0: case 1: t = op; break;
33
- case 4: _.label++; return { value: op[1], done: false };
34
- case 5: _.label++; y = op[1]; op = [0]; continue;
35
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
- default:
37
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
- if (t[2]) _.ops.pop();
42
- _.trys.pop(); continue;
43
- }
44
- op = body.call(thisArg, _);
45
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
- }
48
- };
49
11
  Object.defineProperty(exports, "__esModule", { value: true });
50
12
  exports.addContextMenuItems = void 0;
51
- var checkAccess = function (menuItem, permissions) {
13
+ const checkAccess = (menuItem, permissions) => {
52
14
  if (!menuItem.access) {
53
15
  return true;
54
16
  }
55
17
  return permissions.indexOf('admin') !== -1 || permissions.indexOf(menuItem.access) !== -1;
56
18
  };
57
- var URLS_SUPPORT = 'urls';
58
- var FORM_SUPPORT = 'form';
59
- var hasSupport = function (support, supports) {
19
+ const URLS_SUPPORT = 'urls';
20
+ const FORM_SUPPORT = 'form';
21
+ const hasSupport = (support, supports) => {
60
22
  return !!supports && supports.indexOf(support) !== -1;
61
23
  };
62
24
  // Check whether the item passes the access and filter checks
63
- var validateItem = function (menuItem, data) { return __awaiter(void 0, void 0, void 0, function () {
64
- var selected_ids, entity_id, permissions, supports, _a;
65
- return __generator(this, function (_b) {
66
- switch (_b.label) {
67
- case 0:
68
- selected_ids = data.selected_ids, entity_id = data.entity_id, permissions = data.permissions, supports = data.supports;
69
- if (!!menuItem.urls && !hasSupport(URLS_SUPPORT, supports)) {
70
- return [2 /*return*/, false];
71
- }
72
- _a = !!menuItem.filter;
73
- if (!_a) return [3 /*break*/, 2];
74
- return [4 /*yield*/, menuItem.filter(selected_ids, entity_id, permissions, supports)];
75
- case 1:
76
- _a = !(_b.sent());
77
- _b.label = 2;
78
- case 2:
79
- if (_a) {
80
- return [2 /*return*/, false];
81
- }
82
- return [2 /*return*/, checkAccess(menuItem, data.permissions)];
25
+ const validateItem = (menuItem, data) => __awaiter(void 0, void 0, void 0, function* () {
26
+ const { selected_ids, entity_id, permissions, supports } = data;
27
+ if (!!menuItem.urls && !hasSupport(URLS_SUPPORT, supports)) {
28
+ return false;
29
+ }
30
+ if (!!menuItem.filter && !(yield menuItem.filter(selected_ids, entity_id, permissions, supports))) {
31
+ return false;
32
+ }
33
+ return checkAccess(menuItem, data.permissions);
34
+ });
35
+ const parseCallbackData = (item, data) => __awaiter(void 0, void 0, void 0, function* () {
36
+ const { selected_ids, entity_id, permissions, supports } = data;
37
+ if (!!item.urls && !!item.urls.length) {
38
+ let urls;
39
+ if (typeof item.urls === 'function') {
40
+ urls = yield item.urls(selected_ids, entity_id, permissions, supports);
83
41
  }
84
- });
85
- }); };
86
- var parseCallbackData = function (item, data) { return __awaiter(void 0, void 0, void 0, function () {
87
- var selected_ids, entity_id, permissions, supports, urls, formDefinitions;
88
- return __generator(this, function (_a) {
89
- switch (_a.label) {
90
- case 0:
91
- selected_ids = data.selected_ids, entity_id = data.entity_id, permissions = data.permissions, supports = data.supports;
92
- if (!(!!item.urls && !!item.urls.length)) return [3 /*break*/, 4];
93
- urls = void 0;
94
- if (!(typeof item.urls === 'function')) return [3 /*break*/, 2];
95
- return [4 /*yield*/, item.urls(selected_ids, entity_id, permissions, supports)];
96
- case 1:
97
- urls = _a.sent();
98
- return [3 /*break*/, 3];
99
- case 2:
100
- urls = item.urls;
101
- _a.label = 3;
102
- case 3: return [2 /*return*/, {
103
- urls: urls,
104
- }];
105
- case 4:
106
- if (!(!!item.formDefinitions && hasSupport(FORM_SUPPORT, supports))) return [3 /*break*/, 8];
107
- formDefinitions = void 0;
108
- if (!(typeof item.formDefinitions === 'function')) return [3 /*break*/, 6];
109
- return [4 /*yield*/, item.formDefinitions(selected_ids, entity_id, permissions, supports)];
110
- case 5:
111
- formDefinitions = _a.sent();
112
- return [3 /*break*/, 7];
113
- case 6:
114
- formDefinitions = item.formDefinitions;
115
- _a.label = 7;
116
- case 7: return [2 /*return*/, {
117
- form_definitions: formDefinitions,
118
- }];
119
- case 8: return [2 /*return*/, {}];
42
+ else {
43
+ urls = item.urls;
120
44
  }
121
- });
122
- }); };
123
- var addContextMenuItems = function (socket, menuItems, menuId, subscriberInfo) { return __awaiter(void 0, void 0, void 0, function () {
124
- var removeListener, removeHook;
125
- return __generator(this, function (_a) {
126
- switch (_a.label) {
127
- case 0: return [4 /*yield*/, socket.addListener('menus', menuId + "_menuitem_selected", function (data) { return __awaiter(void 0, void 0, void 0, function () {
128
- var menuItem, isValid, selected_ids, entity_id, permissions, supports, form_values;
129
- return __generator(this, function (_a) {
130
- switch (_a.label) {
131
- case 0:
132
- if (!(data.hook_id === subscriberInfo.id)) return [3 /*break*/, 2];
133
- menuItem = menuItems.find(function (i) { return data.menuitem_id === i.id; });
134
- if (!!!menuItem) return [3 /*break*/, 2];
135
- return [4 /*yield*/, validateItem(menuItem, data)];
136
- case 1:
137
- isValid = _a.sent();
138
- if (isValid && !!menuItem.onClick) {
139
- selected_ids = data.selected_ids, entity_id = data.entity_id, permissions = data.permissions, supports = data.supports, form_values = data.form_values;
140
- menuItem.onClick(selected_ids, entity_id, permissions, supports, form_values);
141
- }
142
- _a.label = 2;
143
- case 2: return [2 /*return*/];
144
- }
145
- });
146
- }); })];
147
- case 1:
148
- removeListener = _a.sent();
149
- return [4 /*yield*/, socket.addHook('menus', menuId + "_list_menuitems", function (data, accept, reject) { return __awaiter(void 0, void 0, void 0, function () {
150
- var validItems, _i, menuItems_1, item, isValid, parsedCallbackData, onClick, id, title, icon;
151
- return __generator(this, function (_a) {
152
- switch (_a.label) {
153
- case 0:
154
- validItems = [];
155
- _i = 0, menuItems_1 = menuItems;
156
- _a.label = 1;
157
- case 1:
158
- if (!(_i < menuItems_1.length)) return [3 /*break*/, 5];
159
- item = menuItems_1[_i];
160
- return [4 /*yield*/, validateItem(item, data)];
161
- case 2:
162
- isValid = _a.sent();
163
- if (!isValid) return [3 /*break*/, 4];
164
- return [4 /*yield*/, parseCallbackData(item, data)];
165
- case 3:
166
- parsedCallbackData = _a.sent();
167
- onClick = item.onClick, id = item.id, title = item.title, icon = item.icon;
168
- if (!!onClick || (!!parsedCallbackData.urls && parsedCallbackData.urls.length)) {
169
- validItems.push(__assign({ id: id, title: title, icon: icon }, parsedCallbackData));
170
- }
171
- _a.label = 4;
172
- case 4:
173
- _i++;
174
- return [3 /*break*/, 1];
175
- case 5:
176
- accept({
177
- menuitems: validItems
178
- });
179
- return [2 /*return*/];
180
- }
181
- });
182
- }); }, subscriberInfo)];
183
- case 2:
184
- removeHook = _a.sent();
185
- return [2 /*return*/, function () {
186
- removeHook();
187
- removeListener();
188
- }];
45
+ return {
46
+ urls,
47
+ };
48
+ }
49
+ else if (!!item.formDefinitions && hasSupport(FORM_SUPPORT, supports)) {
50
+ let formDefinitions;
51
+ if (typeof item.formDefinitions === 'function') {
52
+ formDefinitions = yield item.formDefinitions(selected_ids, entity_id, permissions, supports);
189
53
  }
190
- });
191
- }); };
54
+ else {
55
+ formDefinitions = item.formDefinitions;
56
+ }
57
+ return {
58
+ form_definitions: formDefinitions,
59
+ };
60
+ }
61
+ return {};
62
+ });
63
+ const addContextMenuItems = (socket, menuItems, menuId, subscriberInfo) => __awaiter(void 0, void 0, void 0, function* () {
64
+ const removeListener = yield socket.addListener('menus', `${menuId}_menuitem_selected`, (data) => __awaiter(void 0, void 0, void 0, function* () {
65
+ if (data.hook_id === subscriberInfo.id) {
66
+ const menuItem = menuItems.find(i => data.menuitem_id === i.id);
67
+ if (!!menuItem) {
68
+ const isValid = yield validateItem(menuItem, data);
69
+ if (isValid && !!menuItem.onClick) {
70
+ const { selected_ids, entity_id, permissions, supports, form_values } = data;
71
+ menuItem.onClick(selected_ids, entity_id, permissions, supports, form_values);
72
+ }
73
+ }
74
+ }
75
+ }));
76
+ const removeHook = yield socket.addHook('menus', `${menuId}_list_menuitems`, (data, accept, reject) => __awaiter(void 0, void 0, void 0, function* () {
77
+ const validItems = [];
78
+ for (const item of menuItems) {
79
+ const isValid = yield validateItem(item, data);
80
+ if (isValid) {
81
+ const parsedCallbackData = yield parseCallbackData(item, data);
82
+ const { onClick, id, title, icon } = item;
83
+ if (!!onClick || (!!parsedCallbackData.urls && parsedCallbackData.urls.length)) {
84
+ validItems.push(Object.assign({ id,
85
+ title,
86
+ icon }, parsedCallbackData));
87
+ }
88
+ }
89
+ }
90
+ accept({
91
+ menuitems: validItems
92
+ });
93
+ }), subscriberInfo);
94
+ return () => {
95
+ removeHook();
96
+ removeListener();
97
+ };
98
+ });
192
99
  exports.addContextMenuItems = addContextMenuItems;
193
100
  //# sourceMappingURL=PublicHelpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PublicHelpers.js","sourceRoot":"","sources":["../src/PublicHelpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PublicHelpers.js","sourceRoot":"","sources":["../src/PublicHelpers.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import * as Options from './types/options';
2
- import * as Socket from './types/socket';
1
+ import * as Options from './types/options.js';
2
+ import * as Socket from './types/socket.js';
3
3
  declare const ApiSocket: (userOptions: Options.APISocketOptions, WebSocketImpl: WebSocket) => Socket.APISocket;
4
4
  export default ApiSocket;