@venok/http 1.0.1-canary.5 → 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
@@ -1,22 +0,0 @@
1
- import { ExceptionFilter } from "@venok/core/interfaces/features/exception-filter.interface";
2
- import { ArgumentsHost } from "@venok/core/interfaces/context/arguments-host.interface";
3
- import { HttpServer } from "../interfaces";
4
- import { HttpAdapterHost } from "../adapter/host";
5
- import { AbstractHttpAdapter } from "../adapter/adapter";
6
- export declare class HttpExceptionFilter<T = any> implements ExceptionFilter<T> {
7
- protected readonly applicationRef?: HttpServer<any, any, any> | undefined;
8
- private static readonly logger;
9
- protected readonly httpAdapterHost?: HttpAdapterHost;
10
- constructor(applicationRef?: HttpServer<any, any, any> | undefined);
11
- catch(exception: T, host: ArgumentsHost): void;
12
- handleUnknownError(exception: T, host: ArgumentsHost, applicationRef: AbstractHttpAdapter | HttpServer): void;
13
- isExceptionObject(err: any): err is Error;
14
- /**
15
- * Checks if the thrown error comes from the "http-errors" library.
16
- * @param err error object
17
- */
18
- isHttpError(err: any): err is {
19
- statusCode: number;
20
- message: string;
21
- };
22
- }
package/filters/filter.js DELETED
@@ -1,78 +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
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.HttpExceptionFilter = void 0;
13
- const logger_service_1 = require("../../core/services/logger.service");
14
- const core_1 = require("../../core");
15
- const shared_helper_1 = require("../../core/helpers/shared.helper");
16
- const constants_1 = require("../../core/constants");
17
- const enums_1 = require("../enums");
18
- const host_1 = require("../adapter/host");
19
- const errors_1 = require("../errors");
20
- class HttpExceptionFilter {
21
- constructor(applicationRef) {
22
- this.applicationRef = applicationRef;
23
- }
24
- catch(exception, host) {
25
- const applicationRef = this.applicationRef || (this.httpAdapterHost && this.httpAdapterHost.httpAdapter);
26
- if (!(exception instanceof errors_1.HttpException)) {
27
- return this.handleUnknownError(exception, host, applicationRef);
28
- }
29
- const res = exception.getResponse();
30
- const message = (0, shared_helper_1.isObject)(res)
31
- ? res
32
- : {
33
- statusCode: exception.getStatus(),
34
- message: res,
35
- };
36
- const response = host.getArgByIndex(1);
37
- if (!applicationRef.isHeadersSent(response))
38
- applicationRef.reply(response, message, exception.getStatus());
39
- else
40
- applicationRef.end(response);
41
- }
42
- handleUnknownError(exception, host, applicationRef) {
43
- const body = this.isHttpError(exception)
44
- ? {
45
- statusCode: exception.statusCode,
46
- message: exception.message,
47
- }
48
- : {
49
- statusCode: enums_1.HttpStatus.INTERNAL_SERVER_ERROR,
50
- message: constants_1.MESSAGES.UNKNOWN_EXCEPTION_MESSAGE,
51
- };
52
- const response = host.getArgByIndex(1);
53
- if (!applicationRef.isHeadersSent(response))
54
- applicationRef.reply(response, body, body.statusCode);
55
- else
56
- applicationRef.end(response);
57
- if (this.isExceptionObject(exception))
58
- return HttpExceptionFilter.logger.error(exception.message, exception.stack);
59
- return HttpExceptionFilter.logger.error(exception);
60
- }
61
- isExceptionObject(err) {
62
- return (0, shared_helper_1.isObject)(err) && !!err.message;
63
- }
64
- /**
65
- * Checks if the thrown error comes from the "http-errors" library.
66
- * @param err error object
67
- */
68
- isHttpError(err) {
69
- return err?.statusCode && err?.message;
70
- }
71
- }
72
- exports.HttpExceptionFilter = HttpExceptionFilter;
73
- HttpExceptionFilter.logger = new logger_service_1.Logger("ExceptionsHandler");
74
- __decorate([
75
- (0, core_1.Optional)(),
76
- (0, core_1.Inject)(),
77
- __metadata("design:type", host_1.HttpAdapterHost)
78
- ], HttpExceptionFilter.prototype, "httpAdapterHost", void 0);
@@ -1,27 +0,0 @@
1
- import { AbstractHttpAdapter } from "@venok/http/adapter/adapter";
2
- import { RequestMethod } from "@venok/http/enums";
3
- import { VersioningOptions, VersionValue } from "../interfaces/router/version-options.interface";
4
- export declare class NoopHttpAdapter extends AbstractHttpAdapter {
5
- constructor(instance: any);
6
- close(): any;
7
- initHttpServer(options: any): any;
8
- useStaticAssets(...args: any[]): any;
9
- setViewEngine(engine: string): any;
10
- getRequestHostname(request: any): any;
11
- getRequestMethod(request: any): any;
12
- getRequestUrl(request: any): any;
13
- reply(response: any, body: any): any;
14
- end(response: any, message?: any): any;
15
- status(response: any, statusCode: number): any;
16
- render(response: any, view: string, options: any): any;
17
- redirect(response: any, statusCode: number, url: string): void;
18
- setErrorHandler(handler: Function, prefix?: string): any;
19
- setNotFoundHandler(handler: Function, prefix?: string): any;
20
- isHeadersSent(response: any): any;
21
- setHeader(response: any, name: string, value: string): any;
22
- registerParserMiddleware(): any;
23
- enableCors(options: any): any;
24
- createMiddlewareFactory(requestMethod: RequestMethod): any;
25
- getType(): string;
26
- applyVersionFilter(handler: Function, version: VersionValue, versioningOptions: VersioningOptions): (req: any, res: any, next: any) => () => void;
27
- }
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NoopHttpAdapter = void 0;
4
- const adapter_1 = require("@venok/http/adapter/adapter");
5
- class NoopHttpAdapter extends adapter_1.AbstractHttpAdapter {
6
- constructor(instance) {
7
- super(instance);
8
- }
9
- close() { }
10
- initHttpServer(options) { }
11
- useStaticAssets(...args) { }
12
- setViewEngine(engine) { }
13
- getRequestHostname(request) { }
14
- getRequestMethod(request) { }
15
- getRequestUrl(request) { }
16
- reply(response, body) { }
17
- end(response, message) { }
18
- status(response, statusCode) { }
19
- render(response, view, options) { }
20
- redirect(response, statusCode, url) { }
21
- setErrorHandler(handler, prefix = "/") { }
22
- setNotFoundHandler(handler, prefix = "/") { }
23
- isHeadersSent(response) { }
24
- setHeader(response, name, value) { }
25
- registerParserMiddleware() { }
26
- enableCors(options) { }
27
- createMiddlewareFactory(requestMethod) { }
28
- getType() {
29
- return "";
30
- }
31
- applyVersionFilter(handler, version, versioningOptions) {
32
- return (req, res, next) => {
33
- return () => { };
34
- };
35
- }
36
- }
37
- exports.NoopHttpAdapter = NoopHttpAdapter;
@@ -1,4 +0,0 @@
1
- import { RequestMethod } from "../enums";
2
- import { ExcludeRouteMetadata } from "../interfaces/http/exclude-route.interface";
3
- export declare const isRequestMethodAll: (method: RequestMethod) => boolean;
4
- export declare function isRouteExcluded(excludedRoutes: ExcludeRouteMetadata[], path: string, requestMethod?: RequestMethod): boolean;
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isRouteExcluded = exports.isRequestMethodAll = void 0;
4
- const enums_1 = require("../enums");
5
- const path_helper_1 = require("./path.helper");
6
- const isRequestMethodAll = (method) => {
7
- return enums_1.RequestMethod.ALL === method || method === -1;
8
- };
9
- exports.isRequestMethodAll = isRequestMethodAll;
10
- function isRouteExcluded(excludedRoutes, path, requestMethod) {
11
- return excludedRoutes.some((route) => {
12
- if ((0, exports.isRequestMethodAll)(route.requestMethod) || route.requestMethod === requestMethod) {
13
- return route.pathRegex.exec((0, path_helper_1.addLeadingSlash)(path));
14
- }
15
- return false;
16
- });
17
- }
18
- exports.isRouteExcluded = isRouteExcluded;
@@ -1,5 +0,0 @@
1
- import { Routes } from "../interfaces/http/routes.interface";
2
- export declare function flattenRoutePaths(routes: Routes): {
3
- module: any;
4
- path: string;
5
- }[];
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.flattenRoutePaths = void 0;
4
- const shared_helper_1 = require("../../core/helpers/shared.helper");
5
- const path_helper_1 = require("./path.helper");
6
- function flattenRoutePaths(routes) {
7
- const result = [];
8
- routes.forEach((item) => {
9
- if (item.module && item.path) {
10
- result.push({ module: item.module, path: item.path });
11
- }
12
- if (item.children) {
13
- const childrenRef = item.children;
14
- childrenRef.forEach((child) => {
15
- if (!(0, shared_helper_1.isString)(child) && child.path) {
16
- child.path = (0, path_helper_1.normalizePath)((0, path_helper_1.normalizePath)(item.path) + (0, path_helper_1.normalizePath)(child.path));
17
- }
18
- else {
19
- result.push({ path: item.path, module: child });
20
- }
21
- });
22
- result.push(...flattenRoutePaths(childrenRef));
23
- }
24
- });
25
- return result;
26
- }
27
- exports.flattenRoutePaths = flattenRoutePaths;
@@ -1,6 +0,0 @@
1
- export * from "./adapter.helper";
2
- export * from "./exclude-route.helper";
3
- export * from "./flatten-routes.helper";
4
- export * from "./messages.helper";
5
- export * from "./path.helper";
6
- export * from "./sse.helper";
package/helpers/index.js DELETED
@@ -1,22 +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("./adapter.helper"), exports);
18
- __exportStar(require("./exclude-route.helper"), exports);
19
- __exportStar(require("./flatten-routes.helper"), exports);
20
- __exportStar(require("./messages.helper"), exports);
21
- __exportStar(require("./path.helper"), exports);
22
- __exportStar(require("./sse.helper"), exports);
@@ -1,6 +0,0 @@
1
- import { VersionValue } from "../interfaces/router/version-options.interface";
2
- export declare const ROUTE_MAPPED_MESSAGE: (path: string, method: string | number) => string;
3
- export declare const VERSIONED_ROUTE_MAPPED_MESSAGE: (path: string, method: string | number, version: VersionValue) => string;
4
- export declare const CONTROLLER_MAPPING_MESSAGE: (name: string, path: string) => string;
5
- export declare const VERSIONED_CONTROLLER_MAPPING_MESSAGE: (name: string, path: string, version: VersionValue) => string;
6
- export declare const VENOK_HTTP_SERVER_START: (port: string | number) => string;
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VENOK_HTTP_SERVER_START = exports.VERSIONED_CONTROLLER_MAPPING_MESSAGE = exports.CONTROLLER_MAPPING_MESSAGE = exports.VERSIONED_ROUTE_MAPPED_MESSAGE = exports.ROUTE_MAPPED_MESSAGE = void 0;
4
- const enums_1 = require("../enums");
5
- const version_options_interface_1 = require("../interfaces/router/version-options.interface");
6
- const ROUTE_MAPPED_MESSAGE = (path, method) => `Mapped {${path}, ${enums_1.RequestMethod[method]}} route`;
7
- exports.ROUTE_MAPPED_MESSAGE = ROUTE_MAPPED_MESSAGE;
8
- const VERSIONED_ROUTE_MAPPED_MESSAGE = (path, method, version) => {
9
- const controllerVersions = Array.isArray(version) ? version : [version];
10
- const versions = controllerVersions.map((version) => (version === version_options_interface_1.VERSION_NEUTRAL ? "Neutral" : version)).join(",");
11
- return `Mapped {${path}, ${enums_1.RequestMethod[method]}} (version: ${versions}) route`;
12
- };
13
- exports.VERSIONED_ROUTE_MAPPED_MESSAGE = VERSIONED_ROUTE_MAPPED_MESSAGE;
14
- const CONTROLLER_MAPPING_MESSAGE = (name, path) => `${name} {${path}}:`;
15
- exports.CONTROLLER_MAPPING_MESSAGE = CONTROLLER_MAPPING_MESSAGE;
16
- const VERSIONED_CONTROLLER_MAPPING_MESSAGE = (name, path, version) => {
17
- const controllerVersions = Array.isArray(version) ? version : [version];
18
- const versions = controllerVersions.map((version) => (version === version_options_interface_1.VERSION_NEUTRAL ? "Neutral" : version)).join(",");
19
- return `${name} {${path}} (version: ${versions}):`;
20
- };
21
- exports.VERSIONED_CONTROLLER_MAPPING_MESSAGE = VERSIONED_CONTROLLER_MAPPING_MESSAGE;
22
- const VENOK_HTTP_SERVER_START = (port) => {
23
- return `Venok start Http server on port: ${port}`;
24
- };
25
- exports.VENOK_HTTP_SERVER_START = VENOK_HTTP_SERVER_START;
@@ -1,3 +0,0 @@
1
- export declare const addLeadingSlash: (path?: string) => string;
2
- export declare const normalizePath: (path?: string) => string;
3
- export declare const stripEndSlash: (path: string) => string;
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.stripEndSlash = exports.normalizePath = exports.addLeadingSlash = void 0;
4
- const addLeadingSlash = (path) => path && typeof path === "string" ? (path.charAt(0) !== "/" ? "/" + path : path) : "";
5
- exports.addLeadingSlash = addLeadingSlash;
6
- const normalizePath = (path) => path
7
- ? path.startsWith("/")
8
- ? ("/" + path.replace(/\/+$/, "")).replace(/\/+/g, "/")
9
- : "/" + path.replace(/\/+$/, "")
10
- : "/";
11
- exports.normalizePath = normalizePath;
12
- const stripEndSlash = (path) => (path[path.length - 1] === "/" ? path.slice(0, path.length - 1) : path);
13
- exports.stripEndSlash = stripEndSlash;
@@ -1,45 +0,0 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- /// <reference types="node" />
4
- import { IncomingMessage, OutgoingHttpHeaders } from "http";
5
- import { Transform } from "node:stream";
6
- import { MessageEvent } from "@venok/http/interfaces/http/message-event.interface";
7
- export type AdditionalHeaders = Record<string, string[] | string | number | undefined>;
8
- interface ReadHeaders {
9
- getHeaders?(): AdditionalHeaders;
10
- }
11
- interface WriteHeaders {
12
- writableEnded?: boolean;
13
- writeHead?(statusCode: number, reasonPhrase?: string, headers?: OutgoingHttpHeaders): void;
14
- writeHead?(statusCode: number, headers?: OutgoingHttpHeaders): void;
15
- flushHeaders?(): void;
16
- }
17
- export type WritableHeaderStream = NodeJS.WritableStream & WriteHeaders;
18
- export type HeaderStream = WritableHeaderStream & ReadHeaders;
19
- /**
20
- * Adapted from https://raw.githubusercontent.com/EventSource/node-ssestream
21
- * Transforms "messages" to W3C event stream content.
22
- * See https://html.spec.whatwg.org/multipage/server-sent-events.html
23
- * A message is an object with one or more of the following properties:
24
- * - data (String or object, which gets turned into JSON)
25
- * - type
26
- * - id
27
- * - retry
28
- *
29
- * If constructed with an HTTP Request, it will optimise the socket for streaming.
30
- * If this stream is piped to an HTTP Response, it will set appropriate headers.
31
- */
32
- export declare class SseStream extends Transform {
33
- private lastEventId;
34
- constructor(req?: IncomingMessage);
35
- pipe<T extends WritableHeaderStream>(destination: T, options?: {
36
- additionalHeaders?: AdditionalHeaders;
37
- end?: boolean;
38
- }): T;
39
- _transform(message: MessageEvent, encoding: string, callback: (error?: Error | null, data?: any) => void): void;
40
- /**
41
- * Calls `.write` but handles the drain if needed
42
- */
43
- writeMessage(message: MessageEvent, cb: (error: Error | null | undefined) => void): void;
44
- }
45
- export {};
@@ -1,83 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SseStream = void 0;
4
- const node_stream_1 = require("node:stream");
5
- const shared_helper_1 = require("../../core/helpers/shared.helper");
6
- function toDataString(data) {
7
- if ((0, shared_helper_1.isObject)(data)) {
8
- return toDataString(JSON.stringify(data));
9
- }
10
- return data
11
- .split(/\r\n|\r|\n/)
12
- .map((line) => `data: ${line}\n`)
13
- .join("");
14
- }
15
- /**
16
- * Adapted from https://raw.githubusercontent.com/EventSource/node-ssestream
17
- * Transforms "messages" to W3C event stream content.
18
- * See https://html.spec.whatwg.org/multipage/server-sent-events.html
19
- * A message is an object with one or more of the following properties:
20
- * - data (String or object, which gets turned into JSON)
21
- * - type
22
- * - id
23
- * - retry
24
- *
25
- * If constructed with an HTTP Request, it will optimise the socket for streaming.
26
- * If this stream is piped to an HTTP Response, it will set appropriate headers.
27
- */
28
- class SseStream extends node_stream_1.Transform {
29
- constructor(req) {
30
- super({ objectMode: true });
31
- this.lastEventId = 0;
32
- if (req && req.socket) {
33
- req.socket.setKeepAlive(true);
34
- req.socket.setNoDelay(true);
35
- req.socket.setTimeout(0);
36
- }
37
- }
38
- pipe(destination, options) {
39
- if (destination.writeHead) {
40
- destination.writeHead(200, {
41
- ...options?.additionalHeaders,
42
- // See https://github.com/dunglas/mercure/blob/master/hub/subscribe.go#L124-L130
43
- "Content-Type": "text/event-stream",
44
- Connection: "keep-alive",
45
- // Disable cache, even for old browsers and proxies
46
- "Cache-Control": "private, no-cache, no-store, must-revalidate, max-age=0, no-transform",
47
- Pragma: "no-cache",
48
- Expire: "0",
49
- // NGINX support https://www.nginx.com/resources/wiki/start/topics/examples/x-accel/#x-accel-buffering
50
- "X-Accel-Buffering": "no",
51
- });
52
- if (destination.flushHeaders)
53
- destination.flushHeaders();
54
- }
55
- destination.write("\n");
56
- return super.pipe(destination, options);
57
- }
58
- _transform(message, encoding, callback) {
59
- let data = message.type ? `event: ${message.type}\n` : "";
60
- data += message.id ? `id: ${message.id}\n` : "";
61
- data += message.retry ? `retry: ${message.retry}\n` : "";
62
- data += message.data ? toDataString(message.data) : "";
63
- data += "\n";
64
- this.push(data);
65
- callback();
66
- }
67
- /**
68
- * Calls `.write` but handles the drain if needed
69
- */
70
- writeMessage(message, cb) {
71
- if (!message.id) {
72
- this.lastEventId++;
73
- message.id = this.lastEventId.toString();
74
- }
75
- if (!this.write(message, "utf-8", cb)) {
76
- this.once("drain", cb);
77
- }
78
- else {
79
- process.nextTick(cb);
80
- }
81
- }
82
- }
83
- exports.SseStream = SseStream;
package/index.d.ts DELETED
@@ -1 +0,0 @@
1
- import "reflect-metadata";
package/index.js DELETED
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- require("reflect-metadata");
@@ -1,58 +0,0 @@
1
- type StaticOrigin = boolean | string | RegExp | (string | RegExp)[];
2
- /**
3
- * Set origin to a function implementing some custom logic. The function takes the
4
- * request origin as the first parameter and a callback (which expects the signature
5
- * err [object], allow [bool]) as the second.
6
- *
7
- * @see https://github.com/expressjs/cors
8
- *
9
- * @publicApi
10
- */
11
- export type CustomOrigin = (requestOrigin: string, callback: (err: Error | null, origin?: StaticOrigin) => void) => void;
12
- /**
13
- * Interface describing CORS options that can be set.
14
- *
15
- * @see https://github.com/expressjs/cors
16
- * @publicApi
17
- */
18
- export interface CorsOptions {
19
- /**
20
- * Configures the `Access-Control-Allow-Origins` CORS header. See [here for more detail.](https://github.com/expressjs/cors#configuration-options)
21
- */
22
- origin?: StaticOrigin | CustomOrigin;
23
- /**
24
- * Configures the Access-Control-Allow-Methods CORS header.
25
- */
26
- methods?: string | string[];
27
- /**
28
- * Configures the Access-Control-Allow-Headers CORS header.
29
- */
30
- allowedHeaders?: string | string[];
31
- /**
32
- * Configures the Access-Control-Expose-Headers CORS header.
33
- */
34
- exposedHeaders?: string | string[];
35
- /**
36
- * Configures the Access-Control-Allow-Credentials CORS header.
37
- */
38
- credentials?: boolean;
39
- /**
40
- * Configures the Access-Control-Max-Age CORS header.
41
- */
42
- maxAge?: number;
43
- /**
44
- * Whether to pass the CORS preflight response to the next handler.
45
- */
46
- preflightContinue?: boolean;
47
- /**
48
- * Provides a status code to use for successful OPTIONS requests.
49
- */
50
- optionsSuccessStatus?: number;
51
- }
52
- export interface CorsOptionsCallback {
53
- s(error: Error, options: CorsOptions): void;
54
- }
55
- export interface CorsOptionsDelegate<T> {
56
- (req: T, cb: CorsOptionsCallback): void;
57
- }
58
- export {};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,6 +0,0 @@
1
- export type HttpExceptionBodyMessage = string | string[];
2
- export interface HttpExceptionBody {
3
- message: HttpExceptionBodyMessage;
4
- error?: string;
5
- statusCode: number;
6
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,15 +0,0 @@
1
- import { RequestMethod } from "../../enums";
2
- export interface ExcludeRouteMetadata {
3
- /**
4
- * Route path.
5
- */
6
- path: string;
7
- /**
8
- * Regular expression representing the route path.
9
- */
10
- pathRegex: RegExp;
11
- /**
12
- * HTTP request method (e.g., GET, POST).
13
- */
14
- requestMethod: RequestMethod;
15
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,10 +0,0 @@
1
- export * from "./cors.interface";
2
- export * from "./exception.interface";
3
- export * from "./exclude-route.interface";
4
- export * from "./message-event.interface";
5
- export * from "./module.inteface";
6
- export * from "./options.interface";
7
- export * from "./path-metadata.interface";
8
- export * from "./prefix-options.interface";
9
- export * from "./routes.interface";
10
- export * from "./server.interface";
@@ -1,26 +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("./cors.interface"), exports);
18
- __exportStar(require("./exception.interface"), exports);
19
- __exportStar(require("./exclude-route.interface"), exports);
20
- __exportStar(require("./message-event.interface"), exports);
21
- __exportStar(require("./module.inteface"), exports);
22
- __exportStar(require("./options.interface"), exports);
23
- __exportStar(require("./path-metadata.interface"), exports);
24
- __exportStar(require("./prefix-options.interface"), exports);
25
- __exportStar(require("./routes.interface"), exports);
26
- __exportStar(require("./server.interface"), exports);
@@ -1,6 +0,0 @@
1
- export interface MessageEvent {
2
- data: string | object;
3
- id?: string;
4
- type?: string;
5
- retry?: number;
6
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +0,0 @@
1
- import { VenokModule } from "@venok/core";
2
- import { MiddlewareConsumer } from "../middleware";
3
- export interface VenokHttpModule extends VenokModule {
4
- configure(consumer: MiddlewareConsumer): void;
5
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });