wa-multi-mongodb 3.10.6 → 3.10.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.
- package/dist/Socket/index.d.ts.map +1 -1
- package/dist/Socket/index.js +65 -14
- package/dist/Types/index.d.ts +45 -5
- package/dist/Types/index.d.ts.map +1 -1
- package/dist/cjs/Socket/index.d.ts.map +1 -1
- package/dist/cjs/Socket/index.js +65 -14
- package/dist/cjs/Types/index.d.ts +45 -5
- package/dist/cjs/Types/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/readme.md +162 -26
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Socket/index.ts"],"names":[],"mappings":"AAAA,OAAqB,EAInB,QAAQ,EAET,MAAM,SAAS,CAAC;AAMjB,OAAO,KAAK,EAEV,eAAe,EACf,cAAc,EACd,kBAAkB,EAEnB,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Socket/index.ts"],"names":[],"mappings":"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"}
|
package/dist/Socket/index.js
CHANGED
|
@@ -21,31 +21,74 @@ import { MongoClient } from "mongodb";
|
|
|
21
21
|
import { useMongoAuthState } from "../Utils/mongo-auth-state.js";
|
|
22
22
|
import { createDelay } from "../Utils/create-delay.js";
|
|
23
23
|
const sessions = new Map();
|
|
24
|
+
/**
|
|
25
|
+
* Valid PlatformType values that WhatsApp recognizes
|
|
26
|
+
* These will be displayed as-is in "Linked Devices"
|
|
27
|
+
*/
|
|
28
|
+
const VALID_PLATFORM_TYPES = [
|
|
29
|
+
"Chrome", "Firefox", "Safari", "Edge", "Opera", "IE", "Desktop"
|
|
30
|
+
];
|
|
24
31
|
/**
|
|
25
32
|
* Helper function to generate browser configuration based on type and name
|
|
26
|
-
* @param browserType -
|
|
27
|
-
* @param browserName -
|
|
33
|
+
* @param browserType - OS type (ubuntu, macOS, windows, appropriate)
|
|
34
|
+
* @param browserName - Browser/app name to display in WhatsApp Linked Devices
|
|
35
|
+
* @param displayBrowser - Browser type to display for custom names (default: Chrome)
|
|
28
36
|
* @returns Browser configuration tuple for Baileys
|
|
37
|
+
*
|
|
38
|
+
* Display format in WhatsApp: `${browser[1]} (${browser[0]})`
|
|
39
|
+
*
|
|
40
|
+
* Examples:
|
|
41
|
+
* - browserType: "macOS", browserName: "Safari" → "Safari (Mac OS)"
|
|
42
|
+
* - browserType: "windows", browserName: "Chrome" → "Chrome (Windows)"
|
|
43
|
+
* - browserType: "windows", browserName: "My Bot" → "Chrome (My Bot)"
|
|
44
|
+
* - browserType: "windows", browserName: "My Bot", displayBrowser: "Safari" → "Safari (My Bot)"
|
|
29
45
|
*/
|
|
30
|
-
const getBrowserConfig = (browserType = "ubuntu", browserName = "Chrome") => {
|
|
31
|
-
|
|
46
|
+
const getBrowserConfig = (browserType = "ubuntu", browserName, displayBrowser = "Chrome") => {
|
|
47
|
+
// Default to Chrome if no browserName provided
|
|
48
|
+
const effectiveBrowserName = browserName || "Chrome";
|
|
49
|
+
// Validate displayBrowser - must be a valid PlatformType
|
|
50
|
+
const validDisplayBrowser = VALID_PLATFORM_TYPES.includes(displayBrowser) ? displayBrowser : "Chrome";
|
|
51
|
+
// Check if browserName is a valid PlatformType
|
|
52
|
+
const isValidPlatformType = VALID_PLATFORM_TYPES.includes(effectiveBrowserName);
|
|
53
|
+
if (isValidPlatformType) {
|
|
54
|
+
// Use standard Browsers helper - display will be "BrowserName (OsName)"
|
|
55
|
+
let browserTuple;
|
|
56
|
+
switch (browserType) {
|
|
57
|
+
case "macOS":
|
|
58
|
+
browserTuple = Browsers.macOS(effectiveBrowserName);
|
|
59
|
+
break;
|
|
60
|
+
case "windows":
|
|
61
|
+
browserTuple = Browsers.windows(effectiveBrowserName);
|
|
62
|
+
break;
|
|
63
|
+
case "appropriate":
|
|
64
|
+
browserTuple = Browsers.appropriate(effectiveBrowserName);
|
|
65
|
+
break;
|
|
66
|
+
case "ubuntu":
|
|
67
|
+
default:
|
|
68
|
+
browserTuple = Browsers.ubuntu(effectiveBrowserName);
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
return [...browserTuple];
|
|
72
|
+
}
|
|
73
|
+
// For custom browserName (not a valid PlatformType):
|
|
74
|
+
// Put custom name in browser[0], use displayBrowser as browser[1]
|
|
75
|
+
// Display will be: "displayBrowser (CustomName)"
|
|
76
|
+
let osVersion;
|
|
32
77
|
switch (browserType) {
|
|
33
78
|
case "macOS":
|
|
34
|
-
|
|
79
|
+
osVersion = "14.4.1";
|
|
35
80
|
break;
|
|
36
81
|
case "windows":
|
|
37
|
-
|
|
38
|
-
break;
|
|
39
|
-
case "appropriate":
|
|
40
|
-
browserTuple = Browsers.appropriate(browserName);
|
|
82
|
+
osVersion = "10.0.22631";
|
|
41
83
|
break;
|
|
42
84
|
case "ubuntu":
|
|
43
85
|
default:
|
|
44
|
-
|
|
86
|
+
osVersion = "22.04.4";
|
|
45
87
|
break;
|
|
46
88
|
}
|
|
47
|
-
//
|
|
48
|
-
|
|
89
|
+
// Return: [CustomName, displayBrowser, OsVersion]
|
|
90
|
+
// WhatsApp will display: "displayBrowser (CustomName)"
|
|
91
|
+
return [effectiveBrowserName, validDisplayBrowser, osVersion];
|
|
49
92
|
};
|
|
50
93
|
const callback = new Map();
|
|
51
94
|
const retryCount = new Map();
|
|
@@ -111,7 +154,11 @@ export const startSession = (...args_1) => __awaiter(void 0, [...args_1], void 0
|
|
|
111
154
|
auth: state,
|
|
112
155
|
logger: P,
|
|
113
156
|
markOnlineOnConnect: false,
|
|
114
|
-
browser: getBrowserConfig(options.browserType, options.browserName),
|
|
157
|
+
browser: getBrowserConfig(options.browserType, options.browserName, options.displayBrowser),
|
|
158
|
+
// Proxy agent for WebSocket connection (optional)
|
|
159
|
+
agent: options.agent,
|
|
160
|
+
// Proxy agent for media upload/download (optional, defaults to agent)
|
|
161
|
+
fetchAgent: (options.fetchAgent || options.agent),
|
|
115
162
|
// Configure caching group metadata using our hybrid implementation with session ID
|
|
116
163
|
cachedGroupMetadata: (jid) => __awaiter(void 0, void 0, void 0, function* () {
|
|
117
164
|
return yield groupCache.get(sessionId, jid);
|
|
@@ -277,7 +324,11 @@ export const startSessionWithPairingCode = (sessionId_1, phoneNumber_1, ...args_
|
|
|
277
324
|
auth: state,
|
|
278
325
|
logger: P,
|
|
279
326
|
markOnlineOnConnect: false,
|
|
280
|
-
browser: getBrowserConfig(options.browserType, options.browserName),
|
|
327
|
+
browser: getBrowserConfig(options.browserType, options.browserName, options.displayBrowser),
|
|
328
|
+
// Proxy agent for WebSocket connection (optional)
|
|
329
|
+
agent: options.agent,
|
|
330
|
+
// Proxy agent for media upload/download (optional, defaults to agent)
|
|
331
|
+
fetchAgent: (options.fetchAgent || options.agent),
|
|
281
332
|
// Opsi tambahan untuk meningkatkan kompatibilitas
|
|
282
333
|
linkPreviewImageThumbnailWidth: 300,
|
|
283
334
|
generateHighQualityLinkPreview: true,
|
package/dist/Types/index.d.ts
CHANGED
|
@@ -67,18 +67,58 @@ export interface StartSessionParams {
|
|
|
67
67
|
*/
|
|
68
68
|
printQR?: boolean;
|
|
69
69
|
/**
|
|
70
|
-
* Browser type for WhatsApp connection
|
|
70
|
+
* Browser type for WhatsApp connection (determines OS version used)
|
|
71
71
|
* Options: "ubuntu" (default), "macOS", "windows", "appropriate"
|
|
72
72
|
* @default "ubuntu"
|
|
73
73
|
*/
|
|
74
74
|
browserType?: BrowserType;
|
|
75
75
|
/**
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
76
|
+
* App/device name displayed in WhatsApp's "Linked Devices"
|
|
77
|
+
*
|
|
78
|
+
* If using valid browser name (Chrome, Safari, Firefox, Edge, Opera, IE, Desktop):
|
|
79
|
+
* - Display: "BrowserName (OsName)" e.g., "Safari (Mac OS)"
|
|
80
|
+
*
|
|
81
|
+
* If using custom name:
|
|
82
|
+
* - Display: "displayBrowser (CustomName)" e.g., "Safari (My Bot App)"
|
|
83
|
+
* - Default displayBrowser is "Chrome"
|
|
84
|
+
*
|
|
85
|
+
* @example "Safari" → displays as "Safari (Mac OS)"
|
|
86
|
+
* @example "My Bot App" → displays as "Chrome (My Bot App)" or "Safari (My Bot App)" if displayBrowser is set
|
|
80
87
|
*/
|
|
81
88
|
browserName?: string;
|
|
89
|
+
/**
|
|
90
|
+
* Browser type to display when using custom browserName
|
|
91
|
+
* Only used when browserName is NOT a valid browser type
|
|
92
|
+
* Valid options: "Chrome" (default), "Safari", "Firefox", "Edge", "Opera", "IE", "Desktop"
|
|
93
|
+
*
|
|
94
|
+
* @example displayBrowser: "Safari", browserName: "My Bot" → displays as "Safari (My Bot)"
|
|
95
|
+
* @default "Chrome"
|
|
96
|
+
*/
|
|
97
|
+
displayBrowser?: "Chrome" | "Safari" | "Firefox" | "Edge" | "Opera" | "IE" | "Desktop";
|
|
98
|
+
/**
|
|
99
|
+
* Proxy agent for WebSocket connection
|
|
100
|
+
* Use packages like 'https-proxy-agent' or 'socks-proxy-agent'
|
|
101
|
+
* You need to install the proxy agent package yourself
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* // Install: npm install https-proxy-agent
|
|
105
|
+
* import { HttpsProxyAgent } from 'https-proxy-agent';
|
|
106
|
+
* const agent = new HttpsProxyAgent('http://proxy:8080');
|
|
107
|
+
*
|
|
108
|
+
* // Install: npm install socks-proxy-agent
|
|
109
|
+
* import { SocksProxyAgent } from 'socks-proxy-agent';
|
|
110
|
+
* const agent = new SocksProxyAgent('socks5://127.0.0.1:1080');
|
|
111
|
+
*/
|
|
112
|
+
agent?: unknown;
|
|
113
|
+
/**
|
|
114
|
+
* Proxy agent for media upload/download (fetch requests)
|
|
115
|
+
* If not provided, uses same as 'agent'
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* import { HttpsProxyAgent } from 'https-proxy-agent';
|
|
119
|
+
* const fetchAgent = new HttpsProxyAgent('http://proxy:8080');
|
|
120
|
+
*/
|
|
121
|
+
fetchAgent?: unknown;
|
|
82
122
|
onQRUpdated?: (qr: string) => void;
|
|
83
123
|
onConnected?: () => void;
|
|
84
124
|
onConnecting?: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,aAAa,CAAC;AAEzE,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC;CACnC;AAED,MAAM,WAAW,2BAA4B,SAAQ,gBAAgB;IACnE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,cAAe,SAAQ,gBAAgB;IACtD,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;IAC5F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,eAAe;IAC5D;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtB;;;OAGG;IACH,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C;;;OAGG;IACH,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C;;;OAGG;IACH,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C;;;OAGG;IACH,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Socket/index.ts"],"names":[],"mappings":"AAAA,OAAqB,EAInB,QAAQ,EAET,MAAM,SAAS,CAAC;AAMjB,OAAO,KAAK,EAEV,eAAe,EACf,cAAc,EACd,kBAAkB,EAEnB,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Socket/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/Socket/index.js
CHANGED
|
@@ -61,31 +61,74 @@ const mongodb_1 = require("mongodb");
|
|
|
61
61
|
const mongo_auth_state_1 = require("../Utils/mongo-auth-state");
|
|
62
62
|
const create_delay_1 = require("../Utils/create-delay");
|
|
63
63
|
const sessions = new Map();
|
|
64
|
+
/**
|
|
65
|
+
* Valid PlatformType values that WhatsApp recognizes
|
|
66
|
+
* These will be displayed as-is in "Linked Devices"
|
|
67
|
+
*/
|
|
68
|
+
const VALID_PLATFORM_TYPES = [
|
|
69
|
+
"Chrome", "Firefox", "Safari", "Edge", "Opera", "IE", "Desktop"
|
|
70
|
+
];
|
|
64
71
|
/**
|
|
65
72
|
* Helper function to generate browser configuration based on type and name
|
|
66
|
-
* @param browserType -
|
|
67
|
-
* @param browserName -
|
|
73
|
+
* @param browserType - OS type (ubuntu, macOS, windows, appropriate)
|
|
74
|
+
* @param browserName - Browser/app name to display in WhatsApp Linked Devices
|
|
75
|
+
* @param displayBrowser - Browser type to display for custom names (default: Chrome)
|
|
68
76
|
* @returns Browser configuration tuple for Baileys
|
|
77
|
+
*
|
|
78
|
+
* Display format in WhatsApp: `${browser[1]} (${browser[0]})`
|
|
79
|
+
*
|
|
80
|
+
* Examples:
|
|
81
|
+
* - browserType: "macOS", browserName: "Safari" → "Safari (Mac OS)"
|
|
82
|
+
* - browserType: "windows", browserName: "Chrome" → "Chrome (Windows)"
|
|
83
|
+
* - browserType: "windows", browserName: "My Bot" → "Chrome (My Bot)"
|
|
84
|
+
* - browserType: "windows", browserName: "My Bot", displayBrowser: "Safari" → "Safari (My Bot)"
|
|
69
85
|
*/
|
|
70
|
-
const getBrowserConfig = (browserType = "ubuntu", browserName = "Chrome") => {
|
|
71
|
-
|
|
86
|
+
const getBrowserConfig = (browserType = "ubuntu", browserName, displayBrowser = "Chrome") => {
|
|
87
|
+
// Default to Chrome if no browserName provided
|
|
88
|
+
const effectiveBrowserName = browserName || "Chrome";
|
|
89
|
+
// Validate displayBrowser - must be a valid PlatformType
|
|
90
|
+
const validDisplayBrowser = VALID_PLATFORM_TYPES.includes(displayBrowser) ? displayBrowser : "Chrome";
|
|
91
|
+
// Check if browserName is a valid PlatformType
|
|
92
|
+
const isValidPlatformType = VALID_PLATFORM_TYPES.includes(effectiveBrowserName);
|
|
93
|
+
if (isValidPlatformType) {
|
|
94
|
+
// Use standard Browsers helper - display will be "BrowserName (OsName)"
|
|
95
|
+
let browserTuple;
|
|
96
|
+
switch (browserType) {
|
|
97
|
+
case "macOS":
|
|
98
|
+
browserTuple = baileys_1.Browsers.macOS(effectiveBrowserName);
|
|
99
|
+
break;
|
|
100
|
+
case "windows":
|
|
101
|
+
browserTuple = baileys_1.Browsers.windows(effectiveBrowserName);
|
|
102
|
+
break;
|
|
103
|
+
case "appropriate":
|
|
104
|
+
browserTuple = baileys_1.Browsers.appropriate(effectiveBrowserName);
|
|
105
|
+
break;
|
|
106
|
+
case "ubuntu":
|
|
107
|
+
default:
|
|
108
|
+
browserTuple = baileys_1.Browsers.ubuntu(effectiveBrowserName);
|
|
109
|
+
break;
|
|
110
|
+
}
|
|
111
|
+
return [...browserTuple];
|
|
112
|
+
}
|
|
113
|
+
// For custom browserName (not a valid PlatformType):
|
|
114
|
+
// Put custom name in browser[0], use displayBrowser as browser[1]
|
|
115
|
+
// Display will be: "displayBrowser (CustomName)"
|
|
116
|
+
let osVersion;
|
|
72
117
|
switch (browserType) {
|
|
73
118
|
case "macOS":
|
|
74
|
-
|
|
119
|
+
osVersion = "14.4.1";
|
|
75
120
|
break;
|
|
76
121
|
case "windows":
|
|
77
|
-
|
|
78
|
-
break;
|
|
79
|
-
case "appropriate":
|
|
80
|
-
browserTuple = baileys_1.Browsers.appropriate(browserName);
|
|
122
|
+
osVersion = "10.0.22631";
|
|
81
123
|
break;
|
|
82
124
|
case "ubuntu":
|
|
83
125
|
default:
|
|
84
|
-
|
|
126
|
+
osVersion = "22.04.4";
|
|
85
127
|
break;
|
|
86
128
|
}
|
|
87
|
-
//
|
|
88
|
-
|
|
129
|
+
// Return: [CustomName, displayBrowser, OsVersion]
|
|
130
|
+
// WhatsApp will display: "displayBrowser (CustomName)"
|
|
131
|
+
return [effectiveBrowserName, validDisplayBrowser, osVersion];
|
|
89
132
|
};
|
|
90
133
|
const callback = new Map();
|
|
91
134
|
const retryCount = new Map();
|
|
@@ -152,7 +195,11 @@ const startSession = (...args_1) => __awaiter(void 0, [...args_1], void 0, funct
|
|
|
152
195
|
auth: state,
|
|
153
196
|
logger: P,
|
|
154
197
|
markOnlineOnConnect: false,
|
|
155
|
-
browser: getBrowserConfig(options.browserType, options.browserName),
|
|
198
|
+
browser: getBrowserConfig(options.browserType, options.browserName, options.displayBrowser),
|
|
199
|
+
// Proxy agent for WebSocket connection (optional)
|
|
200
|
+
agent: options.agent,
|
|
201
|
+
// Proxy agent for media upload/download (optional, defaults to agent)
|
|
202
|
+
fetchAgent: (options.fetchAgent || options.agent),
|
|
156
203
|
// Configure caching group metadata using our hybrid implementation with session ID
|
|
157
204
|
cachedGroupMetadata: (jid) => __awaiter(void 0, void 0, void 0, function* () {
|
|
158
205
|
return yield Utils_1.groupCache.get(sessionId, jid);
|
|
@@ -319,7 +366,11 @@ const startSessionWithPairingCode = (sessionId_1, phoneNumber_1, ...args_1) => _
|
|
|
319
366
|
auth: state,
|
|
320
367
|
logger: P,
|
|
321
368
|
markOnlineOnConnect: false,
|
|
322
|
-
browser: getBrowserConfig(options.browserType, options.browserName),
|
|
369
|
+
browser: getBrowserConfig(options.browserType, options.browserName, options.displayBrowser),
|
|
370
|
+
// Proxy agent for WebSocket connection (optional)
|
|
371
|
+
agent: options.agent,
|
|
372
|
+
// Proxy agent for media upload/download (optional, defaults to agent)
|
|
373
|
+
fetchAgent: (options.fetchAgent || options.agent),
|
|
323
374
|
// Opsi tambahan untuk meningkatkan kompatibilitas
|
|
324
375
|
linkPreviewImageThumbnailWidth: 300,
|
|
325
376
|
generateHighQualityLinkPreview: true,
|
|
@@ -67,18 +67,58 @@ export interface StartSessionParams {
|
|
|
67
67
|
*/
|
|
68
68
|
printQR?: boolean;
|
|
69
69
|
/**
|
|
70
|
-
* Browser type for WhatsApp connection
|
|
70
|
+
* Browser type for WhatsApp connection (determines OS version used)
|
|
71
71
|
* Options: "ubuntu" (default), "macOS", "windows", "appropriate"
|
|
72
72
|
* @default "ubuntu"
|
|
73
73
|
*/
|
|
74
74
|
browserType?: BrowserType;
|
|
75
75
|
/**
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
76
|
+
* App/device name displayed in WhatsApp's "Linked Devices"
|
|
77
|
+
*
|
|
78
|
+
* If using valid browser name (Chrome, Safari, Firefox, Edge, Opera, IE, Desktop):
|
|
79
|
+
* - Display: "BrowserName (OsName)" e.g., "Safari (Mac OS)"
|
|
80
|
+
*
|
|
81
|
+
* If using custom name:
|
|
82
|
+
* - Display: "displayBrowser (CustomName)" e.g., "Safari (My Bot App)"
|
|
83
|
+
* - Default displayBrowser is "Chrome"
|
|
84
|
+
*
|
|
85
|
+
* @example "Safari" → displays as "Safari (Mac OS)"
|
|
86
|
+
* @example "My Bot App" → displays as "Chrome (My Bot App)" or "Safari (My Bot App)" if displayBrowser is set
|
|
80
87
|
*/
|
|
81
88
|
browserName?: string;
|
|
89
|
+
/**
|
|
90
|
+
* Browser type to display when using custom browserName
|
|
91
|
+
* Only used when browserName is NOT a valid browser type
|
|
92
|
+
* Valid options: "Chrome" (default), "Safari", "Firefox", "Edge", "Opera", "IE", "Desktop"
|
|
93
|
+
*
|
|
94
|
+
* @example displayBrowser: "Safari", browserName: "My Bot" → displays as "Safari (My Bot)"
|
|
95
|
+
* @default "Chrome"
|
|
96
|
+
*/
|
|
97
|
+
displayBrowser?: "Chrome" | "Safari" | "Firefox" | "Edge" | "Opera" | "IE" | "Desktop";
|
|
98
|
+
/**
|
|
99
|
+
* Proxy agent for WebSocket connection
|
|
100
|
+
* Use packages like 'https-proxy-agent' or 'socks-proxy-agent'
|
|
101
|
+
* You need to install the proxy agent package yourself
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* // Install: npm install https-proxy-agent
|
|
105
|
+
* import { HttpsProxyAgent } from 'https-proxy-agent';
|
|
106
|
+
* const agent = new HttpsProxyAgent('http://proxy:8080');
|
|
107
|
+
*
|
|
108
|
+
* // Install: npm install socks-proxy-agent
|
|
109
|
+
* import { SocksProxyAgent } from 'socks-proxy-agent';
|
|
110
|
+
* const agent = new SocksProxyAgent('socks5://127.0.0.1:1080');
|
|
111
|
+
*/
|
|
112
|
+
agent?: unknown;
|
|
113
|
+
/**
|
|
114
|
+
* Proxy agent for media upload/download (fetch requests)
|
|
115
|
+
* If not provided, uses same as 'agent'
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* import { HttpsProxyAgent } from 'https-proxy-agent';
|
|
119
|
+
* const fetchAgent = new HttpsProxyAgent('http://proxy:8080');
|
|
120
|
+
*/
|
|
121
|
+
fetchAgent?: unknown;
|
|
82
122
|
onQRUpdated?: (qr: string) => void;
|
|
83
123
|
onConnected?: () => void;
|
|
84
124
|
onConnecting?: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,aAAa,CAAC;AAEzE,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC;CACnC;AAED,MAAM,WAAW,2BAA4B,SAAQ,gBAAgB;IACnE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,cAAe,SAAQ,gBAAgB;IACtD,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;IAC5F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,eAAe;IAC5D;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtB;;;OAGG;IACH,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C;;;OAGG;IACH,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C;;;OAGG;IACH,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C;;;OAGG;IACH,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Types/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -21,6 +21,7 @@ Built on [Baileys](https://github.com/WhiskeySockets/Baileys) Library.
|
|
|
21
21
|
- Message deletion for self and others (v3.9.5+)
|
|
22
22
|
- Custom browser configuration (v3.10.4+)
|
|
23
23
|
- LID ↔ PN conversion utilities (v3.10.4+)
|
|
24
|
+
- Proxy support for WebSocket and media connections (v3.10.8+)
|
|
24
25
|
|
|
25
26
|
## Installation
|
|
26
27
|
|
|
@@ -116,10 +117,11 @@ await whatsapp.startSession("mysession2", {
|
|
|
116
117
|
});
|
|
117
118
|
|
|
118
119
|
// Start with custom browser configuration (v3.10.4+)
|
|
120
|
+
// Display: "Safari (Mac OS)" in WhatsApp Linked Devices
|
|
119
121
|
await whatsapp.startSession("mysession3", {
|
|
120
122
|
printQR: true,
|
|
121
|
-
browserType: "
|
|
122
|
-
browserName: "
|
|
123
|
+
browserType: "macOS", // Options: "ubuntu", "macOS", "windows", "appropriate"
|
|
124
|
+
browserName: "Safari", // Valid: Chrome, Safari, Firefox, Edge, Opera, IE, Desktop
|
|
123
125
|
onConnected: () => console.log("Connected with custom browser!"),
|
|
124
126
|
});
|
|
125
127
|
|
|
@@ -133,10 +135,11 @@ await whatsapp.startSessionWithPairingCode("mysession4", "6281234567890", {
|
|
|
133
135
|
}
|
|
134
136
|
});
|
|
135
137
|
|
|
136
|
-
// Pairing code with
|
|
138
|
+
// Pairing code with valid browser config - displays "Edge (Windows)"
|
|
139
|
+
// ⚠️ IMPORTANT: Pairing code ONLY works with valid browser configurations!
|
|
137
140
|
await whatsapp.startSessionWithPairingCode("mysession5", "6281234567890", {
|
|
138
|
-
browserType: "
|
|
139
|
-
browserName: "
|
|
141
|
+
browserType: "windows",
|
|
142
|
+
browserName: "Edge", // Must be valid: Chrome, Safari, Firefox, Edge, Opera, IE, Desktop
|
|
140
143
|
onPairingCode: (code) => console.log("Code:", code),
|
|
141
144
|
});
|
|
142
145
|
|
|
@@ -173,40 +176,174 @@ await whatsapp.reconnectAllPairingCodeSessions();
|
|
|
173
176
|
|
|
174
177
|
### Custom Browser Configuration (v3.10.4+)
|
|
175
178
|
|
|
176
|
-
|
|
179
|
+
Customize how your session appears in WhatsApp's "Linked Devices" list.
|
|
177
180
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
+
**Display Format in WhatsApp**: `browserName (OsName)` - e.g., "Safari (Mac OS)"
|
|
182
|
+
|
|
183
|
+
#### Valid browserName Values
|
|
184
|
+
|
|
185
|
+
These are recognized by WhatsApp and will display correctly:
|
|
186
|
+
|
|
187
|
+
| browserName | Description |
|
|
188
|
+
|-------------|-------------|
|
|
189
|
+
| `"Chrome"` | Google Chrome (default) |
|
|
190
|
+
| `"Safari"` | Apple Safari |
|
|
191
|
+
| `"Firefox"` | Mozilla Firefox |
|
|
192
|
+
| `"Edge"` | Microsoft Edge |
|
|
193
|
+
| `"Opera"` | Opera Browser |
|
|
194
|
+
| `"IE"` | Internet Explorer |
|
|
195
|
+
| `"Desktop"` | Generic Desktop App |
|
|
196
|
+
|
|
197
|
+
#### browserType Options
|
|
198
|
+
|
|
199
|
+
| browserType | OS Name Displayed | OS Version |
|
|
200
|
+
|-------------|-------------------|------------|
|
|
201
|
+
| `"ubuntu"` | Ubuntu | 22.04.4 |
|
|
202
|
+
| `"macOS"` | Mac OS | 14.4.1 |
|
|
203
|
+
| `"windows"` | Windows | 10.0.22631 |
|
|
204
|
+
| `"appropriate"` | Auto-detect | Based on platform |
|
|
181
205
|
|
|
182
|
-
|
|
206
|
+
#### Usage Examples
|
|
207
|
+
|
|
208
|
+
```javascript
|
|
209
|
+
// Safari on macOS → displays as "Safari (Mac OS)"
|
|
183
210
|
await whatsapp.startSession("session1", {
|
|
184
|
-
|
|
185
|
-
|
|
211
|
+
printQR: true,
|
|
212
|
+
browserType: "macOS",
|
|
213
|
+
browserName: "Safari",
|
|
186
214
|
});
|
|
187
215
|
|
|
216
|
+
// Chrome on Windows → displays as "Chrome (Windows)"
|
|
188
217
|
await whatsapp.startSession("session2", {
|
|
189
|
-
|
|
190
|
-
|
|
218
|
+
printQR: true,
|
|
219
|
+
browserType: "windows",
|
|
220
|
+
browserName: "Chrome",
|
|
191
221
|
});
|
|
192
222
|
|
|
223
|
+
// Firefox on Ubuntu → displays as "Firefox (Ubuntu)"
|
|
193
224
|
await whatsapp.startSession("session3", {
|
|
194
|
-
|
|
195
|
-
|
|
225
|
+
printQR: true,
|
|
226
|
+
browserType: "ubuntu",
|
|
227
|
+
browserName: "Firefox",
|
|
196
228
|
});
|
|
197
229
|
|
|
230
|
+
// Edge on Windows → displays as "Edge (Windows)"
|
|
198
231
|
await whatsapp.startSession("session4", {
|
|
199
|
-
|
|
200
|
-
|
|
232
|
+
printQR: true,
|
|
233
|
+
browserType: "windows",
|
|
234
|
+
browserName: "Edge",
|
|
235
|
+
});
|
|
236
|
+
|
|
237
|
+
// Desktop app on macOS → displays as "Desktop (Mac OS)"
|
|
238
|
+
await whatsapp.startSession("session5", {
|
|
239
|
+
printQR: true,
|
|
240
|
+
browserType: "macOS",
|
|
241
|
+
browserName: "Desktop",
|
|
242
|
+
});
|
|
243
|
+
|
|
244
|
+
// Custom name (fallback to Chrome) → displays as "Chrome (My Bot App)"
|
|
245
|
+
await whatsapp.startSession("session6", {
|
|
246
|
+
printQR: true,
|
|
247
|
+
browserType: "windows",
|
|
248
|
+
browserName: "My Bot App",
|
|
249
|
+
});
|
|
250
|
+
|
|
251
|
+
// Custom name with Safari → displays as "Safari (My Bot App)"
|
|
252
|
+
await whatsapp.startSession("session7", {
|
|
253
|
+
printQR: true,
|
|
254
|
+
browserType: "macOS",
|
|
255
|
+
browserName: "My Bot App",
|
|
256
|
+
displayBrowser: "Safari", // Choose which browser type to display
|
|
257
|
+
});
|
|
258
|
+
|
|
259
|
+
// Custom name with Firefox → displays as "Firefox (Device Bot)"
|
|
260
|
+
await whatsapp.startSession("session8", {
|
|
261
|
+
printQR: true,
|
|
262
|
+
browserType: "ubuntu",
|
|
263
|
+
browserName: "Device Bot",
|
|
264
|
+
displayBrowser: "Firefox",
|
|
201
265
|
});
|
|
202
266
|
```
|
|
203
267
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
|
209
|
-
|
|
268
|
+
#### displayBrowser Parameter (v3.10.5+)
|
|
269
|
+
|
|
270
|
+
When using a custom `browserName`, you can now choose which browser type to display using the `displayBrowser` parameter:
|
|
271
|
+
|
|
272
|
+
| displayBrowser | Custom Name Example | Display Result |
|
|
273
|
+
|----------------|---------------------|----------------|
|
|
274
|
+
| `"Chrome"` (default) | "My Bot" | Chrome (My Bot) |
|
|
275
|
+
| `"Safari"` | "My Bot" | Safari (My Bot) |
|
|
276
|
+
| `"Firefox"` | "My Bot" | Firefox (My Bot) |
|
|
277
|
+
| `"Edge"` | "My Bot" | Edge (My Bot) |
|
|
278
|
+
| `"Opera"` | "My Bot" | Opera (My Bot) |
|
|
279
|
+
| `"Desktop"` | "My Bot" | Desktop (My Bot) |
|
|
280
|
+
|
|
281
|
+
> **Note**: `displayBrowser` is only used when `browserName` is a custom name (not a valid browser type like Chrome, Safari, etc.).
|
|
282
|
+
|
|
283
|
+
> [!WARNING]
|
|
284
|
+
> **Custom browserName and displayBrowser are NOT supported for Pairing Code sessions!**
|
|
285
|
+
>
|
|
286
|
+
> WhatsApp server validates browser configuration strictly during pairing code authentication. You MUST use valid browser configurations for pairing code:
|
|
287
|
+
>
|
|
288
|
+
> | browserType | browserName | Display | Pairing Code |
|
|
289
|
+
> |-------------|-------------|---------|--------------|
|
|
290
|
+
> | `"windows"` | `"Chrome"` | Chrome (Windows) | ✅ Works |
|
|
291
|
+
> | `"macOS"` | `"Safari"` | Safari (Mac OS) | ✅ Works |
|
|
292
|
+
> | `"windows"` | `"Edge"` | Edge (Windows) | ✅ Works |
|
|
293
|
+
> | `"ubuntu"` | `"Firefox"` | Firefox (Ubuntu) | ✅ Works |
|
|
294
|
+
> | `"windows"` | `"My Bot"` | Chrome (My Bot) | ❌ Fails |
|
|
295
|
+
>
|
|
296
|
+
> Custom names (like "My Bot App") only work with **QR Code** authentication.
|
|
297
|
+
|
|
298
|
+
### Proxy Support (v3.10.8+)
|
|
299
|
+
|
|
300
|
+
You can use a proxy for WebSocket connections and media upload/download. **No additional dependencies are included** - install your preferred proxy agent package if needed.
|
|
301
|
+
|
|
302
|
+
#### Install Proxy Agent (User's Choice)
|
|
303
|
+
|
|
304
|
+
```bash
|
|
305
|
+
# For HTTP/HTTPS proxy
|
|
306
|
+
npm install https-proxy-agent
|
|
307
|
+
|
|
308
|
+
# For SOCKS4/SOCKS5 proxy
|
|
309
|
+
npm install socks-proxy-agent
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
#### Usage Examples
|
|
313
|
+
|
|
314
|
+
```javascript
|
|
315
|
+
// Using HTTPS proxy
|
|
316
|
+
import { HttpsProxyAgent } from 'https-proxy-agent';
|
|
317
|
+
|
|
318
|
+
const proxyAgent = new HttpsProxyAgent('http://proxy.example.com:8080');
|
|
319
|
+
// With authentication: new HttpsProxyAgent('http://user:pass@proxy.example.com:8080');
|
|
320
|
+
|
|
321
|
+
await whatsapp.startSession("mysession", {
|
|
322
|
+
printQR: true,
|
|
323
|
+
agent: proxyAgent, // Proxy for WebSocket connection
|
|
324
|
+
fetchAgent: proxyAgent, // Proxy for media upload/download (optional, defaults to agent)
|
|
325
|
+
});
|
|
326
|
+
|
|
327
|
+
// Using SOCKS5 proxy
|
|
328
|
+
import { SocksProxyAgent } from 'socks-proxy-agent';
|
|
329
|
+
|
|
330
|
+
const socksAgent = new SocksProxyAgent('socks5://127.0.0.1:1080');
|
|
331
|
+
// With authentication: new SocksProxyAgent('socks5://user:pass@127.0.0.1:1080');
|
|
332
|
+
|
|
333
|
+
await whatsapp.startSessionWithPairingCode("mysession", "6281234567890", {
|
|
334
|
+
browserType: "windows",
|
|
335
|
+
browserName: "Chrome",
|
|
336
|
+
agent: socksAgent,
|
|
337
|
+
});
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
| Option | Type | Description |
|
|
341
|
+
|--------|------|-------------|
|
|
342
|
+
| `agent` | `Agent` | Proxy agent for WebSocket connection |
|
|
343
|
+
| `fetchAgent` | `Agent` | Proxy agent for media upload/download (defaults to `agent`) |
|
|
344
|
+
|
|
345
|
+
> **Note**: Proxy is optional. If not provided, direct connection is used.
|
|
346
|
+
|
|
210
347
|
|
|
211
348
|
|
|
212
349
|
### Sending Messages
|
|
@@ -812,8 +949,7 @@ async function startPairingApp() {
|
|
|
812
949
|
const yourPhoneNumber = "6281234567890"; // Replace with your phone number
|
|
813
950
|
|
|
814
951
|
try {
|
|
815
|
-
await whatsapp.startSessionWithPairingCode(pairingSessionId, {
|
|
816
|
-
mobile: yourPhoneNumber,
|
|
952
|
+
await whatsapp.startSessionWithPairingCode(pairingSessionId, yourPhoneNumber, {
|
|
817
953
|
onConnected: () => {
|
|
818
954
|
console.log("Pairing session connected successfully!");
|
|
819
955
|
sessionStatus[pairingSessionId] = 'connected';
|