airdcpp-apisocket 2.4.5-beta.1 → 2.5.0-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 +1 -1
- package/README.md +3 -2
- package/dist/ApiConstants.d.ts +6 -6
- package/dist/ApiConstants.js +7 -7
- package/dist/NodeSocket.d.ts +4 -4
- package/dist/NodeSocket.js +24 -24
- package/dist/Promise.d.ts +8 -8
- package/dist/Promise.js +26 -26
- package/dist/PublicHelpers.d.ts +2 -2
- package/dist/PublicHelpers.js +94 -99
- package/dist/PublicHelpers.js.map +1 -1
- package/dist/SocketBase.d.ts +4 -4
- package/dist/SocketBase.js +351 -343
- package/dist/SocketBase.js.map +1 -1
- package/dist/SocketLogger.d.ts +9 -9
- package/dist/SocketLogger.js +74 -74
- package/dist/SocketLogger.js.map +1 -1
- package/dist/SocketRequestHandler.d.ts +14 -14
- package/dist/SocketRequestHandler.js +168 -162
- package/dist/SocketRequestHandler.js.map +1 -1
- package/dist/SocketSubscriptionHandler.d.ts +11 -11
- package/dist/SocketSubscriptionHandler.js +161 -158
- package/dist/SocketSubscriptionHandler.js.map +1 -1
- package/dist/types/api.d.ts +30 -30
- package/dist/types/api.js +3 -3
- package/dist/types/api_internal.d.ts +24 -24
- package/dist/types/api_internal.js +2 -2
- package/dist/types/index.d.ts +7 -7
- package/dist/types/index.js +23 -23
- package/dist/types/logger.d.ts +6 -6
- package/dist/types/logger.js +2 -2
- package/dist/types/options.d.ts +31 -31
- package/dist/types/options.js +3 -3
- package/dist/types/public_helpers.d.ts +19 -14
- package/dist/types/public_helpers.js +2 -2
- package/dist/types/public_helpers_internal.d.ts +27 -25
- package/dist/types/public_helpers_internal.js +2 -2
- package/dist/types/requests.d.ts +14 -14
- package/dist/types/requests.js +2 -2
- package/dist/types/socket.d.ts +23 -23
- package/dist/types/socket.js +2 -2
- package/dist/types/subscriptions.d.ts +20 -20
- package/dist/types/subscriptions.js +2 -2
- package/dist/utils.d.ts +2 -2
- package/dist/utils.js +15 -15
- package/dist-es/ApiConstants.d.ts +6 -6
- package/dist-es/ApiConstants.js +5 -5
- package/dist-es/NodeSocket.d.ts +4 -4
- package/dist-es/NodeSocket.js +4 -4
- package/dist-es/Promise.d.ts +8 -8
- package/dist-es/Promise.js +24 -24
- package/dist-es/PublicHelpers.d.ts +2 -2
- package/dist-es/PublicHelpers.js +90 -95
- package/dist-es/PublicHelpers.js.map +1 -1
- package/dist-es/SocketBase.d.ts +4 -4
- package/dist-es/SocketBase.js +346 -338
- package/dist-es/SocketBase.js.map +1 -1
- package/dist-es/SocketLogger.d.ts +9 -9
- package/dist-es/SocketLogger.js +68 -68
- package/dist-es/SocketLogger.js.map +1 -1
- package/dist-es/SocketRequestHandler.d.ts +14 -14
- package/dist-es/SocketRequestHandler.js +163 -157
- package/dist-es/SocketRequestHandler.js.map +1 -1
- package/dist-es/SocketSubscriptionHandler.d.ts +11 -11
- package/dist-es/SocketSubscriptionHandler.js +156 -153
- package/dist-es/SocketSubscriptionHandler.js.map +1 -1
- package/dist-es/types/api.d.ts +30 -30
- package/dist-es/types/api.js +2 -2
- package/dist-es/types/api_internal.d.ts +24 -24
- package/dist-es/types/api_internal.js +1 -1
- package/dist-es/types/index.d.ts +7 -7
- package/dist-es/types/index.js +7 -7
- package/dist-es/types/logger.d.ts +6 -6
- package/dist-es/types/logger.js +1 -1
- package/dist-es/types/options.d.ts +31 -31
- package/dist-es/types/options.js +2 -2
- package/dist-es/types/public_helpers.d.ts +19 -14
- package/dist-es/types/public_helpers.js +1 -1
- package/dist-es/types/public_helpers_internal.d.ts +27 -25
- package/dist-es/types/public_helpers_internal.js +1 -1
- package/dist-es/types/requests.d.ts +14 -14
- package/dist-es/types/requests.js +1 -1
- package/dist-es/types/socket.d.ts +23 -23
- package/dist-es/types/socket.js +1 -1
- package/dist-es/types/subscriptions.d.ts +20 -20
- package/dist-es/types/subscriptions.js +1 -1
- package/dist-es/utils.d.ts +2 -2
- package/dist-es/utils.js +11 -11
- package/jest.config.js +0 -3
- package/package.json +4 -4
- package/src/PublicHelpers.ts +10 -9
- package/src/SocketLogger.ts +1 -1
- package/src/SocketRequestHandler.ts +2 -2
- package/src/tests/Socket.test.ts +4 -9
- package/src/tests/helpers.ts +7 -2
- package/src/tests/public_helpers.test.ts +4 -4
- package/src/types/public_helpers.ts +7 -1
- package/src/types/public_helpers_internal.ts +3 -1
- package/tsconfig.json +2 -3
package/dist-es/PublicHelpers.js
CHANGED
@@ -1,96 +1,91 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
}
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
}
|
42
|
-
|
43
|
-
|
44
|
-
}
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
return () => {
|
92
|
-
removeHook();
|
93
|
-
removeListener();
|
94
|
-
};
|
95
|
-
});
|
1
|
+
const checkAccess = (menuItem, permissions) => {
|
2
|
+
if (!menuItem.access) {
|
3
|
+
return true;
|
4
|
+
}
|
5
|
+
return permissions.indexOf('admin') !== -1 || permissions.indexOf(menuItem.access) !== -1;
|
6
|
+
};
|
7
|
+
const URLS_SUPPORT = 'urls';
|
8
|
+
const FORM_SUPPORT = 'form';
|
9
|
+
const hasSupport = (support, supports) => {
|
10
|
+
return !!supports && supports.indexOf(support) !== -1;
|
11
|
+
};
|
12
|
+
// Check whether the item passes the access and filter checks
|
13
|
+
const validateItem = async (menuItem, data) => {
|
14
|
+
const { selected_ids, entity_id, permissions, supports } = data;
|
15
|
+
if (!!menuItem.urls && !hasSupport(URLS_SUPPORT, supports)) {
|
16
|
+
return false;
|
17
|
+
}
|
18
|
+
if (!!menuItem.filter && !(await menuItem.filter(selected_ids, entity_id, permissions, supports))) {
|
19
|
+
return false;
|
20
|
+
}
|
21
|
+
return checkAccess(menuItem, data.permissions);
|
22
|
+
};
|
23
|
+
const parseCallbackData = async (item, data) => {
|
24
|
+
const { selected_ids, entity_id, permissions, supports } = data;
|
25
|
+
if (!!item.urls && !!item.urls.length) {
|
26
|
+
let urls;
|
27
|
+
if (typeof item.urls === 'function') {
|
28
|
+
urls = await item.urls(selected_ids, entity_id, permissions, supports);
|
29
|
+
}
|
30
|
+
else {
|
31
|
+
urls = item.urls;
|
32
|
+
}
|
33
|
+
return {
|
34
|
+
urls,
|
35
|
+
};
|
36
|
+
}
|
37
|
+
else if (!!item.formDefinitions && hasSupport(FORM_SUPPORT, supports)) {
|
38
|
+
let formDefinitions;
|
39
|
+
if (typeof item.formDefinitions === 'function') {
|
40
|
+
formDefinitions = await item.formDefinitions(selected_ids, entity_id, permissions, supports);
|
41
|
+
}
|
42
|
+
else {
|
43
|
+
formDefinitions = item.formDefinitions;
|
44
|
+
}
|
45
|
+
return {
|
46
|
+
form_definitions: formDefinitions,
|
47
|
+
};
|
48
|
+
}
|
49
|
+
return {};
|
50
|
+
};
|
51
|
+
export const addContextMenuItems = async (socket, menuItems, menuTypeId, menu) => {
|
52
|
+
const removeListener = await socket.addListener('menus', `${menuTypeId}_menuitem_selected`, async (data) => {
|
53
|
+
if (data.hook_id === menu.id) {
|
54
|
+
const menuItem = menuItems.find(i => data.menuitem_id === i.id);
|
55
|
+
if (!!menuItem) {
|
56
|
+
const isValid = await validateItem(menuItem, data);
|
57
|
+
if (isValid && !!menuItem.onClick) {
|
58
|
+
const { selected_ids, entity_id, permissions, supports, form_values } = data;
|
59
|
+
menuItem.onClick(selected_ids, entity_id, permissions, supports, form_values);
|
60
|
+
}
|
61
|
+
}
|
62
|
+
}
|
63
|
+
});
|
64
|
+
const removeHook = await socket.addHook('menus', `${menuTypeId}_list_menuitems`, async (data, accept, reject) => {
|
65
|
+
const validItems = [];
|
66
|
+
for (const item of menuItems) {
|
67
|
+
const isValid = await validateItem(item, data);
|
68
|
+
if (isValid) {
|
69
|
+
const parsedCallbackData = await parseCallbackData(item, data);
|
70
|
+
const { onClick, id, title, icon } = item;
|
71
|
+
if (!!onClick || (!!parsedCallbackData.urls && parsedCallbackData.urls.length)) {
|
72
|
+
validItems.push({
|
73
|
+
id,
|
74
|
+
title,
|
75
|
+
icon,
|
76
|
+
...parsedCallbackData,
|
77
|
+
});
|
78
|
+
}
|
79
|
+
}
|
80
|
+
}
|
81
|
+
accept({
|
82
|
+
menuitems: validItems,
|
83
|
+
icon: menu.icon,
|
84
|
+
});
|
85
|
+
}, menu);
|
86
|
+
return () => {
|
87
|
+
removeHook();
|
88
|
+
removeListener();
|
89
|
+
};
|
90
|
+
};
|
96
91
|
//# 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-es/SocketBase.d.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
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
|
+
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;
|