chz-telegram-bot 0.0.52 → 0.0.53

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 (52) hide show
  1. package/dist/dtos/incomingMessage.d.ts +3 -2
  2. package/dist/dtos/incomingMessage.d.ts.map +1 -1
  3. package/dist/dtos/incomingMessage.js +3 -2
  4. package/dist/dtos/responses/delay.d.ts +3 -2
  5. package/dist/dtos/responses/delay.d.ts.map +1 -1
  6. package/dist/dtos/responses/imageMessage.d.ts +3 -2
  7. package/dist/dtos/responses/imageMessage.d.ts.map +1 -1
  8. package/dist/dtos/responses/reaction.d.ts +3 -2
  9. package/dist/dtos/responses/reaction.d.ts.map +1 -1
  10. package/dist/dtos/responses/textMessage.d.ts +3 -2
  11. package/dist/dtos/responses/textMessage.d.ts.map +1 -1
  12. package/dist/dtos/responses/unpin.d.ts +3 -2
  13. package/dist/dtos/responses/unpin.d.ts.map +1 -1
  14. package/dist/dtos/responses/videoMessage.d.ts +3 -2
  15. package/dist/dtos/responses/videoMessage.d.ts.map +1 -1
  16. package/dist/entities/botInstance.d.ts.map +1 -1
  17. package/dist/entities/botInstance.js +5 -4
  18. package/dist/entities/context/chatContext.d.ts +3 -2
  19. package/dist/entities/context/chatContext.d.ts.map +1 -1
  20. package/dist/helpers/traceFactory.d.ts +3 -0
  21. package/dist/helpers/traceFactory.d.ts.map +1 -0
  22. package/dist/helpers/traceFactory.js +6 -0
  23. package/dist/index.d.ts +1 -0
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/services/jsonLogger.d.ts +4 -3
  26. package/dist/services/jsonLogger.d.ts.map +1 -1
  27. package/dist/services/nodeTimeoutScheduler.d.ts.map +1 -1
  28. package/dist/services/nodeTimeoutScheduler.js +4 -3
  29. package/dist/types/logger.d.ts +4 -3
  30. package/dist/types/logger.d.ts.map +1 -1
  31. package/dist/types/response.d.ts +2 -1
  32. package/dist/types/response.d.ts.map +1 -1
  33. package/dist/types/trace.d.ts +2 -0
  34. package/dist/types/trace.d.ts.map +1 -0
  35. package/dist/types/trace.js +2 -0
  36. package/dtos/incomingMessage.ts +12 -2
  37. package/dtos/responses/delay.ts +3 -2
  38. package/dtos/responses/imageMessage.ts +3 -2
  39. package/dtos/responses/reaction.ts +3 -2
  40. package/dtos/responses/textMessage.ts +3 -2
  41. package/dtos/responses/unpin.ts +3 -2
  42. package/dtos/responses/videoMessage.ts +3 -2
  43. package/entities/botInstance.ts +9 -4
  44. package/entities/context/chatContext.ts +3 -2
  45. package/helpers/traceFactory.ts +9 -0
  46. package/index.ts +1 -0
  47. package/package.json +1 -1
  48. package/services/jsonLogger.ts +4 -3
  49. package/services/nodeTimeoutScheduler.ts +4 -3
  50. package/types/logger.ts +5 -3
  51. package/types/response.ts +2 -1
  52. package/types/trace.ts +1 -0
@@ -1,14 +1,15 @@
1
1
  import { Message, Update, User } from 'telegraf/types';
2
2
  import { MessageTypeValue } from '../types/messageTypes';
3
3
  import { ChatInfo } from './chatInfo';
4
+ import { TraceId } from '../types/trace';
4
5
  export declare class IncomingMessage {
5
6
  readonly message_id: number;
6
7
  readonly chatInfo: ChatInfo;
7
8
  readonly from: User | undefined;
8
9
  readonly text: string;
9
10
  readonly type: MessageTypeValue;
10
- readonly traceId: number;
11
+ readonly traceId: TraceId;
11
12
  private detectMessageType;
12
- constructor(ctxMessage: Update.New & (Update.NonChannel & Message));
13
+ constructor(ctxMessage: Update.New & (Update.NonChannel & Message), botName: string);
13
14
  }
14
15
  //# sourceMappingURL=incomingMessage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"incomingMessage.d.ts","sourceRoot":"","sources":["../../dtos/incomingMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAe,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,qBAAa,eAAe;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,OAAO,SAA2B;IAE3C,OAAO,CAAC,iBAAiB;gBAkBb,UAAU,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC;CAYrE"}
1
+ {"version":3,"file":"incomingMessage.d.ts","sourceRoot":"","sources":["../../dtos/incomingMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAe,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,qBAAa,eAAe;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,OAAO,CAAC,iBAAiB;gBAmBrB,UAAU,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,EACtD,OAAO,EAAE,MAAM;CAkBtB"}
@@ -4,6 +4,7 @@ exports.IncomingMessage = void 0;
4
4
  const crypto_1 = require("crypto");
5
5
  const messageTypes_1 = require("../types/messageTypes");
6
6
  const chatInfo_1 = require("./chatInfo");
7
+ const traceFactory_1 = require("../helpers/traceFactory");
7
8
  class IncomingMessage {
8
9
  detectMessageType(message) {
9
10
  if ('text' in message)
@@ -30,8 +31,8 @@ class IncomingMessage {
30
31
  return messageTypes_1.MessageType.Location;
31
32
  return messageTypes_1.MessageType.Unknown;
32
33
  }
33
- constructor(ctxMessage) {
34
- this.traceId = (0, crypto_1.randomInt)(10000, 99999);
34
+ constructor(ctxMessage, botName) {
35
+ this.traceId = (0, traceFactory_1.createTrace)(this, botName, (0, crypto_1.randomInt)(10000, 99999).toString());
35
36
  this.message_id = ctxMessage.message_id;
36
37
  this.from = ctxMessage.from;
37
38
  this.text = 'text' in ctxMessage ? ctxMessage.text : '';
@@ -2,13 +2,14 @@ import { IActionState } from '../../types/actionState';
2
2
  import { IActionWithState } from '../../types/actionWithState';
3
3
  import { IChatResponse } from '../../types/response';
4
4
  import { Milliseconds } from '../../types/timeValues';
5
+ import { TraceId } from '../../types/trace';
5
6
  import { ChatInfo } from '../chatInfo';
6
7
  export declare class DelayResponse implements IChatResponse {
7
8
  readonly kind: "delay";
8
9
  readonly chatInfo: ChatInfo;
9
- readonly traceId: number | string;
10
+ readonly traceId: TraceId;
10
11
  readonly delay: Milliseconds;
11
12
  readonly action: IActionWithState<IActionState>;
12
- constructor(delay: Milliseconds, chatInfo: ChatInfo, traceId: number | string, action: IActionWithState<IActionState>);
13
+ constructor(delay: Milliseconds, chatInfo: ChatInfo, traceId: TraceId, action: IActionWithState<IActionState>);
13
14
  }
14
15
  //# sourceMappingURL=delay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"delay.d.ts","sourceRoot":"","sources":["../../../dtos/responses/delay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAoB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,qBAAa,aAAc,YAAW,aAAa;IAC/C,QAAQ,CAAC,IAAI,UAA0B;IAEvC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;gBAG5C,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC;CAO7C"}
1
+ {"version":3,"file":"delay.d.ts","sourceRoot":"","sources":["../../../dtos/responses/delay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAoB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,qBAAa,aAAc,YAAW,aAAa;IAC/C,QAAQ,CAAC,IAAI,UAA0B;IAEvC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;gBAG5C,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC;CAO7C"}
@@ -4,15 +4,16 @@ import { MessageSendingOptions } from '../../types/messageSendingOptions';
4
4
  import { IActionWithState } from '../../types/actionWithState';
5
5
  import { IActionState } from '../../types/actionState';
6
6
  import { ChatInfo } from '../chatInfo';
7
+ import { TraceId } from '../../types/trace';
7
8
  export declare class ImageMessage implements IReplyMessage<InputFile> {
8
9
  readonly kind: "image";
9
10
  readonly content: InputFile;
10
11
  readonly chatInfo: ChatInfo;
11
12
  readonly replyId: number | undefined;
12
- readonly traceId: string | number;
13
+ readonly traceId: TraceId;
13
14
  readonly disableWebPreview = false;
14
15
  readonly shouldPin: boolean;
15
16
  readonly action: IActionWithState<IActionState>;
16
- constructor(image: InputFile, chatInfo: ChatInfo, replyId: number | undefined, traceId: number | string, action: IActionWithState<IActionState>, options?: MessageSendingOptions);
17
+ constructor(image: InputFile, chatInfo: ChatInfo, replyId: number | undefined, traceId: TraceId, action: IActionWithState<IActionState>, options?: MessageSendingOptions);
17
18
  }
18
19
  //# sourceMappingURL=imageMessage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"imageMessage.d.ts","sourceRoot":"","sources":["../../../dtos/responses/imageMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAoB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,qBAAa,YAAa,YAAW,aAAa,CAAC,SAAS,CAAC;IACzD,QAAQ,CAAC,IAAI,UAA0B;IAEvC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,iBAAiB,SAAS;IACnC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;gBAG5C,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,EACtC,OAAO,CAAC,EAAE,qBAAqB;CAStC"}
1
+ {"version":3,"file":"imageMessage.d.ts","sourceRoot":"","sources":["../../../dtos/responses/imageMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAoB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,qBAAa,YAAa,YAAW,aAAa,CAAC,SAAS,CAAC;IACzD,QAAQ,CAAC,IAAI,UAA0B;IAEvC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,iBAAiB,SAAS;IACnC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;gBAG5C,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,EACtC,OAAO,CAAC,EAAE,qBAAqB;CAStC"}
@@ -3,13 +3,14 @@ import { IChatResponse } from '../../types/response';
3
3
  import { IActionWithState } from '../../types/actionWithState';
4
4
  import { IActionState } from '../../types/actionState';
5
5
  import { ChatInfo } from '../chatInfo';
6
+ import { TraceId } from '../../types/trace';
6
7
  export declare class Reaction implements IChatResponse {
7
8
  readonly kind: "react";
8
9
  readonly chatInfo: ChatInfo;
9
10
  readonly messageId: number;
10
- readonly traceId: number | string;
11
+ readonly traceId: TraceId;
11
12
  readonly emoji: TelegramEmoji;
12
13
  readonly action: IActionWithState<IActionState>;
13
- constructor(traceId: number | string, chatInfo: ChatInfo, messageId: number, emoji: TelegramEmoji, action: IActionWithState<IActionState>);
14
+ constructor(traceId: TraceId, chatInfo: ChatInfo, messageId: number, emoji: TelegramEmoji, action: IActionWithState<IActionState>);
14
15
  }
15
16
  //# sourceMappingURL=reaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reaction.d.ts","sourceRoot":"","sources":["../../../dtos/responses/reaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAoB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,qBAAa,QAAS,YAAW,aAAa;IAC1C,QAAQ,CAAC,IAAI,UAA0B;IAEvC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;gBAG5C,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC;CAQ7C"}
1
+ {"version":3,"file":"reaction.d.ts","sourceRoot":"","sources":["../../../dtos/responses/reaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAoB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,qBAAa,QAAS,YAAW,aAAa;IAC1C,QAAQ,CAAC,IAAI,UAA0B;IAEvC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;gBAG5C,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC;CAQ7C"}
@@ -3,15 +3,16 @@ import { IReplyMessage } from '../../types/response';
3
3
  import { IActionWithState } from '../../types/actionWithState';
4
4
  import { IActionState } from '../../types/actionState';
5
5
  import { ChatInfo } from '../chatInfo';
6
+ import { TraceId } from '../../types/trace';
6
7
  export declare class TextMessage implements IReplyMessage<string> {
7
8
  readonly kind: "text";
8
9
  readonly content: string;
9
10
  readonly chatInfo: ChatInfo;
10
11
  readonly replyId: number | undefined;
11
- readonly traceId: string | number;
12
+ readonly traceId: TraceId;
12
13
  readonly disableWebPreview: boolean;
13
14
  readonly shouldPin: boolean;
14
15
  readonly action: IActionWithState<IActionState>;
15
- constructor(text: string, chatInfo: ChatInfo, replyId: number | undefined, traceId: string | number, action: IActionWithState<IActionState>, options?: TextMessageSendingOptions);
16
+ constructor(text: string, chatInfo: ChatInfo, replyId: number | undefined, traceId: TraceId, action: IActionWithState<IActionState>, options?: TextMessageSendingOptions);
16
17
  }
17
18
  //# sourceMappingURL=textMessage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"textMessage.d.ts","sourceRoot":"","sources":["../../../dtos/responses/textMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAoB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,qBAAa,WAAY,YAAW,aAAa,CAAC,MAAM,CAAC;IACrD,QAAQ,CAAC,IAAI,SAAyB;IAEtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;gBAG5C,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,EACtC,OAAO,CAAC,EAAE,yBAAyB;CAU1C"}
1
+ {"version":3,"file":"textMessage.d.ts","sourceRoot":"","sources":["../../../dtos/responses/textMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAoB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,qBAAa,WAAY,YAAW,aAAa,CAAC,MAAM,CAAC;IACrD,QAAQ,CAAC,IAAI,SAAyB;IAEtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;gBAG5C,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,EACtC,OAAO,CAAC,EAAE,yBAAyB;CAU1C"}
@@ -2,12 +2,13 @@ import { IChatResponse } from '../../types/response';
2
2
  import { IActionWithState } from '../../types/actionWithState';
3
3
  import { IActionState } from '../../types/actionState';
4
4
  import { ChatInfo } from '../chatInfo';
5
+ import { TraceId } from '../../types/trace';
5
6
  export declare class UnpinResponse implements IChatResponse {
6
7
  readonly kind: "unpin";
7
8
  readonly messageId: number;
8
9
  readonly chatInfo: ChatInfo;
9
- readonly traceId: number | string;
10
+ readonly traceId: TraceId;
10
11
  readonly action: IActionWithState<IActionState>;
11
- constructor(messageId: number, chatInfo: ChatInfo, traceId: number | string, action: IActionWithState<IActionState>);
12
+ constructor(messageId: number, chatInfo: ChatInfo, traceId: TraceId, action: IActionWithState<IActionState>);
12
13
  }
13
14
  //# sourceMappingURL=unpin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"unpin.d.ts","sourceRoot":"","sources":["../../../dtos/responses/unpin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,qBAAa,aAAc,YAAW,aAAa;IAC/C,QAAQ,CAAC,IAAI,UAA0B;IAEvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;gBAG5C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC;CAO7C"}
1
+ {"version":3,"file":"unpin.d.ts","sourceRoot":"","sources":["../../../dtos/responses/unpin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,qBAAa,aAAc,YAAW,aAAa;IAC/C,QAAQ,CAAC,IAAI,UAA0B;IAEvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;gBAG5C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC;CAO7C"}
@@ -4,15 +4,16 @@ import { MessageSendingOptions } from '../../types/messageSendingOptions';
4
4
  import { IActionWithState } from '../../types/actionWithState';
5
5
  import { IActionState } from '../../types/actionState';
6
6
  import { ChatInfo } from '../chatInfo';
7
+ import { TraceId } from '../../types/trace';
7
8
  export declare class VideoMessage implements IReplyMessage<InputFile> {
8
9
  readonly kind: "video";
9
10
  readonly content: InputFile;
10
11
  readonly chatInfo: ChatInfo;
11
12
  readonly replyId: number | undefined;
12
- readonly traceId: string | number;
13
+ readonly traceId: TraceId;
13
14
  readonly disableWebPreview = false;
14
15
  readonly shouldPin: boolean;
15
16
  readonly action: IActionWithState<IActionState>;
16
- constructor(video: InputFile, chatInfo: ChatInfo, replyId: number | undefined, traceId: number | string, action: IActionWithState<IActionState>, options?: MessageSendingOptions);
17
+ constructor(video: InputFile, chatInfo: ChatInfo, replyId: number | undefined, traceId: TraceId, action: IActionWithState<IActionState>, options?: MessageSendingOptions);
17
18
  }
18
19
  //# sourceMappingURL=videoMessage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"videoMessage.d.ts","sourceRoot":"","sources":["../../../dtos/responses/videoMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAoB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,qBAAa,YAAa,YAAW,aAAa,CAAC,SAAS,CAAC;IACzD,QAAQ,CAAC,IAAI,UAA0B;IAEvC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,iBAAiB,SAAS;IACnC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;gBAG5C,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,EACtC,OAAO,CAAC,EAAE,qBAAqB;CAStC"}
1
+ {"version":3,"file":"videoMessage.d.ts","sourceRoot":"","sources":["../../../dtos/responses/videoMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAoB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,qBAAa,YAAa,YAAW,aAAa,CAAC,SAAS,CAAC;IACzD,QAAQ,CAAC,IAAI,UAA0B;IAEvC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,iBAAiB,SAAS;IACnC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;gBAG5C,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,EACtC,OAAO,CAAC,EAAE,qBAAqB;CAStC"}
@@ -1 +1 @@
1
- {"version":3,"file":"botInstance.d.ts","sourceRoot":"","sources":["../../entities/botInstance.ts"],"names":[],"mappings":"AAKA,OAAO,EAAuB,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAO5D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,qBAAa,WAAW;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAqB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAEjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgC;IACzD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkC;IAC5D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyB;gBAEnC,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,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,gCAAgC,CAAC,EAAE,OAAO,CAAC;QAC3C,QAAQ,CAAC,EAAE;YACP,aAAa,CAAC,EAAE,cAAc,CAAC;YAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,SAAS,CAAC,EAAE,UAAU,CAAC;SAC1B,CAAC;KACL;IAwCD,OAAO,CAAC,6BAA6B;IA2CrC,OAAO,CAAC,2BAA2B;IAiC7B,IAAI,CAAC,IAAI,EAAE,MAAM;YAaT,YAAY;YAmCZ,cAAc;CA2B/B"}
1
+ {"version":3,"file":"botInstance.d.ts","sourceRoot":"","sources":["../../entities/botInstance.ts"],"names":[],"mappings":"AAKA,OAAO,EAAuB,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAO5D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIhD,qBAAa,WAAW;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAqB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAEjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgC;IACzD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkC;IAC5D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyB;gBAEnC,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,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,gCAAgC,CAAC,EAAE,OAAO,CAAC;QAC3C,QAAQ,CAAC,EAAE;YACP,aAAa,CAAC,EAAE,cAAc,CAAC;YAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,SAAS,CAAC,EAAE,UAAU,CAAC;SAC1B,CAAC;KACL;IAwCD,OAAO,CAAC,6BAA6B;IA2CrC,OAAO,CAAC,2BAA2B;IAiC7B,IAAI,CAAC,IAAI,EAAE,MAAM;YAaT,YAAY;YAuCZ,cAAc;CA2B/B"}
@@ -15,6 +15,7 @@ const chatContext_1 = require("./context/chatContext");
15
15
  const messageContext_1 = require("./context/messageContext");
16
16
  const chatInfo_1 = require("../dtos/chatInfo");
17
17
  const nodeTimeoutScheduler_1 = require("../services/nodeTimeoutScheduler");
18
+ const traceFactory_1 = require("../helpers/traceFactory");
18
19
  class BotInstance {
19
20
  constructor(options) {
20
21
  this.name = options.name;
@@ -34,7 +35,7 @@ class BotInstance {
34
35
  this.initializeMessageProcessing(options.verboseLoggingForIncomingMessage ?? false);
35
36
  this.initializeScheduledProcessing(options.scheduledPeriod ?? (0, timeConvertions_1.hoursToSeconds)(1));
36
37
  this.storage.saveMetadata(actions, this.name);
37
- this.logger.logWithTraceId(this.name, `System:Bot-${this.name}-Start`, 'System', 'Starting bot...');
38
+ this.logger.logWithTraceId(this.name, (0, traceFactory_1.createTrace)(this, this.name, 'Start'), 'System', 'Starting bot...');
38
39
  this.telegraf.launch();
39
40
  }
40
41
  initializeScheduledProcessing(period) {
@@ -61,7 +62,7 @@ class BotInstance {
61
62
  initializeMessageProcessing(verboseLoggingForIncomingMessage) {
62
63
  if (this.commands.length > 0) {
63
64
  this.telegraf.on('message', async (ctx) => {
64
- const msg = new incomingMessage_1.IncomingMessage(ctx.update.message);
65
+ const msg = new incomingMessage_1.IncomingMessage(ctx.update.message, this.name);
65
66
  const messageContent = msg.text || `<non-text message: ${msg.type}>`;
66
67
  const messageFromName = msg.from?.first_name ?? 'Unknown';
67
68
  const messageFromId = msg.from?.id ?? 'Unknown';
@@ -76,7 +77,7 @@ class BotInstance {
76
77
  }
77
78
  }
78
79
  async stop(code) {
79
- this.logger.logWithTraceId(this.name, `System:Bot-${this.name}-Stop`, 'System', 'Stopping bot...');
80
+ this.logger.logWithTraceId(this.name, (0, traceFactory_1.createTrace)(this, this.name, 'Stop'), 'System', 'Stopping bot...');
80
81
  this.scheduler.stopAll();
81
82
  await this.storage.close();
82
83
  this.telegraf.stop(code);
@@ -85,7 +86,7 @@ class BotInstance {
85
86
  const ctx = new chatContext_1.ChatContext(this.storage, this.logger, this.scheduler);
86
87
  for (const [chatName, chatId] of Object.entries(this.chats)) {
87
88
  for (const scheduledAction of this.scheduled) {
88
- ctx.initializeChatContext(this.name, scheduledAction, new chatInfo_1.ChatInfo(chatId, chatName), `Scheduled:${scheduledAction.key}:${chatId}`);
89
+ ctx.initializeChatContext(this.name, scheduledAction, new chatInfo_1.ChatInfo(chatId, chatName), (0, traceFactory_1.createTrace)(scheduledAction, this.name, `${scheduledAction.key}-${chatId}`));
89
90
  try {
90
91
  const responses = await scheduledAction.exec(ctx);
91
92
  this.api.enqueueBatchedResponses(responses);
@@ -7,6 +7,7 @@ import { Milliseconds } from '../../types/timeValues';
7
7
  import { ChatInfo } from '../../dtos/chatInfo';
8
8
  import { ILogger } from '../../types/logger';
9
9
  import { IScheduler } from '../../types/scheduler';
10
+ import { TraceId } from '../../types/trace';
10
11
  /**
11
12
  * Context of action executed in chat.
12
13
  */
@@ -19,7 +20,7 @@ export declare class ChatContext<TActionState extends IActionState> {
19
20
  /** Scheduler instance for the bot executing this action */
20
21
  readonly scheduler: IScheduler;
21
22
  /** Trace id of a action execution. */
22
- traceId: number | string;
23
+ traceId: TraceId;
23
24
  /** Name of a bot that executes this action. */
24
25
  botName: string;
25
26
  /** Chat information. */
@@ -28,7 +29,7 @@ export declare class ChatContext<TActionState extends IActionState> {
28
29
  responses: BotResponse[];
29
30
  isInitialized: boolean;
30
31
  constructor(storage: IStorageClient, logger: ILogger, scheduler: IScheduler);
31
- initializeChatContext(botName: string, action: IActionWithState<TActionState>, chatInfo: ChatInfo, traceId: number | string): this;
32
+ initializeChatContext(botName: string, action: IActionWithState<TActionState>, chatInfo: ChatInfo, traceId: TraceId): this;
32
33
  /**
33
34
  * Sends text message to chat after action execution is finished.
34
35
  * If multiple responses are sent, they will be sent in the order they were added, with delay of at least 35ms as per Telegram rate-limit.
@@ -1 +1 @@
1
- {"version":3,"file":"chatContext.d.ts","sourceRoot":"","sources":["../../../entities/context/chatContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAKrD,OAAO,EACH,qBAAqB,EACrB,yBAAyB,EAC5B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD;;GAEG;AACH,qBAAa,WAAW,CAAC,YAAY,SAAS,YAAY;IACtD,SAAS,CAAC,MAAM,EAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAElD,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAG,cAAc,CAAC;IAClC,wDAAwD;IACxD,QAAQ,CAAC,MAAM,EAAG,OAAO,CAAC;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,EAAG,UAAU,CAAC;IAEhC,sCAAsC;IACtC,OAAO,EAAG,MAAM,GAAG,MAAM,CAAC;IAC1B,+CAA+C;IAC/C,OAAO,EAAG,MAAM,CAAC;IACjB,wBAAwB;IACxB,QAAQ,EAAG,QAAQ,CAAC;IACpB,uDAAuD;IACvD,SAAS,EAAE,WAAW,EAAE,CAAM;IAE9B,aAAa,UAAS;gBAGlB,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,UAAU;IAOzB,qBAAqB,CACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,EACtC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,GAAG,MAAM;IAa5B;;;;;OAKG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,yBAAyB;IAahE;;;;;OAKG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB;IAc7D;;;;;OAKG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB;IAc7D;;;;OAIG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM;IAW9B;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE,YAAY;CAKxC"}
1
+ {"version":3,"file":"chatContext.d.ts","sourceRoot":"","sources":["../../../entities/context/chatContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAKrD,OAAO,EACH,qBAAqB,EACrB,yBAAyB,EAC5B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C;;GAEG;AACH,qBAAa,WAAW,CAAC,YAAY,SAAS,YAAY;IACtD,SAAS,CAAC,MAAM,EAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAElD,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAG,cAAc,CAAC;IAClC,wDAAwD;IACxD,QAAQ,CAAC,MAAM,EAAG,OAAO,CAAC;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,EAAG,UAAU,CAAC;IAEhC,sCAAsC;IACtC,OAAO,EAAG,OAAO,CAAC;IAClB,+CAA+C;IAC/C,OAAO,EAAG,MAAM,CAAC;IACjB,wBAAwB;IACxB,QAAQ,EAAG,QAAQ,CAAC;IACpB,uDAAuD;IACvD,SAAS,EAAE,WAAW,EAAE,CAAM;IAE9B,aAAa,UAAS;gBAGlB,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,UAAU;IAOzB,qBAAqB,CACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,EACtC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO;IAapB;;;;;OAKG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,yBAAyB;IAahE;;;;;OAKG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB;IAc7D;;;;;OAKG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB;IAc7D;;;;OAIG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM;IAW9B;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE,YAAY;CAKxC"}
@@ -0,0 +1,3 @@
1
+ import { TraceId } from '../types/trace';
2
+ export declare function createTrace<T extends object>(traceOwner: T, botName: string, traceName: string): TraceId;
3
+ //# sourceMappingURL=traceFactory.d.ts.map
@@ -0,0 +1 @@
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,CAAC,CAAC,SAAS,MAAM,EACxC,UAAU,EAAE,CAAC,EACb,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAClB,OAAO,CAET"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createTrace = createTrace;
4
+ function createTrace(traceOwner, botName, traceName) {
5
+ return `${traceOwner.constructor.name}:${botName}-${traceName}`;
6
+ }
package/dist/index.d.ts CHANGED
@@ -9,4 +9,5 @@ export * from './types/actionState';
9
9
  export * from './entities/states/actionStateBase';
10
10
  export { Hours, Milliseconds, Seconds } from './types/timeValues';
11
11
  export { MessageType } from './types/messageTypes';
12
+ export { TraceId } from './types/trace';
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,qBAAqB,CAAC;AACpC,cAAc,mCAAmC,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,qBAAqB,CAAC;AACpC,cAAc,mCAAmC,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC"}
@@ -1,8 +1,9 @@
1
1
  import { ILogger } from '../types/logger';
2
+ import { TraceId } from '../types/trace';
2
3
  export declare class JsonLogger implements ILogger {
3
4
  private serializeError;
4
- logObjectWithTraceId(botName: string, traceId: string | number, chatName: string, data: any): void;
5
- logWithTraceId(botName: string, traceId: string | number, chatName: string, text: string): void;
6
- errorWithTraceId<TData>(botName: string, traceId: string | number, chatName: string, errorObj: unknown, extraData?: TData | undefined): void;
5
+ logObjectWithTraceId(botName: string, traceId: TraceId, chatName: string, data: any): void;
6
+ logWithTraceId(botName: string, traceId: TraceId, chatName: string, text: string): void;
7
+ errorWithTraceId<TData>(botName: string, traceId: TraceId, chatName: string, errorObj: unknown, extraData?: TData | undefined): void;
7
8
  }
8
9
  //# sourceMappingURL=jsonLogger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"jsonLogger.d.ts","sourceRoot":"","sources":["../../services/jsonLogger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,qBAAa,UAAW,YAAW,OAAO;IAEtC,OAAO,CAAC,cAAc;IAQtB,oBAAoB,CAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,QAAQ,EAAE,MAAM,EAEhB,IAAI,EAAE,GAAG;IAQb,cAAc,CACV,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM;IAOhB,gBAAgB,CAAC,KAAK,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,SAAS,CAAC,EAAE,KAAK,GAAG,SAAS;CAQpC"}
1
+ {"version":3,"file":"jsonLogger.d.ts","sourceRoot":"","sources":["../../services/jsonLogger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,qBAAa,UAAW,YAAW,OAAO;IAEtC,OAAO,CAAC,cAAc;IAQtB,oBAAoB,CAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAEhB,IAAI,EAAE,GAAG;IAQb,cAAc,CACV,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM;IAOhB,gBAAgB,CAAC,KAAK,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,SAAS,CAAC,EAAE,KAAK,GAAG,SAAS;CAQpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"nodeTimeoutScheduler.d.ts","sourceRoot":"","sources":["../../services/nodeTimeoutScheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,qBAAa,oBAAqB,YAAW,UAAU;IACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,CAAM;gBAE5B,MAAM,EAAE,OAAO;IAI3B,OAAO;IAMP,UAAU,CACN,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,IAAI,EAClB,QAAQ,EAAE,YAAY,EACtB,gBAAgB,EAAE,OAAO,EACzB,SAAS,EAAE,MAAM;IAmBrB,iBAAiB,CACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,IAAI,EAClB,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,MAAM;CAoBxB"}
1
+ {"version":3,"file":"nodeTimeoutScheduler.d.ts","sourceRoot":"","sources":["../../services/nodeTimeoutScheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,qBAAa,oBAAqB,YAAW,UAAU;IACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,CAAM;gBAE5B,MAAM,EAAE,OAAO;IAI3B,OAAO;IAMP,UAAU,CACN,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,IAAI,EAClB,QAAQ,EAAE,YAAY,EACtB,gBAAgB,EAAE,OAAO,EACzB,SAAS,EAAE,MAAM;IAmBrB,iBAAiB,CACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,IAAI,EAClB,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,MAAM;CAoBxB"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NodeTimeoutScheduler = void 0;
4
4
  const taskRecord_1 = require("../entities/taskRecord");
5
+ const traceFactory_1 = require("../helpers/traceFactory");
5
6
  class NodeTimeoutScheduler {
6
7
  constructor(logger) {
7
8
  this.activeTasks = [];
@@ -18,16 +19,16 @@ class NodeTimeoutScheduler {
18
19
  if (executeRightAway) {
19
20
  setImmediate(action);
20
21
  }
21
- this.logger.logWithTraceId(ownerName, `System:TaskScheduler-${ownerName}-${name}`, 'System', `Created task [${taskId}]${name}, that will run every ${interval}ms.`);
22
+ this.logger.logWithTraceId(ownerName, (0, traceFactory_1.createTrace)(this, ownerName, name), 'System', `Created task [${taskId}]${name}, that will run every ${interval}ms.`);
22
23
  this.activeTasks.push(task);
23
24
  }
24
25
  createOnetimeTask(name, action, delay, ownerName) {
25
26
  const actionWrapper = () => {
26
- this.logger.logWithTraceId(ownerName, `System:TaskScheduler-${ownerName}-${name}`, 'System', `Executing delayed oneshot [${taskId}]${name}`);
27
+ this.logger.logWithTraceId(ownerName, (0, traceFactory_1.createTrace)(this, ownerName, name), 'System', `Executing delayed oneshot [${taskId}]${name}`);
27
28
  action();
28
29
  };
29
30
  const taskId = setTimeout(actionWrapper, delay);
30
- this.logger.logWithTraceId(ownerName, `System:TaskScheduler-${ownerName}-${name}`, 'System', `Created oneshot task [${taskId}]${name}, that will run in ${delay}ms.`);
31
+ this.logger.logWithTraceId(ownerName, (0, traceFactory_1.createTrace)(this, ownerName, name), 'System', `Created oneshot task [${taskId}]${name}, that will run in ${delay}ms.`);
31
32
  }
32
33
  }
33
34
  exports.NodeTimeoutScheduler = NodeTimeoutScheduler;
@@ -1,6 +1,7 @@
1
+ import { TraceId } from './trace';
1
2
  export interface ILogger {
2
- logObjectWithTraceId(botName: string, traceId: string | number, chatName: string, data: any): void;
3
- logWithTraceId(botName: string, traceId: string | number, chatName: string, text: string): void;
4
- errorWithTraceId<TData>(botName: string, traceId: string | number, chatName: string, errorObj: unknown, extraData?: TData | undefined): void;
3
+ logObjectWithTraceId(botName: string, traceId: TraceId, chatName: string, data: any): void;
4
+ logWithTraceId(botName: string, traceId: TraceId, chatName: string, text: string): void;
5
+ errorWithTraceId<TData>(botName: string, traceId: TraceId, chatName: string, errorObj: unknown, extraData?: TData | undefined): void;
5
6
  }
6
7
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../types/logger.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACpB,oBAAoB,CAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,QAAQ,EAAE,MAAM,EAEhB,IAAI,EAAE,GAAG,GACV,IAAI,CAAC;IAER,cAAc,CACV,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACb,IAAI,CAAC;IAER,gBAAgB,CAAC,KAAK,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,SAAS,CAAC,EAAE,KAAK,GAAG,SAAS,GAC9B,IAAI,CAAC;CACX"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../types/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,WAAW,OAAO;IACpB,oBAAoB,CAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAEhB,IAAI,EAAE,GAAG,GACV,IAAI,CAAC;IAER,cAAc,CACV,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACb,IAAI,CAAC;IAER,gBAAgB,CAAC,KAAK,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,SAAS,CAAC,EAAE,KAAK,GAAG,SAAS,GAC9B,IAAI,CAAC;CACX"}
@@ -7,6 +7,7 @@ import { UnpinResponse } from '../dtos/responses/unpin';
7
7
  import { VideoMessage } from '../dtos/responses/videoMessage';
8
8
  import { IActionState } from './actionState';
9
9
  import { IActionWithState } from './actionWithState';
10
+ import { TraceId } from './trace';
10
11
  export declare const BotResponseTypes: {
11
12
  readonly unpin: "unpin";
12
13
  readonly text: "text";
@@ -19,7 +20,7 @@ export type BotResponse = UnpinResponse | Reaction | TextMessage | VideoMessage
19
20
  export interface IChatResponse {
20
21
  readonly kind: keyof typeof BotResponseTypes;
21
22
  readonly chatInfo: ChatInfo;
22
- readonly traceId: number | string;
23
+ readonly traceId: TraceId;
23
24
  readonly action: IActionWithState<IActionState>;
24
25
  }
25
26
  export interface IReplyMessage<TType> extends IChatResponse {
@@ -1 +1 @@
1
- {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../types/response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,eAAO,MAAM,gBAAgB;;;;;;;CAOnB,CAAC;AAEX,MAAM,MAAM,WAAW,GACjB,aAAa,GACb,QAAQ,GACR,WAAW,GACX,YAAY,GACZ,aAAa,GACb,YAAY,CAAC;AAEnB,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,OAAO,gBAAgB,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IAElC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,aAAa,CAAC,KAAK,CAAE,SAAQ,aAAa;IACvD,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC/B"}
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../types/response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,eAAO,MAAM,gBAAgB;;;;;;;CAOnB,CAAC;AAEX,MAAM,MAAM,WAAW,GACjB,aAAa,GACb,QAAQ,GACR,WAAW,GACX,YAAY,GACZ,aAAa,GACb,YAAY,CAAC;AAEnB,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,OAAO,gBAAgB,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,aAAa,CAAC,KAAK,CAAE,SAAQ,aAAa;IACvD,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC/B"}
@@ -0,0 +1,2 @@
1
+ export type TraceId = `${string}:${string}-${string}`;
2
+ //# sourceMappingURL=trace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../types/trace.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -2,6 +2,8 @@ import { Message, Update, User } from 'telegraf/types';
2
2
  import { randomInt } from 'crypto';
3
3
  import { MessageType, MessageTypeValue } from '../types/messageTypes';
4
4
  import { ChatInfo } from './chatInfo';
5
+ import { createTrace } from '../helpers/traceFactory';
6
+ import { TraceId } from '../types/trace';
5
7
 
6
8
  export class IncomingMessage {
7
9
  readonly message_id: number;
@@ -9,7 +11,7 @@ export class IncomingMessage {
9
11
  readonly from: User | undefined;
10
12
  readonly text: string;
11
13
  readonly type: MessageTypeValue;
12
- readonly traceId = randomInt(10000, 99999);
14
+ readonly traceId: TraceId;
13
15
 
14
16
  private detectMessageType(
15
17
  message: Update.New & (Update.NonChannel & Message)
@@ -29,7 +31,15 @@ export class IncomingMessage {
29
31
  return MessageType.Unknown;
30
32
  }
31
33
 
32
- constructor(ctxMessage: Update.New & (Update.NonChannel & Message)) {
34
+ constructor(
35
+ ctxMessage: Update.New & (Update.NonChannel & Message),
36
+ botName: string
37
+ ) {
38
+ this.traceId = createTrace(
39
+ this,
40
+ botName,
41
+ randomInt(10000, 99999).toString()
42
+ );
33
43
  this.message_id = ctxMessage.message_id;
34
44
  this.from = ctxMessage.from;
35
45
  this.text = 'text' in ctxMessage ? ctxMessage.text : '';
@@ -2,20 +2,21 @@ import { IActionState } from '../../types/actionState';
2
2
  import { IActionWithState } from '../../types/actionWithState';
3
3
  import { BotResponseTypes, IChatResponse } from '../../types/response';
4
4
  import { Milliseconds } from '../../types/timeValues';
5
+ import { TraceId } from '../../types/trace';
5
6
  import { ChatInfo } from '../chatInfo';
6
7
 
7
8
  export class DelayResponse implements IChatResponse {
8
9
  readonly kind = BotResponseTypes.delay;
9
10
 
10
11
  readonly chatInfo: ChatInfo;
11
- readonly traceId: number | string;
12
+ readonly traceId: TraceId;
12
13
  readonly delay: Milliseconds;
13
14
  readonly action: IActionWithState<IActionState>;
14
15
 
15
16
  constructor(
16
17
  delay: Milliseconds,
17
18
  chatInfo: ChatInfo,
18
- traceId: number | string,
19
+ traceId: TraceId,
19
20
  action: IActionWithState<IActionState>
20
21
  ) {
21
22
  this.chatInfo = chatInfo;
@@ -4,6 +4,7 @@ import { MessageSendingOptions } from '../../types/messageSendingOptions';
4
4
  import { IActionWithState } from '../../types/actionWithState';
5
5
  import { IActionState } from '../../types/actionState';
6
6
  import { ChatInfo } from '../chatInfo';
7
+ import { TraceId } from '../../types/trace';
7
8
 
8
9
  export class ImageMessage implements IReplyMessage<InputFile> {
9
10
  readonly kind = BotResponseTypes.image;
@@ -11,7 +12,7 @@ export class ImageMessage implements IReplyMessage<InputFile> {
11
12
  readonly content: InputFile;
12
13
  readonly chatInfo: ChatInfo;
13
14
  readonly replyId: number | undefined;
14
- readonly traceId: string | number;
15
+ readonly traceId: TraceId;
15
16
  readonly disableWebPreview = false;
16
17
  readonly shouldPin: boolean;
17
18
  readonly action: IActionWithState<IActionState>;
@@ -20,7 +21,7 @@ export class ImageMessage implements IReplyMessage<InputFile> {
20
21
  image: InputFile,
21
22
  chatInfo: ChatInfo,
22
23
  replyId: number | undefined,
23
- traceId: number | string,
24
+ traceId: TraceId,
24
25
  action: IActionWithState<IActionState>,
25
26
  options?: MessageSendingOptions
26
27
  ) {
@@ -3,18 +3,19 @@ import { BotResponseTypes, IChatResponse } from '../../types/response';
3
3
  import { IActionWithState } from '../../types/actionWithState';
4
4
  import { IActionState } from '../../types/actionState';
5
5
  import { ChatInfo } from '../chatInfo';
6
+ import { TraceId } from '../../types/trace';
6
7
 
7
8
  export class Reaction implements IChatResponse {
8
9
  readonly kind = BotResponseTypes.react;
9
10
 
10
11
  readonly chatInfo: ChatInfo;
11
12
  readonly messageId: number;
12
- readonly traceId: number | string;
13
+ readonly traceId: TraceId;
13
14
  readonly emoji: TelegramEmoji;
14
15
  readonly action: IActionWithState<IActionState>;
15
16
 
16
17
  constructor(
17
- traceId: number | string,
18
+ traceId: TraceId,
18
19
  chatInfo: ChatInfo,
19
20
  messageId: number,
20
21
  emoji: TelegramEmoji,
@@ -3,6 +3,7 @@ import { BotResponseTypes, IReplyMessage } from '../../types/response';
3
3
  import { IActionWithState } from '../../types/actionWithState';
4
4
  import { IActionState } from '../../types/actionState';
5
5
  import { ChatInfo } from '../chatInfo';
6
+ import { TraceId } from '../../types/trace';
6
7
 
7
8
  export class TextMessage implements IReplyMessage<string> {
8
9
  readonly kind = BotResponseTypes.text;
@@ -10,7 +11,7 @@ export class TextMessage implements IReplyMessage<string> {
10
11
  readonly content: string;
11
12
  readonly chatInfo: ChatInfo;
12
13
  readonly replyId: number | undefined;
13
- readonly traceId: string | number;
14
+ readonly traceId: TraceId;
14
15
  readonly disableWebPreview: boolean;
15
16
  readonly shouldPin: boolean;
16
17
  readonly action: IActionWithState<IActionState>;
@@ -19,7 +20,7 @@ export class TextMessage implements IReplyMessage<string> {
19
20
  text: string,
20
21
  chatInfo: ChatInfo,
21
22
  replyId: number | undefined,
22
- traceId: string | number,
23
+ traceId: TraceId,
23
24
  action: IActionWithState<IActionState>,
24
25
  options?: TextMessageSendingOptions
25
26
  ) {
@@ -2,19 +2,20 @@ import { BotResponseTypes, IChatResponse } from '../../types/response';
2
2
  import { IActionWithState } from '../../types/actionWithState';
3
3
  import { IActionState } from '../../types/actionState';
4
4
  import { ChatInfo } from '../chatInfo';
5
+ import { TraceId } from '../../types/trace';
5
6
 
6
7
  export class UnpinResponse implements IChatResponse {
7
8
  readonly kind = BotResponseTypes.unpin;
8
9
 
9
10
  readonly messageId: number;
10
11
  readonly chatInfo: ChatInfo;
11
- readonly traceId: number | string;
12
+ readonly traceId: TraceId;
12
13
  readonly action: IActionWithState<IActionState>;
13
14
 
14
15
  constructor(
15
16
  messageId: number,
16
17
  chatInfo: ChatInfo,
17
- traceId: number | string,
18
+ traceId: TraceId,
18
19
  action: IActionWithState<IActionState>
19
20
  ) {
20
21
  this.messageId = messageId;
@@ -4,6 +4,7 @@ import { MessageSendingOptions } from '../../types/messageSendingOptions';
4
4
  import { IActionWithState } from '../../types/actionWithState';
5
5
  import { IActionState } from '../../types/actionState';
6
6
  import { ChatInfo } from '../chatInfo';
7
+ import { TraceId } from '../../types/trace';
7
8
 
8
9
  export class VideoMessage implements IReplyMessage<InputFile> {
9
10
  readonly kind = BotResponseTypes.video;
@@ -11,7 +12,7 @@ export class VideoMessage implements IReplyMessage<InputFile> {
11
12
  readonly content: InputFile;
12
13
  readonly chatInfo: ChatInfo;
13
14
  readonly replyId: number | undefined;
14
- readonly traceId: string | number;
15
+ readonly traceId: TraceId;
15
16
  readonly disableWebPreview = false;
16
17
  readonly shouldPin: boolean;
17
18
  readonly action: IActionWithState<IActionState>;
@@ -20,7 +21,7 @@ export class VideoMessage implements IReplyMessage<InputFile> {
20
21
  video: InputFile,
21
22
  chatInfo: ChatInfo,
22
23
  replyId: number | undefined,
23
- traceId: number | string,
24
+ traceId: TraceId,
24
25
  action: IActionWithState<IActionState>,
25
26
  options?: MessageSendingOptions
26
27
  ) {
@@ -19,6 +19,7 @@ import { ChatInfo } from '../dtos/chatInfo';
19
19
  import { ILogger } from '../types/logger';
20
20
  import { IScheduler } from '../types/scheduler';
21
21
  import { NodeTimeoutScheduler } from '../services/nodeTimeoutScheduler';
22
+ import { createTrace } from '../helpers/traceFactory';
22
23
 
23
24
  export class BotInstance {
24
25
  private readonly api: TelegramApiService;
@@ -79,7 +80,7 @@ export class BotInstance {
79
80
 
80
81
  this.logger.logWithTraceId(
81
82
  this.name,
82
- `System:Bot-${this.name}-Start`,
83
+ createTrace(this, this.name, 'Start'),
83
84
  'System',
84
85
  'Starting bot...'
85
86
  );
@@ -134,7 +135,7 @@ export class BotInstance {
134
135
  ) {
135
136
  if (this.commands.length > 0) {
136
137
  this.telegraf.on('message', async (ctx) => {
137
- const msg = new IncomingMessage(ctx.update.message);
138
+ const msg = new IncomingMessage(ctx.update.message, this.name);
138
139
  const messageContent =
139
140
  msg.text || `<non-text message: ${msg.type}>`;
140
141
 
@@ -165,7 +166,7 @@ export class BotInstance {
165
166
  async stop(code: string) {
166
167
  this.logger.logWithTraceId(
167
168
  this.name,
168
- `System:Bot-${this.name}-Stop`,
169
+ createTrace(this, this.name, 'Stop'),
169
170
  'System',
170
171
  'Stopping bot...'
171
172
  );
@@ -188,7 +189,11 @@ export class BotInstance {
188
189
  this.name,
189
190
  scheduledAction,
190
191
  new ChatInfo(chatId, chatName),
191
- `Scheduled:${scheduledAction.key}:${chatId}`
192
+ createTrace(
193
+ scheduledAction,
194
+ this.name,
195
+ `${scheduledAction.key}-${chatId}`
196
+ )
192
197
  );
193
198
 
194
199
  try {
@@ -16,6 +16,7 @@ import { DelayResponse } from '../../dtos/responses/delay';
16
16
  import { ChatInfo } from '../../dtos/chatInfo';
17
17
  import { ILogger } from '../../types/logger';
18
18
  import { IScheduler } from '../../types/scheduler';
19
+ import { TraceId } from '../../types/trace';
19
20
 
20
21
  /**
21
22
  * Context of action executed in chat.
@@ -31,7 +32,7 @@ export class ChatContext<TActionState extends IActionState> {
31
32
  readonly scheduler!: IScheduler;
32
33
 
33
34
  /** Trace id of a action execution. */
34
- traceId!: number | string;
35
+ traceId!: TraceId;
35
36
  /** Name of a bot that executes this action. */
36
37
  botName!: string;
37
38
  /** Chat information. */
@@ -55,7 +56,7 @@ export class ChatContext<TActionState extends IActionState> {
55
56
  botName: string,
56
57
  action: IActionWithState<TActionState>,
57
58
  chatInfo: ChatInfo,
58
- traceId: number | string
59
+ traceId: TraceId
59
60
  ) {
60
61
  this.botName = botName;
61
62
  this.action = action;
@@ -0,0 +1,9 @@
1
+ import { TraceId } from '../types/trace';
2
+
3
+ export function createTrace<T extends object>(
4
+ traceOwner: T,
5
+ botName: string,
6
+ traceName: string
7
+ ): TraceId {
8
+ return `${traceOwner.constructor.name}:${botName}-${traceName}`;
9
+ }
package/index.ts CHANGED
@@ -9,3 +9,4 @@ export * from './types/actionState';
9
9
  export * from './entities/states/actionStateBase';
10
10
  export { Hours, Milliseconds, Seconds } from './types/timeValues';
11
11
  export { MessageType } from './types/messageTypes';
12
+ export { TraceId } from './types/trace';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chz-telegram-bot",
3
- "version": "0.0.52",
3
+ "version": "0.0.53",
4
4
  "type": "module",
5
5
  "dependencies": {
6
6
  "async-sema": "^3.1.1",
@@ -1,4 +1,5 @@
1
1
  import { ILogger } from '../types/logger';
2
+ import { TraceId } from '../types/trace';
2
3
 
3
4
  export class JsonLogger implements ILogger {
4
5
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -12,7 +13,7 @@ export class JsonLogger implements ILogger {
12
13
 
13
14
  logObjectWithTraceId(
14
15
  botName: string,
15
- traceId: string | number,
16
+ traceId: TraceId,
16
17
  chatName: string,
17
18
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
19
  data: any
@@ -25,7 +26,7 @@ export class JsonLogger implements ILogger {
25
26
 
26
27
  logWithTraceId(
27
28
  botName: string,
28
- traceId: string | number,
29
+ traceId: TraceId,
29
30
  chatName: string,
30
31
  text: string
31
32
  ) {
@@ -36,7 +37,7 @@ export class JsonLogger implements ILogger {
36
37
 
37
38
  errorWithTraceId<TData>(
38
39
  botName: string,
39
- traceId: string | number,
40
+ traceId: TraceId,
40
41
  chatName: string,
41
42
  errorObj: unknown,
42
43
  extraData?: TData | undefined
@@ -1,4 +1,5 @@
1
1
  import { TaskRecord } from '../entities/taskRecord';
2
+ import { createTrace } from '../helpers/traceFactory';
2
3
  import { ILogger } from '../types/logger';
3
4
  import { IScheduler } from '../types/scheduler';
4
5
  import { Milliseconds } from '../types/timeValues';
@@ -33,7 +34,7 @@ export class NodeTimeoutScheduler implements IScheduler {
33
34
 
34
35
  this.logger.logWithTraceId(
35
36
  ownerName,
36
- `System:TaskScheduler-${ownerName}-${name}`,
37
+ createTrace(this, ownerName, name),
37
38
  'System',
38
39
  `Created task [${taskId}]${name}, that will run every ${interval}ms.`
39
40
  );
@@ -50,7 +51,7 @@ export class NodeTimeoutScheduler implements IScheduler {
50
51
  const actionWrapper = () => {
51
52
  this.logger.logWithTraceId(
52
53
  ownerName,
53
- `System:TaskScheduler-${ownerName}-${name}`,
54
+ createTrace(this, ownerName, name),
54
55
  'System',
55
56
  `Executing delayed oneshot [${taskId}]${name}`
56
57
  );
@@ -60,7 +61,7 @@ export class NodeTimeoutScheduler implements IScheduler {
60
61
 
61
62
  this.logger.logWithTraceId(
62
63
  ownerName,
63
- `System:TaskScheduler-${ownerName}-${name}`,
64
+ createTrace(this, ownerName, name),
64
65
  'System',
65
66
  `Created oneshot task [${taskId}]${name}, that will run in ${delay}ms.`
66
67
  );
package/types/logger.ts CHANGED
@@ -1,7 +1,9 @@
1
+ import { TraceId } from './trace';
2
+
1
3
  export interface ILogger {
2
4
  logObjectWithTraceId(
3
5
  botName: string,
4
- traceId: string | number,
6
+ traceId: TraceId,
5
7
  chatName: string,
6
8
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
9
  data: any
@@ -9,14 +11,14 @@ export interface ILogger {
9
11
 
10
12
  logWithTraceId(
11
13
  botName: string,
12
- traceId: string | number,
14
+ traceId: TraceId,
13
15
  chatName: string,
14
16
  text: string
15
17
  ): void;
16
18
 
17
19
  errorWithTraceId<TData>(
18
20
  botName: string,
19
- traceId: string | number,
21
+ traceId: TraceId,
20
22
  chatName: string,
21
23
  errorObj: unknown,
22
24
  extraData?: TData | undefined
package/types/response.ts CHANGED
@@ -7,6 +7,7 @@ import { UnpinResponse } from '../dtos/responses/unpin';
7
7
  import { VideoMessage } from '../dtos/responses/videoMessage';
8
8
  import { IActionState } from './actionState';
9
9
  import { IActionWithState } from './actionWithState';
10
+ import { TraceId } from './trace';
10
11
 
11
12
  export const BotResponseTypes = {
12
13
  unpin: 'unpin',
@@ -28,7 +29,7 @@ export type BotResponse =
28
29
  export interface IChatResponse {
29
30
  readonly kind: keyof typeof BotResponseTypes;
30
31
  readonly chatInfo: ChatInfo;
31
- readonly traceId: number | string;
32
+ readonly traceId: TraceId;
32
33
 
33
34
  readonly action: IActionWithState<IActionState>;
34
35
  }
package/types/trace.ts ADDED
@@ -0,0 +1 @@
1
+ export type TraceId = `${string}:${string}-${string}`;