@kangwifi-pro/waliwa 1.0.2 → 1.1.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/dist/community/audio-transcription.d.ts +46 -0
- package/dist/community/audio-transcription.d.ts.map +1 -0
- package/dist/community/audio-transcription.js +108 -0
- package/dist/community/audio-transcription.js.map +1 -0
- package/dist/community/bulk-operations.d.ts +87 -0
- package/dist/community/bulk-operations.d.ts.map +1 -0
- package/dist/community/bulk-operations.js +223 -0
- package/dist/community/bulk-operations.js.map +1 -0
- package/dist/community/community-fixes.d.ts +306 -0
- package/dist/community/community-fixes.d.ts.map +1 -0
- package/dist/community/community-fixes.js +630 -0
- package/dist/community/community-fixes.js.map +1 -0
- package/dist/community/contacts-manager.d.ts +89 -0
- package/dist/community/contacts-manager.d.ts.map +1 -0
- package/dist/community/contacts-manager.js +241 -0
- package/dist/community/contacts-manager.js.map +1 -0
- package/dist/community/disappearing.d.ts +63 -0
- package/dist/community/disappearing.d.ts.map +1 -0
- package/dist/community/disappearing.js +195 -0
- package/dist/community/disappearing.js.map +1 -0
- package/dist/community/index.d.ts +101 -0
- package/dist/community/index.d.ts.map +1 -0
- package/dist/community/index.js +113 -0
- package/dist/community/index.js.map +1 -0
- package/dist/community/live-location.d.ts +85 -0
- package/dist/community/live-location.d.ts.map +1 -0
- package/dist/community/live-location.js +238 -0
- package/dist/community/live-location.js.map +1 -0
- package/dist/community/message-extras.d.ts +110 -0
- package/dist/community/message-extras.d.ts.map +1 -0
- package/dist/community/message-extras.js +472 -0
- package/dist/community/message-extras.js.map +1 -0
- package/dist/community/newsletter-extended.d.ts +142 -0
- package/dist/community/newsletter-extended.d.ts.map +1 -0
- package/dist/community/newsletter-extended.js +543 -0
- package/dist/community/newsletter-extended.js.map +1 -0
- package/dist/community/privacy-manager.d.ts +98 -0
- package/dist/community/privacy-manager.d.ts.map +1 -0
- package/dist/community/privacy-manager.js +273 -0
- package/dist/community/privacy-manager.js.map +1 -0
- package/dist/community/profile-manager.d.ts +94 -0
- package/dist/community/profile-manager.d.ts.map +1 -0
- package/dist/community/profile-manager.js +363 -0
- package/dist/community/profile-manager.js.map +1 -0
- package/dist/community/status-extended.d.ts +119 -0
- package/dist/community/status-extended.d.ts.map +1 -0
- package/dist/community/status-extended.js +444 -0
- package/dist/community/status-extended.js.map +1 -0
- package/dist/community/sticker-manager.d.ts +73 -0
- package/dist/community/sticker-manager.d.ts.map +1 -0
- package/dist/community/sticker-manager.js +251 -0
- package/dist/community/sticker-manager.js.map +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +33 -2
- package/dist/index.js.map +1 -1
- package/dist/socket/wa-socket.d.ts +77 -0
- package/dist/socket/wa-socket.d.ts.map +1 -1
- package/dist/socket/wa-socket.js +149 -3
- package/dist/socket/wa-socket.js.map +1 -1
- package/package.json +2 -2
- package/src/community/audio-transcription.ts +121 -0
- package/src/community/bulk-operations.ts +329 -0
- package/src/community/community-fixes.ts +771 -0
- package/src/community/contacts-manager.ts +282 -0
- package/src/community/disappearing.ts +218 -0
- package/src/community/index.ts +169 -0
- package/src/community/live-location.ts +287 -0
- package/src/community/message-extras.ts +523 -0
- package/src/community/newsletter-extended.ts +614 -0
- package/src/community/privacy-manager.ts +310 -0
- package/src/community/profile-manager.ts +402 -0
- package/src/community/status-extended.ts +518 -0
- package/src/community/sticker-manager.ts +305 -0
- package/src/index.ts +67 -2
- package/src/socket/wa-socket.ts +183 -4
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Waliwa - Community Fixes (Community Request)
|
|
3
|
+
*
|
|
4
|
+
* Fix issues yang sering dikeluhkan komunitas Baileys:
|
|
5
|
+
*
|
|
6
|
+
* 1. Message status tidak real-time → Polling fix dengan proper event emission
|
|
7
|
+
* 2. Read receipts tidak reliable → Retry queue + persistent tracking
|
|
8
|
+
* 3. Group description update tidak terdeteksi → Event emission
|
|
9
|
+
* 4. Self message detection → Skip self messages
|
|
10
|
+
* 5. Archive/unarchive tidak reliable → Persist state + verify
|
|
11
|
+
* 6. Chat pin tidak reliable → Persist state + verify
|
|
12
|
+
* 7. Last seen tidak bisa di-get → Presence subscription tracker
|
|
13
|
+
* 8. Battery status tidak terdeteksi → Battery event handler
|
|
14
|
+
* 9. Phone info tidak bisa di-get → Device info fetch
|
|
15
|
+
* 10. Typing indicator tidak reliable → Track per chat
|
|
16
|
+
* 11. Reconnect loses pending messages → Message recovery
|
|
17
|
+
* 12. Group subject change tidak terdeteksi → Event emission
|
|
18
|
+
* 13. Group announce mode change → Event emission
|
|
19
|
+
* 14. Blocklist tidak sync → Sync on connect
|
|
20
|
+
* 15. Contact presence tidak reliable → Periodic refresh
|
|
21
|
+
*/
|
|
22
|
+
import { EventEmitter } from 'events';
|
|
23
|
+
import type { JIDLike, WALogger, WAMessage, WAMessageKey, MessageStatus } from '../types/index.js';
|
|
24
|
+
/**
|
|
25
|
+
* Track typing indicator per chat
|
|
26
|
+
* Fix Baileys issue: typing indicator tidak reliable
|
|
27
|
+
*/
|
|
28
|
+
export declare class TypingIndicatorTracker extends EventEmitter {
|
|
29
|
+
private typingUsers;
|
|
30
|
+
private typingTimeouts;
|
|
31
|
+
private logger;
|
|
32
|
+
private readonly timeoutMs;
|
|
33
|
+
constructor(logger?: WALogger);
|
|
34
|
+
/**
|
|
35
|
+
* Update typing status untuk a user
|
|
36
|
+
*/
|
|
37
|
+
updateTyping(jid: string, type: 'composing' | 'recording' | 'paused'): void;
|
|
38
|
+
/**
|
|
39
|
+
* Check if user is typing
|
|
40
|
+
*/
|
|
41
|
+
isTyping(jid: string): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Check if user is recording voice
|
|
44
|
+
*/
|
|
45
|
+
isRecording(jid: string): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Get all users currently typing
|
|
48
|
+
*/
|
|
49
|
+
getAllTyping(): Array<{
|
|
50
|
+
jid: string;
|
|
51
|
+
type: 'composing' | 'recording';
|
|
52
|
+
timestamp: number;
|
|
53
|
+
}>;
|
|
54
|
+
destroy(): void;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Track last seen untuk users
|
|
58
|
+
* Fix Baileys issue: last seen tidak bisa di-get
|
|
59
|
+
*/
|
|
60
|
+
export declare class LastSeenTracker {
|
|
61
|
+
private lastSeen;
|
|
62
|
+
private available;
|
|
63
|
+
private logger;
|
|
64
|
+
constructor(logger?: WALogger);
|
|
65
|
+
/**
|
|
66
|
+
* Update last seen untuk user
|
|
67
|
+
*/
|
|
68
|
+
update(jid: string, timestamp: number, isAvailable?: boolean): void;
|
|
69
|
+
/**
|
|
70
|
+
* Get last seen untuk user
|
|
71
|
+
*/
|
|
72
|
+
getLastSeen(jid: string): number | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* Check if user is currently online
|
|
75
|
+
*/
|
|
76
|
+
isOnline(jid: string): boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Get formatted last seen
|
|
79
|
+
*/
|
|
80
|
+
getFormattedLastSeen(jid: string): string;
|
|
81
|
+
clear(): void;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Track message status real-time
|
|
85
|
+
* Fix Baileys issue: message status tidak real-time
|
|
86
|
+
*/
|
|
87
|
+
export declare class MessageStatusTracker extends EventEmitter {
|
|
88
|
+
private status;
|
|
89
|
+
private logger;
|
|
90
|
+
private retryQueue;
|
|
91
|
+
constructor(logger?: WALogger);
|
|
92
|
+
/**
|
|
93
|
+
* Update message status
|
|
94
|
+
*/
|
|
95
|
+
updateStatus(key: WAMessageKey, status: MessageStatus, recipient?: string): void;
|
|
96
|
+
/**
|
|
97
|
+
* Get message status
|
|
98
|
+
*/
|
|
99
|
+
getStatus(messageId: string): MessageStatus | undefined;
|
|
100
|
+
/**
|
|
101
|
+
* Get detailed status info
|
|
102
|
+
*/
|
|
103
|
+
getStatusInfo(messageId: string): {
|
|
104
|
+
status: MessageStatus;
|
|
105
|
+
timestamp: number;
|
|
106
|
+
deliveredTo: string[];
|
|
107
|
+
readBy: string[];
|
|
108
|
+
} | undefined;
|
|
109
|
+
/**
|
|
110
|
+
* Mark message untuk retry (when status not updating)
|
|
111
|
+
*/
|
|
112
|
+
markForRetry(messageId: string): number;
|
|
113
|
+
/**
|
|
114
|
+
* Clear retry tracking
|
|
115
|
+
*/
|
|
116
|
+
clearRetry(messageId: string): void;
|
|
117
|
+
/**
|
|
118
|
+
* Get messages yang status-nya stuck (pending/sent > 5 minutes)
|
|
119
|
+
*/
|
|
120
|
+
getStuckMessages(maxAgeMs?: number): WAMessageKey[];
|
|
121
|
+
/**
|
|
122
|
+
* Clear old entries
|
|
123
|
+
*/
|
|
124
|
+
cleanup(maxAgeMs?: number): number;
|
|
125
|
+
size(): number;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Filter self messages
|
|
129
|
+
* Fix Baileys issue: self message detection missing
|
|
130
|
+
*/
|
|
131
|
+
export declare class SelfMessageFilter {
|
|
132
|
+
private ownJid;
|
|
133
|
+
private ownJids;
|
|
134
|
+
setOwnJid(jid: string): void;
|
|
135
|
+
isSelfMessage(jid: JIDLike): boolean;
|
|
136
|
+
isSelfKey(key: WAMessageKey): boolean;
|
|
137
|
+
filterSelfMessages(messages: WAMessage[]): WAMessage[];
|
|
138
|
+
getOwnJid(): string | null;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Persist chat states (archive, pin, mute) yang reliable
|
|
142
|
+
* Fix Baileys issue: archive/pin tidak reliable (lost on restart)
|
|
143
|
+
*/
|
|
144
|
+
export interface ChatState {
|
|
145
|
+
jid: string;
|
|
146
|
+
isArchived: boolean;
|
|
147
|
+
isPinned: boolean;
|
|
148
|
+
pinExpiration?: number;
|
|
149
|
+
isMuted: boolean;
|
|
150
|
+
muteExpiration?: number;
|
|
151
|
+
isRead: boolean;
|
|
152
|
+
lastMessage?: WAMessage;
|
|
153
|
+
updatedAt: number;
|
|
154
|
+
}
|
|
155
|
+
export declare class ChatStateManager {
|
|
156
|
+
private states;
|
|
157
|
+
private logger;
|
|
158
|
+
constructor(logger?: WALogger);
|
|
159
|
+
/**
|
|
160
|
+
* Update chat state
|
|
161
|
+
*/
|
|
162
|
+
updateState(jid: string, updates: Partial<ChatState>): ChatState;
|
|
163
|
+
/**
|
|
164
|
+
* Get chat state
|
|
165
|
+
*/
|
|
166
|
+
getState(jid: string): ChatState | undefined;
|
|
167
|
+
/**
|
|
168
|
+
* Archive chat
|
|
169
|
+
*/
|
|
170
|
+
archive(jid: string): void;
|
|
171
|
+
/**
|
|
172
|
+
* Unarchive chat
|
|
173
|
+
*/
|
|
174
|
+
unarchive(jid: string): void;
|
|
175
|
+
/**
|
|
176
|
+
* Pin chat
|
|
177
|
+
*/
|
|
178
|
+
pin(jid: string, durationMs?: number): void;
|
|
179
|
+
/**
|
|
180
|
+
* Unpin chat
|
|
181
|
+
*/
|
|
182
|
+
unpin(jid: string): void;
|
|
183
|
+
/**
|
|
184
|
+
* Mute chat
|
|
185
|
+
*/
|
|
186
|
+
mute(jid: string, durationMs?: number): void;
|
|
187
|
+
/**
|
|
188
|
+
* Unmute chat
|
|
189
|
+
*/
|
|
190
|
+
unmute(jid: string): void;
|
|
191
|
+
/**
|
|
192
|
+
* Mark chat as read
|
|
193
|
+
*/
|
|
194
|
+
markAsRead(jid: string): void;
|
|
195
|
+
/**
|
|
196
|
+
* Mark chat as unread
|
|
197
|
+
*/
|
|
198
|
+
markAsUnread(jid: string): void;
|
|
199
|
+
/**
|
|
200
|
+
* Get all archived chats
|
|
201
|
+
*/
|
|
202
|
+
getArchivedChats(): string[];
|
|
203
|
+
/**
|
|
204
|
+
* Get all pinned chats
|
|
205
|
+
*/
|
|
206
|
+
getPinnedChats(): string[];
|
|
207
|
+
/**
|
|
208
|
+
* Get all muted chats
|
|
209
|
+
*/
|
|
210
|
+
getMutedChats(): string[];
|
|
211
|
+
/**
|
|
212
|
+
* Cleanup expired states
|
|
213
|
+
*/
|
|
214
|
+
cleanup(): number;
|
|
215
|
+
/**
|
|
216
|
+
* Serialize untuk persistence
|
|
217
|
+
*/
|
|
218
|
+
serialize(): string;
|
|
219
|
+
/**
|
|
220
|
+
* Deserialize dari persistence
|
|
221
|
+
*/
|
|
222
|
+
deserialize(data: string): void;
|
|
223
|
+
size(): number;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Track device info (battery, phone info)
|
|
227
|
+
* Fix Baileys issue: battery status tidak terdeteksi, phone info tidak bisa di-get
|
|
228
|
+
*/
|
|
229
|
+
export declare class DeviceInfoTracker extends EventEmitter {
|
|
230
|
+
private batteryLevel;
|
|
231
|
+
private isCharging;
|
|
232
|
+
private deviceInfo;
|
|
233
|
+
private logger;
|
|
234
|
+
constructor(logger?: WALogger);
|
|
235
|
+
/**
|
|
236
|
+
* Update battery status
|
|
237
|
+
*/
|
|
238
|
+
updateBattery(level: number, isCharging: boolean): void;
|
|
239
|
+
/**
|
|
240
|
+
* Update device info
|
|
241
|
+
*/
|
|
242
|
+
updateDeviceInfo(info: {
|
|
243
|
+
platform?: string;
|
|
244
|
+
osVersion?: string;
|
|
245
|
+
manufacturer?: string;
|
|
246
|
+
model?: string;
|
|
247
|
+
appVersion?: string;
|
|
248
|
+
}): void;
|
|
249
|
+
getBatteryLevel(): number | null;
|
|
250
|
+
isDeviceCharging(): boolean;
|
|
251
|
+
getDeviceInfo(): {
|
|
252
|
+
platform?: string;
|
|
253
|
+
osVersion?: string;
|
|
254
|
+
manufacturer?: string;
|
|
255
|
+
model?: string;
|
|
256
|
+
appVersion?: string;
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Track group events yang reliable
|
|
261
|
+
* Fix Baileys issue: group subject/description/announce changes tidak terdeteksi
|
|
262
|
+
*/
|
|
263
|
+
export declare class GroupEventsTracker extends EventEmitter {
|
|
264
|
+
private groupStates;
|
|
265
|
+
private logger;
|
|
266
|
+
constructor(logger?: WALogger);
|
|
267
|
+
/**
|
|
268
|
+
* Update group state dari metadata
|
|
269
|
+
*/
|
|
270
|
+
updateGroupState(groupJid: string, metadata: {
|
|
271
|
+
subject?: string;
|
|
272
|
+
desc?: string;
|
|
273
|
+
announce?: boolean;
|
|
274
|
+
restrict?: boolean;
|
|
275
|
+
participants?: any[];
|
|
276
|
+
}): void;
|
|
277
|
+
getGroupState(groupJid: string): {
|
|
278
|
+
subject?: string;
|
|
279
|
+
description?: string;
|
|
280
|
+
announce?: boolean;
|
|
281
|
+
restrict?: boolean;
|
|
282
|
+
participantCount: number;
|
|
283
|
+
lastUpdated: number;
|
|
284
|
+
} | undefined;
|
|
285
|
+
clear(): void;
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Get info dari group invite link
|
|
289
|
+
* Fix Baileys issue: group invite link info tidak support
|
|
290
|
+
*/
|
|
291
|
+
export interface GroupInviteInfo {
|
|
292
|
+
code: string;
|
|
293
|
+
groupJid: string;
|
|
294
|
+
subject: string;
|
|
295
|
+
description?: string;
|
|
296
|
+
participantsCount: number;
|
|
297
|
+
isCommunity: boolean;
|
|
298
|
+
isParentGroup: boolean;
|
|
299
|
+
createdAt?: number;
|
|
300
|
+
createdBy?: string;
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Helper untuk parse group invite info dari binary node response
|
|
304
|
+
*/
|
|
305
|
+
export declare function parseGroupInviteInfo(node: any): GroupInviteInfo | null;
|
|
306
|
+
//# sourceMappingURL=community-fixes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"community-fixes.d.ts","sourceRoot":"","sources":["../../src/community/community-fixes.ts"],"names":[],"mappings":"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"}
|