baileys-joss 1.0.0 → 1.0.2

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.
Files changed (127) hide show
  1. package/README.md +2554 -78
  2. package/lib/Socket/business.d.ts +4 -0
  3. package/lib/Socket/business.d.ts.map +1 -1
  4. package/lib/Socket/chats.d.ts +4 -0
  5. package/lib/Socket/chats.d.ts.map +1 -1
  6. package/lib/Socket/chats.js +44 -1
  7. package/lib/Socket/chats.js.map +1 -1
  8. package/lib/Socket/communities.d.ts +4 -0
  9. package/lib/Socket/communities.d.ts.map +1 -1
  10. package/lib/Socket/groups.d.ts +4 -0
  11. package/lib/Socket/groups.d.ts.map +1 -1
  12. package/lib/Socket/index.d.ts +4 -0
  13. package/lib/Socket/index.d.ts.map +1 -1
  14. package/lib/Socket/messages-recv.d.ts +4 -0
  15. package/lib/Socket/messages-recv.d.ts.map +1 -1
  16. package/lib/Socket/messages-send.d.ts +4 -0
  17. package/lib/Socket/messages-send.d.ts.map +1 -1
  18. package/lib/Socket/messages-send.js +130 -1
  19. package/lib/Socket/messages-send.js.map +1 -1
  20. package/lib/Socket/newsletter.d.ts +4 -0
  21. package/lib/Socket/newsletter.d.ts.map +1 -1
  22. package/lib/Types/Message.d.ts +25 -1
  23. package/lib/Types/Message.d.ts.map +1 -1
  24. package/lib/Utils/activity-logger.d.ts +189 -0
  25. package/lib/Utils/activity-logger.d.ts.map +1 -0
  26. package/lib/Utils/activity-logger.js +418 -0
  27. package/lib/Utils/activity-logger.js.map +1 -0
  28. package/lib/Utils/anti-spam.d.ts +145 -0
  29. package/lib/Utils/anti-spam.d.ts.map +1 -0
  30. package/lib/Utils/anti-spam.js +398 -0
  31. package/lib/Utils/anti-spam.js.map +1 -0
  32. package/lib/Utils/auto-reply.d.ts +123 -0
  33. package/lib/Utils/auto-reply.d.ts.map +1 -0
  34. package/lib/Utils/auto-reply.js +234 -0
  35. package/lib/Utils/auto-reply.js.map +1 -0
  36. package/lib/Utils/broadcast.d.ts +121 -0
  37. package/lib/Utils/broadcast.d.ts.map +1 -0
  38. package/lib/Utils/broadcast.js +223 -0
  39. package/lib/Utils/broadcast.js.map +1 -0
  40. package/lib/Utils/bulk-messaging.d.ts +79 -0
  41. package/lib/Utils/bulk-messaging.d.ts.map +1 -0
  42. package/lib/Utils/bulk-messaging.js +148 -0
  43. package/lib/Utils/bulk-messaging.js.map +1 -0
  44. package/lib/Utils/chat-analytics.d.ts +92 -0
  45. package/lib/Utils/chat-analytics.d.ts.map +1 -0
  46. package/lib/Utils/chat-analytics.js +337 -0
  47. package/lib/Utils/chat-analytics.js.map +1 -0
  48. package/lib/Utils/chat-control.d.ts +156 -0
  49. package/lib/Utils/chat-control.d.ts.map +1 -0
  50. package/lib/Utils/chat-control.js +224 -0
  51. package/lib/Utils/chat-control.js.map +1 -0
  52. package/lib/Utils/chat-export.d.ts +75 -0
  53. package/lib/Utils/chat-export.d.ts.map +1 -0
  54. package/lib/Utils/chat-export.js +309 -0
  55. package/lib/Utils/chat-export.js.map +1 -0
  56. package/lib/Utils/content-detector.d.ts +199 -0
  57. package/lib/Utils/content-detector.d.ts.map +1 -0
  58. package/lib/Utils/content-detector.js +442 -0
  59. package/lib/Utils/content-detector.js.map +1 -0
  60. package/lib/Utils/index.d.ts +23 -0
  61. package/lib/Utils/index.d.ts.map +1 -1
  62. package/lib/Utils/index.js +52 -0
  63. package/lib/Utils/index.js.map +1 -1
  64. package/lib/Utils/link-scanner.d.ts +112 -0
  65. package/lib/Utils/link-scanner.d.ts.map +1 -0
  66. package/lib/Utils/link-scanner.js +433 -0
  67. package/lib/Utils/link-scanner.js.map +1 -0
  68. package/lib/Utils/media-downloader.d.ts +86 -0
  69. package/lib/Utils/media-downloader.d.ts.map +1 -0
  70. package/lib/Utils/media-downloader.js +269 -0
  71. package/lib/Utils/media-downloader.js.map +1 -0
  72. package/lib/Utils/meme-generator.d.ts +96 -0
  73. package/lib/Utils/meme-generator.d.ts.map +1 -0
  74. package/lib/Utils/meme-generator.js +368 -0
  75. package/lib/Utils/meme-generator.js.map +1 -0
  76. package/lib/Utils/message-search.d.ts +96 -0
  77. package/lib/Utils/message-search.d.ts.map +1 -0
  78. package/lib/Utils/message-search.js +261 -0
  79. package/lib/Utils/message-search.js.map +1 -0
  80. package/lib/Utils/messages-media.d.ts +20 -1
  81. package/lib/Utils/messages-media.d.ts.map +1 -1
  82. package/lib/Utils/messages-media.js +100 -5
  83. package/lib/Utils/messages-media.js.map +1 -1
  84. package/lib/Utils/messages.d.ts.map +1 -1
  85. package/lib/Utils/messages.js +14 -2
  86. package/lib/Utils/messages.js.map +1 -1
  87. package/lib/Utils/mini-games.d.ts +155 -0
  88. package/lib/Utils/mini-games.d.ts.map +1 -0
  89. package/lib/Utils/mini-games.js +445 -0
  90. package/lib/Utils/mini-games.js.map +1 -0
  91. package/lib/Utils/pomodoro.d.ts +139 -0
  92. package/lib/Utils/pomodoro.d.ts.map +1 -0
  93. package/lib/Utils/pomodoro.js +434 -0
  94. package/lib/Utils/pomodoro.js.map +1 -0
  95. package/lib/Utils/qr-generator.d.ts +95 -0
  96. package/lib/Utils/qr-generator.d.ts.map +1 -0
  97. package/lib/Utils/qr-generator.js +226 -0
  98. package/lib/Utils/qr-generator.js.map +1 -0
  99. package/lib/Utils/quotes.d.ts +110 -0
  100. package/lib/Utils/quotes.d.ts.map +1 -0
  101. package/lib/Utils/quotes.js +325 -0
  102. package/lib/Utils/quotes.js.map +1 -0
  103. package/lib/Utils/scheduling.d.ts +88 -0
  104. package/lib/Utils/scheduling.d.ts.map +1 -0
  105. package/lib/Utils/scheduling.js +163 -0
  106. package/lib/Utils/scheduling.js.map +1 -0
  107. package/lib/Utils/status-posting.d.ts +151 -0
  108. package/lib/Utils/status-posting.d.ts.map +1 -0
  109. package/lib/Utils/status-posting.js +162 -0
  110. package/lib/Utils/status-posting.js.map +1 -0
  111. package/lib/Utils/templates.d.ts +154 -0
  112. package/lib/Utils/templates.d.ts.map +1 -0
  113. package/lib/Utils/templates.js +368 -0
  114. package/lib/Utils/templates.js.map +1 -0
  115. package/lib/Utils/vcard.d.ts +86 -0
  116. package/lib/Utils/vcard.d.ts.map +1 -0
  117. package/lib/Utils/vcard.js +195 -0
  118. package/lib/Utils/vcard.js.map +1 -0
  119. package/lib/Utils/voice-note.d.ts +115 -0
  120. package/lib/Utils/voice-note.d.ts.map +1 -0
  121. package/lib/Utils/voice-note.js +212 -0
  122. package/lib/Utils/voice-note.js.map +1 -0
  123. package/lib/Utils/weather.d.ts +118 -0
  124. package/lib/Utils/weather.d.ts.map +1 -0
  125. package/lib/Utils/weather.js +362 -0
  126. package/lib/Utils/weather.js.map +1 -0
  127. package/package.json +6 -3
@@ -0,0 +1,398 @@
1
+ /**
2
+ * Baileys-Joss: Anti-Spam System
3
+ *
4
+ * Sistem untuk mendeteksi dan mencegah spam:
5
+ * - Rate limiting
6
+ * - Duplicate message detection
7
+ * - Flood protection
8
+ * - Pattern-based spam detection
9
+ */
10
+ // =====================================================
11
+ // ANTI-SPAM MANAGER
12
+ // =====================================================
13
+ export class AntiSpamManager {
14
+ constructor(options = {}) {
15
+ this.rules = new Map();
16
+ this.userActivity = new Map();
17
+ this.messageHashes = new Map(); // jid -> timestamps
18
+ this.options = {
19
+ maxMessagesPerMinute: options.maxMessagesPerMinute ?? 20,
20
+ maxDuplicates: options.maxDuplicates ?? 3,
21
+ duplicateWindow: options.duplicateWindow ?? 60000, // 1 minute
22
+ maxMessageLength: options.maxMessageLength ?? 5000,
23
+ minMessageDelay: options.minMessageDelay ?? 500,
24
+ spamPatterns: options.spamPatterns ?? [],
25
+ whitelist: options.whitelist ?? [],
26
+ onSpamDetected: options.onSpamDetected ?? (() => { })
27
+ };
28
+ // Initialize default rules
29
+ this.initDefaultRules();
30
+ }
31
+ /**
32
+ * Initialize default spam rules
33
+ */
34
+ initDefaultRules() {
35
+ this.addRule({
36
+ id: 'rate_limit',
37
+ name: 'Rate Limit',
38
+ type: 'rate_limit',
39
+ enabled: true,
40
+ config: { maxPerMinute: this.options.maxMessagesPerMinute },
41
+ action: 'warn'
42
+ });
43
+ this.addRule({
44
+ id: 'duplicate',
45
+ name: 'Duplicate Detection',
46
+ type: 'duplicate',
47
+ enabled: true,
48
+ config: { maxDuplicates: this.options.maxDuplicates },
49
+ action: 'warn'
50
+ });
51
+ this.addRule({
52
+ id: 'flood',
53
+ name: 'Flood Protection',
54
+ type: 'flood',
55
+ enabled: true,
56
+ config: { minDelay: this.options.minMessageDelay },
57
+ action: 'ignore'
58
+ });
59
+ }
60
+ /**
61
+ * Add a spam rule
62
+ */
63
+ addRule(rule) {
64
+ this.rules.set(rule.id, rule);
65
+ }
66
+ /**
67
+ * Remove a spam rule
68
+ */
69
+ removeRule(ruleId) {
70
+ return this.rules.delete(ruleId);
71
+ }
72
+ /**
73
+ * Enable/disable a rule
74
+ */
75
+ toggleRule(ruleId, enabled) {
76
+ const rule = this.rules.get(ruleId);
77
+ if (rule) {
78
+ rule.enabled = enabled;
79
+ }
80
+ }
81
+ /**
82
+ * Check if a message is spam
83
+ */
84
+ check(message) {
85
+ const jid = message.key.participant || message.key.remoteJid || '';
86
+ // Check whitelist
87
+ if (this.options.whitelist.includes(jid)) {
88
+ return { isSpam: false, rules: [], score: 0, action: 'ignore', reason: '' };
89
+ }
90
+ const triggeredRules = [];
91
+ let totalScore = 0;
92
+ let action = 'ignore';
93
+ const reasons = [];
94
+ const text = this.extractText(message);
95
+ const now = Date.now();
96
+ // Get or create user activity
97
+ let activity = this.userActivity.get(jid);
98
+ if (!activity) {
99
+ activity = {
100
+ jid,
101
+ messageCount: 0,
102
+ lastMessageTime: 0,
103
+ recentMessages: [],
104
+ warnings: 0,
105
+ muted: false,
106
+ banned: false
107
+ };
108
+ this.userActivity.set(jid, activity);
109
+ }
110
+ // Check if user is muted or banned
111
+ if (activity.banned) {
112
+ return {
113
+ isSpam: true,
114
+ rules: ['banned'],
115
+ score: 100,
116
+ action: 'delete',
117
+ reason: 'User is banned'
118
+ };
119
+ }
120
+ if (activity.muted && activity.mutedUntil && activity.mutedUntil > now) {
121
+ return {
122
+ isSpam: true,
123
+ rules: ['muted'],
124
+ score: 100,
125
+ action: 'delete',
126
+ reason: 'User is muted'
127
+ };
128
+ }
129
+ // Check each rule
130
+ for (const [, rule] of this.rules) {
131
+ if (!rule.enabled)
132
+ continue;
133
+ const ruleResult = this.checkRule(rule, message, text, activity, now);
134
+ if (ruleResult.triggered) {
135
+ triggeredRules.push(rule.id);
136
+ totalScore += ruleResult.score;
137
+ reasons.push(ruleResult.reason);
138
+ // Use the most severe action
139
+ if (this.getActionSeverity(rule.action) > this.getActionSeverity(action)) {
140
+ action = rule.action;
141
+ }
142
+ }
143
+ }
144
+ // Check spam patterns
145
+ for (const pattern of this.options.spamPatterns) {
146
+ if (pattern.test(text)) {
147
+ triggeredRules.push('pattern');
148
+ totalScore += 30;
149
+ reasons.push('Matches spam pattern');
150
+ }
151
+ }
152
+ // Update user activity
153
+ activity.messageCount++;
154
+ activity.lastMessageTime = now;
155
+ activity.recentMessages.push(this.hashMessage(text));
156
+ if (activity.recentMessages.length > 20) {
157
+ activity.recentMessages.shift();
158
+ }
159
+ const isSpam = totalScore >= 50;
160
+ if (isSpam) {
161
+ activity.warnings++;
162
+ this.options.onSpamDetected(jid, message, {
163
+ isSpam,
164
+ rules: triggeredRules,
165
+ score: totalScore,
166
+ action,
167
+ reason: reasons.join('; ')
168
+ });
169
+ }
170
+ return {
171
+ isSpam,
172
+ rules: triggeredRules,
173
+ score: totalScore,
174
+ action,
175
+ reason: reasons.join('; ')
176
+ };
177
+ }
178
+ /**
179
+ * Check individual rule
180
+ */
181
+ checkRule(rule, message, text, activity, now) {
182
+ switch (rule.type) {
183
+ case 'rate_limit': {
184
+ const maxPerMinute = rule.config.maxPerMinute || this.options.maxMessagesPerMinute;
185
+ const timestamps = this.messageHashes.get(activity.jid) || [];
186
+ const recentCount = timestamps.filter(t => now - t < 60000).length;
187
+ // Add current timestamp
188
+ timestamps.push(now);
189
+ this.messageHashes.set(activity.jid, timestamps.filter(t => now - t < 60000));
190
+ if (recentCount >= maxPerMinute) {
191
+ return { triggered: true, score: 40, reason: `Rate limit exceeded (${recentCount}/${maxPerMinute} per minute)` };
192
+ }
193
+ break;
194
+ }
195
+ case 'duplicate': {
196
+ const maxDuplicates = rule.config.maxDuplicates || this.options.maxDuplicates;
197
+ const hash = this.hashMessage(text);
198
+ const duplicateCount = activity.recentMessages.filter(h => h === hash).length;
199
+ if (duplicateCount >= maxDuplicates) {
200
+ return { triggered: true, score: 35, reason: `Duplicate message (${duplicateCount} times)` };
201
+ }
202
+ break;
203
+ }
204
+ case 'flood': {
205
+ const minDelay = rule.config.minDelay || this.options.minMessageDelay;
206
+ const timeSinceLastMessage = now - activity.lastMessageTime;
207
+ if (activity.lastMessageTime > 0 && timeSinceLastMessage < minDelay) {
208
+ return { triggered: true, score: 25, reason: `Message flood (${timeSinceLastMessage}ms delay)` };
209
+ }
210
+ break;
211
+ }
212
+ case 'pattern': {
213
+ const patterns = rule.config.patterns || [];
214
+ for (const pattern of patterns) {
215
+ if (pattern.test(text)) {
216
+ return { triggered: true, score: 50, reason: 'Matches spam pattern' };
217
+ }
218
+ }
219
+ break;
220
+ }
221
+ default:
222
+ break;
223
+ }
224
+ return { triggered: false, score: 0, reason: '' };
225
+ }
226
+ /**
227
+ * Get action severity (higher = more severe)
228
+ */
229
+ getActionSeverity(action) {
230
+ const severities = {
231
+ ignore: 0,
232
+ warn: 1,
233
+ delete: 2,
234
+ mute: 3,
235
+ kick: 4,
236
+ ban: 5
237
+ };
238
+ return severities[action] || 0;
239
+ }
240
+ /**
241
+ * Extract text from message
242
+ */
243
+ extractText(message) {
244
+ const content = message.message;
245
+ if (!content)
246
+ return '';
247
+ if (content.conversation)
248
+ return content.conversation;
249
+ if (content.extendedTextMessage?.text)
250
+ return content.extendedTextMessage.text;
251
+ if (content.imageMessage?.caption)
252
+ return content.imageMessage.caption;
253
+ if (content.videoMessage?.caption)
254
+ return content.videoMessage.caption;
255
+ return '';
256
+ }
257
+ /**
258
+ * Create a simple hash of message
259
+ */
260
+ hashMessage(text) {
261
+ const normalized = text.toLowerCase().replace(/\s+/g, ' ').trim();
262
+ return normalized.substring(0, 100);
263
+ }
264
+ /**
265
+ * Mute a user
266
+ */
267
+ muteUser(jid, durationMs) {
268
+ const activity = this.userActivity.get(jid) || {
269
+ jid,
270
+ messageCount: 0,
271
+ lastMessageTime: 0,
272
+ recentMessages: [],
273
+ warnings: 0,
274
+ muted: false,
275
+ banned: false
276
+ };
277
+ activity.muted = true;
278
+ activity.mutedUntil = Date.now() + durationMs;
279
+ this.userActivity.set(jid, activity);
280
+ }
281
+ /**
282
+ * Unmute a user
283
+ */
284
+ unmuteUser(jid) {
285
+ const activity = this.userActivity.get(jid);
286
+ if (activity) {
287
+ activity.muted = false;
288
+ activity.mutedUntil = undefined;
289
+ }
290
+ }
291
+ /**
292
+ * Ban a user
293
+ */
294
+ banUser(jid) {
295
+ const activity = this.userActivity.get(jid) || {
296
+ jid,
297
+ messageCount: 0,
298
+ lastMessageTime: 0,
299
+ recentMessages: [],
300
+ warnings: 0,
301
+ muted: false,
302
+ banned: false
303
+ };
304
+ activity.banned = true;
305
+ this.userActivity.set(jid, activity);
306
+ }
307
+ /**
308
+ * Unban a user
309
+ */
310
+ unbanUser(jid) {
311
+ const activity = this.userActivity.get(jid);
312
+ if (activity) {
313
+ activity.banned = false;
314
+ }
315
+ }
316
+ /**
317
+ * Add to whitelist
318
+ */
319
+ addToWhitelist(jid) {
320
+ if (!this.options.whitelist.includes(jid)) {
321
+ this.options.whitelist.push(jid);
322
+ }
323
+ }
324
+ /**
325
+ * Remove from whitelist
326
+ */
327
+ removeFromWhitelist(jid) {
328
+ const index = this.options.whitelist.indexOf(jid);
329
+ if (index !== -1) {
330
+ this.options.whitelist.splice(index, 1);
331
+ }
332
+ }
333
+ /**
334
+ * Get user activity
335
+ */
336
+ getUserActivity(jid) {
337
+ return this.userActivity.get(jid);
338
+ }
339
+ /**
340
+ * Reset user activity
341
+ */
342
+ resetUserActivity(jid) {
343
+ this.userActivity.delete(jid);
344
+ this.messageHashes.delete(jid);
345
+ }
346
+ /**
347
+ * Get spam statistics
348
+ */
349
+ getStats() {
350
+ let mutedUsers = 0;
351
+ let bannedUsers = 0;
352
+ let totalWarnings = 0;
353
+ for (const [, activity] of this.userActivity) {
354
+ if (activity.muted)
355
+ mutedUsers++;
356
+ if (activity.banned)
357
+ bannedUsers++;
358
+ totalWarnings += activity.warnings;
359
+ }
360
+ return {
361
+ totalUsers: this.userActivity.size,
362
+ mutedUsers,
363
+ bannedUsers,
364
+ totalWarnings
365
+ };
366
+ }
367
+ /**
368
+ * Clear all data
369
+ */
370
+ clear() {
371
+ this.userActivity.clear();
372
+ this.messageHashes.clear();
373
+ }
374
+ }
375
+ // =====================================================
376
+ // FACTORY FUNCTION
377
+ // =====================================================
378
+ export const createAntiSpam = (options) => {
379
+ return new AntiSpamManager(options);
380
+ };
381
+ // =====================================================
382
+ // COMMON SPAM PATTERNS
383
+ // =====================================================
384
+ export const COMMON_SPAM_PATTERNS = [
385
+ // Repeated characters
386
+ /(.)\1{10,}/i,
387
+ // All caps (more than 20 chars)
388
+ /[A-Z\s]{20,}/,
389
+ // Too many emojis
390
+ /(?:[\u{1F600}-\u{1F64F}][\s]*){10,}/u,
391
+ // Promotional keywords
392
+ /(?:free|gratis|promo|discount|sale|bonus|win|winner|jackpot|lottery|claim)/gi,
393
+ // Suspicious links patterns
394
+ /(?:bit\.ly|tinyurl|goo\.gl|t\.co|rb\.gy)/gi,
395
+ // Money/crypto scam patterns
396
+ /(?:bitcoin|crypto|invest|trading|profit|earn money|make money|income)/gi
397
+ ];
398
+ //# sourceMappingURL=anti-spam.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anti-spam.js","sourceRoot":"","sources":["../../src/Utils/anti-spam.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Baileys-Joss: Auto Reply System
3
+ *
4
+ * Sistem balasan otomatis berdasarkan keyword/pattern
5
+ */
6
+ import type { AnyMessageContent, WAMessage } from '../Types/index.js';
7
+ export interface AutoReplyRule {
8
+ id: string;
9
+ /** Keywords to match (case-insensitive) */
10
+ keywords?: string[];
11
+ /** Regex pattern to match */
12
+ pattern?: RegExp;
13
+ /** Exact match (case-insensitive) */
14
+ exactMatch?: string;
15
+ /** Response content */
16
+ response: AnyMessageContent | ((message: WAMessage, match: RegExpMatchArray | null) => AnyMessageContent | Promise<AnyMessageContent>);
17
+ /** Only reply in specific chats */
18
+ allowedJids?: string[];
19
+ /** Ignore these JIDs */
20
+ blockedJids?: string[];
21
+ /** Only reply to groups */
22
+ groupsOnly?: boolean;
23
+ /** Only reply to private chats */
24
+ privateOnly?: boolean;
25
+ /** Cooldown in milliseconds per JID */
26
+ cooldown?: number;
27
+ /** Reply with quote */
28
+ quoted?: boolean;
29
+ /** Active status */
30
+ active?: boolean;
31
+ /** Priority (higher = checked first) */
32
+ priority?: number;
33
+ }
34
+ export interface AutoReplyOptions {
35
+ /** Global cooldown in milliseconds (default: 1000ms) */
36
+ globalCooldown?: number;
37
+ /** Enable typing indicator before reply */
38
+ simulateTyping?: boolean;
39
+ /** Typing duration in milliseconds (default: 1000ms) */
40
+ typingDuration?: number;
41
+ /** Process multiple matches (default: false) */
42
+ multiMatch?: boolean;
43
+ /** Callback when auto-reply is triggered */
44
+ onReply?: (rule: AutoReplyRule, message: WAMessage, response: AnyMessageContent) => void;
45
+ /** Callback on error */
46
+ onError?: (error: Error, rule: AutoReplyRule, message: WAMessage) => void;
47
+ }
48
+ type AutoReplySendFunction = (jid: string, content: AnyMessageContent, options?: {
49
+ quoted?: WAMessage;
50
+ }) => Promise<WAMessage | undefined>;
51
+ export type PresenceFunction = (jid: string, presence: 'composing' | 'paused') => Promise<void>;
52
+ /**
53
+ * Auto Reply Handler - Sistem balasan otomatis
54
+ */
55
+ export declare class AutoReplyHandler {
56
+ private rules;
57
+ private cooldowns;
58
+ private globalCooldown;
59
+ private sendMessage;
60
+ private sendPresence?;
61
+ private options;
62
+ constructor(sendMessage: AutoReplySendFunction, sendPresence?: PresenceFunction, options?: AutoReplyOptions);
63
+ /**
64
+ * Generate unique ID for rule
65
+ */
66
+ private generateId;
67
+ /**
68
+ * Add a new auto-reply rule
69
+ */
70
+ addRule(rule: Omit<AutoReplyRule, 'id'> & {
71
+ id?: string;
72
+ }): AutoReplyRule;
73
+ /**
74
+ * Remove a rule by ID
75
+ */
76
+ removeRule(id: string): boolean;
77
+ /**
78
+ * Get all rules
79
+ */
80
+ getRules(): AutoReplyRule[];
81
+ /**
82
+ * Get a rule by ID
83
+ */
84
+ getRule(id: string): AutoReplyRule | undefined;
85
+ /**
86
+ * Enable/disable a rule
87
+ */
88
+ setRuleActive(id: string, active: boolean): boolean;
89
+ /**
90
+ * Clear all rules
91
+ */
92
+ clearRules(): void;
93
+ /**
94
+ * Check cooldown for a specific rule and JID
95
+ */
96
+ private checkCooldown;
97
+ /**
98
+ * Check global cooldown for JID
99
+ */
100
+ private checkGlobalCooldown;
101
+ /**
102
+ * Set cooldown
103
+ */
104
+ private setCooldown;
105
+ /**
106
+ * Check if message matches a rule
107
+ */
108
+ private matchRule;
109
+ /**
110
+ * Check if JID is allowed for this rule
111
+ */
112
+ private isJidAllowed;
113
+ /**
114
+ * Process incoming message and send auto-reply if matched
115
+ */
116
+ processMessage(message: WAMessage): Promise<boolean>;
117
+ }
118
+ /**
119
+ * Create an auto-reply handler instance
120
+ */
121
+ export declare const createAutoReply: (sendMessage: AutoReplySendFunction, sendPresence?: PresenceFunction, options?: AutoReplyOptions) => AutoReplyHandler;
122
+ export {};
123
+ //# sourceMappingURL=auto-reply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-reply.d.ts","sourceRoot":"","sources":["../../src/Utils/auto-reply.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAE5D,MAAM,WAAW,aAAa;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,uBAAuB;IACvB,QAAQ,EAAE,iBAAiB,GAAG,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,KAAK,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAA;IACtI,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,wBAAwB;IACxB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,2BAA2B;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,kCAAkC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,uBAAuB;IACvB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,oBAAoB;IACpB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,gBAAgB;IAChC,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gDAAgD;IAChD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAA;IACxF,wBAAwB;IACxB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,KAAK,IAAI,CAAA;CACzE;AAED,KAAK,qBAAqB,GAAG,CAC5B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,SAAS,CAAA;CAAE,KAC5B,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAA;AAEnC,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAE/F;;GAEG;AACH,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,KAAK,CAAwC;IACrD,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,cAAc,CAAiC;IACvD,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,YAAY,CAAC,CAAkB;IACvC,OAAO,CAAC,OAAO,CAA4B;gBAG1C,WAAW,EAAE,qBAAqB,EAClC,YAAY,CAAC,EAAE,gBAAgB,EAC/B,OAAO,GAAE,gBAAqB;IAc/B;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,aAAa;IAgBzE;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI/B;;OAEG;IACH,QAAQ,IAAI,aAAa,EAAE;IAI3B;;OAEG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI9C;;OAEG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO;IASnD;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,OAAO,CAAC,aAAa;IAMrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAK3B;;OAEG;IACH,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACH,OAAO,CAAC,SAAS;IA4BjB;;OAEG;IACH,OAAO,CAAC,YAAY;IAsBpB;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;CA4E1D;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,GAC3B,aAAa,qBAAqB,EAClC,eAAe,gBAAgB,EAC/B,UAAU,gBAAgB,KACxB,gBAEF,CAAA"}