@gaias/basenode 1.5.9 → 1.6.1
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/libs/cls/FSBackendMiddleware.d.ts.map +1 -1
- package/dist/libs/cls/FSBackendMiddleware.js +55 -16
- package/dist/libs/cls/FSBackendMiddleware.js.map +1 -1
- package/dist/libs/index.d.ts +1 -0
- package/dist/libs/index.d.ts.map +1 -1
- package/dist/libs/index.js +1 -0
- package/dist/libs/index.js.map +1 -1
- package/dist/libs/telegram/TelegramClient.d.ts +18 -0
- package/dist/libs/telegram/TelegramClient.d.ts.map +1 -0
- package/dist/libs/telegram/TelegramClient.js +110 -0
- package/dist/libs/telegram/TelegramClient.js.map +1 -0
- package/dist/libs/telegram/TelegramConfig.d.ts +10 -0
- package/dist/libs/telegram/TelegramConfig.d.ts.map +1 -0
- package/dist/libs/telegram/TelegramConfig.js +3 -0
- package/dist/libs/telegram/TelegramConfig.js.map +1 -0
- package/dist/libs/telegram/TelegramLoader.d.ts +7 -0
- package/dist/libs/telegram/TelegramLoader.d.ts.map +1 -0
- package/dist/libs/telegram/TelegramLoader.js +44 -0
- package/dist/libs/telegram/TelegramLoader.js.map +1 -0
- package/dist/libs/telegram/TelegramManager.d.ts +32 -0
- package/dist/libs/telegram/TelegramManager.d.ts.map +1 -0
- package/dist/libs/telegram/TelegramManager.js +148 -0
- package/dist/libs/telegram/TelegramManager.js.map +1 -0
- package/dist/libs/telegram/index.d.ts +5 -0
- package/dist/libs/telegram/index.d.ts.map +1 -0
- package/dist/libs/telegram/index.js +21 -0
- package/dist/libs/telegram/index.js.map +1 -0
- package/dist/server/BootstrapOption.d.ts +3 -2
- package/dist/server/BootstrapOption.d.ts.map +1 -1
- package/dist/server/bootstrap.d.ts.map +1 -1
- package/dist/server/bootstrap.js +4 -0
- package/dist/server/bootstrap.js.map +1 -1
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FSBackendMiddleware.d.ts","sourceRoot":"","sources":["../../../../src/libs/cls/FSBackendMiddleware.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,WAAW,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"FSBackendMiddleware.d.ts","sourceRoot":"","sources":["../../../../src/libs/cls/FSBackendMiddleware.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,WAAW,MAAM,KAAK,CAAC;AAanC,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,UA8EvC,CAAC"}
|
|
@@ -2,29 +2,68 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.clsMiddleware = void 0;
|
|
4
4
|
const client_node_1 = require("@sight-saber/client_node");
|
|
5
|
+
const cls_hooked_1 = require("cls-hooked");
|
|
5
6
|
const logger_1 = require("../logger");
|
|
7
|
+
const API_SESSION = 'API_SESSION';
|
|
6
8
|
const clsMiddleware = async (ctx, next) => {
|
|
7
9
|
const logger = logger_1.Logger.getLogger('clsMiddleware');
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
if (
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
let namespace;
|
|
11
|
+
let namespaceCreated = false;
|
|
12
|
+
try {
|
|
13
|
+
const existingNamespace = (0, cls_hooked_1.getNamespace)(API_SESSION);
|
|
14
|
+
if (existingNamespace) {
|
|
15
|
+
namespace = existingNamespace;
|
|
16
|
+
logger.debug('Using existing namespace');
|
|
15
17
|
}
|
|
16
|
-
|
|
17
|
-
.
|
|
18
|
+
else {
|
|
19
|
+
namespace = client_node_1.FSBackend.createNamespace();
|
|
20
|
+
namespaceCreated = true;
|
|
21
|
+
logger.debug('Created new namespace');
|
|
22
|
+
}
|
|
23
|
+
await new Promise(namespace.bind((resolve, reject) => {
|
|
24
|
+
namespace.bindEmitter(ctx.req);
|
|
25
|
+
namespace.bindEmitter(ctx.res);
|
|
26
|
+
if (ctx.header && ctx.header.authorization) {
|
|
27
|
+
client_node_1.FSBackend.setForwardHeader(namespace, 'Authorization', ctx.header.authorization);
|
|
28
|
+
logger.debug('Stored Authorization header in namespace');
|
|
29
|
+
}
|
|
30
|
+
next()
|
|
31
|
+
.then(() => {
|
|
32
|
+
if (namespaceCreated) {
|
|
33
|
+
try {
|
|
34
|
+
const nsToDestroy = (0, cls_hooked_1.getNamespace)(API_SESSION);
|
|
35
|
+
if (nsToDestroy) {
|
|
36
|
+
client_node_1.FSBackend.destoryNamespace();
|
|
37
|
+
logger.debug('Namespace destroyed successfully');
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
logger.debug('Namespace already destroyed, skipping');
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
logger.warn('Error destroying namespace:', error.message);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
resolve();
|
|
48
|
+
})
|
|
49
|
+
.catch(reject);
|
|
50
|
+
}));
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
logger.error('Error in CLS middleware:', error);
|
|
54
|
+
if (namespaceCreated) {
|
|
18
55
|
try {
|
|
19
|
-
|
|
56
|
+
const nsToDestroy = (0, cls_hooked_1.getNamespace)(API_SESSION);
|
|
57
|
+
if (nsToDestroy) {
|
|
58
|
+
client_node_1.FSBackend.destoryNamespace();
|
|
59
|
+
}
|
|
20
60
|
}
|
|
21
|
-
catch (
|
|
22
|
-
logger.
|
|
61
|
+
catch (cleanupError) {
|
|
62
|
+
logger.warn('Error during error cleanup:', cleanupError.message);
|
|
23
63
|
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}));
|
|
64
|
+
}
|
|
65
|
+
throw error;
|
|
66
|
+
}
|
|
28
67
|
};
|
|
29
68
|
exports.clsMiddleware = clsMiddleware;
|
|
30
69
|
//# sourceMappingURL=FSBackendMiddleware.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FSBackendMiddleware.js","sourceRoot":"","sources":["../../../../src/libs/cls/FSBackendMiddleware.ts"],"names":[],"mappings":";;;AAEA,0DAAqD;AACrD,sCAAmC;
|
|
1
|
+
{"version":3,"file":"FSBackendMiddleware.js","sourceRoot":"","sources":["../../../../src/libs/cls/FSBackendMiddleware.ts"],"names":[],"mappings":";;;AAEA,0DAAqD;AACrD,2CAAqD;AACrD,sCAAmC;AAEnC,MAAM,WAAW,GAAG,aAAa,CAAC;AAQ3B,MAAM,aAAa,GAA2B,KAAK,EAAE,GAAY,EAAE,IAAU,EAAiB,EAAE;IACrG,MAAM,MAAM,GAAG,eAAM,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAEjD,IAAI,SAAoB,CAAC;IACzB,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAE7B,IAAI,CAAC;QAEH,MAAM,iBAAiB,GAAG,IAAA,yBAAY,EAAC,WAAW,CAAC,CAAC;QAEpD,IAAI,iBAAiB,EAAE,CAAC;YAEtB,SAAS,GAAG,iBAAiB,CAAC;YAC9B,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YAEN,SAAS,GAAG,uBAAS,CAAC,eAAe,EAAE,CAAC;YACxC,gBAAgB,GAAG,IAAI,CAAC;YACxB,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,IAAI,OAAO,CACf,SAAS,CAAC,IAAI,CAAC,CAAC,OAAmB,EAAE,MAA8B,EAAE,EAAE;YAErE,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC/B,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAG/B,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC3C,uBAAS,CAAC,gBAAgB,CACxB,SAAS,EACT,eAAe,EACf,GAAG,CAAC,MAAM,CAAC,aAAa,CACzB,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC3D,CAAC;YAGD,IAAI,EAAE;iBACH,IAAI,CAAC,GAAG,EAAE;gBAET,IAAI,gBAAgB,EAAE,CAAC;oBACrB,IAAI,CAAC;wBAEH,MAAM,WAAW,GAAG,IAAA,yBAAY,EAAC,WAAW,CAAC,CAAC;wBAC9C,IAAI,WAAW,EAAE,CAAC;4BAChB,uBAAS,CAAC,gBAAgB,EAAE,CAAC;4BAC7B,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;wBACnD,CAAC;6BAAM,CAAC;4BACN,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;wBACxD,CAAC;oBACH,CAAC;oBAAC,OAAO,KAAU,EAAE,CAAC;wBAEpB,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;oBAC5D,CAAC;gBACH,CAAC;gBACD,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;iBACD,KAAK,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;QAGhD,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,IAAA,yBAAY,EAAC,WAAW,CAAC,CAAC;gBAC9C,IAAI,WAAW,EAAE,CAAC;oBAChB,uBAAS,CAAC,gBAAgB,EAAE,CAAC;gBAC/B,CAAC;YACH,CAAC;YAAC,OAAO,YAAiB,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AA9EW,QAAA,aAAa,iBA8ExB"}
|
package/dist/libs/index.d.ts
CHANGED
package/dist/libs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/libs/index.ts"],"names":[],"mappings":"AAEA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/libs/index.ts"],"names":[],"mappings":"AAEA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
|
package/dist/libs/index.js
CHANGED
|
@@ -36,6 +36,7 @@ __exportStar(require("./redis"), exports);
|
|
|
36
36
|
__exportStar(require("./register"), exports);
|
|
37
37
|
__exportStar(require("./restful"), exports);
|
|
38
38
|
__exportStar(require("./service"), exports);
|
|
39
|
+
__exportStar(require("./telegram"), exports);
|
|
39
40
|
__exportStar(require("./type"), exports);
|
|
40
41
|
__exportStar(require("./universal"), exports);
|
|
41
42
|
__exportStar(require("./validator"), exports);
|
package/dist/libs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/libs/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA,2CAAyB;AACzB,0CAAwB;AACxB,2CAAyB;AACzB,wCAAsB;AACtB,8CAA4B;AAC5B,yCAAuB;AACvB,0CAAwB;AACxB,4CAA0B;AAC1B,8CAA4B;AAC5B,gDAA8B;AAC9B,wCAAsB;AACtB,2CAAyB;AACzB,2CAAyB;AACzB,4CAA0B;AAC1B,4CAA0B;AAC1B,wCAAsB;AACtB,+CAA6B;AAC7B,6CAA2B;AAC3B,0CAAwB;AACxB,6CAA2B;AAC3B,4CAA0B;AAC1B,4CAA0B;AAC1B,yCAAuB;AACvB,8CAA4B;AAC5B,8CAA4B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/libs/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA,2CAAyB;AACzB,0CAAwB;AACxB,2CAAyB;AACzB,wCAAsB;AACtB,8CAA4B;AAC5B,yCAAuB;AACvB,0CAAwB;AACxB,4CAA0B;AAC1B,8CAA4B;AAC5B,gDAA8B;AAC9B,wCAAsB;AACtB,2CAAyB;AACzB,2CAAyB;AACzB,4CAA0B;AAC1B,4CAA0B;AAC1B,wCAAsB;AACtB,+CAA6B;AAC7B,6CAA2B;AAC3B,0CAAwB;AACxB,6CAA2B;AAC3B,4CAA0B;AAC1B,4CAA0B;AAC1B,6CAA2B;AAC3B,yCAAuB;AACvB,8CAA4B;AAC5B,8CAA4B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Bot, Context } from 'grammy';
|
|
2
|
+
import { TelegramConfig } from './TelegramConfig';
|
|
3
|
+
export declare class TelegramClient {
|
|
4
|
+
private readonly logger;
|
|
5
|
+
private readonly bots;
|
|
6
|
+
private constructor();
|
|
7
|
+
static create(config: TelegramConfig): Promise<TelegramClient>;
|
|
8
|
+
private initialize;
|
|
9
|
+
start(): Promise<void>;
|
|
10
|
+
stop(): Promise<void>;
|
|
11
|
+
sendMessage(botName: string, message: string, options?: {
|
|
12
|
+
parse_mode?: 'Markdown' | 'HTML';
|
|
13
|
+
}): Promise<void>;
|
|
14
|
+
getBot(botName: string): Bot<Context> | undefined;
|
|
15
|
+
getBotNames(): string[];
|
|
16
|
+
isBotStarted(botName: string): boolean;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=TelegramClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TelegramClient.d.ts","sourceRoot":"","sources":["../../../../src/libs/telegram/TelegramClient.ts"],"names":[],"mappings":"AAmDA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,cAAc,EAAqB,MAAM,kBAAkB,CAAC;AA+BrE,qBAAa,cAAc;IAEzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;IAE7D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuC;IAU5D,OAAO;WAkBM,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;YAmBtD,UAAU;IA6ClB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAyCtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA0CrB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,UAAU,GAAG,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAwClH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,SAAS;IAoBjD,WAAW,IAAI,MAAM,EAAE;IAsBvB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;CAGvC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TelegramClient = void 0;
|
|
4
|
+
const grammy_1 = require("grammy");
|
|
5
|
+
const logger_1 = require("../logger");
|
|
6
|
+
class TelegramClient {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.logger = logger_1.Logger.getLogger('TelegramClient');
|
|
9
|
+
this.bots = new Map();
|
|
10
|
+
}
|
|
11
|
+
static async create(config) {
|
|
12
|
+
const client = new TelegramClient();
|
|
13
|
+
await client.initialize(config);
|
|
14
|
+
return client;
|
|
15
|
+
}
|
|
16
|
+
async initialize(config) {
|
|
17
|
+
for (const botConfig of config.Telegram) {
|
|
18
|
+
if (botConfig.enable === false) {
|
|
19
|
+
this.logger.info(`⏭️ Skipping disabled bot: ${botConfig.name}`);
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
try {
|
|
23
|
+
const bot = new grammy_1.Bot(botConfig.botToken);
|
|
24
|
+
bot.catch((err) => {
|
|
25
|
+
this.logger.error(`❌ [${botConfig.name}] Bot error:`, err);
|
|
26
|
+
});
|
|
27
|
+
this.bots.set(botConfig.name, {
|
|
28
|
+
config: botConfig,
|
|
29
|
+
bot,
|
|
30
|
+
started: false,
|
|
31
|
+
});
|
|
32
|
+
this.logger.info(`✅ Bot initialized: ${botConfig.name}`);
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
this.logger.error(`❌ Failed to initialize bot ${botConfig.name}:`, error);
|
|
36
|
+
throw error;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
async start() {
|
|
41
|
+
const startPromises = [];
|
|
42
|
+
this.bots.forEach((instance, name) => {
|
|
43
|
+
if (!instance.started) {
|
|
44
|
+
const promise = instance.bot
|
|
45
|
+
.start({
|
|
46
|
+
onStart: (botInfo) => {
|
|
47
|
+
this.logger.info(`🚀 [${name}] Bot started: @${botInfo.username} (ID: ${botInfo.id})`);
|
|
48
|
+
},
|
|
49
|
+
})
|
|
50
|
+
.then(() => {
|
|
51
|
+
instance.started = true;
|
|
52
|
+
})
|
|
53
|
+
.catch((error) => {
|
|
54
|
+
this.logger.error(`❌ [${name}] Failed to start bot:`, error);
|
|
55
|
+
throw error;
|
|
56
|
+
});
|
|
57
|
+
startPromises.push(promise);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
await Promise.all(startPromises);
|
|
61
|
+
this.logger.info(`✅ All Telegram bots started successfully`);
|
|
62
|
+
}
|
|
63
|
+
async stop() {
|
|
64
|
+
const stopPromises = [];
|
|
65
|
+
this.bots.forEach((instance, name) => {
|
|
66
|
+
if (instance.started) {
|
|
67
|
+
const promise = instance.bot
|
|
68
|
+
.stop()
|
|
69
|
+
.then(() => {
|
|
70
|
+
instance.started = false;
|
|
71
|
+
this.logger.info(`🛑 [${name}] Bot stopped`);
|
|
72
|
+
})
|
|
73
|
+
.catch((error) => {
|
|
74
|
+
this.logger.error(`❌ [${name}] Failed to stop bot:`, error);
|
|
75
|
+
});
|
|
76
|
+
stopPromises.push(promise);
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
await Promise.all(stopPromises);
|
|
80
|
+
this.logger.info(`✅ All Telegram bots stopped successfully`);
|
|
81
|
+
}
|
|
82
|
+
async sendMessage(botName, message, options) {
|
|
83
|
+
const instance = this.bots.get(botName);
|
|
84
|
+
if (!instance) {
|
|
85
|
+
throw new Error(`Bot not found: ${botName}`);
|
|
86
|
+
}
|
|
87
|
+
if (!instance.started) {
|
|
88
|
+
throw new Error(`Bot not started: ${botName}`);
|
|
89
|
+
}
|
|
90
|
+
try {
|
|
91
|
+
await instance.bot.api.sendMessage(instance.config.chatId, message, options);
|
|
92
|
+
this.logger.info(`📤 [${botName}] Message sent to ${instance.config.chatId}`);
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
this.logger.error(`❌ [${botName}] Failed to send message:`, error);
|
|
96
|
+
throw error;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
getBot(botName) {
|
|
100
|
+
return this.bots.get(botName)?.bot;
|
|
101
|
+
}
|
|
102
|
+
getBotNames() {
|
|
103
|
+
return Array.from(this.bots.keys());
|
|
104
|
+
}
|
|
105
|
+
isBotStarted(botName) {
|
|
106
|
+
return this.bots.get(botName)?.started || false;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
exports.TelegramClient = TelegramClient;
|
|
110
|
+
//# sourceMappingURL=TelegramClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TelegramClient.js","sourceRoot":"","sources":["../../../../src/libs/telegram/TelegramClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TelegramConfig.d.ts","sourceRoot":"","sources":["../../../../src/libs/telegram/TelegramConfig.ts"],"names":[],"mappings":"AA6BA,MAAM,MAAM,iBAAiB,GAAG;IAa9B,IAAI,EAAE,MAAM,CAAC;IAab,QAAQ,EAAE,MAAM,CAAC;IAoBjB,MAAM,EAAE,MAAM,CAAC;IAef,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AA4CF,MAAM,MAAM,cAAc,GAAG;IAqB3B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TelegramConfig.js","sourceRoot":"","sources":["../../../../src/libs/telegram/TelegramConfig.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { MicroframeworkSettings } from 'microframework';
|
|
2
|
+
import { ClassType } from '../type';
|
|
3
|
+
export type TelegramLoaderOption = {
|
|
4
|
+
telegramHandlers?: ClassType[];
|
|
5
|
+
};
|
|
6
|
+
export declare const telegramLoader: (option?: TelegramLoaderOption) => (settings?: MicroframeworkSettings) => Promise<void>;
|
|
7
|
+
//# sourceMappingURL=TelegramLoader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TelegramLoader.d.ts","sourceRoot":"","sources":["../../../../src/libs/telegram/TelegramLoader.ts"],"names":[],"mappings":"AAoCA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAIxD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AASpC,MAAM,MAAM,oBAAoB,GAAG;IA2BjC,gBAAgB,CAAC,EAAE,SAAS,EAAE,CAAC;CAChC,CAAC;AAyFF,eAAO,MAAM,cAAc,GAAI,SAAS,oBAAoB,MAAM,WAAW,sBAAsB,kBAqDlG,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.telegramLoader = void 0;
|
|
4
|
+
const typedi_1 = require("typedi");
|
|
5
|
+
const logger_1 = require("../logger");
|
|
6
|
+
const configure_1 = require("../configure");
|
|
7
|
+
const TelegramClient_1 = require("./TelegramClient");
|
|
8
|
+
const TelegramManager_1 = require("./TelegramManager");
|
|
9
|
+
const telegramLoader = (option) => (settings) => {
|
|
10
|
+
const logger = logger_1.Logger.getLogger('TelegramLoader');
|
|
11
|
+
const telegramCfg = configure_1.ConfigManager.getConfig('telegram');
|
|
12
|
+
if (!telegramCfg || !telegramCfg.Telegram || telegramCfg.Telegram.length === 0) {
|
|
13
|
+
logger.warn('⚠️ Telegram configuration not found or empty, skipping Telegram initialization');
|
|
14
|
+
return Promise.resolve();
|
|
15
|
+
}
|
|
16
|
+
const enabledBots = telegramCfg.Telegram.filter((bot) => bot.enable !== false);
|
|
17
|
+
if (enabledBots.length === 0) {
|
|
18
|
+
logger.warn('⚠️ No enabled Telegram bots found, skipping Telegram initialization');
|
|
19
|
+
return Promise.resolve();
|
|
20
|
+
}
|
|
21
|
+
logger.info(`📦 Initializing Telegram with ${enabledBots.length} bot(s)`);
|
|
22
|
+
return TelegramClient_1.TelegramClient.create(telegramCfg)
|
|
23
|
+
.then(async (client) => {
|
|
24
|
+
typedi_1.Container.set(TelegramClient_1.TelegramClient, client);
|
|
25
|
+
logger.info('✅ TelegramClient registered to TypeDI container');
|
|
26
|
+
if (option?.telegramHandlers && option.telegramHandlers.length > 0) {
|
|
27
|
+
await TelegramManager_1.TelegramManager.registerHandlers(client, option.telegramHandlers);
|
|
28
|
+
logger.info(`✅ Registered ${option.telegramHandlers.length} handler class(es)`);
|
|
29
|
+
}
|
|
30
|
+
settings?.onShutdown(async () => {
|
|
31
|
+
logger.info('🛑 Shutting down Telegram bots...');
|
|
32
|
+
await client.stop();
|
|
33
|
+
});
|
|
34
|
+
await client.start();
|
|
35
|
+
const botNames = client.getBotNames();
|
|
36
|
+
logger.info(`✅ Telegram - All bots started successfully: ${botNames.join(', ')}`);
|
|
37
|
+
})
|
|
38
|
+
.catch((error) => {
|
|
39
|
+
logger.error('❌ Failed to initialize Telegram:', error);
|
|
40
|
+
logger.warn('⚠️ Application will continue without Telegram');
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
exports.telegramLoader = telegramLoader;
|
|
44
|
+
//# sourceMappingURL=TelegramLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TelegramLoader.js","sourceRoot":"","sources":["../../../../src/libs/telegram/TelegramLoader.ts"],"names":[],"mappings":";;;AAqCA,mCAAmC;AACnC,sCAAmC;AACnC,4CAA6C;AAE7C,qDAAkD;AAElD,uDAAoD;AA2H7C,MAAM,cAAc,GAAG,CAAC,MAA6B,EAAE,EAAE,CAAC,CAAC,QAAiC,EAAE,EAAE;IAGrG,MAAM,MAAM,GAAG,eAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,yBAAa,CAAC,SAAS,CAAiB,UAAU,CAAC,CAAC;IAGxE,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/E,MAAM,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;QAC/F,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAGD,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;IAC/E,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;QACpF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,iCAAiC,WAAW,CAAC,MAAM,SAAS,CAAC,CAAC;IAG1E,OAAO,+BAAc,CAAC,MAAM,CAAC,WAAW,CAAC;SACtC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QAErB,kBAAS,CAAC,GAAG,CAAC,+BAAc,EAAE,MAAM,CAAC,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAGhE,IAAI,MAAM,EAAE,gBAAgB,IAAI,MAAM,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnE,MAAM,iCAAe,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACxE,MAAM,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,gBAAgB,CAAC,MAAM,oBAAoB,CAAC,CAAC;QACnF,CAAC;QAGD,QAAQ,EAAE,UAAU,CAAC,KAAK,IAAI,EAAE;YAC9B,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;YACjD,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;QAGH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QAGrB,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,gDAAgD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrF,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAGzD,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AArDW,QAAA,cAAc,kBAqDzB"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Context } from 'grammy';
|
|
2
|
+
import { ClassType } from '../type';
|
|
3
|
+
import { TelegramClient } from './TelegramClient';
|
|
4
|
+
export type CommandHandler = {
|
|
5
|
+
clazz: ClassType;
|
|
6
|
+
method: string;
|
|
7
|
+
command: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
};
|
|
10
|
+
export type MessageHandler = {
|
|
11
|
+
clazz: ClassType;
|
|
12
|
+
method: string;
|
|
13
|
+
messageType: 'text' | 'photo' | 'document' | 'video' | 'audio' | 'voice' | 'sticker' | 'all';
|
|
14
|
+
filter?: (ctx: Context) => boolean;
|
|
15
|
+
};
|
|
16
|
+
export declare function onCommand(command: string, options?: {
|
|
17
|
+
description?: string;
|
|
18
|
+
botName?: string;
|
|
19
|
+
}): MethodDecorator;
|
|
20
|
+
export declare function onMessage(messageType?: 'text' | 'photo' | 'document' | 'video' | 'audio' | 'voice' | 'sticker' | 'all', options?: {
|
|
21
|
+
filter?: (ctx: Context) => boolean;
|
|
22
|
+
botName?: string;
|
|
23
|
+
}): MethodDecorator;
|
|
24
|
+
export declare class TelegramManager {
|
|
25
|
+
private static readonly logger;
|
|
26
|
+
static registerHandlers(client: TelegramClient, handlers?: ClassType[]): Promise<void>;
|
|
27
|
+
private static registerBotHandlers;
|
|
28
|
+
private static handleMessage;
|
|
29
|
+
static getRegisteredCommands(botName?: string): string[];
|
|
30
|
+
static clearRegistry(): void;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=TelegramManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TelegramManager.d.ts","sourceRoot":"","sources":["../../../../src/libs/telegram/TelegramManager.ts"],"names":[],"mappings":"AA0CA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMlD,MAAM,MAAM,cAAc,GAAG;IAE3B,KAAK,EAAE,SAAS,CAAC;IAEjB,MAAM,EAAE,MAAM,CAAC;IAEf,OAAO,EAAE,MAAM,CAAC;IAEhB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAMF,MAAM,MAAM,cAAc,GAAG;IAE3B,KAAK,EAAE,SAAS,CAAC;IAEjB,MAAM,EAAE,MAAM,CAAC;IAEf,WAAW,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,KAAK,CAAC;IAE7F,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC;CACpC,CAAC;AAiDF,wBAAgB,SAAS,CACvB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,eAAe,CAqBjB;AAqCD,wBAAgB,SAAS,CACvB,WAAW,GAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,KAAa,EACpG,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACjE,eAAe,CAoBjB;AAUD,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAuC;WAmBxD,gBAAgB,CAC3B,MAAM,EAAE,cAAc,EACtB,QAAQ,CAAC,EAAE,SAAS,EAAE,GACrB,OAAO,CAAC,IAAI,CAAC;mBAqCK,mBAAmB;mBAoEnB,aAAa;IAkClC,MAAM,CAAC,qBAAqB,CAAC,OAAO,GAAE,MAAsB,GAAG,MAAM,EAAE;IAYvE,MAAM,CAAC,aAAa,IAAI,IAAI;CAK7B"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TelegramManager = void 0;
|
|
4
|
+
exports.onCommand = onCommand;
|
|
5
|
+
exports.onMessage = onMessage;
|
|
6
|
+
const typedi_1 = require("typedi");
|
|
7
|
+
const logger_1 = require("../logger");
|
|
8
|
+
const handlerRegistry = {};
|
|
9
|
+
function onCommand(command, options) {
|
|
10
|
+
return (target, propertyKey) => {
|
|
11
|
+
const botName = options?.botName || '__default__';
|
|
12
|
+
const commandName = command.startsWith('/') ? command.slice(1) : command;
|
|
13
|
+
if (!handlerRegistry[botName]) {
|
|
14
|
+
handlerRegistry[botName] = {
|
|
15
|
+
commands: new Map(),
|
|
16
|
+
messages: new Map(),
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
const handlers = handlerRegistry[botName].commands.get(commandName) || [];
|
|
20
|
+
handlers.push({
|
|
21
|
+
clazz: target.constructor,
|
|
22
|
+
method: propertyKey.toString(),
|
|
23
|
+
command: commandName,
|
|
24
|
+
description: options?.description,
|
|
25
|
+
});
|
|
26
|
+
handlerRegistry[botName].commands.set(commandName, handlers);
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function onMessage(messageType = 'all', options) {
|
|
30
|
+
return (target, propertyKey) => {
|
|
31
|
+
const botName = options?.botName || '__default__';
|
|
32
|
+
if (!handlerRegistry[botName]) {
|
|
33
|
+
handlerRegistry[botName] = {
|
|
34
|
+
commands: new Map(),
|
|
35
|
+
messages: new Map(),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
const handlers = handlerRegistry[botName].messages.get(messageType) || [];
|
|
39
|
+
handlers.push({
|
|
40
|
+
clazz: target.constructor,
|
|
41
|
+
method: propertyKey.toString(),
|
|
42
|
+
messageType,
|
|
43
|
+
filter: options?.filter,
|
|
44
|
+
});
|
|
45
|
+
handlerRegistry[botName].messages.set(messageType, handlers);
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
class TelegramManager {
|
|
49
|
+
static async registerHandlers(client, handlers) {
|
|
50
|
+
if (!handlers || handlers.length === 0) {
|
|
51
|
+
this.logger.info('No handlers to register');
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
const instances = [];
|
|
55
|
+
for (const HandlerClass of handlers) {
|
|
56
|
+
try {
|
|
57
|
+
const instance = typedi_1.Container.get(HandlerClass);
|
|
58
|
+
instances.push(instance);
|
|
59
|
+
this.logger.info(`✅ Handler class loaded: ${HandlerClass.name}`);
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
this.logger.error(`❌ Failed to load handler class ${HandlerClass.name}:`, error);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
const botNames = client.getBotNames();
|
|
66
|
+
for (const botName of botNames) {
|
|
67
|
+
await this.registerBotHandlers(client, botName, '__default__');
|
|
68
|
+
await this.registerBotHandlers(client, botName, botName);
|
|
69
|
+
}
|
|
70
|
+
this.logger.info('✅ All handlers registered successfully');
|
|
71
|
+
}
|
|
72
|
+
static async registerBotHandlers(client, botName, registryKey) {
|
|
73
|
+
const registry = handlerRegistry[registryKey];
|
|
74
|
+
if (!registry) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
const bot = client.getBot(botName);
|
|
78
|
+
if (!bot) {
|
|
79
|
+
this.logger.warn(`Bot not found: ${botName}`);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
let commandCount = 0;
|
|
83
|
+
registry.commands.forEach((handlers, command) => {
|
|
84
|
+
bot.command(command, async (ctx) => {
|
|
85
|
+
for (const handler of handlers) {
|
|
86
|
+
try {
|
|
87
|
+
const instance = typedi_1.Container.get(handler.clazz);
|
|
88
|
+
await instance[handler.method](ctx, botName);
|
|
89
|
+
this.logger.info(`📝 [${botName}] Command /${command} handled by ${handler.clazz.name}.${handler.method}`);
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
this.logger.error(`❌ [${botName}] Error handling command /${command}:`, error);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
commandCount++;
|
|
97
|
+
this.logger.info(`📝 [${botName}] Registered command: /${command} (${handlers.length} handler(s))`);
|
|
98
|
+
});
|
|
99
|
+
let messageCount = 0;
|
|
100
|
+
registry.messages.forEach((handlers, messageType) => {
|
|
101
|
+
if (messageType === 'all') {
|
|
102
|
+
bot.on('message', async (ctx) => {
|
|
103
|
+
await this.handleMessage(ctx, handlers, botName);
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
bot.on(`message:${messageType}`, async (ctx) => {
|
|
108
|
+
await this.handleMessage(ctx, handlers, botName);
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
messageCount++;
|
|
112
|
+
this.logger.info(`📨 [${botName}] Registered message listener: ${messageType} (${handlers.length} handler(s))`);
|
|
113
|
+
});
|
|
114
|
+
if (commandCount > 0 || messageCount > 0) {
|
|
115
|
+
this.logger.info(`✅ [${botName}] Registered ${commandCount} command(s) and ${messageCount} message listener(s)`);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
static async handleMessage(ctx, handlers, botName) {
|
|
119
|
+
for (const handler of handlers) {
|
|
120
|
+
try {
|
|
121
|
+
if (handler.filter && !handler.filter(ctx)) {
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
const instance = typedi_1.Container.get(handler.clazz);
|
|
125
|
+
await instance[handler.method](ctx, botName);
|
|
126
|
+
this.logger.info(`📨 [${botName}] Message (${handler.messageType}) handled by ${handler.clazz.name}.${handler.method}`);
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
this.logger.error(`❌ [${botName}] Error handling message (${handler.messageType}):`, error);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
static getRegisteredCommands(botName = '__default__') {
|
|
134
|
+
const registry = handlerRegistry[botName];
|
|
135
|
+
if (!registry) {
|
|
136
|
+
return [];
|
|
137
|
+
}
|
|
138
|
+
return Array.from(registry.commands.keys());
|
|
139
|
+
}
|
|
140
|
+
static clearRegistry() {
|
|
141
|
+
Object.keys(handlerRegistry).forEach((key) => {
|
|
142
|
+
delete handlerRegistry[key];
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
exports.TelegramManager = TelegramManager;
|
|
147
|
+
TelegramManager.logger = logger_1.Logger.getLogger('TelegramManager');
|
|
148
|
+
//# sourceMappingURL=TelegramManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TelegramManager.js","sourceRoot":"","sources":["../../../../src/libs/telegram/TelegramManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/libs/telegram/index.ts"],"names":[],"mappings":"AAEA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./TelegramClient"), exports);
|
|
18
|
+
__exportStar(require("./TelegramConfig"), exports);
|
|
19
|
+
__exportStar(require("./TelegramLoader"), exports);
|
|
20
|
+
__exportStar(require("./TelegramManager"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/libs/telegram/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA,mDAAiC;AACjC,mDAAiC;AACjC,mDAAiC;AACjC,oDAAkC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { DistributedEventsLoaderOption, KoaLoaderOption, ServiceLoaderOption, TypeormLoaderOption } from '../libs';
|
|
1
|
+
import { DistributedEventsLoaderOption, KoaLoaderOption, ServiceLoaderOption, TelegramLoaderOption, TypeormLoaderOption } from '../libs';
|
|
2
2
|
import { BootstrapLoader } from './BootstrapLoader';
|
|
3
|
-
export type BootstrapOption = KoaLoaderOption & TypeormLoaderOption & DistributedEventsLoaderOption & ServiceLoaderOption & {
|
|
3
|
+
export type BootstrapOption = KoaLoaderOption & TypeormLoaderOption & DistributedEventsLoaderOption & TelegramLoaderOption & ServiceLoaderOption & {
|
|
4
4
|
disableCasbin?: boolean;
|
|
5
5
|
disableRestClient?: boolean;
|
|
6
|
+
disableTelegram?: boolean;
|
|
6
7
|
disableRedis?: boolean;
|
|
7
8
|
disableDatabase?: boolean;
|
|
8
9
|
disableEvent?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BootstrapOption.d.ts","sourceRoot":"","sources":["../../../src/server/BootstrapOption.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BootstrapOption.d.ts","sourceRoot":"","sources":["../../../src/server/BootstrapOption.ts"],"names":[],"mappings":"AA6CA,OAAO,EAAE,6BAA6B,EAAE,eAAe,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACzI,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AA8BpD,MAAM,MAAM,eAAe,GAAG,eAAe,GAC3C,mBAAmB,GACnB,6BAA6B,GAC7B,oBAAoB,GACpB,mBAAmB,GAAG;IAEpB,aAAa,CAAC,EAAE,OAAO,CAAE;IAEzB,iBAAiB,CAAC,EAAE,OAAO,CAAE;IAE7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,iBAAiB,CAAC,EAAE,eAAe,EAAE,CAAC;IAEtC,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;CAC7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../src/server/bootstrap.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../src/server/bootstrap.ts"],"names":[],"mappings":"AAgCA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAA2B,cAAc,EAAgD,MAAM,gBAAgB,CAAC;AAWvH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AA4BpD,eAAO,MAAM,SAAS,GAAU,QAAQ,eAAe,KAAG,OAAO,CAAC,cAAc,CAqG/E,CAAC"}
|
package/dist/server/bootstrap.js
CHANGED
|
@@ -6,6 +6,7 @@ const microframework_1 = require("microframework");
|
|
|
6
6
|
const gateway_1 = require("../libs/gateway");
|
|
7
7
|
const configure_1 = require("../libs/configure");
|
|
8
8
|
const rabbitmq_1 = require("../libs/rabbitmq");
|
|
9
|
+
const telegram_1 = require("../libs/telegram");
|
|
9
10
|
const koa_1 = require("../libs/koa");
|
|
10
11
|
const logger_1 = require("../libs/logger");
|
|
11
12
|
const redis_1 = require("../libs/redis");
|
|
@@ -28,6 +29,9 @@ const bootstrap = async (option) => {
|
|
|
28
29
|
if (!option.disableEvent) {
|
|
29
30
|
loaders.push(option.disableEvent ? emptyLoader : (0, rabbitmq_1.rabbitmqLoader)(option));
|
|
30
31
|
}
|
|
32
|
+
if (!option.disableTelegram) {
|
|
33
|
+
loaders.push(option.disableTelegram ? emptyLoader : (0, telegram_1.telegramLoader)(option));
|
|
34
|
+
}
|
|
31
35
|
if (!option.disableRestClient) {
|
|
32
36
|
loaders.push(option.disableRestClient ? emptyLoader : restful_1.restClientLoader);
|
|
33
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/server/bootstrap.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/server/bootstrap.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gaias/basenode",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.1",
|
|
4
4
|
"buildNumber": 251025471,
|
|
5
5
|
"description": "API development framework for NodeJs",
|
|
6
6
|
"author": "FOT",
|
|
@@ -129,6 +129,7 @@
|
|
|
129
129
|
"class-validator-jsonschema": "^5.1.0",
|
|
130
130
|
"eventemitter3": "^5.0.1",
|
|
131
131
|
"glob": "^11.0.3",
|
|
132
|
+
"grammy": "^1.40.0",
|
|
132
133
|
"helmet": "^8.1.0",
|
|
133
134
|
"internal-ip": "^6.2.0",
|
|
134
135
|
"ioredis": "^5.8.2",
|