@nest-omni/core 1.0.2 → 1.0.5

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 (382) hide show
  1. package/package.json +1 -4
  2. package/src/boilerplate.polyfill.js +78 -0
  3. package/src/boilerplate.polyfill.ts +202 -0
  4. package/{dist → src}/common/abstract-client.service.d.ts +4 -0
  5. package/src/common/abstract-client.service.js +39 -0
  6. package/src/common/abstract-client.service.ts +56 -0
  7. package/{dist → src}/common/abstract.entity.d.ts +7 -0
  8. package/src/common/abstract.entity.js +152 -0
  9. package/src/common/abstract.entity.ts +73 -0
  10. package/src/common/dto/abstract.dto.js +96 -0
  11. package/src/common/dto/abstract.dto.ts +64 -0
  12. package/src/common/dto/bulk-id.dto.js +63 -0
  13. package/src/common/dto/bulk-id.dto.ts +13 -0
  14. package/src/common/dto/create-translation.dto.js +63 -0
  15. package/src/common/dto/create-translation.dto.ts +10 -0
  16. package/src/common/dto/page-meta.dto.js +88 -0
  17. package/src/common/dto/page-meta.dto.ts +37 -0
  18. package/src/common/dto/page-options.dto.js +87 -0
  19. package/src/common/dto/page-options.dto.ts +35 -0
  20. package/src/common/dto/page.dto.js +94 -0
  21. package/src/common/dto/page.dto.ts +36 -0
  22. package/{dist → src}/common/utils.d.ts +11 -0
  23. package/{dist → src}/common/utils.js +15 -2
  24. package/src/common/utils.ts +45 -0
  25. package/{dist → src}/constants/index.js +0 -1
  26. package/src/constants/index.ts +4 -0
  27. package/{dist → src}/constants/language-code.js +1 -1
  28. package/src/constants/language-code.ts +7 -0
  29. package/{dist → src}/constants/order.js +0 -1
  30. package/src/constants/order.ts +4 -0
  31. package/{dist → src}/constants/role-type.js +0 -1
  32. package/src/constants/role-type.ts +4 -0
  33. package/{dist → src}/constants/token-type.js +0 -1
  34. package/src/constants/token-type.ts +4 -0
  35. package/{dist → src}/decorators/api-page-ok-response.decorator.js +0 -1
  36. package/src/decorators/api-page-ok-response.decorator.ts +31 -0
  37. package/{dist → src}/decorators/auth-user.decorator.js +1 -2
  38. package/src/decorators/auth-user.decorator.ts +16 -0
  39. package/src/decorators/controller.decorator.js +34 -0
  40. package/src/decorators/controller.decorator.ts +8 -0
  41. package/{dist → src}/decorators/field.decorators.js +42 -44
  42. package/src/decorators/field.decorators.ts +773 -0
  43. package/{dist → src}/decorators/http.decorators.js +0 -1
  44. package/src/decorators/http.decorators.ts +10 -0
  45. package/{dist → src}/decorators/index.js +0 -1
  46. package/src/decorators/index.ts +12 -0
  47. package/{dist → src}/decorators/omni-auth.decorator.js +26 -2
  48. package/src/decorators/omni-auth.decorator.ts +46 -0
  49. package/{dist → src}/decorators/operation.decorator.js +0 -1
  50. package/src/decorators/operation.decorator.ts +4 -0
  51. package/{dist → src}/decorators/property.decorators.js +10 -17
  52. package/src/decorators/property.decorators.ts +62 -0
  53. package/{dist → src}/decorators/public-route.decorator.js +1 -1
  54. package/src/decorators/public-route.decorator.ts +8 -0
  55. package/{dist → src}/decorators/swagger.schema.js +4 -2
  56. package/src/decorators/swagger.schema.ts +117 -0
  57. package/{dist → src}/decorators/timestamp-column.decorator.js +1 -2
  58. package/src/decorators/timestamp-column.decorator.ts +29 -0
  59. package/src/decorators/transform.decorators.d.ts +35 -0
  60. package/{dist → src}/decorators/transform.decorators.js +27 -1
  61. package/src/decorators/transform.decorators.ts +147 -0
  62. package/{dist → src}/decorators/translate.decorator.js +1 -1
  63. package/src/decorators/translate.decorator.ts +19 -0
  64. package/{dist → src}/decorators/use-dto.decorator.js +0 -1
  65. package/src/decorators/use-dto.decorator.ts +11 -0
  66. package/src/decorators/user-check.decorator.js +44 -0
  67. package/src/decorators/user-check.decorator.ts +30 -0
  68. package/{dist → src}/decorators/user.decorator.js +25 -2
  69. package/src/decorators/user.decorator.ts +48 -0
  70. package/{dist → src}/decorators/user_auth.decorator.js +0 -1
  71. package/src/decorators/user_auth.decorator.ts +15 -0
  72. package/{dist → src}/decorators/validator.decorators.js +1 -5
  73. package/src/decorators/validator.decorators.ts +78 -0
  74. package/{dist → src}/exceptions/file-not-image.exception.js +0 -1
  75. package/src/exceptions/file-not-image.exception.ts +7 -0
  76. package/{dist → src}/exceptions/index.js +0 -1
  77. package/src/exceptions/index.ts +2 -0
  78. package/{dist → src}/exceptions/page-type.exception.js +0 -1
  79. package/src/exceptions/page-type.exception.ts +7 -0
  80. package/{dist → src}/exceptions/user-not-found.exception.js +0 -1
  81. package/src/exceptions/user-not-found.exception.ts +7 -0
  82. package/src/filters/bad-request.filter.js +104 -0
  83. package/src/filters/bad-request.filter.ts +67 -0
  84. package/{dist → src}/filters/constraint-errors.js +1 -1
  85. package/src/filters/constraint-errors.ts +5 -0
  86. package/{dist → src}/filters/index.js +0 -1
  87. package/src/filters/index.ts +3 -0
  88. package/src/filters/query-failed.filter.js +81 -0
  89. package/src/filters/query-failed.filter.ts +32 -0
  90. package/src/health-checker/health-checker.controller.js +104 -0
  91. package/src/health-checker/health-checker.controller.ts +51 -0
  92. package/src/health-checker/health-checker.module.js +69 -0
  93. package/src/health-checker/health-checker.module.ts +13 -0
  94. package/src/health-checker/health-indicators/service.indicator.js +102 -0
  95. package/src/health-checker/health-indicators/service.indicator.ts +44 -0
  96. package/src/helpers/common.helper.d.ts +16 -0
  97. package/{dist → src}/helpers/common.helper.js +13 -1
  98. package/src/helpers/common.helper.ts +49 -0
  99. package/{dist → src}/helpers/date.helper.d.ts +3 -3
  100. package/{dist → src}/helpers/date.helper.js +25 -3
  101. package/src/helpers/date.helper.ts +64 -0
  102. package/src/helpers/excel.helper.d.ts +27 -0
  103. package/src/helpers/excel.helper.js +338 -0
  104. package/{dist → src}/helpers/index.js +0 -1
  105. package/src/helpers/index.ts +3 -0
  106. package/src/i18n/en_US/validation.json +38 -0
  107. package/src/i18n/zh_CN/validation.json +38 -0
  108. package/{dist → src}/index.js +1 -1
  109. package/src/index.ts +12 -0
  110. package/src/interceptors/auth-user.interceptor.js +68 -0
  111. package/src/interceptors/auth-user.interceptor.ts +20 -0
  112. package/{dist → src}/interceptors/index.js +0 -1
  113. package/src/interceptors/index.ts +2 -0
  114. package/src/interceptors/language-interceptor.service.js +74 -0
  115. package/src/interceptors/language-interceptor.service.ts +31 -0
  116. package/src/interceptors/translation-interceptor.service.js +83 -0
  117. package/src/interceptors/translation-interceptor.service.ts +43 -0
  118. package/{dist → src}/interfaces/IApiFile.js +0 -1
  119. package/src/interfaces/IApiFile.ts +4 -0
  120. package/{dist → src}/interfaces/IFile.js +0 -1
  121. package/src/interfaces/IFile.ts +8 -0
  122. package/src/interfaces/ITranslationDecoratorInterface.js +2 -0
  123. package/src/interfaces/ITranslationDecoratorInterface.ts +3 -0
  124. package/{dist → src}/interfaces/index.js +0 -1
  125. package/src/interfaces/index.ts +3 -0
  126. package/{dist → src}/interfaces/response.js +0 -1
  127. package/src/interfaces/response.ts +37 -0
  128. package/{dist → src}/middlewares/index.js +0 -1
  129. package/src/middlewares/index.ts +3 -0
  130. package/{dist → src}/middlewares/omni-auth.middleware.js +0 -1
  131. package/src/middlewares/omni-auth.middleware.ts +10 -0
  132. package/{dist → src}/middlewares/powerby.middleware.js +0 -1
  133. package/src/middlewares/powerby.middleware.ts +6 -0
  134. package/{dist → src}/middlewares/request-id.middleware.js +0 -1
  135. package/src/middlewares/request-id.middleware.ts +28 -0
  136. package/{dist → src}/providers/context.provider.js +9 -7
  137. package/src/providers/context.provider.ts +98 -0
  138. package/{dist → src}/providers/generator.provider.d.ts +4 -0
  139. package/{dist → src}/providers/generator.provider.js +4 -1
  140. package/src/providers/generator.provider.ts +66 -0
  141. package/{dist → src}/providers/index.js +0 -1
  142. package/src/providers/index.ts +2 -0
  143. package/src/setup/bootstrap.setup.js +138 -0
  144. package/src/setup/bootstrap.setup.ts +139 -0
  145. package/{dist → src}/setup/index.js +0 -1
  146. package/src/setup/index.ts +1 -0
  147. package/src/setup/microservices.setup.js +55 -0
  148. package/{dist → src}/setup-swagger.js +0 -1
  149. package/src/setup-swagger.ts +67 -0
  150. package/{dist → src}/shared/index.js +0 -1
  151. package/src/shared/index.ts +2 -0
  152. package/src/shared/serviceRegistryModule.js +176 -0
  153. package/src/shared/serviceRegistryModule.ts +110 -0
  154. package/{dist → src}/shared/services/api-config.service.d.ts +3 -0
  155. package/src/shared/services/api-config.service.js +335 -0
  156. package/src/shared/services/api-config.service.ts +319 -0
  157. package/src/shared/services/aws-s3.service.js +96 -0
  158. package/src/shared/services/aws-s3.service.ts +39 -0
  159. package/src/shared/services/generator.service.js +67 -0
  160. package/src/shared/services/generator.service.ts +13 -0
  161. package/{dist → src}/shared/services/index.js +0 -1
  162. package/src/shared/services/index.ts +5 -0
  163. package/src/shared/services/translation.service.js +109 -0
  164. package/src/shared/services/translation.service.ts +59 -0
  165. package/src/shared/services/validator.service.js +64 -0
  166. package/src/shared/services/validator.service.ts +10 -0
  167. package/{dist → src}/snake-naming.strategy.js +3 -4
  168. package/src/snake-naming.strategy.ts +64 -0
  169. package/{dist → src}/types.js +0 -1
  170. package/src/types.ts +44 -0
  171. package/{dist → src}/validators/file-mimetype.validator.js +0 -3
  172. package/src/validators/file-mimetype.validator.ts +34 -0
  173. package/{dist → src}/validators/index.js +0 -1
  174. package/src/validators/index.ts +3 -0
  175. package/src/validators/is-exists.validator.js +99 -0
  176. package/src/validators/is-exists.validator.ts +60 -0
  177. package/src/validators/is-unique.validator.js +131 -0
  178. package/src/validators/is-unique.validator.ts +93 -0
  179. package/{dist → src}/validators/phone-country-code.validator.js +0 -1
  180. package/src/validators/phone-country-code.validator.ts +36 -0
  181. package/{dist → src}/validators/same-as.validator.js +1 -2
  182. package/src/validators/same-as.validator.ts +27 -0
  183. package/{dist → src}/validators/skip-empty.validator.d.ts +5 -0
  184. package/{dist → src}/validators/skip-empty.validator.js +5 -1
  185. package/src/validators/skip-empty.validator.ts +25 -0
  186. package/tsconfig.json +26 -0
  187. package/tsconfig.lib.json +16 -0
  188. package/tsconfig.tsbuildinfo +1 -0
  189. package/dist/boilerplate.polyfill.js +0 -66
  190. package/dist/boilerplate.polyfill.js.map +0 -1
  191. package/dist/common/abstract-client.service.js +0 -26
  192. package/dist/common/abstract-client.service.js.map +0 -1
  193. package/dist/common/abstract.entity.js +0 -71
  194. package/dist/common/abstract.entity.js.map +0 -1
  195. package/dist/common/dto/abstract.dto.js +0 -63
  196. package/dist/common/dto/abstract.dto.js.map +0 -1
  197. package/dist/common/dto/bulk-id.dto.js +0 -29
  198. package/dist/common/dto/bulk-id.dto.js.map +0 -1
  199. package/dist/common/dto/create-translation.dto.js +0 -28
  200. package/dist/common/dto/create-translation.dto.js.map +0 -1
  201. package/dist/common/dto/page-meta.dto.js +0 -55
  202. package/dist/common/dto/page-meta.dto.js.map +0 -1
  203. package/dist/common/dto/page-options.dto.js +0 -52
  204. package/dist/common/dto/page-options.dto.js.map +0 -1
  205. package/dist/common/dto/page.dto.js +0 -61
  206. package/dist/common/dto/page.dto.js.map +0 -1
  207. package/dist/common/utils.js.map +0 -1
  208. package/dist/constants/index.js.map +0 -1
  209. package/dist/constants/language-code.js.map +0 -1
  210. package/dist/constants/order.js.map +0 -1
  211. package/dist/constants/role-type.js.map +0 -1
  212. package/dist/constants/token-type.js.map +0 -1
  213. package/dist/decorators/api-page-ok-response.decorator.js.map +0 -1
  214. package/dist/decorators/auth-user.decorator.js.map +0 -1
  215. package/dist/decorators/controller.decorator.js +0 -12
  216. package/dist/decorators/controller.decorator.js.map +0 -1
  217. package/dist/decorators/field.decorators.js.map +0 -1
  218. package/dist/decorators/http.decorators.js.map +0 -1
  219. package/dist/decorators/index.js.map +0 -1
  220. package/dist/decorators/omni-auth.decorator.js.map +0 -1
  221. package/dist/decorators/operation.decorator.js.map +0 -1
  222. package/dist/decorators/property.decorators.js.map +0 -1
  223. package/dist/decorators/public-route.decorator.js.map +0 -1
  224. package/dist/decorators/swagger.schema.js.map +0 -1
  225. package/dist/decorators/timestamp-column.decorator.js.map +0 -1
  226. package/dist/decorators/transform.decorators.d.ts +0 -8
  227. package/dist/decorators/transform.decorators.js.map +0 -1
  228. package/dist/decorators/translate.decorator.js.map +0 -1
  229. package/dist/decorators/use-dto.decorator.js.map +0 -1
  230. package/dist/decorators/user-check.decorator.js +0 -22
  231. package/dist/decorators/user-check.decorator.js.map +0 -1
  232. package/dist/decorators/user.decorator.js.map +0 -1
  233. package/dist/decorators/user_auth.decorator.js.map +0 -1
  234. package/dist/decorators/validator.decorators.js.map +0 -1
  235. package/dist/exceptions/file-not-image.exception.js.map +0 -1
  236. package/dist/exceptions/index.js.map +0 -1
  237. package/dist/exceptions/page-type.exception.js.map +0 -1
  238. package/dist/exceptions/user-not-found.exception.js.map +0 -1
  239. package/dist/filters/bad-request.filter.js +0 -65
  240. package/dist/filters/bad-request.filter.js.map +0 -1
  241. package/dist/filters/constraint-errors.js.map +0 -1
  242. package/dist/filters/index.js.map +0 -1
  243. package/dist/filters/query-failed.filter.js +0 -43
  244. package/dist/filters/query-failed.filter.js.map +0 -1
  245. package/dist/health-checker/health-checker.controller.js +0 -68
  246. package/dist/health-checker/health-checker.controller.js.map +0 -1
  247. package/dist/health-checker/health-checker.module.js +0 -26
  248. package/dist/health-checker/health-checker.module.js.map +0 -1
  249. package/dist/health-checker/health-indicators/service.indicator.js +0 -57
  250. package/dist/health-checker/health-indicators/service.indicator.js.map +0 -1
  251. package/dist/helpers/common.helper.d.ts +0 -3
  252. package/dist/helpers/common.helper.js.map +0 -1
  253. package/dist/helpers/date.helper.js.map +0 -1
  254. package/dist/helpers/index.js.map +0 -1
  255. package/dist/index.js.map +0 -1
  256. package/dist/interceptors/auth-user.interceptor.js +0 -25
  257. package/dist/interceptors/auth-user.interceptor.js.map +0 -1
  258. package/dist/interceptors/index.js.map +0 -1
  259. package/dist/interceptors/language-interceptor.service.js +0 -31
  260. package/dist/interceptors/language-interceptor.service.js.map +0 -1
  261. package/dist/interceptors/translation-interceptor.service.js +0 -35
  262. package/dist/interceptors/translation-interceptor.service.js.map +0 -1
  263. package/dist/interfaces/IApiFile.js.map +0 -1
  264. package/dist/interfaces/IFile.js.map +0 -1
  265. package/dist/interfaces/ITranslationDecoratorInterface.js +0 -3
  266. package/dist/interfaces/ITranslationDecoratorInterface.js.map +0 -1
  267. package/dist/interfaces/index.js.map +0 -1
  268. package/dist/interfaces/response.js.map +0 -1
  269. package/dist/middlewares/index.js.map +0 -1
  270. package/dist/middlewares/omni-auth.middleware.js.map +0 -1
  271. package/dist/middlewares/powerby.middleware.js.map +0 -1
  272. package/dist/middlewares/request-id.middleware.js.map +0 -1
  273. package/dist/providers/context.provider.js.map +0 -1
  274. package/dist/providers/generator.provider.js.map +0 -1
  275. package/dist/providers/index.js.map +0 -1
  276. package/dist/setup/bootstrap.setup.js +0 -102
  277. package/dist/setup/bootstrap.setup.js.map +0 -1
  278. package/dist/setup/index.js.map +0 -1
  279. package/dist/setup-swagger.js.map +0 -1
  280. package/dist/shared/index.js.map +0 -1
  281. package/dist/shared/serviceRegistryModule.js +0 -102
  282. package/dist/shared/serviceRegistryModule.js.map +0 -1
  283. package/dist/shared/services/api-config.service.js +0 -286
  284. package/dist/shared/services/api-config.service.js.map +0 -1
  285. package/dist/shared/services/aws-s3.service.js +0 -49
  286. package/dist/shared/services/aws-s3.service.js.map +0 -1
  287. package/dist/shared/services/generator.service.js +0 -24
  288. package/dist/shared/services/generator.service.js.map +0 -1
  289. package/dist/shared/services/index.js.map +0 -1
  290. package/dist/shared/services/translation.service.js +0 -61
  291. package/dist/shared/services/translation.service.js.map +0 -1
  292. package/dist/shared/services/validator.service.js +0 -21
  293. package/dist/shared/services/validator.service.js.map +0 -1
  294. package/dist/snake-naming.strategy.js.map +0 -1
  295. package/dist/tsconfig.tsbuildinfo +0 -1
  296. package/dist/types.js.map +0 -1
  297. package/dist/validators/file-mimetype.validator.js.map +0 -1
  298. package/dist/validators/index.js.map +0 -1
  299. package/dist/validators/is-exists.validator.js +0 -52
  300. package/dist/validators/is-exists.validator.js.map +0 -1
  301. package/dist/validators/is-unique.validator.js +0 -83
  302. package/dist/validators/is-unique.validator.js.map +0 -1
  303. package/dist/validators/phone-country-code.validator.js.map +0 -1
  304. package/dist/validators/same-as.validator.js.map +0 -1
  305. package/dist/validators/skip-empty.validator.js.map +0 -1
  306. /package/{README → README.md} +0 -0
  307. /package/{dist → src}/boilerplate.polyfill.d.ts +0 -0
  308. /package/{dist → src}/common/dto/abstract.dto.d.ts +0 -0
  309. /package/{dist → src}/common/dto/bulk-id.dto.d.ts +0 -0
  310. /package/{dist → src}/common/dto/create-translation.dto.d.ts +0 -0
  311. /package/{dist → src}/common/dto/page-meta.dto.d.ts +0 -0
  312. /package/{dist → src}/common/dto/page-options.dto.d.ts +0 -0
  313. /package/{dist → src}/common/dto/page.dto.d.ts +0 -0
  314. /package/{dist → src}/constants/index.d.ts +0 -0
  315. /package/{dist → src}/constants/language-code.d.ts +0 -0
  316. /package/{dist → src}/constants/order.d.ts +0 -0
  317. /package/{dist → src}/constants/role-type.d.ts +0 -0
  318. /package/{dist → src}/constants/token-type.d.ts +0 -0
  319. /package/{dist → src}/decorators/api-page-ok-response.decorator.d.ts +0 -0
  320. /package/{dist → src}/decorators/auth-user.decorator.d.ts +0 -0
  321. /package/{dist → src}/decorators/controller.decorator.d.ts +0 -0
  322. /package/{dist → src}/decorators/field.decorators.d.ts +0 -0
  323. /package/{dist → src}/decorators/http.decorators.d.ts +0 -0
  324. /package/{dist → src}/decorators/index.d.ts +0 -0
  325. /package/{dist → src}/decorators/omni-auth.decorator.d.ts +0 -0
  326. /package/{dist → src}/decorators/operation.decorator.d.ts +0 -0
  327. /package/{dist → src}/decorators/property.decorators.d.ts +0 -0
  328. /package/{dist → src}/decorators/public-route.decorator.d.ts +0 -0
  329. /package/{dist → src}/decorators/swagger.schema.d.ts +0 -0
  330. /package/{dist → src}/decorators/timestamp-column.decorator.d.ts +0 -0
  331. /package/{dist → src}/decorators/translate.decorator.d.ts +0 -0
  332. /package/{dist → src}/decorators/use-dto.decorator.d.ts +0 -0
  333. /package/{dist → src}/decorators/user-check.decorator.d.ts +0 -0
  334. /package/{dist → src}/decorators/user.decorator.d.ts +0 -0
  335. /package/{dist → src}/decorators/user_auth.decorator.d.ts +0 -0
  336. /package/{dist → src}/decorators/validator.decorators.d.ts +0 -0
  337. /package/{dist → src}/exceptions/file-not-image.exception.d.ts +0 -0
  338. /package/{dist → src}/exceptions/index.d.ts +0 -0
  339. /package/{dist → src}/exceptions/page-type.exception.d.ts +0 -0
  340. /package/{dist → src}/exceptions/user-not-found.exception.d.ts +0 -0
  341. /package/{dist → src}/filters/bad-request.filter.d.ts +0 -0
  342. /package/{dist → src}/filters/constraint-errors.d.ts +0 -0
  343. /package/{dist → src}/filters/index.d.ts +0 -0
  344. /package/{dist → src}/filters/query-failed.filter.d.ts +0 -0
  345. /package/{dist → src}/health-checker/health-checker.controller.d.ts +0 -0
  346. /package/{dist → src}/health-checker/health-checker.module.d.ts +0 -0
  347. /package/{dist → src}/health-checker/health-indicators/service.indicator.d.ts +0 -0
  348. /package/{dist → src}/helpers/index.d.ts +0 -0
  349. /package/{dist → src}/index.d.ts +0 -0
  350. /package/{dist → src}/interceptors/auth-user.interceptor.d.ts +0 -0
  351. /package/{dist → src}/interceptors/index.d.ts +0 -0
  352. /package/{dist → src}/interceptors/language-interceptor.service.d.ts +0 -0
  353. /package/{dist → src}/interceptors/translation-interceptor.service.d.ts +0 -0
  354. /package/{dist → src}/interfaces/IApiFile.d.ts +0 -0
  355. /package/{dist → src}/interfaces/IFile.d.ts +0 -0
  356. /package/{dist → src}/interfaces/ITranslationDecoratorInterface.d.ts +0 -0
  357. /package/{dist → src}/interfaces/index.d.ts +0 -0
  358. /package/{dist → src}/interfaces/response.d.ts +0 -0
  359. /package/{dist → src}/middlewares/index.d.ts +0 -0
  360. /package/{dist → src}/middlewares/omni-auth.middleware.d.ts +0 -0
  361. /package/{dist → src}/middlewares/powerby.middleware.d.ts +0 -0
  362. /package/{dist → src}/middlewares/request-id.middleware.d.ts +0 -0
  363. /package/{dist → src}/providers/context.provider.d.ts +0 -0
  364. /package/{dist → src}/providers/index.d.ts +0 -0
  365. /package/{dist → src}/setup/bootstrap.setup.d.ts +0 -0
  366. /package/{dist → src}/setup/index.d.ts +0 -0
  367. /package/{dist → src}/setup-swagger.d.ts +0 -0
  368. /package/{dist → src}/shared/index.d.ts +0 -0
  369. /package/{dist → src}/shared/serviceRegistryModule.d.ts +0 -0
  370. /package/{dist → src}/shared/services/aws-s3.service.d.ts +0 -0
  371. /package/{dist → src}/shared/services/generator.service.d.ts +0 -0
  372. /package/{dist → src}/shared/services/index.d.ts +0 -0
  373. /package/{dist → src}/shared/services/translation.service.d.ts +0 -0
  374. /package/{dist → src}/shared/services/validator.service.d.ts +0 -0
  375. /package/{dist → src}/snake-naming.strategy.d.ts +0 -0
  376. /package/{dist → src}/types.d.ts +0 -0
  377. /package/{dist → src}/validators/file-mimetype.validator.d.ts +0 -0
  378. /package/{dist → src}/validators/index.d.ts +0 -0
  379. /package/{dist → src}/validators/is-exists.validator.d.ts +0 -0
  380. /package/{dist → src}/validators/is-unique.validator.d.ts +0 -0
  381. /package/{dist → src}/validators/phone-country-code.validator.d.ts +0 -0
  382. /package/{dist → src}/validators/same-as.validator.d.ts +0 -0
@@ -0,0 +1,147 @@
1
+ import { Transform, TransformationType } from 'class-transformer';
2
+ import { castArray, isArray, isNil, map, trim } from 'lodash';
3
+
4
+ import { GeneratorProvider } from '../providers';
5
+ import { parsePhoneNumber } from 'libphonenumber-js';
6
+
7
+ /**
8
+ * @description trim spaces from start and end, replace multiple spaces with one.
9
+ * @example
10
+ * @ApiProperty()
11
+ * @IsString()
12
+ * @Trim()
13
+ * name: string;
14
+ * @returns PropertyDecorator
15
+ * @constructor
16
+ */
17
+ export function Trim(): PropertyDecorator {
18
+ return Transform((params) => {
19
+ const value = params.value as string[] | string;
20
+
21
+ if (isArray(value)) {
22
+ return map(value, (v) => trim(v).replace(/\s\s+/g, ' '));
23
+ }
24
+
25
+ return trim(value).replace(/\s\s+/g, ' ');
26
+ });
27
+ }
28
+
29
+ export function ToBoolean(): PropertyDecorator {
30
+ return Transform(
31
+ (params) => {
32
+ switch (params.value) {
33
+ case 'true':
34
+ return true;
35
+ case 'false':
36
+ return false;
37
+ default:
38
+ return params.value;
39
+ }
40
+ },
41
+ { toClassOnly: true },
42
+ );
43
+ }
44
+
45
+ /**
46
+ * @description convert string or number to integer
47
+ * @example
48
+ * @NumberField()
49
+ * @ToInt()
50
+ * name: number;
51
+ * @returns PropertyDecorator
52
+ * @constructor
53
+ */
54
+ export function ToInt(): PropertyDecorator {
55
+ return Transform(
56
+ (params) => {
57
+ const value = params.value as string;
58
+
59
+ return Number.parseInt(value, 10);
60
+ },
61
+ { toClassOnly: true },
62
+ );
63
+ }
64
+
65
+ /**
66
+ * @description transforms to array, specially for query params
67
+ * @example
68
+ * @NumberField()
69
+ * @ToArray()
70
+ * name: number;
71
+ * @constructor
72
+ */
73
+ export function ToArray(): PropertyDecorator {
74
+ return Transform(
75
+ (params) => {
76
+ const value = params.value;
77
+
78
+ if (isNil(value)) {
79
+ return [];
80
+ }
81
+
82
+ return castArray(value);
83
+ },
84
+ { toClassOnly: true },
85
+ );
86
+ }
87
+
88
+ export function ToLowerCase(): PropertyDecorator {
89
+ return Transform(
90
+ (params) => {
91
+ const value = params.value;
92
+
93
+ if (!value) {
94
+ return;
95
+ }
96
+
97
+ if (!Array.isArray(value)) {
98
+ return value.toLowerCase();
99
+ }
100
+
101
+ return value.map((v) => v.toLowerCase());
102
+ },
103
+ {
104
+ toClassOnly: true,
105
+ },
106
+ );
107
+ }
108
+
109
+ export function ToUpperCase(): PropertyDecorator {
110
+ return Transform(
111
+ (params) => {
112
+ const value = params.value;
113
+
114
+ if (!value) {
115
+ return;
116
+ }
117
+
118
+ if (!Array.isArray(value)) {
119
+ return value.toUpperCase();
120
+ }
121
+
122
+ return value.map((v) => v.toUpperCase());
123
+ },
124
+ {
125
+ toClassOnly: true,
126
+ },
127
+ );
128
+ }
129
+
130
+ export function S3UrlParser(): PropertyDecorator {
131
+ return Transform((params) => {
132
+ const key = params.value as string;
133
+
134
+ switch (params.type) {
135
+ case TransformationType.CLASS_TO_PLAIN:
136
+ return GeneratorProvider.getS3PublicUrl(key);
137
+ case TransformationType.PLAIN_TO_CLASS:
138
+ return GeneratorProvider.getS3Key(key);
139
+ default:
140
+ return key;
141
+ }
142
+ });
143
+ }
144
+
145
+ export function PhoneNumberSerializer(): PropertyDecorator {
146
+ return Transform((params) => parsePhoneNumber(params.value as string).number);
147
+ }
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DynamicTranslate = exports.StaticTranslate = exports.DYNAMIC_TRANSLATION_DECORATOR_KEY = exports.STATIC_TRANSLATION_DECORATOR_KEY = void 0;
4
4
  exports.STATIC_TRANSLATION_DECORATOR_KEY = 'custom:static-translate';
5
5
  exports.DYNAMIC_TRANSLATION_DECORATOR_KEY = 'custom:dynamic-translate';
6
+ // FIXME: This is a temporary solution to get the translation decorator working.
6
7
  function StaticTranslate(data = {}) {
7
8
  return (target, key) => {
8
9
  Reflect.defineMetadata(exports.STATIC_TRANSLATION_DECORATOR_KEY, data, target, key);
@@ -15,4 +16,3 @@ function DynamicTranslate() {
15
16
  };
16
17
  }
17
18
  exports.DynamicTranslate = DynamicTranslate;
18
- //# sourceMappingURL=translate.decorator.js.map
@@ -0,0 +1,19 @@
1
+ import type { ITranslationDecoratorInterface } from '../interfaces';
2
+
3
+ export const STATIC_TRANSLATION_DECORATOR_KEY = 'custom:static-translate';
4
+ export const DYNAMIC_TRANSLATION_DECORATOR_KEY = 'custom:dynamic-translate';
5
+
6
+ // FIXME: This is a temporary solution to get the translation decorator working.
7
+ export function StaticTranslate(
8
+ data: ITranslationDecoratorInterface = {},
9
+ ): PropertyDecorator {
10
+ return (target, key) => {
11
+ Reflect.defineMetadata(STATIC_TRANSLATION_DECORATOR_KEY, data, target, key);
12
+ };
13
+ }
14
+
15
+ export function DynamicTranslate(): PropertyDecorator {
16
+ return (target, key) => {
17
+ Reflect.defineMetadata(DYNAMIC_TRANSLATION_DECORATOR_KEY, {}, target, key);
18
+ };
19
+ }
@@ -7,4 +7,3 @@ function UseDto(dtoClass) {
7
7
  };
8
8
  }
9
9
  exports.UseDto = UseDto;
10
- //# sourceMappingURL=use-dto.decorator.js.map
@@ -0,0 +1,11 @@
1
+ import type { AbstractEntity } from '../common/abstract.entity';
2
+ import type { AbstractDto } from '../common/dto/abstract.dto';
3
+ import type { Constructor } from '../types';
4
+
5
+ export function UseDto(
6
+ dtoClass: Constructor<AbstractDto, [AbstractEntity, unknown]>,
7
+ ): ClassDecorator {
8
+ return (ctor) => {
9
+ ctor.prototype.dtoClass = dtoClass;
10
+ };
11
+ }
@@ -0,0 +1,44 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.getUserData = exports.User = void 0;
27
+ const common_1 = require("@nestjs/common");
28
+ const lodash = __importStar(require("lodash"));
29
+ exports.User = (0, common_1.createParamDecorator)((data, ctx) => {
30
+ return getUserData(ctx.switchToHttp().getRequest(), data);
31
+ });
32
+ function getUserData(req, data) {
33
+ const headers = req.headers;
34
+ if (lodash.isEmpty(headers['x-userid']) ||
35
+ lodash.isEmpty(headers['x-username'])) {
36
+ return null;
37
+ }
38
+ const user = {
39
+ uid: headers['x-userid'],
40
+ username: headers['x-username'],
41
+ };
42
+ return data ? user[data] : user;
43
+ }
44
+ exports.getUserData = getUserData;
@@ -0,0 +1,30 @@
1
+ import { createParamDecorator, ExecutionContext } from '@nestjs/common';
2
+ import * as lodash from 'lodash';
3
+
4
+ export interface IUser {
5
+ uid: number;
6
+ username: string;
7
+ }
8
+
9
+ export const User = createParamDecorator(
10
+ (data: string, ctx: ExecutionContext): IUser => {
11
+ return getUserData(ctx.switchToHttp().getRequest(), data);
12
+ },
13
+ );
14
+
15
+ export function getUserData(req, data?: string): IUser | null {
16
+ const headers = req.headers;
17
+ if (
18
+ lodash.isEmpty(headers['x-userid']) ||
19
+ lodash.isEmpty(headers['x-username'])
20
+ ) {
21
+ return null;
22
+ }
23
+
24
+ const user = {
25
+ uid: headers['x-userid'],
26
+ username: headers['x-username'],
27
+ };
28
+
29
+ return data ? user[data] : user;
30
+ }
@@ -1,8 +1,31 @@
1
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  Object.defineProperty(exports, "__esModule", { value: true });
3
26
  exports.getUserData = exports.User = void 0;
4
27
  const common_1 = require("@nestjs/common");
5
- const lodash = require("lodash");
28
+ const lodash = __importStar(require("lodash"));
6
29
  const config_1 = require("@nestjs/config");
7
30
  exports.User = (0, common_1.createParamDecorator)((data, ctx) => {
8
31
  return getUserData(ctx.switchToHttp().getRequest(), data);
@@ -14,6 +37,7 @@ function getUserData(req, data) {
14
37
  username: '',
15
38
  };
16
39
  const configService = new config_1.ConfigService(req);
40
+ // 未通过网关透传用户信息且处于local开发环境,则从配置获取用户信息
17
41
  if (lodash.isEmpty(headers['x-userid']) ||
18
42
  lodash.isEmpty(headers['x-username'])) {
19
43
  if (process.env.NODE_ENV === 'dev') {
@@ -36,4 +60,3 @@ function getUserData(req, data) {
36
60
  }
37
61
  }
38
62
  exports.getUserData = getUserData;
39
- //# sourceMappingURL=user.decorator.js.map
@@ -0,0 +1,48 @@
1
+ import { createParamDecorator, ExecutionContext } from '@nestjs/common';
2
+ import * as lodash from 'lodash';
3
+ import { ConfigService } from '@nestjs/config';
4
+
5
+ export interface IUser {
6
+ uid: number;
7
+ username: string;
8
+ tenantId?: string;
9
+ appId?: string;
10
+ }
11
+
12
+ export const User = createParamDecorator(
13
+ (data: string, ctx: ExecutionContext): IUser => {
14
+ return getUserData(ctx.switchToHttp().getRequest(), data);
15
+ },
16
+ );
17
+
18
+ export function getUserData(req, data?: string): IUser {
19
+ const headers = req.headers;
20
+ let user: IUser = {
21
+ uid: 0,
22
+ username: '',
23
+ };
24
+ const configService = new ConfigService(req);
25
+ // 未通过网关透传用户信息且处于local开发环境,则从配置获取用户信息
26
+ if (
27
+ lodash.isEmpty(headers['x-userid']) ||
28
+ lodash.isEmpty(headers['x-username'])
29
+ ) {
30
+ if (process.env.NODE_ENV === 'dev') {
31
+ user = {
32
+ uid: configService.get('MOCK_UID'),
33
+ username: configService.get('MOCK_USERNAME'),
34
+ appId: configService.get('MOCK_APP_ID'),
35
+ tenantId: configService.get('MOCK_TENANT_ID'),
36
+ };
37
+ }
38
+ } else {
39
+ user = {
40
+ uid: headers['x-userid'],
41
+ username: headers['x-username'],
42
+ appId: headers['x-appid'],
43
+ tenantId: headers['x-tenantid'],
44
+ };
45
+
46
+ return data ? user[data] : user;
47
+ }
48
+ }
@@ -14,4 +14,3 @@ function UserFilter(field) {
14
14
  }));
15
15
  }
16
16
  exports.UserFilter = UserFilter;
17
- //# sourceMappingURL=user_auth.decorator.js.map
@@ -0,0 +1,15 @@
1
+ import { applyDecorators } from '@nestjs/common';
2
+ import { CrudAuth } from '@dataui/crud';
3
+ import { getUserData } from './user.decorator';
4
+
5
+ export function UserFilter(field: string) {
6
+ const obj = {};
7
+ return applyDecorators(
8
+ CrudAuth({
9
+ filter: (req) => {
10
+ obj[field] = getUserData(req, 'uid');
11
+ return obj;
12
+ },
13
+ }),
14
+ );
15
+ }
@@ -21,10 +21,7 @@ function IsPassword(validationOptions) {
21
21
  }
22
22
  exports.IsPassword = IsPassword;
23
23
  function IsPhoneNumber(validationOptions) {
24
- return (0, class_validator_1.IsPhoneNumber)(validationOptions?.region, {
25
- message: 'error.phoneNumber',
26
- ...validationOptions,
27
- });
24
+ return (0, class_validator_1.IsPhoneNumber)(validationOptions === null || validationOptions === void 0 ? void 0 : validationOptions.region, Object.assign({ message: 'error.phoneNumber' }, validationOptions));
28
25
  }
29
26
  exports.IsPhoneNumber = IsPhoneNumber;
30
27
  function IsTmpKey(validationOptions) {
@@ -60,4 +57,3 @@ function IsNullable(options) {
60
57
  return (0, class_validator_1.ValidateIf)((obj, value) => value !== null, options);
61
58
  }
62
59
  exports.IsNullable = IsNullable;
63
- //# sourceMappingURL=validator.decorators.js.map
@@ -0,0 +1,78 @@
1
+ import type { ValidationOptions } from 'class-validator';
2
+ import {
3
+ IsPhoneNumber as isPhoneNumber,
4
+ registerDecorator,
5
+ ValidateIf,
6
+ } from 'class-validator';
7
+ import { isString } from 'lodash';
8
+
9
+ export function IsPassword(
10
+ validationOptions?: ValidationOptions,
11
+ ): PropertyDecorator {
12
+ return (object, propertyName: string) => {
13
+ registerDecorator({
14
+ propertyName,
15
+ name: 'isPassword',
16
+ target: object.constructor,
17
+ constraints: [],
18
+ options: validationOptions,
19
+ validator: {
20
+ validate(value: string) {
21
+ return /^[\d!#$%&*@A-Z^a-z]*$/.test(value);
22
+ },
23
+ },
24
+ });
25
+ };
26
+ }
27
+
28
+ export function IsPhoneNumber(
29
+ validationOptions?: ValidationOptions & {
30
+ region?: Parameters<typeof isPhoneNumber>[0];
31
+ },
32
+ ): PropertyDecorator {
33
+ return isPhoneNumber(validationOptions?.region, {
34
+ message: 'error.phoneNumber',
35
+ ...validationOptions,
36
+ });
37
+ }
38
+
39
+ export function IsTmpKey(
40
+ validationOptions?: ValidationOptions,
41
+ ): PropertyDecorator {
42
+ return (object, propertyName: string) => {
43
+ registerDecorator({
44
+ propertyName,
45
+ name: 'tmpKey',
46
+ target: object.constructor,
47
+ options: validationOptions,
48
+ validator: {
49
+ validate(value: string): boolean {
50
+ return isString(value) && /^tmp\//.test(value);
51
+ },
52
+ defaultMessage(): string {
53
+ return 'error.invalidTmpKey';
54
+ },
55
+ },
56
+ });
57
+ };
58
+ }
59
+
60
+ export function IsUndefinable(options?: ValidationOptions): PropertyDecorator {
61
+ return ValidateIf((obj, value) => value !== undefined, options);
62
+ }
63
+
64
+ export function IsEmptyable(options?: ValidationOptions): PropertyDecorator {
65
+ return ValidateIf(
66
+ (obj, value) =>
67
+ !(
68
+ value === null ||
69
+ value === undefined ||
70
+ (isString(value) && value.trim() === '')
71
+ ),
72
+ options,
73
+ );
74
+ }
75
+
76
+ export function IsNullable(options?: ValidationOptions): PropertyDecorator {
77
+ return ValidateIf((obj, value) => value !== null, options);
78
+ }
@@ -8,4 +8,3 @@ class FileNotImageException extends common_1.BadRequestException {
8
8
  }
9
9
  }
10
10
  exports.FileNotImageException = FileNotImageException;
11
- //# sourceMappingURL=file-not-image.exception.js.map
@@ -0,0 +1,7 @@
1
+ import { BadRequestException } from '@nestjs/common';
2
+
3
+ export class FileNotImageException extends BadRequestException {
4
+ constructor(error?: string) {
5
+ super('error.fileNotImage', error);
6
+ }
7
+ }
@@ -16,4 +16,3 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./file-not-image.exception"), exports);
18
18
  __exportStar(require("./user-not-found.exception"), exports);
19
- //# sourceMappingURL=index.js.map
@@ -0,0 +1,2 @@
1
+ export * from './file-not-image.exception';
2
+ export * from './user-not-found.exception';
@@ -8,4 +8,3 @@ class PageTypeException extends common_1.BadRequestException {
8
8
  }
9
9
  }
10
10
  exports.PageTypeException = PageTypeException;
11
- //# sourceMappingURL=page-type.exception.js.map
@@ -0,0 +1,7 @@
1
+ import { BadRequestException } from '@nestjs/common';
2
+
3
+ export class PageTypeException extends BadRequestException {
4
+ constructor() {
5
+ super('error.pageType');
6
+ }
7
+ }
@@ -8,4 +8,3 @@ class UserNotFoundException extends common_1.NotFoundException {
8
8
  }
9
9
  }
10
10
  exports.UserNotFoundException = UserNotFoundException;
11
- //# sourceMappingURL=user-not-found.exception.js.map
@@ -0,0 +1,7 @@
1
+ import { NotFoundException } from '@nestjs/common';
2
+
3
+ export class UserNotFoundException extends NotFoundException {
4
+ constructor(error?: string) {
5
+ super('error.userNotFound', error);
6
+ }
7
+ }
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
3
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
4
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
5
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
6
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
7
+ var _, done = false;
8
+ for (var i = decorators.length - 1; i >= 0; i--) {
9
+ var context = {};
10
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
11
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
12
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
13
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
14
+ if (kind === "accessor") {
15
+ if (result === void 0) continue;
16
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
17
+ if (_ = accept(result.get)) descriptor.get = _;
18
+ if (_ = accept(result.set)) descriptor.set = _;
19
+ if (_ = accept(result.init)) initializers.unshift(_);
20
+ }
21
+ else if (_ = accept(result)) {
22
+ if (kind === "field") initializers.unshift(_);
23
+ else descriptor[key] = _;
24
+ }
25
+ }
26
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
27
+ done = true;
28
+ };
29
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
30
+ var useValue = arguments.length > 2;
31
+ for (var i = 0; i < initializers.length; i++) {
32
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
33
+ }
34
+ return useValue ? value : void 0;
35
+ };
36
+ var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) {
37
+ if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
38
+ return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
39
+ };
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.HttpExceptionFilter = void 0;
42
+ const common_1 = require("@nestjs/common");
43
+ const typeorm_1 = require("typeorm");
44
+ const nestjs_i18n_1 = require("nestjs-i18n");
45
+ let HttpExceptionFilter = (() => {
46
+ let _classDecorators = [(0, common_1.Catch)()];
47
+ let _classDescriptor;
48
+ let _classExtraInitializers = [];
49
+ let _classThis;
50
+ var HttpExceptionFilter = _classThis = class {
51
+ catch(exception, host) {
52
+ const i18n = nestjs_i18n_1.I18nContext.current(host);
53
+ const ctx = host.switchToHttp();
54
+ const response = ctx.getResponse();
55
+ const request = ctx.getRequest();
56
+ let statusCode = exception instanceof common_1.HttpException ? exception.getStatus() : 500;
57
+ let error = exception instanceof common_1.HttpException
58
+ ? exception.message
59
+ : 'Internal server error';
60
+ if (exception instanceof typeorm_1.EntityNotFoundError) {
61
+ statusCode = 404;
62
+ error = 'Entity not found';
63
+ }
64
+ if (statusCode === 500) {
65
+ console.error(exception);
66
+ }
67
+ const getFirstError = (error, property = '') => {
68
+ var _a;
69
+ if (((_a = error === null || error === void 0 ? void 0 : error.children) === null || _a === void 0 ? void 0 : _a.length) > 0) {
70
+ const firstError = error.children[0];
71
+ firstError['property'] = `${property}.${firstError['property']}`;
72
+ return getFirstError(firstError, firstError.property);
73
+ }
74
+ return error;
75
+ };
76
+ if (exception instanceof nestjs_i18n_1.I18nValidationException) {
77
+ const firstErros = getFirstError(exception.errors[0], exception.errors[0].property);
78
+ const constraint = Object.values(firstErros.constraints)[0];
79
+ const [translationKey, argsString] = constraint.split('|');
80
+ const args = !!argsString ? JSON.parse(argsString) : {};
81
+ error = i18n.translate(translationKey, {
82
+ args: Object.assign({ property: firstErros.property, value: firstErros.value, constraints: firstErros.constraints }, args),
83
+ });
84
+ }
85
+ const parseJson = {
86
+ code: statusCode,
87
+ msg: error,
88
+ requestId: request.id,
89
+ timestamp: new Date().toISOString(),
90
+ };
91
+ return response.status(200).json(parseJson);
92
+ }
93
+ };
94
+ __setFunctionName(_classThis, "HttpExceptionFilter");
95
+ (() => {
96
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
97
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
98
+ HttpExceptionFilter = _classThis = _classDescriptor.value;
99
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
100
+ __runInitializers(_classThis, _classExtraInitializers);
101
+ })();
102
+ return HttpExceptionFilter = _classThis;
103
+ })();
104
+ exports.HttpExceptionFilter = HttpExceptionFilter;