@wabot-dev/framework 0.9.1 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/dist/src/addon/async/in-memory/InMemoryCronJobRepository.js +45 -0
  2. package/dist/src/addon/async/in-memory/InMemoryJobRepository.js +75 -0
  3. package/dist/src/addon/async/in-memory/index.js +2 -0
  4. package/dist/src/addon/async/pg/PgJobRepository.js +1 -0
  5. package/dist/src/addon/async/pg/PgTransactionAdapter.js +25 -0
  6. package/dist/src/addon/async/pg/index.js +3 -0
  7. package/dist/src/addon/chat-bot/{ram/RamChatMemory.js → in-memory/InMemoryChatMemory.js} +2 -2
  8. package/dist/src/addon/chat-bot/{ram/RamChatRepository.js → in-memory/InMemoryChatRepository.js} +6 -6
  9. package/dist/src/addon/chat-bot/in-memory/index.js +2 -0
  10. package/dist/src/addon/chat-bot/pg/index.js +2 -0
  11. package/dist/src/addon/chat-controller/socket/@socket.js +3 -1
  12. package/dist/src/addon/chat-controller/socket/SocketChannelConfig.js +4 -4
  13. package/dist/src/addon/chat-controller/whatsapp/WhatsAppSender.js +2 -72
  14. package/dist/src/addon/chat-controller/whatsapp/{WhatsAppReceiver.js → cloud-api/WhatsAppApiReceiver.js} +2 -2
  15. package/dist/src/addon/chat-controller/whatsapp/cloud-api/WhatsAppApiSender.js +67 -0
  16. package/dist/src/addon/chat-controller/whatsapp/cloud-api/WhatsAppReceiverByCloudApi.js +5 -7
  17. package/dist/src/addon/chat-controller/whatsapp/wasender/@wasender.js +23 -0
  18. package/dist/src/addon/chat-controller/{wasender/WhatsAppByWasenderChannel.js → whatsapp/wasender/WasenderChannel.js} +20 -20
  19. package/dist/src/addon/chat-controller/{wasender/WhatsAppByWasenderChannelConfig.js → whatsapp/wasender/WasenderChannelConfig.js} +3 -3
  20. package/dist/src/addon/chat-controller/whatsapp/wasender/WasenderChannelName.js +3 -0
  21. package/dist/src/addon/chat-controller/{wasender/WhatsAppReceiverByWasender.js → whatsapp/wasender/WasenderReceiver.js} +7 -7
  22. package/dist/src/addon/chat-controller/{wasender/WhatsAppSenderByWasender.js → whatsapp/wasender/WasenderSender.js} +8 -5
  23. package/dist/src/addon/chat-controller/{wasender → whatsapp/wasender}/WasenderWebhookController.js +4 -4
  24. package/dist/src/addon/lock/InMemoryLockKey.js +45 -0
  25. package/dist/src/addon/lock/InMemoryLocker.js +15 -0
  26. package/dist/src/addon/lock/index.js +2 -0
  27. package/dist/src/feature/async/{@cron.js → @cronHandler.js} +2 -2
  28. package/dist/src/feature/async/@transaction.js +22 -0
  29. package/dist/src/feature/async/AsyncMetadataStore.js +6 -0
  30. package/dist/src/feature/async/TransactionMetadataStore.js +28 -0
  31. package/dist/src/feature/chat-controller/metadata/ControllerMetadataStore.js +3 -0
  32. package/dist/src/feature/pg/index.js +13 -0
  33. package/dist/src/feature/project-runner/ProjectRunner.js +253 -0
  34. package/dist/src/feature/rest-controller/metadata/RestControllerMetadataStore.js +3 -0
  35. package/dist/src/feature/socket-controller/metadata/SocketControllerMetadataStore.js +3 -0
  36. package/dist/src/index.d.ts +183 -252
  37. package/dist/src/index.js +22 -27
  38. package/package.json +6 -6
  39. package/dist/src/addon/chat-controller/wasender/@whatsAppByWasender.js +0 -20
  40. package/dist/src/addon/chat-controller/wasender/whatsAppByWasenderChannelName.js +0 -3
  41. package/dist/src/addon/chat-controller/whatsapp/@whatsApp.js +0 -20
  42. package/dist/src/addon/chat-controller/whatsapp/EnvWhatsAppRepository.js +0 -49
  43. package/dist/src/addon/chat-controller/whatsapp/PgWhatsAppRepository.js +0 -48
  44. package/dist/src/addon/chat-controller/whatsapp/WhatsApp.js +0 -30
  45. package/dist/src/addon/chat-controller/whatsapp/WhatsAppChannel.js +0 -58
  46. package/dist/src/addon/chat-controller/whatsapp/WhatsAppChannelConfig.js +0 -8
  47. package/dist/src/addon/chat-controller/whatsapp/WhatsAppRepository.js +0 -10
  48. package/dist/src/addon/chat-controller/whatsapp/cloud-api/WhatsAppSenderByCloudApi.js +0 -133
  49. package/dist/src/addon/chat-controller/whatsapp/proxy/WhatsAppProxyContracts.js +0 -5
  50. package/dist/src/addon/chat-controller/whatsapp/proxy/WhatsAppReceiverByWabotProxy.js +0 -67
  51. package/dist/src/addon/chat-controller/whatsapp/proxy/WhatsAppSenderByWabotProxy.js +0 -63
  52. package/dist/src/addon/chat-controller/whatsapp/proxy/WhatsAppWabotProxyConnection.js +0 -45
  53. /package/dist/src/addon/chat-controller/whatsapp/{whatsAppChannelName.js → cloud-api/whatsAppChannelName.js} +0 -0
  54. /package/dist/src/addon/chat-controller/{wasender → whatsapp/wasender}/extractNumberFromWasenderKey.js +0 -0
@@ -11,7 +11,6 @@ import { Pool, PoolClient } from 'pg';
11
11
  import { AsyncLocalStorage } from 'node:async_hooks';
12
12
  import { Server as Server$1, Socket } from 'socket.io';
13
13
  import { Algorithm } from 'jsonwebtoken';
14
- import { Socket as Socket$1 } from 'socket.io-client';
15
14
  import { Wasender } from 'wasenderapi';
16
15
 
17
16
  type IStorablePrimitive = null | number | string | boolean | undefined;
@@ -48,8 +47,9 @@ declare function strArr(strings: TemplateStringsArray): ConfigReference<string[]
48
47
  declare function numArr(strings: TemplateStringsArray): ConfigReference<number[]>;
49
48
  declare function boolArr(strings: TemplateStringsArray): ConfigReference<boolean[]>;
50
49
 
50
+ type ResolveConfigValue<V> = V extends ConfigReference<infer R> ? R : V;
51
51
  type ResolvedConfig<T> = {
52
- [K in keyof T]: T[K] extends ConfigReference<infer R> ? R : T[K];
52
+ [K in keyof T]: ResolveConfigValue<T[K]>;
53
53
  };
54
54
  declare function resolveConfigReferences<T extends Record<string, any>>(config: T): ResolvedConfig<T>;
55
55
  declare class ConfigResolver {
@@ -468,7 +468,9 @@ interface ICronConfig {
468
468
  cron: string;
469
469
  disabled?: boolean;
470
470
  }
471
- declare function cron(config: ICronConfig): (target: IConstructor<ICronHandler>) => void;
471
+ declare function cronHandler(config: ICronConfig): (target: IConstructor<ICronHandler>) => void;
472
+
473
+ declare function transaction(dbNames?: readonly string[]): <This, A extends unknown[], R>(_target: object, _propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<(this: This, ...args: A) => Promise<R>>) => TypedPropertyDescriptor<(this: This, ...args: A) => Promise<R>>;
472
474
 
473
475
  interface ICronJobScheduleConfig {
474
476
  name: string;
@@ -497,6 +499,8 @@ declare class AsyncMetadataStore {
497
499
  requireCommandNameForHandler(handlerConstructor: IConstructor<ICommandHandler<any>>): string;
498
500
  getCommandName(command: IConstructor<any>): string | null;
499
501
  getCommandForCommandName(commandName: string): IConstructor<any> | null;
502
+ getAllCommandHandlers(): IConstructor<ICommandHandler<any>>[];
503
+ getAllCronHandlers(): IConstructor<ICronHandler>[];
500
504
  }
501
505
 
502
506
  interface IJobData extends IEntityData {
@@ -664,12 +668,24 @@ declare class CronJobRepository implements ICronJobRepository {
664
668
  findOrThrow(id: string): Promise<CronJob>;
665
669
  }
666
670
 
671
+ interface ITransactionAdapter {
672
+ run<T>(fn: () => Promise<T>): Promise<T>;
673
+ }
674
+
667
675
  declare function runCommandHandlers(handlers: IConstructor<ICommandHandler<any>>[]): void;
668
676
  declare function stopCommandHandlers(handlers: IConstructor<ICommandHandler<any>>[]): void;
669
677
 
670
678
  declare function runCronHandlers(handlers: IConstructor<ICronHandler>[]): void;
671
679
  declare function stopCronHandlers(handlers: IConstructor<ICronHandler>[]): void;
672
680
 
681
+ declare class TransactionMetadataStore {
682
+ private adapters;
683
+ registerAdapter(dbName: string, adapter: ITransactionAdapter): void;
684
+ requireAdapter(dbName: string): ITransactionAdapter;
685
+ requireAdapters(dbNames: readonly string[]): ITransactionAdapter[];
686
+ getAllAdapters(): ITransactionAdapter[];
687
+ }
688
+
673
689
  interface IChatConnection {
674
690
  chatType: 'GROUP' | 'PRIVATE';
675
691
  channelName: string;
@@ -1096,6 +1112,32 @@ declare function runChatAdapters(adapters: IConstructor<IChatAdapter>[]): void;
1096
1112
 
1097
1113
  declare function safeJsonParse<T = unknown>(json: string | undefined | null, context?: string): T;
1098
1114
 
1115
+ interface IProjectRunnerConfig {
1116
+ directories?: string[];
1117
+ connectionString?: string;
1118
+ chatAdapters?: IConstructor<IChatAdapter>[];
1119
+ }
1120
+ declare class ProjectRunner {
1121
+ private directories;
1122
+ private chatAdapters;
1123
+ private connectionString;
1124
+ private isPg;
1125
+ private pool;
1126
+ constructor(config?: IProjectRunnerConfig);
1127
+ run(): Promise<void>;
1128
+ private resolveConnectionString;
1129
+ private initPool;
1130
+ private scanDirectories;
1131
+ private importFiles;
1132
+ private discoverComponents;
1133
+ private registerAdapters;
1134
+ private registerMemoryAdapters;
1135
+ private registerPostgresAdapters;
1136
+ private startComponents;
1137
+ private resolveDefaultChatAdapters;
1138
+ }
1139
+ declare function run(config?: IProjectRunnerConfig): Promise<void>;
1140
+
1099
1141
  interface IchatControllerConfig {
1100
1142
  }
1101
1143
 
@@ -1133,6 +1175,7 @@ declare class ControllerMetadataStore {
1133
1175
  private chatControllers;
1134
1176
  saveChannelMetadata(channelMetadata: IChannelMetadata): void;
1135
1177
  saveChatControllerMetadata(controllerMetadata: IChatControllerMetadata): void;
1178
+ getAllChatControllerConstructors(): Function[];
1136
1179
  getChatControllerMetadata(controllerConstructor: Function): {
1137
1180
  config: IChatControllerMetadata;
1138
1181
  channels: IChannelMetadata[];
@@ -1391,6 +1434,7 @@ declare class RestControllerMetadataStore {
1391
1434
  saveControllerMetadata(controllerMetadata: IRestControllerMetadata): void;
1392
1435
  saveEndPointMetadata(endPointMetadata: IEndPointMetadata): void;
1393
1436
  saveMiddlewareMetadata(middlewareMetadata: IMiddlewareMetadata): void;
1437
+ getAllRestControllerConstructors(): IConstructor<any>[];
1394
1438
  getControllerEndPointsInfo(controllerConstructor: IConstructor<any>): {
1395
1439
  controllerConstructor: IConstructor<any>;
1396
1440
  middlewares: IMiddlewareMetadata[];
@@ -1469,6 +1513,7 @@ declare class SocketControllerMetadataStore {
1469
1513
  saveControllerMetadata(controllerMetadata: ISocketControllerMetadata): void;
1470
1514
  saveSocketEventMetadata(socketEventMetadata: ISocketEventMetadata): void;
1471
1515
  saveHandshakeMiddlewareMetadata(handshakeMetadata: IHandshakeMiddlewareMetadata): void;
1516
+ getAllSocketControllerConstructors(): IConstructor<any>[];
1472
1517
  getSocketControllerInfo(controllerConstructor: IConstructor<any>): {
1473
1518
  controller: ISocketControllerMetadata;
1474
1519
  events: Map<string, ISocketEventMetadata>;
@@ -1478,6 +1523,12 @@ declare class SocketControllerMetadataStore {
1478
1523
 
1479
1524
  declare function runSocketControllers(controllers: IConstructor<any>[]): void;
1480
1525
 
1526
+ declare class PgCronJobRepository extends PgCrudRepository<CronJob> implements ICronJobRepository {
1527
+ constructor(pool: Pool);
1528
+ findDue(date?: Date): Promise<CronJob[]>;
1529
+ findByName(name: string): Promise<CronJob | null>;
1530
+ }
1531
+
1481
1532
  declare class PgJobRepository extends PgCrudRepository<Job> implements IJobRepository {
1482
1533
  constructor(pool: Pool);
1483
1534
  findPendingForRunFrom(date: Date, limit: number): Promise<Job[]>;
@@ -1485,9 +1536,32 @@ declare class PgJobRepository extends PgCrudRepository<Job> implements IJobRepos
1485
1536
  countRunningByCommand(commandName: string): Promise<number>;
1486
1537
  }
1487
1538
 
1488
- declare class PgCronJobRepository extends PgCrudRepository<CronJob> implements ICronJobRepository {
1539
+ declare class PgTransactionAdapter implements ITransactionAdapter {
1540
+ private pool;
1489
1541
  constructor(pool: Pool);
1542
+ run<T>(fn: () => Promise<T>): Promise<T>;
1543
+ }
1544
+
1545
+ declare class InMemoryJobRepository implements IJobRepository {
1546
+ private items;
1547
+ find(id: string): Promise<Job | null>;
1548
+ findOrThrow(id: string): Promise<Job>;
1549
+ findByIds(ids: string[]): Promise<Job[]>;
1550
+ findAll(): Promise<Job[]>;
1551
+ create(item: Job): Promise<void>;
1552
+ update(item: Job): Promise<void>;
1553
+ delete(item: Job): Promise<void>;
1554
+ findPendingForRunFrom(date: Date, limit: number): Promise<Job[]>;
1555
+ findRunningJobs(): Promise<Job[]>;
1556
+ countRunningByCommand(commandName: string): Promise<number>;
1557
+ }
1558
+
1559
+ declare class InMemoryCronJobRepository implements ICronJobRepository {
1560
+ private items;
1561
+ create(cronJob: CronJob): Promise<void>;
1490
1562
  findDue(date?: Date): Promise<CronJob[]>;
1563
+ findOrThrow(id: string): Promise<CronJob>;
1564
+ update(cronJob: CronJob): Promise<void>;
1491
1565
  findByName(name: string): Promise<CronJob | null>;
1492
1566
  }
1493
1567
 
@@ -1770,14 +1844,14 @@ declare class PgChatMemory extends PgCrudRepository<ChatItem> implements IChatMe
1770
1844
  findLastItems(count: number): Promise<ChatItem[]>;
1771
1845
  }
1772
1846
 
1773
- declare class RamChatMemory implements IChatMemory {
1847
+ declare class InMemoryChatMemory implements IChatMemory {
1774
1848
  private memory;
1775
1849
  findLastItems(count: number): Promise<ChatItem[]>;
1776
1850
  create(item: ChatItem): Promise<void>;
1777
1851
  clearMemory(): Promise<void>;
1778
1852
  }
1779
1853
 
1780
- declare class RamChatRepository implements IChatRepository {
1854
+ declare class InMemoryChatRepository implements IChatRepository {
1781
1855
  private items;
1782
1856
  private memories;
1783
1857
  update(chat: Chat): Promise<void>;
@@ -1824,17 +1898,11 @@ declare function writeJsonToFile<T>(filename: string, data: T): void;
1824
1898
  declare function readJsonFromFile<T>(filename: string): T | null;
1825
1899
 
1826
1900
  interface ISocketChannelConfig {
1827
- namespace: string;
1901
+ namespace: string | ConfigReference<string>;
1828
1902
  handshakeMidlewares?: IConstructor<IHandshakeMiddleware>[];
1829
1903
  }
1830
1904
 
1831
- declare class SocketChannelConfig implements ISocketChannelConfig {
1832
- namespace: string;
1833
- handshakeMidlewares?: IConstructor<IHandshakeMiddleware>[] | undefined;
1834
- constructor(namespace: string, handshakeMidlewares?: IConstructor<IHandshakeMiddleware>[] | undefined);
1835
- }
1836
-
1837
- declare function socket(config: SocketChannelConfig): (target: object, propertyKey: string | symbol) => void;
1905
+ declare function socket(config: ISocketChannelConfig): (target: object, propertyKey: string | symbol) => void;
1838
1906
 
1839
1907
  declare const socketChannelName: "SocketChannel";
1840
1908
 
@@ -1847,6 +1915,15 @@ interface ISocketChannelMessage extends ISocketReceivedMessage {
1847
1915
  injectInstances?: [any, any][];
1848
1916
  }
1849
1917
 
1918
+ declare class SocketChannelConfig {
1919
+ namespace: string;
1920
+ handshakeMidlewares?: IConstructor<IHandshakeMiddleware>[];
1921
+ constructor(config: {
1922
+ namespace: string;
1923
+ handshakeMidlewares?: IConstructor<IHandshakeMiddleware>[];
1924
+ });
1925
+ }
1926
+
1850
1927
  declare class SocketChannelMessageFile {
1851
1928
  id: string;
1852
1929
  mimeType: string;
@@ -1913,99 +1990,6 @@ declare class TelegramChannel implements IChatChannel {
1913
1990
  disconnect(): void;
1914
1991
  }
1915
1992
 
1916
- interface IWhatsappChannelConfig {
1917
- number: string;
1918
- proxy?: string;
1919
- }
1920
- declare class WhatsappChannelConfig implements IWhatsappChannelConfig {
1921
- number: string;
1922
- constructor(number: string);
1923
- }
1924
-
1925
- declare function whatsApp(config: string | IWhatsappChannelConfig): (target: object, propertyKey: string | symbol) => void;
1926
-
1927
- interface IWhatsAppBusinessNumber {
1928
- id: string;
1929
- number: string;
1930
- }
1931
- interface IWhatsAppBusinessAccount {
1932
- id: string;
1933
- }
1934
- interface IWhatsAppData extends IEntityData {
1935
- slug: string;
1936
- verifyToken: string;
1937
- appSecret: string;
1938
- accessToken: string;
1939
- businessAccount: IWhatsAppBusinessAccount;
1940
- businessNumbers: IWhatsAppBusinessNumber[];
1941
- }
1942
- declare class WhatsApp extends Entity<IWhatsAppData> {
1943
- getVerifyToken(): string;
1944
- getSlug(): string;
1945
- getBusinessAccount(): IWhatsAppBusinessAccount;
1946
- getAppSecret(): string;
1947
- getBusinessNumbers(): {
1948
- id: string;
1949
- number: string;
1950
- }[];
1951
- getAccessToken(): string;
1952
- hasBusinessNumber(number: string): boolean;
1953
- getBussinessNumber(number: string): IWhatsAppBusinessNumber | null;
1954
- }
1955
-
1956
- interface IWhatsAppRepository {
1957
- findBySlug(slug: string): Promise<WhatsApp | null>;
1958
- findByBusinessNumber(number: string): Promise<WhatsApp | null>;
1959
- }
1960
-
1961
- declare class EnvWhatsAppRepository implements IWhatsAppRepository {
1962
- private env;
1963
- constructor(env: Env);
1964
- findBySlug(slug: string): Promise<WhatsApp | null>;
1965
- findByBusinessNumber(number: string): Promise<WhatsApp | null>;
1966
- private getFromEnvVars;
1967
- }
1968
-
1969
- declare class PgWhatsAppRepository extends PgCrudRepository<WhatsApp> implements IWhatsAppRepository {
1970
- constructor(pool: Pool);
1971
- findBySlug(slug: string): Promise<WhatsApp | null>;
1972
- findByBusinessNumber(number: string): Promise<WhatsApp | null>;
1973
- }
1974
-
1975
- type IWhatsAppMessageListener = (message: Omit<IChannelMessage, 'reply'>) => Promise<void>;
1976
- interface IListenWhatsAppMessageRequest {
1977
- to: string;
1978
- listener: IWhatsAppMessageListener;
1979
- }
1980
- declare class WhatsAppReceiver {
1981
- connect(): Promise<void>;
1982
- disconnect(): void;
1983
- listenMessage(request: IListenWhatsAppMessageRequest): void;
1984
- }
1985
-
1986
- type IWhatsAppCloudTemplateParameter = {
1987
- type: 'text';
1988
- text: string;
1989
- parameter_name?: string;
1990
- } | {
1991
- type: 'currency';
1992
- currency: {
1993
- fallback_value: string;
1994
- code: string;
1995
- amount_1000: number;
1996
- };
1997
- } | {
1998
- type: 'date_time';
1999
- date_time: {
2000
- fallback_value: string;
2001
- };
2002
- };
2003
- interface IWhatsAppCloudTemplateMessage {
2004
- templateName: string;
2005
- languageCode: string;
2006
- parameters: IWhatsAppCloudTemplateParameter[];
2007
- }
2008
-
2009
1993
  interface IWhatsAppCloudTemplateResponse {
2010
1994
  data: IWhatsAppCloudTemplate[];
2011
1995
  paging: IWhatsAppCloudApiPaging;
@@ -2032,66 +2016,6 @@ interface IWhatsAppCloudApiCursors {
2032
2016
  after: string;
2033
2017
  }
2034
2018
 
2035
- declare class WhatsAppRepository implements IWhatsAppRepository {
2036
- findBySlug(slug: string): Promise<WhatsApp | null>;
2037
- findByBusinessNumber(number: string): Promise<WhatsApp | null>;
2038
- }
2039
-
2040
- interface ISendWhatsAppRequest {
2041
- from: string;
2042
- to: string;
2043
- message: IChatMessage;
2044
- }
2045
- interface ISendWhatsAppTemplateRequest {
2046
- from: string;
2047
- to: string;
2048
- templateMessage: IWhatsAppCloudTemplateMessage;
2049
- senderName: string;
2050
- }
2051
- interface IGetWhatsAppTemplateRequest {
2052
- from: string;
2053
- templateName: string;
2054
- languageCode: string;
2055
- }
2056
- interface IWhatsAppSenderOptions {
2057
- writeChatMemory?: boolean;
2058
- }
2059
- declare class WhatsAppSender {
2060
- protected chatRepository: ChatRepository;
2061
- protected chatResolver: ChatResolver;
2062
- protected whatsAppRepository: WhatsAppRepository;
2063
- constructor(chatRepository: ChatRepository, chatResolver: ChatResolver, whatsAppRepository: WhatsAppRepository);
2064
- sendWhatsApp(request: ISendWhatsAppRequest, options?: IWhatsAppSenderOptions): Promise<void>;
2065
- sendWhatsAppTemplate(request: ISendWhatsAppTemplateRequest, options?: IWhatsAppSenderOptions): Promise<void>;
2066
- protected getWhatsAppTemplate(request: IGetWhatsAppTemplateRequest): Promise<IWhatsAppCloudTemplate | null>;
2067
- protected mapTemplateToChatMessage(request: ISendWhatsAppTemplateRequest): Promise<IChatMessage>;
2068
- protected writePrivateChatMemory(message: IChatMessage, to: string): Promise<void>;
2069
- protected replaceTemplateParameters(template: string, data: IWhatsAppCloudTemplateParameter[]): string;
2070
- }
2071
-
2072
- declare const whatsAppChannelName: "WhatsAppChannel";
2073
-
2074
- interface IWhatsAppReceivedMessage extends IReceivedMessage {
2075
- channel: typeof whatsAppChannelName;
2076
- }
2077
-
2078
- interface IWhatsAppChannelMessage extends IWhatsAppReceivedMessage {
2079
- chatConnection: IChatConnection;
2080
- injectInstances?: [any, any][];
2081
- }
2082
-
2083
- declare class WhatsAppChannel implements IChatChannel {
2084
- private config;
2085
- private sender;
2086
- private receiver;
2087
- static channelName: "WhatsAppChannel";
2088
- private logger;
2089
- constructor(config: WhatsappChannelConfig, sender: WhatsAppSender, receiver: WhatsAppReceiver);
2090
- listen(callback: (message: IWhatsAppChannelMessage) => Promise<void>): void;
2091
- connect(): void;
2092
- disconnect(): void;
2093
- }
2094
-
2095
2019
  interface IWhatsAppCloudWebhookPayload {
2096
2020
  object: 'whatsapp_business_account';
2097
2021
  entry: IWhatsAppCloudEntry[];
@@ -2144,95 +2068,84 @@ interface IWhatsAppCloudAudioMessage extends IWhatsAppCloudBaseMessage {
2144
2068
  };
2145
2069
  }
2146
2070
 
2147
- declare class WhatsAppReceiverByCloudApi extends WhatsAppReceiver {
2071
+ type IWhatsAppMessageListener = (message: Omit<IChannelMessage, 'reply'>) => Promise<void>;
2072
+ interface IListenWhatsAppMessageRequest {
2073
+ to: string;
2074
+ listener: IWhatsAppMessageListener;
2075
+ }
2076
+ declare class WhatsAppApiReceiver {
2077
+ connect(): Promise<void>;
2078
+ disconnect(): void;
2079
+ listenMessage(request: IListenWhatsAppMessageRequest): void;
2080
+ }
2081
+
2082
+ declare class WhatsAppReceiverByCloudApi extends WhatsAppApiReceiver {
2148
2083
  private expressProvider;
2149
- private whatsAppRepository;
2150
2084
  private listeners;
2151
2085
  private expressApp;
2152
2086
  private logger;
2153
2087
  private webhookPath;
2154
- constructor(expressProvider: ExpressProvider, whatsAppRepository: WhatsAppRepository);
2088
+ constructor(expressProvider: ExpressProvider);
2155
2089
  connect(): Promise<void>;
2156
2090
  listenMessage(request: IListenWhatsAppMessageRequest): void;
2157
2091
  protected handlePayload(payload: IWhatsAppCloudWebhookPayload): Promise<void>;
2158
2092
  private emmitMessage;
2159
2093
  }
2160
2094
 
2161
- declare class WhatsAppSenderByCloudApi extends WhatsAppSender {
2162
- private logger;
2163
- constructor(chatRepository: ChatRepository, chatResolver: ChatResolver, whatsAppRepository: WhatsAppRepository);
2164
- sendWhatsApp(request: ISendWhatsAppRequest, options?: IWhatsAppSenderOptions): Promise<void>;
2165
- sendWhatsAppTemplate(request: ISendWhatsAppTemplateRequest, options?: IWhatsAppSenderOptions): Promise<void>;
2166
- protected getWhatsAppTemplate(request: IGetWhatsAppTemplateRequest): Promise<IWhatsAppCloudTemplate | null>;
2167
- }
2168
-
2169
- interface IWhatsAppProxyMessageContent {
2095
+ type IWhatsAppTemplateParameter = {
2096
+ type: 'text';
2170
2097
  text: string;
2098
+ parameter_name?: string;
2099
+ } | {
2100
+ type: 'currency';
2101
+ currency: {
2102
+ fallback_value: string;
2103
+ code: string;
2104
+ amount_1000: number;
2105
+ };
2106
+ } | {
2107
+ type: 'date_time';
2108
+ date_time: {
2109
+ fallback_value: string;
2110
+ };
2111
+ };
2112
+ interface IWhatsAppTemplateData {
2113
+ templateName: string;
2114
+ languageCode: string;
2115
+ parameters: IWhatsAppTemplateParameter[];
2171
2116
  }
2172
-
2173
- interface IWhatsAppProxyMessage {
2117
+ interface ISendWhatsAppMessageReq {
2174
2118
  from: string;
2175
2119
  to: string;
2176
- senderName?: string;
2177
- content: IWhatsAppProxyMessageContent;
2178
- }
2179
-
2180
- declare const WHATSAPP_PROXY_SEND_MESSAGE_EVENT: "sendMessage";
2181
- interface IWhatsAppProxySendMessageEventReq {
2182
- event: typeof WHATSAPP_PROXY_SEND_MESSAGE_EVENT;
2183
- data: IWhatsAppProxyMessage;
2184
- }
2185
- declare const WHATSAPP_PROXY_LISTEN_MESSAGE_EVENT: "listenMessage";
2186
- interface IWhatsAppProxyListenMessageEventReq {
2187
- event: typeof WHATSAPP_PROXY_LISTEN_MESSAGE_EVENT;
2188
- data: IWhatsAppProxyListenMessageEventData;
2120
+ message: IChatMessage;
2189
2121
  }
2190
- interface IWhatsAppProxyListenMessageEventData {
2191
- from?: string[];
2122
+ interface ISendWhatsAppTemplateReq {
2123
+ from: string;
2192
2124
  to: string;
2125
+ templateData: IWhatsAppTemplateData;
2126
+ senderName: string;
2193
2127
  }
2194
- declare const WHATSAPP_MESSAGE_EVENT: "message";
2195
- interface IWhatsAppProxyMessageEventReq {
2196
- event: typeof WHATSAPP_MESSAGE_EVENT;
2197
- data: IWhatsAppProxyMessage;
2128
+ interface IWhatsAppSender {
2129
+ sendMessage(request: ISendWhatsAppMessageReq): Promise<void>;
2130
+ sendTemplate(request: ISendWhatsAppTemplateReq): Promise<void>;
2198
2131
  }
2199
2132
 
2200
- declare class WhatsAppWabotProxyConnection {
2201
- private baseUrl;
2202
- private socket;
2203
- private apiKey;
2204
- private logger;
2205
- constructor(env: Env);
2206
- getSocket(): Promise<Socket$1>;
2133
+ declare class WhatsAppApiSender implements IWhatsAppSender {
2134
+ private accessToken;
2135
+ private businessNumberId;
2136
+ constructor(accessToken: string, businessNumberId: string);
2137
+ sendMessage(request: ISendWhatsAppMessageReq): Promise<void>;
2138
+ sendTemplate(request: ISendWhatsAppTemplateReq): Promise<void>;
2207
2139
  }
2208
2140
 
2209
- declare class WhatsAppReceiverByWabotProxy extends WhatsAppReceiver {
2210
- private connection;
2211
- private loger;
2212
- constructor(connection: WhatsAppWabotProxyConnection);
2213
- connect(): Promise<void>;
2214
- listenMessage(request: IListenWhatsAppMessageRequest): void;
2215
- }
2216
-
2217
- declare class WhatsAppSenderByWabotProxy extends WhatsAppSender {
2218
- private wabotDevConnection;
2219
- private logger;
2220
- constructor(wabotDevConnection: WhatsAppWabotProxyConnection, chatRepository: ChatRepository, chatResolver: ChatResolver, whatsAppRepository: WhatsAppRepository);
2221
- sendWhatsApp(request: ISendWhatsAppRequest, options?: IWhatsAppSenderOptions): Promise<void>;
2222
- }
2223
-
2224
- interface IWhatsAppByWasenderChannelConfig {
2225
- apiKey?: string;
2226
- webhookSecret?: string;
2227
- phoneNumber?: string;
2141
+ interface IWasenderChannelConfig {
2142
+ apiKey?: string | ConfigReference<string>;
2143
+ webhookSecret?: string | ConfigReference<string>;
2144
+ phoneNumber?: string | ConfigReference<string>;
2228
2145
  webhookPath?: string;
2229
- retryOptions?: {
2230
- enabled: boolean;
2231
- maxRetries: number;
2232
- };
2233
2146
  }
2234
2147
 
2235
- declare function whatsAppByWasender(config?: IWhatsAppByWasenderChannelConfig): (target: object, propertyKey: string | symbol) => void;
2148
+ declare function wasender(config?: IWasenderChannelConfig): (target: object, propertyKey: string | symbol) => void;
2236
2149
 
2237
2150
  type IWasenderEvent = IWasenderMessageReceivedEvent | IWasenderQrUpdatedEvent;
2238
2151
  interface IWasenderQrUpdatedEvent {
@@ -2279,7 +2192,7 @@ interface IWasenderDeviceListMetadata {
2279
2192
  recipientTimestamp: string;
2280
2193
  }
2281
2194
 
2282
- declare class WhatsAppByWasenderChannelConfig implements IWhatsAppByWasenderChannelConfig {
2195
+ declare class WasenderChannelConfig {
2283
2196
  readonly apiKey?: string;
2284
2197
  readonly webhookSecret?: string;
2285
2198
  readonly phoneNumber?: string;
@@ -2288,40 +2201,45 @@ declare class WhatsAppByWasenderChannelConfig implements IWhatsAppByWasenderChan
2288
2201
  enabled: boolean;
2289
2202
  maxRetries: number;
2290
2203
  };
2291
- constructor(config: IWhatsAppByWasenderChannelConfig);
2204
+ constructor(config: {
2205
+ apiKey?: string;
2206
+ webhookSecret?: string;
2207
+ phoneNumber?: string;
2208
+ webhookPath?: string;
2209
+ });
2292
2210
  }
2293
2211
 
2294
- interface IWhatsAppByWasenderChatMessage extends IChatMessage {
2212
+ interface IWasenderChatMessage extends IChatMessage {
2295
2213
  metadata: {
2296
2214
  whatsAppNumber: string;
2297
2215
  };
2298
2216
  }
2299
2217
 
2300
- declare const whatsAppByWasenderChannelName: "WhatsAppByWasenderChannel";
2218
+ declare const wasenderChannelName: "WhatsAppByWasenderChannel";
2301
2219
 
2302
- interface IWhatsAppByWasenderReceivedMessage extends IReceivedMessage {
2303
- channel: typeof whatsAppByWasenderChannelName;
2304
- message: IWhatsAppByWasenderChatMessage;
2220
+ interface IWasenderReceivedMessage extends IReceivedMessage {
2221
+ channel: typeof wasenderChannelName;
2222
+ message: IWasenderChatMessage;
2305
2223
  }
2306
2224
 
2307
- interface IWhatsAppByWasenderChannelMessage extends IWhatsAppByWasenderReceivedMessage {
2225
+ interface IWasenderChannelMessage extends IWasenderReceivedMessage {
2308
2226
  chatConnection: IChatConnection;
2309
2227
  injectInstances?: [any, any][];
2310
2228
  }
2311
2229
 
2312
- declare class WhatsAppByWasenderChannel implements IChatChannel {
2230
+ declare class WasenderChannel implements IChatChannel {
2313
2231
  private logger;
2314
2232
  private sender;
2315
2233
  private receiver;
2316
2234
  private phoneNumber;
2317
2235
  static channelName: "WhatsAppByWasenderChannel";
2318
- constructor(config: WhatsAppByWasenderChannelConfig, env: Env);
2319
- listen(callback: (message: IWhatsAppByWasenderChannelMessage) => Promise<void>): void;
2236
+ constructor(config: WasenderChannelConfig, env: Env);
2237
+ listen(callback: (message: IWasenderChannelMessage) => Promise<void>): void;
2320
2238
  connect(): void;
2321
2239
  disconnect(): void;
2322
2240
  }
2323
2241
 
2324
- type IWasenderChannelMessageListener = (message: IWhatsAppByWasenderChatMessage, from: string) => Promise<void>;
2242
+ type IWasenderChannelMessageListener = (message: IWasenderChatMessage, from: string) => Promise<void>;
2325
2243
  declare class WasenderWebhookController {
2326
2244
  private wasender;
2327
2245
  private listener;
@@ -2333,7 +2251,7 @@ declare class WasenderWebhookController {
2333
2251
  private getRawBody;
2334
2252
  }
2335
2253
 
2336
- declare class WhatsAppReceiverByWasender {
2254
+ declare class WasenderReceiver {
2337
2255
  private config;
2338
2256
  private wasender;
2339
2257
  private listener;
@@ -2351,23 +2269,36 @@ declare class WhatsAppReceiverByWasender {
2351
2269
  disconnect(): void;
2352
2270
  }
2353
2271
 
2354
- interface ISendByWasenderRequest {
2355
- from: string;
2356
- to: string;
2357
- message: IChatMessage;
2358
- }
2359
- declare class WhatsAppSenderByWasender {
2272
+ declare class WasenderSender implements IWhatsAppSender {
2360
2273
  private wasender;
2361
2274
  private logger;
2362
2275
  constructor(apiKey: string, retryOptions?: {
2363
2276
  enabled: boolean;
2364
2277
  maxRetries: number;
2365
2278
  });
2366
- send(request: ISendByWasenderRequest): Promise<void>;
2279
+ sendMessage(request: ISendWhatsAppMessageReq): Promise<void>;
2280
+ sendTemplate(request: ISendWhatsAppTemplateReq): Promise<void>;
2367
2281
  }
2368
2282
 
2369
2283
  declare function extractNumberFromWasenderMessageKey(key: IWasenderMessageKey): string;
2370
2284
 
2285
+ declare class WhatsAppSender implements IWhatsAppSender {
2286
+ sendMessage(request: ISendWhatsAppMessageReq): Promise<void>;
2287
+ sendTemplate(request: ISendWhatsAppTemplateReq): Promise<void>;
2288
+ }
2289
+
2290
+ declare class InMemoryLockKey implements ILockKey {
2291
+ private readonly key;
2292
+ private static locks;
2293
+ constructor(key: string | number);
2294
+ run<T>(fn: () => Promise<T>): Promise<T>;
2295
+ tryRun<T>(fn: () => Promise<T>): Promise<T | undefined>;
2296
+ }
2297
+
2298
+ declare class InMemoryLocker implements ILocker {
2299
+ withKey(key: string | number | ILockerKey): ILockKey;
2300
+ }
2301
+
2371
2302
  interface IHtmlModuleOptions {
2372
2303
  url: string;
2373
2304
  title: string;
@@ -2376,4 +2307,4 @@ declare function HtmlModule(options: IHtmlModuleOptions): {
2376
2307
  new (): {};
2377
2308
  };
2378
2309
 
2379
- export { AnthropicChatAdapter, ApiKey, ApiKeyGuardMiddleware, ApiKeyHandshakeGuardMiddleware, ApiKeyRepository, Async, AsyncMetadataStore, Auth, Chat, ChatAdapter, ChatAdapterMetadataStore, ChatAdapterRegistry, ChatBot, ChatBotMetadataStore, ChatItem, ChatMemory, ChatOperator, ChatRepository, ChatResolver, type ClientMap, CmdChannel, type ConfigReference, type ConfigReferenceType, ConfigResolver, Container, ControllerMetadataStore, CronJob, CronJobRepository, CustomError, DeepSeekChatAdapter, DescriptionMetadataStore, EXPRESS_REQ, EXPRESS_RES, Entity, Env, EnvWhatsAppRepository, type ErrorSeverity, ExpressProvider, GoogleChatAdapter, type GoogleChatAdapterV2Options, HtmlModule, HttpServerProvider, type IApiKeyData, type IApiKeyRepository, type IArrayValidationError, type IArrayValidationResult, type IBotMessageItem, type IBuiltQuery, type IChannelMessage, type IChannelMetadata, type IChatAdapter, type IChatAdapterDecoratorConfig, type IChatAdapterMetadata, type IChatAdapterNextItemsReq, type IChatAdapterNextItemsRes, type IChatAssociation, type IChatBot, type IChatBotMetadata, type IChatChannel, type IChatConnection, type IChatControllerMetadata, type IChatData, type IChatItem, type IChatItemData, type IChatItemType, type IChatMemory, type IChatMessage, type IChatMessageDocument, type IChatMessageFile, type IChatMessageImage, type IChatMessagesPrivateFile, type IChatMessagesPublicFile, type IChatRepository, type IChatType, type ICmdChannelMessage, type ICmdReceivedMessage, type ICommandConfig, type ICommandHandler, type ICommandHandlerConfig, type IConstructor, type ICronConfig, type ICronJobData, type ICrudRepository, type ICustomErrorData, type IDescriptionMetadata, type IEndPointConfig, type IEndPointMetadata, type IEntityData, type IEnvType, type IErrorHandlersConfig, type IErrorMonitor, type IErrorMonitorContext, type IExtractChatMessageTextOptions, type IFunctionCall, type IFunctionCallItem, type IGenerateApiKeyReq, type IGenerateApiKeyRes, type IGetWhatsAppTemplateRequest, type IHandshakeMiddleware, type IHandshakeMiddlewareMetadata, type IHtmlModuleOptions, type IHumanMessageItem, type IJobData, type IJobRepository, type IJwtRefreshTokenData, type IJwtRefreshTokenRepository, type ILanguageModelUsage, type IListenWhatsAppMessageRequest, type ILockKey, type ILocker, type ILockerKey, type IMessageContext, type IMiddleware, type IMiddlewareMetadata, type IMindset, type IMindsetConfig, type IMindsetIdentity, type IMindsetLlm, type IMindsetMetadata, type IMindsetModelKind, type IMindsetModelRef, type IMindsetModels, type IMindsetModuleConfig, type IMindsetModuleMetadata, type IMindsetTool, type IMindsetToolParameter, type IModelValidationError, type IModelValidationResult, type IModelValidatorsInfo, type IMoneyData, type IPersistentData, type IPgRepositoryConfig, type IPropertyValidatorInfo, type IQueryAst, type IQueryCondition, type IQueryMethodMetadata, type IQueryOrderBy, type IReceivedMessage, type IRemoteApiKeyFetcher, type IRestControllerConfig, type IRestControllerMetadata, type IScheduleAt, type IScheduleDelay, type ISendByWasenderRequest, type ISendWhatsAppRequest, type ISendWhatsAppTemplateRequest, type ISocketChannelConfig, type ISocketChannelMessage, type ISocketChannelReceivedMessage, type ISocketControllerConfig, type ISocketControllerMetadata, type ISocketEventConfig, type ISocketEventMetadata, type ISocketReceivedMessage, type IStorableData, type ITelegramChannelConfig, type ITelegramChannelMessage, type ITelegramReceivedMessage, type IValidateArrayOptions, type IValidateArrayOptionsWithItemsValidators, type IValidateInputShape, type IValidateIsInOptions, type IValidateIsRecordOptions, type IValidateMaxOptions, type IValidateMinOptions, type IValidationError, type IValidationResult, type IValidator, type IValidatorMetadata, type IWasenderChannelMessageListener, type IWasenderDeviceListMetadata, type IWasenderEvent, type IWasenderMessageContent, type IWasenderMessageContextInfo, type IWasenderMessageKey, type IWasenderMessageReceivedData, type IWasenderMessageReceivedEvent, type IWasenderQrUpdatedEvent, type IWhatsAppBusinessAccount, type IWhatsAppBusinessNumber, type IWhatsAppByWasenderChannelConfig, type IWhatsAppByWasenderReceivedMessage, type IWhatsAppChannelMessage, type IWhatsAppCloudContact, type IWhatsAppCloudMessage, type IWhatsAppCloudMessageMetadata, type IWhatsAppCloudTemplate, type IWhatsAppCloudTemplateComponent, type IWhatsAppCloudTemplateMessage, type IWhatsAppCloudTemplateParameter, type IWhatsAppCloudTemplateResponse, type IWhatsAppCloudWebhookPayload, type IWhatsAppData, type IWhatsAppMessageListener, type IWhatsAppProxyListenMessageEventData, type IWhatsAppProxyListenMessageEventReq, type IWhatsAppProxyMessage, type IWhatsAppProxyMessageContent, type IWhatsAppProxyMessageEventReq, type IWhatsAppProxySendMessageEventReq, type IWhatsAppReceivedMessage, type IWhatsAppRepository, type IWhatsAppSenderOptions, type IWhatsappChannelConfig, type IchatControllerConfig, Job, JobRepository, JobRunner, Jwt, JwtAccessAndRefreshTokenDto, JwtConfig, JwtGuardMiddleware, JwtHandshakeGuardMiddleware, JwtRefreshToken, JwtRefreshTokenRepository, JwtSigner, JwtTokenDto, Lifecycle, Locker, Logger, Mapper, Mindset, MindsetMetadataStore, MindsetOperator, Money, MoneyDto, OpenRouterChatAdapter, OpenaiChatAdapter, Password, type PasswordHashOptions, Persistent, PgApiKeyRepository, PgChatMemory, PgChatRepository, PgCronJobRepository, PgCrudRepository, PgJobRepository, PgJsonRepository, PgJwtRefreshTokenRepository, PgLockKey, PgLocker, PgRepositoryBase, PgRepositoryMetadataStore, PgWhatsAppRepository, type QueryConnector, type QueryOperator, type QueryPrefix, RamChatMemory, RamChatRepository, Random, RemoteApiKeyRepository, type ResolvedConfig, RestControllerMetadataStore, RestRequest, SocketChannel, SocketChannelConfig, SocketChannelMessageFile, SocketChannelReceivedMessage, SocketControllerMetadataStore, SocketServerConfig, SocketServerProvider, Storable, TelegramChannel, TelegramChannelConfig, UnionChatAdapter, ValidationMetadataStore, WHATSAPP_MESSAGE_EVENT, WHATSAPP_PROXY_LISTEN_MESSAGE_EVENT, WHATSAPP_PROXY_SEND_MESSAGE_EVENT, WabotChatAdapter, WasenderWebhookController, WhatsApp, WhatsAppByWasenderChannel, WhatsAppByWasenderChannelConfig, WhatsAppChannel, WhatsAppReceiver, WhatsAppReceiverByCloudApi, WhatsAppReceiverByWabotProxy, WhatsAppReceiverByWasender, WhatsAppRepository, WhatsAppSender, WhatsAppSenderByCloudApi, WhatsAppSenderByWabotProxy, WhatsAppSenderByWasender, WhatsAppWabotProxyConnection, WhatsappChannelConfig, apiKeyGuard, apiKeyHandshakeGuard, bool, boolArr, buildQuerySql, chatAdapter, chatBot, chatController, chatItemTypeOptions, cmd, cmdChannelName, command, commandHandler, container, cron, description, errorToPlainObject, extractChatMessageText, extractNumberFromWasenderMessageKey, getClientMap, getPgClient, handshakeMiddlewares, inject, injectable, isArray, isBoolean, isChatMessageEmpty, isDate, isIn, isModel, isNotEmpty, isNumber, isOptional, isPresent, isRecord, isRetryableError, isString, jwtGuard, jwtHandshakeGuard, max, middleware, min, mindset, mindsetModule, modelInfo, num, numArr, obj, onDelete, onGet, onPost, onPut, onSocketEvent, parseQueryMethodName, pgJsonRepository, pgStorage, query, readJsonFromFile, resolveConfigReferences, restController, runChatAdapters, runChatControllers, runCommandHandlers, runCronHandlers, runRestControllers, runSocketControllers, safeJsonParse, scoped, setupErrorHandlers, singleton, socket, socketChannelName, socketController, stopCommandHandlers, stopCronHandlers, str, strArr, telegram, telegramChannelName, validateAndTransform, validateArray, validateIsBoolean, validateIsDate, validateIsIn, validateIsNotEmpty, validateIsNumber, validateIsPresent, validateIsRecord, validateIsString, validateMax, validateMin, validateModel, whatsApp, whatsAppByWasender, whatsAppByWasenderChannelName, whatsAppChannelName, withPgClient, withPgTransaction, writeJsonToFile };
2310
+ export { AnthropicChatAdapter, ApiKey, ApiKeyGuardMiddleware, ApiKeyHandshakeGuardMiddleware, ApiKeyRepository, Async, AsyncMetadataStore, Auth, Chat, ChatAdapter, ChatAdapterMetadataStore, ChatAdapterRegistry, ChatBot, ChatBotMetadataStore, ChatItem, ChatMemory, ChatOperator, ChatRepository, ChatResolver, type ClientMap, CmdChannel, type ConfigReference, type ConfigReferenceType, ConfigResolver, Container, ControllerMetadataStore, CronJob, CronJobRepository, CustomError, DeepSeekChatAdapter, DescriptionMetadataStore, EXPRESS_REQ, EXPRESS_RES, Entity, Env, type ErrorSeverity, ExpressProvider, GoogleChatAdapter, type GoogleChatAdapterV2Options, HtmlModule, HttpServerProvider, type IApiKeyData, type IApiKeyRepository, type IArrayValidationError, type IArrayValidationResult, type IBotMessageItem, type IBuiltQuery, type IChannelMessage, type IChannelMetadata, type IChatAdapter, type IChatAdapterDecoratorConfig, type IChatAdapterMetadata, type IChatAdapterNextItemsReq, type IChatAdapterNextItemsRes, type IChatAssociation, type IChatBot, type IChatBotMetadata, type IChatChannel, type IChatConnection, type IChatControllerMetadata, type IChatData, type IChatItem, type IChatItemData, type IChatItemType, type IChatMemory, type IChatMessage, type IChatMessageDocument, type IChatMessageFile, type IChatMessageImage, type IChatMessagesPrivateFile, type IChatMessagesPublicFile, type IChatRepository, type IChatType, type ICmdChannelMessage, type ICmdReceivedMessage, type ICommandConfig, type ICommandHandler, type ICommandHandlerConfig, type IConstructor, type ICronConfig, type ICronHandler, type ICronJobData, type ICronJobRepository, type ICrudRepository, type ICustomErrorData, type IDescriptionMetadata, type IEndPointConfig, type IEndPointMetadata, type IEntityData, type IEnvType, type IErrorHandlersConfig, type IErrorMonitor, type IErrorMonitorContext, type IExtractChatMessageTextOptions, type IFunctionCall, type IFunctionCallItem, type IGenerateApiKeyReq, type IGenerateApiKeyRes, type IHandshakeMiddleware, type IHandshakeMiddlewareMetadata, type IHtmlModuleOptions, type IHumanMessageItem, type IJobData, type IJobRepository, type IJwtRefreshTokenData, type IJwtRefreshTokenRepository, type ILanguageModelUsage, type ILockKey, type ILocker, type ILockerKey, type IMessageContext, type IMiddleware, type IMiddlewareMetadata, type IMindset, type IMindsetConfig, type IMindsetIdentity, type IMindsetLlm, type IMindsetMetadata, type IMindsetModelKind, type IMindsetModelRef, type IMindsetModels, type IMindsetModuleConfig, type IMindsetModuleMetadata, type IMindsetTool, type IMindsetToolParameter, type IModelValidationError, type IModelValidationResult, type IModelValidatorsInfo, type IMoneyData, type IPersistentData, type IPgRepositoryConfig, type IProjectRunnerConfig, type IPropertyValidatorInfo, type IQueryAst, type IQueryCondition, type IQueryMethodMetadata, type IQueryOrderBy, type IReceivedMessage, type IRemoteApiKeyFetcher, type IRestControllerConfig, type IRestControllerMetadata, type IScheduleAt, type IScheduleDelay, type ISendWhatsAppMessageReq, type ISendWhatsAppTemplateReq, type ISocketChannelConfig, type ISocketChannelMessage, type ISocketChannelReceivedMessage, type ISocketControllerConfig, type ISocketControllerMetadata, type ISocketEventConfig, type ISocketEventMetadata, type ISocketReceivedMessage, type IStorableData, type ITelegramChannelConfig, type ITelegramChannelMessage, type ITelegramReceivedMessage, type ITransactionAdapter, type IValidateArrayOptions, type IValidateArrayOptionsWithItemsValidators, type IValidateInputShape, type IValidateIsInOptions, type IValidateIsRecordOptions, type IValidateMaxOptions, type IValidateMinOptions, type IValidationError, type IValidationResult, type IValidator, type IValidatorMetadata, type IWasenderChannelConfig, type IWasenderChannelMessageListener, type IWasenderDeviceListMetadata, type IWasenderEvent, type IWasenderMessageContent, type IWasenderMessageContextInfo, type IWasenderMessageKey, type IWasenderMessageReceivedData, type IWasenderMessageReceivedEvent, type IWasenderQrUpdatedEvent, type IWasenderReceivedMessage, type IWhatsAppCloudContact, type IWhatsAppCloudMessage, type IWhatsAppCloudMessageMetadata, type IWhatsAppCloudTemplate, type IWhatsAppCloudTemplateComponent, type IWhatsAppCloudTemplateResponse, type IWhatsAppCloudWebhookPayload, type IWhatsAppSender, type IWhatsAppTemplateData, type IWhatsAppTemplateParameter, type IchatControllerConfig, InMemoryChatMemory, InMemoryChatRepository, InMemoryCronJobRepository, InMemoryJobRepository, InMemoryLockKey, InMemoryLocker, Job, JobRepository, JobRunner, Jwt, JwtAccessAndRefreshTokenDto, JwtConfig, JwtGuardMiddleware, JwtHandshakeGuardMiddleware, JwtRefreshToken, JwtRefreshTokenRepository, JwtSigner, JwtTokenDto, Lifecycle, Locker, Logger, Mapper, Mindset, MindsetMetadataStore, MindsetOperator, Money, MoneyDto, OpenRouterChatAdapter, OpenaiChatAdapter, Password, type PasswordHashOptions, Persistent, PgApiKeyRepository, PgChatMemory, PgChatRepository, PgCronJobRepository, PgCrudRepository, PgJobRepository, PgJsonRepository, PgJwtRefreshTokenRepository, PgLockKey, PgLocker, PgRepositoryBase, PgRepositoryMetadataStore, PgTransactionAdapter, ProjectRunner, type QueryConnector, type QueryOperator, type QueryPrefix, Random, RemoteApiKeyRepository, type ResolvedConfig, RestControllerMetadataStore, RestRequest, SocketChannel, SocketChannelConfig, SocketChannelMessageFile, SocketChannelReceivedMessage, SocketControllerMetadataStore, SocketServerConfig, SocketServerProvider, Storable, TelegramChannel, TelegramChannelConfig, TransactionMetadataStore, UnionChatAdapter, ValidationMetadataStore, WabotChatAdapter, WasenderChannel, WasenderChannelConfig, WasenderReceiver, WasenderSender, WasenderWebhookController, WhatsAppApiSender, WhatsAppReceiverByCloudApi, WhatsAppSender, apiKeyGuard, apiKeyHandshakeGuard, bool, boolArr, buildQuerySql, chatAdapter, chatBot, chatController, chatItemTypeOptions, cmd, cmdChannelName, command, commandHandler, container, cronHandler, description, errorToPlainObject, extractChatMessageText, extractNumberFromWasenderMessageKey, getClientMap, getPgClient, handshakeMiddlewares, inject, injectable, isArray, isBoolean, isChatMessageEmpty, isDate, isIn, isModel, isNotEmpty, isNumber, isOptional, isPresent, isRecord, isRetryableError, isString, jwtGuard, jwtHandshakeGuard, max, middleware, min, mindset, mindsetModule, modelInfo, num, numArr, obj, onDelete, onGet, onPost, onPut, onSocketEvent, parseQueryMethodName, pgJsonRepository, pgStorage, query, readJsonFromFile, resolveConfigReferences, restController, run, runChatAdapters, runChatControllers, runCommandHandlers, runCronHandlers, runRestControllers, runSocketControllers, safeJsonParse, scoped, setupErrorHandlers, singleton, socket, socketChannelName, socketController, stopCommandHandlers, stopCronHandlers, str, strArr, telegram, telegramChannelName, transaction, validateAndTransform, validateArray, validateIsBoolean, validateIsDate, validateIsIn, validateIsNotEmpty, validateIsNumber, validateIsPresent, validateIsRecord, validateIsString, validateMax, validateMin, validateModel, wasender, wasenderChannelName, withPgClient, withPgTransaction, writeJsonToFile };