@navios/core 0.5.1 → 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 (277) 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 -188
  13. package/lib/index.mjs +4 -1439
  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 +26 -6
  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/index.mts +1 -0
  116. package/src/factories/multipart-adapter.factory.d.mts +6 -0
  117. package/src/factories/multipart-adapter.factory.d.mts.map +1 -0
  118. package/src/factories/reply.factory.d.mts +6 -0
  119. package/src/factories/reply.factory.d.mts.map +1 -0
  120. package/src/factories/request.factory.d.mts +6 -0
  121. package/src/factories/request.factory.d.mts.map +1 -0
  122. package/src/factories/stream-adapter.factory.d.mts +6 -0
  123. package/src/factories/stream-adapter.factory.d.mts.map +1 -0
  124. package/src/factories/xml-stream-adapter.factory.d.mts +6 -0
  125. package/src/factories/xml-stream-adapter.factory.d.mts.map +1 -0
  126. package/src/factories/xml-stream-adapter.factory.mts +20 -0
  127. package/src/index.d.mts +15 -0
  128. package/src/index.d.mts.map +1 -0
  129. package/src/index.mts +1 -0
  130. package/src/interfaces/abstract-execution-context.inteface.d.mts +44 -0
  131. package/src/interfaces/abstract-execution-context.inteface.d.mts.map +1 -0
  132. package/src/interfaces/abstract-execution-context.inteface.mts +35 -0
  133. package/src/interfaces/abstract-http-adapter.interface.d.mts +15 -0
  134. package/src/interfaces/abstract-http-adapter.interface.d.mts.map +1 -0
  135. package/src/interfaces/abstract-http-cors-options.interface.d.mts +58 -0
  136. package/src/interfaces/abstract-http-cors-options.interface.d.mts.map +1 -0
  137. package/src/interfaces/abstract-http-handler-adapter.interface.d.mts +7 -0
  138. package/src/interfaces/abstract-http-handler-adapter.interface.d.mts.map +1 -0
  139. package/src/interfaces/abstract-http-handler-adapter.interface.mts +2 -2
  140. package/src/interfaces/abstract-http-listen-options.interface.d.mts +5 -0
  141. package/src/interfaces/abstract-http-listen-options.interface.d.mts.map +1 -0
  142. package/src/interfaces/can-activate.d.mts +36 -0
  143. package/src/interfaces/can-activate.d.mts.map +1 -0
  144. package/src/interfaces/can-activate.mts +31 -0
  145. package/src/interfaces/http-header.d.mts +10 -0
  146. package/src/interfaces/http-header.d.mts.map +1 -0
  147. package/src/interfaces/index.d.mts +9 -0
  148. package/src/interfaces/index.d.mts.map +1 -0
  149. package/src/interfaces/navios-module.d.mts +29 -0
  150. package/src/interfaces/navios-module.d.mts.map +1 -0
  151. package/src/interfaces/navios-module.mts +25 -0
  152. package/src/legacy-compat/__type-tests__/legacy-decorators.spec-d.mts +420 -0
  153. package/src/legacy-compat/__type-tests__/tsconfig.json +15 -0
  154. package/src/legacy-compat/context-compat.d.mts +19 -0
  155. package/src/legacy-compat/context-compat.d.mts.map +1 -0
  156. package/src/legacy-compat/context-compat.mts +93 -0
  157. package/src/legacy-compat/decorators/controller.decorator.d.mts +21 -0
  158. package/src/legacy-compat/decorators/controller.decorator.d.mts.map +1 -0
  159. package/src/legacy-compat/decorators/controller.decorator.mts +31 -0
  160. package/src/legacy-compat/decorators/endpoint.decorator.d.mts +33 -0
  161. package/src/legacy-compat/decorators/endpoint.decorator.d.mts.map +1 -0
  162. package/src/legacy-compat/decorators/endpoint.decorator.mts +99 -0
  163. package/src/legacy-compat/decorators/header.decorator.d.mts +24 -0
  164. package/src/legacy-compat/decorators/header.decorator.d.mts.map +1 -0
  165. package/src/legacy-compat/decorators/header.decorator.mts +42 -0
  166. package/src/legacy-compat/decorators/http-code.decorator.d.mts +22 -0
  167. package/src/legacy-compat/decorators/http-code.decorator.d.mts.map +1 -0
  168. package/src/legacy-compat/decorators/http-code.decorator.mts +38 -0
  169. package/src/legacy-compat/decorators/index.d.mts +9 -0
  170. package/src/legacy-compat/decorators/index.d.mts.map +1 -0
  171. package/src/legacy-compat/decorators/index.mts +9 -0
  172. package/src/legacy-compat/decorators/module.decorator.d.mts +22 -0
  173. package/src/legacy-compat/decorators/module.decorator.d.mts.map +1 -0
  174. package/src/legacy-compat/decorators/module.decorator.mts +37 -0
  175. package/src/legacy-compat/decorators/multipart.decorator.d.mts +34 -0
  176. package/src/legacy-compat/decorators/multipart.decorator.d.mts.map +1 -0
  177. package/src/legacy-compat/decorators/multipart.decorator.mts +93 -0
  178. package/src/legacy-compat/decorators/stream.decorator.d.mts +34 -0
  179. package/src/legacy-compat/decorators/stream.decorator.d.mts.map +1 -0
  180. package/src/legacy-compat/decorators/stream.decorator.mts +76 -0
  181. package/src/legacy-compat/decorators/use-guards.decorator.d.mts +29 -0
  182. package/src/legacy-compat/decorators/use-guards.decorator.d.mts.map +1 -0
  183. package/src/legacy-compat/decorators/use-guards.decorator.mts +80 -0
  184. package/src/legacy-compat/index.d.mts +19 -0
  185. package/src/legacy-compat/index.d.mts.map +1 -0
  186. package/src/legacy-compat/index.mts +40 -0
  187. package/src/logger/console-logger.service.d.mts +196 -0
  188. package/src/logger/console-logger.service.d.mts.map +1 -0
  189. package/src/logger/console-logger.service.mts +15 -2
  190. package/src/logger/index.d.mts +7 -0
  191. package/src/logger/index.d.mts.map +1 -0
  192. package/src/logger/log-levels.d.mts +14 -0
  193. package/src/logger/log-levels.d.mts.map +1 -0
  194. package/src/logger/log-levels.mts +9 -0
  195. package/src/logger/logger-service.interface.d.mts +36 -0
  196. package/src/logger/logger-service.interface.d.mts.map +1 -0
  197. package/src/logger/logger.service.d.mts +57 -0
  198. package/src/logger/logger.service.d.mts.map +1 -0
  199. package/src/logger/logger.service.mts +19 -0
  200. package/src/logger/logger.tokens.d.mts +36 -0
  201. package/src/logger/logger.tokens.d.mts.map +1 -0
  202. package/src/logger/logger.tokens.mts +23 -0
  203. package/src/logger/utils/cli-colors.util.d.mts +10 -0
  204. package/src/logger/utils/cli-colors.util.d.mts.map +1 -0
  205. package/src/logger/utils/filter-log-levelts.util.d.mts +6 -0
  206. package/src/logger/utils/filter-log-levelts.util.d.mts.map +1 -0
  207. package/src/logger/utils/index.d.mts +6 -0
  208. package/src/logger/utils/index.d.mts.map +1 -0
  209. package/src/logger/utils/is-log-level-enabled.d.mts +8 -0
  210. package/src/logger/utils/is-log-level-enabled.d.mts.map +1 -0
  211. package/src/logger/utils/is-log-level.util.d.mts +6 -0
  212. package/src/logger/utils/is-log-level.util.d.mts.map +1 -0
  213. package/src/logger/utils/shared.utils.d.mts +14 -0
  214. package/src/logger/utils/shared.utils.d.mts.map +1 -0
  215. package/src/metadata/controller.metadata.d.mts +13 -0
  216. package/src/metadata/controller.metadata.d.mts.map +1 -0
  217. package/src/metadata/handler.metadata.d.mts +18 -0
  218. package/src/metadata/handler.metadata.d.mts.map +1 -0
  219. package/src/metadata/index.d.mts +4 -0
  220. package/src/metadata/index.d.mts.map +1 -0
  221. package/src/metadata/module.metadata.d.mts +13 -0
  222. package/src/metadata/module.metadata.d.mts.map +1 -0
  223. package/src/navios.application.d.mts +210 -0
  224. package/src/navios.application.d.mts.map +1 -0
  225. package/src/navios.application.mts +176 -2
  226. package/src/navios.environment.d.mts +11 -0
  227. package/src/navios.environment.d.mts.map +1 -0
  228. package/src/navios.factory.d.mts +68 -0
  229. package/src/navios.factory.d.mts.map +1 -0
  230. package/src/navios.factory.mts +59 -1
  231. package/src/services/guard-runner.service.d.mts +10 -0
  232. package/src/services/guard-runner.service.d.mts.map +1 -0
  233. package/src/services/guard-runner.service.mts +12 -11
  234. package/src/services/index.d.mts +3 -0
  235. package/src/services/index.d.mts.map +1 -0
  236. package/src/services/module-loader.service.d.mts +17 -0
  237. package/src/services/module-loader.service.d.mts.map +1 -0
  238. package/src/services/module-loader.service.mts +16 -11
  239. package/src/stores/index.d.mts +2 -0
  240. package/src/stores/index.d.mts.map +1 -0
  241. package/src/stores/index.mts +1 -0
  242. package/src/stores/request-id.store.d.mts +37 -0
  243. package/src/stores/request-id.store.d.mts.map +1 -0
  244. package/src/stores/request-id.store.mts +43 -0
  245. package/src/testing/index.mts +2 -0
  246. package/src/testing/testing-module.mts +231 -0
  247. package/src/tokens/endpoint-adapter.token.d.mts +4 -0
  248. package/src/tokens/endpoint-adapter.token.d.mts.map +1 -0
  249. package/src/tokens/execution-context.token.d.mts +5 -0
  250. package/src/tokens/execution-context.token.d.mts.map +1 -0
  251. package/src/tokens/http-adapter.token.d.mts +4 -0
  252. package/src/tokens/http-adapter.token.d.mts.map +1 -0
  253. package/src/tokens/index.d.mts +9 -0
  254. package/src/tokens/index.d.mts.map +1 -0
  255. package/src/tokens/index.mts +1 -0
  256. package/src/tokens/multipart-adapter.token.d.mts +4 -0
  257. package/src/tokens/multipart-adapter.token.d.mts.map +1 -0
  258. package/src/tokens/reply.token.d.mts +3 -0
  259. package/src/tokens/reply.token.d.mts.map +1 -0
  260. package/src/tokens/request.token.d.mts +3 -0
  261. package/src/tokens/request.token.d.mts.map +1 -0
  262. package/src/tokens/stream-adapter.token.d.mts +4 -0
  263. package/src/tokens/stream-adapter.token.d.mts.map +1 -0
  264. package/src/tokens/xml-stream-adapter.token.d.mts +4 -0
  265. package/src/tokens/xml-stream-adapter.token.d.mts.map +1 -0
  266. package/src/tokens/xml-stream-adapter.token.mts +8 -0
  267. package/tsconfig.lib.json +1 -1
  268. package/tsconfig.spec.json +3 -0
  269. package/tsdown.config.mts +35 -0
  270. package/vitest.config.mts +6 -0
  271. package/lib/_tsup-dts-rollup.d.mts +0 -1352
  272. package/lib/_tsup-dts-rollup.d.ts +0 -1352
  273. package/lib/index.d.ts +0 -188
  274. package/lib/index.js +0 -1519
  275. package/lib/index.js.map +0 -1
  276. package/lib/index.mjs.map +0 -1
  277. package/tsup.config.mts +0 -13
@@ -0,0 +1,622 @@
1
+ const require_src = require('./src-Cb1aTjl0.cjs');
2
+ let __navios_di = require("@navios/di");
3
+
4
+ //#region src/metadata/handler.metadata.mts
5
+ const EndpointMetadataKey = Symbol("EndpointMetadataKey");
6
+ function getAllEndpointMetadata(context) {
7
+ if (context.metadata) {
8
+ const metadata = context.metadata[EndpointMetadataKey];
9
+ if (metadata) return metadata;
10
+ else {
11
+ context.metadata[EndpointMetadataKey] = /* @__PURE__ */ new Set();
12
+ return context.metadata[EndpointMetadataKey];
13
+ }
14
+ }
15
+ throw new Error("[Navios] Wrong environment.");
16
+ }
17
+ function getEndpointMetadata(target, context) {
18
+ if (context.metadata) {
19
+ const metadata = getAllEndpointMetadata(context);
20
+ if (metadata) {
21
+ const endpointMetadata = Array.from(metadata).find((item) => item.classMethod === target.name);
22
+ if (endpointMetadata) return endpointMetadata;
23
+ else {
24
+ const newMetadata = {
25
+ classMethod: target.name,
26
+ url: "",
27
+ successStatusCode: 200,
28
+ adapterToken: null,
29
+ headers: {},
30
+ httpMethod: "GET",
31
+ config: null,
32
+ guards: /* @__PURE__ */ new Set(),
33
+ customAttributes: /* @__PURE__ */ new Map()
34
+ };
35
+ metadata.add(newMetadata);
36
+ return newMetadata;
37
+ }
38
+ }
39
+ }
40
+ throw new Error("[Navios] Wrong environment.");
41
+ }
42
+
43
+ //#endregion
44
+ //#region src/metadata/controller.metadata.mts
45
+ const ControllerMetadataKey = Symbol("ControllerMetadataKey");
46
+ function getControllerMetadata(target, context) {
47
+ if (context.metadata) {
48
+ const metadata = context.metadata[ControllerMetadataKey];
49
+ if (metadata) return metadata;
50
+ else {
51
+ const newMetadata = {
52
+ endpoints: getAllEndpointMetadata(context),
53
+ guards: /* @__PURE__ */ new Set(),
54
+ customAttributes: /* @__PURE__ */ new Map()
55
+ };
56
+ context.metadata[ControllerMetadataKey] = newMetadata;
57
+ target[ControllerMetadataKey] = newMetadata;
58
+ return newMetadata;
59
+ }
60
+ }
61
+ throw new Error("[Navios] Wrong environment.");
62
+ }
63
+ function extractControllerMetadata(target) {
64
+ const metadata = target[ControllerMetadataKey];
65
+ if (!metadata) throw new Error("[Navios] Controller metadata not found. Make sure to use @Controller decorator.");
66
+ return metadata;
67
+ }
68
+ function hasControllerMetadata(target) {
69
+ return !!target[ControllerMetadataKey];
70
+ }
71
+
72
+ //#endregion
73
+ //#region src/metadata/module.metadata.mts
74
+ const ModuleMetadataKey = Symbol("ControllerMetadataKey");
75
+ function getModuleMetadata(target, context) {
76
+ if (context.metadata) {
77
+ const metadata = context.metadata[ModuleMetadataKey];
78
+ if (metadata) return metadata;
79
+ else {
80
+ const newMetadata = {
81
+ controllers: /* @__PURE__ */ new Set(),
82
+ imports: /* @__PURE__ */ new Set(),
83
+ guards: /* @__PURE__ */ new Set(),
84
+ customAttributes: /* @__PURE__ */ new Map()
85
+ };
86
+ context.metadata[ModuleMetadataKey] = newMetadata;
87
+ target[ModuleMetadataKey] = newMetadata;
88
+ return newMetadata;
89
+ }
90
+ }
91
+ throw new Error("[Navios] Wrong environment.");
92
+ }
93
+ function extractModuleMetadata(target) {
94
+ const metadata = target[ModuleMetadataKey];
95
+ if (!metadata) throw new Error(`[Navios] Module metadata not found for ${target.name}. Make sure to use @Module decorator.`);
96
+ return metadata;
97
+ }
98
+ function hasModuleMetadata(target) {
99
+ return !!target[ModuleMetadataKey];
100
+ }
101
+
102
+ //#endregion
103
+ //#region src/decorators/controller.decorator.mts
104
+ /**
105
+ * Decorator that marks a class as a Navios controller.
106
+ *
107
+ * Controllers handle HTTP requests and define endpoints.
108
+ * They are request-scoped by default, meaning a new instance is created for each request.
109
+ *
110
+ * @param options - Controller configuration options
111
+ * @returns A class decorator
112
+ *
113
+ * @example
114
+ * ```typescript
115
+ * @Controller({ guards: [AuthGuard] })
116
+ * export class UserController {
117
+ * @Endpoint(getUserEndpoint)
118
+ * async getUser(request: EndpointParams<typeof getUserEndpoint>) {
119
+ * // Handle request
120
+ * }
121
+ * }
122
+ * ```
123
+ */ function Controller({ guards } = {}) {
124
+ return function(target, context) {
125
+ if (context.kind !== "class") throw new Error("[Navios] @Controller decorator can only be used on classes.");
126
+ const token = __navios_di.InjectionToken.create(target);
127
+ if (context.metadata) {
128
+ const controllerMetadata = getControllerMetadata(target, context);
129
+ if (guards) for (const guard of Array.from(guards).reverse()) controllerMetadata.guards.add(guard);
130
+ }
131
+ return (0, __navios_di.Injectable)({
132
+ token,
133
+ scope: __navios_di.InjectableScope.Request
134
+ })(target, context);
135
+ };
136
+ }
137
+
138
+ //#endregion
139
+ //#region src/tokens/endpoint-adapter.token.mts
140
+ const EndpointAdapterToken = __navios_di.InjectionToken.create("EndpointAdapterToken");
141
+
142
+ //#endregion
143
+ //#region src/tokens/execution-context.token.mts
144
+ const ExecutionContextInjectionToken = "ExecutionContextInjectionToken";
145
+ const ExecutionContext = __navios_di.InjectionToken.create(ExecutionContextInjectionToken);
146
+
147
+ //#endregion
148
+ //#region src/tokens/http-adapter.token.mts
149
+ const HttpAdapterToken = __navios_di.InjectionToken.create("HttpAdapterToken");
150
+
151
+ //#endregion
152
+ //#region src/tokens/multipart-adapter.token.mts
153
+ const MultipartAdapterToken = __navios_di.InjectionToken.create("MultipartAdapterToken");
154
+
155
+ //#endregion
156
+ //#region src/tokens/reply.token.mts
157
+ const Reply = __navios_di.InjectionToken.create("ReplyToken");
158
+
159
+ //#endregion
160
+ //#region src/tokens/request.token.mts
161
+ const Request = __navios_di.InjectionToken.create("RequestToken");
162
+
163
+ //#endregion
164
+ //#region src/tokens/stream-adapter.token.mts
165
+ const StreamAdapterToken = __navios_di.InjectionToken.create("StreamAdapterToken");
166
+
167
+ //#endregion
168
+ //#region src/tokens/xml-stream-adapter.token.mts
169
+ const XmlStreamAdapterToken = __navios_di.InjectionToken.create("XmlStreamAdapterToken");
170
+
171
+ //#endregion
172
+ //#region src/decorators/endpoint.decorator.mts
173
+ /**
174
+ * Decorator that marks a method as an HTTP endpoint.
175
+ *
176
+ * The endpoint must be defined using @navios/builder's `declareEndpoint` method.
177
+ * This ensures type safety and consistency between client and server.
178
+ *
179
+ * @param endpoint - The endpoint declaration from @navios/builder
180
+ * @returns A method decorator
181
+ *
182
+ * @example
183
+ * ```typescript
184
+ * import { builder } from '@navios/builder'
185
+ *
186
+ * const api = builder()
187
+ * const getUserEndpoint = api.declareEndpoint({
188
+ * method: 'get',
189
+ * url: '/users/$userId',
190
+ * responseSchema: z.object({ id: z.string(), name: z.string() }),
191
+ * })
192
+ *
193
+ * @Controller()
194
+ * export class UserController {
195
+ * @Endpoint(getUserEndpoint)
196
+ * async getUser(request: EndpointParams<typeof getUserEndpoint>) {
197
+ * const { userId } = request.urlParams
198
+ * return { id: userId, name: 'John' }
199
+ * }
200
+ * }
201
+ * ```
202
+ */ function Endpoint(endpoint) {
203
+ return (target, context) => {
204
+ if (context.kind !== "method") throw new Error("[Navios] Endpoint decorator can only be used on methods.");
205
+ const config = endpoint.config;
206
+ if (context.metadata) {
207
+ let endpointMetadata = getEndpointMetadata(target, context);
208
+ if (endpointMetadata.config && endpointMetadata.config.url) throw new Error(`[Navios] Endpoint ${config.method} ${config.url} already exists. Please use a different method or url.`);
209
+ endpointMetadata.config = config;
210
+ endpointMetadata.adapterToken = EndpointAdapterToken;
211
+ endpointMetadata.classMethod = target.name;
212
+ endpointMetadata.httpMethod = config.method;
213
+ endpointMetadata.url = config.url;
214
+ }
215
+ return target;
216
+ };
217
+ }
218
+
219
+ //#endregion
220
+ //#region src/decorators/header.decorator.mts
221
+ /**
222
+ * Decorator that sets a custom HTTP response header for an endpoint.
223
+ *
224
+ * @param name - The header name (e.g., 'Content-Type', 'Cache-Control')
225
+ * @param value - The header value (string, number, or array of strings)
226
+ * @returns A method decorator
227
+ *
228
+ * @example
229
+ * ```typescript
230
+ * @Controller()
231
+ * export class UserController {
232
+ * @Endpoint(getUserEndpoint)
233
+ * @Header('Cache-Control', 'max-age=3600')
234
+ * async getUser() {
235
+ * return { id: '1', name: 'John' }
236
+ * }
237
+ * }
238
+ * ```
239
+ */ function Header(name, value) {
240
+ return (target, context) => {
241
+ if (context.kind !== "method") throw new Error("[Navios] Header decorator can only be used on methods.");
242
+ const metadata = getEndpointMetadata(target, context);
243
+ metadata.headers[name] = value;
244
+ return target;
245
+ };
246
+ }
247
+
248
+ //#endregion
249
+ //#region src/decorators/http-code.decorator.mts
250
+ /**
251
+ * Decorator that sets a custom HTTP status code for successful responses.
252
+ *
253
+ * By default, endpoints return 200 OK. Use this decorator to return a different status code.
254
+ *
255
+ * @param code - The HTTP status code to return (e.g., 201, 204, 202)
256
+ * @returns A method decorator
257
+ *
258
+ * @example
259
+ * ```typescript
260
+ * @Controller()
261
+ * export class UserController {
262
+ * @Endpoint(createUserEndpoint)
263
+ * @HttpCode(201)
264
+ * async createUser() {
265
+ * return { id: '1', name: 'John' }
266
+ * }
267
+ * }
268
+ * ```
269
+ */ function HttpCode(code) {
270
+ return (target, context) => {
271
+ if (context.kind !== "method") throw new Error("[Navios] HttpCode decorator can only be used on methods.");
272
+ const metadata = getEndpointMetadata(target, context);
273
+ metadata.successStatusCode = code;
274
+ return target;
275
+ };
276
+ }
277
+
278
+ //#endregion
279
+ //#region src/decorators/module.decorator.mts
280
+ /**
281
+ * Decorator that marks a class as a Navios module.
282
+ *
283
+ * Modules are the basic building blocks of a Navios application.
284
+ * They organize controllers, services, and other modules into logical units.
285
+ *
286
+ * @param options - Module configuration options
287
+ * @returns A class decorator
288
+ *
289
+ * @example
290
+ * ```typescript
291
+ * @Module({
292
+ * controllers: [UserController, AuthController],
293
+ * imports: [DatabaseModule],
294
+ * guards: [AuthGuard],
295
+ * })
296
+ * export class AppModule {}
297
+ * ```
298
+ */ function Module({ controllers = [], imports = [], guards = [] } = {
299
+ controllers: [],
300
+ imports: [],
301
+ guards: []
302
+ }) {
303
+ return (target, context) => {
304
+ if (context.kind !== "class") throw new Error("[Navios] @Module decorator can only be used on classes.");
305
+ const token = __navios_di.InjectionToken.create(target);
306
+ const moduleMetadata = getModuleMetadata(target, context);
307
+ for (const controller of controllers) moduleMetadata.controllers.add(controller);
308
+ for (const importedModule of imports) moduleMetadata.imports.add(importedModule);
309
+ for (const guard of Array.from(guards).reverse()) moduleMetadata.guards.add(guard);
310
+ return (0, __navios_di.Injectable)({
311
+ token,
312
+ scope: __navios_di.InjectableScope.Singleton
313
+ })(target, context);
314
+ };
315
+ }
316
+
317
+ //#endregion
318
+ //#region src/decorators/multipart.decorator.mts
319
+ /**
320
+ * Decorator that marks a method as a multipart/form-data endpoint.
321
+ *
322
+ * Use this decorator for endpoints that handle file uploads or form data.
323
+ * The endpoint must be defined using @navios/builder's `declareMultipart` method.
324
+ *
325
+ * @param endpoint - The multipart endpoint declaration from @navios/builder
326
+ * @returns A method decorator
327
+ *
328
+ * @example
329
+ * ```typescript
330
+ * const uploadFileEndpoint = api.declareMultipart({
331
+ * method: 'post',
332
+ * url: '/upload',
333
+ * requestSchema: z.object({ file: z.instanceof(File) }),
334
+ * responseSchema: z.object({ url: z.string() }),
335
+ * })
336
+ *
337
+ * @Controller()
338
+ * export class FileController {
339
+ * @Multipart(uploadFileEndpoint)
340
+ * async uploadFile(request: MultipartParams<typeof uploadFileEndpoint>) {
341
+ * const { file } = request.data
342
+ * // Handle file upload
343
+ * return { url: 'https://example.com/file.jpg' }
344
+ * }
345
+ * }
346
+ * ```
347
+ */ function Multipart(endpoint) {
348
+ return (target, context) => {
349
+ if (typeof target !== "function") throw new Error("[Navios] Endpoint decorator can only be used on functions.");
350
+ if (context.kind !== "method") throw new Error("[Navios] Endpoint decorator can only be used on methods.");
351
+ const config = endpoint.config;
352
+ if (context.metadata) {
353
+ let endpointMetadata = getEndpointMetadata(target, context);
354
+ if (endpointMetadata.config && endpointMetadata.config.url) throw new Error(`[Navios] Endpoint ${config.method} ${config.url} already exists. Please use a different method or url.`);
355
+ endpointMetadata.config = config;
356
+ endpointMetadata.adapterToken = MultipartAdapterToken;
357
+ endpointMetadata.classMethod = target.name;
358
+ endpointMetadata.httpMethod = config.method;
359
+ endpointMetadata.url = config.url;
360
+ }
361
+ return target;
362
+ };
363
+ }
364
+
365
+ //#endregion
366
+ //#region src/decorators/stream.decorator.mts
367
+ /**
368
+ * Decorator that marks a method as a streaming endpoint.
369
+ *
370
+ * Use this decorator for endpoints that stream data (e.g., file downloads, SSE).
371
+ * The endpoint must be defined using @navios/builder's `declareStream` method.
372
+ *
373
+ * @param endpoint - The stream endpoint declaration from @navios/builder
374
+ * @returns A method decorator
375
+ *
376
+ * @example
377
+ * ```typescript
378
+ * const downloadFileEndpoint = api.declareStream({
379
+ * method: 'get',
380
+ * url: '/files/$fileId',
381
+ * })
382
+ *
383
+ * @Controller()
384
+ * export class FileController {
385
+ * @Stream(downloadFileEndpoint)
386
+ * async downloadFile(request: StreamParams<typeof downloadFileEndpoint>, reply: any) {
387
+ * const { fileId } = request.urlParams
388
+ * // Stream file data to reply
389
+ * }
390
+ * }
391
+ * ```
392
+ */ function Stream(endpoint) {
393
+ return (target, context) => {
394
+ if (typeof target !== "function") throw new Error("[Navios] Endpoint decorator can only be used on functions.");
395
+ if (context.kind !== "method") throw new Error("[Navios] Endpoint decorator can only be used on methods.");
396
+ const config = endpoint.config;
397
+ if (context.metadata) {
398
+ let endpointMetadata = getEndpointMetadata(target, context);
399
+ if (endpointMetadata.config && endpointMetadata.config.url) throw new Error(`[Navios] Endpoint ${config.method} ${config.url} already exists. Please use a different method or url.`);
400
+ endpointMetadata.config = config;
401
+ endpointMetadata.adapterToken = StreamAdapterToken;
402
+ endpointMetadata.classMethod = target.name;
403
+ endpointMetadata.httpMethod = config.method;
404
+ endpointMetadata.url = config.url;
405
+ }
406
+ return target;
407
+ };
408
+ }
409
+
410
+ //#endregion
411
+ //#region src/decorators/use-guards.decorator.mts
412
+ /**
413
+ * Decorator that applies guards to a controller or endpoint.
414
+ *
415
+ * Guards are used for authentication, authorization, and request validation.
416
+ * They implement the `CanActivate` interface and are executed before the endpoint handler.
417
+ * Guards can be applied at the module, controller, or endpoint level.
418
+ *
419
+ * @param guards - Guard classes or injection tokens to apply
420
+ * @returns A class or method decorator
421
+ *
422
+ * @example
423
+ * ```typescript
424
+ * // Apply to a controller
425
+ * @Controller()
426
+ * @UseGuards(AuthGuard, RoleGuard)
427
+ * export class UserController {
428
+ * @Endpoint(getUserEndpoint)
429
+ * async getUser() { }
430
+ * }
431
+ *
432
+ * // Apply to a specific endpoint
433
+ * @Controller()
434
+ * export class UserController {
435
+ * @Endpoint(getUserEndpoint)
436
+ * @UseGuards(AuthGuard)
437
+ * async getUser() { }
438
+ * }
439
+ * ```
440
+ */ function UseGuards(...guards) {
441
+ return function(target, context) {
442
+ if (context.kind === "class") {
443
+ const controllerMetadata = getControllerMetadata(target, context);
444
+ for (const guard of guards.reverse()) controllerMetadata.guards.add(guard);
445
+ } else if (context.kind === "method") {
446
+ const endpointMetadata = getEndpointMetadata(target, context);
447
+ for (const guard of guards.reverse()) endpointMetadata.guards.add(guard);
448
+ } else throw new Error("[Navios] @UseGuards decorator can only be used on classes or methods.");
449
+ return target;
450
+ };
451
+ }
452
+
453
+ //#endregion
454
+ Object.defineProperty(exports, 'Controller', {
455
+ enumerable: true,
456
+ get: function () {
457
+ return Controller;
458
+ }
459
+ });
460
+ Object.defineProperty(exports, 'ControllerMetadataKey', {
461
+ enumerable: true,
462
+ get: function () {
463
+ return ControllerMetadataKey;
464
+ }
465
+ });
466
+ Object.defineProperty(exports, 'Endpoint', {
467
+ enumerable: true,
468
+ get: function () {
469
+ return Endpoint;
470
+ }
471
+ });
472
+ Object.defineProperty(exports, 'EndpointAdapterToken', {
473
+ enumerable: true,
474
+ get: function () {
475
+ return EndpointAdapterToken;
476
+ }
477
+ });
478
+ Object.defineProperty(exports, 'EndpointMetadataKey', {
479
+ enumerable: true,
480
+ get: function () {
481
+ return EndpointMetadataKey;
482
+ }
483
+ });
484
+ Object.defineProperty(exports, 'ExecutionContext', {
485
+ enumerable: true,
486
+ get: function () {
487
+ return ExecutionContext;
488
+ }
489
+ });
490
+ Object.defineProperty(exports, 'ExecutionContextInjectionToken', {
491
+ enumerable: true,
492
+ get: function () {
493
+ return ExecutionContextInjectionToken;
494
+ }
495
+ });
496
+ Object.defineProperty(exports, 'Header', {
497
+ enumerable: true,
498
+ get: function () {
499
+ return Header;
500
+ }
501
+ });
502
+ Object.defineProperty(exports, 'HttpAdapterToken', {
503
+ enumerable: true,
504
+ get: function () {
505
+ return HttpAdapterToken;
506
+ }
507
+ });
508
+ Object.defineProperty(exports, 'HttpCode', {
509
+ enumerable: true,
510
+ get: function () {
511
+ return HttpCode;
512
+ }
513
+ });
514
+ Object.defineProperty(exports, 'Module', {
515
+ enumerable: true,
516
+ get: function () {
517
+ return Module;
518
+ }
519
+ });
520
+ Object.defineProperty(exports, 'ModuleMetadataKey', {
521
+ enumerable: true,
522
+ get: function () {
523
+ return ModuleMetadataKey;
524
+ }
525
+ });
526
+ Object.defineProperty(exports, 'Multipart', {
527
+ enumerable: true,
528
+ get: function () {
529
+ return Multipart;
530
+ }
531
+ });
532
+ Object.defineProperty(exports, 'MultipartAdapterToken', {
533
+ enumerable: true,
534
+ get: function () {
535
+ return MultipartAdapterToken;
536
+ }
537
+ });
538
+ Object.defineProperty(exports, 'Reply', {
539
+ enumerable: true,
540
+ get: function () {
541
+ return Reply;
542
+ }
543
+ });
544
+ Object.defineProperty(exports, 'Request', {
545
+ enumerable: true,
546
+ get: function () {
547
+ return Request;
548
+ }
549
+ });
550
+ Object.defineProperty(exports, 'Stream', {
551
+ enumerable: true,
552
+ get: function () {
553
+ return Stream;
554
+ }
555
+ });
556
+ Object.defineProperty(exports, 'StreamAdapterToken', {
557
+ enumerable: true,
558
+ get: function () {
559
+ return StreamAdapterToken;
560
+ }
561
+ });
562
+ Object.defineProperty(exports, 'UseGuards', {
563
+ enumerable: true,
564
+ get: function () {
565
+ return UseGuards;
566
+ }
567
+ });
568
+ Object.defineProperty(exports, 'XmlStreamAdapterToken', {
569
+ enumerable: true,
570
+ get: function () {
571
+ return XmlStreamAdapterToken;
572
+ }
573
+ });
574
+ Object.defineProperty(exports, 'extractControllerMetadata', {
575
+ enumerable: true,
576
+ get: function () {
577
+ return extractControllerMetadata;
578
+ }
579
+ });
580
+ Object.defineProperty(exports, 'extractModuleMetadata', {
581
+ enumerable: true,
582
+ get: function () {
583
+ return extractModuleMetadata;
584
+ }
585
+ });
586
+ Object.defineProperty(exports, 'getAllEndpointMetadata', {
587
+ enumerable: true,
588
+ get: function () {
589
+ return getAllEndpointMetadata;
590
+ }
591
+ });
592
+ Object.defineProperty(exports, 'getControllerMetadata', {
593
+ enumerable: true,
594
+ get: function () {
595
+ return getControllerMetadata;
596
+ }
597
+ });
598
+ Object.defineProperty(exports, 'getEndpointMetadata', {
599
+ enumerable: true,
600
+ get: function () {
601
+ return getEndpointMetadata;
602
+ }
603
+ });
604
+ Object.defineProperty(exports, 'getModuleMetadata', {
605
+ enumerable: true,
606
+ get: function () {
607
+ return getModuleMetadata;
608
+ }
609
+ });
610
+ Object.defineProperty(exports, 'hasControllerMetadata', {
611
+ enumerable: true,
612
+ get: function () {
613
+ return hasControllerMetadata;
614
+ }
615
+ });
616
+ Object.defineProperty(exports, 'hasModuleMetadata', {
617
+ enumerable: true,
618
+ get: function () {
619
+ return hasModuleMetadata;
620
+ }
621
+ });
622
+ //# sourceMappingURL=use-guards.decorator-DdvUhB03.cjs.map