@tc-libs/logger 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,11 @@
1
+ # logger
2
+
3
+ This library was generated with [Nx](https://nx.dev).
4
+
5
+ ## Building
6
+
7
+ Run `nx build logger` to build the library.
8
+
9
+ ## Running unit tests
10
+
11
+ Run `nx test logger` to execute the unit tests via [Jest](https://jestjs.io).
package/package.json ADDED
@@ -0,0 +1,11 @@
1
+ {
2
+ "name": "@tc-libs/logger",
3
+ "version": "0.9.0",
4
+ "dependencies": {
5
+ "tslib": "^2.3.0"
6
+ },
7
+ "type": "commonjs",
8
+ "main": "./src/index.js",
9
+ "typings": "./src/index.d.ts",
10
+ "types": "./src/index.d.ts"
11
+ }
package/src/index.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from './logger.module';
2
+ export * from './services/logger.service';
package/src/index.js ADDED
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./logger.module"), exports);
5
+ tslib_1.__exportStar(require("./services/logger.service"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/logger/src/index.ts"],"names":[],"mappings":";;;AAAA,0DAAgC;AAChC,oEAA0C"}
@@ -0,0 +1,7 @@
1
+ import { LoggerService } from '@nestjs/common';
2
+ export interface ITcLogService extends LoggerService {
3
+ notifyLog(message: any, ...optionalParams: any[]): void;
4
+ notifyInfo(message: any, ...optionalParams: any[]): void;
5
+ notifyWarn(message: any, ...optionalParams: any[]): void;
6
+ notifyError(message: any, ...optionalParams: any[]): void;
7
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=itclogger.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"itclogger.service.js","sourceRoot":"","sources":["../../../../../packages/logger/src/interface/itclogger.service.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { ITcLogService } from './interface/itclogger.service';
2
+ import { LoggerModuleOptions } from './logger.module.options';
3
+ export declare class LogFactory {
4
+ private readonly _options;
5
+ constructor(_options: LoggerModuleOptions);
6
+ createLogger(context: string): ITcLogService;
7
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LogFactory = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const logger_service_1 = require("./services/logger.service");
7
+ const logger_module_options_1 = require("./logger.module.options");
8
+ let LogFactory = class LogFactory {
9
+ constructor(_options) {
10
+ this._options = _options;
11
+ }
12
+ createLogger(context) {
13
+ const logConf = {
14
+ telegramEnabled: this._options.telegram.enabled,
15
+ telegramChatId: this._options.telegram.chatId,
16
+ telegramApiToken: this._options.telegram.apiToken,
17
+ };
18
+ return new logger_service_1.TcLogService(context, logConf);
19
+ }
20
+ };
21
+ exports.LogFactory = LogFactory;
22
+ exports.LogFactory = LogFactory = tslib_1.__decorate([
23
+ (0, common_1.Injectable)(),
24
+ tslib_1.__param(0, (0, common_1.Inject)(logger_module_options_1.LOGGER_CONFIG_OPTIONS)),
25
+ tslib_1.__metadata("design:paramtypes", [Object])
26
+ ], LogFactory);
27
+ //# sourceMappingURL=logger.factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.factory.js","sourceRoot":"","sources":["../../../../packages/logger/src/logger.factory.ts"],"names":[],"mappings":";;;;AAAA,2CAAoD;AACpD,8DAAyD;AAEzD,mEAGiC;AAG1B,IAAM,UAAU,GAAhB,MAAM,UAAU;IACrB,YAEmB,QAA6B;QAA7B,aAAQ,GAAR,QAAQ,CAAqB;IAC7C,CAAC;IACJ,YAAY,CAAC,OAAe;QAC1B,MAAM,OAAO,GAAG;YACd,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO;YAC/C,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM;YAC7C,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ;SAClD,CAAC;QACF,OAAO,IAAI,6BAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;CACF,CAAA;AAbY,gCAAU;qBAAV,UAAU;IADtB,IAAA,mBAAU,GAAE;IAGR,mBAAA,IAAA,eAAM,EAAC,6CAAqB,CAAC,CAAA;;GAFrB,UAAU,CAatB"}
@@ -0,0 +1,6 @@
1
+ import { DynamicModule } from '@nestjs/common';
2
+ import LoggerModuleAsyncOptions, { LoggerModuleOptions } from './logger.module.options';
3
+ export declare class LoggerModule {
4
+ static register(options: LoggerModuleOptions, isGlobal?: boolean): DynamicModule;
5
+ static registerAsync(options: LoggerModuleAsyncOptions, isGlobal?: boolean): DynamicModule;
6
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LoggerModule = void 0;
4
+ const logger_factory_1 = require("./logger.factory");
5
+ const logger_module_options_1 = require("./logger.module.options");
6
+ class LoggerModule {
7
+ static register(options, isGlobal) {
8
+ return {
9
+ module: LoggerModule,
10
+ imports: [],
11
+ providers: [
12
+ { provide: logger_module_options_1.LOGGER_CONFIG_OPTIONS, useValue: options },
13
+ logger_factory_1.LogFactory,
14
+ ],
15
+ exports: [logger_factory_1.LogFactory],
16
+ global: isGlobal,
17
+ };
18
+ }
19
+ static registerAsync(options, isGlobal) {
20
+ return {
21
+ module: LoggerModule,
22
+ imports: [...(options.imports || [])],
23
+ providers: [
24
+ {
25
+ provide: logger_module_options_1.LOGGER_CONFIG_OPTIONS,
26
+ useFactory: options.useFactory,
27
+ inject: options.inject,
28
+ },
29
+ logger_factory_1.LogFactory,
30
+ ],
31
+ exports: [logger_factory_1.LogFactory],
32
+ global: isGlobal,
33
+ };
34
+ }
35
+ }
36
+ exports.LoggerModule = LoggerModule;
37
+ //# sourceMappingURL=logger.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.module.js","sourceRoot":"","sources":["../../../../packages/logger/src/logger.module.ts"],"names":[],"mappings":";;;AACA,qDAA8C;AAC9C,mEAGiC;AAEjC,MAAa,YAAY;IACvB,MAAM,CAAC,QAAQ,CACb,OAA4B,EAC5B,QAAkB;QAElB,OAAO;YACL,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,EAAE;YACX,SAAS,EAAE;gBACT,EAAE,OAAO,EAAE,6CAAqB,EAAE,QAAQ,EAAE,OAAO,EAAE;gBACrD,2BAAU;aACX;YACD,OAAO,EAAE,CAAC,2BAAU,CAAC;YACrB,MAAM,EAAE,QAAQ;SACjB,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,aAAa,CAClB,OAAiC,EACjC,QAAkB;QAElB,OAAO;YACL,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YACrC,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,6CAAqB;oBAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB;gBACD,2BAAU;aACX;YACD,OAAO,EAAE,CAAC,2BAAU,CAAC;YACrB,MAAM,EAAE,QAAQ;SACjB,CAAC;IACJ,CAAC;CACF;AAnCD,oCAmCC"}
@@ -0,0 +1,12 @@
1
+ import { ModuleMetadata } from '@nestjs/common';
2
+ import { FactoryProvider } from '@nestjs/common/interfaces/modules/provider.interface';
3
+ export declare const LOGGER_CONFIG_OPTIONS = "LOGGER_CONFIG_OPTIONS";
4
+ export interface LoggerModuleOptions {
5
+ telegram: {
6
+ enabled: boolean;
7
+ chatId: string;
8
+ apiToken: string;
9
+ };
10
+ }
11
+ type LoggerModuleAsyncOptions = Pick<ModuleMetadata, 'imports'> & Pick<FactoryProvider<LoggerModuleOptions>, 'useFactory' | 'inject'>;
12
+ export default LoggerModuleAsyncOptions;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LOGGER_CONFIG_OPTIONS = void 0;
4
+ exports.LOGGER_CONFIG_OPTIONS = 'LOGGER_CONFIG_OPTIONS';
5
+ //# sourceMappingURL=logger.module.options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.module.options.js","sourceRoot":"","sources":["../../../../packages/logger/src/logger.module.options.ts"],"names":[],"mappings":";;;AAGa,QAAA,qBAAqB,GAAG,uBAAuB,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { ITcLogService } from '../interface/itclogger.service';
2
+ export type TcLogServiceConfig = {
3
+ telegramEnabled: boolean;
4
+ telegramChatId?: string;
5
+ telegramApiToken?: string;
6
+ };
7
+ export declare class TcLogService implements ITcLogService {
8
+ private _context;
9
+ private _consoleLog;
10
+ private _telegramLogger;
11
+ private _telegramEnabled;
12
+ private _badges;
13
+ constructor(context: string, conf: TcLogServiceConfig);
14
+ /**
15
+ * Write a 'log' level log.
16
+ */
17
+ log(message: any, ...optionalParams: any[]): void;
18
+ /**
19
+ * Write an 'error' level log.
20
+ */
21
+ error(message: any, ...optionalParams: any[]): void;
22
+ /**
23
+ * Write a 'warn' level log.
24
+ */
25
+ warn(message: any, ...optionalParams: any[]): void;
26
+ /**
27
+ * Write a 'debug' level log.
28
+ */
29
+ debug?(message: any, ...optionalParams: any[]): void;
30
+ /**
31
+ * Write a 'verbose' level log.
32
+ */
33
+ verbose?(message: any, ...optionalParams: any[]): void;
34
+ notifyLog(message: any, ...optionalParams: any[]): void;
35
+ notifyInfo(message: any, ...optionalParams: any[]): void;
36
+ notifyWarn(message: any, ...optionalParams: any[]): void;
37
+ notifyError(message: any, ...optionalParams: any[]): void;
38
+ }
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TcLogService = void 0;
4
+ const winston_1 = require("winston");
5
+ const { combine, metadata, timestamp, label, printf, errors, colorize } = winston_1.format;
6
+ const telegram_transport_1 = require("../transports/telegram.transport");
7
+ const _sanitize = (str) => {
8
+ return str.replace(/[\u00A0-\u9999<>&]/g, (i) => {
9
+ return '&#' + i.charCodeAt(0) + ';';
10
+ });
11
+ };
12
+ class TcLogService {
13
+ constructor(context, conf) {
14
+ this._badges = {
15
+ debug: '⚪',
16
+ info: '🔵',
17
+ warn: '🟡',
18
+ error: '🔴',
19
+ };
20
+ this._context = context;
21
+ const loggerConsoleOptions = {
22
+ // level: 'log',
23
+ // meta: true,
24
+ level: 'debug',
25
+ transports: [new winston_1.transports.Console()],
26
+ format: winston_1.format.combine(label({ label: this._context }), errors({ stack: true }), colorize({
27
+ all: true,
28
+ colors: {
29
+ debug: 'gray',
30
+ info: 'green',
31
+ warn: 'yellow',
32
+ error: 'red',
33
+ },
34
+ }), metadata({ fillExcept: ['message', 'level', 'timestamp', 'label'] }),
35
+ // align(),
36
+ timestamp({
37
+ format: 'DD/MM/YY HH:mm:ss Z',
38
+ }), printf((info) => {
39
+ // formating the log outcome to show/store
40
+ const tokens = [
41
+ `${info['timestamp']} [${info['label']}] ${info.level}: ${info.message}`,
42
+ ];
43
+ if (info['metadata'] && Object.keys(info['metadata']).length) {
44
+ try {
45
+ tokens.push(`\x1b[35m${JSON.stringify(info['metadata'], null, 2)}\x1b[0m`);
46
+ }
47
+ catch {
48
+ // tslint:disable-next-line:no-console
49
+ console.error('Cannot stringify:', info['metadata']);
50
+ }
51
+ }
52
+ return tokens.join('\n');
53
+ })),
54
+ };
55
+ this._consoleLog = (0, winston_1.createLogger)(loggerConsoleOptions);
56
+ this._telegramEnabled = conf.telegramEnabled && !!conf.telegramChatId;
57
+ if (this._telegramEnabled) {
58
+ this._telegramLogger = (0, winston_1.createLogger)({
59
+ level: 'debug',
60
+ format: combine(label({
61
+ label: `${this._context}`,
62
+ }), metadata({ fillExcept: ['message', 'level', 'timestamp', 'label'] }), timestamp({ format: 'DD/MM HH:mm:ss' }), printf(({ level, message, label: labelStr, metadata: meta }) => {
63
+ const bedge = this._badges[level];
64
+ const tokens = [`${bedge} <b>[${labelStr}]</b>`];
65
+ let errStr;
66
+ if (message instanceof Error) {
67
+ const error = message;
68
+ const stack = error && error.stack
69
+ ? error.stack.split('\n', 20).join('\n')
70
+ : '[...stack...]';
71
+ message = `💥 <b>${_sanitize(error.name)}</b>\n<pre>${_sanitize(error.message)}</pre>`;
72
+ errStr = `<pre>${_sanitize(stack)}</pre>`;
73
+ }
74
+ else if (typeof message === 'object')
75
+ try {
76
+ message = `<pre>${_sanitize(JSON.stringify(message, null, 2))}</pre>`;
77
+ }
78
+ catch {
79
+ // tslint:disable-next-line:no-console
80
+ console.error('Cannot stringify:', message);
81
+ }
82
+ else
83
+ message = `<pre>${_sanitize(message)}</pre>`;
84
+ tokens.push(message);
85
+ if (errStr)
86
+ tokens.push(errStr);
87
+ if (meta && Object.keys(meta).length) {
88
+ try {
89
+ tokens.push(`<pre><code class="language-json">${_sanitize(JSON.stringify(meta, null, 2))}</code></pre>`);
90
+ }
91
+ catch {
92
+ // tslint:disable-next-line:no-console
93
+ console.error('Cannot stringify:', meta);
94
+ }
95
+ }
96
+ return tokens.join('\n').replace('.', '.');
97
+ })),
98
+ transports: [
99
+ new telegram_transport_1.TelegramTransport({
100
+ token: conf.telegramApiToken,
101
+ chatId: conf.telegramChatId,
102
+ }),
103
+ ],
104
+ });
105
+ }
106
+ }
107
+ /**
108
+ * Write a 'log' level log.
109
+ */
110
+ log(message, ...optionalParams) {
111
+ this._consoleLog.log('debug', message, optionalParams, null);
112
+ }
113
+ /**
114
+ * Write an 'error' level log.
115
+ */
116
+ error(message, ...optionalParams) {
117
+ this._consoleLog.log('error', message, optionalParams, null);
118
+ }
119
+ /**
120
+ * Write a 'warn' level log.
121
+ */
122
+ warn(message, ...optionalParams) {
123
+ this._consoleLog.log('warn', message, optionalParams, null);
124
+ }
125
+ /**
126
+ * Write a 'debug' level log.
127
+ */
128
+ debug(message, ...optionalParams) {
129
+ this._consoleLog.log('debug', message, optionalParams, null);
130
+ }
131
+ /**
132
+ * Write a 'verbose' level log.
133
+ */
134
+ verbose(message, ...optionalParams) {
135
+ this._consoleLog.log('debug', message, optionalParams, null);
136
+ }
137
+ notifyLog(message, ...optionalParams) {
138
+ this._consoleLog.log('debug', message, optionalParams, null);
139
+ if (this._telegramEnabled)
140
+ this._telegramLogger.debug(message, optionalParams, null);
141
+ }
142
+ notifyInfo(message, ...optionalParams) {
143
+ this._consoleLog.log('info', message, optionalParams, null);
144
+ if (this._telegramEnabled)
145
+ this._telegramLogger.info(message, optionalParams, null);
146
+ }
147
+ notifyWarn(message, ...optionalParams) {
148
+ this._consoleLog.log('warn', message, optionalParams, null);
149
+ if (this._telegramEnabled)
150
+ this._telegramLogger.warn(message, optionalParams, null);
151
+ }
152
+ notifyError(message, ...optionalParams) {
153
+ this._consoleLog.log('error', message, optionalParams, null);
154
+ if (this._telegramEnabled)
155
+ this._telegramLogger.error(message, optionalParams, null);
156
+ }
157
+ }
158
+ exports.TcLogService = TcLogService;
159
+ //# sourceMappingURL=logger.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.service.js","sourceRoot":"","sources":["../../../../../packages/logger/src/services/logger.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { TransportStreamOptions } from 'winston-transport';
2
+ import Transport from 'winston-transport';
3
+ interface TelegramTransportOpts extends TransportStreamOptions {
4
+ token?: string;
5
+ chatId?: string;
6
+ }
7
+ export declare class TelegramTransport extends Transport {
8
+ private _bot;
9
+ private _chatId;
10
+ constructor(opts: TelegramTransportOpts);
11
+ log(info: any, cb: () => void): void;
12
+ }
13
+ export {};
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TelegramTransport = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const winston_transport_1 = tslib_1.__importDefault(require("winston-transport"));
6
+ const telegraf_1 = require("telegraf");
7
+ class TelegramTransport extends winston_transport_1.default {
8
+ constructor(opts) {
9
+ super(opts);
10
+ if (opts.token)
11
+ this._bot = new telegraf_1.Telegraf(opts.token);
12
+ this._chatId = opts.chatId;
13
+ }
14
+ log(info, cb) {
15
+ if (!this._bot || !this._chatId)
16
+ return cb();
17
+ const msg = info[Symbol.for('message')];
18
+ this._bot.telegram.sendMessage(this._chatId, msg, {
19
+ parse_mode: 'HTML',
20
+ });
21
+ return cb();
22
+ }
23
+ }
24
+ exports.TelegramTransport = TelegramTransport;
25
+ //# sourceMappingURL=telegram.transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telegram.transport.js","sourceRoot":"","sources":["../../../../../packages/logger/src/transports/telegram.transport.ts"],"names":[],"mappings":";;;;AACA,kFAA0C;AAC1C,uCAAoC;AAOpC,MAAa,iBAAkB,SAAQ,2BAAS;IAG9C,YAAY,IAA2B;QACrC,KAAK,CAAC,IAA8B,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,mBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;IAC7B,CAAC;IACQ,GAAG,CAAC,IAAS,EAAE,EAAc;QACpC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YAChD,UAAU,EAAE,MAAM;SACnB,CAAC,CAAC;QACH,OAAO,EAAE,EAAE,CAAC;IACd,CAAC;CACF;AAhBD,8CAgBC"}