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/dist/types/options.d.ts
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
export
|
1
|
+
export type PrintHandler = (...optionalParams: any[]) => void;
|
2
2
|
export interface LogOutput {
|
3
3
|
log: PrintHandler;
|
4
4
|
info: PrintHandler;
|
5
5
|
warn: PrintHandler;
|
6
6
|
error: PrintHandler;
|
7
7
|
}
|
8
|
-
export
|
8
|
+
export type IgnoreMatcher = string[] | RegExp;
|
9
9
|
export interface SocketRequestOptions {
|
10
10
|
ignoredRequestPaths?: IgnoreMatcher;
|
11
11
|
requestTimeout?: number;
|
@@ -27,5 +27,5 @@ export interface LoggerOptions {
|
|
27
27
|
logLevel?: string;
|
28
28
|
logOutput?: LogOutput;
|
29
29
|
}
|
30
|
-
|
30
|
+
type UserOptions = RequiredSocketOptions & Partial<AdvancedSocketOptions> & LoggerOptions & SocketSubscriptionOptions & SocketRequestOptions;
|
31
31
|
export { UserOptions as APISocketOptions };
|
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
type AsyncCallbackProperty<IdT, EntityIdT, ReturnT> = (selectedIds: IdT[], entityId: EntityIdT | null, permissions: string[], supports: string[]) => ReturnT | Promise<ReturnT>;
|
2
2
|
export interface ContextMenuItem<IdT, EntityIdT> {
|
3
3
|
id: string;
|
4
4
|
title: string;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { ContextMenuItem } from './public_helpers';
|
1
|
+
import { ContextMenuItem } from './public_helpers.js';
|
2
2
|
export interface SelectedMenuItemListenerData<IdT, EntityIdT> {
|
3
3
|
hook_id: string;
|
4
4
|
menu_id: string;
|
@@ -19,7 +19,7 @@ export interface ResponseMenuItemCallbackFields {
|
|
19
19
|
urls?: string[] | undefined;
|
20
20
|
form_definitions?: object[] | undefined;
|
21
21
|
}
|
22
|
-
export
|
22
|
+
export type ResponseMenuItem<IdT, EntityIdT> = Omit<ContextMenuItem<IdT, EntityIdT>, 'onClick' | 'filter' | 'urls' | 'form_definitions'> & ResponseMenuItemCallbackFields;
|
23
23
|
export interface MenuItemListHookAcceptData<IdT, EntityIdT> {
|
24
24
|
menuitems: ResponseMenuItem<IdT, EntityIdT>[];
|
25
25
|
}
|
package/dist/types/requests.d.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import * as API from './api';
|
1
|
+
import * as API from './api.js';
|
2
2
|
export interface SocketRequestMethods {
|
3
3
|
put: <ResponseT extends object | void>(path: string, data?: object) => Promise<ResponseT>;
|
4
4
|
patch: <ResponseT extends object | void>(path: string, data?: object) => Promise<ResponseT>;
|
package/dist/types/socket.d.ts
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
import { AuthTokenType, LogoutResponse, AuthenticationResponse } from './api';
|
2
|
-
import { Logger } from './logger';
|
3
|
-
import { SocketRequestMethods } from './requests';
|
4
|
-
import { SocketSubscriptions } from './subscriptions';
|
5
|
-
export
|
6
|
-
export
|
7
|
-
export
|
1
|
+
import { AuthTokenType, LogoutResponse, AuthenticationResponse } from './api.js';
|
2
|
+
import { Logger } from './logger.js';
|
3
|
+
import { SocketRequestMethods } from './requests.js';
|
4
|
+
import { SocketSubscriptions } from './subscriptions.js';
|
5
|
+
export type ConnectedCallback = (data: AuthenticationResponse) => void;
|
6
|
+
export type SessionResetCallback = () => void;
|
7
|
+
export type DisconnectedCallback = (reason: string, code: number, wasClean: boolean) => void;
|
8
8
|
export interface APISocket extends SocketRequestMethods, SocketSubscriptions {
|
9
9
|
connect: (username?: string, password?: string, reconnectOnFailure?: boolean) => Promise<AuthenticationResponse>;
|
10
10
|
connectRefreshToken: (refreshToken: string, reconnectOnFailure?: boolean) => Promise<AuthenticationResponse>;
|
package/dist/types/socket.js
CHANGED
package/dist/types/socket.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"socket.js","sourceRoot":"","sources":["../../src/types/socket.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"socket.js","sourceRoot":"","sources":["../../src/types/socket.ts"],"names":[],"mappings":""}
|
@@ -1,13 +1,13 @@
|
|
1
|
-
import * as API from './api';
|
2
|
-
export
|
3
|
-
export
|
1
|
+
import * as API from './api.js';
|
2
|
+
export type SubscriptionRemoveHandler = (sendApi?: boolean) => void;
|
3
|
+
export type SubscriptionCallback<DataT extends object | void = object, EntityIdT = API.EntityId | undefined> = (data: DataT, entityId: EntityIdT) => void;
|
4
4
|
export interface HookSubscriberInfo {
|
5
5
|
id: string;
|
6
6
|
name: string;
|
7
7
|
}
|
8
|
-
export
|
9
|
-
export
|
10
|
-
export
|
8
|
+
export type HookRejectHandler = (rejectId: string, rejectMessage: string) => void;
|
9
|
+
export type HookAcceptHandler<DataT extends object | undefined> = (data: DataT) => void;
|
10
|
+
export type HookCallback<DataT extends object = object, CompletionDataT extends object | undefined = object | undefined> = (data: DataT, accept: HookAcceptHandler<CompletionDataT>, reject: HookRejectHandler) => void;
|
11
11
|
export interface SocketSubscriptions {
|
12
12
|
addHook: <DataT extends object, CompletionDataT extends object | undefined>(apiModule: string, event: string, callback: HookCallback<DataT, CompletionDataT>, subscriberInfo: HookSubscriberInfo) => Promise<SubscriptionRemoveHandler>;
|
13
13
|
addListener: <DataT extends object | void, EntityIdT extends API.EntityId | undefined = undefined>(apiModule: string, event: string, callback: SubscriptionCallback<DataT, EntityIdT>, entityId?: API.EntityId) => Promise<SubscriptionRemoveHandler>;
|
@@ -15,6 +15,6 @@ export interface SocketSubscriptions {
|
|
15
15
|
hasListeners: () => boolean;
|
16
16
|
getPendingSubscriptionCount: () => number;
|
17
17
|
}
|
18
|
-
export
|
19
|
-
export
|
20
|
-
export
|
18
|
+
export type AddHook = SocketSubscriptions['addHook'];
|
19
|
+
export type AddListener = SocketSubscriptions['addListener'];
|
20
|
+
export type AddViewUpdateListener = SocketSubscriptions['addViewUpdateListener'];
|
package/dist/utils.d.ts
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
import * as Options from './types/options';
|
2
|
-
export declare const eventIgnored: (path: string, ignoredEvents?: Options.IgnoreMatcher
|
1
|
+
import * as Options from './types/options.js';
|
2
|
+
export declare const eventIgnored: (path: string, ignoredEvents?: Options.IgnoreMatcher) => boolean;
|
package/dist/utils.js
CHANGED
package/dist/utils.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAGO,
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAGO,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,aAAqC,EAAE,EAAE;IAClF,IAAI,CAAC,aAAa,EAAE;QAClB,OAAO,KAAK,CAAC;KACd;IAED,SAAS;IACT,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;QAChC,OAAO,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;KAC3C;IAED,SAAS;IACT,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC,CAAC;AAZW,QAAA,YAAY,gBAYvB"}
|
package/dist-es/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-es/NodeSocket.js
CHANGED
@@ -1,5 +1,5 @@
|
|
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 };
|
5
5
|
//# sourceMappingURL=NodeSocket.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"NodeSocket.js","sourceRoot":"","sources":["../src/NodeSocket.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,
|
1
|
+
{"version":3,"file":"NodeSocket.js","sourceRoot":"","sources":["../src/NodeSocket.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAGzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AAEnC,OAAO,EAAE,UAAU,IAAI,MAAM,EAAE,CAAC"}
|
package/dist-es/Promise.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
// Use native promises when available
|
2
|
-
|
2
|
+
let AppPromise;
|
3
3
|
if (typeof Promise !== 'undefined') {
|
4
4
|
AppPromise = Promise;
|
5
5
|
}
|
@@ -7,19 +7,19 @@ else {
|
|
7
7
|
AppPromise = require('promise');
|
8
8
|
}
|
9
9
|
function pending() {
|
10
|
-
|
11
|
-
|
10
|
+
let resolve, reject;
|
11
|
+
let promise = new AppPromise(function () {
|
12
12
|
resolve = arguments[0];
|
13
13
|
reject = arguments[1];
|
14
14
|
});
|
15
15
|
return {
|
16
16
|
resolve: resolve,
|
17
17
|
reject: reject,
|
18
|
-
promise
|
18
|
+
promise
|
19
19
|
};
|
20
20
|
}
|
21
|
-
|
22
|
-
pending
|
21
|
+
const PendingPromise = Object.assign(AppPromise, {
|
22
|
+
pending
|
23
23
|
});
|
24
24
|
export default PendingPromise;
|
25
25
|
//# sourceMappingURL=Promise.js.map
|
package/dist-es/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,eAAe,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>;
|
package/dist-es/PublicHelpers.js
CHANGED
@@ -1,14 +1,3 @@
|
|
1
|
-
var __assign = (this && this.__assign) || function () {
|
2
|
-
__assign = Object.assign || function(t) {
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
4
|
-
s = arguments[i];
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
6
|
-
t[p] = s[p];
|
7
|
-
}
|
8
|
-
return t;
|
9
|
-
};
|
10
|
-
return __assign.apply(this, arguments);
|
11
|
-
};
|
12
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
13
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
14
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
@@ -18,172 +7,90 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
18
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
19
8
|
});
|
20
9
|
};
|
21
|
-
|
22
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
23
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
24
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
25
|
-
function step(op) {
|
26
|
-
if (f) throw new TypeError("Generator is already executing.");
|
27
|
-
while (_) try {
|
28
|
-
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;
|
29
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
30
|
-
switch (op[0]) {
|
31
|
-
case 0: case 1: t = op; break;
|
32
|
-
case 4: _.label++; return { value: op[1], done: false };
|
33
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
34
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
35
|
-
default:
|
36
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
37
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
38
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
39
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
40
|
-
if (t[2]) _.ops.pop();
|
41
|
-
_.trys.pop(); continue;
|
42
|
-
}
|
43
|
-
op = body.call(thisArg, _);
|
44
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
45
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
46
|
-
}
|
47
|
-
};
|
48
|
-
var checkAccess = function (menuItem, permissions) {
|
10
|
+
const checkAccess = (menuItem, permissions) => {
|
49
11
|
if (!menuItem.access) {
|
50
12
|
return true;
|
51
13
|
}
|
52
14
|
return permissions.indexOf('admin') !== -1 || permissions.indexOf(menuItem.access) !== -1;
|
53
15
|
};
|
54
|
-
|
55
|
-
|
56
|
-
|
16
|
+
const URLS_SUPPORT = 'urls';
|
17
|
+
const FORM_SUPPORT = 'form';
|
18
|
+
const hasSupport = (support, supports) => {
|
57
19
|
return !!supports && supports.indexOf(support) !== -1;
|
58
20
|
};
|
59
21
|
// Check whether the item passes the access and filter checks
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
if (_a) {
|
77
|
-
return [2 /*return*/, false];
|
78
|
-
}
|
79
|
-
return [2 /*return*/, checkAccess(menuItem, data.permissions)];
|
22
|
+
const validateItem = (menuItem, data) => __awaiter(void 0, void 0, void 0, function* () {
|
23
|
+
const { selected_ids, entity_id, permissions, supports } = data;
|
24
|
+
if (!!menuItem.urls && !hasSupport(URLS_SUPPORT, supports)) {
|
25
|
+
return false;
|
26
|
+
}
|
27
|
+
if (!!menuItem.filter && !(yield menuItem.filter(selected_ids, entity_id, permissions, supports))) {
|
28
|
+
return false;
|
29
|
+
}
|
30
|
+
return checkAccess(menuItem, data.permissions);
|
31
|
+
});
|
32
|
+
const parseCallbackData = (item, data) => __awaiter(void 0, void 0, void 0, function* () {
|
33
|
+
const { selected_ids, entity_id, permissions, supports } = data;
|
34
|
+
if (!!item.urls && !!item.urls.length) {
|
35
|
+
let urls;
|
36
|
+
if (typeof item.urls === 'function') {
|
37
|
+
urls = yield item.urls(selected_ids, entity_id, permissions, supports);
|
80
38
|
}
|
81
|
-
|
82
|
-
|
83
|
-
var parseCallbackData = function (item, data) { return __awaiter(void 0, void 0, void 0, function () {
|
84
|
-
var selected_ids, entity_id, permissions, supports, urls, formDefinitions;
|
85
|
-
return __generator(this, function (_a) {
|
86
|
-
switch (_a.label) {
|
87
|
-
case 0:
|
88
|
-
selected_ids = data.selected_ids, entity_id = data.entity_id, permissions = data.permissions, supports = data.supports;
|
89
|
-
if (!(!!item.urls && !!item.urls.length)) return [3 /*break*/, 4];
|
90
|
-
urls = void 0;
|
91
|
-
if (!(typeof item.urls === 'function')) return [3 /*break*/, 2];
|
92
|
-
return [4 /*yield*/, item.urls(selected_ids, entity_id, permissions, supports)];
|
93
|
-
case 1:
|
94
|
-
urls = _a.sent();
|
95
|
-
return [3 /*break*/, 3];
|
96
|
-
case 2:
|
97
|
-
urls = item.urls;
|
98
|
-
_a.label = 3;
|
99
|
-
case 3: return [2 /*return*/, {
|
100
|
-
urls: urls,
|
101
|
-
}];
|
102
|
-
case 4:
|
103
|
-
if (!(!!item.formDefinitions && hasSupport(FORM_SUPPORT, supports))) return [3 /*break*/, 8];
|
104
|
-
formDefinitions = void 0;
|
105
|
-
if (!(typeof item.formDefinitions === 'function')) return [3 /*break*/, 6];
|
106
|
-
return [4 /*yield*/, item.formDefinitions(selected_ids, entity_id, permissions, supports)];
|
107
|
-
case 5:
|
108
|
-
formDefinitions = _a.sent();
|
109
|
-
return [3 /*break*/, 7];
|
110
|
-
case 6:
|
111
|
-
formDefinitions = item.formDefinitions;
|
112
|
-
_a.label = 7;
|
113
|
-
case 7: return [2 /*return*/, {
|
114
|
-
form_definitions: formDefinitions,
|
115
|
-
}];
|
116
|
-
case 8: return [2 /*return*/, {}];
|
39
|
+
else {
|
40
|
+
urls = item.urls;
|
117
41
|
}
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
return __generator(this, function (_a) {
|
127
|
-
switch (_a.label) {
|
128
|
-
case 0:
|
129
|
-
if (!(data.hook_id === subscriberInfo.id)) return [3 /*break*/, 2];
|
130
|
-
menuItem = menuItems.find(function (i) { return data.menuitem_id === i.id; });
|
131
|
-
if (!!!menuItem) return [3 /*break*/, 2];
|
132
|
-
return [4 /*yield*/, validateItem(menuItem, data)];
|
133
|
-
case 1:
|
134
|
-
isValid = _a.sent();
|
135
|
-
if (isValid && !!menuItem.onClick) {
|
136
|
-
selected_ids = data.selected_ids, entity_id = data.entity_id, permissions = data.permissions, supports = data.supports, form_values = data.form_values;
|
137
|
-
menuItem.onClick(selected_ids, entity_id, permissions, supports, form_values);
|
138
|
-
}
|
139
|
-
_a.label = 2;
|
140
|
-
case 2: return [2 /*return*/];
|
141
|
-
}
|
142
|
-
});
|
143
|
-
}); })];
|
144
|
-
case 1:
|
145
|
-
removeListener = _a.sent();
|
146
|
-
return [4 /*yield*/, socket.addHook('menus', menuId + "_list_menuitems", function (data, accept, reject) { return __awaiter(void 0, void 0, void 0, function () {
|
147
|
-
var validItems, _i, menuItems_1, item, isValid, parsedCallbackData, onClick, id, title, icon;
|
148
|
-
return __generator(this, function (_a) {
|
149
|
-
switch (_a.label) {
|
150
|
-
case 0:
|
151
|
-
validItems = [];
|
152
|
-
_i = 0, menuItems_1 = menuItems;
|
153
|
-
_a.label = 1;
|
154
|
-
case 1:
|
155
|
-
if (!(_i < menuItems_1.length)) return [3 /*break*/, 5];
|
156
|
-
item = menuItems_1[_i];
|
157
|
-
return [4 /*yield*/, validateItem(item, data)];
|
158
|
-
case 2:
|
159
|
-
isValid = _a.sent();
|
160
|
-
if (!isValid) return [3 /*break*/, 4];
|
161
|
-
return [4 /*yield*/, parseCallbackData(item, data)];
|
162
|
-
case 3:
|
163
|
-
parsedCallbackData = _a.sent();
|
164
|
-
onClick = item.onClick, id = item.id, title = item.title, icon = item.icon;
|
165
|
-
if (!!onClick || (!!parsedCallbackData.urls && parsedCallbackData.urls.length)) {
|
166
|
-
validItems.push(__assign({ id: id, title: title, icon: icon }, parsedCallbackData));
|
167
|
-
}
|
168
|
-
_a.label = 4;
|
169
|
-
case 4:
|
170
|
-
_i++;
|
171
|
-
return [3 /*break*/, 1];
|
172
|
-
case 5:
|
173
|
-
accept({
|
174
|
-
menuitems: validItems
|
175
|
-
});
|
176
|
-
return [2 /*return*/];
|
177
|
-
}
|
178
|
-
});
|
179
|
-
}); }, subscriberInfo)];
|
180
|
-
case 2:
|
181
|
-
removeHook = _a.sent();
|
182
|
-
return [2 /*return*/, function () {
|
183
|
-
removeHook();
|
184
|
-
removeListener();
|
185
|
-
}];
|
42
|
+
return {
|
43
|
+
urls,
|
44
|
+
};
|
45
|
+
}
|
46
|
+
else if (!!item.formDefinitions && hasSupport(FORM_SUPPORT, supports)) {
|
47
|
+
let formDefinitions;
|
48
|
+
if (typeof item.formDefinitions === 'function') {
|
49
|
+
formDefinitions = yield item.formDefinitions(selected_ids, entity_id, permissions, supports);
|
186
50
|
}
|
187
|
-
|
188
|
-
|
51
|
+
else {
|
52
|
+
formDefinitions = item.formDefinitions;
|
53
|
+
}
|
54
|
+
return {
|
55
|
+
form_definitions: formDefinitions,
|
56
|
+
};
|
57
|
+
}
|
58
|
+
return {};
|
59
|
+
});
|
60
|
+
export const addContextMenuItems = (socket, menuItems, menuId, subscriberInfo) => __awaiter(void 0, void 0, void 0, function* () {
|
61
|
+
const removeListener = yield socket.addListener('menus', `${menuId}_menuitem_selected`, (data) => __awaiter(void 0, void 0, void 0, function* () {
|
62
|
+
if (data.hook_id === subscriberInfo.id) {
|
63
|
+
const menuItem = menuItems.find(i => data.menuitem_id === i.id);
|
64
|
+
if (!!menuItem) {
|
65
|
+
const isValid = yield validateItem(menuItem, data);
|
66
|
+
if (isValid && !!menuItem.onClick) {
|
67
|
+
const { selected_ids, entity_id, permissions, supports, form_values } = data;
|
68
|
+
menuItem.onClick(selected_ids, entity_id, permissions, supports, form_values);
|
69
|
+
}
|
70
|
+
}
|
71
|
+
}
|
72
|
+
}));
|
73
|
+
const removeHook = yield socket.addHook('menus', `${menuId}_list_menuitems`, (data, accept, reject) => __awaiter(void 0, void 0, void 0, function* () {
|
74
|
+
const validItems = [];
|
75
|
+
for (const item of menuItems) {
|
76
|
+
const isValid = yield validateItem(item, data);
|
77
|
+
if (isValid) {
|
78
|
+
const parsedCallbackData = yield parseCallbackData(item, data);
|
79
|
+
const { onClick, id, title, icon } = item;
|
80
|
+
if (!!onClick || (!!parsedCallbackData.urls && parsedCallbackData.urls.length)) {
|
81
|
+
validItems.push(Object.assign({ id,
|
82
|
+
title,
|
83
|
+
icon }, parsedCallbackData));
|
84
|
+
}
|
85
|
+
}
|
86
|
+
}
|
87
|
+
accept({
|
88
|
+
menuitems: validItems
|
89
|
+
});
|
90
|
+
}), subscriberInfo);
|
91
|
+
return () => {
|
92
|
+
removeHook();
|
93
|
+
removeListener();
|
94
|
+
};
|
95
|
+
});
|
189
96
|
//# 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';
|
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;
|