wa-multi-mongodb 3.10.2 → 3.10.4
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/Defaults/index.js +4 -9
- package/dist/Error/index.js +1 -5
- package/dist/Messaging/index.d.ts +1 -1
- package/dist/Messaging/index.js +123 -137
- package/dist/Profile/index.d.ts +1 -1
- package/dist/Profile/index.js +6 -10
- package/dist/Socket/index.d.ts +160 -1
- package/dist/Socket/index.d.ts.map +1 -1
- package/dist/Socket/index.js +462 -200
- package/dist/Types/index.d.ts +21 -0
- package/dist/Types/index.d.ts.map +1 -1
- package/dist/Types/index.js +1 -2
- package/dist/Types/profile.js +1 -2
- package/dist/Utils/create-delay.js +2 -7
- package/dist/Utils/error.js +1 -4
- package/dist/Utils/group-cache.js +8 -15
- package/dist/Utils/index.d.ts +5 -5
- package/dist/Utils/index.js +5 -21
- package/dist/Utils/is-exist.d.ts +1 -1
- package/dist/Utils/is-exist.js +7 -10
- package/dist/Utils/lid-utils.js +13 -20
- package/dist/Utils/message-status.d.ts +1 -1
- package/dist/Utils/message-status.js +7 -11
- package/dist/Utils/mongo-auth-state.js +10 -13
- package/dist/Utils/phone-to-jid.js +6 -14
- package/dist/Utils/save-media.d.ts +1 -1
- package/dist/Utils/save-media.js +16 -26
- package/dist/cjs/Defaults/index.d.ts +21 -0
- package/dist/cjs/Defaults/index.d.ts.map +1 -0
- package/dist/cjs/Defaults/index.js +31 -0
- package/dist/cjs/Error/index.d.ts +5 -0
- package/dist/cjs/Error/index.d.ts.map +1 -0
- package/dist/cjs/Error/index.js +14 -0
- package/dist/cjs/Messaging/index.d.ts +45 -0
- package/dist/cjs/Messaging/index.d.ts.map +1 -0
- package/dist/cjs/Messaging/index.js +784 -0
- package/dist/cjs/Profile/index.d.ts +9 -0
- package/dist/cjs/Profile/index.d.ts.map +1 -0
- package/dist/cjs/Profile/index.js +34 -0
- package/dist/cjs/Socket/index.d.ts +264 -0
- package/dist/cjs/Socket/index.d.ts.map +1 -0
- package/dist/cjs/Socket/index.js +1210 -0
- package/dist/cjs/Types/index.d.ts +95 -0
- package/dist/cjs/Types/index.d.ts.map +1 -0
- package/dist/cjs/Types/index.js +2 -0
- package/dist/cjs/Types/profile.d.ts +5 -0
- package/dist/cjs/Types/profile.d.ts.map +1 -0
- package/dist/cjs/Types/profile.js +2 -0
- package/dist/cjs/Utils/create-delay.d.ts +17 -0
- package/dist/cjs/Utils/create-delay.d.ts.map +1 -0
- package/dist/cjs/Utils/create-delay.js +38 -0
- package/dist/cjs/Utils/error.d.ts +4 -0
- package/dist/cjs/Utils/error.d.ts.map +1 -0
- package/dist/cjs/Utils/error.js +8 -0
- package/dist/cjs/Utils/group-cache.d.ts +23 -0
- package/dist/cjs/Utils/group-cache.d.ts.map +1 -0
- package/dist/cjs/Utils/group-cache.js +176 -0
- package/dist/cjs/Utils/index.d.ts +6 -0
- package/dist/cjs/Utils/index.d.ts.map +1 -0
- package/dist/cjs/Utils/index.js +23 -0
- package/dist/cjs/Utils/is-exist.d.ts +6 -0
- package/dist/cjs/Utils/is-exist.d.ts.map +1 -0
- package/dist/cjs/Utils/is-exist.js +53 -0
- package/dist/cjs/Utils/lid-utils.d.ts +26 -0
- package/dist/cjs/Utils/lid-utils.d.ts.map +1 -0
- package/dist/cjs/Utils/lid-utils.js +81 -0
- package/dist/cjs/Utils/message-status.d.ts +4 -0
- package/dist/cjs/Utils/message-status.d.ts.map +1 -0
- package/dist/cjs/Utils/message-status.js +18 -0
- package/dist/cjs/Utils/mongo-auth-state.d.ts +15 -0
- package/dist/cjs/Utils/mongo-auth-state.d.ts.map +1 -0
- package/dist/cjs/Utils/mongo-auth-state.js +109 -0
- package/dist/cjs/Utils/phone-to-jid.d.ts +17 -0
- package/dist/cjs/Utils/phone-to-jid.d.ts.map +1 -0
- package/dist/cjs/Utils/phone-to-jid.js +51 -0
- package/dist/cjs/Utils/save-media.d.ts +6 -0
- package/dist/cjs/Utils/save-media.d.ts.map +1 -0
- package/dist/cjs/Utils/save-media.js +55 -0
- package/dist/cjs/index.d.ts +8 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +46 -0
- package/dist/index.d.ts +6 -6
- package/dist/index.js +7 -46
- package/package.json +57 -42
- package/readme.md +170 -3
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { GetProfileInfoProps } from "../Types/profile";
|
|
2
|
+
/**
|
|
3
|
+
* Get profile information of a target (people or group)
|
|
4
|
+
*/
|
|
5
|
+
export declare const getProfileInfo: (props: GetProfileInfoProps) => Promise<{
|
|
6
|
+
profilePictureUrl: string;
|
|
7
|
+
status: import("baileys").USyncQueryResultList[];
|
|
8
|
+
}>;
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Profile/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;GAEG;AACH,eAAO,MAAM,cAAc,GAAU,OAAO,mBAAmB;;;EAgB9D,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.getProfileInfo = void 0;
|
|
13
|
+
const Defaults_1 = require("../Defaults");
|
|
14
|
+
const Error_1 = require("../Error");
|
|
15
|
+
const Socket_1 = require("../Socket");
|
|
16
|
+
/**
|
|
17
|
+
* Get profile information of a target (people or group)
|
|
18
|
+
*/
|
|
19
|
+
const getProfileInfo = (props) => __awaiter(void 0, void 0, void 0, function* () {
|
|
20
|
+
const session = (0, Socket_1.getSession)(props.sessionId);
|
|
21
|
+
if (!session)
|
|
22
|
+
throw new Error_1.WhatsappError(Defaults_1.Messages.sessionNotFound(props.sessionId));
|
|
23
|
+
const [profilePictureUrl, status] = yield Promise.allSettled([
|
|
24
|
+
session.profilePictureUrl(props.target, "image", 5000),
|
|
25
|
+
session.fetchStatus(props.target),
|
|
26
|
+
]);
|
|
27
|
+
return {
|
|
28
|
+
profilePictureUrl: profilePictureUrl.status === "fulfilled"
|
|
29
|
+
? profilePictureUrl.value || null
|
|
30
|
+
: null,
|
|
31
|
+
status: status.status === "fulfilled" ? status.value || null : null,
|
|
32
|
+
};
|
|
33
|
+
});
|
|
34
|
+
exports.getProfileInfo = getProfileInfo;
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
import { WASocket } from "baileys";
|
|
2
|
+
import type { MessageReceived, MessageUpdated, StartSessionParams } from "../Types";
|
|
3
|
+
/**
|
|
4
|
+
* Set MongoDB URI for connection
|
|
5
|
+
* This function will be used to configure MongoDB connection with just the URI
|
|
6
|
+
*
|
|
7
|
+
* @param uri MongoDB connection URI
|
|
8
|
+
*/
|
|
9
|
+
export declare const setMongoURI: (uri: string) => Promise<void>;
|
|
10
|
+
export declare function setMongoCollection(collection: any): void;
|
|
11
|
+
export declare const startSession: (sessionId?: string, options?: StartSessionParams) => Promise<WASocket>;
|
|
12
|
+
/**
|
|
13
|
+
* Start WhatsApp session using pairing code method
|
|
14
|
+
* This is the recommended way to create sessions with pairing code
|
|
15
|
+
*
|
|
16
|
+
* @param sessionId Unique session identifier
|
|
17
|
+
* @param phoneNumber Phone number with country code (without + prefix)
|
|
18
|
+
* @param options Optional configuration for the session
|
|
19
|
+
* @returns Promise<WASocket> The WhatsApp socket instance
|
|
20
|
+
*/
|
|
21
|
+
export declare const startSessionWithPairingCode: (sessionId: string, phoneNumber: string, options?: StartSessionParams) => Promise<WASocket>;
|
|
22
|
+
/**
|
|
23
|
+
* @deprecated Use startSession method instead
|
|
24
|
+
*/
|
|
25
|
+
export declare const startWhatsapp: (sessionId?: string, options?: StartSessionParams) => Promise<WASocket>;
|
|
26
|
+
export declare const deleteSession: (sessionId: string) => Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Get all active session IDs
|
|
29
|
+
* @returns Array of session IDs
|
|
30
|
+
*/
|
|
31
|
+
export declare const getAllSession: () => Promise<string[]>;
|
|
32
|
+
export declare const getAllSessionSync: () => string[];
|
|
33
|
+
export declare const getSession: (key: string) => WASocket | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* @deprecated Use loadSessionsFromMongo instead
|
|
36
|
+
*/
|
|
37
|
+
export declare const loadSessionsFromStorage: () => void;
|
|
38
|
+
export declare const onMessageReceived: (listener: (msg: MessageReceived) => any) => void;
|
|
39
|
+
export declare const onQRUpdated: (listener: ({ sessionId, qr }: {
|
|
40
|
+
sessionId: string;
|
|
41
|
+
qr: string;
|
|
42
|
+
}) => any) => void;
|
|
43
|
+
export declare const onConnected: (listener: (sessionId: string) => any) => void;
|
|
44
|
+
export declare const onDisconnected: (listener: (sessionId: string) => any) => void;
|
|
45
|
+
export declare const onConnecting: (listener: (sessionId: string) => any) => void;
|
|
46
|
+
export declare const onMessageUpdate: (listener: (data: MessageUpdated) => any) => void;
|
|
47
|
+
export declare const onPairingCode: (listener: (sessionId: string, code: string) => any) => void;
|
|
48
|
+
/**
|
|
49
|
+
* Load all sessions from MongoDB and start them automatically
|
|
50
|
+
*/
|
|
51
|
+
export declare const loadSessionsFromMongo: () => Promise<void>;
|
|
52
|
+
/**
|
|
53
|
+
* Configure MongoDB database and collection names
|
|
54
|
+
*
|
|
55
|
+
* @param dbName MongoDB database name (default: "wa_session")
|
|
56
|
+
* @param collectionName MongoDB collection name for auth storage (default: "auth")
|
|
57
|
+
*/
|
|
58
|
+
export declare const setMongoDBNames: (dbName?: string, collectionName?: string) => void;
|
|
59
|
+
/**
|
|
60
|
+
* Sets the directory name for storing credentials (File-based storage)
|
|
61
|
+
*
|
|
62
|
+
* @deprecated When using MongoDB, this setting has no effect. Only used for legacy file-based storage.
|
|
63
|
+
* @param dirname Directory name for storing credentials (default: "wa_credentials")
|
|
64
|
+
*/
|
|
65
|
+
export declare const setCredentialsDir: (dirname?: string) => void;
|
|
66
|
+
/**
|
|
67
|
+
* Attempt to reconnect a disconnected session
|
|
68
|
+
*
|
|
69
|
+
* @param sessionId Session ID to reconnect
|
|
70
|
+
* @returns Promise<boolean> indicating success
|
|
71
|
+
*/
|
|
72
|
+
export declare const reconnect: (sessionId: string) => Promise<boolean>;
|
|
73
|
+
/**
|
|
74
|
+
* Reconnect all pairing code sessions that are tracked
|
|
75
|
+
* Useful for bulk reconnection after system restart
|
|
76
|
+
*/
|
|
77
|
+
export declare const reconnectAllPairingCodeSessions: () => Promise<{
|
|
78
|
+
[sessionId: string]: boolean;
|
|
79
|
+
}>;
|
|
80
|
+
/**
|
|
81
|
+
* Get all tracked pairing code sessions
|
|
82
|
+
* @returns Array of session IDs that were created with pairing code
|
|
83
|
+
*/
|
|
84
|
+
export declare const getPairingCodeSessions: () => string[];
|
|
85
|
+
/**
|
|
86
|
+
* Get session status information
|
|
87
|
+
* @param sessionId Session ID to check
|
|
88
|
+
* @returns Object with session status information
|
|
89
|
+
*/
|
|
90
|
+
export declare const getSessionStatus: (sessionId: string) => {
|
|
91
|
+
sessionId: string;
|
|
92
|
+
isRunning: boolean;
|
|
93
|
+
isPairingCodeSession: boolean;
|
|
94
|
+
retryAttempts: number;
|
|
95
|
+
hasCredentials: boolean;
|
|
96
|
+
};
|
|
97
|
+
export declare const setGroupCacheConfig: (options: {
|
|
98
|
+
stdTTL?: number;
|
|
99
|
+
checkperiod?: number;
|
|
100
|
+
}) => void;
|
|
101
|
+
export declare const getGroupMetadata: (sessionId: string, jid: string, forceFetch?: boolean) => Promise<any>;
|
|
102
|
+
export declare const clearGroupMetadataCache: (sessionId: string, jid: string) => Promise<void>;
|
|
103
|
+
export declare const clearSessionGroupMetadataCache: (sessionId: string) => Promise<void>;
|
|
104
|
+
export declare const clearAllGroupMetadataCache: () => void;
|
|
105
|
+
/**
|
|
106
|
+
* Result type for LID to PN conversion
|
|
107
|
+
*/
|
|
108
|
+
export interface LIDConversionResult {
|
|
109
|
+
success: boolean;
|
|
110
|
+
lid: string;
|
|
111
|
+
pn: string | null;
|
|
112
|
+
error?: string;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Result type for PN to LID conversion
|
|
116
|
+
*/
|
|
117
|
+
export interface PNConversionResult {
|
|
118
|
+
success: boolean;
|
|
119
|
+
pn: string;
|
|
120
|
+
lid: string | null;
|
|
121
|
+
error?: string;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* LID Mapping entry type
|
|
125
|
+
*/
|
|
126
|
+
export interface LIDMappingEntry {
|
|
127
|
+
lid: string;
|
|
128
|
+
pn: string;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Convert LID (Linked ID) to Phone Number (PN/JID)
|
|
132
|
+
*
|
|
133
|
+
* This function uses Baileys' internal signalRepository.lidMapping to retrieve
|
|
134
|
+
* the phone number associated with a given LID.
|
|
135
|
+
*
|
|
136
|
+
* @param sessionId - Session ID to use for conversion
|
|
137
|
+
* @param lid - The LID to convert (e.g., "1524746986546@lid")
|
|
138
|
+
* @returns Promise<LIDConversionResult> - Result object with the phone number or null if not found
|
|
139
|
+
*
|
|
140
|
+
* @example
|
|
141
|
+
* ```typescript
|
|
142
|
+
* const result = await whatsapp.getPNForLID("mysession", "1524746986546@lid");
|
|
143
|
+
* if (result.success && result.pn) {
|
|
144
|
+
* console.log(`Phone number: ${result.pn}`);
|
|
145
|
+
* } else {
|
|
146
|
+
* console.log("Phone number not found for this LID");
|
|
147
|
+
* }
|
|
148
|
+
* ```
|
|
149
|
+
*
|
|
150
|
+
* @note This function may return null for new contacts or when WhatsApp
|
|
151
|
+
* hasn't provided the LID-PN mapping yet. Not all LIDs have known phone numbers.
|
|
152
|
+
*/
|
|
153
|
+
export declare const getPNForLID: (sessionId: string, lid: string) => Promise<LIDConversionResult>;
|
|
154
|
+
/**
|
|
155
|
+
* Convert Phone Number (PN/JID) to LID (Linked ID)
|
|
156
|
+
*
|
|
157
|
+
* This function uses Baileys' internal signalRepository.lidMapping to retrieve
|
|
158
|
+
* the LID associated with a given phone number.
|
|
159
|
+
*
|
|
160
|
+
* @param sessionId - Session ID to use for conversion
|
|
161
|
+
* @param pn - The phone number/JID to convert (e.g., "6281234567890" or "6281234567890@s.whatsapp.net")
|
|
162
|
+
* @returns Promise<PNConversionResult> - Result object with the LID or null if not found
|
|
163
|
+
*
|
|
164
|
+
* @example
|
|
165
|
+
* ```typescript
|
|
166
|
+
* const result = await whatsapp.getLIDForPN("mysession", "6281234567890");
|
|
167
|
+
* if (result.success && result.lid) {
|
|
168
|
+
* console.log(`LID: ${result.lid}`);
|
|
169
|
+
* } else {
|
|
170
|
+
* console.log("LID not found for this phone number");
|
|
171
|
+
* }
|
|
172
|
+
* ```
|
|
173
|
+
*
|
|
174
|
+
* @note This function may return null for contacts that haven't been encountered
|
|
175
|
+
* with their LID mapping yet.
|
|
176
|
+
*/
|
|
177
|
+
export declare const getLIDForPN: (sessionId: string, pn: string) => Promise<PNConversionResult>;
|
|
178
|
+
/**
|
|
179
|
+
* Get all known LID-PN mappings for a session
|
|
180
|
+
*
|
|
181
|
+
* This function retrieves all LID to phone number mappings that are currently
|
|
182
|
+
* stored in the session's signal repository.
|
|
183
|
+
*
|
|
184
|
+
* @param sessionId - Session ID to get mappings from
|
|
185
|
+
* @returns Promise<LIDMappingEntry[]> - Array of LID-PN mapping entries
|
|
186
|
+
*
|
|
187
|
+
* @example
|
|
188
|
+
* ```typescript
|
|
189
|
+
* const mappings = await whatsapp.getAllLIDMappings("mysession");
|
|
190
|
+
* for (const mapping of mappings) {
|
|
191
|
+
* console.log(`${mapping.lid} => ${mapping.pn}`);
|
|
192
|
+
* }
|
|
193
|
+
* ```
|
|
194
|
+
*
|
|
195
|
+
* @note This may return an empty array if no mappings are available yet.
|
|
196
|
+
*/
|
|
197
|
+
export declare const getAllLIDMappings: (sessionId: string) => Promise<LIDMappingEntry[]>;
|
|
198
|
+
/**
|
|
199
|
+
* Check if a JID is in LID format
|
|
200
|
+
*
|
|
201
|
+
* @param jid - The JID to check
|
|
202
|
+
* @returns boolean - True if the JID is in LID format
|
|
203
|
+
*
|
|
204
|
+
* @example
|
|
205
|
+
* ```typescript
|
|
206
|
+
* if (whatsapp.isLIDFormat("1524746986546@lid")) {
|
|
207
|
+
* console.log("This is an LID");
|
|
208
|
+
* }
|
|
209
|
+
* ```
|
|
210
|
+
*/
|
|
211
|
+
export declare const isLIDFormat: (jid: string) => boolean;
|
|
212
|
+
/**
|
|
213
|
+
* Check if a JID is in Phone Number format (@s.whatsapp.net)
|
|
214
|
+
*
|
|
215
|
+
* @param jid - The JID to check
|
|
216
|
+
* @returns boolean - True if the JID is in PN format
|
|
217
|
+
*
|
|
218
|
+
* @example
|
|
219
|
+
* ```typescript
|
|
220
|
+
* if (whatsapp.isPNFormat("6281234567890@s.whatsapp.net")) {
|
|
221
|
+
* console.log("This is a phone number JID");
|
|
222
|
+
* }
|
|
223
|
+
* ```
|
|
224
|
+
*/
|
|
225
|
+
export declare const isPNFormat: (jid: string) => boolean;
|
|
226
|
+
/**
|
|
227
|
+
* Smart convert any JID to phone number
|
|
228
|
+
*
|
|
229
|
+
* Automatically detects if the input is an LID and converts it to PN,
|
|
230
|
+
* or returns the PN if already in PN format.
|
|
231
|
+
*
|
|
232
|
+
* @param sessionId - Session ID to use for conversion
|
|
233
|
+
* @param jid - Any JID (LID or PN format)
|
|
234
|
+
* @returns Promise<string | null> - Phone number or null if conversion failed
|
|
235
|
+
*
|
|
236
|
+
* @example
|
|
237
|
+
* ```typescript
|
|
238
|
+
* const pn = await whatsapp.toPhoneNumber("mysession", jid);
|
|
239
|
+
* if (pn) {
|
|
240
|
+
* console.log(`Phone number: ${pn}`);
|
|
241
|
+
* }
|
|
242
|
+
* ```
|
|
243
|
+
*/
|
|
244
|
+
export declare const toPhoneNumber: (sessionId: string, jid: string) => Promise<string | null>;
|
|
245
|
+
/**
|
|
246
|
+
* Smart convert any JID to LID
|
|
247
|
+
*
|
|
248
|
+
* Automatically detects if the input is a PN and converts it to LID,
|
|
249
|
+
* or returns the LID if already in LID format.
|
|
250
|
+
*
|
|
251
|
+
* @param sessionId - Session ID to use for conversion
|
|
252
|
+
* @param jid - Any JID (LID or PN format)
|
|
253
|
+
* @returns Promise<string | null> - LID or null if conversion failed
|
|
254
|
+
*
|
|
255
|
+
* @example
|
|
256
|
+
* ```typescript
|
|
257
|
+
* const lid = await whatsapp.toLID("mysession", "6281234567890@s.whatsapp.net");
|
|
258
|
+
* if (lid) {
|
|
259
|
+
* console.log(`LID: ${lid}`);
|
|
260
|
+
* }
|
|
261
|
+
* ```
|
|
262
|
+
*/
|
|
263
|
+
export declare const toLID: (sessionId: string, jid: string) => Promise<string | null>;
|
|
264
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Socket/index.ts"],"names":[],"mappings":"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"}
|