@d0v3riz/baileys 6.7.19 → 6.7.20

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 (113) hide show
  1. package/README.md +1263 -4
  2. package/WAProto/GenerateStatics.sh +2 -0
  3. package/WAProto/WAProto.proto +4633 -0
  4. package/WAProto/index.d.ts +3212 -122
  5. package/WAProto/index.js +9635 -299
  6. package/lib/Defaults/baileys-version.json +1 -1
  7. package/lib/Defaults/index.d.ts +1 -1
  8. package/lib/Defaults/index.js +16 -16
  9. package/lib/Signal/Group/ciphertext-message.d.ts +9 -0
  10. package/lib/Signal/Group/ciphertext-message.js +15 -0
  11. package/lib/Signal/Group/group-session-builder.d.ts +14 -0
  12. package/lib/Signal/Group/group-session-builder.js +64 -0
  13. package/lib/Signal/Group/group_cipher.d.ts +17 -0
  14. package/lib/Signal/Group/group_cipher.js +96 -0
  15. package/lib/Signal/Group/index.d.ts +11 -0
  16. package/lib/Signal/Group/index.js +57 -0
  17. package/lib/Signal/Group/keyhelper.d.ts +10 -0
  18. package/lib/Signal/Group/keyhelper.js +55 -0
  19. package/lib/Signal/Group/queue-job.d.ts +1 -0
  20. package/lib/Signal/Group/queue-job.js +57 -0
  21. package/lib/Signal/Group/sender-chain-key.d.ts +13 -0
  22. package/lib/Signal/Group/sender-chain-key.js +34 -0
  23. package/lib/Signal/Group/sender-key-distribution-message.d.ts +16 -0
  24. package/lib/Signal/Group/sender-key-distribution-message.js +66 -0
  25. package/lib/Signal/Group/sender-key-message.d.ts +18 -0
  26. package/lib/Signal/Group/sender-key-message.js +69 -0
  27. package/lib/Signal/Group/sender-key-name.d.ts +17 -0
  28. package/lib/Signal/Group/sender-key-name.js +51 -0
  29. package/lib/Signal/Group/sender-key-record.d.ts +30 -0
  30. package/lib/Signal/Group/sender-key-record.js +53 -0
  31. package/lib/Signal/Group/sender-key-state.d.ts +38 -0
  32. package/lib/Signal/Group/sender-key-state.js +99 -0
  33. package/lib/Signal/Group/sender-message-key.d.ts +11 -0
  34. package/{WASignalGroup/sender_message_key.js → lib/Signal/Group/sender-message-key.js} +29 -39
  35. package/lib/Signal/libsignal.js +33 -20
  36. package/lib/Socket/Client/websocket.js +1 -1
  37. package/lib/Socket/business.d.ts +5 -5
  38. package/lib/Socket/business.js +5 -5
  39. package/lib/Socket/chats.d.ts +4 -4
  40. package/lib/Socket/chats.js +70 -70
  41. package/lib/Socket/groups.d.ts +6 -6
  42. package/lib/Socket/groups.js +39 -24
  43. package/lib/Socket/index.d.ts +5 -5
  44. package/lib/Socket/index.js +2 -2
  45. package/lib/Socket/messages-recv.d.ts +5 -5
  46. package/lib/Socket/messages-recv.js +73 -56
  47. package/lib/Socket/messages-send.d.ts +5 -5
  48. package/lib/Socket/messages-send.js +53 -46
  49. package/lib/Socket/socket.d.ts +3 -3
  50. package/lib/Socket/socket.js +22 -29
  51. package/lib/Socket/usync.d.ts +3 -3
  52. package/lib/Socket/usync.js +10 -15
  53. package/lib/Types/Auth.d.ts +1 -1
  54. package/lib/Types/Chat.d.ts +1 -1
  55. package/lib/Types/Chat.js +7 -1
  56. package/lib/Types/Contact.d.ts +4 -0
  57. package/lib/Types/Events.d.ts +1 -1
  58. package/lib/Types/GroupMetadata.d.ts +7 -3
  59. package/lib/Types/Message.d.ts +6 -1
  60. package/lib/Types/Socket.d.ts +3 -3
  61. package/lib/Utils/auth-utils.js +8 -9
  62. package/lib/Utils/baileys-event-stream.js +1 -1
  63. package/lib/Utils/business.js +9 -11
  64. package/lib/Utils/chat-utils.d.ts +4 -4
  65. package/lib/Utils/chat-utils.js +64 -69
  66. package/lib/Utils/crypto.js +4 -10
  67. package/lib/Utils/decode-wa-message.js +6 -2
  68. package/lib/Utils/event-buffer.d.ts +2 -2
  69. package/lib/Utils/event-buffer.js +9 -13
  70. package/lib/Utils/generics.d.ts +1 -1
  71. package/lib/Utils/generics.js +28 -30
  72. package/lib/Utils/history.js +10 -5
  73. package/lib/Utils/link-preview.js +5 -9
  74. package/lib/Utils/lt-hash.js +2 -2
  75. package/lib/Utils/make-mutex.js +1 -1
  76. package/lib/Utils/messages-media.js +40 -55
  77. package/lib/Utils/messages.d.ts +1 -1
  78. package/lib/Utils/messages.js +71 -61
  79. package/lib/Utils/process-message.d.ts +1 -1
  80. package/lib/Utils/process-message.js +25 -30
  81. package/lib/Utils/signal.js +9 -7
  82. package/lib/Utils/use-multi-file-auth-state.js +2 -3
  83. package/lib/Utils/validate-connection.js +17 -22
  84. package/lib/WABinary/constants.d.ts +4 -4
  85. package/lib/WABinary/constants.js +1271 -8
  86. package/lib/WABinary/decode.js +2 -1
  87. package/lib/WABinary/encode.js +2 -2
  88. package/lib/WABinary/generic-utils.js +1 -1
  89. package/lib/WABinary/jid-utils.js +8 -11
  90. package/lib/WAM/constants.js +2252 -2359
  91. package/lib/WAM/encode.js +5 -7
  92. package/lib/WAUSync/Protocols/USyncContactProtocol.js +2 -2
  93. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +2 -2
  94. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +2 -2
  95. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +5 -5
  96. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +1 -1
  97. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +1 -1
  98. package/lib/WAUSync/USyncQuery.js +17 -13
  99. package/package.json +11 -6
  100. package/WASignalGroup/GroupProtocol.js +0 -1697
  101. package/WASignalGroup/ciphertext_message.js +0 -16
  102. package/WASignalGroup/group_cipher.js +0 -120
  103. package/WASignalGroup/group_session_builder.js +0 -46
  104. package/WASignalGroup/index.js +0 -5
  105. package/WASignalGroup/keyhelper.js +0 -21
  106. package/WASignalGroup/protobufs.js +0 -3
  107. package/WASignalGroup/queue_job.js +0 -69
  108. package/WASignalGroup/sender_chain_key.js +0 -50
  109. package/WASignalGroup/sender_key_distribution_message.js +0 -78
  110. package/WASignalGroup/sender_key_message.js +0 -92
  111. package/WASignalGroup/sender_key_name.js +0 -70
  112. package/WASignalGroup/sender_key_record.js +0 -56
  113. package/WASignalGroup/sender_key_state.js +0 -129
package/lib/WAM/encode.js CHANGED
@@ -8,9 +8,7 @@ const encodeWAM = (binaryInfo) => {
8
8
  encodeWAMHeader(binaryInfo);
9
9
  encodeEvents(binaryInfo);
10
10
  console.log(binaryInfo.buffer);
11
- const totalSize = binaryInfo.buffer
12
- .map((a) => a.length)
13
- .reduce((a, b) => a + b);
11
+ const totalSize = binaryInfo.buffer.map(a => a.length).reduce((a, b) => a + b);
14
12
  const buffer = Buffer.alloc(totalSize);
15
13
  let offset = 0;
16
14
  for (const buffer_ of binaryInfo.buffer) {
@@ -40,9 +38,9 @@ function encodeGlobalAttributes(binaryInfo, globals) {
40
38
  }
41
39
  }
42
40
  function encodeEvents(binaryInfo) {
43
- for (const [name, { props, globals },] of binaryInfo.events.map((a) => Object.entries(a)[0])) {
41
+ for (const [name, { props, globals }] of binaryInfo.events.map(a => Object.entries(a)[0])) {
44
42
  encodeGlobalAttributes(binaryInfo, globals);
45
- const event = constants_1.WEB_EVENTS.find((a) => a.name === name);
43
+ const event = constants_1.WEB_EVENTS.find(a => a.name === name);
46
44
  const props_ = Object.entries(props);
47
45
  let extended = false;
48
46
  for (const [, value] of props_) {
@@ -52,8 +50,8 @@ function encodeEvents(binaryInfo) {
52
50
  binaryInfo.buffer.push(serializeData(event.id, -event.weight, eventFlag));
53
51
  for (let i = 0; i < props_.length; i++) {
54
52
  const [key, _value] = props_[i];
55
- const id = (event.props)[key][0];
56
- extended = i < (props_.length - 1);
53
+ const id = event.props[key][0];
54
+ extended = i < props_.length - 1;
57
55
  let value = _value;
58
56
  if (typeof value === 'boolean') {
59
57
  value = value ? 1 : 0;
@@ -9,7 +9,7 @@ class USyncContactProtocol {
9
9
  getQueryElement() {
10
10
  return {
11
11
  tag: 'contact',
12
- attrs: {},
12
+ attrs: {}
13
13
  };
14
14
  }
15
15
  getUserElement(user) {
@@ -17,7 +17,7 @@ class USyncContactProtocol {
17
17
  return {
18
18
  tag: 'contact',
19
19
  attrs: {},
20
- content: user.phone,
20
+ content: user.phone
21
21
  };
22
22
  }
23
23
  parser(node) {
@@ -10,8 +10,8 @@ class USyncDeviceProtocol {
10
10
  return {
11
11
  tag: 'devices',
12
12
  attrs: {
13
- version: '2',
14
- },
13
+ version: '2'
14
+ }
15
15
  };
16
16
  }
17
17
  getUserElement( /* user: USyncUser */) {
@@ -9,7 +9,7 @@ class USyncDisappearingModeProtocol {
9
9
  getQueryElement() {
10
10
  return {
11
11
  tag: 'disappearing_mode',
12
- attrs: {},
12
+ attrs: {}
13
13
  };
14
14
  }
15
15
  getUserElement() {
@@ -22,7 +22,7 @@ class USyncDisappearingModeProtocol {
22
22
  const setAt = new Date(+((node === null || node === void 0 ? void 0 : node.attrs.t) || 0) * 1000);
23
23
  return {
24
24
  duration,
25
- setAt,
25
+ setAt
26
26
  };
27
27
  }
28
28
  }
@@ -9,20 +9,20 @@ class USyncStatusProtocol {
9
9
  getQueryElement() {
10
10
  return {
11
11
  tag: 'status',
12
- attrs: {},
12
+ attrs: {}
13
13
  };
14
14
  }
15
15
  getUserElement() {
16
16
  return null;
17
17
  }
18
18
  parser(node) {
19
- var _a;
19
+ var _a, _b, _c;
20
20
  if (node.tag === 'status') {
21
21
  (0, WABinary_1.assertNodeErrorFree)(node);
22
- let status = node === null || node === void 0 ? void 0 : node.content.toString();
22
+ let status = (_b = (_a = node === null || node === void 0 ? void 0 : node.content) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : null;
23
23
  const setAt = new Date(+((node === null || node === void 0 ? void 0 : node.attrs.t) || 0) * 1000);
24
24
  if (!status) {
25
- if (+((_a = node.attrs) === null || _a === void 0 ? void 0 : _a.code) === 401) {
25
+ if (+((_c = node.attrs) === null || _c === void 0 ? void 0 : _c.code) === 401) {
26
26
  status = '';
27
27
  }
28
28
  else {
@@ -34,7 +34,7 @@ class USyncStatusProtocol {
34
34
  }
35
35
  return {
36
36
  status,
37
- setAt,
37
+ setAt
38
38
  };
39
39
  }
40
40
  }
@@ -17,7 +17,7 @@ class USyncBotProfileProtocol {
17
17
  return {
18
18
  tag: 'bot',
19
19
  attrs: {},
20
- content: [{ tag: 'profile', attrs: { 'persona_id': user.personaId } }]
20
+ content: [{ tag: 'profile', attrs: { persona_id: user.personaId } }]
21
21
  };
22
22
  }
23
23
  parser(node) {
@@ -8,7 +8,7 @@ class USyncLIDProtocol {
8
8
  getQueryElement() {
9
9
  return {
10
10
  tag: 'lid',
11
- attrs: {},
11
+ attrs: {}
12
12
  };
13
13
  }
14
14
  getUserElement() {
@@ -28,13 +28,13 @@ class USyncQuery {
28
28
  if (result.attrs.type !== 'result') {
29
29
  return;
30
30
  }
31
- const protocolMap = Object.fromEntries(this.protocols.map((protocol) => {
31
+ const protocolMap = Object.fromEntries(this.protocols.map(protocol => {
32
32
  return [protocol.name, protocol.parser];
33
33
  }));
34
34
  const queryResult = {
35
35
  // TODO: implement errors etc.
36
36
  list: [],
37
- sideList: [],
37
+ sideList: []
38
38
  };
39
39
  const usyncNode = (0, WABinary_1.getBinaryNodeChild)(result, 'usync');
40
40
  //TODO: implement error backoff, refresh etc.
@@ -42,18 +42,22 @@ class USyncQuery {
42
42
  //const resultNode = getBinaryNodeChild(usyncNode, 'result')
43
43
  const listNode = (0, WABinary_1.getBinaryNodeChild)(usyncNode, 'list');
44
44
  if (Array.isArray(listNode === null || listNode === void 0 ? void 0 : listNode.content) && typeof listNode !== 'undefined') {
45
- queryResult.list = listNode.content.map((node) => {
45
+ queryResult.list = listNode.content.map(node => {
46
46
  const id = node === null || node === void 0 ? void 0 : node.attrs.jid;
47
- const data = Array.isArray(node === null || node === void 0 ? void 0 : node.content) ? Object.fromEntries(node.content.map((content) => {
48
- const protocol = content.tag;
49
- const parser = protocolMap[protocol];
50
- if (parser) {
51
- return [protocol, parser(content)];
52
- }
53
- else {
54
- return [protocol, null];
55
- }
56
- }).filter(([, b]) => b !== null)) : {};
47
+ const data = Array.isArray(node === null || node === void 0 ? void 0 : node.content)
48
+ ? Object.fromEntries(node.content
49
+ .map(content => {
50
+ const protocol = content.tag;
51
+ const parser = protocolMap[protocol];
52
+ if (parser) {
53
+ return [protocol, parser(content)];
54
+ }
55
+ else {
56
+ return [protocol, null];
57
+ }
58
+ })
59
+ .filter(([, b]) => b !== null))
60
+ : {};
57
61
  return { ...data, id };
58
62
  });
59
63
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@d0v3riz/baileys",
3
- "version": "6.7.19",
3
+ "version": "6.7.20",
4
4
  "description": "A WebSockets library for interacting with WhatsApp Web",
5
5
  "keywords": [
6
6
  "whatsapp",
@@ -16,9 +16,7 @@
16
16
  "types": "lib/index.d.ts",
17
17
  "files": [
18
18
  "lib/*",
19
- "WAProto/*.ts",
20
- "WAProto/*.js",
21
- "WASignalGroup/*.js",
19
+ "WAProto/*",
22
20
  "engine-requirements.js"
23
21
  ],
24
22
  "scripts": {
@@ -30,8 +28,9 @@
30
28
  "changelog:update": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0",
31
29
  "example": "node --inspect -r ts-node/register Example/example.ts",
32
30
  "gen:protobuf": "sh WAProto/GenerateStatics.sh",
31
+ "format": "prettier --write \"src/**/*.{ts,js,json,md}\"",
33
32
  "lint": "eslint src --ext .js,.ts",
34
- "lint:fix": "yarn lint --fix",
33
+ "lint:fix": "yarn format && yarn lint --fix",
35
34
  "prepack": "tsc",
36
35
  "prepare": "tsc",
37
36
  "preinstall": "node ./engine-requirements.js",
@@ -42,7 +41,6 @@
42
41
  "@cacheable/node-cache": "^1.4.0",
43
42
  "@d0v3riz/ws": "^8.13.0",
44
43
  "@hapi/boom": "^9.1.3",
45
- "@whiskeysockets/eslint-config": "github:whiskeysockets/eslint-config",
46
44
  "async-mutex": "^0.5.0",
47
45
  "axios": "^1.8.4",
48
46
  "libsignal": "github:d0v3riz/libsignal-node",
@@ -56,13 +54,20 @@
56
54
  "@types/jest": "^27.5.1",
57
55
  "@types/node": "^16.0.0",
58
56
  "@types/ws": "^8.0.0",
57
+ "@typescript-eslint/eslint-plugin": "^8.32.0",
58
+ "@typescript-eslint/parser": "^8.32.0",
59
+ "@whiskeysockets/eslint-config": "github:whiskeysockets/eslint-config",
59
60
  "conventional-changelog-cli": "^2.2.2",
60
61
  "eslint": "^8.0.0",
62
+ "eslint-config-prettier": "^10.1.2",
63
+ "eslint-plugin-prettier": "^5.4.0",
61
64
  "jest": "^29.7.0",
62
65
  "jimp": "^0.16.1",
63
66
  "json": "^11.0.0",
64
67
  "link-preview-js": "^3.0.0",
65
68
  "open": "^8.4.2",
69
+ "prettier": "^3.5.3",
70
+ "protobufjs-cli": "^1.1.3",
66
71
  "release-it": "^15.10.3",
67
72
  "sharp": "^0.32.6",
68
73
  "ts-jest": "^29.3.2",