@divyacon/piece-telegram-bot 0.0.0-stage → 0.1.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 (223) hide show
  1. package/LICENSE.MIT-AP +24 -0
  2. package/README.md +8 -2
  3. package/dist/index.d.ts +3 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +122 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/lib/action/answer-callback-query.action.d.ts +8 -0
  8. package/dist/lib/action/answer-callback-query.action.d.ts.map +1 -0
  9. package/dist/lib/action/answer-callback-query.action.js +63 -0
  10. package/dist/lib/action/answer-callback-query.action.js.map +1 -0
  11. package/dist/lib/action/create-invite-link.d.ts +9 -0
  12. package/dist/lib/action/create-invite-link.d.ts.map +1 -0
  13. package/dist/lib/action/create-invite-link.js +66 -0
  14. package/dist/lib/action/create-invite-link.js.map +1 -0
  15. package/dist/lib/action/delete-message.action.d.ts +6 -0
  16. package/dist/lib/action/delete-message.action.d.ts.map +1 -0
  17. package/dist/lib/action/delete-message.action.js +42 -0
  18. package/dist/lib/action/delete-message.action.js.map +1 -0
  19. package/dist/lib/action/edit-message-text.action.d.ts +12 -0
  20. package/dist/lib/action/edit-message-text.action.d.ts.map +1 -0
  21. package/dist/lib/action/edit-message-text.action.js +76 -0
  22. package/dist/lib/action/edit-message-text.action.js.map +1 -0
  23. package/dist/lib/action/forward-message.action.d.ts +10 -0
  24. package/dist/lib/action/forward-message.action.d.ts.map +1 -0
  25. package/dist/lib/action/forward-message.action.js +59 -0
  26. package/dist/lib/action/forward-message.action.js.map +1 -0
  27. package/dist/lib/action/get-chat-member.d.ts +6 -0
  28. package/dist/lib/action/get-chat-member.d.ts.map +1 -0
  29. package/dist/lib/action/get-chat-member.js +49 -0
  30. package/dist/lib/action/get-chat-member.js.map +1 -0
  31. package/dist/lib/action/get-chat.action.d.ts +5 -0
  32. package/dist/lib/action/get-chat.action.d.ts.map +1 -0
  33. package/dist/lib/action/get-chat.action.js +42 -0
  34. package/dist/lib/action/get-chat.action.js.map +1 -0
  35. package/dist/lib/action/get-file.action.d.ts +5 -0
  36. package/dist/lib/action/get-file.action.d.ts.map +1 -0
  37. package/dist/lib/action/get-file.action.js +69 -0
  38. package/dist/lib/action/get-file.action.js.map +1 -0
  39. package/dist/lib/action/pin-message.action.d.ts +7 -0
  40. package/dist/lib/action/pin-message.action.d.ts.map +1 -0
  41. package/dist/lib/action/pin-message.action.js +50 -0
  42. package/dist/lib/action/pin-message.action.js.map +1 -0
  43. package/dist/lib/action/request-approval-message.d.ts +7 -0
  44. package/dist/lib/action/request-approval-message.d.ts.map +1 -0
  45. package/dist/lib/action/request-approval-message.js +84 -0
  46. package/dist/lib/action/request-approval-message.js.map +1 -0
  47. package/dist/lib/action/send-audio.action.d.ts +18 -0
  48. package/dist/lib/action/send-audio.action.d.ts.map +1 -0
  49. package/dist/lib/action/send-audio.action.js +128 -0
  50. package/dist/lib/action/send-audio.action.js.map +1 -0
  51. package/dist/lib/action/send-chat-action.action.d.ts +7 -0
  52. package/dist/lib/action/send-chat-action.action.d.ts.map +1 -0
  53. package/dist/lib/action/send-chat-action.action.js +61 -0
  54. package/dist/lib/action/send-chat-action.action.js.map +1 -0
  55. package/dist/lib/action/send-document.action.d.ts +15 -0
  56. package/dist/lib/action/send-document.action.d.ts.map +1 -0
  57. package/dist/lib/action/send-document.action.js +104 -0
  58. package/dist/lib/action/send-document.action.js.map +1 -0
  59. package/dist/lib/action/send-location.action.d.ts +16 -0
  60. package/dist/lib/action/send-location.action.d.ts.map +1 -0
  61. package/dist/lib/action/send-location.action.js +83 -0
  62. package/dist/lib/action/send-location.action.js.map +1 -0
  63. package/dist/lib/action/send-media-group.action.d.ts +11 -0
  64. package/dist/lib/action/send-media-group.action.d.ts.map +1 -0
  65. package/dist/lib/action/send-media-group.action.js +97 -0
  66. package/dist/lib/action/send-media-group.action.js.map +1 -0
  67. package/dist/lib/action/send-media.action.d.ts +14 -0
  68. package/dist/lib/action/send-media.action.d.ts.map +1 -0
  69. package/dist/lib/action/send-media.action.js +198 -0
  70. package/dist/lib/action/send-media.action.js.map +1 -0
  71. package/dist/lib/action/send-poll.action.d.ts +21 -0
  72. package/dist/lib/action/send-poll.action.d.ts.map +1 -0
  73. package/dist/lib/action/send-poll.action.js +145 -0
  74. package/dist/lib/action/send-poll.action.js.map +1 -0
  75. package/dist/lib/action/send-text-message.action.d.ts +14 -0
  76. package/dist/lib/action/send-text-message.action.d.ts.map +1 -0
  77. package/dist/lib/action/send-text-message.action.js +63 -0
  78. package/dist/lib/action/send-text-message.action.js.map +1 -0
  79. package/dist/lib/action/telegram-answer-callback-query.d.ts +8 -0
  80. package/dist/lib/action/telegram-answer-callback-query.d.ts.map +1 -0
  81. package/dist/lib/action/telegram-answer-callback-query.js +68 -0
  82. package/dist/lib/action/telegram-answer-callback-query.js.map +1 -0
  83. package/dist/lib/action/telegram-create-invite-link.d.ts +8 -0
  84. package/dist/lib/action/telegram-create-invite-link.d.ts.map +1 -0
  85. package/dist/lib/action/telegram-create-invite-link.js +68 -0
  86. package/dist/lib/action/telegram-create-invite-link.js.map +1 -0
  87. package/dist/lib/action/telegram-delete-message.d.ts +5 -0
  88. package/dist/lib/action/telegram-delete-message.d.ts.map +1 -0
  89. package/dist/lib/action/telegram-delete-message.js +44 -0
  90. package/dist/lib/action/telegram-delete-message.js.map +1 -0
  91. package/dist/lib/action/telegram-edit-message-text.d.ts +10 -0
  92. package/dist/lib/action/telegram-edit-message-text.d.ts.map +1 -0
  93. package/dist/lib/action/telegram-edit-message-text.js +93 -0
  94. package/dist/lib/action/telegram-edit-message-text.js.map +1 -0
  95. package/dist/lib/action/telegram-forward-message.d.ts +9 -0
  96. package/dist/lib/action/telegram-forward-message.d.ts.map +1 -0
  97. package/dist/lib/action/telegram-forward-message.js +61 -0
  98. package/dist/lib/action/telegram-forward-message.js.map +1 -0
  99. package/dist/lib/action/telegram-get-bot-info.d.ts +2 -0
  100. package/dist/lib/action/telegram-get-bot-info.d.ts.map +1 -0
  101. package/dist/lib/action/telegram-get-bot-info.js +39 -0
  102. package/dist/lib/action/telegram-get-bot-info.js.map +1 -0
  103. package/dist/lib/action/telegram-get-chat-administrators.d.ts +4 -0
  104. package/dist/lib/action/telegram-get-chat-administrators.d.ts.map +1 -0
  105. package/dist/lib/action/telegram-get-chat-administrators.js +44 -0
  106. package/dist/lib/action/telegram-get-chat-administrators.js.map +1 -0
  107. package/dist/lib/action/telegram-get-chat-member-count.d.ts +4 -0
  108. package/dist/lib/action/telegram-get-chat-member-count.d.ts.map +1 -0
  109. package/dist/lib/action/telegram-get-chat-member-count.js +44 -0
  110. package/dist/lib/action/telegram-get-chat-member-count.js.map +1 -0
  111. package/dist/lib/action/telegram-get-chat-member.d.ts +5 -0
  112. package/dist/lib/action/telegram-get-chat-member.d.ts.map +1 -0
  113. package/dist/lib/action/telegram-get-chat-member.js +51 -0
  114. package/dist/lib/action/telegram-get-chat-member.js.map +1 -0
  115. package/dist/lib/action/telegram-get-chat.d.ts +4 -0
  116. package/dist/lib/action/telegram-get-chat.d.ts.map +1 -0
  117. package/dist/lib/action/telegram-get-chat.js +44 -0
  118. package/dist/lib/action/telegram-get-chat.js.map +1 -0
  119. package/dist/lib/action/telegram-get-file.d.ts +5 -0
  120. package/dist/lib/action/telegram-get-file.d.ts.map +1 -0
  121. package/dist/lib/action/telegram-get-file.js +72 -0
  122. package/dist/lib/action/telegram-get-file.js.map +1 -0
  123. package/dist/lib/action/telegram-pin-message.d.ts +6 -0
  124. package/dist/lib/action/telegram-pin-message.d.ts.map +1 -0
  125. package/dist/lib/action/telegram-pin-message.js +52 -0
  126. package/dist/lib/action/telegram-pin-message.js.map +1 -0
  127. package/dist/lib/action/telegram-send-audio.d.ts +16 -0
  128. package/dist/lib/action/telegram-send-audio.d.ts.map +1 -0
  129. package/dist/lib/action/telegram-send-audio.js +149 -0
  130. package/dist/lib/action/telegram-send-audio.js.map +1 -0
  131. package/dist/lib/action/telegram-send-chat-action.d.ts +6 -0
  132. package/dist/lib/action/telegram-send-chat-action.d.ts.map +1 -0
  133. package/dist/lib/action/telegram-send-chat-action.js +67 -0
  134. package/dist/lib/action/telegram-send-chat-action.js.map +1 -0
  135. package/dist/lib/action/telegram-send-document.d.ts +13 -0
  136. package/dist/lib/action/telegram-send-document.d.ts.map +1 -0
  137. package/dist/lib/action/telegram-send-document.js +125 -0
  138. package/dist/lib/action/telegram-send-document.js.map +1 -0
  139. package/dist/lib/action/telegram-send-location.d.ts +15 -0
  140. package/dist/lib/action/telegram-send-location.d.ts.map +1 -0
  141. package/dist/lib/action/telegram-send-location.js +93 -0
  142. package/dist/lib/action/telegram-send-location.js.map +1 -0
  143. package/dist/lib/action/telegram-send-media-group.d.ts +10 -0
  144. package/dist/lib/action/telegram-send-media-group.d.ts.map +1 -0
  145. package/dist/lib/action/telegram-send-media-group.js +115 -0
  146. package/dist/lib/action/telegram-send-media-group.js.map +1 -0
  147. package/dist/lib/action/telegram-send-message.d.ts +12 -0
  148. package/dist/lib/action/telegram-send-message.d.ts.map +1 -0
  149. package/dist/lib/action/telegram-send-message.js +84 -0
  150. package/dist/lib/action/telegram-send-message.js.map +1 -0
  151. package/dist/lib/action/telegram-send-photo-or-video.d.ts +12 -0
  152. package/dist/lib/action/telegram-send-photo-or-video.d.ts.map +1 -0
  153. package/dist/lib/action/telegram-send-photo-or-video.js +219 -0
  154. package/dist/lib/action/telegram-send-photo-or-video.js.map +1 -0
  155. package/dist/lib/action/telegram-send-poll.d.ts +20 -0
  156. package/dist/lib/action/telegram-send-poll.d.ts.map +1 -0
  157. package/dist/lib/action/telegram-send-poll.js +167 -0
  158. package/dist/lib/action/telegram-send-poll.js.map +1 -0
  159. package/dist/lib/action/telegram-unpin-message.d.ts +5 -0
  160. package/dist/lib/action/telegram-unpin-message.d.ts.map +1 -0
  161. package/dist/lib/action/telegram-unpin-message.js +45 -0
  162. package/dist/lib/action/telegram-unpin-message.js.map +1 -0
  163. package/dist/lib/action/unpin-message.action.d.ts +6 -0
  164. package/dist/lib/action/unpin-message.action.d.ts.map +1 -0
  165. package/dist/lib/action/unpin-message.action.js +43 -0
  166. package/dist/lib/action/unpin-message.action.js.map +1 -0
  167. package/dist/lib/common/index.d.ts +25 -0
  168. package/dist/lib/common/index.d.ts.map +1 -0
  169. package/dist/lib/common/index.js +104 -0
  170. package/dist/lib/common/index.js.map +1 -0
  171. package/dist/lib/output-schemas.d.ts +41 -0
  172. package/dist/lib/output-schemas.d.ts.map +1 -0
  173. package/dist/lib/output-schemas.js +1853 -0
  174. package/dist/lib/output-schemas.js.map +1 -0
  175. package/dist/lib/trigger/new-message.d.ts +15 -0
  176. package/dist/lib/trigger/new-message.d.ts.map +1 -0
  177. package/dist/lib/trigger/new-message.js +121 -0
  178. package/dist/lib/trigger/new-message.js.map +1 -0
  179. package/package.json +44 -3
  180. package/src/index.ts +119 -0
  181. package/src/lib/action/answer-callback-query.action.ts +58 -0
  182. package/src/lib/action/create-invite-link.ts +59 -0
  183. package/src/lib/action/delete-message.action.ts +34 -0
  184. package/src/lib/action/edit-message-text.action.ts +71 -0
  185. package/src/lib/action/forward-message.action.ts +50 -0
  186. package/src/lib/action/get-chat-member.ts +40 -0
  187. package/src/lib/action/get-chat.action.ts +33 -0
  188. package/src/lib/action/get-file.action.ts +79 -0
  189. package/src/lib/action/pin-message.action.ts +41 -0
  190. package/src/lib/action/request-approval-message.ts +85 -0
  191. package/src/lib/action/send-audio.action.ts +123 -0
  192. package/src/lib/action/send-chat-action.action.ts +53 -0
  193. package/src/lib/action/send-document.action.ts +105 -0
  194. package/src/lib/action/send-location.action.ts +76 -0
  195. package/src/lib/action/send-media-group.action.ts +98 -0
  196. package/src/lib/action/send-media.action.ts +209 -0
  197. package/src/lib/action/send-poll.action.ts +140 -0
  198. package/src/lib/action/send-text-message.action.ts +54 -0
  199. package/src/lib/action/telegram-answer-callback-query.ts +64 -0
  200. package/src/lib/action/telegram-create-invite-link.ts +62 -0
  201. package/src/lib/action/telegram-delete-message.ts +37 -0
  202. package/src/lib/action/telegram-edit-message-text.ts +92 -0
  203. package/src/lib/action/telegram-forward-message.ts +54 -0
  204. package/src/lib/action/telegram-get-bot-info.ts +31 -0
  205. package/src/lib/action/telegram-get-chat-administrators.ts +36 -0
  206. package/src/lib/action/telegram-get-chat-member-count.ts +36 -0
  207. package/src/lib/action/telegram-get-chat-member.ts +43 -0
  208. package/src/lib/action/telegram-get-chat.ts +36 -0
  209. package/src/lib/action/telegram-get-file.ts +83 -0
  210. package/src/lib/action/telegram-pin-message.ts +45 -0
  211. package/src/lib/action/telegram-send-audio.ts +157 -0
  212. package/src/lib/action/telegram-send-chat-action.ts +61 -0
  213. package/src/lib/action/telegram-send-document.ts +136 -0
  214. package/src/lib/action/telegram-send-location.ts +89 -0
  215. package/src/lib/action/telegram-send-media-group.ts +119 -0
  216. package/src/lib/action/telegram-send-message.ts +79 -0
  217. package/src/lib/action/telegram-send-photo-or-video.ts +238 -0
  218. package/src/lib/action/telegram-send-poll.ts +170 -0
  219. package/src/lib/action/telegram-unpin-message.ts +38 -0
  220. package/src/lib/action/unpin-message.action.ts +36 -0
  221. package/src/lib/common/index.ts +147 -0
  222. package/src/lib/output-schemas.ts +1909 -0
  223. package/src/lib/trigger/new-message.ts +127 -0
@@ -0,0 +1,127 @@
1
+ import { createTrigger, Property, TriggerStrategy } from '@agnocon/pieces-framework';
2
+ import { telegramCommons } from '../common';
3
+ import { telegramBotAuth } from '../..';
4
+ import { httpClient, HttpMethod, HttpRequest } from '@agnocon/pieces-common';
5
+
6
+ type TelegramUpdate = Record<string, unknown> & { update_id?: number };
7
+
8
+ type GetUpdatesResponse = {
9
+ ok: boolean;
10
+ result: TelegramUpdate[];
11
+ };
12
+
13
+ type GetWebhookInfoResponse = {
14
+ ok: boolean;
15
+ result: {
16
+ url: string;
17
+ };
18
+ };
19
+
20
+ const UPDATE_TYPE_OPTIONS = [
21
+ { label: 'Message', value: 'message' },
22
+ { label: 'Edited Message', value: 'edited_message' },
23
+ { label: 'Channel Post', value: 'channel_post' },
24
+ { label: 'Edited Channel Post', value: 'edited_channel_post' },
25
+ { label: 'Callback Query (inline button tap)', value: 'callback_query' },
26
+ { label: 'Inline Query', value: 'inline_query' },
27
+ { label: 'Chosen Inline Result', value: 'chosen_inline_result' },
28
+ { label: 'Poll', value: 'poll' },
29
+ { label: 'Poll Answer', value: 'poll_answer' },
30
+ { label: 'My Chat Member', value: 'my_chat_member' },
31
+ { label: 'Chat Member', value: 'chat_member' },
32
+ { label: 'Chat Join Request', value: 'chat_join_request' },
33
+ ];
34
+
35
+ const updateTypesDescription = 'Which update types this flow should listen for. Leave empty for Telegram\'s default set (does not include callback queries).';
36
+
37
+ const triggerNotesDescription = `
38
+ Telegram allows only **one webhook per bot token**, so this one trigger covers every update type picked below. Use a Branch step downstream to fork on update kind (e.g. \`message\` vs \`callback_query\`).
39
+
40
+ Same reason **Retest** shows example data instead of a live update once this flow is published, refetching would mean hijacking the bot's active webhook. Test before publishing to capture a real message.
41
+ `;
42
+
43
+ const SAMPLE_UPDATE: TelegramUpdate = {
44
+ update_id: 351114420,
45
+ message: {
46
+ chat: {
47
+ id: 123456789,
48
+ type: 'private',
49
+ username: 'johndoe',
50
+ last_name: 'Doe',
51
+ first_name: 'John',
52
+ },
53
+ date: 1686050152,
54
+ from: {
55
+ id: 123456789,
56
+ is_bot: false,
57
+ username: 'johndoe',
58
+ last_name: 'Doe',
59
+ first_name: 'John',
60
+ language_code: 'en',
61
+ },
62
+ parse_mode: 'MarkdownV2',
63
+ text: 'Hello world',
64
+ message_id: 21,
65
+ },
66
+ };
67
+
68
+ export const telegramNewMessage = createTrigger({
69
+ auth: telegramBotAuth,
70
+ name: 'new_telegram_message',
71
+ displayName: 'New Update',
72
+ description:
73
+ 'Triggers when the bot receives a Telegram update (message, callback query, poll answer, etc.).',
74
+ aiMetadata: { description: 'Fires when the bot receives any selected Telegram update, including new or edited messages, channel posts, inline-button callback queries, poll answers, and chat-member changes. Represents a single inbound update event; since Telegram allows only one webhook per bot token, this one trigger covers all chosen update types for that bot.' },
75
+ props: {
76
+ trigger_notes: Property.MarkDown({
77
+ value: triggerNotesDescription,
78
+ }),
79
+ update_types: Property.StaticMultiSelectDropdown({
80
+ displayName: 'Update Types',
81
+ description: updateTypesDescription,
82
+ required: false,
83
+ options: { options: UPDATE_TYPE_OPTIONS },
84
+ }),
85
+ },
86
+ type: TriggerStrategy.WEBHOOK,
87
+ sampleData: SAMPLE_UPDATE,
88
+ async onEnable(context) {
89
+ const allowedUpdates = (context.propsValue.update_types ?? []) as string[];
90
+ await telegramCommons.subscribeWebhook(context.auth.secret_text, context.webhookUrl, {
91
+ allowed_updates: allowedUpdates,
92
+ drop_pending_updates: true,
93
+ });
94
+ },
95
+ async onDisable(context) {
96
+ await telegramCommons.unsubscribeWebhook(context.auth.secret_text);
97
+ },
98
+ async run(context) {
99
+ return [context.payload.body];
100
+ },
101
+ async test(context) {
102
+ const webhookInfo = await getWebhookInfo(context.auth.secret_text);
103
+ if (webhookInfo.result.url) {
104
+ return [SAMPLE_UPDATE];
105
+ }
106
+ const messages = await getLastFiveMessages(context.auth.secret_text);
107
+ return messages.result;
108
+ },
109
+ });
110
+
111
+ const getLastFiveMessages = async (botToken: string) => {
112
+ const request: HttpRequest = {
113
+ method: HttpMethod.GET,
114
+ url: `https://api.telegram.org/bot${botToken}/getUpdates?offset=-5`,
115
+ };
116
+ const response = await httpClient.sendRequest<GetUpdatesResponse>(request);
117
+ return response.body;
118
+ };
119
+
120
+ const getWebhookInfo = async (botToken: string) => {
121
+ const request: HttpRequest = {
122
+ method: HttpMethod.GET,
123
+ url: `https://api.telegram.org/bot${botToken}/getWebhookInfo`,
124
+ };
125
+ const response = await httpClient.sendRequest<GetWebhookInfoResponse>(request);
126
+ return response.body;
127
+ };