@zetagoaurum-socket/decagramton 3.2.5 → 3.2.7
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.
- package/README.md +91 -91
- package/WAProto/index.js +56886 -17506
- package/engine-requirements.js +91 -0
- package/lib/Defaults/index.js +47 -2
- package/lib/Signal/Group/ciphertext-message.d.ts +9 -0
- package/lib/Signal/Group/ciphertext-message.js +15 -0
- package/lib/Signal/Group/group-session-builder.d.ts +14 -0
- package/lib/Signal/Group/group-session-builder.js +64 -0
- package/lib/Signal/Group/group_cipher.d.ts +17 -0
- package/lib/Signal/Group/group_cipher.js +96 -0
- package/lib/Signal/Group/index.d.ts +11 -0
- package/lib/Signal/Group/index.js +57 -0
- package/lib/Signal/Group/keyhelper.d.ts +10 -0
- package/lib/Signal/Group/keyhelper.js +55 -0
- package/lib/Signal/Group/queue-job.d.ts +1 -0
- package/lib/Signal/Group/queue-job.js +57 -0
- package/lib/Signal/Group/sender-chain-key.d.ts +13 -0
- package/lib/Signal/Group/sender-chain-key.js +34 -0
- package/lib/Signal/Group/sender-key-distribution-message.d.ts +16 -0
- package/lib/Signal/Group/sender-key-distribution-message.js +66 -0
- package/lib/Signal/Group/sender-key-message.d.ts +18 -0
- package/lib/Signal/Group/sender-key-message.js +69 -0
- package/lib/Signal/Group/sender-key-name.d.ts +17 -0
- package/lib/Signal/Group/sender-key-name.js +51 -0
- package/lib/Signal/Group/sender-key-record.d.ts +30 -0
- package/lib/Signal/Group/sender-key-record.js +53 -0
- package/lib/Signal/Group/sender-key-state.d.ts +38 -0
- package/lib/Signal/Group/sender-key-state.js +99 -0
- package/lib/Signal/Group/sender-message-key.d.ts +11 -0
- package/{WASignalGroup/sender_message_key.js → lib/Signal/Group/sender-message-key.js} +6 -16
- package/lib/Signal/libsignal.js +51 -29
- package/lib/Socket/business.d.ts +3 -2
- package/lib/Socket/chats.d.ts +215 -28
- package/lib/Socket/chats.js +166 -70
- package/lib/Socket/dugong.d.ts +254 -0
- package/lib/Socket/dugong.js +432 -141
- package/lib/Socket/groups.js +20 -23
- package/lib/Socket/index.js +2 -15
- package/lib/Socket/messages-recv.d.ts +56 -55
- package/lib/Socket/messages-recv.js +367 -131
- package/lib/Socket/messages-send.d.ts +3 -2
- package/lib/Socket/messages-send.js +423 -380
- package/lib/Socket/newsletter.js +147 -21
- package/lib/Socket/socket.js +156 -148
- package/lib/Socket/usync.d.ts +3 -3
- package/lib/Types/GroupMetadata.d.ts +1 -0
- package/lib/Types/Newsletter.d.ts +97 -86
- package/lib/Types/Newsletter.js +38 -32
- package/lib/Types/USync.d.ts +25 -0
- package/lib/Types/USync.js +2 -0
- package/lib/Utils/anti-crash.js +31 -0
- package/lib/Utils/chat-utils.js +6 -1
- package/lib/Utils/generics.js +66 -34
- package/lib/Utils/history.js +6 -1
- package/lib/Utils/index.js +0 -1
- package/lib/Utils/link-preview.js +1 -1
- package/lib/Utils/messages-media.js +145 -57
- package/lib/Utils/messages.js +92 -306
- package/lib/Utils/signal.js +48 -46
- package/lib/Utils/use-multi-file-auth-state.js +45 -6
- package/lib/Utils/validate-connection.js +89 -65
- package/lib/WABinary/constants.d.ts +27 -24
- package/lib/WABinary/encode.js +160 -123
- package/lib/WABinary/generic-utils.d.ts +2 -0
- package/lib/WABinary/generic-utils.js +124 -36
- package/lib/WABinary/jid-utils.js +5 -26
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +56 -0
- package/package.json +107 -101
- package/LICENSE +0 -21
- package/WAProto/GenerateStatics.sh +0 -4
- package/WAProto/WAProto.proto +0 -3344
- package/WAProto/index.d.ts +0 -37016
- package/WASignalGroup/GroupProtocol.js +0 -1697
- package/WASignalGroup/ciphertext_message.js +0 -16
- package/WASignalGroup/group_cipher.js +0 -120
- package/WASignalGroup/group_session_builder.js +0 -46
- package/WASignalGroup/index.js +0 -5
- package/WASignalGroup/keyhelper.js +0 -21
- package/WASignalGroup/protobufs.js +0 -3
- package/WASignalGroup/queue_job.js +0 -69
- package/WASignalGroup/sender_chain_key.js +0 -50
- package/WASignalGroup/sender_key_distribution_message.js +0 -78
- package/WASignalGroup/sender_key_message.js +0 -92
- package/WASignalGroup/sender_key_name.js +0 -70
- package/WASignalGroup/sender_key_record.js +0 -56
- package/WASignalGroup/sender_key_state.js +0 -129
- package/decagramton.jpg +0 -0
- package/lib/Utils/rate-limiter.js +0 -55
- package/lib/WAUSync/Fall +0 -1
- package/lib/WAUSync/Protocols/Fal +0 -1
|
@@ -1,92 +1,103 @@
|
|
|
1
|
-
import { proto } from
|
|
2
|
-
|
|
3
|
-
export type
|
|
4
|
-
export type
|
|
5
|
-
export type
|
|
6
|
-
export type
|
|
1
|
+
import { proto } from "../../WAProto"
|
|
2
|
+
|
|
3
|
+
export type NewsletterReactionMode = "ALL" | "BASIC" | "NONE"
|
|
4
|
+
export type NewsletterState = "ACTIVE" | "GEOSUSPENDED" | "SUSPENDED"
|
|
5
|
+
export type NewsletterVerification = "VERIFIED" | "UNVERIFIED"
|
|
6
|
+
export type NewsletterMute = "ON" | "OFF" | "UNDEFINED"
|
|
7
|
+
export type NewsletterViewRole = "ADMIN" | "GUEST" | "OWNER" | "SUBSCRIBER"
|
|
8
|
+
|
|
7
9
|
export type NewsletterViewerMetadata = {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
10
|
+
mute: NewsletterMute
|
|
11
|
+
view_role: NewsletterViewRole
|
|
12
|
+
}
|
|
13
|
+
|
|
11
14
|
export type NewsletterMetadata = {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
15
|
+
/** jid of newsletter */
|
|
16
|
+
id: string
|
|
17
|
+
/** state of newsletter */
|
|
18
|
+
state: NewsletterState
|
|
19
|
+
/** creation timestamp of newsletter */
|
|
20
|
+
creation_time: number
|
|
21
|
+
/** name of newsletter */
|
|
22
|
+
name: string
|
|
23
|
+
/** timestamp of last name modification of newsletter */
|
|
24
|
+
nameTime: number
|
|
25
|
+
/** description of newsletter */
|
|
26
|
+
description: string
|
|
27
|
+
/** timestamp of last description modification of newsletter */
|
|
28
|
+
descriptionTime: number
|
|
29
|
+
/** invite code of newsletter */
|
|
30
|
+
invite: string
|
|
31
|
+
/** direct path of picture */
|
|
32
|
+
picture: string | null
|
|
33
|
+
/** direct path of picture preview (lower quality) */
|
|
34
|
+
preview: string | null
|
|
35
|
+
/** reaction mode of newsletter */
|
|
36
|
+
reaction_codes?: NewsletterReactionMode
|
|
37
|
+
/** subscribers count of newsletter */
|
|
38
|
+
subscribers: number
|
|
39
|
+
/** verification state of newsletter */
|
|
40
|
+
verification: NewsletterVerification
|
|
41
|
+
/** viewer metadata */
|
|
42
|
+
viewer_metadata: NewsletterViewerMetadata
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export type SubscriberAction = "promote" | "demote"
|
|
46
|
+
|
|
44
47
|
export type ReactionModeUpdate = {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
};
|
|
51
|
-
/**only exists reaction mode update */
|
|
52
|
-
export type NewsletterSettingsUpdate = ReactionModeUpdate;
|
|
53
|
-
export type NewsletterReaction = {
|
|
54
|
-
count: number;
|
|
55
|
-
code: string;
|
|
56
|
-
};
|
|
57
|
-
export type NewsletterFetchedUpdate = {
|
|
58
|
-
/**id of message in newsletter, starts from 100 */
|
|
59
|
-
server_id: string;
|
|
60
|
-
/**count of views in this message */
|
|
61
|
-
views?: number;
|
|
62
|
-
/**reactions in this message */
|
|
63
|
-
reactions: NewsletterReaction[];
|
|
64
|
-
/**the message, if you requested only updates, you will not receive message */
|
|
65
|
-
message?: proto.IWebMessageInfo;
|
|
66
|
-
};
|
|
67
|
-
export declare enum MexOperations {
|
|
68
|
-
PROMOTE = "NotificationNewsletterAdminPromote",
|
|
69
|
-
DEMOTE = "NotificationNewsletterAdminDemote",
|
|
70
|
-
UPDATE = "NotificationNewsletterUpdate"
|
|
48
|
+
reaction_codes: {
|
|
49
|
+
blocked_codes: null
|
|
50
|
+
enabled_ts_sec: null
|
|
51
|
+
value: NewsletterReactionMode
|
|
52
|
+
}
|
|
71
53
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
54
|
+
|
|
55
|
+
/** only exists reaction mode update */
|
|
56
|
+
export type NewsletterSettingsUpdate = ReactionModeUpdate
|
|
57
|
+
|
|
58
|
+
export type NewsletterReaction = {
|
|
59
|
+
count: number
|
|
60
|
+
code: string
|
|
79
61
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
DELETE = "8316537688363079",
|
|
91
|
-
DEMOTE = "6551828931592903"
|
|
62
|
+
|
|
63
|
+
export type NewsletterFetchedUpdate = {
|
|
64
|
+
/** id of message in newsletter, starts from 100 */
|
|
65
|
+
server_id: string
|
|
66
|
+
/** count of views in this message */
|
|
67
|
+
views?: number
|
|
68
|
+
/** reactions in this message */
|
|
69
|
+
reactions: NewsletterReaction[]
|
|
70
|
+
/** the message, if you requested only updates, you will not receive message */
|
|
71
|
+
message?: proto.IWebMessageInfo
|
|
92
72
|
}
|
|
73
|
+
|
|
74
|
+
export const MexOperations = {
|
|
75
|
+
PROMOTE: "NotificationNewsletterAdminPromote",
|
|
76
|
+
DEMOTE: "NotificationNewsletterAdminDemote",
|
|
77
|
+
UPDATE: "NotificationNewsletterUpdate"
|
|
78
|
+
} as const
|
|
79
|
+
|
|
80
|
+
export const XWAPaths = {
|
|
81
|
+
PROMOTE: "xwa2_notify_newsletter_admin_promote",
|
|
82
|
+
DEMOTE: "xwa2_notify_newsletter_admin_demote",
|
|
83
|
+
ADMIN_COUNT: "xwa2_newsletter_admin",
|
|
84
|
+
CREATE: "xwa2_newsletter_create",
|
|
85
|
+
NEWSLETTER: "xwa2_newsletter",
|
|
86
|
+
SUBSCRIBED: "xwa2_newsletter_subscribed",
|
|
87
|
+
METADATA_UPDATE: "xwa2_notify_newsletter_on_metadata_update"
|
|
88
|
+
} as const
|
|
89
|
+
|
|
90
|
+
export const QueryIds = {
|
|
91
|
+
JOB_MUTATION: "7150902998257522",
|
|
92
|
+
METADATA: "6620195908089573",
|
|
93
|
+
UNFOLLOW: "7238632346214362",
|
|
94
|
+
FOLLOW: "7871414976211147",
|
|
95
|
+
UNMUTE: "7337137176362961",
|
|
96
|
+
MUTE: "25151904754424642",
|
|
97
|
+
CREATE: "6996806640408138",
|
|
98
|
+
ADMIN_COUNT: "7130823597031706",
|
|
99
|
+
CHANGE_OWNER: "7341777602580933",
|
|
100
|
+
DELETE: "8316537688363079",
|
|
101
|
+
DEMOTE: "6551828931592903",
|
|
102
|
+
SUBSCRIBED: "6388546374527196"
|
|
103
|
+
} as const
|
package/lib/Types/Newsletter.js
CHANGED
|
@@ -1,32 +1,38 @@
|
|
|
1
|
-
"use strict"
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
1
|
+
"use strict"
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true })
|
|
4
|
+
|
|
5
|
+
const MexOperations = {
|
|
6
|
+
PROMOTE: "NotificationNewsletterAdminPromote",
|
|
7
|
+
DEMOTE: "NotificationNewsletterAdminDemote",
|
|
8
|
+
UPDATE: "NotificationNewsletterUpdate"
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const XWAPaths = {
|
|
12
|
+
PROMOTE: "xwa2_notify_newsletter_admin_promote",
|
|
13
|
+
DEMOTE: "xwa2_notify_newsletter_admin_demote",
|
|
14
|
+
ADMIN_COUNT: "xwa2_newsletter_admin",
|
|
15
|
+
CREATE: "xwa2_newsletter_create",
|
|
16
|
+
NEWSLETTER: "xwa2_newsletter",
|
|
17
|
+
SUBSCRIBED: "xwa2_newsletter_subscribed",
|
|
18
|
+
METADATA_UPDATE: "xwa2_notify_newsletter_on_metadata_update"
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const QueryIds = {
|
|
22
|
+
JOB_MUTATION: "7150902998257522",
|
|
23
|
+
METADATA: "6620195908089573",
|
|
24
|
+
UNFOLLOW: "7238632346214362",
|
|
25
|
+
FOLLOW: "7871414976211147",
|
|
26
|
+
UNMUTE: "7337137176362961",
|
|
27
|
+
MUTE: "25151904754424642",
|
|
28
|
+
CREATE: "6996806640408138",
|
|
29
|
+
ADMIN_COUNT: "7130823597031706",
|
|
30
|
+
CHANGE_OWNER: "7341777602580933",
|
|
31
|
+
DELETE: "8316537688363079",
|
|
32
|
+
DEMOTE: "6551828931592903",
|
|
33
|
+
SUBSCRIBED: "6388546374527196"
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
exports.MexOperations = MexOperations
|
|
37
|
+
exports.XWAPaths = XWAPaths
|
|
38
|
+
exports.QueryIds = QueryIds
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { BinaryNode } from '../WABinary';
|
|
2
|
+
import { USyncUser } from '../WAUSync';
|
|
3
|
+
/**
|
|
4
|
+
* Defines the interface for a USyncQuery protocol
|
|
5
|
+
*/
|
|
6
|
+
export interface USyncQueryProtocol {
|
|
7
|
+
/**
|
|
8
|
+
* The name of the protocol
|
|
9
|
+
*/
|
|
10
|
+
name: string;
|
|
11
|
+
/**
|
|
12
|
+
* Defines what goes inside the query part of a USyncQuery
|
|
13
|
+
*/
|
|
14
|
+
getQueryElement: () => BinaryNode;
|
|
15
|
+
/**
|
|
16
|
+
* Defines what goes inside the user part of a USyncQuery
|
|
17
|
+
*/
|
|
18
|
+
getUserElement: (user: USyncUser) => BinaryNode | null;
|
|
19
|
+
/**
|
|
20
|
+
* Parse the result of the query
|
|
21
|
+
* @param data Data from the result
|
|
22
|
+
* @returns Whatever the protocol is supposed to return
|
|
23
|
+
*/
|
|
24
|
+
parser: (data: BinaryNode) => unknown;
|
|
25
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const logger_1 = __importDefault(require("./logger"));
|
|
9
|
+
|
|
10
|
+
module.exports = () => {
|
|
11
|
+
// Override logger for styled output if needed, or just add process handlers
|
|
12
|
+
|
|
13
|
+
process.on('uncaughtException', (err) => {
|
|
14
|
+
console.log(chalk_1.default.red.bold('╔════════════════════════════════════════════╗'));
|
|
15
|
+
console.log(chalk_1.default.red.bold('║ [ANTI-KILL] PROTECTION ║'));
|
|
16
|
+
console.log(chalk_1.default.red.bold('║ Uncaught Exception! ║'));
|
|
17
|
+
console.log(chalk_1.default.red.bold('╚════════════════════════════════════════════╝'));
|
|
18
|
+
console.error(chalk_1.default.red(err.message));
|
|
19
|
+
if (err.stack) console.error(chalk_1.default.gray(err.stack));
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
process.on('unhandledRejection', (reason, promise) => {
|
|
23
|
+
console.log(chalk_1.default.red.bold('╔════════════════════════════════════════════╗'));
|
|
24
|
+
console.log(chalk_1.default.red.bold('║ [ANTI-KILL] PROTECTION ║'));
|
|
25
|
+
console.log(chalk_1.default.red.bold('║ Unhandled Rejection! ║'));
|
|
26
|
+
console.log(chalk_1.default.red.bold('╚════════════════════════════════════════════╝'));
|
|
27
|
+
console.error(chalk_1.default.red(reason));
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
logger_1.default.info('Anti-kill handlers initialized');
|
|
31
|
+
};
|
package/lib/Utils/chat-utils.js
CHANGED
|
@@ -633,7 +633,12 @@ const processSyncAction = (syncAction, ev, me, initialSyncOpts, logger) => {
|
|
|
633
633
|
});
|
|
634
634
|
}
|
|
635
635
|
else if (action === null || action === void 0 ? void 0 : action.contactAction) {
|
|
636
|
-
ev.emit('contacts.upsert', [{
|
|
636
|
+
ev.emit('contacts.upsert', [{
|
|
637
|
+
id: id,
|
|
638
|
+
name: action.contactAction.fullName,
|
|
639
|
+
lid: action.contactAction.lidJid || undefined,
|
|
640
|
+
jid: (0, WABinary_1.isJidUser)(id) ? id : undefined
|
|
641
|
+
}]);
|
|
637
642
|
}
|
|
638
643
|
else if (action === null || action === void 0 ? void 0 : action.pushNameSetting) {
|
|
639
644
|
const name = (_b = action === null || action === void 0 ? void 0 : action.pushNameSetting) === null || _b === void 0 ? void 0 : _b.name;
|
package/lib/Utils/generics.js
CHANGED
|
@@ -8,10 +8,12 @@ const boom_1 = require("@hapi/boom");
|
|
|
8
8
|
const axios_1 = __importDefault(require("axios"));
|
|
9
9
|
const crypto_1 = require("crypto");
|
|
10
10
|
const os_1 = require("os");
|
|
11
|
+
const fetch_1 = require("node-fetch")
|
|
11
12
|
const WAProto_1 = require("../../WAProto");
|
|
12
13
|
const baileys_version_json_1 = require("../Defaults/baileys-version.json");
|
|
13
14
|
const Types_1 = require("../Types");
|
|
14
15
|
const WABinary_1 = require("../WABinary");
|
|
16
|
+
const baileysVersion = [2, 3000, 1027934701]
|
|
15
17
|
const PLATFORM_MAP = {
|
|
16
18
|
'aix': 'AIX',
|
|
17
19
|
'darwin': 'Mac OS',
|
|
@@ -19,14 +21,16 @@ const PLATFORM_MAP = {
|
|
|
19
21
|
'android': 'Android',
|
|
20
22
|
'freebsd': 'FreeBSD',
|
|
21
23
|
'openbsd': 'OpenBSD',
|
|
22
|
-
'sunos': 'Solaris'
|
|
24
|
+
'sunos': 'Solaris',
|
|
25
|
+
'linux': undefined,
|
|
26
|
+
'haiku': undefined,
|
|
27
|
+
'cygwin': undefined,
|
|
28
|
+
'netbsd': undefined
|
|
23
29
|
};
|
|
24
|
-
exports.Browsers = {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
windows: (browser) => ['Windows', browser, '10.0.22631'],
|
|
29
|
-
appropriate: (browser) => [PLATFORM_MAP[(0, os_1.platform)()] || 'Ubuntu', browser, (0, os_1.release)()]
|
|
30
|
+
exports.Browsers = (browser) => {
|
|
31
|
+
const osName = PLATFORM_MAP[os_1.platform()] || 'Ubuntu';
|
|
32
|
+
const osRelease = os_1.release();
|
|
33
|
+
return [osName, browser, osRelease];
|
|
30
34
|
};
|
|
31
35
|
|
|
32
36
|
const getPlatformId = (browser) => {
|
|
@@ -172,7 +176,7 @@ const generateMessageIDV2 = (userId) => {
|
|
|
172
176
|
};
|
|
173
177
|
exports.generateMessageIDV2 = generateMessageIDV2;
|
|
174
178
|
// generate a random ID to attach to a message
|
|
175
|
-
const generateMessageID = () => '
|
|
179
|
+
const generateMessageID = () => 'ILSYM-' + (0, crypto_1.randomBytes)(6).toString('hex').toUpperCase();
|
|
176
180
|
exports.generateMessageID = generateMessageID;
|
|
177
181
|
function bindWaitForEvent(ev, event) {
|
|
178
182
|
return async (check, timeoutMs) => {
|
|
@@ -215,12 +219,61 @@ const printQRIfNecessaryListener = (ev, logger) => {
|
|
|
215
219
|
});
|
|
216
220
|
};
|
|
217
221
|
exports.printQRIfNecessaryListener = printQRIfNecessaryListener;
|
|
222
|
+
/**
|
|
223
|
+
* utility that fetches latest baileys version from the master branch.
|
|
224
|
+
* Use to ensure your WA connection is always on the latest version
|
|
225
|
+
*/
|
|
226
|
+
const fetchLatestWaWebVersion = async (options = {}) => {
|
|
227
|
+
try {
|
|
228
|
+
const defaultHeaders = {
|
|
229
|
+
'User-Agent':
|
|
230
|
+
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
|
|
231
|
+
'Accept': '*/*'
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
const headers = { ...defaultHeaders, ...options.headers }
|
|
235
|
+
|
|
236
|
+
const response = await fetch_1('https://web.whatsapp.com/sw.js', {
|
|
237
|
+
method: 'GET',
|
|
238
|
+
headers
|
|
239
|
+
})
|
|
240
|
+
|
|
241
|
+
if (!response.ok) {
|
|
242
|
+
throw new Error(`Failed to fetch sw.js: ${response.status} ${response.statusText}`)
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
const data = await response.text()
|
|
246
|
+
const regex = /"client_revision":\s*(\d+)/ // regex cukup begini untuk Node
|
|
247
|
+
const match = data.match(regex)
|
|
248
|
+
|
|
249
|
+
if (!match || !match[1]) {
|
|
250
|
+
return {
|
|
251
|
+
version: baileysVersion,
|
|
252
|
+
isLatest: false,
|
|
253
|
+
error: { message: 'Client revision not found' }
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
const clientRevision = match[1]
|
|
258
|
+
return {
|
|
259
|
+
version: [2, 3000, +clientRevision],
|
|
260
|
+
isLatest: true
|
|
261
|
+
}
|
|
262
|
+
} catch (error) {
|
|
263
|
+
return {
|
|
264
|
+
version: baileysVersion,
|
|
265
|
+
isLatest: false,
|
|
266
|
+
error
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
exports.fetchLatestWaWebVersion = fetchLatestWaWebVersion;
|
|
218
271
|
/**
|
|
219
272
|
* utility that fetches latest baileys version from the master branch.
|
|
220
273
|
* Use to ensure your WA connection is always on the latest version
|
|
221
274
|
*/
|
|
222
275
|
const fetchLatestBaileysVersion = async (options = {}) => {
|
|
223
|
-
const URL = 'https://raw.githubusercontent.com/
|
|
276
|
+
const URL = 'https://raw.githubusercontent.com/kiuur/bails/master/src/Defaults/baileys-version.json';
|
|
224
277
|
try {
|
|
225
278
|
const result = await axios_1.default.get(URL, {
|
|
226
279
|
...options,
|
|
@@ -240,31 +293,6 @@ const fetchLatestBaileysVersion = async (options = {}) => {
|
|
|
240
293
|
}
|
|
241
294
|
};
|
|
242
295
|
exports.fetchLatestBaileysVersion = fetchLatestBaileysVersion;
|
|
243
|
-
/**
|
|
244
|
-
* A utility that fetches the latest web version of whatsapp.
|
|
245
|
-
* Use to ensure your WA connection is always on the latest version
|
|
246
|
-
*/
|
|
247
|
-
const fetchLatestWaWebVersion = async (options) => {
|
|
248
|
-
try {
|
|
249
|
-
const result = await axios_1.default.get('https://web.whatsapp.com/check-update?version=1&platform=web', {
|
|
250
|
-
...options,
|
|
251
|
-
responseType: 'json'
|
|
252
|
-
});
|
|
253
|
-
const version = result.data.currentVersion.split('.');
|
|
254
|
-
return {
|
|
255
|
-
version: [+version[0], +version[1], +version[2]],
|
|
256
|
-
isLatest: true
|
|
257
|
-
};
|
|
258
|
-
}
|
|
259
|
-
catch (error) {
|
|
260
|
-
return {
|
|
261
|
-
version: baileys_version_json_1.version,
|
|
262
|
-
isLatest: false,
|
|
263
|
-
error
|
|
264
|
-
};
|
|
265
|
-
}
|
|
266
|
-
};
|
|
267
|
-
exports.fetchLatestWaWebVersion = fetchLatestWaWebVersion;
|
|
268
296
|
/** unique message tag prefix for MD clients */
|
|
269
297
|
const generateMdTagPrefix = () => {
|
|
270
298
|
const bytes = (0, crypto_1.randomBytes)(4);
|
|
@@ -389,3 +417,7 @@ function bytesToCrockford(buffer) {
|
|
|
389
417
|
return crockford.join('');
|
|
390
418
|
}
|
|
391
419
|
exports.bytesToCrockford = bytesToCrockford;
|
|
420
|
+
const encodeNewsletterMessage = (message) => {
|
|
421
|
+
return WAProto_1.proto.Message.encode(message).finish()
|
|
422
|
+
}
|
|
423
|
+
exports.encodeNewsletterMessage = encodeNewsletterMessage;
|
package/lib/Utils/history.js
CHANGED
|
@@ -33,7 +33,12 @@ const processHistoryMessage = (item) => {
|
|
|
33
33
|
case WAProto_1.proto.HistorySync.HistorySyncType.RECENT:
|
|
34
34
|
case WAProto_1.proto.HistorySync.HistorySyncType.FULL:
|
|
35
35
|
for (const chat of item.conversations) {
|
|
36
|
-
contacts.push({
|
|
36
|
+
contacts.push({
|
|
37
|
+
id: chat.id,
|
|
38
|
+
name: chat.name || undefined,
|
|
39
|
+
lid: chat.lidJid || undefined,
|
|
40
|
+
jid: (0, WABinary_1.isJidUser)(chat.id) ? chat.id : undefined
|
|
41
|
+
});
|
|
37
42
|
const msgs = chat.messages || [];
|
|
38
43
|
delete chat.messages;
|
|
39
44
|
delete chat.archived;
|
package/lib/Utils/index.js
CHANGED
|
@@ -31,4 +31,3 @@ __exportStar(require("./use-multi-file-auth-state"), exports);
|
|
|
31
31
|
__exportStar(require("./link-preview"), exports);
|
|
32
32
|
__exportStar(require("./event-buffer"), exports);
|
|
33
33
|
__exportStar(require("./process-message"), exports);
|
|
34
|
-
__exportStar(require("./rate-limiter"), exports);
|
|
@@ -49,7 +49,7 @@ const getUrlInfo = async (text, opts = {
|
|
|
49
49
|
return false;
|
|
50
50
|
}
|
|
51
51
|
},
|
|
52
|
-
|
|
52
|
+
headers: opts.fetchOpts
|
|
53
53
|
});
|
|
54
54
|
if (info && 'title' in info && info.title) {
|
|
55
55
|
const [image] = info.images;
|