chz-telegram-bot 0.5.1 → 0.5.2

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 (89) hide show
  1. package/dist/builtin/helpAction.js +3 -6
  2. package/dist/dtos/chatHistoryMessage.js +1 -5
  3. package/dist/dtos/chatInfo.js +1 -5
  4. package/dist/dtos/commandTriggerCheckResult.js +1 -5
  5. package/dist/dtos/cooldownInfo.js +1 -5
  6. package/dist/dtos/incomingMessage.js +21 -25
  7. package/dist/dtos/incomingQuery.js +1 -5
  8. package/dist/dtos/messageInfo.js +1 -5
  9. package/dist/dtos/propertyProviderSets.js +1 -2
  10. package/dist/dtos/replyInfo.js +1 -5
  11. package/dist/dtos/responses/delay.js +3 -7
  12. package/dist/dtos/responses/imageMessage.js +3 -7
  13. package/dist/dtos/responses/inlineQueryResponse.js +3 -7
  14. package/dist/dtos/responses/reaction.js +3 -7
  15. package/dist/dtos/responses/textMessage.js +3 -7
  16. package/dist/dtos/responses/unpin.js +3 -7
  17. package/dist/dtos/responses/videoMessage.js +3 -7
  18. package/dist/dtos/userInfo.js +1 -5
  19. package/dist/entities/actions/commandAction.js +32 -39
  20. package/dist/entities/actions/inlineQueryAction.js +4 -8
  21. package/dist/entities/actions/replyCaptureAction.js +10 -14
  22. package/dist/entities/actions/scheduledAction.js +16 -23
  23. package/dist/entities/botInstance.js +13 -17
  24. package/dist/entities/cachedStateFactory.js +1 -5
  25. package/dist/entities/context/baseContext.d.ts +1 -1
  26. package/dist/entities/context/baseContext.d.ts.map +1 -1
  27. package/dist/entities/context/baseContext.js +1 -5
  28. package/dist/entities/context/chatContext.js +13 -17
  29. package/dist/entities/context/inlineQueryContext.js +4 -8
  30. package/dist/entities/context/messageContext.js +15 -19
  31. package/dist/entities/context/replyContext.js +15 -19
  32. package/dist/entities/states/actionStateBase.js +1 -5
  33. package/dist/entities/taskRecord.js +1 -5
  34. package/dist/eslint.config.d.ts +3 -0
  35. package/dist/eslint.config.d.ts.map +1 -0
  36. package/dist/eslint.config.js +51 -0
  37. package/dist/helpers/builders/commandActionBuilder.js +15 -20
  38. package/dist/helpers/builders/inlineQueryActionBuilder.js +5 -9
  39. package/dist/helpers/builders/scheduledActionBuilder.js +10 -15
  40. package/dist/helpers/mapUtils.js +2 -6
  41. package/dist/helpers/noop.js +1 -5
  42. package/dist/helpers/objectFromEntries.js +1 -5
  43. package/dist/helpers/timeConvertions.js +3 -8
  44. package/dist/helpers/toArray.js +1 -4
  45. package/dist/helpers/traceFactory.js +1 -4
  46. package/dist/index.d.ts +3 -0
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +20 -41
  49. package/dist/main.js +5 -8
  50. package/dist/services/actionProcessingService.js +15 -19
  51. package/dist/services/actionProcessors/baseProcessor.js +1 -5
  52. package/dist/services/actionProcessors/commandActionProcessor.d.ts.map +1 -1
  53. package/dist/services/actionProcessors/commandActionProcessor.js +35 -38
  54. package/dist/services/actionProcessors/inlineQueryActionProcessor.js +7 -11
  55. package/dist/services/actionProcessors/scheduledActionProcessor.js +12 -19
  56. package/dist/services/jsonFileStorage.js +15 -19
  57. package/dist/services/jsonLogger.js +1 -5
  58. package/dist/services/nodeTimeoutScheduler.js +9 -13
  59. package/dist/services/responseProcessingQueue.js +3 -7
  60. package/dist/services/telegramApi.js +5 -9
  61. package/dist/types/action.js +1 -2
  62. package/dist/types/actionState.js +1 -2
  63. package/dist/types/cachedValueAccessor.js +1 -2
  64. package/dist/types/capture.js +1 -2
  65. package/dist/types/commandCondition.js +1 -2
  66. package/dist/types/commandTrigger.js +1 -2
  67. package/dist/types/externalAliases.js +1 -2
  68. package/dist/types/handlers.js +1 -2
  69. package/dist/types/inputFile.js +1 -2
  70. package/dist/types/logger.js +1 -2
  71. package/dist/types/messageSendingOptions.js +1 -2
  72. package/dist/types/messageTypes.js +17 -20
  73. package/dist/types/propertyProvider.js +1 -2
  74. package/dist/types/response.js +1 -4
  75. package/dist/types/scheduler.js +1 -2
  76. package/dist/types/storage.js +1 -2
  77. package/dist/types/timeValues.js +1 -2
  78. package/dist/types/trace.js +1 -2
  79. package/entities/botInstance.ts +1 -1
  80. package/entities/context/messageContext.ts +3 -3
  81. package/entities/context/replyContext.ts +3 -3
  82. package/{eslint.config.js → eslint.config.ts} +8 -5
  83. package/index.ts +3 -0
  84. package/package.json +2 -1
  85. package/services/actionProcessors/commandActionProcessor.ts +5 -6
  86. package/services/jsonFileStorage.ts +1 -1
  87. package/services/nodeTimeoutScheduler.ts +2 -2
  88. package/tsconfig.json +2 -2
  89. package/bun.lock +0 -301
@@ -1,9 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildHelpCommand = buildHelpCommand;
4
- const commandActionBuilder_1 = require("../helpers/builders/commandActionBuilder");
5
- function buildHelpCommand(readmes, botUsername) {
6
- const helpCommandBuilder = new commandActionBuilder_1.CommandActionBuilder('Reaction.Help')
1
+ import { CommandActionBuilder } from '../helpers/builders/commandActionBuilder';
2
+ export function buildHelpCommand(readmes, botUsername) {
3
+ const helpCommandBuilder = new CommandActionBuilder('Reaction.Help')
7
4
  .on(['/help', `/help@${botUsername}`])
8
5
  .do((ctx) => {
9
6
  ctx.reply.withText(readmes.join('\n\n'));
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ChatHistoryMessage = void 0;
4
- class ChatHistoryMessage {
1
+ export class ChatHistoryMessage {
5
2
  id;
6
3
  from;
7
4
  text;
@@ -17,4 +14,3 @@ class ChatHistoryMessage {
17
14
  this.replyToId = replyToId;
18
15
  }
19
16
  }
20
- exports.ChatHistoryMessage = ChatHistoryMessage;
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ChatInfo = void 0;
4
- class ChatInfo {
1
+ export class ChatInfo {
5
2
  id;
6
3
  name;
7
4
  messageHistory;
@@ -17,4 +14,3 @@ class ChatInfo {
17
14
  this.messageHistory = messageHistory;
18
15
  }
19
16
  }
20
- exports.ChatInfo = ChatInfo;
@@ -1,6 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CommandTriggerCheckResult = void 0;
4
1
  const _SkipTriggerReasonsObject = {
5
2
  UserIdMissing: 'UserIdMissing',
6
3
  UserForbidden: 'UserForbidden',
@@ -11,7 +8,7 @@ const _SkipTriggerReasonsObject = {
11
8
  ActionDisabled: 'ActionDisabled',
12
9
  ChatForbidden: 'ChatForbidden'
13
10
  };
14
- class CommandTriggerCheckResult {
11
+ export class CommandTriggerCheckResult {
15
12
  shouldExecute;
16
13
  matchResults;
17
14
  skipCooldown;
@@ -35,4 +32,3 @@ class CommandTriggerCheckResult {
35
32
  return new CommandTriggerCheckResult(this.shouldExecute || other.shouldExecute, this.matchResults.concat(other.matchResults), this.skipCooldown || other.skipCooldown, other.reason);
36
33
  }
37
34
  }
38
- exports.CommandTriggerCheckResult = CommandTriggerCheckResult;
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CooldownInfo = void 0;
4
- class CooldownInfo {
1
+ export class CooldownInfo {
5
2
  cooldown;
6
3
  message;
7
4
  constructor(
@@ -13,4 +10,3 @@ class CooldownInfo {
13
10
  this.message = message;
14
11
  }
15
12
  }
16
- exports.CooldownInfo = CooldownInfo;
@@ -1,11 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IncomingMessage = void 0;
4
- const crypto_1 = require("crypto");
5
- const messageTypes_1 = require("../types/messageTypes");
6
- const chatInfo_1 = require("./chatInfo");
7
- const traceFactory_1 = require("../helpers/traceFactory");
8
- class IncomingMessage {
1
+ import { randomInt } from 'crypto';
2
+ import { MessageType } from '../types/messageTypes';
3
+ import { ChatInfo } from './chatInfo';
4
+ import { createTrace } from '../helpers/traceFactory';
5
+ export class IncomingMessage {
9
6
  messageId;
10
7
  chatInfo;
11
8
  from;
@@ -16,35 +13,35 @@ class IncomingMessage {
16
13
  updateObject;
17
14
  detectMessageType(message) {
18
15
  if ('forward_origin' in message)
19
- return messageTypes_1.MessageType.Forward;
16
+ return MessageType.Forward;
20
17
  if ('text' in message)
21
- return messageTypes_1.MessageType.Text;
18
+ return MessageType.Text;
22
19
  if ('video' in message)
23
- return messageTypes_1.MessageType.Video;
20
+ return MessageType.Video;
24
21
  if ('photo' in message)
25
- return messageTypes_1.MessageType.Photo;
22
+ return MessageType.Photo;
26
23
  if ('sticker' in message)
27
- return messageTypes_1.MessageType.Sticker;
24
+ return MessageType.Sticker;
28
25
  if ('animation' in message)
29
- return messageTypes_1.MessageType.Animation;
26
+ return MessageType.Animation;
30
27
  if ('voice' in message)
31
- return messageTypes_1.MessageType.Voice;
28
+ return MessageType.Voice;
32
29
  if ('audio' in message)
33
- return messageTypes_1.MessageType.Audio;
30
+ return MessageType.Audio;
34
31
  if ('document' in message)
35
- return messageTypes_1.MessageType.Document;
32
+ return MessageType.Document;
36
33
  if ('left_chat_member' in message)
37
- return messageTypes_1.MessageType.LeftChatMember;
34
+ return MessageType.LeftChatMember;
38
35
  if ('new_chat_member' in message)
39
- return messageTypes_1.MessageType.NewChatMember;
36
+ return MessageType.NewChatMember;
40
37
  if ('poll' in message)
41
- return messageTypes_1.MessageType.Poll;
38
+ return MessageType.Poll;
42
39
  if ('location' in message)
43
- return messageTypes_1.MessageType.Location;
44
- return messageTypes_1.MessageType.Unknown;
40
+ return MessageType.Location;
41
+ return MessageType.Unknown;
45
42
  }
46
43
  constructor(ctxMessage, botName, history) {
47
- this.traceId = (0, traceFactory_1.createTrace)(this, botName, (0, crypto_1.randomInt)(10000, 99999).toString());
44
+ this.traceId = createTrace(this, botName, randomInt(10000, 99999).toString());
48
45
  this.messageId = ctxMessage.message_id;
49
46
  this.replyToMessageId =
50
47
  'reply_to_message' in ctxMessage
@@ -52,7 +49,7 @@ class IncomingMessage {
52
49
  : undefined;
53
50
  this.from = ctxMessage.from;
54
51
  this.text = this.getMessageText(ctxMessage);
55
- this.chatInfo = new chatInfo_1.ChatInfo(ctxMessage.chat.id, 'title' in ctxMessage.chat
52
+ this.chatInfo = new ChatInfo(ctxMessage.chat.id, 'title' in ctxMessage.chat
56
53
  ? `${ctxMessage.chat.title} ${ctxMessage.chat.id}`
57
54
  : 'DM', history);
58
55
  this.type = this.detectMessageType(ctxMessage);
@@ -64,4 +61,3 @@ class IncomingMessage {
64
61
  return 'caption' in ctxMessage ? ctxMessage.caption ?? '' : '';
65
62
  }
66
63
  }
67
- exports.IncomingMessage = IncomingMessage;
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IncomingInlineQuery = void 0;
4
- class IncomingInlineQuery {
1
+ export class IncomingInlineQuery {
5
2
  queryId;
6
3
  query;
7
4
  userId;
@@ -15,4 +12,3 @@ class IncomingInlineQuery {
15
12
  this.abortController = new AbortController();
16
13
  }
17
14
  }
18
- exports.IncomingInlineQuery = IncomingInlineQuery;
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MessageInfo = void 0;
4
- class MessageInfo {
1
+ export class MessageInfo {
5
2
  id;
6
3
  text;
7
4
  type;
@@ -21,4 +18,3 @@ class MessageInfo {
21
18
  this.telegramUpdateObject = telegramUpdateObject;
22
19
  }
23
20
  }
24
- exports.MessageInfo = MessageInfo;
@@ -1,2 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ReplyInfo = void 0;
4
- class ReplyInfo {
1
+ export class ReplyInfo {
5
2
  id;
6
3
  quote;
7
4
  constructor(id, quote) {
@@ -9,4 +6,3 @@ class ReplyInfo {
9
6
  this.quote = quote;
10
7
  }
11
8
  }
12
- exports.ReplyInfo = ReplyInfo;
@@ -1,9 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DelayResponse = void 0;
4
- const response_1 = require("../../types/response");
5
- class DelayResponse {
6
- kind = response_1.BotResponseTypes.delay;
1
+ import { BotResponseTypes } from '../../types/response';
2
+ export class DelayResponse {
3
+ kind = BotResponseTypes.delay;
7
4
  createdAt = Date.now();
8
5
  chatInfo;
9
6
  traceId;
@@ -16,4 +13,3 @@ class DelayResponse {
16
13
  this.action = action;
17
14
  }
18
15
  }
19
- exports.DelayResponse = DelayResponse;
@@ -1,9 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ImageMessage = void 0;
4
- const response_1 = require("../../types/response");
5
- class ImageMessage {
6
- kind = response_1.BotResponseTypes.image;
1
+ import { BotResponseTypes } from '../../types/response';
2
+ export class ImageMessage {
3
+ kind = BotResponseTypes.image;
7
4
  createdAt = Date.now();
8
5
  captures = [];
9
6
  content;
@@ -22,4 +19,3 @@ class ImageMessage {
22
19
  this.action = action;
23
20
  }
24
21
  }
25
- exports.ImageMessage = ImageMessage;
@@ -1,9 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InlineQueryResponse = void 0;
4
- const response_1 = require("../../types/response");
5
- class InlineQueryResponse {
6
- kind = response_1.BotResponseTypes.inlineQuery;
1
+ import { BotResponseTypes } from '../../types/response';
2
+ export class InlineQueryResponse {
3
+ kind = BotResponseTypes.inlineQuery;
7
4
  createdAt = Date.now();
8
5
  queryId;
9
6
  traceId;
@@ -16,4 +13,3 @@ class InlineQueryResponse {
16
13
  this.action = action;
17
14
  }
18
15
  }
19
- exports.InlineQueryResponse = InlineQueryResponse;
@@ -1,9 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Reaction = void 0;
4
- const response_1 = require("../../types/response");
5
- class Reaction {
6
- kind = response_1.BotResponseTypes.react;
1
+ import { BotResponseTypes } from '../../types/response';
2
+ export class Reaction {
3
+ kind = BotResponseTypes.react;
7
4
  createdAt = Date.now();
8
5
  chatInfo;
9
6
  messageId;
@@ -18,4 +15,3 @@ class Reaction {
18
15
  this.action = action;
19
16
  }
20
17
  }
21
- exports.Reaction = Reaction;
@@ -1,9 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TextMessage = void 0;
4
- const response_1 = require("../../types/response");
5
- class TextMessage {
6
- kind = response_1.BotResponseTypes.text;
1
+ import { BotResponseTypes } from '../../types/response';
2
+ export class TextMessage {
3
+ kind = BotResponseTypes.text;
7
4
  createdAt = Date.now();
8
5
  captures = [];
9
6
  content;
@@ -25,4 +22,3 @@ class TextMessage {
25
22
  this.keyboard = options?.keyboard;
26
23
  }
27
24
  }
28
- exports.TextMessage = TextMessage;
@@ -1,9 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UnpinResponse = void 0;
4
- const response_1 = require("../../types/response");
5
- class UnpinResponse {
6
- kind = response_1.BotResponseTypes.unpin;
1
+ import { BotResponseTypes } from '../../types/response';
2
+ export class UnpinResponse {
3
+ kind = BotResponseTypes.unpin;
7
4
  createdAt = Date.now();
8
5
  messageId;
9
6
  chatInfo;
@@ -16,4 +13,3 @@ class UnpinResponse {
16
13
  this.action = action;
17
14
  }
18
15
  }
19
- exports.UnpinResponse = UnpinResponse;
@@ -1,9 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VideoMessage = void 0;
4
- const response_1 = require("../../types/response");
5
- class VideoMessage {
6
- kind = response_1.BotResponseTypes.video;
1
+ import { BotResponseTypes } from '../../types/response';
2
+ export class VideoMessage {
3
+ kind = BotResponseTypes.video;
7
4
  createdAt = Date.now();
8
5
  captures = [];
9
6
  content;
@@ -22,4 +19,3 @@ class VideoMessage {
22
19
  this.action = action;
23
20
  }
24
21
  }
25
- exports.VideoMessage = VideoMessage;
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UserInfo = void 0;
4
- class UserInfo {
1
+ export class UserInfo {
5
2
  id;
6
3
  name;
7
4
  constructor(
@@ -13,4 +10,3 @@ class UserInfo {
13
10
  this.name = name;
14
11
  }
15
12
  }
16
- exports.UserInfo = UserInfo;
@@ -1,20 +1,14 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.CommandAction = void 0;
7
- const moment_1 = __importDefault(require("moment"));
8
- const timeConvertions_1 = require("../../helpers/timeConvertions");
9
- const toArray_1 = require("../../helpers/toArray");
10
- const commandTriggerCheckResult_1 = require("../../dtos/commandTriggerCheckResult");
11
- const noop_1 = require("../../helpers/noop");
12
- const messageTypes_1 = require("../../types/messageTypes");
13
- const async_sema_1 = require("async-sema");
14
- const mapUtils_1 = require("../../helpers/mapUtils");
15
- const textMessage_1 = require("../../dtos/responses/textMessage");
16
- const replyInfo_1 = require("../../dtos/replyInfo");
17
- class CommandAction {
1
+ import moment from 'moment';
2
+ import { secondsToMilliseconds } from '../../helpers/timeConvertions';
3
+ import { toArray } from '../../helpers/toArray';
4
+ import { CommandTriggerCheckResult } from '../../dtos/commandTriggerCheckResult';
5
+ import { Noop } from '../../helpers/noop';
6
+ import { MessageType } from '../../types/messageTypes';
7
+ import { Sema as Semaphore } from 'async-sema';
8
+ import { getOrSetIfNotExists } from '../../helpers/mapUtils';
9
+ import { TextMessage } from '../../dtos/responses/textMessage';
10
+ import { ReplyInfo } from '../../dtos/replyInfo';
11
+ export class CommandAction {
18
12
  cooldownInfoProvider;
19
13
  isActiveProvider;
20
14
  chatsBlacklistProvider;
@@ -31,7 +25,7 @@ class CommandAction {
31
25
  readmeFactory;
32
26
  lastCustomCooldown;
33
27
  constructor(trigger, handler, name, providers, maxAllowedSimultaniousExecutions, condition, stateConstructor, readmeFactory) {
34
- this.triggers = (0, toArray_1.toArray)(trigger);
28
+ this.triggers = toArray(trigger);
35
29
  this.name = name;
36
30
  this.cooldownInfoProvider = providers.cooldownProvider;
37
31
  this.isActiveProvider = providers.isActiveProvider;
@@ -51,24 +45,24 @@ class CommandAction {
51
45
  throw new Error(`Context for ${this.key} is not initialized or already consumed`);
52
46
  let lock;
53
47
  if (this.maxAllowedSimultaniousExecutions != 0) {
54
- lock = (0, mapUtils_1.getOrSetIfNotExists)(this.ratelimitSemaphores, ctx.chatInfo.id, new async_sema_1.Sema(this.maxAllowedSimultaniousExecutions));
48
+ lock = getOrSetIfNotExists(this.ratelimitSemaphores, ctx.chatInfo.id, new Semaphore(this.maxAllowedSimultaniousExecutions));
55
49
  await lock.acquire();
56
50
  }
57
51
  try {
58
52
  const state = await ctx.storage.getActionState(this, ctx.chatInfo.id);
59
53
  const { shouldExecute, matchResults, skipCooldown, reason } = this.triggers
60
54
  .map((x) => this.checkIfShouldBeExecuted(ctx, x, state))
61
- .reduce((acc, curr) => acc.mergeWith(curr), commandTriggerCheckResult_1.CommandTriggerCheckResult.DoNotTrigger('Other'));
55
+ .reduce((acc, curr) => acc.mergeWith(curr), CommandTriggerCheckResult.DoNotTrigger('Other'));
62
56
  if (!shouldExecute) {
63
57
  if (reason == 'OnCooldown') {
64
58
  const cooldownMessage = this.cooldownInfoProvider(ctx).message;
65
59
  return cooldownMessage
66
60
  ? [
67
- new textMessage_1.TextMessage(cooldownMessage, ctx.chatInfo, ctx.traceId, this, new replyInfo_1.ReplyInfo(ctx.messageInfo.id))
61
+ new TextMessage(cooldownMessage, ctx.chatInfo, ctx.traceId, this, new ReplyInfo(ctx.messageInfo.id))
68
62
  ]
69
- : noop_1.Noop.NoResponse;
63
+ : Noop.NoResponse;
70
64
  }
71
- return noop_1.Noop.NoResponse;
65
+ return Noop.NoResponse;
72
66
  }
73
67
  ctx.logger.logWithTraceId(` - Executing [${this.name}] in ${ctx.chatInfo.id}`);
74
68
  ctx.matchResults = matchResults;
@@ -78,7 +72,7 @@ class CommandAction {
78
72
  }
79
73
  if (ctx.startCooldown) {
80
74
  this.lastCustomCooldown = ctx.customCooldown;
81
- state.lastExecutedDate = (0, moment_1.default)().valueOf();
75
+ state.lastExecutedDate = moment().valueOf();
82
76
  }
83
77
  await ctx.storage.saveActionExecutionResult(this, ctx.chatInfo.id, state);
84
78
  return ctx.responses;
@@ -89,41 +83,41 @@ class CommandAction {
89
83
  }
90
84
  checkIfShouldBeExecuted(ctx, trigger, state) {
91
85
  if (!this.isActiveProvider(ctx))
92
- return commandTriggerCheckResult_1.CommandTriggerCheckResult.DontTriggerAndSkipCooldown('ActionDisabled');
86
+ return CommandTriggerCheckResult.DontTriggerAndSkipCooldown('ActionDisabled');
93
87
  const chatsBlacklist = this.chatsBlacklistProvider(ctx);
94
88
  const chatsWhitelist = this.chatsWhitelistProvider(ctx);
95
89
  const isChatInBlacklist = chatsBlacklist.includes(ctx.chatInfo.id);
96
90
  const isChatInWhitelist = chatsWhitelist.length == 0 ||
97
91
  chatsWhitelist.includes(ctx.chatInfo.id);
98
92
  if (isChatInBlacklist || !isChatInWhitelist)
99
- return commandTriggerCheckResult_1.CommandTriggerCheckResult.DontTriggerAndSkipCooldown('ChatForbidden');
93
+ return CommandTriggerCheckResult.DontTriggerAndSkipCooldown('ChatForbidden');
100
94
  const triggerCheckResult = this.checkTrigger(ctx, trigger);
101
95
  if (!triggerCheckResult.shouldExecute)
102
96
  return triggerCheckResult;
103
97
  if (!ctx.userInfo.id)
104
- return commandTriggerCheckResult_1.CommandTriggerCheckResult.DontTriggerAndSkipCooldown('UserIdMissing');
98
+ return CommandTriggerCheckResult.DontTriggerAndSkipCooldown('UserIdMissing');
105
99
  const usersWhitelist = this.usersWhitelistProvider(ctx);
106
100
  const isUserAllowed = usersWhitelist.length == 0 ||
107
101
  usersWhitelist.includes(ctx.userInfo.id);
108
102
  if (!isUserAllowed)
109
- return commandTriggerCheckResult_1.CommandTriggerCheckResult.DontTriggerAndSkipCooldown('UserForbidden');
110
- const lastExecutedDate = (0, moment_1.default)(state.lastExecutedDate);
111
- const cooldownInMilliseconds = (0, timeConvertions_1.secondsToMilliseconds)(this.lastCustomCooldown ?? this.cooldownInfoProvider(ctx).cooldown);
112
- const onCooldown = (0, moment_1.default)().diff(lastExecutedDate) < cooldownInMilliseconds;
103
+ return CommandTriggerCheckResult.DontTriggerAndSkipCooldown('UserForbidden');
104
+ const lastExecutedDate = moment(state.lastExecutedDate);
105
+ const cooldownInMilliseconds = secondsToMilliseconds(this.lastCustomCooldown ?? this.cooldownInfoProvider(ctx).cooldown);
106
+ const onCooldown = moment().diff(lastExecutedDate) < cooldownInMilliseconds;
113
107
  if (onCooldown)
114
- return commandTriggerCheckResult_1.CommandTriggerCheckResult.DoNotTrigger('OnCooldown');
108
+ return CommandTriggerCheckResult.DoNotTrigger('OnCooldown');
115
109
  const isCustomConditionMet = this.condition(ctx, state);
116
110
  if (!isCustomConditionMet)
117
- return commandTriggerCheckResult_1.CommandTriggerCheckResult.DontTriggerAndSkipCooldown('CustomConditionNotMet');
111
+ return CommandTriggerCheckResult.DontTriggerAndSkipCooldown('CustomConditionNotMet');
118
112
  return triggerCheckResult;
119
113
  }
120
114
  checkTrigger(ctx, trigger) {
121
- if (trigger == messageTypes_1.MessageType.Any || trigger == ctx.messageInfo.type)
122
- return commandTriggerCheckResult_1.CommandTriggerCheckResult.Trigger();
115
+ if (trigger == MessageType.Any || trigger == ctx.messageInfo.type)
116
+ return CommandTriggerCheckResult.Trigger();
123
117
  if (typeof trigger == 'string')
124
118
  return ctx.messageInfo.text.toLowerCase() == trigger.toLowerCase()
125
- ? commandTriggerCheckResult_1.CommandTriggerCheckResult.Trigger()
126
- : commandTriggerCheckResult_1.CommandTriggerCheckResult.DoNotTrigger('TriggerNotSatisfied');
119
+ ? CommandTriggerCheckResult.Trigger()
120
+ : CommandTriggerCheckResult.DoNotTrigger('TriggerNotSatisfied');
127
121
  const matchResults = [];
128
122
  trigger.lastIndex = 0;
129
123
  const execResult = trigger.exec(ctx.messageInfo.text);
@@ -140,7 +134,6 @@ class CommandAction {
140
134
  }
141
135
  }
142
136
  }
143
- return new commandTriggerCheckResult_1.CommandTriggerCheckResult(matchResults.length > 0, matchResults, false);
137
+ return new CommandTriggerCheckResult(matchResults.length > 0, matchResults, false);
144
138
  }
145
139
  }
146
- exports.CommandAction = CommandAction;
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InlineQueryAction = void 0;
4
- const noop_1 = require("../../helpers/noop");
5
- class InlineQueryAction {
1
+ import { Noop } from '../../helpers/noop';
2
+ export class InlineQueryAction {
6
3
  key;
7
4
  isActiveProvider;
8
5
  handler;
@@ -19,7 +16,7 @@ class InlineQueryAction {
19
16
  if (!ctx.isInitialized)
20
17
  throw new Error(`Context for ${this.key} is not initialized or already consumed`);
21
18
  if (!this.isActiveProvider(ctx))
22
- return noop_1.Noop.NoResponse;
19
+ return Noop.NoResponse;
23
20
  const matchResults = [];
24
21
  this.pattern.lastIndex = 0;
25
22
  const execResult = this.pattern.exec(ctx.queryText);
@@ -37,11 +34,10 @@ class InlineQueryAction {
37
34
  }
38
35
  }
39
36
  if (matchResults.length == 0)
40
- return noop_1.Noop.NoResponse;
37
+ return Noop.NoResponse;
41
38
  ctx.matchResults = matchResults;
42
39
  ctx.logger.logWithTraceId(` - Executing [${this.name}]`);
43
40
  await this.handler(ctx);
44
41
  return ctx.responses;
45
42
  }
46
43
  }
47
- exports.InlineQueryAction = InlineQueryAction;
@@ -1,9 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ReplyCaptureAction = void 0;
4
- const commandTriggerCheckResult_1 = require("../../dtos/commandTriggerCheckResult");
5
- const noop_1 = require("../../helpers/noop");
6
- class ReplyCaptureAction {
1
+ import { CommandTriggerCheckResult } from '../../dtos/commandTriggerCheckResult';
2
+ import { Noop } from '../../helpers/noop';
3
+ export class ReplyCaptureAction {
7
4
  parentMessageId;
8
5
  key;
9
6
  handler;
@@ -23,9 +20,9 @@ class ReplyCaptureAction {
23
20
  throw new Error(`Context for ${this.key} is not initialized or already consumed`);
24
21
  const { shouldExecute, matchResults } = this.triggers
25
22
  .map((x) => this.checkIfShouldBeExecuted(ctx, x))
26
- .reduce((acc, curr) => acc.mergeWith(curr), commandTriggerCheckResult_1.CommandTriggerCheckResult.DoNotTrigger('Other'));
23
+ .reduce((acc, curr) => acc.mergeWith(curr), CommandTriggerCheckResult.DoNotTrigger('Other'));
27
24
  if (!shouldExecute)
28
- return noop_1.Noop.NoResponse;
25
+ return Noop.NoResponse;
29
26
  ctx.logger.logWithTraceId(` - Executing [${this.key}] in ${ctx.chatInfo.id}`);
30
27
  ctx.matchResults = matchResults;
31
28
  await this.handler(ctx);
@@ -33,13 +30,13 @@ class ReplyCaptureAction {
33
30
  }
34
31
  checkIfShouldBeExecuted(ctx, trigger) {
35
32
  if (ctx.replyMessageId != this.parentMessageId)
36
- return commandTriggerCheckResult_1.CommandTriggerCheckResult.DoNotTrigger('TriggerNotSatisfied');
33
+ return CommandTriggerCheckResult.DoNotTrigger('TriggerNotSatisfied');
37
34
  if (trigger == ctx.messageInfo.type)
38
- return commandTriggerCheckResult_1.CommandTriggerCheckResult.Trigger();
35
+ return CommandTriggerCheckResult.Trigger();
39
36
  if (typeof trigger == 'string')
40
37
  return ctx.messageInfo.text.toLowerCase() == trigger.toLowerCase()
41
- ? commandTriggerCheckResult_1.CommandTriggerCheckResult.Trigger()
42
- : commandTriggerCheckResult_1.CommandTriggerCheckResult.DoNotTrigger('TriggerNotSatisfied');
38
+ ? CommandTriggerCheckResult.Trigger()
39
+ : CommandTriggerCheckResult.DoNotTrigger('TriggerNotSatisfied');
43
40
  const matchResults = [];
44
41
  trigger.lastIndex = 0;
45
42
  const execResult = trigger.exec(ctx.messageInfo.text);
@@ -56,7 +53,6 @@ class ReplyCaptureAction {
56
53
  }
57
54
  }
58
55
  }
59
- return new commandTriggerCheckResult_1.CommandTriggerCheckResult(matchResults.length > 0, matchResults, false);
56
+ return new CommandTriggerCheckResult(matchResults.length > 0, matchResults, false);
60
57
  }
61
58
  }
62
- exports.ReplyCaptureAction = ReplyCaptureAction;