@wildix/xbees-conversations-utils 1.1.67 → 1.1.69
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/dist-cjs/rateLimits/constants.js +13 -1
- package/dist-cjs/rateLimits/createRateLimitedStreamProxy.js +12 -1
- package/dist-es/rateLimits/constants.js +12 -0
- package/dist-es/rateLimits/createRateLimitedStreamProxy.js +13 -2
- package/dist-types/rateLimits/constants.d.ts +2 -0
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DEFAULT_OPTIONS = exports.STREAM_SYNC_METHOD_NAMES = exports.STREAM_SYNC_CHANNEL_RESULT_METHOD_NAMES = exports.STREAM_RATE_LIMIT_OPTIONS_MARKER = exports.STREAM_RATE_LIMIT_COOLDOWN_KEY_PREFIX = exports.RETRY_AFTER_BUFFER_MS = exports.DEFAULT_JITTER_MS = exports.DEFAULT_RETRY_AFTER_MS = exports.DEFAULT_MAX_DELAY_MS = void 0;
|
|
3
|
+
exports.DEFAULT_OPTIONS = exports.CHANNEL_SYNC_PROXY_RESULT_METHOD_NAMES = exports.CHANNEL_SYNC_METHOD_NAMES = exports.STREAM_SYNC_METHOD_NAMES = exports.STREAM_SYNC_CHANNEL_RESULT_METHOD_NAMES = exports.STREAM_RATE_LIMIT_OPTIONS_MARKER = exports.STREAM_RATE_LIMIT_COOLDOWN_KEY_PREFIX = exports.RETRY_AFTER_BUFFER_MS = exports.DEFAULT_JITTER_MS = exports.DEFAULT_RETRY_AFTER_MS = exports.DEFAULT_MAX_DELAY_MS = void 0;
|
|
4
4
|
exports.DEFAULT_MAX_DELAY_MS = 5000;
|
|
5
5
|
exports.DEFAULT_RETRY_AFTER_MS = 10000;
|
|
6
6
|
exports.DEFAULT_JITTER_MS = 150;
|
|
@@ -55,6 +55,18 @@ exports.STREAM_SYNC_METHOD_NAMES = [
|
|
|
55
55
|
'userMuteStatus',
|
|
56
56
|
'verifyWebhook',
|
|
57
57
|
];
|
|
58
|
+
exports.CHANNEL_SYNC_METHOD_NAMES = [
|
|
59
|
+
'_channelURL',
|
|
60
|
+
'countUnread',
|
|
61
|
+
'countUnreadMentions',
|
|
62
|
+
'getConfig',
|
|
63
|
+
'lastMessage',
|
|
64
|
+
'lastRead',
|
|
65
|
+
'muteStatus',
|
|
66
|
+
'off',
|
|
67
|
+
'on',
|
|
68
|
+
];
|
|
69
|
+
exports.CHANNEL_SYNC_PROXY_RESULT_METHOD_NAMES = ['getClient'];
|
|
58
70
|
exports.DEFAULT_OPTIONS = {
|
|
59
71
|
maxAttempts: 3,
|
|
60
72
|
enableCooldown: true,
|
|
@@ -7,6 +7,8 @@ const isStreamChannelLike_1 = require("./helpers/isStreamChannelLike");
|
|
|
7
7
|
const splitCallArgsAndOptions_1 = require("./helpers/splitCallArgsAndOptions");
|
|
8
8
|
const STREAM_SYNC_METHODS = new Set(constants_1.STREAM_SYNC_METHOD_NAMES);
|
|
9
9
|
const STREAM_SYNC_CHANNEL_RESULT_METHODS = new Set(constants_1.STREAM_SYNC_CHANNEL_RESULT_METHOD_NAMES);
|
|
10
|
+
const CHANNEL_SYNC_METHODS = new Set(constants_1.CHANNEL_SYNC_METHOD_NAMES);
|
|
11
|
+
const CHANNEL_SYNC_PROXY_RESULT_METHODS = new Set(constants_1.CHANNEL_SYNC_PROXY_RESULT_METHOD_NAMES);
|
|
10
12
|
function normalizeStreamCallResult(result, dependencies) {
|
|
11
13
|
if (Array.isArray(result)) {
|
|
12
14
|
return result.map((item) => normalizeStreamCallResult(item, dependencies));
|
|
@@ -43,7 +45,16 @@ function wrapTarget(target, dependencies) {
|
|
|
43
45
|
return normalizeStreamCallResult(result, dependencies);
|
|
44
46
|
};
|
|
45
47
|
}
|
|
46
|
-
if (
|
|
48
|
+
if (CHANNEL_SYNC_PROXY_RESULT_METHODS.has(property)) {
|
|
49
|
+
return (...args) => {
|
|
50
|
+
const result = Reflect.apply(value, originalTarget, args);
|
|
51
|
+
if (typeof result === 'object' && result !== null) {
|
|
52
|
+
return wrapTarget(result, dependencies);
|
|
53
|
+
}
|
|
54
|
+
return result;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
if (STREAM_SYNC_METHODS.has(property) || CHANNEL_SYNC_METHODS.has(property)) {
|
|
47
58
|
return (...args) => Reflect.apply(value, originalTarget, args);
|
|
48
59
|
}
|
|
49
60
|
return createRateLimitedMethodWrapper(originalTarget, value, property, dependencies);
|
|
@@ -52,6 +52,18 @@ export const STREAM_SYNC_METHOD_NAMES = [
|
|
|
52
52
|
'userMuteStatus',
|
|
53
53
|
'verifyWebhook',
|
|
54
54
|
];
|
|
55
|
+
export const CHANNEL_SYNC_METHOD_NAMES = [
|
|
56
|
+
'_channelURL',
|
|
57
|
+
'countUnread',
|
|
58
|
+
'countUnreadMentions',
|
|
59
|
+
'getConfig',
|
|
60
|
+
'lastMessage',
|
|
61
|
+
'lastRead',
|
|
62
|
+
'muteStatus',
|
|
63
|
+
'off',
|
|
64
|
+
'on',
|
|
65
|
+
];
|
|
66
|
+
export const CHANNEL_SYNC_PROXY_RESULT_METHOD_NAMES = ['getClient'];
|
|
55
67
|
export const DEFAULT_OPTIONS = {
|
|
56
68
|
maxAttempts: 3,
|
|
57
69
|
enableCooldown: true,
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { DEFAULT_OPTIONS, STREAM_SYNC_CHANNEL_RESULT_METHOD_NAMES, STREAM_SYNC_METHOD_NAMES } from './constants';
|
|
1
|
+
import { CHANNEL_SYNC_METHOD_NAMES, CHANNEL_SYNC_PROXY_RESULT_METHOD_NAMES, DEFAULT_OPTIONS, STREAM_SYNC_CHANNEL_RESULT_METHOD_NAMES, STREAM_SYNC_METHOD_NAMES, } from './constants';
|
|
2
2
|
import { executeWithRateLimitHandling } from './helpers/executeWithRateLimitHandling';
|
|
3
3
|
import { isStreamChannelLike } from './helpers/isStreamChannelLike';
|
|
4
4
|
import { splitCallArgsAndOptions } from './helpers/splitCallArgsAndOptions';
|
|
5
5
|
const STREAM_SYNC_METHODS = new Set(STREAM_SYNC_METHOD_NAMES);
|
|
6
6
|
const STREAM_SYNC_CHANNEL_RESULT_METHODS = new Set(STREAM_SYNC_CHANNEL_RESULT_METHOD_NAMES);
|
|
7
|
+
const CHANNEL_SYNC_METHODS = new Set(CHANNEL_SYNC_METHOD_NAMES);
|
|
8
|
+
const CHANNEL_SYNC_PROXY_RESULT_METHODS = new Set(CHANNEL_SYNC_PROXY_RESULT_METHOD_NAMES);
|
|
7
9
|
function normalizeStreamCallResult(result, dependencies) {
|
|
8
10
|
if (Array.isArray(result)) {
|
|
9
11
|
return result.map((item) => normalizeStreamCallResult(item, dependencies));
|
|
@@ -40,7 +42,16 @@ function wrapTarget(target, dependencies) {
|
|
|
40
42
|
return normalizeStreamCallResult(result, dependencies);
|
|
41
43
|
};
|
|
42
44
|
}
|
|
43
|
-
if (
|
|
45
|
+
if (CHANNEL_SYNC_PROXY_RESULT_METHODS.has(property)) {
|
|
46
|
+
return (...args) => {
|
|
47
|
+
const result = Reflect.apply(value, originalTarget, args);
|
|
48
|
+
if (typeof result === 'object' && result !== null) {
|
|
49
|
+
return wrapTarget(result, dependencies);
|
|
50
|
+
}
|
|
51
|
+
return result;
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
if (STREAM_SYNC_METHODS.has(property) || CHANNEL_SYNC_METHODS.has(property)) {
|
|
44
55
|
return (...args) => Reflect.apply(value, originalTarget, args);
|
|
45
56
|
}
|
|
46
57
|
return createRateLimitedMethodWrapper(originalTarget, value, property, dependencies);
|
|
@@ -7,4 +7,6 @@ export declare const STREAM_RATE_LIMIT_COOLDOWN_KEY_PREFIX = "stream-rate-limit-
|
|
|
7
7
|
export declare const STREAM_RATE_LIMIT_OPTIONS_MARKER = "__xbsRateLimitOptions";
|
|
8
8
|
export declare const STREAM_SYNC_CHANNEL_RESULT_METHOD_NAMES: readonly ["channel", "getChannelById", "getChannelByMembers", "hydrateActiveChannels"];
|
|
9
9
|
export declare const STREAM_SYNC_METHOD_NAMES: readonly ["_addChannelConfig", "_buildWSPayload", "_callClientListeners", "_deleteUserMessageReference", "_enrichAxiosOptions", "_getConnectionID", "_getToken", "_handleClientEvent", "_handleUserEvent", "_hasConnectionID", "_isUsingServerAuth", "_logApiError", "_logApiRequest", "_logApiResponse", "_muteStatus", "_normalizeDate", "_normalizeExpiration", "_sayHi", "_setUser", "_startCleaning", "_updateMemberWatcherReferences", "_updateUserMessageReferences", "_updateUserReferences", "_validateAndGetMessageId", "createAbortControllerForNextRequest", "createToken", "devToken", "dispatchEvent", "errorFromResponse", "getAuthType", "getUserAgent", "handleEvent", "handleResponse", "off", "on", "setBaseURL", "setLocalDevice", "setUserAgent", "userMuteStatus", "verifyWebhook"];
|
|
10
|
+
export declare const CHANNEL_SYNC_METHOD_NAMES: readonly ["_channelURL", "countUnread", "countUnreadMentions", "getConfig", "lastMessage", "lastRead", "muteStatus", "off", "on"];
|
|
11
|
+
export declare const CHANNEL_SYNC_PROXY_RESULT_METHOD_NAMES: readonly ["getClient"];
|
|
10
12
|
export declare const DEFAULT_OPTIONS: StreamRateLimitRetryOptions;
|