@ai-devkit/channel-connector 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/TelegramAdapter.d.ts +4 -2
- package/dist/adapters/TelegramAdapter.d.ts.map +1 -1
- package/dist/adapters/TelegramAdapter.js +42 -15
- package/dist/adapters/TelegramAdapter.js.map +1 -1
- package/dist/utils/telegramHtml.d.ts +6 -0
- package/dist/utils/telegramHtml.d.ts.map +1 -0
- package/dist/utils/telegramHtml.js +88 -0
- package/dist/utils/telegramHtml.js.map +1 -0
- package/package.json +2 -1
|
@@ -17,8 +17,10 @@ export declare class TelegramAdapter implements ChannelAdapter {
|
|
|
17
17
|
start(): Promise<void>;
|
|
18
18
|
stop(): Promise<void>;
|
|
19
19
|
/**
|
|
20
|
-
*
|
|
21
|
-
*
|
|
20
|
+
* Input is treated as markdown and rendered as Telegram-compatible HTML.
|
|
21
|
+
* Long messages are chunked at paragraph boundaries when possible; very
|
|
22
|
+
* long single blocks (e.g. a `<pre>` over 4096 chars) may still split
|
|
23
|
+
* mid-tag and produce a partial render in the second chunk.
|
|
22
24
|
*/
|
|
23
25
|
sendMessage(chatId: string, text: string): Promise<void>;
|
|
24
26
|
onMessage(handler: (msg: IncomingMessage) => Promise<void>): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TelegramAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/TelegramAdapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"TelegramAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/TelegramAdapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,eAAO,MAAM,qBAAqB,aAAa,CAAC;AAChD,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAGhD,MAAM,WAAW,sBAAsB;IACnC,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,eAAgB,YAAW,cAAc;IAClD,QAAQ,CAAC,IAAI,cAAyB;IAEtC,OAAO,CAAC,GAAG,CAAW;IACtB,OAAO,CAAC,cAAc,CAA0D;IAChF,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,sBAAsB;IAIrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B;;;;;OAKG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe9D,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAI3D,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;CAGtC"}
|
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TelegramAdapter = exports.TELEGRAM_MAX_MESSAGE_LENGTH = exports.TELEGRAM_CHANNEL_TYPE = void 0;
|
|
4
4
|
const telegraf_1 = require("telegraf");
|
|
5
|
+
const telegramHtml_1 = require("../utils/telegramHtml");
|
|
5
6
|
exports.TELEGRAM_CHANNEL_TYPE = 'telegram';
|
|
6
7
|
exports.TELEGRAM_MAX_MESSAGE_LENGTH = 4096;
|
|
8
|
+
const TELEGRAM_PARSE_MODE = 'HTML';
|
|
7
9
|
/**
|
|
8
10
|
* Telegram Bot API adapter using telegraf with long polling.
|
|
9
11
|
*/
|
|
@@ -41,13 +43,25 @@ class TelegramAdapter {
|
|
|
41
43
|
await this.bot.stop();
|
|
42
44
|
}
|
|
43
45
|
/**
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
+
* Input is treated as markdown and rendered as Telegram-compatible HTML.
|
|
47
|
+
* Long messages are chunked at paragraph boundaries when possible; very
|
|
48
|
+
* long single blocks (e.g. a `<pre>` over 4096 chars) may still split
|
|
49
|
+
* mid-tag and produce a partial render in the second chunk.
|
|
46
50
|
*/
|
|
47
51
|
async sendMessage(chatId, text) {
|
|
48
|
-
const
|
|
52
|
+
const html = (0, telegramHtml_1.markdownToTelegramHtml)(text);
|
|
53
|
+
const chunks = chunkMessage(html, exports.TELEGRAM_MAX_MESSAGE_LENGTH);
|
|
49
54
|
for (const chunk of chunks) {
|
|
50
|
-
|
|
55
|
+
try {
|
|
56
|
+
await this.bot.telegram.sendMessage(chatId, chunk, { parse_mode: TELEGRAM_PARSE_MODE });
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
if (!isParseEntitiesError(error))
|
|
60
|
+
throw error;
|
|
61
|
+
// Telegram rejected the rendered HTML — fall back to plain text
|
|
62
|
+
// so the user still gets the content (just unformatted).
|
|
63
|
+
await this.bot.telegram.sendMessage(chatId, htmlToPlainText(chunk));
|
|
64
|
+
}
|
|
51
65
|
}
|
|
52
66
|
}
|
|
53
67
|
onMessage(handler) {
|
|
@@ -58,14 +72,26 @@ class TelegramAdapter {
|
|
|
58
72
|
}
|
|
59
73
|
}
|
|
60
74
|
exports.TelegramAdapter = TelegramAdapter;
|
|
75
|
+
function isParseEntitiesError(error) {
|
|
76
|
+
if (!error || typeof error !== 'object')
|
|
77
|
+
return false;
|
|
78
|
+
const description = error.description;
|
|
79
|
+
const message = error.message;
|
|
80
|
+
return ((description ?? '') + (message ?? '')).includes("can't parse entities");
|
|
81
|
+
}
|
|
82
|
+
function htmlToPlainText(html) {
|
|
83
|
+
return html
|
|
84
|
+
.replace(/<[^>]+>/g, '')
|
|
85
|
+
.replace(/</g, '<')
|
|
86
|
+
.replace(/>/g, '>')
|
|
87
|
+
.replace(/"/g, '"')
|
|
88
|
+
.replace(/&/g, '&');
|
|
89
|
+
}
|
|
61
90
|
/**
|
|
62
|
-
* Split text into chunks of maxLen or fewer characters
|
|
63
|
-
*
|
|
91
|
+
* Split text into chunks of maxLen or fewer characters. Prefers paragraph
|
|
92
|
+
* boundaries (\n\n), then single newlines (\n), then hard-splits at maxLen.
|
|
64
93
|
*/
|
|
65
94
|
function chunkMessage(text, maxLen) {
|
|
66
|
-
if (text.length <= maxLen) {
|
|
67
|
-
return [text];
|
|
68
|
-
}
|
|
69
95
|
const chunks = [];
|
|
70
96
|
let remaining = text;
|
|
71
97
|
while (remaining.length > 0) {
|
|
@@ -73,15 +99,16 @@ function chunkMessage(text, maxLen) {
|
|
|
73
99
|
chunks.push(remaining);
|
|
74
100
|
break;
|
|
75
101
|
}
|
|
76
|
-
|
|
77
|
-
const
|
|
78
|
-
const lastNewline = searchArea.lastIndexOf('\n');
|
|
102
|
+
const lastParagraph = remaining.lastIndexOf('\n\n', maxLen - 2);
|
|
103
|
+
const lastNewline = remaining.lastIndexOf('\n', maxLen - 1);
|
|
79
104
|
let splitAt;
|
|
80
|
-
if (
|
|
81
|
-
splitAt =
|
|
105
|
+
if (lastParagraph > 0) {
|
|
106
|
+
splitAt = lastParagraph + 2;
|
|
107
|
+
}
|
|
108
|
+
else if (lastNewline > 0) {
|
|
109
|
+
splitAt = lastNewline + 1;
|
|
82
110
|
}
|
|
83
111
|
else {
|
|
84
|
-
// No newline found — hard split at maxLen
|
|
85
112
|
splitAt = maxLen;
|
|
86
113
|
}
|
|
87
114
|
chunks.push(remaining.slice(0, splitAt));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TelegramAdapter.js","sourceRoot":"","sources":["../../src/adapters/TelegramAdapter.ts"],"names":[],"mappings":";;;AAAA,uCAAoC;
|
|
1
|
+
{"version":3,"file":"TelegramAdapter.js","sourceRoot":"","sources":["../../src/adapters/TelegramAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telegramHtml.d.ts","sourceRoot":"","sources":["../../src/utils/telegramHtml.ts"],"names":[],"mappings":"AAwFA;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE/D"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.markdownToTelegramHtml = markdownToTelegramHtml;
|
|
4
|
+
const marked_1 = require("marked");
|
|
5
|
+
const escapeHtml = (s) => s.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
|
|
6
|
+
const escapeUrl = (s) => s.replace(/&/g, '&').replace(/"/g, '"');
|
|
7
|
+
const renderer = {
|
|
8
|
+
heading({ tokens }) {
|
|
9
|
+
return `<b>${this.parser.parseInline(tokens)}</b>\n\n`;
|
|
10
|
+
},
|
|
11
|
+
paragraph({ tokens }) {
|
|
12
|
+
return `${this.parser.parseInline(tokens)}\n\n`;
|
|
13
|
+
},
|
|
14
|
+
strong({ tokens }) {
|
|
15
|
+
return `<b>${this.parser.parseInline(tokens)}</b>`;
|
|
16
|
+
},
|
|
17
|
+
em({ tokens }) {
|
|
18
|
+
return `<i>${this.parser.parseInline(tokens)}</i>`;
|
|
19
|
+
},
|
|
20
|
+
del({ tokens }) {
|
|
21
|
+
return `<s>${this.parser.parseInline(tokens)}</s>`;
|
|
22
|
+
},
|
|
23
|
+
codespan({ text }) {
|
|
24
|
+
return `<code>${escapeHtml(text)}</code>`;
|
|
25
|
+
},
|
|
26
|
+
code({ text, lang }) {
|
|
27
|
+
const langAttr = lang ? ` class="language-${escapeHtml(lang.split(/\s/)[0])}"` : '';
|
|
28
|
+
return `<pre><code${langAttr}>${escapeHtml(text)}</code></pre>\n\n`;
|
|
29
|
+
},
|
|
30
|
+
link({ href, tokens }) {
|
|
31
|
+
return `<a href="${escapeUrl(href)}">${this.parser.parseInline(tokens)}</a>`;
|
|
32
|
+
},
|
|
33
|
+
image({ href, text }) {
|
|
34
|
+
const label = text || href;
|
|
35
|
+
return `<a href="${escapeUrl(href)}">${escapeHtml(label)}</a>`;
|
|
36
|
+
},
|
|
37
|
+
list({ items, ordered, start }) {
|
|
38
|
+
const startNum = typeof start === 'number' ? start : 1;
|
|
39
|
+
const lines = items.map((item, i) => {
|
|
40
|
+
const marker = ordered ? `${startNum + i}.` : '•';
|
|
41
|
+
const inner = this.parser.parseInline(item.tokens).trimEnd();
|
|
42
|
+
return `${marker} ${inner}`;
|
|
43
|
+
});
|
|
44
|
+
return `${lines.join('\n')}\n\n`;
|
|
45
|
+
},
|
|
46
|
+
listitem(item) {
|
|
47
|
+
return this.parser.parseInline(item.tokens);
|
|
48
|
+
},
|
|
49
|
+
blockquote({ tokens }) {
|
|
50
|
+
return `<blockquote>${this.parser.parse(tokens).trimEnd()}</blockquote>\n\n`;
|
|
51
|
+
},
|
|
52
|
+
table({ header, rows }) {
|
|
53
|
+
const headerCells = header.map((c) => c.text);
|
|
54
|
+
const bodyRows = rows.map((row) => row.map((c) => c.text));
|
|
55
|
+
const widths = headerCells.map((h, i) => Math.max(h.length, ...bodyRows.map((row) => (row[i] ?? '').length)));
|
|
56
|
+
const pad = (cells) => cells.map((c, i) => c.padEnd(widths[i] ?? 0)).join(' | ');
|
|
57
|
+
const lines = [
|
|
58
|
+
pad(headerCells),
|
|
59
|
+
widths.map((w) => '-'.repeat(w)).join('-+-'),
|
|
60
|
+
...bodyRows.map(pad),
|
|
61
|
+
];
|
|
62
|
+
return `<pre>${escapeHtml(lines.join('\n'))}</pre>\n\n`;
|
|
63
|
+
},
|
|
64
|
+
hr() {
|
|
65
|
+
return '———\n\n';
|
|
66
|
+
},
|
|
67
|
+
br() {
|
|
68
|
+
return '\n';
|
|
69
|
+
},
|
|
70
|
+
html() {
|
|
71
|
+
return '';
|
|
72
|
+
},
|
|
73
|
+
text(token) {
|
|
74
|
+
if ('tokens' in token && token.tokens) {
|
|
75
|
+
return this.parser.parseInline(token.tokens);
|
|
76
|
+
}
|
|
77
|
+
return escapeHtml(token.text);
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
const marked = new marked_1.Marked({ renderer });
|
|
81
|
+
/**
|
|
82
|
+
* Convert markdown to Telegram-compatible HTML (uses only the tag subset
|
|
83
|
+
* Telegram's Bot API accepts for parse_mode: 'HTML').
|
|
84
|
+
*/
|
|
85
|
+
function markdownToTelegramHtml(markdown) {
|
|
86
|
+
return marked.parse(markdown, { async: false }).trimEnd();
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=telegramHtml.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telegramHtml.js","sourceRoot":"","sources":["../../src/utils/telegramHtml.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"nx": {
|
|
4
4
|
"name": "channel-connector"
|
|
5
5
|
},
|
|
6
|
-
"version": "0.
|
|
6
|
+
"version": "0.5.0",
|
|
7
7
|
"description": "Generic messaging bridge for connecting to external communication platforms",
|
|
8
8
|
"main": "dist/index.js",
|
|
9
9
|
"types": "dist/index.d.ts",
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
"author": "",
|
|
32
32
|
"license": "MIT",
|
|
33
33
|
"dependencies": {
|
|
34
|
+
"marked": "^15.0.12",
|
|
34
35
|
"telegraf": "^4.16.3"
|
|
35
36
|
},
|
|
36
37
|
"devDependencies": {
|