@chatman-media/channel-telegram 1.9.0 → 1.10.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.
@@ -1 +1 @@
1
- {"version":3,"file":"update-parser.d.ts","sourceRoot":"","sources":["../../src/bot-api/update-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAyB,MAAM,6BAA6B,CAAC;AAClF,OAAO,KAAK,EAA0B,QAAQ,EAAE,MAAM,YAAY,CAAC;AAuEnE;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,CAwC/E"}
1
+ {"version":3,"file":"update-parser.d.ts","sourceRoot":"","sources":["../../src/bot-api/update-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAyB,MAAM,6BAA6B,CAAC;AAClF,OAAO,KAAK,EAA0B,QAAQ,EAAE,MAAM,YAAY,CAAC;AAuEnE;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,CA0C/E"}
package/dist/index.js CHANGED
@@ -32861,10 +32861,9 @@ function parseUpdate(channelId, update) {
32861
32861
  externalMessageId: String(cb.message?.message_id ?? cb.id),
32862
32862
  externalUserId: String(cb.from.id),
32863
32863
  ...cb.from.username ? { externalUsername: cb.from.username } : {},
32864
- parts: [
32865
- { kind: "callback_query", data: cb.data, originalMessageId: String(messageId) }
32866
- ],
32864
+ parts: [{ kind: "callback_query", data: cb.data, originalMessageId: String(messageId) }],
32867
32865
  receivedAt: Math.floor(Date.now() / 1000),
32866
+ ...cb.from.language_code ? { channelLangHint: cb.from.language_code } : {},
32868
32867
  raw: update
32869
32868
  };
32870
32869
  }
@@ -32885,6 +32884,7 @@ function parseUpdate(channelId, update) {
32885
32884
  parts,
32886
32885
  receivedAt: msg.date,
32887
32886
  ...isEdit ? { edited: true } : {},
32887
+ ...msg.from.language_code ? { channelLangHint: msg.from.language_code } : {},
32888
32888
  raw: update
32889
32889
  };
32890
32890
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chatman-media/channel-telegram",
3
- "version": "1.9.0",
3
+ "version": "1.10.0",
4
4
  "description": "Telegram-каналы (BotAPI + MTProto userbot) как реализация ChannelAdapter из @chatman-media/channel-core.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -285,4 +285,52 @@ describe("parseUpdate", () => {
285
285
  };
286
286
  expect(parseUpdate(CH, update)).toBeNull();
287
287
  });
288
+
289
+ // #735 — слабый bootstrap-сигнал языка из Telegram language_code.
290
+ it("пробрасывает from.language_code → Inbound.channelLangHint", () => {
291
+ const update: TgUpdate = {
292
+ update_id: 10,
293
+ message: {
294
+ message_id: 1,
295
+ chat: { id: 1, type: "private" },
296
+ from: { id: 1, language_code: "ko" },
297
+ date: 1700000000,
298
+ text: "안녕",
299
+ },
300
+ };
301
+ expect(parseUpdate(CH, update)?.channelLangHint).toBe("ko");
302
+ });
303
+
304
+ it("без language_code — channelLangHint отсутствует", () => {
305
+ const update: TgUpdate = {
306
+ update_id: 11,
307
+ message: {
308
+ message_id: 2,
309
+ chat: { id: 2, type: "private" },
310
+ from: { id: 2 },
311
+ date: 1700000000,
312
+ text: "hi",
313
+ },
314
+ };
315
+ const inbound = parseUpdate(CH, update);
316
+ expect(inbound).not.toBeNull();
317
+ expect(inbound?.channelLangHint).toBeUndefined();
318
+ });
319
+
320
+ it("пробрасывает language_code из callback_query.from", () => {
321
+ const update: TgUpdate = {
322
+ update_id: 12,
323
+ callback_query: {
324
+ id: "cb1",
325
+ from: { id: 99, language_code: "en-US" },
326
+ data: "ok",
327
+ message: {
328
+ message_id: 50,
329
+ chat: { id: 99, type: "private" },
330
+ date: 1700000000,
331
+ },
332
+ },
333
+ };
334
+ expect(parseUpdate(CH, update)?.channelLangHint).toBe("en-US");
335
+ });
288
336
  });
@@ -85,10 +85,10 @@ export function parseUpdate(channelId: string, update: TgUpdate): Inbound | null
85
85
  externalMessageId: String(cb.message?.message_id ?? cb.id),
86
86
  externalUserId: String(cb.from.id),
87
87
  ...(cb.from.username ? { externalUsername: cb.from.username } : {}),
88
- parts: [
89
- { kind: "callback_query", data: cb.data, originalMessageId: String(messageId) },
90
- ],
88
+ parts: [{ kind: "callback_query", data: cb.data, originalMessageId: String(messageId) }],
91
89
  receivedAt: Math.floor(Date.now() / 1000),
90
+ // #735 — слабый bootstrap-сигнал языка (язык интерфейса клиента, не переписки).
91
+ ...(cb.from.language_code ? { channelLangHint: cb.from.language_code } : {}),
92
92
  raw: update,
93
93
  };
94
94
  }
@@ -113,6 +113,8 @@ export function parseUpdate(channelId: string, update: TgUpdate): Inbound | null
113
113
  parts,
114
114
  receivedAt: msg.date,
115
115
  ...(isEdit ? { edited: true } : {}),
116
+ // #735 — слабый bootstrap-сигнал языка (язык интерфейса клиента, не переписки).
117
+ ...(msg.from.language_code ? { channelLangHint: msg.from.language_code } : {}),
116
118
  raw: update,
117
119
  };
118
120
  }