@alannxd/baileys 6.0.6 → 6.0.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.
Files changed (220) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +341 -286
  3. package/WAProto/GenerateStatics.sh +3 -0
  4. package/WAProto/WAProto.proto +6902 -0
  5. package/WAProto/fix-imports.js +85 -0
  6. package/WAProto/index.d.ts +79257 -0
  7. package/WAProto/index.js +205861 -60565
  8. package/engine-requirements.js +1 -1
  9. package/lib/Defaults/index.js +119 -136
  10. package/lib/Signal/Group/ciphertext-message.js +2 -5
  11. package/lib/Signal/Group/group-session-builder.js +7 -41
  12. package/lib/Signal/Group/group_cipher.js +37 -51
  13. package/lib/Signal/Group/index.js +12 -57
  14. package/lib/Signal/Group/keyhelper.js +7 -44
  15. package/lib/Signal/Group/sender-chain-key.js +7 -15
  16. package/lib/Signal/Group/sender-key-distribution-message.js +8 -11
  17. package/lib/Signal/Group/sender-key-message.js +9 -12
  18. package/lib/Signal/Group/sender-key-name.js +2 -5
  19. package/lib/Signal/Group/sender-key-record.js +9 -21
  20. package/lib/Signal/Group/sender-key-state.js +27 -42
  21. package/lib/Signal/Group/sender-message-key.js +4 -7
  22. package/lib/Signal/libsignal.js +347 -90
  23. package/lib/Signal/lid-mapping.js +277 -0
  24. package/lib/Socket/Client/index.js +3 -19
  25. package/lib/Socket/Client/types.js +11 -0
  26. package/lib/Socket/Client/websocket.js +54 -0
  27. package/lib/Socket/business.js +162 -43
  28. package/lib/Socket/chats.js +627 -427
  29. package/lib/Socket/communities.js +90 -80
  30. package/lib/Socket/groups.js +154 -161
  31. package/lib/Socket/index.js +11 -10
  32. package/lib/Socket/luxu.js +315 -469
  33. package/lib/Socket/messages-recv.js +1421 -615
  34. package/lib/Socket/messages-send.js +1150 -799
  35. package/lib/Socket/mex.js +42 -0
  36. package/lib/Socket/newsletter.js +152 -204
  37. package/lib/Socket/socket.js +544 -313
  38. package/lib/Store/index.js +10 -10
  39. package/lib/Store/keyed-db.js +108 -0
  40. package/lib/Store/make-cache-manager-store.js +43 -41
  41. package/lib/Store/make-in-memory-store.js +112 -341
  42. package/lib/Store/make-ordered-dictionary.js +14 -20
  43. package/lib/Store/object-repository.js +11 -6
  44. package/lib/Types/Auth.js +2 -2
  45. package/lib/Types/Bussines.js +2 -0
  46. package/lib/Types/Call.js +2 -2
  47. package/lib/Types/Chat.js +8 -4
  48. package/lib/Types/Contact.js +2 -2
  49. package/lib/Types/Events.js +2 -2
  50. package/lib/Types/GroupMetadata.js +2 -2
  51. package/lib/Types/Label.js +3 -5
  52. package/lib/Types/LabelAssociation.js +3 -5
  53. package/lib/Types/Message.js +11 -9
  54. package/lib/Types/Mex.js +37 -0
  55. package/lib/Types/Product.js +2 -2
  56. package/lib/Types/Signal.js +2 -2
  57. package/lib/Types/Socket.js +3 -2
  58. package/lib/Types/State.js +56 -2
  59. package/lib/Types/USync.js +2 -2
  60. package/lib/Types/index.js +15 -31
  61. package/lib/Utils/auth-utils.js +239 -143
  62. package/lib/Utils/browser-utils.js +48 -0
  63. package/lib/Utils/business.js +66 -69
  64. package/lib/Utils/chat-utils.js +396 -253
  65. package/lib/Utils/companion-reg-client-utils.js +35 -0
  66. package/lib/Utils/crypto.js +57 -90
  67. package/lib/Utils/decode-wa-message.js +236 -84
  68. package/lib/Utils/event-buffer.js +185 -77
  69. package/lib/Utils/generics.js +189 -209
  70. package/lib/Utils/history.js +93 -55
  71. package/lib/Utils/identity-change-handler.js +50 -0
  72. package/lib/Utils/index.js +23 -33
  73. package/lib/Utils/link-preview.js +16 -24
  74. package/lib/Utils/logger.js +3 -7
  75. package/lib/Utils/lt-hash.js +3 -46
  76. package/lib/Utils/make-mutex.js +24 -34
  77. package/lib/Utils/message-composer.js +273 -0
  78. package/lib/Utils/message-retry-manager.js +265 -0
  79. package/lib/Utils/messages-media.js +451 -482
  80. package/lib/Utils/messages.js +795 -369
  81. package/lib/Utils/noise-handler.js +145 -99
  82. package/lib/Utils/offline-node-processor.js +40 -0
  83. package/lib/Utils/pre-key-manager.js +106 -0
  84. package/lib/Utils/process-message.js +459 -150
  85. package/lib/Utils/reporting-utils.js +258 -0
  86. package/lib/Utils/signal.js +120 -72
  87. package/lib/Utils/stanza-ack.js +38 -0
  88. package/lib/Utils/sync-action-utils.js +49 -0
  89. package/lib/Utils/tc-token-utils.js +163 -0
  90. package/lib/Utils/use-multi-file-auth-state.js +29 -27
  91. package/lib/Utils/validate-connection.js +73 -99
  92. package/lib/WABinary/constants.js +1281 -20
  93. package/lib/WABinary/decode.js +52 -42
  94. package/lib/WABinary/encode.js +110 -155
  95. package/lib/WABinary/generic-utils.js +55 -49
  96. package/lib/WABinary/index.js +6 -21
  97. package/lib/WABinary/jid-utils.js +76 -40
  98. package/lib/WABinary/types.js +2 -2
  99. package/lib/WAM/BinaryInfo.js +2 -5
  100. package/lib/WAM/constants.js +19071 -11568
  101. package/lib/WAM/encode.js +17 -22
  102. package/lib/WAM/index.js +4 -19
  103. package/lib/WAUSync/Protocols/USyncContactProtocol.js +33 -13
  104. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +11 -14
  105. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +9 -12
  106. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +9 -13
  107. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +25 -0
  108. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +20 -22
  109. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +13 -8
  110. package/lib/WAUSync/Protocols/index.js +6 -20
  111. package/lib/WAUSync/USyncQuery.js +44 -35
  112. package/lib/WAUSync/USyncUser.js +10 -5
  113. package/lib/WAUSync/index.js +4 -19
  114. package/lib/index.js +13 -36
  115. package/package.json +85 -51
  116. package/WAProto/fix-import.js +0 -29
  117. package/lib/Defaults/baileys-version.json +0 -3
  118. package/lib/Defaults/index.d.ts +0 -53
  119. package/lib/Defaults/phonenumber-mcc.json +0 -223
  120. package/lib/Signal/Group/ciphertext-message.d.ts +0 -9
  121. package/lib/Signal/Group/group-session-builder.d.ts +0 -14
  122. package/lib/Signal/Group/group_cipher.d.ts +0 -17
  123. package/lib/Signal/Group/index.d.ts +0 -11
  124. package/lib/Signal/Group/keyhelper.d.ts +0 -10
  125. package/lib/Signal/Group/queue-job.d.ts +0 -1
  126. package/lib/Signal/Group/queue-job.js +0 -57
  127. package/lib/Signal/Group/sender-chain-key.d.ts +0 -13
  128. package/lib/Signal/Group/sender-key-distribution-message.d.ts +0 -16
  129. package/lib/Signal/Group/sender-key-message.d.ts +0 -18
  130. package/lib/Signal/Group/sender-key-name.d.ts +0 -17
  131. package/lib/Signal/Group/sender-key-record.d.ts +0 -30
  132. package/lib/Signal/Group/sender-key-state.d.ts +0 -38
  133. package/lib/Signal/Group/sender-message-key.d.ts +0 -11
  134. package/lib/Signal/libsignal.d.ts +0 -3
  135. package/lib/Socket/Client/abstract-socket-client.d.ts +0 -17
  136. package/lib/Socket/Client/abstract-socket-client.js +0 -13
  137. package/lib/Socket/Client/index.d.ts +0 -3
  138. package/lib/Socket/Client/mobile-socket-client.d.ts +0 -13
  139. package/lib/Socket/Client/mobile-socket-client.js +0 -65
  140. package/lib/Socket/Client/web-socket-client.d.ts +0 -12
  141. package/lib/Socket/Client/web-socket-client.js +0 -62
  142. package/lib/Socket/business.d.ts +0 -171
  143. package/lib/Socket/chats.d.ts +0 -267
  144. package/lib/Socket/communities.d.ts +0 -180
  145. package/lib/Socket/groups.d.ts +0 -115
  146. package/lib/Socket/index.d.ts +0 -173
  147. package/lib/Socket/luxu.d.ts +0 -266
  148. package/lib/Socket/messages-recv.d.ts +0 -161
  149. package/lib/Socket/messages-send.d.ts +0 -183
  150. package/lib/Socket/newsletter.d.ts +0 -134
  151. package/lib/Socket/registration.d.ts +0 -267
  152. package/lib/Socket/registration.js +0 -166
  153. package/lib/Socket/socket.d.ts +0 -44
  154. package/lib/Socket/usync.d.ts +0 -36
  155. package/lib/Socket/usync.js +0 -70
  156. package/lib/Store/index.d.ts +0 -3
  157. package/lib/Store/make-cache-manager-store.d.ts +0 -13
  158. package/lib/Store/make-in-memory-store.d.ts +0 -118
  159. package/lib/Store/make-ordered-dictionary.d.ts +0 -13
  160. package/lib/Store/object-repository.d.ts +0 -10
  161. package/lib/Types/Auth.d.ts +0 -110
  162. package/lib/Types/Call.d.ts +0 -13
  163. package/lib/Types/Chat.d.ts +0 -102
  164. package/lib/Types/Contact.d.ts +0 -19
  165. package/lib/Types/Events.d.ts +0 -157
  166. package/lib/Types/GroupMetadata.d.ts +0 -55
  167. package/lib/Types/Label.d.ts +0 -35
  168. package/lib/Types/LabelAssociation.d.ts +0 -29
  169. package/lib/Types/Message.d.ts +0 -273
  170. package/lib/Types/Newsletter.d.ts +0 -103
  171. package/lib/Types/Newsletter.js +0 -38
  172. package/lib/Types/Product.d.ts +0 -78
  173. package/lib/Types/Signal.d.ts +0 -57
  174. package/lib/Types/Socket.d.ts +0 -111
  175. package/lib/Types/State.d.ts +0 -27
  176. package/lib/Types/USync.d.ts +0 -25
  177. package/lib/Types/index.d.ts +0 -57
  178. package/lib/Utils/auth-utils.d.ts +0 -18
  179. package/lib/Utils/baileys-event-stream.d.ts +0 -16
  180. package/lib/Utils/baileys-event-stream.js +0 -63
  181. package/lib/Utils/business.d.ts +0 -22
  182. package/lib/Utils/chat-utils.d.ts +0 -71
  183. package/lib/Utils/crypto.d.ts +0 -41
  184. package/lib/Utils/decode-wa-message.d.ts +0 -19
  185. package/lib/Utils/event-buffer.d.ts +0 -35
  186. package/lib/Utils/generics.d.ts +0 -92
  187. package/lib/Utils/history.d.ts +0 -15
  188. package/lib/Utils/index.d.ts +0 -17
  189. package/lib/Utils/link-preview.d.ts +0 -21
  190. package/lib/Utils/logger.d.ts +0 -4
  191. package/lib/Utils/lt-hash.d.ts +0 -12
  192. package/lib/Utils/make-mutex.d.ts +0 -7
  193. package/lib/Utils/messages-media.d.ts +0 -116
  194. package/lib/Utils/messages.d.ts +0 -77
  195. package/lib/Utils/noise-handler.d.ts +0 -21
  196. package/lib/Utils/process-message.d.ts +0 -41
  197. package/lib/Utils/signal.d.ts +0 -32
  198. package/lib/Utils/use-multi-file-auth-state.d.ts +0 -13
  199. package/lib/Utils/validate-connection.d.ts +0 -11
  200. package/lib/WABinary/constants.d.ts +0 -30
  201. package/lib/WABinary/decode.d.ts +0 -7
  202. package/lib/WABinary/encode.d.ts +0 -3
  203. package/lib/WABinary/generic-utils.d.ts +0 -17
  204. package/lib/WABinary/index.d.ts +0 -5
  205. package/lib/WABinary/jid-utils.d.ts +0 -31
  206. package/lib/WABinary/types.d.ts +0 -18
  207. package/lib/WAM/BinaryInfo.d.ts +0 -17
  208. package/lib/WAM/constants.d.ts +0 -38
  209. package/lib/WAM/encode.d.ts +0 -3
  210. package/lib/WAM/index.d.ts +0 -3
  211. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +0 -9
  212. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +0 -22
  213. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +0 -12
  214. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +0 -12
  215. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +0 -25
  216. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +0 -8
  217. package/lib/WAUSync/Protocols/index.d.ts +0 -4
  218. package/lib/WAUSync/USyncQuery.d.ts +0 -28
  219. package/lib/WAUSync/USyncUser.d.ts +0 -12
  220. package/lib/index.d.ts +0 -12
@@ -1,38 +1,36 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getAdditionalNode = exports.getBinaryNodeFilter = exports.binaryNodeToString = exports.getBinaryNodeMessages = exports.reduceBinaryNodeToDictionary = exports.assertNodeErrorFree = exports.getBinaryNodeChildUInt = exports.getBinaryNodeChildString = exports.getBinaryNodeChildBuffer = exports.getBinaryNodeChild = exports.getAllBinaryNodeChildren = exports.getBinaryNodeChildren = void 0;
4
- const boom_1 = require("@hapi/boom");
5
- const WAProto_1 = require("../../WAProto");
6
- const Utils_1 = require("../Utils")
1
+ import { Boom } from '@hapi/boom'
2
+ import { proto } from '../../WAProto/index.js'
3
+ import { unixTimestampSeconds } from '../Utils/generics.js'
4
+
7
5
  // some extra useful utilities
8
- const getBinaryNodeChildren = (node, childTag) => {
6
+ export const getBinaryNodeChildren = (node, childTag) => {
9
7
  if (Array.isArray(node?.content)) {
10
8
  return node.content.filter(item => item.tag === childTag)
11
9
  }
12
10
  return []
13
11
  }
14
- exports.getBinaryNodeChildren = getBinaryNodeChildren;
15
- const getAllBinaryNodeChildren = ({ content }) => {
12
+
13
+ export const getAllBinaryNodeChildren = ({ content }) => {
16
14
  if (Array.isArray(content)) {
17
15
  return content
18
16
  }
19
17
  return []
20
18
  }
21
- exports.getAllBinaryNodeChildren = getAllBinaryNodeChildren;
22
- const getBinaryNodeChild = (node, childTag) => {
19
+
20
+ export const getBinaryNodeChild = (node, childTag) => {
23
21
  if (Array.isArray(node?.content)) {
24
22
  return node?.content.find(item => item.tag === childTag)
25
23
  }
26
24
  }
27
- exports.getBinaryNodeChild = getBinaryNodeChild;
28
- const getBinaryNodeChildBuffer = (node, childTag) => {
25
+
26
+ export const getBinaryNodeChildBuffer = (node, childTag) => {
29
27
  const child = getBinaryNodeChild(node, childTag)?.content
30
28
  if (Buffer.isBuffer(child) || child instanceof Uint8Array) {
31
29
  return child
32
30
  }
33
31
  }
34
- exports.getBinaryNodeChildBuffer = getBinaryNodeChildBuffer;
35
- const getBinaryNodeChildString = (node, childTag) => {
32
+
33
+ export const getBinaryNodeChildString = (node, childTag) => {
36
34
  const child = getBinaryNodeChild(node, childTag)?.content
37
35
  if (Buffer.isBuffer(child) || child instanceof Uint8Array) {
38
36
  return Buffer.from(child).toString('utf-8')
@@ -41,22 +39,22 @@ const getBinaryNodeChildString = (node, childTag) => {
41
39
  return child
42
40
  }
43
41
  }
44
- exports.getBinaryNodeChildString = getBinaryNodeChildString;
45
- const getBinaryNodeChildUInt = (node, childTag, length) => {
42
+
43
+ export const getBinaryNodeChildUInt = (node, childTag, length) => {
46
44
  const buff = getBinaryNodeChildBuffer(node, childTag)
47
45
  if (buff) {
48
46
  return bufferToUInt(buff, length)
49
47
  }
50
48
  }
51
- exports.getBinaryNodeChildUInt = getBinaryNodeChildUInt;
52
- const assertNodeErrorFree = (node) => {
49
+
50
+ export const assertNodeErrorFree = (node) => {
53
51
  const errNode = getBinaryNodeChild(node, 'error')
54
52
  if (errNode) {
55
- throw new boom_1.Boom(errNode.attrs.text || 'Unknown error', { data: +errNode.attrs.code })
53
+ throw new Boom(errNode.attrs.text || 'Unknown error', { data: +errNode.attrs.code })
56
54
  }
57
55
  }
58
- exports.assertNodeErrorFree = assertNodeErrorFree;
59
- const reduceBinaryNodeToDictionary = (node, tag) => {
56
+
57
+ export const reduceBinaryNodeToDictionary = (node, tag) => {
60
58
  const nodes = getBinaryNodeChildren(node, tag)
61
59
  const dict = nodes.reduce((dict, { attrs }) => {
62
60
  dict[attrs.name || attrs.config_code] = attrs.value || attrs.config_value
@@ -64,19 +62,19 @@ const reduceBinaryNodeToDictionary = (node, tag) => {
64
62
  }, {})
65
63
  return dict
66
64
  }
67
- exports.reduceBinaryNodeToDictionary = reduceBinaryNodeToDictionary;
68
- const getBinaryNodeMessages = ({ content }) => {
65
+
66
+ export const getBinaryNodeMessages = ({ content }) => {
69
67
  const msgs = []
70
68
  if (Array.isArray(content)) {
71
69
  for (const item of content) {
72
70
  if (item.tag === 'message') {
73
- msgs.push(WAProto_1.proto.WebMessageInfo.decode(item.content))
71
+ msgs.push(proto.WebMessageInfo.decode(item.content))
74
72
  }
75
73
  }
76
74
  }
77
75
  return msgs
78
76
  }
79
- exports.getBinaryNodeMessages = getBinaryNodeMessages;
77
+
80
78
  function bufferToUInt(e, t) {
81
79
  let a = 0;
82
80
  for (let i = 0; i < t; i++) {
@@ -84,8 +82,10 @@ function bufferToUInt(e, t) {
84
82
  }
85
83
  return a;
86
84
  }
87
- const tabs = (n) => '\t'.repeat(n);
88
- function binaryNodeToString(node, i = 0) {
85
+
86
+ const tabs = (n) => '\t'.repeat(n)
87
+
88
+ export function binaryNodeToString(node, i = 0) {
89
89
  if (!node) {
90
90
  return node;
91
91
  }
@@ -100,36 +100,38 @@ function binaryNodeToString(node, i = 0) {
100
100
  }
101
101
  const children = binaryNodeToString(node.content, i + 1);
102
102
  const tag = `<${node.tag} ${Object.entries(node.attrs || {})
103
- .filter(([, v]) => v !== undefined)
104
- .map(([k, v]) => `${k}='${v}'`)
105
- .join(' ')}`;
106
- const content = children ? `>\n${children}\n${tabs(i)}</${node.tag}>` : '/>';
103
+ .filter(([, v]) => v!== undefined)
104
+ .map(([k, v]) => `${k}='${v}'`)
105
+ .join(' ')}`;
106
+ const content = children? `>\n${children}\n${tabs(i)}</${node.tag}>` : '/>';
107
107
  return tag + content;
108
108
  }
109
- exports.binaryNodeToString = binaryNodeToString;
110
- const getBinaryNodeFilter = (node) => {
109
+
110
+ export const getBinaryNodeFilter = (node) => {
111
111
  if (!Array.isArray(node)) return false
112
-
113
- return node.some(item =>
112
+
113
+ return node.some(item =>
114
114
  ['native_flow'].includes(item?.content?.[0]?.content?.[0]?.tag) ||
115
115
  ['interactive', 'buttons', 'list'].includes(item?.content?.[0]?.tag) ||
116
116
  ['hsm', 'biz'].includes(item?.tag) ||
117
117
  ['bot'].includes(item?.tag) && item?.attrs?.biz_bot === '1'
118
118
  )
119
119
  }
120
- exports.getBinaryNodeFilter = getBinaryNodeFilter;
121
- const getAdditionalNode = (name) => {
120
+
121
+ export const getAdditionalNode = (name) => {
122
122
  if (name) name = name.toLowerCase()
123
- const ts = Utils_1.unixTimestampSeconds(new Date()) - 77980457
124
-
123
+ const ts = unixTimestampSeconds(new Date()) - 77980457
124
+
125
125
  const order_response_name = {
126
126
  review_and_pay: 'order_details',
127
127
  review_order: 'order_status',
128
+ order_status: 'order_status',
128
129
  payment_info: 'payment_info',
129
130
  payment_status: 'payment_status',
130
- payment_method: 'payment_method'
131
+ payment_method: 'payment_method',
132
+ catalog_message: 'catalog_message',
131
133
  }
132
-
134
+
133
135
  const flow_name = {
134
136
  cta_catalog: 'cta_catalog',
135
137
  mpm: 'mpm',
@@ -137,20 +139,21 @@ const getAdditionalNode = (name) => {
137
139
  view_catalog: 'automated_greeting_message_view_catalog',
138
140
  wa_pay_detail: 'wa_payment_transaction_details',
139
141
  send_location: 'send_location',
142
+ payment_key_info: 'payment_key_info'
140
143
  }
141
-
144
+
142
145
  if(order_response_name[name]) {
143
146
  return [{
144
147
  tag: 'biz',
145
- attrs: {
146
- native_flow_name: order_response_name[name]
148
+ attrs: {
149
+ native_flow_name: order_response_name[name]
147
150
  },
148
151
  content: []
149
152
  }]
150
153
  } else if (flow_name[name] || name === 'interactive' || name === 'buttons') {
151
154
  return [{
152
155
  tag: 'biz',
153
- attrs: {
156
+ attrs: {
154
157
  actual_actors: '2',
155
158
  host_storage: '2',
156
159
  privacy_mode_ts: `${ts}`
@@ -169,9 +172,9 @@ const getAdditionalNode = (name) => {
169
172
  },
170
173
  content: [{
171
174
  tag: 'native_flow',
172
- attrs: {
175
+ attrs: {
173
176
  v: '9',
174
- name: flow_name[name] ?? 'mixed',
177
+ name: flow_name[name]?? 'mixed',
175
178
  },
176
179
  content: []
177
180
  }]
@@ -195,4 +198,7 @@ const getAdditionalNode = (name) => {
195
198
  }]
196
199
  }
197
200
  }
198
- exports.getAdditionalNode = getAdditionalNode;
201
+ export const getBinaryFilteredBizBot = nodeContent => {
202
+ if (!Array.isArray(nodeContent)) return false
203
+ return nodeContent.some(b => ['bot'].includes(b?.tag) && b?.attrs?.biz_bot === '1')
204
+ }
@@ -1,21 +1,6 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./encode"), exports);
18
- __exportStar(require("./decode"), exports);
19
- __exportStar(require("./generic-utils"), exports);
20
- __exportStar(require("./jid-utils"), exports);
21
- __exportStar(require("./types"), exports);
1
+ export * from './encode.js';
2
+ export * from './decode.js';
3
+ export * from './generic-utils.js';
4
+ export * from './jid-utils.js';
5
+ export * from './types.js';
6
+ //# sourceMappingURL=index.js.map
@@ -1,16 +1,34 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.jidNormalizedUser = exports.isJidNewsLetter = exports.isJidStatusBroadcast = exports.isJidGroup = exports.isJidBroadcast = exports.isLidUser = exports.isJidUser = exports.areJidsSameUser = exports.jidDecode = exports.jidEncode = exports.STORIES_JID = exports.PSA_WID = exports.SERVER_JID = exports.OFFICIAL_BIZ_JID = exports.S_WHATSAPP_NET = void 0;
4
- exports.S_WHATSAPP_NET = '@s.whatsapp.net';
5
- exports.OFFICIAL_BIZ_JID = '16505361212@c.us';
6
- exports.SERVER_JID = 'server@c.us';
7
- exports.PSA_WID = '0@c.us';
8
- exports.STORIES_JID = 'status@broadcast';
9
- const jidEncode = (user, server, device, agent) => {
1
+ export const S_WHATSAPP_NET = '@s.whatsapp.net';
2
+ export const OFFICIAL_BIZ_JID = '16505361212@c.us';
3
+ export const SERVER_JID = 'server@c.us';
4
+ export const PSA_WID = '0@c.us';
5
+ export const STORIES_JID = 'status@broadcast';
6
+ export const META_AI_JID = '13135550002@c.us';
7
+ export var WAJIDDomains;
8
+ (function (WAJIDDomains) {
9
+ WAJIDDomains[WAJIDDomains["WHATSAPP"] = 0] = "WHATSAPP";
10
+ WAJIDDomains[WAJIDDomains["LID"] = 1] = "LID";
11
+ WAJIDDomains[WAJIDDomains["HOSTED"] = 128] = "HOSTED";
12
+ WAJIDDomains[WAJIDDomains["HOSTED_LID"] = 129] = "HOSTED_LID";
13
+ })(WAJIDDomains || (WAJIDDomains = {}));
14
+ export const getServerFromDomainType = (initialServer, domainType) => {
15
+ switch (domainType) {
16
+ case WAJIDDomains.LID:
17
+ return 'lid';
18
+ case WAJIDDomains.HOSTED:
19
+ return 'hosted';
20
+ case WAJIDDomains.HOSTED_LID:
21
+ return 'hosted.lid';
22
+ case WAJIDDomains.WHATSAPP:
23
+ default:
24
+ return initialServer;
25
+ }
26
+ };
27
+ export const jidEncode = (user, server, device, agent) => {
10
28
  return `${user || ''}${!!agent ? `_${agent}` : ''}${!!device ? `:${device}` : ''}@${server}`;
11
29
  };
12
- exports.jidEncode = jidEncode;
13
- const jidDecode = (jid) => {
30
+ export const jidDecode = (jid) => {
31
+ // todo: investigate how to implement hosted ids in this case
14
32
  const sepIdx = typeof jid === 'string' ? jid.indexOf('@') : -1;
15
33
  if (sepIdx < 0) {
16
34
  return undefined;
@@ -18,45 +36,63 @@ const jidDecode = (jid) => {
18
36
  const server = jid.slice(sepIdx + 1);
19
37
  const userCombined = jid.slice(0, sepIdx);
20
38
  const [userAgent, device] = userCombined.split(':');
21
- const user = userAgent.split('_')[0];
39
+ const [user, agent] = userAgent.split('_');
40
+ let domainType = WAJIDDomains.WHATSAPP;
41
+ if (server === 'lid') {
42
+ domainType = WAJIDDomains.LID;
43
+ }
44
+ else if (server === 'hosted') {
45
+ domainType = WAJIDDomains.HOSTED;
46
+ }
47
+ else if (server === 'hosted.lid') {
48
+ domainType = WAJIDDomains.HOSTED_LID;
49
+ }
50
+ else if (agent) {
51
+ domainType = parseInt(agent);
52
+ }
22
53
  return {
23
- server,
24
- user,
25
- domainType: server === 'lid' ? 1 : 0,
54
+ server: server,
55
+ user: user,
56
+ domainType,
26
57
  device: device ? +device : undefined
27
58
  };
28
59
  };
29
- exports.jidDecode = jidDecode;
30
- /** is the jid a user */
31
- const areJidsSameUser = (jid1, jid2) => {
32
- var _a, _b;
33
- return (((_a = (0, exports.jidDecode)(jid1)) === null || _a === void 0 ? void 0 : _a.user) === ((_b = (0, exports.jidDecode)(jid2)) === null || _b === void 0 ? void 0 : _b.user));
34
- };
35
- exports.areJidsSameUser = areJidsSameUser;
36
60
  /** is the jid a user */
37
- const isJidUser = (jid) => (jid === null || jid === void 0 ? void 0 : jid.endsWith('@s.whatsapp.net'));
38
- exports.isJidUser = isJidUser;
39
- /** is the jid a group */
40
- const isLidUser = (jid) => (jid === null || jid === void 0 ? void 0 : jid.endsWith('@lid'));
41
- exports.isLidUser = isLidUser;
61
+ export const areJidsSameUser = (jid1, jid2) => jidDecode(jid1)?.user === jidDecode(jid2)?.user;
62
+ /** is the jid Meta AI */
63
+ export const isJidMetaAI = (jid) => jid?.endsWith('@bot');
64
+ /** is the jid a PN user */
65
+ export const isPnUser = (jid) => jid?.endsWith('@s.whatsapp.net');
66
+ /** is the jid a LID */
67
+ export const isLidUser = (jid) => jid?.endsWith('@lid');
42
68
  /** is the jid a broadcast */
43
- const isJidBroadcast = (jid) => (jid === null || jid === void 0 ? void 0 : jid.endsWith('@broadcast'));
44
- exports.isJidBroadcast = isJidBroadcast;
69
+ export const isJidBroadcast = (jid) => jid?.endsWith('@broadcast');
45
70
  /** is the jid a group */
46
- const isJidGroup = (jid) => (jid === null || jid === void 0 ? void 0 : jid.endsWith('@g.us'));
47
- exports.isJidGroup = isJidGroup;
71
+ export const isJidGroup = (jid) => jid?.endsWith('@g.us');
48
72
  /** is the jid the status broadcast */
49
- const isJidStatusBroadcast = (jid) => jid === 'status@broadcast';
50
- exports.isJidStatusBroadcast = isJidStatusBroadcast;
51
- /** is the jid the newsletter */
52
- const isJidNewsLetter = (jid) => (jid === null || jid === void 0 ? void 0 : jid.endsWith('newsletter'));
53
- exports.isJidNewsLetter = isJidNewsLetter;
54
- const jidNormalizedUser = (jid) => {
55
- const result = (0, exports.jidDecode)(jid);
73
+ export const isJidStatusBroadcast = (jid) => jid === 'status@broadcast';
74
+ /** is the jid a newsletter */
75
+ export const isJidNewsletter = (jid) => jid?.endsWith('@newsletter');
76
+ /** is the jid a hosted PN */
77
+ export const isHostedPnUser = (jid) => jid?.endsWith('@hosted');
78
+ /** is the jid a hosted LID */
79
+ export const isHostedLidUser = (jid) => jid?.endsWith('@hosted.lid');
80
+ /** is the jid a interop */
81
+ export const isInteropUser = (jid) => jid?.endsWith('@interop');
82
+ const botRegexp = /^1313555\d{4}$|^131655500\d{2}$/;
83
+ export const isJidBot = (jid) => jid && botRegexp.test(jid.split('@')[0]) && jid.endsWith('@c.us');
84
+ export const jidNormalizedUser = (jid) => {
85
+ const result = jidDecode(jid);
56
86
  if (!result) {
57
87
  return '';
58
88
  }
59
89
  const { user, server } = result;
60
- return (0, exports.jidEncode)(user, server === 'c.us' ? 's.whatsapp.net' : server);
90
+ return jidEncode(user, server === 'c.us' ? 's.whatsapp.net' : server);
91
+ };
92
+ export const transferDevice = (fromJid, toJid) => {
93
+ const fromDecoded = jidDecode(fromJid);
94
+ const deviceId = fromDecoded?.device || 0;
95
+ const { server, user } = jidDecode(toJid);
96
+ return jidEncode(user, server, deviceId);
61
97
  };
62
- exports.jidNormalizedUser = jidNormalizedUser;
98
+ //# sourceMappingURL=jid-utils.js.map
@@ -1,2 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ import * as constants from './constants.js';
2
+ //# sourceMappingURL=types.js.map
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BinaryInfo = void 0;
4
- class BinaryInfo {
1
+ export class BinaryInfo {
5
2
  constructor(options = {}) {
6
3
  this.protocolVersion = 5;
7
4
  this.sequence = 0;
@@ -10,4 +7,4 @@ class BinaryInfo {
10
7
  Object.assign(this, options);
11
8
  }
12
9
  }
13
- exports.BinaryInfo = BinaryInfo;
10
+ //# sourceMappingURL=BinaryInfo.js.map