@minimaltech/node-infra 0.5.9-22 → 0.5.9-24
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/base/applications/base.application.js +40 -28
- package/dist/base/applications/default.application.js +8 -2
- package/dist/base/base.component.js +2 -2
- package/dist/base/base.helper.js +3 -4
- package/dist/base/base.provider.js +2 -2
- package/dist/base/base.sequence.js +26 -17
- package/dist/base/controllers/common.js +9 -8
- package/dist/base/controllers/crud.controller.js +67 -55
- package/dist/base/controllers/express-request-handler.js +0 -2
- package/dist/base/controllers/kv.controller.js +18 -7
- package/dist/base/controllers/relational.controller.d.ts +3 -1
- package/dist/base/controllers/relational.controller.js +57 -40
- package/dist/base/controllers/service-crud.controller.js +46 -46
- package/dist/base/datasources/base.datasource.js +0 -1
- package/dist/base/loopback/@lb/core/index.js +1 -0
- package/dist/base/loopback/@lb/repository/index.js +1 -0
- package/dist/base/loopback/authentication/index.js +2 -0
- package/dist/base/loopback/filter/index.js +2 -0
- package/dist/base/loopback/http-server/index.js +2 -0
- package/dist/base/models/base.model.d.ts +7 -0
- package/dist/base/models/base.model.js +23 -5
- package/dist/base/repositories/base.repository.d.ts +3 -0
- package/dist/base/repositories/base.repository.js +24 -5
- package/dist/base/repositories/relations/has-many-polymorphic/decorator.d.ts +8 -0
- package/dist/base/repositories/relations/has-many-polymorphic/decorator.js +10 -11
- package/dist/base/repositories/relations/has-many-polymorphic/factory.d.ts +9 -0
- package/dist/base/repositories/relations/has-many-polymorphic/factory.js +30 -12
- package/dist/base/repositories/searchable-tz-crud.repository.js +160 -129
- package/dist/base/repositories/tz-crud.repository.js +58 -23
- package/dist/base/services/base-crud.service.js +9 -6
- package/dist/base/services/base.service.js +2 -2
- package/dist/common/constants.js +89 -81
- package/dist/common/environments.js +25 -25
- package/dist/common/keys.js +2 -2
- package/dist/common/statuses.js +31 -28
- package/dist/common/types.d.ts +3 -0
- package/dist/components/authenticate/common/constants.js +13 -11
- package/dist/components/authenticate/common/keys.js +7 -7
- package/dist/components/authenticate/common/types.js +3 -11
- package/dist/components/authenticate/component.js +28 -20
- package/dist/components/authenticate/controllers/auth.controller.js +11 -13
- package/dist/components/authenticate/controllers/oauth2.controller.js +20 -18
- package/dist/components/authenticate/middleware.js +35 -25
- package/dist/components/authenticate/models/oauth2-client.model.js +3 -8
- package/dist/components/authenticate/models/oauth2-scope.model.js +0 -4
- package/dist/components/authenticate/models/oauth2-token.model.js +0 -7
- package/dist/components/authenticate/oauth2-handlers/authorization-code.handler.js +5 -4
- package/dist/components/authenticate/oauth2-handlers/base.js +110 -95
- package/dist/components/authenticate/oauth2-handlers/client-credential.handler.js +3 -2
- package/dist/components/authenticate/oauth2-handlers/oauth2.js +2 -3
- package/dist/components/authenticate/repositories/oauth2.repository.js +0 -2
- package/dist/components/authenticate/services/basic-token.service.js +29 -18
- package/dist/components/authenticate/services/basic.strategy.js +17 -7
- package/dist/components/authenticate/services/jwt-token.service.js +40 -27
- package/dist/components/authenticate/services/jwt.strategy.js +1 -2
- package/dist/components/authenticate/services/oauth2.service.js +110 -98
- package/dist/components/authenticate/services/oauth2.strategy.js +31 -19
- package/dist/components/authorize/adapters/adapter-builder.js +0 -1
- package/dist/components/authorize/adapters/base.adapter.js +9 -2
- package/dist/components/authorize/adapters/casbin-postgres-adapter.helper.js +55 -37
- package/dist/components/authorize/adapters/casbin-redis-adapter.helper.js +1 -0
- package/dist/components/authorize/common/constants.js +12 -10
- package/dist/components/authorize/common/keys.js +15 -15
- package/dist/components/authorize/common/types.js +2 -2
- package/dist/components/authorize/component.js +59 -44
- package/dist/components/authorize/decorators/index.d.ts +11 -0
- package/dist/components/authorize/decorators/index.js +14 -1
- package/dist/components/authorize/interceptor.js +80 -76
- package/dist/components/authorize/migrations/0000-create-view-policy.js +14 -3
- package/dist/components/authorize/models/defs.js +5 -24
- package/dist/components/authorize/models/role.model.js +1 -1
- package/dist/components/authorize/models/user-role.model.js +1 -0
- package/dist/components/authorize/models/view-authorize-policy.model.js +1 -4
- package/dist/components/authorize/provider.js +96 -81
- package/dist/components/authorize/repositories/authorize.repository.js +6 -3
- package/dist/components/authorize/services/enforcer.service.js +27 -20
- package/dist/components/authorize/services/generator.service.d.ts +20 -0
- package/dist/components/authorize/services/generator.service.js +96 -62
- package/dist/components/crash-report/common/keys.js +10 -8
- package/dist/components/crash-report/component.js +44 -31
- package/dist/components/crash-report/providers/provider.js +0 -1
- package/dist/components/crash-report/providers/third-parties/base.js +2 -2
- package/dist/components/crash-report/services/mt-crash-report.service.js +5 -5
- package/dist/components/grpc/common/keys.js +4 -4
- package/dist/components/grpc/components/server.component.js +8 -8
- package/dist/components/grpc/controllers/base.js +0 -1
- package/dist/components/grpc/helpers/grpc-client.js +3 -9
- package/dist/components/grpc/helpers/grpc-server.js +17 -14
- package/dist/components/grpc/persistents/grpc.connector.js +2 -8
- package/dist/components/grpc/persistents/grpc.datasource.js +3 -2
- package/dist/components/grpc/persistents/grpc.repository.js +2 -3
- package/dist/components/health-check/component.js +0 -1
- package/dist/components/migration/common/keys.js +3 -3
- package/dist/components/migration/component.js +8 -5
- package/dist/components/migration/models/migration.model.js +0 -2
- package/dist/components/socket-io/common/constants.js +10 -10
- package/dist/components/socket-io/common/keys.js +6 -6
- package/dist/components/socket-io/component.js +8 -9
- package/dist/components/socket-io/helpers/socket-io-client.helper.js +11 -7
- package/dist/components/socket-io/helpers/socket-io-server.helper.js +41 -26
- package/dist/components/static-asset/common/keys.js +4 -4
- package/dist/components/static-asset/component.js +8 -9
- package/dist/components/static-asset/controllers/asset.controller.d.ts +8 -0
- package/dist/components/static-asset/controllers/asset.controller.js +93 -71
- package/dist/components/static-asset/controllers/resource.controller.js +9 -8
- package/dist/datasources/memory/datasource.js +3 -3
- package/dist/datasources/postgres/datasource.js +10 -10
- package/dist/datasources/redis/connector.js +7 -18
- package/dist/datasources/redis/datasource.js +7 -7
- package/dist/helpers/application-environment.helper.js +3 -3
- package/dist/helpers/cron.helper.js +14 -9
- package/dist/helpers/crypto/algorithms/aes.algorithm.js +7 -8
- package/dist/helpers/crypto/algorithms/base.algorithm.js +4 -3
- package/dist/helpers/crypto/algorithms/rsa.algorithm.js +5 -4
- package/dist/helpers/database/query-builder.helper.js +5 -2
- package/dist/helpers/logger/application-logger.js +17 -7
- package/dist/helpers/logger/common/types.js +22 -20
- package/dist/helpers/logger/default-logger.js +12 -2
- package/dist/helpers/logger/factory.js +1 -1
- package/dist/helpers/logger/transports/dgram.transport.js +25 -16
- package/dist/helpers/network/http-request/base-network-request.helper.js +34 -36
- package/dist/helpers/network/http-request/fetcher/axios-fetcher.js +22 -10
- package/dist/helpers/network/http-request/fetcher/base-fetcher.js +36 -13
- package/dist/helpers/network/http-request/fetcher/node-fetcher.js +59 -37
- package/dist/helpers/network/tcp-socket/base-tcp-client.helper.js +27 -30
- package/dist/helpers/network/tcp-socket/base-tcp-server.helper.js +19 -21
- package/dist/helpers/network/tcp-socket/network-tcp-client.helper.js +1 -5
- package/dist/helpers/network/tcp-socket/network-tcp-server.helper.js +1 -5
- package/dist/helpers/network/tcp-socket/network-tls-tcp-client.helper.js +1 -5
- package/dist/helpers/network/tcp-socket/network-tls-tcp-server.helper.js +1 -5
- package/dist/helpers/network/udp-socket/network-udp-client.helper.js +18 -21
- package/dist/helpers/queue/bullmq.helper.js +22 -21
- package/dist/helpers/queue/mqtt.helper.js +17 -15
- package/dist/helpers/queue/queue.helper.js +145 -74
- package/dist/helpers/redis/default.helper.js +162 -117
- package/dist/helpers/redis/redis-cluster.helper.js +2 -7
- package/dist/helpers/redis/redis.helper.js +5 -8
- package/dist/helpers/storage/di-container.helper.js +0 -2
- package/dist/helpers/storage/minio.helper.js +128 -88
- package/dist/helpers/testing/common.js +3 -3
- package/dist/helpers/testing/describe.js +21 -14
- package/dist/helpers/testing/test-case.js +0 -5
- package/dist/helpers/testing/test-handler.js +30 -23
- package/dist/helpers/testing/test-plan/base.js +6 -9
- package/dist/helpers/worker-thread/base.js +20 -10
- package/dist/helpers/worker-thread/worker-bus.js +12 -11
- package/dist/helpers/worker-thread/worker-pool.js +25 -17
- package/dist/interceptors/content-range.interceptor.js +132 -115
- package/dist/middlewares/request-body-parser.middleware.js +16 -4
- package/dist/middlewares/request-spy.middleware.js +5 -4
- package/dist/migrations/handler.js +22 -13
- package/dist/mixins/data-type.mixin.js +0 -5
- package/dist/mixins/deprecated/user-audit.mixin.d.ts +3 -0
- package/dist/mixins/deprecated/user-audit.mixin.js +5 -2
- package/dist/mixins/duplicatable.mixin.js +0 -1
- package/dist/mixins/object-search.mixin.js +0 -1
- package/dist/mixins/principal.mixin.js +0 -2
- package/dist/mixins/soft-delete.mixin.js +0 -1
- package/dist/mixins/soft-persistent.mixin.js +0 -1
- package/dist/mixins/text-search.mixin.js +0 -1
- package/dist/mixins/tz.mixin.js +0 -2
- package/dist/mixins/user-audit.mixin.js +3 -5
- package/dist/mixins/vector.mixin.js +6 -9
- package/dist/tsconfig.base.json +6 -5
- package/dist/utilities/date.utility.js +23 -5
- package/dist/utilities/error.utility.js +0 -2
- package/dist/utilities/model.utility.js +6 -2
- package/dist/utilities/parse.utility.d.ts +16 -0
- package/dist/utilities/parse.utility.js +41 -6
- package/dist/utilities/performance.utility.js +2 -1
- package/dist/utilities/promise.utility.d.ts +17 -0
- package/dist/utilities/promise.utility.js +31 -5
- package/dist/utilities/query.utility.js +16 -8
- package/dist/utilities/request.utility.js +8 -2
- package/package.json +2 -3
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
|
+
var _a, _b;
|
|
5
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
7
|
exports.ApplicationLogger = exports.Logger = void 0;
|
|
7
8
|
const isEmpty_1 = __importDefault(require("lodash/isEmpty"));
|
|
8
9
|
const default_logger_1 = require("./default-logger");
|
|
9
10
|
const utilities_1 = require("../../utilities");
|
|
10
|
-
const extraLogEnvs = (process.env.APP_ENV_EXTRA_LOG_ENVS
|
|
11
|
+
const extraLogEnvs = (_b = ((_a = process.env.APP_ENV_EXTRA_LOG_ENVS) !== null && _a !== void 0 ? _a : '').split(',').map(el => el.trim())) !== null && _b !== void 0 ? _b : [];
|
|
11
12
|
const LOG_ENVIRONMENTS = new Set([
|
|
12
13
|
'local',
|
|
13
14
|
'development',
|
|
@@ -17,17 +18,19 @@ const LOG_ENVIRONMENTS = new Set([
|
|
|
17
18
|
...extraLogEnvs,
|
|
18
19
|
]);
|
|
19
20
|
class Logger {
|
|
20
|
-
environment = process.env.NODE_ENV;
|
|
21
|
-
scopes = [];
|
|
22
|
-
customLogger;
|
|
23
21
|
constructor(opts) {
|
|
24
|
-
this.
|
|
22
|
+
this.environment = process.env.NODE_ENV;
|
|
23
|
+
this.scopes = [];
|
|
24
|
+
this.customLogger = opts === null || opts === void 0 ? void 0 : opts.customLogger;
|
|
25
25
|
}
|
|
26
|
+
// ---------------------------------------------------------------------
|
|
26
27
|
getLogger() {
|
|
27
|
-
|
|
28
|
+
var _a;
|
|
29
|
+
return (_a = this.customLogger) !== null && _a !== void 0 ? _a : default_logger_1.applicationLogger;
|
|
28
30
|
}
|
|
31
|
+
// ---------------------------------------------------------------------
|
|
29
32
|
_enhanceMessage(parts, message) {
|
|
30
|
-
const enhanced = parts
|
|
33
|
+
const enhanced = parts === null || parts === void 0 ? void 0 : parts.reduce((prevState = '', current) => {
|
|
31
34
|
if ((0, isEmpty_1.default)(prevState)) {
|
|
32
35
|
return current;
|
|
33
36
|
}
|
|
@@ -35,6 +38,7 @@ class Logger {
|
|
|
35
38
|
}, '');
|
|
36
39
|
return `[${enhanced}]${message}`;
|
|
37
40
|
}
|
|
41
|
+
// ---------------------------------------------------------------------
|
|
38
42
|
withScope(scope) {
|
|
39
43
|
if (this.scopes.length < 2) {
|
|
40
44
|
this.scopes.push(scope);
|
|
@@ -46,6 +50,7 @@ class Logger {
|
|
|
46
50
|
this.scopes[1] = scope;
|
|
47
51
|
return this;
|
|
48
52
|
}
|
|
53
|
+
// ---------------------------------------------------------------------
|
|
49
54
|
log(level, message, ...args) {
|
|
50
55
|
const logger = this.getLogger();
|
|
51
56
|
if (!logger) {
|
|
@@ -54,6 +59,7 @@ class Logger {
|
|
|
54
59
|
const enhanced = this._enhanceMessage(this.scopes, message);
|
|
55
60
|
logger.log(level, enhanced, ...args);
|
|
56
61
|
}
|
|
62
|
+
// ---------------------------------------------------------------------
|
|
57
63
|
debug(message, ...args) {
|
|
58
64
|
if (this.environment && !LOG_ENVIRONMENTS.has(this.environment)) {
|
|
59
65
|
return;
|
|
@@ -63,15 +69,19 @@ class Logger {
|
|
|
63
69
|
}
|
|
64
70
|
this.log('debug', message, ...args);
|
|
65
71
|
}
|
|
72
|
+
// ---------------------------------------------------------------------
|
|
66
73
|
info(message, ...args) {
|
|
67
74
|
this.log('info', message, ...args);
|
|
68
75
|
}
|
|
76
|
+
// ---------------------------------------------------------------------
|
|
69
77
|
warn(message, ...args) {
|
|
70
78
|
this.log('warn', message, ...args);
|
|
71
79
|
}
|
|
80
|
+
// ---------------------------------------------------------------------
|
|
72
81
|
error(message, ...args) {
|
|
73
82
|
this.log('error', message, ...args);
|
|
74
83
|
}
|
|
84
|
+
// ---------------------------------------------------------------------
|
|
75
85
|
emerg(message, ...args) {
|
|
76
86
|
this.log('emerg', message, ...args);
|
|
77
87
|
}
|
|
@@ -1,29 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var _a;
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.LogLevels = void 0;
|
|
4
5
|
class LogLevels {
|
|
5
|
-
static ERROR = 'error';
|
|
6
|
-
static ALERT = 'alert';
|
|
7
|
-
static EMERG = 'emerg';
|
|
8
|
-
static WARN = 'warn';
|
|
9
|
-
static INFO = 'info';
|
|
10
|
-
static HTTP = 'http';
|
|
11
|
-
static VERBOSE = 'verbose';
|
|
12
|
-
static DEBUG = 'debug';
|
|
13
|
-
static SILLY = 'silly';
|
|
14
|
-
static SCHEME_SET = new Set([
|
|
15
|
-
this.ERROR,
|
|
16
|
-
this.ALERT,
|
|
17
|
-
this.EMERG,
|
|
18
|
-
this.WARN,
|
|
19
|
-
this.INFO,
|
|
20
|
-
this.HTTP,
|
|
21
|
-
this.VERBOSE,
|
|
22
|
-
this.DEBUG,
|
|
23
|
-
this.SILLY,
|
|
24
|
-
]);
|
|
25
6
|
static isValid(input) {
|
|
26
7
|
return this.SCHEME_SET.has(input);
|
|
27
8
|
}
|
|
28
9
|
}
|
|
29
10
|
exports.LogLevels = LogLevels;
|
|
11
|
+
_a = LogLevels;
|
|
12
|
+
LogLevels.ERROR = 'error';
|
|
13
|
+
LogLevels.ALERT = 'alert';
|
|
14
|
+
LogLevels.EMERG = 'emerg';
|
|
15
|
+
LogLevels.WARN = 'warn';
|
|
16
|
+
LogLevels.INFO = 'info';
|
|
17
|
+
LogLevels.HTTP = 'http';
|
|
18
|
+
LogLevels.VERBOSE = 'verbose';
|
|
19
|
+
LogLevels.DEBUG = 'debug';
|
|
20
|
+
LogLevels.SILLY = 'silly';
|
|
21
|
+
LogLevels.SCHEME_SET = new Set([
|
|
22
|
+
_a.ERROR,
|
|
23
|
+
_a.ALERT,
|
|
24
|
+
_a.EMERG,
|
|
25
|
+
_a.WARN,
|
|
26
|
+
_a.INFO,
|
|
27
|
+
_a.HTTP,
|
|
28
|
+
_a.VERBOSE,
|
|
29
|
+
_a.DEBUG,
|
|
30
|
+
_a.SILLY,
|
|
31
|
+
]);
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
|
+
var _a, _b, _c;
|
|
5
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
7
|
exports.applicationLogger = exports.defineCustomLogger = exports.applicationLogFormatter = exports.defineCustomLoggerFormatter = void 0;
|
|
7
8
|
const common_1 = require("../../common");
|
|
@@ -10,16 +11,19 @@ const winston_1 = __importDefault(require("winston"));
|
|
|
10
11
|
require("winston-daily-rotate-file");
|
|
11
12
|
const transports_1 = require("./transports");
|
|
12
13
|
const utilities_1 = require("../../utilities");
|
|
13
|
-
const LOGGER_FOLDER_PATH = process.env.APP_ENV_LOGGER_FOLDER_PATH
|
|
14
|
+
const LOGGER_FOLDER_PATH = (_a = process.env.APP_ENV_LOGGER_FOLDER_PATH) !== null && _a !== void 0 ? _a : './';
|
|
14
15
|
const LOGGER_PREFIX = common_1.App.APPLICATION_NAME;
|
|
15
16
|
const f = winston_1.default.format;
|
|
17
|
+
// -------------------------------------------------------------------------------------------
|
|
16
18
|
const defineCustomLoggerFormatter = (opts) => {
|
|
17
19
|
return f.combine(f.simple(), f.label({ label: opts.label }), f.timestamp(), f.splat(), f.align(), f.colorize(), f.printf(({ level, message, label, timestamp }) => {
|
|
18
20
|
return `${timestamp} [${label}] ${level}: ${message}`;
|
|
19
21
|
}), f.errors({ stack: true }));
|
|
20
22
|
};
|
|
21
23
|
exports.defineCustomLoggerFormatter = defineCustomLoggerFormatter;
|
|
24
|
+
// -------------------------------------------------------------------------------------------
|
|
22
25
|
exports.applicationLogFormatter = (0, exports.defineCustomLoggerFormatter)({ label: LOGGER_PREFIX });
|
|
26
|
+
// -------------------------------------------------------------------------------------------
|
|
23
27
|
const defineCustomLogger = (opts) => {
|
|
24
28
|
const { logLevels = {
|
|
25
29
|
error: 0,
|
|
@@ -47,6 +51,7 @@ const defineCustomLogger = (opts) => {
|
|
|
47
51
|
general: [consoleLogTransport],
|
|
48
52
|
exception: [consoleLogTransport],
|
|
49
53
|
};
|
|
54
|
+
// File configure
|
|
50
55
|
if (infoTransportOptions.file) {
|
|
51
56
|
const transport = new winston_1.default.transports.DailyRotateFile({
|
|
52
57
|
frequency: '1h',
|
|
@@ -70,6 +75,7 @@ const defineCustomLogger = (opts) => {
|
|
|
70
75
|
transports.general.push(transport);
|
|
71
76
|
transports.exception.push(transport);
|
|
72
77
|
}
|
|
78
|
+
// Stream configure
|
|
73
79
|
if (infoTransportOptions.dgram) {
|
|
74
80
|
const transport = transports_1.DgramTransport.fromPartial(infoTransportOptions.dgram);
|
|
75
81
|
if (transport) {
|
|
@@ -82,7 +88,9 @@ const defineCustomLogger = (opts) => {
|
|
|
82
88
|
transports.exception.push(transport);
|
|
83
89
|
}
|
|
84
90
|
}
|
|
91
|
+
// Color configure
|
|
85
92
|
winston_1.default.addColors(logColors);
|
|
93
|
+
// Logger
|
|
86
94
|
return winston_1.default.createLogger({
|
|
87
95
|
levels: logLevels,
|
|
88
96
|
format: loggerFormatter,
|
|
@@ -92,14 +100,16 @@ const defineCustomLogger = (opts) => {
|
|
|
92
100
|
});
|
|
93
101
|
};
|
|
94
102
|
exports.defineCustomLogger = defineCustomLogger;
|
|
103
|
+
// -------------------------------------------------------------------------------------------
|
|
95
104
|
const fileOptions = { folder: LOGGER_FOLDER_PATH, prefix: LOGGER_PREFIX };
|
|
96
105
|
const dgramOptions = {
|
|
97
106
|
socketOptions: { type: 'udp4' },
|
|
98
107
|
host: process.env.APP_ENV_LOGGER_DGRAM_HOST,
|
|
99
108
|
port: (0, utilities_1.int)(process.env.APP_ENV_LOGGER_DGRAM_PORT),
|
|
100
109
|
label: process.env.APP_ENV_LOGGER_DGRAM_LABEL,
|
|
101
|
-
levels: process.env.APP_ENV_LOGGER_DGRAM_LEVELS
|
|
110
|
+
levels: (_c = (_b = process.env.APP_ENV_LOGGER_DGRAM_LEVELS) === null || _b === void 0 ? void 0 : _b.split(',').map(el => el.trim())) !== null && _c !== void 0 ? _c : [],
|
|
102
111
|
};
|
|
112
|
+
// -------------------------------------------------------------------------------------------
|
|
103
113
|
exports.applicationLogger = (0, exports.defineCustomLogger)({
|
|
104
114
|
transports: {
|
|
105
115
|
info: { file: fileOptions, dgram: dgramOptions },
|
|
@@ -4,7 +4,7 @@ exports.LoggerFactory = void 0;
|
|
|
4
4
|
const application_logger_1 = require("./application-logger");
|
|
5
5
|
class LoggerFactory {
|
|
6
6
|
static getLogger(scopes, customLogger) {
|
|
7
|
-
const logger = customLogger
|
|
7
|
+
const logger = customLogger !== null && customLogger !== void 0 ? customLogger : new application_logger_1.ApplicationLogger();
|
|
8
8
|
logger.withScope(scopes.join('-'));
|
|
9
9
|
return logger;
|
|
10
10
|
}
|
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
2
13
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
14
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
15
|
};
|
|
@@ -9,14 +20,8 @@ const utilities_1 = require("../../../utilities");
|
|
|
9
20
|
const node_dgram_1 = __importDefault(require("node:dgram"));
|
|
10
21
|
const winston_transport_1 = __importDefault(require("winston-transport"));
|
|
11
22
|
class DgramTransport extends winston_transport_1.default {
|
|
12
|
-
label;
|
|
13
|
-
host;
|
|
14
|
-
port;
|
|
15
|
-
triggerLevels;
|
|
16
|
-
socketOptions;
|
|
17
|
-
client;
|
|
18
23
|
constructor(opts) {
|
|
19
|
-
const { label, host, port, levels, socketOptions,
|
|
24
|
+
const { label, host, port, levels, socketOptions } = opts, defaultTransportOptions = __rest(opts, ["label", "host", "port", "levels", "socketOptions"]);
|
|
20
25
|
super(defaultTransportOptions);
|
|
21
26
|
this.label = label;
|
|
22
27
|
this.host = host;
|
|
@@ -26,11 +31,12 @@ class DgramTransport extends winston_transport_1.default {
|
|
|
26
31
|
this.establish({ socketOptions: this.socketOptions });
|
|
27
32
|
}
|
|
28
33
|
static fromPartial(opts) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
!opts
|
|
32
|
-
!opts
|
|
33
|
-
!opts
|
|
34
|
+
var _a;
|
|
35
|
+
if (!(opts === null || opts === void 0 ? void 0 : opts.label) ||
|
|
36
|
+
!(opts === null || opts === void 0 ? void 0 : opts.host) ||
|
|
37
|
+
!(opts === null || opts === void 0 ? void 0 : opts.port) ||
|
|
38
|
+
!((_a = opts === null || opts === void 0 ? void 0 : opts.levels) === null || _a === void 0 ? void 0 : _a.length) ||
|
|
39
|
+
!(opts === null || opts === void 0 ? void 0 : opts.socketOptions)) {
|
|
34
40
|
return null;
|
|
35
41
|
}
|
|
36
42
|
return new DgramTransport(opts);
|
|
@@ -38,7 +44,8 @@ class DgramTransport extends winston_transport_1.default {
|
|
|
38
44
|
establish(opts) {
|
|
39
45
|
this.client = node_dgram_1.default.createSocket(opts.socketOptions);
|
|
40
46
|
this.client.on('error', error => {
|
|
41
|
-
|
|
47
|
+
var _a;
|
|
48
|
+
(_a = this.client) === null || _a === void 0 ? void 0 : _a.close();
|
|
42
49
|
this.client = null;
|
|
43
50
|
throw (0, utilities_1.getError)({
|
|
44
51
|
statusCode: common_1.ResultCodes.RS_5.InternalServerError,
|
|
@@ -47,10 +54,12 @@ class DgramTransport extends winston_transport_1.default {
|
|
|
47
54
|
});
|
|
48
55
|
}
|
|
49
56
|
formatMessage(opts) {
|
|
50
|
-
|
|
51
|
-
|
|
57
|
+
var _a;
|
|
58
|
+
const { timestamp, label, message } = opts, rest = __rest(opts, ["timestamp", "label", "message"]);
|
|
59
|
+
return [timestamp, `[${(_a = this.label) !== null && _a !== void 0 ? _a : label}]`, rest[Symbol.for('level')], message].join(' ');
|
|
52
60
|
}
|
|
53
61
|
log(opts, callback) {
|
|
62
|
+
var _a;
|
|
54
63
|
setImmediate(() => {
|
|
55
64
|
this.emit('logged', opts);
|
|
56
65
|
});
|
|
@@ -63,7 +72,7 @@ class DgramTransport extends winston_transport_1.default {
|
|
|
63
72
|
this.establish({ socketOptions: this.socketOptions });
|
|
64
73
|
}
|
|
65
74
|
const message = this.formatMessage(opts);
|
|
66
|
-
this.client
|
|
75
|
+
(_a = this.client) === null || _a === void 0 ? void 0 : _a.send(message, this.port, this.host, error => {
|
|
67
76
|
if (error) {
|
|
68
77
|
this.emit('error', error);
|
|
69
78
|
}
|
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
2
13
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
14
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
15
|
};
|
|
@@ -9,9 +20,8 @@ const utilities_1 = require("../../../utilities");
|
|
|
9
20
|
const isEmpty_1 = __importDefault(require("lodash/isEmpty"));
|
|
10
21
|
const axios_fetcher_1 = require("./fetcher/axios-fetcher");
|
|
11
22
|
const node_fetcher_1 = require("./fetcher/node-fetcher");
|
|
23
|
+
// -----------------------------------------------------------------------------
|
|
12
24
|
class BaseNetworkRequest extends base_helper_1.BaseHelper {
|
|
13
|
-
baseUrl;
|
|
14
|
-
fetcher;
|
|
15
25
|
constructor(opts) {
|
|
16
26
|
super({ scope: opts.name, identifier: opts.name });
|
|
17
27
|
const { networkOptions } = opts;
|
|
@@ -20,11 +30,12 @@ class BaseNetworkRequest extends base_helper_1.BaseHelper {
|
|
|
20
30
|
this.fetcher = opts.fetcher;
|
|
21
31
|
}
|
|
22
32
|
getRequestPath(opts) {
|
|
23
|
-
|
|
33
|
+
var _a;
|
|
34
|
+
const paths = (_a = opts === null || opts === void 0 ? void 0 : opts.paths) !== null && _a !== void 0 ? _a : [];
|
|
24
35
|
const rs = paths
|
|
25
36
|
.map((path) => {
|
|
26
37
|
if (!path.startsWith('/')) {
|
|
27
|
-
path = `/${path}`;
|
|
38
|
+
path = `/${path}`; // Add / to the start of url path
|
|
28
39
|
}
|
|
29
40
|
return path;
|
|
30
41
|
})
|
|
@@ -32,8 +43,9 @@ class BaseNetworkRequest extends base_helper_1.BaseHelper {
|
|
|
32
43
|
return rs;
|
|
33
44
|
}
|
|
34
45
|
getRequestUrl(opts) {
|
|
35
|
-
|
|
36
|
-
|
|
46
|
+
var _a, _b, _c;
|
|
47
|
+
let baseUrl = (_b = (_a = opts === null || opts === void 0 ? void 0 : opts.baseUrl) !== null && _a !== void 0 ? _a : this.baseUrl) !== null && _b !== void 0 ? _b : '';
|
|
48
|
+
const paths = (_c = opts === null || opts === void 0 ? void 0 : opts.paths) !== null && _c !== void 0 ? _c : [];
|
|
37
49
|
if (!baseUrl || (0, isEmpty_1.default)(baseUrl)) {
|
|
38
50
|
throw (0, utilities_1.getError)({
|
|
39
51
|
statusCode: 500,
|
|
@@ -41,10 +53,10 @@ class BaseNetworkRequest extends base_helper_1.BaseHelper {
|
|
|
41
53
|
});
|
|
42
54
|
}
|
|
43
55
|
if (baseUrl.endsWith('/')) {
|
|
44
|
-
baseUrl = baseUrl.slice(0, -1);
|
|
56
|
+
baseUrl = baseUrl.slice(0, -1); // Remove / at the end
|
|
45
57
|
}
|
|
46
58
|
const joined = this.getRequestPath({ paths });
|
|
47
|
-
return `${baseUrl
|
|
59
|
+
return `${baseUrl !== null && baseUrl !== void 0 ? baseUrl : this.baseUrl}${joined}`;
|
|
48
60
|
}
|
|
49
61
|
getNetworkService() {
|
|
50
62
|
return this.fetcher;
|
|
@@ -54,43 +66,29 @@ class BaseNetworkRequest extends base_helper_1.BaseHelper {
|
|
|
54
66
|
}
|
|
55
67
|
}
|
|
56
68
|
exports.BaseNetworkRequest = BaseNetworkRequest;
|
|
69
|
+
// -----------------------------------------------------------------------------
|
|
57
70
|
class AxiosNetworkRequest extends BaseNetworkRequest {
|
|
58
71
|
constructor(opts) {
|
|
72
|
+
var _a;
|
|
59
73
|
const { name, networkOptions } = opts;
|
|
60
|
-
const { headers = {}, baseUrl, timeout = 60 * 1000,
|
|
61
|
-
const defaultConfigs = {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
headers: Object.assign({}, headers, {
|
|
66
|
-
['content-type']: headers['content-type'] ?? 'application/json; charset=utf-8',
|
|
67
|
-
}),
|
|
68
|
-
validateStatus: (status) => status < 500,
|
|
69
|
-
timeout,
|
|
70
|
-
};
|
|
71
|
-
super({
|
|
72
|
-
...opts,
|
|
73
|
-
variant: 'axios',
|
|
74
|
-
fetcher: new axios_fetcher_1.AxiosFetcher({ name, defaultConfigs }),
|
|
75
|
-
});
|
|
74
|
+
const { headers = {}, baseUrl, timeout = 60 * 1000 } = networkOptions, rest = __rest(networkOptions, ["headers", "baseUrl", "timeout"]);
|
|
75
|
+
const defaultConfigs = Object.assign(Object.assign({}, rest), { baseURL: baseUrl, withCredentials: true, headers: Object.assign({}, headers, {
|
|
76
|
+
['content-type']: (_a = headers['content-type']) !== null && _a !== void 0 ? _a : 'application/json; charset=utf-8',
|
|
77
|
+
}), validateStatus: (status) => status < 500, timeout });
|
|
78
|
+
super(Object.assign(Object.assign({}, opts), { variant: 'axios', fetcher: new axios_fetcher_1.AxiosFetcher({ name, defaultConfigs }) }));
|
|
76
79
|
}
|
|
77
80
|
}
|
|
78
81
|
exports.AxiosNetworkRequest = AxiosNetworkRequest;
|
|
82
|
+
// -----------------------------------------------------------------------------
|
|
79
83
|
class NodeFetchNetworkRequest extends BaseNetworkRequest {
|
|
80
84
|
constructor(opts) {
|
|
85
|
+
var _a;
|
|
81
86
|
const { name, networkOptions } = opts;
|
|
82
|
-
const { headers = {},
|
|
83
|
-
const defaultConfigs = {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
}),
|
|
88
|
-
};
|
|
89
|
-
super({
|
|
90
|
-
...opts,
|
|
91
|
-
variant: 'node-fetch',
|
|
92
|
-
fetcher: new node_fetcher_1.NodeFetcher({ name, defaultConfigs }),
|
|
93
|
-
});
|
|
87
|
+
const { headers = {} } = networkOptions, rest = __rest(networkOptions, ["headers"]);
|
|
88
|
+
const defaultConfigs = Object.assign(Object.assign({}, rest), { headers: Object.assign({}, headers, {
|
|
89
|
+
['content-type']: (_a = headers['content-type']) !== null && _a !== void 0 ? _a : 'application/json; charset=utf-8',
|
|
90
|
+
}) });
|
|
91
|
+
super(Object.assign(Object.assign({}, opts), { variant: 'node-fetch', fetcher: new node_fetcher_1.NodeFetcher({ name, defaultConfigs }) }));
|
|
94
92
|
}
|
|
95
93
|
}
|
|
96
94
|
exports.NodeFetchNetworkRequest = NodeFetchNetworkRequest;
|
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
2
13
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
14
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
15
|
};
|
|
@@ -8,31 +19,32 @@ const url_utility_1 = require("../../../../utilities/url.utility");
|
|
|
8
19
|
const axios_1 = __importDefault(require("axios"));
|
|
9
20
|
const node_https_1 = __importDefault(require("node:https"));
|
|
10
21
|
const base_fetcher_1 = require("./base-fetcher");
|
|
22
|
+
// -------------------------------------------------------------
|
|
11
23
|
class AxiosFetcher extends base_fetcher_1.AbstractNetworkFetchableHelper {
|
|
12
24
|
constructor(opts) {
|
|
25
|
+
var _a;
|
|
13
26
|
super({ name: opts.name, variant: 'axios' });
|
|
14
27
|
const { defaultConfigs } = opts;
|
|
15
|
-
opts
|
|
16
|
-
this.worker = axios_1.default.create({
|
|
28
|
+
(_a = opts === null || opts === void 0 ? void 0 : opts.logger) === null || _a === void 0 ? void 0 : _a.info('Creating new network request worker instance! Name: %s', this.name);
|
|
29
|
+
this.worker = axios_1.default.create(Object.assign({}, defaultConfigs));
|
|
17
30
|
}
|
|
31
|
+
// -------------------------------------------------------------
|
|
32
|
+
// SEND REQUEST
|
|
33
|
+
// -------------------------------------------------------------
|
|
18
34
|
send(opts, logger) {
|
|
19
|
-
const { url, method = 'get', params = {}, body: data, headers,
|
|
20
|
-
const props = {
|
|
21
|
-
url,
|
|
35
|
+
const { url, method = 'get', params = {}, body: data, headers } = opts, rest = __rest(opts, ["url", "method", "params", "body", "headers"]);
|
|
36
|
+
const props = Object.assign({ url,
|
|
22
37
|
method,
|
|
23
38
|
params,
|
|
24
39
|
data,
|
|
25
|
-
headers,
|
|
26
|
-
paramsSerializer: { serialize: p => (0, url_utility_1.stringify)(p) },
|
|
27
|
-
...rest,
|
|
28
|
-
};
|
|
40
|
+
headers, paramsSerializer: { serialize: p => (0, url_utility_1.stringify)(p) } }, rest);
|
|
29
41
|
const protocol = this.getProtocol(url);
|
|
30
42
|
if (protocol === 'https') {
|
|
31
43
|
props.httpsAgent = new node_https_1.default.Agent({
|
|
32
44
|
rejectUnauthorized: false,
|
|
33
45
|
});
|
|
34
46
|
}
|
|
35
|
-
logger
|
|
47
|
+
logger === null || logger === void 0 ? void 0 : logger.info('[send] URL: %s | Props: %o', url, props);
|
|
36
48
|
return this.worker.request(props);
|
|
37
49
|
}
|
|
38
50
|
}
|
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
2
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
14
|
exports.AbstractNetworkFetchableHelper = void 0;
|
|
4
15
|
const HTTP = 'http';
|
|
5
16
|
const HTTPS = 'https';
|
|
6
17
|
class AbstractNetworkFetchableHelper {
|
|
7
|
-
name;
|
|
8
|
-
variant;
|
|
9
|
-
worker;
|
|
10
18
|
constructor(opts) {
|
|
11
19
|
this.name = opts.name;
|
|
12
20
|
this.variant = opts.variant;
|
|
@@ -17,25 +25,40 @@ class AbstractNetworkFetchableHelper {
|
|
|
17
25
|
getWorker() {
|
|
18
26
|
return this.worker;
|
|
19
27
|
}
|
|
28
|
+
// -------------------------------------------------------------
|
|
29
|
+
// GET REQUEST
|
|
30
|
+
// -------------------------------------------------------------
|
|
20
31
|
get(opts, logger) {
|
|
21
|
-
const
|
|
22
|
-
return this.send({
|
|
32
|
+
const rest = __rest(opts, []);
|
|
33
|
+
return this.send(Object.assign(Object.assign({}, rest), { method: 'get' }), logger);
|
|
23
34
|
}
|
|
35
|
+
// -------------------------------------------------------------
|
|
36
|
+
// POST REQUEST
|
|
37
|
+
// -------------------------------------------------------------
|
|
24
38
|
post(opts, logger) {
|
|
25
|
-
const
|
|
26
|
-
return this.send({
|
|
39
|
+
const rest = __rest(opts, []);
|
|
40
|
+
return this.send(Object.assign(Object.assign({}, rest), { method: 'post' }), logger);
|
|
27
41
|
}
|
|
42
|
+
// -------------------------------------------------------------
|
|
43
|
+
// PUT REQUEST
|
|
44
|
+
// -------------------------------------------------------------
|
|
28
45
|
put(opts, logger) {
|
|
29
|
-
const
|
|
30
|
-
return this.send({
|
|
46
|
+
const rest = __rest(opts, []);
|
|
47
|
+
return this.send(Object.assign(Object.assign({}, rest), { method: 'put' }), logger);
|
|
31
48
|
}
|
|
49
|
+
// -------------------------------------------------------------
|
|
50
|
+
// PATCH REQUEST
|
|
51
|
+
// -------------------------------------------------------------
|
|
32
52
|
patch(opts, logger) {
|
|
33
|
-
const
|
|
34
|
-
return this.send({
|
|
53
|
+
const rest = __rest(opts, []);
|
|
54
|
+
return this.send(Object.assign(Object.assign({}, rest), { method: 'patch' }), logger);
|
|
35
55
|
}
|
|
56
|
+
// -------------------------------------------------------------
|
|
57
|
+
// DELETE REQUEST
|
|
58
|
+
// -------------------------------------------------------------
|
|
36
59
|
delete(opts, logger) {
|
|
37
|
-
const
|
|
38
|
-
return this.send({
|
|
60
|
+
const rest = __rest(opts, []);
|
|
61
|
+
return this.send(Object.assign(Object.assign({}, rest), { method: 'delete' }), logger);
|
|
39
62
|
}
|
|
40
63
|
}
|
|
41
64
|
exports.AbstractNetworkFetchableHelper = AbstractNetworkFetchableHelper;
|