@venok/http 1.1.0 → 2.0.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 (337) hide show
  1. package/dist/constants.js +33 -0
  2. package/dist/decorators/controller.decorator.js +45 -0
  3. package/dist/decorators/header.decorator.js +28 -0
  4. package/dist/decorators/http-code.decorator.js +22 -0
  5. package/dist/decorators/http-params.decorator.js +63 -0
  6. package/dist/decorators/method.decorator.js +57 -0
  7. package/dist/decorators/redirect.decorator.js +28 -0
  8. package/dist/decorators/version.decorator.js +31 -0
  9. package/dist/enums/method.enum.js +32 -0
  10. package/dist/enums/paramtypes.enum.js +33 -0
  11. package/dist/enums/status.enum.js +71 -0
  12. package/dist/enums/version-type.enum.js +27 -0
  13. package/dist/exceptions/bad-gateway.exception.js +29 -0
  14. package/dist/exceptions/bad-request.exception.js +29 -0
  15. package/dist/exceptions/conflict.exception.js +29 -0
  16. package/dist/exceptions/expectation-failed.exception.js +29 -0
  17. package/dist/exceptions/failed-dependency.exception.js +29 -0
  18. package/dist/exceptions/forbidden.exception.js +29 -0
  19. package/dist/exceptions/gateway-timeout.exception.js +29 -0
  20. package/dist/exceptions/gone.exception.js +29 -0
  21. package/dist/exceptions/http-version-not-supported.exception.js +29 -0
  22. package/dist/exceptions/http.exception.js +94 -0
  23. package/dist/exceptions/im-a-teapot.exception.js +29 -0
  24. package/dist/exceptions/internal-server-error.exception.js +29 -0
  25. package/dist/exceptions/length-required.exception.js +29 -0
  26. package/dist/exceptions/method-not-allowed.exception.js +29 -0
  27. package/dist/exceptions/misdirected.exception.js +29 -0
  28. package/dist/exceptions/not-acceptable.exception.js +29 -0
  29. package/dist/exceptions/not-found.exception.js +29 -0
  30. package/dist/exceptions/not-implemented.exception.js +29 -0
  31. package/dist/exceptions/payload-too-large.exception.js +29 -0
  32. package/dist/exceptions/payment-required.exception.js +29 -0
  33. package/dist/exceptions/precondition-failed.exception.js +29 -0
  34. package/dist/exceptions/precondition-required.exception.js +29 -0
  35. package/dist/exceptions/proxy-authentication-required.exception.js +29 -0
  36. package/dist/exceptions/request-timeout.exception.js +29 -0
  37. package/dist/exceptions/requested-range-not-satisfiable.exception.js +29 -0
  38. package/dist/exceptions/service-unavailable.exception.js +29 -0
  39. package/dist/exceptions/too-many-requests.exception.js +29 -0
  40. package/dist/exceptions/unauthorized.exception.js +29 -0
  41. package/dist/exceptions/unprocessable-entity.exception.js +29 -0
  42. package/dist/exceptions/unsupported-media-type.exception.js +29 -0
  43. package/dist/exceptions/uri-too-long.exception.js +29 -0
  44. package/dist/filters/context.js +28 -0
  45. package/dist/filters/filter.js +56 -0
  46. package/dist/helpers/discovery.helper.js +69 -0
  47. package/dist/helpers/messages.helper.js +41 -0
  48. package/dist/helpers/middleware.helper.js +69 -0
  49. package/dist/helpers/path.helper.js +53 -0
  50. package/dist/helpers/route.helper.js +54 -0
  51. package/dist/http/adapter.js +294 -0
  52. package/dist/http/config.js +67 -0
  53. package/dist/http/configurable-module.js +26 -0
  54. package/dist/http/context.js +117 -0
  55. package/dist/http/explorer.js +133 -0
  56. package/dist/http/module.js +35 -0
  57. package/dist/http/starter-module.js +85 -0
  58. package/dist/index.d.ts +2117 -0
  59. package/dist/index.js +82 -0
  60. package/dist/interfaces/adapter.interface.js +0 -0
  61. package/dist/interfaces/exception.interface.js +0 -0
  62. package/dist/interfaces/index.js +7 -0
  63. package/dist/interfaces/middleware/config-proxy.interface.js +0 -0
  64. package/dist/interfaces/middleware/consumer.interface.js +0 -0
  65. package/dist/interfaces/middleware/index.js +3 -0
  66. package/dist/interfaces/options.interface.js +0 -0
  67. package/dist/interfaces/prefix.interface.js +0 -0
  68. package/dist/interfaces/router/definition.interface.js +0 -0
  69. package/dist/interfaces/router/exclude-route.interface.js +0 -0
  70. package/dist/interfaces/router/index.js +7 -0
  71. package/dist/interfaces/router/info.interface.js +0 -0
  72. package/dist/interfaces/router/path-metadata.interface.js +0 -0
  73. package/dist/interfaces/router/tree.interface.js +0 -0
  74. package/dist/interfaces/router/version.interface.js +21 -0
  75. package/dist/middleware/builder.js +96 -0
  76. package/dist/middleware/module.js +22 -0
  77. package/dist/middleware/routes-mapper.js +107 -0
  78. package/dist/middleware/service.js +48 -0
  79. package/dist/middleware/tree.js +91 -0
  80. package/dist/router/finder.js +64 -0
  81. package/dist/router/module.js +89 -0
  82. package/dist/router/path-factory.js +110 -0
  83. package/dist/symbols.js +33 -0
  84. package/package.json +41 -46
  85. package/adapter/adapter.d.ts +0 -57
  86. package/adapter/adapter.js +0 -58
  87. package/adapter/host.d.ts +0 -27
  88. package/adapter/host.js +0 -33
  89. package/application/application.d.ts +0 -18
  90. package/application/application.js +0 -51
  91. package/application/config.d.ts +0 -16
  92. package/application/config.js +0 -47
  93. package/application/http.module-defenition.d.ts +0 -8
  94. package/application/http.module-defenition.js +0 -6
  95. package/application/http.module.d.ts +0 -3
  96. package/application/http.module.js +0 -21
  97. package/application/http.service.d.ts +0 -11
  98. package/application/http.service.js +0 -43
  99. package/application/starter.d.ts +0 -41
  100. package/application/starter.js +0 -140
  101. package/constants.d.ts +0 -12
  102. package/constants.js +0 -15
  103. package/context/context.d.ts +0 -56
  104. package/context/context.js +0 -102
  105. package/context/response.controller.d.ts +0 -30
  106. package/context/response.controller.js +0 -86
  107. package/decorators/controller.decorator.d.ts +0 -82
  108. package/decorators/controller.decorator.js +0 -53
  109. package/decorators/header.decorator.d.ts +0 -12
  110. package/decorators/header.decorator.js +0 -23
  111. package/decorators/http-code.decorator.d.ts +0 -9
  112. package/decorators/http-code.decorator.js +0 -19
  113. package/decorators/index.d.ts +0 -9
  114. package/decorators/index.js +0 -25
  115. package/decorators/redirect.decorator.d.ts +0 -6
  116. package/decorators/redirect.decorator.js +0 -16
  117. package/decorators/render.decorator.d.ts +0 -10
  118. package/decorators/render.decorator.js +0 -20
  119. package/decorators/request-mapping.decorator.d.ts +0 -78
  120. package/decorators/request-mapping.decorator.js +0 -98
  121. package/decorators/route-params.decorator.d.ts +0 -378
  122. package/decorators/route-params.decorator.js +0 -227
  123. package/decorators/sse.decorator.d.ts +0 -6
  124. package/decorators/sse.decorator.js +0 -20
  125. package/decorators/version.decorator.d.ts +0 -7
  126. package/decorators/version.decorator.js +0 -20
  127. package/enums/http-status.enum.d.ts +0 -53
  128. package/enums/http-status.enum.js +0 -57
  129. package/enums/index.d.ts +0 -4
  130. package/enums/index.js +0 -20
  131. package/enums/request-method.enum.d.ts +0 -11
  132. package/enums/request-method.enum.js +0 -15
  133. package/enums/route-paramtypes.enum.d.ts +0 -14
  134. package/enums/route-paramtypes.enum.js +0 -18
  135. package/enums/version-type.enum.d.ts +0 -9
  136. package/enums/version-type.enum.js +0 -13
  137. package/errors/bad-gateway.exception.d.ts +0 -33
  138. package/errors/bad-gateway.exception.js +0 -41
  139. package/errors/bad-request.exception.d.ts +0 -33
  140. package/errors/bad-request.exception.js +0 -41
  141. package/errors/conflict.exception.d.ts +0 -33
  142. package/errors/conflict.exception.js +0 -41
  143. package/errors/forbidden.exception.d.ts +0 -33
  144. package/errors/forbidden.exception.js +0 -41
  145. package/errors/gateway-timeout.exception.d.ts +0 -33
  146. package/errors/gateway-timeout.exception.js +0 -41
  147. package/errors/gone.exception.d.ts +0 -33
  148. package/errors/gone.exception.js +0 -41
  149. package/errors/http-version-not-supported.exception.d.ts +0 -33
  150. package/errors/http-version-not-supported.exception.js +0 -41
  151. package/errors/http.exception.d.ts +0 -79
  152. package/errors/http.exception.js +0 -123
  153. package/errors/im-a-teapot.exception.d.ts +0 -36
  154. package/errors/im-a-teapot.exception.js +0 -44
  155. package/errors/index.d.ts +0 -11
  156. package/errors/index.js +0 -27
  157. package/errors/internal-server-error.exception.d.ts +0 -33
  158. package/errors/internal-server-error.exception.js +0 -41
  159. package/errors/invalid-middleware-configuration.exception.d.ts +0 -4
  160. package/errors/invalid-middleware-configuration.exception.js +0 -11
  161. package/errors/invalid-middleware.exception.d.ts +0 -4
  162. package/errors/invalid-middleware.exception.js +0 -11
  163. package/errors/not-found.exception.d.ts +0 -33
  164. package/errors/not-found.exception.js +0 -41
  165. package/errors/unknown-request-mapping.exception.d.ts +0 -5
  166. package/errors/unknown-request-mapping.exception.js +0 -11
  167. package/exceptions/messages.d.ts +0 -4
  168. package/exceptions/messages.js +0 -13
  169. package/explorers/path.explorer.d.ts +0 -8
  170. package/explorers/path.explorer.js +0 -38
  171. package/explorers/router.explorer.d.ts +0 -51
  172. package/explorers/router.explorer.js +0 -195
  173. package/factory/context-id.factory.d.ts +0 -41
  174. package/factory/context-id.factory.js +0 -52
  175. package/factory/index.d.ts +0 -4
  176. package/factory/index.js +0 -20
  177. package/factory/method.factory.d.ts +0 -5
  178. package/factory/method.factory.js +0 -30
  179. package/factory/params.factory.d.ts +0 -5
  180. package/factory/params.factory.js +0 -39
  181. package/factory/path.factory.d.ts +0 -13
  182. package/factory/path.factory.js +0 -95
  183. package/filters/context.d.ts +0 -9
  184. package/filters/context.js +0 -15
  185. package/filters/filter.d.ts +0 -22
  186. package/filters/filter.js +0 -78
  187. package/helpers/adapter.helper.d.ts +0 -27
  188. package/helpers/adapter.helper.js +0 -37
  189. package/helpers/exclude-route.helper.d.ts +0 -4
  190. package/helpers/exclude-route.helper.js +0 -18
  191. package/helpers/flatten-routes.helper.d.ts +0 -5
  192. package/helpers/flatten-routes.helper.js +0 -27
  193. package/helpers/index.d.ts +0 -6
  194. package/helpers/index.js +0 -22
  195. package/helpers/messages.helper.d.ts +0 -6
  196. package/helpers/messages.helper.js +0 -25
  197. package/helpers/path.helper.d.ts +0 -3
  198. package/helpers/path.helper.js +0 -13
  199. package/helpers/sse.helper.d.ts +0 -45
  200. package/helpers/sse.helper.js +0 -83
  201. package/index.d.ts +0 -1
  202. package/index.js +0 -3
  203. package/interfaces/http/cors.interface.d.ts +0 -58
  204. package/interfaces/http/cors.interface.js +0 -2
  205. package/interfaces/http/exception.interface.d.ts +0 -6
  206. package/interfaces/http/exception.interface.js +0 -2
  207. package/interfaces/http/exclude-route.interface.d.ts +0 -15
  208. package/interfaces/http/exclude-route.interface.js +0 -2
  209. package/interfaces/http/index.d.ts +0 -10
  210. package/interfaces/http/index.js +0 -26
  211. package/interfaces/http/message-event.interface.d.ts +0 -6
  212. package/interfaces/http/message-event.interface.js +0 -2
  213. package/interfaces/http/module.inteface.d.ts +0 -5
  214. package/interfaces/http/module.inteface.js +0 -2
  215. package/interfaces/http/options.interface.d.ts +0 -127
  216. package/interfaces/http/options.interface.js +0 -2
  217. package/interfaces/http/path-metadata.interface.d.ts +0 -31
  218. package/interfaces/http/path-metadata.interface.js +0 -2
  219. package/interfaces/http/prefix-options.interface.d.ts +0 -7
  220. package/interfaces/http/prefix-options.interface.js +0 -2
  221. package/interfaces/http/raw-request.d.ts +0 -4
  222. package/interfaces/http/raw-request.js +0 -2
  223. package/interfaces/http/routes.interface.d.ts +0 -7
  224. package/interfaces/http/routes.interface.js +0 -2
  225. package/interfaces/http/server.interface.d.ts +0 -54
  226. package/interfaces/http/server.interface.js +0 -2
  227. package/interfaces/index.d.ts +0 -3
  228. package/interfaces/index.js +0 -19
  229. package/interfaces/middleware/config-proxy.interface.d.ts +0 -23
  230. package/interfaces/middleware/config-proxy.interface.js +0 -2
  231. package/interfaces/middleware/configuration.interface.d.ts +0 -12
  232. package/interfaces/middleware/configuration.interface.js +0 -2
  233. package/interfaces/middleware/consumer.interface.d.ts +0 -16
  234. package/interfaces/middleware/consumer.interface.js +0 -2
  235. package/interfaces/middleware/index.d.ts +0 -4
  236. package/interfaces/middleware/index.js +0 -20
  237. package/interfaces/middleware/middleware.interface.d.ts +0 -7
  238. package/interfaces/middleware/middleware.interface.js +0 -2
  239. package/interfaces/router/callback-paramtypes.interface.d.ts +0 -1
  240. package/interfaces/router/callback-paramtypes.interface.js +0 -2
  241. package/interfaces/router/definition.interface.d.ts +0 -10
  242. package/interfaces/router/definition.interface.js +0 -2
  243. package/interfaces/router/index.d.ts +0 -3
  244. package/interfaces/router/index.js +0 -19
  245. package/interfaces/router/version-options.interface.d.ts +0 -92
  246. package/interfaces/router/version-options.interface.js +0 -9
  247. package/middleware/builder.d.ts +0 -15
  248. package/middleware/builder.js +0 -78
  249. package/middleware/container.d.ts +0 -13
  250. package/middleware/container.js +0 -50
  251. package/middleware/extractor.d.ts +0 -15
  252. package/middleware/extractor.js +0 -50
  253. package/middleware/index.d.ts +0 -1
  254. package/middleware/index.js +0 -17
  255. package/middleware/module.d.ts +0 -33
  256. package/middleware/module.js +0 -180
  257. package/middleware/resolver.d.ts +0 -10
  258. package/middleware/resolver.js +0 -27
  259. package/middleware/routes-mapper.d.ts +0 -19
  260. package/middleware/routes-mapper.js +0 -111
  261. package/middleware/utils.d.ts +0 -8
  262. package/middleware/utils.js +0 -86
  263. package/router/module.d.ts +0 -18
  264. package/router/module.js +0 -88
  265. package/router/resolver.d.ts +0 -31
  266. package/router/resolver.js +0 -128
  267. package/storage/http-instance.storage.d.ts +0 -9
  268. package/storage/http-instance.storage.js +0 -19
  269. package/stream/index.d.ts +0 -1
  270. package/stream/index.js +0 -17
  271. package/stream/interfaces/index.d.ts +0 -2
  272. package/stream/interfaces/index.js +0 -18
  273. package/stream/interfaces/streamable-handler-response.interface.d.ts +0 -12
  274. package/stream/interfaces/streamable-handler-response.interface.js +0 -2
  275. package/stream/interfaces/streamable-options.interface.d.ts +0 -10
  276. package/stream/interfaces/streamable-options.interface.js +0 -2
  277. package/stream/streamable-file.d.ts +0 -22
  278. package/stream/streamable-file.js +0 -55
  279. package/test/context/response.controller.spec.d.ts +0 -1
  280. package/test/context/response.controller.spec.js +0 -328
  281. package/test/decorators/controller.decorator.spec.d.ts +0 -1
  282. package/test/decorators/controller.decorator.spec.js +0 -113
  283. package/test/decorators/header.decorator.spec.d.ts +0 -1
  284. package/test/decorators/header.decorator.spec.js +0 -33
  285. package/test/decorators/http-code.decorator.spec.d.ts +0 -1
  286. package/test/decorators/http-code.decorator.spec.js +0 -30
  287. package/test/decorators/redirect.decorator.spec.d.ts +0 -1
  288. package/test/decorators/redirect.decorator.spec.js +0 -36
  289. package/test/decorators/render.decorator.spec.d.ts +0 -1
  290. package/test/decorators/render.decorator.spec.js +0 -30
  291. package/test/decorators/request-mapping.decorator.spec.d.ts +0 -1
  292. package/test/decorators/request-mapping.decorator.spec.js +0 -85
  293. package/test/decorators/route-params.decorator.spec.d.ts +0 -1
  294. package/test/decorators/route-params.decorator.spec.js +0 -493
  295. package/test/decorators/sse.decorator.spec.d.ts +0 -1
  296. package/test/decorators/sse.decorator.spec.js +0 -35
  297. package/test/decorators/version.decorator.spec.d.ts +0 -1
  298. package/test/decorators/version.decorator.spec.js +0 -43
  299. package/test/exceptions/handler.spec.d.ts +0 -1
  300. package/test/exceptions/handler.spec.js +0 -145
  301. package/test/exceptions/proxy.spec.d.ts +0 -1
  302. package/test/exceptions/proxy.spec.js +0 -74
  303. package/test/explorers/path.explorer.spec.d.ts +0 -1
  304. package/test/explorers/path.explorer.spec.js +0 -190
  305. package/test/explorers/router.explorer.spec.d.ts +0 -1
  306. package/test/explorers/router.explorer.spec.js +0 -206
  307. package/test/factory/method.factory.spec.d.ts +0 -1
  308. package/test/factory/method.factory.spec.js +0 -33
  309. package/test/factory/params.factory.spec.d.ts +0 -1
  310. package/test/factory/params.factory.spec.js +0 -104
  311. package/test/factory/path.factory.spec.d.ts +0 -1
  312. package/test/factory/path.factory.spec.js +0 -260
  313. package/test/filters/context.spec.d.ts +0 -1
  314. package/test/filters/context.spec.js +0 -96
  315. package/test/filters/filter.spec.d.ts +0 -1
  316. package/test/filters/filter.spec.js +0 -96
  317. package/test/helpers/flatten-routes.helper.spec.d.ts +0 -1
  318. package/test/helpers/flatten-routes.helper.spec.js +0 -131
  319. package/test/helpers/sse.helper.spec.d.ts +0 -1
  320. package/test/helpers/sse.helper.spec.js +0 -132
  321. package/test/middleware/builder.spec.d.ts +0 -1
  322. package/test/middleware/builder.spec.js +0 -235
  323. package/test/middleware/container.spec.d.ts +0 -1
  324. package/test/middleware/container.spec.js +0 -81
  325. package/test/middleware/module.spec.d.ts +0 -1
  326. package/test/middleware/module.spec.js +0 -206
  327. package/test/middleware/route-info-path-extractor.spec.d.ts +0 -1
  328. package/test/middleware/route-info-path-extractor.spec.js +0 -123
  329. package/test/middleware/routes-mapper.spec.d.ts +0 -1
  330. package/test/middleware/routes-mapper.spec.js +0 -162
  331. package/test/middleware/utils.spec.d.ts +0 -1
  332. package/test/middleware/utils.spec.js +0 -132
  333. package/test/router/module.spec.d.ts +0 -1
  334. package/test/router/module.spec.js +0 -40
  335. package/test/router/resolver.spec.d.ts +0 -1
  336. package/test/router/resolver.spec.js +0 -326
  337. package/tsconfig.tsbuildinfo +0 -1
package/dist/index.js ADDED
@@ -0,0 +1,82 @@
1
+ var __legacyDecorateClassTS = function(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
4
+ r = Reflect.decorate(decorators, target, key, desc);
5
+ else
6
+ for (var i = decorators.length - 1;i >= 0; i--)
7
+ if (d = decorators[i])
8
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
9
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
10
+ };
11
+ var __legacyDecorateParamTS = (index, decorator) => (target, key) => decorator(target, key, index);
12
+ var __legacyMetadataTS = (k, v) => {
13
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
14
+ return Reflect.metadata(k, v);
15
+ };
16
+
17
+ // packages/http/src/index.ts
18
+ import"reflect-metadata";
19
+
20
+ export * from "./decorators/controller.decorator.js";
21
+ export * from "./decorators/header.decorator.js";
22
+ export * from "./decorators/http-code.decorator.js";
23
+ export * from "./decorators/http-params.decorator.js";
24
+ export * from "./decorators/method.decorator.js";
25
+ export * from "./decorators/redirect.decorator.js";
26
+ export * from "./decorators/version.decorator.js";
27
+ export * from "./enums/method.enum.js";
28
+ export * from "./enums/paramtypes.enum.js";
29
+ export * from "./enums/status.enum.js";
30
+ export * from "./enums/version-type.enum.js";
31
+ export * from "./exceptions/bad-gateway.exception.js";
32
+ export * from "./exceptions/bad-request.exception.js";
33
+ export * from "./exceptions/conflict.exception.js";
34
+ export * from "./exceptions/expectation-failed.exception.js";
35
+ export * from "./exceptions/failed-dependency.exception.js";
36
+ export * from "./exceptions/forbidden.exception.js";
37
+ export * from "./exceptions/gateway-timeout.exception.js";
38
+ export * from "./exceptions/gone.exception.js";
39
+ export * from "./exceptions/http-version-not-supported.exception.js";
40
+ export * from "./exceptions/http.exception.js";
41
+ export * from "./exceptions/im-a-teapot.exception.js";
42
+ export * from "./exceptions/internal-server-error.exception.js";
43
+ export * from "./exceptions/length-required.exception.js";
44
+ export * from "./exceptions/method-not-allowed.exception.js";
45
+ export * from "./exceptions/misdirected.exception.js";
46
+ export * from "./exceptions/not-acceptable.exception.js";
47
+ export * from "./exceptions/not-found.exception.js";
48
+ export * from "./exceptions/not-implemented.exception.js";
49
+ export * from "./exceptions/payload-too-large.exception.js";
50
+ export * from "./exceptions/payment-required.exception.js";
51
+ export * from "./exceptions/precondition-failed.exception.js";
52
+ export * from "./exceptions/precondition-required.exception.js";
53
+ export * from "./exceptions/proxy-authentication-required.exception.js";
54
+ export * from "./exceptions/request-timeout.exception.js";
55
+ export * from "./exceptions/requested-range-not-satisfiable.exception.js";
56
+ export * from "./exceptions/service-unavailable.exception.js";
57
+ export * from "./exceptions/too-many-requests.exception.js";
58
+ export * from "./exceptions/unauthorized.exception.js";
59
+ export * from "./exceptions/unprocessable-entity.exception.js";
60
+ export * from "./exceptions/unsupported-media-type.exception.js";
61
+ export * from "./exceptions/uri-too-long.exception.js";
62
+ export * from "./filters/filter.js";
63
+ export * from "./helpers/middleware.helper.js";
64
+ export * from "./helpers/path.helper.js";
65
+ export * from "./helpers/route.helper.js";
66
+ export * from "./http/adapter.js";
67
+ export * from "./http/config.js";
68
+ export * from "./http/module.js";
69
+ export * from "./interfaces/index.js";
70
+ export * from "./middleware/module.js";
71
+ export * from "./router/module.js";
72
+ export * from "./constants.js";
73
+ import {
74
+ VENOK_APPLY_ROUTES_TO_INSTANCE,
75
+ VENOK_ADAPTER_RESPONSE,
76
+ VENOK_ADAPTER_TRANSFORM_NATIVE_ARGS_TO_CONTEXT
77
+ } from "./symbols.js";
78
+ export {
79
+ VENOK_APPLY_ROUTES_TO_INSTANCE,
80
+ VENOK_ADAPTER_TRANSFORM_NATIVE_ARGS_TO_CONTEXT,
81
+ VENOK_ADAPTER_RESPONSE
82
+ };
File without changes
File without changes
@@ -0,0 +1,7 @@
1
+ // packages/http/src/interfaces/index.ts
2
+ export * from "../interfaces/middleware/index.js";
3
+ export * from "../interfaces/router/index.js";
4
+ export * from "./adapter.interface.js";
5
+ export * from "./exception.interface.js";
6
+ export * from "./options.interface.js";
7
+ export * from "./prefix.interface.js";
@@ -0,0 +1,3 @@
1
+ // packages/http/src/interfaces/middleware/index.ts
2
+ export * from "./config-proxy.interface.js";
3
+ export * from "./consumer.interface.js";
File without changes
File without changes
File without changes
@@ -0,0 +1,7 @@
1
+ // packages/http/src/interfaces/router/index.ts
2
+ export * from "./definition.interface.js";
3
+ export * from "./exclude-route.interface.js";
4
+ export * from "./info.interface.js";
5
+ export * from "./path-metadata.interface.js";
6
+ export * from "./tree.interface.js";
7
+ export * from "./version.interface.js";
File without changes
File without changes
@@ -0,0 +1,21 @@
1
+ var __legacyDecorateClassTS = function(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
4
+ r = Reflect.decorate(decorators, target, key, desc);
5
+ else
6
+ for (var i = decorators.length - 1;i >= 0; i--)
7
+ if (d = decorators[i])
8
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
9
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
10
+ };
11
+ var __legacyDecorateParamTS = (index, decorator) => (target, key) => decorator(target, key, index);
12
+ var __legacyMetadataTS = (k, v) => {
13
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
14
+ return Reflect.metadata(k, v);
15
+ };
16
+
17
+ // packages/http/src/interfaces/router/version.interface.ts
18
+ var VERSION_NEUTRAL = Symbol("VERSION_NEUTRAL");
19
+ export {
20
+ VERSION_NEUTRAL
21
+ };
@@ -0,0 +1,96 @@
1
+ var __legacyDecorateClassTS = function(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
4
+ r = Reflect.decorate(decorators, target, key, desc);
5
+ else
6
+ for (var i = decorators.length - 1;i >= 0; i--)
7
+ if (d = decorators[i])
8
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
9
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
10
+ };
11
+ var __legacyDecorateParamTS = (index, decorator) => (target, key) => decorator(target, key, index);
12
+ var __legacyMetadataTS = (k, v) => {
13
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
14
+ return Reflect.metadata(k, v);
15
+ };
16
+
17
+ // packages/http/src/middleware/builder.ts
18
+ import { flatten } from "@venok/core";
19
+ import { filterMiddleware } from "../helpers/middleware.helper.js";
20
+ import { stripEndSlash } from "../helpers/path.helper.js";
21
+
22
+ class MiddlewareBuilder {
23
+ middlewareRoutesMapper;
24
+ httpAdapter;
25
+ middlewareCollection = new Set;
26
+ constructor(middlewareRoutesMapper, httpAdapter) {
27
+ this.middlewareRoutesMapper = middlewareRoutesMapper;
28
+ this.httpAdapter = httpAdapter;
29
+ }
30
+ apply(...middleware) {
31
+ return new MiddlewareBuilder.ConfigProxy(this, flatten(middleware));
32
+ }
33
+ build() {
34
+ return [...this.middlewareCollection];
35
+ }
36
+ getHttpAdapter() {
37
+ return this.httpAdapter;
38
+ }
39
+ static ConfigProxy = class {
40
+ builder;
41
+ middleware;
42
+ excludedRoutes = [];
43
+ constructor(builder, middleware) {
44
+ this.builder = builder;
45
+ this.middleware = middleware;
46
+ }
47
+ getExcludedRoutes() {
48
+ return this.excludedRoutes;
49
+ }
50
+ exclude(...routes) {
51
+ this.excludedRoutes = [
52
+ ...this.excludedRoutes,
53
+ ...this.getRoutesFlatList(routes)
54
+ ];
55
+ return this;
56
+ }
57
+ to(...routes) {
58
+ const { middlewareCollection } = this.builder;
59
+ const flattedRoutes = this.getRoutesFlatList(routes);
60
+ const forRoutes = this.removeOverlappedRoutes(flattedRoutes);
61
+ const configuration = {
62
+ middleware: filterMiddleware(this.middleware),
63
+ to: forRoutes,
64
+ exclude: this.excludedRoutes
65
+ };
66
+ middlewareCollection.add(configuration);
67
+ return this.builder;
68
+ }
69
+ getRoutesFlatList(routes) {
70
+ const { middlewareRoutesMapper } = this.builder;
71
+ return flatten(routes.map((route) => middlewareRoutesMapper.mapRouteToRouteInfo(route)));
72
+ }
73
+ removeOverlappedRoutes(routes) {
74
+ const regexMatchParams = /(:[^\/]*)/g;
75
+ const wildcard = "([^/]*)";
76
+ const routesWithRegex = routes.filter((route) => route.path.includes(":")).map((route) => ({
77
+ method: route.method,
78
+ path: route.path,
79
+ regex: new RegExp("^(" + route.path.replace(regexMatchParams, wildcard) + ")$", "g")
80
+ }));
81
+ return routes.filter((route) => {
82
+ const isOverlapped = (item) => {
83
+ if (route.method !== item.method)
84
+ return false;
85
+ const normalizedRoutePath = stripEndSlash(route.path);
86
+ return normalizedRoutePath !== item.path && item.regex.test(normalizedRoutePath);
87
+ };
88
+ const routeMatch = routesWithRegex.find(isOverlapped);
89
+ return routeMatch === undefined;
90
+ });
91
+ }
92
+ };
93
+ }
94
+ export {
95
+ MiddlewareBuilder
96
+ };
@@ -0,0 +1,22 @@
1
+ var __legacyDecorateClassTS = function(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
4
+ r = Reflect.decorate(decorators, target, key, desc);
5
+ else
6
+ for (var i = decorators.length - 1;i >= 0; i--)
7
+ if (d = decorators[i])
8
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
9
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
10
+ };
11
+ var __legacyDecorateParamTS = (index, decorator) => (target, key) => decorator(target, key, index);
12
+ var __legacyMetadataTS = (k, v) => {
13
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
14
+ return Reflect.metadata(k, v);
15
+ };
16
+
17
+ // packages/http/src/middleware/module.ts
18
+ class HttpMiddlewareModule {
19
+ }
20
+ export {
21
+ HttpMiddlewareModule
22
+ };
@@ -0,0 +1,107 @@
1
+ var __legacyDecorateClassTS = function(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
4
+ r = Reflect.decorate(decorators, target, key, desc);
5
+ else
6
+ for (var i = decorators.length - 1;i >= 0; i--)
7
+ if (d = decorators[i])
8
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
9
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
10
+ };
11
+ var __legacyDecorateParamTS = (index, decorator) => (target, key) => decorator(target, key, index);
12
+ var __legacyMetadataTS = (k, v) => {
13
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
14
+ return Reflect.metadata(k, v);
15
+ };
16
+
17
+ // packages/http/src/middleware/routes-mapper.ts
18
+ import { isString, MetadataScanner, MODULE_PATH, Reflector } from "@venok/core";
19
+ import { RoutePathFactory } from "../router/path-factory.js";
20
+ import { RouteFinder } from "../router/finder.js";
21
+ import { addLeadingSlash } from "../helpers/path.helper.js";
22
+ import { Controller } from "../decorators/controller.decorator.js";
23
+ import { targetModulesByContainer } from "../router/module.js";
24
+ import { HttpMethod } from "../enums/method.enum.js";
25
+
26
+ class MiddlewareRoutesMapper {
27
+ container;
28
+ httpConfig;
29
+ routeFinder;
30
+ routePathFactory;
31
+ constructor(container, httpConfig) {
32
+ this.container = container;
33
+ this.httpConfig = httpConfig;
34
+ this.routeFinder = new RouteFinder(new MetadataScanner);
35
+ this.routePathFactory = new RoutePathFactory(this.httpConfig);
36
+ }
37
+ mapRouteToRouteInfo(controllerOrRoute) {
38
+ if (isString(controllerOrRoute))
39
+ return this.getRouteInfoFromPath(controllerOrRoute);
40
+ return this.isRouteInfo(controllerOrRoute) ? this.getRouteInfoFromObject(controllerOrRoute) : this.getRouteInfoFromController(controllerOrRoute);
41
+ }
42
+ isRouteInfo(controllerOrRoute) {
43
+ return "path" in controllerOrRoute;
44
+ }
45
+ getRouteInfoFromPath(routePath) {
46
+ const globalPrefix = addLeadingSlash(this.httpConfig.getGlobalPrefix());
47
+ const path = this.routePathFactory.create({ methodPath: routePath, globalPrefix })[0];
48
+ return [{ path, method: HttpMethod.ALL }];
49
+ }
50
+ getRouteInfoFromObject(routeInfoObject) {
51
+ const globalPrefix = addLeadingSlash(this.httpConfig.getGlobalPrefix());
52
+ const paths = this.routePathFactory.create({
53
+ methodPath: routeInfoObject.path,
54
+ globalPrefix,
55
+ versioningOptions: this.httpConfig.getVersioning(),
56
+ methodVersion: routeInfoObject.version
57
+ });
58
+ return paths.map((path) => ({ path, method: routeInfoObject.method }));
59
+ }
60
+ getRouteInfoFromController(controller) {
61
+ const discovery = Reflector.reflector.get(Controller, controller);
62
+ const info = this.routeFinder.getControllerInfo(discovery, this.httpConfig);
63
+ const globalPrefix = addLeadingSlash(this.httpConfig.getGlobalPrefix());
64
+ const moduleRef = this.getHostModuleOfController(controller);
65
+ const modulePath = this.getModulePath(moduleRef?.metatype);
66
+ const routes = this.routeFinder.getControllerRoutes(Object.create(controller), controller.prototype);
67
+ const output = [];
68
+ info.prefixes.forEach((controllerPath) => {
69
+ routes.forEach((route) => {
70
+ route.paths.forEach((methodPath) => {
71
+ const metadata = {
72
+ modulePath,
73
+ globalPrefix,
74
+ methodPath,
75
+ controllerPath,
76
+ methodVersion: route.version,
77
+ controllerVersion: info.version,
78
+ versioningOptions: info.versioningOptions
79
+ };
80
+ const routeInfos = this.routePathFactory.create(metadata, route.requestMethod).map((endpoint) => ({ path: endpoint, method: route.requestMethod }));
81
+ output.push(...routeInfos);
82
+ });
83
+ });
84
+ });
85
+ return output;
86
+ }
87
+ getHostModuleOfController(metatype) {
88
+ if (!metatype)
89
+ return;
90
+ const modulesContainer = this.container.getModules();
91
+ const moduleRefsSet = targetModulesByContainer.get(modulesContainer);
92
+ if (!moduleRefsSet)
93
+ return;
94
+ const modules = Array.from(modulesContainer.values()).filter((moduleRef) => moduleRefsSet.has(moduleRef));
95
+ return modules.find(({ injectables }) => injectables.has(metatype));
96
+ }
97
+ getModulePath(metatype) {
98
+ if (!metatype)
99
+ return;
100
+ const modulesContainer = this.container.getModules();
101
+ const modulePath = Reflect.getMetadata(MODULE_PATH + modulesContainer.applicationId, metatype);
102
+ return modulePath ?? Reflect.getMetadata(MODULE_PATH, metatype);
103
+ }
104
+ }
105
+ export {
106
+ MiddlewareRoutesMapper
107
+ };
@@ -0,0 +1,48 @@
1
+ var __legacyDecorateClassTS = function(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
4
+ r = Reflect.decorate(decorators, target, key, desc);
5
+ else
6
+ for (var i = decorators.length - 1;i >= 0; i--)
7
+ if (d = decorators[i])
8
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
9
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
10
+ };
11
+ var __legacyDecorateParamTS = (index, decorator) => (target, key) => decorator(target, key, index);
12
+ var __legacyMetadataTS = (k, v) => {
13
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
14
+ return Reflect.metadata(k, v);
15
+ };
16
+
17
+ // packages/http/src/middleware/service.ts
18
+ import { MiddlewareService } from "@venok/integration";
19
+ import { Inject, Injectable } from "@venok/core";
20
+ import { HttpConfig } from "../http/config.js";
21
+ import { MiddlewareRoutesMapper } from "../middleware/routes-mapper.js";
22
+ import { MiddlewareBuilder } from "../middleware/builder.js";
23
+ import { HttpExceptionFiltersContext } from "../filters/context.js";
24
+ import { VENOK_ADAPTER_ADD_MIDDLEWARE } from "../symbols.js";
25
+ class HttpMiddlewareService extends MiddlewareService {
26
+ routesMapper;
27
+ onModuleInit() {
28
+ this.exceptionsFilter = new HttpExceptionFiltersContext(this.container, this.container.applicationConfig);
29
+ this.routesMapper = new MiddlewareRoutesMapper(this.container, this.httpConfig);
30
+ }
31
+ getMiddlewareBuilder() {
32
+ return new MiddlewareBuilder(this.routesMapper, this.httpConfig.getHttpAdapterRef());
33
+ }
34
+ registerHandler(info, proxy, config) {
35
+ const adapter = this.httpConfig.getHttpAdapterRef();
36
+ adapter[VENOK_ADAPTER_ADD_MIDDLEWARE](info.path, { use: proxy, method: info.method, excludedPaths: config.exclude });
37
+ }
38
+ }
39
+ __legacyDecorateClassTS([
40
+ Inject(HttpConfig),
41
+ __legacyMetadataTS("design:type", typeof HttpConfig === "undefined" ? Object : HttpConfig)
42
+ ], HttpMiddlewareService.prototype, "httpConfig", undefined);
43
+ HttpMiddlewareService = __legacyDecorateClassTS([
44
+ Injectable()
45
+ ], HttpMiddlewareService);
46
+ export {
47
+ HttpMiddlewareService
48
+ };
@@ -0,0 +1,91 @@
1
+ var __legacyDecorateClassTS = function(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
4
+ r = Reflect.decorate(decorators, target, key, desc);
5
+ else
6
+ for (var i = decorators.length - 1;i >= 0; i--)
7
+ if (d = decorators[i])
8
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
9
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
10
+ };
11
+ var __legacyDecorateParamTS = (index, decorator) => (target, key) => decorator(target, key, index);
12
+ var __legacyMetadataTS = (k, v) => {
13
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
14
+ return Reflect.metadata(k, v);
15
+ };
16
+
17
+ // packages/http/src/middleware/tree.ts
18
+ import { HttpMethod } from "../enums/method.enum.js";
19
+ var buildMiddlewareTree = (middlewares) => {
20
+ const root = { segment: "/", children: new Map, middlewares: [] };
21
+ for (const mw of middlewares) {
22
+ const parts = mw.path.split("/").filter(Boolean);
23
+ let current = root;
24
+ for (const part of parts) {
25
+ if (!current.children.has(part))
26
+ current.children.set(part, { segment: part, children: new Map, middlewares: [] });
27
+ current = current.children.get(part);
28
+ }
29
+ current.middlewares.push(mw);
30
+ }
31
+ return root;
32
+ };
33
+ var filterMiddlewaresByMethod = (middlewares, method) => {
34
+ return middlewares.map((middleware) => {
35
+ const handlers = middleware.handlers.filter((metadata) => metadata.method === method || metadata.method === HttpMethod.ALL);
36
+ if (handlers.length === 0)
37
+ return null;
38
+ return { path: middleware.path, handlers };
39
+ }).filter(Boolean);
40
+ };
41
+ var getMiddlewaresForPattern = (tree, pathPattern, method) => {
42
+ const parts = pathPattern.split("/").filter(Boolean);
43
+ const chain = [];
44
+ const visited = new Set;
45
+ function addMiddleware(node) {
46
+ if (!node.middlewares.length)
47
+ return;
48
+ const filtered = filterMiddlewaresByMethod(node.middlewares, method);
49
+ for (const middleware of filtered) {
50
+ if (!visited.has(middleware.path)) {
51
+ chain.push(middleware);
52
+ visited.add(middleware.path);
53
+ }
54
+ }
55
+ }
56
+ function traversePath(node, pathIndex) {
57
+ if (!node)
58
+ return;
59
+ addMiddleware(node);
60
+ if (pathIndex >= parts.length)
61
+ return;
62
+ const part = parts[pathIndex];
63
+ const wildcard = node.children.get("*");
64
+ if (wildcard && part !== "*") {
65
+ addMiddleware(wildcard);
66
+ traversePath(wildcard, pathIndex + 1);
67
+ }
68
+ const paramNode = Array.from(node.children.values()).find((c) => c.segment.startsWith(":"));
69
+ if (paramNode && !part.startsWith(":")) {
70
+ addMiddleware(paramNode);
71
+ traversePath(paramNode, pathIndex + 1);
72
+ }
73
+ const literalNode = node.children.get(part);
74
+ if (literalNode) {
75
+ traversePath(literalNode, pathIndex + 1);
76
+ return;
77
+ }
78
+ if (part.startsWith(":") && paramNode) {
79
+ traversePath(paramNode, pathIndex + 1);
80
+ } else if (part === "*" && wildcard) {
81
+ traversePath(wildcard, pathIndex + 1);
82
+ }
83
+ }
84
+ traversePath(tree, 0);
85
+ return chain;
86
+ };
87
+ export {
88
+ getMiddlewaresForPattern,
89
+ filterMiddlewaresByMethod,
90
+ buildMiddlewareTree
91
+ };
@@ -0,0 +1,64 @@
1
+ var __legacyDecorateClassTS = function(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
4
+ r = Reflect.decorate(decorators, target, key, desc);
5
+ else
6
+ for (var i = decorators.length - 1;i >= 0; i--)
7
+ if (d = decorators[i])
8
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
9
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
10
+ };
11
+ var __legacyDecorateParamTS = (index, decorator) => (target, key) => decorator(target, key, index);
12
+ var __legacyMetadataTS = (k, v) => {
13
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
14
+ return Reflect.metadata(k, v);
15
+ };
16
+
17
+ // packages/http/src/router/finder.ts
18
+ import { isString, isUndefined } from "@venok/core";
19
+ import { METHOD_METADATA, PATH_METADATA, VERSION_METADATA } from "../constants.js";
20
+ import { addLeadingSlash } from "../helpers/path.helper.js";
21
+
22
+ class RouteFinder {
23
+ metadataScanner;
24
+ constructor(metadataScanner) {
25
+ this.metadataScanner = metadataScanner;
26
+ }
27
+ getControllerInfo(discovery, httpConfig) {
28
+ const version = discovery.getVersion() ?? httpConfig.getVersioning()?.defaultVersion;
29
+ const host = discovery.getHost();
30
+ const prefixes = this.extractControllerPrefixes(discovery.getPrefixes());
31
+ const versioningOptions = httpConfig.getVersioning();
32
+ return { version, host, prefixes, versioningOptions };
33
+ }
34
+ extractControllerPrefixes(prefixes) {
35
+ if (isUndefined(prefixes))
36
+ return [];
37
+ if (Array.isArray(prefixes))
38
+ return prefixes.map((prefix) => addLeadingSlash(prefix));
39
+ return [addLeadingSlash(prefixes)];
40
+ }
41
+ getControllerRoutes(instance, prototype) {
42
+ const instancePrototype = isUndefined(prototype) ? Object.getPrototypeOf(instance) : prototype;
43
+ return this.metadataScanner.getAllMethodNames(instancePrototype).reduce((acc, method) => {
44
+ const route = this.exploreMethod(instance, instancePrototype, method);
45
+ if (route)
46
+ acc.push(route);
47
+ return acc;
48
+ }, []);
49
+ }
50
+ exploreMethod(instance, prototype, methodName) {
51
+ const targetCallback = instance[methodName];
52
+ const prototypeCallback = prototype[methodName];
53
+ const routePath = Reflect.getMetadata(PATH_METADATA, prototypeCallback);
54
+ if (isUndefined(routePath))
55
+ return null;
56
+ const requestMethod = Reflect.getMetadata(METHOD_METADATA, prototypeCallback);
57
+ const version = Reflect.getMetadata(VERSION_METADATA, prototypeCallback);
58
+ const paths = isString(routePath) ? [addLeadingSlash(routePath)] : routePath.map((p) => addLeadingSlash(p));
59
+ return { paths, requestMethod, targetCallback, methodName, version };
60
+ }
61
+ }
62
+ export {
63
+ RouteFinder
64
+ };