@twsxtd/baileys 7.0.0-rc.9.commit.7a91cac1d4ec → 7.0.0-rc.9.commit.8d1e795328c7

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 (139) hide show
  1. package/WAProto/fix-imports.js +22 -18
  2. package/WAProto/index.js +22 -18
  3. package/lib/Defaults/index.d.ts +2 -0
  4. package/lib/Defaults/index.d.ts.map +1 -1
  5. package/lib/Defaults/index.js +3 -1
  6. package/lib/Defaults/index.js.map +1 -1
  7. package/lib/Signal/libsignal.d.ts.map +1 -1
  8. package/lib/Signal/libsignal.js +15 -12
  9. package/lib/Signal/libsignal.js.map +1 -1
  10. package/lib/Signal/lid-mapping.d.ts +3 -5
  11. package/lib/Signal/lid-mapping.d.ts.map +1 -1
  12. package/lib/Signal/lid-mapping.js +37 -22
  13. package/lib/Signal/lid-mapping.js.map +1 -1
  14. package/lib/Socket/Client/websocket.d.ts.map +1 -1
  15. package/lib/Socket/Client/websocket.js +3 -6
  16. package/lib/Socket/Client/websocket.js.map +1 -1
  17. package/lib/Socket/business.d.ts +7 -4
  18. package/lib/Socket/business.d.ts.map +1 -1
  19. package/lib/Socket/chats.d.ts +9 -3
  20. package/lib/Socket/chats.d.ts.map +1 -1
  21. package/lib/Socket/chats.js +253 -47
  22. package/lib/Socket/chats.js.map +1 -1
  23. package/lib/Socket/communities.d.ts +7 -4
  24. package/lib/Socket/communities.d.ts.map +1 -1
  25. package/lib/Socket/groups.d.ts +8 -4
  26. package/lib/Socket/groups.d.ts.map +1 -1
  27. package/lib/Socket/groups.js +20 -0
  28. package/lib/Socket/groups.js.map +1 -1
  29. package/lib/Socket/index.d.ts +7 -4
  30. package/lib/Socket/index.d.ts.map +1 -1
  31. package/lib/Socket/messages-recv.d.ts +7 -4
  32. package/lib/Socket/messages-recv.d.ts.map +1 -1
  33. package/lib/Socket/messages-recv.js +296 -103
  34. package/lib/Socket/messages-recv.js.map +1 -1
  35. package/lib/Socket/messages-send.d.ts +7 -4
  36. package/lib/Socket/messages-send.d.ts.map +1 -1
  37. package/lib/Socket/messages-send.js +113 -50
  38. package/lib/Socket/messages-send.js.map +1 -1
  39. package/lib/Socket/newsletter.d.ts +6 -3
  40. package/lib/Socket/newsletter.d.ts.map +1 -1
  41. package/lib/Socket/newsletter.js +2 -2
  42. package/lib/Socket/newsletter.js.map +1 -1
  43. package/lib/Socket/socket.d.ts +0 -2
  44. package/lib/Socket/socket.d.ts.map +1 -1
  45. package/lib/Socket/socket.js +15 -9
  46. package/lib/Socket/socket.js.map +1 -1
  47. package/lib/Types/Auth.d.ts +2 -0
  48. package/lib/Types/Auth.d.ts.map +1 -1
  49. package/lib/Types/Call.d.ts +1 -1
  50. package/lib/Types/Call.d.ts.map +1 -1
  51. package/lib/Types/Contact.d.ts +2 -0
  52. package/lib/Types/Contact.d.ts.map +1 -1
  53. package/lib/Types/Events.d.ts +16 -0
  54. package/lib/Types/Events.d.ts.map +1 -1
  55. package/lib/Types/GroupMetadata.d.ts +4 -0
  56. package/lib/Types/GroupMetadata.d.ts.map +1 -1
  57. package/lib/Types/Message.d.ts +15 -2
  58. package/lib/Types/Message.d.ts.map +1 -1
  59. package/lib/Types/Message.js.map +1 -1
  60. package/lib/Types/Newsletter.d.ts +4 -2
  61. package/lib/Types/Newsletter.d.ts.map +1 -1
  62. package/lib/Types/Newsletter.js +4 -2
  63. package/lib/Types/Newsletter.js.map +1 -1
  64. package/lib/Types/Signal.d.ts +1 -2
  65. package/lib/Types/Signal.d.ts.map +1 -1
  66. package/lib/Utils/auth-utils.d.ts +5 -0
  67. package/lib/Utils/auth-utils.d.ts.map +1 -1
  68. package/lib/Utils/auth-utils.js +49 -14
  69. package/lib/Utils/auth-utils.js.map +1 -1
  70. package/lib/Utils/chat-utils.d.ts +30 -0
  71. package/lib/Utils/chat-utils.d.ts.map +1 -1
  72. package/lib/Utils/chat-utils.js +34 -8
  73. package/lib/Utils/chat-utils.js.map +1 -1
  74. package/lib/Utils/companion-reg-client-utils.d.ts +17 -0
  75. package/lib/Utils/companion-reg-client-utils.d.ts.map +1 -0
  76. package/lib/Utils/companion-reg-client-utils.js +41 -0
  77. package/lib/Utils/companion-reg-client-utils.js.map +1 -0
  78. package/lib/Utils/decode-wa-message.d.ts +12 -0
  79. package/lib/Utils/decode-wa-message.d.ts.map +1 -1
  80. package/lib/Utils/decode-wa-message.js +22 -0
  81. package/lib/Utils/decode-wa-message.js.map +1 -1
  82. package/lib/Utils/event-buffer.d.ts +0 -7
  83. package/lib/Utils/event-buffer.d.ts.map +1 -1
  84. package/lib/Utils/event-buffer.js +9 -29
  85. package/lib/Utils/event-buffer.js.map +1 -1
  86. package/lib/Utils/generics.d.ts +1 -0
  87. package/lib/Utils/generics.d.ts.map +1 -1
  88. package/lib/Utils/generics.js +22 -1
  89. package/lib/Utils/generics.js.map +1 -1
  90. package/lib/Utils/history.d.ts.map +1 -1
  91. package/lib/Utils/history.js +11 -9
  92. package/lib/Utils/history.js.map +1 -1
  93. package/lib/Utils/identity-change-handler.d.ts +7 -0
  94. package/lib/Utils/identity-change-handler.d.ts.map +1 -1
  95. package/lib/Utils/identity-change-handler.js +2 -6
  96. package/lib/Utils/identity-change-handler.js.map +1 -1
  97. package/lib/Utils/index.d.ts +15 -15
  98. package/lib/Utils/index.d.ts.map +1 -1
  99. package/lib/Utils/index.js +15 -15
  100. package/lib/Utils/index.js.map +1 -1
  101. package/lib/Utils/message-retry-manager.d.ts +1 -5
  102. package/lib/Utils/message-retry-manager.d.ts.map +1 -1
  103. package/lib/Utils/message-retry-manager.js +7 -14
  104. package/lib/Utils/message-retry-manager.js.map +1 -1
  105. package/lib/Utils/messages-media.js +1 -1
  106. package/lib/Utils/messages-media.js.map +1 -1
  107. package/lib/Utils/messages.d.ts.map +1 -1
  108. package/lib/Utils/messages.js +22 -1
  109. package/lib/Utils/messages.js.map +1 -1
  110. package/lib/Utils/process-message.d.ts.map +1 -1
  111. package/lib/Utils/process-message.js +74 -7
  112. package/lib/Utils/process-message.js.map +1 -1
  113. package/lib/Utils/sync-action-utils.d.ts.map +1 -1
  114. package/lib/Utils/sync-action-utils.js +1 -0
  115. package/lib/Utils/sync-action-utils.js.map +1 -1
  116. package/lib/Utils/tc-token-utils.d.ts +26 -1
  117. package/lib/Utils/tc-token-utils.d.ts.map +1 -1
  118. package/lib/Utils/tc-token-utils.js +149 -4
  119. package/lib/Utils/tc-token-utils.js.map +1 -1
  120. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +1 -1
  121. package/lib/WAUSync/Protocols/USyncContactProtocol.js +26 -3
  122. package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +1 -1
  123. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts +10 -0
  124. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts.map +1 -0
  125. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +25 -0
  126. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js.map +1 -0
  127. package/lib/WAUSync/Protocols/index.d.ts +1 -0
  128. package/lib/WAUSync/Protocols/index.d.ts.map +1 -1
  129. package/lib/WAUSync/Protocols/index.js +1 -0
  130. package/lib/WAUSync/Protocols/index.js.map +1 -1
  131. package/lib/WAUSync/USyncQuery.d.ts +1 -0
  132. package/lib/WAUSync/USyncQuery.d.ts.map +1 -1
  133. package/lib/WAUSync/USyncQuery.js +5 -1
  134. package/lib/WAUSync/USyncQuery.js.map +1 -1
  135. package/lib/WAUSync/USyncUser.d.ts +4 -0
  136. package/lib/WAUSync/USyncUser.d.ts.map +1 -1
  137. package/lib/WAUSync/USyncUser.js +8 -0
  138. package/lib/WAUSync/USyncUser.js.map +1 -1
  139. package/package.json +5 -3
@@ -21,6 +21,7 @@ export const processContactAction = (action, id, logger) => {
21
21
  {
22
22
  id,
23
23
  name: action.fullName || action.firstName || action.username || undefined,
24
+ username: action.username || undefined,
24
25
  lid: lidJid || undefined,
25
26
  phoneNumber
26
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sync-action-utils.js","sourceRoot":"","sources":["../../src/Utils/sync-action-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAE9C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAejD;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CACnC,MAA4C,EAC5C,EAAsB,EACtB,MAAgB,EACK,EAAE;IACvB,MAAM,OAAO,GAAuB,EAAE,CAAA;IAEtC,IAAI,CAAC,EAAE,EAAE,CAAC;QACT,MAAM,EAAE,IAAI,CACX,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,EACxF,yCAAyC,CACzC,CAAA;QACD,OAAO,OAAO,CAAA;IACf,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;IAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC3B,sEAAsE;IACtE,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,SAAS,CAAA;IAE3D,8BAA8B;IAC9B,OAAO,CAAC,IAAI,CAAC;QACZ,KAAK,EAAE,iBAAiB;QACxB,IAAI,EAAE;YACL;gBACC,EAAE;gBACF,IAAI,EAAE,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ,IAAI,SAAS;gBACzE,GAAG,EAAE,MAAM,IAAI,SAAS;gBACxB,WAAW;aACX;SACD;KACD,CAAC,CAAA;IAEF,uDAAuD;IACvD,IAAI,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,oBAAoB;YAC3B,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE;SAC7B,CAAC,CAAA;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EAAuB,EAAE,OAA2B,EAAQ,EAAE;IACnG,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,MAAM,CAAC,KAAK,KAAK,iBAAiB,EAAE,CAAC;YACxC,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QACxC,CAAC;aAAM,CAAC;YACP,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QAC3C,CAAC;IACF,CAAC;AACF,CAAC,CAAA"}
1
+ {"version":3,"file":"sync-action-utils.js","sourceRoot":"","sources":["../../src/Utils/sync-action-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAE9C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAejD;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CACnC,MAA4C,EAC5C,EAAsB,EACtB,MAAgB,EACK,EAAE;IACvB,MAAM,OAAO,GAAuB,EAAE,CAAA;IAEtC,IAAI,CAAC,EAAE,EAAE,CAAC;QACT,MAAM,EAAE,IAAI,CACX,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,EACxF,yCAAyC,CACzC,CAAA;QACD,OAAO,OAAO,CAAA;IACf,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;IAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC3B,sEAAsE;IACtE,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,SAAS,CAAA;IAE3D,8BAA8B;IAC9B,OAAO,CAAC,IAAI,CAAC;QACZ,KAAK,EAAE,iBAAiB;QACxB,IAAI,EAAE;YACL;gBACC,EAAE;gBACF,IAAI,EAAE,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ,IAAI,SAAS;gBACzE,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,SAAS;gBACtC,GAAG,EAAE,MAAM,IAAI,SAAS;gBACxB,WAAW;aACX;SACD;KACD,CAAC,CAAA;IAEF,uDAAuD;IACvD,IAAI,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,oBAAoB;YAC3B,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE;SAC7B,CAAC,CAAA;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EAAuB,EAAE,OAA2B,EAAQ,EAAE;IACnG,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,MAAM,CAAC,KAAK,KAAK,iBAAiB,EAAE,CAAC;YACxC,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QACxC,CAAC;aAAM,CAAC;YACP,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QAC3C,CAAC;IACF,CAAC;AACF,CAAC,CAAA"}
@@ -1,12 +1,37 @@
1
1
  import type { SignalKeyStoreWithTransaction } from '../Types/index.js';
2
2
  import type { BinaryNode } from '../WABinary/index.js';
3
+ /** Sentinel key under `tctoken` store holding a JSON array of tracked storage JIDs for cross-session pruning. */
4
+ export declare const TC_TOKEN_INDEX_KEY = "__index";
5
+ /** Read the persisted tctoken JID index and return its entries (never contains the sentinel key itself). */
6
+ export declare function readTcTokenIndex(keys: SignalKeyStoreWithTransaction): Promise<string[]>;
7
+ /** Build a SignalDataSet fragment that writes the merged index (persisted ∪ added) under the sentinel key. */
8
+ export declare function buildMergedTcTokenIndexWrite(keys: SignalKeyStoreWithTransaction, addedJids: Iterable<string>): Promise<{
9
+ [TC_TOKEN_INDEX_KEY]: {
10
+ token: Buffer;
11
+ };
12
+ }>;
13
+ export declare function isTcTokenExpired(timestamp: number | string | null | undefined): boolean;
14
+ export declare function shouldSendNewTcToken(senderTimestamp: number | undefined): boolean;
15
+ /** Resolve JID to LID for tctoken storage (WA Web stores under LID) */
16
+ export declare function resolveTcTokenJid(jid: string, getLIDForPN: (pn: string) => Promise<string | null>): Promise<string>;
17
+ /** Resolve target JID for issuing privacy token based on AB prop 14303 */
18
+ export declare function resolveIssuanceJid(jid: string, issueToLid: boolean, getLIDForPN: (pn: string) => Promise<string | null>, getPNForLID?: (lid: string) => Promise<string | null>): Promise<string>;
3
19
  type TcTokenParams = {
4
20
  jid: string;
5
21
  baseContent?: BinaryNode[];
6
22
  authState: {
7
23
  keys: SignalKeyStoreWithTransaction;
8
24
  };
25
+ getLIDForPN: (pn: string) => Promise<string | null>;
26
+ };
27
+ export declare function buildTcTokenFromJid({ authState, jid, baseContent, getLIDForPN }: TcTokenParams): Promise<BinaryNode[] | undefined>;
28
+ type StoreTcTokensParams = {
29
+ result: BinaryNode;
30
+ fallbackJid: string;
31
+ keys: SignalKeyStoreWithTransaction;
32
+ getLIDForPN: (pn: string) => Promise<string | null>;
33
+ onNewJidStored?: (jid: string) => void;
9
34
  };
10
- export declare function buildTcTokenFromJid({ authState, jid, baseContent }: TcTokenParams): Promise<BinaryNode[] | undefined>;
35
+ export declare function storeTcTokensFromIqResult({ result, fallbackJid, keys, getLIDForPN, onNewJidStored }: StoreTcTokensParams): Promise<void>;
11
36
  export {};
12
37
  //# sourceMappingURL=tc-token-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tc-token-utils.d.ts","sourceRoot":"","sources":["../../src/Utils/tc-token-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAA;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C,KAAK,aAAa,GAAG;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,SAAS,EAAE;QACV,IAAI,EAAE,6BAA6B,CAAA;KACnC,CAAA;CACD,CAAA;AAED,wBAAsB,mBAAmB,CAAC,EACzC,SAAS,EACT,GAAG,EACH,WAAgB,EAChB,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,EAAE,GAAG,SAAS,CAAC,CAkBnD"}
1
+ {"version":3,"file":"tc-token-utils.d.ts","sourceRoot":"","sources":["../../src/Utils/tc-token-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAA;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAkC7C,iHAAiH;AACjH,eAAO,MAAM,kBAAkB,YAAY,CAAA;AAE3C,4GAA4G;AAC5G,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,6BAA6B,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAW7F;AAED,8GAA8G;AAC9G,wBAAsB,4BAA4B,CACjD,IAAI,EAAE,6BAA6B,EACnC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,GACzB,OAAO,CAAC;IAAE,CAAC,kBAAkB,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,CAUtD;AAGD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CASvF;AAED,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAMjF;AAED,uEAAuE;AACvE,wBAAsB,iBAAiB,CACtC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GACjD,OAAO,CAAC,MAAM,CAAC,CAIjB;AAED,0EAA0E;AAC1E,wBAAsB,kBAAkB,CACvC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,OAAO,EACnB,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,EACnD,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GACnD,OAAO,CAAC,MAAM,CAAC,CAcjB;AAED,KAAK,aAAa,GAAG;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,SAAS,EAAE;QACV,IAAI,EAAE,6BAA6B,CAAA;KACnC,CAAA;IACD,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;CACnD,CAAA;AAED,wBAAsB,mBAAmB,CAAC,EACzC,SAAS,EACT,GAAG,EACH,WAAgB,EAChB,WAAW,EACX,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,EAAE,GAAG,SAAS,CAAC,CAgCnD;AAED,KAAK,mBAAmB,GAAG;IAC1B,MAAM,EAAE,UAAU,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,6BAA6B,CAAA;IACnC,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACnD,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CACtC,CAAA;AAED,wBAAsB,yBAAyB,CAAC,EAC/C,MAAM,EACN,WAAW,EACX,IAAI,EACJ,WAAW,EACX,cAAc,EACd,EAAE,mBAAmB,iBAkCrB"}
@@ -1,9 +1,119 @@
1
- export async function buildTcTokenFromJid({ authState, jid, baseContent = [] }) {
1
+ import { getBinaryNodeChild, getBinaryNodeChildren, isHostedLidUser, isHostedPnUser, isJidMetaAI, isLidUser, isPnUser, jidNormalizedUser } from '../WABinary/index.js';
2
+ // Same phone-number pattern as WABinary's isJidBot, applied against the user
3
+ // part so the check is invariant to @c.us ↔ @s.whatsapp.net normalization.
4
+ const BOT_PHONE_REGEX = /^1313555\d{4}$|^131655500\d{2}$/;
5
+ /**
6
+ * Mirrors WA Web's `Wid.isRegularUser()` (user ∧ ¬PSA ∧ ¬Bot). Used to gate tctoken
7
+ * storage against malformed notifications — WA Web filters server-side but we
8
+ * defend here for parity with `WAWebSetTcTokenChatAction.handleIncomingTcToken`.
9
+ * Works for both pre- and post-normalized JIDs (`@c.us` vs `@s.whatsapp.net`).
10
+ */
11
+ function isRegularUser(jid) {
12
+ if (!jid)
13
+ return false;
14
+ const user = jid.split('@')[0] ?? '';
15
+ if (user === '0')
16
+ return false; // PSA
17
+ if (BOT_PHONE_REGEX.test(user))
18
+ return false; // Bot by phone pattern
19
+ if (isJidMetaAI(jid))
20
+ return false; // MetaAI (@bot server)
21
+ return !!(isPnUser(jid) || isLidUser(jid) || isHostedPnUser(jid) || isHostedLidUser(jid) || jid.endsWith('@c.us'));
22
+ }
23
+ const TC_TOKEN_BUCKET_DURATION = 604800; // 7 days
24
+ const TC_TOKEN_NUM_BUCKETS = 4; // ~28-day rolling window
25
+ /** Sentinel key under `tctoken` store holding a JSON array of tracked storage JIDs for cross-session pruning. */
26
+ export const TC_TOKEN_INDEX_KEY = '__index';
27
+ /** Read the persisted tctoken JID index and return its entries (never contains the sentinel key itself). */
28
+ export async function readTcTokenIndex(keys) {
29
+ const data = await keys.get('tctoken', [TC_TOKEN_INDEX_KEY]);
30
+ const entry = data[TC_TOKEN_INDEX_KEY];
31
+ if (!entry?.token?.length)
32
+ return [];
33
+ try {
34
+ const parsed = JSON.parse(Buffer.from(entry.token).toString());
35
+ if (!Array.isArray(parsed))
36
+ return [];
37
+ return parsed.filter((j) => typeof j === 'string' && j.length > 0 && j !== TC_TOKEN_INDEX_KEY);
38
+ }
39
+ catch {
40
+ return [];
41
+ }
42
+ }
43
+ /** Build a SignalDataSet fragment that writes the merged index (persisted ∪ added) under the sentinel key. */
44
+ export async function buildMergedTcTokenIndexWrite(keys, addedJids) {
45
+ const persisted = await readTcTokenIndex(keys);
46
+ const merged = new Set(persisted);
47
+ for (const jid of addedJids) {
48
+ if (jid && jid !== TC_TOKEN_INDEX_KEY)
49
+ merged.add(jid);
50
+ }
51
+ return {
52
+ [TC_TOKEN_INDEX_KEY]: { token: Buffer.from(JSON.stringify([...merged])) }
53
+ };
54
+ }
55
+ // WA Web has separate sender/receiver AB props for these but they're identical today
56
+ export function isTcTokenExpired(timestamp) {
57
+ if (timestamp === null || timestamp === undefined)
58
+ return true;
59
+ const ts = typeof timestamp === 'string' ? parseInt(timestamp) : timestamp;
60
+ if (isNaN(ts))
61
+ return true;
62
+ const now = Math.floor(Date.now() / 1000);
63
+ const currentBucket = Math.floor(now / TC_TOKEN_BUCKET_DURATION);
64
+ const cutoffBucket = currentBucket - (TC_TOKEN_NUM_BUCKETS - 1);
65
+ const cutoffTimestamp = cutoffBucket * TC_TOKEN_BUCKET_DURATION;
66
+ return ts < cutoffTimestamp;
67
+ }
68
+ export function shouldSendNewTcToken(senderTimestamp) {
69
+ if (senderTimestamp === undefined)
70
+ return true;
71
+ const now = Math.floor(Date.now() / 1000);
72
+ const currentBucket = Math.floor(now / TC_TOKEN_BUCKET_DURATION);
73
+ const senderBucket = Math.floor(senderTimestamp / TC_TOKEN_BUCKET_DURATION);
74
+ return currentBucket > senderBucket;
75
+ }
76
+ /** Resolve JID to LID for tctoken storage (WA Web stores under LID) */
77
+ export async function resolveTcTokenJid(jid, getLIDForPN) {
78
+ if (isLidUser(jid))
79
+ return jid;
80
+ const lid = await getLIDForPN(jid);
81
+ return lid ?? jid;
82
+ }
83
+ /** Resolve target JID for issuing privacy token based on AB prop 14303 */
84
+ export async function resolveIssuanceJid(jid, issueToLid, getLIDForPN, getPNForLID) {
85
+ if (issueToLid) {
86
+ if (isLidUser(jid))
87
+ return jid;
88
+ const lid = await getLIDForPN(jid);
89
+ return lid ?? jid;
90
+ }
91
+ if (!isLidUser(jid))
92
+ return jid;
93
+ if (getPNForLID) {
94
+ const pn = await getPNForLID(jid);
95
+ return pn ?? jid;
96
+ }
97
+ return jid;
98
+ }
99
+ export async function buildTcTokenFromJid({ authState, jid, baseContent = [], getLIDForPN }) {
2
100
  try {
3
- const tcTokenData = await authState.keys.get('tctoken', [jid]);
4
- const tcTokenBuffer = tcTokenData?.[jid]?.token;
5
- if (!tcTokenBuffer)
101
+ const storageJid = await resolveTcTokenJid(jid, getLIDForPN);
102
+ const tcTokenData = await authState.keys.get('tctoken', [storageJid]);
103
+ const entry = tcTokenData?.[storageJid];
104
+ const tcTokenBuffer = entry?.token;
105
+ if (!tcTokenBuffer?.length || isTcTokenExpired(entry?.timestamp)) {
106
+ if (tcTokenBuffer) {
107
+ // Preserve senderTimestamp so shouldSendNewTcToken() keeps its dedupe state
108
+ // after we drop the unusable peer token. Only wipe the record entirely when
109
+ // there's nothing worth keeping.
110
+ const cleared = entry?.senderTimestamp !== undefined
111
+ ? { token: Buffer.alloc(0), senderTimestamp: entry.senderTimestamp }
112
+ : null;
113
+ await authState.keys.set({ tctoken: { [storageJid]: cleared } });
114
+ }
6
115
  return baseContent.length > 0 ? baseContent : undefined;
116
+ }
7
117
  baseContent.push({
8
118
  tag: 'tctoken',
9
119
  attrs: {},
@@ -15,4 +125,39 @@ export async function buildTcTokenFromJid({ authState, jid, baseContent = [] })
15
125
  return baseContent.length > 0 ? baseContent : undefined;
16
126
  }
17
127
  }
128
+ export async function storeTcTokensFromIqResult({ result, fallbackJid, keys, getLIDForPN, onNewJidStored }) {
129
+ const tokensNode = getBinaryNodeChild(result, 'tokens');
130
+ if (!tokensNode)
131
+ return;
132
+ const tokenNodes = getBinaryNodeChildren(tokensNode, 'token');
133
+ for (const tokenNode of tokenNodes) {
134
+ if (tokenNode.attrs.type !== 'trusted_contact' || !(tokenNode.content instanceof Uint8Array)) {
135
+ continue;
136
+ }
137
+ // In notifications tokenNode.attrs.jid is your own device JID, not the sender's
138
+ const rawJid = jidNormalizedUser(fallbackJid || tokenNode.attrs.jid);
139
+ if (!isRegularUser(rawJid))
140
+ continue;
141
+ const storageJid = await resolveTcTokenJid(rawJid, getLIDForPN);
142
+ const existingTcData = await keys.get('tctoken', [storageJid]);
143
+ const existingEntry = existingTcData[storageJid];
144
+ const existingTs = existingEntry?.timestamp ? Number(existingEntry.timestamp) : 0;
145
+ const incomingTs = tokenNode.attrs.t ? Number(tokenNode.attrs.t) : 0;
146
+ // timestamp-less tokens would be immediately expired
147
+ if (!incomingTs)
148
+ continue;
149
+ if (existingTs > 0 && existingTs > incomingTs)
150
+ continue;
151
+ await keys.set({
152
+ tctoken: {
153
+ [storageJid]: {
154
+ ...existingEntry,
155
+ token: Buffer.from(tokenNode.content),
156
+ timestamp: tokenNode.attrs.t
157
+ }
158
+ }
159
+ });
160
+ onNewJidStored?.(storageJid);
161
+ }
162
+ }
18
163
  //# sourceMappingURL=tc-token-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tc-token-utils.js","sourceRoot":"","sources":["../../src/Utils/tc-token-utils.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,EACzC,SAAS,EACT,GAAG,EACH,WAAW,GAAG,EAAE,EACD;IACf,IAAI,CAAC;QACJ,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;QAE9D,MAAM,aAAa,GAAG,WAAW,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAA;QAE/C,IAAI,CAAC,aAAa;YAAE,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAA;QAE3E,WAAW,CAAC,IAAI,CAAC;YAChB,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,aAAa;SACtB,CAAC,CAAA;QAEF,OAAO,WAAW,CAAA;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAA;IACxD,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"tc-token-utils.js","sourceRoot":"","sources":["../../src/Utils/tc-token-utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"USyncContactProtocol.d.ts","sourceRoot":"","sources":["../../../src/WAUSync/Protocols/USyncContactProtocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,qBAAa,oBAAqB,YAAW,kBAAkB;IAC9D,IAAI,SAAY;IAEhB,eAAe,IAAI,UAAU;IAO7B,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU;IAS3C,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;CAQjC"}
1
+ {"version":3,"file":"USyncContactProtocol.d.ts","sourceRoot":"","sources":["../../../src/WAUSync/Protocols/USyncContactProtocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,qBAAa,oBAAqB,YAAW,kBAAkB;IAC9D,IAAI,SAAY;IAEhB,eAAe,IAAI,UAAU;IAO7B,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU;IAmC3C,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;CAQjC"}
@@ -11,11 +11,34 @@ export class USyncContactProtocol {
11
11
  };
12
12
  }
13
13
  getUserElement(user) {
14
- //TODO: Implement type / username fields (not yet supported)
14
+ if (user.phone) {
15
+ return {
16
+ tag: 'contact',
17
+ attrs: {},
18
+ content: user.phone
19
+ };
20
+ }
21
+ if (user.username) {
22
+ return {
23
+ tag: 'contact',
24
+ attrs: {
25
+ username: user.username,
26
+ ...(user.usernameKey ? { pin: user.usernameKey } : {}),
27
+ ...(user.lid ? { lid: user.lid } : {})
28
+ }
29
+ };
30
+ }
31
+ if (user.type) {
32
+ return {
33
+ tag: 'contact',
34
+ attrs: {
35
+ type: user.type
36
+ }
37
+ };
38
+ }
15
39
  return {
16
40
  tag: 'contact',
17
- attrs: {},
18
- content: user.phone
41
+ attrs: {}
19
42
  };
20
43
  }
21
44
  parser(node) {
@@ -1 +1 @@
1
- {"version":3,"file":"USyncContactProtocol.js","sourceRoot":"","sources":["../../../src/WAUSync/Protocols/USyncContactProtocol.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAmB,MAAM,gBAAgB,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,MAAM,OAAO,oBAAoB;IAAjC;QACC,SAAI,GAAG,SAAS,CAAA;IA0BjB,CAAC;IAxBA,eAAe;QACd,OAAO;YACN,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,EAAE;SACT,CAAA;IACF,CAAC;IAED,cAAc,CAAC,IAAe;QAC7B,4DAA4D;QAC5D,OAAO;YACN,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,IAAI,CAAC,KAAK;SACnB,CAAA;IACF,CAAC;IAED,MAAM,CAAC,IAAgB;QACtB,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC5B,mBAAmB,CAAC,IAAI,CAAC,CAAA;YACzB,OAAO,IAAI,EAAE,KAAK,EAAE,IAAI,KAAK,IAAI,CAAA;QAClC,CAAC;QAED,OAAO,KAAK,CAAA;IACb,CAAC;CACD"}
1
+ {"version":3,"file":"USyncContactProtocol.js","sourceRoot":"","sources":["../../../src/WAUSync/Protocols/USyncContactProtocol.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAmB,MAAM,gBAAgB,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,MAAM,OAAO,oBAAoB;IAAjC;QACC,SAAI,GAAG,SAAS,CAAA;IAoDjB,CAAC;IAlDA,eAAe;QACd,OAAO;YACN,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,EAAE;SACT,CAAA;IACF,CAAC;IAED,cAAc,CAAC,IAAe;QAC7B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO;gBACN,GAAG,EAAE,SAAS;gBACd,KAAK,EAAE,EAAE;gBACT,OAAO,EAAE,IAAI,CAAC,KAAK;aACnB,CAAA;QACF,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO;gBACN,GAAG,EAAE,SAAS;gBACd,KAAK,EAAE;oBACN,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACtC;aACD,CAAA;QACF,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,OAAO;gBACN,GAAG,EAAE,SAAS;gBACd,KAAK,EAAE;oBACN,IAAI,EAAE,IAAI,CAAC,IAAI;iBACf;aACD,CAAA;QACF,CAAC;QAED,OAAO;YACN,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,EAAE;SACT,CAAA;IACF,CAAC;IAED,MAAM,CAAC,IAAgB;QACtB,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC5B,mBAAmB,CAAC,IAAI,CAAC,CAAA;YACzB,OAAO,IAAI,EAAE,KAAK,EAAE,IAAI,KAAK,IAAI,CAAA;QAClC,CAAC;QAED,OAAO,KAAK,CAAA;IACb,CAAC;CACD"}
@@ -0,0 +1,10 @@
1
+ import type { USyncQueryProtocol } from '../../Types/USync.js';
2
+ import { type BinaryNode } from '../../WABinary/index.js';
3
+ import { USyncUser } from '../USyncUser.js';
4
+ export declare class USyncUsernameProtocol implements USyncQueryProtocol {
5
+ name: string;
6
+ getQueryElement(): BinaryNode;
7
+ getUserElement(user: USyncUser): BinaryNode | null;
8
+ parser(node: BinaryNode): string | null;
9
+ }
10
+ //# sourceMappingURL=USyncUsernameProtocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"USyncUsernameProtocol.d.ts","sourceRoot":"","sources":["../../../src/WAUSync/Protocols/USyncUsernameProtocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,qBAAa,qBAAsB,YAAW,kBAAkB;IAC/D,IAAI,SAAa;IAEjB,eAAe,IAAI,UAAU;IAO7B,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,IAAI;IAKlD,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI;CAQvC"}
@@ -0,0 +1,25 @@
1
+ import { assertNodeErrorFree } from '../../WABinary/index.js';
2
+ import { USyncUser } from '../USyncUser.js';
3
+ export class USyncUsernameProtocol {
4
+ constructor() {
5
+ this.name = 'username';
6
+ }
7
+ getQueryElement() {
8
+ return {
9
+ tag: 'username',
10
+ attrs: {}
11
+ };
12
+ }
13
+ getUserElement(user) {
14
+ void user;
15
+ return null;
16
+ }
17
+ parser(node) {
18
+ if (node.tag === 'username') {
19
+ assertNodeErrorFree(node);
20
+ return typeof node.content === 'string' ? node.content : null;
21
+ }
22
+ return null;
23
+ }
24
+ }
25
+ //# sourceMappingURL=USyncUsernameProtocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"USyncUsernameProtocol.js","sourceRoot":"","sources":["../../../src/WAUSync/Protocols/USyncUsernameProtocol.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAmB,MAAM,gBAAgB,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,MAAM,OAAO,qBAAqB;IAAlC;QACC,SAAI,GAAG,UAAU,CAAA;IAsBlB,CAAC;IApBA,eAAe;QACd,OAAO;YACN,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,EAAE;SACT,CAAA;IACF,CAAC;IAED,cAAc,CAAC,IAAe;QAC7B,KAAK,IAAI,CAAA;QACT,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,IAAgB;QACtB,IAAI,IAAI,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;YAC7B,mBAAmB,CAAC,IAAI,CAAC,CAAA;YACzB,OAAO,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA;QAC9D,CAAC;QAED,OAAO,IAAI,CAAA;IACZ,CAAC;CACD"}
@@ -2,4 +2,5 @@ export * from './USyncDeviceProtocol.js';
2
2
  export * from './USyncContactProtocol.js';
3
3
  export * from './USyncStatusProtocol.js';
4
4
  export * from './USyncDisappearingModeProtocol.js';
5
+ export * from './USyncUsernameProtocol.js';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/WAUSync/Protocols/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iCAAiC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/WAUSync/Protocols/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yBAAyB,CAAA"}
@@ -2,4 +2,5 @@ export * from './USyncDeviceProtocol.js';
2
2
  export * from './USyncContactProtocol.js';
3
3
  export * from './USyncStatusProtocol.js';
4
4
  export * from './USyncDisappearingModeProtocol.js';
5
+ export * from './USyncUsernameProtocol.js';
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/WAUSync/Protocols/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iCAAiC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/WAUSync/Protocols/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yBAAyB,CAAA"}
@@ -25,5 +25,6 @@ export declare class USyncQuery {
25
25
  withDisappearingModeProtocol(): this;
26
26
  withBotProfileProtocol(): this;
27
27
  withLIDProtocol(): this;
28
+ withUsernameProtocol(): this;
28
29
  }
29
30
  //# sourceMappingURL=USyncQuery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"USyncQuery.d.ts","sourceRoot":"","sources":["../../src/WAUSync/USyncQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,KAAK,UAAU,EAAsB,MAAM,aAAa,CAAA;AASjE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,MAAM,MAAM,oBAAoB,GAAG;IAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AAE9E,MAAM,MAAM,gBAAgB,GAAG;IAC9B,IAAI,EAAE,oBAAoB,EAAE,CAAA;IAC5B,QAAQ,EAAE,oBAAoB,EAAE,CAAA;CAChC,CAAA;AAED,qBAAa,UAAU;IACtB,SAAS,EAAE,kBAAkB,EAAE,CAAA;IAC/B,KAAK,EAAE,SAAS,EAAE,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;;IASZ,QAAQ,CAAC,IAAI,EAAE,MAAM;IAKrB,WAAW,CAAC,OAAO,EAAE,MAAM;IAK3B,QAAQ,CAAC,IAAI,EAAE,SAAS;IAKxB,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS;IAwDnF,kBAAkB;IAKlB,mBAAmB;IAKnB,kBAAkB;IAKlB,4BAA4B;IAK5B,sBAAsB;IAKtB,eAAe;CAIf"}
1
+ {"version":3,"file":"USyncQuery.d.ts","sourceRoot":"","sources":["../../src/WAUSync/USyncQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,KAAK,UAAU,EAAsB,MAAM,aAAa,CAAA;AAUjE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,MAAM,MAAM,oBAAoB,GAAG;IAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AAE9E,MAAM,MAAM,gBAAgB,GAAG;IAC9B,IAAI,EAAE,oBAAoB,EAAE,CAAA;IAC5B,QAAQ,EAAE,oBAAoB,EAAE,CAAA;CAChC,CAAA;AAED,qBAAa,UAAU;IACtB,SAAS,EAAE,kBAAkB,EAAE,CAAA;IAC/B,KAAK,EAAE,SAAS,EAAE,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;;IASZ,QAAQ,CAAC,IAAI,EAAE,MAAM;IAKrB,WAAW,CAAC,OAAO,EAAE,MAAM;IAK3B,QAAQ,CAAC,IAAI,EAAE,SAAS;IAKxB,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS;IAwDnF,kBAAkB;IAKlB,mBAAmB;IAKnB,kBAAkB;IAKlB,4BAA4B;IAK5B,sBAAsB;IAKtB,eAAe;IAKf,oBAAoB;CAIpB"}
@@ -1,7 +1,7 @@
1
1
  import { getBinaryNodeChild } from '../WABinary/index.js';
2
2
  import { USyncBotProfileProtocol } from './Protocols/UsyncBotProfileProtocol.js';
3
3
  import { USyncLIDProtocol } from './Protocols/UsyncLIDProtocol.js';
4
- import { USyncContactProtocol, USyncDeviceProtocol, USyncDisappearingModeProtocol, USyncStatusProtocol } from './Protocols/index.js';
4
+ import { USyncContactProtocol, USyncDeviceProtocol, USyncDisappearingModeProtocol, USyncStatusProtocol, USyncUsernameProtocol } from './Protocols/index.js';
5
5
  import { USyncUser } from './USyncUser.js';
6
6
  export class USyncQuery {
7
7
  constructor() {
@@ -90,5 +90,9 @@ export class USyncQuery {
90
90
  this.protocols.push(new USyncLIDProtocol());
91
91
  return this;
92
92
  }
93
+ withUsernameProtocol() {
94
+ this.protocols.push(new USyncUsernameProtocol());
95
+ return this;
96
+ }
93
97
  }
94
98
  //# sourceMappingURL=USyncQuery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"USyncQuery.js","sourceRoot":"","sources":["../../src/WAUSync/USyncQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAA;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,EACN,oBAAoB,EACpB,mBAAmB,EACnB,6BAA6B,EAC7B,mBAAmB,EACnB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AASvC,MAAM,OAAO,UAAU;IAMtB;QACC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;QACnB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;QACf,IAAI,CAAC,OAAO,GAAG,aAAa,CAAA;QAC5B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAA;IACpB,CAAC;IAED,QAAQ,CAAC,IAAY;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,WAAW,CAAC,OAAe;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,QAAQ,CAAC,IAAe;QACvB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,qBAAqB,CAAC,MAA8B;QACnD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC/C,OAAM;QACP,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CACrC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;QACxC,CAAC,CAAC,CACF,CAAA;QAED,MAAM,WAAW,GAAqB;YACrC,8BAA8B;YAC9B,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,EAAE;SACZ,CAAA;QAED,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAErD,6CAA6C;QAC7C,sDAAsD;QACtD,4DAA4D;QAE5D,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAE9E,IAAI,QAAQ,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1D,WAAW,CAAC,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAA2B,EAAE,IAAI,EAAE,EAAE;gBAChF,MAAM,EAAE,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAA;gBAC1B,IAAI,EAAE,EAAE,CAAC;oBACR,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;wBACxC,CAAC,CAAC,MAAM,CAAC,WAAW,CAClB,IAAI,CAAC,OAAO;6BACV,GAAG,CAAC,OAAO,CAAC,EAAE;4BACd,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAA;4BAC5B,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;4BACpC,IAAI,MAAM,EAAE,CAAC;gCACZ,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;4BACnC,CAAC;iCAAM,CAAC;gCACP,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;4BACxB,CAAC;wBACF,CAAC,CAAC;6BACD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAwB,CACtD;wBACF,CAAC,CAAC,EAAE,CAAA;oBACL,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;gBAC1B,CAAC;gBAED,OAAO,GAAG,CAAA;YACX,CAAC,EAAE,EAAE,CAAC,CAAA;QACP,CAAC;QAED,2BAA2B;QAC3B,iEAAiE;QACjE,OAAO,WAAW,CAAA;IACnB,CAAC;IAED,kBAAkB;QACjB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAA;QAC9C,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,mBAAmB;QAClB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAA;QAC/C,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,kBAAkB;QACjB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAA;QAC9C,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,4BAA4B;QAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,6BAA6B,EAAE,CAAC,CAAA;QACxD,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,sBAAsB;QACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,uBAAuB,EAAE,CAAC,CAAA;QAClD,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,eAAe;QACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAA;QAC3C,OAAO,IAAI,CAAA;IACZ,CAAC;CACD"}
1
+ {"version":3,"file":"USyncQuery.js","sourceRoot":"","sources":["../../src/WAUSync/USyncQuery.ts"],"names":[],"mappings":"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"}
@@ -2,11 +2,15 @@ export declare class USyncUser {
2
2
  id?: string;
3
3
  lid?: string;
4
4
  phone?: string;
5
+ username?: string;
6
+ usernameKey?: string;
5
7
  type?: string;
6
8
  personaId?: string;
7
9
  withId(id: string): this;
8
10
  withLid(lid: string): this;
9
11
  withPhone(phone: string): this;
12
+ withUsername(username: string): this;
13
+ withUsernameKey(usernameKey: string): this;
10
14
  withType(type: string): this;
11
15
  withPersonaId(personaId: string): this;
12
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"USyncUser.d.ts","sourceRoot":"","sources":["../../src/WAUSync/USyncUser.ts"],"names":[],"mappings":"AAAA,qBAAa,SAAS;IACrB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,MAAM,CAAC,EAAE,EAAE,MAAM;IAKjB,OAAO,CAAC,GAAG,EAAE,MAAM;IAKnB,SAAS,CAAC,KAAK,EAAE,MAAM;IAKvB,QAAQ,CAAC,IAAI,EAAE,MAAM;IAKrB,aAAa,CAAC,SAAS,EAAE,MAAM;CAI/B"}
1
+ {"version":3,"file":"USyncUser.d.ts","sourceRoot":"","sources":["../../src/WAUSync/USyncUser.ts"],"names":[],"mappings":"AAAA,qBAAa,SAAS;IACrB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,MAAM,CAAC,EAAE,EAAE,MAAM;IAKjB,OAAO,CAAC,GAAG,EAAE,MAAM;IAKnB,SAAS,CAAC,KAAK,EAAE,MAAM;IAKvB,YAAY,CAAC,QAAQ,EAAE,MAAM;IAK7B,eAAe,CAAC,WAAW,EAAE,MAAM;IAKnC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAKrB,aAAa,CAAC,SAAS,EAAE,MAAM;CAI/B"}
@@ -11,6 +11,14 @@ export class USyncUser {
11
11
  this.phone = phone;
12
12
  return this;
13
13
  }
14
+ withUsername(username) {
15
+ this.username = username;
16
+ return this;
17
+ }
18
+ withUsernameKey(usernameKey) {
19
+ this.usernameKey = usernameKey;
20
+ return this;
21
+ }
14
22
  withType(type) {
15
23
  this.type = type;
16
24
  return this;
@@ -1 +1 @@
1
- {"version":3,"file":"USyncUser.js","sourceRoot":"","sources":["../../src/WAUSync/USyncUser.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,SAAS;IAOrB,MAAM,CAAC,EAAU;QAChB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;QACZ,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,OAAO,CAAC,GAAW;QAClB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,SAAS,CAAC,KAAa;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,QAAQ,CAAC,IAAY;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,aAAa,CAAC,SAAiB;QAC9B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,OAAO,IAAI,CAAA;IACZ,CAAC;CACD"}
1
+ {"version":3,"file":"USyncUser.js","sourceRoot":"","sources":["../../src/WAUSync/USyncUser.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,SAAS;IASrB,MAAM,CAAC,EAAU;QAChB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;QACZ,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,OAAO,CAAC,GAAW;QAClB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,SAAS,CAAC,KAAa;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,YAAY,CAAC,QAAgB;QAC5B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,eAAe,CAAC,WAAmB;QAClC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,QAAQ,CAAC,IAAY;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,aAAa,CAAC,SAAiB;QAC9B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,OAAO,IAAI,CAAA;IACZ,CAAC;CACD"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@twsxtd/baileys",
3
3
  "type": "module",
4
- "version": "7.0.0-rc.9.commit.7a91cac1d4ec",
4
+ "version": "7.0.0-rc.9.commit.8d1e795328c7",
5
5
  "description": "A WebSockets library for interacting with WhatsApp Web",
6
6
  "keywords": [
7
7
  "whatsapp",
@@ -45,11 +45,12 @@
45
45
  "@hapi/boom": "^9.1.3",
46
46
  "async-mutex": "^0.5.0",
47
47
  "libsignal": "git+https://github.com/whiskeysockets/libsignal-node",
48
- "music-metadata": "^11.7.0",
48
+ "lru-cache": "^11.1.0",
49
+ "music-metadata": "11.12.1",
49
50
  "p-queue": "^9.0.0",
50
51
  "pino": "^9.6",
51
52
  "protobufjs": "^7.2.4",
52
- "whatsapp-rust-bridge": "0.5.2",
53
+ "whatsapp-rust-bridge": "0.5.3",
53
54
  "ws": "^8.13.0"
54
55
  },
55
56
  "devDependencies": {
@@ -72,6 +73,7 @@
72
73
  "jiti": "^2.4.2",
73
74
  "json": "^11.0.0",
74
75
  "link-preview-js": "^3.0.0",
76
+ "lru-cache": "^11.1.0",
75
77
  "open": "^8.4.2",
76
78
  "pino-pretty": "^13.1.1",
77
79
  "prettier": "^3.5.3",