@arcaelas/whatsapp 3.1.1 → 3.3.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 (93) hide show
  1. package/build/cjs/_index.d.ts +14 -0
  2. package/build/cjs/_index.js +366 -0
  3. package/build/cjs/_index.js.map +1 -0
  4. package/build/cjs/decorators.d.ts +9 -0
  5. package/build/cjs/decorators.js +26 -0
  6. package/build/cjs/decorators.js.map +1 -0
  7. package/build/cjs/index.d.ts +11 -0
  8. package/build/cjs/index.js +21 -0
  9. package/build/cjs/index.js.map +1 -0
  10. package/build/cjs/lib/bot/decorator.d.ts +77 -0
  11. package/build/cjs/lib/bot/decorator.js +219 -0
  12. package/build/cjs/lib/bot/decorator.js.map +1 -0
  13. package/build/cjs/lib/bot/decorators.d.ts +113 -0
  14. package/build/cjs/lib/bot/decorators.js +253 -0
  15. package/build/cjs/lib/bot/decorators.js.map +1 -0
  16. package/build/cjs/lib/bot/index.d.ts +3 -0
  17. package/build/cjs/lib/bot/index.js +20 -0
  18. package/build/cjs/lib/bot/index.js.map +1 -0
  19. package/build/cjs/lib/chat/index.d.ts +252 -0
  20. package/build/cjs/lib/chat/index.js +314 -0
  21. package/build/cjs/lib/chat/index.js.map +1 -0
  22. package/build/cjs/lib/contact/index.d.ts +203 -0
  23. package/build/cjs/lib/contact/index.js +226 -0
  24. package/build/cjs/lib/contact/index.js.map +1 -0
  25. package/build/cjs/lib/message/index.d.ts +277 -0
  26. package/build/cjs/lib/message/index.js +773 -0
  27. package/build/cjs/lib/message/index.js.map +1 -0
  28. package/build/cjs/lib/status/index.d.ts +85 -0
  29. package/build/cjs/lib/status/index.js +137 -0
  30. package/build/cjs/lib/status/index.js.map +1 -0
  31. package/build/cjs/lib/store/engine/index.d.ts +34 -0
  32. package/build/cjs/lib/store/engine/index.js +13 -0
  33. package/build/cjs/lib/store/engine/index.js.map +1 -0
  34. package/build/cjs/lib/store/engine/lib/file_system/index.d.ts +56 -0
  35. package/build/cjs/lib/store/engine/lib/file_system/index.js +160 -0
  36. package/build/cjs/lib/store/engine/lib/file_system/index.js.map +1 -0
  37. package/build/cjs/lib/store/engine/lib/redis/index.d.ts +82 -0
  38. package/build/cjs/lib/store/engine/lib/redis/index.js +132 -0
  39. package/build/cjs/lib/store/engine/lib/redis/index.js.map +1 -0
  40. package/build/cjs/lib/store/index.d.ts +22 -0
  41. package/build/cjs/lib/store/index.js +38 -0
  42. package/build/cjs/lib/store/index.js.map +1 -0
  43. package/build/cjs/lib/whatsapp/index.d.ts +185 -0
  44. package/build/cjs/lib/whatsapp/index.js +882 -0
  45. package/build/cjs/lib/whatsapp/index.js.map +1 -0
  46. package/build/cjs/package.json +1 -0
  47. package/build/esm/_index.d.ts +14 -0
  48. package/build/esm/_index.js +364 -0
  49. package/build/esm/_index.js.map +1 -0
  50. package/build/esm/decorators.d.ts +9 -0
  51. package/build/esm/decorators.js +9 -0
  52. package/build/esm/decorators.js.map +1 -0
  53. package/build/esm/index.d.ts +11 -0
  54. package/build/esm/index.js +9 -0
  55. package/build/esm/index.js.map +1 -0
  56. package/build/esm/lib/bot/decorator.d.ts +77 -0
  57. package/build/esm/lib/bot/decorator.js +210 -0
  58. package/build/esm/lib/bot/decorator.js.map +1 -0
  59. package/build/esm/lib/bot/decorators.d.ts +113 -0
  60. package/build/esm/lib/bot/decorators.js +242 -0
  61. package/build/esm/lib/bot/decorators.js.map +1 -0
  62. package/build/esm/lib/bot/index.d.ts +3 -0
  63. package/build/esm/lib/bot/index.js +3 -0
  64. package/build/esm/lib/bot/index.js.map +1 -0
  65. package/build/esm/lib/chat/index.d.ts +252 -0
  66. package/build/esm/lib/chat/index.js +309 -0
  67. package/build/esm/lib/chat/index.js.map +1 -0
  68. package/build/esm/lib/contact/index.d.ts +203 -0
  69. package/build/esm/lib/contact/index.js +221 -0
  70. package/build/esm/lib/contact/index.js.map +1 -0
  71. package/build/esm/lib/message/index.d.ts +277 -0
  72. package/build/esm/lib/message/index.js +761 -0
  73. package/build/esm/lib/message/index.js.map +1 -0
  74. package/build/esm/lib/status/index.d.ts +85 -0
  75. package/build/esm/lib/status/index.js +133 -0
  76. package/build/esm/lib/status/index.js.map +1 -0
  77. package/build/esm/lib/store/engine/index.d.ts +34 -0
  78. package/build/esm/lib/store/engine/index.js +8 -0
  79. package/build/esm/lib/store/engine/index.js.map +1 -0
  80. package/build/esm/lib/store/engine/lib/file_system/index.d.ts +56 -0
  81. package/build/esm/lib/store/engine/lib/file_system/index.js +156 -0
  82. package/build/esm/lib/store/engine/lib/file_system/index.js.map +1 -0
  83. package/build/esm/lib/store/engine/lib/redis/index.d.ts +82 -0
  84. package/build/esm/lib/store/engine/lib/redis/index.js +128 -0
  85. package/build/esm/lib/store/engine/lib/redis/index.js.map +1 -0
  86. package/build/esm/lib/store/index.d.ts +22 -0
  87. package/build/esm/lib/store/index.js +31 -0
  88. package/build/esm/lib/store/index.js.map +1 -0
  89. package/build/esm/lib/whatsapp/index.d.ts +185 -0
  90. package/build/esm/lib/whatsapp/index.js +842 -0
  91. package/build/esm/lib/whatsapp/index.js.map +1 -0
  92. package/build/esm/package.json +1 -0
  93. package/package.json +1 -1
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @file _index.ts
3
+ * @description Bot de prueba manual de @arcaelas/whatsapp v3. Engancha cada evento del
4
+ * cliente con un console.log para inspeccionar el ciclo de vida real. No se publica
5
+ * (archivo prefijado con underscore — excluir de build cuando se versione).
6
+ *
7
+ * Ejecutar:
8
+ * npx tsx src/_index.ts
9
+ *
10
+ * Variables de entorno:
11
+ * PHONE → número (solo dígitos) para pairing por PIN. Si falta, se usa QR.
12
+ * SESSION → carpeta de sesión (default: ./.session)
13
+ */
14
+ export {};
@@ -0,0 +1,366 @@
1
+ "use strict";
2
+ /**
3
+ * @file _index.ts
4
+ * @description Bot de prueba manual de @arcaelas/whatsapp v3. Engancha cada evento del
5
+ * cliente con un console.log para inspeccionar el ciclo de vida real. No se publica
6
+ * (archivo prefijado con underscore — excluir de build cuando se versione).
7
+ *
8
+ * Ejecutar:
9
+ * npx tsx src/_index.ts
10
+ *
11
+ * Variables de entorno:
12
+ * PHONE → número (solo dígitos) para pairing por PIN. Si falta, se usa QR.
13
+ * SESSION → carpeta de sesión (default: ./.session)
14
+ */
15
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
16
+ var useValue = arguments.length > 2;
17
+ for (var i = 0; i < initializers.length; i++) {
18
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
19
+ }
20
+ return useValue ? value : void 0;
21
+ };
22
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
23
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
24
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
25
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
26
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
27
+ var _, done = false;
28
+ for (var i = decorators.length - 1; i >= 0; i--) {
29
+ var context = {};
30
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
31
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
32
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
33
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
34
+ if (kind === "accessor") {
35
+ if (result === void 0) continue;
36
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
37
+ if (_ = accept(result.get)) descriptor.get = _;
38
+ if (_ = accept(result.set)) descriptor.set = _;
39
+ if (_ = accept(result.init)) initializers.unshift(_);
40
+ }
41
+ else if (_ = accept(result)) {
42
+ if (kind === "field") initializers.unshift(_);
43
+ else descriptor[key] = _;
44
+ }
45
+ }
46
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
47
+ done = true;
48
+ };
49
+ Object.defineProperty(exports, "__esModule", { value: true });
50
+ const promises_1 = require("node:fs/promises");
51
+ const node_path_1 = require("node:path");
52
+ const store_1 = require("./lib/store");
53
+ const bot_1 = require("./lib/bot");
54
+ const SESSION_DIR = process.env.SESSION ?? (0, node_path_1.join)(__dirname, '..', '.session');
55
+ const PHONE = process.env.PHONE;
56
+ const QR_FILE = (0, node_path_1.join)(__dirname, '..', '.session.qr.png');
57
+ const log = (event, ...rest) => console.log(`[${new Date().toISOString()}] ${event}`, ...rest);
58
+ let TestBot = (() => {
59
+ let _classDecorators = [(0, bot_1.Bot)({
60
+ engine: new store_1.FileSystemEngine(SESSION_DIR),
61
+ phone: PHONE,
62
+ reconnect: true,
63
+ autoclean: true,
64
+ sync: true,
65
+ })];
66
+ let _classDescriptor;
67
+ let _classExtraInitializers = [];
68
+ let _classThis;
69
+ let _classSuper = bot_1.WhatsAppBot;
70
+ let _instanceExtraInitializers = [];
71
+ let _on_pair_decorators;
72
+ let _on_connected_decorators;
73
+ let _on_disconnected_decorators;
74
+ let _heartbeat_decorators;
75
+ let _on_contact_created_decorators;
76
+ let _on_contact_updated_decorators;
77
+ let _on_contact_deleted_decorators;
78
+ let _on_chat_created_decorators;
79
+ let _on_chat_deleted_decorators;
80
+ let _on_chat_pinned_decorators;
81
+ let _on_chat_unpinned_decorators;
82
+ let _on_chat_archived_decorators;
83
+ let _on_chat_unarchived_decorators;
84
+ let _on_chat_muted_decorators;
85
+ let _on_chat_unmuted_decorators;
86
+ let _on_message_created_decorators;
87
+ let _on_message_updated_decorators;
88
+ let _on_message_deleted_decorators;
89
+ let _on_message_reacted_decorators;
90
+ let _on_msg_starred_decorators;
91
+ let _on_msg_unstarred_decorators;
92
+ let _on_msg_forwarded_decorators;
93
+ let _on_msg_seen_decorators;
94
+ let _on_feed_created_decorators;
95
+ let _on_feed_updated_decorators;
96
+ let _on_feed_deleted_decorators;
97
+ let _cmd_ping_decorators;
98
+ let _cmd_echo_decorators;
99
+ let _cmd_info_decorators;
100
+ let _cmd_poll_decorators;
101
+ let _cmd_vote_decorators;
102
+ let _cmd_polls_decorators;
103
+ var TestBot = class extends _classSuper {
104
+ static { _classThis = this; }
105
+ static {
106
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
107
+ _on_pair_decorators = [(0, bot_1.pair)()];
108
+ _on_connected_decorators = [(0, bot_1.connect)()];
109
+ _on_disconnected_decorators = [(0, bot_1.disconnect)()];
110
+ _heartbeat_decorators = [(0, bot_1.every)(60_000)];
111
+ _on_contact_created_decorators = [(0, bot_1.on)('contact:created')];
112
+ _on_contact_updated_decorators = [(0, bot_1.on)('contact:updated')];
113
+ _on_contact_deleted_decorators = [(0, bot_1.on)('contact:deleted')];
114
+ _on_chat_created_decorators = [(0, bot_1.on)('chat:created')];
115
+ _on_chat_deleted_decorators = [(0, bot_1.on)('chat:deleted')];
116
+ _on_chat_pinned_decorators = [(0, bot_1.on)('chat:pinned')];
117
+ _on_chat_unpinned_decorators = [(0, bot_1.on)('chat:unpinned')];
118
+ _on_chat_archived_decorators = [(0, bot_1.on)('chat:archived')];
119
+ _on_chat_unarchived_decorators = [(0, bot_1.on)('chat:unarchived')];
120
+ _on_chat_muted_decorators = [(0, bot_1.on)('chat:muted')];
121
+ _on_chat_unmuted_decorators = [(0, bot_1.on)('chat:unmuted')];
122
+ _on_message_created_decorators = [(0, bot_1.on)('message:created')];
123
+ _on_message_updated_decorators = [(0, bot_1.on)('message:updated')];
124
+ _on_message_deleted_decorators = [(0, bot_1.on)('message:deleted')];
125
+ _on_message_reacted_decorators = [(0, bot_1.on)('message:reacted')];
126
+ _on_msg_starred_decorators = [(0, bot_1.on)('message:starred')];
127
+ _on_msg_unstarred_decorators = [(0, bot_1.on)('message:unstarred')];
128
+ _on_msg_forwarded_decorators = [(0, bot_1.on)('message:forwarded')];
129
+ _on_msg_seen_decorators = [(0, bot_1.on)('message:seen')];
130
+ _on_feed_created_decorators = [(0, bot_1.on)('feed:created')];
131
+ _on_feed_updated_decorators = [(0, bot_1.on)('feed:updated')];
132
+ _on_feed_deleted_decorators = [(0, bot_1.on)('feed:deleted')];
133
+ _cmd_ping_decorators = [(0, bot_1.command)('!ping')];
134
+ _cmd_echo_decorators = [(0, bot_1.command)('!echo')];
135
+ _cmd_info_decorators = [(0, bot_1.command)(/^!info\b/)];
136
+ _cmd_poll_decorators = [(0, bot_1.command)(/^!poll\s+(.+)/s)];
137
+ _cmd_vote_decorators = [(0, bot_1.command)(/^!vote\s+(.+)/)];
138
+ _cmd_polls_decorators = [(0, bot_1.command)('!polls')];
139
+ __esDecorate(this, null, _on_pair_decorators, { kind: "method", name: "on_pair", static: false, private: false, access: { has: obj => "on_pair" in obj, get: obj => obj.on_pair }, metadata: _metadata }, null, _instanceExtraInitializers);
140
+ __esDecorate(this, null, _on_connected_decorators, { kind: "method", name: "on_connected", static: false, private: false, access: { has: obj => "on_connected" in obj, get: obj => obj.on_connected }, metadata: _metadata }, null, _instanceExtraInitializers);
141
+ __esDecorate(this, null, _on_disconnected_decorators, { kind: "method", name: "on_disconnected", static: false, private: false, access: { has: obj => "on_disconnected" in obj, get: obj => obj.on_disconnected }, metadata: _metadata }, null, _instanceExtraInitializers);
142
+ __esDecorate(this, null, _heartbeat_decorators, { kind: "method", name: "heartbeat", static: false, private: false, access: { has: obj => "heartbeat" in obj, get: obj => obj.heartbeat }, metadata: _metadata }, null, _instanceExtraInitializers);
143
+ __esDecorate(this, null, _on_contact_created_decorators, { kind: "method", name: "on_contact_created", static: false, private: false, access: { has: obj => "on_contact_created" in obj, get: obj => obj.on_contact_created }, metadata: _metadata }, null, _instanceExtraInitializers);
144
+ __esDecorate(this, null, _on_contact_updated_decorators, { kind: "method", name: "on_contact_updated", static: false, private: false, access: { has: obj => "on_contact_updated" in obj, get: obj => obj.on_contact_updated }, metadata: _metadata }, null, _instanceExtraInitializers);
145
+ __esDecorate(this, null, _on_contact_deleted_decorators, { kind: "method", name: "on_contact_deleted", static: false, private: false, access: { has: obj => "on_contact_deleted" in obj, get: obj => obj.on_contact_deleted }, metadata: _metadata }, null, _instanceExtraInitializers);
146
+ __esDecorate(this, null, _on_chat_created_decorators, { kind: "method", name: "on_chat_created", static: false, private: false, access: { has: obj => "on_chat_created" in obj, get: obj => obj.on_chat_created }, metadata: _metadata }, null, _instanceExtraInitializers);
147
+ __esDecorate(this, null, _on_chat_deleted_decorators, { kind: "method", name: "on_chat_deleted", static: false, private: false, access: { has: obj => "on_chat_deleted" in obj, get: obj => obj.on_chat_deleted }, metadata: _metadata }, null, _instanceExtraInitializers);
148
+ __esDecorate(this, null, _on_chat_pinned_decorators, { kind: "method", name: "on_chat_pinned", static: false, private: false, access: { has: obj => "on_chat_pinned" in obj, get: obj => obj.on_chat_pinned }, metadata: _metadata }, null, _instanceExtraInitializers);
149
+ __esDecorate(this, null, _on_chat_unpinned_decorators, { kind: "method", name: "on_chat_unpinned", static: false, private: false, access: { has: obj => "on_chat_unpinned" in obj, get: obj => obj.on_chat_unpinned }, metadata: _metadata }, null, _instanceExtraInitializers);
150
+ __esDecorate(this, null, _on_chat_archived_decorators, { kind: "method", name: "on_chat_archived", static: false, private: false, access: { has: obj => "on_chat_archived" in obj, get: obj => obj.on_chat_archived }, metadata: _metadata }, null, _instanceExtraInitializers);
151
+ __esDecorate(this, null, _on_chat_unarchived_decorators, { kind: "method", name: "on_chat_unarchived", static: false, private: false, access: { has: obj => "on_chat_unarchived" in obj, get: obj => obj.on_chat_unarchived }, metadata: _metadata }, null, _instanceExtraInitializers);
152
+ __esDecorate(this, null, _on_chat_muted_decorators, { kind: "method", name: "on_chat_muted", static: false, private: false, access: { has: obj => "on_chat_muted" in obj, get: obj => obj.on_chat_muted }, metadata: _metadata }, null, _instanceExtraInitializers);
153
+ __esDecorate(this, null, _on_chat_unmuted_decorators, { kind: "method", name: "on_chat_unmuted", static: false, private: false, access: { has: obj => "on_chat_unmuted" in obj, get: obj => obj.on_chat_unmuted }, metadata: _metadata }, null, _instanceExtraInitializers);
154
+ __esDecorate(this, null, _on_message_created_decorators, { kind: "method", name: "on_message_created", static: false, private: false, access: { has: obj => "on_message_created" in obj, get: obj => obj.on_message_created }, metadata: _metadata }, null, _instanceExtraInitializers);
155
+ __esDecorate(this, null, _on_message_updated_decorators, { kind: "method", name: "on_message_updated", static: false, private: false, access: { has: obj => "on_message_updated" in obj, get: obj => obj.on_message_updated }, metadata: _metadata }, null, _instanceExtraInitializers);
156
+ __esDecorate(this, null, _on_message_deleted_decorators, { kind: "method", name: "on_message_deleted", static: false, private: false, access: { has: obj => "on_message_deleted" in obj, get: obj => obj.on_message_deleted }, metadata: _metadata }, null, _instanceExtraInitializers);
157
+ __esDecorate(this, null, _on_message_reacted_decorators, { kind: "method", name: "on_message_reacted", static: false, private: false, access: { has: obj => "on_message_reacted" in obj, get: obj => obj.on_message_reacted }, metadata: _metadata }, null, _instanceExtraInitializers);
158
+ __esDecorate(this, null, _on_msg_starred_decorators, { kind: "method", name: "on_msg_starred", static: false, private: false, access: { has: obj => "on_msg_starred" in obj, get: obj => obj.on_msg_starred }, metadata: _metadata }, null, _instanceExtraInitializers);
159
+ __esDecorate(this, null, _on_msg_unstarred_decorators, { kind: "method", name: "on_msg_unstarred", static: false, private: false, access: { has: obj => "on_msg_unstarred" in obj, get: obj => obj.on_msg_unstarred }, metadata: _metadata }, null, _instanceExtraInitializers);
160
+ __esDecorate(this, null, _on_msg_forwarded_decorators, { kind: "method", name: "on_msg_forwarded", static: false, private: false, access: { has: obj => "on_msg_forwarded" in obj, get: obj => obj.on_msg_forwarded }, metadata: _metadata }, null, _instanceExtraInitializers);
161
+ __esDecorate(this, null, _on_msg_seen_decorators, { kind: "method", name: "on_msg_seen", static: false, private: false, access: { has: obj => "on_msg_seen" in obj, get: obj => obj.on_msg_seen }, metadata: _metadata }, null, _instanceExtraInitializers);
162
+ __esDecorate(this, null, _on_feed_created_decorators, { kind: "method", name: "on_feed_created", static: false, private: false, access: { has: obj => "on_feed_created" in obj, get: obj => obj.on_feed_created }, metadata: _metadata }, null, _instanceExtraInitializers);
163
+ __esDecorate(this, null, _on_feed_updated_decorators, { kind: "method", name: "on_feed_updated", static: false, private: false, access: { has: obj => "on_feed_updated" in obj, get: obj => obj.on_feed_updated }, metadata: _metadata }, null, _instanceExtraInitializers);
164
+ __esDecorate(this, null, _on_feed_deleted_decorators, { kind: "method", name: "on_feed_deleted", static: false, private: false, access: { has: obj => "on_feed_deleted" in obj, get: obj => obj.on_feed_deleted }, metadata: _metadata }, null, _instanceExtraInitializers);
165
+ __esDecorate(this, null, _cmd_ping_decorators, { kind: "method", name: "cmd_ping", static: false, private: false, access: { has: obj => "cmd_ping" in obj, get: obj => obj.cmd_ping }, metadata: _metadata }, null, _instanceExtraInitializers);
166
+ __esDecorate(this, null, _cmd_echo_decorators, { kind: "method", name: "cmd_echo", static: false, private: false, access: { has: obj => "cmd_echo" in obj, get: obj => obj.cmd_echo }, metadata: _metadata }, null, _instanceExtraInitializers);
167
+ __esDecorate(this, null, _cmd_info_decorators, { kind: "method", name: "cmd_info", static: false, private: false, access: { has: obj => "cmd_info" in obj, get: obj => obj.cmd_info }, metadata: _metadata }, null, _instanceExtraInitializers);
168
+ __esDecorate(this, null, _cmd_poll_decorators, { kind: "method", name: "cmd_poll", static: false, private: false, access: { has: obj => "cmd_poll" in obj, get: obj => obj.cmd_poll }, metadata: _metadata }, null, _instanceExtraInitializers);
169
+ __esDecorate(this, null, _cmd_vote_decorators, { kind: "method", name: "cmd_vote", static: false, private: false, access: { has: obj => "cmd_vote" in obj, get: obj => obj.cmd_vote }, metadata: _metadata }, null, _instanceExtraInitializers);
170
+ __esDecorate(this, null, _cmd_polls_decorators, { kind: "method", name: "cmd_polls", static: false, private: false, access: { has: obj => "cmd_polls" in obj, get: obj => obj.cmd_polls }, metadata: _metadata }, null, _instanceExtraInitializers);
171
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
172
+ TestBot = _classThis = _classDescriptor.value;
173
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
174
+ __runInitializers(_classThis, _classExtraInitializers);
175
+ }
176
+ async on_pair(auth) {
177
+ if (typeof auth === 'string') {
178
+ log('pair:pin', auth);
179
+ }
180
+ else {
181
+ await (0, promises_1.writeFile)(QR_FILE, auth);
182
+ log('pair:qr', `wrote PNG → ${QR_FILE} (open it and scan)`);
183
+ }
184
+ }
185
+ async on_connected() {
186
+ log('connected', { socket_user: this._socket?.user?.id ?? null });
187
+ const contact = await this.Contact.get('584144709840');
188
+ log('contact:get', {
189
+ id: contact?.id,
190
+ jid: contact?.jid,
191
+ lid: contact?.lid,
192
+ name: contact?.name,
193
+ phone: contact?.phone,
194
+ photo: contact?.photo,
195
+ content: contact?.content,
196
+ });
197
+ await this.disconnect();
198
+ }
199
+ on_disconnected() {
200
+ log('disconnected');
201
+ }
202
+ heartbeat() {
203
+ log('heartbeat', { connected: this._socket !== null });
204
+ }
205
+ on_contact_created(c) {
206
+ log('contact:created', { id: c.id, name: c.name ?? null });
207
+ }
208
+ on_contact_updated(c) {
209
+ log('contact:updated', { id: c.id, name: c.name ?? null });
210
+ }
211
+ on_contact_deleted(c) {
212
+ log('contact:deleted', { id: c.id });
213
+ }
214
+ on_chat_created(chat) {
215
+ log('chat:created', { id: chat.id, name: chat.name ?? null });
216
+ }
217
+ on_chat_deleted(chat) {
218
+ log('chat:deleted', { id: chat.id });
219
+ }
220
+ on_chat_pinned(chat) { log('chat:pinned', chat.id); }
221
+ on_chat_unpinned(chat) { log('chat:unpinned', chat.id); }
222
+ on_chat_archived(chat) { log('chat:archived', chat.id); }
223
+ on_chat_unarchived(chat) { log('chat:unarchived', chat.id); }
224
+ on_chat_muted(chat) { log('chat:muted', chat.id); }
225
+ on_chat_unmuted(chat) { log('chat:unmuted', chat.id); }
226
+ async on_message_created(msg, chat) {
227
+ const base = {
228
+ id: msg.id,
229
+ chat: chat.name ?? chat.id,
230
+ from: msg.from,
231
+ me: msg.me,
232
+ type: msg.type,
233
+ mime: msg.mime,
234
+ caption: msg.caption,
235
+ };
236
+ if (msg.type === 'poll') {
237
+ const poll = msg;
238
+ log('message:created', { ...base, multiple: poll.multiple, options: poll.options });
239
+ }
240
+ else {
241
+ log('message:created', base);
242
+ }
243
+ }
244
+ on_message_updated(msg) {
245
+ const base = { id: msg.id, cid: msg.cid, edited: msg.edited, caption: msg.caption };
246
+ if (msg.type === 'poll') {
247
+ const poll = msg;
248
+ log('message:updated', { ...base, multiple: poll.multiple, options: poll.options });
249
+ }
250
+ else {
251
+ log('message:updated', base);
252
+ }
253
+ }
254
+ on_message_deleted(msg) {
255
+ log('message:deleted', { id: msg.id, cid: msg.cid });
256
+ }
257
+ on_message_reacted(msg, chat, emoji) {
258
+ log('message:reacted', {
259
+ id: msg.id,
260
+ cid: msg.cid,
261
+ chat: chat.name ?? chat.id,
262
+ from: msg.from,
263
+ me: msg.me,
264
+ caption: msg.caption,
265
+ emoji,
266
+ });
267
+ }
268
+ on_msg_starred(msg) { log('message:starred', msg.id); }
269
+ on_msg_unstarred(msg) { log('message:unstarred', msg.id); }
270
+ on_msg_forwarded(msg) { log('message:forwarded', msg.id); }
271
+ on_msg_seen(msg) { log('message:seen', msg.id); }
272
+ async on_feed_created(feed) {
273
+ const author = await feed.author();
274
+ log('feed:created', {
275
+ id: feed.id,
276
+ type: feed.type,
277
+ viewed: feed.viewed,
278
+ caption: feed.caption,
279
+ author: { id: author.id, name: author.name ?? null },
280
+ });
281
+ }
282
+ on_feed_updated(feed) {
283
+ log('feed:updated', { id: feed.id, viewed: feed.viewed });
284
+ }
285
+ on_feed_deleted(feed) {
286
+ log('feed:deleted', { id: feed.id });
287
+ }
288
+ async cmd_ping(msg) {
289
+ log('command:!ping');
290
+ await msg.text('pong');
291
+ }
292
+ async cmd_echo(msg, _chat, args) {
293
+ log('command:!echo', args);
294
+ await msg.text(args.length > 0 ? args.join(' ') : '(empty)');
295
+ }
296
+ async cmd_info(msg) {
297
+ log('command:!info', { id: msg.id, cid: msg.cid, from: msg.from, type: msg.type });
298
+ await msg.text(`id=${msg.id}\ncid=${msg.cid}\nfrom=${msg.from}\ntype=${msg.type}`);
299
+ }
300
+ async cmd_poll(msg, _chat, [rest]) {
301
+ const multi_prefix = /^multi:\s*/i;
302
+ const multiple = multi_prefix.test(rest);
303
+ const body = rest.replace(multi_prefix, '');
304
+ const parts = body.split('|').map((s) => s.trim()).filter((s) => s.length > 0);
305
+ const [question, ...options] = parts;
306
+ log('command:!poll', { multiple, question, options });
307
+ if (!question || options.length < 2) {
308
+ await msg.text('Uso: !poll [multi:] Pregunta? | Opcion1 | Opcion2 [| Opcion3 ...]');
309
+ return;
310
+ }
311
+ const sent = await msg.poll({ content: question, options: options.map((content) => ({ content })) }, { multiple });
312
+ log(' poll sent:', { id: sent?.id ?? null, multiple: sent?.multiple ?? null });
313
+ }
314
+ async cmd_vote(msg, chat, [rest]) {
315
+ const indices = rest.split(',').map((s) => parseInt(s.trim(), 10)).filter((n) => Number.isFinite(n));
316
+ log('command:!vote', { chat: chat.id, indices });
317
+ if (indices.length === 0) {
318
+ await msg.text('Uso: !vote 0 o !vote 0,2');
319
+ return;
320
+ }
321
+ const messages = await this.Message.list(chat.id, 0, 50);
322
+ const last_poll = messages.find((m) => m.type === 'poll');
323
+ if (!last_poll) {
324
+ await msg.text('No hay polls en este chat');
325
+ return;
326
+ }
327
+ const ok = await last_poll.select(indices.length === 1 ? indices[0] : indices);
328
+ log(' vote result:', { poll: last_poll.id, ok });
329
+ await msg.text(`vote ${ok ? 'ok' : 'failed'} on ${last_poll.id}`);
330
+ }
331
+ async cmd_polls(msg, chat) {
332
+ const messages = await this.Message.list(chat.id, 0, 50);
333
+ const polls = messages.filter((m) => m.type === 'poll');
334
+ log('command:!polls', { count: polls.length });
335
+ if (polls.length === 0) {
336
+ await msg.text('No hay polls en este chat');
337
+ return;
338
+ }
339
+ const summary = polls.map((p) => {
340
+ const opts = p.options.map((o, i) => ` ${i}. ${o.content} [${o.count}]`).join('\n');
341
+ return `${p.id} (${p.multiple ? 'multi' : 'single'}): ${p.caption}\n${opts}`;
342
+ }).join('\n\n');
343
+ await msg.text(summary);
344
+ }
345
+ constructor() {
346
+ super(...arguments);
347
+ __runInitializers(this, _instanceExtraInitializers);
348
+ }
349
+ };
350
+ return TestBot = _classThis;
351
+ })();
352
+ const bot = new TestBot();
353
+ process.on('SIGINT', async () => {
354
+ log('signal', 'SIGINT — disconnecting');
355
+ await bot.disconnect();
356
+ process.exit(0);
357
+ });
358
+ process.on('uncaughtException', (err) => log('uncaughtException', err));
359
+ process.on('unhandledRejection', (err) => log('unhandledRejection', err));
360
+ bot.connect()
361
+ .then(() => log('boot', 'connect() resolved (session ready)'))
362
+ .catch((err) => {
363
+ log('boot', 'connect() failed', err);
364
+ process.exit(1);
365
+ });
366
+ //# sourceMappingURL=_index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_index.js","sourceRoot":"","sources":["../../src/_index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @file decorators.ts
3
+ * @description Sub-entry `@arcaelas/whatsapp/decorators` — API declarativa basada
4
+ * en decoradores Stage 3 para construir bots sobre el cliente WhatsApp.
5
+ * Sub-entry `@arcaelas/whatsapp/decorators` — Stage 3 decorator-based declarative
6
+ * API to build bots on top of the WhatsApp client.
7
+ */
8
+ export { WhatsAppBot, Bot, on, guard, command, from, once, connect, disconnect, every, pipe, pair, HANDLERS, decorator, } from './lib/bot';
9
+ export type { HandlerMeta, BotSchema, WorkflowStep } from './lib/bot';
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ /**
3
+ * @file decorators.ts
4
+ * @description Sub-entry `@arcaelas/whatsapp/decorators` — API declarativa basada
5
+ * en decoradores Stage 3 para construir bots sobre el cliente WhatsApp.
6
+ * Sub-entry `@arcaelas/whatsapp/decorators` — Stage 3 decorator-based declarative
7
+ * API to build bots on top of the WhatsApp client.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.decorator = exports.HANDLERS = exports.pair = exports.pipe = exports.every = exports.disconnect = exports.connect = exports.once = exports.from = exports.command = exports.guard = exports.on = exports.Bot = exports.WhatsAppBot = void 0;
11
+ var bot_1 = require("./lib/bot");
12
+ Object.defineProperty(exports, "WhatsAppBot", { enumerable: true, get: function () { return bot_1.WhatsAppBot; } });
13
+ Object.defineProperty(exports, "Bot", { enumerable: true, get: function () { return bot_1.Bot; } });
14
+ Object.defineProperty(exports, "on", { enumerable: true, get: function () { return bot_1.on; } });
15
+ Object.defineProperty(exports, "guard", { enumerable: true, get: function () { return bot_1.guard; } });
16
+ Object.defineProperty(exports, "command", { enumerable: true, get: function () { return bot_1.command; } });
17
+ Object.defineProperty(exports, "from", { enumerable: true, get: function () { return bot_1.from; } });
18
+ Object.defineProperty(exports, "once", { enumerable: true, get: function () { return bot_1.once; } });
19
+ Object.defineProperty(exports, "connect", { enumerable: true, get: function () { return bot_1.connect; } });
20
+ Object.defineProperty(exports, "disconnect", { enumerable: true, get: function () { return bot_1.disconnect; } });
21
+ Object.defineProperty(exports, "every", { enumerable: true, get: function () { return bot_1.every; } });
22
+ Object.defineProperty(exports, "pipe", { enumerable: true, get: function () { return bot_1.pipe; } });
23
+ Object.defineProperty(exports, "pair", { enumerable: true, get: function () { return bot_1.pair; } });
24
+ Object.defineProperty(exports, "HANDLERS", { enumerable: true, get: function () { return bot_1.HANDLERS; } });
25
+ Object.defineProperty(exports, "decorator", { enumerable: true, get: function () { return bot_1.decorator; } });
26
+ //# sourceMappingURL=decorators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,iCAemB;AAdf,kGAAA,WAAW,OAAA;AACX,0FAAA,GAAG,OAAA;AACH,yFAAA,EAAE,OAAA;AACF,4FAAA,KAAK,OAAA;AACL,8FAAA,OAAO,OAAA;AACP,2FAAA,IAAI,OAAA;AACJ,2FAAA,IAAI,OAAA;AACJ,8FAAA,OAAO,OAAA;AACP,iGAAA,UAAU,OAAA;AACV,4FAAA,KAAK,OAAA;AACL,2FAAA,IAAI,OAAA;AACJ,2FAAA,IAAI,OAAA;AACJ,+FAAA,QAAQ,OAAA;AACR,gGAAA,SAAS,OAAA"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @file index.ts
3
+ * @description Punto de entrada público de la librería @arcaelas/whatsapp.
4
+ * Public entry point of the @arcaelas/whatsapp library.
5
+ */
6
+ export { WhatsApp, default } from './lib/whatsapp';
7
+ export type { IWhatsApp, DisconnectOptions, ReconnectOption } from './lib/whatsapp';
8
+ export { FileSystemEngine, RedisEngine } from './lib/store';
9
+ export type { Engine, RedisClient } from './lib/store';
10
+ export { default as Feed, TTL_MS as FEED_TTL_MS } from './lib/status';
11
+ export type { IFeedRaw, FeedType } from './lib/status';
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ /**
3
+ * @file index.ts
4
+ * @description Punto de entrada público de la librería @arcaelas/whatsapp.
5
+ * Public entry point of the @arcaelas/whatsapp library.
6
+ */
7
+ var __importDefault = (this && this.__importDefault) || function (mod) {
8
+ return (mod && mod.__esModule) ? mod : { "default": mod };
9
+ };
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.FEED_TTL_MS = exports.Feed = exports.RedisEngine = exports.FileSystemEngine = exports.default = exports.WhatsApp = void 0;
12
+ var whatsapp_1 = require("./lib/whatsapp");
13
+ Object.defineProperty(exports, "WhatsApp", { enumerable: true, get: function () { return whatsapp_1.WhatsApp; } });
14
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(whatsapp_1).default; } });
15
+ var store_1 = require("./lib/store");
16
+ Object.defineProperty(exports, "FileSystemEngine", { enumerable: true, get: function () { return store_1.FileSystemEngine; } });
17
+ Object.defineProperty(exports, "RedisEngine", { enumerable: true, get: function () { return store_1.RedisEngine; } });
18
+ var status_1 = require("./lib/status");
19
+ Object.defineProperty(exports, "Feed", { enumerable: true, get: function () { return __importDefault(status_1).default; } });
20
+ Object.defineProperty(exports, "FEED_TTL_MS", { enumerable: true, get: function () { return status_1.TTL_MS; } });
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;AAEH,2CAAmD;AAA1C,oGAAA,QAAQ,OAAA;AAAE,oHAAA,OAAO,OAAA;AAG1B,qCAA4D;AAAnD,yGAAA,gBAAgB,OAAA;AAAE,oGAAA,WAAW,OAAA;AAGtC,uCAAsE;AAA7D,+GAAA,OAAO,OAAQ;AAAE,qGAAA,MAAM,OAAe"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * @file playground/bot/decorator.ts
3
+ * @description Infraestructura base de decoradores Stage 3 sobre WhatsApp.
4
+ * Base infrastructure for Stage 3 decorators over WhatsApp.
5
+ */
6
+ import WhatsApp, { type IWhatsApp } from '../../lib/whatsapp';
7
+ export declare const HANDLERS: unique symbol;
8
+ export interface HandlerMeta {
9
+ method: string;
10
+ events: string[];
11
+ guards: Array<(...args: unknown[]) => boolean | Promise<boolean>>;
12
+ transforms: Array<(args: unknown[]) => unknown[] | Promise<unknown[]>>;
13
+ once: boolean;
14
+ }
15
+ export interface WorkflowStep {
16
+ index: number;
17
+ method: string;
18
+ }
19
+ export interface BotSchema {
20
+ handlers: Record<string, HandlerMeta>;
21
+ workflows: Record<string, WorkflowStep[]>;
22
+ }
23
+ type Metadata = Record<string | symbol, unknown>;
24
+ /**
25
+ * Registra un step dentro de un workflow. Uso interno del decorador `@pipe`.
26
+ * Registers a step inside a workflow. Internal use of the `@pipe` decorator.
27
+ *
28
+ * @param metadata - Metadata del contexto del decorador / Decorator context metadata
29
+ * @param workflow - Nombre del workflow / Workflow name
30
+ * @param step - Step a registrar (índice + nombre del método) / Step to register (index + method name)
31
+ */
32
+ export declare function register_workflow_step(metadata: Metadata, workflow: string, step: WorkflowStep): void;
33
+ /**
34
+ * Factory para crear decoradores paramétricos Stage 3. El callback muta la metadata
35
+ * del handler mediante la entrada resuelta.
36
+ * Factory to build Stage 3 parametric decorators. The callback mutates the handler
37
+ * metadata via the resolved entry.
38
+ *
39
+ * @param callback - Mutador de la entrada del handler / Handler entry mutator
40
+ * @returns Decorador paramétrico listo para aplicarse a un método / Parametric decorator ready to be applied to a method
41
+ */
42
+ export declare function decorator<P extends unknown[]>(callback: (metadata: Metadata, handler: HandlerMeta, params: P) => void): (...params: P) => (_value: unknown, context: ClassMethodDecoratorContext) => void;
43
+ /**
44
+ * Clase base opcional para bots declarativos. El consumer extiende `WhatsAppBot`
45
+ * (o usa `@WhatsApp` como class decorator), declara métodos decorados y al
46
+ * `connect()` los listeners se cablean automáticamente contra el event emitter real.
47
+ * Optional base class for declarative bots. The consumer extends `WhatsAppBot`
48
+ * (or uses `@WhatsApp` as a class decorator), declares decorated methods and at
49
+ * `connect()` listeners get wired against the real event emitter automatically.
50
+ */
51
+ export declare class WhatsAppBot extends WhatsApp {
52
+ constructor(options: IWhatsApp);
53
+ /**
54
+ * Inicia la conexión cableando previamente los handlers decorados. Los métodos
55
+ * `@pair` se invocan en paralelo con el `callback` opcional.
56
+ * Starts the connection wiring decorated handlers beforehand. `@pair` methods
57
+ * run in parallel alongside the optional `callback`.
58
+ *
59
+ * @param callback - Callback tradicional del PIN/QR (opcional si hay `@pair`) / Traditional PIN/QR callback (optional when `@pair` exists)
60
+ */
61
+ connect(callback?: (auth: string | Buffer) => void | Promise<void>): Promise<void>;
62
+ /**
63
+ * Recolecta los métodos marcados con `@pair` ligados a `this`.
64
+ * Collects methods marked with `@pair` bound to `this`.
65
+ *
66
+ * @returns Lista de funciones ligadas listas para invocar con el code / List of bound functions ready to invoke with the code
67
+ */
68
+ private _collect_pair_methods;
69
+ /**
70
+ * Cablea los handlers decorados contra el event emitter: registra listeners
71
+ * (`@on`/`@once`), timers (`@every`) y workflows (`@pipe`).
72
+ * Wires decorated handlers against the event emitter: registers listeners
73
+ * (`@on`/`@once`), timers (`@every`) and workflows (`@pipe`).
74
+ */
75
+ private _wire_handlers;
76
+ }
77
+ export default WhatsAppBot;