wileys 0.4.7 → 0.4.9

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.
@@ -58,6 +58,8 @@ exports.DEFAULT_CONNECTION_CONFIG = {
58
58
  shouldSyncHistoryMessage: () => true,
59
59
  shouldIgnoreJid: () => false,
60
60
  linkPreviewImageThumbnailWidth: 192,
61
+ // no forced delay between album items by default, to avoid slow perceived delivery
62
+ albumMessageItemDelayMs: 0,
61
63
  transactionOpts: { maxCommitRetries: 10, delayBetweenTriesMs: 3000 },
62
64
  generateHighQualityLinkPreview: false,
63
65
  enableAutoSessionRecreation: true,
@@ -115,4 +117,4 @@ exports.DEFAULT_CACHE_TTLS = {
115
117
  MSG_RETRY: 60 * 60,
116
118
  CALL_OFFER: 5 * 60,
117
119
  USER_DEVICES: 5 * 60
118
- };
120
+ };
@@ -11,11 +11,6 @@ class WebSocketClient extends types_1.AbstractSocketClient {
11
11
  constructor() {
12
12
  super(...arguments);
13
13
  this.socket = null;
14
- // queue & dispatch variables for throttling outgoing messages to avoid rate limits
15
- this._queue = [];
16
- this._isDispatching = false;
17
- this._lastDispatch = 0;
18
- this._minSendIntervalMs = (Defaults_1.DEFAULT_CONNECTION_CONFIG && Defaults_1.DEFAULT_CONNECTION_CONFIG.minSendIntervalMs) || 50;
19
14
  }
20
15
  get isOpen() {
21
16
  var _a;
@@ -69,43 +64,9 @@ class WebSocketClient extends types_1.AbstractSocketClient {
69
64
  await this.connect();
70
65
  }
71
66
  send(str, cb) {
72
- // throttle sends to reduce rate-limit likelihood
73
- const doSend = () => {
74
- var _a;
75
- (_a = this.socket) === null || _a === void 0 ? void 0 : _a.send(str, cb);
76
- return Boolean(this.socket);
77
- };
78
- this._queue.push(doSend);
79
- this._dispatch();
67
+ var _a;
68
+ (_a = this.socket) === null || _a === void 0 ? void 0 : _a.send(str, cb);
80
69
  return true;
81
70
  }
82
-
83
- _dispatch() {
84
- if (this._isDispatching) {
85
- return;
86
- }
87
- this._isDispatching = true;
88
- const tick = () => {
89
- const now = Date.now();
90
- if (this._queue.length === 0) {
91
- this._isDispatching = false;
92
- return;
93
- }
94
- const delta = now - this._lastDispatch;
95
- const wait = Math.max(0, this._minSendIntervalMs - delta);
96
- setTimeout(() => {
97
- const fn = this._queue.shift();
98
- this._lastDispatch = Date.now();
99
- try {
100
- fn && fn();
101
- }
102
- catch (_err) {
103
- // ignore send errors here; they'll surface elsewhere
104
- }
105
- tick();
106
- }, wait);
107
- };
108
- tick();
109
- }
110
71
  }
111
72
  exports.WebSocketClient = WebSocketClient;
@@ -15,7 +15,7 @@ const WABinary_1 = require("../WABinary");
15
15
  const WAUSync_1 = require("../WAUSync");
16
16
  const newsletter_1 = require("./newsletter");
17
17
  const makeMessagesSocket = (config) => {
18
- const { logger, linkPreviewImageThumbnailWidth, generateHighQualityLinkPreview, options: axiosOptions, patchMessageBeforeSending, cachedGroupMetadata, } = config;
18
+ const { logger, linkPreviewImageThumbnailWidth, generateHighQualityLinkPreview, options: axiosOptions, patchMessageBeforeSending, cachedGroupMetadata, albumMessageItemDelayMs = 0, } = config;
19
19
  const sock = (0, newsletter_1.makeNewsletterSocket)(config);
20
20
  const { ev, authState, processingMutex, signalRepository, upsertMessage, query, fetchPrivacySettings, sendNode, groupMetadata, groupToggleEphemeral, } = sock;
21
21
  const userDevicesCache = config.userDevicesCache || new node_cache_1.default({
@@ -773,7 +773,9 @@ const makeMessagesSocket = (config) => {
773
773
  await relayMessage(jid, mediaMsg.message, {
774
774
  messageId: mediaMsg.key.id
775
775
  });
776
- await new Promise(resolve => setTimeout(resolve, 800));
776
+ if (albumMessageItemDelayMs > 0) {
777
+ await new Promise(resolve => setTimeout(resolve, albumMessageItemDelayMs));
778
+ }
777
779
  }
778
780
  return albumMsg;
779
781
  }
@@ -89,14 +89,6 @@ const makeSocket = (config) => {
89
89
  // ignore
90
90
  }
91
91
  }
92
- // gently back off when encountering rate limits (429)
93
- if (message.includes('429') || message.includes('rate limit')) {
94
- const wait = Math.min(30000, (config.backoffDelayMs || 5000));
95
- logger.info({ wait }, 'backing off due to rate limit');
96
- setTimeout(() => {
97
- // intentionally empty; wait to delay further sends
98
- }, wait);
99
- }
100
92
  };
101
93
  /** await the next incoming message */
102
94
  const awaitNextMessage = async (sendMsg) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wileys",
3
- "version": "0.4.7",
3
+ "version": "0.4.9",
4
4
  "description": "WhatsApp Web API Library",
5
5
  "keywords": [
6
6
  "wileys",