@depup/nestjs__common 11.1.16-depup.1

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 (378) hide show
  1. package/LICENSE +22 -0
  2. package/PACKAGE.md +1 -0
  3. package/Readme.md +31 -0
  4. package/changes.json +10 -0
  5. package/constants.d.ts +42 -0
  6. package/constants.js +44 -0
  7. package/decorators/core/apply-decorators.d.ts +10 -0
  8. package/decorators/core/apply-decorators.js +23 -0
  9. package/decorators/core/bind.decorator.d.ts +11 -0
  10. package/decorators/core/bind.decorator.js +19 -0
  11. package/decorators/core/catch.decorator.d.ts +19 -0
  12. package/decorators/core/catch.decorator.js +27 -0
  13. package/decorators/core/controller.decorator.d.ts +102 -0
  14. package/decorators/core/controller.decorator.js +61 -0
  15. package/decorators/core/dependencies.decorator.d.ts +7 -0
  16. package/decorators/core/dependencies.decorator.js +23 -0
  17. package/decorators/core/exception-filters.decorator.d.ts +23 -0
  18. package/decorators/core/exception-filters.decorator.js +43 -0
  19. package/decorators/core/index.d.ts +14 -0
  20. package/decorators/core/index.js +17 -0
  21. package/decorators/core/inject.decorator.d.ts +31 -0
  22. package/decorators/core/inject.decorator.js +53 -0
  23. package/decorators/core/injectable.decorator.d.ts +43 -0
  24. package/decorators/core/injectable.decorator.js +50 -0
  25. package/decorators/core/optional.decorator.d.ts +14 -0
  26. package/decorators/core/optional.decorator.js +29 -0
  27. package/decorators/core/set-metadata.decorator.d.ts +20 -0
  28. package/decorators/core/set-metadata.decorator.js +32 -0
  29. package/decorators/core/use-guards.decorator.d.ts +23 -0
  30. package/decorators/core/use-guards.decorator.js +41 -0
  31. package/decorators/core/use-interceptors.decorator.d.ts +23 -0
  32. package/decorators/core/use-interceptors.decorator.js +42 -0
  33. package/decorators/core/use-pipes.decorator.d.ts +23 -0
  34. package/decorators/core/use-pipes.decorator.js +40 -0
  35. package/decorators/core/version.decorator.d.ts +7 -0
  36. package/decorators/core/version.decorator.js +19 -0
  37. package/decorators/http/create-route-param-metadata.decorator.d.ts +13 -0
  38. package/decorators/http/create-route-param-metadata.decorator.js +32 -0
  39. package/decorators/http/header.decorator.d.ts +15 -0
  40. package/decorators/http/header.decorator.js +25 -0
  41. package/decorators/http/http-code.decorator.d.ts +11 -0
  42. package/decorators/http/http-code.decorator.js +20 -0
  43. package/decorators/http/index.d.ts +8 -0
  44. package/decorators/http/index.js +11 -0
  45. package/decorators/http/redirect.decorator.d.ts +6 -0
  46. package/decorators/http/redirect.decorator.js +15 -0
  47. package/decorators/http/render.decorator.d.ts +12 -0
  48. package/decorators/http/render.decorator.js +21 -0
  49. package/decorators/http/request-mapping.decorator.d.ts +134 -0
  50. package/decorators/http/request-mapping.decorator.js +154 -0
  51. package/decorators/http/route-params.decorator.d.ts +445 -0
  52. package/decorators/http/route-params.decorator.js +265 -0
  53. package/decorators/http/sse.decorator.d.ts +10 -0
  54. package/decorators/http/sse.decorator.js +21 -0
  55. package/decorators/index.d.ts +3 -0
  56. package/decorators/index.js +6 -0
  57. package/decorators/modules/global.decorator.d.ts +12 -0
  58. package/decorators/modules/global.decorator.js +20 -0
  59. package/decorators/modules/index.d.ts +2 -0
  60. package/decorators/modules/index.js +5 -0
  61. package/decorators/modules/module.decorator.d.ts +16 -0
  62. package/decorators/modules/module.decorator.js +29 -0
  63. package/enums/http-status.enum.d.ts +60 -0
  64. package/enums/http-status.enum.js +64 -0
  65. package/enums/index.d.ts +4 -0
  66. package/enums/index.js +7 -0
  67. package/enums/request-method.enum.d.ts +18 -0
  68. package/enums/request-method.enum.js +22 -0
  69. package/enums/route-paramtypes.enum.d.ts +16 -0
  70. package/enums/route-paramtypes.enum.js +20 -0
  71. package/enums/shutdown-signal.enum.d.ts +16 -0
  72. package/enums/shutdown-signal.enum.js +20 -0
  73. package/enums/version-type.enum.d.ts +9 -0
  74. package/enums/version-type.enum.js +13 -0
  75. package/exceptions/bad-gateway.exception.d.ts +35 -0
  76. package/exceptions/bad-gateway.exception.js +43 -0
  77. package/exceptions/bad-request.exception.d.ts +35 -0
  78. package/exceptions/bad-request.exception.js +43 -0
  79. package/exceptions/conflict.exception.d.ts +35 -0
  80. package/exceptions/conflict.exception.js +43 -0
  81. package/exceptions/forbidden.exception.d.ts +35 -0
  82. package/exceptions/forbidden.exception.js +43 -0
  83. package/exceptions/gateway-timeout.exception.d.ts +35 -0
  84. package/exceptions/gateway-timeout.exception.js +43 -0
  85. package/exceptions/gone.exception.d.ts +35 -0
  86. package/exceptions/gone.exception.js +43 -0
  87. package/exceptions/http-version-not-supported.exception.d.ts +35 -0
  88. package/exceptions/http-version-not-supported.exception.js +43 -0
  89. package/exceptions/http.exception.d.ts +85 -0
  90. package/exceptions/http.exception.js +133 -0
  91. package/exceptions/im-a-teapot.exception.d.ts +38 -0
  92. package/exceptions/im-a-teapot.exception.js +46 -0
  93. package/exceptions/index.d.ts +23 -0
  94. package/exceptions/index.js +26 -0
  95. package/exceptions/internal-server-error.exception.d.ts +35 -0
  96. package/exceptions/internal-server-error.exception.js +43 -0
  97. package/exceptions/intrinsic.exception.d.ts +8 -0
  98. package/exceptions/intrinsic.exception.js +12 -0
  99. package/exceptions/method-not-allowed.exception.d.ts +35 -0
  100. package/exceptions/method-not-allowed.exception.js +43 -0
  101. package/exceptions/misdirected.exception.d.ts +35 -0
  102. package/exceptions/misdirected.exception.js +43 -0
  103. package/exceptions/not-acceptable.exception.d.ts +35 -0
  104. package/exceptions/not-acceptable.exception.js +43 -0
  105. package/exceptions/not-found.exception.d.ts +35 -0
  106. package/exceptions/not-found.exception.js +43 -0
  107. package/exceptions/not-implemented.exception.d.ts +35 -0
  108. package/exceptions/not-implemented.exception.js +43 -0
  109. package/exceptions/payload-too-large.exception.d.ts +35 -0
  110. package/exceptions/payload-too-large.exception.js +43 -0
  111. package/exceptions/precondition-failed.exception.d.ts +35 -0
  112. package/exceptions/precondition-failed.exception.js +43 -0
  113. package/exceptions/request-timeout.exception.d.ts +35 -0
  114. package/exceptions/request-timeout.exception.js +43 -0
  115. package/exceptions/service-unavailable.exception.d.ts +35 -0
  116. package/exceptions/service-unavailable.exception.js +43 -0
  117. package/exceptions/unauthorized.exception.d.ts +35 -0
  118. package/exceptions/unauthorized.exception.js +43 -0
  119. package/exceptions/unprocessable-entity.exception.d.ts +35 -0
  120. package/exceptions/unprocessable-entity.exception.js +43 -0
  121. package/exceptions/unsupported-media-type.exception.d.ts +35 -0
  122. package/exceptions/unsupported-media-type.exception.js +43 -0
  123. package/file-stream/index.d.ts +1 -0
  124. package/file-stream/index.js +4 -0
  125. package/file-stream/interfaces/index.d.ts +2 -0
  126. package/file-stream/interfaces/index.js +5 -0
  127. package/file-stream/interfaces/streamable-handler-response.interface.d.ts +12 -0
  128. package/file-stream/interfaces/streamable-handler-response.interface.js +2 -0
  129. package/file-stream/interfaces/streamable-options.interface.d.ts +22 -0
  130. package/file-stream/interfaces/streamable-options.interface.js +2 -0
  131. package/file-stream/streamable-file.d.ts +27 -0
  132. package/file-stream/streamable-file.js +68 -0
  133. package/index.d.ts +11 -0
  134. package/index.js +23 -0
  135. package/interfaces/abstract.interface.d.ts +3 -0
  136. package/interfaces/abstract.interface.js +2 -0
  137. package/interfaces/controllers/controller-metadata.interface.d.ts +3 -0
  138. package/interfaces/controllers/controller-metadata.interface.js +2 -0
  139. package/interfaces/controllers/controller.interface.d.ts +1 -0
  140. package/interfaces/controllers/controller.interface.js +2 -0
  141. package/interfaces/controllers/index.d.ts +2 -0
  142. package/interfaces/controllers/index.js +5 -0
  143. package/interfaces/exceptions/exception-filter-metadata.interface.d.ts +6 -0
  144. package/interfaces/exceptions/exception-filter-metadata.interface.js +2 -0
  145. package/interfaces/exceptions/exception-filter.interface.d.ts +18 -0
  146. package/interfaces/exceptions/exception-filter.interface.js +2 -0
  147. package/interfaces/exceptions/index.d.ts +5 -0
  148. package/interfaces/exceptions/index.js +8 -0
  149. package/interfaces/exceptions/rpc-exception-filter-metadata.interface.d.ts +6 -0
  150. package/interfaces/exceptions/rpc-exception-filter-metadata.interface.js +2 -0
  151. package/interfaces/exceptions/rpc-exception-filter.interface.d.ts +19 -0
  152. package/interfaces/exceptions/rpc-exception-filter.interface.js +2 -0
  153. package/interfaces/exceptions/ws-exception-filter.interface.d.ts +18 -0
  154. package/interfaces/exceptions/ws-exception-filter.interface.js +2 -0
  155. package/interfaces/external/class-transform-options.interface.d.ts +65 -0
  156. package/interfaces/external/class-transform-options.interface.js +2 -0
  157. package/interfaces/external/cors-options.interface.d.ts +58 -0
  158. package/interfaces/external/cors-options.interface.js +2 -0
  159. package/interfaces/external/https-options.interface.d.ts +105 -0
  160. package/interfaces/external/https-options.interface.js +2 -0
  161. package/interfaces/external/transformer-package.interface.d.ts +6 -0
  162. package/interfaces/external/transformer-package.interface.js +2 -0
  163. package/interfaces/external/validation-error.interface.d.ts +42 -0
  164. package/interfaces/external/validation-error.interface.js +2 -0
  165. package/interfaces/external/validator-options.interface.d.ts +76 -0
  166. package/interfaces/external/validator-options.interface.js +2 -0
  167. package/interfaces/external/validator-package.interface.d.ts +5 -0
  168. package/interfaces/external/validator-package.interface.js +2 -0
  169. package/interfaces/features/arguments-host.interface.d.ts +88 -0
  170. package/interfaces/features/arguments-host.interface.js +2 -0
  171. package/interfaces/features/can-activate.interface.d.ts +22 -0
  172. package/interfaces/features/can-activate.interface.js +2 -0
  173. package/interfaces/features/custom-route-param-factory.interface.d.ts +5 -0
  174. package/interfaces/features/custom-route-param-factory.interface.js +2 -0
  175. package/interfaces/features/execution-context.interface.d.ts +20 -0
  176. package/interfaces/features/execution-context.interface.js +2 -0
  177. package/interfaces/features/nest-interceptor.interface.d.ts +34 -0
  178. package/interfaces/features/nest-interceptor.interface.js +2 -0
  179. package/interfaces/features/paramtype.interface.d.ts +4 -0
  180. package/interfaces/features/paramtype.interface.js +2 -0
  181. package/interfaces/features/pipe-transform.interface.d.ts +42 -0
  182. package/interfaces/features/pipe-transform.interface.js +2 -0
  183. package/interfaces/global-prefix-options.interface.d.ts +7 -0
  184. package/interfaces/global-prefix-options.interface.js +2 -0
  185. package/interfaces/hooks/before-application-shutdown.interface.d.ts +3 -0
  186. package/interfaces/hooks/before-application-shutdown.interface.js +2 -0
  187. package/interfaces/hooks/index.d.ts +5 -0
  188. package/interfaces/hooks/index.js +8 -0
  189. package/interfaces/hooks/on-application-bootstrap.interface.d.ts +11 -0
  190. package/interfaces/hooks/on-application-bootstrap.interface.js +2 -0
  191. package/interfaces/hooks/on-application-shutdown.interface.d.ts +11 -0
  192. package/interfaces/hooks/on-application-shutdown.interface.js +2 -0
  193. package/interfaces/hooks/on-destroy.interface.d.ts +12 -0
  194. package/interfaces/hooks/on-destroy.interface.js +2 -0
  195. package/interfaces/hooks/on-init.interface.d.ts +10 -0
  196. package/interfaces/hooks/on-init.interface.js +2 -0
  197. package/interfaces/http/http-exception-body.interface.d.ts +6 -0
  198. package/interfaces/http/http-exception-body.interface.js +2 -0
  199. package/interfaces/http/http-redirect-response.interface.d.ts +5 -0
  200. package/interfaces/http/http-redirect-response.interface.js +2 -0
  201. package/interfaces/http/http-server.interface.d.ts +70 -0
  202. package/interfaces/http/http-server.interface.js +2 -0
  203. package/interfaces/http/index.d.ts +5 -0
  204. package/interfaces/http/index.js +8 -0
  205. package/interfaces/http/message-event.interface.d.ts +6 -0
  206. package/interfaces/http/message-event.interface.js +2 -0
  207. package/interfaces/http/raw-body-request.interface.d.ts +6 -0
  208. package/interfaces/http/raw-body-request.interface.js +2 -0
  209. package/interfaces/index.d.ts +30 -0
  210. package/interfaces/index.js +33 -0
  211. package/interfaces/injectable.interface.d.ts +1 -0
  212. package/interfaces/injectable.interface.js +2 -0
  213. package/interfaces/microservices/nest-hybrid-application-options.interface.d.ts +7 -0
  214. package/interfaces/microservices/nest-hybrid-application-options.interface.js +2 -0
  215. package/interfaces/microservices/nest-microservice-options.interface.d.ts +5 -0
  216. package/interfaces/microservices/nest-microservice-options.interface.js +2 -0
  217. package/interfaces/middleware/index.d.ts +4 -0
  218. package/interfaces/middleware/index.js +7 -0
  219. package/interfaces/middleware/middleware-config-proxy.interface.d.ts +24 -0
  220. package/interfaces/middleware/middleware-config-proxy.interface.js +2 -0
  221. package/interfaces/middleware/middleware-configuration.interface.d.ts +12 -0
  222. package/interfaces/middleware/middleware-configuration.interface.js +2 -0
  223. package/interfaces/middleware/middleware-consumer.interface.d.ts +18 -0
  224. package/interfaces/middleware/middleware-consumer.interface.js +2 -0
  225. package/interfaces/middleware/nest-middleware.interface.d.ts +8 -0
  226. package/interfaces/middleware/nest-middleware.interface.js +2 -0
  227. package/interfaces/modules/dynamic-module.interface.d.ts +25 -0
  228. package/interfaces/modules/dynamic-module.interface.js +2 -0
  229. package/interfaces/modules/forward-reference.interface.d.ts +3 -0
  230. package/interfaces/modules/forward-reference.interface.js +2 -0
  231. package/interfaces/modules/index.d.ts +8 -0
  232. package/interfaces/modules/index.js +11 -0
  233. package/interfaces/modules/injection-token.interface.d.ts +6 -0
  234. package/interfaces/modules/injection-token.interface.js +2 -0
  235. package/interfaces/modules/introspection-result.interface.d.ts +10 -0
  236. package/interfaces/modules/introspection-result.interface.js +2 -0
  237. package/interfaces/modules/module-metadata.interface.d.ts +34 -0
  238. package/interfaces/modules/module-metadata.interface.js +2 -0
  239. package/interfaces/modules/nest-module.interface.d.ts +7 -0
  240. package/interfaces/modules/nest-module.interface.js +2 -0
  241. package/interfaces/modules/optional-factory-dependency.interface.d.ts +8 -0
  242. package/interfaces/modules/optional-factory-dependency.interface.js +2 -0
  243. package/interfaces/modules/provider.interface.d.ts +156 -0
  244. package/interfaces/modules/provider.interface.js +2 -0
  245. package/interfaces/nest-application-context-options.interface.d.ts +68 -0
  246. package/interfaces/nest-application-context-options.interface.js +9 -0
  247. package/interfaces/nest-application-context.interface.d.ts +139 -0
  248. package/interfaces/nest-application-context.interface.js +2 -0
  249. package/interfaces/nest-application-options.interface.d.ts +29 -0
  250. package/interfaces/nest-application-options.interface.js +2 -0
  251. package/interfaces/nest-application.interface.d.ts +135 -0
  252. package/interfaces/nest-application.interface.js +2 -0
  253. package/interfaces/nest-microservice.interface.d.ts +75 -0
  254. package/interfaces/nest-microservice.interface.js +2 -0
  255. package/interfaces/scope-options.interface.d.ts +37 -0
  256. package/interfaces/scope-options.interface.js +23 -0
  257. package/interfaces/shutdown-hooks-options.interface.d.ts +21 -0
  258. package/interfaces/shutdown-hooks-options.interface.js +2 -0
  259. package/interfaces/type.interface.d.ts +3 -0
  260. package/interfaces/type.interface.js +2 -0
  261. package/interfaces/version-options.interface.d.ts +92 -0
  262. package/interfaces/version-options.interface.js +9 -0
  263. package/interfaces/websockets/web-socket-adapter.interface.d.ts +19 -0
  264. package/interfaces/websockets/web-socket-adapter.interface.js +2 -0
  265. package/module-utils/configurable-module.builder.d.ts +93 -0
  266. package/module-utils/configurable-module.builder.js +219 -0
  267. package/module-utils/constants.d.ts +9 -0
  268. package/module-utils/constants.js +19 -0
  269. package/module-utils/index.d.ts +2 -0
  270. package/module-utils/index.js +5 -0
  271. package/module-utils/interfaces/configurable-module-async-options.interface.d.ts +42 -0
  272. package/module-utils/interfaces/configurable-module-async-options.interface.js +2 -0
  273. package/module-utils/interfaces/configurable-module-cls.interface.d.ts +13 -0
  274. package/module-utils/interfaces/configurable-module-cls.interface.js +2 -0
  275. package/module-utils/interfaces/configurable-module-host.interface.d.ts +62 -0
  276. package/module-utils/interfaces/configurable-module-host.interface.js +2 -0
  277. package/module-utils/interfaces/index.d.ts +3 -0
  278. package/module-utils/interfaces/index.js +6 -0
  279. package/module-utils/utils/generate-options-injection-token.util.d.ts +1 -0
  280. package/module-utils/utils/generate-options-injection-token.util.js +8 -0
  281. package/module-utils/utils/get-injection-providers.util.d.ts +8 -0
  282. package/module-utils/utils/get-injection-providers.util.js +35 -0
  283. package/module-utils/utils/index.d.ts +2 -0
  284. package/module-utils/utils/index.js +5 -0
  285. package/package.json +61 -0
  286. package/pipes/default-value.pipe.d.ts +13 -0
  287. package/pipes/default-value.pipe.js +30 -0
  288. package/pipes/file/file-type.validator.d.ts +62 -0
  289. package/pipes/file/file-type.validator.js +102 -0
  290. package/pipes/file/file-validator-context.interface.d.ts +5 -0
  291. package/pipes/file/file-validator-context.interface.js +2 -0
  292. package/pipes/file/file-validator.interface.d.ts +21 -0
  293. package/pipes/file/file-validator.interface.js +15 -0
  294. package/pipes/file/index.d.ts +6 -0
  295. package/pipes/file/index.js +9 -0
  296. package/pipes/file/interfaces/file.interface.d.ts +5 -0
  297. package/pipes/file/interfaces/file.interface.js +2 -0
  298. package/pipes/file/interfaces/index.d.ts +1 -0
  299. package/pipes/file/interfaces/index.js +4 -0
  300. package/pipes/file/max-file-size.validator.d.ts +44 -0
  301. package/pipes/file/max-file-size.validator.js +37 -0
  302. package/pipes/file/parse-file-options.interface.d.ts +15 -0
  303. package/pipes/file/parse-file-options.interface.js +2 -0
  304. package/pipes/file/parse-file-pipe.builder.d.ts +15 -0
  305. package/pipes/file/parse-file-pipe.builder.js +33 -0
  306. package/pipes/file/parse-file.pipe.d.ts +28 -0
  307. package/pipes/file/parse-file.pipe.js +76 -0
  308. package/pipes/index.d.ts +10 -0
  309. package/pipes/index.js +13 -0
  310. package/pipes/parse-array.pipe.d.ts +52 -0
  311. package/pipes/parse-array.pipe.js +148 -0
  312. package/pipes/parse-bool.pipe.d.ts +55 -0
  313. package/pipes/parse-bool.pipe.js +67 -0
  314. package/pipes/parse-date.pipe.d.ts +37 -0
  315. package/pipes/parse-date.pipe.js +42 -0
  316. package/pipes/parse-enum.pipe.d.ts +46 -0
  317. package/pipes/parse-enum.pipe.js +55 -0
  318. package/pipes/parse-float.pipe.d.ts +49 -0
  319. package/pipes/parse-float.pipe.js +56 -0
  320. package/pipes/parse-int.pipe.d.ts +48 -0
  321. package/pipes/parse-int.pipe.js +57 -0
  322. package/pipes/parse-uuid.pipe.d.ts +49 -0
  323. package/pipes/parse-uuid.pipe.js +57 -0
  324. package/pipes/validation.pipe.d.ts +51 -0
  325. package/pipes/validation.pipe.js +245 -0
  326. package/serializer/class-serializer.constants.d.ts +1 -0
  327. package/serializer/class-serializer.constants.js +4 -0
  328. package/serializer/class-serializer.interceptor.d.ts +29 -0
  329. package/serializer/class-serializer.interceptor.js +77 -0
  330. package/serializer/class-serializer.interfaces.d.ts +8 -0
  331. package/serializer/class-serializer.interfaces.js +2 -0
  332. package/serializer/decorators/index.d.ts +1 -0
  333. package/serializer/decorators/index.js +4 -0
  334. package/serializer/decorators/serialize-options.decorator.d.ts +5 -0
  335. package/serializer/decorators/serialize-options.decorator.js +10 -0
  336. package/serializer/index.d.ts +3 -0
  337. package/serializer/index.js +6 -0
  338. package/services/console-logger.service.d.ts +202 -0
  339. package/services/console-logger.service.js +379 -0
  340. package/services/index.d.ts +3 -0
  341. package/services/index.js +6 -0
  342. package/services/logger.service.d.ts +152 -0
  343. package/services/logger.service.js +251 -0
  344. package/services/utils/filter-log-levels.util.d.ts +5 -0
  345. package/services/utils/filter-log-levels.util.js +23 -0
  346. package/services/utils/index.d.ts +3 -0
  347. package/services/utils/index.js +6 -0
  348. package/services/utils/is-log-level-enabled.util.d.ts +7 -0
  349. package/services/utils/is-log-level-enabled.util.js +32 -0
  350. package/services/utils/is-log-level.util.d.ts +5 -0
  351. package/services/utils/is-log-level.util.js +10 -0
  352. package/tsconfig.build.json +10 -0
  353. package/utils/assign-custom-metadata.util.d.ts +4 -0
  354. package/utils/assign-custom-metadata.util.js +15 -0
  355. package/utils/cli-colors.util.d.ts +10 -0
  356. package/utils/cli-colors.util.js +15 -0
  357. package/utils/extend-metadata.util.d.ts +1 -0
  358. package/utils/extend-metadata.util.js +8 -0
  359. package/utils/forward-ref.util.d.ts +5 -0
  360. package/utils/forward-ref.util.js +10 -0
  361. package/utils/http-error-by-code.util.d.ts +4 -0
  362. package/utils/http-error-by-code.util.js +26 -0
  363. package/utils/index.d.ts +1 -0
  364. package/utils/index.js +4 -0
  365. package/utils/load-package.util.d.ts +1 -0
  366. package/utils/load-package.util.js +16 -0
  367. package/utils/merge-with-values.util.d.ts +4 -0
  368. package/utils/merge-with-values.util.js +18 -0
  369. package/utils/random-string-generator.util.d.ts +1 -0
  370. package/utils/random-string-generator.util.js +6 -0
  371. package/utils/select-exception-filter-metadata.util.d.ts +2 -0
  372. package/utils/select-exception-filter-metadata.util.js +6 -0
  373. package/utils/shared.utils.d.ts +13 -0
  374. package/utils/shared.utils.js +51 -0
  375. package/utils/validate-each.util.d.ts +8 -0
  376. package/utils/validate-each.util.js +25 -0
  377. package/utils/validate-module-keys.util.d.ts +2 -0
  378. package/utils/validate-module-keys.util.js +22 -0
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConflictException = void 0;
4
+ const http_status_enum_1 = require("../enums/http-status.enum");
5
+ const http_exception_1 = require("./http.exception");
6
+ /**
7
+ * Defines an HTTP exception for *Conflict* type errors.
8
+ *
9
+ * @see [Built-in HTTP exceptions](https://docs.nestjs.com/exception-filters#built-in-http-exceptions)
10
+ *
11
+ * @publicApi
12
+ */
13
+ class ConflictException extends http_exception_1.HttpException {
14
+ /**
15
+ * Instantiate a `ConflictException` Exception.
16
+ *
17
+ * @example
18
+ * `throw new ConflictException()`
19
+ *
20
+ * @usageNotes
21
+ * The HTTP response status code will be 409.
22
+ * - The `objectOrError` argument defines the JSON response body or the message string.
23
+ * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause.
24
+ *
25
+ * By default, the JSON response body contains two properties:
26
+ * - `statusCode`: this will be the value 409.
27
+ * - `message`: the string `'Conflict'` by default; override this by supplying
28
+ * a string in the `objectOrError` parameter.
29
+ *
30
+ * If the parameter `objectOrError` is a string, the response body will contain an
31
+ * additional property, `error`, with a short description of the HTTP error. To override the
32
+ * entire JSON response body, pass an object instead. Nest will serialize the object
33
+ * and return it as the JSON response body.
34
+ *
35
+ * @param objectOrError string or object describing the error condition.
36
+ * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause
37
+ */
38
+ constructor(objectOrError, descriptionOrOptions = 'Conflict') {
39
+ const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions);
40
+ super(http_exception_1.HttpException.createBody(objectOrError, description, http_status_enum_1.HttpStatus.CONFLICT), http_status_enum_1.HttpStatus.CONFLICT, httpExceptionOptions);
41
+ }
42
+ }
43
+ exports.ConflictException = ConflictException;
@@ -0,0 +1,35 @@
1
+ import { HttpException, HttpExceptionOptions } from './http.exception';
2
+ /**
3
+ * Defines an HTTP exception for *Forbidden* type errors.
4
+ *
5
+ * @see [Built-in HTTP exceptions](https://docs.nestjs.com/exception-filters#built-in-http-exceptions)
6
+ *
7
+ * @publicApi
8
+ */
9
+ export declare class ForbiddenException extends HttpException {
10
+ /**
11
+ * Instantiate a `ForbiddenException` Exception.
12
+ *
13
+ * @example
14
+ * `throw new ForbiddenException()`
15
+ *
16
+ * @usageNotes
17
+ * The HTTP response status code will be 403.
18
+ * - The `objectOrError` argument defines the JSON response body or the message string.
19
+ * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause.
20
+ *
21
+ * By default, the JSON response body contains two properties:
22
+ * - `statusCode`: this will be the value 403.
23
+ * - `message`: the string `'Forbidden'` by default; override this by supplying
24
+ * a string in the `objectOrError` parameter.
25
+ *
26
+ * If the parameter `objectOrError` is a string, the response body will contain an
27
+ * additional property, `error`, with a short description of the HTTP error. To override the
28
+ * entire JSON response body, pass an object instead. Nest will serialize the object
29
+ * and return it as the JSON response body.
30
+ *
31
+ * @param objectOrError string or object describing the error condition.
32
+ * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause
33
+ */
34
+ constructor(objectOrError?: any, descriptionOrOptions?: string | HttpExceptionOptions);
35
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ForbiddenException = void 0;
4
+ const http_status_enum_1 = require("../enums/http-status.enum");
5
+ const http_exception_1 = require("./http.exception");
6
+ /**
7
+ * Defines an HTTP exception for *Forbidden* type errors.
8
+ *
9
+ * @see [Built-in HTTP exceptions](https://docs.nestjs.com/exception-filters#built-in-http-exceptions)
10
+ *
11
+ * @publicApi
12
+ */
13
+ class ForbiddenException extends http_exception_1.HttpException {
14
+ /**
15
+ * Instantiate a `ForbiddenException` Exception.
16
+ *
17
+ * @example
18
+ * `throw new ForbiddenException()`
19
+ *
20
+ * @usageNotes
21
+ * The HTTP response status code will be 403.
22
+ * - The `objectOrError` argument defines the JSON response body or the message string.
23
+ * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause.
24
+ *
25
+ * By default, the JSON response body contains two properties:
26
+ * - `statusCode`: this will be the value 403.
27
+ * - `message`: the string `'Forbidden'` by default; override this by supplying
28
+ * a string in the `objectOrError` parameter.
29
+ *
30
+ * If the parameter `objectOrError` is a string, the response body will contain an
31
+ * additional property, `error`, with a short description of the HTTP error. To override the
32
+ * entire JSON response body, pass an object instead. Nest will serialize the object
33
+ * and return it as the JSON response body.
34
+ *
35
+ * @param objectOrError string or object describing the error condition.
36
+ * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause
37
+ */
38
+ constructor(objectOrError, descriptionOrOptions = 'Forbidden') {
39
+ const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions);
40
+ super(http_exception_1.HttpException.createBody(objectOrError, description, http_status_enum_1.HttpStatus.FORBIDDEN), http_status_enum_1.HttpStatus.FORBIDDEN, httpExceptionOptions);
41
+ }
42
+ }
43
+ exports.ForbiddenException = ForbiddenException;
@@ -0,0 +1,35 @@
1
+ import { HttpException, HttpExceptionOptions } from './http.exception';
2
+ /**
3
+ * Defines an HTTP exception for *Gateway Timeout* type errors.
4
+ *
5
+ * @see [Built-in HTTP exceptions](https://docs.nestjs.com/exception-filters#built-in-http-exceptions)
6
+ *
7
+ * @publicApi
8
+ */
9
+ export declare class GatewayTimeoutException extends HttpException {
10
+ /**
11
+ * Instantiate a `GatewayTimeoutException` Exception.
12
+ *
13
+ * @example
14
+ * `throw new GatewayTimeoutException()`
15
+ *
16
+ * @usageNotes
17
+ * The HTTP response status code will be 504.
18
+ * - The `objectOrError` argument defines the JSON response body or the message string.
19
+ * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause.
20
+ *
21
+ * By default, the JSON response body contains two properties:
22
+ * - `statusCode`: this will be the value 504.
23
+ * - `message`: the string `'Gateway Timeout'` by default; override this by supplying
24
+ * a string in the `objectOrError` parameter.
25
+ *
26
+ * If the parameter `objectOrError` is a string, the response body will contain an
27
+ * additional property, `error`, with a short description of the HTTP error. To override the
28
+ * entire JSON response body, pass an object instead. Nest will serialize the object
29
+ * and return it as the JSON response body.
30
+ *
31
+ * @param objectOrError string or object describing the error condition.
32
+ * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause
33
+ */
34
+ constructor(objectOrError?: any, descriptionOrOptions?: string | HttpExceptionOptions);
35
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GatewayTimeoutException = void 0;
4
+ const http_status_enum_1 = require("../enums/http-status.enum");
5
+ const http_exception_1 = require("./http.exception");
6
+ /**
7
+ * Defines an HTTP exception for *Gateway Timeout* type errors.
8
+ *
9
+ * @see [Built-in HTTP exceptions](https://docs.nestjs.com/exception-filters#built-in-http-exceptions)
10
+ *
11
+ * @publicApi
12
+ */
13
+ class GatewayTimeoutException extends http_exception_1.HttpException {
14
+ /**
15
+ * Instantiate a `GatewayTimeoutException` Exception.
16
+ *
17
+ * @example
18
+ * `throw new GatewayTimeoutException()`
19
+ *
20
+ * @usageNotes
21
+ * The HTTP response status code will be 504.
22
+ * - The `objectOrError` argument defines the JSON response body or the message string.
23
+ * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause.
24
+ *
25
+ * By default, the JSON response body contains two properties:
26
+ * - `statusCode`: this will be the value 504.
27
+ * - `message`: the string `'Gateway Timeout'` by default; override this by supplying
28
+ * a string in the `objectOrError` parameter.
29
+ *
30
+ * If the parameter `objectOrError` is a string, the response body will contain an
31
+ * additional property, `error`, with a short description of the HTTP error. To override the
32
+ * entire JSON response body, pass an object instead. Nest will serialize the object
33
+ * and return it as the JSON response body.
34
+ *
35
+ * @param objectOrError string or object describing the error condition.
36
+ * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause
37
+ */
38
+ constructor(objectOrError, descriptionOrOptions = 'Gateway Timeout') {
39
+ const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions);
40
+ super(http_exception_1.HttpException.createBody(objectOrError, description, http_status_enum_1.HttpStatus.GATEWAY_TIMEOUT), http_status_enum_1.HttpStatus.GATEWAY_TIMEOUT, httpExceptionOptions);
41
+ }
42
+ }
43
+ exports.GatewayTimeoutException = GatewayTimeoutException;
@@ -0,0 +1,35 @@
1
+ import { HttpException, HttpExceptionOptions } from './http.exception';
2
+ /**
3
+ * Defines an HTTP exception for *Gone* type errors.
4
+ *
5
+ * @see [Built-in HTTP exceptions](https://docs.nestjs.com/exception-filters#built-in-http-exceptions)
6
+ *
7
+ * @publicApi
8
+ */
9
+ export declare class GoneException extends HttpException {
10
+ /**
11
+ * Instantiate a `GoneException` Exception.
12
+ *
13
+ * @example
14
+ * `throw new GoneException()`
15
+ *
16
+ * @usageNotes
17
+ * The HTTP response status code will be 410.
18
+ * - The `objectOrError` argument defines the JSON response body or the message string.
19
+ * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause.
20
+ *
21
+ * By default, the JSON response body contains two properties:
22
+ * - `statusCode`: this will be the value 410.
23
+ * - `message`: the string `'Gone'` by default; override this by supplying
24
+ * a string in the `objectOrError` parameter.
25
+ *
26
+ * If the parameter `objectOrError` is a string, the response body will contain an
27
+ * additional property, `error`, with a short description of the HTTP error. To override the
28
+ * entire JSON response body, pass an object instead. Nest will serialize the object
29
+ * and return it as the JSON response body.
30
+ *
31
+ * @param objectOrError string or object describing the error condition.
32
+ * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause
33
+ */
34
+ constructor(objectOrError?: any, descriptionOrOptions?: string | HttpExceptionOptions);
35
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GoneException = void 0;
4
+ const http_status_enum_1 = require("../enums/http-status.enum");
5
+ const http_exception_1 = require("./http.exception");
6
+ /**
7
+ * Defines an HTTP exception for *Gone* type errors.
8
+ *
9
+ * @see [Built-in HTTP exceptions](https://docs.nestjs.com/exception-filters#built-in-http-exceptions)
10
+ *
11
+ * @publicApi
12
+ */
13
+ class GoneException extends http_exception_1.HttpException {
14
+ /**
15
+ * Instantiate a `GoneException` Exception.
16
+ *
17
+ * @example
18
+ * `throw new GoneException()`
19
+ *
20
+ * @usageNotes
21
+ * The HTTP response status code will be 410.
22
+ * - The `objectOrError` argument defines the JSON response body or the message string.
23
+ * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause.
24
+ *
25
+ * By default, the JSON response body contains two properties:
26
+ * - `statusCode`: this will be the value 410.
27
+ * - `message`: the string `'Gone'` by default; override this by supplying
28
+ * a string in the `objectOrError` parameter.
29
+ *
30
+ * If the parameter `objectOrError` is a string, the response body will contain an
31
+ * additional property, `error`, with a short description of the HTTP error. To override the
32
+ * entire JSON response body, pass an object instead. Nest will serialize the object
33
+ * and return it as the JSON response body.
34
+ *
35
+ * @param objectOrError string or object describing the error condition.
36
+ * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause
37
+ */
38
+ constructor(objectOrError, descriptionOrOptions = 'Gone') {
39
+ const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions);
40
+ super(http_exception_1.HttpException.createBody(objectOrError, description, http_status_enum_1.HttpStatus.GONE), http_status_enum_1.HttpStatus.GONE, httpExceptionOptions);
41
+ }
42
+ }
43
+ exports.GoneException = GoneException;
@@ -0,0 +1,35 @@
1
+ import { HttpException, HttpExceptionOptions } from './http.exception';
2
+ /**
3
+ * Defines an HTTP exception for *Http Version Not Supported* type errors.
4
+ *
5
+ * @see [Built-in HTTP exceptions](https://docs.nestjs.com/exception-filters#built-in-http-exceptions)
6
+ *
7
+ * @publicApi
8
+ */
9
+ export declare class HttpVersionNotSupportedException extends HttpException {
10
+ /**
11
+ * Instantiate a `HttpVersionNotSupportedException` Exception.
12
+ *
13
+ * @example
14
+ * `throw new HttpVersionNotSupportedException()`
15
+ *
16
+ * @usageNotes
17
+ * The HTTP response status code will be 505.
18
+ * - The `objectOrError` argument defines the JSON response body or the message string.
19
+ * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause.
20
+ *
21
+ * By default, the JSON response body contains two properties:
22
+ * - `statusCode`: this will be the value 505.
23
+ * - `message`: the string `'HTTP Version Not Supported'` by default; override this by supplying
24
+ * a string in the `objectOrError` parameter.
25
+ *
26
+ * If the parameter `objectOrError` is a string, the response body will contain an
27
+ * additional property, `error`, with a short description of the HTTP error. To override the
28
+ * entire JSON response body, pass an object instead. Nest will serialize the object
29
+ * and return it as the JSON response body.
30
+ *
31
+ * @param objectOrError string or object describing the error condition.
32
+ * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause
33
+ */
34
+ constructor(objectOrError?: any, descriptionOrOptions?: string | HttpExceptionOptions);
35
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HttpVersionNotSupportedException = void 0;
4
+ const http_status_enum_1 = require("../enums/http-status.enum");
5
+ const http_exception_1 = require("./http.exception");
6
+ /**
7
+ * Defines an HTTP exception for *Http Version Not Supported* type errors.
8
+ *
9
+ * @see [Built-in HTTP exceptions](https://docs.nestjs.com/exception-filters#built-in-http-exceptions)
10
+ *
11
+ * @publicApi
12
+ */
13
+ class HttpVersionNotSupportedException extends http_exception_1.HttpException {
14
+ /**
15
+ * Instantiate a `HttpVersionNotSupportedException` Exception.
16
+ *
17
+ * @example
18
+ * `throw new HttpVersionNotSupportedException()`
19
+ *
20
+ * @usageNotes
21
+ * The HTTP response status code will be 505.
22
+ * - The `objectOrError` argument defines the JSON response body or the message string.
23
+ * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause.
24
+ *
25
+ * By default, the JSON response body contains two properties:
26
+ * - `statusCode`: this will be the value 505.
27
+ * - `message`: the string `'HTTP Version Not Supported'` by default; override this by supplying
28
+ * a string in the `objectOrError` parameter.
29
+ *
30
+ * If the parameter `objectOrError` is a string, the response body will contain an
31
+ * additional property, `error`, with a short description of the HTTP error. To override the
32
+ * entire JSON response body, pass an object instead. Nest will serialize the object
33
+ * and return it as the JSON response body.
34
+ *
35
+ * @param objectOrError string or object describing the error condition.
36
+ * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause
37
+ */
38
+ constructor(objectOrError, descriptionOrOptions = 'HTTP Version Not Supported') {
39
+ const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions);
40
+ super(http_exception_1.HttpException.createBody(objectOrError, description, http_status_enum_1.HttpStatus.HTTP_VERSION_NOT_SUPPORTED), http_status_enum_1.HttpStatus.HTTP_VERSION_NOT_SUPPORTED, httpExceptionOptions);
41
+ }
42
+ }
43
+ exports.HttpVersionNotSupportedException = HttpVersionNotSupportedException;
@@ -0,0 +1,85 @@
1
+ import { HttpExceptionBody, HttpExceptionBodyMessage } from '../interfaces/http/http-exception-body.interface';
2
+ import { IntrinsicException } from './intrinsic.exception';
3
+ export interface HttpExceptionOptions {
4
+ /** original cause of the error */
5
+ cause?: unknown;
6
+ description?: string;
7
+ }
8
+ export interface DescriptionAndOptions {
9
+ description?: string;
10
+ httpExceptionOptions?: HttpExceptionOptions;
11
+ }
12
+ /**
13
+ * Defines the base Nest HTTP exception, which is handled by the default
14
+ * Exceptions Handler.
15
+ *
16
+ * @see [Built-in HTTP exceptions](https://docs.nestjs.com/exception-filters#built-in-http-exceptions)
17
+ *
18
+ * @publicApi
19
+ */
20
+ export declare class HttpException extends IntrinsicException {
21
+ private readonly response;
22
+ private readonly status;
23
+ private readonly options?;
24
+ /**
25
+ * Exception cause. Indicates the specific original cause of the error.
26
+ * It is used when catching and re-throwing an error with a more-specific or useful error message in order to still have access to the original error.
27
+ */
28
+ cause: unknown;
29
+ /**
30
+ * Instantiate a plain HTTP Exception.
31
+ *
32
+ * @example
33
+ * throw new HttpException('message', HttpStatus.BAD_REQUEST)
34
+ * throw new HttpException('custom message', HttpStatus.BAD_REQUEST, {
35
+ * cause: new Error('Cause Error'),
36
+ * })
37
+ *
38
+ *
39
+ * @usageNotes
40
+ * The constructor arguments define the response and the HTTP response status code.
41
+ * - The `response` argument (required) defines the JSON response body. alternatively, it can also be
42
+ * an error object that is used to define an error [cause](https://nodejs.org/en/blog/release/v16.9.0/#error-cause).
43
+ * - The `status` argument (required) defines the HTTP Status Code.
44
+ * - The `options` argument (optional) defines additional error options. Currently, it supports the `cause` attribute,
45
+ * and can be used as an alternative way to specify the error cause: `const error = new HttpException('description', 400, { cause: new Error() });`
46
+ *
47
+ * By default, the JSON response body contains two properties:
48
+ * - `statusCode`: the Http Status Code.
49
+ * - `message`: a short description of the HTTP error by default; override this
50
+ * by supplying a string in the `response` parameter.
51
+ *
52
+ * To override the entire JSON response body, pass an object to the `createBody`
53
+ * method. Nest will serialize the object and return it as the JSON response body.
54
+ *
55
+ * The `status` argument is required, and should be a valid HTTP status code.
56
+ * Best practice is to use the `HttpStatus` enum imported from `nestjs/common`.
57
+ *
58
+ * @param response string, object describing the error condition or the error cause.
59
+ * @param status HTTP response status code.
60
+ * @param options An object used to add an error cause.
61
+ */
62
+ constructor(response: string | Record<string, any>, status: number, options?: HttpExceptionOptions | undefined);
63
+ /**
64
+ * Configures error chaining support
65
+ *
66
+ * @see https://nodejs.org/en/blog/release/v16.9.0/#error-cause
67
+ * @see https://github.com/microsoft/TypeScript/issues/45167
68
+ */
69
+ initCause(): void;
70
+ initMessage(): void;
71
+ initName(): void;
72
+ getResponse(): string | object;
73
+ getStatus(): number;
74
+ static createBody(nil: null | '', message: HttpExceptionBodyMessage, statusCode: number): HttpExceptionBody;
75
+ static createBody(message: HttpExceptionBodyMessage, error: string, statusCode: number): HttpExceptionBody;
76
+ static createBody<Body extends Record<string, unknown>>(custom: Body): Body;
77
+ static getDescriptionFrom(descriptionOrOptions: string | HttpExceptionOptions): string;
78
+ static getHttpExceptionOptionsFrom(descriptionOrOptions: string | HttpExceptionOptions): HttpExceptionOptions;
79
+ /**
80
+ * Utility method used to extract the error description and httpExceptionOptions from the given argument.
81
+ * This is used by inheriting classes to correctly parse both options.
82
+ * @returns the error description and the httpExceptionOptions as an object.
83
+ */
84
+ static extractDescriptionAndOptionsFrom(descriptionOrOptions: string | HttpExceptionOptions): DescriptionAndOptions;
85
+ }
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HttpException = void 0;
4
+ const shared_utils_1 = require("../utils/shared.utils");
5
+ const intrinsic_exception_1 = require("./intrinsic.exception");
6
+ /**
7
+ * Defines the base Nest HTTP exception, which is handled by the default
8
+ * Exceptions Handler.
9
+ *
10
+ * @see [Built-in HTTP exceptions](https://docs.nestjs.com/exception-filters#built-in-http-exceptions)
11
+ *
12
+ * @publicApi
13
+ */
14
+ class HttpException extends intrinsic_exception_1.IntrinsicException {
15
+ /**
16
+ * Instantiate a plain HTTP Exception.
17
+ *
18
+ * @example
19
+ * throw new HttpException('message', HttpStatus.BAD_REQUEST)
20
+ * throw new HttpException('custom message', HttpStatus.BAD_REQUEST, {
21
+ * cause: new Error('Cause Error'),
22
+ * })
23
+ *
24
+ *
25
+ * @usageNotes
26
+ * The constructor arguments define the response and the HTTP response status code.
27
+ * - The `response` argument (required) defines the JSON response body. alternatively, it can also be
28
+ * an error object that is used to define an error [cause](https://nodejs.org/en/blog/release/v16.9.0/#error-cause).
29
+ * - The `status` argument (required) defines the HTTP Status Code.
30
+ * - The `options` argument (optional) defines additional error options. Currently, it supports the `cause` attribute,
31
+ * and can be used as an alternative way to specify the error cause: `const error = new HttpException('description', 400, { cause: new Error() });`
32
+ *
33
+ * By default, the JSON response body contains two properties:
34
+ * - `statusCode`: the Http Status Code.
35
+ * - `message`: a short description of the HTTP error by default; override this
36
+ * by supplying a string in the `response` parameter.
37
+ *
38
+ * To override the entire JSON response body, pass an object to the `createBody`
39
+ * method. Nest will serialize the object and return it as the JSON response body.
40
+ *
41
+ * The `status` argument is required, and should be a valid HTTP status code.
42
+ * Best practice is to use the `HttpStatus` enum imported from `nestjs/common`.
43
+ *
44
+ * @param response string, object describing the error condition or the error cause.
45
+ * @param status HTTP response status code.
46
+ * @param options An object used to add an error cause.
47
+ */
48
+ constructor(response, status, options) {
49
+ super();
50
+ this.response = response;
51
+ this.status = status;
52
+ this.options = options;
53
+ this.initMessage();
54
+ this.initName();
55
+ this.initCause();
56
+ }
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() {
64
+ if (this.options?.cause) {
65
+ this.cause = this.options.cause;
66
+ return;
67
+ }
68
+ }
69
+ initMessage() {
70
+ if ((0, shared_utils_1.isString)(this.response)) {
71
+ this.message = this.response;
72
+ }
73
+ else if ((0, shared_utils_1.isObject)(this.response) && (0, shared_utils_1.isString)(this.response.message)) {
74
+ this.message = this.response.message;
75
+ }
76
+ else if (this.constructor) {
77
+ this.message =
78
+ this.constructor.name.match(/[A-Z][a-z]+|[0-9]+/g)?.join(' ') ??
79
+ 'Error';
80
+ }
81
+ }
82
+ initName() {
83
+ this.name = this.constructor.name;
84
+ }
85
+ getResponse() {
86
+ return this.response;
87
+ }
88
+ getStatus() {
89
+ return this.status;
90
+ }
91
+ static createBody(arg0, arg1, statusCode) {
92
+ if (!arg0) {
93
+ return {
94
+ message: arg1,
95
+ statusCode: statusCode,
96
+ };
97
+ }
98
+ if ((0, shared_utils_1.isString)(arg0) || Array.isArray(arg0) || (0, shared_utils_1.isNumber)(arg0)) {
99
+ return {
100
+ message: arg0,
101
+ error: arg1,
102
+ statusCode: statusCode,
103
+ };
104
+ }
105
+ return arg0;
106
+ }
107
+ static getDescriptionFrom(descriptionOrOptions) {
108
+ return (0, shared_utils_1.isString)(descriptionOrOptions)
109
+ ? descriptionOrOptions
110
+ : descriptionOrOptions?.description;
111
+ }
112
+ static getHttpExceptionOptionsFrom(descriptionOrOptions) {
113
+ return (0, shared_utils_1.isString)(descriptionOrOptions) ? {} : descriptionOrOptions;
114
+ }
115
+ /**
116
+ * Utility method used to extract the error description and httpExceptionOptions from the given argument.
117
+ * This is used by inheriting classes to correctly parse both options.
118
+ * @returns the error description and the httpExceptionOptions as an object.
119
+ */
120
+ static extractDescriptionAndOptionsFrom(descriptionOrOptions) {
121
+ const description = (0, shared_utils_1.isString)(descriptionOrOptions)
122
+ ? descriptionOrOptions
123
+ : descriptionOrOptions?.description;
124
+ const httpExceptionOptions = (0, shared_utils_1.isString)(descriptionOrOptions)
125
+ ? {}
126
+ : descriptionOrOptions;
127
+ return {
128
+ description,
129
+ httpExceptionOptions,
130
+ };
131
+ }
132
+ }
133
+ exports.HttpException = HttpException;
@@ -0,0 +1,38 @@
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
+ * @see [Built-in HTTP exceptions](https://docs.nestjs.com/exception-filters#built-in-http-exceptions)
9
+ *
10
+ * @publicApi
11
+ */
12
+ export declare class ImATeapotException extends HttpException {
13
+ /**
14
+ * Instantiate an `ImATeapotException` Exception.
15
+ *
16
+ * @example
17
+ * `throw new ImATeapotException()`
18
+ *
19
+ * @usageNotes
20
+ * The HTTP response status code will be 418.
21
+ * - The `objectOrError` argument defines the JSON response body or the message string.
22
+ * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause.
23
+ *
24
+ * By default, the JSON response body contains two properties:
25
+ * - `statusCode`: this will be the value 418.
26
+ * - `message`: the string `"I'm a Teapot"` by default; override this by supplying
27
+ * a string in the `objectOrError` parameter.
28
+ *
29
+ * If the parameter `objectOrError` is a string, the response body will contain an
30
+ * additional property, `error`, with a short description of the HTTP error. To override the
31
+ * entire JSON response body, pass an object instead. Nest will serialize the object
32
+ * and return it as the JSON response body.
33
+ *
34
+ * @param objectOrError string or object describing the error condition.
35
+ * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause
36
+ */
37
+ constructor(objectOrError?: any, descriptionOrOptions?: string | HttpExceptionOptions);
38
+ }