@navios/core 0.6.0 → 0.7.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.
Files changed (273) hide show
  1. package/CHANGELOG.md +93 -0
  2. package/README.md +18 -1
  3. package/docs/README.md +1 -0
  4. package/docs/legacy-compat.md +320 -0
  5. package/docs/testing.md +140 -17
  6. package/lib/index-BFwNx9WQ.d.cts +1951 -0
  7. package/lib/index-BFwNx9WQ.d.cts.map +1 -0
  8. package/lib/index-D657ijFO.d.mts +1951 -0
  9. package/lib/index-D657ijFO.d.mts.map +1 -0
  10. package/lib/index.cjs +157 -0
  11. package/lib/index.d.cts +3 -0
  12. package/lib/index.d.mts +3 -190
  13. package/lib/index.mjs +4 -1459
  14. package/lib/legacy-compat/index.cjs +315 -0
  15. package/lib/legacy-compat/index.cjs.map +1 -0
  16. package/lib/legacy-compat/index.d.cts +219 -0
  17. package/lib/legacy-compat/index.d.cts.map +1 -0
  18. package/lib/legacy-compat/index.d.mts +219 -0
  19. package/lib/legacy-compat/index.d.mts.map +1 -0
  20. package/lib/legacy-compat/index.mjs +308 -0
  21. package/lib/legacy-compat/index.mjs.map +1 -0
  22. package/lib/src-Cb1aTjl0.cjs +5710 -0
  23. package/lib/src-Cb1aTjl0.cjs.map +1 -0
  24. package/lib/src-DzPY5s6d.mjs +5353 -0
  25. package/lib/src-DzPY5s6d.mjs.map +1 -0
  26. package/lib/testing/index.cjs +106 -0
  27. package/lib/testing/index.cjs.map +1 -0
  28. package/lib/testing/index.d.cts +156 -0
  29. package/lib/testing/index.d.cts.map +1 -0
  30. package/lib/testing/index.d.mts +156 -0
  31. package/lib/testing/index.d.mts.map +1 -0
  32. package/lib/testing/index.mjs +100 -0
  33. package/lib/testing/index.mjs.map +1 -0
  34. package/lib/use-guards.decorator-DdvUhB03.cjs +622 -0
  35. package/lib/use-guards.decorator-DdvUhB03.cjs.map +1 -0
  36. package/lib/use-guards.decorator-kZ3lNK8v.mjs +454 -0
  37. package/lib/use-guards.decorator-kZ3lNK8v.mjs.map +1 -0
  38. package/package.json +24 -4
  39. package/project.json +2 -2
  40. package/src/attribute.factory.d.mts +175 -0
  41. package/src/attribute.factory.d.mts.map +1 -0
  42. package/src/attribute.factory.mts +154 -0
  43. package/src/config/config-service.interface.d.mts +39 -0
  44. package/src/config/config-service.interface.d.mts.map +1 -0
  45. package/src/config/config-service.interface.mts +31 -0
  46. package/src/config/config.provider.d.mts +46 -0
  47. package/src/config/config.provider.d.mts.map +1 -0
  48. package/src/config/config.provider.mts +36 -0
  49. package/src/config/config.service.d.mts +108 -0
  50. package/src/config/config.service.d.mts.map +1 -0
  51. package/src/config/config.service.mts +94 -4
  52. package/src/config/index.d.mts +6 -0
  53. package/src/config/index.d.mts.map +1 -0
  54. package/src/config/types.d.mts +13 -0
  55. package/src/config/types.d.mts.map +1 -0
  56. package/src/config/utils/helpers.d.mts +3 -0
  57. package/src/config/utils/helpers.d.mts.map +1 -0
  58. package/src/config/utils/index.d.mts +2 -0
  59. package/src/config/utils/index.d.mts.map +1 -0
  60. package/src/decorators/controller.decorator.d.mts +33 -0
  61. package/src/decorators/controller.decorator.d.mts.map +1 -0
  62. package/src/decorators/controller.decorator.mts +28 -0
  63. package/src/decorators/endpoint.decorator.d.mts +89 -0
  64. package/src/decorators/endpoint.decorator.d.mts.map +1 -0
  65. package/src/decorators/endpoint.decorator.mts +76 -0
  66. package/src/decorators/header.decorator.d.mts +22 -0
  67. package/src/decorators/header.decorator.d.mts.map +1 -0
  68. package/src/decorators/header.decorator.mts +19 -0
  69. package/src/decorators/http-code.decorator.d.mts +22 -0
  70. package/src/decorators/http-code.decorator.d.mts.map +1 -0
  71. package/src/decorators/http-code.decorator.mts +20 -0
  72. package/src/decorators/index.d.mts +9 -0
  73. package/src/decorators/index.d.mts.map +1 -0
  74. package/src/decorators/module.decorator.d.mts +42 -0
  75. package/src/decorators/module.decorator.d.mts.map +1 -0
  76. package/src/decorators/module.decorator.mts +34 -0
  77. package/src/decorators/multipart.decorator.d.mts +54 -0
  78. package/src/decorators/multipart.decorator.d.mts.map +1 -0
  79. package/src/decorators/multipart.decorator.mts +41 -0
  80. package/src/decorators/stream.decorator.d.mts +42 -0
  81. package/src/decorators/stream.decorator.d.mts.map +1 -0
  82. package/src/decorators/stream.decorator.mts +33 -0
  83. package/src/decorators/use-guards.decorator.d.mts +33 -0
  84. package/src/decorators/use-guards.decorator.d.mts.map +1 -0
  85. package/src/decorators/use-guards.decorator.mts +29 -0
  86. package/src/exceptions/bad-request.exception.d.mts +26 -0
  87. package/src/exceptions/bad-request.exception.d.mts.map +1 -0
  88. package/src/exceptions/bad-request.exception.mts +21 -0
  89. package/src/exceptions/conflict.exception.d.mts +29 -0
  90. package/src/exceptions/conflict.exception.d.mts.map +1 -0
  91. package/src/exceptions/conflict.exception.mts +24 -0
  92. package/src/exceptions/forbidden.exception.d.mts +28 -0
  93. package/src/exceptions/forbidden.exception.d.mts.map +1 -0
  94. package/src/exceptions/forbidden.exception.mts +23 -0
  95. package/src/exceptions/http.exception.d.mts +33 -0
  96. package/src/exceptions/http.exception.d.mts.map +1 -0
  97. package/src/exceptions/http.exception.mts +26 -0
  98. package/src/exceptions/index.d.mts +8 -0
  99. package/src/exceptions/index.d.mts.map +1 -0
  100. package/src/exceptions/internal-server-error.exception.d.mts +31 -0
  101. package/src/exceptions/internal-server-error.exception.d.mts.map +1 -0
  102. package/src/exceptions/internal-server-error.exception.mts +26 -0
  103. package/src/exceptions/not-found.exception.d.mts +30 -0
  104. package/src/exceptions/not-found.exception.d.mts.map +1 -0
  105. package/src/exceptions/not-found.exception.mts +23 -0
  106. package/src/exceptions/unauthorized.exception.d.mts +28 -0
  107. package/src/exceptions/unauthorized.exception.d.mts.map +1 -0
  108. package/src/exceptions/unauthorized.exception.mts +23 -0
  109. package/src/factories/endpoint-adapter.factory.d.mts +6 -0
  110. package/src/factories/endpoint-adapter.factory.d.mts.map +1 -0
  111. package/src/factories/http-adapter.factory.d.mts +6 -0
  112. package/src/factories/http-adapter.factory.d.mts.map +1 -0
  113. package/src/factories/index.d.mts +8 -0
  114. package/src/factories/index.d.mts.map +1 -0
  115. package/src/factories/multipart-adapter.factory.d.mts +6 -0
  116. package/src/factories/multipart-adapter.factory.d.mts.map +1 -0
  117. package/src/factories/reply.factory.d.mts +6 -0
  118. package/src/factories/reply.factory.d.mts.map +1 -0
  119. package/src/factories/request.factory.d.mts +6 -0
  120. package/src/factories/request.factory.d.mts.map +1 -0
  121. package/src/factories/stream-adapter.factory.d.mts +6 -0
  122. package/src/factories/stream-adapter.factory.d.mts.map +1 -0
  123. package/src/factories/xml-stream-adapter.factory.d.mts +6 -0
  124. package/src/factories/xml-stream-adapter.factory.d.mts.map +1 -0
  125. package/src/index.d.mts +15 -0
  126. package/src/index.d.mts.map +1 -0
  127. package/src/index.mts +1 -0
  128. package/src/interfaces/abstract-execution-context.inteface.d.mts +44 -0
  129. package/src/interfaces/abstract-execution-context.inteface.d.mts.map +1 -0
  130. package/src/interfaces/abstract-execution-context.inteface.mts +35 -0
  131. package/src/interfaces/abstract-http-adapter.interface.d.mts +15 -0
  132. package/src/interfaces/abstract-http-adapter.interface.d.mts.map +1 -0
  133. package/src/interfaces/abstract-http-cors-options.interface.d.mts +58 -0
  134. package/src/interfaces/abstract-http-cors-options.interface.d.mts.map +1 -0
  135. package/src/interfaces/abstract-http-handler-adapter.interface.d.mts +7 -0
  136. package/src/interfaces/abstract-http-handler-adapter.interface.d.mts.map +1 -0
  137. package/src/interfaces/abstract-http-handler-adapter.interface.mts +2 -2
  138. package/src/interfaces/abstract-http-listen-options.interface.d.mts +5 -0
  139. package/src/interfaces/abstract-http-listen-options.interface.d.mts.map +1 -0
  140. package/src/interfaces/can-activate.d.mts +36 -0
  141. package/src/interfaces/can-activate.d.mts.map +1 -0
  142. package/src/interfaces/can-activate.mts +31 -0
  143. package/src/interfaces/http-header.d.mts +10 -0
  144. package/src/interfaces/http-header.d.mts.map +1 -0
  145. package/src/interfaces/index.d.mts +9 -0
  146. package/src/interfaces/index.d.mts.map +1 -0
  147. package/src/interfaces/navios-module.d.mts +29 -0
  148. package/src/interfaces/navios-module.d.mts.map +1 -0
  149. package/src/interfaces/navios-module.mts +25 -0
  150. package/src/legacy-compat/__type-tests__/legacy-decorators.spec-d.mts +420 -0
  151. package/src/legacy-compat/__type-tests__/tsconfig.json +15 -0
  152. package/src/legacy-compat/context-compat.d.mts +19 -0
  153. package/src/legacy-compat/context-compat.d.mts.map +1 -0
  154. package/src/legacy-compat/context-compat.mts +93 -0
  155. package/src/legacy-compat/decorators/controller.decorator.d.mts +21 -0
  156. package/src/legacy-compat/decorators/controller.decorator.d.mts.map +1 -0
  157. package/src/legacy-compat/decorators/controller.decorator.mts +31 -0
  158. package/src/legacy-compat/decorators/endpoint.decorator.d.mts +33 -0
  159. package/src/legacy-compat/decorators/endpoint.decorator.d.mts.map +1 -0
  160. package/src/legacy-compat/decorators/endpoint.decorator.mts +99 -0
  161. package/src/legacy-compat/decorators/header.decorator.d.mts +24 -0
  162. package/src/legacy-compat/decorators/header.decorator.d.mts.map +1 -0
  163. package/src/legacy-compat/decorators/header.decorator.mts +42 -0
  164. package/src/legacy-compat/decorators/http-code.decorator.d.mts +22 -0
  165. package/src/legacy-compat/decorators/http-code.decorator.d.mts.map +1 -0
  166. package/src/legacy-compat/decorators/http-code.decorator.mts +38 -0
  167. package/src/legacy-compat/decorators/index.d.mts +9 -0
  168. package/src/legacy-compat/decorators/index.d.mts.map +1 -0
  169. package/src/legacy-compat/decorators/index.mts +9 -0
  170. package/src/legacy-compat/decorators/module.decorator.d.mts +22 -0
  171. package/src/legacy-compat/decorators/module.decorator.d.mts.map +1 -0
  172. package/src/legacy-compat/decorators/module.decorator.mts +37 -0
  173. package/src/legacy-compat/decorators/multipart.decorator.d.mts +34 -0
  174. package/src/legacy-compat/decorators/multipart.decorator.d.mts.map +1 -0
  175. package/src/legacy-compat/decorators/multipart.decorator.mts +93 -0
  176. package/src/legacy-compat/decorators/stream.decorator.d.mts +34 -0
  177. package/src/legacy-compat/decorators/stream.decorator.d.mts.map +1 -0
  178. package/src/legacy-compat/decorators/stream.decorator.mts +76 -0
  179. package/src/legacy-compat/decorators/use-guards.decorator.d.mts +29 -0
  180. package/src/legacy-compat/decorators/use-guards.decorator.d.mts.map +1 -0
  181. package/src/legacy-compat/decorators/use-guards.decorator.mts +80 -0
  182. package/src/legacy-compat/index.d.mts +19 -0
  183. package/src/legacy-compat/index.d.mts.map +1 -0
  184. package/src/legacy-compat/index.mts +40 -0
  185. package/src/logger/console-logger.service.d.mts +196 -0
  186. package/src/logger/console-logger.service.d.mts.map +1 -0
  187. package/src/logger/console-logger.service.mts +15 -2
  188. package/src/logger/index.d.mts +7 -0
  189. package/src/logger/index.d.mts.map +1 -0
  190. package/src/logger/log-levels.d.mts +14 -0
  191. package/src/logger/log-levels.d.mts.map +1 -0
  192. package/src/logger/log-levels.mts +9 -0
  193. package/src/logger/logger-service.interface.d.mts +36 -0
  194. package/src/logger/logger-service.interface.d.mts.map +1 -0
  195. package/src/logger/logger.service.d.mts +57 -0
  196. package/src/logger/logger.service.d.mts.map +1 -0
  197. package/src/logger/logger.service.mts +19 -0
  198. package/src/logger/logger.tokens.d.mts +36 -0
  199. package/src/logger/logger.tokens.d.mts.map +1 -0
  200. package/src/logger/logger.tokens.mts +23 -0
  201. package/src/logger/utils/cli-colors.util.d.mts +10 -0
  202. package/src/logger/utils/cli-colors.util.d.mts.map +1 -0
  203. package/src/logger/utils/filter-log-levelts.util.d.mts +6 -0
  204. package/src/logger/utils/filter-log-levelts.util.d.mts.map +1 -0
  205. package/src/logger/utils/index.d.mts +6 -0
  206. package/src/logger/utils/index.d.mts.map +1 -0
  207. package/src/logger/utils/is-log-level-enabled.d.mts +8 -0
  208. package/src/logger/utils/is-log-level-enabled.d.mts.map +1 -0
  209. package/src/logger/utils/is-log-level.util.d.mts +6 -0
  210. package/src/logger/utils/is-log-level.util.d.mts.map +1 -0
  211. package/src/logger/utils/shared.utils.d.mts +14 -0
  212. package/src/logger/utils/shared.utils.d.mts.map +1 -0
  213. package/src/metadata/controller.metadata.d.mts +13 -0
  214. package/src/metadata/controller.metadata.d.mts.map +1 -0
  215. package/src/metadata/handler.metadata.d.mts +18 -0
  216. package/src/metadata/handler.metadata.d.mts.map +1 -0
  217. package/src/metadata/index.d.mts +4 -0
  218. package/src/metadata/index.d.mts.map +1 -0
  219. package/src/metadata/module.metadata.d.mts +13 -0
  220. package/src/metadata/module.metadata.d.mts.map +1 -0
  221. package/src/navios.application.d.mts +210 -0
  222. package/src/navios.application.d.mts.map +1 -0
  223. package/src/navios.application.mts +176 -2
  224. package/src/navios.environment.d.mts +11 -0
  225. package/src/navios.environment.d.mts.map +1 -0
  226. package/src/navios.factory.d.mts +68 -0
  227. package/src/navios.factory.d.mts.map +1 -0
  228. package/src/navios.factory.mts +59 -1
  229. package/src/services/guard-runner.service.d.mts +10 -0
  230. package/src/services/guard-runner.service.d.mts.map +1 -0
  231. package/src/services/guard-runner.service.mts +12 -11
  232. package/src/services/index.d.mts +3 -0
  233. package/src/services/index.d.mts.map +1 -0
  234. package/src/services/module-loader.service.d.mts +17 -0
  235. package/src/services/module-loader.service.d.mts.map +1 -0
  236. package/src/services/module-loader.service.mts +16 -11
  237. package/src/stores/index.d.mts +2 -0
  238. package/src/stores/index.d.mts.map +1 -0
  239. package/src/stores/index.mts +1 -0
  240. package/src/stores/request-id.store.d.mts +37 -0
  241. package/src/stores/request-id.store.d.mts.map +1 -0
  242. package/src/stores/request-id.store.mts +43 -0
  243. package/src/testing/index.mts +2 -0
  244. package/src/testing/testing-module.mts +231 -0
  245. package/src/tokens/endpoint-adapter.token.d.mts +4 -0
  246. package/src/tokens/endpoint-adapter.token.d.mts.map +1 -0
  247. package/src/tokens/execution-context.token.d.mts +5 -0
  248. package/src/tokens/execution-context.token.d.mts.map +1 -0
  249. package/src/tokens/http-adapter.token.d.mts +4 -0
  250. package/src/tokens/http-adapter.token.d.mts.map +1 -0
  251. package/src/tokens/index.d.mts +9 -0
  252. package/src/tokens/index.d.mts.map +1 -0
  253. package/src/tokens/multipart-adapter.token.d.mts +4 -0
  254. package/src/tokens/multipart-adapter.token.d.mts.map +1 -0
  255. package/src/tokens/reply.token.d.mts +3 -0
  256. package/src/tokens/reply.token.d.mts.map +1 -0
  257. package/src/tokens/request.token.d.mts +3 -0
  258. package/src/tokens/request.token.d.mts.map +1 -0
  259. package/src/tokens/stream-adapter.token.d.mts +4 -0
  260. package/src/tokens/stream-adapter.token.d.mts.map +1 -0
  261. package/src/tokens/xml-stream-adapter.token.d.mts +4 -0
  262. package/src/tokens/xml-stream-adapter.token.d.mts.map +1 -0
  263. package/tsconfig.lib.json +1 -1
  264. package/tsconfig.spec.json +3 -0
  265. package/tsdown.config.mts +35 -0
  266. package/vitest.config.mts +6 -0
  267. package/lib/_tsup-dts-rollup.d.mts +0 -1365
  268. package/lib/_tsup-dts-rollup.d.ts +0 -1365
  269. package/lib/index.d.ts +0 -190
  270. package/lib/index.js +0 -1540
  271. package/lib/index.js.map +0 -1
  272. package/lib/index.mjs.map +0 -1
  273. package/tsup.config.mts +0 -13
package/lib/index.js DELETED
@@ -1,1540 +0,0 @@
1
- 'use strict';
2
-
3
- var di = require('@navios/di');
4
- var process$1 = require('process');
5
- var z = require('zod/v4');
6
- var builder = require('@navios/builder');
7
- var util = require('util');
8
-
9
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
-
11
- var z__default = /*#__PURE__*/_interopDefault(z);
12
-
13
- var __create = Object.create;
14
- var __defProp = Object.defineProperty;
15
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
16
- var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : /* @__PURE__ */ Symbol.for("Symbol." + name);
17
- var __typeError = (msg) => {
18
- throw TypeError(msg);
19
- };
20
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
21
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
22
- var __decoratorStart = (base) => [, , , __create(null)];
23
- var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
24
- var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
25
- var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
26
- var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
27
- var __runInitializers = (array, flags, self, value) => {
28
- for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) fns[i].call(self) ;
29
- return value;
30
- };
31
- var __decorateElement = (array, flags, name, decorators, target, extra) => {
32
- var it, done, ctx, k = flags & 7, p = false;
33
- var j = 0;
34
- var extraInitializers = array[j] || (array[j] = []);
35
- var desc = k && ((target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(target , name));
36
- __name(target, name);
37
- for (var i = decorators.length - 1; i >= 0; i--) {
38
- ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
39
- it = (0, decorators[i])(target, ctx), done._ = 1;
40
- __expectFn(it) && (target = it);
41
- }
42
- return __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;
43
- };
44
- function envInt(key, defaultValue) {
45
- const envKey = process$1.env[key] || process.env[key];
46
- return envKey ? parseInt(envKey, 10) : defaultValue;
47
- }
48
- function envString(key, defaultValue) {
49
- return process$1.env[key] || process.env[key] || defaultValue || void 0;
50
- }
51
-
52
- // src/logger/utils/cli-colors.util.mts
53
- var isColorAllowed = () => !process.env.NO_COLOR;
54
- var colorIfAllowed = (colorFn) => (text) => isColorAllowed() ? colorFn(text) : text;
55
- var clc = {
56
- bold: colorIfAllowed((text) => `\x1B[1m${text}\x1B[0m`),
57
- green: colorIfAllowed((text) => `\x1B[32m${text}\x1B[39m`),
58
- yellow: colorIfAllowed((text) => `\x1B[33m${text}\x1B[39m`),
59
- red: colorIfAllowed((text) => `\x1B[31m${text}\x1B[39m`),
60
- magentaBright: colorIfAllowed((text) => `\x1B[95m${text}\x1B[39m`),
61
- cyanBright: colorIfAllowed((text) => `\x1B[96m${text}\x1B[39m`)
62
- };
63
- var yellow = colorIfAllowed(
64
- (text) => `\x1B[38;5;3m${text}\x1B[39m`
65
- );
66
-
67
- // src/logger/log-levels.mts
68
- var LOG_LEVELS = [
69
- "verbose",
70
- "debug",
71
- "log",
72
- "warn",
73
- "error",
74
- "fatal"
75
- ];
76
-
77
- // src/logger/utils/is-log-level.util.mts
78
- function isLogLevel(maybeLogLevel) {
79
- return LOG_LEVELS.includes(maybeLogLevel);
80
- }
81
-
82
- // src/logger/utils/filter-log-levelts.util.mts
83
- function filterLogLevels(parseableString = "") {
84
- const sanitizedString = parseableString.replaceAll(" ", "").toLowerCase();
85
- if (sanitizedString[0] === ">") {
86
- const orEqual = sanitizedString[1] === "=";
87
- const logLevelIndex = LOG_LEVELS.indexOf(
88
- sanitizedString.substring(orEqual ? 2 : 1)
89
- );
90
- if (logLevelIndex === -1) {
91
- throw new Error(`parse error (unknown log level): ${sanitizedString}`);
92
- }
93
- return LOG_LEVELS.slice(orEqual ? logLevelIndex : logLevelIndex + 1);
94
- } else if (sanitizedString.includes(",")) {
95
- return sanitizedString.split(",").filter(isLogLevel);
96
- }
97
- return isLogLevel(sanitizedString) ? [sanitizedString] : LOG_LEVELS;
98
- }
99
-
100
- // src/logger/utils/is-log-level-enabled.mts
101
- var LOG_LEVEL_VALUES = {
102
- verbose: 0,
103
- debug: 1,
104
- log: 2,
105
- warn: 3,
106
- error: 4,
107
- fatal: 5
108
- };
109
- function isLogLevelEnabled(targetLevel, logLevels) {
110
- if (!logLevels || Array.isArray(logLevels) && logLevels?.length === 0) {
111
- return false;
112
- }
113
- if (logLevels.includes(targetLevel)) {
114
- return true;
115
- }
116
- const highestLogLevelValue = logLevels.map((level) => LOG_LEVEL_VALUES[level]).sort((a, b) => b - a)?.[0];
117
- const targetLevelValue = LOG_LEVEL_VALUES[targetLevel];
118
- return targetLevelValue >= highestLogLevelValue;
119
- }
120
-
121
- // src/logger/utils/shared.utils.mts
122
- var isUndefined = (obj) => typeof obj === "undefined";
123
- var isObject = (fn) => !isNil(fn) && typeof fn === "object";
124
- var isPlainObject = (fn) => {
125
- if (!isObject(fn)) {
126
- return false;
127
- }
128
- const proto = Object.getPrototypeOf(fn);
129
- if (proto === null) {
130
- return true;
131
- }
132
- const ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor;
133
- return typeof ctor === "function" && ctor instanceof ctor && Function.prototype.toString.call(ctor) === Function.prototype.toString.call(Object);
134
- };
135
- var addLeadingSlash = (path) => path && typeof path === "string" ? path.charAt(0) !== "/" && path.substring(0, 2) !== "{/" ? "/" + path : path : "";
136
- var normalizePath = (path) => path ? path.startsWith("/") ? ("/" + path.replace(/\/+$/, "")).replace(/\/+/g, "/") : "/" + path.replace(/\/+$/, "") : "/";
137
- var stripEndSlash = (path) => path[path.length - 1] === "/" ? path.slice(0, path.length - 1) : path;
138
- var isFunction = (val) => typeof val === "function";
139
- var isString = (val) => typeof val === "string";
140
- var isNumber = (val) => typeof val === "number";
141
- var isConstructor = (val) => val === "constructor";
142
- var isNil = (val) => isUndefined(val) || val === null;
143
- var isEmpty = (array) => !(array && array.length > 0);
144
- var isSymbol = (val) => typeof val === "symbol";
145
- var LoggerOutput = di.InjectionToken.create("LoggerOutput");
146
- var loggerOptionsSchema = z__default.default.object({
147
- context: z__default.default.string().optional()
148
- }).optional();
149
- var Logger = di.InjectionToken.create("Logger", loggerOptionsSchema);
150
-
151
- // src/logger/console-logger.service.mts
152
- var DEFAULT_DEPTH = 5;
153
- var DEFAULT_LOG_LEVELS = [
154
- "log",
155
- "error",
156
- "warn",
157
- "debug",
158
- "verbose",
159
- "fatal"
160
- ];
161
- var dateTimeFormatter = new Intl.DateTimeFormat(void 0, {
162
- year: "numeric",
163
- hour: "numeric",
164
- minute: "numeric",
165
- second: "numeric",
166
- day: "2-digit",
167
- month: "2-digit"
168
- });
169
- var _ConsoleLogger_decorators, _init;
170
- _ConsoleLogger_decorators = [di.Injectable({
171
- token: LoggerOutput
172
- })];
173
- exports.ConsoleLogger = class ConsoleLogger {
174
- /**
175
- * The options of the logger.
176
- */
177
- options = {};
178
- /**
179
- * The context of the logger (can be set manually or automatically inferred).
180
- */
181
- context;
182
- /**
183
- * The original context of the logger (set in the constructor).
184
- */
185
- originalContext;
186
- /**
187
- * The options used for the "inspect" method.
188
- */
189
- inspectOptions = this.getInspectOptions();
190
- /**
191
- * The last timestamp at which the log message was printed.
192
- */
193
- lastTimestampAt;
194
- setup(contextOrOptions, options) {
195
- let [context, opts] = isString(contextOrOptions) ? [contextOrOptions, options] : options ? [void 0, options] : [contextOrOptions?.context, contextOrOptions];
196
- opts = opts ?? {};
197
- opts.logLevels ??= DEFAULT_LOG_LEVELS;
198
- opts.colors ??= opts.colors ?? (opts.json ? false : true);
199
- opts.prefix ??= "Navios";
200
- this.options = opts;
201
- this.inspectOptions = this.getInspectOptions();
202
- if (context) {
203
- this.context = context;
204
- this.originalContext = context;
205
- }
206
- }
207
- log(message, ...optionalParams) {
208
- if (!this.isLevelEnabled("log")) {
209
- return;
210
- }
211
- const { messages, context } = this.getContextAndMessagesToPrint([
212
- message,
213
- ...optionalParams
214
- ]);
215
- this.printMessages(messages, context, "log");
216
- }
217
- error(message, ...optionalParams) {
218
- if (!this.isLevelEnabled("error")) {
219
- return;
220
- }
221
- const { messages, context, stack } = this.getContextAndStackAndMessagesToPrint([message, ...optionalParams]);
222
- this.printMessages(messages, context, "error", void 0, "stderr", stack);
223
- this.printStackTrace(stack);
224
- }
225
- warn(message, ...optionalParams) {
226
- if (!this.isLevelEnabled("warn")) {
227
- return;
228
- }
229
- const { messages, context } = this.getContextAndMessagesToPrint([
230
- message,
231
- ...optionalParams
232
- ]);
233
- this.printMessages(messages, context, "warn");
234
- }
235
- debug(message, ...optionalParams) {
236
- if (!this.isLevelEnabled("debug")) {
237
- return;
238
- }
239
- const { messages, context } = this.getContextAndMessagesToPrint([
240
- message,
241
- ...optionalParams
242
- ]);
243
- this.printMessages(messages, context, "debug");
244
- }
245
- verbose(message, ...optionalParams) {
246
- if (!this.isLevelEnabled("verbose")) {
247
- return;
248
- }
249
- const { messages, context } = this.getContextAndMessagesToPrint([
250
- message,
251
- ...optionalParams
252
- ]);
253
- this.printMessages(messages, context, "verbose");
254
- }
255
- fatal(message, ...optionalParams) {
256
- if (!this.isLevelEnabled("fatal")) {
257
- return;
258
- }
259
- const { messages, context } = this.getContextAndMessagesToPrint([
260
- message,
261
- ...optionalParams
262
- ]);
263
- this.printMessages(messages, context, "fatal");
264
- }
265
- /**
266
- * Set log levels
267
- * @param levels log levels
268
- */
269
- setLogLevels(levels) {
270
- if (!this.options) {
271
- this.options = {};
272
- }
273
- this.options.logLevels = levels;
274
- }
275
- /**
276
- * Set logger context
277
- * @param context context
278
- */
279
- setContext(context) {
280
- this.context = context;
281
- }
282
- /**
283
- * Resets the logger context to the value that was passed in the constructor.
284
- */
285
- resetContext() {
286
- this.context = this.originalContext;
287
- }
288
- isLevelEnabled(level) {
289
- const logLevels = this.options?.logLevels;
290
- return isLogLevelEnabled(level, logLevels);
291
- }
292
- getTimestamp() {
293
- return dateTimeFormatter.format(Date.now());
294
- }
295
- printMessages(messages, context = "", logLevel = "log", requestId, writeStreamType, errorStack) {
296
- messages.forEach((message) => {
297
- if (this.options.json) {
298
- this.printAsJson(message, {
299
- context,
300
- logLevel,
301
- writeStreamType,
302
- errorStack,
303
- requestId
304
- });
305
- return;
306
- }
307
- const pidMessage = this.formatPid(process.pid);
308
- const contextMessage = this.formatContext(context);
309
- const timestampDiff = this.updateAndGetTimestampDiff();
310
- const formattedLogLevel = logLevel.toUpperCase().padStart(7, " ");
311
- const formattedMessage = this.formatMessage(
312
- logLevel,
313
- message,
314
- pidMessage,
315
- formattedLogLevel,
316
- contextMessage,
317
- timestampDiff,
318
- requestId
319
- );
320
- process[writeStreamType ?? "stdout"].write(formattedMessage);
321
- });
322
- }
323
- printAsJson(message, options) {
324
- const logObject = {
325
- level: options.logLevel,
326
- pid: process.pid,
327
- timestamp: Date.now(),
328
- message
329
- };
330
- if (options.context) {
331
- logObject.context = options.context;
332
- }
333
- if (options.errorStack) {
334
- logObject.stack = options.errorStack;
335
- }
336
- if (this.options.requestId && options.requestId) {
337
- logObject.requestId = options.requestId;
338
- }
339
- const formattedMessage = !this.options.colors && this.inspectOptions.compact === true ? JSON.stringify(logObject, this.stringifyReplacer) : util.inspect(logObject, this.inspectOptions);
340
- process[options.writeStreamType ?? "stdout"].write(`${formattedMessage}
341
- `);
342
- }
343
- formatPid(pid) {
344
- return `[${this.options.prefix}] ${pid} - `;
345
- }
346
- formatContext(context) {
347
- if (!context) {
348
- return "";
349
- }
350
- context = `[${context}] `;
351
- return this.options.colors ? yellow(context) : context;
352
- }
353
- formatMessage(logLevel, message, pidMessage, formattedLogLevel, contextMessage, timestampDiff, requestId) {
354
- const output = this.stringifyMessage(message, logLevel);
355
- pidMessage = this.colorize(pidMessage, logLevel);
356
- formattedLogLevel = this.colorize(formattedLogLevel, logLevel);
357
- return `${pidMessage}${this.getRequestId(requestId)}${this.getTimestamp()} ${formattedLogLevel} ${contextMessage}${output}${timestampDiff}
358
- `;
359
- }
360
- getRequestId(requestId) {
361
- if (this.options.requestId && requestId) {
362
- return `(${this.colorize(requestId, "log")}) `;
363
- }
364
- return "";
365
- }
366
- stringifyMessage(message, logLevel) {
367
- if (isFunction(message)) {
368
- const messageAsStr = Function.prototype.toString.call(message);
369
- const isClass = messageAsStr.startsWith("class ");
370
- if (isClass) {
371
- return this.stringifyMessage(message.name, logLevel);
372
- }
373
- return this.stringifyMessage(message(), logLevel);
374
- }
375
- if (typeof message === "string") {
376
- return this.colorize(message, logLevel);
377
- }
378
- const outputText = util.inspect(message, this.inspectOptions);
379
- if (isPlainObject(message)) {
380
- return `Object(${Object.keys(message).length}) ${outputText}`;
381
- }
382
- if (Array.isArray(message)) {
383
- return `Array(${message.length}) ${outputText}`;
384
- }
385
- return outputText;
386
- }
387
- colorize(message, logLevel) {
388
- if (!this.options.colors || this.options.json) {
389
- return message;
390
- }
391
- const color = this.getColorByLogLevel(logLevel);
392
- return color(message);
393
- }
394
- printStackTrace(stack) {
395
- if (!stack || this.options.json) {
396
- return;
397
- }
398
- process.stderr.write(`${stack}
399
- `);
400
- }
401
- updateAndGetTimestampDiff() {
402
- const includeTimestamp = this.lastTimestampAt && this.options?.timestamp;
403
- const result = includeTimestamp ? this.formatTimestampDiff(Date.now() - this.lastTimestampAt) : "";
404
- this.lastTimestampAt = Date.now();
405
- return result;
406
- }
407
- formatTimestampDiff(timestampDiff) {
408
- const formattedDiff = ` +${timestampDiff}ms`;
409
- return this.options.colors ? yellow(formattedDiff) : formattedDiff;
410
- }
411
- getInspectOptions() {
412
- let breakLength = this.options.breakLength;
413
- if (typeof breakLength === "undefined") {
414
- breakLength = this.options.colors ? this.options.compact ? Infinity : void 0 : this.options.compact === false ? void 0 : Infinity;
415
- }
416
- const inspectOptions = {
417
- depth: this.options.depth ?? DEFAULT_DEPTH,
418
- sorted: this.options.sorted,
419
- showHidden: this.options.showHidden,
420
- compact: this.options.compact ?? (this.options.json ? true : false),
421
- colors: this.options.colors,
422
- breakLength
423
- };
424
- if (this.options.maxArrayLength) {
425
- inspectOptions.maxArrayLength = this.options.maxArrayLength;
426
- }
427
- if (this.options.maxStringLength) {
428
- inspectOptions.maxStringLength = this.options.maxStringLength;
429
- }
430
- return inspectOptions;
431
- }
432
- stringifyReplacer(key, value) {
433
- if (typeof value === "bigint") {
434
- return value.toString();
435
- }
436
- if (typeof value === "symbol") {
437
- return value.toString();
438
- }
439
- if (value instanceof Map || value instanceof Set || value instanceof Error) {
440
- return `${util.inspect(value, this.inspectOptions)}`;
441
- }
442
- return value;
443
- }
444
- getContextAndMessagesToPrint(args) {
445
- if (args?.length <= 1) {
446
- return { messages: args, context: this.context };
447
- }
448
- const lastElement = args[args.length - 1];
449
- const isContext = isString(lastElement);
450
- if (!isContext) {
451
- return { messages: args, context: this.context };
452
- }
453
- return {
454
- context: lastElement,
455
- messages: args.slice(0, args.length - 1)
456
- };
457
- }
458
- getContextAndStackAndMessagesToPrint(args) {
459
- if (args.length === 2) {
460
- return this.isStackFormat(args[1]) ? {
461
- messages: [args[0]],
462
- stack: args[1],
463
- context: this.context
464
- } : {
465
- messages: [args[0]],
466
- context: args[1]
467
- };
468
- }
469
- const { messages, context } = this.getContextAndMessagesToPrint(args);
470
- if (messages?.length <= 1) {
471
- return { messages, context };
472
- }
473
- const lastElement = messages[messages.length - 1];
474
- const isStack = isString(lastElement);
475
- if (!isStack && !isUndefined(lastElement)) {
476
- return { messages, context };
477
- }
478
- return {
479
- stack: lastElement,
480
- messages: messages.slice(0, messages.length - 1),
481
- context
482
- };
483
- }
484
- isStackFormat(stack) {
485
- if (!isString(stack) && !isUndefined(stack)) {
486
- return false;
487
- }
488
- return /^(.)+\n\s+at .+:\d+:\d+/.test(stack);
489
- }
490
- getColorByLogLevel(level) {
491
- switch (level) {
492
- case "debug":
493
- return clc.magentaBright;
494
- case "warn":
495
- return clc.yellow;
496
- case "error":
497
- return clc.red;
498
- case "verbose":
499
- return clc.cyanBright;
500
- case "fatal":
501
- return clc.bold;
502
- default:
503
- return clc.green;
504
- }
505
- }
506
- };
507
- _init = __decoratorStart();
508
- exports.ConsoleLogger = __decorateElement(_init, 0, "ConsoleLogger", _ConsoleLogger_decorators, exports.ConsoleLogger);
509
- __runInitializers(_init, 1, exports.ConsoleLogger);
510
- var _LoggerInstance_decorators, _init2;
511
- _LoggerInstance_decorators = [di.Injectable({
512
- token: Logger
513
- })];
514
- exports.LoggerInstance = class LoggerInstance {
515
- localInstance = di.inject(LoggerOutput);
516
- context;
517
- constructor(config = {}) {
518
- this.context = config.context;
519
- }
520
- error(message, ...optionalParams) {
521
- optionalParams = this.context ? (optionalParams.length ? optionalParams : [void 0]).concat(
522
- this.context
523
- ) : optionalParams;
524
- this.localInstance?.error(message, ...optionalParams);
525
- }
526
- log(message, ...optionalParams) {
527
- optionalParams = this.context ? optionalParams.concat(this.context) : optionalParams;
528
- this.localInstance?.log(message, ...optionalParams);
529
- }
530
- warn(message, ...optionalParams) {
531
- optionalParams = this.context ? optionalParams.concat(this.context) : optionalParams;
532
- this.localInstance?.warn(message, ...optionalParams);
533
- }
534
- debug(message, ...optionalParams) {
535
- optionalParams = this.context ? optionalParams.concat(this.context) : optionalParams;
536
- this.localInstance?.debug?.(message, ...optionalParams);
537
- }
538
- verbose(message, ...optionalParams) {
539
- optionalParams = this.context ? optionalParams.concat(this.context) : optionalParams;
540
- this.localInstance?.verbose?.(message, ...optionalParams);
541
- }
542
- fatal(message, ...optionalParams) {
543
- optionalParams = this.context ? optionalParams.concat(this.context) : optionalParams;
544
- this.localInstance?.fatal?.(message, ...optionalParams);
545
- }
546
- };
547
- _init2 = __decoratorStart();
548
- exports.LoggerInstance = __decorateElement(_init2, 0, "LoggerInstance", _LoggerInstance_decorators, exports.LoggerInstance);
549
- __runInitializers(_init2, 1, exports.LoggerInstance);
550
-
551
- // src/config/config.service.mts
552
- var ConfigServiceOptionsSchema = z.z.record(z.z.string(), z.z.unknown());
553
- var ConfigServiceToken = di.InjectionToken.create(/* @__PURE__ */ Symbol.for("ConfigService"), ConfigServiceOptionsSchema);
554
- var _ConfigService_decorators, _init3;
555
- _ConfigService_decorators = [di.Injectable({
556
- token: ConfigServiceToken
557
- })];
558
- var _ConfigService = class _ConfigService {
559
- constructor(config = {}) {
560
- this.config = config;
561
- }
562
- logger = di.inject(Logger, {
563
- context: _ConfigService.name
564
- });
565
- getConfig() {
566
- return this.config;
567
- }
568
- get(key) {
569
- try {
570
- const parts = String(key).split(".");
571
- let value = this.config;
572
- for (const part of parts) {
573
- if (value === null || value === void 0 || typeof value !== "object") {
574
- return null;
575
- }
576
- value = value[part];
577
- }
578
- return value ?? null;
579
- } catch (error) {
580
- this.logger.debug?.(
581
- `Failed to get config value for key ${String(key)}`,
582
- error
583
- );
584
- return null;
585
- }
586
- }
587
- getOrDefault(key, defaultValue) {
588
- const value = this.get(key);
589
- return value !== null ? value : defaultValue;
590
- }
591
- getOrThrow(key, errorMessage) {
592
- const value = this.get(key);
593
- if (value === null) {
594
- const message = errorMessage || `Configuration value for key "${String(key)}" is not defined`;
595
- this.logger.error(message);
596
- throw new builder.NaviosException(message);
597
- }
598
- return value;
599
- }
600
- };
601
- _init3 = __decoratorStart();
602
- _ConfigService = __decorateElement(_init3, 0, "ConfigService", _ConfigService_decorators, _ConfigService);
603
- __runInitializers(_init3, 1, _ConfigService);
604
- var ConfigService = _ConfigService;
605
-
606
- // src/config/config.provider.mts
607
- var ConfigProviderOptions = z.z.object({
608
- load: z.z.function({ output: ConfigServiceOptionsSchema })
609
- });
610
- function provideConfig(options) {
611
- return di.InjectionToken.factory(ConfigServiceToken, async () => options.load());
612
- }
613
- var EnvConfigProvider = di.InjectionToken.bound(ConfigServiceToken, {
614
- ...process$1.env
615
- });
616
-
617
- // src/metadata/handler.metadata.mts
618
- var EndpointMetadataKey = /* @__PURE__ */ Symbol("EndpointMetadataKey");
619
- function getAllEndpointMetadata(context) {
620
- if (context.metadata) {
621
- const metadata = context.metadata[EndpointMetadataKey];
622
- if (metadata) {
623
- return metadata;
624
- } else {
625
- context.metadata[EndpointMetadataKey] = /* @__PURE__ */ new Set();
626
- return context.metadata[EndpointMetadataKey];
627
- }
628
- }
629
- throw new Error("[Navios] Wrong environment.");
630
- }
631
- function getEndpointMetadata(target, context) {
632
- if (context.metadata) {
633
- const metadata = getAllEndpointMetadata(context);
634
- if (metadata) {
635
- const endpointMetadata = Array.from(metadata).find(
636
- (item) => item.classMethod === target.name
637
- );
638
- if (endpointMetadata) {
639
- return endpointMetadata;
640
- } else {
641
- const newMetadata = {
642
- classMethod: target.name,
643
- url: "",
644
- successStatusCode: 200,
645
- adapterToken: null,
646
- headers: {},
647
- httpMethod: "GET",
648
- // @ts-expect-error We are using a generic type here
649
- config: null,
650
- guards: /* @__PURE__ */ new Set(),
651
- customAttributes: /* @__PURE__ */ new Map()
652
- };
653
- metadata.add(newMetadata);
654
- return newMetadata;
655
- }
656
- }
657
- }
658
- throw new Error("[Navios] Wrong environment.");
659
- }
660
-
661
- // src/metadata/controller.metadata.mts
662
- var ControllerMetadataKey = /* @__PURE__ */ Symbol("ControllerMetadataKey");
663
- function getControllerMetadata(target, context) {
664
- if (context.metadata) {
665
- const metadata = context.metadata[ControllerMetadataKey];
666
- if (metadata) {
667
- return metadata;
668
- } else {
669
- const endpointsMetadata = getAllEndpointMetadata(context);
670
- const newMetadata = {
671
- endpoints: endpointsMetadata,
672
- guards: /* @__PURE__ */ new Set(),
673
- customAttributes: /* @__PURE__ */ new Map()
674
- };
675
- context.metadata[ControllerMetadataKey] = newMetadata;
676
- target[ControllerMetadataKey] = newMetadata;
677
- return newMetadata;
678
- }
679
- }
680
- throw new Error("[Navios] Wrong environment.");
681
- }
682
- function extractControllerMetadata(target) {
683
- const metadata = target[ControllerMetadataKey];
684
- if (!metadata) {
685
- throw new Error(
686
- "[Navios] Controller metadata not found. Make sure to use @Controller decorator."
687
- );
688
- }
689
- return metadata;
690
- }
691
- function hasControllerMetadata(target) {
692
- const metadata = target[ControllerMetadataKey];
693
- return !!metadata;
694
- }
695
-
696
- // src/metadata/module.metadata.mts
697
- var ModuleMetadataKey = /* @__PURE__ */ Symbol("ControllerMetadataKey");
698
- function getModuleMetadata(target, context) {
699
- if (context.metadata) {
700
- const metadata = context.metadata[ModuleMetadataKey];
701
- if (metadata) {
702
- return metadata;
703
- } else {
704
- const newMetadata = {
705
- controllers: /* @__PURE__ */ new Set(),
706
- imports: /* @__PURE__ */ new Set(),
707
- guards: /* @__PURE__ */ new Set(),
708
- customAttributes: /* @__PURE__ */ new Map()
709
- };
710
- context.metadata[ModuleMetadataKey] = newMetadata;
711
- target[ModuleMetadataKey] = newMetadata;
712
- return newMetadata;
713
- }
714
- }
715
- throw new Error("[Navios] Wrong environment.");
716
- }
717
- function extractModuleMetadata(target) {
718
- const metadata = target[ModuleMetadataKey];
719
- if (!metadata) {
720
- throw new Error(
721
- `[Navios] Module metadata not found for ${target.name}. Make sure to use @Module decorator.`
722
- );
723
- }
724
- return metadata;
725
- }
726
- function hasModuleMetadata(target) {
727
- return !!target[ModuleMetadataKey];
728
- }
729
-
730
- // src/decorators/controller.decorator.mts
731
- function Controller({ guards } = {}) {
732
- return function(target, context) {
733
- if (context.kind !== "class") {
734
- throw new Error(
735
- "[Navios] @Controller decorator can only be used on classes."
736
- );
737
- }
738
- const token = di.InjectionToken.create(target);
739
- if (context.metadata) {
740
- const controllerMetadata = getControllerMetadata(target, context);
741
- if (guards) {
742
- for (const guard of Array.from(guards).reverse()) {
743
- controllerMetadata.guards.add(guard);
744
- }
745
- }
746
- }
747
- return di.Injectable({
748
- token,
749
- scope: di.InjectableScope.Request
750
- })(target, context);
751
- };
752
- }
753
- var EndpointAdapterToken = di.InjectionToken.create(
754
- "EndpointAdapterToken"
755
- );
756
- var ExecutionContextInjectionToken = "ExecutionContextInjectionToken";
757
- var ExecutionContext = di.InjectionToken.create(
758
- ExecutionContextInjectionToken
759
- );
760
- var HttpAdapterToken = di.InjectionToken.create(
761
- "HttpAdapterToken"
762
- );
763
- var MultipartAdapterToken = di.InjectionToken.create(
764
- "MultipartAdapterToken"
765
- );
766
- var Reply = di.InjectionToken.create("ReplyToken");
767
- var Request = di.InjectionToken.create("RequestToken");
768
- var StreamAdapterToken = di.InjectionToken.create(
769
- "StreamAdapterToken"
770
- );
771
- var XmlStreamAdapterToken = di.InjectionToken.create(
772
- "XmlStreamAdapterToken"
773
- );
774
-
775
- // src/decorators/endpoint.decorator.mts
776
- function Endpoint(endpoint) {
777
- return (target, context) => {
778
- if (context.kind !== "method") {
779
- throw new Error(
780
- "[Navios] Endpoint decorator can only be used on methods."
781
- );
782
- }
783
- const config = endpoint.config;
784
- if (context.metadata) {
785
- let endpointMetadata = getEndpointMetadata(
786
- target,
787
- context
788
- );
789
- if (endpointMetadata.config && endpointMetadata.config.url) {
790
- throw new Error(
791
- `[Navios] Endpoint ${config.method} ${config.url} already exists. Please use a different method or url.`
792
- );
793
- }
794
- endpointMetadata.config = config;
795
- endpointMetadata.adapterToken = EndpointAdapterToken;
796
- endpointMetadata.classMethod = target.name;
797
- endpointMetadata.httpMethod = config.method;
798
- endpointMetadata.url = config.url;
799
- }
800
- return target;
801
- };
802
- }
803
-
804
- // src/decorators/header.decorator.mts
805
- function Header(name, value) {
806
- return (target, context) => {
807
- if (context.kind !== "method") {
808
- throw new Error("[Navios] Header decorator can only be used on methods.");
809
- }
810
- const metadata = getEndpointMetadata(target, context);
811
- metadata.headers[name] = value;
812
- return target;
813
- };
814
- }
815
-
816
- // src/decorators/http-code.decorator.mts
817
- function HttpCode(code) {
818
- return (target, context) => {
819
- if (context.kind !== "method") {
820
- throw new Error(
821
- "[Navios] HttpCode decorator can only be used on methods."
822
- );
823
- }
824
- const metadata = getEndpointMetadata(target, context);
825
- metadata.successStatusCode = code;
826
- return target;
827
- };
828
- }
829
- function Module({ controllers = [], imports = [], guards = [] } = {
830
- controllers: [],
831
- imports: [],
832
- guards: []
833
- }) {
834
- return (target, context) => {
835
- if (context.kind !== "class") {
836
- throw new Error("[Navios] @Module decorator can only be used on classes.");
837
- }
838
- const token = di.InjectionToken.create(target);
839
- const moduleMetadata = getModuleMetadata(target, context);
840
- for (const controller of controllers) {
841
- moduleMetadata.controllers.add(controller);
842
- }
843
- for (const importedModule of imports) {
844
- moduleMetadata.imports.add(importedModule);
845
- }
846
- for (const guard of Array.from(guards).reverse()) {
847
- moduleMetadata.guards.add(guard);
848
- }
849
- return di.Injectable({
850
- token,
851
- scope: di.InjectableScope.Singleton
852
- })(target, context);
853
- };
854
- }
855
- function Multipart(endpoint) {
856
- return (target, context) => {
857
- if (typeof target !== "function") {
858
- throw new Error(
859
- "[Navios] Endpoint decorator can only be used on functions."
860
- );
861
- }
862
- if (context.kind !== "method") {
863
- throw new Error(
864
- "[Navios] Endpoint decorator can only be used on methods."
865
- );
866
- }
867
- const config = endpoint.config;
868
- if (context.metadata) {
869
- let endpointMetadata = getEndpointMetadata(
870
- target,
871
- context
872
- );
873
- if (endpointMetadata.config && endpointMetadata.config.url) {
874
- throw new Error(
875
- `[Navios] Endpoint ${config.method} ${config.url} already exists. Please use a different method or url.`
876
- );
877
- }
878
- endpointMetadata.config = config;
879
- endpointMetadata.adapterToken = MultipartAdapterToken;
880
- endpointMetadata.classMethod = target.name;
881
- endpointMetadata.httpMethod = config.method;
882
- endpointMetadata.url = config.url;
883
- }
884
- return target;
885
- };
886
- }
887
-
888
- // src/decorators/stream.decorator.mts
889
- function Stream(endpoint) {
890
- return (target, context) => {
891
- if (typeof target !== "function") {
892
- throw new Error(
893
- "[Navios] Endpoint decorator can only be used on functions."
894
- );
895
- }
896
- if (context.kind !== "method") {
897
- throw new Error(
898
- "[Navios] Endpoint decorator can only be used on methods."
899
- );
900
- }
901
- const config = endpoint.config;
902
- if (context.metadata) {
903
- let endpointMetadata = getEndpointMetadata(
904
- target,
905
- context
906
- );
907
- if (endpointMetadata.config && endpointMetadata.config.url) {
908
- throw new Error(
909
- `[Navios] Endpoint ${config.method} ${config.url} already exists. Please use a different method or url.`
910
- );
911
- }
912
- endpointMetadata.config = config;
913
- endpointMetadata.adapterToken = StreamAdapterToken;
914
- endpointMetadata.classMethod = target.name;
915
- endpointMetadata.httpMethod = config.method;
916
- endpointMetadata.url = config.url;
917
- }
918
- return target;
919
- };
920
- }
921
-
922
- // src/decorators/use-guards.decorator.mts
923
- function UseGuards(...guards) {
924
- return function(target, context) {
925
- if (context.kind === "class") {
926
- const controllerMetadata = getControllerMetadata(
927
- target,
928
- context
929
- );
930
- for (const guard of guards.reverse()) {
931
- controllerMetadata.guards.add(guard);
932
- }
933
- } else if (context.kind === "method") {
934
- const endpointMetadata = getEndpointMetadata(target, context);
935
- for (const guard of guards.reverse()) {
936
- endpointMetadata.guards.add(guard);
937
- }
938
- } else {
939
- throw new Error(
940
- "[Navios] @UseGuards decorator can only be used on classes or methods."
941
- );
942
- }
943
- return target;
944
- };
945
- }
946
-
947
- // src/exceptions/http.exception.mts
948
- var HttpException = class {
949
- constructor(statusCode, response, error) {
950
- this.statusCode = statusCode;
951
- this.response = response;
952
- this.error = error;
953
- }
954
- };
955
-
956
- // src/exceptions/bad-request.exception.mts
957
- var BadRequestException = class extends HttpException {
958
- constructor(message) {
959
- super(400, message);
960
- }
961
- };
962
-
963
- // src/exceptions/forbidden.exception.mts
964
- var ForbiddenException = class extends HttpException {
965
- constructor(message) {
966
- super(403, message);
967
- }
968
- };
969
-
970
- // src/exceptions/internal-server-error.exception.mts
971
- var InternalServerErrorException = class extends HttpException {
972
- constructor(message, error) {
973
- super(500, message, error);
974
- }
975
- };
976
-
977
- // src/exceptions/not-found.exception.mts
978
- var NotFoundException = class extends HttpException {
979
- constructor(response, error) {
980
- super(404, response, error);
981
- this.response = response;
982
- this.error = error;
983
- }
984
- };
985
-
986
- // src/exceptions/unauthorized.exception.mts
987
- var UnauthorizedException = class extends HttpException {
988
- constructor(message, error) {
989
- super(401, message, error);
990
- }
991
- };
992
-
993
- // src/exceptions/conflict.exception.mts
994
- var ConflictException = class extends HttpException {
995
- constructor(message, error) {
996
- super(409, message, error);
997
- }
998
- };
999
- var _GuardRunnerService_decorators, _init4;
1000
- _GuardRunnerService_decorators = [di.Injectable()];
1001
- exports.GuardRunnerService = class GuardRunnerService {
1002
- container = di.inject(di.Container);
1003
- async runGuards(allGuards, executionContext) {
1004
- let canActivate = true;
1005
- for (const guard of Array.from(allGuards).reverse()) {
1006
- const guardInstance = await this.container.get(
1007
- guard
1008
- );
1009
- if (!guardInstance.canActivate) {
1010
- throw new Error(
1011
- `[Navios] Guard ${guard.name} does not implement canActivate()`
1012
- );
1013
- }
1014
- try {
1015
- canActivate = await guardInstance.canActivate(executionContext);
1016
- if (!canActivate) {
1017
- break;
1018
- }
1019
- } catch (error) {
1020
- if (error instanceof HttpException) {
1021
- executionContext.getReply().status(error.statusCode).send(error.response);
1022
- return false;
1023
- } else {
1024
- executionContext.getReply().status(500).send({
1025
- message: "Internal server error",
1026
- error: error.message
1027
- });
1028
- return false;
1029
- }
1030
- }
1031
- }
1032
- if (!canActivate) {
1033
- executionContext.getReply().status(403).send({
1034
- message: "Forbidden"
1035
- });
1036
- return false;
1037
- }
1038
- return canActivate;
1039
- }
1040
- makeContext(moduleMetadata, controllerMetadata, endpoint) {
1041
- const guards = /* @__PURE__ */ new Set();
1042
- const endpointGuards = endpoint.guards;
1043
- const controllerGuards = controllerMetadata.guards;
1044
- const moduleGuards = moduleMetadata.guards;
1045
- if (endpointGuards.size > 0) {
1046
- for (const guard of endpointGuards) {
1047
- guards.add(guard);
1048
- }
1049
- }
1050
- if (controllerGuards.size > 0) {
1051
- for (const guard of controllerGuards) {
1052
- guards.add(guard);
1053
- }
1054
- }
1055
- if (moduleGuards.size > 0) {
1056
- for (const guard of moduleGuards) {
1057
- guards.add(guard);
1058
- }
1059
- }
1060
- return guards;
1061
- }
1062
- };
1063
- _init4 = __decoratorStart();
1064
- exports.GuardRunnerService = __decorateElement(_init4, 0, "GuardRunnerService", _GuardRunnerService_decorators, exports.GuardRunnerService);
1065
- __runInitializers(_init4, 1, exports.GuardRunnerService);
1066
- var _ModuleLoaderService_decorators, _init5;
1067
- _ModuleLoaderService_decorators = [di.Injectable()];
1068
- var _ModuleLoaderService = class _ModuleLoaderService {
1069
- logger = di.inject(Logger, {
1070
- context: _ModuleLoaderService.name
1071
- });
1072
- container = di.inject(di.Container);
1073
- modulesMetadata = /* @__PURE__ */ new Map();
1074
- loadedModules = /* @__PURE__ */ new Map();
1075
- initialized = false;
1076
- async loadModules(appModule) {
1077
- if (this.initialized) {
1078
- return;
1079
- }
1080
- await this.traverseModules(appModule);
1081
- this.initialized = true;
1082
- }
1083
- async traverseModules(module, parentMetadata) {
1084
- const metadata = extractModuleMetadata(module);
1085
- if (parentMetadata) {
1086
- this.mergeMetadata(metadata, parentMetadata);
1087
- }
1088
- const moduleName = module.name;
1089
- if (this.modulesMetadata.has(moduleName)) {
1090
- return;
1091
- }
1092
- this.modulesMetadata.set(moduleName, metadata);
1093
- const imports = metadata.imports ?? /* @__PURE__ */ new Set();
1094
- const loadingPromises = Array.from(imports).map(
1095
- async (importedModule) => this.traverseModules(importedModule, metadata)
1096
- );
1097
- await Promise.all(loadingPromises);
1098
- const instance = await this.container.get(module);
1099
- if (instance.onModuleInit) {
1100
- await instance.onModuleInit();
1101
- }
1102
- this.logger.debug(`Module ${moduleName} loaded`);
1103
- this.loadedModules.set(moduleName, instance);
1104
- }
1105
- mergeMetadata(metadata, parentMetadata) {
1106
- if (parentMetadata.guards) {
1107
- for (const guard of parentMetadata.guards) {
1108
- metadata.guards.add(guard);
1109
- }
1110
- }
1111
- if (parentMetadata.customAttributes) {
1112
- for (const [key, value] of parentMetadata.customAttributes) {
1113
- if (metadata.customAttributes.has(key)) {
1114
- continue;
1115
- }
1116
- metadata.customAttributes.set(key, value);
1117
- }
1118
- }
1119
- }
1120
- getAllModules() {
1121
- return this.modulesMetadata;
1122
- }
1123
- dispose() {
1124
- this.modulesMetadata.clear();
1125
- this.loadedModules.clear();
1126
- this.initialized = false;
1127
- }
1128
- };
1129
- _init5 = __decoratorStart();
1130
- _ModuleLoaderService = __decorateElement(_init5, 0, "ModuleLoaderService", _ModuleLoaderService_decorators, _ModuleLoaderService);
1131
- __runInitializers(_init5, 1, _ModuleLoaderService);
1132
- var ModuleLoaderService = _ModuleLoaderService;
1133
-
1134
- // src/attribute.factory.mts
1135
- var AttributeFactory = class {
1136
- static createAttribute(token, schema) {
1137
- const res = (value) => (target, context) => {
1138
- if (context.kind !== "class" && context.kind !== "method") {
1139
- throw new Error(
1140
- "[Navios] Attribute can only be applied to classes or methods"
1141
- );
1142
- }
1143
- const isController = context.kind === "class" && hasControllerMetadata(target);
1144
- const isModule = context.kind === "class" && hasModuleMetadata(target);
1145
- if (context.kind === "class" && !isController && !isModule) {
1146
- throw new Error(
1147
- "[Navios] Attribute can only be applied to classes with @Controller or @Module decorators"
1148
- );
1149
- }
1150
- let metadata = context.kind === "class" ? isController ? getControllerMetadata(target, context) : getModuleMetadata(target, context) : getEndpointMetadata(target, context);
1151
- if (schema) {
1152
- const validatedValue = schema.safeParse(value);
1153
- if (!validatedValue.success) {
1154
- throw new Error(
1155
- `[Navios] Invalid value for attribute ${token.toString()}: ${validatedValue.error}`
1156
- );
1157
- }
1158
- metadata.customAttributes.set(token, validatedValue.data);
1159
- } else {
1160
- metadata.customAttributes.set(token, true);
1161
- }
1162
- return target;
1163
- };
1164
- res.token = token;
1165
- if (schema) {
1166
- res.schema = schema;
1167
- }
1168
- return res;
1169
- }
1170
- static get(attribute, target) {
1171
- return target.customAttributes.get(attribute.token) ?? null;
1172
- }
1173
- static getAll(attribute, target) {
1174
- const values = Array.from(target.customAttributes.entries()).filter(([key]) => key === attribute.token).map(([, value]) => value);
1175
- return values.length > 0 ? values : null;
1176
- }
1177
- static getLast(attribute, target) {
1178
- for (let i = target.length - 1; i >= 0; i--) {
1179
- const value = target[i].customAttributes.get(attribute.token);
1180
- if (value) {
1181
- return value;
1182
- }
1183
- }
1184
- return null;
1185
- }
1186
- static has(attribute, target) {
1187
- return target.customAttributes.has(attribute.token);
1188
- }
1189
- };
1190
- var _NaviosEnvironment_decorators, _init6;
1191
- _NaviosEnvironment_decorators = [di.Injectable()];
1192
- var NaviosEnvironment = class {
1193
- httpTokens = /* @__PURE__ */ new Map();
1194
- setupHttpEnvironment(tokens) {
1195
- this.httpTokens = tokens;
1196
- }
1197
- getHttpToken(token) {
1198
- return this.httpTokens.get(token);
1199
- }
1200
- hasHttpSetup() {
1201
- return this.httpTokens.size > 0;
1202
- }
1203
- };
1204
- _init6 = __decoratorStart();
1205
- NaviosEnvironment = __decorateElement(_init6, 0, "NaviosEnvironment", _NaviosEnvironment_decorators, NaviosEnvironment);
1206
- __runInitializers(_init6, 1, NaviosEnvironment);
1207
-
1208
- // src/factories/endpoint-adapter.factory.mts
1209
- var _EndpointAdapterFactory_decorators, _init7;
1210
- _EndpointAdapterFactory_decorators = [di.Factory({
1211
- token: EndpointAdapterToken
1212
- })];
1213
- exports.EndpointAdapterFactory = class EndpointAdapterFactory {
1214
- environment = di.inject(NaviosEnvironment);
1215
- create(ctx) {
1216
- const service = this.environment.getHttpToken(EndpointAdapterToken);
1217
- if (!service) {
1218
- throw new Error("EndpointAdapterToken service not found in environment");
1219
- }
1220
- return ctx.inject(service);
1221
- }
1222
- };
1223
- _init7 = __decoratorStart();
1224
- exports.EndpointAdapterFactory = __decorateElement(_init7, 0, "EndpointAdapterFactory", _EndpointAdapterFactory_decorators, exports.EndpointAdapterFactory);
1225
- __runInitializers(_init7, 1, exports.EndpointAdapterFactory);
1226
- var _HttpAdapterFactory_decorators, _init8;
1227
- _HttpAdapterFactory_decorators = [di.Factory({
1228
- token: HttpAdapterToken
1229
- })];
1230
- exports.HttpAdapterFactory = class HttpAdapterFactory {
1231
- environment = di.inject(NaviosEnvironment);
1232
- create(ctx) {
1233
- const service = this.environment.getHttpToken(HttpAdapterToken);
1234
- if (!service) {
1235
- throw new Error("HttpAdapterToken service not found in environment");
1236
- }
1237
- return ctx.inject(service);
1238
- }
1239
- };
1240
- _init8 = __decoratorStart();
1241
- exports.HttpAdapterFactory = __decorateElement(_init8, 0, "HttpAdapterFactory", _HttpAdapterFactory_decorators, exports.HttpAdapterFactory);
1242
- __runInitializers(_init8, 1, exports.HttpAdapterFactory);
1243
- var _MultipartAdapterFactory_decorators, _init9;
1244
- _MultipartAdapterFactory_decorators = [di.Factory({
1245
- token: MultipartAdapterToken
1246
- })];
1247
- exports.MultipartAdapterFactory = class MultipartAdapterFactory {
1248
- environment = di.inject(NaviosEnvironment);
1249
- create(ctx) {
1250
- const service = this.environment.getHttpToken(MultipartAdapterToken);
1251
- if (!service) {
1252
- throw new Error("MultipartAdapterToken service not found in environment");
1253
- }
1254
- return ctx.inject(service);
1255
- }
1256
- };
1257
- _init9 = __decoratorStart();
1258
- exports.MultipartAdapterFactory = __decorateElement(_init9, 0, "MultipartAdapterFactory", _MultipartAdapterFactory_decorators, exports.MultipartAdapterFactory);
1259
- __runInitializers(_init9, 1, exports.MultipartAdapterFactory);
1260
- var _RequestFactory_decorators, _init10;
1261
- _RequestFactory_decorators = [di.Factory({
1262
- token: Request,
1263
- scope: di.InjectableScope.Request
1264
- })];
1265
- exports.RequestFactory = class RequestFactory {
1266
- environment = di.inject(NaviosEnvironment);
1267
- create(ctx) {
1268
- const service = this.environment.getHttpToken(Request);
1269
- if (!service) {
1270
- throw new Error("RequestToken service not found in environment");
1271
- }
1272
- return ctx.inject(service);
1273
- }
1274
- };
1275
- _init10 = __decoratorStart();
1276
- exports.RequestFactory = __decorateElement(_init10, 0, "RequestFactory", _RequestFactory_decorators, exports.RequestFactory);
1277
- __runInitializers(_init10, 1, exports.RequestFactory);
1278
- var _ReplyFactory_decorators, _init11;
1279
- _ReplyFactory_decorators = [di.Factory({
1280
- token: Reply,
1281
- scope: di.InjectableScope.Request
1282
- })];
1283
- exports.ReplyFactory = class ReplyFactory {
1284
- environment = di.inject(NaviosEnvironment);
1285
- create(ctx) {
1286
- const service = this.environment.getHttpToken(Reply);
1287
- if (!service) {
1288
- throw new Error("ReplyToken service not found in environment");
1289
- }
1290
- return ctx.inject(service);
1291
- }
1292
- };
1293
- _init11 = __decoratorStart();
1294
- exports.ReplyFactory = __decorateElement(_init11, 0, "ReplyFactory", _ReplyFactory_decorators, exports.ReplyFactory);
1295
- __runInitializers(_init11, 1, exports.ReplyFactory);
1296
- var _StreamAdapterFactory_decorators, _init12;
1297
- _StreamAdapterFactory_decorators = [di.Factory({
1298
- token: StreamAdapterToken
1299
- })];
1300
- exports.StreamAdapterFactory = class StreamAdapterFactory {
1301
- environment = di.inject(NaviosEnvironment);
1302
- create(ctx) {
1303
- const service = this.environment.getHttpToken(StreamAdapterToken);
1304
- if (!service) {
1305
- throw new Error("StreamAdapterToken service not found in environment");
1306
- }
1307
- return ctx.inject(service);
1308
- }
1309
- };
1310
- _init12 = __decoratorStart();
1311
- exports.StreamAdapterFactory = __decorateElement(_init12, 0, "StreamAdapterFactory", _StreamAdapterFactory_decorators, exports.StreamAdapterFactory);
1312
- __runInitializers(_init12, 1, exports.StreamAdapterFactory);
1313
- var _XmlStreamAdapterFactory_decorators, _init13;
1314
- _XmlStreamAdapterFactory_decorators = [di.Factory({
1315
- token: XmlStreamAdapterToken
1316
- })];
1317
- exports.XmlStreamAdapterFactory = class XmlStreamAdapterFactory {
1318
- environment = di.inject(NaviosEnvironment);
1319
- create(ctx) {
1320
- const service = this.environment.getHttpToken(XmlStreamAdapterToken);
1321
- if (!service) {
1322
- throw new Error("XmlStreamAdapterToken service not found in environment");
1323
- }
1324
- return ctx.inject(service);
1325
- }
1326
- };
1327
- _init13 = __decoratorStart();
1328
- exports.XmlStreamAdapterFactory = __decorateElement(_init13, 0, "XmlStreamAdapterFactory", _XmlStreamAdapterFactory_decorators, exports.XmlStreamAdapterFactory);
1329
- __runInitializers(_init13, 1, exports.XmlStreamAdapterFactory);
1330
- var _NaviosApplication_decorators, _init14;
1331
- _NaviosApplication_decorators = [di.Injectable()];
1332
- var _NaviosApplication = class _NaviosApplication {
1333
- environment = di.inject(NaviosEnvironment);
1334
- moduleLoader = di.inject(ModuleLoaderService);
1335
- httpApplication = null;
1336
- logger = di.inject(Logger, {
1337
- context: _NaviosApplication.name
1338
- });
1339
- container = di.inject(di.Container);
1340
- appModule = null;
1341
- options = {
1342
- adapter: []
1343
- };
1344
- isInitialized = false;
1345
- async setup(appModule, options = {
1346
- adapter: []
1347
- }) {
1348
- this.appModule = appModule;
1349
- this.options = options;
1350
- if (this.environment.hasHttpSetup()) {
1351
- this.httpApplication = await this.container.get(HttpAdapterToken);
1352
- }
1353
- }
1354
- getContainer() {
1355
- return this.container;
1356
- }
1357
- async init() {
1358
- if (!this.appModule) {
1359
- throw new Error("App module is not set. Call setAppModule() first.");
1360
- }
1361
- await this.moduleLoader.loadModules(this.appModule);
1362
- if (this.environment.hasHttpSetup()) {
1363
- await this.httpApplication?.setupHttpServer(this.options);
1364
- }
1365
- await this.initModules();
1366
- if (this.environment.hasHttpSetup()) {
1367
- await this.httpApplication?.ready();
1368
- }
1369
- this.isInitialized = true;
1370
- this.logger.debug("Navios application initialized");
1371
- }
1372
- async initModules() {
1373
- const modules = this.moduleLoader.getAllModules();
1374
- await this.httpApplication?.onModulesInit(modules);
1375
- }
1376
- enableCors(options) {
1377
- if (!this.httpApplication) {
1378
- throw new Error("HTTP application is not set");
1379
- }
1380
- this.httpApplication.enableCors(options);
1381
- }
1382
- enableMultipart(options) {
1383
- if (!this.httpApplication) {
1384
- throw new Error("HTTP application is not set");
1385
- }
1386
- this.httpApplication.enableMultipart(options);
1387
- }
1388
- setGlobalPrefix(prefix) {
1389
- if (!this.httpApplication) {
1390
- throw new Error("HTTP application is not set");
1391
- }
1392
- this.httpApplication.setGlobalPrefix(prefix);
1393
- }
1394
- getServer() {
1395
- if (!this.httpApplication) {
1396
- throw new Error("HTTP application is not set");
1397
- }
1398
- return this.httpApplication.getServer();
1399
- }
1400
- async listen(options) {
1401
- if (!this.httpApplication) {
1402
- throw new Error("HTTP application is not set");
1403
- }
1404
- await this.httpApplication.listen(options);
1405
- }
1406
- async dispose() {
1407
- if (this.httpApplication) {
1408
- await this.httpApplication.dispose();
1409
- }
1410
- if (this.moduleLoader) {
1411
- this.moduleLoader.dispose();
1412
- }
1413
- }
1414
- async close() {
1415
- await this.dispose();
1416
- }
1417
- };
1418
- _init14 = __decoratorStart();
1419
- _NaviosApplication = __decorateElement(_init14, 0, "NaviosApplication", _NaviosApplication_decorators, _NaviosApplication);
1420
- __runInitializers(_init14, 1, _NaviosApplication);
1421
- var NaviosApplication = _NaviosApplication;
1422
- var NaviosFactory = class {
1423
- static async create(appModule, options = {
1424
- adapter: []
1425
- }) {
1426
- const container = new di.Container();
1427
- await this.registerLoggerConfiguration(container, options);
1428
- const adapters = Array.isArray(options.adapter) ? options.adapter : [options.adapter];
1429
- for (const adapter of adapters) {
1430
- await this.registerEnvironment(container, adapter);
1431
- }
1432
- const app = await container.get(NaviosApplication);
1433
- await app.setup(appModule, options);
1434
- return app;
1435
- }
1436
- static async registerEnvironment(container, environment = {}) {
1437
- const naviosEnvironment = await container.get(NaviosEnvironment);
1438
- const { httpTokens } = environment;
1439
- if (httpTokens) {
1440
- naviosEnvironment.setupHttpEnvironment(httpTokens);
1441
- }
1442
- }
1443
- static async registerLoggerConfiguration(container, options) {
1444
- const { logger } = options;
1445
- if (Array.isArray(logger) || isNil(logger)) {
1446
- const loggerInstance = await container.get(
1447
- LoggerOutput
1448
- );
1449
- loggerInstance?.setup({
1450
- logLevels: logger
1451
- });
1452
- }
1453
- if (logger !== true && !isNil(logger)) {
1454
- container.getServiceLocator().getManager().storeCreatedHolder(
1455
- LoggerOutput.toString(),
1456
- logger,
1457
- di.InjectableType.Class,
1458
- di.InjectableScope.Singleton
1459
- );
1460
- }
1461
- }
1462
- };
1463
-
1464
- exports.AttributeFactory = AttributeFactory;
1465
- exports.BadRequestException = BadRequestException;
1466
- exports.ConfigProviderOptions = ConfigProviderOptions;
1467
- exports.ConfigService = ConfigService;
1468
- exports.ConfigServiceOptionsSchema = ConfigServiceOptionsSchema;
1469
- exports.ConfigServiceToken = ConfigServiceToken;
1470
- exports.ConflictException = ConflictException;
1471
- exports.Controller = Controller;
1472
- exports.ControllerMetadataKey = ControllerMetadataKey;
1473
- exports.Endpoint = Endpoint;
1474
- exports.EndpointAdapterToken = EndpointAdapterToken;
1475
- exports.EndpointMetadataKey = EndpointMetadataKey;
1476
- exports.EnvConfigProvider = EnvConfigProvider;
1477
- exports.ExecutionContext = ExecutionContext;
1478
- exports.ExecutionContextInjectionToken = ExecutionContextInjectionToken;
1479
- exports.ForbiddenException = ForbiddenException;
1480
- exports.Header = Header;
1481
- exports.HttpAdapterToken = HttpAdapterToken;
1482
- exports.HttpCode = HttpCode;
1483
- exports.HttpException = HttpException;
1484
- exports.InternalServerErrorException = InternalServerErrorException;
1485
- exports.LOG_LEVELS = LOG_LEVELS;
1486
- exports.Logger = Logger;
1487
- exports.LoggerOutput = LoggerOutput;
1488
- exports.Module = Module;
1489
- exports.ModuleLoaderService = ModuleLoaderService;
1490
- exports.ModuleMetadataKey = ModuleMetadataKey;
1491
- exports.Multipart = Multipart;
1492
- exports.MultipartAdapterToken = MultipartAdapterToken;
1493
- exports.NaviosApplication = NaviosApplication;
1494
- exports.NaviosFactory = NaviosFactory;
1495
- exports.NotFoundException = NotFoundException;
1496
- exports.Reply = Reply;
1497
- exports.Request = Request;
1498
- exports.Stream = Stream;
1499
- exports.StreamAdapterToken = StreamAdapterToken;
1500
- exports.UnauthorizedException = UnauthorizedException;
1501
- exports.UseGuards = UseGuards;
1502
- exports.XmlStreamAdapterToken = XmlStreamAdapterToken;
1503
- exports.addLeadingSlash = addLeadingSlash;
1504
- exports.clc = clc;
1505
- exports.envInt = envInt;
1506
- exports.envString = envString;
1507
- exports.extractControllerMetadata = extractControllerMetadata;
1508
- exports.extractModuleMetadata = extractModuleMetadata;
1509
- exports.filterLogLevels = filterLogLevels;
1510
- exports.getAllEndpointMetadata = getAllEndpointMetadata;
1511
- exports.getControllerMetadata = getControllerMetadata;
1512
- exports.getEndpointMetadata = getEndpointMetadata;
1513
- exports.getModuleMetadata = getModuleMetadata;
1514
- exports.hasControllerMetadata = hasControllerMetadata;
1515
- exports.hasModuleMetadata = hasModuleMetadata;
1516
- exports.isConstructor = isConstructor;
1517
- exports.isEmpty = isEmpty;
1518
- exports.isFunction = isFunction;
1519
- exports.isLogLevel = isLogLevel;
1520
- exports.isLogLevelEnabled = isLogLevelEnabled;
1521
- exports.isNil = isNil;
1522
- exports.isNumber = isNumber;
1523
- exports.isObject = isObject;
1524
- exports.isPlainObject = isPlainObject;
1525
- exports.isString = isString;
1526
- exports.isSymbol = isSymbol;
1527
- exports.isUndefined = isUndefined;
1528
- exports.loggerOptionsSchema = loggerOptionsSchema;
1529
- exports.normalizePath = normalizePath;
1530
- exports.provideConfig = provideConfig;
1531
- exports.stripEndSlash = stripEndSlash;
1532
- exports.yellow = yellow;
1533
- Object.keys(di).forEach(function (k) {
1534
- if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
1535
- enumerable: true,
1536
- get: function () { return di[k]; }
1537
- });
1538
- });
1539
- //# sourceMappingURL=index.js.map
1540
- //# sourceMappingURL=index.js.map