airdcpp-apisocket 2.4.4 → 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.
- package/GUIDE.md +6 -6
- package/babel.config.cjs +6 -0
- package/dist/NodeSocket.d.ts +3 -3
- package/dist/NodeSocket.js +9 -5
- package/dist/NodeSocket.js.map +1 -1
- package/dist/Promise.js +6 -6
- package/dist/Promise.js.map +1 -1
- package/dist/PublicHelpers.d.ts +1 -1
- package/dist/PublicHelpers.js +75 -168
- package/dist/PublicHelpers.js.map +1 -1
- package/dist/SocketBase.d.ts +2 -2
- package/dist/SocketBase.js +81 -97
- package/dist/SocketBase.js.map +1 -1
- package/dist/SocketLogger.d.ts +2 -2
- package/dist/SocketLogger.js +28 -38
- package/dist/SocketLogger.js.map +1 -1
- package/dist/SocketRequestHandler.d.ts +6 -6
- package/dist/SocketRequestHandler.js +55 -69
- package/dist/SocketRequestHandler.js.map +1 -1
- package/dist/SocketSubscriptionHandler.d.ts +5 -5
- package/dist/SocketSubscriptionHandler.js +55 -70
- package/dist/SocketSubscriptionHandler.js.map +1 -1
- package/dist/types/api.d.ts +3 -3
- package/dist/types/api_internal.d.ts +2 -2
- package/dist/types/index.d.ts +7 -7
- package/dist/types/index.js +12 -8
- package/dist/types/index.js.map +1 -1
- package/dist/types/options.d.ts +3 -3
- package/dist/types/public_helpers.d.ts +1 -1
- package/dist/types/public_helpers_internal.d.ts +2 -2
- package/dist/types/requests.d.ts +1 -1
- package/dist/types/socket.d.ts +7 -7
- package/dist/types/socket.js +0 -1
- package/dist/types/socket.js.map +1 -1
- package/dist/types/subscriptions.d.ts +9 -9
- package/dist/utils.d.ts +2 -2
- package/dist/utils.js +1 -1
- package/dist/utils.js.map +1 -1
- package/dist-es/NodeSocket.d.ts +3 -3
- package/dist-es/NodeSocket.js +3 -3
- package/dist-es/NodeSocket.js.map +1 -1
- package/dist-es/Promise.js +6 -6
- package/dist-es/Promise.js.map +1 -1
- package/dist-es/PublicHelpers.d.ts +1 -1
- package/dist-es/PublicHelpers.js +75 -168
- package/dist-es/PublicHelpers.js.map +1 -1
- package/dist-es/SocketBase.d.ts +2 -2
- package/dist-es/SocketBase.js +76 -92
- package/dist-es/SocketBase.js.map +1 -1
- package/dist-es/SocketLogger.d.ts +2 -2
- package/dist-es/SocketLogger.js +31 -41
- package/dist-es/SocketLogger.js.map +1 -1
- package/dist-es/SocketRequestHandler.d.ts +6 -6
- package/dist-es/SocketRequestHandler.js +51 -65
- package/dist-es/SocketRequestHandler.js.map +1 -1
- package/dist-es/SocketSubscriptionHandler.d.ts +5 -5
- package/dist-es/SocketSubscriptionHandler.js +52 -67
- package/dist-es/SocketSubscriptionHandler.js.map +1 -1
- package/dist-es/types/api.d.ts +3 -3
- package/dist-es/types/api_internal.d.ts +2 -2
- package/dist-es/types/index.d.ts +7 -7
- package/dist-es/types/index.js +7 -7
- package/dist-es/types/index.js.map +1 -1
- package/dist-es/types/options.d.ts +3 -3
- package/dist-es/types/public_helpers.d.ts +1 -1
- package/dist-es/types/public_helpers_internal.d.ts +2 -2
- package/dist-es/types/requests.d.ts +1 -1
- package/dist-es/types/socket.d.ts +7 -7
- package/dist-es/types/socket.js +0 -1
- package/dist-es/types/socket.js.map +1 -1
- package/dist-es/types/subscriptions.d.ts +9 -9
- package/dist-es/utils.d.ts +2 -2
- package/dist-es/utils.js +1 -1
- package/dist-es/utils.js.map +1 -1
- package/jest.config.js +18 -3
- package/package.json +15 -13
- package/src/NodeSocket.ts +3 -3
- package/src/PublicHelpers.ts +2 -2
- package/src/SocketBase.ts +9 -9
- package/src/SocketLogger.ts +5 -5
- package/src/SocketRequestHandler.ts +8 -8
- package/src/SocketSubscriptionHandler.ts +10 -10
- package/src/tests/Socket.test.ts +30 -22
- package/src/tests/helpers.ts +7 -6
- package/src/tests/public_helpers.test.ts +9 -8
- package/src/types/api_internal.ts +1 -1
- package/src/types/index.ts +7 -7
- package/src/types/public_helpers_internal.ts +1 -1
- package/src/types/requests.ts +1 -1
- package/src/types/socket.ts +4 -20
- package/src/types/subscriptions.ts +1 -1
- package/src/utils.ts +1 -1
- package/tsconfig.json +4 -8
- package/dist/tests/Socket.test.d.ts +0 -1
- package/dist/tests/Socket.test.js +0 -758
- package/dist/tests/Socket.test.js.map +0 -1
- package/dist/tests/helpers.d.ts +0 -57
- package/dist/tests/helpers.js +0 -178
- package/dist/tests/helpers.js.map +0 -1
- package/dist/tests/public_helpers.test.d.ts +0 -1
- package/dist/tests/public_helpers.test.js +0 -241
- package/dist/tests/public_helpers.test.js.map +0 -1
- package/dist-es/tests/Socket.test.d.ts +0 -1
- package/dist-es/tests/Socket.test.js +0 -734
- package/dist-es/tests/Socket.test.js.map +0 -1
- package/dist-es/tests/helpers.d.ts +0 -57
- package/dist-es/tests/helpers.js +0 -168
- package/dist-es/tests/helpers.js.map +0 -1
- package/dist-es/tests/public_helpers.test.d.ts +0 -1
- package/dist-es/tests/public_helpers.test.js +0 -236
- package/dist-es/tests/public_helpers.test.js.map +0 -1
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
|
-
- [
|
13
|
-
- [
|
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
|
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
|
-
### `
|
163
|
+
### `onConnected`
|
164
164
|
|
165
|
-
`
|
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
|
-
### `
|
169
|
+
### `onDisconnected`
|
170
170
|
|
171
171
|
Fired after the socket was disconnected.
|
172
172
|
|
package/babel.config.cjs
ADDED
package/dist/NodeSocket.d.ts
CHANGED
@@ -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 };
|
package/dist/NodeSocket.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];
|
@@ -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
|
-
|
18
|
-
exports.Socket =
|
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
|
package/dist/NodeSocket.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"NodeSocket.js","sourceRoot":"","sources":["../src/NodeSocket.ts"],"names":[],"mappings":"
|
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
|
-
|
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
|
-
|
13
|
-
|
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
|
20
|
+
promise
|
21
21
|
};
|
22
22
|
}
|
23
|
-
|
24
|
-
pending
|
23
|
+
const PendingPromise = Object.assign(AppPromise, {
|
24
|
+
pending
|
25
25
|
});
|
26
26
|
exports.default = PendingPromise;
|
27
27
|
//# sourceMappingURL=Promise.js.map
|
package/dist/Promise.js.map
CHANGED
@@ -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
|
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"}
|
package/dist/PublicHelpers.d.ts
CHANGED
@@ -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>;
|
package/dist/PublicHelpers.js
CHANGED
@@ -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
|
-
|
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
|
-
|
58
|
-
|
59
|
-
|
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
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
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
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
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":"
|
1
|
+
{"version":3,"file":"PublicHelpers.js","sourceRoot":"","sources":["../src/PublicHelpers.ts"],"names":[],"mappings":"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"}
|
package/dist/SocketBase.d.ts
CHANGED
@@ -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;
|