@wabot-dev/framework 0.1.0-beta.3 → 0.1.0-beta.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/addon/async/pg/PgJobRepository.js +26 -0
- package/dist/src/addon/chat-bot/claude/ClaudeChatBotAdapter.js +107 -0
- package/dist/src/addon/chat-bot/deepseek/DeepSeekChatBotAdapter.js +103 -0
- package/dist/src/addon/chat-bot/openia/OpenaiChatAdapter.js +101 -0
- package/dist/src/{pre-made/repository/chat → addon/chat-bot}/pg/PgChatMemory.js +5 -4
- package/dist/src/{pre-made/repository/chat → addon/chat-bot}/pg/PgChatRepository.js +5 -5
- package/dist/src/{pre-made/repository/chat → addon/chat-bot}/ram/RamChatRepository.js +2 -2
- package/dist/src/addon/chat-controller/cmd/@cmd.js +22 -0
- package/dist/src/{channels → addon/chat-controller}/cmd/CmdChannel.js +4 -26
- package/dist/src/{channels → addon/chat-controller}/socket/@socket.js +8 -4
- package/dist/src/{channels → addon/chat-controller}/socket/SocketChannel.js +5 -23
- package/dist/src/{channels → addon/chat-controller}/socket/SocketChannelConfig.js +1 -1
- package/dist/src/{channels → addon/chat-controller}/telegram/@telegram.js +8 -4
- package/dist/src/{channels → addon/chat-controller}/telegram/TelegramChannel.js +4 -22
- package/dist/src/{channels → addon/chat-controller}/whatsapp/@whatsapp.js +8 -4
- package/dist/src/addon/chat-controller/whatsapp/EnvWhatsAppRepository.js +49 -0
- package/dist/src/{channels/whatsapp/WhatsAppRepository.js → addon/chat-controller/whatsapp/PgWhatsAppRepository.js} +5 -5
- package/dist/src/{channels/wabot → addon/chat-controller/whatsapp}/WabotDevConnection.js +2 -2
- package/dist/src/{channels → addon/chat-controller}/whatsapp/WhatsApp.js +5 -4
- package/dist/src/{channels → addon/chat-controller}/whatsapp/WhatsAppChannel.js +6 -18
- package/dist/src/{channels → addon/chat-controller}/whatsapp/WhatsAppReceiver.js +4 -7
- package/dist/src/{channels → addon/chat-controller}/whatsapp/WhatsAppReceiverByDevConnection.js +3 -9
- package/dist/src/{channels → addon/chat-controller}/whatsapp/WhatsAppReceiverByWebHook.js +2 -9
- package/dist/src/{core/chat/repository/IChatMemory.js → addon/chat-controller/whatsapp/WhatsAppRepository.js} +4 -4
- package/dist/src/{channels → addon/chat-controller}/whatsapp/WhatsAppSender.js +39 -10
- package/dist/src/{channels → addon/chat-controller}/whatsapp/WhatsAppSenderByCloudApi.js +10 -13
- package/dist/src/{channels → addon/chat-controller}/whatsapp/WhatsAppSenderByDevConnection.js +13 -15
- package/dist/src/addon/mindset/html/HtmlModule.js +70 -0
- package/dist/src/{repository → addon/repository}/pg/PgCrudRepository.js +23 -2
- package/dist/src/{repository → addon/repository}/pg/PgRepositoryBase.js +2 -2
- package/dist/src/addon/rest-controller/jwt/@jwtGuard.js +17 -0
- package/dist/src/addon/rest-controller/jwt/Jwt.js +36 -0
- package/dist/src/addon/rest-controller/jwt/JwtAccessAndRefreshTokenDto.js +20 -0
- package/dist/src/addon/rest-controller/jwt/JwtConfig.js +28 -0
- package/dist/src/addon/rest-controller/jwt/JwtGuardMiddleware.js +50 -0
- package/dist/src/addon/rest-controller/jwt/JwtRefreshToken.js +9 -0
- package/dist/src/addon/rest-controller/jwt/JwtRefreshTokenRepository.js +21 -0
- package/dist/src/addon/rest-controller/jwt/JwtSigner.js +48 -0
- package/dist/src/addon/rest-controller/jwt/JwtTokenDto.js +22 -0
- package/dist/src/addon/validation/is-boolean/@isBoolean.js +17 -0
- package/dist/src/addon/validation/is-boolean/validateIsBoolean.js +12 -0
- package/dist/src/addon/validation/is-date/@isDate.js +17 -0
- package/dist/src/addon/validation/is-date/validateIsDate.js +16 -0
- package/dist/src/addon/validation/is-not-empty/@isNotEmpty.js +17 -0
- package/dist/src/addon/validation/is-not-empty/validateIsNotEmpty.js +12 -0
- package/dist/src/addon/validation/is-number/@isNumber.js +17 -0
- package/dist/src/addon/validation/is-number/validateIsNumber.js +12 -0
- package/dist/src/addon/validation/is-present/@isPresent.js +17 -0
- package/dist/src/addon/validation/is-present/validateIsPresent.js +12 -0
- package/dist/src/addon/validation/is-string/@isString.js +17 -0
- package/dist/src/addon/validation/is-string/validateIsString.js +12 -0
- package/dist/src/addon/validation/max/@max.js +18 -0
- package/dist/src/addon/validation/max/validateMax.js +17 -0
- package/dist/src/addon/validation/min/@min.js +18 -0
- package/dist/src/addon/validation/min/validateMin.js +17 -0
- package/dist/src/core/{Persistent.js → entity/Entity.js} +24 -9
- package/dist/src/core/env/Env.js +39 -0
- package/dist/src/core/error/CustomError.js +15 -0
- package/dist/src/core/injection/index.js +4 -0
- package/dist/src/core/mapper/Mapper.js +42 -0
- package/dist/src/core/random/Random.js +37 -0
- package/dist/src/core/storable/Storable.js +8 -0
- package/dist/src/core/validation/metadata/@isArray.js +18 -0
- package/dist/src/core/validation/metadata/@isModel.js +18 -0
- package/dist/src/core/validation/metadata/@isOptional.js +17 -0
- package/dist/src/core/validation/metadata/ValidationMetadataStore.js +98 -0
- package/dist/src/core/validation/modelInfo.js +9 -0
- package/dist/src/core/validation/validate.js +11 -0
- package/dist/src/core/validation/validators/validateArray.js +41 -0
- package/dist/src/core/validation/validators/validateIsOptional.js +5 -0
- package/dist/src/core/validation/validators/validateModel.js +34 -0
- package/dist/src/feature/async/@command.js +11 -0
- package/dist/src/feature/async/@commandHandler.js +12 -0
- package/dist/src/feature/async/Async.js +38 -0
- package/dist/src/feature/async/Command.js +9 -0
- package/dist/src/feature/async/CommandMetadataStore.js +38 -0
- package/dist/src/feature/async/Job.js +24 -0
- package/dist/src/feature/async/JobRepository.js +31 -0
- package/dist/src/feature/async/JobRunner.js +45 -0
- package/dist/src/feature/async/JobsEventsHub.js +24 -0
- package/dist/src/feature/async/runCommandHandlers.js +29 -0
- package/dist/src/{core/chat → feature/chat-bot}/Chat.js +2 -2
- package/dist/src/feature/chat-bot/ChatAdapter.js +7 -0
- package/dist/src/feature/chat-bot/ChatBot.js +50 -0
- package/dist/src/feature/chat-bot/ChatItem.js +24 -0
- package/dist/src/feature/chat-bot/ChatMemory.js +10 -0
- package/dist/src/{core/chat/repository/IChatRepository.js → feature/chat-bot/ChatRepository.js} +2 -8
- package/dist/src/feature/chat-bot/IChatItem.js +3 -0
- package/dist/src/{chatbot → feature/chat-bot}/metadata/@chatBot.js +1 -1
- package/dist/src/{chatbot → feature/chat-bot}/metadata/ChatBotMetadataStore.js +1 -1
- package/dist/src/{controller/channel → feature/chat-controller}/ChatResolver.js +5 -4
- package/dist/src/{controller → feature/chat-controller}/metadata/ControllerMetadataStore.js +1 -1
- package/dist/src/{controller → feature/chat-controller}/metadata/controller/@chatController.js +1 -1
- package/dist/src/feature/chat-controller/runChatControllers.js +69 -0
- package/dist/src/{channels → feature}/express/ExpressProvider.js +1 -1
- package/dist/src/{channels → feature}/http/HttpServerProvider.js +1 -1
- package/dist/src/{mindset → feature/mindset}/MindsetOperator.js +66 -42
- package/dist/src/{mindset → feature/mindset}/metadata/MindsetMetadataStore.js +1 -1
- package/dist/src/{mindset → feature/mindset}/metadata/functions/@mindsetFunction.js +1 -1
- package/dist/src/{mindset → feature/mindset}/metadata/mindsets/@mindset.js +1 -1
- package/dist/src/{mindset → feature/mindset}/metadata/modules/@mindsetModule.js +1 -2
- package/dist/src/{mindset → feature/mindset}/metadata/params/@param.js +1 -1
- package/dist/src/feature/rest-controller/auth/Auth.js +24 -0
- package/dist/src/feature/rest-controller/metadata/@get.js +19 -0
- package/dist/src/feature/rest-controller/metadata/@middleware.js +16 -0
- package/dist/src/feature/rest-controller/metadata/@post.js +19 -0
- package/dist/src/feature/rest-controller/metadata/@restController.js +15 -0
- package/dist/src/feature/rest-controller/metadata/RestControllerMetadataStore.js +50 -0
- package/dist/src/feature/rest-controller/runRestControllers.js +75 -0
- package/dist/src/{channels → feature}/socket/SocketServerProvider.js +1 -1
- package/dist/src/index.d.ts +785 -475
- package/dist/src/index.js +118 -74
- package/package.json +6 -3
- package/dist/src/ai/deepseek/DeepSeekChatBotAdapter.js +0 -106
- package/dist/src/ai/openia/OpenaiChatBotAdapter.js +0 -84
- package/dist/src/channels/cmd/@cmd.js +0 -18
- package/dist/src/chatbot/ChatBot.js +0 -51
- package/dist/src/chatbot/ChatBotAdapter.js +0 -72
- package/dist/src/controller/channel/UserResolver.js +0 -21
- package/dist/src/core/IMessageContext.js +0 -12
- package/dist/src/core/chat/ChatItem.js +0 -15
- package/dist/src/core/user/IUserRepository.js +0 -19
- package/dist/src/core/user/User.js +0 -26
- package/dist/src/env/WabotEnv.js +0 -21
- package/dist/src/injection/index.js +0 -4
- package/dist/src/mindset/metadata/params/@isOptional.js +0 -21
- package/dist/src/pre-made/module/authentication/AuthenticationModule.js +0 -97
- package/dist/src/pre-made/module/authentication/requests/SendOneTimePasswordRequest.js +0 -25
- package/dist/src/pre-made/module/authentication/requests/ValidateOneTimePasswordRequest.js +0 -25
- package/dist/src/pre-made/module/register-user/RegisterUserModule.js +0 -56
- package/dist/src/pre-made/module/register-user/requests/RegisterUserWithEmailRequest.js +0 -25
- package/dist/src/pre-made/repository/user/pg/PgUserRepository.js +0 -33
- package/dist/src/pre-made/repository/user/ram/RamUserRepository.js +0 -27
- package/dist/src/pre-made/service/EmailService.js +0 -13
- package/dist/src/pre-made/service/OtpService.js +0 -14
- package/dist/src/server/prepareChatContainer.js +0 -43
- package/dist/src/server/runChannel.js +0 -27
- package/dist/src/server/runServer.js +0 -40
- /package/dist/src/{pre-made/repository/chat → addon/chat-bot}/ram/RamChatMemory.js +0 -0
- /package/dist/src/{channels → addon/chat-controller}/telegram/TelegramChannelConfig.js +0 -0
- /package/dist/src/{channels/wabot → addon/chat-controller/whatsapp}/WabotDevSocketContracts.js +0 -0
- /package/dist/src/{channels → addon/chat-controller}/whatsapp/WhatsAppChannelConfig.js +0 -0
- /package/dist/src/{injection → core/injection}/Container.js +0 -0
- /package/dist/src/{logger → core/logger}/Logger.js +0 -0
- /package/dist/src/{mindset → feature/mindset}/IMindset.js +0 -0
- /package/dist/src/{mindset → feature/mindset}/metadata/functions/decoratorNames.js +0 -0
- /package/dist/src/{mindset → feature/mindset}/metadata/mindsets/decoratorNames.js +0 -0
- /package/dist/src/{mindset → feature/mindset}/metadata/modules/decoratorNames.js +0 -0
- /package/dist/src/{mindset → feature/mindset}/metadata/params/decoratorNames.js +0 -0
package/dist/src/index.d.ts
CHANGED
|
@@ -1,183 +1,358 @@
|
|
|
1
|
+
import * as tsyringe from 'tsyringe';
|
|
2
|
+
import { DependencyContainer as DependencyContainer$1 } from 'tsyringe';
|
|
3
|
+
export { DependencyContainer } from 'tsyringe';
|
|
1
4
|
import InjectionToken from 'tsyringe/dist/typings/providers/injection-token';
|
|
2
5
|
import DependencyContainer, { PreResolutionInterceptorCallback, PostResolutionInterceptorCallback } from 'tsyringe/dist/typings/types/dependency-container';
|
|
3
6
|
import InterceptionOptions from 'tsyringe/dist/typings/types/interceptor-options';
|
|
4
7
|
import { Server } from 'http';
|
|
5
|
-
import { Express } from 'express';
|
|
8
|
+
import { Express, Request, Response } from 'express';
|
|
6
9
|
import { Server as Server$1 } from 'socket.io';
|
|
7
10
|
import { Pool } from 'pg';
|
|
8
11
|
import { Socket } from 'socket.io-client';
|
|
9
|
-
import
|
|
10
|
-
import { DependencyContainer as DependencyContainer$1 } from 'tsyringe';
|
|
11
|
-
export { DependencyContainer } from 'tsyringe';
|
|
12
|
-
|
|
13
|
-
interface IMindsetFunctionConfig {
|
|
14
|
-
description: string;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
declare function mindsetFunction(config: IMindsetFunctionConfig): (target: object, propertyKey: string | symbol) => void;
|
|
18
|
-
|
|
19
|
-
declare const MINDSET_FUNCTION_DECORATION_FUNCTION = "mindsetFunction";
|
|
12
|
+
import { Algorithm } from 'jsonwebtoken';
|
|
20
13
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
14
|
+
type IPrimitive = null | number | string | boolean | undefined;
|
|
15
|
+
type IStorableData = {
|
|
16
|
+
[key: string]: IPrimitive | IPrimitive[] | IStorableData | IStorableData[];
|
|
17
|
+
};
|
|
18
|
+
declare class Storable<D extends IStorableData> {
|
|
19
|
+
protected data: D;
|
|
20
|
+
constructor(data: D);
|
|
27
21
|
}
|
|
28
22
|
|
|
29
|
-
interface
|
|
23
|
+
interface IEntityData extends IStorableData {
|
|
30
24
|
id?: string;
|
|
31
25
|
createdAt?: number | null;
|
|
32
26
|
discardedAt?: number | null;
|
|
33
27
|
}
|
|
34
|
-
declare class
|
|
35
|
-
|
|
36
|
-
|
|
28
|
+
declare class Entity<D extends IEntityData> extends Storable<D> {
|
|
29
|
+
get id(): string;
|
|
30
|
+
/**
|
|
31
|
+
* @deprecated use id
|
|
32
|
+
*/
|
|
37
33
|
getId(): string;
|
|
34
|
+
get createdAt(): Date;
|
|
35
|
+
/**
|
|
36
|
+
* @deprecated use createdAt
|
|
37
|
+
*/
|
|
38
38
|
getCreatedAt(): Date;
|
|
39
|
-
update(newData: D): void;
|
|
39
|
+
update(newData: Omit<D, 'id' | 'createdAt' | 'discardedAt'>): void;
|
|
40
40
|
wasCreated(): boolean;
|
|
41
41
|
validate(): void;
|
|
42
42
|
discard(): void;
|
|
43
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* @deprecated Should use IEntityData
|
|
46
|
+
*/
|
|
47
|
+
interface IPersistentData extends IEntityData {
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* @deprecated Should use Entity
|
|
51
|
+
*/
|
|
52
|
+
declare class Persistent<D extends IPersistentData> extends Entity<D> {
|
|
53
|
+
}
|
|
44
54
|
|
|
45
|
-
type
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
55
|
+
type IEnvType = 'development' | 'staging' | 'testing' | 'production';
|
|
56
|
+
declare class Env {
|
|
57
|
+
private envType;
|
|
58
|
+
constructor();
|
|
59
|
+
isDevelopment(): boolean;
|
|
60
|
+
isProduction(): boolean;
|
|
61
|
+
isTesting(): boolean;
|
|
62
|
+
requireString(varName: string, options?: {
|
|
63
|
+
default?: string;
|
|
64
|
+
}): string;
|
|
65
|
+
requireNumber(varName: string, options?: {
|
|
66
|
+
default?: number;
|
|
67
|
+
}): number;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
interface ICustomErrorData {
|
|
71
|
+
message: string;
|
|
72
|
+
humanMessage?: string;
|
|
73
|
+
code?: string;
|
|
74
|
+
httpCode?: number;
|
|
75
|
+
cause?: Error;
|
|
76
|
+
info?: any;
|
|
77
|
+
}
|
|
78
|
+
declare class CustomError extends Error {
|
|
79
|
+
humanMessage?: string;
|
|
80
|
+
code?: string;
|
|
81
|
+
httpCode?: number;
|
|
82
|
+
info?: any;
|
|
83
|
+
constructor(data: ICustomErrorData);
|
|
50
84
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
85
|
+
|
|
86
|
+
type IConstructor<T> = new (...args: any[]) => T;
|
|
87
|
+
|
|
88
|
+
declare class Container implements DependencyContainer {
|
|
89
|
+
register(token: unknown, provider: unknown, options?: unknown): DependencyContainer;
|
|
90
|
+
registerSingleton(from: unknown, to?: unknown): DependencyContainer;
|
|
91
|
+
registerType<T>(from: InjectionToken<T>, to: InjectionToken<T>): DependencyContainer;
|
|
92
|
+
registerInstance<T>(token: InjectionToken<T>, instance: T): DependencyContainer;
|
|
93
|
+
resolve<T>(token: InjectionToken<T>): T;
|
|
94
|
+
resolveAll<T>(token: InjectionToken<T>): T[];
|
|
95
|
+
isRegistered<T>(token: InjectionToken<T>, recursive?: boolean): boolean;
|
|
96
|
+
reset(): void;
|
|
97
|
+
clearInstances(): void;
|
|
98
|
+
createChildContainer(): DependencyContainer;
|
|
99
|
+
beforeResolution<T>(token: InjectionToken<T>, callback: PreResolutionInterceptorCallback<T>, options?: InterceptionOptions): void;
|
|
100
|
+
afterResolution<T>(token: InjectionToken<T>, callback: PostResolutionInterceptorCallback<T>, options?: InterceptionOptions): void;
|
|
101
|
+
dispose(): Promise<void> | void;
|
|
54
102
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
103
|
+
|
|
104
|
+
declare const injectable: typeof tsyringe.injectable;
|
|
105
|
+
declare const container: tsyringe.DependencyContainer;
|
|
106
|
+
declare const singleton: typeof tsyringe.singleton;
|
|
107
|
+
declare const inject: typeof tsyringe.inject;
|
|
108
|
+
declare const scoped: typeof tsyringe.scoped;
|
|
109
|
+
declare const Lifecycle: typeof tsyringe.Lifecycle;
|
|
110
|
+
|
|
111
|
+
declare class Logger {
|
|
112
|
+
private debuggers;
|
|
113
|
+
constructor(name: string);
|
|
114
|
+
trace(...args: any[]): void;
|
|
115
|
+
debug(...args: any[]): void;
|
|
116
|
+
info(...args: any[]): void;
|
|
117
|
+
warn(...args: any[]): void;
|
|
118
|
+
error(...args: any[]): void;
|
|
119
|
+
fatal(...args: any[]): void;
|
|
120
|
+
private log;
|
|
63
121
|
}
|
|
64
122
|
|
|
65
|
-
|
|
123
|
+
declare class Mapper {
|
|
124
|
+
map<T>(data: any, ctor: IConstructor<T>): T;
|
|
66
125
|
}
|
|
67
126
|
|
|
68
|
-
|
|
127
|
+
declare class Random {
|
|
128
|
+
static slug(name: string, options: {
|
|
129
|
+
randomLength: number;
|
|
130
|
+
}): string;
|
|
131
|
+
static string(length: number): string;
|
|
132
|
+
static numberCode(length: number): string;
|
|
69
133
|
}
|
|
70
134
|
|
|
71
|
-
interface
|
|
72
|
-
|
|
73
|
-
id: string
|
|
135
|
+
interface ICrudRepository<T> {
|
|
136
|
+
find(id: string): Promise<T | null>;
|
|
137
|
+
findOrThrow(id: string): Promise<T>;
|
|
138
|
+
findByIds(ids: string[]): Promise<T[]>;
|
|
139
|
+
findAll(id: string): Promise<T[]>;
|
|
140
|
+
create(item: T): Promise<void>;
|
|
141
|
+
update(item: T): Promise<void>;
|
|
142
|
+
discard(item: T): Promise<void>;
|
|
74
143
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
144
|
+
|
|
145
|
+
declare function isModel(model: IConstructor<any>): (target: object, propertyKey: string | symbol) => void;
|
|
146
|
+
|
|
147
|
+
declare function isOptional(): (target: object, propertyKey: string | symbol) => void;
|
|
148
|
+
|
|
149
|
+
interface IValidationError {
|
|
150
|
+
description: string;
|
|
151
|
+
}
|
|
152
|
+
interface IModelValidationError extends IValidationError {
|
|
153
|
+
properties: {
|
|
154
|
+
[key: string]: string[];
|
|
80
155
|
};
|
|
81
156
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
hasConnection(connection: IUserConnection): boolean;
|
|
85
|
-
getValue(key: string): string;
|
|
86
|
-
setValue(key: string, value: string): void;
|
|
87
|
-
addConnection(connection: IUserConnection): void;
|
|
157
|
+
interface IArrayValidationError extends IValidationError {
|
|
158
|
+
items: (IValidationError[] | null)[];
|
|
88
159
|
}
|
|
160
|
+
type IValidationResult<V> = {
|
|
161
|
+
value: V;
|
|
162
|
+
error?: undefined;
|
|
163
|
+
} | {
|
|
164
|
+
value?: undefined;
|
|
165
|
+
error: IValidationError;
|
|
166
|
+
};
|
|
167
|
+
type IModelValidationResult<V> = {
|
|
168
|
+
value: V;
|
|
169
|
+
error?: undefined;
|
|
170
|
+
} | {
|
|
171
|
+
value?: undefined;
|
|
172
|
+
error: IModelValidationError;
|
|
173
|
+
};
|
|
174
|
+
type IArrayValidationResult<V> = {
|
|
175
|
+
value: V[];
|
|
176
|
+
error?: undefined;
|
|
177
|
+
} | {
|
|
178
|
+
value?: undefined;
|
|
179
|
+
error: IArrayValidationError;
|
|
180
|
+
};
|
|
181
|
+
type IValidator<V = any, O = any> = (value: V, options: O) => IValidationResult<V>;
|
|
182
|
+
interface IPropertyValidatorInfo {
|
|
183
|
+
propertyName: string;
|
|
184
|
+
validator: IValidator;
|
|
185
|
+
validatorOptions?: any;
|
|
186
|
+
}
|
|
187
|
+
type IModelValidatorsInfo<V> = {
|
|
188
|
+
modelConstructor: IConstructor<V>;
|
|
189
|
+
properties: {
|
|
190
|
+
[prop: string]: {
|
|
191
|
+
isOptional?: boolean;
|
|
192
|
+
validators?: IPropertyValidatorInfo[];
|
|
193
|
+
} | undefined;
|
|
194
|
+
};
|
|
195
|
+
};
|
|
89
196
|
|
|
90
|
-
interface
|
|
91
|
-
text?: string;
|
|
92
|
-
documents?: IChatDocument[];
|
|
93
|
-
images?: IChatImage[];
|
|
94
|
-
senderName: string;
|
|
197
|
+
interface IValidateArrayOptions {
|
|
95
198
|
}
|
|
96
|
-
interface
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
199
|
+
interface IValidateArrayOptionsWithItemsValidators extends IValidateArrayOptions {
|
|
200
|
+
itemsValidator?: {
|
|
201
|
+
validator: IValidator;
|
|
202
|
+
options: any;
|
|
203
|
+
}[];
|
|
100
204
|
}
|
|
205
|
+
declare function validateArray(value: any, options?: IValidateArrayOptionsWithItemsValidators): IArrayValidationResult<any>;
|
|
101
206
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
207
|
+
declare function isArray(options?: IValidateArrayOptions): (target: object, propertyKey: string | symbol) => void;
|
|
208
|
+
|
|
209
|
+
interface IValidatorMetadata {
|
|
210
|
+
modelConstructor: IConstructor<any>;
|
|
211
|
+
propertyName: string;
|
|
212
|
+
validator: IValidator;
|
|
213
|
+
validatorOptions?: any;
|
|
107
214
|
}
|
|
108
215
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
type: 'CONNECTION_MESSAGE';
|
|
115
|
-
content: IConnectionChatMessage;
|
|
116
|
-
};
|
|
117
|
-
type ISystemFunctionCallItem = {
|
|
118
|
-
type: 'FUNCTION_CALL';
|
|
119
|
-
content: IChatFunctionCall;
|
|
120
|
-
};
|
|
121
|
-
type IChatItemData = {
|
|
122
|
-
id?: string;
|
|
123
|
-
createdAt?: number;
|
|
124
|
-
} & (ISystemMessageItem | IReceivedMessageItem | ISystemFunctionCallItem);
|
|
125
|
-
type IChatItemType = IChatItemData['type'];
|
|
126
|
-
declare class ChatItem extends Persistent<IChatItemData> {
|
|
127
|
-
getType(): "BOT_MESSAGE" | "CONNECTION_MESSAGE" | "FUNCTION_CALL";
|
|
128
|
-
getContent(): IChatMessage | IConnectionChatMessage | IChatFunctionCall;
|
|
129
|
-
getData(): IChatItemData;
|
|
216
|
+
declare class ValidationMetadataStore {
|
|
217
|
+
private validators;
|
|
218
|
+
saveValidatorMetadata(validatorMetadata: IValidatorMetadata): void;
|
|
219
|
+
getModelValidatorsInfo<V>(modelConstructor: IConstructor<V>): IModelValidatorsInfo<V>;
|
|
220
|
+
private getConstructorPropertiesValidatorsInfo;
|
|
130
221
|
}
|
|
131
222
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
223
|
+
declare function validateModel<V>(value: any, info: IModelValidatorsInfo<V>): IModelValidationResult<V>;
|
|
224
|
+
|
|
225
|
+
declare function validate<V>(value: any, modelConstructor: IConstructor<V>): IModelValidationResult<V>;
|
|
226
|
+
|
|
227
|
+
declare function modelInfo<V>(modelConstructor: IConstructor<V>): IModelValidatorsInfo<V>;
|
|
228
|
+
|
|
229
|
+
interface ICommandConfig {
|
|
230
|
+
name?: string;
|
|
135
231
|
}
|
|
136
|
-
declare
|
|
137
|
-
|
|
138
|
-
|
|
232
|
+
declare function command(config?: ICommandConfig): (target: IConstructor<any>) => void;
|
|
233
|
+
|
|
234
|
+
declare class Command<T extends IStorableData> extends Storable<T> {
|
|
235
|
+
getData(): T;
|
|
139
236
|
}
|
|
140
237
|
|
|
141
|
-
interface
|
|
142
|
-
|
|
143
|
-
findByConnection(query: IChatConnection): Promise<Chat | null>;
|
|
144
|
-
findMemory(chatId: string): Promise<IChatMemory | null>;
|
|
238
|
+
interface ICommandHandler<C extends Command<any>> {
|
|
239
|
+
handle(command: C): void | Promise<void>;
|
|
145
240
|
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
241
|
+
|
|
242
|
+
interface ICommandHandlerConfig<C extends Command<any>> {
|
|
243
|
+
command: IConstructor<C>;
|
|
244
|
+
}
|
|
245
|
+
declare function commandHandler<C extends Command<any>>(config: ICommandHandlerConfig<C>): (target: IConstructor<ICommandHandler<C>>) => void;
|
|
246
|
+
|
|
247
|
+
declare class CommandMetadataStore {
|
|
248
|
+
private handlersMap;
|
|
249
|
+
private handlersInverseMap;
|
|
250
|
+
private commandsMap;
|
|
251
|
+
private commandsInverseMap;
|
|
252
|
+
registerCommand(command: IConstructor<Command<any>>, commandName: string): void;
|
|
253
|
+
registerHandler(command: IConstructor<Command<any>>, handlerConstructor: IConstructor<ICommandHandler<any>>): void;
|
|
254
|
+
getHandlerForCommandName(commandName: string): IConstructor<ICommandHandler<any>> | null;
|
|
255
|
+
getCommandNameForHandler(handlerConstructor: IConstructor<ICommandHandler<any>>): string | null;
|
|
256
|
+
getCommandName(command: IConstructor<Command<any>>): string | null;
|
|
257
|
+
getCommandForCommandName(commandName: string): IConstructor<Command<any>> | null;
|
|
150
258
|
}
|
|
151
259
|
|
|
152
|
-
interface
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
260
|
+
interface IJobData extends IEntityData {
|
|
261
|
+
commandName: string;
|
|
262
|
+
commandData: any;
|
|
263
|
+
startedAt?: number;
|
|
264
|
+
successAt?: number;
|
|
265
|
+
failedAt?: number;
|
|
266
|
+
error?: {
|
|
267
|
+
message: string;
|
|
268
|
+
stack?: string;
|
|
269
|
+
info?: any;
|
|
270
|
+
};
|
|
156
271
|
}
|
|
157
|
-
declare class
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
272
|
+
declare class Job extends Entity<IJobData> {
|
|
273
|
+
get commandName(): string;
|
|
274
|
+
setAsStarted(): void;
|
|
275
|
+
setAsSuccess(): void;
|
|
276
|
+
setAsFailed(error: Error): void;
|
|
161
277
|
}
|
|
162
278
|
|
|
163
|
-
interface
|
|
164
|
-
message: IConnectionChatMessage;
|
|
165
|
-
chat: Chat;
|
|
166
|
-
user: User | null;
|
|
279
|
+
interface IJobRepository extends ICrudRepository<Job> {
|
|
167
280
|
}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
281
|
+
|
|
282
|
+
declare class JobRepository implements IJobRepository {
|
|
283
|
+
find(id: string): Promise<Job | null>;
|
|
284
|
+
findOrThrow(id: string): Promise<Job>;
|
|
285
|
+
findByIds(ids: string[]): Promise<Job[]>;
|
|
286
|
+
findAll(id: string): Promise<Job[]>;
|
|
287
|
+
create(item: Job): Promise<void>;
|
|
288
|
+
update(item: Job): Promise<void>;
|
|
289
|
+
discard(item: Job): Promise<void>;
|
|
173
290
|
}
|
|
174
291
|
|
|
175
|
-
interface
|
|
176
|
-
|
|
177
|
-
|
|
292
|
+
interface IJobEvent extends IStorableData {
|
|
293
|
+
jobId: string;
|
|
294
|
+
type: 'created';
|
|
295
|
+
}
|
|
296
|
+
type IJobEventListener = (event: IJobEvent) => void | Promise<void>;
|
|
297
|
+
declare class JobsEventsHub {
|
|
298
|
+
private jobsEventsListener;
|
|
299
|
+
notifyJobCreated(job: Job): void;
|
|
300
|
+
listenJobsEvents(listener: IJobEventListener): void;
|
|
178
301
|
}
|
|
179
302
|
|
|
180
|
-
|
|
303
|
+
declare class Async {
|
|
304
|
+
private jobRepository;
|
|
305
|
+
private handlerContainer;
|
|
306
|
+
private jobsEventsHub;
|
|
307
|
+
constructor(jobRepository: JobRepository, handlerContainer: CommandMetadataStore, jobsEventsHub: JobsEventsHub);
|
|
308
|
+
run<T extends IStorableData>(command: Command<T>): Promise<Job>;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
declare class JobRunner {
|
|
312
|
+
private jobRepository;
|
|
313
|
+
private handlerContainer;
|
|
314
|
+
constructor(jobRepository: JobRepository, handlerContainer: CommandMetadataStore);
|
|
315
|
+
run(job: Job): Promise<void>;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
declare function runAsyncCommandHandlers(handlers: IConstructor<ICommandHandler<any>>[]): void;
|
|
319
|
+
|
|
320
|
+
interface IChatConnection extends IStorableData {
|
|
321
|
+
channelName: string;
|
|
322
|
+
id: string;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
type IChatType = 'PRIVATE' | 'GROUP';
|
|
326
|
+
|
|
327
|
+
interface IChatData extends IEntityData {
|
|
328
|
+
type: IChatType;
|
|
329
|
+
connections: IChatConnection[];
|
|
330
|
+
}
|
|
331
|
+
declare class Chat extends Entity<IChatData> {
|
|
332
|
+
constructor(data: IChatData);
|
|
333
|
+
isPrivate(): boolean;
|
|
334
|
+
isGroup(): boolean;
|
|
335
|
+
hasConnection(connection: IChatConnection): boolean;
|
|
336
|
+
private validatePrivateChat;
|
|
337
|
+
private validateGroupChat;
|
|
338
|
+
validate(): void;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
interface IMindsetFunctionConfig {
|
|
342
|
+
description: string;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
declare function mindsetFunction(config: IMindsetFunctionConfig): (target: object, propertyKey: string | symbol) => void;
|
|
346
|
+
|
|
347
|
+
declare const MINDSET_FUNCTION_DECORATION_FUNCTION = "mindsetFunction";
|
|
348
|
+
|
|
349
|
+
interface IMindsetFunctionDecoration {
|
|
350
|
+
decorationName: string;
|
|
351
|
+
functionName: string;
|
|
352
|
+
constructor: Function;
|
|
353
|
+
paramsTypes: Function[];
|
|
354
|
+
decorationConfig: any;
|
|
355
|
+
}
|
|
181
356
|
|
|
182
357
|
interface IMindsetIdentity {
|
|
183
358
|
name: string;
|
|
@@ -226,8 +401,6 @@ interface IMindsetModuleDecoration {
|
|
|
226
401
|
decorationConfig: any;
|
|
227
402
|
}
|
|
228
403
|
|
|
229
|
-
declare function isOptional(): PropertyDecorator;
|
|
230
|
-
|
|
231
404
|
interface IParamConfig {
|
|
232
405
|
name?: string;
|
|
233
406
|
optional?: boolean;
|
|
@@ -285,26 +458,17 @@ declare class MindsetMetadataStore {
|
|
|
285
458
|
getMindsetMetadata(ctor: Function): IMindsetMetadata;
|
|
286
459
|
}
|
|
287
460
|
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
createChildContainer(): DependencyContainer;
|
|
299
|
-
beforeResolution<T>(token: InjectionToken<T>, callback: PreResolutionInterceptorCallback<T>, options?: InterceptionOptions): void;
|
|
300
|
-
afterResolution<T>(token: InjectionToken<T>, callback: PostResolutionInterceptorCallback<T>, options?: InterceptionOptions): void;
|
|
301
|
-
dispose(): Promise<void> | void;
|
|
461
|
+
interface IMindsetToolParameter {
|
|
462
|
+
type: string;
|
|
463
|
+
name: string;
|
|
464
|
+
description: string;
|
|
465
|
+
}
|
|
466
|
+
interface IMindsetTool {
|
|
467
|
+
language: string;
|
|
468
|
+
name: string;
|
|
469
|
+
description: string;
|
|
470
|
+
parameters: IMindsetToolParameter[];
|
|
302
471
|
}
|
|
303
|
-
|
|
304
|
-
declare const injectable: typeof tsyringe.injectable;
|
|
305
|
-
declare const container: tsyringe.DependencyContainer;
|
|
306
|
-
declare const singleton: typeof tsyringe.singleton;
|
|
307
|
-
declare const inject: typeof tsyringe.inject;
|
|
308
472
|
|
|
309
473
|
declare class MindsetOperator implements IMindset {
|
|
310
474
|
private mindset;
|
|
@@ -314,19 +478,98 @@ declare class MindsetOperator implements IMindset {
|
|
|
314
478
|
identity(): Promise<IMindsetIdentity>;
|
|
315
479
|
skills(): Promise<string>;
|
|
316
480
|
limits(): Promise<string>;
|
|
481
|
+
systemPrompt(): Promise<string>;
|
|
482
|
+
tools(): IMindsetTool[];
|
|
483
|
+
protected tool(fn: IMindsetFunctionMetadata, module: IMindsetModuleMetadata): IMindsetTool;
|
|
484
|
+
protected toolParameter(param: IMindsetFunctionParamMetadata): IMindsetToolParameter;
|
|
317
485
|
callFunction(name: string, params: string): Promise<string>;
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
interface IChatMessage extends IStorableData {
|
|
489
|
+
senderId?: string;
|
|
490
|
+
senderName?: string;
|
|
491
|
+
text?: string;
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
interface IFunctionCall extends IStorableData {
|
|
495
|
+
id: string;
|
|
496
|
+
name: string;
|
|
497
|
+
arguments?: string;
|
|
498
|
+
result?: string;
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
declare const chatItemTypeOptions: readonly ["botMessage", "humanMessage", "functionCall"];
|
|
502
|
+
type IBotMessageItem = {
|
|
503
|
+
type: 'botMessage';
|
|
504
|
+
botMessage: IChatMessage;
|
|
505
|
+
};
|
|
506
|
+
type IHumanMessageItem = {
|
|
507
|
+
type: 'humanMessage';
|
|
508
|
+
humanMessage: IChatMessage;
|
|
509
|
+
};
|
|
510
|
+
type IFunctionCallItem = {
|
|
511
|
+
type: 'functionCall';
|
|
512
|
+
functionCall: IFunctionCall;
|
|
513
|
+
};
|
|
514
|
+
type IChatItem = IBotMessageItem | IHumanMessageItem | IFunctionCallItem;
|
|
515
|
+
type IChatItemType = (typeof chatItemTypeOptions)[number];
|
|
516
|
+
|
|
517
|
+
interface IChatAdapterNextItemReq {
|
|
518
|
+
model: string;
|
|
519
|
+
systemPrompt: string;
|
|
520
|
+
tools: IMindsetTool[];
|
|
521
|
+
prevItems: IChatItem[];
|
|
522
|
+
}
|
|
523
|
+
interface IChatAdapter {
|
|
524
|
+
nextItem(req: IChatAdapterNextItemReq): Promise<IChatItem>;
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
declare class ChatAdapter implements IChatAdapter {
|
|
528
|
+
nextItem(req: IChatAdapterNextItemReq): Promise<IChatItem>;
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
type IChatItemData = IEntityData & IChatItem;
|
|
532
|
+
declare class ChatItem extends Entity<IChatItemData> {
|
|
533
|
+
get type(): "botMessage" | "humanMessage" | "functionCall";
|
|
534
|
+
get botMessage(): IChatMessage;
|
|
535
|
+
get functionCall(): IFunctionCall;
|
|
536
|
+
setFunctionResult(result: string): void;
|
|
537
|
+
getData(): IChatItemData;
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
interface IChatMemory {
|
|
541
|
+
findLastItems(count: number): Promise<ChatItem[]>;
|
|
542
|
+
create(item: ChatItem): Promise<void>;
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
declare class ChatMemory implements IChatMemory {
|
|
546
|
+
findLastItems(count: number): Promise<ChatItem[]>;
|
|
547
|
+
create(item: ChatItem): Promise<void>;
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
interface IChatBot {
|
|
551
|
+
sendMessage(message: IChatMessage, callback: (message: IChatMessage) => void): void | Promise<void>;
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
declare class ChatBot implements IChatBot {
|
|
555
|
+
private memory;
|
|
556
|
+
private adapter;
|
|
557
|
+
private mindset;
|
|
558
|
+
constructor(memory: ChatMemory, adapter: ChatAdapter, mindset: MindsetOperator);
|
|
559
|
+
sendMessage(message: IChatMessage, callback: (message: IChatMessage) => void): Promise<void>;
|
|
560
|
+
protected processLoop(callback: (message: IChatMessage) => void): Promise<void>;
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
interface IChatRepository {
|
|
564
|
+
create(chat: Chat): Promise<void>;
|
|
565
|
+
findByConnection(query: IChatConnection): Promise<Chat | null>;
|
|
566
|
+
findMemory(chatId: string): Promise<IChatMemory | null>;
|
|
567
|
+
}
|
|
568
|
+
|
|
569
|
+
declare class ChatRepository implements IChatRepository {
|
|
570
|
+
create(chat: Chat): Promise<void>;
|
|
571
|
+
findByConnection(query: IChatConnection): Promise<Chat | null>;
|
|
572
|
+
findMemory(chatId: string): Promise<IChatMemory | null>;
|
|
330
573
|
}
|
|
331
574
|
|
|
332
575
|
declare function chatBot(mindset: IConstructor<IMindset>): (target: object, propertyKey: string | symbol | undefined, parameterIndex: number) => void;
|
|
@@ -343,48 +586,46 @@ declare class ChatBotMetadataStore {
|
|
|
343
586
|
getChatBotsMetadata(): IChatBotMetadata[];
|
|
344
587
|
}
|
|
345
588
|
|
|
346
|
-
interface
|
|
347
|
-
generateNextChatItem(chatItems: ChatItem[]): Promise<ChatItem>;
|
|
589
|
+
interface IchatControllerConfig {
|
|
348
590
|
}
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
protected buildBotMessageItem(text: string): Promise<ChatItem>;
|
|
355
|
-
protected buildFunctionCallItem(id: string, functionName: string, functionArguments: string): Promise<ChatItem>;
|
|
591
|
+
|
|
592
|
+
declare function chatController(config?: IchatControllerConfig): (target: IConstructor<any>) => void;
|
|
593
|
+
|
|
594
|
+
interface IChatControllerMetadata {
|
|
595
|
+
controllerConstructor: Function;
|
|
356
596
|
}
|
|
357
597
|
|
|
358
|
-
interface
|
|
359
|
-
|
|
598
|
+
interface IReceivedMessage {
|
|
599
|
+
message: IChatMessage;
|
|
600
|
+
reply: (message: IChatMessage) => void;
|
|
360
601
|
}
|
|
361
602
|
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
private adapter;
|
|
365
|
-
constructor(memory: ChatMemory, adapter: ChatBotAdapter);
|
|
366
|
-
sendMessage(message: IConnectionChatMessage, callback: (message: IChatMessage) => void): Promise<void>;
|
|
367
|
-
protected processLoop(callback: (message: IChatMessage) => void): Promise<void>;
|
|
603
|
+
interface IChannelMessage extends IReceivedMessage {
|
|
604
|
+
chatConnection: IChatConnection;
|
|
368
605
|
}
|
|
369
606
|
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
constructor(mindset: MindsetOperator);
|
|
374
|
-
validateEnvVariables(envVariables: (string | undefined)[]): void;
|
|
375
|
-
generateNextChatItem(chatItems: ChatItem[]): Promise<ChatItem>;
|
|
376
|
-
private mapChatItems;
|
|
607
|
+
interface IChatChannel {
|
|
608
|
+
listen(callback: (received: IChannelMessage) => void): void;
|
|
609
|
+
connect(): void;
|
|
377
610
|
}
|
|
378
611
|
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
private mapChatItems;
|
|
612
|
+
interface IChannelMetadata {
|
|
613
|
+
controllerConstructor: IConstructor<any>;
|
|
614
|
+
functionName: string;
|
|
615
|
+
channelConstructor: IConstructor<IChatChannel>;
|
|
616
|
+
channelConfig?: object;
|
|
385
617
|
}
|
|
386
618
|
|
|
387
|
-
declare
|
|
619
|
+
declare class ControllerMetadataStore {
|
|
620
|
+
private channels;
|
|
621
|
+
private chatControllers;
|
|
622
|
+
saveChannelMetadata(channelMetadata: IChannelMetadata): void;
|
|
623
|
+
saveChatControllerMetadata(controllerMetadata: IChatControllerMetadata): void;
|
|
624
|
+
getChatControllerMetadata(controllerConstructor: Function): {
|
|
625
|
+
config: IChatControllerMetadata;
|
|
626
|
+
channels: IChannelMetadata[];
|
|
627
|
+
} | null;
|
|
628
|
+
}
|
|
388
629
|
|
|
389
630
|
declare class ChatResolver {
|
|
390
631
|
private chatRepository;
|
|
@@ -394,75 +635,220 @@ declare class ChatResolver {
|
|
|
394
635
|
private resolvePrivateChat;
|
|
395
636
|
}
|
|
396
637
|
|
|
397
|
-
interface
|
|
398
|
-
|
|
638
|
+
interface IMessageContext extends IReceivedMessage {
|
|
639
|
+
chat: Chat;
|
|
399
640
|
}
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
641
|
+
|
|
642
|
+
declare function runChatControllers(controllers: IConstructor<any>[]): void;
|
|
643
|
+
|
|
644
|
+
declare class HttpServerProvider {
|
|
645
|
+
server: Server | null;
|
|
646
|
+
private listening;
|
|
647
|
+
private logger;
|
|
648
|
+
getHttpServer(): Server;
|
|
649
|
+
listen(): void;
|
|
403
650
|
}
|
|
404
651
|
|
|
405
|
-
declare class
|
|
406
|
-
private
|
|
407
|
-
|
|
408
|
-
|
|
652
|
+
declare class ExpressProvider {
|
|
653
|
+
private httpServerProvider;
|
|
654
|
+
private expressApp;
|
|
655
|
+
private logger;
|
|
656
|
+
constructor(httpServerProvider: HttpServerProvider);
|
|
657
|
+
getExpress(): Express;
|
|
658
|
+
listen(): void;
|
|
659
|
+
private createExpress;
|
|
409
660
|
}
|
|
410
661
|
|
|
411
|
-
interface
|
|
662
|
+
interface IGetConfig {
|
|
663
|
+
path?: string;
|
|
412
664
|
}
|
|
413
665
|
|
|
414
|
-
declare function
|
|
666
|
+
declare function get(config?: string | IGetConfig): (target: object, propertyKey: string | symbol) => void;
|
|
415
667
|
|
|
416
|
-
interface
|
|
417
|
-
|
|
668
|
+
interface IMiddleware {
|
|
669
|
+
handle(req: Request, res: Response, container: DependencyContainer$1): Promise<void>;
|
|
418
670
|
}
|
|
419
671
|
|
|
420
|
-
|
|
672
|
+
declare function middleware(middlewareConstructor: IConstructor<IMiddleware>): (target: object, propertyKey: string | symbol) => void;
|
|
673
|
+
|
|
674
|
+
interface IPostConfig {
|
|
675
|
+
path?: string;
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
declare function post(config?: string | IPostConfig): (target: object, propertyKey: string | symbol) => void;
|
|
679
|
+
|
|
680
|
+
interface IRestControllerConfig {
|
|
681
|
+
path: string;
|
|
682
|
+
}
|
|
683
|
+
|
|
684
|
+
declare function restController(config: string | IRestControllerConfig): (target: IConstructor<any>) => void;
|
|
685
|
+
|
|
686
|
+
interface IEndPointMetadata {
|
|
687
|
+
method: 'get' | 'post';
|
|
688
|
+
path?: string;
|
|
421
689
|
controllerConstructor: IConstructor<any>;
|
|
422
690
|
functionName: string;
|
|
423
|
-
|
|
424
|
-
|
|
691
|
+
paramsTypes: any[];
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
interface IMiddlewareMetadata {
|
|
695
|
+
controllerConstructor: IConstructor<any>;
|
|
696
|
+
functionName: string;
|
|
697
|
+
middlewareConstructor: IConstructor<IMiddleware>;
|
|
698
|
+
}
|
|
699
|
+
|
|
700
|
+
interface IRestControllerMetadata {
|
|
701
|
+
controllerConstructor: IConstructor<any>;
|
|
702
|
+
path: string;
|
|
703
|
+
}
|
|
704
|
+
|
|
705
|
+
declare class RestControllerMetadataStore {
|
|
706
|
+
private endPoints;
|
|
707
|
+
private middlewares;
|
|
708
|
+
private restControllers;
|
|
709
|
+
saveControllerMetadata(controllerMetadata: IRestControllerMetadata): void;
|
|
710
|
+
saveEndPointMetadata(endPointMetadata: IEndPointMetadata): void;
|
|
711
|
+
saveMiddlewareMetadata(middlewareMetadata: IMiddlewareMetadata): void;
|
|
712
|
+
getControllerEndPointsInfo(controllerConstructor: IConstructor<any>): {
|
|
713
|
+
middlewares: IMiddlewareMetadata[];
|
|
714
|
+
controller: IRestControllerMetadata;
|
|
715
|
+
method: "get" | "post";
|
|
716
|
+
path?: string;
|
|
717
|
+
controllerConstructor: IConstructor<any>;
|
|
718
|
+
functionName: string;
|
|
719
|
+
paramsTypes: any[];
|
|
720
|
+
}[];
|
|
721
|
+
}
|
|
722
|
+
|
|
723
|
+
declare function runRestControllers(controllers: IConstructor<any>[]): void;
|
|
724
|
+
|
|
725
|
+
declare class Auth<D extends IStorableData> {
|
|
726
|
+
private authInfo;
|
|
727
|
+
require(): D;
|
|
728
|
+
assign(authInfo: D): void;
|
|
729
|
+
}
|
|
730
|
+
|
|
731
|
+
declare class SocketServerProvider {
|
|
732
|
+
private httpServerProvider;
|
|
733
|
+
private socketServer;
|
|
734
|
+
private logger;
|
|
735
|
+
constructor(httpServerProvider: HttpServerProvider);
|
|
736
|
+
getSocketServer(): Server$1;
|
|
737
|
+
listen(): void;
|
|
738
|
+
private createSocketServer;
|
|
739
|
+
}
|
|
740
|
+
|
|
741
|
+
type IPgRepositoryConfig<P extends Entity<IEntityData>> = {
|
|
742
|
+
schema?: string;
|
|
743
|
+
table: string;
|
|
744
|
+
constructor: IConstructor<P>;
|
|
745
|
+
add?: {
|
|
746
|
+
columns: {
|
|
747
|
+
[column: string]: {
|
|
748
|
+
type: string;
|
|
749
|
+
value: (item: P) => boolean | number | string | null | Date;
|
|
750
|
+
};
|
|
751
|
+
};
|
|
752
|
+
};
|
|
753
|
+
};
|
|
754
|
+
|
|
755
|
+
declare class PgRepositoryBase<P extends Entity<IEntityData>> {
|
|
756
|
+
protected pool: Pool;
|
|
757
|
+
protected config: IPgRepositoryConfig<any>;
|
|
758
|
+
private tableIsCreated;
|
|
759
|
+
protected schema: string;
|
|
760
|
+
protected table: string;
|
|
761
|
+
protected columnsList: string[];
|
|
762
|
+
protected columnsAndTypes: string;
|
|
763
|
+
protected columns: string;
|
|
764
|
+
protected vars: string;
|
|
765
|
+
protected updates: string;
|
|
766
|
+
addColumns: {
|
|
767
|
+
[columns: string]: {
|
|
768
|
+
type: string;
|
|
769
|
+
value: (item: P) => number | boolean | string | null | Date;
|
|
770
|
+
};
|
|
771
|
+
};
|
|
772
|
+
constructor(pool: Pool, config: IPgRepositoryConfig<any>);
|
|
773
|
+
protected values(item: P): (string | number | boolean | Date | null)[];
|
|
774
|
+
protected exec(sql: string, values: any[]): Promise<void>;
|
|
775
|
+
protected query(sql: string, values: any[]): Promise<any[]>;
|
|
776
|
+
protected connect(): Promise<Pool>;
|
|
777
|
+
protected ensureTable(): Promise<void>;
|
|
778
|
+
protected ensureColumns(): Promise<void>;
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
declare class PgCrudRepository<P extends Entity<IEntityData>> extends PgRepositoryBase<P> implements ICrudRepository<P> {
|
|
782
|
+
protected readonly config: IPgRepositoryConfig<P>;
|
|
783
|
+
constructor(pool: Pool, config: IPgRepositoryConfig<P>);
|
|
784
|
+
find(id: string): Promise<P | null>;
|
|
785
|
+
findByIds(ids: string[]): Promise<P[]>;
|
|
786
|
+
findOrThrow(id: string): Promise<P>;
|
|
787
|
+
findAll(): Promise<P[]>;
|
|
788
|
+
create(item: P): Promise<void>;
|
|
789
|
+
update(item: P): Promise<void>;
|
|
790
|
+
discard(item: P): Promise<void>;
|
|
791
|
+
}
|
|
792
|
+
|
|
793
|
+
declare class PgJobRepository extends PgCrudRepository<Job> implements IJobRepository {
|
|
794
|
+
constructor(pool: Pool);
|
|
795
|
+
}
|
|
796
|
+
|
|
797
|
+
declare class DummyClaudeChatBotAdapter {
|
|
798
|
+
}
|
|
799
|
+
|
|
800
|
+
declare class DummyDeepSeekChatBotAdapter {
|
|
801
|
+
}
|
|
802
|
+
|
|
803
|
+
declare class OpenaiChatAdapter implements IChatAdapter {
|
|
804
|
+
private openai;
|
|
805
|
+
private logger;
|
|
806
|
+
nextItem(req: IChatAdapterNextItemReq): Promise<IChatItem>;
|
|
807
|
+
private mapChatItems;
|
|
808
|
+
private mapConectionMessage;
|
|
809
|
+
private mapBotMessage;
|
|
810
|
+
private mapFunctionCall;
|
|
811
|
+
private mapTool;
|
|
812
|
+
private mapResponse;
|
|
813
|
+
}
|
|
814
|
+
|
|
815
|
+
declare class PgChatRepository extends PgCrudRepository<Chat> implements IChatRepository {
|
|
816
|
+
constructor(pool: Pool);
|
|
817
|
+
findByConnection(query: IChatConnection): Promise<Chat | null>;
|
|
818
|
+
findMemory(chatId: string): Promise<IChatMemory | null>;
|
|
819
|
+
}
|
|
820
|
+
|
|
821
|
+
declare class PgChatMemory extends PgCrudRepository<ChatItem> implements IChatMemory {
|
|
822
|
+
private chatId;
|
|
823
|
+
constructor(pool: Pool, chatId: string);
|
|
824
|
+
findLastItems(count: number): Promise<ChatItem[]>;
|
|
825
|
+
}
|
|
826
|
+
|
|
827
|
+
declare class RamChatMemory implements IChatMemory {
|
|
828
|
+
private memory;
|
|
829
|
+
findLastItems(count: number): Promise<ChatItem[]>;
|
|
830
|
+
create(item: ChatItem): Promise<void>;
|
|
831
|
+
clearMemory(): Promise<void>;
|
|
425
832
|
}
|
|
426
833
|
|
|
427
|
-
declare class
|
|
428
|
-
private
|
|
429
|
-
private
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
channels: IChannelMetadata[];
|
|
435
|
-
} | null;
|
|
834
|
+
declare class RamChatRepository implements IChatRepository {
|
|
835
|
+
private items;
|
|
836
|
+
private memories;
|
|
837
|
+
create(chat: Chat): Promise<void>;
|
|
838
|
+
findByConnection(query: IChatConnection): Promise<Chat | null>;
|
|
839
|
+
findMemory(chatId: string): Promise<IChatMemory | null>;
|
|
840
|
+
private getMemory;
|
|
436
841
|
}
|
|
437
842
|
|
|
843
|
+
declare function cmd(): (target: object, propertyKey: string | symbol) => void;
|
|
844
|
+
|
|
438
845
|
declare class CmdChannel implements IChatChannel {
|
|
439
|
-
private chatResolver;
|
|
440
|
-
private userResolver;
|
|
441
846
|
private rl;
|
|
442
847
|
private callBack;
|
|
443
|
-
|
|
444
|
-
listen(callback: (message: IReceivedMessage) => void): void;
|
|
848
|
+
listen(callback: (message: IChannelMessage) => void): void;
|
|
445
849
|
connect(): void;
|
|
446
850
|
}
|
|
447
851
|
|
|
448
|
-
declare class HttpServerProvider {
|
|
449
|
-
server: Server | null;
|
|
450
|
-
private listening;
|
|
451
|
-
private logger;
|
|
452
|
-
getHttpServer(): Server;
|
|
453
|
-
listen(): void;
|
|
454
|
-
}
|
|
455
|
-
|
|
456
|
-
declare class ExpressProvider {
|
|
457
|
-
private httpServerProvider;
|
|
458
|
-
private expressApp;
|
|
459
|
-
private logger;
|
|
460
|
-
constructor(httpServerProvider: HttpServerProvider);
|
|
461
|
-
getExpress(): Express;
|
|
462
|
-
listen(): void;
|
|
463
|
-
private createExpress;
|
|
464
|
-
}
|
|
465
|
-
|
|
466
852
|
interface ISocketChannelConfig {
|
|
467
853
|
channel: string;
|
|
468
854
|
}
|
|
@@ -474,16 +860,6 @@ declare class SocketChannelConfig implements ISocketChannelConfig {
|
|
|
474
860
|
|
|
475
861
|
declare function socket(config: SocketChannelConfig): (target: object, propertyKey: string | symbol) => void;
|
|
476
862
|
|
|
477
|
-
declare class SocketServerProvider {
|
|
478
|
-
private httpServerProvider;
|
|
479
|
-
private socketServer;
|
|
480
|
-
private logger;
|
|
481
|
-
constructor(httpServerProvider: HttpServerProvider);
|
|
482
|
-
getSocketServer(): Server$1;
|
|
483
|
-
listen(): void;
|
|
484
|
-
private createSocketServer;
|
|
485
|
-
}
|
|
486
|
-
|
|
487
863
|
interface ISocketChannelReceivedMessage {
|
|
488
864
|
chatId: string;
|
|
489
865
|
userId: string;
|
|
@@ -493,12 +869,10 @@ interface ISocketChannelReceivedMessage {
|
|
|
493
869
|
declare class SocketChannel implements IChatChannel {
|
|
494
870
|
private config;
|
|
495
871
|
private socketServerProvider;
|
|
496
|
-
private chatResolver;
|
|
497
|
-
private userResolver;
|
|
498
872
|
private callBack;
|
|
499
873
|
private server;
|
|
500
|
-
constructor(config: SocketChannelConfig, socketServerProvider: SocketServerProvider
|
|
501
|
-
listen(callback: (message:
|
|
874
|
+
constructor(config: SocketChannelConfig, socketServerProvider: SocketServerProvider);
|
|
875
|
+
listen(callback: (message: IChannelMessage) => void): void;
|
|
502
876
|
connect(): void;
|
|
503
877
|
}
|
|
504
878
|
|
|
@@ -514,11 +888,9 @@ declare function telegram(config: ITelegramChannelConfig): (target: object, prop
|
|
|
514
888
|
|
|
515
889
|
declare class TelegramChannel implements IChatChannel {
|
|
516
890
|
private config;
|
|
517
|
-
private chatResolver;
|
|
518
|
-
private userResolver;
|
|
519
891
|
private bot;
|
|
520
|
-
constructor(config: TelegramChannelConfig
|
|
521
|
-
listen(callback: (message:
|
|
892
|
+
constructor(config: TelegramChannelConfig);
|
|
893
|
+
listen(callback: (message: IChannelMessage) => void): void;
|
|
522
894
|
connect(): void;
|
|
523
895
|
}
|
|
524
896
|
|
|
@@ -533,9 +905,49 @@ declare class WhatsappChannelConfig implements IWhatsappChannelConfig {
|
|
|
533
905
|
|
|
534
906
|
declare function whatsapp(config: IWhatsappChannelConfig): (target: object, propertyKey: string | symbol) => void;
|
|
535
907
|
|
|
908
|
+
interface IWhatsAppBusinessNumber extends IStorableData {
|
|
909
|
+
id: string;
|
|
910
|
+
number: string;
|
|
911
|
+
}
|
|
912
|
+
interface IWhatsAppBusinessAccount extends IStorableData {
|
|
913
|
+
id: string;
|
|
914
|
+
}
|
|
915
|
+
interface IWhatsAppData extends IEntityData {
|
|
916
|
+
slug: string;
|
|
917
|
+
verifyToken: string;
|
|
918
|
+
appSecret: string;
|
|
919
|
+
accessToken: string;
|
|
920
|
+
businessAccount: IWhatsAppBusinessAccount;
|
|
921
|
+
businessNumbers: IWhatsAppBusinessNumber[];
|
|
922
|
+
}
|
|
923
|
+
declare class WhatsApp extends Entity<IWhatsAppData> {
|
|
924
|
+
getVerifyToken(): string;
|
|
925
|
+
getSlug(): string;
|
|
926
|
+
getBusinessAccount(): IWhatsAppBusinessAccount;
|
|
927
|
+
getAppSecret(): string;
|
|
928
|
+
getBusinessNumbers(): IWhatsAppBusinessNumber[];
|
|
929
|
+
getAccessToken(): string;
|
|
930
|
+
hasBusinessNumber(number: string): boolean;
|
|
931
|
+
getBussinessNumber(number: string): IWhatsAppBusinessNumber | null;
|
|
932
|
+
}
|
|
933
|
+
|
|
934
|
+
interface IWhatsAppRepository {
|
|
935
|
+
findBySlug(slug: string): Promise<WhatsApp | null>;
|
|
936
|
+
findByBusinessNumber(number: string): Promise<WhatsApp | null>;
|
|
937
|
+
}
|
|
938
|
+
|
|
939
|
+
declare class EnvWhatsAppRepository implements IWhatsAppRepository {
|
|
940
|
+
private env;
|
|
941
|
+
constructor(env: Env);
|
|
942
|
+
findBySlug(slug: string): Promise<WhatsApp | null>;
|
|
943
|
+
findByBusinessNumber(number: string): Promise<WhatsApp | null>;
|
|
944
|
+
private getFromEnvVars;
|
|
945
|
+
}
|
|
946
|
+
|
|
536
947
|
type IWhatsAppTemplateParameter = {
|
|
537
948
|
type: 'text';
|
|
538
949
|
text: string;
|
|
950
|
+
parameter_name?: string;
|
|
539
951
|
} | {
|
|
540
952
|
type: 'currency';
|
|
541
953
|
currency: {
|
|
@@ -555,6 +967,32 @@ interface IWhatsAppTemplateMessage {
|
|
|
555
967
|
parameters: IWhatsAppTemplateParameter[];
|
|
556
968
|
}
|
|
557
969
|
|
|
970
|
+
interface IWhatsAppTemplateResponse {
|
|
971
|
+
data: IWhatsAppTemplate[];
|
|
972
|
+
paging: IWhatsAppApiPaging;
|
|
973
|
+
}
|
|
974
|
+
interface IWhatsAppTemplate {
|
|
975
|
+
name: string;
|
|
976
|
+
parameter_format: 'POSITIONAL' | 'OTHER';
|
|
977
|
+
components: IWhatsAppTemplateComponent[];
|
|
978
|
+
language: string;
|
|
979
|
+
status: string;
|
|
980
|
+
category: string;
|
|
981
|
+
id: string;
|
|
982
|
+
}
|
|
983
|
+
interface IWhatsAppTemplateComponent {
|
|
984
|
+
type: 'HEADER' | 'BODY' | 'FOOTER';
|
|
985
|
+
format?: 'TEXT';
|
|
986
|
+
text?: string;
|
|
987
|
+
}
|
|
988
|
+
interface IWhatsAppApiPaging {
|
|
989
|
+
cursors: IWhatsAppApiCursors;
|
|
990
|
+
}
|
|
991
|
+
interface IWhatsAppApiCursors {
|
|
992
|
+
before: string;
|
|
993
|
+
after: string;
|
|
994
|
+
}
|
|
995
|
+
|
|
558
996
|
interface IWhatsAppWebhookPayload {
|
|
559
997
|
object: 'whatsapp_business_account';
|
|
560
998
|
entry: IEntry[];
|
|
@@ -607,44 +1045,13 @@ interface IAudioMessage extends IBaseMessage {
|
|
|
607
1045
|
};
|
|
608
1046
|
}
|
|
609
1047
|
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
interface IWhatsAppBusinessAccount {
|
|
615
|
-
id: string;
|
|
616
|
-
}
|
|
617
|
-
interface IWhatsAppData extends IPersistentData {
|
|
618
|
-
slug: string;
|
|
619
|
-
verifyToken: string;
|
|
620
|
-
appSecret: string;
|
|
621
|
-
accessToken: string;
|
|
622
|
-
businessAccount: IWhatsAppBusinessAccount;
|
|
623
|
-
businessNumbers: IWhatsAppBusinessNumber[];
|
|
624
|
-
}
|
|
625
|
-
declare class WhatsApp extends Persistent<IWhatsAppData> {
|
|
626
|
-
getVerifyToken(): string;
|
|
627
|
-
getBusinessAccount(): IWhatsAppBusinessAccount;
|
|
628
|
-
getAppSecret(): string;
|
|
629
|
-
getBusinessNumbers(): IWhatsAppBusinessNumber[];
|
|
630
|
-
getAccessToken(): string;
|
|
631
|
-
hasBusinessNumber(number: string): boolean;
|
|
632
|
-
getBussinessNumber(number: string): IWhatsAppBusinessNumber | null;
|
|
633
|
-
}
|
|
634
|
-
|
|
635
|
-
declare class Logger {
|
|
636
|
-
private debuggers;
|
|
637
|
-
constructor(name: string);
|
|
638
|
-
trace(...args: any[]): void;
|
|
639
|
-
debug(...args: any[]): void;
|
|
640
|
-
info(...args: any[]): void;
|
|
641
|
-
warn(...args: any[]): void;
|
|
642
|
-
error(...args: any[]): void;
|
|
643
|
-
fatal(...args: any[]): void;
|
|
644
|
-
private log;
|
|
1048
|
+
declare class PgWhatsAppRepository extends PgCrudRepository<WhatsApp> implements IWhatsAppRepository {
|
|
1049
|
+
constructor(pool: Pool);
|
|
1050
|
+
findBySlug(slug: string): Promise<WhatsApp | null>;
|
|
1051
|
+
findByBusinessNumber(number: string): Promise<WhatsApp | null>;
|
|
645
1052
|
}
|
|
646
1053
|
|
|
647
|
-
type IWhatsAppMessageListener = (message:
|
|
1054
|
+
type IWhatsAppMessageListener = (message: Omit<IChannelMessage, 'reply'>) => Promise<void>;
|
|
648
1055
|
interface IListenWhatsAppMessageRequest {
|
|
649
1056
|
to: string;
|
|
650
1057
|
listener: IWhatsAppMessageListener;
|
|
@@ -659,85 +1066,11 @@ declare abstract class WhatsAppReceiver {
|
|
|
659
1066
|
private emmitMessage;
|
|
660
1067
|
}
|
|
661
1068
|
|
|
662
|
-
|
|
663
|
-
find(id: string): Promise<T | null>;
|
|
664
|
-
findAll(id: string): Promise<T[]>;
|
|
665
|
-
create(item: T): Promise<void>;
|
|
666
|
-
update(item: T): Promise<void>;
|
|
667
|
-
discard(item: T): Promise<void>;
|
|
668
|
-
}
|
|
669
|
-
|
|
670
|
-
type IPgRepositoryConfig<P extends Persistent> = {
|
|
671
|
-
schema?: string;
|
|
672
|
-
table: string;
|
|
673
|
-
constructor: IConstructor<P>;
|
|
674
|
-
add?: {
|
|
675
|
-
columns: {
|
|
676
|
-
[column: string]: {
|
|
677
|
-
type: string;
|
|
678
|
-
value: (item: P) => boolean | number | string | null | Date;
|
|
679
|
-
};
|
|
680
|
-
};
|
|
681
|
-
};
|
|
682
|
-
};
|
|
683
|
-
|
|
684
|
-
declare class PgRepositoryBase<P extends Persistent> {
|
|
685
|
-
protected pool: Pool;
|
|
686
|
-
protected config: IPgRepositoryConfig<any>;
|
|
687
|
-
private tableIsCreated;
|
|
688
|
-
schema: string;
|
|
689
|
-
table: string;
|
|
690
|
-
columnsList: string[];
|
|
691
|
-
columnsAndTypes: string;
|
|
692
|
-
columns: string;
|
|
693
|
-
vars: string;
|
|
694
|
-
updates: string;
|
|
695
|
-
addColumns: {
|
|
696
|
-
[columns: string]: {
|
|
697
|
-
type: string;
|
|
698
|
-
value: (item: P) => number | boolean | string | null | Date;
|
|
699
|
-
};
|
|
700
|
-
};
|
|
701
|
-
constructor(pool: Pool, config: IPgRepositoryConfig<any>);
|
|
702
|
-
values(item: P): (string | number | boolean | Date | null)[];
|
|
703
|
-
protected exec(sql: string, values: any[]): Promise<void>;
|
|
704
|
-
protected query(sql: string, values: any[]): Promise<any[]>;
|
|
705
|
-
protected connect(): Promise<Pool>;
|
|
706
|
-
protected ensureTable(): Promise<void>;
|
|
707
|
-
protected ensureColumns(): Promise<void>;
|
|
708
|
-
}
|
|
709
|
-
|
|
710
|
-
declare class PgCrudRepository<P extends Persistent> extends PgRepositoryBase<P> implements ICrudRepository<P> {
|
|
711
|
-
protected readonly config: IPgRepositoryConfig<P>;
|
|
712
|
-
constructor(pool: Pool, config: IPgRepositoryConfig<P>);
|
|
713
|
-
find(id: string): Promise<P | null>;
|
|
714
|
-
findAll(): Promise<P[]>;
|
|
715
|
-
create(item: P): Promise<void>;
|
|
716
|
-
update(item: P): Promise<void>;
|
|
717
|
-
discard(item: P): Promise<void>;
|
|
718
|
-
}
|
|
719
|
-
|
|
720
|
-
declare class WhatsAppRepository extends PgCrudRepository<WhatsApp> {
|
|
721
|
-
constructor(pool: Pool);
|
|
1069
|
+
declare class WhatsAppRepository implements IWhatsAppRepository {
|
|
722
1070
|
findBySlug(slug: string): Promise<WhatsApp | null>;
|
|
723
1071
|
findByBusinessNumber(number: string): Promise<WhatsApp | null>;
|
|
724
1072
|
}
|
|
725
1073
|
|
|
726
|
-
interface IWhatsAppTemplate {
|
|
727
|
-
name: string;
|
|
728
|
-
parameter_format: 'POSITIONAL' | 'OTHER';
|
|
729
|
-
components: IWhatsAppTemplateComponent[];
|
|
730
|
-
language: string;
|
|
731
|
-
status: string;
|
|
732
|
-
category: string;
|
|
733
|
-
id: string;
|
|
734
|
-
}
|
|
735
|
-
interface IWhatsAppTemplateComponent {
|
|
736
|
-
type: 'HEADER' | 'BODY' | 'FOOTER';
|
|
737
|
-
format?: 'TEXT';
|
|
738
|
-
text?: string;
|
|
739
|
-
}
|
|
740
|
-
|
|
741
1074
|
interface ISendWhatsAppRequest {
|
|
742
1075
|
from: string;
|
|
743
1076
|
to: string;
|
|
@@ -757,31 +1090,30 @@ interface IGetWhatsAppTemplateRequest {
|
|
|
757
1090
|
interface IWhatsAppSenderOptions {
|
|
758
1091
|
writeChatMemory?: boolean;
|
|
759
1092
|
}
|
|
760
|
-
declare
|
|
1093
|
+
declare class WhatsAppSender {
|
|
761
1094
|
protected logger: Logger;
|
|
762
1095
|
protected chatRepository: ChatRepository;
|
|
763
1096
|
protected chatResolver: ChatResolver;
|
|
764
1097
|
protected whatsAppRepository: WhatsAppRepository;
|
|
765
1098
|
constructor(logger: Logger, chatRepository: ChatRepository, chatResolver: ChatResolver, whatsAppRepository: WhatsAppRepository);
|
|
766
|
-
protected
|
|
767
|
-
protected
|
|
768
|
-
protected
|
|
1099
|
+
protected handleSendRequest(request: ISendWhatsAppRequest): Promise<void>;
|
|
1100
|
+
protected handleSendTemplateRequest(request: ISendWhatsAppTemplateRequest): Promise<void>;
|
|
1101
|
+
protected handleGetWhatsAppTemplate(request: IGetWhatsAppTemplateRequest): Promise<IWhatsAppTemplate | null>;
|
|
769
1102
|
sendWhatsApp(request: ISendWhatsAppRequest, options?: IWhatsAppSenderOptions): Promise<void>;
|
|
770
1103
|
sendWhatsAppTemplate(request: ISendWhatsAppTemplateRequest, options?: IWhatsAppSenderOptions): Promise<void>;
|
|
771
1104
|
getWhatsAppTemplate(request: IGetWhatsAppTemplateRequest): Promise<IWhatsAppTemplate | null>;
|
|
772
1105
|
protected resolveTemplateToChatMessage(request: ISendWhatsAppTemplateRequest): Promise<IChatMessage>;
|
|
773
1106
|
protected writePrivateChatMemory(message: IChatMessage, to: string): Promise<void>;
|
|
1107
|
+
private replaceTemplateParameters;
|
|
774
1108
|
}
|
|
775
1109
|
|
|
776
1110
|
declare class WhatsAppChannel implements IChatChannel {
|
|
777
1111
|
private config;
|
|
778
|
-
private chatResolver;
|
|
779
|
-
private userResolver;
|
|
780
1112
|
private sender;
|
|
781
1113
|
private receiver;
|
|
782
1114
|
private logger;
|
|
783
|
-
constructor(config: WhatsappChannelConfig,
|
|
784
|
-
listen(callback: (message:
|
|
1115
|
+
constructor(config: WhatsappChannelConfig, sender: WhatsAppSender, receiver: WhatsAppReceiver);
|
|
1116
|
+
listen(callback: (message: IChannelMessage) => void): void;
|
|
785
1117
|
connect(): void;
|
|
786
1118
|
}
|
|
787
1119
|
|
|
@@ -810,143 +1142,121 @@ declare class WhatsAppReceiverByWebHook extends WhatsAppReceiver {
|
|
|
810
1142
|
connect(): Promise<void>;
|
|
811
1143
|
}
|
|
812
1144
|
|
|
813
|
-
declare class
|
|
814
|
-
|
|
815
|
-
constructor(wabotDevConnection: WabotDevConnection, chatRepository: ChatRepository, chatResolver: ChatResolver, whatsAppRepository: WhatsAppRepository);
|
|
1145
|
+
declare class WhatsAppSenderByCloudApi extends WhatsAppSender {
|
|
1146
|
+
constructor(chatRepository: ChatRepository, chatResolver: ChatResolver, whatsAppRepository: WhatsAppRepository);
|
|
816
1147
|
handleSendRequest(request: ISendWhatsAppRequest): Promise<void>;
|
|
817
1148
|
handleSendTemplateRequest(request: ISendWhatsAppTemplateRequest): Promise<void>;
|
|
818
1149
|
handleGetWhatsAppTemplate(request: IGetWhatsAppTemplateRequest): Promise<IWhatsAppTemplate | null>;
|
|
819
1150
|
}
|
|
820
1151
|
|
|
821
|
-
declare class
|
|
822
|
-
|
|
1152
|
+
declare class WhatsAppSenderByDevConnection extends WhatsAppSender {
|
|
1153
|
+
private wabotDevConnection;
|
|
1154
|
+
constructor(wabotDevConnection: WabotDevConnection, chatRepository: ChatRepository, chatResolver: ChatResolver, whatsAppRepository: WhatsAppRepository);
|
|
823
1155
|
handleSendRequest(request: ISendWhatsAppRequest): Promise<void>;
|
|
824
1156
|
handleSendTemplateRequest(request: ISendWhatsAppTemplateRequest): Promise<void>;
|
|
825
1157
|
handleGetWhatsAppTemplate(request: IGetWhatsAppTemplateRequest): Promise<IWhatsAppTemplate | null>;
|
|
826
1158
|
}
|
|
827
1159
|
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
channel: IConstructor<IChatChannel>;
|
|
832
|
-
channelConfig?: object;
|
|
833
|
-
mindset: IConstructor<IMindset>;
|
|
834
|
-
chatRepository: IConstructor<IChatRepository>;
|
|
835
|
-
chatBotAdapter: IConstructor<IChatBotAdapter>;
|
|
1160
|
+
interface IHtmlModuleOptions {
|
|
1161
|
+
url: string;
|
|
1162
|
+
title: string;
|
|
836
1163
|
}
|
|
837
|
-
declare function
|
|
1164
|
+
declare function HtmlModule(options: IHtmlModuleOptions): {
|
|
1165
|
+
new (): {};
|
|
1166
|
+
};
|
|
838
1167
|
|
|
839
|
-
|
|
840
|
-
replace: IConstructor<T>;
|
|
841
|
-
with: IConstructor<ST>;
|
|
842
|
-
singleton?: true;
|
|
843
|
-
}
|
|
844
|
-
interface IServerConfig {
|
|
845
|
-
controllers: IConstructor<any>[];
|
|
846
|
-
providers?: IServerProvider<unknown, unknown>[];
|
|
847
|
-
}
|
|
848
|
-
declare function runServer(config: IServerConfig): void;
|
|
1168
|
+
declare function jwtGuard(): (target: object, propertyKey: string | symbol) => void;
|
|
849
1169
|
|
|
850
|
-
declare class
|
|
851
|
-
|
|
852
|
-
|
|
1170
|
+
declare class JwtTokenDto {
|
|
1171
|
+
token?: string;
|
|
1172
|
+
expiration?: Date;
|
|
853
1173
|
}
|
|
854
1174
|
|
|
855
|
-
declare class
|
|
856
|
-
|
|
857
|
-
|
|
1175
|
+
declare class JwtAccessAndRefreshTokenDto {
|
|
1176
|
+
access?: JwtTokenDto;
|
|
1177
|
+
refresh?: JwtTokenDto;
|
|
858
1178
|
}
|
|
859
1179
|
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
sendEmail(request: ISendEmailRequest): Promise<void>;
|
|
868
|
-
}
|
|
869
|
-
declare class EmailService implements IEmailService {
|
|
870
|
-
sendEmail(request: ISendEmailRequest): Promise<void>;
|
|
1180
|
+
declare class JwtConfig {
|
|
1181
|
+
secretOrPublicKey: string;
|
|
1182
|
+
secretOrPrivateKey: string;
|
|
1183
|
+
algorithm: Algorithm;
|
|
1184
|
+
accessExpirationSeconds: number;
|
|
1185
|
+
refreshExpirationSeconds: number;
|
|
1186
|
+
constructor(env: Env);
|
|
871
1187
|
}
|
|
872
1188
|
|
|
873
|
-
interface
|
|
874
|
-
|
|
1189
|
+
interface IJwtRefreshTokenData<A extends IStorableData> extends IEntityData {
|
|
1190
|
+
authInfo: A;
|
|
875
1191
|
}
|
|
876
|
-
declare class
|
|
877
|
-
|
|
1192
|
+
declare class JwtRefreshToken<A extends IStorableData> extends Entity<IJwtRefreshTokenData<A>> {
|
|
1193
|
+
get authInfo(): A;
|
|
878
1194
|
}
|
|
879
1195
|
|
|
880
|
-
declare class
|
|
881
|
-
private
|
|
882
|
-
private
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
validateOneTimePassword(request: ValidateOneTimePasswordRequest): Promise<string>;
|
|
888
|
-
protected generateOtpEmailHtml(otp: string, user: User): Promise<string>;
|
|
889
|
-
protected generateOtpEmailSubject(): Promise<string>;
|
|
1196
|
+
declare class JwtSigner {
|
|
1197
|
+
private config;
|
|
1198
|
+
private mapper;
|
|
1199
|
+
constructor(config: JwtConfig, mapper: Mapper);
|
|
1200
|
+
signAccessToken<D extends IStorableData>(info: D | JwtRefreshToken<any>): Promise<JwtTokenDto>;
|
|
1201
|
+
signRefreshToken(refreshToken: JwtRefreshToken<any>): Promise<JwtTokenDto>;
|
|
1202
|
+
signAccessAndRefreshToken(refreshToken: JwtRefreshToken<any>): Promise<JwtAccessAndRefreshTokenDto>;
|
|
890
1203
|
}
|
|
891
1204
|
|
|
892
|
-
declare class
|
|
893
|
-
|
|
894
|
-
shortName: string;
|
|
1205
|
+
declare class JwtRefreshTokenRepository<D extends IStorableData> extends PgCrudRepository<JwtRefreshToken<D>> {
|
|
1206
|
+
constructor(pool: Pool);
|
|
895
1207
|
}
|
|
896
1208
|
|
|
897
|
-
declare class
|
|
898
|
-
private
|
|
899
|
-
private
|
|
900
|
-
|
|
901
|
-
|
|
1209
|
+
declare class Jwt {
|
|
1210
|
+
private auth;
|
|
1211
|
+
private jwtSigner;
|
|
1212
|
+
private jwtRefreshTokenRepository;
|
|
1213
|
+
constructor(auth: Auth<any>, jwtSigner: JwtSigner, jwtRefreshTokenRepository: JwtRefreshTokenRepository<any>);
|
|
1214
|
+
createToken(): Promise<JwtAccessAndRefreshTokenDto>;
|
|
902
1215
|
}
|
|
903
1216
|
|
|
904
|
-
declare class
|
|
905
|
-
|
|
906
|
-
|
|
1217
|
+
declare class JwtGuardMiddleware implements IMiddleware {
|
|
1218
|
+
private config;
|
|
1219
|
+
private auth;
|
|
1220
|
+
constructor(config: JwtConfig, auth: Auth<any>);
|
|
1221
|
+
handle(req: Request, res: Response, container: DependencyContainer$1): Promise<void>;
|
|
907
1222
|
}
|
|
908
1223
|
|
|
909
|
-
declare
|
|
910
|
-
private items;
|
|
911
|
-
create(chat: User): Promise<void>;
|
|
912
|
-
findByConnection(query: IUserConnection): Promise<User | null>;
|
|
913
|
-
update(chat: User): Promise<void>;
|
|
914
|
-
}
|
|
1224
|
+
declare function isBoolean(): (target: object, propertyKey: string | symbol) => void;
|
|
915
1225
|
|
|
916
|
-
declare
|
|
917
|
-
constructor(pool: Pool);
|
|
918
|
-
findByConnection(query: IChatConnection): Promise<Chat | null>;
|
|
919
|
-
findMemory(chatId: string): Promise<IChatMemory | null>;
|
|
920
|
-
}
|
|
1226
|
+
declare function validateIsBoolean(value: any): IValidationResult<boolean>;
|
|
921
1227
|
|
|
922
|
-
declare
|
|
923
|
-
private chatId;
|
|
924
|
-
constructor(pool: Pool, chatId: string);
|
|
925
|
-
findLastItems(count: number): Promise<ChatItem[]>;
|
|
926
|
-
}
|
|
1228
|
+
declare function isDate(): (target: object, propertyKey: string | symbol) => void;
|
|
927
1229
|
|
|
928
|
-
declare
|
|
929
|
-
private memory;
|
|
930
|
-
findLastItems(count: number): Promise<ChatItem[]>;
|
|
931
|
-
create(item: ChatItem): Promise<void>;
|
|
932
|
-
clearMemory(): Promise<void>;
|
|
933
|
-
}
|
|
1230
|
+
declare function validateIsDate(value: any): IValidationResult<Date>;
|
|
934
1231
|
|
|
935
|
-
declare
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
1232
|
+
declare function isNotEmpty(): (target: object, propertyKey: string | symbol) => void;
|
|
1233
|
+
|
|
1234
|
+
declare function validateIsNotEmpty(value: any): IValidationResult<any>;
|
|
1235
|
+
|
|
1236
|
+
declare function isNumber(): (target: object, propertyKey: string | symbol) => void;
|
|
1237
|
+
|
|
1238
|
+
declare function validateIsNumber(value: any): IValidationResult<number>;
|
|
1239
|
+
|
|
1240
|
+
declare function isPresent(): (target: object, propertyKey: string | symbol) => void;
|
|
1241
|
+
|
|
1242
|
+
declare function validateIsPresent(value: any): IValidationResult<any>;
|
|
1243
|
+
|
|
1244
|
+
declare function isString(): (target: object, propertyKey: string | symbol) => void;
|
|
1245
|
+
|
|
1246
|
+
declare function validateIsString(value: any): IValidationResult<string>;
|
|
1247
|
+
|
|
1248
|
+
declare function min(limit: any): (target: object, propertyKey: string | symbol) => void;
|
|
1249
|
+
|
|
1250
|
+
interface IValidateMinOptions {
|
|
1251
|
+
limit: any;
|
|
942
1252
|
}
|
|
1253
|
+
declare function validateMin(value: any, options: IValidateMinOptions): IValidationResult<any>;
|
|
943
1254
|
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
isDevelopment(): boolean;
|
|
949
|
-
isProduction(): boolean;
|
|
1255
|
+
declare function max(limit: any): (target: object, propertyKey: string | symbol) => void;
|
|
1256
|
+
|
|
1257
|
+
interface IValidateMaxOptions {
|
|
1258
|
+
limit: any;
|
|
950
1259
|
}
|
|
1260
|
+
declare function validateMax(value: any, options: IValidateMaxOptions): IValidationResult<any>;
|
|
951
1261
|
|
|
952
|
-
export {
|
|
1262
|
+
export { Async, Auth, Chat, ChatAdapter, ChatBot, ChatBotMetadataStore, ChatItem, ChatMemory, ChatRepository, ChatResolver, CmdChannel, Command, CommandMetadataStore, Container, ControllerMetadataStore, CustomError, DummyClaudeChatBotAdapter, DummyDeepSeekChatBotAdapter, Entity, Env, EnvWhatsAppRepository, ExpressProvider, HtmlModule, HttpServerProvider, type IArrayValidationError, type IArrayValidationResult, type IBotMessageItem, type IChannelMessage, type IChannelMetadata, type IChatAdapter, type IChatAdapterNextItemReq, type IChatBot, type IChatBotMetadata, type IChatChannel, type IChatConnection, type IChatControllerMetadata, type IChatData, type IChatItem, type IChatItemData, type IChatItemType, type IChatMemory, type IChatMessage, type IChatRepository, type IChatType, type ICommandConfig, type ICommandHandler, type ICommandHandlerConfig, type IConstructor, type ICrudRepository, type ICustomErrorData, type IEndPointMetadata, type IEntityData, type IEnvType, type IFunctionCall, type IFunctionCallItem, type IGetConfig, type IGetWhatsAppTemplateRequest, type IHtmlModuleOptions, type IHumanMessageItem, type IJobData, type IJobEvent, type IJobEventListener, type IJobRepository, type IJwtRefreshTokenData, type IListenWhatsAppMessageRequest, type IMessageContext, type IMessageMetadata, type IMiddleware, type IMiddlewareMetadata, type IMindset, type IMindsetDecoration, type IMindsetFunctionConfig, type IMindsetFunctionDecoration, type IMindsetFunctionMetadata, type IMindsetFunctionParamMetadata, type IMindsetIdentity, type IMindsetMetadata, type IMindsetModuleConfig, type IMindsetModuleDecoration, type IMindsetModuleMetadata, type IMindsetTool, type IMindsetToolParameter, type IModelValidationError, type IModelValidationResult, type IModelValidatorsInfo, type IParamConfig, type IParamDecoration, type IPersistentData, type IPgRepositoryConfig, type IPostConfig, type IPrimitive, type IPropertyValidatorInfo, type IReceivedMessage, type IRestControllerConfig, type IRestControllerMetadata, type ISendWhatsAppRequest, type ISendWhatsAppTemplateRequest, type ISocketChannelConfig, type ISocketChannelReceivedMessage, type IStorableData, type ITelegramChannelConfig, type IValidateArrayOptions, type IValidateArrayOptionsWithItemsValidators, type IValidateMaxOptions, type IValidateMinOptions, type IValidationError, type IValidationResult, type IValidator, type IValidatorMetadata, type IWhatsAppBusinessAccount, type IWhatsAppBusinessNumber, type IWhatsAppContact, type IWhatsAppData, type IWhatsAppMessage, type IWhatsAppMessageListener, type IWhatsAppRepository, type IWhatsAppSenderOptions, type IWhatsAppTemplate, type IWhatsAppTemplateComponent, type IWhatsAppTemplateMessage, type IWhatsAppTemplateParameter, type IWhatsAppTemplateResponse, type IWhatsAppWebhookPayload, type IWhatsappChannelConfig, type IchatControllerConfig, Job, JobRepository, JobRunner, JobsEventsHub, Jwt, JwtAccessAndRefreshTokenDto, JwtConfig, JwtGuardMiddleware, JwtRefreshToken, JwtRefreshTokenRepository, JwtSigner, JwtTokenDto, Lifecycle, Logger, MINDSET_DECORATION_MINDSET, MINDSET_FUNCTION_DECORATION_FUNCTION, MINDSET_MODULE_DECORATION_MODULE, Mapper, Mindset, MindsetMetadataStore, MindsetOperator, OpenaiChatAdapter, PARAM_DECORATION_IS_OPTIONAL, PARAM_DECORATION_PARAM, Persistent, PgChatMemory, PgChatRepository, PgCrudRepository, PgJobRepository, PgRepositoryBase, PgWhatsAppRepository, RamChatMemory, RamChatRepository, Random, RestControllerMetadataStore, SocketChannel, SocketChannelConfig, SocketServerProvider, Storable, TelegramChannel, TelegramChannelConfig, ValidationMetadataStore, WhatsApp, WhatsAppChannel, WhatsAppReceiver, WhatsAppReceiverByDevConnection, WhatsAppReceiverByWebHook, WhatsAppRepository, WhatsAppSender, WhatsAppSenderByCloudApi, WhatsAppSenderByDevConnection, WhatsappChannelConfig, chatBot, chatController, chatItemTypeOptions, cmd, command, commandHandler, container, get, inject, injectable, isArray, isBoolean, isDate, isModel, isNotEmpty, isNumber, isOptional, isPresent, isString, jwtGuard, max, middleware, min, mindset, mindsetFunction, mindsetModule, modelInfo, param, post, restController, runAsyncCommandHandlers, runChatControllers, runRestControllers, scoped, singleton, socket, telegram, validate, validateArray, validateIsBoolean, validateIsDate, validateIsNotEmpty, validateIsNumber, validateIsPresent, validateIsString, validateMax, validateMin, validateModel, whatsapp };
|