@vvlad1973/telegram-bot-client 1.2.0 → 2.0.0

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 (66) hide show
  1. package/.claude/settings.local.json +7 -0
  2. package/README.md +300 -273
  3. package/dist/agents/LongPollingManager.d.ts +5 -6
  4. package/dist/agents/LongPollingManager.js +48 -46
  5. package/dist/agents/LongPollingManager.js.map +1 -1
  6. package/dist/agents/types/polling-manager.types.d.ts +4 -4
  7. package/dist/agents/workers/WorkerClientFactory.js +3 -3
  8. package/dist/agents/workers/WorkerClientFactory.js.map +1 -1
  9. package/dist/agents/workers/long-polling-worker-test.js +2 -1
  10. package/dist/agents/workers/long-polling-worker-test.js.map +1 -1
  11. package/dist/api/BaseTelegramApi.generated.js +481 -0
  12. package/dist/api/BaseTelegramApi.generated.js.map +1 -1
  13. package/dist/client/TelegramBotClient.d.ts +15 -4
  14. package/dist/client/TelegramBotClient.js +17 -4
  15. package/dist/client/TelegramBotClient.js.map +1 -1
  16. package/dist/client/index.d.ts +1 -1
  17. package/dist/client/index.js.map +1 -1
  18. package/dist/client/managers/PollingIntegrationManager.d.ts +160 -0
  19. package/dist/client/managers/PollingIntegrationManager.js +274 -0
  20. package/dist/client/managers/PollingIntegrationManager.js.map +1 -0
  21. package/dist/client/managers/RouteConfigManager.d.ts +186 -0
  22. package/dist/client/managers/RouteConfigManager.js +395 -0
  23. package/dist/client/managers/RouteConfigManager.js.map +1 -0
  24. package/dist/client/managers/RouteLifecycleManager.d.ts +146 -0
  25. package/dist/client/managers/RouteLifecycleManager.js +402 -0
  26. package/dist/client/managers/RouteLifecycleManager.js.map +1 -0
  27. package/dist/client/managers/index.d.ts +11 -0
  28. package/dist/client/managers/index.js +10 -0
  29. package/dist/client/managers/index.js.map +1 -0
  30. package/dist/helpers/index.d.ts +1 -0
  31. package/dist/helpers/index.js +2 -0
  32. package/dist/helpers/index.js.map +1 -1
  33. package/dist/helpers/logger-helpers.d.ts +2 -5
  34. package/dist/helpers/logger-helpers.js +2 -10
  35. package/dist/helpers/logger-helpers.js.map +1 -1
  36. package/dist/helpers/logging-decorators.d.ts +43 -0
  37. package/dist/helpers/logging-decorators.js +156 -0
  38. package/dist/helpers/logging-decorators.js.map +1 -0
  39. package/dist/index.d.ts +2 -2
  40. package/dist/index.js +1 -3
  41. package/dist/index.js.map +1 -1
  42. package/dist/queue/InMemoryQueueProvider.d.ts +2 -2
  43. package/dist/queue/InMemoryQueueProvider.js +2 -2
  44. package/dist/queue/InMemoryQueueProvider.js.map +1 -1
  45. package/dist/transport/TelegramHttpClient.d.ts +2 -2
  46. package/dist/transport/TelegramHttpClient.js +2 -2
  47. package/dist/transport/TelegramHttpClient.js.map +1 -1
  48. package/dist/transport/TelegramHttpTransport.d.ts +2 -2
  49. package/dist/transport/TelegramHttpTransport.js +3 -4
  50. package/dist/transport/TelegramHttpTransport.js.map +1 -1
  51. package/dist/transport/TelegramTransport.d.ts +2 -2
  52. package/dist/transport/TelegramTransport.js +23 -7
  53. package/dist/transport/TelegramTransport.js.map +1 -1
  54. package/dist/transport/TokensManager.d.ts +2 -2
  55. package/dist/transport/TokensManager.js +6 -6
  56. package/dist/transport/TokensManager.js.map +1 -1
  57. package/dist/transport/index.d.ts +0 -1
  58. package/dist/transport/index.js +1 -3
  59. package/dist/transport/index.js.map +1 -1
  60. package/dist/types/logger.types.d.ts +3 -9
  61. package/dist/types/route.types.d.ts +110 -0
  62. package/dist/types/route.types.js +19 -0
  63. package/dist/types/route.types.js.map +1 -0
  64. package/dist/types/transport.types.d.ts +3 -1
  65. package/package.json +1 -1
  66. package/test_output.txt +256 -0
@@ -20,8 +20,8 @@ export interface TokensManagerOptions extends LoggerOptions {
20
20
  export declare class TokensManager implements TokensData, ILoggerAware {
21
21
  private tokens;
22
22
  private defaultTokenId?;
23
- /** Logger instance */
24
- readonly logger?: ILogger;
23
+ /** Logger instance - mutable to support LoggerBinder.bind() */
24
+ logger?: ILogger;
25
25
  /**
26
26
  * Create a new TokensManager instance
27
27
  * @param options - Configuration options or initial tokens map (for backward compatibility)
@@ -11,7 +11,7 @@ import { initializeLogger } from '../helpers/logger-helpers.js';
11
11
  export class TokensManager {
12
12
  tokens = new Map();
13
13
  defaultTokenId;
14
- /** Logger instance */
14
+ /** Logger instance - mutable to support LoggerBinder.bind() */
15
15
  logger;
16
16
  /**
17
17
  * Create a new TokensManager instance
@@ -28,7 +28,7 @@ export class TokensManager {
28
28
  }
29
29
  else if (options) {
30
30
  // New options-based initialization
31
- this.logger = initializeLogger(this, options.loggerName || 'TokensManager', options.loggerBinder, options.logger);
31
+ this.logger = initializeLogger(this, options.logger);
32
32
  if (options.initialTokens) {
33
33
  this.tokens = new Map(options.initialTokens);
34
34
  }
@@ -36,7 +36,7 @@ export class TokensManager {
36
36
  this.defaultTokenId = options.defaultTokenId;
37
37
  }
38
38
  if (this.logger && this.logger.info) {
39
- this.logger.info({ tokenCount: this.tokens.size, hasDefault: !!this.defaultTokenId }, 'TokensManager initialized');
39
+ this.logger.info(`TokensManager initialized with ${this.tokens.size} token(s)${this.defaultTokenId ? ` (default: ${this.defaultTokenId})` : ''}`);
40
40
  }
41
41
  }
42
42
  }
@@ -63,7 +63,7 @@ export class TokensManager {
63
63
  this.defaultTokenId = tokenId;
64
64
  }
65
65
  if (this.logger && this.logger.info) {
66
- this.logger.info({ tokenId, isDefault: isFirst, totalTokens: this.tokens.size }, `Token ${tokenId} added`);
66
+ this.logger.info(`Token ${tokenId} added${isFirst ? ' (set as default)' : ''} - total: ${this.tokens.size}`);
67
67
  }
68
68
  return true;
69
69
  }
@@ -99,7 +99,7 @@ export class TokensManager {
99
99
  }
100
100
  }
101
101
  if (this.logger && this.logger.info) {
102
- this.logger.info({ tokenId, wasDefault, newDefaultId, totalTokens: this.tokens.size }, `Token ${tokenId} removed`);
102
+ this.logger.info(`Token ${tokenId} removed${wasDefault && newDefaultId ? ` (new default: ${newDefaultId})` : ''} - total: ${this.tokens.size}`);
103
103
  }
104
104
  return true;
105
105
  }
@@ -126,7 +126,7 @@ export class TokensManager {
126
126
  const oldDefaultId = this.defaultTokenId;
127
127
  this.defaultTokenId = tokenId;
128
128
  if (this.logger && this.logger.info) {
129
- this.logger.info({ tokenId, oldDefaultId }, `Default token changed to ${tokenId}`);
129
+ this.logger.info(`Default token changed${oldDefaultId ? ` from ${oldDefaultId}` : ''} to ${tokenId}`);
130
130
  }
131
131
  return true;
132
132
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TokensManager.js","sourceRoot":"","sources":["../../src/transport/TokensManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TokensManager.js","sourceRoot":"","sources":["../../src/transport/TokensManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,CAAC;AAIb,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAYhE;;;GAGG;AACH,MAAM,OAAO,aAAa;IAChB,MAAM,GAAqB,IAAI,GAAG,EAAkB,CAAC;IACrD,cAAc,CAAU;IAEhC,+DAA+D;IACxD,MAAM,CAAW;IAExB;;;;OAIG;IACH,YACE,OAAiD,EACjD,cAAuB;QAEvB,gFAAgF;QAChF,IAAI,OAAO,YAAY,GAAG,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;YAC/B,IAAI,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;gBACtD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;YACvC,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,EAAE,CAAC;YACnB,mCAAmC;YACnC,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAErD,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC/C,CAAC;YAED,IAAI,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBACtE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;YAC/C,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,kCAAkC,IAAI,CAAC,MAAM,CAAC,IAAI,YAAY,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAChI,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,OAAe,EAAE,KAAa;QACrC,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,OAAO,iBAAiB,CAAC,CAAC;YACnE,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAEhC,4CAA4C;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC;QACvC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAChC,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,SAAS,OAAO,SAAS,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,aAAa,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAC3F,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,OAAe,EAAE,SAAkB;QAC7C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,OAAO,YAAY,CAAC,CAAC;YAC9D,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,KAAK,OAAO,CAAC;QACnD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE5B,qDAAqD;QACrD,IAAI,YAAgC,CAAC;QACrC,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5C,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;gBAChC,YAAY,GAAG,SAAS,CAAC;YAC3B,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAChC,2CAA2C;gBAC3C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;gBACtD,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;YAClC,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,SAAS,OAAO,WAAW,UAAU,IAAI,YAAY,CAAC,CAAC,CAAC,kBAAkB,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,aAAa,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAC9H,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,OAAe;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,OAAe;QAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,6BAA6B,OAAO,YAAY,CAAC,CAAC;YAClF,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAE9B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,wBAAwB,YAAY,CAAC,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,OAAO,EAAE,CACpF,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,WAAW;QACT,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,OAAe;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;IAClC,CAAC;CACF"}
@@ -8,4 +8,3 @@
8
8
  export { TelegramHttpClient, TelegramHttpError } from './TelegramHttpClient.js';
9
9
  export { TokensManager, type TokensManagerOptions } from './TokensManager.js';
10
10
  export { TelegramTransport, type TelegramTransportOptions } from './TelegramTransport.js';
11
- export { TelegramHttpTransport, type TelegramHttpTransportOptions } from './TelegramHttpTransport.js';
@@ -8,8 +8,6 @@
8
8
  'use strict';
9
9
  export { TelegramHttpClient, TelegramHttpError } from './TelegramHttpClient.js';
10
10
  export { TokensManager } from './TokensManager.js';
11
- // New universal transport
11
+ // Universal transport
12
12
  export { TelegramTransport } from './TelegramTransport.js';
13
- // Backward compatibility: Keep old transport class
14
- export { TelegramHttpTransport } from './TelegramHttpTransport.js';
15
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,YAAY,CAAC;AAEb,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,aAAa,EAA6B,MAAM,oBAAoB,CAAC;AAE9E,0BAA0B;AAC1B,OAAO,EACL,iBAAiB,EAElB,MAAM,wBAAwB,CAAC;AAEhC,mDAAmD;AACnD,OAAO,EACL,qBAAqB,EAEtB,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,YAAY,CAAC;AAEb,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,aAAa,EAA6B,MAAM,oBAAoB,CAAC;AAE9E,sBAAsB;AACtB,OAAO,EACL,iBAAiB,EAElB,MAAM,wBAAwB,CAAC"}
@@ -4,7 +4,6 @@
4
4
  * @module types/logger
5
5
  */
6
6
  import type { ExternalLogger } from '@vvlad1973/simple-logger';
7
- import type { LoggerBinder } from '@vvlad1973/logger-tree';
8
7
  /**
9
8
  * Logger interface alias for convenience
10
9
  */
@@ -15,19 +14,14 @@ export type ILogger = ExternalLogger;
15
14
  export interface LoggerOptions {
16
15
  /** Logger instance to use */
17
16
  logger?: ILogger;
18
- /** Logger binder for automatic binding */
19
- loggerBinder?: LoggerBinder;
20
- /** Logger name for automatic creation */
21
- loggerName?: string;
22
- /** Message prefix for logger output */
23
- msgPrefix?: string;
24
17
  }
25
18
  /**
26
19
  * Interface for components that support logger integration
20
+ * Compatible with LoggerAware from @vvlad1973/logger-tree
27
21
  */
28
22
  export interface ILoggerAware {
29
- /** Logger instance */
30
- readonly logger?: ILogger;
23
+ /** Logger instance - mutable to support LoggerBinder.bind() */
24
+ logger?: ILogger;
31
25
  }
32
26
  /**
33
27
  * Helper type for constructor options with logger support
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Types for route configuration and management
3
+ *
4
+ * @module types/route
5
+ */
6
+ import type { User } from '../api/types/User.generated.js';
7
+ import type { InputFile } from '../api/types/InputFile.generated.js';
8
+ import type { WebhookInfo } from '../api/types/WebhookInfo.generated.js';
9
+ /**
10
+ * Route operation mode
11
+ */
12
+ export declare enum RouteMode {
13
+ /** Webhook mode - receive updates via webhook */
14
+ Webhook = "webhook",
15
+ /** Long polling mode - fetch updates via getUpdates */
16
+ LongPolling = "longPolling",
17
+ /** Inactive mode - route is disabled */
18
+ Inactive = "inactive"
19
+ }
20
+ /**
21
+ * Route status information
22
+ */
23
+ export interface RouteStatus {
24
+ /** Current operation mode */
25
+ mode: RouteMode;
26
+ /** Is route active */
27
+ active: boolean;
28
+ /** Webhook info (if in webhook mode) */
29
+ webhookInfo?: WebhookInfo;
30
+ /** Last update ID (if in longPolling mode) */
31
+ lastUpdateId?: number;
32
+ /** Bot information */
33
+ botInfo?: User;
34
+ }
35
+ /**
36
+ * Webhook configuration for a route
37
+ */
38
+ export interface WebhookConfig {
39
+ /**
40
+ * Full webhook URL (absolute URL)
41
+ * If specified, takes precedence over path
42
+ * Example: 'https://example.com/webhook/bot1'
43
+ */
44
+ url?: string;
45
+ /**
46
+ * Webhook path (relative path, combined with webhookBaseUrl from TelegramBotClient)
47
+ * Used when url is not specified
48
+ * Example: '/bot1' -> combined with 'https://example.com/webhooks' -> 'https://example.com/webhooks/bot1'
49
+ */
50
+ path?: string;
51
+ /** Secret token for webhook validation */
52
+ secretToken?: string;
53
+ /** Max simultaneous connections (1-100, default: 40) */
54
+ maxConnections?: number;
55
+ /** Allowed update types */
56
+ allowedUpdates?: string[];
57
+ /** Drop pending updates when setting webhook */
58
+ dropPendingUpdates?: boolean;
59
+ /** Fixed IP address for webhook */
60
+ ipAddress?: string;
61
+ /** Certificate for self-signed webhook */
62
+ certificate?: InputFile;
63
+ }
64
+ /**
65
+ * Long polling configuration
66
+ */
67
+ export interface LongPollingConfig {
68
+ /** Polling interval in milliseconds (default: 1000) */
69
+ interval?: number;
70
+ /** Timeout for long polling request in seconds (default: 30) */
71
+ timeout?: number;
72
+ /** Limit of updates to fetch (1-100, default: 100) */
73
+ limit?: number;
74
+ /** Allowed update types */
75
+ allowedUpdates?: string[];
76
+ }
77
+ /**
78
+ * Configuration for a bot route
79
+ */
80
+ export interface RouteConfig {
81
+ /** Bot token */
82
+ token: string;
83
+ /** Initial operation mode (default: inactive) */
84
+ mode?: RouteMode;
85
+ /** Webhook configuration (for webhook mode) */
86
+ webhook?: WebhookConfig;
87
+ /** Long polling configuration (for longPolling mode) */
88
+ longPolling?: LongPollingConfig;
89
+ /** Auto-activate on init (default: true) */
90
+ autoActivate?: boolean;
91
+ /** Cached bot info (set after init) */
92
+ botInfo?: User;
93
+ /** Current route status (managed internally) */
94
+ status?: RouteStatus;
95
+ }
96
+ /**
97
+ * Default values for webhook configuration
98
+ */
99
+ export interface WebhookDefaults {
100
+ /** Default secret token for all routes */
101
+ secretToken?: string;
102
+ /** Default max connections (1-100) */
103
+ maxConnections?: number;
104
+ /** Default allowed update types */
105
+ allowedUpdates?: string[];
106
+ /** Default drop pending updates flag */
107
+ dropPendingUpdates?: boolean;
108
+ /** Default IP address */
109
+ ipAddress?: string;
110
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Types for route configuration and management
3
+ *
4
+ * @module types/route
5
+ */
6
+ 'use strict';
7
+ /**
8
+ * Route operation mode
9
+ */
10
+ export var RouteMode;
11
+ (function (RouteMode) {
12
+ /** Webhook mode - receive updates via webhook */
13
+ RouteMode["Webhook"] = "webhook";
14
+ /** Long polling mode - fetch updates via getUpdates */
15
+ RouteMode["LongPolling"] = "longPolling";
16
+ /** Inactive mode - route is disabled */
17
+ RouteMode["Inactive"] = "inactive";
18
+ })(RouteMode || (RouteMode = {}));
19
+ //# sourceMappingURL=route.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.types.js","sourceRoot":"","sources":["../../src/types/route.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,CAAC;AAMb;;GAEG;AACH,MAAM,CAAN,IAAY,SASX;AATD,WAAY,SAAS;IACnB,iDAAiD;IACjD,gCAAmB,CAAA;IAEnB,uDAAuD;IACvD,wCAA2B,CAAA;IAE3B,wCAAwC;IACxC,kCAAqB,CAAA;AACvB,CAAC,EATW,SAAS,KAAT,SAAS,QASpB"}
@@ -1,3 +1,4 @@
1
+ import type { ILoggerAware } from './logger.types.js';
1
2
  export type TokensDictionary = Map<string, string>;
2
3
  /**
3
4
  * Method priority configuration for queue-based transport
@@ -39,8 +40,9 @@ export interface TransportRequestOptions {
39
40
  /**
40
41
  * Transport interface for Telegram API communication
41
42
  * Supports both direct HTTP and queue-based modes
43
+ * Extends ILoggerAware for LoggerBinder compatibility
42
44
  */
43
- export interface ITransport {
45
+ export interface ITransport extends ILoggerAware {
44
46
  /**
45
47
  * Execute a transport request
46
48
  * @param options - Request options
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vvlad1973/telegram-bot-client",
3
- "version": "1.2.0",
3
+ "version": "2.0.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -0,0 +1,256 @@
1
+
2
+ > @vvlad1973/telegram-bot-client@1.3.0 test
3
+ > vitest
4
+
5
+
6
+  RUN  v4.0.16 c:/Repositories/lib/@vvlad1973/telegram-bot
7
+
8
+ ✓ src/__test__/errors/TelegramError.test.ts (41 tests) 16ms
9
+ ✓ src/__test__/client/managers/RouteLifecycleManager.test.ts (36 tests) 29ms
10
+ ✓ src/__test__/client/managers/PollingIntegrationManager.test.ts (31 tests) 63ms
11
+ ✓ src/__test__/client/managers/RouteConfigManager.test.ts (44 tests) 96ms
12
+ ✓ src/__test__/builders/InlineKeyboardBuilder.test.ts (62 tests) 21ms
13
+ stdout | src/__test__/queue/InMemoryQueueProvider.test.ts > InMemoryQueueProvider > constructor > should create provider with custom config
14
+ [InMemoryQueueProvider] Initialized with config: { globalLimit: 50, queueLimit: 2, concurrency: 3, debug: true }
15
+
16
+ stdout | src/__test__/queue/InMemoryQueueProvider.test.ts > InMemoryQueueProvider > enqueue > should enqueue and execute task
17
+ [2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
18
+
19
+ stdout | src/__test__/queue/InMemoryQueueProvider.test.ts > InMemoryQueueProvider > enqueue > should enqueue task with priority
20
+ [2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
21
+
22
+ stdout | src/__test__/queue/InMemoryQueueProvider.test.ts > InMemoryQueueProvider > enqueue > should use default priority if not provided
23
+ [2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
24
+
25
+ stdout | src/__test__/queue/InMemoryQueueProvider.test.ts > InMemoryQueueProvider > enqueue > should handle multiple tasks in same queue
26
+ [2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
27
+
28
+ stdout | src/__test__/queue/InMemoryQueueProvider.test.ts > InMemoryQueueProvider > enqueue > should handle tasks in different queues
29
+ [2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
30
+ [2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
31
+
32
+ stdout | src/__test__/queue/InMemoryQueueProvider.test.ts > InMemoryQueueProvider > enqueue > should execute task and update stats
33
+ [2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
34
+
35
+ stdout | src/__test__/queue/InMemoryQueueProvider.test.ts > InMemoryQueueProvider > enqueue > should handle task failure and update stats
36
+ [2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
37
+
38
+ stdout | src/__test__/queue/InMemoryQueueProvider.test.ts > InMemoryQueueProvider > enqueue > should handle serializable tasks with registered handlers
39
+ [2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
40
+
41
+ stdout | src/__test__/queue/InMemoryQueueProvider.test.ts > InMemoryQueueProvider > enqueue > should throw error for unknown task type
42
+ [2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
43
+
44
+ stdout | src/__test__/queue/InMemoryQueueProvider.test.ts > InMemoryQueueProvider > getStats > should return stats for existing queue
45
+ [2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
46
+
47
+ stdout | src/__test__/queue/InMemoryQueueProvider.test.ts > InMemoryQueueProvider > getStats > should calculate throughput correctly
48
+ [2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
49
+
50
+ stdout | src/__test__/queue/InMemoryQueueProvider.test.ts > InMemoryQueueProvider > close > should clear all queues
51
+ [2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
52
+ [2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
53
+
54
+ stdout | src/__test__/queue/InMemoryQueueProvider.test.ts > InMemoryQueueProvider > close > should work with debug mode enabled
55
+ [InMemoryQueueProvider] Initialized with config: { globalLimit: 30, queueLimit: 1, concurrency: 1, debug: true }
56
+ [InMemoryQueueProvider] Created queue: test-queue
57
+ [InMemoryQueueProvider] Task enqueued to test-queue, priority: 5
58
+
59
+ stdout | src/__test__/queue/InMemoryQueueProvider.test.ts > InMemoryQueueProvider > close > should work with debug mode enabled
60
+ [InMemoryQueueProvider] Task completed in test-queue
61
+
62
+ stdout | src/__test__/queue/InMemoryQueueProvider.test.ts > InMemoryQueueProvider > close > should work with debug mode enabled
63
+ [InMemoryQueueProvider] Closing all queues
64
+ [2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
65
+ [InMemoryQueueProvider] Cleared queue: test-queue
66
+
67
+ stdout | src/__test__/queue/InMemoryQueueProvider.test.ts > InMemoryQueueProvider > queue management > should return queue names after creating queues
68
+ [2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
69
+ [2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
70
+
71
+ stdout | src/__test__/queue/InMemoryQueueProvider.test.ts > InMemoryQueueProvider > queue management > should return correct queue count
72
+ [2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
73
+ [2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
74
+
75
+ stdout | src/__test__/queue/InMemoryQueueProvider.test.ts > InMemoryQueueProvider > queue management > should return true for existing queue
76
+ [2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
77
+
78
+ stdout | src/__test__/queue/InMemoryQueueProvider.test.ts > InMemoryQueueProvider > getGlobalStats > should return global stats for all queues
79
+ [2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
80
+ [2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
81
+ [2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
82
+
83
+ stdout | src/__test__/queue/InMemoryQueueProvider.test.ts > InMemoryQueueProvider > getGlobalStats > should include failed tasks in global stats
84
+ [2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
85
+ [2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
86
+
87
+ stdout | src/__test__/queue/InMemoryQueueProvider.test.ts > InMemoryQueueProvider > task handlers > should execute registered handler
88
+ [2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
89
+
90
+ stdout | src/__test__/queue/InMemoryQueueProvider.test.ts > InMemoryQueueProvider > debug mode > should work with debug enabled
91
+ [InMemoryQueueProvider] Initialized with config: { globalLimit: 30, queueLimit: 1, concurrency: 1, debug: true }
92
+ [InMemoryQueueProvider] Created queue: debug-queue
93
+ [InMemoryQueueProvider] Task enqueued to debug-queue, priority: 5
94
+
95
+ stdout | src/__test__/queue/InMemoryQueueProvider.test.ts > InMemoryQueueProvider > debug mode > should work with debug enabled
96
+ [InMemoryQueueProvider] Task completed in debug-queue
97
+
98
+ stdout | src/__test__/queue/InMemoryQueueProvider.test.ts > InMemoryQueueProvider > debug mode > should work with debug enabled
99
+ [InMemoryQueueProvider] Closing all queues
100
+ [2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
101
+ [InMemoryQueueProvider] Cleared queue: debug-queue
102
+
103
+ stdout | src/__test__/queue/InMemoryQueueProvider.test.ts > InMemoryQueueProvider > debug mode > should handle task failure in debug mode
104
+ [InMemoryQueueProvider] Initialized with config: { globalLimit: 30, queueLimit: 1, concurrency: 1, debug: true }
105
+ [InMemoryQueueProvider] Created queue: debug-queue
106
+ [InMemoryQueueProvider] Task enqueued to debug-queue, priority: 5
107
+
108
+ stdout | src/__test__/queue/InMemoryQueueProvider.test.ts > InMemoryQueueProvider > debug mode > should handle task failure in debug mode
109
+ [InMemoryQueueProvider] Closing all queues
110
+ [2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
111
+ [InMemoryQueueProvider] Cleared queue: debug-queue
112
+
113
+ stdout | src/__test__/queue/InMemoryQueueProvider.test.ts > InMemoryQueueProvider > error handling > should throw error when processing empty queue
114
+ [2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
115
+
116
+ stdout | src/__test__/queue/InMemoryQueueProvider.test.ts > InMemoryQueueProvider > error handling > should propagate errors from tasks
117
+ [2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
118
+
119
+ ✓ src/__test__/queue/InMemoryQueueProvider.test.ts (34 tests) 68ms
120
+ ✓ src/__test__/builders/BotCommandsBuilder.test.ts (32 tests) 31ms
121
+ ✓ src/__test__/agents/PollingLoop.test.ts (14 tests) 20ms
122
+ ✓ src/__test__/helpers/update-helpers.test.ts (45 tests) 15ms
123
+ stdout | src/__test__/queue/QueueProviderFactory.test.ts > QueueProviderFactory > create > should create in-memory provider with custom config
124
+ [InMemoryQueueProvider] Initialized with config: { globalLimit: 50, queueLimit: 2, concurrency: 3, debug: true }
125
+
126
+ stdout | src/__test__/queue/QueueProviderFactory.test.ts > QueueProviderFactory > createFromEnv > should create in-memory provider from env variables
127
+ [InMemoryQueueProvider] Initialized with config: { globalLimit: 50, queueLimit: 2, concurrency: 3, debug: true }
128
+
129
+ stdout | src/__test__/queue/QueueProviderFactory.test.ts > QueueProviderFactory > createFromEnv > should handle QUEUE_DEBUG=true
130
+ [InMemoryQueueProvider] Initialized with config: { globalLimit: 30, queueLimit: 1, concurrency: 1, debug: true }
131
+
132
+ stdout | src/__test__/queue/QueueProviderFactory.test.ts > QueueProviderFactory > createInMemoryProvider helper > should create provider with full config override
133
+ [InMemoryQueueProvider] Initialized with config: { globalLimit: 50, queueLimit: 2, concurrency: 3, debug: true }
134
+
135
+ stdout | src/__test__/queue/QueueProviderFactory.test.ts > QueueProviderFactory > createInMemoryProvider helper > should merge config with defaults
136
+ [InMemoryQueueProvider] Initialized with config: { globalLimit: 30, queueLimit: 1, concurrency: 1, debug: true }
137
+
138
+ stdout | src/__test__/queue/QueueProviderFactory.test.ts > QueueProviderFactory > integration > should create functional provider
139
+ [2025-12-24 06:44:21] INFO (clearedItems=0): [Queue] Queue cleared
140
+
141
+ stdout | src/__test__/queue/QueueProviderFactory.test.ts > QueueProviderFactory > integration > should create provider from factory
142
+ [2025-12-24 06:44:21] INFO (clearedItems=0): [Queue] Queue cleared
143
+
144
+ stdout | src/__test__/queue/QueueProviderFactory.test.ts > QueueProviderFactory > integration > should create multiple providers independently
145
+ [InMemoryQueueProvider] Initialized with config: { globalLimit: 30, queueLimit: 1, concurrency: 1, debug: true }
146
+
147
+ stdout | src/__test__/queue/QueueProviderFactory.test.ts > QueueProviderFactory > integration > should create multiple providers independently
148
+ [InMemoryQueueProvider] Created queue: queue2
149
+ [InMemoryQueueProvider] Task enqueued to queue2, priority: 5
150
+
151
+ stdout | src/__test__/queue/QueueProviderFactory.test.ts > QueueProviderFactory > integration > should create multiple providers independently
152
+ [InMemoryQueueProvider] Task completed in queue2
153
+
154
+ ✓ src/__test__/base-telegram-api.test.ts (11 tests) 818ms
155
+ ✓ should return expected response  751ms
156
+ stdout | src/__test__/queue/QueueProviderFactory.test.ts > QueueProviderFactory > integration > should create multiple providers independently
157
+ [2025-12-24 06:44:21] INFO (clearedItems=0): [Queue] Queue cleared
158
+
159
+ stdout | src/__test__/queue/QueueProviderFactory.test.ts > QueueProviderFactory > integration > should create multiple providers independently
160
+ [InMemoryQueueProvider] Closing all queues
161
+ [2025-12-24 06:44:21] INFO (clearedItems=0): [Queue] Queue cleared
162
+ [InMemoryQueueProvider] Cleared queue: queue2
163
+
164
+ ✓ src/__test__/queue/QueueProviderFactory.test.ts (28 tests) 29ms
165
+ ✓ src/__test__/transport/TokensManager.test.ts (29 tests) 14ms
166
+ ✓ src/__test__/helpers/utils.test.js (45 tests) 18ms
167
+ stdout | src/__test__/client/TelegramBotClient.performance.test.ts > Filter Cache Performance > should be faster with cache than without cache
168
+ === Filter Cache Performance Test ===
169
+ Iterations: 1000
170
+ Filters: 30
171
+ Total deserializations: 30000
172
+ Time without cache: 74.64ms
173
+ Time with cache: 13.78ms
174
+ Speedup: 5.42x
175
+ Improvement: 441.7%
176
+
177
+ stdout | src/__test__/client/TelegramBotClient.performance.test.ts > Filter Cache Performance > should demonstrate cache efficiency with realistic update processing
178
+ === Realistic Update Processing Performance ===
179
+ Iterations: 100
180
+ Updates per iteration: 3
181
+ Filters: 5
182
+ Total updates processed: 300
183
+ Time without cache: 6.71ms
184
+ Time with cache: 3.47ms
185
+ Speedup: 1.94x
186
+ Improvement: 93.6%
187
+
188
+ stdout | src/__test__/client/TelegramBotClient.performance.test.ts > Filter Cache Performance > should show cache memory efficiency
189
+ === Cache Memory Efficiency ===
190
+ Filters cached: 5
191
+ All filters reuse same object references: ✓
192
+
193
+ stdout | src/__test__/client/TelegramBotClient.performance.test.ts > Filter Cache Performance > should measure RegExp compilation overhead
194
+ === RegExp Compilation Overhead ===
195
+ Iterations: 10000
196
+ RegExp patterns: 10
197
+ Total operations: 100000
198
+ Time with compilation: 23.60ms
199
+ Time with reuse: 3.80ms
200
+ Speedup: 6.21x
201
+ RegExp compilation overhead: 19.79ms
202
+
203
+ ✓ src/__test__/client/TelegramBotClient.performance.test.ts (4 tests) 144ms
204
+ ✓ src/__test__/client/TelegramBotClient.test.ts (57 tests) 42ms
205
+ ✓ src/__test__/helpers/logger-helpers.test.ts (22 tests) 13ms
206
+ ✓ src/__test__/builders/ReplyKeyboardBuilder.test.ts (36 tests) 15ms
207
+ ✓ src/__test__/integration/end-to-end.test.ts (13 tests) 286ms
208
+ ✓ src/__test__/errors/ErrorMapper.test.ts (41 tests) 15ms
209
+ ✓ src/__test__/helpers/constants.test.ts (14 tests) 15ms
210
+ ✓ src/__test__/helpers/user-helpers.test.ts (33 tests) 10ms
211
+ ✓ src/__test__/wrappers/CallbackQueryWrapper.test.ts (52 tests) 461ms
212
+ ✓ src/__test__/agents/WorkerCommandHandler.test.ts (6 tests) 9ms
213
+ ✓ src/__test__/wrappers/MessageWrapper.test.ts (41 tests) 487ms
214
+ ✓ src/__test__/api-version.test.ts (5 tests) 4ms
215
+ ✓ src/__test__/helpers/file-helpers.test.ts (17 tests) 15ms
216
+ ✓ src/__test__/client/public-api.test.ts (12 tests) 7ms
217
+ ✓ src/__test__/agents/WorkerClientFactory.test.ts (5 tests) 5ms
218
+ ✓ src/__test__/transport/TelegramHttpClient.test.ts (25 tests) 3927ms
219
+ ✓ should handle rate limiting (429) with retry  1010ms
220
+ ✓ should throw TelegramRateLimitError after max retries  2020ms
221
+ ✓ should throw TelegramNetworkError after max retries  324ms
222
+ ✓ should handle exponential backoff on retries  311ms
223
+ ✓ src/__test__/agents/PollingLoop.integration.test.ts (3 tests) 5364ms
224
+ ✓ should start polling loop, process updates, and stop in worker thread  2400ms
225
+ ✓ should handle pause and resume commands  1749ms
226
+ ✓ should stop polling  1214ms
227
+ ✓ src/__test__/transport/TelegramTransport.test.ts (27 tests) 7042ms
228
+ ✓ should execute request in direct HTTP mode  1540ms
229
+ ✓ should enqueue request in queue mode  1395ms
230
+ ✓ should use routeId as queue name  454ms
231
+ ✓ should set priority for high-priority methods  453ms
232
+ ✓ should set priority for low-priority methods  454ms
233
+ ✓ should set medium priority for other methods  448ms
234
+ ✓ should use custom priorities when configured  455ms
235
+ ✓ should map application/json content type  452ms
236
+ ✓ should map application/x-www-form-urlencoded content type  456ms
237
+ ✓ should map multipart/form-data content type  458ms
238
+ ✓ should default to json for unknown content type  458ms
239
+ ✓ src/__test__/agents/LongPollingManager.integration.test.ts (11 tests) 36887ms
240
+ ✓ should initialize with multiple tokens  527ms
241
+ ✓ should start and stop manager  6553ms
242
+ ✓ should handle onUpdate and onError callbacks  7538ms
243
+ ✓ should track offset updates  510ms
244
+ ✓ should emit events during lifecycle  6528ms
245
+ ✓ should provide worker statistics  6542ms
246
+ ✓ should get worker state  513ms
247
+ ✓ should check worker running status  6535ms
248
+ ✓ should handle multiple tokens with different configurations  513ms
249
+ ✓ should not start if already running  609ms
250
+ ✓ should not stop if not running  513ms
251
+
252
+  Test Files  32 passed (32)
253
+  Tests  876 passed (876)
254
+  Start at  09:44:18
255
+  Duration  37.62s (transform 5.23s, setup 0ms, import 19.56s, tests 55.98s, environment 13ms)
256
+