@kangwifi-pro/waliwa 2.1.1 → 3.0.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.
Files changed (191) hide show
  1. package/LICENSE +0 -0
  2. package/README.md +0 -0
  3. package/dist/advanced/features.d.ts +0 -0
  4. package/dist/advanced/features.d.ts.map +0 -0
  5. package/dist/advanced/features.js +0 -0
  6. package/dist/advanced/features.js.map +0 -0
  7. package/dist/auth/auth-state.d.ts +0 -0
  8. package/dist/auth/auth-state.d.ts.map +0 -0
  9. package/dist/auth/auth-state.js +0 -0
  10. package/dist/auth/auth-state.js.map +0 -0
  11. package/dist/auth/pairing-code.d.ts +0 -0
  12. package/dist/auth/pairing-code.d.ts.map +0 -0
  13. package/dist/auth/pairing-code.js +0 -0
  14. package/dist/auth/pairing-code.js.map +0 -0
  15. package/dist/auth/qr-code.d.ts +0 -0
  16. package/dist/auth/qr-code.d.ts.map +0 -0
  17. package/dist/auth/qr-code.js +0 -0
  18. package/dist/auth/qr-code.js.map +0 -0
  19. package/dist/calls/handler.d.ts +0 -0
  20. package/dist/calls/handler.d.ts.map +0 -0
  21. package/dist/calls/handler.js +0 -0
  22. package/dist/calls/handler.js.map +0 -0
  23. package/dist/community/audio-transcription.d.ts +0 -0
  24. package/dist/community/audio-transcription.d.ts.map +0 -0
  25. package/dist/community/audio-transcription.js +0 -0
  26. package/dist/community/audio-transcription.js.map +0 -0
  27. package/dist/community/bulk-operations.d.ts +0 -0
  28. package/dist/community/bulk-operations.d.ts.map +0 -0
  29. package/dist/community/bulk-operations.js +0 -0
  30. package/dist/community/bulk-operations.js.map +0 -0
  31. package/dist/community/community-fixes.d.ts +0 -0
  32. package/dist/community/community-fixes.d.ts.map +0 -0
  33. package/dist/community/community-fixes.js +0 -0
  34. package/dist/community/community-fixes.js.map +0 -0
  35. package/dist/community/contacts-manager.d.ts +0 -0
  36. package/dist/community/contacts-manager.d.ts.map +0 -0
  37. package/dist/community/contacts-manager.js +0 -0
  38. package/dist/community/contacts-manager.js.map +0 -0
  39. package/dist/community/disappearing.d.ts +0 -0
  40. package/dist/community/disappearing.d.ts.map +0 -0
  41. package/dist/community/disappearing.js +0 -0
  42. package/dist/community/disappearing.js.map +0 -0
  43. package/dist/community/index.d.ts +0 -0
  44. package/dist/community/index.d.ts.map +0 -0
  45. package/dist/community/index.js +0 -0
  46. package/dist/community/index.js.map +0 -0
  47. package/dist/community/live-location.d.ts +0 -0
  48. package/dist/community/live-location.d.ts.map +0 -0
  49. package/dist/community/live-location.js +0 -0
  50. package/dist/community/live-location.js.map +0 -0
  51. package/dist/community/message-extras.d.ts +0 -0
  52. package/dist/community/message-extras.d.ts.map +0 -0
  53. package/dist/community/message-extras.js +0 -0
  54. package/dist/community/message-extras.js.map +0 -0
  55. package/dist/community/newsletter-extended.d.ts +0 -0
  56. package/dist/community/newsletter-extended.d.ts.map +0 -0
  57. package/dist/community/newsletter-extended.js +0 -0
  58. package/dist/community/newsletter-extended.js.map +0 -0
  59. package/dist/community/privacy-manager.d.ts +0 -0
  60. package/dist/community/privacy-manager.d.ts.map +0 -0
  61. package/dist/community/privacy-manager.js +0 -0
  62. package/dist/community/privacy-manager.js.map +0 -0
  63. package/dist/community/profile-manager.d.ts +0 -0
  64. package/dist/community/profile-manager.d.ts.map +0 -0
  65. package/dist/community/profile-manager.js +0 -0
  66. package/dist/community/profile-manager.js.map +0 -0
  67. package/dist/community/status-extended.d.ts +0 -0
  68. package/dist/community/status-extended.d.ts.map +0 -0
  69. package/dist/community/status-extended.js +0 -0
  70. package/dist/community/status-extended.js.map +0 -0
  71. package/dist/community/sticker-manager.d.ts +0 -0
  72. package/dist/community/sticker-manager.d.ts.map +0 -0
  73. package/dist/community/sticker-manager.js +0 -0
  74. package/dist/community/sticker-manager.js.map +0 -0
  75. package/dist/core/binary.d.ts +0 -0
  76. package/dist/core/binary.d.ts.map +0 -0
  77. package/dist/core/binary.js +0 -0
  78. package/dist/core/binary.js.map +0 -0
  79. package/dist/core/client-payload.d.ts +0 -0
  80. package/dist/core/client-payload.d.ts.map +0 -0
  81. package/dist/core/client-payload.js +0 -0
  82. package/dist/core/client-payload.js.map +0 -0
  83. package/dist/core/crypto.d.ts +0 -0
  84. package/dist/core/crypto.d.ts.map +0 -0
  85. package/dist/core/crypto.js +0 -0
  86. package/dist/core/crypto.js.map +0 -0
  87. package/dist/core/noise.d.ts +0 -0
  88. package/dist/core/noise.d.ts.map +0 -0
  89. package/dist/core/noise.js +0 -0
  90. package/dist/core/noise.js.map +0 -0
  91. package/dist/events/emitter.d.ts +0 -0
  92. package/dist/events/emitter.d.ts.map +0 -0
  93. package/dist/events/emitter.js +0 -0
  94. package/dist/events/emitter.js.map +0 -0
  95. package/dist/features/index.d.ts +0 -0
  96. package/dist/features/index.d.ts.map +0 -0
  97. package/dist/features/index.js +0 -0
  98. package/dist/features/index.js.map +0 -0
  99. package/dist/fixes/index.d.ts +0 -0
  100. package/dist/fixes/index.d.ts.map +0 -0
  101. package/dist/fixes/index.js +0 -0
  102. package/dist/fixes/index.js.map +0 -0
  103. package/dist/groups/management.d.ts +0 -0
  104. package/dist/groups/management.d.ts.map +0 -0
  105. package/dist/groups/management.js +0 -0
  106. package/dist/groups/management.js.map +0 -0
  107. package/dist/helpers/automation.d.ts +84 -0
  108. package/dist/helpers/automation.d.ts.map +1 -0
  109. package/dist/helpers/automation.js +245 -0
  110. package/dist/helpers/automation.js.map +1 -0
  111. package/dist/helpers/builder.d.ts +263 -0
  112. package/dist/helpers/builder.d.ts.map +1 -0
  113. package/dist/helpers/builder.js +446 -0
  114. package/dist/helpers/builder.js.map +1 -0
  115. package/dist/helpers/command.d.ts +130 -0
  116. package/dist/helpers/command.d.ts.map +1 -0
  117. package/dist/helpers/command.js +281 -0
  118. package/dist/helpers/command.js.map +1 -0
  119. package/dist/helpers/defaults.d.ts +0 -0
  120. package/dist/helpers/defaults.d.ts.map +0 -0
  121. package/dist/helpers/defaults.js +0 -0
  122. package/dist/helpers/defaults.js.map +1 -1
  123. package/dist/helpers/media.d.ts +0 -0
  124. package/dist/helpers/media.d.ts.map +1 -1
  125. package/dist/helpers/media.js +0 -0
  126. package/dist/helpers/media.js.map +1 -1
  127. package/dist/helpers/message.d.ts +0 -0
  128. package/dist/helpers/message.d.ts.map +1 -1
  129. package/dist/helpers/message.js +0 -0
  130. package/dist/helpers/message.js.map +1 -1
  131. package/dist/helpers/plugin.d.ts +77 -0
  132. package/dist/helpers/plugin.d.ts.map +1 -0
  133. package/dist/helpers/plugin.js +180 -0
  134. package/dist/helpers/plugin.js.map +1 -0
  135. package/dist/helpers/sticker.d.ts +0 -0
  136. package/dist/helpers/sticker.d.ts.map +1 -1
  137. package/dist/helpers/sticker.js +0 -0
  138. package/dist/helpers/sticker.js.map +1 -1
  139. package/dist/index.d.ts +23 -21
  140. package/dist/index.d.ts.map +1 -1
  141. package/dist/index.js +45 -23
  142. package/dist/index.js.map +1 -1
  143. package/dist/messages/media.d.ts +0 -0
  144. package/dist/messages/media.d.ts.map +0 -0
  145. package/dist/messages/media.js +0 -0
  146. package/dist/messages/media.js.map +0 -0
  147. package/dist/messages/message-encoder.d.ts +0 -0
  148. package/dist/messages/message-encoder.d.ts.map +0 -0
  149. package/dist/messages/message-encoder.js +0 -0
  150. package/dist/messages/message-encoder.js.map +0 -0
  151. package/dist/messages/send.d.ts +0 -0
  152. package/dist/messages/send.d.ts.map +0 -0
  153. package/dist/messages/send.js +0 -0
  154. package/dist/messages/send.js.map +0 -0
  155. package/dist/recovery/index.d.ts +0 -0
  156. package/dist/recovery/index.d.ts.map +0 -0
  157. package/dist/recovery/index.js +0 -0
  158. package/dist/recovery/index.js.map +0 -0
  159. package/dist/skdm/index.d.ts +0 -0
  160. package/dist/skdm/index.d.ts.map +0 -0
  161. package/dist/skdm/index.js +0 -0
  162. package/dist/skdm/index.js.map +0 -0
  163. package/dist/socket/hybrid.d.ts +0 -0
  164. package/dist/socket/hybrid.d.ts.map +0 -0
  165. package/dist/socket/hybrid.js +0 -0
  166. package/dist/socket/hybrid.js.map +0 -0
  167. package/dist/socket/wa-socket.d.ts +0 -0
  168. package/dist/socket/wa-socket.d.ts.map +0 -0
  169. package/dist/socket/wa-socket.js +0 -0
  170. package/dist/socket/wa-socket.js.map +0 -0
  171. package/dist/socket/ws-socket.d.ts +0 -0
  172. package/dist/socket/ws-socket.d.ts.map +0 -0
  173. package/dist/socket/ws-socket.js +0 -0
  174. package/dist/socket/ws-socket.js.map +0 -0
  175. package/dist/types/index.d.ts +0 -0
  176. package/dist/types/index.d.ts.map +0 -0
  177. package/dist/types/index.js +0 -0
  178. package/dist/types/index.js.map +0 -0
  179. package/dist/utils/jid.d.ts +0 -0
  180. package/dist/utils/jid.d.ts.map +0 -0
  181. package/dist/utils/jid.js +0 -0
  182. package/dist/utils/jid.js.map +0 -0
  183. package/dist/utils/logger.d.ts +0 -0
  184. package/dist/utils/logger.d.ts.map +0 -0
  185. package/dist/utils/logger.js +0 -0
  186. package/dist/utils/logger.js.map +0 -0
  187. package/dist/utils/retry.d.ts +0 -0
  188. package/dist/utils/retry.d.ts.map +0 -0
  189. package/dist/utils/retry.js +0 -0
  190. package/dist/utils/retry.js.map +0 -0
  191. package/package.json +12 -12
package/LICENSE CHANGED
File without changes
package/README.md CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Waliwa - Automation Module (from zaileys concept)
3
+ *
4
+ * Auto features:
5
+ * - AutoRejectCall: auto-reject incoming calls
6
+ * - AutoDelete: auto-delete old messages
7
+ * - AutoRead: auto-mark messages as read
8
+ * - AutoPresence: auto typing/recording indicator
9
+ * - Broadcast: send to multiple recipients with delay
10
+ * - RateLimiter: per-recipient rate limiting
11
+ * - Scheduler: schedule messages for future delivery
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * import { AutoRejectCall, AutoRead, AutoPresence } from 'waliwa';
16
+ *
17
+ * const autoReject = new AutoRejectCall(sock);
18
+ * autoReject.start();
19
+ *
20
+ * const autoRead = new AutoRead(sock);
21
+ * autoRead.start();
22
+ * ```
23
+ */
24
+ export declare class AutoRejectCall {
25
+ private sock;
26
+ private enabled;
27
+ private whitelist;
28
+ constructor(sock: any);
29
+ start(): void;
30
+ allow(jid: string): void;
31
+ stop(): void;
32
+ }
33
+ export declare class AutoRead {
34
+ private sock;
35
+ private enabled;
36
+ private excludeGroups;
37
+ constructor(sock: any, opts?: {
38
+ excludeGroups?: boolean;
39
+ });
40
+ start(): void;
41
+ stop(): void;
42
+ }
43
+ export declare class AutoPresence {
44
+ private sock;
45
+ private enabled;
46
+ private typingTimers;
47
+ constructor(sock: any);
48
+ start(): void;
49
+ stop(): void;
50
+ }
51
+ export declare class Broadcast {
52
+ private sock;
53
+ private defaultDelay;
54
+ constructor(sock: any, defaultDelayMs?: number);
55
+ send(jids: string[], content: any, opts?: {
56
+ delayMs?: number;
57
+ onProgress?: (current: number, total: number) => void;
58
+ }): Promise<Array<{
59
+ jid: string;
60
+ success: boolean;
61
+ error?: string;
62
+ }>>;
63
+ sendText(jids: string[], text: string, opts?: any): Promise<any>;
64
+ }
65
+ export declare class Scheduler {
66
+ private sock;
67
+ private jobs;
68
+ constructor(sock: any);
69
+ schedule(id: string, jid: string, content: any, delayMs: number): string;
70
+ cancel(id: string): boolean;
71
+ list(): Array<{
72
+ id: string;
73
+ jid: string;
74
+ }>;
75
+ cancelAll(): void;
76
+ }
77
+ export declare class RateLimiter {
78
+ private limits;
79
+ setLimit(jid: string, max: number, windowMs: number): void;
80
+ canSend(jid: string): boolean;
81
+ getRemaining(jid: string): number;
82
+ reset(jid: string): void;
83
+ }
84
+ //# sourceMappingURL=automation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automation.d.ts","sourceRoot":"","sources":["../../src/helpers/automation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,qBAAa,cAAc;IACzB,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,SAAS,CAA0B;IAE3C,YAAY,IAAI,EAAE,GAAG,EAEpB;IAED,KAAK,IAAI,IAAI,CAUZ;IAED,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEvB;IAED,IAAI,IAAI,IAAI,CAEX;CACF;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,aAAa,CAAkB;IAEvC,YAAY,IAAI,EAAE,GAAG,EAAE,IAAI,GAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAA;KAAO,EAG5D;IAED,KAAK,IAAI,IAAI,CAsBZ;IAED,IAAI,IAAI,IAAI,CAEX;CACF;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,YAAY,CAA0C;IAE9D,YAAY,IAAI,EAAE,GAAG,EAEpB;IAED,KAAK,IAAI,IAAI,CAiCZ;IAED,IAAI,IAAI,IAAI,CAMX;CACF;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,YAAY,CAAS;IAE7B,YAAY,IAAI,EAAE,GAAG,EAAE,cAAc,GAAE,MAAa,EAGnD;IAEK,IAAI,CACR,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,GAAG,EACZ,IAAI,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;KAAO,GACrF,OAAO,CAAC,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAmBnE;IAEK,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAErE;CACF;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,IAAI,CAAkF;IAE9F,YAAY,IAAI,EAAE,GAAG,EAEpB;IAED,QAAQ,CACN,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,MAAM,GACd,MAAM,CAeR;IAED,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAM1B;IAED,IAAI,IAAI,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAKzC;IAED,SAAS,IAAI,IAAI,CAKhB;CACF;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAiF;IAE/F,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAEzD;IAED,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAU5B;IAED,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIhC;IAED,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAGvB;CACF"}
@@ -0,0 +1,245 @@
1
+ "use strict";
2
+ /**
3
+ * Waliwa - Automation Module (from zaileys concept)
4
+ *
5
+ * Auto features:
6
+ * - AutoRejectCall: auto-reject incoming calls
7
+ * - AutoDelete: auto-delete old messages
8
+ * - AutoRead: auto-mark messages as read
9
+ * - AutoPresence: auto typing/recording indicator
10
+ * - Broadcast: send to multiple recipients with delay
11
+ * - RateLimiter: per-recipient rate limiting
12
+ * - Scheduler: schedule messages for future delivery
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * import { AutoRejectCall, AutoRead, AutoPresence } from 'waliwa';
17
+ *
18
+ * const autoReject = new AutoRejectCall(sock);
19
+ * autoReject.start();
20
+ *
21
+ * const autoRead = new AutoRead(sock);
22
+ * autoRead.start();
23
+ * ```
24
+ */
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.RateLimiter = exports.Scheduler = exports.Broadcast = exports.AutoPresence = exports.AutoRead = exports.AutoRejectCall = void 0;
27
+ class AutoRejectCall {
28
+ sock;
29
+ enabled = false;
30
+ whitelist = new Set();
31
+ constructor(sock) {
32
+ this.sock = sock;
33
+ }
34
+ start() {
35
+ if (this.enabled)
36
+ return;
37
+ this.enabled = true;
38
+ this.sock.ev.on('call', (calls) => {
39
+ for (const call of calls) {
40
+ if (call.status === 'ringing' && !this.whitelist.has(call.from)) {
41
+ this.sock.rejectCall(call.id, call.from).catch(() => { });
42
+ }
43
+ }
44
+ });
45
+ }
46
+ allow(jid) {
47
+ this.whitelist.add(jid);
48
+ }
49
+ stop() {
50
+ this.enabled = false;
51
+ }
52
+ }
53
+ exports.AutoRejectCall = AutoRejectCall;
54
+ class AutoRead {
55
+ sock;
56
+ enabled = false;
57
+ excludeGroups = false;
58
+ constructor(sock, opts = {}) {
59
+ this.sock = sock;
60
+ this.excludeGroups = opts.excludeGroups ?? false;
61
+ }
62
+ start() {
63
+ if (this.enabled)
64
+ return;
65
+ this.enabled = true;
66
+ this.sock.ev.on('messages.upsert', async ({ messages, type }) => {
67
+ if (type !== 'notify')
68
+ return;
69
+ for (const msg of messages) {
70
+ if (msg.key?.fromMe)
71
+ continue;
72
+ const jid = msg.key?.remoteJid;
73
+ if (!jid)
74
+ continue;
75
+ if (this.excludeGroups && jid.endsWith('@g.us'))
76
+ continue;
77
+ try {
78
+ await this.sock.readMessages([msg.key]);
79
+ }
80
+ catch {
81
+ // ignore
82
+ }
83
+ }
84
+ });
85
+ }
86
+ stop() {
87
+ this.enabled = false;
88
+ }
89
+ }
90
+ exports.AutoRead = AutoRead;
91
+ class AutoPresence {
92
+ sock;
93
+ enabled = false;
94
+ typingTimers = new Map();
95
+ constructor(sock) {
96
+ this.sock = sock;
97
+ }
98
+ start() {
99
+ if (this.enabled)
100
+ return;
101
+ this.enabled = true;
102
+ this.sock.ev.on('messages.upsert', async ({ messages, type }) => {
103
+ if (type !== 'notify')
104
+ return;
105
+ for (const msg of messages) {
106
+ if (msg.key?.fromMe)
107
+ continue;
108
+ const jid = msg.key?.remoteJid;
109
+ if (!jid)
110
+ continue;
111
+ // Clear existing timer
112
+ const existing = this.typingTimers.get(jid);
113
+ if (existing)
114
+ clearTimeout(existing);
115
+ // Send typing indicator
116
+ try {
117
+ await this.sock.sendPresenceUpdate('composing', jid);
118
+ // Stop after 3 seconds
119
+ this.typingTimers.set(jid, setTimeout(async () => {
120
+ try {
121
+ await this.sock.sendPresenceUpdate('paused', jid);
122
+ }
123
+ catch { }
124
+ this.typingTimers.delete(jid);
125
+ }, 3000));
126
+ }
127
+ catch {
128
+ // ignore
129
+ }
130
+ }
131
+ });
132
+ }
133
+ stop() {
134
+ this.enabled = false;
135
+ for (const timer of this.typingTimers.values()) {
136
+ clearTimeout(timer);
137
+ }
138
+ this.typingTimers.clear();
139
+ }
140
+ }
141
+ exports.AutoPresence = AutoPresence;
142
+ class Broadcast {
143
+ sock;
144
+ defaultDelay;
145
+ constructor(sock, defaultDelayMs = 1000) {
146
+ this.sock = sock;
147
+ this.defaultDelay = defaultDelayMs;
148
+ }
149
+ async send(jids, content, opts = {}) {
150
+ const { delayMs = this.defaultDelay, onProgress } = opts;
151
+ const results = [];
152
+ for (let i = 0; i < jids.length; i++) {
153
+ const jid = jids[i];
154
+ try {
155
+ await this.sock.sendMessage(jid, content);
156
+ results.push({ jid, success: true });
157
+ }
158
+ catch (err) {
159
+ results.push({ jid, success: false, error: err.message });
160
+ }
161
+ onProgress?.(i + 1, jids.length);
162
+ if (delayMs > 0 && i < jids.length - 1) {
163
+ await new Promise(resolve => setTimeout(resolve, delayMs));
164
+ }
165
+ }
166
+ return results;
167
+ }
168
+ async sendText(jids, text, opts) {
169
+ return this.send(jids, { text }, opts);
170
+ }
171
+ }
172
+ exports.Broadcast = Broadcast;
173
+ class Scheduler {
174
+ sock;
175
+ jobs = new Map();
176
+ constructor(sock) {
177
+ this.sock = sock;
178
+ }
179
+ schedule(id, jid, content, delayMs) {
180
+ // Cancel existing job with same ID
181
+ this.cancel(id);
182
+ const timeout = setTimeout(async () => {
183
+ try {
184
+ await this.sock.sendMessage(jid, content);
185
+ }
186
+ catch (err) {
187
+ console.error(`Scheduled message ${id} failed:`, err.message);
188
+ }
189
+ this.jobs.delete(id);
190
+ }, delayMs);
191
+ this.jobs.set(id, { jid, content, timeout });
192
+ return id;
193
+ }
194
+ cancel(id) {
195
+ const job = this.jobs.get(id);
196
+ if (!job)
197
+ return false;
198
+ clearTimeout(job.timeout);
199
+ this.jobs.delete(id);
200
+ return true;
201
+ }
202
+ list() {
203
+ return Array.from(this.jobs.entries()).map(([id, job]) => ({
204
+ id,
205
+ jid: job.jid
206
+ }));
207
+ }
208
+ cancelAll() {
209
+ for (const job of this.jobs.values()) {
210
+ clearTimeout(job.timeout);
211
+ }
212
+ this.jobs.clear();
213
+ }
214
+ }
215
+ exports.Scheduler = Scheduler;
216
+ class RateLimiter {
217
+ limits = new Map();
218
+ setLimit(jid, max, windowMs) {
219
+ this.limits.set(jid, { max, windowMs, requests: [] });
220
+ }
221
+ canSend(jid) {
222
+ const limit = this.limits.get(jid);
223
+ if (!limit)
224
+ return true;
225
+ const now = Date.now();
226
+ limit.requests = limit.requests.filter(t => now - t < limit.windowMs);
227
+ if (limit.requests.length >= limit.max)
228
+ return false;
229
+ limit.requests.push(now);
230
+ return true;
231
+ }
232
+ getRemaining(jid) {
233
+ const limit = this.limits.get(jid);
234
+ if (!limit)
235
+ return Infinity;
236
+ return Math.max(0, limit.max - limit.requests.length);
237
+ }
238
+ reset(jid) {
239
+ const limit = this.limits.get(jid);
240
+ if (limit)
241
+ limit.requests = [];
242
+ }
243
+ }
244
+ exports.RateLimiter = RateLimiter;
245
+ //# sourceMappingURL=automation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automation.js","sourceRoot":"","sources":["../../src/helpers/automation.ts"],"names":[],"mappings":"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"}