@venok/http 1.0.1-canary.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 (254) hide show
  1. package/adapter/adapter.d.ts +57 -0
  2. package/adapter/adapter.js +58 -0
  3. package/adapter/host.d.ts +27 -0
  4. package/adapter/host.js +33 -0
  5. package/application/application.d.ts +18 -0
  6. package/application/application.js +51 -0
  7. package/application/config.d.ts +16 -0
  8. package/application/config.js +47 -0
  9. package/application/http.module-defenition.d.ts +8 -0
  10. package/application/http.module-defenition.js +6 -0
  11. package/application/http.module.d.ts +3 -0
  12. package/application/http.module.js +21 -0
  13. package/application/http.service.d.ts +11 -0
  14. package/application/http.service.js +43 -0
  15. package/application/starter.d.ts +41 -0
  16. package/application/starter.js +140 -0
  17. package/constants.d.ts +12 -0
  18. package/constants.js +15 -0
  19. package/context/context.d.ts +56 -0
  20. package/context/context.js +102 -0
  21. package/context/response.controller.d.ts +30 -0
  22. package/context/response.controller.js +86 -0
  23. package/decorators/controller.decorator.d.ts +82 -0
  24. package/decorators/controller.decorator.js +53 -0
  25. package/decorators/header.decorator.d.ts +12 -0
  26. package/decorators/header.decorator.js +23 -0
  27. package/decorators/http-code.decorator.d.ts +9 -0
  28. package/decorators/http-code.decorator.js +19 -0
  29. package/decorators/index.d.ts +9 -0
  30. package/decorators/index.js +25 -0
  31. package/decorators/redirect.decorator.d.ts +6 -0
  32. package/decorators/redirect.decorator.js +16 -0
  33. package/decorators/render.decorator.d.ts +10 -0
  34. package/decorators/render.decorator.js +20 -0
  35. package/decorators/request-mapping.decorator.d.ts +78 -0
  36. package/decorators/request-mapping.decorator.js +98 -0
  37. package/decorators/route-params.decorator.d.ts +378 -0
  38. package/decorators/route-params.decorator.js +227 -0
  39. package/decorators/sse.decorator.d.ts +6 -0
  40. package/decorators/sse.decorator.js +20 -0
  41. package/decorators/version.decorator.d.ts +7 -0
  42. package/decorators/version.decorator.js +20 -0
  43. package/enums/http-status.enum.d.ts +53 -0
  44. package/enums/http-status.enum.js +57 -0
  45. package/enums/index.d.ts +4 -0
  46. package/enums/index.js +20 -0
  47. package/enums/request-method.enum.d.ts +11 -0
  48. package/enums/request-method.enum.js +15 -0
  49. package/enums/route-paramtypes.enum.d.ts +14 -0
  50. package/enums/route-paramtypes.enum.js +18 -0
  51. package/enums/version-type.enum.d.ts +9 -0
  52. package/enums/version-type.enum.js +13 -0
  53. package/errors/bad-gateway.exception.d.ts +33 -0
  54. package/errors/bad-gateway.exception.js +41 -0
  55. package/errors/bad-request.exception.d.ts +33 -0
  56. package/errors/bad-request.exception.js +41 -0
  57. package/errors/conflict.exception.d.ts +33 -0
  58. package/errors/conflict.exception.js +41 -0
  59. package/errors/forbidden.exception.d.ts +33 -0
  60. package/errors/forbidden.exception.js +41 -0
  61. package/errors/gateway-timeout.exception.d.ts +33 -0
  62. package/errors/gateway-timeout.exception.js +41 -0
  63. package/errors/gone.exception.d.ts +33 -0
  64. package/errors/gone.exception.js +41 -0
  65. package/errors/http-version-not-supported.exception.d.ts +33 -0
  66. package/errors/http-version-not-supported.exception.js +41 -0
  67. package/errors/http.exception.d.ts +79 -0
  68. package/errors/http.exception.js +123 -0
  69. package/errors/im-a-teapot.exception.d.ts +36 -0
  70. package/errors/im-a-teapot.exception.js +44 -0
  71. package/errors/index.d.ts +11 -0
  72. package/errors/index.js +27 -0
  73. package/errors/internal-server-error.exception.d.ts +33 -0
  74. package/errors/internal-server-error.exception.js +41 -0
  75. package/errors/invalid-middleware-configuration.exception.d.ts +4 -0
  76. package/errors/invalid-middleware-configuration.exception.js +11 -0
  77. package/errors/invalid-middleware.exception.d.ts +4 -0
  78. package/errors/invalid-middleware.exception.js +11 -0
  79. package/errors/not-found.exception.d.ts +33 -0
  80. package/errors/not-found.exception.js +41 -0
  81. package/errors/unknown-request-mapping.exception.d.ts +5 -0
  82. package/errors/unknown-request-mapping.exception.js +11 -0
  83. package/exceptions/messages.d.ts +4 -0
  84. package/exceptions/messages.js +13 -0
  85. package/explorers/path.explorer.d.ts +8 -0
  86. package/explorers/path.explorer.js +38 -0
  87. package/explorers/router.explorer.d.ts +51 -0
  88. package/explorers/router.explorer.js +195 -0
  89. package/factory/context-id.factory.d.ts +41 -0
  90. package/factory/context-id.factory.js +52 -0
  91. package/factory/index.d.ts +4 -0
  92. package/factory/index.js +20 -0
  93. package/factory/method.factory.d.ts +5 -0
  94. package/factory/method.factory.js +30 -0
  95. package/factory/params.factory.d.ts +5 -0
  96. package/factory/params.factory.js +39 -0
  97. package/factory/path.factory.d.ts +13 -0
  98. package/factory/path.factory.js +95 -0
  99. package/filters/context.d.ts +9 -0
  100. package/filters/context.js +15 -0
  101. package/filters/filter.d.ts +22 -0
  102. package/filters/filter.js +78 -0
  103. package/helpers/adapter.helper.d.ts +27 -0
  104. package/helpers/adapter.helper.js +37 -0
  105. package/helpers/exclude-route.helper.d.ts +4 -0
  106. package/helpers/exclude-route.helper.js +18 -0
  107. package/helpers/flatten-routes.helper.d.ts +5 -0
  108. package/helpers/flatten-routes.helper.js +27 -0
  109. package/helpers/index.d.ts +6 -0
  110. package/helpers/index.js +22 -0
  111. package/helpers/messages.helper.d.ts +6 -0
  112. package/helpers/messages.helper.js +25 -0
  113. package/helpers/path.helper.d.ts +3 -0
  114. package/helpers/path.helper.js +13 -0
  115. package/helpers/sse.helper.d.ts +45 -0
  116. package/helpers/sse.helper.js +83 -0
  117. package/index.d.ts +1 -0
  118. package/index.js +3 -0
  119. package/interfaces/http/cors.interface.d.ts +58 -0
  120. package/interfaces/http/cors.interface.js +2 -0
  121. package/interfaces/http/exception.interface.d.ts +6 -0
  122. package/interfaces/http/exception.interface.js +2 -0
  123. package/interfaces/http/exclude-route.interface.d.ts +15 -0
  124. package/interfaces/http/exclude-route.interface.js +2 -0
  125. package/interfaces/http/index.d.ts +10 -0
  126. package/interfaces/http/index.js +26 -0
  127. package/interfaces/http/message-event.interface.d.ts +6 -0
  128. package/interfaces/http/message-event.interface.js +2 -0
  129. package/interfaces/http/module.inteface.d.ts +5 -0
  130. package/interfaces/http/module.inteface.js +2 -0
  131. package/interfaces/http/options.interface.d.ts +127 -0
  132. package/interfaces/http/options.interface.js +2 -0
  133. package/interfaces/http/path-metadata.interface.d.ts +31 -0
  134. package/interfaces/http/path-metadata.interface.js +2 -0
  135. package/interfaces/http/prefix-options.interface.d.ts +7 -0
  136. package/interfaces/http/prefix-options.interface.js +2 -0
  137. package/interfaces/http/raw-request.d.ts +4 -0
  138. package/interfaces/http/raw-request.js +2 -0
  139. package/interfaces/http/routes.interface.d.ts +7 -0
  140. package/interfaces/http/routes.interface.js +2 -0
  141. package/interfaces/http/server.interface.d.ts +54 -0
  142. package/interfaces/http/server.interface.js +2 -0
  143. package/interfaces/index.d.ts +3 -0
  144. package/interfaces/index.js +19 -0
  145. package/interfaces/middleware/config-proxy.interface.d.ts +23 -0
  146. package/interfaces/middleware/config-proxy.interface.js +2 -0
  147. package/interfaces/middleware/configuration.interface.d.ts +12 -0
  148. package/interfaces/middleware/configuration.interface.js +2 -0
  149. package/interfaces/middleware/consumer.interface.d.ts +16 -0
  150. package/interfaces/middleware/consumer.interface.js +2 -0
  151. package/interfaces/middleware/index.d.ts +4 -0
  152. package/interfaces/middleware/index.js +20 -0
  153. package/interfaces/middleware/middleware.interface.d.ts +7 -0
  154. package/interfaces/middleware/middleware.interface.js +2 -0
  155. package/interfaces/router/callback-paramtypes.interface.d.ts +1 -0
  156. package/interfaces/router/callback-paramtypes.interface.js +2 -0
  157. package/interfaces/router/definition.interface.d.ts +10 -0
  158. package/interfaces/router/definition.interface.js +2 -0
  159. package/interfaces/router/index.d.ts +3 -0
  160. package/interfaces/router/index.js +19 -0
  161. package/interfaces/router/version-options.interface.d.ts +92 -0
  162. package/interfaces/router/version-options.interface.js +9 -0
  163. package/middleware/builder.d.ts +15 -0
  164. package/middleware/builder.js +78 -0
  165. package/middleware/container.d.ts +13 -0
  166. package/middleware/container.js +50 -0
  167. package/middleware/extractor.d.ts +15 -0
  168. package/middleware/extractor.js +50 -0
  169. package/middleware/index.d.ts +1 -0
  170. package/middleware/index.js +17 -0
  171. package/middleware/module.d.ts +33 -0
  172. package/middleware/module.js +180 -0
  173. package/middleware/resolver.d.ts +10 -0
  174. package/middleware/resolver.js +27 -0
  175. package/middleware/routes-mapper.d.ts +19 -0
  176. package/middleware/routes-mapper.js +111 -0
  177. package/middleware/utils.d.ts +8 -0
  178. package/middleware/utils.js +86 -0
  179. package/package.json +41 -0
  180. package/router/module.d.ts +18 -0
  181. package/router/module.js +88 -0
  182. package/router/resolver.d.ts +31 -0
  183. package/router/resolver.js +128 -0
  184. package/storage/http-instance.storage.d.ts +9 -0
  185. package/storage/http-instance.storage.js +19 -0
  186. package/stream/index.d.ts +1 -0
  187. package/stream/index.js +17 -0
  188. package/stream/interfaces/index.d.ts +2 -0
  189. package/stream/interfaces/index.js +18 -0
  190. package/stream/interfaces/streamable-handler-response.interface.d.ts +12 -0
  191. package/stream/interfaces/streamable-handler-response.interface.js +2 -0
  192. package/stream/interfaces/streamable-options.interface.d.ts +10 -0
  193. package/stream/interfaces/streamable-options.interface.js +2 -0
  194. package/stream/streamable-file.d.ts +22 -0
  195. package/stream/streamable-file.js +55 -0
  196. package/test/context/response.controller.spec.d.ts +1 -0
  197. package/test/context/response.controller.spec.js +328 -0
  198. package/test/decorators/controller.decorator.spec.d.ts +1 -0
  199. package/test/decorators/controller.decorator.spec.js +113 -0
  200. package/test/decorators/header.decorator.spec.d.ts +1 -0
  201. package/test/decorators/header.decorator.spec.js +33 -0
  202. package/test/decorators/http-code.decorator.spec.d.ts +1 -0
  203. package/test/decorators/http-code.decorator.spec.js +30 -0
  204. package/test/decorators/redirect.decorator.spec.d.ts +1 -0
  205. package/test/decorators/redirect.decorator.spec.js +36 -0
  206. package/test/decorators/render.decorator.spec.d.ts +1 -0
  207. package/test/decorators/render.decorator.spec.js +30 -0
  208. package/test/decorators/request-mapping.decorator.spec.d.ts +1 -0
  209. package/test/decorators/request-mapping.decorator.spec.js +85 -0
  210. package/test/decorators/route-params.decorator.spec.d.ts +1 -0
  211. package/test/decorators/route-params.decorator.spec.js +493 -0
  212. package/test/decorators/sse.decorator.spec.d.ts +1 -0
  213. package/test/decorators/sse.decorator.spec.js +35 -0
  214. package/test/decorators/version.decorator.spec.d.ts +1 -0
  215. package/test/decorators/version.decorator.spec.js +43 -0
  216. package/test/exceptions/handler.spec.d.ts +1 -0
  217. package/test/exceptions/handler.spec.js +145 -0
  218. package/test/exceptions/proxy.spec.d.ts +1 -0
  219. package/test/exceptions/proxy.spec.js +74 -0
  220. package/test/explorers/path.explorer.spec.d.ts +1 -0
  221. package/test/explorers/path.explorer.spec.js +190 -0
  222. package/test/explorers/router.explorer.spec.d.ts +1 -0
  223. package/test/explorers/router.explorer.spec.js +206 -0
  224. package/test/factory/method.factory.spec.d.ts +1 -0
  225. package/test/factory/method.factory.spec.js +33 -0
  226. package/test/factory/params.factory.spec.d.ts +1 -0
  227. package/test/factory/params.factory.spec.js +104 -0
  228. package/test/factory/path.factory.spec.d.ts +1 -0
  229. package/test/factory/path.factory.spec.js +260 -0
  230. package/test/filters/context.spec.d.ts +1 -0
  231. package/test/filters/context.spec.js +96 -0
  232. package/test/filters/filter.spec.d.ts +1 -0
  233. package/test/filters/filter.spec.js +96 -0
  234. package/test/helpers/flatten-routes.helper.spec.d.ts +1 -0
  235. package/test/helpers/flatten-routes.helper.spec.js +131 -0
  236. package/test/helpers/sse.helper.spec.d.ts +1 -0
  237. package/test/helpers/sse.helper.spec.js +132 -0
  238. package/test/middleware/builder.spec.d.ts +1 -0
  239. package/test/middleware/builder.spec.js +235 -0
  240. package/test/middleware/container.spec.d.ts +1 -0
  241. package/test/middleware/container.spec.js +81 -0
  242. package/test/middleware/module.spec.d.ts +1 -0
  243. package/test/middleware/module.spec.js +206 -0
  244. package/test/middleware/route-info-path-extractor.spec.d.ts +1 -0
  245. package/test/middleware/route-info-path-extractor.spec.js +123 -0
  246. package/test/middleware/routes-mapper.spec.d.ts +1 -0
  247. package/test/middleware/routes-mapper.spec.js +162 -0
  248. package/test/middleware/utils.spec.d.ts +1 -0
  249. package/test/middleware/utils.spec.js +132 -0
  250. package/test/router/module.spec.d.ts +1 -0
  251. package/test/router/module.spec.js +40 -0
  252. package/test/router/resolver.spec.d.ts +1 -0
  253. package/test/router/resolver.spec.js +326 -0
  254. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GatewayTimeoutException = void 0;
4
+ const enums_1 = require("../enums");
5
+ const http_exception_1 = require("./http.exception");
6
+ /**
7
+ * Defines an HTTP exception for *Gateway Timeout* type errors.
8
+ *
9
+ * @publicApi
10
+ */
11
+ class GatewayTimeoutException extends http_exception_1.HttpException {
12
+ /**
13
+ * Instantiate a `GatewayTimeoutException` Exception.
14
+ *
15
+ * @example
16
+ * `throw new GatewayTimeoutException()`
17
+ *
18
+ * @usageNotes
19
+ * The HTTP response status code will be 504.
20
+ * - The `objectOrError` argument defines the JSON response body or the message string.
21
+ * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause.
22
+ *
23
+ * By default, the JSON response body contains two properties:
24
+ * - `statusCode`: this will be the value 504.
25
+ * - `message`: the string `'Gateway Timeout'` by default; override this by supplying
26
+ * a string in the `objectOrError` parameter.
27
+ *
28
+ * If the parameter `objectOrError` is a string, the response body will contain an
29
+ * additional property, `error`, with a short description of the HTTP error. To override the
30
+ * entire JSON response body, pass an object instead. Venok will serialize the object
31
+ * and return it as the JSON response body.
32
+ *
33
+ * @param objectOrError string or object describing the error condition.
34
+ * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause
35
+ */
36
+ constructor(objectOrError, descriptionOrOptions = "Gateway Timeout") {
37
+ const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions);
38
+ super(http_exception_1.HttpException.createBody(objectOrError, description, enums_1.HttpStatus.GATEWAY_TIMEOUT), enums_1.HttpStatus.GATEWAY_TIMEOUT, httpExceptionOptions);
39
+ }
40
+ }
41
+ exports.GatewayTimeoutException = GatewayTimeoutException;
@@ -0,0 +1,33 @@
1
+ import { HttpException, HttpExceptionOptions } from "./http.exception";
2
+ /**
3
+ * Defines an HTTP exception for *Gone* type errors.
4
+ *
5
+ * @publicApi
6
+ */
7
+ export declare class GoneException extends HttpException {
8
+ /**
9
+ * Instantiate a `GoneException` Exception.
10
+ *
11
+ * @example
12
+ * `throw new GoneException()`
13
+ *
14
+ * @usageNotes
15
+ * The HTTP response status code will be 410.
16
+ * - The `objectOrError` argument defines the JSON response body or the message string.
17
+ * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause.
18
+ *
19
+ * By default, the JSON response body contains two properties:
20
+ * - `statusCode`: this will be the value 410.
21
+ * - `message`: the string `'Gone'` by default; override this by supplying
22
+ * a string in the `objectOrError` parameter.
23
+ *
24
+ * If the parameter `objectOrError` is a string, the response body will contain an
25
+ * additional property, `error`, with a short description of the HTTP error. To override the
26
+ * entire JSON response body, pass an object instead. Nest will serialize the object
27
+ * and return it as the JSON response body.
28
+ *
29
+ * @param objectOrError string or object describing the error condition.
30
+ * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause
31
+ */
32
+ constructor(objectOrError?: string | object | any, descriptionOrOptions?: string | HttpExceptionOptions);
33
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GoneException = void 0;
4
+ const enums_1 = require("../enums");
5
+ const http_exception_1 = require("./http.exception");
6
+ /**
7
+ * Defines an HTTP exception for *Gone* type errors.
8
+ *
9
+ * @publicApi
10
+ */
11
+ class GoneException extends http_exception_1.HttpException {
12
+ /**
13
+ * Instantiate a `GoneException` Exception.
14
+ *
15
+ * @example
16
+ * `throw new GoneException()`
17
+ *
18
+ * @usageNotes
19
+ * The HTTP response status code will be 410.
20
+ * - The `objectOrError` argument defines the JSON response body or the message string.
21
+ * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause.
22
+ *
23
+ * By default, the JSON response body contains two properties:
24
+ * - `statusCode`: this will be the value 410.
25
+ * - `message`: the string `'Gone'` by default; override this by supplying
26
+ * a string in the `objectOrError` parameter.
27
+ *
28
+ * If the parameter `objectOrError` is a string, the response body will contain an
29
+ * additional property, `error`, with a short description of the HTTP error. To override the
30
+ * entire JSON response body, pass an object instead. Nest will serialize the object
31
+ * and return it as the JSON response body.
32
+ *
33
+ * @param objectOrError string or object describing the error condition.
34
+ * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause
35
+ */
36
+ constructor(objectOrError, descriptionOrOptions = "Gone") {
37
+ const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions);
38
+ super(http_exception_1.HttpException.createBody(objectOrError, description, enums_1.HttpStatus.GONE), enums_1.HttpStatus.GONE, httpExceptionOptions);
39
+ }
40
+ }
41
+ exports.GoneException = GoneException;
@@ -0,0 +1,33 @@
1
+ import { HttpException, HttpExceptionOptions } from "./http.exception";
2
+ /**
3
+ * Defines an HTTP exception for *Http Version Not Supported* type errors.
4
+ *
5
+ * @publicApi
6
+ */
7
+ export declare class HttpVersionNotSupportedException extends HttpException {
8
+ /**
9
+ * Instantiate a `HttpVersionNotSupportedException` Exception.
10
+ *
11
+ * @example
12
+ * `throw new HttpVersionNotSupportedException()`
13
+ *
14
+ * @usageNotes
15
+ * The HTTP response status code will be 505.
16
+ * - The `objectOrError` argument defines the JSON response body or the message string.
17
+ * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause.
18
+ *
19
+ * By default, the JSON response body contains two properties:
20
+ * - `statusCode`: this will be the value 505.
21
+ * - `message`: the string `'HTTP Version Not Supported'` by default; override this by supplying
22
+ * a string in the `objectOrError` parameter.
23
+ *
24
+ * If the parameter `objectOrError` is a string, the response body will contain an
25
+ * additional property, `error`, with a short description of the HTTP error. To override the
26
+ * entire JSON response body, pass an object instead. Venok will serialize the object
27
+ * and return it as the JSON response body.
28
+ *
29
+ * @param objectOrError string or object describing the error condition.
30
+ * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause
31
+ */
32
+ constructor(objectOrError?: string | object | any, descriptionOrOptions?: string | HttpExceptionOptions);
33
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HttpVersionNotSupportedException = void 0;
4
+ const enums_1 = require("../enums");
5
+ const http_exception_1 = require("./http.exception");
6
+ /**
7
+ * Defines an HTTP exception for *Http Version Not Supported* type errors.
8
+ *
9
+ * @publicApi
10
+ */
11
+ class HttpVersionNotSupportedException extends http_exception_1.HttpException {
12
+ /**
13
+ * Instantiate a `HttpVersionNotSupportedException` Exception.
14
+ *
15
+ * @example
16
+ * `throw new HttpVersionNotSupportedException()`
17
+ *
18
+ * @usageNotes
19
+ * The HTTP response status code will be 505.
20
+ * - The `objectOrError` argument defines the JSON response body or the message string.
21
+ * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause.
22
+ *
23
+ * By default, the JSON response body contains two properties:
24
+ * - `statusCode`: this will be the value 505.
25
+ * - `message`: the string `'HTTP Version Not Supported'` by default; override this by supplying
26
+ * a string in the `objectOrError` parameter.
27
+ *
28
+ * If the parameter `objectOrError` is a string, the response body will contain an
29
+ * additional property, `error`, with a short description of the HTTP error. To override the
30
+ * entire JSON response body, pass an object instead. Venok will serialize the object
31
+ * and return it as the JSON response body.
32
+ *
33
+ * @param objectOrError string or object describing the error condition.
34
+ * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause
35
+ */
36
+ constructor(objectOrError, descriptionOrOptions = "HTTP Version Not Supported") {
37
+ const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions);
38
+ super(http_exception_1.HttpException.createBody(objectOrError, description ?? "", enums_1.HttpStatus.HTTP_VERSION_NOT_SUPPORTED), enums_1.HttpStatus.HTTP_VERSION_NOT_SUPPORTED, httpExceptionOptions);
39
+ }
40
+ }
41
+ exports.HttpVersionNotSupportedException = HttpVersionNotSupportedException;
@@ -0,0 +1,79 @@
1
+ import { HttpExceptionBody, HttpExceptionBodyMessage } from "@venok/http/interfaces/http/exception.interface";
2
+ export interface HttpExceptionOptions {
3
+ /** original cause of the error */
4
+ cause?: unknown;
5
+ description?: string;
6
+ }
7
+ export interface DescriptionAndOptions {
8
+ description?: string;
9
+ httpExceptionOptions?: HttpExceptionOptions;
10
+ }
11
+ /**
12
+ * Defines the base Venok HTTP exception, which is handled by the default
13
+ * Exceptions Handler.
14
+ *
15
+ * @publicApi
16
+ */
17
+ export declare class HttpException extends Error {
18
+ private readonly response;
19
+ private readonly status;
20
+ private readonly options?;
21
+ /**
22
+ * Instantiate a plain HTTP Exception.
23
+ *
24
+ * @example
25
+ * throw new HttpException()
26
+ * throw new HttpException('message', HttpStatus.BAD_REQUEST)
27
+ * throw new HttpException('custom message', HttpStatus.BAD_REQUEST, {
28
+ * cause: new Error('Cause Error'),
29
+ * })
30
+ *
31
+ *
32
+ * @usageNotes
33
+ * The constructor arguments define the response and the HTTP response status code.
34
+ * - The `response` argument (required) defines the JSON response body. alternatively, it can also be
35
+ * an error object that is used to define an error [cause](https://nodejs.org/en/blog/release/v16.9.0/#error-cause).
36
+ * - The `status` argument (required) defines the HTTP Status Code.
37
+ * - The `options` argument (optional) defines additional error options. Currently, it supports the `cause` attribute,
38
+ * and can be used as an alternative way to specify the error cause: `const error = new HttpException('description', 400, { cause: new Error() });`
39
+ *
40
+ * By default, the JSON response body contains two properties:
41
+ * - `statusCode`: the Http Status Code.
42
+ * - `message`: a short description of the HTTP error by default; override this
43
+ * by supplying a string in the `response` parameter.
44
+ *
45
+ * To override the entire JSON response body, pass an object to the `createBody`
46
+ * method. Venok will serialize the object and return it as the JSON response body.
47
+ *
48
+ * The `status` argument is required, and should be a valid HTTP status code.
49
+ * Best practice is to use the `HttpStatus` enum.
50
+ *
51
+ * @param response string, object describing the error condition or the error cause.
52
+ * @param status HTTP response status code.
53
+ * @param options An object used to add an error cause.
54
+ */
55
+ constructor(response: string | Record<string, any>, status: number, options?: HttpExceptionOptions | undefined);
56
+ cause: unknown;
57
+ /**
58
+ * Configures error chaining support
59
+ *
60
+ * @see https://nodejs.org/en/blog/release/v16.9.0/#error-cause
61
+ * @see https://github.com/microsoft/TypeScript/issues/45167
62
+ */
63
+ initCause(): void;
64
+ initMessage(): void;
65
+ initName(): void;
66
+ getResponse(): string | object;
67
+ getStatus(): number;
68
+ static createBody(nil: null | "", message: HttpExceptionBodyMessage, statusCode: number): HttpExceptionBody;
69
+ static createBody(message: HttpExceptionBodyMessage, error: string, statusCode: number): HttpExceptionBody;
70
+ static createBody<Body extends Record<string, unknown>>(custom: Body): Body;
71
+ static getDescriptionFrom(descriptionOrOptions: string | HttpExceptionOptions): string;
72
+ static getHttpExceptionOptionsFrom(descriptionOrOptions: string | HttpExceptionOptions): HttpExceptionOptions;
73
+ /**
74
+ * Utility method used to extract the error description and httpExceptionOptions from the given argument.
75
+ * This is used by inheriting classes to correctly parse both options.
76
+ * @returns the error description and the httpExceptionOptions as an object.
77
+ */
78
+ static extractDescriptionAndOptionsFrom(descriptionOrOptions: string | HttpExceptionOptions): DescriptionAndOptions;
79
+ }
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HttpException = void 0;
4
+ const shared_helper_1 = require("../../core/helpers/shared.helper");
5
+ /**
6
+ * Defines the base Venok HTTP exception, which is handled by the default
7
+ * Exceptions Handler.
8
+ *
9
+ * @publicApi
10
+ */
11
+ class HttpException extends Error {
12
+ /**
13
+ * Instantiate a plain HTTP Exception.
14
+ *
15
+ * @example
16
+ * throw new HttpException()
17
+ * throw new HttpException('message', HttpStatus.BAD_REQUEST)
18
+ * throw new HttpException('custom message', HttpStatus.BAD_REQUEST, {
19
+ * cause: new Error('Cause Error'),
20
+ * })
21
+ *
22
+ *
23
+ * @usageNotes
24
+ * The constructor arguments define the response and the HTTP response status code.
25
+ * - The `response` argument (required) defines the JSON response body. alternatively, it can also be
26
+ * an error object that is used to define an error [cause](https://nodejs.org/en/blog/release/v16.9.0/#error-cause).
27
+ * - The `status` argument (required) defines the HTTP Status Code.
28
+ * - The `options` argument (optional) defines additional error options. Currently, it supports the `cause` attribute,
29
+ * and can be used as an alternative way to specify the error cause: `const error = new HttpException('description', 400, { cause: new Error() });`
30
+ *
31
+ * By default, the JSON response body contains two properties:
32
+ * - `statusCode`: the Http Status Code.
33
+ * - `message`: a short description of the HTTP error by default; override this
34
+ * by supplying a string in the `response` parameter.
35
+ *
36
+ * To override the entire JSON response body, pass an object to the `createBody`
37
+ * method. Venok will serialize the object and return it as the JSON response body.
38
+ *
39
+ * The `status` argument is required, and should be a valid HTTP status code.
40
+ * Best practice is to use the `HttpStatus` enum.
41
+ *
42
+ * @param response string, object describing the error condition or the error cause.
43
+ * @param status HTTP response status code.
44
+ * @param options An object used to add an error cause.
45
+ */
46
+ constructor(response, status, options) {
47
+ super();
48
+ this.response = response;
49
+ this.status = status;
50
+ this.options = options;
51
+ this.initMessage();
52
+ this.initName();
53
+ this.initCause();
54
+ }
55
+ /**
56
+ * Configures error chaining support
57
+ *
58
+ * @see https://nodejs.org/en/blog/release/v16.9.0/#error-cause
59
+ * @see https://github.com/microsoft/TypeScript/issues/45167
60
+ */
61
+ initCause() {
62
+ if (this.options?.cause) {
63
+ this.cause = this.options.cause;
64
+ return;
65
+ }
66
+ }
67
+ initMessage() {
68
+ if ((0, shared_helper_1.isString)(this.response)) {
69
+ this.message = this.response;
70
+ }
71
+ else if ((0, shared_helper_1.isObject)(this.response) && (0, shared_helper_1.isString)(this.response.message)) {
72
+ this.message = this.response.message;
73
+ }
74
+ else if (this.constructor) {
75
+ this.message = this.constructor.name.match(/[A-Z][a-z]+|[0-9]+/g)?.join(" ") ?? "Error";
76
+ }
77
+ }
78
+ initName() {
79
+ this.name = this.constructor.name;
80
+ }
81
+ getResponse() {
82
+ return this.response;
83
+ }
84
+ getStatus() {
85
+ return this.status;
86
+ }
87
+ static createBody(arg0, arg1, statusCode) {
88
+ if (!arg0) {
89
+ return {
90
+ message: arg1,
91
+ statusCode: statusCode,
92
+ };
93
+ }
94
+ if ((0, shared_helper_1.isString)(arg0) || Array.isArray(arg0)) {
95
+ return {
96
+ message: arg0,
97
+ error: arg1,
98
+ statusCode: statusCode,
99
+ };
100
+ }
101
+ return arg0;
102
+ }
103
+ static getDescriptionFrom(descriptionOrOptions) {
104
+ return (0, shared_helper_1.isString)(descriptionOrOptions) ? descriptionOrOptions : descriptionOrOptions.description;
105
+ }
106
+ static getHttpExceptionOptionsFrom(descriptionOrOptions) {
107
+ return (0, shared_helper_1.isString)(descriptionOrOptions) ? {} : descriptionOrOptions;
108
+ }
109
+ /**
110
+ * Utility method used to extract the error description and httpExceptionOptions from the given argument.
111
+ * This is used by inheriting classes to correctly parse both options.
112
+ * @returns the error description and the httpExceptionOptions as an object.
113
+ */
114
+ static extractDescriptionAndOptionsFrom(descriptionOrOptions) {
115
+ const description = (0, shared_helper_1.isString)(descriptionOrOptions) ? descriptionOrOptions : descriptionOrOptions?.description;
116
+ const httpExceptionOptions = (0, shared_helper_1.isString)(descriptionOrOptions) ? {} : descriptionOrOptions;
117
+ return {
118
+ description,
119
+ httpExceptionOptions,
120
+ };
121
+ }
122
+ }
123
+ exports.HttpException = HttpException;
@@ -0,0 +1,36 @@
1
+ import { HttpException, HttpExceptionOptions } from "./http.exception";
2
+ /**
3
+ * Defines an HTTP exception for *ImATeapotException* type errors.
4
+ *
5
+ * Any attempt to brew coffee with a teapot should result in the error code
6
+ * "418 I'm a teapot". The resulting entity body MAY be short and stout.
7
+ *
8
+ * @publicApi
9
+ */
10
+ export declare class ImATeapotException extends HttpException {
11
+ /**
12
+ * Instantiate an `ImATeapotException` Exception.
13
+ *
14
+ * @example
15
+ * `throw new ImATeapotException()`
16
+ *
17
+ * @usageNotes
18
+ * The HTTP response status code will be 418.
19
+ * - The `objectOrError` argument defines the JSON response body or the message string.
20
+ * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause.
21
+ *
22
+ * By default, the JSON response body contains two properties:
23
+ * - `statusCode`: this will be the value 418.
24
+ * - `message`: the string `"I'm a Teapot"` by default; override this by supplying
25
+ * a string in the `objectOrError` parameter.
26
+ *
27
+ * If the parameter `objectOrError` is a string, the response body will contain an
28
+ * additional property, `error`, with a short description of the HTTP error. To override the
29
+ * entire JSON response body, pass an object instead. Venok will serialize the object
30
+ * and return it as the JSON response body.
31
+ *
32
+ * @param objectOrError string or object describing the error condition.
33
+ * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause
34
+ */
35
+ constructor(objectOrError?: string | object | any, descriptionOrOptions?: string | HttpExceptionOptions);
36
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ImATeapotException = void 0;
4
+ const enums_1 = require("../enums");
5
+ const http_exception_1 = require("./http.exception");
6
+ /**
7
+ * Defines an HTTP exception for *ImATeapotException* type errors.
8
+ *
9
+ * Any attempt to brew coffee with a teapot should result in the error code
10
+ * "418 I'm a teapot". The resulting entity body MAY be short and stout.
11
+ *
12
+ * @publicApi
13
+ */
14
+ class ImATeapotException extends http_exception_1.HttpException {
15
+ /**
16
+ * Instantiate an `ImATeapotException` Exception.
17
+ *
18
+ * @example
19
+ * `throw new ImATeapotException()`
20
+ *
21
+ * @usageNotes
22
+ * The HTTP response status code will be 418.
23
+ * - The `objectOrError` argument defines the JSON response body or the message string.
24
+ * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause.
25
+ *
26
+ * By default, the JSON response body contains two properties:
27
+ * - `statusCode`: this will be the value 418.
28
+ * - `message`: the string `"I'm a Teapot"` by default; override this by supplying
29
+ * a string in the `objectOrError` parameter.
30
+ *
31
+ * If the parameter `objectOrError` is a string, the response body will contain an
32
+ * additional property, `error`, with a short description of the HTTP error. To override the
33
+ * entire JSON response body, pass an object instead. Venok will serialize the object
34
+ * and return it as the JSON response body.
35
+ *
36
+ * @param objectOrError string or object describing the error condition.
37
+ * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause
38
+ */
39
+ constructor(objectOrError, descriptionOrOptions = `I'm a teapot`) {
40
+ const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions);
41
+ super(http_exception_1.HttpException.createBody(objectOrError, description ?? "", enums_1.HttpStatus.I_AM_A_TEAPOT), enums_1.HttpStatus.I_AM_A_TEAPOT, httpExceptionOptions);
42
+ }
43
+ }
44
+ exports.ImATeapotException = ImATeapotException;
@@ -0,0 +1,11 @@
1
+ export * from "./bad-request.exception";
2
+ export * from "./http.exception";
3
+ export * from "./forbidden.exception";
4
+ export * from "./conflict.exception";
5
+ export * from "./gone.exception";
6
+ export * from "./internal-server-error.exception";
7
+ export * from "./http-version-not-supported.exception";
8
+ export * from "./bad-gateway.exception";
9
+ export * from "./gateway-timeout.exception";
10
+ export * from "./im-a-teapot.exception";
11
+ export * from "./not-found.exception";
@@ -0,0 +1,27 @@
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("./bad-request.exception"), exports);
18
+ __exportStar(require("./http.exception"), exports);
19
+ __exportStar(require("./forbidden.exception"), exports);
20
+ __exportStar(require("./conflict.exception"), exports);
21
+ __exportStar(require("./gone.exception"), exports);
22
+ __exportStar(require("./internal-server-error.exception"), exports);
23
+ __exportStar(require("./http-version-not-supported.exception"), exports);
24
+ __exportStar(require("./bad-gateway.exception"), exports);
25
+ __exportStar(require("./gateway-timeout.exception"), exports);
26
+ __exportStar(require("./im-a-teapot.exception"), exports);
27
+ __exportStar(require("./not-found.exception"), exports);
@@ -0,0 +1,33 @@
1
+ import { HttpException, HttpExceptionOptions } from "./http.exception";
2
+ /**
3
+ * Defines an HTTP exception for *Internal Server Error* type errors.
4
+ *
5
+ * @publicApi
6
+ */
7
+ export declare class InternalServerErrorException extends HttpException {
8
+ /**
9
+ * Instantiate an `InternalServerErrorException` Exception.
10
+ *
11
+ * @example
12
+ * `throw new InternalServerErrorException()`
13
+ *
14
+ * @usageNotes
15
+ * The HTTP response status code will be 500.
16
+ * - The `objectOrError` argument defines the JSON response body or the message string.
17
+ * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause.
18
+ *
19
+ * By default, the JSON response body contains two properties:
20
+ * - `statusCode`: this will be the value 500.
21
+ * - `message`: the string `'Internal Server Error'` by default; override this by supplying
22
+ * a string in the `objectOrError` parameter.
23
+ *
24
+ * If the parameter `objectOrError` is a string, the response body will contain an
25
+ * additional property, `error`, with a short description of the HTTP error. To override the
26
+ * entire JSON response body, pass an object instead. Venok will serialize the object
27
+ * and return it as the JSON response body.
28
+ *
29
+ * @param objectOrError string or object describing the error condition.
30
+ * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause
31
+ */
32
+ constructor(objectOrError?: string | object | any, descriptionOrOptions?: string | HttpExceptionOptions);
33
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InternalServerErrorException = void 0;
4
+ const enums_1 = require("../enums");
5
+ const http_exception_1 = require("./http.exception");
6
+ /**
7
+ * Defines an HTTP exception for *Internal Server Error* type errors.
8
+ *
9
+ * @publicApi
10
+ */
11
+ class InternalServerErrorException extends http_exception_1.HttpException {
12
+ /**
13
+ * Instantiate an `InternalServerErrorException` Exception.
14
+ *
15
+ * @example
16
+ * `throw new InternalServerErrorException()`
17
+ *
18
+ * @usageNotes
19
+ * The HTTP response status code will be 500.
20
+ * - The `objectOrError` argument defines the JSON response body or the message string.
21
+ * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause.
22
+ *
23
+ * By default, the JSON response body contains two properties:
24
+ * - `statusCode`: this will be the value 500.
25
+ * - `message`: the string `'Internal Server Error'` by default; override this by supplying
26
+ * a string in the `objectOrError` parameter.
27
+ *
28
+ * If the parameter `objectOrError` is a string, the response body will contain an
29
+ * additional property, `error`, with a short description of the HTTP error. To override the
30
+ * entire JSON response body, pass an object instead. Venok will serialize the object
31
+ * and return it as the JSON response body.
32
+ *
33
+ * @param objectOrError string or object describing the error condition.
34
+ * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause
35
+ */
36
+ constructor(objectOrError, descriptionOrOptions = "Internal Server Error") {
37
+ const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions);
38
+ super(http_exception_1.HttpException.createBody(objectOrError, description, enums_1.HttpStatus.INTERNAL_SERVER_ERROR), enums_1.HttpStatus.INTERNAL_SERVER_ERROR, httpExceptionOptions);
39
+ }
40
+ }
41
+ exports.InternalServerErrorException = InternalServerErrorException;
@@ -0,0 +1,4 @@
1
+ import { RuntimeException } from "@venok/core/errors/exceptions";
2
+ export declare class InvalidMiddlewareConfigurationException extends RuntimeException {
3
+ constructor();
4
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InvalidMiddlewareConfigurationException = void 0;
4
+ const exceptions_1 = require("../../core/errors/exceptions");
5
+ const messages_1 = require("../exceptions/messages");
6
+ class InvalidMiddlewareConfigurationException extends exceptions_1.RuntimeException {
7
+ constructor() {
8
+ super(messages_1.INVALID_MIDDLEWARE_CONFIGURATION);
9
+ }
10
+ }
11
+ exports.InvalidMiddlewareConfigurationException = InvalidMiddlewareConfigurationException;
@@ -0,0 +1,4 @@
1
+ import { RuntimeException } from "@venok/core/errors/exceptions";
2
+ export declare class InvalidMiddlewareException extends RuntimeException {
3
+ constructor(name: string);
4
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InvalidMiddlewareException = void 0;
4
+ const exceptions_1 = require("../../core/errors/exceptions");
5
+ const messages_1 = require("../exceptions/messages");
6
+ class InvalidMiddlewareException extends exceptions_1.RuntimeException {
7
+ constructor(name) {
8
+ super((0, messages_1.INVALID_MIDDLEWARE_MESSAGE) `${name}`);
9
+ }
10
+ }
11
+ exports.InvalidMiddlewareException = InvalidMiddlewareException;