chz-telegram-bot 0.0.40 → 0.0.42

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.
@@ -20,6 +20,7 @@ export declare class BotInstance {
20
20
  storageClient?: IStorageClient;
21
21
  storagePath?: string;
22
22
  scheduledPeriod?: Seconds;
23
+ verboseLoggingForIncomingMessage?: boolean;
23
24
  });
24
25
  private initializeScheduledProcessing;
25
26
  private initializeMessageProcessing;
@@ -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;AAM5D,qBAAa,WAAW;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,GAAG,CAAqB;IAChC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,EAAE,cAAc,CAAC;gBAEZ,OAAO,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;QACxC,SAAS,EAAE,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9B,aAAa,CAAC,EAAE,cAAc,CAAC;QAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,eAAe,CAAC,EAAE,OAAO,CAAC;KAC7B;IAmCD,OAAO,CAAC,6BAA6B;IA2CrC,OAAO,CAAC,2BAA2B;IAqB7B,IAAI,CAAC,IAAI,EAAE,MAAM;YAYT,YAAY;YAyBZ,cAAc;CAmB/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;AAM5D,qBAAa,WAAW;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,GAAG,CAAqB;IAChC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,EAAE,cAAc,CAAC;gBAEZ,OAAO,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;QACxC,SAAS,EAAE,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9B,aAAa,CAAC,EAAE,cAAc,CAAC;QAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,gCAAgC,CAAC,EAAE,OAAO,CAAC;KAC9C;IAqCD,OAAO,CAAC,6BAA6B;IA2CrC,OAAO,CAAC,2BAA2B;IAiC7B,IAAI,CAAC,IAAI,EAAE,MAAM;YAYT,YAAY;YAyBZ,cAAc;CAmB/B"}
@@ -25,7 +25,7 @@ class BotInstance {
25
25
  options.storageClient ??
26
26
  new jsonFileStorage_1.JsonFileStorage(options.name, actions, options.storagePath);
27
27
  this.api = new telegramApi_1.TelegramApiService(this.name, this.telegraf.telegram, this.storage, this.chats);
28
- this.initializeMessageProcessing();
28
+ this.initializeMessageProcessing(options.verboseLoggingForIncomingMessage ?? false);
29
29
  this.initializeScheduledProcessing(options.scheduledPeriod ?? (0, timeConvertions_1.hoursToSeconds)(1));
30
30
  this.storage.saveMetadata(actions, this.name);
31
31
  this.telegraf.launch();
@@ -51,14 +51,19 @@ class BotInstance {
51
51
  }, delay, this.name);
52
52
  }
53
53
  }
54
- initializeMessageProcessing() {
54
+ initializeMessageProcessing(verboseLoggingForIncomingMessage) {
55
55
  if (this.commands.length > 0) {
56
56
  this.telegraf.on('message', async (ctx) => {
57
57
  const msg = new incomingMessage_1.IncomingMessage(ctx.update.message);
58
58
  const messageContent = msg.text || `<non-text message: ${msg.type}>`;
59
59
  const messageFromName = msg.from?.first_name ?? 'Unknown';
60
60
  const messageFromId = msg.from?.id ?? 'Unknown';
61
- logger_1.Logger.logWithTraceId(this.name, msg.traceId, msg.chatName, `${messageFromName} (${messageFromId}): ${messageContent}`);
61
+ if (verboseLoggingForIncomingMessage) {
62
+ logger_1.Logger.logObjectWithTraceId(this.name, msg.traceId, msg.chatName, ctx.update.message);
63
+ }
64
+ else {
65
+ logger_1.Logger.logWithTraceId(this.name, msg.traceId, msg.chatName, `${messageFromName} (${messageFromId}): ${messageContent}`);
66
+ }
62
67
  await this.processMessage(msg);
63
68
  });
64
69
  }
package/dist/main.d.ts CHANGED
@@ -24,6 +24,8 @@ declare function startBot(options: {
24
24
  storagePath?: string;
25
25
  /** Period of time between execution of scheduled actions. */
26
26
  scheduledPeriod?: Seconds;
27
+ /** If true, telegram API objects will be logged instead of message content. */
28
+ verboseLoggingForIncomingMessage?: boolean;
27
29
  }): Promise<BotInstance>;
28
30
  /**
29
31
  * Terminates all scheduled tasks, closes storage connections and stops all bots.
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../main.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAQ7C;;GAEG;AACH,iBAAe,QAAQ,CAAC,OAAO,EAAE;IAC7B,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,aAAa,EAAE,MAAM,CAAC;IACtB,2HAA2H;IAC3H,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;IACxC,mGAAmG;IACnG,SAAS,EAAE,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;IAC3C,yGAAyG;IACzG,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,qGAAqG;IACrG,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,2KAA2K;IAC3K,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B,wBAeA;AAED;;GAEG;AACH,iBAAe,QAAQ,CAAC,MAAM,EAAE,MAAM,iBASrC;AAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../main.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAQ7C;;GAEG;AACH,iBAAe,QAAQ,CAAC,OAAO,EAAE;IAC7B,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,aAAa,EAAE,MAAM,CAAC;IACtB,2HAA2H;IAC3H,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;IACxC,mGAAmG;IACnG,SAAS,EAAE,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;IAC3C,yGAAyG;IACzG,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,qGAAqG;IACrG,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,2KAA2K;IAC3K,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,+EAA+E;IAC/E,gCAAgC,CAAC,EAAE,OAAO,CAAC;CAC9C,wBAiBA;AAED;;GAEG;AACH,iBAAe,QAAQ,CAAC,MAAM,EAAE,MAAM,iBASrC;AAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC"}
package/dist/main.js CHANGED
@@ -23,7 +23,8 @@ async function startBot(options) {
23
23
  chats: options.chats,
24
24
  storageClient: options.storageClient,
25
25
  storagePath: options.storagePath,
26
- scheduledPeriod: options.scheduledPeriod
26
+ scheduledPeriod: options.scheduledPeriod,
27
+ verboseLoggingForIncomingMessage: options.verboseLoggingForIncomingMessage
27
28
  });
28
29
  bots.push(bot);
29
30
  return bot;
@@ -1,5 +1,6 @@
1
1
  declare class JsonLogger {
2
2
  private serializeError;
3
+ logObjectWithTraceId(botName: string, traceId: string | number, chatName: string, data: any): void;
3
4
  logWithTraceId(botName: string, traceId: string | number, chatName: string, text: string): void;
4
5
  errorWithTraceId<TData>(botName: string, traceId: string | number, chatName: string, errorObj: unknown, extraData?: TData | undefined): void;
5
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../services/logger.ts"],"names":[],"mappings":"AAAA,cAAM,UAAU;IAEZ,OAAO,CAAC,cAAc;IAQtB,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;AAED,eAAO,MAAM,MAAM,YAAmB,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../services/logger.ts"],"names":[],"mappings":"AAAA,cAAM,UAAU;IAEZ,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;AAED,eAAO,MAAM,MAAM,YAAmB,CAAC"}
@@ -10,6 +10,14 @@ class JsonLogger {
10
10
  });
11
11
  return JSON.stringify(plainObject);
12
12
  }
13
+ logObjectWithTraceId(botName, traceId, chatName,
14
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
15
+ data) {
16
+ data.botName = botName;
17
+ data.traceId = traceId;
18
+ data.chatName = chatName;
19
+ console.log(data);
20
+ }
13
21
  logWithTraceId(botName, traceId, chatName, text) {
14
22
  console.log(`{"botName":"${botName}","traceId":"${traceId}","chatName":"${chatName}","text":"${text}"}`);
15
23
  }
@@ -33,6 +33,7 @@ export class BotInstance {
33
33
  storageClient?: IStorageClient;
34
34
  storagePath?: string;
35
35
  scheduledPeriod?: Seconds;
36
+ verboseLoggingForIncomingMessage?: boolean;
36
37
  }) {
37
38
  this.name = options.name;
38
39
  this.commands = options.commands;
@@ -58,7 +59,9 @@ export class BotInstance {
58
59
  this.chats
59
60
  );
60
61
 
61
- this.initializeMessageProcessing();
62
+ this.initializeMessageProcessing(
63
+ options.verboseLoggingForIncomingMessage ?? false
64
+ );
62
65
  this.initializeScheduledProcessing(
63
66
  options.scheduledPeriod ?? hoursToSeconds(1 as Hours)
64
67
  );
@@ -111,7 +114,9 @@ export class BotInstance {
111
114
  );
112
115
  }
113
116
  }
114
- private initializeMessageProcessing() {
117
+ private initializeMessageProcessing(
118
+ verboseLoggingForIncomingMessage: boolean
119
+ ) {
115
120
  if (this.commands.length > 0) {
116
121
  this.telegraf.on('message', async (ctx) => {
117
122
  const msg = new IncomingMessage(ctx.update.message);
@@ -120,12 +125,22 @@ export class BotInstance {
120
125
 
121
126
  const messageFromName = msg.from?.first_name ?? 'Unknown';
122
127
  const messageFromId = msg.from?.id ?? 'Unknown';
123
- Logger.logWithTraceId(
124
- this.name,
125
- msg.traceId,
126
- msg.chatName,
127
- `${messageFromName} (${messageFromId}): ${messageContent}`
128
- );
128
+
129
+ if (verboseLoggingForIncomingMessage) {
130
+ Logger.logObjectWithTraceId(
131
+ this.name,
132
+ msg.traceId,
133
+ msg.chatName,
134
+ ctx.update.message
135
+ );
136
+ } else {
137
+ Logger.logWithTraceId(
138
+ this.name,
139
+ msg.traceId,
140
+ msg.chatName,
141
+ `${messageFromName} (${messageFromId}): ${messageContent}`
142
+ );
143
+ }
129
144
 
130
145
  await this.processMessage(msg);
131
146
  });
package/main.ts CHANGED
@@ -34,6 +34,8 @@ async function startBot(options: {
34
34
  storagePath?: string;
35
35
  /** Period of time between execution of scheduled actions. */
36
36
  scheduledPeriod?: Seconds;
37
+ /** If true, telegram API objects will be logged instead of message content. */
38
+ verboseLoggingForIncomingMessage?: boolean;
37
39
  }) {
38
40
  const token = await readFile(options.tokenFilePath, 'utf8');
39
41
  const bot = new BotInstance({
@@ -44,7 +46,9 @@ async function startBot(options: {
44
46
  chats: options.chats,
45
47
  storageClient: options.storageClient,
46
48
  storagePath: options.storagePath,
47
- scheduledPeriod: options.scheduledPeriod
49
+ scheduledPeriod: options.scheduledPeriod,
50
+ verboseLoggingForIncomingMessage:
51
+ options.verboseLoggingForIncomingMessage
48
52
  });
49
53
  bots.push(bot);
50
54
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chz-telegram-bot",
3
- "version": "0.0.40",
3
+ "version": "0.0.42",
4
4
  "type": "module",
5
5
  "dependencies": {
6
6
  "async-sema": "^3.1.1",
@@ -8,6 +8,19 @@ class JsonLogger {
8
8
  return JSON.stringify(plainObject);
9
9
  }
10
10
 
11
+ logObjectWithTraceId(
12
+ botName: string,
13
+ traceId: string | number,
14
+ chatName: string,
15
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
+ data: any
17
+ ) {
18
+ data.botName = botName;
19
+ data.traceId = traceId;
20
+ data.chatName = chatName;
21
+ console.log(data);
22
+ }
23
+
11
24
  logWithTraceId(
12
25
  botName: string,
13
26
  traceId: string | number,