@badzz88/baileys 8.4.9 → 8.5.1

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 (154) hide show
  1. package/README.md +1 -1
  2. package/WAProto/WAProto.proto +6 -347
  3. package/WAProto/fix-imports.js +85 -86
  4. package/WAProto/index.d.ts +25 -4913
  5. package/WAProto/index.js +93 -14069
  6. package/{src → lib}/Defaults/index.js +2 -13
  7. package/{src → lib}/Signal/Group/group_cipher.js +5 -5
  8. package/{src → lib}/Signal/Group/keyhelper.js +4 -4
  9. package/{src → lib}/Signal/Group/sender-chain-key.js +2 -2
  10. package/{src → lib}/Signal/Group/sender-key-distribution-message.js +1 -1
  11. package/{src → lib}/Signal/Group/sender-key-message.js +3 -3
  12. package/{src → lib}/Signal/Group/sender-key-record.js +1 -1
  13. package/{src → lib}/Signal/Group/sender-message-key.js +2 -2
  14. package/{src → lib}/Signal/libsignal.js +26 -6
  15. package/{src → lib}/Socket/chats.js +58 -616
  16. package/{src → lib}/Socket/communities.js +28 -59
  17. package/{src → lib}/Socket/graphql.js +103 -362
  18. package/{src → lib}/Socket/groups.js +29 -77
  19. package/{src → lib}/Socket/index.js +5 -3
  20. package/{src → lib}/Socket/interactive-handler.js +60 -117
  21. package/{src → lib}/Socket/interop.js +19 -36
  22. package/lib/Socket/luxu.js +387 -0
  23. package/{src → lib}/Socket/managed-account.js +27 -58
  24. package/{src → lib}/Socket/messages-recv.js +144 -715
  25. package/{src → lib}/Socket/messages-send.js +102 -412
  26. package/lib/Socket/mex.js +60 -0
  27. package/{src → lib}/Socket/newsletter.js +23 -266
  28. package/{src → lib}/Socket/privacy.js +38 -41
  29. package/{src → lib}/Socket/registration.js +106 -113
  30. package/{src → lib}/Socket/socket.js +101 -88
  31. package/{src → lib}/Socket/text-router.js +17 -1
  32. package/lib/Socket/username.js +243 -0
  33. package/lib/Store/keyed-db.js +108 -0
  34. package/{src → lib}/Store/make-in-memory-store.js +104 -6
  35. package/lib/Types/Mex.js +112 -0
  36. package/{src → lib}/Types/Newsletter.js +41 -72
  37. package/{src → lib}/Types/index.js +1 -0
  38. package/{src → lib}/Utils/chat-utils.js +9 -73
  39. package/lib/Utils/command-loader.d.ts +31 -0
  40. package/lib/Utils/command-loader.js +100 -0
  41. package/lib/Utils/companion-reg-client-utils.js +42 -0
  42. package/lib/Utils/crypto.js +155 -0
  43. package/lib/Utils/curve25519-js.js +275 -0
  44. package/{src → lib}/Utils/decode-wa-message.js +36 -284
  45. package/{src → lib}/Utils/event-buffer.js +27 -6
  46. package/{src → lib}/Utils/generics.js +37 -114
  47. package/{src → lib}/Utils/index.js +5 -1
  48. package/lib/Utils/lt-hash.js +39 -0
  49. package/{src → lib}/Utils/message-retry-manager.js +39 -0
  50. package/{src → lib}/Utils/messages-media.js +58 -105
  51. package/{src → lib}/Utils/messages.js +529 -115
  52. package/lib/Utils/meta-ai-msmsg.js +262 -0
  53. package/lib/Utils/native-bridge.js +82 -0
  54. package/{src → lib}/Utils/noise-handler.js +15 -13
  55. package/{src → lib}/Utils/process-message.js +55 -54
  56. package/{src → lib}/Utils/reporting-utils.js +2 -2
  57. package/lib/Utils/session-pool.d.ts +16 -0
  58. package/lib/Utils/session-pool.js +94 -0
  59. package/{src → lib}/Utils/signal.js +51 -19
  60. package/{src → lib}/Utils/stanza-ack.js +2 -36
  61. package/lib/Utils/sticker.d.ts +17 -0
  62. package/lib/Utils/sticker.js +145 -0
  63. package/{src → lib}/Utils/tc-token-utils.js +1 -1
  64. package/{src → lib}/Utils/validate-connection.js +11 -40
  65. package/lib/Utils/view-once-cache.d.ts +9 -0
  66. package/lib/Utils/view-once-cache.js +79 -0
  67. package/{src → lib}/WABinary/decode.js +4 -38
  68. package/lib/WABinary/encode.js +228 -0
  69. package/{src → lib}/WABinary/generic-utils.js +93 -1
  70. package/{src → lib}/WABinary/jid-utils.js +3 -16
  71. package/{src → lib}/WAM/encode.js +1 -1
  72. package/lib/WAUSync/Protocols/USyncBusinessProtocol.js +43 -0
  73. package/{src → lib}/WAUSync/Protocols/USyncContactProtocol.js +1 -7
  74. package/{src → lib}/WAUSync/Protocols/USyncDeviceProtocol.js +5 -13
  75. package/{src → lib}/WAUSync/Protocols/USyncDisappearingModeProtocol.js +4 -1
  76. package/{src → lib}/WAUSync/Protocols/USyncFeatureProtocol.js +2 -17
  77. package/{src → lib}/WAUSync/Protocols/USyncStatusProtocol.js +2 -7
  78. package/{src → lib}/WAUSync/Protocols/USyncUsernameProtocol.js +1 -2
  79. package/{src → lib}/WAUSync/Protocols/index.js +0 -1
  80. package/{src → lib}/WAUSync/USyncQuery.js +6 -77
  81. package/{src → lib}/WAUSync/USyncUser.js +8 -16
  82. package/{src → lib}/WAUSync/index.js +0 -1
  83. package/{src → lib}/antiban.js +266 -355
  84. package/{src → lib}/index.js +2 -2
  85. package/package.json +19 -16
  86. package/WAProto/fix-import.js +0 -38
  87. package/src/Socket/mex.js +0 -47
  88. package/src/Socket/username.js +0 -234
  89. package/src/Utils/crypto.js +0 -125
  90. package/src/Utils/lt-hash.js +0 -10
  91. package/src/Utils/message-inspect.js +0 -400
  92. package/src/Utils/meta-ai-msmsg.js +0 -133
  93. package/src/WABinary/encode.js +0 -58
  94. package/src/WAUSync/Protocols/USyncBusinessProtocol.js +0 -100
  95. package/src/WAUSync/USyncBackoff.js +0 -31
  96. /package/{src → lib}/Defaults/phonenumber-mcc.json +0 -0
  97. /package/{src → lib}/Signal/Group/ciphertext-message.js +0 -0
  98. /package/{src → lib}/Signal/Group/group-session-builder.js +0 -0
  99. /package/{src → lib}/Signal/Group/index.js +0 -0
  100. /package/{src → lib}/Signal/Group/sender-key-name.js +0 -0
  101. /package/{src → lib}/Signal/Group/sender-key-state.js +0 -0
  102. /package/{src → lib}/Signal/lid-mapping.js +0 -0
  103. /package/{src → lib}/Socket/Client/index.js +0 -0
  104. /package/{src → lib}/Socket/Client/types.js +0 -0
  105. /package/{src → lib}/Socket/Client/websocket.js +0 -0
  106. /package/{src → lib}/Socket/aigroups.js +0 -0
  107. /package/{src → lib}/Socket/business.js +0 -0
  108. /package/{src → lib}/Store/index.js +0 -0
  109. /package/{src → lib}/Store/make-cache-manager-store.js +0 -0
  110. /package/{src → lib}/Store/make-ordered-dictionary.js +0 -0
  111. /package/{src → lib}/Store/object-repository.js +0 -0
  112. /package/{src → lib}/Types/Auth.js +0 -0
  113. /package/{src → lib}/Types/Bussines.js +0 -0
  114. /package/{src → lib}/Types/Call.js +0 -0
  115. /package/{src → lib}/Types/Chat.js +0 -0
  116. /package/{src → lib}/Types/Contact.js +0 -0
  117. /package/{src → lib}/Types/Events.js +0 -0
  118. /package/{src → lib}/Types/GroupMetadata.js +0 -0
  119. /package/{src → lib}/Types/Label.js +0 -0
  120. /package/{src → lib}/Types/LabelAssociation.js +0 -0
  121. /package/{src → lib}/Types/Message.js +0 -0
  122. /package/{src → lib}/Types/Product.js +0 -0
  123. /package/{src → lib}/Types/Signal.js +0 -0
  124. /package/{src → lib}/Types/Socket.js +0 -0
  125. /package/{src → lib}/Types/State.js +0 -0
  126. /package/{src → lib}/Types/USync.js +0 -0
  127. /package/{src → lib}/Utils/auth-utils.js +0 -0
  128. /package/{src → lib}/Utils/browser-utils.js +0 -0
  129. /package/{src → lib}/Utils/business.js +0 -0
  130. /package/{src → lib}/Utils/consumer-application.js +0 -0
  131. /package/{src → lib}/Utils/group-history.js +0 -0
  132. /package/{src → lib}/Utils/history.js +0 -0
  133. /package/{src → lib}/Utils/identity-change-handler.js +0 -0
  134. /package/{src → lib}/Utils/jid-display-normalization.js +0 -0
  135. /package/{src → lib}/Utils/link-preview.js +0 -0
  136. /package/{src → lib}/Utils/logger.js +0 -0
  137. /package/{src → lib}/Utils/make-mutex.js +0 -0
  138. /package/{src → lib}/Utils/message-composer.js +0 -0
  139. /package/{src → lib}/Utils/offline-node-processor.js +0 -0
  140. /package/{src → lib}/Utils/pre-key-manager.js +0 -0
  141. /package/{src → lib}/Utils/sync-action-utils.js +0 -0
  142. /package/{src → lib}/Utils/use-multi-file-auth-state.js +0 -0
  143. /package/{src → lib}/Utils/voip-rekey.js +0 -0
  144. /package/{src → lib}/WABinary/constants.js +0 -0
  145. /package/{src → lib}/WABinary/index.js +0 -0
  146. /package/{src → lib}/WABinary/types.js +0 -0
  147. /package/{src → lib}/WAM/BinaryInfo.js +0 -0
  148. /package/{src → lib}/WAM/constants.js +0 -0
  149. /package/{src → lib}/WAM/index.js +0 -0
  150. /package/{src → lib}/WAUSync/Protocols/USyncBotProfileProtocol.js +0 -0
  151. /package/{src → lib}/WAUSync/Protocols/USyncLIDProtocol.js +0 -0
  152. /package/{src → lib}/WAUSync/Protocols/USyncPictureProtocol.js +0 -0
  153. /package/{src → lib}/WAUSync/Protocols/USyncSidelistProtocol.js +0 -0
  154. /package/{src → lib}/WAUSync/Protocols/USyncTextStatusProtocol.js +0 -0
@@ -382,12 +382,25 @@ const makeCommunitiesSocket = config => {
382
382
  )
383
383
  return results.attrs.from
384
384
  }),
385
+ communityGetInviteInfo: async code => {
386
+ const results = await communityQuery('@g.us', 'get', [{ tag: 'invite', attrs: { code } }])
387
+ return (0, exports.extractCommunityMetadata)(results)
388
+ },
389
+ communityToggleEphemeral: async (jid, ephemeralExpiration) => {
390
+ const content = ephemeralExpiration
391
+ ? { tag: 'ephemeral', attrs: { expiration: ephemeralExpiration.toString() } }
392
+ : { tag: 'not_ephemeral', attrs: {} }
393
+ await communityQuery(jid, 'set', [content])
394
+ },
395
+ communitySettingUpdate: async (jid, setting) => {
396
+ await communityQuery(jid, 'set', [{ tag: setting, attrs: {} }])
397
+ },
385
398
  communityMemberAddMode: async (jid, mode) => {
386
399
  await communityQuery(jid, 'set', [{ tag: 'member_add_mode', attrs: {}, content: mode }])
387
400
  },
388
401
  communityJoinApprovalMode: async (jid, mode) => {
389
402
  await communityQuery(jid, 'set', [
390
- { tag: 'membership_approval_mode', attrs: {}, content: [{ tag: 'group_join', attrs: { state: mode } }] }
403
+ { tag: 'membership_approval_mode', attrs: {}, content: [{ tag: 'community_join', attrs: { state: mode } }] }
391
404
  ])
392
405
  },
393
406
  /**
@@ -445,40 +458,30 @@ const makeCommunitiesSocket = config => {
445
458
  * Fetch total participant count of a community via MEX.
446
459
  * @param {string} jid - Community JID
447
460
  */
448
- communityParticipantCount: async jid => {
449
- const result = await mexQuery(
461
+ communityParticipantCount: jid =>
462
+ mexQuery(
450
463
  { group_input: { group_id: jid } },
451
464
  COMMUNITY_MEX_QUERY_IDS.QUERY_PARTICIPANT_COUNT,
452
465
  'xwa2_group_query_by_id'
453
- )
454
- return result?.participant_count ?? result?.participantCount ?? result?.count ?? result
455
- },
466
+ ),
456
467
 
457
468
  /**
458
469
  * Fetch subgroups of a community via MEX (includes hidden_group, join approval state, etc.)
459
470
  * @param {string} jid - Community JID
460
471
  */
461
- communitySubgroupsMex: async jid => {
462
- const result = await mexQuery(
463
- { group_input: { group_id: jid } },
464
- COMMUNITY_MEX_QUERY_IDS.QUERY_SUBGROUPS,
465
- 'xwa2_group_query_by_id'
466
- )
467
- return result?.subgroups ?? result?.linked_groups ?? result?.sub_groups ?? result
468
- },
472
+ communitySubgroupsMex: jid =>
473
+ mexQuery({ group_input: { group_id: jid } }, COMMUNITY_MEX_QUERY_IDS.QUERY_SUBGROUPS, 'xwa2_group_query_by_id'),
469
474
 
470
475
  /**
471
476
  * Fetch participant count of a specific subgroup within a community.
472
477
  * @param {string} subgroupJid - Subgroup JID
473
478
  */
474
- communitySubgroupParticipantCount: async subgroupJid => {
475
- const result = await mexQuery(
479
+ communitySubgroupParticipantCount: subgroupJid =>
480
+ mexQuery(
476
481
  { group_input: { group_id: subgroupJid } },
477
482
  COMMUNITY_MEX_QUERY_IDS.QUERY_SUBGROUP_PARTICIPANT_COUNT,
478
483
  'xwa2_group_query_by_id'
479
- )
480
- return result?.participant_count ?? result?.participantCount ?? result?.count ?? result
481
- },
484
+ ),
482
485
 
483
486
  /**
484
487
  * Transfer community ownership to a new owner via MEX.
@@ -486,17 +489,15 @@ const makeCommunitiesSocket = config => {
486
489
  * @param {string} communityJid - Community JID
487
490
  * @param {string} newOwnerJid - JID of the new owner
488
491
  */
489
- communityTransferOwnershipMex: async (communityJid, newOwnerJid) => {
490
- const result = await mexQuery(
492
+ communityTransferOwnershipMex: (communityJid, newOwnerJid) =>
493
+ mexQuery(
491
494
  {
492
495
  group_id: communityJid,
493
496
  role_updates: [{ user_jid: newOwnerJid, new_role: 'SUPERADMIN_MEMBER' }]
494
497
  },
495
498
  COMMUNITY_MEX_QUERY_IDS.UPDATE_OWNER,
496
499
  'xwa2_community_update_owner'
497
- )
498
- return result?.status === 'ok' || !!result?.success || !!result
499
- },
500
+ ),
500
501
 
501
502
  COMMUNITY_MEX_QUERY_IDS
502
503
  }
@@ -516,12 +517,6 @@ const extractCommunityMetadata = result => {
516
517
  : (0, WABinary_1.jidEncode)(community.attrs.id || '', 'g.us')
517
518
  const eph = (0, WABinary_1.getBinaryNodeChild)(community, 'ephemeral')?.attrs.expiration
518
519
  const memberAddMode = (0, WABinary_1.getBinaryNodeChildString)(community, 'member_add_mode') === 'all_member_add'
519
- const linkedGroupsNode = (0, WABinary_1.getBinaryNodeChild)(community, 'linked_groups')
520
- const linkLimit = community.attrs.parent_group_link_limit
521
- ? +community.attrs.parent_group_link_limit
522
- : linkedGroupsNode?.attrs?.parent_group_link_limit
523
- ? +linkedGroupsNode.attrs.parent_group_link_limit
524
- : undefined
525
520
  const metadata = {
526
521
  id: communityId,
527
522
  subject: community.attrs.subject || '',
@@ -541,39 +536,13 @@ const extractCommunityMetadata = result => {
541
536
  memberAddMode,
542
537
  participants: (0, WABinary_1.getBinaryNodeChildren)(community, 'participant').map(({ attrs }) => {
543
538
  return {
539
+ // TODO: IMPLEMENT THE PN/LID FIELDS HERE!!
544
540
  id: attrs.jid,
545
- admin: attrs.type || null,
546
- ...(attrs.lid ? { lid: attrs.lid } : {}),
547
- ...(attrs.pn ? { pn: attrs.pn } : {})
541
+ admin: attrs.type || null
548
542
  }
549
543
  }),
550
544
  ephemeralDuration: eph ? +eph : undefined,
551
- addressingMode: (0, WABinary_1.getBinaryNodeChildString)(community, 'addressing_mode'),
552
- linkLimit,
553
- suspendAppealStatus: community.attrs.suspend_appeal_status || community.attrs.appeal_status || undefined,
554
- allowMemberSuggestM3:
555
- community.attrs.parent_group_allow_member_suggest_existing_m3 === 'true'
556
- ? true
557
- : community.attrs.parent_group_allow_member_suggest_existing_m3 === 'false'
558
- ? false
559
- : undefined,
560
- allowMemberSuggestM3ForAdmin:
561
- community.attrs.parent_group_allow_member_suggest_existing_m3_for_admin === 'true'
562
- ? true
563
- : community.attrs.parent_group_allow_member_suggest_existing_m3_for_admin === 'false'
564
- ? false
565
- : undefined,
566
- subgroupPollInterval: community.attrs.improve_subgroup_activation_subgroup_poll_interval
567
- ? Number(community.attrs.improve_subgroup_activation_subgroup_poll_interval)
568
- : undefined,
569
- isGeneralSubgroup:
570
- community.attrs.general_subgroup != null
571
- ? community.attrs.general_subgroup === 'true' || community.attrs.general_subgroup === true
572
- : undefined,
573
- isHiddenSubgroup:
574
- community.attrs.hidden_subgroup != null
575
- ? community.attrs.hidden_subgroup === 'true' || community.attrs.hidden_subgroup === true
576
- : undefined
545
+ addressingMode: (0, WABinary_1.getBinaryNodeChildString)(community, 'addressing_mode')
577
546
  }
578
547
  return metadata
579
548
  }