@alannxd/baileys 6.2.7 → 6.2.8

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 (45) hide show
  1. package/README.md +440 -203
  2. package/lib/Defaults/index.js +2 -2
  3. package/lib/Socket/Client/websocket.js +35 -5
  4. package/lib/Socket/chats.js +0 -5
  5. package/lib/Socket/index.js +1 -9
  6. package/lib/Socket/luxu.js +4 -5
  7. package/lib/Socket/messages-recv.js +1 -1
  8. package/lib/Socket/messages-send.js +56 -114
  9. package/lib/Socket/mex.js +38 -51
  10. package/lib/Socket/newsletter.js +276 -745
  11. package/lib/Socket/socket.js +27 -161
  12. package/lib/Socket/username.js +204 -206
  13. package/lib/Store/make-in-memory-store.js +1 -47
  14. package/lib/Types/Mex.js +2 -76
  15. package/lib/Utils/browser-utils.js +1 -0
  16. package/lib/Utils/generics.js +2 -2
  17. package/lib/Utils/index.js +0 -1
  18. package/lib/Utils/messages-media.js +0 -82
  19. package/lib/Utils/messages.js +2 -136
  20. package/lib/WAUSync/Protocols/USyncContactProtocol.js +50 -52
  21. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +52 -55
  22. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +25 -28
  23. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +36 -37
  24. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +23 -25
  25. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +51 -0
  26. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +29 -0
  27. package/lib/WAUSync/Protocols/index.js +6 -12
  28. package/lib/WAUSync/USyncQuery.js +96 -149
  29. package/lib/WAUSync/USyncUser.js +29 -54
  30. package/lib/WAUSync/index.js +4 -3
  31. package/lib/index.js +5 -2
  32. package/package.json +14 -13
  33. package/lib/Socket/graphql.js +0 -716
  34. package/lib/Socket/interop.js +0 -463
  35. package/lib/Socket/message-builder.js +0 -475
  36. package/lib/Socket/privacy.js +0 -318
  37. package/lib/Utils/sticker.js +0 -133
  38. package/lib/Utils/use-sqlite-auth-state.js +0 -162
  39. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +0 -53
  40. package/lib/WAUSync/Protocols/USyncBusinessProtocol.js +0 -43
  41. package/lib/WAUSync/Protocols/USyncFeatureProtocol.js +0 -58
  42. package/lib/WAUSync/Protocols/USyncLIDProtocol.js +0 -30
  43. package/lib/WAUSync/Protocols/USyncPictureProtocol.js +0 -32
  44. package/lib/WAUSync/Protocols/USyncSidelistProtocol.js +0 -28
  45. package/lib/WAUSync/Protocols/USyncTextStatusProtocol.js +0 -38
@@ -1,30 +1,27 @@
1
- import { assertNodeErrorFree } from '../../WABinary/index.js'
2
-
1
+ import { assertNodeErrorFree } from '../../WABinary/index.js';
3
2
  export class USyncDisappearingModeProtocol {
4
- constructor() {
5
- this.name = 'disappearing_mode'
6
- }
7
-
8
- getQueryElement() {
9
- return {
10
- tag: 'disappearing_mode',
11
- attrs: {}
12
- }
13
- }
14
-
15
- getUserElement() {
16
- return null
17
- }
18
-
19
- parser(node) {
20
- if (node.tag === 'disappearing_mode') {
21
- assertNodeErrorFree(node)
22
- const duration = +node?.attrs.duration
23
- const setAt = new Date(+(node?.attrs.t || 0) * 1000)
24
- return {
25
- duration,
26
- setAt
27
- }
28
- }
29
- }
3
+ constructor() {
4
+ this.name = 'disappearing_mode';
5
+ }
6
+ getQueryElement() {
7
+ return {
8
+ tag: 'disappearing_mode',
9
+ attrs: {}
10
+ };
11
+ }
12
+ getUserElement() {
13
+ return null;
14
+ }
15
+ parser(node) {
16
+ if (node.tag === 'disappearing_mode') {
17
+ assertNodeErrorFree(node);
18
+ const duration = +node?.attrs.duration;
19
+ const setAt = new Date(+(node?.attrs.t || 0) * 1000);
20
+ return {
21
+ duration,
22
+ setAt
23
+ };
24
+ }
25
+ }
30
26
  }
27
+ //# sourceMappingURL=USyncDisappearingModeProtocol.js.map
@@ -1,39 +1,38 @@
1
- import { assertNodeErrorFree } from '../../WABinary/index.js'
2
-
1
+ import { assertNodeErrorFree } from '../../WABinary/index.js';
3
2
  export class USyncStatusProtocol {
4
- constructor() {
5
- this.name = 'status'
6
- }
7
-
8
- getQueryElement() {
9
- return {
10
- tag: 'status',
11
- attrs: {}
12
- }
13
- }
14
-
15
- getUserElement() {
16
- return null
17
- }
18
-
19
- parser(node) {
20
- if (node.tag === 'status') {
21
- assertNodeErrorFree(node)
22
- let status = node?.content?.toString() ?? null
23
- const setAt = new Date(+(node?.attrs.t || 0) * 1000)
24
- if (!status) {
25
- if (node.attrs?.code && +node.attrs.code === 401) {
26
- status = ''
27
- } else {
28
- status = null
29
- }
30
- } else if (typeof status === 'string' && status.length === 0) {
31
- status = null
32
- }
33
- return {
34
- status,
35
- setAt
36
- }
37
- }
38
- }
3
+ constructor() {
4
+ this.name = 'status';
5
+ }
6
+ getQueryElement() {
7
+ return {
8
+ tag: 'status',
9
+ attrs: {}
10
+ };
11
+ }
12
+ getUserElement() {
13
+ return null;
14
+ }
15
+ parser(node) {
16
+ if (node.tag === 'status') {
17
+ assertNodeErrorFree(node);
18
+ let status = node?.content?.toString() ?? null;
19
+ const setAt = new Date(+(node?.attrs.t || 0) * 1000);
20
+ if (!status) {
21
+ if (node.attrs?.code && +node.attrs.code === 401) {
22
+ status = '';
23
+ }
24
+ else {
25
+ status = null;
26
+ }
27
+ }
28
+ else if (typeof status === 'string' && status.length === 0) {
29
+ status = null;
30
+ }
31
+ return {
32
+ status,
33
+ setAt
34
+ };
35
+ }
36
+ }
39
37
  }
38
+ //# sourceMappingURL=USyncStatusProtocol.js.map
@@ -1,27 +1,25 @@
1
- import { assertNodeErrorFree } from '../../WABinary/index.js'
2
-
1
+ import { assertNodeErrorFree } from '../../WABinary/index.js';
2
+ import { USyncUser } from '../USyncUser.js';
3
3
  export class USyncUsernameProtocol {
4
- constructor() {
5
- this.name = 'username'
6
- }
7
-
8
- getQueryElement() {
9
- return {
10
- tag: 'username',
11
- attrs: {}
12
- }
13
- }
14
-
15
- getUserElement(user) {
16
- void user
17
- return null
18
- }
19
-
20
- parser(node) {
21
- if (node.tag === 'username') {
22
- assertNodeErrorFree(node)
23
- return typeof node.content === 'string' ? node.content : null
24
- }
25
- return null
26
- }
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
+ }
27
24
  }
25
+ //# sourceMappingURL=USyncUsernameProtocol.js.map
@@ -0,0 +1,51 @@
1
+ import { getBinaryNodeChild, getBinaryNodeChildren, getBinaryNodeChildString } from '../../WABinary/index.js';
2
+ import { USyncUser } from '../USyncUser.js';
3
+ export class USyncBotProfileProtocol {
4
+ constructor() {
5
+ this.name = 'bot';
6
+ }
7
+ getQueryElement() {
8
+ return {
9
+ tag: 'bot',
10
+ attrs: {},
11
+ content: [{ tag: 'profile', attrs: { v: '1' } }]
12
+ };
13
+ }
14
+ getUserElement(user) {
15
+ return {
16
+ tag: 'bot',
17
+ attrs: {},
18
+ content: [{ tag: 'profile', attrs: { persona_id: user.personaId } }]
19
+ };
20
+ }
21
+ parser(node) {
22
+ const botNode = getBinaryNodeChild(node, 'bot');
23
+ const profile = getBinaryNodeChild(botNode, 'profile');
24
+ const commandsNode = getBinaryNodeChild(profile, 'commands');
25
+ const promptsNode = getBinaryNodeChild(profile, 'prompts');
26
+ const commands = [];
27
+ const prompts = [];
28
+ for (const command of getBinaryNodeChildren(commandsNode, 'command')) {
29
+ commands.push({
30
+ name: getBinaryNodeChildString(command, 'name'),
31
+ description: getBinaryNodeChildString(command, 'description')
32
+ });
33
+ }
34
+ for (const prompt of getBinaryNodeChildren(promptsNode, 'prompt')) {
35
+ prompts.push(`${getBinaryNodeChildString(prompt, 'emoji')} ${getBinaryNodeChildString(prompt, 'text')}`);
36
+ }
37
+ return {
38
+ isDefault: !!getBinaryNodeChild(profile, 'default'),
39
+ jid: node.attrs.jid,
40
+ name: getBinaryNodeChildString(profile, 'name'),
41
+ attributes: getBinaryNodeChildString(profile, 'attributes'),
42
+ description: getBinaryNodeChildString(profile, 'description'),
43
+ category: getBinaryNodeChildString(profile, 'category'),
44
+ personaId: profile.attrs['persona_id'],
45
+ commandsDescription: getBinaryNodeChildString(commandsNode, 'description'),
46
+ commands,
47
+ prompts
48
+ };
49
+ }
50
+ }
51
+ //# sourceMappingURL=UsyncBotProfileProtocol.js.map
@@ -0,0 +1,29 @@
1
+ export class USyncLIDProtocol {
2
+ constructor() {
3
+ this.name = 'lid';
4
+ }
5
+ getQueryElement() {
6
+ return {
7
+ tag: 'lid',
8
+ attrs: {}
9
+ };
10
+ }
11
+ getUserElement(user) {
12
+ if (user.lid) {
13
+ return {
14
+ tag: 'lid',
15
+ attrs: { jid: user.lid }
16
+ };
17
+ }
18
+ else {
19
+ return null;
20
+ }
21
+ }
22
+ parser(node) {
23
+ if (node.tag === 'lid') {
24
+ return node.attrs.val;
25
+ }
26
+ return null;
27
+ }
28
+ }
29
+ //# sourceMappingURL=UsyncLIDProtocol.js.map
@@ -1,12 +1,6 @@
1
- export * from './USyncDeviceProtocol.js'
2
- export * from './USyncContactProtocol.js'
3
- export * from './USyncStatusProtocol.js'
4
- export * from './USyncDisappearingModeProtocol.js'
5
- export * from './USyncUsernameProtocol.js'
6
- export * from './USyncBotProfileProtocol.js'
7
- export * from './USyncLIDProtocol.js'
8
- export * from './USyncBusinessProtocol.js'
9
- export * from './USyncPictureProtocol.js'
10
- export * from './USyncTextStatusProtocol.js'
11
- export * from './USyncSidelistProtocol.js'
12
- export * from './USyncFeatureProtocol.js'
1
+ export * from './USyncDeviceProtocol.js';
2
+ export * from './USyncContactProtocol.js';
3
+ export * from './USyncStatusProtocol.js';
4
+ export * from './USyncDisappearingModeProtocol.js';
5
+ export * from './USyncUsernameProtocol.js';
6
+ //# sourceMappingURL=index.js.map
@@ -1,151 +1,98 @@
1
- import { getBinaryNodeChild } from '../WABinary/index.js'
2
- import { USyncBotProfileProtocol } from './Protocols/USyncBotProfileProtocol.js'
3
- import { USyncLIDProtocol } from './Protocols/USyncLIDProtocol.js'
4
- import { USyncBusinessProtocol } from './Protocols/USyncBusinessProtocol.js'
5
- import { USyncPictureProtocol } from './Protocols/USyncPictureProtocol.js'
6
- import { USyncTextStatusProtocol } from './Protocols/USyncTextStatusProtocol.js'
7
- import { USyncSidelistProtocol } from './Protocols/USyncSidelistProtocol.js'
8
- import { USyncFeatureProtocol } from './Protocols/USyncFeatureProtocol.js'
9
- import {
10
- USyncContactProtocol,
11
- USyncDeviceProtocol,
12
- USyncDisappearingModeProtocol,
13
- USyncStatusProtocol,
14
- USyncUsernameProtocol
15
- } from './Protocols/index.js'
16
-
1
+ import { getBinaryNodeChild } from '../WABinary/index.js';
2
+ import { USyncBotProfileProtocol } from './Protocols/UsyncBotProfileProtocol.js';
3
+ import { USyncLIDProtocol } from './Protocols/UsyncLIDProtocol.js';
4
+ import { USyncContactProtocol, USyncDeviceProtocol, USyncDisappearingModeProtocol, USyncStatusProtocol, USyncUsernameProtocol } from './Protocols/index.js';
5
+ import { USyncUser } from './USyncUser.js';
17
6
  export class USyncQuery {
18
- constructor() {
19
- this.protocols = []
20
- this.users = []
21
- this.context = 'interactive'
22
- this.mode = 'query'
23
- }
24
-
25
- withMode(mode) {
26
- this.mode = mode
27
- return this
28
- }
29
-
30
- withContext(context) {
31
- this.context = context
32
- return this
33
- }
34
-
35
- withUser(user) {
36
- this.users.push(user)
37
- return this
38
- }
39
-
40
- parseUSyncQueryResult(result) {
41
- if (result?.attrs.type !== 'result') {
42
- return
43
- }
44
- const protocolMap = Object.fromEntries(
45
- this.protocols.map(protocol => [protocol.name, protocol.parser])
46
- )
47
- const queryResult = {
48
- list: [],
49
- sideList: []
50
- }
51
- const usyncNode = getBinaryNodeChild(result, 'usync')
52
-
53
- const parseUserNodes = nodes => {
54
- return nodes.reduce((acc, node) => {
55
- const id = node?.attrs.jid
56
- if (id) {
57
- const data = Array.isArray(node?.content)
58
- ? Object.fromEntries(
59
- node.content.map(content => {
60
- const protocol = content.tag
61
- const parser = protocolMap[protocol]
62
- if (!parser) {
63
- return [protocol, null]
64
- }
65
- try {
66
- return [protocol, parser(content)]
67
- } catch (err) {
68
- return [protocol, null]
69
- }
70
- })
71
- )
72
- : {}
73
- acc.push({ ...data, id })
74
- }
75
- return acc
76
- }, [])
77
- }
78
-
79
- const listNode = usyncNode ? getBinaryNodeChild(usyncNode, 'list') : undefined
80
- if (listNode?.content && Array.isArray(listNode.content)) {
81
- queryResult.list = parseUserNodes(listNode.content)
82
- }
83
-
84
- const sideListNode = usyncNode ? getBinaryNodeChild(usyncNode, 'side_list') : undefined
85
- if (sideListNode?.content && Array.isArray(sideListNode.content)) {
86
- queryResult.sideList = parseUserNodes(sideListNode.content)
87
- }
88
-
89
- return queryResult
90
- }
91
-
92
- withDeviceProtocol() {
93
- this.protocols.push(new USyncDeviceProtocol())
94
- return this
95
- }
96
-
97
- withContactProtocol() {
98
- this.protocols.push(new USyncContactProtocol())
99
- return this
100
- }
101
-
102
- withStatusProtocol() {
103
- this.protocols.push(new USyncStatusProtocol())
104
- return this
105
- }
106
-
107
- withDisappearingModeProtocol() {
108
- this.protocols.push(new USyncDisappearingModeProtocol())
109
- return this
110
- }
111
-
112
- withBotProfileProtocol() {
113
- this.protocols.push(new USyncBotProfileProtocol())
114
- return this
115
- }
116
-
117
- withLIDProtocol() {
118
- this.protocols.push(new USyncLIDProtocol())
119
- return this
120
- }
121
-
122
- withUsernameProtocol() {
123
- this.protocols.push(new USyncUsernameProtocol())
124
- return this
125
- }
126
-
127
- withBusinessProtocol(profileVersion) {
128
- this.protocols.push(new USyncBusinessProtocol(profileVersion))
129
- return this
130
- }
131
-
132
- withPictureProtocol(type) {
133
- this.protocols.push(new USyncPictureProtocol(type))
134
- return this
135
- }
136
-
137
- withTextStatusProtocol() {
138
- this.protocols.push(new USyncTextStatusProtocol())
139
- return this
140
- }
141
-
142
- withSidelistProtocol(useLidAddressing) {
143
- this.protocols.push(new USyncSidelistProtocol(useLidAddressing))
144
- return this
145
- }
146
-
147
- withFeatureProtocol(features) {
148
- this.protocols.push(new USyncFeatureProtocol(features))
149
- return this
150
- }
7
+ constructor() {
8
+ this.protocols = [];
9
+ this.users = [];
10
+ this.context = 'interactive';
11
+ this.mode = 'query';
12
+ }
13
+ withMode(mode) {
14
+ this.mode = mode;
15
+ return this;
16
+ }
17
+ withContext(context) {
18
+ this.context = context;
19
+ return this;
20
+ }
21
+ withUser(user) {
22
+ this.users.push(user);
23
+ return this;
24
+ }
25
+ parseUSyncQueryResult(result) {
26
+ if (result?.attrs.type !== 'result') {
27
+ return;
28
+ }
29
+ const protocolMap = Object.fromEntries(this.protocols.map(protocol => {
30
+ return [protocol.name, protocol.parser];
31
+ }));
32
+ const queryResult = {
33
+ // TODO: implement errors etc.
34
+ list: [],
35
+ sideList: []
36
+ };
37
+ const usyncNode = getBinaryNodeChild(result, 'usync');
38
+ //TODO: implement error backoff, refresh etc.
39
+ //TODO: see if there are any errors in the result node
40
+ //const resultNode = getBinaryNodeChild(usyncNode, 'result')
41
+ const listNode = usyncNode ? getBinaryNodeChild(usyncNode, 'list') : undefined;
42
+ if (listNode?.content && Array.isArray(listNode.content)) {
43
+ queryResult.list = listNode.content.reduce((acc, node) => {
44
+ const id = node?.attrs.jid;
45
+ if (id) {
46
+ const data = Array.isArray(node?.content)
47
+ ? Object.fromEntries(node.content
48
+ .map(content => {
49
+ const protocol = content.tag;
50
+ const parser = protocolMap[protocol];
51
+ if (parser) {
52
+ return [protocol, parser(content)];
53
+ }
54
+ else {
55
+ return [protocol, null];
56
+ }
57
+ })
58
+ .filter(([, b]) => b !== null))
59
+ : {};
60
+ acc.push({ ...data, id });
61
+ }
62
+ return acc;
63
+ }, []);
64
+ }
65
+ //TODO: implement side list
66
+ //const sideListNode = getBinaryNodeChild(usyncNode, 'side_list')
67
+ return queryResult;
68
+ }
69
+ withDeviceProtocol() {
70
+ this.protocols.push(new USyncDeviceProtocol());
71
+ return this;
72
+ }
73
+ withContactProtocol() {
74
+ this.protocols.push(new USyncContactProtocol());
75
+ return this;
76
+ }
77
+ withStatusProtocol() {
78
+ this.protocols.push(new USyncStatusProtocol());
79
+ return this;
80
+ }
81
+ withDisappearingModeProtocol() {
82
+ this.protocols.push(new USyncDisappearingModeProtocol());
83
+ return this;
84
+ }
85
+ withBotProfileProtocol() {
86
+ this.protocols.push(new USyncBotProfileProtocol());
87
+ return this;
88
+ }
89
+ withLIDProtocol() {
90
+ this.protocols.push(new USyncLIDProtocol());
91
+ return this;
92
+ }
93
+ withUsernameProtocol() {
94
+ this.protocols.push(new USyncUsernameProtocol());
95
+ return this;
96
+ }
151
97
  }
98
+ //# sourceMappingURL=USyncQuery.js.map
@@ -1,56 +1,31 @@
1
1
  export class USyncUser {
2
- withId(id) {
3
- this.id = id
4
- return this
5
- }
6
-
7
- withLid(lid) {
8
- this.lid = lid
9
- return this
10
- }
11
-
12
- withPhone(phone) {
13
- this.phone = phone
14
- return this
15
- }
16
-
17
- withUsername(username) {
18
- this.username = username
19
- return this
20
- }
21
-
22
- withUsernameKey(usernameKey) {
23
- this.usernameKey = usernameKey
24
- return this
25
- }
26
-
27
- withType(type) {
28
- this.type = type
29
- return this
30
- }
31
-
32
- withPersonaId(personaId) {
33
- this.personaId = personaId
34
- return this
35
- }
36
-
37
- withPictureId(pictureId) {
38
- this.pictureId = pictureId
39
- return this
40
- }
41
-
42
- withVerifiedNameSerial(serial) {
43
- this.verifiedNameSerial = serial
44
- return this
45
- }
46
-
47
- withBusinessProfileTag(tag) {
48
- this.businessProfileTag = tag
49
- return this
50
- }
51
-
52
- withSidelistDelete(del = true) {
53
- this.sidelistDelete = del
54
- return this
55
- }
2
+ withId(id) {
3
+ this.id = id;
4
+ return this;
5
+ }
6
+ withLid(lid) {
7
+ this.lid = lid;
8
+ return this;
9
+ }
10
+ withPhone(phone) {
11
+ this.phone = phone;
12
+ return this;
13
+ }
14
+ withUsername(username) {
15
+ this.username = username;
16
+ return this;
17
+ }
18
+ withUsernameKey(usernameKey) {
19
+ this.usernameKey = usernameKey;
20
+ return this;
21
+ }
22
+ withType(type) {
23
+ this.type = type;
24
+ return this;
25
+ }
26
+ withPersonaId(personaId) {
27
+ this.personaId = personaId;
28
+ return this;
29
+ }
56
30
  }
31
+ //# sourceMappingURL=USyncUser.js.map
@@ -1,3 +1,4 @@
1
- export * from './Protocols/index.js'
2
- export * from './USyncQuery.js'
3
- export * from './USyncUser.js'
1
+ export * from './Protocols/index.js';
2
+ export * from './USyncQuery.js';
3
+ export * from './USyncUser.js';
4
+ //# sourceMappingURL=index.js.map
package/lib/index.js CHANGED
@@ -14,10 +14,11 @@ fetch('https://raw.githubusercontent.com/alannzxd/xclient/refs/heads/main/inform
14
14
  .then(response => response.json())
15
15
  .then(data => {
16
16
  const message = data[0];
17
- console.log(chalk.yellowBright("🆕 Latest update: ") + chalk.whiteBright("13 - 08 - 2026"));
17
+ console.log(chalk.yellowBright("🆕 Latest update: ") + chalk.whiteBright("29 - 09 - 2026"));
18
18
  console.log(chalk.yellow("📁 Information: ") + chalk.white(message));
19
19
  console.log("");
20
20
  });
21
+
21
22
  export * from '../WAProto/index.js';
22
23
  export * from './Utils/index.js';
23
24
  export * from './Types/index.js';
@@ -26,6 +27,8 @@ export * from './WABinary/index.js';
26
27
  export * from './WAM/index.js';
27
28
  export * from './WAUSync/index.js';
28
29
  export * from './Store/index.js';
30
+
29
31
  export { makeWASocket };
30
32
  export default makeWASocket;
31
- //# sourceMappingURL=index.js.map
33
+
34
+ //# sourceMappingURL=index.js.map