@queenanya/baileys 7.4.10 → 7.4.13

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 (111) hide show
  1. package/README.md +26 -26
  2. package/WAProto/index.js +97194 -67957
  3. package/lib/Defaults/baileys-version.json +1 -1
  4. package/lib/Defaults/index.d.ts +231 -1
  5. package/lib/Defaults/index.js +23 -11
  6. package/lib/Defaults/phonenumber-mcc.json +223 -0
  7. package/lib/Socket/Client/index.d.ts +3 -2
  8. package/lib/Socket/Client/index.js +3 -2
  9. package/lib/Socket/Client/mobile-socket-client.d.ts +13 -0
  10. package/lib/Socket/Client/mobile-socket-client.js +65 -0
  11. package/lib/Socket/Client/{websocket.d.ts → web-socket-client.d.ts} +1 -1
  12. package/lib/Socket/Client/{websocket.js → web-socket-client.js} +2 -2
  13. package/lib/Socket/business.d.ts +28 -31
  14. package/lib/Socket/chats.d.ts +9 -17
  15. package/lib/Socket/chats.js +116 -115
  16. package/lib/Socket/groups.d.ts +10 -23
  17. package/lib/Socket/groups.js +1 -12
  18. package/lib/Socket/index.d.ts +38 -69
  19. package/lib/Socket/index.js +2 -2
  20. package/lib/Socket/messages-recv.d.ts +28 -30
  21. package/lib/Socket/messages-recv.js +180 -291
  22. package/lib/Socket/messages-send.d.ts +19 -25
  23. package/lib/Socket/messages-send.js +76 -110
  24. package/lib/Socket/newsletter.d.ts +13 -19
  25. package/lib/Socket/newsletter.js +54 -67
  26. package/lib/Socket/{communities.d.ts → registration.d.ts} +145 -94
  27. package/lib/Socket/registration.js +166 -0
  28. package/lib/Socket/socket.d.ts +1 -3
  29. package/lib/Socket/socket.js +17 -15
  30. package/lib/Store/make-cache-manager-store.d.ts +1 -2
  31. package/lib/Store/make-in-memory-store.js +11 -13
  32. package/lib/Store/make-ordered-dictionary.js +2 -2
  33. package/lib/Types/Auth.d.ts +6 -1
  34. package/lib/Types/Call.d.ts +1 -1
  35. package/lib/Types/Chat.d.ts +7 -15
  36. package/lib/Types/Contact.d.ts +1 -6
  37. package/lib/Types/Events.d.ts +2 -44
  38. package/lib/Types/GroupMetadata.d.ts +1 -3
  39. package/lib/Types/Label.d.ts +0 -11
  40. package/lib/Types/Message.d.ts +30 -37
  41. package/lib/Types/Newsletter.d.ts +13 -0
  42. package/lib/Types/Newsletter.js +15 -1
  43. package/lib/Types/Socket.d.ts +3 -10
  44. package/lib/Types/index.d.ts +0 -8
  45. package/lib/Utils/auth-utils.js +7 -1
  46. package/lib/Utils/chat-utils.d.ts +4 -5
  47. package/lib/Utils/chat-utils.js +20 -52
  48. package/lib/Utils/crypto.d.ts +1 -2
  49. package/lib/Utils/crypto.js +2 -4
  50. package/lib/Utils/decode-wa-message.d.ts +0 -1
  51. package/lib/Utils/decode-wa-message.js +14 -34
  52. package/lib/Utils/event-buffer.js +8 -14
  53. package/lib/Utils/generics.d.ts +13 -37
  54. package/lib/Utils/generics.js +18 -103
  55. package/lib/Utils/history.d.ts +2 -6
  56. package/lib/Utils/history.js +0 -3
  57. package/lib/Utils/index.d.ts +0 -1
  58. package/lib/Utils/index.js +0 -1
  59. package/lib/Utils/link-preview.js +1 -24
  60. package/lib/Utils/logger.d.ts +3 -1
  61. package/lib/Utils/make-mutex.js +0 -1
  62. package/lib/Utils/messages-media.d.ts +2 -3
  63. package/lib/Utils/messages-media.js +32 -17
  64. package/lib/Utils/messages.d.ts +0 -1
  65. package/lib/Utils/messages.js +72 -67
  66. package/lib/Utils/noise-handler.d.ts +3 -3
  67. package/lib/Utils/noise-handler.js +12 -7
  68. package/lib/Utils/process-message.d.ts +2 -3
  69. package/lib/Utils/process-message.js +21 -55
  70. package/lib/Utils/signal.js +16 -23
  71. package/lib/Utils/use-multi-file-auth-state.js +3 -17
  72. package/lib/Utils/validate-connection.d.ts +1 -0
  73. package/lib/Utils/validate-connection.js +44 -10
  74. package/lib/WABinary/constants.js +5 -5
  75. package/lib/WABinary/decode.d.ts +2 -3
  76. package/lib/WABinary/decode.js +4 -6
  77. package/lib/WABinary/encode.d.ts +2 -1
  78. package/lib/WABinary/encode.js +6 -8
  79. package/lib/WABinary/generic-utils.d.ts +0 -1
  80. package/lib/WABinary/jid-utils.d.ts +3 -3
  81. package/lib/WABinary/jid-utils.js +5 -5
  82. package/lib/WAM/BinaryInfo.d.ts +2 -3
  83. package/lib/WAM/constants.d.ts +2 -3
  84. package/lib/WAM/encode.d.ts +0 -1
  85. package/lib/WAM/encode.js +2 -2
  86. package/lib/index.d.ts +0 -1
  87. package/lib/index.js +0 -1
  88. package/package.json +37 -39
  89. package/lib/Socket/communities.js +0 -354
  90. package/lib/Socket/usync.d.ts +0 -38
  91. package/lib/Socket/usync.js +0 -70
  92. package/lib/Types/USync.d.ts +0 -25
  93. package/lib/Types/USync.js +0 -2
  94. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +0 -9
  95. package/lib/WAUSync/Protocols/USyncContactProtocol.js +0 -32
  96. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +0 -22
  97. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +0 -57
  98. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +0 -12
  99. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +0 -30
  100. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +0 -12
  101. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +0 -42
  102. package/lib/WAUSync/Protocols/index.d.ts +0 -4
  103. package/lib/WAUSync/Protocols/index.js +0 -20
  104. package/lib/WAUSync/USyncQuery.d.ts +0 -26
  105. package/lib/WAUSync/USyncQuery.js +0 -79
  106. package/lib/WAUSync/USyncUser.d.ts +0 -10
  107. package/lib/WAUSync/USyncUser.js +0 -22
  108. package/lib/WAUSync/index.d.ts +0 -3
  109. package/lib/WAUSync/index.js +0 -19
  110. /package/lib/Socket/Client/{types.d.ts → abstract-socket-client.d.ts} +0 -0
  111. /package/lib/Socket/Client/{types.js → abstract-socket-client.js} +0 -0
@@ -5,20 +5,6 @@ const Types_1 = require("../Types");
5
5
  const Utils_1 = require("../Utils");
6
6
  const WABinary_1 = require("../WABinary");
7
7
  const groups_1 = require("./groups");
8
- var QueryIds;
9
- (function (QueryIds) {
10
- QueryIds["JOB_MUTATION"] = "7150902998257522";
11
- QueryIds["METADATA"] = "6620195908089573";
12
- QueryIds["UNFOLLOW"] = "7238632346214362";
13
- QueryIds["FOLLOW"] = "7871414976211147";
14
- QueryIds["UNMUTE"] = "7337137176362961";
15
- QueryIds["MUTE"] = "25151904754424642";
16
- QueryIds["CREATE"] = "6996806640408138";
17
- QueryIds["ADMIN_COUNT"] = "7130823597031706";
18
- QueryIds["CHANGE_OWNER"] = "7341777602580933";
19
- QueryIds["DELETE"] = "8316537688363079";
20
- QueryIds["DEMOTE"] = "6551828931592903";
21
- })(QueryIds || (QueryIds = {}));
22
8
  const makeNewsletterSocket = (config) => {
23
9
  const sock = (0, groups_1.makeGroupsSocket)(config);
24
10
  const { authState, signalRepository, query, generateMessageTag } = sock;
@@ -33,7 +19,7 @@ const makeNewsletterSocket = (config) => {
33
19
  },
34
20
  content
35
21
  }));
36
- const newsletterWMexQuery = async (jid, query_id, content) => (query({
22
+ const newsletterWMexQuery = async (jid, queryId, content) => (query({
37
23
  tag: 'iq',
38
24
  attrs: {
39
25
  id: generateMessageTag(),
@@ -44,15 +30,21 @@ const makeNewsletterSocket = (config) => {
44
30
  content: [
45
31
  {
46
32
  tag: 'query',
47
- attrs: { query_id },
48
- content: encoder.encode(JSON.stringify({ variables: { newsletter_id: jid, ...content } }))
33
+ attrs: { 'query_id': queryId },
34
+ content: encoder.encode(JSON.stringify({
35
+ variables: {
36
+ 'newsletter_id': jid,
37
+ ...content
38
+ }
39
+ }))
49
40
  }
50
41
  ]
51
42
  }));
52
43
  const parseFetchedUpdates = async (node, type) => {
53
44
  let child;
54
- if (type === 'messages')
45
+ if (type === 'messages') {
55
46
  child = (0, WABinary_1.getBinaryNodeChild)(node, 'messages');
47
+ }
56
48
  else {
57
49
  const parent = (0, WABinary_1.getBinaryNodeChild)(node, 'message_updates');
58
50
  child = (0, WABinary_1.getBinaryNodeChild)(parent, 'messages');
@@ -60,30 +52,21 @@ const makeNewsletterSocket = (config) => {
60
52
  return await Promise.all((0, WABinary_1.getAllBinaryNodeChildren)(child).map(async (messageNode) => {
61
53
  var _a, _b;
62
54
  messageNode.attrs.from = child === null || child === void 0 ? void 0 : child.attrs.jid;
63
- const views = (_b = (_a = (0, WABinary_1.getBinaryNodeChild)(messageNode, 'views_count')) === null || _a === void 0 ? void 0 : _a.attrs) === null || _b === void 0 ? void 0 : _b.count;
55
+ const views = parseInt(((_b = (_a = (0, WABinary_1.getBinaryNodeChild)(messageNode, 'views_count')) === null || _a === void 0 ? void 0 : _a.attrs) === null || _b === void 0 ? void 0 : _b.count) || '0');
64
56
  const reactionNode = (0, WABinary_1.getBinaryNodeChild)(messageNode, 'reactions');
65
57
  const reactions = (0, WABinary_1.getBinaryNodeChildren)(reactionNode, 'reaction')
66
58
  .map(({ attrs }) => ({ count: +attrs.count, code: attrs.code }));
67
- let data;
59
+ const data = {
60
+ 'server_id': messageNode.attrs.server_id,
61
+ views,
62
+ reactions
63
+ };
68
64
  if (type === 'messages') {
69
65
  const { fullMessage: message, decrypt } = await (0, Utils_1.decryptMessageNode)(messageNode, authState.creds.me.id, authState.creds.me.lid || '', signalRepository, config.logger);
70
66
  await decrypt();
71
- data = {
72
- server_id: messageNode.attrs.server_id,
73
- views: views ? +views : undefined,
74
- reactions,
75
- message
76
- };
77
- return data;
78
- }
79
- else {
80
- data = {
81
- server_id: messageNode.attrs.server_id,
82
- views: views ? +views : undefined,
83
- reactions
84
- };
85
- return data;
67
+ data.message = message;
86
68
  }
69
+ return data;
87
70
  }));
88
71
  };
89
72
  return {
@@ -94,44 +77,48 @@ const makeNewsletterSocket = (config) => {
94
77
  return (_a = (0, WABinary_1.getBinaryNodeChild)(result, 'live_updates')) === null || _a === void 0 ? void 0 : _a.attrs;
95
78
  },
96
79
  newsletterReactionMode: async (jid, mode) => {
97
- await newsletterWMexQuery(jid, QueryIds.JOB_MUTATION, {
98
- updates: { settings: { reaction_codes: { value: mode } } }
80
+ await newsletterWMexQuery(jid, Types_1.QueryIds.JOB_MUTATION, {
81
+ updates: { settings: { 'reaction_codes': { value: mode } } }
99
82
  });
100
83
  },
101
84
  newsletterUpdateDescription: async (jid, description) => {
102
- await newsletterWMexQuery(jid, QueryIds.JOB_MUTATION, {
85
+ await newsletterWMexQuery(jid, Types_1.QueryIds.JOB_MUTATION, {
103
86
  updates: { description: description || '', settings: null }
104
87
  });
105
88
  },
106
89
  newsletterUpdateName: async (jid, name) => {
107
- await newsletterWMexQuery(jid, QueryIds.JOB_MUTATION, {
90
+ await newsletterWMexQuery(jid, Types_1.QueryIds.JOB_MUTATION, {
108
91
  updates: { name, settings: null }
109
92
  });
110
93
  },
111
94
  newsletterUpdatePicture: async (jid, content) => {
112
95
  const { img } = await (0, Utils_1.generateProfilePicture)(content);
113
- await newsletterWMexQuery(jid, QueryIds.JOB_MUTATION, {
96
+ await newsletterWMexQuery(jid, Types_1.QueryIds.JOB_MUTATION, {
114
97
  updates: { picture: img.toString('base64'), settings: null }
115
98
  });
116
99
  },
117
100
  newsletterRemovePicture: async (jid) => {
118
- await newsletterWMexQuery(jid, QueryIds.JOB_MUTATION, {
101
+ await newsletterWMexQuery(jid, Types_1.QueryIds.JOB_MUTATION, {
119
102
  updates: { picture: '', settings: null }
120
103
  });
121
104
  },
122
105
  newsletterUnfollow: async (jid) => {
123
- await newsletterWMexQuery(jid, QueryIds.UNFOLLOW);
106
+ await newsletterWMexQuery(jid, Types_1.QueryIds.UNFOLLOW);
124
107
  },
125
108
  newsletterFollow: async (jid) => {
126
- await newsletterWMexQuery(jid, QueryIds.FOLLOW);
109
+ await newsletterWMexQuery(jid, Types_1.QueryIds.FOLLOW);
127
110
  },
128
111
  newsletterUnmute: async (jid) => {
129
- await newsletterWMexQuery(jid, QueryIds.UNMUTE);
112
+ await newsletterWMexQuery(jid, Types_1.QueryIds.UNMUTE);
130
113
  },
131
114
  newsletterMute: async (jid) => {
132
- await newsletterWMexQuery(jid, QueryIds.MUTE);
115
+ await newsletterWMexQuery(jid, Types_1.QueryIds.MUTE);
116
+ },
117
+ newsletterAction: async (jid, type) => {
118
+ await newsletterWMexQuery(jid, type.toUpperCase());
133
119
  },
134
- newsletterCreate: async (name, description) => {
120
+ newsletterCreate: async (name, description, reaction_codes) => {
121
+ //TODO: Implement TOS system wide for Meta AI, communities, and here etc.
135
122
  /**tos query */
136
123
  await query({
137
124
  tag: 'iq',
@@ -152,50 +139,50 @@ const makeNewsletterSocket = (config) => {
152
139
  }
153
140
  ]
154
141
  });
155
- const result = await newsletterWMexQuery(undefined, QueryIds.CREATE, {
156
- input: { name, description }
142
+ const result = await newsletterWMexQuery(undefined, Types_1.QueryIds.CREATE, {
143
+ input: { name, description, settings: { 'reaction_codes': { value: reaction_codes.toUpperCase() } } }
157
144
  });
158
145
  return (0, exports.extractNewsletterMetadata)(result, true);
159
146
  },
160
147
  newsletterMetadata: async (type, key, role) => {
161
- const result = await newsletterWMexQuery(undefined, QueryIds.METADATA, {
148
+ const result = await newsletterWMexQuery(undefined, Types_1.QueryIds.METADATA, {
162
149
  input: {
163
150
  key,
164
151
  type: type.toUpperCase(),
165
- view_role: role || 'GUEST'
152
+ 'view_role': role || 'GUEST'
166
153
  },
167
- fetch_viewer_metadata: true,
168
- fetch_full_image: true,
169
- fetch_creation_time: true
154
+ 'fetch_viewer_metadata': true,
155
+ 'fetch_full_image': true,
156
+ 'fetch_creation_time': true
170
157
  });
171
158
  return (0, exports.extractNewsletterMetadata)(result);
172
159
  },
173
160
  newsletterAdminCount: async (jid) => {
174
161
  var _a, _b;
175
- const result = await newsletterWMexQuery(jid, QueryIds.ADMIN_COUNT);
162
+ const result = await newsletterWMexQuery(jid, Types_1.QueryIds.ADMIN_COUNT);
176
163
  const buff = (_b = (_a = (0, WABinary_1.getBinaryNodeChild)(result, 'result')) === null || _a === void 0 ? void 0 : _a.content) === null || _b === void 0 ? void 0 : _b.toString();
177
164
  return JSON.parse(buff).data[Types_1.XWAPaths.ADMIN_COUNT].admin_count;
178
165
  },
179
166
  /**user is Lid, not Jid */
180
167
  newsletterChangeOwner: async (jid, user) => {
181
- await newsletterWMexQuery(jid, QueryIds.CHANGE_OWNER, {
182
- user_id: user
168
+ await newsletterWMexQuery(jid, Types_1.QueryIds.CHANGE_OWNER, {
169
+ 'user_id': user
183
170
  });
184
171
  },
185
172
  /**user is Lid, not Jid */
186
173
  newsletterDemote: async (jid, user) => {
187
- await newsletterWMexQuery(jid, QueryIds.DEMOTE, {
188
- user_id: user
174
+ await newsletterWMexQuery(jid, Types_1.QueryIds.DEMOTE, {
175
+ 'user_id': user
189
176
  });
190
177
  },
191
178
  newsletterDelete: async (jid) => {
192
- await newsletterWMexQuery(jid, QueryIds.DELETE);
179
+ await newsletterWMexQuery(jid, Types_1.QueryIds.DELETE);
193
180
  },
194
181
  /**if code wasn't passed, the reaction will be removed (if is reacted) */
195
- newsletterReactMessage: async (jid, server_id, code) => {
182
+ newsletterReactMessage: async (jid, serverId, code) => {
196
183
  await query({
197
184
  tag: 'message',
198
- attrs: { to: jid, ...(!code ? { edit: '7' } : {}), type: 'reaction', server_id, id: (0, Utils_1.generateMessageID)() },
185
+ attrs: { to: jid, ...(!code ? { edit: '7' } : {}), type: 'reaction', 'server_id': serverId, id: (0, Utils_1.generateMessageID)() },
199
186
  content: [{
200
187
  tag: 'reaction',
201
188
  attrs: code ? { code } : {}
@@ -224,25 +211,25 @@ const makeNewsletterSocket = (config) => {
224
211
  };
225
212
  exports.makeNewsletterSocket = makeNewsletterSocket;
226
213
  const extractNewsletterMetadata = (node, isCreate) => {
227
- var _a, _b, _c, _d, _e;
214
+ var _a, _b, _c, _d, _e, _f, _g;
228
215
  const result = (_b = (_a = (0, WABinary_1.getBinaryNodeChild)(node, 'result')) === null || _a === void 0 ? void 0 : _a.content) === null || _b === void 0 ? void 0 : _b.toString();
229
216
  const metadataPath = JSON.parse(result).data[isCreate ? Types_1.XWAPaths.CREATE : Types_1.XWAPaths.NEWSLETTER];
230
217
  const metadata = {
231
218
  id: metadataPath.id,
232
219
  state: metadataPath.state.type,
233
- creation_time: +metadataPath.thread_metadata.creation_time,
220
+ 'creation_time': +metadataPath.thread_metadata.creation_time,
234
221
  name: metadataPath.thread_metadata.name.text,
235
222
  nameTime: +metadataPath.thread_metadata.name.update_time,
236
223
  description: metadataPath.thread_metadata.description.text,
237
224
  descriptionTime: +metadataPath.thread_metadata.description.update_time,
238
225
  invite: metadataPath.thread_metadata.invite,
239
226
  handle: metadataPath.thread_metadata.handle,
240
- picture: metadataPath.thread_metadata.picture.direct_path || null,
241
- preview: metadataPath.thread_metadata.preview.direct_path || null,
242
- reaction_codes: (_e = (_d = (_c = metadataPath.thread_metadata) === null || _c === void 0 ? void 0 : _c.settings) === null || _d === void 0 ? void 0 : _d.reaction_codes) === null || _e === void 0 ? void 0 : _e.value,
227
+ picture: ((_c = metadataPath.thread_metadata.picture) === null || _c === void 0 ? void 0 : _c.direct_path) || null,
228
+ preview: ((_d = metadataPath.thread_metadata.preview) === null || _d === void 0 ? void 0 : _d.direct_path) || null,
229
+ 'reaction_codes': (_g = (_f = (_e = metadataPath.thread_metadata) === null || _e === void 0 ? void 0 : _e.settings) === null || _f === void 0 ? void 0 : _f.reaction_codes) === null || _g === void 0 ? void 0 : _g.value,
243
230
  subscribers: +metadataPath.thread_metadata.subscribers_count,
244
231
  verification: metadataPath.thread_metadata.verification,
245
- viewer_metadata: metadataPath.viewer_metadata
232
+ 'viewer_metadata': metadataPath.viewer_metadata
246
233
  };
247
234
  return metadata;
248
235
  };
@@ -1,52 +1,10 @@
1
- /// <reference types="long" />
2
1
  /// <reference types="node" />
3
- /// <reference types="node" />
4
- import { proto } from '../../WAProto';
5
- import { GroupMetadata, ParticipantAction, SocketConfig, WAMessageKey } from '../Types';
6
- import { BinaryNode } from '../WABinary';
7
- export declare const makeCommunitiesSocket: (config: SocketConfig) => {
8
- communityMetadata: (jid: string) => Promise<GroupMetadata>;
9
- communityCreate: (subject: any, body: any) => Promise<GroupMetadata | null>;
10
- communityLeave: (id: string) => Promise<void>;
11
- communityUpdateSubject: (jid: string, subject: string) => Promise<void>;
12
- communityRequestParticipantsList: (jid: string) => Promise<{
13
- [key: string]: string;
14
- }[]>;
15
- communityRequestParticipantsUpdate: (jid: string, participants: string[], action: 'approve' | 'reject') => Promise<{
16
- status: string;
17
- jid: string;
18
- }[]>;
19
- communityParticipantsUpdate: (jid: string, participants: string[], action: ParticipantAction) => Promise<{
20
- status: string;
21
- jid: string;
22
- content: BinaryNode;
23
- }[]>;
24
- communityUpdateDescription: (jid: string, description?: string) => Promise<void>;
25
- communityInviteCode: (jid: string) => Promise<string | undefined>;
26
- communityRevokeInvite: (jid: string) => Promise<string | undefined>;
27
- communityAcceptInvite: (code: string) => Promise<string | undefined>;
28
- /**
29
- * revoke a v4 invite for someone
30
- * @param communityJid community jid
31
- * @param invitedJid jid of person you invited
32
- * @returns true if successful
33
- */
34
- communityRevokeInviteV4: (communityJid: string, invitedJid: string) => Promise<boolean>;
35
- /**
36
- * accept a CommunityInviteMessage
37
- * @param key the key of the invite message, or optionally only provide the jid of the person who sent the invite
38
- * @param inviteMessage the message to accept
39
- */
40
- communityAcceptInviteV4: (key: string | WAMessageKey, inviteMessage: proto.Message.IGroupInviteMessage) => Promise<string>;
41
- communityGetInviteInfo: (code: string) => Promise<GroupMetadata>;
42
- communityToggleEphemeral: (jid: string, ephemeralExpiration: number) => Promise<void>;
43
- communitySettingUpdate: (jid: string, setting: 'announcement' | 'not_announcement' | 'locked' | 'unlocked') => Promise<void>;
44
- communityMemberAddMode: (jid: string, mode: 'admin_add' | 'all_member_add') => Promise<void>;
45
- communityJoinApprovalMode: (jid: string, mode: 'on' | 'off') => Promise<void>;
46
- communityFetchAllParticipating: () => Promise<{
47
- [_: string]: GroupMetadata;
48
- }>;
49
- logger: import("pino").Logger<never, boolean>;
2
+ import { AxiosRequestConfig } from 'axios';
3
+ import { KeyPair, SignedKeyPair, SocketConfig } from '../Types';
4
+ export declare const makeRegistrationSocket: (config: SocketConfig) => {
5
+ register: (code: string) => Promise<ExistsResponse>;
6
+ requestRegistrationCode: (registrationOptions?: RegistrationOptions) => Promise<ExistsResponse>;
7
+ logger: import("pino").Logger<import("pino").LoggerOptions>;
50
8
  getOrderDetails: (orderId: string, tokenBase64: string) => Promise<import("../Types").OrderDetails>;
51
9
  getCatalog: ({ jid, limit, cursor }: import("../Types").GetCatalogOptions) => Promise<{
52
10
  products: import("../Types").Product[];
@@ -60,32 +18,36 @@ export declare const makeCommunitiesSocket: (config: SocketConfig) => {
60
18
  deleted: number;
61
19
  }>;
62
20
  productUpdate: (productId: string, update: import("../Types").ProductUpdate) => Promise<import("../Types").Product>;
63
- sendMessageAck: ({ tag, attrs, content }: BinaryNode) => Promise<void>;
64
- sendRetryRequest: (node: BinaryNode, forceIncludeKeys?: boolean) => Promise<void>;
21
+ sendMessageAck: ({ tag, attrs, content }: import("../WABinary").BinaryNode) => Promise<void>;
22
+ sendRetryRequest: (node: import("../WABinary").BinaryNode, forceIncludeKeys?: boolean) => Promise<void>;
23
+ offerCall: (toJid: string, isVideo?: boolean) => Promise<{
24
+ id: string;
25
+ to: string;
26
+ }>;
65
27
  rejectCall: (callId: string, callFrom: string) => Promise<void>;
66
- fetchMessageHistory: (count: number, oldestMsgKey: WAMessageKey, oldestMsgTimestamp: number | import("long").Long) => Promise<string>;
67
- requestPlaceholderResend: (messageKey: WAMessageKey) => Promise<string | undefined>;
68
- getPrivacyTokens: (jids: string[]) => Promise<BinaryNode>;
28
+ getPrivacyTokens: (jids: string[]) => Promise<import("../WABinary").BinaryNode>;
69
29
  assertSessions: (jids: string[], force: boolean) => Promise<boolean>;
70
- relayMessage: (jid: string, message: proto.IMessage, { messageId: msgId, participant, additionalAttributes, additionalNodes, useUserDevicesCache, useCachedGroupMetadata, statusJidList }: import("../Types").MessageRelayOptions) => Promise<string>;
30
+ relayMessage: (jid: string, message: import("../Types").WAProto.IMessage, { messageId: msgId, participant, additionalAttributes, additionalNodes, useUserDevicesCache, cachedGroupMetadata, statusJidList }: import("../Types").MessageRelayOptions) => Promise<string>;
71
31
  sendReceipt: (jid: string, participant: string | undefined, messageIds: string[], type: import("../Types").MessageReceiptType) => Promise<void>;
72
- sendReceipts: (keys: WAMessageKey[], type: import("../Types").MessageReceiptType) => Promise<void>;
73
- readMessages: (keys: WAMessageKey[]) => Promise<void>;
32
+ sendReceipts: (keys: import("../Types").WAProto.IMessageKey[], type: import("../Types").MessageReceiptType) => Promise<void>;
33
+ getButtonArgs: (message: import("../Types").WAProto.IMessage) => {
34
+ [key: string]: string;
35
+ };
36
+ readMessages: (keys: import("../Types").WAProto.IMessageKey[]) => Promise<void>;
74
37
  refreshMediaConn: (forceGet?: boolean) => Promise<import("../Types").MediaConnInfo>;
75
- waUploadToServer: import("../Types").WAMediaUploadFunction;
76
- fetchPrivacySettings: (force?: boolean) => Promise<{
77
- [_: string]: string;
78
- }>;
79
- sendPeerDataOperationMessage: (pdoMessage: proto.Message.IPeerDataOperationRequestMessage) => Promise<string>;
80
- createParticipantNodes: (jids: string[], message: proto.IMessage, extraAttrs?: {
38
+ getUSyncDevices: (jids: string[], useCache: boolean, ignoreZeroDevices: boolean) => Promise<import("../WABinary").JidWithDevice[]>;
39
+ createParticipantNodes: (jids: string[], message: import("../Types").WAProto.IMessage, extraAttrs?: {
81
40
  [key: string]: string;
82
41
  } | undefined) => Promise<{
83
- nodes: BinaryNode[];
42
+ nodes: import("../WABinary").BinaryNode[];
84
43
  shouldIncludeDeviceIdentity: boolean;
85
44
  }>;
86
- getUSyncDevices: (jids: string[], useCache: boolean, ignoreZeroDevices: boolean) => Promise<import("../WABinary").JidWithDevice[]>;
87
- updateMediaMessage: (message: proto.IWebMessageInfo) => Promise<proto.IWebMessageInfo>;
88
- sendMessage: (jid: string, content: import("../Types").AnyMessageContent, options?: import("../Types").MiscMessageGenerationOptions) => Promise<proto.WebMessageInfo | undefined>;
45
+ waUploadToServer: import("../Types").WAMediaUploadFunction;
46
+ fetchPrivacySettings: (force?: boolean) => Promise<{
47
+ [_: string]: string;
48
+ }>;
49
+ updateMediaMessage: (message: import("../Types").WAProto.IWebMessageInfo) => Promise<import("../Types").WAProto.IWebMessageInfo>;
50
+ sendMessage: (jid: string, content: import("../Types").AnyMessageContent, options?: import("../Types").MiscMessageGenerationOptions) => Promise<import("../Types").WAProto.WebMessageInfo | undefined>;
89
51
  subscribeNewsletterUpdates: (jid: string) => Promise<{
90
52
  duration: string;
91
53
  }>;
@@ -98,18 +60,22 @@ export declare const makeCommunitiesSocket: (config: SocketConfig) => {
98
60
  newsletterFollow: (jid: string) => Promise<void>;
99
61
  newsletterUnmute: (jid: string) => Promise<void>;
100
62
  newsletterMute: (jid: string) => Promise<void>;
101
- newsletterCreate: (name: string, description: string) => Promise<import("../Types").NewsletterMetadata>;
63
+ newsletterAction: (jid: string, type: "mute" | "follow" | "unfollow" | "unmute") => Promise<void>;
64
+ newsletterCreate: (name: string, description: string, reaction_codes: string) => Promise<import("../Types").NewsletterMetadata>;
102
65
  newsletterMetadata: (type: "invite" | "jid", key: string, role?: import("../Types").NewsletterViewRole | undefined) => Promise<import("../Types").NewsletterMetadata>;
103
66
  newsletterAdminCount: (jid: string) => Promise<number>;
104
67
  newsletterChangeOwner: (jid: string, user: string) => Promise<void>;
105
68
  newsletterDemote: (jid: string, user: string) => Promise<void>;
106
69
  newsletterDelete: (jid: string) => Promise<void>;
107
- newsletterReactMessage: (jid: string, server_id: string, code?: string | undefined) => Promise<void>;
70
+ newsletterReactMessage: (jid: string, serverId: string, code?: string | undefined) => Promise<void>;
108
71
  newsletterFetchMessages: (type: "invite" | "jid", key: string, count: number, after?: number | undefined) => Promise<import("../Types").NewsletterFetchedUpdate[]>;
109
72
  newsletterFetchUpdates: (jid: string, count: number, after?: number | undefined, since?: number | undefined) => Promise<import("../Types").NewsletterFetchedUpdate[]>;
110
- groupMetadata: (jid: string) => Promise<GroupMetadata>;
111
- groupCreate: (subject: string, participants: string[]) => Promise<GroupMetadata>;
73
+ groupMetadata: (jid: string) => Promise<import("../Types").GroupMetadata>;
74
+ groupCreate: (subject: string, participants: string[]) => Promise<import("../Types").GroupMetadata>;
112
75
  groupLeave: (id: string) => Promise<void>;
76
+ /** the network code of your mobile network
77
+ * @see {@link https://de.wikipedia.org/wiki/Mobile_Network_Code}
78
+ */
113
79
  groupUpdateSubject: (jid: string, subject: string) => Promise<void>;
114
80
  groupRequestParticipantsList: (jid: string) => Promise<{
115
81
  [key: string]: string;
@@ -118,62 +84,57 @@ export declare const makeCommunitiesSocket: (config: SocketConfig) => {
118
84
  status: string;
119
85
  jid: string;
120
86
  }[]>;
121
- groupParticipantsUpdate: (jid: string, participants: string[], action: ParticipantAction) => Promise<{
87
+ groupParticipantsUpdate: (jid: string, participants: string[], action: import("../Types").ParticipantAction) => Promise<{
122
88
  status: string;
123
89
  jid: string;
124
- content: BinaryNode;
90
+ content: import("../WABinary").BinaryNode;
125
91
  }[]>;
126
92
  groupUpdateDescription: (jid: string, description?: string | undefined) => Promise<void>;
127
93
  groupInviteCode: (jid: string) => Promise<string | undefined>;
128
94
  groupRevokeInvite: (jid: string) => Promise<string | undefined>;
129
95
  groupAcceptInvite: (code: string) => Promise<string | undefined>;
130
- groupRevokeInviteV4: (groupJid: string, invitedJid: string) => Promise<boolean>;
131
- groupAcceptInviteV4: (key: string | WAMessageKey, inviteMessage: proto.Message.IGroupInviteMessage) => Promise<string>;
132
- groupGetInviteInfo: (code: string) => Promise<GroupMetadata>;
96
+ groupAcceptInviteV4: (key: string | import("../Types").WAProto.IMessageKey, inviteMessage: import("../Types").WAProto.Message.IGroupInviteMessage) => Promise<string>;
97
+ groupGetInviteInfo: (code: string) => Promise<import("../Types").GroupMetadata>;
133
98
  groupToggleEphemeral: (jid: string, ephemeralExpiration: number) => Promise<void>;
134
99
  groupSettingUpdate: (jid: string, setting: "announcement" | "locked" | "not_announcement" | "unlocked") => Promise<void>;
135
100
  groupMemberAddMode: (jid: string, mode: "all_member_add" | "admin_add") => Promise<void>;
136
101
  groupJoinApprovalMode: (jid: string, mode: "on" | "off") => Promise<void>;
137
102
  groupFetchAllParticipating: () => Promise<{
138
- [_: string]: GroupMetadata;
103
+ [_: string]: import("../Types").GroupMetadata;
139
104
  }>;
140
105
  processingMutex: {
141
106
  mutex<T>(code: () => T | Promise<T>): Promise<T>;
142
107
  };
143
- upsertMessage: (msg: proto.IWebMessageInfo, type: import("../Types").MessageUpsertType) => Promise<void>;
108
+ upsertMessage: (msg: import("../Types").WAProto.IWebMessageInfo, type: import("../Types").MessageUpsertType) => Promise<void>;
144
109
  appPatch: (patchCreate: import("../Types").WAPatchCreate) => Promise<void>;
145
110
  sendPresenceUpdate: (type: import("../Types").WAPresence, toJid?: string | undefined) => Promise<void>;
146
111
  presenceSubscribe: (toJid: string, tcToken?: Buffer | undefined) => Promise<void>;
147
112
  profilePictureUrl: (jid: string, type?: "image" | "preview", timeoutMs?: number | undefined) => Promise<string | undefined>;
148
113
  onWhatsApp: (...jids: string[]) => Promise<{
114
+ exists: boolean;
149
115
  jid: string;
150
- exists: unknown;
151
- }[] | undefined>;
116
+ }[]>;
152
117
  fetchBlocklist: () => Promise<string[]>;
153
- fetchStatus: (...jids: string[]) => Promise<import("..").USyncQueryResultList[] | undefined>;
154
- fetchDisappearingDuration: (...jids: string[]) => Promise<import("..").USyncQueryResultList[] | undefined>;
118
+ fetchStatus: (jid: string) => Promise<{
119
+ status: string | undefined;
120
+ setAt: Date;
121
+ } | undefined>;
155
122
  updateProfilePicture: (jid: string, content: import("../Types").WAMediaUpload) => Promise<void>;
156
- updateProfilePictureFull: (jid: any, content: any) => Promise<void>;
157
- updateProfilePictureFull2: (jid: any, content: any) => Promise<void>;
158
123
  removeProfilePicture: (jid: string) => Promise<void>;
159
124
  updateProfileStatus: (status: string) => Promise<void>;
160
125
  updateProfileName: (name: string) => Promise<void>;
161
126
  updateBlockStatus: (jid: string, action: "block" | "unblock") => Promise<void>;
162
- updateCallPrivacy: (value: import("../Types").WAPrivacyCallValue) => Promise<void>;
163
127
  updateLastSeenPrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
164
128
  updateOnlinePrivacy: (value: import("../Types").WAPrivacyOnlineValue) => Promise<void>;
165
129
  updateProfilePicturePrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
166
130
  updateStatusPrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
167
131
  updateReadReceiptsPrivacy: (value: import("../Types").WAReadReceiptsValue) => Promise<void>;
168
- updateGroupsAddPrivacy: (value: import("../Types").WAPrivacyGroupAddValue) => Promise<void>;
132
+ updateGroupsAddPrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
169
133
  updateDefaultDisappearingMode: (duration: number) => Promise<void>;
170
134
  getBusinessProfile: (jid: string) => Promise<void | import("../Types").WABusinessProfile>;
171
135
  resyncAppState: (collections: readonly ("critical_block" | "critical_unblock_low" | "regular_high" | "regular_low" | "regular")[], isInitialSync: boolean) => Promise<void>;
172
136
  chatModify: (mod: import("../Types").ChatModification, jid: string) => Promise<void>;
173
137
  cleanDirtyBits: (type: "account_sync" | "groups", fromTimestamp?: string | number | undefined) => Promise<void>;
174
- addOrEditContact: (jid: string, contact: import("../Types").ContactAction) => Promise<void>;
175
- removeContact: (jid: string) => Promise<void>;
176
- addLabel: (jid: string, labels: import("../Types/Label").LabelActionBody) => Promise<void>;
177
138
  addChatLabel: (jid: string, labelId: string) => Promise<void>;
178
139
  removeChatLabel: (jid: string, labelId: string) => Promise<void>;
179
140
  addMessageLabel: (jid: string, messageId: string, labelId: string) => Promise<void>;
@@ -182,9 +143,8 @@ export declare const makeCommunitiesSocket: (config: SocketConfig) => {
182
143
  id: string;
183
144
  fromMe?: boolean | undefined;
184
145
  }[], star: boolean) => Promise<void>;
185
- executeUSyncQuery: (usyncQuery: import("..").USyncQuery) => Promise<import("..").USyncQueryResult | undefined>;
186
146
  type: "md";
187
- ws: import("./Client").WebSocketClient;
147
+ ws: any;
188
148
  ev: import("../Types").BaileysEventEmitter & {
189
149
  process(handler: (events: Partial<import("../Types").BaileysEventMap>) => void | Promise<void>): () => void;
190
150
  buffer(): void;
@@ -199,11 +159,11 @@ export declare const makeCommunitiesSocket: (config: SocketConfig) => {
199
159
  signalRepository: import("../Types").SignalRepository;
200
160
  user: import("../Types").Contact | undefined;
201
161
  generateMessageTag: () => string;
202
- query: (node: BinaryNode, timeoutMs?: number | undefined) => Promise<BinaryNode>;
162
+ query: (node: import("../WABinary").BinaryNode, timeoutMs?: number | undefined) => Promise<import("../WABinary").BinaryNode>;
203
163
  waitForMessage: <T_2>(msgId: string, timeoutMs?: number | undefined) => Promise<T_2>;
204
164
  waitForSocketOpen: () => Promise<void>;
205
165
  sendRawMessage: (data: Uint8Array | Buffer) => Promise<void>;
206
- sendNode: (frame: BinaryNode) => Promise<void>;
166
+ sendNode: (frame: import("../WABinary").BinaryNode) => Promise<void>;
207
167
  logout: (msg?: string | undefined) => Promise<void>;
208
168
  end: (error: Error | undefined) => void;
209
169
  onUnexpectedError: (err: Error | import("@hapi/boom").Boom<any>, msg: string) => void;
@@ -211,6 +171,97 @@ export declare const makeCommunitiesSocket: (config: SocketConfig) => {
211
171
  uploadPreKeysToServerIfRequired: () => Promise<void>;
212
172
  requestPairingCode: (phoneNumber: string) => Promise<string>;
213
173
  waitForConnectionUpdate: (check: (u: Partial<import("../Types").ConnectionState>) => boolean | undefined, timeoutMs?: number | undefined) => Promise<void>;
214
- sendWAMBuffer: (wamBuffer: Buffer) => Promise<BinaryNode>;
174
+ sendWAMBuffer: (wamBuffer: Buffer) => Promise<import("../WABinary").BinaryNode>;
175
+ };
176
+ export interface RegistrationData {
177
+ registrationId: number;
178
+ signedPreKey: SignedKeyPair;
179
+ noiseKey: KeyPair;
180
+ signedIdentityKey: KeyPair;
181
+ identityId: Buffer;
182
+ phoneId: string;
183
+ deviceId: string;
184
+ backupToken: Buffer;
185
+ }
186
+ export interface RegistrationOptions {
187
+ /** your phone number */
188
+ phoneNumber?: string;
189
+ /** the country code of your phone number */
190
+ phoneNumberCountryCode: string;
191
+ /** your phone number without country code */
192
+ phoneNumberNationalNumber: string;
193
+ /** the country code of your mobile network
194
+ * @see {@link https://de.wikipedia.org/wiki/Mobile_Country_Code}
195
+ */
196
+ phoneNumberMobileCountryCode: string;
197
+ /** the network code of your mobile network
198
+ * @see {@link https://de.wikipedia.org/wiki/Mobile_Network_Code}
199
+ */
200
+ phoneNumberMobileNetworkCode: string;
201
+ /**
202
+ * How to send the one time code
203
+ */
204
+ method?: 'sms' | 'voice' | 'captcha';
205
+ /**
206
+ * The captcha code if it was requested
207
+ */
208
+ captcha?: string;
209
+ }
210
+ export type RegistrationParams = RegistrationData & RegistrationOptions;
211
+ export declare function registrationParams(params: RegistrationParams): {
212
+ cc: string;
213
+ in: string;
214
+ Rc: string;
215
+ lg: string;
216
+ lc: string;
217
+ mistyped: string;
218
+ authkey: string;
219
+ e_regid: string;
220
+ e_keytype: string;
221
+ e_ident: string;
222
+ e_skey_id: string;
223
+ e_skey_val: string;
224
+ e_skey_sig: string;
225
+ fdid: string;
226
+ network_ratio_type: string;
227
+ expid: string;
228
+ simnum: string;
229
+ hasinrc: string;
230
+ pid: string;
231
+ id: string;
232
+ backup_token: string;
233
+ token: string;
234
+ fraud_checkpoint_code: string | undefined;
215
235
  };
216
- export declare const extractCommunityMetadata: (result: BinaryNode) => GroupMetadata;
236
+ /**
237
+ * Requests a registration code for the given phone number.
238
+ */
239
+ export declare function mobileRegisterCode(params: RegistrationParams, fetchOptions?: AxiosRequestConfig): Promise<ExistsResponse>;
240
+ export declare function mobileRegisterExists(params: RegistrationParams, fetchOptions?: AxiosRequestConfig): Promise<ExistsResponse>;
241
+ /**
242
+ * Registers the phone number on whatsapp with the received OTP code.
243
+ */
244
+ export declare function mobileRegister(params: RegistrationParams & {
245
+ code: string;
246
+ }, fetchOptions?: AxiosRequestConfig): Promise<ExistsResponse>;
247
+ /**
248
+ * Encrypts the given string as AEAD aes-256-gcm with the public whatsapp key and a random keypair.
249
+ */
250
+ export declare function mobileRegisterEncrypt(data: string): string;
251
+ export declare function mobileRegisterFetch(path: string, opts?: AxiosRequestConfig): Promise<ExistsResponse>;
252
+ export interface ExistsResponse {
253
+ status: 'fail' | 'sent';
254
+ voice_length?: number;
255
+ voice_wait?: number;
256
+ sms_length?: number;
257
+ sms_wait?: number;
258
+ reason?: 'incorrect' | 'missing_param' | 'code_checkpoint';
259
+ login?: string;
260
+ flash_type?: number;
261
+ ab_hash?: string;
262
+ ab_key?: string;
263
+ exp_cfg?: string;
264
+ lid?: string;
265
+ image_blob?: string;
266
+ audio_blob?: string;
267
+ }