@periskope/baileys 6.7.18-alpha.26 → 6.7.18-alpha.28

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.
@@ -43,6 +43,8 @@ export declare const MEDIA_HKDF_KEY_MAPPING: {
43
43
  export declare const MEDIA_KEYS: MediaType[];
44
44
  export declare const MIN_PREKEY_COUNT = 5;
45
45
  export declare const INITIAL_PREKEY_COUNT = 30;
46
+ export declare const UPLOAD_TIMEOUT = 30000;
47
+ export declare const MIN_UPLOAD_INTERVAL = 5000;
46
48
  export declare const DEFAULT_CACHE_TTLS: {
47
49
  SIGNAL_STORE: number;
48
50
  MSG_RETRY: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Defaults/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAE9C,OAAO,KAAK,EAAuB,SAAS,EAAE,YAAY,EAAa,MAAM,UAAU,CAAA;AAOvF,eAAO,MAAM,kBAAkB,UAAkB,CAAA;AAEjD,eAAO,MAAM,cAAc,6BAA6B,CAAA;AACxD,eAAO,MAAM,mBAAmB,QAAQ,CAAA;AACxC,eAAO,MAAM,cAAc,SAAS,CAAA;AACpC,eAAO,MAAM,mBAAmB,YAAY,CAAA;AAE5C,eAAO,MAAM,oBAAoB,QAAmB,CAAA;AAEpD,eAAO,MAAM,UAAU,yCAAyC,CAAA;AAChE,eAAO,MAAM,YAAY,IAAI,CAAA;AAC7B,eAAO,MAAM,eAAe,qBAAmB,CAAA;AAC/C,eAAO,MAAM,eAAe,qBAAyC,CAAA;AACrE,yGAAyG;AAEzG,eAAO,MAAM,SAAS,QAAiC,CAAC;AAExD,eAAO,MAAM,eAAe;;CAE3B,CAAA;AAED,eAAO,MAAM,yBAAyB,yDAMrC,CAAA;AAED,eAAO,MAAM,yBAAyB,EAAE,YA+BvC,CAAA;AAED,eAAO,MAAM,cAAc,EAAE;KAAG,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,MAAM;CAUvD,CAAA;AAED,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;CAmBlC,CAAA;AAED,eAAO,MAAM,UAAU,EAAkC,SAAS,EAAE,CAAA;AAEpE,eAAO,MAAM,gBAAgB,IAAI,CAAA;AAEjC,eAAO,MAAM,oBAAoB,KAAK,CAAA;AAEtC,eAAO,MAAM,kBAAkB;;;;;CAK9B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Defaults/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAE9C,OAAO,KAAK,EAAuB,SAAS,EAAE,YAAY,EAAa,MAAM,UAAU,CAAA;AAOvF,eAAO,MAAM,kBAAkB,UAAkB,CAAA;AAEjD,eAAO,MAAM,cAAc,6BAA6B,CAAA;AACxD,eAAO,MAAM,mBAAmB,QAAQ,CAAA;AACxC,eAAO,MAAM,cAAc,SAAS,CAAA;AACpC,eAAO,MAAM,mBAAmB,YAAY,CAAA;AAE5C,eAAO,MAAM,oBAAoB,QAAmB,CAAA;AAEpD,eAAO,MAAM,UAAU,yCAAyC,CAAA;AAChE,eAAO,MAAM,YAAY,IAAI,CAAA;AAC7B,eAAO,MAAM,eAAe,qBAAmB,CAAA;AAC/C,eAAO,MAAM,eAAe,qBAAyC,CAAA;AACrE,yGAAyG;AAEzG,eAAO,MAAM,SAAS,QAAiC,CAAC;AAExD,eAAO,MAAM,eAAe;;CAE3B,CAAA;AAED,eAAO,MAAM,yBAAyB,yDAMrC,CAAA;AAED,eAAO,MAAM,yBAAyB,EAAE,YA+BvC,CAAA;AAED,eAAO,MAAM,cAAc,EAAE;KAAG,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,MAAM;CAUvD,CAAA;AAED,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;CAmBlC,CAAA;AAED,eAAO,MAAM,UAAU,EAAkC,SAAS,EAAE,CAAA;AAEpE,eAAO,MAAM,gBAAgB,IAAI,CAAA;AAEjC,eAAO,MAAM,oBAAoB,KAAK,CAAA;AAEtC,eAAO,MAAM,cAAc,QAAQ,CAAA;AACnC,eAAO,MAAM,mBAAmB,OAAO,CAAA;AAEvC,eAAO,MAAM,kBAAkB;;;;;CAK9B,CAAA"}
@@ -93,6 +93,8 @@ export const MEDIA_HKDF_KEY_MAPPING = {
93
93
  export const MEDIA_KEYS = Object.keys(MEDIA_PATH_MAP);
94
94
  export const MIN_PREKEY_COUNT = 5;
95
95
  export const INITIAL_PREKEY_COUNT = 30;
96
+ export const UPLOAD_TIMEOUT = 30000; // 30 seconds
97
+ export const MIN_UPLOAD_INTERVAL = 5000; // 5 seconds minimum between uploads
96
98
  export const DEFAULT_CACHE_TTLS = {
97
99
  SIGNAL_STORE: 5 * 60, // 5 minutes
98
100
  MSG_RETRY: 60 * 60, // 1 hour
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Defaults/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Defaults/index.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,6 @@ export declare class GroupCipher {
8
8
  private readonly senderKeyStore;
9
9
  private readonly senderKeyName;
10
10
  constructor(senderKeyStore: SenderKeyStore, senderKeyName: SenderKeyName);
11
- private queueJob;
12
11
  encrypt(paddedPlaintext: Uint8Array | string): Promise<Uint8Array>;
13
12
  decrypt(senderKeyMessageBytes: Uint8Array): Promise<Uint8Array>;
14
13
  private getSenderKey;
@@ -1 +1 @@
1
- {"version":3,"file":"group_cipher.d.ts","sourceRoot":"","sources":["../../../src/Signal/Group/group_cipher.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAGrD,MAAM,WAAW,cAAc;IAC9B,aAAa,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IACrE,cAAc,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACpF;AAED,qBAAa,WAAW;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;gBAEjC,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa;IAKxE,OAAO,CAAC,QAAQ;IAIH,OAAO,CAAC,eAAe,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA6BlE,OAAO,CAAC,qBAAqB,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IA2B5E,OAAO,CAAC,YAAY;YA4BN,YAAY;YAQZ,aAAa;CAc3B"}
1
+ {"version":3,"file":"group_cipher.d.ts","sourceRoot":"","sources":["../../../src/Signal/Group/group_cipher.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAGrD,MAAM,WAAW,cAAc;IAC9B,aAAa,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAErE,cAAc,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACpF;AAED,qBAAa,WAAW;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;gBAEjC,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa;IAK3D,OAAO,CAAC,eAAe,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA2BlE,OAAO,CAAC,qBAAqB,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IA8B5E,OAAO,CAAC,YAAY;YA4BN,YAAY;YAQZ,aAAa;CAc3B"}
@@ -1,6 +1,5 @@
1
1
  /* @ts-ignore */
2
2
  import { decrypt, encrypt } from 'libsignal/src/crypto.js';
3
- import queueJob from './queue-job.js';
4
3
  import { SenderKeyMessage } from './sender-key-message.js';
5
4
  import { SenderKeyName } from './sender-key-name.js';
6
5
  import { SenderKeyRecord } from './sender-key-record.js';
@@ -10,44 +9,41 @@ export class GroupCipher {
10
9
  this.senderKeyStore = senderKeyStore;
11
10
  this.senderKeyName = senderKeyName;
12
11
  }
13
- queueJob(awaitable) {
14
- return queueJob(this.senderKeyName.toString(), awaitable);
15
- }
16
12
  async encrypt(paddedPlaintext) {
17
- return await this.queueJob(async () => {
18
- const record = await this.senderKeyStore.loadSenderKey(this.senderKeyName);
19
- if (!record) {
20
- throw new Error('No SenderKeyRecord found for encryption');
21
- }
22
- const senderKeyState = record.getSenderKeyState();
23
- if (!senderKeyState) {
24
- throw new Error('No session to encrypt message');
25
- }
26
- const iteration = senderKeyState.getSenderChainKey().getIteration();
27
- const senderKey = this.getSenderKey(senderKeyState, iteration === 0 ? 0 : iteration + 1);
28
- const ciphertext = await this.getCipherText(senderKey.getIv(), senderKey.getCipherKey(), paddedPlaintext);
29
- const senderKeyMessage = new SenderKeyMessage(senderKeyState.getKeyId(), senderKey.getIteration(), ciphertext, senderKeyState.getSigningKeyPrivate());
30
- await this.senderKeyStore.storeSenderKey(this.senderKeyName, record);
31
- return senderKeyMessage.serialize();
32
- });
13
+ const record = await this.senderKeyStore.loadSenderKey(this.senderKeyName);
14
+ if (!record) {
15
+ throw new Error('No SenderKeyRecord found for encryption');
16
+ }
17
+ const senderKeyState = record.getSenderKeyState();
18
+ if (!senderKeyState) {
19
+ throw new Error('No session to encrypt message');
20
+ }
21
+ const iteration = senderKeyState.getSenderChainKey().getIteration();
22
+ const senderKey = this.getSenderKey(senderKeyState, iteration === 0 ? 0 : iteration + 1);
23
+ const ciphertext = await this.getCipherText(senderKey.getIv(), senderKey.getCipherKey(), paddedPlaintext);
24
+ const senderKeyMessage = new SenderKeyMessage(senderKeyState.getKeyId(), senderKey.getIteration(), ciphertext, senderKeyState.getSigningKeyPrivate());
25
+ await this.senderKeyStore.storeSenderKey(this.senderKeyName, record);
26
+ return senderKeyMessage.serialize();
33
27
  }
34
28
  async decrypt(senderKeyMessageBytes) {
35
- return await this.queueJob(async () => {
36
- const record = await this.senderKeyStore.loadSenderKey(this.senderKeyName);
37
- if (!record) {
38
- throw new Error('No SenderKeyRecord found for decryption');
39
- }
40
- const senderKeyMessage = new SenderKeyMessage(null, null, null, null, senderKeyMessageBytes);
41
- const senderKeyState = record.getSenderKeyState(senderKeyMessage.getKeyId());
29
+ const record = await this.senderKeyStore.loadSenderKey(this.senderKeyName);
30
+ if (!record) {
31
+ throw new Error('No SenderKeyRecord found for decryption');
32
+ }
33
+ const senderKeyMessage = new SenderKeyMessage(null, null, null, null, senderKeyMessageBytes);
34
+ let senderKeyState = record.getSenderKeyState(senderKeyMessage.getKeyId());
35
+ // Fallback: try to get the latest sender key state if specific keyId not found
36
+ if (!senderKeyState) {
37
+ senderKeyState = record.getSenderKeyState();
42
38
  if (!senderKeyState) {
43
39
  throw new Error('No session found to decrypt message');
44
40
  }
45
- senderKeyMessage.verifySignature(senderKeyState.getSigningKeyPublic());
46
- const senderKey = this.getSenderKey(senderKeyState, senderKeyMessage.getIteration());
47
- const plaintext = await this.getPlainText(senderKey.getIv(), senderKey.getCipherKey(), senderKeyMessage.getCipherText());
48
- await this.senderKeyStore.storeSenderKey(this.senderKeyName, record);
49
- return plaintext;
50
- });
41
+ }
42
+ senderKeyMessage.verifySignature(senderKeyState.getSigningKeyPublic());
43
+ const senderKey = this.getSenderKey(senderKeyState, senderKeyMessage.getIteration());
44
+ const plaintext = await this.getPlainText(senderKey.getIv(), senderKey.getCipherKey(), senderKeyMessage.getCipherText());
45
+ await this.senderKeyStore.storeSenderKey(this.senderKeyName, record);
46
+ return plaintext;
51
47
  }
52
48
  getSenderKey(senderKeyState, iteration) {
53
49
  let senderChainKey = senderKeyState.getSenderChainKey();
@@ -1 +1 @@
1
- {"version":3,"file":"group_cipher.js","sourceRoot":"","sources":["../../../src/Signal/Group/group_cipher.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,QAAQ,MAAM,aAAa,CAAA;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAOnD,MAAM,OAAO,WAAW;IAIvB,YAAY,cAA8B,EAAE,aAA4B;QACvE,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;IACnC,CAAC;IAEO,QAAQ,CAAI,SAA2B;QAC9C,OAAO,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAA;IAC1D,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,eAAoC;QACxD,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YACrC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YAC1E,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;YAC3D,CAAC;YAED,MAAM,cAAc,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAA;YACjD,IAAI,CAAC,cAAc,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;YACjD,CAAC;YAED,MAAM,SAAS,GAAG,cAAc,CAAC,iBAAiB,EAAE,CAAC,YAAY,EAAE,CAAA;YACnE,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAA;YAExF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,eAAe,CAAC,CAAA;YAEzG,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAC5C,cAAc,CAAC,QAAQ,EAAE,EACzB,SAAS,CAAC,YAAY,EAAE,EACxB,UAAU,EACV,cAAc,CAAC,oBAAoB,EAAE,CACrC,CAAA;YAED,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;YACpE,OAAO,gBAAgB,CAAC,SAAS,EAAE,CAAA;QACpC,CAAC,CAAC,CAAA;IACH,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,qBAAiC;QACrD,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YACrC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YAC1E,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;YAC3D,CAAC;YAED,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,qBAAqB,CAAC,CAAA;YAC5F,MAAM,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAA;YAC5E,IAAI,CAAC,cAAc,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;YACvD,CAAC;YAED,gBAAgB,CAAC,eAAe,CAAC,cAAc,CAAC,mBAAmB,EAAE,CAAC,CAAA;YACtE,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAA;YAEpF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CACxC,SAAS,CAAC,KAAK,EAAE,EACjB,SAAS,CAAC,YAAY,EAAE,EACxB,gBAAgB,CAAC,aAAa,EAAE,CAChC,CAAA;YAED,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;YACpE,OAAO,SAAS,CAAA;QACjB,CAAC,CAAC,CAAA;IACH,CAAC;IAEO,YAAY,CAAC,cAA8B,EAAE,SAAiB;QACrE,IAAI,cAAc,GAAG,cAAc,CAAC,iBAAiB,EAAE,CAAA;QACvD,IAAI,cAAc,CAAC,YAAY,EAAE,GAAG,SAAS,EAAE,CAAC;YAC/C,IAAI,cAAc,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;gBACnD,MAAM,UAAU,GAAG,cAAc,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAA;gBACnE,IAAI,CAAC,UAAU,EAAE,CAAC;oBACjB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;gBAC7D,CAAC;gBAED,OAAO,UAAU,CAAA;YAClB,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,sCAAsC,cAAc,CAAC,YAAY,EAAE,KAAK,SAAS,EAAE,CAAC,CAAA;QACrG,CAAC;QAED,IAAI,SAAS,GAAG,cAAc,CAAC,YAAY,EAAE,GAAG,IAAI,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;QACvD,CAAC;QAED,OAAO,cAAc,CAAC,YAAY,EAAE,GAAG,SAAS,EAAE,CAAC;YAClD,cAAc,CAAC,mBAAmB,CAAC,cAAc,CAAC,mBAAmB,EAAE,CAAC,CAAA;YACxE,cAAc,GAAG,cAAc,CAAC,OAAO,EAAE,CAAA;QAC1C,CAAC;QAED,cAAc,CAAC,iBAAiB,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAA;QAC1D,OAAO,cAAc,CAAC,mBAAmB,EAAE,CAAA;IAC5C,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,EAAc,EAAE,GAAe,EAAE,UAAsB;QACjF,IAAI,CAAC;YACJ,OAAO,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,CAAC,CAAA;QACpC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;QAC3C,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,aAAa,CAC1B,EAAuB,EACvB,GAAwB,EACxB,SAA8B;QAE9B,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YACxE,MAAM,SAAS,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;YAC5E,MAAM,eAAe,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YAC1F,OAAO,OAAO,CAAC,SAAS,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAA;QACrD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;QAC3C,CAAC;IACF,CAAC;CACD"}
1
+ {"version":3,"file":"group_cipher.js","sourceRoot":"","sources":["../../../src/Signal/Group/group_cipher.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"libsignal.d.ts","sourceRoot":"","sources":["../../src/Signal/libsignal.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAQvD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,eAAe,GAAG,gBAAgB,CAoF/E"}
1
+ {"version":3,"file":"libsignal.d.ts","sourceRoot":"","sources":["../../src/Signal/libsignal.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAiC,MAAM,UAAU,CAAA;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAQvD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,eAAe,GAAG,gBAAgB,CAwG/E"}
@@ -11,7 +11,10 @@ export function makeLibSignalRepository(auth) {
11
11
  decryptGroupMessage({ group, authorJid, msg }) {
12
12
  const senderName = jidToSignalSenderKeyName(group, authorJid);
13
13
  const cipher = new GroupCipher(storage, senderName);
14
- return cipher.decrypt(msg);
14
+ // Use transaction to ensure atomicity
15
+ return auth.keys.transaction(async () => {
16
+ return cipher.decrypt(msg);
17
+ });
15
18
  },
16
19
  async processSenderKeyDistributionMessage({ item, authorJid }) {
17
20
  const builder = new GroupSessionBuilder(storage);
@@ -21,54 +24,66 @@ export function makeLibSignalRepository(auth) {
21
24
  const senderName = jidToSignalSenderKeyName(item.groupId, authorJid);
22
25
  const senderMsg = new SenderKeyDistributionMessage(null, null, null, null, item.axolotlSenderKeyDistributionMessage);
23
26
  const senderNameStr = senderName.toString();
24
- const { [senderNameStr]: senderKey } = await auth.keys.get('sender-key', [senderNameStr]);
25
- if (!senderKey) {
26
- await storage.storeSenderKey(senderName, new SenderKeyRecord());
27
- }
28
- await builder.process(senderName, senderMsg);
27
+ return auth.keys.transaction(async () => {
28
+ const { [senderNameStr]: senderKey } = await auth.keys.get('sender-key', [senderNameStr]);
29
+ if (!senderKey) {
30
+ await storage.storeSenderKey(senderName, new SenderKeyRecord());
31
+ }
32
+ await builder.process(senderName, senderMsg);
33
+ });
29
34
  },
30
35
  async decryptMessage({ jid, type, ciphertext }) {
31
36
  const addr = jidToSignalProtocolAddress(jid);
32
37
  const session = new libsignal.SessionCipher(storage, addr);
33
- let result;
34
- switch (type) {
35
- case 'pkmsg':
36
- result = await session.decryptPreKeyWhisperMessage(ciphertext);
37
- break;
38
- case 'msg':
39
- result = await session.decryptWhisperMessage(ciphertext);
40
- break;
41
- default:
42
- throw new Error(`Unknown message type: ${type}`);
43
- }
44
- return result;
38
+ // Use transaction to ensure atomicityAdd commentMore actions
39
+ return auth.keys.transaction(async () => {
40
+ let result;
41
+ switch (type) {
42
+ case 'pkmsg':
43
+ result = await session.decryptPreKeyWhisperMessage(ciphertext);
44
+ break;
45
+ case 'msg':
46
+ result = await session.decryptWhisperMessage(ciphertext);
47
+ break;
48
+ }
49
+ return result;
50
+ });
45
51
  },
46
52
  async encryptMessage({ jid, data }) {
47
53
  const addr = jidToSignalProtocolAddress(jid);
48
54
  const cipher = new libsignal.SessionCipher(storage, addr);
49
- const { type: sigType, body } = await cipher.encrypt(data);
50
- const type = sigType === 3 ? 'pkmsg' : 'msg';
51
- return { type, ciphertext: Buffer.from(body, 'binary') };
55
+ // Use transaction to ensure atomicityAdd commentMore actions
56
+ return auth.keys.transaction(async () => {
57
+ const { type: sigType, body } = await cipher.encrypt(data);
58
+ const type = sigType === 3 ? 'pkmsg' : 'msg';
59
+ return { type, ciphertext: Buffer.from(body, 'binary') };
60
+ });
52
61
  },
53
62
  async encryptGroupMessage({ group, meId, data }) {
54
63
  const senderName = jidToSignalSenderKeyName(group, meId);
55
64
  const builder = new GroupSessionBuilder(storage);
56
65
  const senderNameStr = senderName.toString();
57
- const { [senderNameStr]: senderKey } = await auth.keys.get('sender-key', [senderNameStr]);
58
- if (!senderKey) {
59
- await storage.storeSenderKey(senderName, new SenderKeyRecord());
60
- }
61
- const senderKeyDistributionMessage = await builder.create(senderName);
62
- const session = new GroupCipher(storage, senderName);
63
- const ciphertext = await session.encrypt(data);
64
- return {
65
- ciphertext,
66
- senderKeyDistributionMessage: senderKeyDistributionMessage.serialize()
67
- };
66
+ // Use transaction to ensure atomicity
67
+ return auth.keys.transaction(async () => {
68
+ const { [senderNameStr]: senderKey } = await auth.keys.get('sender-key', [senderNameStr]);
69
+ if (!senderKey) {
70
+ await storage.storeSenderKey(senderName, new SenderKeyRecord());
71
+ }
72
+ const senderKeyDistributionMessage = await builder.create(senderName);
73
+ const session = new GroupCipher(storage, senderName);
74
+ const ciphertext = await session.encrypt(data);
75
+ return {
76
+ ciphertext,
77
+ senderKeyDistributionMessage: senderKeyDistributionMessage.serialize()
78
+ };
79
+ });
68
80
  },
69
81
  async injectE2ESession({ jid, session }) {
70
82
  const cipher = new libsignal.SessionBuilder(storage, jidToSignalProtocolAddress(jid));
71
- await cipher.initOutgoing(session);
83
+ // Use transaction to ensure atomicity
84
+ return auth.keys.transaction(async () => {
85
+ await cipher.initOutgoing(session);
86
+ });
72
87
  },
73
88
  jidToSignalProtocolAddress(jid) {
74
89
  return jidToSignalProtocolAddress(jid).toString();
@@ -1 +1 @@
1
- {"version":3,"file":"libsignal.js","sourceRoot":"","sources":["../../src/Signal/libsignal.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,OAAO,KAAK,SAAS,MAAM,WAAW,CAAA;AAGtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAA;AAExF,MAAM,UAAU,uBAAuB,CAAC,IAAqB;IAC5D,MAAM,OAAO,GAAmB,aAAa,CAAC,IAAI,CAAC,CAAA;IACnD,OAAO;QACN,mBAAmB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE;YAC5C,MAAM,UAAU,GAAG,wBAAwB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;YAC7D,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;YAEnD,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3B,CAAC;QACD,KAAK,CAAC,mCAAmC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;YAC5D,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAA;YAChD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;YAC5E,CAAC;YAED,MAAM,UAAU,GAAG,wBAAwB,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;YAEpE,MAAM,SAAS,GAAG,IAAI,4BAA4B,CACjD,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,CAAC,mCAAmC,CACxC,CAAA;YACD,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAA;YAC3C,MAAM,EAAE,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC,CAAC,CAAA;YACzF,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChB,MAAM,OAAO,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,eAAe,EAAE,CAAC,CAAA;YAChE,CAAC;YAED,MAAM,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;QAC7C,CAAC;QACD,KAAK,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE;YAC7C,MAAM,IAAI,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAA;YAC5C,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YAC1D,IAAI,MAAc,CAAA;YAClB,QAAQ,IAAI,EAAE,CAAC;gBACd,KAAK,OAAO;oBACX,MAAM,GAAG,MAAM,OAAO,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAAA;oBAC9D,MAAK;gBACN,KAAK,KAAK;oBACT,MAAM,GAAG,MAAM,OAAO,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAA;oBACxD,MAAK;gBACN;oBACC,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAA;YAClD,CAAC;YAED,OAAO,MAAM,CAAA;QACd,CAAC;QACD,KAAK,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE;YACjC,MAAM,IAAI,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAA;YAC5C,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YAEzD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAC1D,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAA;YAC5C,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAA;QACzD,CAAC;QACD,KAAK,CAAC,mBAAmB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;YAC9C,MAAM,UAAU,GAAG,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YACxD,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAA;YAEhD,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAA;YAC3C,MAAM,EAAE,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC,CAAC,CAAA;YACzF,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChB,MAAM,OAAO,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,eAAe,EAAE,CAAC,CAAA;YAChE,CAAC;YAED,MAAM,4BAA4B,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YACrE,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;YACpD,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAE9C,OAAO;gBACN,UAAU;gBACV,4BAA4B,EAAE,4BAA4B,CAAC,SAAS,EAAE;aACtE,CAAA;QACF,CAAC;QACD,KAAK,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE;YACtC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAA;YACrF,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QACnC,CAAC;QACD,0BAA0B,CAAC,GAAG;YAC7B,OAAO,0BAA0B,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAA;QAClD,CAAC;KACD,CAAA;AACF,CAAC;AAED,MAAM,0BAA0B,GAAG,CAAC,GAAW,EAAE,EAAE;IAClD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAE,CAAA;IACxC,OAAO,IAAI,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,CAAA;AACxD,CAAC,CAAA;AAED,MAAM,wBAAwB,GAAG,CAAC,KAAa,EAAE,IAAY,EAAiB,EAAE;IAC/E,OAAO,IAAI,aAAa,CAAC,KAAK,EAAE,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAA;AAClE,CAAC,CAAA;AAED,SAAS,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAmB;IACtD,OAAO;QACN,WAAW,EAAE,KAAK,EAAE,EAAU,EAAE,EAAE;YACjC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YACtD,IAAI,IAAI,EAAE,CAAC;gBACV,OAAO,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;YACjD,CAAC;QACF,CAAC;QACD,sFAAsF;QACtF,YAAY,EAAE,KAAK,EAAE,EAAU,EAAE,OAAY,EAAE,EAAE;YAChD,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,CAAA;QAC3D,CAAC;QACD,iBAAiB,EAAE,GAAG,EAAE;YACvB,OAAO,IAAI,CAAA;QACZ,CAAC;QACD,UAAU,EAAE,KAAK,EAAE,EAAmB,EAAE,EAAE;YACzC,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAA;YAC3B,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;YAC3D,IAAI,GAAG,EAAE,CAAC;gBACT,OAAO;oBACN,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;oBACjC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;iBAC/B,CAAA;YACF,CAAC;QACF,CAAC;QACD,YAAY,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;QACrE,gBAAgB,EAAE,GAAG,EAAE;YACtB,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,CAAA;YAC9B,OAAO;gBACN,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;gBACzC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;aACvC,CAAA;QACF,CAAC;QACD,aAAa,EAAE,KAAK,EAAE,aAA4B,EAAE,EAAE;YACrD,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAA;YACtC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;YAC9D,IAAI,GAAG,EAAE,CAAC;gBACT,OAAO,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YACxC,CAAC;YAED,OAAO,IAAI,eAAe,EAAE,CAAA;QAC7B,CAAC;QACD,cAAc,EAAE,KAAK,EAAE,aAA4B,EAAE,GAAoB,EAAE,EAAE;YAC5E,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAA;YACtC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAA;YAClD,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAA;QAChF,CAAC;QACD,oBAAoB,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,cAAc;QAChD,cAAc,EAAE,GAAG,EAAE;YACpB,MAAM,EAAE,iBAAiB,EAAE,GAAG,KAAK,CAAA;YACnC,OAAO;gBACN,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;gBAC/C,MAAM,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,MAAM,CAAC;aACtD,CAAA;QACF,CAAC;KACD,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"libsignal.js","sourceRoot":"","sources":["../../src/Signal/libsignal.ts"],"names":[],"mappings":"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"}
@@ -166,7 +166,7 @@ export declare const makeBusinessSocket: (config: SocketConfig) => {
166
166
  logout: (msg?: string) => Promise<void>;
167
167
  end: (error: Error | undefined) => void;
168
168
  onUnexpectedError: (err: Error | import("@hapi/boom").Boom, msg: string) => void;
169
- uploadPreKeys: (count?: number) => Promise<void>;
169
+ uploadPreKeys: (count?: number, retryCount?: number) => Promise<void>;
170
170
  uploadPreKeysToServerIfRequired: () => Promise<void>;
171
171
  requestPairingCode: (phoneNumber: string, customPairingCode?: string) => Promise<string>;
172
172
  waitForConnectionUpdate: (check: (u: Partial<import("../index.js").ConnectionState>) => Promise<boolean | undefined>, timeoutMs?: number) => Promise<void>;
@@ -82,7 +82,7 @@ export declare const makeChatsSocket: (config: SocketConfig) => {
82
82
  logout: (msg?: string) => Promise<void>;
83
83
  end: (error: Error | undefined) => void;
84
84
  onUnexpectedError: (err: Error | Boom, msg: string) => void;
85
- uploadPreKeys: (count?: number) => Promise<void>;
85
+ uploadPreKeys: (count?: number, retryCount?: number) => Promise<void>;
86
86
  uploadPreKeysToServerIfRequired: () => Promise<void>;
87
87
  requestPairingCode: (phoneNumber: string, customPairingCode?: string) => Promise<string>;
88
88
  waitForConnectionUpdate: (check: (u: Partial<import("../Types/index.js").ConnectionState>) => Promise<boolean | undefined>, timeoutMs?: number) => Promise<void>;
@@ -208,7 +208,7 @@ export declare const makeCommunitiesSocket: (config: SocketConfig) => {
208
208
  logout: (msg?: string) => Promise<void>;
209
209
  end: (error: Error | undefined) => void;
210
210
  onUnexpectedError: (err: Error | import("@hapi/boom").Boom, msg: string) => void;
211
- uploadPreKeys: (count?: number) => Promise<void>;
211
+ uploadPreKeys: (count?: number, retryCount?: number) => Promise<void>;
212
212
  uploadPreKeysToServerIfRequired: () => Promise<void>;
213
213
  requestPairingCode: (phoneNumber: string, customPairingCode?: string) => Promise<string>;
214
214
  waitForConnectionUpdate: (check: (u: Partial<import("../Types/index.js").ConnectionState>) => Promise<boolean | undefined>, timeoutMs?: number) => Promise<void>;
@@ -120,7 +120,7 @@ export declare const makeGroupsSocket: (config: SocketConfig) => {
120
120
  logout: (msg?: string) => Promise<void>;
121
121
  end: (error: Error | undefined) => void;
122
122
  onUnexpectedError: (err: Error | import("@hapi/boom").Boom, msg: string) => void;
123
- uploadPreKeys: (count?: number) => Promise<void>;
123
+ uploadPreKeys: (count?: number, retryCount?: number) => Promise<void>;
124
124
  uploadPreKeysToServerIfRequired: () => Promise<void>;
125
125
  requestPairingCode: (phoneNumber: string, customPairingCode?: string) => Promise<string>;
126
126
  waitForConnectionUpdate: (check: (u: Partial<import("../Types/index.js").ConnectionState>) => Promise<boolean | undefined>, timeoutMs?: number) => Promise<void>;
@@ -195,7 +195,7 @@ declare const makeWASocket: (config: UserFacingSocketConfig) => {
195
195
  logout: (msg?: string) => Promise<void>;
196
196
  end: (error: Error | undefined) => void;
197
197
  onUnexpectedError: (err: Error | import("@hapi/boom").Boom, msg: string) => void;
198
- uploadPreKeys: (count?: number) => Promise<void>;
198
+ uploadPreKeys: (count?: number, retryCount?: number) => Promise<void>;
199
199
  uploadPreKeysToServerIfRequired: () => Promise<void>;
200
200
  requestPairingCode: (phoneNumber: string, customPairingCode?: string) => Promise<string>;
201
201
  waitForConnectionUpdate: (check: (u: Partial<import("../index.js").ConnectionState>) => Promise<boolean | undefined>, timeoutMs?: number) => Promise<void>;
@@ -155,7 +155,7 @@ export declare const makeMessagesRecvSocket: (config: SocketConfig) => {
155
155
  logout: (msg?: string) => Promise<void>;
156
156
  end: (error: Error | undefined) => void;
157
157
  onUnexpectedError: (err: Error | Boom, msg: string) => void;
158
- uploadPreKeys: (count?: number) => Promise<void>;
158
+ uploadPreKeys: (count?: number, retryCount?: number) => Promise<void>;
159
159
  uploadPreKeysToServerIfRequired: () => Promise<void>;
160
160
  requestPairingCode: (phoneNumber: string, customPairingCode?: string) => Promise<string>;
161
161
  waitForConnectionUpdate: (check: (u: Partial<import("../Types/index.js").ConnectionState>) => Promise<boolean | undefined>, timeoutMs?: number) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"messages-recv.d.ts","sourceRoot":"","sources":["../../src/Socket/messages-recv.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEjC,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAE9C,OAAO,KAAK,EACX,kBAAkB,EAClB,mBAAmB,EAEnB,YAAY,EAEZ,YAAY,EAEZ,MAAM,UAAU,CAAA;AA2BjB,OAAO,EAEN,KAAK,UAAU,EAYf,MAAM,aAAa,CAAA;AAIpB,eAAO,MAAM,sBAAsB,GAAI,QAAQ,YAAY;8CA8CH,UAAU,cAAc,MAAM;6BAmF/C,UAAU;yBAtBd,MAAM,YAAY,MAAM;iCAswBlD,MAAM,gBACC,YAAY,sBACN,MAAM,GAAG,IAAI,KAC/B,OAAO,CAAC,MAAM,CAAC;2CAmBkC,YAAY,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA3NvE,CAAC;;;;;;;;0DApqBZ,GAAG,0BAEL,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CA6xCb,CAAA"}
1
+ {"version":3,"file":"messages-recv.d.ts","sourceRoot":"","sources":["../../src/Socket/messages-recv.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEjC,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAE9C,OAAO,KAAK,EACX,kBAAkB,EAClB,mBAAmB,EAEnB,YAAY,EAEZ,YAAY,EAEZ,MAAM,UAAU,CAAA;AA2BjB,OAAO,EAEN,KAAK,UAAU,EAYf,MAAM,aAAa,CAAA;AAIpB,eAAO,MAAM,sBAAsB,GAAI,QAAQ,YAAY;8CA8CH,UAAU,cAAc,MAAM;6BAmF/C,UAAU;yBAtBd,MAAM,YAAY,MAAM;iCAwxBlD,MAAM,gBACC,YAAY,sBACN,MAAM,GAAG,IAAI,KAC/B,OAAO,CAAC,MAAM,CAAC;2CAmBkC,YAAY,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA7O5E,CAAC;;;;;;;;0DApqBP,GAAG,0BAEL,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CA+yCb,CAAA"}
@@ -487,7 +487,7 @@ export const makeMessagesRecvSocket = (config) => {
487
487
  };
488
488
  const sendMessagesAgain = async (key, ids, retryNode, all = false) => {
489
489
  // todo: implement a cache to store the last 256 sent messages (copy whatsmeow)
490
- const msgs = await Promise.all(ids.map(id => getMessage({ ...key, id })));
490
+ const msgs = await Promise.all(ids.map(id => getMessage({ ...key, id }, 600)));
491
491
  const remoteJid = key.remoteJid;
492
492
  const participant = key.participant || remoteJid;
493
493
  // if it's the primary jid sending the request
@@ -702,19 +702,33 @@ export const makeMessagesRecvSocket = (config) => {
702
702
  if (msg?.messageStubParameters?.[0] === MISSING_KEYS_ERROR_TEXT) {
703
703
  return sendMessageAck(node, NACK_REASONS.ParsingError);
704
704
  }
705
+ const errorMessage = msg?.messageStubParameters?.[0] || '';
706
+ const isPreKeyError = errorMessage.includes('PreKey');
705
707
  retryMutex.mutex(async () => {
706
- if (ws.isOpen) {
707
- if (getBinaryNodeChild(node, 'unavailable')) {
708
- return;
708
+ if (!ws.isOpen) {
709
+ logger.debug({ node }, 'Connection closed, skipping retry');
710
+ return;
711
+ }
712
+ if (getBinaryNodeChild(node, 'unavailable')) {
713
+ logger.debug('Message unavailable, skipping retry');
714
+ return;
715
+ }
716
+ if (isPreKeyError) {
717
+ logger.info({ error: errorMessage }, 'PreKey error detected, uploading and retrying');
718
+ try {
719
+ logger.debug('Uploading pre-keys for error recovery');
720
+ await uploadPreKeys(5);
721
+ logger.debug('Waiting for server to process new pre-keys');
722
+ await delay(1000);
709
723
  }
710
- const encNode = getBinaryNodeChild(node, 'enc');
711
- await sendRetryRequest(node, !encNode);
712
- if (retryRequestDelayMs) {
713
- await delay(retryRequestDelayMs);
724
+ catch (uploadErr) {
725
+ logger.error({ uploadErr }, 'Pre-key upload failed, proceeding with retry anyway');
714
726
  }
715
727
  }
716
- else {
717
- logger.debug({ node }, 'connection closed, ignoring retry req');
728
+ const encNode = getBinaryNodeChild(node, 'enc');
729
+ await sendRetryRequest(node, !encNode);
730
+ if (retryRequestDelayMs) {
731
+ await delay(retryRequestDelayMs);
718
732
  }
719
733
  });
720
734
  }