chz-telegram-bot 0.0.52 → 0.0.54
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.
- package/dist/dtos/incomingMessage.d.ts +3 -2
- package/dist/dtos/incomingMessage.d.ts.map +1 -1
- package/dist/dtos/incomingMessage.js +3 -2
- package/dist/dtos/responses/delay.d.ts +3 -2
- package/dist/dtos/responses/delay.d.ts.map +1 -1
- package/dist/dtos/responses/imageMessage.d.ts +3 -2
- package/dist/dtos/responses/imageMessage.d.ts.map +1 -1
- package/dist/dtos/responses/reaction.d.ts +3 -2
- package/dist/dtos/responses/reaction.d.ts.map +1 -1
- package/dist/dtos/responses/textMessage.d.ts +3 -2
- package/dist/dtos/responses/textMessage.d.ts.map +1 -1
- package/dist/dtos/responses/unpin.d.ts +3 -2
- package/dist/dtos/responses/unpin.d.ts.map +1 -1
- package/dist/dtos/responses/videoMessage.d.ts +3 -2
- package/dist/dtos/responses/videoMessage.d.ts.map +1 -1
- package/dist/entities/botInstance.d.ts.map +1 -1
- package/dist/entities/botInstance.js +5 -4
- package/dist/entities/context/chatContext.d.ts +3 -2
- package/dist/entities/context/chatContext.d.ts.map +1 -1
- package/dist/helpers/traceFactory.d.ts +3 -0
- package/dist/helpers/traceFactory.d.ts.map +1 -0
- package/dist/helpers/traceFactory.js +6 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/services/jsonLogger.d.ts +4 -3
- package/dist/services/jsonLogger.d.ts.map +1 -1
- package/dist/services/nodeTimeoutScheduler.d.ts.map +1 -1
- package/dist/services/nodeTimeoutScheduler.js +4 -3
- package/dist/types/logger.d.ts +4 -3
- package/dist/types/logger.d.ts.map +1 -1
- package/dist/types/response.d.ts +2 -1
- package/dist/types/response.d.ts.map +1 -1
- package/dist/types/timeValues.d.ts +7 -3
- package/dist/types/timeValues.d.ts.map +1 -1
- package/dist/types/trace.d.ts +6 -0
- package/dist/types/trace.d.ts.map +1 -0
- package/dist/types/trace.js +2 -0
- package/dtos/incomingMessage.ts +12 -2
- package/dtos/responses/delay.ts +3 -2
- package/dtos/responses/imageMessage.ts +3 -2
- package/dtos/responses/reaction.ts +3 -2
- package/dtos/responses/textMessage.ts +3 -2
- package/dtos/responses/unpin.ts +3 -2
- package/dtos/responses/videoMessage.ts +3 -2
- package/entities/botInstance.ts +9 -4
- package/entities/context/chatContext.ts +3 -2
- package/helpers/traceFactory.ts +9 -0
- package/index.ts +1 -0
- package/package.json +1 -1
- package/services/jsonLogger.ts +4 -3
- package/services/nodeTimeoutScheduler.ts +4 -3
- package/types/logger.ts +5 -3
- package/types/response.ts +2 -1
- package/types/timeValues.ts +7 -3
- package/types/trace.ts +3 -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:
|
|
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,
|
|
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:
|
|
10
|
+
readonly traceId: TraceId;
|
|
10
11
|
readonly delay: Milliseconds;
|
|
11
12
|
readonly action: IActionWithState<IActionState>;
|
|
12
|
-
constructor(delay: Milliseconds, chatInfo: ChatInfo, traceId:
|
|
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,
|
|
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:
|
|
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:
|
|
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;
|
|
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:
|
|
11
|
+
readonly traceId: TraceId;
|
|
11
12
|
readonly emoji: TelegramEmoji;
|
|
12
13
|
readonly action: IActionWithState<IActionState>;
|
|
13
|
-
constructor(traceId:
|
|
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;
|
|
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:
|
|
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:
|
|
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;
|
|
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:
|
|
10
|
+
readonly traceId: TraceId;
|
|
10
11
|
readonly action: IActionWithState<IActionState>;
|
|
11
|
-
constructor(messageId: number, chatInfo: ChatInfo, traceId:
|
|
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;
|
|
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:
|
|
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:
|
|
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;
|
|
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;
|
|
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,
|
|
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,
|
|
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),
|
|
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:
|
|
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:
|
|
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;
|
|
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 @@
|
|
|
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,GAEkD,OAAO,CAC7E"}
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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:
|
|
5
|
-
logWithTraceId(botName: string, traceId:
|
|
6
|
-
errorWithTraceId<TData>(botName: string, traceId:
|
|
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;
|
|
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;
|
|
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,
|
|
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,
|
|
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,
|
|
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;
|
package/dist/types/logger.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { TraceId } from './trace';
|
|
1
2
|
export interface ILogger {
|
|
2
|
-
logObjectWithTraceId(botName: string, traceId:
|
|
3
|
-
logWithTraceId(botName: string, traceId:
|
|
4
|
-
errorWithTraceId<TData>(botName: string, traceId:
|
|
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,
|
|
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"}
|
package/dist/types/response.d.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
|
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:
|
|
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;
|
|
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"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
+
declare const millisecondsSymbol: unique symbol;
|
|
2
|
+
declare const secondsSymbol: unique symbol;
|
|
3
|
+
declare const hoursSymbol: unique symbol;
|
|
1
4
|
export type Milliseconds = number & {
|
|
2
|
-
|
|
5
|
+
[millisecondsSymbol]: void;
|
|
3
6
|
};
|
|
4
7
|
export type Seconds = number & {
|
|
5
|
-
|
|
8
|
+
[secondsSymbol]: void;
|
|
6
9
|
};
|
|
7
10
|
export type Hours = number & {
|
|
8
|
-
|
|
11
|
+
[hoursSymbol]: void;
|
|
9
12
|
};
|
|
10
13
|
export type HoursOfDay = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23;
|
|
14
|
+
export {};
|
|
11
15
|
//# sourceMappingURL=timeValues.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeValues.d.ts","sourceRoot":"","sources":["../../types/timeValues.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG;IAAE,
|
|
1
|
+
{"version":3,"file":"timeValues.d.ts","sourceRoot":"","sources":["../../types/timeValues.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,kBAAkB,EAAE,OAAO,MAAM,CAAC;AAChD,OAAO,CAAC,MAAM,aAAa,EAAE,OAAO,MAAM,CAAC;AAC3C,OAAO,CAAC,MAAM,WAAW,EAAE,OAAO,MAAM,CAAC;AAEzC,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG;IAAE,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AACnE,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG;IAAE,CAAC,aAAa,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AACzD,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG;IAAE,CAAC,WAAW,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAErD,MAAM,MAAM,UAAU,GAChB,CAAC,GACD,CAAC,GACD,CAAC,GACD,CAAC,GACD,CAAC,GACD,CAAC,GACD,CAAC,GACD,CAAC,GACD,CAAC,GACD,CAAC,GACD,EAAE,GACF,EAAE,GACF,EAAE,GACF,EAAE,GACF,EAAE,GACF,EAAE,GACF,EAAE,GACF,EAAE,GACF,EAAE,GACF,EAAE,GACF,EAAE,GACF,EAAE,GACF,EAAE,GACF,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../types/trace.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,WAAW,EAAE,OAAO,MAAM,CAAC;AAEzC,MAAM,MAAM,OAAO,GAAG,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,GAAG;IAAE,CAAC,WAAW,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC"}
|
package/dtos/incomingMessage.ts
CHANGED
|
@@ -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
|
|
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(
|
|
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 : '';
|
package/dtos/responses/delay.ts
CHANGED
|
@@ -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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
13
|
+
readonly traceId: TraceId;
|
|
13
14
|
readonly emoji: TelegramEmoji;
|
|
14
15
|
readonly action: IActionWithState<IActionState>;
|
|
15
16
|
|
|
16
17
|
constructor(
|
|
17
|
-
traceId:
|
|
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:
|
|
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:
|
|
23
|
+
traceId: TraceId,
|
|
23
24
|
action: IActionWithState<IActionState>,
|
|
24
25
|
options?: TextMessageSendingOptions
|
|
25
26
|
) {
|
package/dtos/responses/unpin.ts
CHANGED
|
@@ -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:
|
|
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:
|
|
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:
|
|
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:
|
|
24
|
+
traceId: TraceId,
|
|
24
25
|
action: IActionWithState<IActionState>,
|
|
25
26
|
options?: MessageSendingOptions
|
|
26
27
|
) {
|
package/entities/botInstance.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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!:
|
|
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:
|
|
59
|
+
traceId: TraceId
|
|
59
60
|
) {
|
|
60
61
|
this.botName = botName;
|
|
61
62
|
this.action = action;
|
package/index.ts
CHANGED
package/package.json
CHANGED
package/services/jsonLogger.ts
CHANGED
|
@@ -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:
|
|
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:
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
32
|
+
readonly traceId: TraceId;
|
|
32
33
|
|
|
33
34
|
readonly action: IActionWithState<IActionState>;
|
|
34
35
|
}
|
package/types/timeValues.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
declare const millisecondsSymbol: unique symbol;
|
|
2
|
+
declare const secondsSymbol: unique symbol;
|
|
3
|
+
declare const hoursSymbol: unique symbol;
|
|
4
|
+
|
|
5
|
+
export type Milliseconds = number & { [millisecondsSymbol]: void };
|
|
6
|
+
export type Seconds = number & { [secondsSymbol]: void };
|
|
7
|
+
export type Hours = number & { [hoursSymbol]: void };
|
|
4
8
|
|
|
5
9
|
export type HoursOfDay =
|
|
6
10
|
| 0
|
package/types/trace.ts
ADDED