chz-telegram-bot 0.5.1 → 0.5.3

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 (222) hide show
  1. package/dtos/chatHistoryMessage.ts +9 -1
  2. package/entities/botInstance.ts +1 -1
  3. package/entities/context/messageContext.ts +3 -3
  4. package/entities/context/replyContext.ts +3 -3
  5. package/{eslint.config.js → eslint.config.ts} +8 -5
  6. package/index.ts +3 -0
  7. package/package.json +38 -37
  8. package/services/actionProcessors/commandActionProcessor.ts +7 -7
  9. package/services/jsonFileStorage.ts +1 -1
  10. package/services/nodeTimeoutScheduler.ts +2 -2
  11. package/tsconfig.json +2 -2
  12. package/bun.lock +0 -301
  13. package/dist/builtin/helpAction.d.ts +0 -2
  14. package/dist/builtin/helpAction.d.ts.map +0 -1
  15. package/dist/builtin/helpAction.js +0 -17
  16. package/dist/dtos/chatHistoryMessage.d.ts +0 -13
  17. package/dist/dtos/chatHistoryMessage.d.ts.map +0 -1
  18. package/dist/dtos/chatHistoryMessage.js +0 -20
  19. package/dist/dtos/chatInfo.d.ts +0 -17
  20. package/dist/dtos/chatInfo.d.ts.map +0 -1
  21. package/dist/dtos/chatInfo.js +0 -20
  22. package/dist/dtos/commandTriggerCheckResult.d.ts +0 -24
  23. package/dist/dtos/commandTriggerCheckResult.d.ts.map +0 -1
  24. package/dist/dtos/commandTriggerCheckResult.js +0 -38
  25. package/dist/dtos/cooldownInfo.d.ts +0 -13
  26. package/dist/dtos/cooldownInfo.d.ts.map +0 -1
  27. package/dist/dtos/cooldownInfo.js +0 -16
  28. package/dist/dtos/incomingMessage.d.ts +0 -19
  29. package/dist/dtos/incomingMessage.d.ts.map +0 -1
  30. package/dist/dtos/incomingMessage.js +0 -67
  31. package/dist/dtos/incomingQuery.d.ts +0 -10
  32. package/dist/dtos/incomingQuery.d.ts.map +0 -1
  33. package/dist/dtos/incomingQuery.js +0 -18
  34. package/dist/dtos/messageInfo.d.ts +0 -22
  35. package/dist/dtos/messageInfo.d.ts.map +0 -1
  36. package/dist/dtos/messageInfo.js +0 -24
  37. package/dist/dtos/propertyProviderSets.d.ts +0 -16
  38. package/dist/dtos/propertyProviderSets.d.ts.map +0 -1
  39. package/dist/dtos/propertyProviderSets.js +0 -2
  40. package/dist/dtos/replyInfo.d.ts +0 -6
  41. package/dist/dtos/replyInfo.d.ts.map +0 -1
  42. package/dist/dtos/replyInfo.js +0 -12
  43. package/dist/dtos/responses/delay.d.ts +0 -16
  44. package/dist/dtos/responses/delay.d.ts.map +0 -1
  45. package/dist/dtos/responses/delay.js +0 -19
  46. package/dist/dtos/responses/imageMessage.d.ts +0 -22
  47. package/dist/dtos/responses/imageMessage.d.ts.map +0 -1
  48. package/dist/dtos/responses/imageMessage.js +0 -25
  49. package/dist/dtos/responses/inlineQueryResponse.d.ts +0 -13
  50. package/dist/dtos/responses/inlineQueryResponse.d.ts.map +0 -1
  51. package/dist/dtos/responses/inlineQueryResponse.js +0 -19
  52. package/dist/dtos/responses/reaction.d.ts +0 -16
  53. package/dist/dtos/responses/reaction.d.ts.map +0 -1
  54. package/dist/dtos/responses/reaction.js +0 -21
  55. package/dist/dtos/responses/textMessage.d.ts +0 -23
  56. package/dist/dtos/responses/textMessage.d.ts.map +0 -1
  57. package/dist/dtos/responses/textMessage.js +0 -28
  58. package/dist/dtos/responses/unpin.d.ts +0 -15
  59. package/dist/dtos/responses/unpin.d.ts.map +0 -1
  60. package/dist/dtos/responses/unpin.js +0 -19
  61. package/dist/dtos/responses/videoMessage.d.ts +0 -22
  62. package/dist/dtos/responses/videoMessage.d.ts.map +0 -1
  63. package/dist/dtos/responses/videoMessage.js +0 -25
  64. package/dist/dtos/userInfo.d.ts +0 -12
  65. package/dist/dtos/userInfo.d.ts.map +0 -1
  66. package/dist/dtos/userInfo.js +0 -16
  67. package/dist/entities/actions/commandAction.d.ts +0 -31
  68. package/dist/entities/actions/commandAction.d.ts.map +0 -1
  69. package/dist/entities/actions/commandAction.js +0 -146
  70. package/dist/entities/actions/inlineQueryAction.d.ts +0 -14
  71. package/dist/entities/actions/inlineQueryAction.d.ts.map +0 -1
  72. package/dist/entities/actions/inlineQueryAction.js +0 -47
  73. package/dist/entities/actions/replyCaptureAction.d.ts +0 -15
  74. package/dist/entities/actions/replyCaptureAction.d.ts.map +0 -1
  75. package/dist/entities/actions/replyCaptureAction.js +0 -62
  76. package/dist/entities/actions/scheduledAction.d.ts +0 -24
  77. package/dist/entities/actions/scheduledAction.d.ts.map +0 -1
  78. package/dist/entities/actions/scheduledAction.js +0 -79
  79. package/dist/entities/botInstance.d.ts +0 -37
  80. package/dist/entities/botInstance.d.ts.map +0 -1
  81. package/dist/entities/botInstance.js +0 -41
  82. package/dist/entities/cachedStateFactory.d.ts +0 -7
  83. package/dist/entities/cachedStateFactory.d.ts.map +0 -1
  84. package/dist/entities/cachedStateFactory.js +0 -12
  85. package/dist/entities/context/baseContext.d.ts +0 -39
  86. package/dist/entities/context/baseContext.d.ts.map +0 -1
  87. package/dist/entities/context/baseContext.js +0 -59
  88. package/dist/entities/context/chatContext.d.ts +0 -50
  89. package/dist/entities/context/chatContext.d.ts.map +0 -1
  90. package/dist/entities/context/chatContext.js +0 -69
  91. package/dist/entities/context/inlineQueryContext.d.ts +0 -27
  92. package/dist/entities/context/inlineQueryContext.d.ts.map +0 -1
  93. package/dist/entities/context/inlineQueryContext.js +0 -33
  94. package/dist/entities/context/messageContext.d.ts +0 -92
  95. package/dist/entities/context/messageContext.d.ts.map +0 -1
  96. package/dist/entities/context/messageContext.js +0 -120
  97. package/dist/entities/context/replyContext.d.ts +0 -89
  98. package/dist/entities/context/replyContext.d.ts.map +0 -1
  99. package/dist/entities/context/replyContext.js +0 -128
  100. package/dist/entities/states/actionStateBase.d.ts +0 -6
  101. package/dist/entities/states/actionStateBase.d.ts.map +0 -1
  102. package/dist/entities/states/actionStateBase.js +0 -8
  103. package/dist/entities/taskRecord.d.ts +0 -8
  104. package/dist/entities/taskRecord.d.ts.map +0 -1
  105. package/dist/entities/taskRecord.js +0 -14
  106. package/dist/helpers/builders/commandActionBuilder.d.ts +0 -100
  107. package/dist/helpers/builders/commandActionBuilder.d.ts.map +0 -1
  108. package/dist/helpers/builders/commandActionBuilder.js +0 -151
  109. package/dist/helpers/builders/inlineQueryActionBuilder.d.ts +0 -37
  110. package/dist/helpers/builders/inlineQueryActionBuilder.d.ts.map +0 -1
  111. package/dist/helpers/builders/inlineQueryActionBuilder.js +0 -54
  112. package/dist/helpers/builders/scheduledActionBuilder.d.ts +0 -68
  113. package/dist/helpers/builders/scheduledActionBuilder.d.ts.map +0 -1
  114. package/dist/helpers/builders/scheduledActionBuilder.js +0 -100
  115. package/dist/helpers/mapUtils.d.ts +0 -10
  116. package/dist/helpers/mapUtils.d.ts.map +0 -1
  117. package/dist/helpers/mapUtils.js +0 -17
  118. package/dist/helpers/noop.d.ts +0 -9
  119. package/dist/helpers/noop.d.ts.map +0 -1
  120. package/dist/helpers/noop.js +0 -21
  121. package/dist/helpers/objectFromEntries.d.ts +0 -2
  122. package/dist/helpers/objectFromEntries.d.ts.map +0 -1
  123. package/dist/helpers/objectFromEntries.js +0 -7
  124. package/dist/helpers/timeConvertions.d.ts +0 -5
  125. package/dist/helpers/timeConvertions.d.ts.map +0 -1
  126. package/dist/helpers/timeConvertions.js +0 -14
  127. package/dist/helpers/toArray.d.ts +0 -2
  128. package/dist/helpers/toArray.d.ts.map +0 -1
  129. package/dist/helpers/toArray.js +0 -6
  130. package/dist/helpers/traceFactory.d.ts +0 -3
  131. package/dist/helpers/traceFactory.d.ts.map +0 -1
  132. package/dist/helpers/traceFactory.js +0 -6
  133. package/dist/index.d.ts +0 -24
  134. package/dist/index.d.ts.map +0 -1
  135. package/dist/index.js +0 -41
  136. package/dist/main.d.ts +0 -52
  137. package/dist/main.d.ts.map +0 -1
  138. package/dist/main.js +0 -37
  139. package/dist/services/actionProcessingService.d.ts +0 -25
  140. package/dist/services/actionProcessingService.d.ts.map +0 -1
  141. package/dist/services/actionProcessingService.js +0 -54
  142. package/dist/services/actionProcessors/baseProcessor.d.ts +0 -18
  143. package/dist/services/actionProcessors/baseProcessor.d.ts.map +0 -1
  144. package/dist/services/actionProcessors/baseProcessor.js +0 -33
  145. package/dist/services/actionProcessors/commandActionProcessor.d.ts +0 -20
  146. package/dist/services/actionProcessors/commandActionProcessor.d.ts.map +0 -1
  147. package/dist/services/actionProcessors/commandActionProcessor.js +0 -119
  148. package/dist/services/actionProcessors/inlineQueryActionProcessor.d.ts +0 -11
  149. package/dist/services/actionProcessors/inlineQueryActionProcessor.d.ts.map +0 -1
  150. package/dist/services/actionProcessors/inlineQueryActionProcessor.js +0 -65
  151. package/dist/services/actionProcessors/scheduledActionProcessor.d.ts +0 -17
  152. package/dist/services/actionProcessors/scheduledActionProcessor.d.ts.map +0 -1
  153. package/dist/services/actionProcessors/scheduledActionProcessor.js +0 -63
  154. package/dist/services/jsonFileStorage.d.ts +0 -23
  155. package/dist/services/jsonFileStorage.d.ts.map +0 -1
  156. package/dist/services/jsonFileStorage.js +0 -113
  157. package/dist/services/jsonLogger.d.ts +0 -11
  158. package/dist/services/jsonLogger.d.ts.map +0 -1
  159. package/dist/services/jsonLogger.js +0 -70
  160. package/dist/services/nodeTimeoutScheduler.d.ts +0 -13
  161. package/dist/services/nodeTimeoutScheduler.d.ts.map +0 -1
  162. package/dist/services/nodeTimeoutScheduler.js +0 -35
  163. package/dist/services/responseProcessingQueue.d.ts +0 -12
  164. package/dist/services/responseProcessingQueue.d.ts.map +0 -1
  165. package/dist/services/responseProcessingQueue.js +0 -41
  166. package/dist/services/telegramApi.d.ts +0 -23
  167. package/dist/services/telegramApi.d.ts.map +0 -1
  168. package/dist/services/telegramApi.js +0 -137
  169. package/dist/types/action.d.ts +0 -14
  170. package/dist/types/action.d.ts.map +0 -1
  171. package/dist/types/action.js +0 -2
  172. package/dist/types/actionState.d.ts +0 -5
  173. package/dist/types/actionState.d.ts.map +0 -1
  174. package/dist/types/actionState.js +0 -2
  175. package/dist/types/cachedValueAccessor.d.ts +0 -2
  176. package/dist/types/cachedValueAccessor.d.ts.map +0 -1
  177. package/dist/types/cachedValueAccessor.js +0 -2
  178. package/dist/types/capture.d.ts +0 -24
  179. package/dist/types/capture.d.ts.map +0 -1
  180. package/dist/types/capture.js +0 -2
  181. package/dist/types/commandCondition.d.ts +0 -8
  182. package/dist/types/commandCondition.d.ts.map +0 -1
  183. package/dist/types/commandCondition.js +0 -2
  184. package/dist/types/commandTrigger.d.ts +0 -2
  185. package/dist/types/commandTrigger.d.ts.map +0 -1
  186. package/dist/types/commandTrigger.js +0 -2
  187. package/dist/types/externalAliases.d.ts +0 -11
  188. package/dist/types/externalAliases.d.ts.map +0 -1
  189. package/dist/types/externalAliases.js +0 -2
  190. package/dist/types/handlers.d.ts +0 -21
  191. package/dist/types/handlers.d.ts.map +0 -1
  192. package/dist/types/handlers.js +0 -2
  193. package/dist/types/inputFile.d.ts +0 -5
  194. package/dist/types/inputFile.d.ts.map +0 -1
  195. package/dist/types/inputFile.js +0 -2
  196. package/dist/types/logger.d.ts +0 -13
  197. package/dist/types/logger.d.ts.map +0 -1
  198. package/dist/types/logger.js +0 -2
  199. package/dist/types/messageSendingOptions.d.ts +0 -9
  200. package/dist/types/messageSendingOptions.d.ts.map +0 -1
  201. package/dist/types/messageSendingOptions.js +0 -2
  202. package/dist/types/messageTypes.d.ts +0 -20
  203. package/dist/types/messageTypes.d.ts.map +0 -1
  204. package/dist/types/messageTypes.js +0 -21
  205. package/dist/types/propertyProvider.d.ts +0 -8
  206. package/dist/types/propertyProvider.d.ts.map +0 -1
  207. package/dist/types/propertyProvider.js +0 -2
  208. package/dist/types/response.d.ts +0 -39
  209. package/dist/types/response.d.ts.map +0 -1
  210. package/dist/types/response.js +0 -12
  211. package/dist/types/scheduler.d.ts +0 -7
  212. package/dist/types/scheduler.d.ts.map +0 -1
  213. package/dist/types/scheduler.js +0 -2
  214. package/dist/types/storage.d.ts +0 -11
  215. package/dist/types/storage.d.ts.map +0 -1
  216. package/dist/types/storage.js +0 -2
  217. package/dist/types/timeValues.d.ts +0 -15
  218. package/dist/types/timeValues.d.ts.map +0 -1
  219. package/dist/types/timeValues.js +0 -2
  220. package/dist/types/trace.d.ts +0 -6
  221. package/dist/types/trace.d.ts.map +0 -1
  222. package/dist/types/trace.js +0 -2
@@ -1,68 +0,0 @@
1
- import { ScheduledAction } from '../../entities/actions/scheduledAction';
2
- import { ActionStateBase } from '../../entities/states/actionStateBase';
3
- import { IActionState } from '../../types/actionState';
4
- import { ScheduledHandler } from '../../types/handlers';
5
- import { ScheduledActionPropertyProvider } from '../../types/propertyProvider';
6
- import { Hours, HoursOfDay } from '../../types/timeValues';
7
- /**
8
- * Builder for `ScheduledAction` with state represented by `TActionState`
9
- */
10
- export declare class ScheduledActionBuilderWithState<TActionState extends IActionState> {
11
- private readonly name;
12
- private readonly cachedStateFactories;
13
- private readonly stateConstructor;
14
- private handler;
15
- private whitelistProvider;
16
- private activeProvider;
17
- private timeinHoursProvider;
18
- /**
19
- * Builder for `ScheduledAction` with state represented by `TActionState`
20
- * @param name Action name, will be used for logging and storage
21
- * @param stateConstructor Function that creates default state object
22
- */
23
- constructor(name: string, stateConstructor: () => TActionState);
24
- /**
25
- * Sets whitelist for this action.
26
- * @param chatIds Chat ids to execute in.
27
- */
28
- in(chatIds: number[]): this;
29
- /**
30
- * Defines time for scheduled item execution.
31
- * @param time Time of day (0 - 23) to execute action.
32
- */
33
- runAt(time: HoursOfDay): this;
34
- /** Defines action logic itself, will be executed on timer.
35
- * @param handler Callback that will be called on timer.
36
- */
37
- do(handler: ScheduledHandler<TActionState>): this;
38
- /**
39
- * Defines process-wide cache, that is shared by all actions of this type (even in different bot instances).
40
- * Can be used for fetch request de-duping, etc.
41
- * @param key Key that will be used to retrieve value from cache.
42
- * @param itemFactory Callback that will be executed once to create cached value.
43
- * @param invalidationTimeoutInHours Timeout for cache invalidation.
44
- */
45
- withSharedCache(key: string, itemFactory: () => Promise<unknown>, invalidationTimeoutInHours?: Hours): this;
46
- /** If called during building, action is marked as disabled and never checked. */
47
- disabled(): this;
48
- /**
49
- * Configures action to use property value providers instead of static value to allow changes in runtime
50
- */
51
- withConfiguration(configuration: {
52
- timeinHoursProvider?: ScheduledActionPropertyProvider<HoursOfDay>;
53
- isActiveProvider?: ScheduledActionPropertyProvider<boolean>;
54
- chatsWhitelistProvider?: ScheduledActionPropertyProvider<number[]>;
55
- }): this;
56
- /** Builds action */
57
- build(): ScheduledAction<TActionState>;
58
- }
59
- /**
60
- * Builder for `ScheduledAction` with state represented by default state (containing only last execution date).
61
- */
62
- export declare class ScheduledActionBuilder extends ScheduledActionBuilderWithState<ActionStateBase> {
63
- /**
64
- * Builder for `ScheduledAction` with state represented by default state (containing only last execution date).
65
- */
66
- constructor(name: string);
67
- }
68
- //# sourceMappingURL=scheduledActionBuilder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scheduledActionBuilder.d.ts","sourceRoot":"","sources":["../../../helpers/builders/scheduledActionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAG3D;;GAEG;AACH,qBAAa,+BAA+B,CACxC,YAAY,SAAS,YAAY;IAEjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAGjC;IACJ,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqB;IACtD,OAAO,CAAC,OAAO,CAA6C;IAE5D,OAAO,CAAC,iBAAiB,CACZ;IACb,OAAO,CAAC,cAAc,CACb;IACT,OAAO,CAAC,mBAAmB,CACf;IAEZ;;;;OAIG;gBACS,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,YAAY;IAK9D;;;OAGG;IACH,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE;IAMpB;;;OAGG;IACH,KAAK,CAAC,IAAI,EAAE,UAAU;IAMtB;;OAEG;IACH,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC,YAAY,CAAC;IAM1C;;;;;;OAMG;IACH,eAAe,CACX,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EACnC,0BAA0B,GAAE,KAAmB;IAUnD,iFAAiF;IACjF,QAAQ;IAMR;;OAEG;IACH,iBAAiB,CAAC,aAAa,EAAE;QAC7B,mBAAmB,CAAC,EAAE,+BAA+B,CAAC,UAAU,CAAC,CAAC;QAClE,gBAAgB,CAAC,EAAE,+BAA+B,CAAC,OAAO,CAAC,CAAC;QAC5D,sBAAsB,CAAC,EAAE,+BAA+B,CAAC,MAAM,EAAE,CAAC,CAAC;KACtE;IAaD,oBAAoB;IACpB,KAAK;CAaR;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,+BAA+B,CAAC,eAAe,CAAC;IACxF;;OAEG;gBACS,IAAI,EAAE,MAAM;CAG3B"}
@@ -1,100 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ScheduledActionBuilder = exports.ScheduledActionBuilderWithState = void 0;
4
- const scheduledAction_1 = require("../../entities/actions/scheduledAction");
5
- const cachedStateFactory_1 = require("../../entities/cachedStateFactory");
6
- const actionStateBase_1 = require("../../entities/states/actionStateBase");
7
- const noop_1 = require("../noop");
8
- /**
9
- * Builder for `ScheduledAction` with state represented by `TActionState`
10
- */
11
- class ScheduledActionBuilderWithState {
12
- name;
13
- cachedStateFactories = new Map();
14
- stateConstructor;
15
- handler = noop_1.Noop.call;
16
- whitelistProvider = () => [];
17
- activeProvider = () => true;
18
- timeinHoursProvider = () => 0;
19
- /**
20
- * Builder for `ScheduledAction` with state represented by `TActionState`
21
- * @param name Action name, will be used for logging and storage
22
- * @param stateConstructor Function that creates default state object
23
- */
24
- constructor(name, stateConstructor) {
25
- this.name = name;
26
- this.stateConstructor = stateConstructor;
27
- }
28
- /**
29
- * Sets whitelist for this action.
30
- * @param chatIds Chat ids to execute in.
31
- */
32
- in(chatIds) {
33
- this.whitelistProvider = () => chatIds;
34
- return this;
35
- }
36
- /**
37
- * Defines time for scheduled item execution.
38
- * @param time Time of day (0 - 23) to execute action.
39
- */
40
- runAt(time) {
41
- this.timeinHoursProvider = () => time;
42
- return this;
43
- }
44
- /** Defines action logic itself, will be executed on timer.
45
- * @param handler Callback that will be called on timer.
46
- */
47
- do(handler) {
48
- this.handler = handler;
49
- return this;
50
- }
51
- /**
52
- * Defines process-wide cache, that is shared by all actions of this type (even in different bot instances).
53
- * Can be used for fetch request de-duping, etc.
54
- * @param key Key that will be used to retrieve value from cache.
55
- * @param itemFactory Callback that will be executed once to create cached value.
56
- * @param invalidationTimeoutInHours Timeout for cache invalidation.
57
- */
58
- withSharedCache(key, itemFactory, invalidationTimeoutInHours = 20) {
59
- this.cachedStateFactories.set(key, new cachedStateFactory_1.CachedStateFactory(itemFactory, invalidationTimeoutInHours));
60
- return this;
61
- }
62
- /** If called during building, action is marked as disabled and never checked. */
63
- disabled() {
64
- this.activeProvider = () => false;
65
- return this;
66
- }
67
- /**
68
- * Configures action to use property value providers instead of static value to allow changes in runtime
69
- */
70
- withConfiguration(configuration) {
71
- if (configuration.chatsWhitelistProvider)
72
- this.whitelistProvider = configuration.chatsWhitelistProvider;
73
- if (configuration.timeinHoursProvider)
74
- this.timeinHoursProvider = configuration.timeinHoursProvider;
75
- if (configuration.isActiveProvider)
76
- this.activeProvider = configuration.isActiveProvider;
77
- return this;
78
- }
79
- /** Builds action */
80
- build() {
81
- return new scheduledAction_1.ScheduledAction(this.name, this.handler, {
82
- chatsWhitelistProvider: this.whitelistProvider,
83
- isActiveProvider: this.activeProvider,
84
- timeinHoursProvider: this.timeinHoursProvider
85
- }, this.cachedStateFactories, this.stateConstructor);
86
- }
87
- }
88
- exports.ScheduledActionBuilderWithState = ScheduledActionBuilderWithState;
89
- /**
90
- * Builder for `ScheduledAction` with state represented by default state (containing only last execution date).
91
- */
92
- class ScheduledActionBuilder extends ScheduledActionBuilderWithState {
93
- /**
94
- * Builder for `ScheduledAction` with state represented by default state (containing only last execution date).
95
- */
96
- constructor(name) {
97
- super(name, () => new actionStateBase_1.ActionStateBase());
98
- }
99
- }
100
- exports.ScheduledActionBuilder = ScheduledActionBuilder;
@@ -1,10 +0,0 @@
1
- type KeyedReadonlyCollection<K, V> = {
2
- get: (key: K) => V | undefined;
3
- };
4
- type KeyedWriteableCollection<K, V> = KeyedReadonlyCollection<K, V> & {
5
- set: (key: K, value: V) => KeyedWriteableCollection<K, V>;
6
- };
7
- export declare function getOrSetIfNotExists<K, V>(map: KeyedWriteableCollection<K, V>, key: K, fallback: V): V;
8
- export declare function getOrThrow<K, V>(map: KeyedReadonlyCollection<K, V>, key: K, error?: string): NonNullable<V>;
9
- export {};
10
- //# sourceMappingURL=mapUtils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mapUtils.d.ts","sourceRoot":"","sources":["../../helpers/mapUtils.ts"],"names":[],"mappings":"AAAA,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI;IAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;CAAE,CAAC;AACxE,KAAK,wBAAwB,CAAC,CAAC,EAAE,CAAC,IAAI,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;IAClE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAC7D,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,EACpC,GAAG,EAAE,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,EACnC,GAAG,EAAE,CAAC,EACN,QAAQ,EAAE,CAAC,KAQd;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,EAC3B,GAAG,EAAE,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,EAClC,GAAG,EAAE,CAAC,EACN,KAAK,GAAE,MAAsC,kBAMhD"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getOrSetIfNotExists = getOrSetIfNotExists;
4
- exports.getOrThrow = getOrThrow;
5
- function getOrSetIfNotExists(map, key, fallback) {
6
- const existingValue = map.get(key);
7
- if (existingValue)
8
- return existingValue;
9
- map.set(key, fallback);
10
- return fallback;
11
- }
12
- function getOrThrow(map, key, error = 'Key not found in collection') {
13
- const existingValue = map.get(key);
14
- if (existingValue)
15
- return existingValue;
16
- throw new Error(error);
17
- }
@@ -1,9 +0,0 @@
1
- import { BotResponse } from '../types/response';
2
- export declare class Noop {
3
- static readonly NoResponse: BotResponse[];
4
- static true(arg1: unknown): boolean;
5
- static false(arg1: unknown): boolean;
6
- static emptyString(): string;
7
- static call(arg1: unknown): Promise<void>;
8
- }
9
- //# sourceMappingURL=noop.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"noop.d.ts","sourceRoot":"","sources":["../../helpers/noop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD,qBAAa,IAAI;IACb,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAAM;IAC/C,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO;IAGzB,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO;IAG1B,MAAM,CAAC,WAAW;WAGL,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAIlD"}
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Noop = void 0;
4
- /* eslint-disable @typescript-eslint/no-unused-vars */
5
- // eslint-disable-next-line @typescript-eslint/no-extraneous-class
6
- class Noop {
7
- static NoResponse = [];
8
- static true(arg1) {
9
- return true;
10
- }
11
- static false(arg1) {
12
- return false;
13
- }
14
- static emptyString() {
15
- return '';
16
- }
17
- static async call(arg1, arg2) {
18
- return Promise.resolve();
19
- }
20
- }
21
- exports.Noop = Noop;
@@ -1,2 +0,0 @@
1
- export declare const typeSafeObjectFromEntries: <const T extends ReadonlyArray<readonly [PropertyKey, unknown]>>(entries: T) => { [K in T[number] as K[0]]: K[1]; };
2
- //# sourceMappingURL=objectFromEntries.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"objectFromEntries.d.ts","sourceRoot":"","sources":["../../helpers/objectFromEntries.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,GAClC,KAAK,CAAC,CAAC,SAAS,aAAa,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,EAE9D,SAAS,CAAC,KACX,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAElC,CAAC"}
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.typeSafeObjectFromEntries = void 0;
4
- const typeSafeObjectFromEntries = (entries) => {
5
- return Object.fromEntries(entries);
6
- };
7
- exports.typeSafeObjectFromEntries = typeSafeObjectFromEntries;
@@ -1,5 +0,0 @@
1
- import { Hours, Milliseconds, Seconds } from '../types/timeValues';
2
- export declare function secondsToMilliseconds(value: Seconds): Milliseconds;
3
- export declare function hoursToMilliseconds(value: Hours): Milliseconds;
4
- export declare function hoursToSeconds(value: Hours): Seconds;
5
- //# sourceMappingURL=timeConvertions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"timeConvertions.d.ts","sourceRoot":"","sources":["../../helpers/timeConvertions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAElE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,CAE9D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAEpD"}
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.secondsToMilliseconds = secondsToMilliseconds;
4
- exports.hoursToMilliseconds = hoursToMilliseconds;
5
- exports.hoursToSeconds = hoursToSeconds;
6
- function secondsToMilliseconds(value) {
7
- return (value * 1000);
8
- }
9
- function hoursToMilliseconds(value) {
10
- return (value * 60 * 60 * 1000);
11
- }
12
- function hoursToSeconds(value) {
13
- return (value * 60 * 60);
14
- }
@@ -1,2 +0,0 @@
1
- export declare function toArray<TType>(value: TType | TType[]): TType[];
2
- //# sourceMappingURL=toArray.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toArray.d.ts","sourceRoot":"","sources":["../../helpers/toArray.ts"],"names":[],"mappings":"AAAA,wBAAgB,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,WAEpD"}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toArray = toArray;
4
- function toArray(value) {
5
- return Array.isArray(value) ? value : [value];
6
- }
@@ -1,3 +0,0 @@
1
- import { TraceId } from '../types/trace';
2
- export declare function createTrace(traceOwner: object | string, botName: string, traceName: string): TraceId;
3
- //# sourceMappingURL=traceFactory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"traceFactory.d.ts","sourceRoot":"","sources":["../../helpers/traceFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,wBAAgB,WAAW,CACvB,UAAU,EAAE,MAAM,GAAG,MAAM,EAC3B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAIa,OAAO,CACxC"}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createTrace = createTrace;
4
- function createTrace(traceOwner, botName, traceName) {
5
- return `${typeof traceOwner == 'string' ? traceOwner : traceOwner.constructor.name}:${botName}-${traceName}`;
6
- }
package/dist/index.d.ts DELETED
@@ -1,24 +0,0 @@
1
- export * from './main';
2
- export * from './helpers/builders/inlineQueryActionBuilder';
3
- export * from './helpers/builders/commandActionBuilder';
4
- export * from './helpers/builders/scheduledActionBuilder';
5
- export * from './types/actionState';
6
- export * from './entities/states/actionStateBase';
7
- export * from './types/messageTypes';
8
- export * from './helpers/timeConvertions';
9
- export * from './types/action';
10
- export * from './types/externalAliases';
11
- export { CommandAction } from './entities/actions/commandAction';
12
- export { InlineQueryAction } from './entities/actions/inlineQueryAction';
13
- export { ReplyCaptureAction } from './entities/actions/replyCaptureAction';
14
- export { ScheduledAction } from './entities/actions/scheduledAction';
15
- export { Hours, Milliseconds, Seconds } from './types/timeValues';
16
- export { ChatContext } from './entities/context/chatContext';
17
- export { InlineQueryContext } from './entities/context/inlineQueryContext';
18
- export { MessageContext } from './entities/context/messageContext';
19
- export { ReplyContext } from './entities/context/replyContext';
20
- export { ICaptureController } from './types/capture';
21
- export { ChatInfo } from './dtos/chatInfo';
22
- export { MessageInfo } from './dtos/messageInfo';
23
- export { UserInfo } from './dtos/userInfo';
24
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,6CAA6C,CAAC;AAC5D,cAAc,yCAAyC,CAAC;AACxD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,qBAAqB,CAAC;AACpC,cAAc,mCAAmC,CAAC;AAClD,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/index.js DELETED
@@ -1,41 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.UserInfo = exports.MessageInfo = exports.ChatInfo = exports.ScheduledAction = exports.ReplyCaptureAction = exports.InlineQueryAction = exports.CommandAction = void 0;
18
- __exportStar(require("./main"), exports);
19
- __exportStar(require("./helpers/builders/inlineQueryActionBuilder"), exports);
20
- __exportStar(require("./helpers/builders/commandActionBuilder"), exports);
21
- __exportStar(require("./helpers/builders/scheduledActionBuilder"), exports);
22
- __exportStar(require("./types/actionState"), exports);
23
- __exportStar(require("./entities/states/actionStateBase"), exports);
24
- __exportStar(require("./types/messageTypes"), exports);
25
- __exportStar(require("./helpers/timeConvertions"), exports);
26
- __exportStar(require("./types/action"), exports);
27
- __exportStar(require("./types/externalAliases"), exports);
28
- var commandAction_1 = require("./entities/actions/commandAction");
29
- Object.defineProperty(exports, "CommandAction", { enumerable: true, get: function () { return commandAction_1.CommandAction; } });
30
- var inlineQueryAction_1 = require("./entities/actions/inlineQueryAction");
31
- Object.defineProperty(exports, "InlineQueryAction", { enumerable: true, get: function () { return inlineQueryAction_1.InlineQueryAction; } });
32
- var replyCaptureAction_1 = require("./entities/actions/replyCaptureAction");
33
- Object.defineProperty(exports, "ReplyCaptureAction", { enumerable: true, get: function () { return replyCaptureAction_1.ReplyCaptureAction; } });
34
- var scheduledAction_1 = require("./entities/actions/scheduledAction");
35
- Object.defineProperty(exports, "ScheduledAction", { enumerable: true, get: function () { return scheduledAction_1.ScheduledAction; } });
36
- var chatInfo_1 = require("./dtos/chatInfo");
37
- Object.defineProperty(exports, "ChatInfo", { enumerable: true, get: function () { return chatInfo_1.ChatInfo; } });
38
- var messageInfo_1 = require("./dtos/messageInfo");
39
- Object.defineProperty(exports, "MessageInfo", { enumerable: true, get: function () { return messageInfo_1.MessageInfo; } });
40
- var userInfo_1 = require("./dtos/userInfo");
41
- Object.defineProperty(exports, "UserInfo", { enumerable: true, get: function () { return userInfo_1.UserInfo; } });
package/dist/main.d.ts DELETED
@@ -1,52 +0,0 @@
1
- import { IStorageClient } from './types/storage';
2
- import { CommandAction } from './entities/actions/commandAction';
3
- import { ScheduledAction } from './entities/actions/scheduledAction';
4
- import { BotInstance } from './entities/botInstance';
5
- import { Seconds } from './types/timeValues';
6
- import { IScheduler } from './types/scheduler';
7
- import { ILogger } from './types/logger';
8
- import { InlineQueryAction } from './entities/actions/inlineQueryAction';
9
- import { IActionState } from './types/actionState';
10
- declare class BotOrchestrator {
11
- bots: BotInstance[];
12
- /**
13
- * Starts bot
14
- */
15
- startBot(options: {
16
- /** Bot name, used in logging */
17
- name: string;
18
- /** Path to file containing Telegram Bot token. */
19
- tokenFilePath: string;
20
- actions: {
21
- /** Collection of actions that will be executed as a response to message from used. Created using `CommandActionBuilder`.*/
22
- commands: CommandAction<IActionState>[];
23
- /** Collection of actions that will be executed on timer. Created using `ScheduledActionBuilder`.*/
24
- scheduled: ScheduledAction<IActionState>[];
25
- /** Collection of actions that will handle inline queries */
26
- inlineQueries: InlineQueryAction[];
27
- };
28
- /** Object containing chat name and chat id pairs. Used for logging and execution of scheduled action. */
29
- chats: Record<string, number>;
30
- /** Storage path for default `JsonFileStorage` client. Will be used only if `storageClient` is not provided. If not provided, default value of `./storage/` will be used.*/
31
- storagePath?: string;
32
- /** Period of time between execution of scheduled actions. */
33
- scheduledPeriod?: Seconds;
34
- /** If true, telegram API objects will be logged instead of message content. */
35
- verboseLoggingForIncomingMessage?: boolean;
36
- services?: {
37
- /** Storage client for bot state storage. If not provided, default `JsonFileStorage` will be used. */
38
- storageClient?: IStorageClient;
39
- /** Logger client for bot logging. If not provided, default `JsonFileStorage` will be used. */
40
- logger?: ILogger;
41
- /** Scheduler client for bot scheduling. If not provided, default `NodeTimeoutScheduler` will be used. */
42
- scheduler?: IScheduler;
43
- };
44
- }): Promise<BotInstance>;
45
- /**
46
- * Terminates all scheduled tasks, closes storage connections and stops all bots.
47
- */
48
- stopBots(): Promise<void>;
49
- }
50
- export declare const botOrchestrator: BotOrchestrator;
51
- export {};
52
- //# sourceMappingURL=main.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../main.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,cAAM,eAAe;IACjB,IAAI,EAAE,WAAW,EAAE,CAAM;IAEzB;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE;QACpB,gCAAgC;QAChC,IAAI,EAAE,MAAM,CAAC;QACb,kDAAkD;QAClD,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,EAAE;YACL,2HAA2H;YAC3H,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;YACxC,mGAAmG;YACnG,SAAS,EAAE,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;YAC3C,4DAA4D;YAC5D,aAAa,EAAE,iBAAiB,EAAE,CAAC;SACtC,CAAC;QACF,yGAAyG;QACzG,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9B,2KAA2K;QAC3K,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,6DAA6D;QAC7D,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,+EAA+E;QAC/E,gCAAgC,CAAC,EAAE,OAAO,CAAC;QAC3C,QAAQ,CAAC,EAAE;YACP,qGAAqG;YACrG,aAAa,CAAC,EAAE,cAAc,CAAC;YAC/B,8FAA8F;YAC9F,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,yGAAyG;YACzG,SAAS,CAAC,EAAE,UAAU,CAAC;SAC1B,CAAC;KACL;IA0BD;;OAEG;IACG,QAAQ;CAKjB;AAED,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
package/dist/main.js DELETED
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.botOrchestrator = void 0;
4
- const promises_1 = require("fs/promises");
5
- const botInstance_1 = require("./entities/botInstance");
6
- class BotOrchestrator {
7
- bots = [];
8
- /**
9
- * Starts bot
10
- */
11
- async startBot(options) {
12
- const token = await (0, promises_1.readFile)(options.tokenFilePath, 'utf8');
13
- const bot = new botInstance_1.BotInstance({
14
- name: options.name,
15
- actions: options.actions,
16
- chats: options.chats,
17
- services: {
18
- storageClient: options.services?.storageClient,
19
- logger: options.services?.logger,
20
- scheduler: options.services?.scheduler
21
- },
22
- storagePath: options.storagePath
23
- });
24
- await bot.start(token, options.actions, options.scheduledPeriod, options.verboseLoggingForIncomingMessage);
25
- this.bots.push(bot);
26
- return bot;
27
- }
28
- /**
29
- * Terminates all scheduled tasks, closes storage connections and stops all bots.
30
- */
31
- async stopBots() {
32
- for (const bot of this.bots) {
33
- await bot.stop();
34
- }
35
- }
36
- }
37
- exports.botOrchestrator = new BotOrchestrator();
@@ -1,25 +0,0 @@
1
- import { Seconds } from '../types/timeValues';
2
- import { ILogger } from '../types/logger';
3
- import { IScheduler } from '../types/scheduler';
4
- import { IStorageClient } from '../types/storage';
5
- import { InlineQueryAction } from '../entities/actions/inlineQueryAction';
6
- import { IActionState } from '../types/actionState';
7
- import { CommandAction } from '../entities/actions/commandAction';
8
- import { ScheduledAction } from '../entities/actions/scheduledAction';
9
- export declare class ActionProcessingService {
10
- private readonly storage;
11
- private readonly logger;
12
- private readonly commandProcessor;
13
- private readonly scheduledProcessor;
14
- private readonly inlineQueryProcessor;
15
- private readonly botName;
16
- private telegramBot;
17
- constructor(botName: string, chats: Record<string, number>, storage: IStorageClient, scheduler: IScheduler, logger: ILogger);
18
- initialize(token: string, actions: {
19
- commands: CommandAction<IActionState>[];
20
- scheduled: ScheduledAction<IActionState>[];
21
- inlineQueries: InlineQueryAction[];
22
- }, scheduledPeriod?: Seconds, verboseLoggingForIncomingMessage?: boolean): Promise<void>;
23
- stop(): void;
24
- }
25
- //# sourceMappingURL=actionProcessingService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"actionProcessingService.d.ts","sourceRoot":"","sources":["../../services/actionProcessingService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAuB,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAQtE,qBAAa,uBAAuB;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAEjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAyB;IAC1D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA2B;IAC9D,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA6B;IAElE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,OAAO,CAAC,WAAW,CAAe;gBAG9B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,UAAU,EACrB,MAAM,EAAE,OAAO;IA4Bb,UAAU,CACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;QACL,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;QACxC,SAAS,EAAE,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3C,aAAa,EAAE,iBAAiB,EAAE,CAAC;KACtC,EACD,eAAe,CAAC,EAAE,OAAO,EACzB,gCAAgC,CAAC,EAAE,OAAO;IA2D9C,IAAI;CAGP"}
@@ -1,54 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ActionProcessingService = void 0;
4
- const timeConvertions_1 = require("../helpers/timeConvertions");
5
- const telegramApi_1 = require("./telegramApi");
6
- const helpAction_1 = require("../builtin/helpAction");
7
- const commandActionProcessor_1 = require("./actionProcessors/commandActionProcessor");
8
- const inlineQueryActionProcessor_1 = require("./actionProcessors/inlineQueryActionProcessor");
9
- const scheduledActionProcessor_1 = require("./actionProcessors/scheduledActionProcessor");
10
- const telegraf_1 = require("telegraf");
11
- class ActionProcessingService {
12
- storage;
13
- logger;
14
- commandProcessor;
15
- scheduledProcessor;
16
- inlineQueryProcessor;
17
- botName;
18
- telegramBot;
19
- constructor(botName, chats, storage, scheduler, logger) {
20
- this.storage = storage;
21
- this.logger = logger;
22
- this.commandProcessor = new commandActionProcessor_1.CommandActionProcessor(botName, storage, scheduler, logger);
23
- this.scheduledProcessor = new scheduledActionProcessor_1.ScheduledActionProcessor(botName, chats, storage, scheduler, logger);
24
- this.inlineQueryProcessor = new inlineQueryActionProcessor_1.InlineQueryActionProcessor(botName, storage, scheduler, logger);
25
- this.botName = botName;
26
- }
27
- async initialize(token, actions, scheduledPeriod, verboseLoggingForIncomingMessage) {
28
- this.telegramBot = new telegraf_1.Telegraf(token);
29
- const api = new telegramApi_1.TelegramApiService(this.botName, this.telegramBot.telegram, this.storage, this.logger, (capture, id, chatInfo, traceId) => {
30
- this.commandProcessor.captureRegistrationCallback(capture, id, chatInfo, traceId);
31
- });
32
- const botInfo = await this.telegramBot.telegram.getMe();
33
- const commandActions = actions.commands.length > 0 && botInfo.username
34
- ? [
35
- (0, helpAction_1.buildHelpCommand)(actions.commands
36
- .map((x) => x.readmeFactory(botInfo.username))
37
- .filter((x) => !!x), botInfo.username),
38
- ...actions.commands
39
- ]
40
- : [];
41
- this.commandProcessor.initialize(api, this.telegramBot, commandActions, verboseLoggingForIncomingMessage ?? false, botInfo);
42
- this.inlineQueryProcessor.initialize(api, this.telegramBot, actions.inlineQueries, 300);
43
- this.scheduledProcessor.initialize(api, actions.scheduled, scheduledPeriod ?? (0, timeConvertions_1.hoursToSeconds)(1));
44
- void this.telegramBot.launch();
45
- void this.storage.saveMetadata([
46
- ...actions.scheduled,
47
- ...commandActions
48
- ]);
49
- }
50
- stop() {
51
- this.telegramBot.stop();
52
- }
53
- }
54
- exports.ActionProcessingService = ActionProcessingService;
@@ -1,18 +0,0 @@
1
- import { ILogger } from '../../types/logger';
2
- import { IScheduler } from '../../types/scheduler';
3
- import { IStorageClient } from '../../types/storage';
4
- import { TelegramApiService } from '../telegramApi';
5
- import { IAction } from '../../types/action';
6
- import { BaseContextInternal } from '../../entities/context/baseContext';
7
- export declare abstract class BaseActionProcessor {
8
- protected readonly storage: IStorageClient;
9
- protected readonly scheduler: IScheduler;
10
- protected readonly logger: ILogger;
11
- protected readonly botName: string;
12
- protected api: TelegramApiService;
13
- constructor(botName: string, storage: IStorageClient, scheduler: IScheduler, logger: ILogger);
14
- private defaultErrorHandler;
15
- initializeDependencies(api: TelegramApiService): void;
16
- executeAction<TAction extends IAction, TActionContext extends BaseContextInternal<TAction>>(action: TAction, ctx: TActionContext, errorHandler?: (error: Error, ctx: TActionContext) => void): Promise<void>;
17
- }
18
- //# sourceMappingURL=baseProcessor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"baseProcessor.d.ts","sourceRoot":"","sources":["../../../services/actionProcessors/baseProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,8BAAsB,mBAAmB;IACrC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IAC3C,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IACzC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEnC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEnC,SAAS,CAAC,GAAG,EAAG,kBAAkB,CAAC;gBAG/B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,UAAU,EACrB,MAAM,EAAE,OAAO;IASnB,OAAO,CAAC,mBAAmB;IAO3B,sBAAsB,CAAC,GAAG,EAAE,kBAAkB;IAIxC,aAAa,CACf,OAAO,SAAS,OAAO,EACvB,cAAc,SAAS,mBAAmB,CAAC,OAAO,CAAC,EAEnD,MAAM,EAAE,OAAO,EACf,GAAG,EAAE,cAAc,EACnB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI;CAUjE"}
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseActionProcessor = void 0;
4
- class BaseActionProcessor {
5
- storage;
6
- scheduler;
7
- logger;
8
- botName;
9
- api;
10
- constructor(botName, storage, scheduler, logger) {
11
- this.storage = storage;
12
- this.scheduler = scheduler;
13
- this.logger = logger;
14
- this.botName = botName;
15
- }
16
- defaultErrorHandler(error, ctx) {
17
- ctx.logger.errorWithTraceId(error, ctx);
18
- }
19
- initializeDependencies(api) {
20
- this.api = api;
21
- }
22
- async executeAction(action, ctx, errorHandler) {
23
- try {
24
- const responses = await action.exec(ctx);
25
- this.api.enqueueBatchedResponses(responses);
26
- ctx.isInitialized = false;
27
- }
28
- catch (error) {
29
- (errorHandler ?? this.defaultErrorHandler)(error, ctx);
30
- }
31
- }
32
- }
33
- exports.BaseActionProcessor = BaseActionProcessor;