@auxiora/channels 1.0.0 → 1.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 (94) hide show
  1. package/dist/adapters/bluebubbles.d.ts +0 -1
  2. package/dist/adapters/bluebubbles.d.ts.map +1 -1
  3. package/dist/adapters/bluebubbles.js +2 -24
  4. package/dist/adapters/bluebubbles.js.map +1 -1
  5. package/dist/adapters/discord.d.ts +2 -1
  6. package/dist/adapters/discord.d.ts.map +1 -1
  7. package/dist/adapters/discord.js +20 -25
  8. package/dist/adapters/discord.js.map +1 -1
  9. package/dist/adapters/googlechat.d.ts +0 -1
  10. package/dist/adapters/googlechat.d.ts.map +1 -1
  11. package/dist/adapters/googlechat.js +2 -24
  12. package/dist/adapters/googlechat.js.map +1 -1
  13. package/dist/adapters/matrix.d.ts +0 -1
  14. package/dist/adapters/matrix.d.ts.map +1 -1
  15. package/dist/adapters/matrix.js +2 -24
  16. package/dist/adapters/matrix.js.map +1 -1
  17. package/dist/adapters/signal.d.ts +0 -1
  18. package/dist/adapters/signal.d.ts.map +1 -1
  19. package/dist/adapters/signal.js +2 -24
  20. package/dist/adapters/signal.js.map +1 -1
  21. package/dist/adapters/slack.d.ts +1 -1
  22. package/dist/adapters/slack.d.ts.map +1 -1
  23. package/dist/adapters/slack.js +12 -21
  24. package/dist/adapters/slack.js.map +1 -1
  25. package/dist/adapters/teams.d.ts +0 -1
  26. package/dist/adapters/teams.d.ts.map +1 -1
  27. package/dist/adapters/teams.js +2 -24
  28. package/dist/adapters/teams.js.map +1 -1
  29. package/dist/adapters/telegram.d.ts +1 -1
  30. package/dist/adapters/telegram.d.ts.map +1 -1
  31. package/dist/adapters/telegram.js +9 -21
  32. package/dist/adapters/telegram.js.map +1 -1
  33. package/dist/adapters/twilio.d.ts +0 -1
  34. package/dist/adapters/twilio.d.ts.map +1 -1
  35. package/dist/adapters/twilio.js +2 -24
  36. package/dist/adapters/twilio.js.map +1 -1
  37. package/dist/adapters/whatsapp.d.ts +0 -1
  38. package/dist/adapters/whatsapp.d.ts.map +1 -1
  39. package/dist/adapters/whatsapp.js +2 -24
  40. package/dist/adapters/whatsapp.js.map +1 -1
  41. package/dist/adapters/zalo.d.ts +0 -1
  42. package/dist/adapters/zalo.d.ts.map +1 -1
  43. package/dist/adapters/zalo.js +2 -24
  44. package/dist/adapters/zalo.js.map +1 -1
  45. package/dist/chunk.d.ts +14 -0
  46. package/dist/chunk.d.ts.map +1 -0
  47. package/dist/chunk.js +123 -0
  48. package/dist/chunk.js.map +1 -0
  49. package/dist/draft-stream-loop.d.ts +28 -0
  50. package/dist/draft-stream-loop.d.ts.map +1 -0
  51. package/dist/draft-stream-loop.js +80 -0
  52. package/dist/draft-stream-loop.js.map +1 -0
  53. package/dist/inbound-dedup.d.ts +17 -0
  54. package/dist/inbound-dedup.d.ts.map +1 -0
  55. package/dist/inbound-dedup.js +54 -0
  56. package/dist/inbound-dedup.js.map +1 -0
  57. package/dist/index.d.ts +2 -0
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +4 -0
  60. package/dist/index.js.map +1 -1
  61. package/dist/manager.d.ts +12 -0
  62. package/dist/manager.d.ts.map +1 -1
  63. package/dist/manager.js +35 -0
  64. package/dist/manager.js.map +1 -1
  65. package/dist/types.d.ts +2 -0
  66. package/dist/types.d.ts.map +1 -1
  67. package/package.json +10 -4
  68. package/src/adapters/bluebubbles.ts +0 -294
  69. package/src/adapters/discord.ts +0 -253
  70. package/src/adapters/email.ts +0 -457
  71. package/src/adapters/googlechat.ts +0 -364
  72. package/src/adapters/matrix.ts +0 -376
  73. package/src/adapters/signal.ts +0 -313
  74. package/src/adapters/slack.ts +0 -252
  75. package/src/adapters/teams.ts +0 -320
  76. package/src/adapters/telegram.ts +0 -208
  77. package/src/adapters/twilio.ts +0 -256
  78. package/src/adapters/whatsapp.ts +0 -342
  79. package/src/adapters/zalo.ts +0 -319
  80. package/src/index.ts +0 -78
  81. package/src/manager.ts +0 -180
  82. package/src/types.ts +0 -84
  83. package/tests/bluebubbles.test.ts +0 -438
  84. package/tests/email.test.ts +0 -136
  85. package/tests/googlechat.test.ts +0 -439
  86. package/tests/matrix.test.ts +0 -564
  87. package/tests/signal.test.ts +0 -404
  88. package/tests/slack.test.ts +0 -343
  89. package/tests/teams.test.ts +0 -429
  90. package/tests/twilio.test.ts +0 -269
  91. package/tests/whatsapp.test.ts +0 -530
  92. package/tests/zalo.test.ts +0 -499
  93. package/tsconfig.json +0 -8
  94. package/tsconfig.tsbuildinfo +0 -1
package/dist/chunk.js ADDED
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Markdown-aware text chunking for channel adapters.
3
+ *
4
+ * Splitting priority:
5
+ * 1. If text fits, return as-is
6
+ * 2. Never split inside fenced code blocks (find closing fence first)
7
+ * 3. Prefer paragraph boundaries (\n\n)
8
+ * 4. Fall back to newline boundaries (\n)
9
+ * 5. Fall back to space boundaries
10
+ * 6. Hard cut at maxLength
11
+ * 7. Oversized code blocks split at newlines within the block
12
+ */
13
+ const LINK_RE = /\[[^\]]*\]\([^)]*\)/g;
14
+ export function chunkMarkdown(text, maxLength) {
15
+ if (text.length <= maxLength) {
16
+ return [text];
17
+ }
18
+ const chunks = [];
19
+ let remaining = text;
20
+ while (remaining.length > 0) {
21
+ if (remaining.length <= maxLength) {
22
+ chunks.push(remaining);
23
+ break;
24
+ }
25
+ // Check if we are at a fenced code block
26
+ const fenceMatch = remaining.match(/^```[^\n]*\n/);
27
+ if (fenceMatch) {
28
+ const closeIndex = remaining.indexOf('\n```', fenceMatch[0].length);
29
+ if (closeIndex !== -1) {
30
+ const blockEnd = closeIndex + 4;
31
+ const lineEnd = remaining.indexOf('\n', blockEnd);
32
+ const fullBlockEnd = lineEnd === -1 ? remaining.length : lineEnd;
33
+ if (fullBlockEnd <= maxLength) {
34
+ chunks.push(remaining.slice(0, fullBlockEnd).trimEnd());
35
+ remaining = remaining.slice(fullBlockEnd).replace(/^\n+/, '');
36
+ continue;
37
+ }
38
+ const blockText = remaining.slice(0, fullBlockEnd);
39
+ chunks.push(...splitCodeBlock(blockText, maxLength));
40
+ remaining = remaining.slice(fullBlockEnd).replace(/^\n+/, '');
41
+ continue;
42
+ }
43
+ }
44
+ const breakPoint = findBreakPoint(remaining, maxLength);
45
+ chunks.push(remaining.slice(0, breakPoint).trimEnd());
46
+ remaining = remaining.slice(breakPoint).replace(/^\n+/, '').trimStart();
47
+ }
48
+ return chunks;
49
+ }
50
+ function findBreakPoint(text, maxLength) {
51
+ const window = text.slice(0, maxLength);
52
+ // Check for a fenced code block starting within the window
53
+ const fenceStart = window.search(/\n```[^\n]*\n/);
54
+ if (fenceStart !== -1) {
55
+ const afterOpen = text.indexOf('\n', fenceStart + 1);
56
+ if (afterOpen !== -1) {
57
+ const closeIdx = text.indexOf('\n```', afterOpen);
58
+ if (closeIdx !== -1 && closeIdx < maxLength) {
59
+ const lineEnd = text.indexOf('\n', closeIdx + 4);
60
+ const end = lineEnd === -1 ? closeIdx + 4 : lineEnd;
61
+ if (end <= maxLength) {
62
+ return end;
63
+ }
64
+ }
65
+ }
66
+ if (fenceStart > 0) {
67
+ return fenceStart;
68
+ }
69
+ }
70
+ // Try paragraph boundary
71
+ let bp = window.lastIndexOf('\n\n');
72
+ if (bp > maxLength / 4) {
73
+ return bp;
74
+ }
75
+ // Try newline boundary
76
+ bp = window.lastIndexOf('\n');
77
+ if (bp > maxLength / 4) {
78
+ if (!isInsideLink(text, bp)) {
79
+ return bp;
80
+ }
81
+ }
82
+ // Try space boundary
83
+ bp = window.lastIndexOf(' ');
84
+ if (bp > maxLength / 4) {
85
+ if (!isInsideLink(text, bp)) {
86
+ return bp;
87
+ }
88
+ }
89
+ // Hard cut
90
+ return maxLength;
91
+ }
92
+ function isInsideLink(text, position) {
93
+ for (const match of text.matchAll(LINK_RE)) {
94
+ const start = match.index;
95
+ const end = start + match[0].length;
96
+ if (position > start && position < end) {
97
+ return true;
98
+ }
99
+ if (start > position)
100
+ break;
101
+ }
102
+ return false;
103
+ }
104
+ function splitCodeBlock(block, maxLength) {
105
+ const lines = block.split('\n');
106
+ const chunks = [];
107
+ let current = '';
108
+ for (const line of lines) {
109
+ const candidate = current ? current + '\n' + line : line;
110
+ if (candidate.length > maxLength && current) {
111
+ chunks.push(current);
112
+ current = line;
113
+ }
114
+ else {
115
+ current = candidate;
116
+ }
117
+ }
118
+ if (current) {
119
+ chunks.push(current);
120
+ }
121
+ return chunks;
122
+ }
123
+ //# sourceMappingURL=chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk.js","sourceRoot":"","sources":["../src/chunk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Channel-agnostic throttled send/edit loop for draft streaming.
3
+ *
4
+ * Sends the first chunk immediately, then throttles subsequent updates.
5
+ * Only one API call is in-flight at a time. Latest text wins (coalescing).
6
+ */
7
+ export declare class DraftStreamLoop {
8
+ private readonly sendOrEdit;
9
+ private pendingText;
10
+ private inFlightPromise;
11
+ private timer;
12
+ private lastSentAt;
13
+ private readonly throttleMs;
14
+ constructor(sendOrEdit: (text: string) => Promise<boolean>, overrides?: {
15
+ coalescingIdleMs?: number;
16
+ typingDelayMs?: number;
17
+ } | number);
18
+ /** Set the latest full text to display. Schedules or triggers a flush. */
19
+ update(text: string): void;
20
+ /** Force delivery of pending text. Waits for in-flight, then fires pending. */
21
+ flush(): Promise<void>;
22
+ /** Cancel timer and clear pending text. */
23
+ stop(): void;
24
+ private scheduleFlush;
25
+ private doSend;
26
+ private clearTimer;
27
+ }
28
+ //# sourceMappingURL=draft-stream-loop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draft-stream-loop.d.ts","sourceRoot":"","sources":["../src/draft-stream-loop.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,qBAAa,eAAe;IAQxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAP7B,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAGjB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAC/D,SAAS,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAO5E,0EAA0E;IAC1E,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK1B,+EAA+E;IACzE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAY5B,2CAA2C;IAC3C,IAAI,IAAI,IAAI;IAKZ,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,MAAM;IA4Bd,OAAO,CAAC,UAAU;CAMnB"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Channel-agnostic throttled send/edit loop for draft streaming.
3
+ *
4
+ * Sends the first chunk immediately, then throttles subsequent updates.
5
+ * Only one API call is in-flight at a time. Latest text wins (coalescing).
6
+ */
7
+ export class DraftStreamLoop {
8
+ sendOrEdit;
9
+ pendingText = null;
10
+ inFlightPromise = null;
11
+ timer = null;
12
+ lastSentAt = 0;
13
+ throttleMs;
14
+ constructor(sendOrEdit, overrides) {
15
+ this.sendOrEdit = sendOrEdit;
16
+ this.throttleMs = typeof overrides === 'number'
17
+ ? overrides
18
+ : overrides?.coalescingIdleMs ?? 1000;
19
+ }
20
+ /** Set the latest full text to display. Schedules or triggers a flush. */
21
+ update(text) {
22
+ this.pendingText = text;
23
+ this.scheduleFlush();
24
+ }
25
+ /** Force delivery of pending text. Waits for in-flight, then fires pending. */
26
+ async flush() {
27
+ this.clearTimer();
28
+ if (this.inFlightPromise) {
29
+ await this.inFlightPromise;
30
+ }
31
+ if (this.pendingText !== null) {
32
+ void this.doSend();
33
+ }
34
+ }
35
+ /** Cancel timer and clear pending text. */
36
+ stop() {
37
+ this.clearTimer();
38
+ this.pendingText = null;
39
+ }
40
+ scheduleFlush() {
41
+ if (this.inFlightPromise || this.timer)
42
+ return;
43
+ const elapsed = Date.now() - this.lastSentAt;
44
+ const delay = Math.max(0, this.throttleMs - elapsed);
45
+ this.timer = setTimeout(() => {
46
+ this.timer = null;
47
+ void this.doSend();
48
+ }, delay);
49
+ }
50
+ doSend() {
51
+ const text = this.pendingText;
52
+ if (text === null)
53
+ return Promise.resolve();
54
+ this.pendingText = null;
55
+ const p = this.sendOrEdit(text).then((ok) => {
56
+ if (!ok && this.pendingText === null) {
57
+ this.pendingText = text;
58
+ }
59
+ }, () => {
60
+ // Swallow errors
61
+ }).then(() => {
62
+ if (this.inFlightPromise === p) {
63
+ this.inFlightPromise = null;
64
+ this.lastSentAt = Date.now();
65
+ if (this.pendingText !== null) {
66
+ this.scheduleFlush();
67
+ }
68
+ }
69
+ });
70
+ this.inFlightPromise = p;
71
+ return p;
72
+ }
73
+ clearTimer() {
74
+ if (this.timer) {
75
+ clearTimeout(this.timer);
76
+ this.timer = null;
77
+ }
78
+ }
79
+ }
80
+ //# sourceMappingURL=draft-stream-loop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draft-stream-loop.js","sourceRoot":"","sources":["../src/draft-stream-loop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * In-memory TTL-based deduplication cache for inbound channel messages.
3
+ *
4
+ * Prevents duplicate processing when webhook platforms retry delivery.
5
+ * Key: channelType|channelId|messageId. Entries auto-expire after ttlMs.
6
+ */
7
+ /**
8
+ * Check if a message is a duplicate.
9
+ *
10
+ * Returns `true` if this exact channelType+channelId+messageId was seen
11
+ * within the TTL window. Returns `false` (and records the message) if new.
12
+ * Empty messageId always returns `false` (bypass dedup).
13
+ */
14
+ export declare function isDuplicate(channelType: string, channelId: string, messageId: string): boolean;
15
+ /** Clear all cached entries. For testing. */
16
+ export declare function resetInboundDedup(): void;
17
+ //# sourceMappingURL=inbound-dedup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbound-dedup.d.ts","sourceRoot":"","sources":["../src/inbound-dedup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA4BH;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAgB9F;AAED,6CAA6C;AAC7C,wBAAgB,iBAAiB,IAAI,IAAI,CAExC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * In-memory TTL-based deduplication cache for inbound channel messages.
3
+ *
4
+ * Prevents duplicate processing when webhook platforms retry delivery.
5
+ * Key: channelType|channelId|messageId. Entries auto-expire after ttlMs.
6
+ */
7
+ const DEFAULT_TTL_MS = 20 * 60_000; // 20 minutes
8
+ const DEFAULT_MAX_SIZE = 5000;
9
+ const cache = new Map();
10
+ function buildKey(channelType, channelId, messageId) {
11
+ return `${channelType}|${channelId}|${messageId}`;
12
+ }
13
+ function evictExpired(now) {
14
+ for (const [key, insertedAt] of cache) {
15
+ if (now - insertedAt > DEFAULT_TTL_MS) {
16
+ cache.delete(key);
17
+ }
18
+ }
19
+ }
20
+ function evictOldest() {
21
+ if (cache.size <= DEFAULT_MAX_SIZE)
22
+ return;
23
+ // Map iterates in insertion order — first entry is oldest
24
+ const firstKey = cache.keys().next().value;
25
+ if (firstKey !== undefined) {
26
+ cache.delete(firstKey);
27
+ }
28
+ }
29
+ /**
30
+ * Check if a message is a duplicate.
31
+ *
32
+ * Returns `true` if this exact channelType+channelId+messageId was seen
33
+ * within the TTL window. Returns `false` (and records the message) if new.
34
+ * Empty messageId always returns `false` (bypass dedup).
35
+ */
36
+ export function isDuplicate(channelType, channelId, messageId) {
37
+ if (!messageId)
38
+ return false;
39
+ const now = Date.now();
40
+ evictExpired(now);
41
+ const key = buildKey(channelType, channelId, messageId);
42
+ const insertedAt = cache.get(key);
43
+ if (insertedAt !== undefined && now - insertedAt <= DEFAULT_TTL_MS) {
44
+ return true;
45
+ }
46
+ cache.set(key, now);
47
+ evictOldest();
48
+ return false;
49
+ }
50
+ /** Clear all cached entries. For testing. */
51
+ export function resetInboundDedup() {
52
+ cache.clear();
53
+ }
54
+ //# sourceMappingURL=inbound-dedup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbound-dedup.js","sourceRoot":"","sources":["../src/inbound-dedup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,cAAc,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,aAAa;AACjD,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAE9B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;AAExC,SAAS,QAAQ,CAAC,WAAmB,EAAE,SAAiB,EAAE,SAAiB;IACzE,OAAO,GAAG,WAAW,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,KAAK,EAAE,CAAC;QACtC,IAAI,GAAG,GAAG,UAAU,GAAG,cAAc,EAAE,CAAC;YACtC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,WAAW;IAClB,IAAI,KAAK,CAAC,IAAI,IAAI,gBAAgB;QAAE,OAAO;IAC3C,0DAA0D;IAC1D,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;IAC3C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,WAAmB,EAAE,SAAiB,EAAE,SAAiB;IACnF,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAE7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,YAAY,CAAC,GAAG,CAAC,CAAC;IAElB,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAElC,IAAI,UAAU,KAAK,SAAS,IAAI,GAAG,GAAG,UAAU,IAAI,cAAc,EAAE,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpB,WAAW,EAAE,CAAC;IACd,OAAO,KAAK,CAAC;AACf,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,iBAAiB;IAC/B,KAAK,CAAC,KAAK,EAAE,CAAC;AAChB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -12,4 +12,6 @@ export { GoogleChatAdapter, type GoogleChatAdapterConfig, } from './adapters/goo
12
12
  export { BlueBubblesAdapter, type BlueBubblesAdapterConfig, } from './adapters/bluebubbles.js';
13
13
  export { ZaloAdapter, type ZaloAdapterConfig, } from './adapters/zalo.js';
14
14
  export { ChannelManager, type ChannelManagerConfig, } from './manager.js';
15
+ export { isDuplicate, resetInboundDedup } from './inbound-dedup.js';
16
+ export { DraftStreamLoop } from './draft-stream-loop.js';
15
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,WAAW,EACX,cAAc,EACd,aAAa,EACb,cAAc,EACd,eAAe,EACf,UAAU,EACV,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,cAAc,EACd,KAAK,oBAAoB,GAC1B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,eAAe,EACf,KAAK,qBAAqB,GAC3B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,YAAY,EACZ,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACvB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,YAAY,EACZ,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,YAAY,EACZ,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,eAAe,EACf,KAAK,qBAAqB,GAC3B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,iBAAiB,EACjB,KAAK,uBAAuB,GAC7B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,kBAAkB,EAClB,KAAK,wBAAwB,GAC9B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,WAAW,EACX,KAAK,iBAAiB,GACvB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,cAAc,EACd,KAAK,oBAAoB,GAC1B,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,WAAW,EACX,cAAc,EACd,aAAa,EACb,cAAc,EACd,eAAe,EACf,UAAU,EACV,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,cAAc,EACd,KAAK,oBAAoB,GAC1B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,eAAe,EACf,KAAK,qBAAqB,GAC3B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,YAAY,EACZ,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACvB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,YAAY,EACZ,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,YAAY,EACZ,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,eAAe,EACf,KAAK,qBAAqB,GAC3B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,iBAAiB,EACjB,KAAK,uBAAuB,GAC7B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,kBAAkB,EAClB,KAAK,wBAAwB,GAC9B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,WAAW,EACX,KAAK,iBAAiB,GACvB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,cAAc,EACd,KAAK,oBAAoB,GAC1B,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGpE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC"}
package/dist/index.js CHANGED
@@ -13,4 +13,8 @@ export { BlueBubblesAdapter, } from './adapters/bluebubbles.js';
13
13
  export { ZaloAdapter, } from './adapters/zalo.js';
14
14
  // Manager
15
15
  export { ChannelManager, } from './manager.js';
16
+ // Dedup
17
+ export { isDuplicate, resetInboundDedup } from './inbound-dedup.js';
18
+ // Draft streaming
19
+ export { DraftStreamLoop } from './draft-stream-loop.js';
16
20
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,WAAW;AACX,OAAO,EACL,cAAc,GAEf,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,eAAe,GAEhB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,YAAY,GAEb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,aAAa,GAGd,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,aAAa,GAEd,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,aAAa,GAEd,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,YAAY,GAEb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,YAAY,GAEb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,eAAe,GAEhB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,iBAAiB,GAElB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,kBAAkB,GAEnB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,WAAW,GAEZ,MAAM,oBAAoB,CAAC;AAE5B,UAAU;AACV,OAAO,EACL,cAAc,GAEf,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,WAAW;AACX,OAAO,EACL,cAAc,GAEf,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,eAAe,GAEhB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,YAAY,GAEb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,aAAa,GAGd,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,aAAa,GAEd,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,aAAa,GAEd,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,YAAY,GAEb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,YAAY,GAEb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,eAAe,GAEhB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,iBAAiB,GAElB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,kBAAkB,GAEnB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,WAAW,GAEZ,MAAM,oBAAoB,CAAC;AAE5B,UAAU;AACV,OAAO,EACL,cAAc,GAEf,MAAM,cAAc,CAAC;AAEtB,QAAQ;AACR,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEpE,kBAAkB;AAClB,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC"}
package/dist/manager.d.ts CHANGED
@@ -3,6 +3,11 @@ import { type DiscordAdapterConfig } from './adapters/discord.js';
3
3
  import { type TelegramAdapterConfig } from './adapters/telegram.js';
4
4
  import { type SlackAdapterConfig } from './adapters/slack.js';
5
5
  import { type TwilioAdapterConfig } from './adapters/twilio.js';
6
+ import { type EmailAdapterConfig } from './adapters/email.js';
7
+ import { type MatrixAdapterConfig } from './adapters/matrix.js';
8
+ import { type SignalAdapterConfig } from './adapters/signal.js';
9
+ import { type TeamsAdapterConfig } from './adapters/teams.js';
10
+ import { type WhatsAppAdapterConfig } from './adapters/whatsapp.js';
6
11
  import { type GoogleChatAdapterConfig } from './adapters/googlechat.js';
7
12
  import { type BlueBubblesAdapterConfig } from './adapters/bluebubbles.js';
8
13
  import { type ZaloAdapterConfig } from './adapters/zalo.js';
@@ -11,6 +16,11 @@ export interface ChannelManagerConfig {
11
16
  telegram?: TelegramAdapterConfig;
12
17
  slack?: SlackAdapterConfig;
13
18
  twilio?: TwilioAdapterConfig;
19
+ email?: EmailAdapterConfig;
20
+ matrix?: MatrixAdapterConfig;
21
+ signal?: SignalAdapterConfig;
22
+ teams?: TeamsAdapterConfig;
23
+ whatsapp?: WhatsAppAdapterConfig;
14
24
  googlechat?: GoogleChatAdapterConfig;
15
25
  bluebubbles?: BlueBubblesAdapterConfig;
16
26
  zalo?: ZaloAdapterConfig;
@@ -26,6 +36,8 @@ export declare class ChannelManager {
26
36
  disconnect(type: ChannelType): Promise<void>;
27
37
  send(channelType: ChannelType, channelId: string, message: OutboundMessage): Promise<SendResult>;
28
38
  startTyping(channelType: ChannelType, channelId: string): Promise<() => void>;
39
+ editMessage(channelType: ChannelType, channelId: string, messageId: string, message: OutboundMessage): Promise<SendResult>;
40
+ getDefaultChannelId(channelType: ChannelType): string | undefined;
29
41
  getAdapter<T extends ChannelAdapter>(type: ChannelType): T | undefined;
30
42
  getConnectedChannels(): ChannelType[];
31
43
  getConfiguredChannels(): ChannelType[];
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EAEX,cAAc,EACd,eAAe,EACf,UAAU,EACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAkB,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAmB,KAAK,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,EAAgB,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAiB,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAqB,KAAK,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAC3F,OAAO,EAAsB,KAAK,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC9F,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEzE,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,UAAU,CAAC,EAAE,uBAAuB,CAAC;IACrC,WAAW,CAAC,EAAE,wBAAwB,CAAC;IACvC,IAAI,CAAC,EAAE,iBAAiB,CAAC;CAC1B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAA+C;IAC/D,OAAO,CAAC,cAAc,CAAC,CAA6C;IACpE,OAAO,CAAC,YAAY,CAAC,CAAmD;gBAE5D,MAAM,EAAE,oBAAoB;IA+BlC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAiC3B,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9B,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBzC,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5C,IAAI,CACR,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,UAAU,CAAC;IAahB,WAAW,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;IAQnF,UAAU,CAAC,CAAC,SAAS,cAAc,EAAE,IAAI,EAAE,WAAW,GAAG,CAAC,GAAG,SAAS;IAItE,oBAAoB,IAAI,WAAW,EAAE;IAMrC,qBAAqB,IAAI,WAAW,EAAE;IAItC,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAIpE,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI;CAGzE"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"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"}
package/dist/manager.js CHANGED
@@ -4,9 +4,15 @@ import { DiscordAdapter } from './adapters/discord.js';
4
4
  import { TelegramAdapter } from './adapters/telegram.js';
5
5
  import { SlackAdapter } from './adapters/slack.js';
6
6
  import { TwilioAdapter } from './adapters/twilio.js';
7
+ import { EmailAdapter } from './adapters/email.js';
8
+ import { MatrixAdapter } from './adapters/matrix.js';
9
+ import { SignalAdapter } from './adapters/signal.js';
10
+ import { TeamsAdapter } from './adapters/teams.js';
11
+ import { WhatsAppAdapter } from './adapters/whatsapp.js';
7
12
  import { GoogleChatAdapter } from './adapters/googlechat.js';
8
13
  import { BlueBubblesAdapter } from './adapters/bluebubbles.js';
9
14
  import { ZaloAdapter } from './adapters/zalo.js';
15
+ import { isDuplicate } from './inbound-dedup.js';
10
16
  export class ChannelManager {
11
17
  adapters = new Map();
12
18
  messageHandler;
@@ -31,6 +37,21 @@ export class ChannelManager {
31
37
  if (config.bluebubbles?.serverUrl && config.bluebubbles?.password) {
32
38
  this.adapters.set('bluebubbles', new BlueBubblesAdapter(config.bluebubbles));
33
39
  }
40
+ if (config.email?.imapHost && config.email?.smtpHost && config.email?.email && config.email?.password) {
41
+ this.adapters.set('email', new EmailAdapter(config.email));
42
+ }
43
+ if (config.matrix?.homeserverUrl && config.matrix?.accessToken) {
44
+ this.adapters.set('matrix', new MatrixAdapter(config.matrix));
45
+ }
46
+ if (config.signal?.signalCliEndpoint && config.signal?.phoneNumber) {
47
+ this.adapters.set('signal', new SignalAdapter(config.signal));
48
+ }
49
+ if (config.teams?.microsoftAppId && config.teams?.microsoftAppPassword) {
50
+ this.adapters.set('teams', new TeamsAdapter(config.teams));
51
+ }
52
+ if (config.whatsapp?.phoneNumberId && config.whatsapp?.accessToken && config.whatsapp?.verifyToken) {
53
+ this.adapters.set('whatsapp', new WhatsAppAdapter(config.whatsapp));
54
+ }
34
55
  if (config.zalo?.oaAccessToken && config.zalo?.oaSecretKey) {
35
56
  this.adapters.set('zalo', new ZaloAdapter(config.zalo));
36
57
  }
@@ -40,6 +61,10 @@ export class ChannelManager {
40
61
  try {
41
62
  // Set up message handler
42
63
  adapter.onMessage(async (message) => {
64
+ if (isDuplicate(message.channelType, message.channelId, message.id)) {
65
+ logger.debug(`Duplicate inbound dropped: ${message.channelType}:${message.id}`);
66
+ return;
67
+ }
43
68
  if (this.messageHandler) {
44
69
  await this.messageHandler(message);
45
70
  }
@@ -106,6 +131,16 @@ export class ChannelManager {
106
131
  }
107
132
  return adapter.startTyping(channelId);
108
133
  }
134
+ async editMessage(channelType, channelId, messageId, message) {
135
+ const adapter = this.adapters.get(channelType);
136
+ if (!adapter?.editMessage || !adapter.isConnected()) {
137
+ return { success: false, error: `Edit not supported for ${channelType}` };
138
+ }
139
+ return adapter.editMessage(channelId, messageId, message);
140
+ }
141
+ getDefaultChannelId(channelType) {
142
+ return this.adapters.get(channelType)?.getDefaultChannelId?.();
143
+ }
109
144
  getAdapter(type) {
110
145
  return this.adapters.get(type);
111
146
  }
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -41,6 +41,8 @@ export interface ChannelAdapter {
41
41
  isConnected(): boolean;
42
42
  send(channelId: string, message: OutboundMessage): Promise<SendResult>;
43
43
  startTyping?(channelId: string): Promise<() => void>;
44
+ editMessage?(channelId: string, messageId: string, message: OutboundMessage): Promise<SendResult>;
45
+ getDefaultChannelId?(): string | undefined;
44
46
  onMessage(handler: (message: InboundMessage) => Promise<void>): void;
45
47
  onError(handler: (error: Error) => void): void;
46
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@auxiora/channels",
3
- "version": "1.0.0",
3
+ "version": "1.3.0",
4
4
  "description": "Channel adapters for Discord, Telegram, Slack, and Twilio",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -17,13 +17,19 @@
17
17
  "discord.js": "^14.18.0",
18
18
  "grammy": "^1.35.0",
19
19
  "twilio": "^5.6.0",
20
- "@auxiora/audit": "1.0.0",
21
- "@auxiora/logger": "1.0.0",
22
- "@auxiora/core": "1.0.0"
20
+ "@auxiora/logger": "1.3.0",
21
+ "@auxiora/core": "1.3.0",
22
+ "@auxiora/audit": "1.3.0"
23
23
  },
24
24
  "engines": {
25
25
  "node": ">=22.0.0"
26
26
  },
27
+ "publishConfig": {
28
+ "access": "public"
29
+ },
30
+ "files": [
31
+ "dist/"
32
+ ],
27
33
  "scripts": {
28
34
  "build": "tsc",
29
35
  "clean": "rm -rf dist",