@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/router/module.js DELETED
@@ -1,88 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- var RouterModule_1;
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.RouterModule = exports.targetModulesByContainer = exports.ROUTES = void 0;
17
- const core_1 = require("../../core");
18
- const helpers_1 = require("../helpers");
19
- const constants_1 = require("../../core/constants");
20
- const helpers_2 = require("../helpers");
21
- exports.ROUTES = Symbol("ROUTES");
22
- exports.targetModulesByContainer = new WeakMap();
23
- /**
24
- * @publicApi
25
- */
26
- let RouterModule = RouterModule_1 = class RouterModule {
27
- constructor(modulesContainer, routes) {
28
- this.modulesContainer = modulesContainer;
29
- this.routes = routes;
30
- this.routes = this.deepCloneRoutes(routes);
31
- this.initialize();
32
- }
33
- static register(routes) {
34
- return {
35
- module: RouterModule_1,
36
- providers: [
37
- {
38
- provide: exports.ROUTES,
39
- useValue: routes,
40
- },
41
- ],
42
- };
43
- }
44
- deepCloneRoutes(routes) {
45
- return routes.map((routeOrType) => {
46
- if (typeof routeOrType === "function")
47
- return routeOrType;
48
- if (routeOrType.children) {
49
- return {
50
- ...routeOrType,
51
- children: this.deepCloneRoutes(routeOrType.children),
52
- };
53
- }
54
- return { ...routeOrType };
55
- });
56
- }
57
- initialize() {
58
- const flattenedRoutes = (0, helpers_2.flattenRoutePaths)(this.routes);
59
- flattenedRoutes.forEach((route) => {
60
- const modulePath = (0, helpers_1.normalizePath)(route.path);
61
- this.registerModulePathMetadata(route.module, modulePath);
62
- this.updateTargetModulesCache(route.module);
63
- });
64
- }
65
- registerModulePathMetadata(moduleCtor, modulePath) {
66
- Reflect.defineMetadata(constants_1.MODULE_PATH + this.modulesContainer.applicationId, modulePath, moduleCtor);
67
- }
68
- updateTargetModulesCache(moduleCtor) {
69
- let moduleClassSet;
70
- if (exports.targetModulesByContainer.has(this.modulesContainer)) {
71
- moduleClassSet = exports.targetModulesByContainer.get(this.modulesContainer);
72
- }
73
- else {
74
- moduleClassSet = new WeakSet();
75
- exports.targetModulesByContainer.set(this.modulesContainer, moduleClassSet);
76
- }
77
- const moduleRef = Array.from(this.modulesContainer.values()).find((item) => item?.metatype === moduleCtor);
78
- if (!moduleRef)
79
- return;
80
- moduleClassSet.add(moduleRef);
81
- }
82
- };
83
- exports.RouterModule = RouterModule;
84
- exports.RouterModule = RouterModule = RouterModule_1 = __decorate([
85
- (0, core_1.Module)({}),
86
- __param(1, (0, core_1.Inject)(exports.ROUTES)),
87
- __metadata("design:paramtypes", [core_1.ModulesContainer, Array])
88
- ], RouterModule);
@@ -1,31 +0,0 @@
1
- import { ApplicationConfig, VenokContainer } from "@venok/core";
2
- import { Injector } from "@venok/core/injector/injector";
3
- import { GraphInspector } from "@venok/core/inspector/graph-inspector";
4
- import { HttpServer } from "../interfaces";
5
- import { InstanceWrapper } from "@venok/core/injector/instance/wrapper";
6
- import { HttpConfig } from "../application/config";
7
- export interface Resolver {
8
- resolve(instance: any, basePath: string): void;
9
- registerNotFoundHandler(): void;
10
- registerExceptionHandler(): void;
11
- }
12
- export declare class RoutesResolver implements Resolver {
13
- private readonly container;
14
- private readonly applicationConfig;
15
- private readonly httpConfig;
16
- private readonly injector;
17
- private readonly logger;
18
- private readonly routerProxy;
19
- private readonly routePathFactory;
20
- private readonly routerExceptionsFilter;
21
- private readonly routerExplorer;
22
- constructor(container: VenokContainer, applicationConfig: ApplicationConfig, httpConfig: HttpConfig, injector: Injector, graphInspector: GraphInspector);
23
- resolve<T extends HttpServer>(applicationRef: T, globalPrefix: string): void;
24
- registerRouters(routes: Map<string | symbol | Function, InstanceWrapper<Object>>, moduleName: string, globalPrefix: string, modulePath: string, applicationRef: HttpServer): void;
25
- registerNotFoundHandler(): void;
26
- registerExceptionHandler(): void;
27
- mapExternalException(err: any): any;
28
- private getModulePathMetadata;
29
- private getHostMetadata;
30
- private getVersionMetadata;
31
- }
@@ -1,128 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RoutesResolver = void 0;
4
- const logger_service_1 = require("../../core/services/logger.service");
5
- const factory_1 = require("../factory");
6
- const context_1 = require("../filters/context");
7
- const router_explorer_1 = require("../explorers/router.explorer");
8
- const core_1 = require("../../core");
9
- const constants_1 = require("../constants");
10
- const constants_2 = require("../../core/constants");
11
- const helpers_1 = require("../helpers");
12
- const errors_1 = require("../errors");
13
- const shared_helper_1 = require("../../core/helpers/shared.helper");
14
- const context_2 = require("../../core/context");
15
- class RoutesResolver {
16
- constructor(container, applicationConfig, httpConfig, injector, graphInspector) {
17
- this.container = container;
18
- this.applicationConfig = applicationConfig;
19
- this.httpConfig = httpConfig;
20
- this.injector = injector;
21
- this.logger = new logger_service_1.Logger(RoutesResolver.name, {
22
- timestamp: true,
23
- });
24
- this.routerProxy = new context_2.VenokProxy();
25
- const httpAdapterRef = httpConfig.getHttpAdapterRef();
26
- this.routerExceptionsFilter = new context_1.RouterExceptionFiltersContext(container, applicationConfig, httpAdapterRef);
27
- this.routePathFactory = new factory_1.RoutePathFactory(this.httpConfig);
28
- const metadataScanner = new core_1.MetadataScanner();
29
- this.routerExplorer = new router_explorer_1.RouterExplorer(metadataScanner, this.container, this.injector, this.routerProxy, this.routerExceptionsFilter, this.applicationConfig, this.routePathFactory, graphInspector, httpConfig.getHttpAdapterRef());
30
- }
31
- resolve(applicationRef, globalPrefix) {
32
- const modules = this.container.getModules();
33
- // Change Controllers to Injectables
34
- // Global change
35
- modules.forEach(({ providers, metatype }, moduleName) => {
36
- const modulePath = this.getModulePathMetadata(metatype);
37
- this.registerRouters(providers, moduleName, globalPrefix, modulePath, applicationRef);
38
- });
39
- }
40
- registerRouters(routes, moduleName, globalPrefix, modulePath, applicationRef) {
41
- routes.forEach((instanceWrapper) => {
42
- const { metatype } = instanceWrapper;
43
- if ((0, shared_helper_1.isUndefined)(metatype) || (0, shared_helper_1.isNull)(metatype))
44
- return;
45
- if (!Reflect.hasMetadata(constants_1.CONTROLLER_WATERMARK, metatype))
46
- return;
47
- const host = this.getHostMetadata(metatype);
48
- const routerPaths = this.routerExplorer.extractRouterPath(metatype);
49
- const controllerVersion = this.getVersionMetadata(metatype);
50
- const controllerName = metatype.name;
51
- routerPaths.forEach((path) => {
52
- const pathsToLog = this.routePathFactory.create({
53
- ctrlPath: path,
54
- modulePath,
55
- globalPrefix,
56
- });
57
- if (!controllerVersion) {
58
- pathsToLog.forEach((path) => {
59
- const logMessage = (0, helpers_1.CONTROLLER_MAPPING_MESSAGE)(controllerName, path);
60
- this.logger.log(logMessage);
61
- });
62
- }
63
- else {
64
- pathsToLog.forEach((path) => {
65
- const logMessage = (0, helpers_1.VERSIONED_CONTROLLER_MAPPING_MESSAGE)(controllerName, path, controllerVersion);
66
- this.logger.log(logMessage);
67
- });
68
- }
69
- const versioningOptions = this.httpConfig.getVersioning();
70
- const routePathMetadata = {
71
- ctrlPath: path,
72
- modulePath,
73
- globalPrefix,
74
- controllerVersion,
75
- versioningOptions,
76
- };
77
- this.routerExplorer.explore(instanceWrapper, moduleName, applicationRef, host, routePathMetadata);
78
- });
79
- });
80
- }
81
- registerNotFoundHandler() {
82
- const applicationRef = this.httpConfig.getHttpAdapterRef();
83
- const callback = (req, res) => {
84
- const method = applicationRef.getRequestMethod(req);
85
- const url = applicationRef.getRequestUrl(req);
86
- throw new errors_1.NotFoundException(`Cannot ${method} ${url}`);
87
- };
88
- const handler = this.routerExceptionsFilter.create({}, callback, undefined);
89
- const proxy = this.routerProxy.createProxy(callback, handler);
90
- applicationRef.setNotFoundHandler && applicationRef.setNotFoundHandler(proxy, this.httpConfig.getGlobalPrefix());
91
- }
92
- registerExceptionHandler() {
93
- const callback = (err, req, res, next) => {
94
- throw this.mapExternalException(err);
95
- };
96
- const handler = this.routerExceptionsFilter.create({}, callback, undefined);
97
- // REFACTOR
98
- const proxy = this.routerProxy.createProxy(callback, handler);
99
- const applicationRef = this.httpConfig.getHttpAdapterRef();
100
- if ("setErrorHandler" in applicationRef)
101
- applicationRef.setErrorHandler(proxy, this.httpConfig.getGlobalPrefix());
102
- }
103
- mapExternalException(err) {
104
- switch (true) {
105
- // SyntaxError is thrown by Express body-parser when given invalid JSON (#422, #430)
106
- // URIError is thrown by Express when given a path parameter with an invalid percentage
107
- // encoding, e.g. '%FF' (#8915)
108
- case err instanceof SyntaxError || err instanceof URIError:
109
- return new errors_1.BadRequestException(err.message);
110
- default:
111
- return err;
112
- }
113
- }
114
- getModulePathMetadata(metatype) {
115
- const modulesContainer = this.container.getModules();
116
- const modulePath = Reflect.getMetadata(constants_2.MODULE_PATH + modulesContainer.applicationId, metatype);
117
- return modulePath ?? Reflect.getMetadata(constants_2.MODULE_PATH, metatype);
118
- }
119
- getHostMetadata(metatype) {
120
- return Reflect.getMetadata(constants_1.HOST_METADATA, metatype);
121
- }
122
- getVersionMetadata(metatype) {
123
- const versioningConfig = this.httpConfig.getVersioning();
124
- if (versioningConfig)
125
- return Reflect.getMetadata(constants_1.VERSION_METADATA, metatype) ?? versioningConfig.defaultVersion;
126
- }
127
- }
128
- exports.RoutesResolver = RoutesResolver;
@@ -1,9 +0,0 @@
1
- import { AbstractHttpAdapter } from "../adapter/adapter";
2
- import { HttpAdapterHost } from "../adapter/host";
3
- export declare class HttpInstanceStorage {
4
- private readonly _httpAdapterHost;
5
- private _httpAdapter;
6
- get httpAdapterHost(): HttpAdapterHost;
7
- get httpAdapter(): AbstractHttpAdapter;
8
- set httpAdapter(httpAdapter: AbstractHttpAdapter);
9
- }
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HttpInstanceStorage = void 0;
4
- const host_1 = require("../adapter/host");
5
- class HttpInstanceStorage {
6
- constructor() {
7
- this._httpAdapterHost = new host_1.HttpAdapterHost();
8
- }
9
- get httpAdapterHost() {
10
- return this._httpAdapterHost;
11
- }
12
- get httpAdapter() {
13
- return this._httpAdapter;
14
- }
15
- set httpAdapter(httpAdapter) {
16
- this._httpAdapter = httpAdapter;
17
- }
18
- }
19
- exports.HttpInstanceStorage = HttpInstanceStorage;
package/stream/index.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from "./streamable-file";
package/stream/index.js DELETED
@@ -1,17 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./streamable-file"), exports);
@@ -1,2 +0,0 @@
1
- export * from "./streamable-options.interface";
2
- export * from "./streamable-handler-response.interface";
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./streamable-options.interface"), exports);
18
- __exportStar(require("./streamable-handler-response.interface"), exports);
@@ -1,12 +0,0 @@
1
- export interface StreamableHandlerResponse {
2
- /** `true` if the connection is destroyed, `false` otherwise. */
3
- destroyed: boolean;
4
- /** `true` if headers were sent, `false` otherwise. */
5
- headersSent: boolean;
6
- /** The status code that will be sent to the client when the headers get flushed. */
7
- statusCode: number;
8
- /** Sends the HTTP response. */
9
- send: (body: string) => void;
10
- /** Signals to the server that all the response headers and body have been sent. */
11
- end: () => void;
12
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,10 +0,0 @@
1
- /**
2
- * Options for `StreamableFile`
3
- *
4
- * @publicApi
5
- */
6
- export interface StreamableFileOptions {
7
- type?: string;
8
- disposition?: string;
9
- length?: number;
10
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,22 +0,0 @@
1
- /// <reference types="node" />
2
- import { Readable } from "node:stream";
3
- import { StreamableFileOptions, StreamableHandlerResponse } from "./interfaces";
4
- /**
5
- *
6
- * @publicApi
7
- */
8
- export declare class StreamableFile {
9
- readonly options: StreamableFileOptions;
10
- private readonly stream;
11
- protected handleError: (err: Error, response: StreamableHandlerResponse) => void;
12
- constructor(buffer: Uint8Array, options?: StreamableFileOptions);
13
- constructor(readable: Readable, options?: StreamableFileOptions);
14
- getStream(): Readable;
15
- getHeaders(): {
16
- type: string;
17
- disposition: string | undefined;
18
- length: number | undefined;
19
- };
20
- get errorHandler(): (err: Error, response: StreamableHandlerResponse) => void;
21
- setErrorHandler(handler: (err: Error, response: StreamableHandlerResponse) => void): this;
22
- }
@@ -1,55 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StreamableFile = void 0;
4
- const node_stream_1 = require("node:stream");
5
- const util_1 = require("util");
6
- const enums_1 = require("../enums");
7
- const shared_helper_1 = require("../../core/helpers/shared.helper");
8
- /**
9
- *
10
- * @publicApi
11
- */
12
- class StreamableFile {
13
- constructor(bufferOrReadStream, options = {}) {
14
- this.options = options;
15
- this.handleError = (err, res) => {
16
- if (res.destroyed) {
17
- return;
18
- }
19
- if (res.headersSent) {
20
- res.end();
21
- return;
22
- }
23
- res.statusCode = enums_1.HttpStatus.BAD_REQUEST;
24
- res.send(err.message);
25
- };
26
- if (util_1.types.isUint8Array(bufferOrReadStream)) {
27
- this.stream = new node_stream_1.Readable();
28
- this.stream.push(bufferOrReadStream);
29
- this.stream.push(null);
30
- this.options.length ??= bufferOrReadStream.length;
31
- }
32
- else if (bufferOrReadStream.pipe && (0, shared_helper_1.isFunction)(bufferOrReadStream.pipe)) {
33
- this.stream = bufferOrReadStream;
34
- }
35
- }
36
- getStream() {
37
- return this.stream;
38
- }
39
- getHeaders() {
40
- const { type = "application/octet-stream", disposition = undefined, length = undefined } = this.options;
41
- return {
42
- type,
43
- disposition,
44
- length,
45
- };
46
- }
47
- get errorHandler() {
48
- return this.handleError;
49
- }
50
- setErrorHandler(handler) {
51
- this.handleError = handler;
52
- return this;
53
- }
54
- }
55
- exports.StreamableFile = StreamableFile;
@@ -1 +0,0 @@
1
- export {};