chz-telegram-bot 0.0.14 → 0.0.16

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 (122) hide show
  1. package/dist/entities/actionExecutionResult.d.ts +7 -0
  2. package/dist/entities/actionExecutionResult.d.ts.map +1 -0
  3. package/dist/entities/{transactionResult.js → actionExecutionResult.js} +3 -2
  4. package/dist/entities/actions/commandAction.d.ts +4 -4
  5. package/dist/entities/actions/commandAction.d.ts.map +1 -1
  6. package/dist/entities/actions/commandAction.js +12 -11
  7. package/dist/entities/actions/scheduledAction.d.ts +5 -5
  8. package/dist/entities/actions/scheduledAction.d.ts.map +1 -1
  9. package/dist/entities/actions/scheduledAction.js +10 -9
  10. package/dist/entities/{bot.d.ts → botInstance.d.ts} +5 -5
  11. package/dist/entities/botInstance.d.ts.map +1 -0
  12. package/dist/entities/{bot.js → botInstance.js} +18 -20
  13. package/dist/entities/cachedStateFactory.d.ts +1 -1
  14. package/dist/entities/cachedStateFactory.d.ts.map +1 -1
  15. package/dist/entities/cachedStateFactory.js +2 -1
  16. package/dist/entities/commandTriggerCheckResult.d.ts +1 -1
  17. package/dist/entities/commandTriggerCheckResult.d.ts.map +1 -1
  18. package/dist/entities/commandTriggerCheckResult.js +2 -1
  19. package/dist/entities/context/chatContext.d.ts +1 -1
  20. package/dist/entities/context/chatContext.d.ts.map +1 -1
  21. package/dist/entities/context/chatContext.js +8 -10
  22. package/dist/entities/context/messageContext.d.ts +3 -3
  23. package/dist/entities/context/messageContext.d.ts.map +1 -1
  24. package/dist/entities/context/messageContext.js +14 -16
  25. package/dist/entities/incomingMessage.d.ts +1 -1
  26. package/dist/entities/incomingMessage.d.ts.map +1 -1
  27. package/dist/entities/incomingMessage.js +2 -1
  28. package/dist/entities/responses/imageMessage.d.ts +2 -2
  29. package/dist/entities/responses/imageMessage.d.ts.map +1 -1
  30. package/dist/entities/responses/imageMessage.js +2 -1
  31. package/dist/entities/responses/reaction.d.ts +1 -1
  32. package/dist/entities/responses/reaction.d.ts.map +1 -1
  33. package/dist/entities/responses/reaction.js +2 -1
  34. package/dist/entities/responses/textMessage.d.ts +2 -2
  35. package/dist/entities/responses/textMessage.d.ts.map +1 -1
  36. package/dist/entities/responses/textMessage.js +2 -1
  37. package/dist/entities/responses/videoMessage.d.ts +2 -2
  38. package/dist/entities/responses/videoMessage.d.ts.map +1 -1
  39. package/dist/entities/responses/videoMessage.js +2 -1
  40. package/dist/entities/states/actionStateBase.d.ts +2 -2
  41. package/dist/entities/states/actionStateBase.d.ts.map +1 -1
  42. package/dist/entities/states/actionStateBase.js +2 -1
  43. package/dist/entities/taskRecord.d.ts +1 -1
  44. package/dist/entities/taskRecord.d.ts.map +1 -1
  45. package/dist/entities/taskRecord.js +2 -1
  46. package/dist/helpers/builders/commandActionBuilder.d.ts +3 -3
  47. package/dist/helpers/builders/commandActionBuilder.d.ts.map +1 -1
  48. package/dist/helpers/builders/commandActionBuilder.js +9 -12
  49. package/dist/helpers/builders/scheduledActionBuilder.d.ts +3 -3
  50. package/dist/helpers/builders/scheduledActionBuilder.d.ts.map +1 -1
  51. package/dist/helpers/builders/scheduledActionBuilder.js +8 -10
  52. package/dist/helpers/noop.d.ts +1 -2
  53. package/dist/helpers/noop.d.ts.map +1 -1
  54. package/dist/helpers/noop.js +2 -1
  55. package/dist/helpers/toArray.d.ts +1 -1
  56. package/dist/helpers/toArray.d.ts.map +1 -1
  57. package/dist/helpers/toArray.js +1 -1
  58. package/dist/index.d.ts +7 -14
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +19 -15
  61. package/dist/main.d.ts +5 -5
  62. package/dist/main.d.ts.map +1 -1
  63. package/dist/main.js +6 -9
  64. package/dist/services/jsonFileStorage.d.ts +5 -5
  65. package/dist/services/jsonFileStorage.d.ts.map +1 -1
  66. package/dist/services/jsonFileStorage.js +2 -1
  67. package/dist/services/logger.d.ts +3 -3
  68. package/dist/services/logger.d.ts.map +1 -1
  69. package/dist/services/logger.js +3 -2
  70. package/dist/services/taskScheduler.d.ts +3 -3
  71. package/dist/services/taskScheduler.d.ts.map +1 -1
  72. package/dist/services/taskScheduler.js +8 -10
  73. package/dist/services/telegramApi.d.ts +6 -6
  74. package/dist/services/telegramApi.d.ts.map +1 -1
  75. package/dist/services/telegramApi.js +17 -19
  76. package/dist/types/actionState.d.ts +1 -1
  77. package/dist/types/actionState.d.ts.map +1 -1
  78. package/dist/types/actionWithState.d.ts +2 -2
  79. package/dist/types/actionWithState.d.ts.map +1 -1
  80. package/dist/types/commandCondition.d.ts +2 -2
  81. package/dist/types/commandCondition.d.ts.map +1 -1
  82. package/dist/types/handlers.d.ts +3 -3
  83. package/dist/types/handlers.d.ts.map +1 -1
  84. package/dist/types/replyMessage.d.ts +1 -1
  85. package/dist/types/replyMessage.d.ts.map +1 -1
  86. package/dist/types/storage.d.ts +4 -4
  87. package/dist/types/storage.d.ts.map +1 -1
  88. package/entities/{transactionResult.ts → actionExecutionResult.ts} +2 -2
  89. package/entities/actions/commandAction.ts +10 -10
  90. package/entities/actions/scheduledAction.ts +13 -13
  91. package/entities/{bot.ts → botInstance.ts} +17 -17
  92. package/entities/cachedStateFactory.ts +1 -1
  93. package/entities/commandTriggerCheckResult.ts +1 -1
  94. package/entities/context/chatContext.ts +4 -4
  95. package/entities/context/messageContext.ts +8 -8
  96. package/entities/incomingMessage.ts +1 -1
  97. package/entities/responses/imageMessage.ts +2 -2
  98. package/entities/responses/reaction.ts +1 -1
  99. package/entities/responses/textMessage.ts +2 -2
  100. package/entities/responses/videoMessage.ts +2 -2
  101. package/entities/states/actionStateBase.ts +2 -2
  102. package/entities/taskRecord.ts +1 -1
  103. package/helpers/builders/commandActionBuilder.ts +5 -5
  104. package/helpers/builders/scheduledActionBuilder.ts +4 -4
  105. package/helpers/noop.ts +1 -3
  106. package/helpers/toArray.ts +1 -1
  107. package/index.ts +7 -30
  108. package/main.ts +9 -9
  109. package/package.json +1 -1
  110. package/services/jsonFileStorage.ts +6 -6
  111. package/services/logger.ts +2 -2
  112. package/services/taskScheduler.ts +6 -6
  113. package/services/telegramApi.ts +15 -15
  114. package/types/actionState.ts +1 -1
  115. package/types/actionWithState.ts +2 -2
  116. package/types/commandCondition.ts +2 -2
  117. package/types/handlers.ts +3 -3
  118. package/types/replyMessage.ts +1 -1
  119. package/types/storage.ts +4 -5
  120. package/dist/entities/bot.d.ts.map +0 -1
  121. package/dist/entities/transactionResult.d.ts +0 -7
  122. package/dist/entities/transactionResult.d.ts.map +0 -1
package/main.ts CHANGED
@@ -1,16 +1,16 @@
1
1
  import { readFile } from 'fs/promises';
2
- import BotInstance from './entities/bot.js';
3
- import taskScheduler from './services/taskScheduler.js';
4
- import logger from './services/logger.js';
5
- import CommandAction from './entities/actions/commandAction.js';
6
- import IActionState from './types/actionState.js';
7
- import ScheduledAction from './entities/actions/scheduledAction.js';
8
- import { IStorageClient } from './types/storage.js';
2
+ import { IStorageClient } from './types/storage';
3
+ import { Logger } from './services/logger';
4
+ import { CommandAction } from './entities/actions/commandAction';
5
+ import { ScheduledAction } from './entities/actions/scheduledAction';
6
+ import { IActionState } from './types/actionState';
7
+ import { Scheduler } from './services/taskScheduler';
8
+ import { BotInstance } from './entities/botInstance';
9
9
 
10
10
  const bots: BotInstance[] = [];
11
11
 
12
12
  function log(text: string) {
13
- logger.logWithTraceId('ALL BOTS', 'System:Bot', 'System', text);
13
+ Logger.logWithTraceId('ALL BOTS', 'System:Bot', 'System', text);
14
14
  }
15
15
 
16
16
  async function startBot(options: {
@@ -39,7 +39,7 @@ async function startBot(options: {
39
39
 
40
40
  async function stopBots(reason: string) {
41
41
  log(`Recieved termination code: ${reason}`);
42
- taskScheduler.stopAll();
42
+ Scheduler.stopAll();
43
43
  log('Acquiring storage semaphore...');
44
44
 
45
45
  log('Stopping bots...');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chz-telegram-bot",
3
- "version": "0.0.14",
3
+ "version": "0.0.16",
4
4
  "type": "module",
5
5
  "dependencies": {
6
6
  "async-sema": "^3.1.1",
@@ -1,14 +1,14 @@
1
1
  import { existsSync, mkdirSync } from 'fs';
2
2
  import { dirname } from 'path';
3
- import TransactionResult from '../entities/transactionResult';
4
3
  import { mkdir, readFile, writeFile } from 'fs/promises';
5
- import ActionStateBase from '../entities/states/actionStateBase';
6
- import IActionState from '../types/actionState';
7
- import IActionWithState from '../types/actionWithState';
8
4
  import { Sema as Semaphore } from 'async-sema';
9
5
  import { IStorageClient } from '../types/storage';
6
+ import { ActionStateBase } from '../entities/states/actionStateBase';
7
+ import { ActionExecutionResult } from '../entities/actionExecutionResult';
8
+ import { IActionState } from '../types/actionState';
9
+ import { IActionWithState } from '../types/actionWithState';
10
10
 
11
- export default class JsonFileStorage implements IStorageClient {
11
+ export class JsonFileStorage implements IStorageClient {
12
12
  semaphore = new Semaphore(1);
13
13
  private cache: Map<string, Record<number, IActionState>>;
14
14
  private storagePath: string;
@@ -105,7 +105,7 @@ export default class JsonFileStorage implements IStorageClient {
105
105
  async saveActionExecutionResult(
106
106
  action: IActionWithState,
107
107
  chatId: number,
108
- transactionResult: TransactionResult
108
+ transactionResult: ActionExecutionResult
109
109
  ) {
110
110
  await this.lock(async () => {
111
111
  const data = await this.loadInternal(action.key);
@@ -1,4 +1,4 @@
1
- class Logger {
1
+ class JsonLogger {
2
2
  logWithTraceId(
3
3
  botName: string,
4
4
  traceId: string | number,
@@ -27,4 +27,4 @@ class Logger {
27
27
  }
28
28
  }
29
29
 
30
- export default new Logger();
30
+ export const Logger = new JsonLogger();
@@ -1,7 +1,7 @@
1
- import TaskRecord from '../entities/taskRecord';
1
+ import { TaskRecord } from '../entities/taskRecord';
2
2
  import { secondsToMilliseconds } from '../helpers/timeConvertions';
3
3
  import { Milliseconds, Seconds } from '../types/timeValues';
4
- import logger from './logger';
4
+ import { Logger } from './logger';
5
5
 
6
6
  class TaskScheduler {
7
7
  activeTasks: TaskRecord[] = [];
@@ -27,7 +27,7 @@ class TaskScheduler {
27
27
  setTimeout(action, secondsToMilliseconds(1 as Seconds));
28
28
  }
29
29
 
30
- logger.logWithTraceId(
30
+ Logger.logWithTraceId(
31
31
  ownerName,
32
32
  `System:TaskScheduler-${ownerName}-${name}`,
33
33
  'System',
@@ -44,7 +44,7 @@ class TaskScheduler {
44
44
  ownerName: string
45
45
  ) {
46
46
  const actionWrapper = () => {
47
- logger.logWithTraceId(
47
+ Logger.logWithTraceId(
48
48
  ownerName,
49
49
  `System:TaskScheduler-${ownerName}-${name}`,
50
50
  'System',
@@ -54,7 +54,7 @@ class TaskScheduler {
54
54
  };
55
55
  const taskId = setTimeout(actionWrapper, delay);
56
56
 
57
- logger.logWithTraceId(
57
+ Logger.logWithTraceId(
58
58
  ownerName,
59
59
  `System:TaskScheduler-${ownerName}-${name}`,
60
60
  'System',
@@ -63,4 +63,4 @@ class TaskScheduler {
63
63
  }
64
64
  }
65
65
 
66
- export default new TaskScheduler();
66
+ export const Scheduler = new TaskScheduler();
@@ -1,20 +1,20 @@
1
- import MessageContext from '../entities/context/messageContext';
2
- import ChatContext from '../entities/context/chatContext';
3
- import ImageMessage from '../entities/responses/imageMessage';
4
- import TextMessage from '../entities/responses/textMessage';
5
- import VideoMessage from '../entities/responses/videoMessage';
6
- import taskScheduler from './taskScheduler';
7
- import logger from './logger';
8
1
  import { Telegraf } from 'telegraf';
9
- import IReplyMessage from '../types/replyMessage';
10
- import IncomingMessage from '../entities/incomingMessage';
11
- import { Milliseconds } from '../types/timeValues';
12
- import Reaction from '../entities/responses/reaction';
13
2
  import { InputFile } from 'telegraf/types';
3
+ import { ChatContext } from '../entities/context/chatContext';
4
+ import { MessageContext } from '../entities/context/messageContext';
5
+ import { ImageMessage } from '../entities/responses/imageMessage';
6
+ import { TextMessage } from '../entities/responses/textMessage';
7
+ import { VideoMessage } from '../entities/responses/videoMessage';
14
8
  import { reverseMap } from '../helpers/reverseMap';
9
+ import { IReplyMessage } from '../types/replyMessage';
15
10
  import { IStorageClient } from '../types/storage';
11
+ import { Milliseconds } from '../types/timeValues';
12
+ import { Scheduler } from './taskScheduler';
13
+ import { Logger } from './logger';
14
+ import { Reaction } from '../entities/responses/reaction';
15
+ import { IncomingMessage } from '../entities/incomingMessage';
16
16
 
17
- export default class TelegramApiService {
17
+ export class TelegramApiService {
18
18
  botName: string;
19
19
  telegraf: Telegraf;
20
20
  chats: Map<number, string>;
@@ -32,7 +32,7 @@ export default class TelegramApiService {
32
32
  this.chats = reverseMap(chats);
33
33
  this.storage = storage;
34
34
 
35
- taskScheduler.createTask(
35
+ Scheduler.createTask(
36
36
  'MessageSending',
37
37
  () => {
38
38
  this.dequeueResponse();
@@ -51,7 +51,7 @@ export default class TelegramApiService {
51
51
  try {
52
52
  await this.processResponse(message);
53
53
  } catch (error) {
54
- logger.errorWithTraceId(
54
+ Logger.errorWithTraceId(
55
55
  this.botName,
56
56
  message.traceId,
57
57
  this.chats.get(message.chatId)!,
@@ -114,7 +114,7 @@ export default class TelegramApiService {
114
114
  );
115
115
  break;
116
116
  default:
117
- logger.errorWithTraceId(
117
+ Logger.errorWithTraceId(
118
118
  this.botName,
119
119
  response.traceId,
120
120
  this.chats.get(response.chatId)!,
@@ -1,3 +1,3 @@
1
- export default interface IActionState {
1
+ export interface IActionState {
2
2
  lastExecutedDate: number;
3
3
  }
@@ -1,6 +1,6 @@
1
- import IActionState from './actionState';
1
+ import { IActionState } from './actionState';
2
2
 
3
- export default interface IActionWithState {
3
+ export interface IActionWithState {
4
4
  key: string;
5
5
  stateConstructor: () => IActionState;
6
6
  }
@@ -1,5 +1,5 @@
1
- import MessageContext from '../entities/context/messageContext';
2
- import IActionState from './actionState';
1
+ import { MessageContext } from '../entities/context/messageContext';
2
+ import { IActionState } from './actionState';
3
3
 
4
4
  export type CommandCondition<TActionState extends IActionState> = (
5
5
  ctx: MessageContext<TActionState>
package/types/handlers.ts CHANGED
@@ -1,6 +1,6 @@
1
- import ChatContext from '../entities/context/chatContext';
2
- import MessageContext from '../entities/context/messageContext';
3
- import IActionState from './actionState';
1
+ import { ChatContext } from '../entities/context/chatContext';
2
+ import { MessageContext } from '../entities/context/messageContext';
3
+ import { IActionState } from './actionState';
4
4
  import { CachedValueAccessor } from './cachedValueAccessor';
5
5
 
6
6
  export type CommandHandler<TActionState extends IActionState> = (
@@ -1,4 +1,4 @@
1
- export default interface IReplyMessage<TType> {
1
+ export interface IReplyMessage<TType> {
2
2
  content: TType;
3
3
  chatId: number;
4
4
  replyId: number | undefined;
package/types/storage.ts CHANGED
@@ -1,7 +1,6 @@
1
- import ActionStateBase from '../entities/states/actionStateBase';
2
- import TransactionResult from '../entities/transactionResult';
3
- import IActionState from './actionState';
4
- import IActionWithState from './actionWithState';
1
+ import { ActionExecutionResult } from '../entities/actionExecutionResult';
2
+ import { IActionState } from './actionState';
3
+ import { IActionWithState } from './actionWithState';
5
4
 
6
5
  export interface IStorageClient {
7
6
  close(): Promise<void>;
@@ -16,6 +15,6 @@ export interface IStorageClient {
16
15
  saveActionExecutionResult(
17
16
  action: IActionWithState,
18
17
  chatId: number,
19
- transactionResult: TransactionResult
18
+ transactionResult: ActionExecutionResult
20
19
  ): Promise<void>;
21
20
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../../entities/bot.ts"],"names":[],"mappings":"AAKA,OAAO,aAAa,MAAM,yBAAyB,CAAC;AACpD,OAAO,eAAe,MAAM,2BAA2B,CAAC;AACxD,OAAO,YAAY,MAAM,sBAAsB,CAAC;AAOhD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,GAAG,CAAqB;IAChC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,EAAE,cAAc,CAAC;gBAEZ,OAAO,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;QACxC,SAAS,EAAE,eAAe,EAAE,CAAC;QAC7B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3B,aAAa,CAAC,EAAE,cAAc,CAAC;QAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;KACxB;IAuEK,IAAI,CAAC,IAAI,EAAE,MAAM;YAYT,YAAY;YAqBZ,eAAe;CAmBhC"}
@@ -1,7 +0,0 @@
1
- import IActionState from '../types/actionState';
2
- export default class TransactionResult {
3
- data: IActionState;
4
- shouldUpdate: boolean;
5
- constructor(data: IActionState, shouldUpdate: boolean);
6
- }
7
- //# sourceMappingURL=transactionResult.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transactionResult.d.ts","sourceRoot":"","sources":["../../entities/transactionResult.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,sBAAsB,CAAC;AAEhD,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAClC,IAAI,EAAE,YAAY,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;gBAEV,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO;CAIxD"}