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,14 +0,0 @@
1
- import * as API from './types/api.js';
2
- import * as APIInternal from './types/api_internal.js';
3
- import * as Options from './types/options.js';
4
- import * as Socket from './types/socket.js';
5
- import { Logger } from './types/logger.js';
6
- import { SocketRequestMethods } from './types/requests.js';
7
- declare const SocketRequestHandler: (socket: () => Socket.APISocket, logger: Logger, { requestTimeout, ignoredRequestPaths }: Options.SocketRequestOptions) => {
8
- socket: SocketRequestMethods;
9
- onSocketConnected(): void;
10
- onSocketDisconnected(): void;
11
- handleMessage(messageObj: APIInternal.RequestSuccessResponse | APIInternal.RequestErrorResponse): void;
12
- postAuthenticate(path: string, data: API.TokenAuthenticationData | API.CredentialsAuthenticationData | API.RefreshTokenAuthenticationData): Promise<any>;
13
- };
14
- export default SocketRequestHandler;
@@ -1,169 +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 chalk_1 = __importDefault(require("chalk"));
7
- const invariant_1 = __importDefault(require("invariant"));
8
- const Promise_js_1 = __importDefault(require("./Promise.js"));
9
- const utils_js_1 = require("./utils.js");
10
- const SocketRequestHandler = (socket, logger, { requestTimeout = 30, ignoredRequestPaths }) => {
11
- let callbacks = {};
12
- let currentCallbackId = 0;
13
- let timeoutReportInterval;
14
- // Internal
15
- // This creates a new callback ID for a request
16
- const getCallbackId = () => {
17
- if (currentCallbackId > 100000) {
18
- currentCallbackId = 0;
19
- }
20
- currentCallbackId += 1;
21
- return currentCallbackId;
22
- };
23
- const filterPassword = (data) => {
24
- if (!data || !data.hasOwnProperty('password')) {
25
- return data;
26
- }
27
- return {
28
- ...data,
29
- password: '(hidden)',
30
- };
31
- };
32
- const sendRequest = (method, path, data, authenticating = false) => {
33
- // Pre-checks
34
- if (!authenticating && !socket().isConnected()) {
35
- logger.warn(`Attempting to send request on a non-authenticated socket: ${path}`);
36
- return Promise_js_1.default.reject('Not authorized');
37
- }
38
- if (!socket().nativeSocket) {
39
- logger.warn(`Attempting to send request without a socket: ${path}`);
40
- return Promise_js_1.default.reject('No socket');
41
- }
42
- const callbackId = getCallbackId();
43
- // Reporting
44
- (0, invariant_1.default)(path, 'Attempting socket request without a path');
45
- const ignored = (0, utils_js_1.eventIgnored)(path, ignoredRequestPaths);
46
- if (!ignored) {
47
- logger.verbose(chalk_1.default.white.bold(callbackId.toString()), method, path, data ? filterPassword(data) : '(no data)');
48
- }
49
- // Callback
50
- const resolver = Promise_js_1.default.pending();
51
- callbacks[callbackId.toString()] = {
52
- time: Date.now(),
53
- resolver,
54
- ignored,
55
- };
56
- // Actual request
57
- const request = {
58
- path,
59
- method,
60
- data,
61
- callback_id: callbackId,
62
- };
63
- socket().nativeSocket.send(JSON.stringify(request));
64
- return resolver.promise;
65
- };
66
- // Report timed out requests
67
- // This is more about spotting backend issues, such as frozen threads and dropped responses
68
- // The socket itself should handle actual connection issues
69
- const reportTimeouts = () => {
70
- const now = Date.now();
71
- Object.keys(callbacks).forEach(callbackId => {
72
- const request = callbacks[callbackId];
73
- if (request.time + (requestTimeout * 1000) < now) {
74
- logger.warn(`Request ${callbackId} timed out`);
75
- }
76
- });
77
- };
78
- const cancelPendingRequests = (message = 'Request cancelled') => {
79
- Object.keys(callbacks)
80
- .forEach(id => {
81
- logger.verbose(`Canceling a pending request ${id} (${message})`);
82
- const cb = callbacks[id];
83
- cb.resolver.reject(message);
84
- });
85
- callbacks = {};
86
- };
87
- // Public
88
- const RequestsPublic = {
89
- put: (path, data) => {
90
- return sendRequest('PUT', path, data);
91
- },
92
- patch: (path, data) => {
93
- return sendRequest('PATCH', path, data);
94
- },
95
- post: (path, data) => {
96
- return sendRequest('POST', path, data);
97
- },
98
- delete: (path) => {
99
- //invariant(!data, 'No data is allowed for delete command');
100
- return sendRequest('DELETE', path);
101
- },
102
- get: (path) => {
103
- //invariant(!data, 'No data is allowed for get command');
104
- return sendRequest('GET', path);
105
- },
106
- getPendingRequestCount: () => {
107
- return Object.keys(callbacks).length;
108
- },
109
- };
110
- Object.assign(RequestsPublic, {
111
- reportRequestTimeouts: reportTimeouts, // internal method for testing
112
- });
113
- const formatFieldError = (error) => {
114
- return error.field && error.code ? `${error.field} (${error.code})` : '';
115
- };
116
- // Shared for the socket
117
- const RequestsInternal = {
118
- onSocketConnected() {
119
- timeoutReportInterval = setInterval(reportTimeouts, 30000);
120
- },
121
- onSocketDisconnected() {
122
- // Clear callbacks
123
- cancelPendingRequests('Socket disconnected');
124
- clearTimeout(timeoutReportInterval);
125
- },
126
- handleMessage(messageObj) {
127
- const id = messageObj.callback_id;
128
- if (!callbacks.hasOwnProperty(id)) {
129
- logger.warn('No pending request for an API response', id, messageObj);
130
- return;
131
- }
132
- if (messageObj.code >= 200 && messageObj.code <= 204) {
133
- const { data } = messageObj;
134
- if (!callbacks[id].ignored) {
135
- logger.verbose(chalk_1.default.green(id.toString()), 'SUCCEEDED', data ? data : '(no data)');
136
- }
137
- callbacks[id].resolver.resolve(data);
138
- }
139
- else {
140
- const errorMessageObj = messageObj;
141
- if (!errorMessageObj.error) {
142
- // API should always return an error message but this isn't always the case
143
- // (e.g. https://github.com/airdcpp/airdcpp-windows/commit/596b31a9c8c4e72f6c9279972a40ea30f10798c4)
144
- logger.warn('Error message missing from the response (this is an API bug that should be reported)', id, messageObj);
145
- }
146
- const { code } = errorMessageObj;
147
- const error = errorMessageObj.error || {
148
- message: '(no error description)'
149
- };
150
- logger.warn(id, code, error.message, formatFieldError(error));
151
- callbacks[id].resolver.reject({
152
- message: error.message,
153
- code,
154
- json: error
155
- });
156
- }
157
- delete callbacks[id];
158
- },
159
- postAuthenticate(path, data) {
160
- return sendRequest('POST', path, data, true);
161
- },
162
- };
163
- return {
164
- ...RequestsInternal,
165
- socket: RequestsPublic,
166
- };
167
- };
168
- exports.default = SocketRequestHandler;
169
- //# sourceMappingURL=SocketRequestHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SocketRequestHandler.js","sourceRoot":"","sources":["../src/SocketRequestHandler.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import { Logger } from './types/logger.js';
2
- import * as APIInternal from './types/api_internal.js';
3
- import * as Options from './types/options.js';
4
- import * as Socket from './types/socket.js';
5
- import * as Subscriptions from './types/subscriptions.js';
6
- declare const SocketSubscriptionHandler: (socket: () => Socket.APISocket, logger: Logger, { ignoredListenerEvents }: Options.SocketSubscriptionOptions) => {
7
- socket: Subscriptions.SocketSubscriptions;
8
- onSocketDisconnected(): void;
9
- handleMessage(message: APIInternal.IncomingSubscriptionEvent): void;
10
- };
11
- export default SocketSubscriptionHandler;
@@ -1,162 +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 invariant_1 = __importDefault(require("invariant"));
7
- const events_1 = require("events");
8
- const utils_js_1 = require("./utils.js");
9
- const Promise_js_1 = __importDefault(require("./Promise.js"));
10
- const SocketSubscriptionHandler = (socket, logger, { ignoredListenerEvents = [] }) => {
11
- // Internal
12
- const getEmitId = (event, id) => {
13
- (0, invariant_1.default)(id !== 0, 'Entity ID "0" is not allowed');
14
- return id ? (event + id) : event;
15
- };
16
- const getSubscriptionUrl = (moduleUrl, id, event) => {
17
- if (id) {
18
- return `${moduleUrl}/${id}/listeners/${event}`;
19
- }
20
- return `${moduleUrl}/listeners/${event}`;
21
- };
22
- let subscriptions = {};
23
- const emitter = new events_1.EventEmitter();
24
- // Subscriptions pending to be added in the API
25
- const pendingSubscriptions = {};
26
- const removeSocketListener = (subscriptionUrl, subscriptionId, callback, sendApi) => {
27
- if (!socket().isConnected()) {
28
- return;
29
- }
30
- subscriptions[subscriptionId]--;
31
- emitter.removeListener(subscriptionId, callback);
32
- if (subscriptions[subscriptionId] === 0) {
33
- if (sendApi && socket().isConnected()) {
34
- socket().delete(subscriptionUrl)
35
- .catch((error) => {
36
- logger.error('Failed to remove socket listener', subscriptionUrl, error);
37
- });
38
- }
39
- delete subscriptions[subscriptionId];
40
- }
41
- };
42
- const removeLocalListener = (subscriptionId, callback) => {
43
- emitter.removeListener(subscriptionId, callback);
44
- };
45
- const handleHookAction = (subscriptionUrl, callback, data, completionId) => {
46
- callback(data, completionData => {
47
- socket().post(`${subscriptionUrl}/${completionId}/resolve`, completionData)
48
- .catch((error) => logger.error('Failed to complete hook action', subscriptionUrl, error));
49
- }, (rejectId, rejectMessage) => {
50
- socket().post(`${subscriptionUrl}/${completionId}/reject`, {
51
- reject_id: rejectId,
52
- message: rejectMessage,
53
- }).catch(error => logger.error('Failed to complete failed hook action', subscriptionUrl, error));
54
- });
55
- };
56
- const onSubscriptionAddSucceeded = (subscriptionId) => {
57
- const pending = pendingSubscriptions[subscriptionId];
58
- pending.forEach(pendingItem => pendingItem.resolver.resolve(pendingItem.removeHandler));
59
- subscriptions[subscriptionId] = pending.length;
60
- delete pendingSubscriptions[subscriptionId];
61
- };
62
- const onSubscriptionAddFailed = (subscriptionId, error) => {
63
- const pending = pendingSubscriptions[subscriptionId];
64
- pending.forEach(pendingItem => pendingItem.resolver.reject(error));
65
- delete pendingSubscriptions[subscriptionId];
66
- };
67
- const addPendingEntry = (subscriptionUrl, subscriptionId, callback, data) => {
68
- const removeHandler = (sendApi = true) => removeSocketListener(subscriptionUrl, subscriptionId, callback, sendApi);
69
- if (!subscriptions[subscriptionId]) {
70
- if (!pendingSubscriptions[subscriptionId]) {
71
- pendingSubscriptions[subscriptionId] = [];
72
- socket()
73
- .post(subscriptionUrl, data)
74
- .then(onSubscriptionAddSucceeded.bind(SocketSubscriptionHandler, subscriptionId), onSubscriptionAddFailed.bind(SocketSubscriptionHandler, subscriptionId));
75
- }
76
- const resolver = Promise_js_1.default.pending();
77
- pendingSubscriptions[subscriptionId].push({
78
- resolver,
79
- removeHandler
80
- });
81
- return resolver.promise;
82
- }
83
- subscriptions[subscriptionId]++;
84
- return Promise_js_1.default.resolve(removeHandler);
85
- };
86
- const getTotalEmitterSubscriptionCount = () => {
87
- return Object.keys(subscriptions)
88
- .reduce((reduced, name) => emitter.listenerCount(name) + reduced, 0);
89
- };
90
- // Public
91
- // Listen to a specific event without sending subscription to the server
92
- const SocketSubscriptionsPublic = {
93
- addViewUpdateListener: (viewName, callback, entityId) => {
94
- const subscriptionId = getEmitId(`${viewName}_updated`, entityId);
95
- emitter.on(subscriptionId, callback);
96
- return () => removeLocalListener(subscriptionId, callback);
97
- },
98
- // Listen to a specific event and manage the API subscription automatically
99
- addListener: (apiModule, event, callback, entityId) => {
100
- if (!socket().isConnected()) {
101
- throw 'Listeners can be added only for a connected socket';
102
- }
103
- (0, invariant_1.default)(apiModule.indexOf('/') === -1, 'The first argument should only contain the API section without any path tokens (entity ID should be supplied separately)');
104
- const subscriptionId = getEmitId(event, entityId);
105
- const subscriptionUrl = getSubscriptionUrl(apiModule, entityId, event);
106
- emitter.on(subscriptionId, callback);
107
- return addPendingEntry(subscriptionUrl, subscriptionId, callback);
108
- },
109
- hasListeners: () => {
110
- return Object.keys(subscriptions).length > 0 || getTotalEmitterSubscriptionCount() > 0;
111
- },
112
- addHook: (apiModule, event, callback, subscriberInfo) => {
113
- if (!socket().isConnected()) {
114
- throw 'Hooks can be added only for a connected socket';
115
- }
116
- (0, invariant_1.default)(apiModule.indexOf('/') === -1, 'The first argument should only contain the API section without any path tokens');
117
- const subscriptionId = event;
118
- if (subscriptions[subscriptionId] || pendingSubscriptions[subscriptionId]) {
119
- throw 'Hook exists';
120
- }
121
- const subscriptionUrl = `${apiModule}/hooks/${event}`;
122
- callback = handleHookAction.bind(SocketSubscriptionHandler, subscriptionUrl, callback);
123
- emitter.on(subscriptionId, callback);
124
- return addPendingEntry(subscriptionUrl, subscriptionId, callback, subscriberInfo);
125
- },
126
- getPendingSubscriptionCount: () => {
127
- return Object.keys(pendingSubscriptions).length;
128
- },
129
- };
130
- // For the socket
131
- const SocketSubscriptionsInternal = {
132
- onSocketDisconnected() {
133
- emitter.removeAllListeners();
134
- subscriptions = {};
135
- },
136
- handleMessage(message) {
137
- const ignored = (0, utils_js_1.eventIgnored)(message.event, ignoredListenerEvents);
138
- if (message.completion_id) {
139
- if (!ignored) {
140
- logger.verbose(message.event, `(completion id ${message.completion_id})`, message.data);
141
- }
142
- emitter.emit(message.event, message.data, message.completion_id);
143
- }
144
- else {
145
- if (!ignored) {
146
- logger.verbose(message.event, message.id ? `(entity ${message.id})` : '(no entity)', message.data);
147
- }
148
- if (message.id) {
149
- // There can be subscribers for a single entity or for all events of this type... emit for both
150
- emitter.emit(getEmitId(message.event, message.id), message.data, message.id);
151
- }
152
- emitter.emit(message.event, message.data, message.id);
153
- }
154
- },
155
- };
156
- return {
157
- ...SocketSubscriptionsInternal,
158
- socket: SocketSubscriptionsPublic,
159
- };
160
- };
161
- exports.default = SocketSubscriptionHandler;
162
- //# sourceMappingURL=SocketSubscriptionHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SocketSubscriptionHandler.js","sourceRoot":"","sources":["../src/SocketSubscriptionHandler.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- export type AuthTokenType = string;
2
- export interface AuthenticationResponse {
3
- auth_token: AuthTokenType;
4
- }
5
- export interface LogoutResponse {
6
- }
7
- export interface CredentialsAuthenticationData {
8
- username: string;
9
- password: string;
10
- grant_type: 'password';
11
- max_inactivity?: number;
12
- }
13
- export interface RefreshTokenAuthenticationData {
14
- refresh_token: string;
15
- grant_type: 'refresh_token';
16
- max_inactivity?: number;
17
- }
18
- export interface TokenAuthenticationData {
19
- auth_token: string;
20
- }
21
- export type FieldErrorCode = 'missing_field' | 'invalid' | 'already_exists';
22
- export interface FieldError extends ErrorBase {
23
- message: string;
24
- field: string;
25
- code: FieldErrorCode;
26
- }
27
- export interface ErrorBase {
28
- message: string;
29
- }
30
- export type EntityId = string | number;
package/dist/types/api.js DELETED
@@ -1,4 +0,0 @@
1
- "use strict";
2
- // AUTHENTICATION
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- //# sourceMappingURL=api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":";AAAA,iBAAiB"}
@@ -1,24 +0,0 @@
1
- export type CompletionIdType = number;
2
- import { ErrorBase, FieldError, EntityId } from './api.js';
3
- export interface RequestResponseBase {
4
- code: number;
5
- callback_id: number;
6
- }
7
- export interface RequestSuccessResponse<DataT extends object | undefined = object | undefined> extends RequestResponseBase {
8
- data?: DataT;
9
- }
10
- export interface RequestErrorResponse extends RequestResponseBase {
11
- error: ErrorBase | FieldError;
12
- }
13
- export interface OutgoingRequest<DataT extends object | undefined = object | undefined> {
14
- path: string;
15
- method: string;
16
- data: DataT;
17
- callback_id: number;
18
- }
19
- export interface IncomingSubscriptionEvent<DataT extends object | undefined = object | undefined> {
20
- event: string;
21
- data: DataT;
22
- completion_id?: CompletionIdType;
23
- id?: EntityId;
24
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=api_internal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api_internal.js","sourceRoot":"","sources":["../../src/types/api_internal.ts"],"names":[],"mappings":""}
@@ -1,7 +0,0 @@
1
- export * from './api.js';
2
- export * from './logger.js';
3
- export * from './requests.js';
4
- export * from './subscriptions.js';
5
- export * from './socket.js';
6
- export * from './options.js';
7
- export * from './public_helpers.js';
@@ -1,24 +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
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./api.js"), exports);
18
- __exportStar(require("./logger.js"), exports);
19
- __exportStar(require("./requests.js"), exports);
20
- __exportStar(require("./subscriptions.js"), exports);
21
- __exportStar(require("./socket.js"), exports);
22
- __exportStar(require("./options.js"), exports);
23
- __exportStar(require("./public_helpers.js"), exports);
24
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AAEzB,8CAA4B;AAC5B,gDAA8B;AAC9B,qDAAmC;AAEnC,8CAA4B;AAC5B,+CAA6B;AAE7B,sDAAoC"}
@@ -1,6 +0,0 @@
1
- export interface Logger {
2
- verbose: (message?: any, ...optionalParams: any[]) => void;
3
- info: (message?: any, ...optionalParams: any[]) => void;
4
- warn: (message?: any, ...optionalParams: any[]) => void;
5
- error: (message?: any, ...optionalParams: any[]) => void;
6
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/types/logger.ts"],"names":[],"mappings":""}
@@ -1,31 +0,0 @@
1
- export type PrintHandler = (...optionalParams: any[]) => void;
2
- export interface LogOutput {
3
- log: PrintHandler;
4
- info: PrintHandler;
5
- warn: PrintHandler;
6
- error: PrintHandler;
7
- }
8
- export type IgnoreMatcher = string[] | RegExp;
9
- export interface SocketRequestOptions {
10
- ignoredRequestPaths?: IgnoreMatcher;
11
- requestTimeout?: number;
12
- }
13
- export interface SocketSubscriptionOptions {
14
- ignoredListenerEvents?: IgnoreMatcher;
15
- }
16
- export interface RequiredSocketOptions {
17
- url: string;
18
- username?: string;
19
- password?: string;
20
- }
21
- export interface AdvancedSocketOptions {
22
- autoReconnect: boolean;
23
- reconnectInterval: number;
24
- userSession: boolean;
25
- }
26
- export interface LoggerOptions {
27
- logLevel?: string;
28
- logOutput?: LogOutput;
29
- }
30
- type UserOptions = RequiredSocketOptions & Partial<AdvancedSocketOptions> & LoggerOptions & SocketSubscriptionOptions & SocketRequestOptions;
31
- export { UserOptions as APISocketOptions };
@@ -1,4 +0,0 @@
1
- "use strict";
2
- // HELPERS
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- //# sourceMappingURL=options.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/types/options.ts"],"names":[],"mappings":";AAAA,UAAU"}
@@ -1,19 +0,0 @@
1
- import { HookSubscriberInfo } from './subscriptions.js';
2
- type AsyncCallbackProperty<IdT, EntityIdT, ReturnT> = (selectedIds: IdT[], entityId: EntityIdT | null, permissions: string[], supports: string[]) => ReturnT | Promise<ReturnT>;
3
- export type ContextMenuIcon = {
4
- [key in string]: string;
5
- };
6
- export interface ContextMenu extends HookSubscriberInfo {
7
- icon?: ContextMenuIcon;
8
- }
9
- export interface ContextMenuItem<IdT, EntityIdT> {
10
- id: string;
11
- title: string;
12
- icon?: ContextMenuIcon;
13
- urls?: string[] | AsyncCallbackProperty<IdT, EntityIdT, string[] | undefined>;
14
- onClick?: (selectedIds: IdT[], entityId: EntityIdT | null, permissions: string[], supports: string[], formValues: object) => void;
15
- filter?: AsyncCallbackProperty<IdT, EntityIdT, boolean>;
16
- access?: string;
17
- formDefinitions?: object[] | AsyncCallbackProperty<IdT, EntityIdT, object[]>;
18
- }
19
- export {};
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=public_helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"public_helpers.js","sourceRoot":"","sources":["../../src/types/public_helpers.ts"],"names":[],"mappings":""}
@@ -1,27 +0,0 @@
1
- import { ContextMenuIcon, ContextMenuItem } from './public_helpers.js';
2
- export interface SelectedMenuItemListenerData<IdT, EntityIdT> {
3
- hook_id: string;
4
- menu_id: string;
5
- menuitem_id: string;
6
- selected_ids: IdT[];
7
- entity_id: EntityIdT | null;
8
- permissions: string[];
9
- supports: string[];
10
- form_values: object;
11
- }
12
- export interface MenuItemListHookData<IdT, EntityIdT> {
13
- selected_ids: IdT[];
14
- entity_id: EntityIdT | null;
15
- permissions: string[];
16
- supports: string[];
17
- }
18
- export interface ResponseMenuItemCallbackFields {
19
- urls?: string[] | undefined;
20
- form_definitions?: object[] | undefined;
21
- }
22
- export type ResponseMenuItem<IdT, EntityIdT> = Omit<ContextMenuItem<IdT, EntityIdT>, 'onClick' | 'filter' | 'urls' | 'form_definitions'> & ResponseMenuItemCallbackFields;
23
- export interface MenuItemListHookAcceptData<IdT, EntityIdT> {
24
- menuitems: ResponseMenuItem<IdT, EntityIdT>[];
25
- icon?: ContextMenuIcon;
26
- title?: string;
27
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=public_helpers_internal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"public_helpers_internal.js","sourceRoot":"","sources":["../../src/types/public_helpers_internal.ts"],"names":[],"mappings":""}
@@ -1,14 +0,0 @@
1
- import * as API from './api.js';
2
- export interface SocketRequestMethods {
3
- put: <ResponseT extends object | void>(path: string, data?: object) => Promise<ResponseT>;
4
- patch: <ResponseT extends object | void>(path: string, data?: object) => Promise<ResponseT>;
5
- post: <ResponseT extends object | void>(path: string, data?: object) => Promise<ResponseT>;
6
- delete: <ResponseT extends object | void>(path: string) => Promise<ResponseT>;
7
- get: <ResponseT extends object | void>(path: string) => Promise<ResponseT>;
8
- getPendingRequestCount: () => number;
9
- }
10
- export interface ErrorResponse {
11
- message: string;
12
- code: number;
13
- json: API.FieldError | API.ErrorBase;
14
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=requests.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"requests.js","sourceRoot":"","sources":["../../src/types/requests.ts"],"names":[],"mappings":""}