@queenanya/baileys 8.3.1 → 8.3.3

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 (91) hide show
  1. package/lib/Defaults/index.d.ts +0 -231
  2. package/lib/Defaults/index.js +1 -17
  3. package/lib/Signal/Group/ciphertext-message.d.ts +9 -0
  4. package/lib/Signal/Group/ciphertext-message.js +15 -0
  5. package/lib/Signal/Group/group-session-builder.d.ts +14 -0
  6. package/lib/Signal/Group/group-session-builder.js +64 -0
  7. package/lib/Signal/Group/group_cipher.d.ts +17 -0
  8. package/lib/Signal/Group/group_cipher.js +96 -0
  9. package/lib/Signal/Group/index.d.ts +11 -0
  10. package/lib/Signal/Group/index.js +57 -0
  11. package/lib/Signal/Group/keyhelper.d.ts +10 -0
  12. package/lib/Signal/Group/keyhelper.js +55 -0
  13. package/lib/Signal/Group/queue-job.d.ts +1 -0
  14. package/lib/Signal/Group/queue-job.js +57 -0
  15. package/lib/Signal/Group/sender-chain-key.d.ts +13 -0
  16. package/lib/Signal/Group/sender-chain-key.js +34 -0
  17. package/lib/Signal/Group/sender-key-distribution-message.d.ts +16 -0
  18. package/lib/Signal/Group/sender-key-distribution-message.js +66 -0
  19. package/lib/Signal/Group/sender-key-message.d.ts +18 -0
  20. package/lib/Signal/Group/sender-key-message.js +69 -0
  21. package/lib/Signal/Group/sender-key-name.d.ts +17 -0
  22. package/lib/Signal/Group/sender-key-name.js +51 -0
  23. package/lib/Signal/Group/sender-key-record.d.ts +30 -0
  24. package/lib/Signal/Group/sender-key-record.js +53 -0
  25. package/lib/Signal/Group/sender-key-state.d.ts +38 -0
  26. package/lib/Signal/Group/sender-key-state.js +99 -0
  27. package/lib/Signal/Group/sender-message-key.d.ts +11 -0
  28. package/{WASignalGroup/sender_message_key.js → lib/Signal/Group/sender-message-key.js} +6 -16
  29. package/lib/Signal/libsignal.js +33 -20
  30. package/lib/Socket/Client/index.d.ts +2 -3
  31. package/lib/Socket/Client/index.js +2 -3
  32. package/lib/Socket/Client/{abstract-socket-client.d.ts → types.d.ts} +1 -0
  33. package/lib/Socket/Client/{web-socket-client.d.ts → websocket.d.ts} +2 -1
  34. package/lib/Socket/Client/{web-socket-client.js → websocket.js} +12 -2
  35. package/lib/Socket/business.d.ts +3 -3
  36. package/lib/Socket/chat-set.d.ts +3 -0
  37. package/lib/Socket/chat-set.js +63 -0
  38. package/lib/Socket/chats.d.ts +1 -1
  39. package/lib/Socket/chats.js +11 -8
  40. package/lib/Socket/groups.d.ts +1 -1
  41. package/lib/Socket/index.d.ts +3 -5
  42. package/lib/Socket/index.js +2 -2
  43. package/lib/Socket/messages-recv.d.ts +3 -3
  44. package/lib/Socket/messages-recv.js +16 -8
  45. package/lib/Socket/messages-send.d.ts +2 -2
  46. package/lib/Socket/messages-send.js +75 -9
  47. package/lib/Socket/newsletter.d.ts +1 -1
  48. package/lib/Socket/socket.d.ts +2 -1
  49. package/lib/Socket/socket.js +71 -14
  50. package/lib/Socket/usync.d.ts +1 -1
  51. package/lib/Store/make-in-memory-store.js +8 -10
  52. package/lib/Types/Auth.d.ts +0 -6
  53. package/lib/Types/Message.d.ts +16 -3
  54. package/lib/Types/Socket.d.ts +3 -3
  55. package/lib/Utils/auth-utils.js +0 -7
  56. package/lib/Utils/event-buffer.js +4 -6
  57. package/lib/Utils/index.d.ts +1 -0
  58. package/lib/Utils/index.js +1 -0
  59. package/lib/Utils/messages-media.js +11 -10
  60. package/lib/Utils/messages.js +10 -2
  61. package/lib/Utils/midea-msg.d.ts +14 -0
  62. package/lib/Utils/midea-msg.js +72 -0
  63. package/lib/Utils/noise-handler.d.ts +1 -2
  64. package/lib/Utils/noise-handler.js +5 -10
  65. package/lib/Utils/use-single-file-auth-state.d.ts +5 -0
  66. package/lib/Utils/use-single-file-auth-state.js +66 -0
  67. package/lib/Utils/validate-connection.d.ts +0 -1
  68. package/lib/Utils/validate-connection.js +10 -44
  69. package/lib/WABinary/jid-utils.d.ts +1 -1
  70. package/lib/WABinary/jid-utils.js +1 -1
  71. package/package.json +2 -1
  72. package/WASignalGroup/GroupProtocol.js +0 -1697
  73. package/WASignalGroup/ciphertext_message.js +0 -16
  74. package/WASignalGroup/group_cipher.js +0 -120
  75. package/WASignalGroup/group_session_builder.js +0 -46
  76. package/WASignalGroup/index.js +0 -5
  77. package/WASignalGroup/keyhelper.js +0 -21
  78. package/WASignalGroup/protobufs.js +0 -3
  79. package/WASignalGroup/queue_job.js +0 -69
  80. package/WASignalGroup/sender_chain_key.js +0 -50
  81. package/WASignalGroup/sender_key_distribution_message.js +0 -78
  82. package/WASignalGroup/sender_key_message.js +0 -92
  83. package/WASignalGroup/sender_key_name.js +0 -70
  84. package/WASignalGroup/sender_key_record.js +0 -56
  85. package/WASignalGroup/sender_key_state.js +0 -129
  86. package/lib/Defaults/phonenumber-mcc.json +0 -223
  87. package/lib/Socket/Client/mobile-socket-client.d.ts +0 -12
  88. package/lib/Socket/Client/mobile-socket-client.js +0 -65
  89. package/lib/Socket/registration.d.ts +0 -266
  90. package/lib/Socket/registration.js +0 -166
  91. /package/lib/Socket/Client/{abstract-socket-client.js → types.js} +0 -0
@@ -0,0 +1,5 @@
1
+ import { AuthenticationState } from '../Types/index';
2
+ export declare const useSingleFileAuthState: (filepath: string) => Promise<{
3
+ state: AuthenticationState;
4
+ saveCreds: () => Promise<void>;
5
+ }>;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.useSingleFileAuthState = void 0;
7
+ const async_lock_1 = __importDefault(require("async-lock"));
8
+ const promises_1 = require("fs/promises");
9
+ const index_1 = require("../../WAProto/index");
10
+ const auth_utils_1 = require("./auth-utils");
11
+ const generics_1 = require("./generics");
12
+ const fileLock = new async_lock_1.default({ maxPending: Infinity });
13
+ const useSingleFileAuthState = async (filepath) => {
14
+ const filePath = filepath + '.json';
15
+ const writeData = (data) => {
16
+ return fileLock.acquire(filePath, () => (0, promises_1.writeFile)(filePath, JSON.stringify(data, generics_1.BufferJSON.replacer)));
17
+ };
18
+ const readData = async () => {
19
+ try {
20
+ const data = await fileLock.acquire(filePath, () => (0, promises_1.readFile)(filePath, { encoding: 'utf-8' }));
21
+ return JSON.parse(data, generics_1.BufferJSON.reviver);
22
+ }
23
+ catch (error) {
24
+ return null;
25
+ }
26
+ };
27
+ const fileInfo = await (0, promises_1.stat)(filePath).catch(() => null);
28
+ if (fileInfo && !fileInfo.isFile()) {
29
+ throw new Error(`A non-file exists at ${filePath}, please delete it or specify a different path.`);
30
+ }
31
+ // Initialize with default credentials if the file is empty or doesn't exist
32
+ const { creds = (0, auth_utils_1.initAuthCreds)(), keys = {} } = await readData() || {};
33
+ return {
34
+ state: {
35
+ creds,
36
+ keys: {
37
+ get: async (type, ids) => {
38
+ const data = {};
39
+ for (const id of ids) {
40
+ const value = keys[`${type}-${id}`];
41
+ data[id] = type === 'app-state-sync-key' && value
42
+ ? index_1.proto.Message.AppStateSyncKeyData.fromObject(value)
43
+ : value;
44
+ }
45
+ return data;
46
+ },
47
+ set: async (data) => {
48
+ for (const category in data) {
49
+ for (const id in data[category]) {
50
+ const value = data[category][id];
51
+ if (value) {
52
+ keys[`${category}-${id}`] = value;
53
+ }
54
+ else {
55
+ delete keys[`${category}-${id}`];
56
+ }
57
+ }
58
+ }
59
+ await writeData({ creds, keys });
60
+ }
61
+ }
62
+ },
63
+ saveCreds: () => writeData({ creds, keys })
64
+ };
65
+ };
66
+ exports.useSingleFileAuthState = useSingleFileAuthState;
@@ -1,7 +1,6 @@
1
1
  import { proto } from '../../WAProto';
2
2
  import type { AuthenticationCreds, SignalCreds, SocketConfig } from '../Types';
3
3
  import { BinaryNode } from '../WABinary';
4
- export declare const generateMobileNode: (config: SocketConfig) => proto.IClientPayload;
5
4
  export declare const generateLoginNode: (userJid: string, config: SocketConfig) => proto.IClientPayload;
6
5
  export declare const generateRegistrationNode: ({ registrationId, signedPreKey, signedIdentityKey }: SignalCreds, config: SocketConfig) => proto.ClientPayload;
7
6
  export declare const configureSuccessfulPairing: (stanza: BinaryNode, { advSecretKey, signedIdentityKey, signalIdentities }: Pick<AuthenticationCreds, "advSecretKey" | "signedIdentityKey" | "signalIdentities">) => {
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.encodeSignedDeviceIdentity = exports.configureSuccessfulPairing = exports.generateRegistrationNode = exports.generateLoginNode = exports.generateMobileNode = void 0;
3
+ exports.encodeSignedDeviceIdentity = exports.configureSuccessfulPairing = exports.generateRegistrationNode = exports.generateLoginNode = void 0;
4
4
  const boom_1 = require("@hapi/boom");
5
5
  const crypto_1 = require("crypto");
6
6
  const WAProto_1 = require("../../WAProto");
@@ -10,30 +10,19 @@ const crypto_2 = require("./crypto");
10
10
  const generics_1 = require("./generics");
11
11
  const signal_1 = require("./signal");
12
12
  const getUserAgent = (config) => {
13
- var _a, _b;
14
- const osVersion = config.mobile ? '15.3.1' : '0.1';
15
- const version = config.mobile ? [2, 24, 6] : config.version;
16
- const device = config.mobile ? 'iPhone_7' : 'Desktop';
17
- const manufacturer = config.mobile ? 'Apple' : '';
18
- const platform = config.mobile ? WAProto_1.proto.ClientPayload.UserAgent.Platform.IOS : WAProto_1.proto.ClientPayload.UserAgent.Platform.WEB;
19
- const phoneId = config.mobile ? { phoneId: config.auth.creds.phoneId } : {};
20
13
  return {
21
14
  appVersion: {
22
- primary: version[0],
23
- secondary: version[1],
24
- tertiary: version[2],
15
+ primary: config.version[0],
16
+ secondary: config.version[1],
17
+ tertiary: config.version[2],
25
18
  },
26
- platform,
19
+ platform: WAProto_1.proto.ClientPayload.UserAgent.Platform.WEB,
27
20
  releaseChannel: WAProto_1.proto.ClientPayload.UserAgent.ReleaseChannel.RELEASE,
28
- mcc: ((_a = config.auth.creds.registration) === null || _a === void 0 ? void 0 : _a.phoneNumberMobileCountryCode) || '000',
29
- mnc: ((_b = config.auth.creds.registration) === null || _b === void 0 ? void 0 : _b.phoneNumberMobileNetworkCode) || '000',
30
- osVersion: osVersion,
31
- manufacturer,
32
- device,
33
- osBuildNumber: osVersion,
21
+ osVersion: '0.1',
22
+ device: 'Desktop',
23
+ osBuildNumber: '0.1',
34
24
  localeLanguageIso6391: 'en',
35
- localeCountryIso31661Alpha2: config.countryCode,
36
- ...phoneId
25
+ localeCountryIso31661Alpha2: 'US'
37
26
  };
38
27
  };
39
28
  const PLATFORM_MAP = {
@@ -53,32 +42,9 @@ const getClientPayload = (config) => {
53
42
  connectReason: WAProto_1.proto.ClientPayload.ConnectReason.USER_ACTIVATED,
54
43
  userAgent: getUserAgent(config),
55
44
  };
56
- if (!config.mobile) {
57
- payload.webInfo = getWebInfo(config);
58
- }
45
+ payload.webInfo = getWebInfo(config);
59
46
  return payload;
60
47
  };
61
- const generateMobileNode = (config) => {
62
- if (!config.auth.creds) {
63
- throw new boom_1.Boom('No registration data found', { data: config });
64
- }
65
- const payload = {
66
- ...getClientPayload(config),
67
- sessionId: Math.floor(Math.random() * 999999999 + 1),
68
- shortConnect: true,
69
- connectAttemptCount: 0,
70
- device: 0,
71
- dnsSource: {
72
- appCached: false,
73
- dnsMethod: WAProto_1.proto.ClientPayload.DNSSource.DNSResolutionMethod.SYSTEM,
74
- },
75
- passive: false, // XMPP heartbeat setting (false: server actively pings) (true: client actively pings)
76
- pushName: 'test',
77
- username: Number(`${config.auth.creds.registration.phoneNumberCountryCode}${config.auth.creds.registration.phoneNumberNationalNumber}`),
78
- };
79
- return WAProto_1.proto.ClientPayload.fromObject(payload);
80
- };
81
- exports.generateMobileNode = generateMobileNode;
82
48
  const generateLoginNode = (userJid, config) => {
83
49
  const { user, device } = (0, WABinary_1.jidDecode)(userJid);
84
50
  const payload = {
@@ -10,7 +10,7 @@ export type JidWithDevice = {
10
10
  device?: number;
11
11
  };
12
12
  export type FullJid = JidWithDevice & {
13
- server: JidServer | string;
13
+ server: JidServer;
14
14
  domainType?: number;
15
15
  };
16
16
  export declare const jidEncode: (user: string | number | null, server: JidServer, device?: number, agent?: number) => string;
@@ -21,7 +21,7 @@ const jidDecode = (jid) => {
21
21
  const [userAgent, device] = userCombined.split(':');
22
22
  const user = userAgent.split('_')[0];
23
23
  return {
24
- server,
24
+ server: server,
25
25
  user,
26
26
  domainType: server === 'lid' ? 1 : 0,
27
27
  device: device ? +device : undefined
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@queenanya/baileys",
3
- "version": "8.3.1",
3
+ "version": "8.3.3",
4
4
  "description": "Custom Baileys WhatsApp API",
5
5
  "keywords": [
6
6
  "baileys",
@@ -38,6 +38,7 @@
38
38
  "audio-decode": "^2.1.3",
39
39
  "axios": "^1.7.3",
40
40
  "cache-manager": "^5.7.6",
41
+ "cheerio": "^1.0.0 || ^1.0.0_rc.12 || ^1.0.0-rc.10",
41
42
  "libphonenumber-js": "^1.10.20",
42
43
  "libsignal": "github:nstar-y/libsignal",
43
44
  "lodash": "^4.17.21",