@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.
Files changed (175) hide show
  1. package/dist/base/applications/base.application.js +40 -28
  2. package/dist/base/applications/default.application.js +8 -2
  3. package/dist/base/base.component.js +2 -2
  4. package/dist/base/base.helper.js +3 -4
  5. package/dist/base/base.provider.js +2 -2
  6. package/dist/base/base.sequence.js +26 -17
  7. package/dist/base/controllers/common.js +9 -8
  8. package/dist/base/controllers/crud.controller.js +67 -55
  9. package/dist/base/controllers/express-request-handler.js +0 -2
  10. package/dist/base/controllers/kv.controller.js +18 -7
  11. package/dist/base/controllers/relational.controller.d.ts +3 -1
  12. package/dist/base/controllers/relational.controller.js +57 -40
  13. package/dist/base/controllers/service-crud.controller.js +46 -46
  14. package/dist/base/datasources/base.datasource.js +0 -1
  15. package/dist/base/loopback/@lb/core/index.js +1 -0
  16. package/dist/base/loopback/@lb/repository/index.js +1 -0
  17. package/dist/base/loopback/authentication/index.js +2 -0
  18. package/dist/base/loopback/filter/index.js +2 -0
  19. package/dist/base/loopback/http-server/index.js +2 -0
  20. package/dist/base/models/base.model.d.ts +7 -0
  21. package/dist/base/models/base.model.js +23 -5
  22. package/dist/base/repositories/base.repository.d.ts +3 -0
  23. package/dist/base/repositories/base.repository.js +24 -5
  24. package/dist/base/repositories/relations/has-many-polymorphic/decorator.d.ts +8 -0
  25. package/dist/base/repositories/relations/has-many-polymorphic/decorator.js +10 -11
  26. package/dist/base/repositories/relations/has-many-polymorphic/factory.d.ts +9 -0
  27. package/dist/base/repositories/relations/has-many-polymorphic/factory.js +30 -12
  28. package/dist/base/repositories/searchable-tz-crud.repository.js +160 -129
  29. package/dist/base/repositories/tz-crud.repository.js +58 -23
  30. package/dist/base/services/base-crud.service.js +9 -6
  31. package/dist/base/services/base.service.js +2 -2
  32. package/dist/common/constants.js +89 -81
  33. package/dist/common/environments.js +25 -25
  34. package/dist/common/keys.js +2 -2
  35. package/dist/common/statuses.js +31 -28
  36. package/dist/common/types.d.ts +3 -0
  37. package/dist/components/authenticate/common/constants.js +13 -11
  38. package/dist/components/authenticate/common/keys.js +7 -7
  39. package/dist/components/authenticate/common/types.js +3 -11
  40. package/dist/components/authenticate/component.js +28 -20
  41. package/dist/components/authenticate/controllers/auth.controller.js +11 -13
  42. package/dist/components/authenticate/controllers/oauth2.controller.js +20 -18
  43. package/dist/components/authenticate/middleware.js +35 -25
  44. package/dist/components/authenticate/models/oauth2-client.model.js +3 -8
  45. package/dist/components/authenticate/models/oauth2-scope.model.js +0 -4
  46. package/dist/components/authenticate/models/oauth2-token.model.js +0 -7
  47. package/dist/components/authenticate/oauth2-handlers/authorization-code.handler.js +5 -4
  48. package/dist/components/authenticate/oauth2-handlers/base.js +110 -95
  49. package/dist/components/authenticate/oauth2-handlers/client-credential.handler.js +3 -2
  50. package/dist/components/authenticate/oauth2-handlers/oauth2.js +2 -3
  51. package/dist/components/authenticate/repositories/oauth2.repository.js +0 -2
  52. package/dist/components/authenticate/services/basic-token.service.js +29 -18
  53. package/dist/components/authenticate/services/basic.strategy.js +17 -7
  54. package/dist/components/authenticate/services/jwt-token.service.js +40 -27
  55. package/dist/components/authenticate/services/jwt.strategy.js +1 -2
  56. package/dist/components/authenticate/services/oauth2.service.js +110 -98
  57. package/dist/components/authenticate/services/oauth2.strategy.js +31 -19
  58. package/dist/components/authorize/adapters/adapter-builder.js +0 -1
  59. package/dist/components/authorize/adapters/base.adapter.js +9 -2
  60. package/dist/components/authorize/adapters/casbin-postgres-adapter.helper.js +55 -37
  61. package/dist/components/authorize/adapters/casbin-redis-adapter.helper.js +1 -0
  62. package/dist/components/authorize/common/constants.js +12 -10
  63. package/dist/components/authorize/common/keys.js +15 -15
  64. package/dist/components/authorize/common/types.js +2 -2
  65. package/dist/components/authorize/component.js +59 -44
  66. package/dist/components/authorize/decorators/index.d.ts +11 -0
  67. package/dist/components/authorize/decorators/index.js +14 -1
  68. package/dist/components/authorize/interceptor.js +80 -76
  69. package/dist/components/authorize/migrations/0000-create-view-policy.js +14 -3
  70. package/dist/components/authorize/models/defs.js +5 -24
  71. package/dist/components/authorize/models/role.model.js +1 -1
  72. package/dist/components/authorize/models/user-role.model.js +1 -0
  73. package/dist/components/authorize/models/view-authorize-policy.model.js +1 -4
  74. package/dist/components/authorize/provider.js +96 -81
  75. package/dist/components/authorize/repositories/authorize.repository.js +6 -3
  76. package/dist/components/authorize/services/enforcer.service.js +27 -20
  77. package/dist/components/authorize/services/generator.service.d.ts +20 -0
  78. package/dist/components/authorize/services/generator.service.js +96 -62
  79. package/dist/components/crash-report/common/keys.js +10 -8
  80. package/dist/components/crash-report/component.js +44 -31
  81. package/dist/components/crash-report/providers/provider.js +0 -1
  82. package/dist/components/crash-report/providers/third-parties/base.js +2 -2
  83. package/dist/components/crash-report/services/mt-crash-report.service.js +5 -5
  84. package/dist/components/grpc/common/keys.js +4 -4
  85. package/dist/components/grpc/components/server.component.js +8 -8
  86. package/dist/components/grpc/controllers/base.js +0 -1
  87. package/dist/components/grpc/helpers/grpc-client.js +3 -9
  88. package/dist/components/grpc/helpers/grpc-server.js +17 -14
  89. package/dist/components/grpc/persistents/grpc.connector.js +2 -8
  90. package/dist/components/grpc/persistents/grpc.datasource.js +3 -2
  91. package/dist/components/grpc/persistents/grpc.repository.js +2 -3
  92. package/dist/components/health-check/component.js +0 -1
  93. package/dist/components/migration/common/keys.js +3 -3
  94. package/dist/components/migration/component.js +8 -5
  95. package/dist/components/migration/models/migration.model.js +0 -2
  96. package/dist/components/socket-io/common/constants.js +10 -10
  97. package/dist/components/socket-io/common/keys.js +6 -6
  98. package/dist/components/socket-io/component.js +8 -9
  99. package/dist/components/socket-io/helpers/socket-io-client.helper.js +11 -7
  100. package/dist/components/socket-io/helpers/socket-io-server.helper.js +41 -26
  101. package/dist/components/static-asset/common/keys.js +4 -4
  102. package/dist/components/static-asset/component.js +8 -9
  103. package/dist/components/static-asset/controllers/asset.controller.d.ts +8 -0
  104. package/dist/components/static-asset/controllers/asset.controller.js +93 -71
  105. package/dist/components/static-asset/controllers/resource.controller.js +9 -8
  106. package/dist/datasources/memory/datasource.js +3 -3
  107. package/dist/datasources/postgres/datasource.js +10 -10
  108. package/dist/datasources/redis/connector.js +7 -18
  109. package/dist/datasources/redis/datasource.js +7 -7
  110. package/dist/helpers/application-environment.helper.js +3 -3
  111. package/dist/helpers/cron.helper.js +14 -9
  112. package/dist/helpers/crypto/algorithms/aes.algorithm.js +7 -8
  113. package/dist/helpers/crypto/algorithms/base.algorithm.js +4 -3
  114. package/dist/helpers/crypto/algorithms/rsa.algorithm.js +5 -4
  115. package/dist/helpers/database/query-builder.helper.js +5 -2
  116. package/dist/helpers/logger/application-logger.js +17 -7
  117. package/dist/helpers/logger/common/types.js +22 -20
  118. package/dist/helpers/logger/default-logger.js +12 -2
  119. package/dist/helpers/logger/factory.js +1 -1
  120. package/dist/helpers/logger/transports/dgram.transport.js +25 -16
  121. package/dist/helpers/network/http-request/base-network-request.helper.js +34 -36
  122. package/dist/helpers/network/http-request/fetcher/axios-fetcher.js +22 -10
  123. package/dist/helpers/network/http-request/fetcher/base-fetcher.js +36 -13
  124. package/dist/helpers/network/http-request/fetcher/node-fetcher.js +59 -37
  125. package/dist/helpers/network/tcp-socket/base-tcp-client.helper.js +27 -30
  126. package/dist/helpers/network/tcp-socket/base-tcp-server.helper.js +19 -21
  127. package/dist/helpers/network/tcp-socket/network-tcp-client.helper.js +1 -5
  128. package/dist/helpers/network/tcp-socket/network-tcp-server.helper.js +1 -5
  129. package/dist/helpers/network/tcp-socket/network-tls-tcp-client.helper.js +1 -5
  130. package/dist/helpers/network/tcp-socket/network-tls-tcp-server.helper.js +1 -5
  131. package/dist/helpers/network/udp-socket/network-udp-client.helper.js +18 -21
  132. package/dist/helpers/queue/bullmq.helper.js +22 -21
  133. package/dist/helpers/queue/mqtt.helper.js +17 -15
  134. package/dist/helpers/queue/queue.helper.js +145 -74
  135. package/dist/helpers/redis/default.helper.js +162 -117
  136. package/dist/helpers/redis/redis-cluster.helper.js +2 -7
  137. package/dist/helpers/redis/redis.helper.js +5 -8
  138. package/dist/helpers/storage/di-container.helper.js +0 -2
  139. package/dist/helpers/storage/minio.helper.js +128 -88
  140. package/dist/helpers/testing/common.js +3 -3
  141. package/dist/helpers/testing/describe.js +21 -14
  142. package/dist/helpers/testing/test-case.js +0 -5
  143. package/dist/helpers/testing/test-handler.js +30 -23
  144. package/dist/helpers/testing/test-plan/base.js +6 -9
  145. package/dist/helpers/worker-thread/base.js +20 -10
  146. package/dist/helpers/worker-thread/worker-bus.js +12 -11
  147. package/dist/helpers/worker-thread/worker-pool.js +25 -17
  148. package/dist/interceptors/content-range.interceptor.js +132 -115
  149. package/dist/middlewares/request-body-parser.middleware.js +16 -4
  150. package/dist/middlewares/request-spy.middleware.js +5 -4
  151. package/dist/migrations/handler.js +22 -13
  152. package/dist/mixins/data-type.mixin.js +0 -5
  153. package/dist/mixins/deprecated/user-audit.mixin.d.ts +3 -0
  154. package/dist/mixins/deprecated/user-audit.mixin.js +5 -2
  155. package/dist/mixins/duplicatable.mixin.js +0 -1
  156. package/dist/mixins/object-search.mixin.js +0 -1
  157. package/dist/mixins/principal.mixin.js +0 -2
  158. package/dist/mixins/soft-delete.mixin.js +0 -1
  159. package/dist/mixins/soft-persistent.mixin.js +0 -1
  160. package/dist/mixins/text-search.mixin.js +0 -1
  161. package/dist/mixins/tz.mixin.js +0 -2
  162. package/dist/mixins/user-audit.mixin.js +3 -5
  163. package/dist/mixins/vector.mixin.js +6 -9
  164. package/dist/tsconfig.base.json +6 -5
  165. package/dist/utilities/date.utility.js +23 -5
  166. package/dist/utilities/error.utility.js +0 -2
  167. package/dist/utilities/model.utility.js +6 -2
  168. package/dist/utilities/parse.utility.d.ts +16 -0
  169. package/dist/utilities/parse.utility.js +41 -6
  170. package/dist/utilities/performance.utility.js +2 -1
  171. package/dist/utilities/promise.utility.d.ts +17 -0
  172. package/dist/utilities/promise.utility.js +31 -5
  173. package/dist/utilities/query.utility.js +16 -8
  174. package/dist/utilities/request.utility.js +8 -2
  175. 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 ?? '').split(',').map(el => el.trim()) ?? [];
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.customLogger = opts?.customLogger;
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
- return this.customLogger ?? default_logger_1.applicationLogger;
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?.reduce((prevState = '', current) => {
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?.split(',').map(el => el.trim()) ?? [],
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 ?? new application_logger_1.ApplicationLogger();
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, ...defaultTransportOptions } = opts;
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
- if (!opts?.label ||
30
- !opts?.host ||
31
- !opts?.port ||
32
- !opts?.levels?.length ||
33
- !opts?.socketOptions) {
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
- this.client?.close();
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
- const { timestamp, label, message, ...rest } = opts;
51
- return [timestamp, `[${this.label ?? label}]`, rest[Symbol.for('level')], message].join(' ');
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?.send(message, this.port, this.host, error => {
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
- const paths = opts?.paths ?? [];
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
- let baseUrl = opts?.baseUrl ?? this.baseUrl ?? '';
36
- const paths = opts?.paths ?? [];
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 ?? this.baseUrl}${joined}`;
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, ...rest } = networkOptions;
61
- const defaultConfigs = {
62
- ...rest,
63
- baseURL: baseUrl,
64
- withCredentials: true,
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 = {}, ...rest } = networkOptions;
83
- const defaultConfigs = {
84
- ...rest,
85
- headers: Object.assign({}, headers, {
86
- ['content-type']: headers['content-type'] ?? 'application/json; charset=utf-8',
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?.logger?.info('Creating new network request worker instance! Name: %s', this.name);
16
- this.worker = axios_1.default.create({ ...defaultConfigs });
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, ...rest } = opts;
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?.info('[send] URL: %s | Props: %o', url, props);
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 { ...rest } = opts;
22
- return this.send({ ...rest, method: 'get' }, logger);
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 { ...rest } = opts;
26
- return this.send({ ...rest, method: 'post' }, logger);
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 { ...rest } = opts;
30
- return this.send({ ...rest, method: 'put' }, logger);
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 { ...rest } = opts;
34
- return this.send({ ...rest, method: 'patch' }, logger);
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 { ...rest } = opts;
38
- return this.send({ ...rest, method: 'delete' }, logger);
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;