@nest-omni/core 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (528) hide show
  1. package/dist/boilerplate.polyfill.d.ts +39 -0
  2. package/dist/boilerplate.polyfill.js +66 -0
  3. package/dist/boilerplate.polyfill.js.map +1 -0
  4. package/dist/common/abstract-client.service.d.ts +16 -0
  5. package/dist/common/abstract-client.service.js +26 -0
  6. package/dist/common/abstract-client.service.js.map +1 -0
  7. package/dist/common/abstract.entity.d.ts +17 -0
  8. package/dist/common/abstract.entity.js +71 -0
  9. package/dist/common/abstract.entity.js.map +1 -0
  10. package/dist/common/dto/abstract.dto.d.ts +13 -0
  11. package/dist/common/dto/abstract.dto.js +63 -0
  12. package/dist/common/dto/abstract.dto.js.map +1 -0
  13. package/dist/common/dto/bulk-id.dto.d.ts +3 -0
  14. package/dist/common/dto/bulk-id.dto.js +29 -0
  15. package/dist/common/dto/bulk-id.dto.js.map +1 -0
  16. package/dist/common/dto/create-translation.dto.d.ts +5 -0
  17. package/dist/common/dto/create-translation.dto.js +28 -0
  18. package/dist/common/dto/create-translation.dto.js.map +1 -0
  19. package/dist/common/dto/page-meta.dto.d.ts +15 -0
  20. package/dist/common/dto/page-meta.dto.js +55 -0
  21. package/dist/common/dto/page-meta.dto.js.map +1 -0
  22. package/dist/common/dto/page-options.dto.d.ts +8 -0
  23. package/dist/common/dto/page-options.dto.js +52 -0
  24. package/dist/common/dto/page-options.dto.js.map +1 -0
  25. package/dist/common/dto/page.dto.d.ts +11 -0
  26. package/dist/common/dto/page.dto.js +61 -0
  27. package/dist/common/dto/page.dto.js.map +1 -0
  28. package/dist/common/utils.d.ts +3 -0
  29. package/dist/common/utils.js +26 -0
  30. package/dist/common/utils.js.map +1 -0
  31. package/dist/constants/index.d.ts +4 -0
  32. package/dist/constants/index.js +21 -0
  33. package/dist/constants/index.js.map +1 -0
  34. package/dist/constants/language-code.d.ts +5 -0
  35. package/dist/constants/language-code.js +10 -0
  36. package/dist/constants/language-code.js.map +1 -0
  37. package/dist/constants/order.d.ts +4 -0
  38. package/dist/constants/order.js +9 -0
  39. package/dist/constants/order.js.map +1 -0
  40. package/dist/constants/role-type.d.ts +4 -0
  41. package/dist/constants/role-type.js +9 -0
  42. package/dist/constants/role-type.js.map +1 -0
  43. package/dist/constants/token-type.d.ts +4 -0
  44. package/dist/constants/token-type.js +9 -0
  45. package/dist/constants/token-type.js.map +1 -0
  46. package/dist/decorators/api-page-ok-response.decorator.d.ts +5 -0
  47. package/dist/decorators/api-page-ok-response.decorator.js +26 -0
  48. package/dist/decorators/api-page-ok-response.decorator.js.map +1 -0
  49. package/dist/decorators/auth-user.decorator.d.ts +1 -0
  50. package/dist/decorators/auth-user.decorator.js +16 -0
  51. package/dist/decorators/auth-user.decorator.js.map +1 -0
  52. package/dist/decorators/controller.decorator.d.ts +1 -0
  53. package/dist/decorators/controller.decorator.js +12 -0
  54. package/dist/decorators/controller.decorator.js.map +1 -0
  55. package/dist/decorators/field.decorators.d.ts +71 -0
  56. package/dist/decorators/field.decorators.js +457 -0
  57. package/dist/decorators/field.decorators.js.map +1 -0
  58. package/dist/decorators/http.decorators.d.ts +3 -0
  59. package/dist/decorators/http.decorators.js +9 -0
  60. package/dist/decorators/http.decorators.js.map +1 -0
  61. package/dist/decorators/index.d.ts +12 -0
  62. package/dist/decorators/index.js +29 -0
  63. package/dist/decorators/index.js.map +1 -0
  64. package/dist/decorators/omni-auth.decorator.d.ts +8 -0
  65. package/dist/decorators/omni-auth.decorator.js +36 -0
  66. package/dist/decorators/omni-auth.decorator.js.map +1 -0
  67. package/dist/decorators/operation.decorator.d.ts +1 -0
  68. package/dist/decorators/operation.decorator.js +7 -0
  69. package/dist/decorators/operation.decorator.js.map +1 -0
  70. package/dist/decorators/property.decorators.d.ts +15 -0
  71. package/dist/decorators/property.decorators.js +43 -0
  72. package/dist/decorators/property.decorators.js.map +1 -0
  73. package/dist/decorators/public-route.decorator.d.ts +3 -0
  74. package/dist/decorators/public-route.decorator.js +8 -0
  75. package/dist/decorators/public-route.decorator.js.map +1 -0
  76. package/dist/decorators/swagger.schema.d.ts +5 -0
  77. package/dist/decorators/swagger.schema.js +80 -0
  78. package/dist/decorators/swagger.schema.js.map +1 -0
  79. package/dist/decorators/timestamp-column.decorator.d.ts +1 -0
  80. package/dist/decorators/timestamp-column.decorator.js +29 -0
  81. package/dist/decorators/timestamp-column.decorator.js.map +1 -0
  82. package/dist/decorators/transform.decorators.d.ts +8 -0
  83. package/dist/decorators/transform.decorators.js +96 -0
  84. package/dist/decorators/transform.decorators.js.map +1 -0
  85. package/dist/decorators/translate.decorator.d.ts +5 -0
  86. package/dist/decorators/translate.decorator.js +18 -0
  87. package/dist/decorators/translate.decorator.js.map +1 -0
  88. package/dist/decorators/use-dto.decorator.d.ts +4 -0
  89. package/dist/decorators/use-dto.decorator.js +10 -0
  90. package/dist/decorators/use-dto.decorator.js.map +1 -0
  91. package/dist/decorators/user-check.decorator.d.ts +6 -0
  92. package/dist/decorators/user-check.decorator.js +22 -0
  93. package/dist/decorators/user-check.decorator.js.map +1 -0
  94. package/dist/decorators/user.decorator.d.ts +8 -0
  95. package/dist/decorators/user.decorator.js +39 -0
  96. package/dist/decorators/user.decorator.js.map +1 -0
  97. package/dist/decorators/user_auth.decorator.d.ts +1 -0
  98. package/dist/decorators/user_auth.decorator.js +17 -0
  99. package/dist/decorators/user_auth.decorator.js.map +1 -0
  100. package/dist/decorators/validator.decorators.d.ts +10 -0
  101. package/dist/decorators/validator.decorators.js +63 -0
  102. package/dist/decorators/validator.decorators.js.map +1 -0
  103. package/dist/exceptions/file-not-image.exception.d.ts +4 -0
  104. package/dist/exceptions/file-not-image.exception.js +11 -0
  105. package/dist/exceptions/file-not-image.exception.js.map +1 -0
  106. package/dist/exceptions/index.d.ts +2 -0
  107. package/dist/exceptions/index.js +19 -0
  108. package/dist/exceptions/index.js.map +1 -0
  109. package/dist/exceptions/page-type.exception.d.ts +4 -0
  110. package/dist/exceptions/page-type.exception.js +11 -0
  111. package/dist/exceptions/page-type.exception.js.map +1 -0
  112. package/dist/exceptions/user-not-found.exception.d.ts +4 -0
  113. package/dist/exceptions/user-not-found.exception.js +11 -0
  114. package/dist/exceptions/user-not-found.exception.js.map +1 -0
  115. package/dist/filters/bad-request.filter.d.ts +5 -0
  116. package/dist/filters/bad-request.filter.js +65 -0
  117. package/dist/filters/bad-request.filter.js.map +1 -0
  118. package/dist/filters/constraint-errors.d.ts +1 -0
  119. package/dist/filters/constraint-errors.js +7 -0
  120. package/dist/filters/constraint-errors.js.map +1 -0
  121. package/dist/filters/index.d.ts +3 -0
  122. package/dist/filters/index.js +20 -0
  123. package/dist/filters/index.js.map +1 -0
  124. package/dist/filters/query-failed.filter.d.ts +10 -0
  125. package/dist/filters/query-failed.filter.js +43 -0
  126. package/dist/filters/query-failed.filter.js.map +1 -0
  127. package/dist/guards/auth.guard.d.ts +4 -0
  128. package/dist/guards/auth.guard.js +13 -0
  129. package/dist/guards/auth.guard.js.map +1 -0
  130. package/dist/guards/roles.guard.d.ts +7 -0
  131. package/dist/guards/roles.guard.js +36 -0
  132. package/dist/guards/roles.guard.js.map +1 -0
  133. package/dist/health-checker/health-checker.controller.d.ts +15 -0
  134. package/dist/health-checker/health-checker.controller.js +68 -0
  135. package/dist/health-checker/health-checker.controller.js.map +1 -0
  136. package/dist/health-checker/health-checker.module.d.ts +2 -0
  137. package/dist/health-checker/health-checker.module.js +26 -0
  138. package/dist/health-checker/health-checker.module.js.map +1 -0
  139. package/dist/health-checker/health-indicators/service.indicator.d.ts +8 -0
  140. package/dist/health-checker/health-indicators/service.indicator.js +57 -0
  141. package/dist/health-checker/health-indicators/service.indicator.js.map +1 -0
  142. package/dist/helpers/common.helper.d.ts +3 -0
  143. package/dist/helpers/common.helper.js +37 -0
  144. package/dist/helpers/common.helper.js.map +1 -0
  145. package/dist/helpers/date.helper.d.ts +10 -0
  146. package/dist/helpers/date.helper.js +59 -0
  147. package/dist/helpers/date.helper.js.map +1 -0
  148. package/dist/helpers/excel.helper.d.ts +12 -0
  149. package/dist/helpers/excel.helper.js +250 -0
  150. package/dist/helpers/excel.helper.js.map +1 -0
  151. package/dist/helpers/index.d.ts +3 -0
  152. package/dist/helpers/index.js +20 -0
  153. package/dist/helpers/index.js.map +1 -0
  154. package/dist/index.d.ts +11 -0
  155. package/dist/index.js +28 -0
  156. package/dist/index.js.map +1 -0
  157. package/dist/interceptors/auth-user.interceptor.d.ts +4 -0
  158. package/dist/interceptors/auth-user.interceptor.js +25 -0
  159. package/dist/interceptors/auth-user.interceptor.js.map +1 -0
  160. package/dist/interceptors/index.d.ts +2 -0
  161. package/dist/interceptors/index.js +19 -0
  162. package/dist/interceptors/index.js.map +1 -0
  163. package/dist/interceptors/language-interceptor.service.d.ts +6 -0
  164. package/dist/interceptors/language-interceptor.service.js +31 -0
  165. package/dist/interceptors/language-interceptor.service.js.map +1 -0
  166. package/dist/interceptors/translation-interceptor.service.d.ts +5 -0
  167. package/dist/interceptors/translation-interceptor.service.js +35 -0
  168. package/dist/interceptors/translation-interceptor.service.js.map +1 -0
  169. package/dist/interfaces/IApiFile.d.ts +4 -0
  170. package/dist/interfaces/IApiFile.js +3 -0
  171. package/dist/interfaces/IApiFile.js.map +1 -0
  172. package/dist/interfaces/IFile.d.ts +9 -0
  173. package/dist/interfaces/IFile.js +3 -0
  174. package/dist/interfaces/IFile.js.map +1 -0
  175. package/dist/interfaces/ITranslationDecoratorInterface.d.ts +3 -0
  176. package/dist/interfaces/ITranslationDecoratorInterface.js +3 -0
  177. package/dist/interfaces/ITranslationDecoratorInterface.js.map +1 -0
  178. package/dist/interfaces/index.d.ts +3 -0
  179. package/dist/interfaces/index.js +20 -0
  180. package/dist/interfaces/index.js.map +1 -0
  181. package/dist/interfaces/response.d.ts +25 -0
  182. package/dist/interfaces/response.js +3 -0
  183. package/dist/interfaces/response.js.map +1 -0
  184. package/dist/middlewares/index.d.ts +3 -0
  185. package/dist/middlewares/index.js +20 -0
  186. package/dist/middlewares/index.js.map +1 -0
  187. package/dist/middlewares/omni-auth.middleware.d.ts +1 -0
  188. package/dist/middlewares/omni-auth.middleware.js +14 -0
  189. package/dist/middlewares/omni-auth.middleware.js.map +1 -0
  190. package/dist/middlewares/powerby.middleware.d.ts +1 -0
  191. package/dist/middlewares/powerby.middleware.js +11 -0
  192. package/dist/middlewares/powerby.middleware.js.map +1 -0
  193. package/dist/middlewares/request-id.middleware.d.ts +7 -0
  194. package/dist/middlewares/request-id.middleware.js +23 -0
  195. package/dist/middlewares/request-id.middleware.js.map +1 -0
  196. package/dist/providers/context.provider.d.ts +32 -0
  197. package/dist/providers/context.provider.js +71 -0
  198. package/dist/providers/context.provider.js.map +1 -0
  199. package/dist/providers/generator.provider.d.ts +9 -0
  200. package/dist/providers/generator.provider.js +51 -0
  201. package/dist/providers/generator.provider.js.map +1 -0
  202. package/dist/providers/index.d.ts +2 -0
  203. package/dist/providers/index.js +19 -0
  204. package/dist/providers/index.js.map +1 -0
  205. package/dist/setup/bootstrap.setup.d.ts +5 -0
  206. package/dist/setup/bootstrap.setup.js +102 -0
  207. package/dist/setup/bootstrap.setup.js.map +1 -0
  208. package/dist/setup/index.d.ts +1 -0
  209. package/dist/setup/index.js +18 -0
  210. package/dist/setup/index.js.map +1 -0
  211. package/dist/setup-swagger.d.ts +2 -0
  212. package/dist/setup-swagger.js +63 -0
  213. package/dist/setup-swagger.js.map +1 -0
  214. package/dist/shared/index.d.ts +2 -0
  215. package/dist/shared/index.js +19 -0
  216. package/dist/shared/index.js.map +1 -0
  217. package/dist/shared/serviceRegistryModule.d.ts +2 -0
  218. package/dist/shared/serviceRegistryModule.js +102 -0
  219. package/dist/shared/serviceRegistryModule.js.map +1 -0
  220. package/dist/shared/services/api-config.service.d.ts +70 -0
  221. package/dist/shared/services/api-config.service.js +286 -0
  222. package/dist/shared/services/api-config.service.js.map +1 -0
  223. package/dist/shared/services/aws-s3.service.d.ts +10 -0
  224. package/dist/shared/services/aws-s3.service.js +49 -0
  225. package/dist/shared/services/aws-s3.service.js.map +1 -0
  226. package/dist/shared/services/generator.service.d.ts +4 -0
  227. package/dist/shared/services/generator.service.js +24 -0
  228. package/dist/shared/services/generator.service.js.map +1 -0
  229. package/dist/shared/services/index.d.ts +5 -0
  230. package/dist/shared/services/index.js +22 -0
  231. package/dist/shared/services/index.js.map +1 -0
  232. package/dist/shared/services/translation.service.d.ts +9 -0
  233. package/dist/shared/services/translation.service.js +61 -0
  234. package/dist/shared/services/translation.service.js.map +1 -0
  235. package/dist/shared/services/validator.service.d.ts +3 -0
  236. package/dist/shared/services/validator.service.js +21 -0
  237. package/dist/shared/services/validator.service.js.map +1 -0
  238. package/dist/snake-naming.strategy.d.ts +11 -0
  239. package/dist/snake-naming.strategy.js +38 -0
  240. package/dist/snake-naming.strategy.js.map +1 -0
  241. package/dist/tsconfig.tsbuildinfo +1 -0
  242. package/dist/types.d.ts +9 -0
  243. package/dist/types.js +3 -0
  244. package/dist/types.js.map +1 -0
  245. package/dist/validators/file-mimetype.validator.d.ts +13 -0
  246. package/dist/validators/file-mimetype.validator.js +24 -0
  247. package/dist/validators/file-mimetype.validator.js.map +1 -0
  248. package/dist/validators/index.d.ts +3 -0
  249. package/dist/validators/index.js +20 -0
  250. package/dist/validators/index.js.map +1 -0
  251. package/dist/validators/is-exists.validator.d.ts +18 -0
  252. package/dist/validators/is-exists.validator.js +52 -0
  253. package/dist/validators/is-exists.validator.js.map +1 -0
  254. package/dist/validators/is-unique.validator.d.ts +17 -0
  255. package/dist/validators/is-unique.validator.js +83 -0
  256. package/dist/validators/is-unique.validator.js.map +1 -0
  257. package/dist/validators/phone-country-code.validator.d.ts +2 -0
  258. package/dist/validators/phone-country-code.validator.js +31 -0
  259. package/dist/validators/phone-country-code.validator.js.map +1 -0
  260. package/dist/validators/same-as.validator.d.ts +2 -0
  261. package/dist/validators/same-as.validator.js +26 -0
  262. package/dist/validators/same-as.validator.js.map +1 -0
  263. package/dist/validators/skip-empty.validator.d.ts +1 -0
  264. package/dist/validators/skip-empty.validator.js +19 -0
  265. package/dist/validators/skip-empty.validator.js.map +1 -0
  266. package/package.json +66 -0
  267. package/src/boilerplate.polyfill.d.ts +39 -0
  268. package/src/boilerplate.polyfill.js +78 -0
  269. package/src/boilerplate.polyfill.ts +202 -0
  270. package/src/common/abstract-client.service.d.ts +20 -0
  271. package/src/common/abstract-client.service.js +39 -0
  272. package/src/common/abstract-client.service.ts +56 -0
  273. package/src/common/abstract.entity.d.ts +24 -0
  274. package/src/common/abstract.entity.js +152 -0
  275. package/src/common/abstract.entity.ts +73 -0
  276. package/src/common/dto/abstract.dto.d.ts +13 -0
  277. package/src/common/dto/abstract.dto.js +96 -0
  278. package/src/common/dto/abstract.dto.ts +64 -0
  279. package/src/common/dto/bulk-id.dto.d.ts +3 -0
  280. package/src/common/dto/bulk-id.dto.js +63 -0
  281. package/src/common/dto/bulk-id.dto.ts +13 -0
  282. package/src/common/dto/create-translation.dto.d.ts +5 -0
  283. package/src/common/dto/create-translation.dto.js +63 -0
  284. package/src/common/dto/create-translation.dto.ts +10 -0
  285. package/src/common/dto/page-meta.dto.d.ts +15 -0
  286. package/src/common/dto/page-meta.dto.js +88 -0
  287. package/src/common/dto/page-meta.dto.ts +37 -0
  288. package/src/common/dto/page-options.dto.d.ts +8 -0
  289. package/src/common/dto/page-options.dto.js +87 -0
  290. package/src/common/dto/page-options.dto.ts +35 -0
  291. package/src/common/dto/page.dto.d.ts +11 -0
  292. package/src/common/dto/page.dto.js +94 -0
  293. package/src/common/dto/page.dto.ts +36 -0
  294. package/src/common/utils.d.ts +14 -0
  295. package/src/common/utils.js +39 -0
  296. package/src/common/utils.ts +45 -0
  297. package/src/constants/index.d.ts +4 -0
  298. package/src/constants/index.js +20 -0
  299. package/src/constants/index.ts +4 -0
  300. package/src/constants/language-code.d.ts +5 -0
  301. package/src/constants/language-code.js +10 -0
  302. package/src/constants/language-code.ts +7 -0
  303. package/src/constants/order.d.ts +4 -0
  304. package/src/constants/order.js +8 -0
  305. package/src/constants/order.ts +4 -0
  306. package/src/constants/role-type.d.ts +4 -0
  307. package/src/constants/role-type.js +8 -0
  308. package/src/constants/role-type.ts +4 -0
  309. package/src/constants/token-type.d.ts +4 -0
  310. package/src/constants/token-type.js +8 -0
  311. package/src/constants/token-type.ts +4 -0
  312. package/src/decorators/api-page-ok-response.decorator.d.ts +5 -0
  313. package/src/decorators/api-page-ok-response.decorator.js +25 -0
  314. package/src/decorators/api-page-ok-response.decorator.ts +31 -0
  315. package/src/decorators/auth-user.decorator.d.ts +1 -0
  316. package/src/decorators/auth-user.decorator.js +15 -0
  317. package/src/decorators/auth-user.decorator.ts +16 -0
  318. package/src/decorators/controller.decorator.d.ts +1 -0
  319. package/src/decorators/controller.decorator.js +34 -0
  320. package/src/decorators/controller.decorator.ts +8 -0
  321. package/src/decorators/field.decorators.d.ts +71 -0
  322. package/src/decorators/field.decorators.js +455 -0
  323. package/src/decorators/field.decorators.ts +773 -0
  324. package/src/decorators/http.decorators.d.ts +3 -0
  325. package/src/decorators/http.decorators.js +8 -0
  326. package/src/decorators/http.decorators.ts +10 -0
  327. package/src/decorators/index.d.ts +12 -0
  328. package/src/decorators/index.js +28 -0
  329. package/src/decorators/index.ts +12 -0
  330. package/src/decorators/omni-auth.decorator.d.ts +8 -0
  331. package/src/decorators/omni-auth.decorator.js +60 -0
  332. package/src/decorators/omni-auth.decorator.ts +46 -0
  333. package/src/decorators/operation.decorator.d.ts +1 -0
  334. package/src/decorators/operation.decorator.js +6 -0
  335. package/src/decorators/operation.decorator.ts +4 -0
  336. package/src/decorators/property.decorators.d.ts +15 -0
  337. package/src/decorators/property.decorators.js +36 -0
  338. package/src/decorators/property.decorators.ts +62 -0
  339. package/src/decorators/public-route.decorator.d.ts +3 -0
  340. package/src/decorators/public-route.decorator.js +8 -0
  341. package/src/decorators/public-route.decorator.ts +8 -0
  342. package/src/decorators/swagger.schema.d.ts +5 -0
  343. package/src/decorators/swagger.schema.js +82 -0
  344. package/src/decorators/swagger.schema.ts +117 -0
  345. package/src/decorators/timestamp-column.decorator.d.ts +1 -0
  346. package/src/decorators/timestamp-column.decorator.js +28 -0
  347. package/src/decorators/timestamp-column.decorator.ts +29 -0
  348. package/src/decorators/transform.decorators.d.ts +35 -0
  349. package/src/decorators/transform.decorators.js +122 -0
  350. package/src/decorators/transform.decorators.ts +147 -0
  351. package/src/decorators/translate.decorator.d.ts +5 -0
  352. package/src/decorators/translate.decorator.js +18 -0
  353. package/src/decorators/translate.decorator.ts +19 -0
  354. package/src/decorators/use-dto.decorator.d.ts +4 -0
  355. package/src/decorators/use-dto.decorator.js +9 -0
  356. package/src/decorators/use-dto.decorator.ts +11 -0
  357. package/src/decorators/user-check.decorator.d.ts +6 -0
  358. package/src/decorators/user-check.decorator.js +44 -0
  359. package/src/decorators/user-check.decorator.ts +30 -0
  360. package/src/decorators/user.decorator.d.ts +8 -0
  361. package/src/decorators/user.decorator.js +62 -0
  362. package/src/decorators/user.decorator.ts +48 -0
  363. package/src/decorators/user_auth.decorator.d.ts +1 -0
  364. package/src/decorators/user_auth.decorator.js +16 -0
  365. package/src/decorators/user_auth.decorator.ts +15 -0
  366. package/src/decorators/validator.decorators.d.ts +10 -0
  367. package/src/decorators/validator.decorators.js +59 -0
  368. package/src/decorators/validator.decorators.ts +78 -0
  369. package/src/exceptions/file-not-image.exception.d.ts +4 -0
  370. package/src/exceptions/file-not-image.exception.js +10 -0
  371. package/src/exceptions/file-not-image.exception.ts +7 -0
  372. package/src/exceptions/index.d.ts +2 -0
  373. package/src/exceptions/index.js +18 -0
  374. package/src/exceptions/index.ts +2 -0
  375. package/src/exceptions/page-type.exception.d.ts +4 -0
  376. package/src/exceptions/page-type.exception.js +10 -0
  377. package/src/exceptions/page-type.exception.ts +7 -0
  378. package/src/exceptions/user-not-found.exception.d.ts +4 -0
  379. package/src/exceptions/user-not-found.exception.js +10 -0
  380. package/src/exceptions/user-not-found.exception.ts +7 -0
  381. package/src/filters/bad-request.filter.d.ts +5 -0
  382. package/src/filters/bad-request.filter.js +104 -0
  383. package/src/filters/bad-request.filter.ts +67 -0
  384. package/src/filters/constraint-errors.d.ts +1 -0
  385. package/src/filters/constraint-errors.js +7 -0
  386. package/src/filters/constraint-errors.ts +5 -0
  387. package/src/filters/index.d.ts +3 -0
  388. package/src/filters/index.js +19 -0
  389. package/src/filters/index.ts +3 -0
  390. package/src/filters/query-failed.filter.d.ts +10 -0
  391. package/src/filters/query-failed.filter.js +81 -0
  392. package/src/filters/query-failed.filter.ts +32 -0
  393. package/src/health-checker/health-checker.controller.d.ts +15 -0
  394. package/src/health-checker/health-checker.controller.js +104 -0
  395. package/src/health-checker/health-checker.controller.ts +51 -0
  396. package/src/health-checker/health-checker.module.d.ts +2 -0
  397. package/src/health-checker/health-checker.module.js +69 -0
  398. package/src/health-checker/health-checker.module.ts +13 -0
  399. package/src/health-checker/health-indicators/service.indicator.d.ts +8 -0
  400. package/src/health-checker/health-indicators/service.indicator.js +102 -0
  401. package/src/health-checker/health-indicators/service.indicator.ts +44 -0
  402. package/src/helpers/common.helper.d.ts +16 -0
  403. package/src/helpers/common.helper.js +49 -0
  404. package/src/helpers/common.helper.ts +49 -0
  405. package/src/helpers/date.helper.d.ts +10 -0
  406. package/src/helpers/date.helper.js +81 -0
  407. package/src/helpers/date.helper.ts +64 -0
  408. package/src/helpers/excel.helper.d.ts +27 -0
  409. package/src/helpers/excel.helper.js +338 -0
  410. package/src/helpers/index.d.ts +3 -0
  411. package/src/helpers/index.js +19 -0
  412. package/src/helpers/index.ts +3 -0
  413. package/src/i18n/en_US/validation.json +38 -0
  414. package/src/i18n/zh_CN/validation.json +38 -0
  415. package/src/index.d.ts +11 -0
  416. package/src/index.js +28 -0
  417. package/src/index.ts +12 -0
  418. package/src/interceptors/auth-user.interceptor.d.ts +4 -0
  419. package/src/interceptors/auth-user.interceptor.js +68 -0
  420. package/src/interceptors/auth-user.interceptor.ts +20 -0
  421. package/src/interceptors/index.d.ts +2 -0
  422. package/src/interceptors/index.js +18 -0
  423. package/src/interceptors/index.ts +2 -0
  424. package/src/interceptors/language-interceptor.service.d.ts +6 -0
  425. package/src/interceptors/language-interceptor.service.js +74 -0
  426. package/src/interceptors/language-interceptor.service.ts +31 -0
  427. package/src/interceptors/translation-interceptor.service.d.ts +5 -0
  428. package/src/interceptors/translation-interceptor.service.js +83 -0
  429. package/src/interceptors/translation-interceptor.service.ts +43 -0
  430. package/src/interfaces/IApiFile.d.ts +4 -0
  431. package/src/interfaces/IApiFile.js +2 -0
  432. package/src/interfaces/IApiFile.ts +4 -0
  433. package/src/interfaces/IFile.d.ts +9 -0
  434. package/src/interfaces/IFile.js +2 -0
  435. package/src/interfaces/IFile.ts +8 -0
  436. package/src/interfaces/ITranslationDecoratorInterface.d.ts +3 -0
  437. package/src/interfaces/ITranslationDecoratorInterface.js +2 -0
  438. package/src/interfaces/ITranslationDecoratorInterface.ts +3 -0
  439. package/src/interfaces/index.d.ts +3 -0
  440. package/src/interfaces/index.js +19 -0
  441. package/src/interfaces/index.ts +3 -0
  442. package/src/interfaces/response.d.ts +25 -0
  443. package/src/interfaces/response.js +2 -0
  444. package/src/interfaces/response.ts +37 -0
  445. package/src/middlewares/index.d.ts +3 -0
  446. package/src/middlewares/index.js +19 -0
  447. package/src/middlewares/index.ts +3 -0
  448. package/src/middlewares/omni-auth.middleware.d.ts +1 -0
  449. package/src/middlewares/omni-auth.middleware.js +13 -0
  450. package/src/middlewares/omni-auth.middleware.ts +10 -0
  451. package/src/middlewares/powerby.middleware.d.ts +1 -0
  452. package/src/middlewares/powerby.middleware.js +10 -0
  453. package/src/middlewares/powerby.middleware.ts +6 -0
  454. package/src/middlewares/request-id.middleware.d.ts +7 -0
  455. package/src/middlewares/request-id.middleware.js +22 -0
  456. package/src/middlewares/request-id.middleware.ts +28 -0
  457. package/src/providers/context.provider.d.ts +32 -0
  458. package/src/providers/context.provider.js +73 -0
  459. package/src/providers/context.provider.ts +98 -0
  460. package/src/providers/generator.provider.d.ts +13 -0
  461. package/src/providers/generator.provider.js +54 -0
  462. package/src/providers/generator.provider.ts +66 -0
  463. package/src/providers/index.d.ts +2 -0
  464. package/src/providers/index.js +18 -0
  465. package/src/providers/index.ts +2 -0
  466. package/src/setup/bootstrap.setup.d.ts +5 -0
  467. package/src/setup/bootstrap.setup.js +138 -0
  468. package/src/setup/bootstrap.setup.ts +139 -0
  469. package/src/setup/index.d.ts +1 -0
  470. package/src/setup/index.js +17 -0
  471. package/src/setup/index.ts +1 -0
  472. package/src/setup/microservices.setup.js +55 -0
  473. package/src/setup-swagger.d.ts +2 -0
  474. package/src/setup-swagger.js +62 -0
  475. package/src/setup-swagger.ts +67 -0
  476. package/src/shared/index.d.ts +2 -0
  477. package/src/shared/index.js +18 -0
  478. package/src/shared/index.ts +2 -0
  479. package/src/shared/serviceRegistryModule.d.ts +2 -0
  480. package/src/shared/serviceRegistryModule.js +176 -0
  481. package/src/shared/serviceRegistryModule.ts +110 -0
  482. package/src/shared/services/api-config.service.d.ts +73 -0
  483. package/src/shared/services/api-config.service.js +335 -0
  484. package/src/shared/services/api-config.service.ts +319 -0
  485. package/src/shared/services/aws-s3.service.d.ts +10 -0
  486. package/src/shared/services/aws-s3.service.js +96 -0
  487. package/src/shared/services/aws-s3.service.ts +39 -0
  488. package/src/shared/services/generator.service.d.ts +4 -0
  489. package/src/shared/services/generator.service.js +67 -0
  490. package/src/shared/services/generator.service.ts +13 -0
  491. package/src/shared/services/index.d.ts +5 -0
  492. package/src/shared/services/index.js +21 -0
  493. package/src/shared/services/index.ts +5 -0
  494. package/src/shared/services/translation.service.d.ts +9 -0
  495. package/src/shared/services/translation.service.js +109 -0
  496. package/src/shared/services/translation.service.ts +59 -0
  497. package/src/shared/services/validator.service.d.ts +3 -0
  498. package/src/shared/services/validator.service.js +64 -0
  499. package/src/shared/services/validator.service.ts +10 -0
  500. package/src/snake-naming.strategy.d.ts +11 -0
  501. package/src/snake-naming.strategy.js +37 -0
  502. package/src/snake-naming.strategy.ts +64 -0
  503. package/src/types.d.ts +9 -0
  504. package/src/types.js +2 -0
  505. package/src/types.ts +44 -0
  506. package/src/validators/file-mimetype.validator.d.ts +13 -0
  507. package/src/validators/file-mimetype.validator.js +21 -0
  508. package/src/validators/file-mimetype.validator.ts +34 -0
  509. package/src/validators/index.d.ts +3 -0
  510. package/src/validators/index.js +19 -0
  511. package/src/validators/index.ts +3 -0
  512. package/src/validators/is-exists.validator.d.ts +18 -0
  513. package/src/validators/is-exists.validator.js +99 -0
  514. package/src/validators/is-exists.validator.ts +60 -0
  515. package/src/validators/is-unique.validator.d.ts +17 -0
  516. package/src/validators/is-unique.validator.js +131 -0
  517. package/src/validators/is-unique.validator.ts +93 -0
  518. package/src/validators/phone-country-code.validator.d.ts +2 -0
  519. package/src/validators/phone-country-code.validator.js +30 -0
  520. package/src/validators/phone-country-code.validator.ts +36 -0
  521. package/src/validators/same-as.validator.d.ts +2 -0
  522. package/src/validators/same-as.validator.js +25 -0
  523. package/src/validators/same-as.validator.ts +27 -0
  524. package/src/validators/skip-empty.validator.d.ts +6 -0
  525. package/src/validators/skip-empty.validator.js +23 -0
  526. package/src/validators/skip-empty.validator.ts +25 -0
  527. package/tsconfig.json +21 -0
  528. package/tsconfig.lib.json +16 -0
@@ -0,0 +1,202 @@
1
+ import 'source-map-support/register';
2
+
3
+ import { compact, map } from 'lodash';
4
+ import type { ObjectLiteral } from 'typeorm';
5
+ import { Brackets, SelectQueryBuilder } from 'typeorm';
6
+
7
+ import type { AbstractEntity } from './common/abstract.entity';
8
+ import type { AbstractDto } from './common/dto/abstract.dto';
9
+ import type { CreateTranslationDto } from './common/dto/create-translation.dto';
10
+ import { PageDto } from './common/dto/page.dto';
11
+ import { PageMetaDto } from './common/dto/page-meta.dto';
12
+ import type { PageOptionsDto } from './common/dto/page-options.dto';
13
+ import type { LanguageCode } from './constants/language-code';
14
+ import type { KeyOfType } from './types';
15
+ import { ContextProvider } from './providers';
16
+
17
+ declare global {
18
+ export type Uuid = string & { _uuidBrand: undefined };
19
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/no-redundant-type-constituents
20
+ export type Todo = any & { _todoBrand: undefined };
21
+
22
+ // eslint-disable-next-line @typescript-eslint/naming-convention
23
+ interface Array<T> {
24
+ toDtos<Dto extends AbstractDto>(this: T[], options?: unknown): Dto[];
25
+
26
+ getByLanguage(
27
+ this: CreateTranslationDto[],
28
+ languageCode: LanguageCode,
29
+ ): string;
30
+
31
+ toPageDto<Dto extends AbstractDto>(
32
+ this: T[],
33
+ pageMetaDto: PageMetaDto,
34
+ // FIXME make option type visible from entity
35
+ options?: unknown,
36
+ ): PageDto<Dto>;
37
+ }
38
+ }
39
+
40
+ declare module 'typeorm' {
41
+ // eslint-disable-next-line @typescript-eslint/naming-convention
42
+ interface SelectQueryBuilder<Entity> {
43
+ searchByString(
44
+ q: string,
45
+ columnNames: string[],
46
+ options?: {
47
+ formStart: boolean;
48
+ },
49
+ ): this;
50
+
51
+ withTenant(tenantId?: string | number, tenantFieldName?: string): this;
52
+
53
+ paginate(
54
+ this: SelectQueryBuilder<Entity>,
55
+ pageOptionsDto: PageOptionsDto,
56
+ options?: Partial<{ takeAll: boolean; skipCount: boolean }>,
57
+ ): Promise<[Entity[], PageMetaDto]>;
58
+
59
+ leftJoinAndSelect<AliasEntity extends AbstractEntity, A extends string>(
60
+ this: SelectQueryBuilder<Entity>,
61
+ property: `${A}.${Exclude<
62
+ KeyOfType<AliasEntity, AbstractEntity>,
63
+ symbol
64
+ >}`,
65
+ alias: string,
66
+ condition?: string,
67
+ parameters?: ObjectLiteral,
68
+ ): this;
69
+
70
+ leftJoin<AliasEntity extends AbstractEntity, A extends string>(
71
+ this: SelectQueryBuilder<Entity>,
72
+ property: `${A}.${Exclude<
73
+ KeyOfType<AliasEntity, AbstractEntity>,
74
+ symbol
75
+ >}`,
76
+ alias: string,
77
+ condition?: string,
78
+ parameters?: ObjectLiteral,
79
+ ): this;
80
+
81
+ innerJoinAndSelect<AliasEntity extends AbstractEntity, A extends string>(
82
+ this: SelectQueryBuilder<Entity>,
83
+ property: `${A}.${Exclude<
84
+ KeyOfType<AliasEntity, AbstractEntity>,
85
+ symbol
86
+ >}`,
87
+ alias: string,
88
+ condition?: string,
89
+ parameters?: ObjectLiteral,
90
+ ): this;
91
+
92
+ innerJoin<AliasEntity extends AbstractEntity, A extends string>(
93
+ this: SelectQueryBuilder<Entity>,
94
+ property: `${A}.${Exclude<
95
+ KeyOfType<AliasEntity, AbstractEntity>,
96
+ symbol
97
+ >}`,
98
+ alias: string,
99
+ condition?: string,
100
+ parameters?: ObjectLiteral,
101
+ ): this;
102
+ }
103
+ }
104
+
105
+ Array.prototype.toDtos = function <
106
+ Entity extends AbstractEntity<Dto>,
107
+ Dto extends AbstractDto,
108
+ >(options?: unknown): Dto[] {
109
+ return compact(
110
+ map<Entity, Dto>(this as Entity[], (item) => item.toDto(options as never)),
111
+ );
112
+ };
113
+
114
+ Array.prototype.getByLanguage = function (languageCode: LanguageCode): string {
115
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
116
+ return this.find((translation) => languageCode === translation.languageCode)!
117
+ .text;
118
+ };
119
+
120
+ Array.prototype.toPageDto = function (
121
+ pageMetaDto: PageMetaDto,
122
+ options?: unknown,
123
+ ) {
124
+ return new PageDto(this.toDtos(options), pageMetaDto);
125
+ };
126
+
127
+ SelectQueryBuilder.prototype.searchByString = function (
128
+ q,
129
+ columnNames,
130
+ options,
131
+ ) {
132
+ if (!q) {
133
+ return this;
134
+ }
135
+
136
+ this.andWhere(
137
+ new Brackets((qb) => {
138
+ for (const item of columnNames) {
139
+ qb.orWhere(`${item} ILIKE :q`);
140
+ }
141
+ }),
142
+ );
143
+
144
+ if (options?.formStart) {
145
+ this.setParameter('q', `${q}%`);
146
+ } else {
147
+ this.setParameter('q', `%${q}%`);
148
+ }
149
+
150
+ return this;
151
+ };
152
+
153
+ SelectQueryBuilder.prototype.paginate = async function (
154
+ pageOptionsDto: PageOptionsDto,
155
+ options?: Partial<{
156
+ skipCount: boolean;
157
+ takeAll: boolean;
158
+ }>,
159
+ ) {
160
+ if (!options?.takeAll) {
161
+ this.skip(pageOptionsDto.skip).take(pageOptionsDto.pageSize);
162
+ }
163
+
164
+ const entities = await this.getMany();
165
+
166
+ let itemCount = -1;
167
+
168
+ if (!options?.skipCount) {
169
+ itemCount = await this.getCount();
170
+ }
171
+
172
+ const pageMetaDto = new PageMetaDto({
173
+ itemCount,
174
+ pageOptionsDto,
175
+ });
176
+
177
+ return [entities, pageMetaDto];
178
+ };
179
+
180
+ SelectQueryBuilder.prototype.withTenant = function (
181
+ tenantId?: number | string,
182
+ tenantFieldName: string = 'tenantId',
183
+ ) {
184
+ if (!tenantId) {
185
+ tenantId = ContextProvider.getTenantId();
186
+ }
187
+
188
+ if (this.expressionMap.mainAlias.hasMetadata) {
189
+ const entityMetadata = this.expressionMap.mainAlias.metadata;
190
+ const columnName = entityMetadata.columns.find(
191
+ (column: any) => column.propertyName === tenantFieldName,
192
+ )?.databaseName;
193
+
194
+ if (columnName) {
195
+ return this.andWhere(`${this.alias}.${columnName} = :tenantId`, {
196
+ tenantId,
197
+ });
198
+ }
199
+ }
200
+
201
+ return this;
202
+ };
@@ -0,0 +1,20 @@
1
+ import type { ClientProxy } from '@nestjs/microservices';
2
+ import type { Constructor } from '../types';
3
+ import type { PageDto } from './dto/page.dto';
4
+ /**
5
+ * Fixme: This class designed to use with @nestjs/microservices by extending and creating a new class.
6
+ * TODO: Create Implementation and usage of it
7
+ */
8
+ export declare class AbstractClientService<ActionType> {
9
+ private client;
10
+ constructor(client: ClientProxy);
11
+ send(pattern: ActionType, data: unknown): Promise<void>;
12
+ send<R>(pattern: ActionType, data: unknown, returnDataOptions: {
13
+ class: Constructor<R>;
14
+ isPage: true;
15
+ }): Promise<PageDto<R>>;
16
+ send<R>(pattern: ActionType, data: unknown, returnDataOptions?: {
17
+ class: Constructor<R>;
18
+ isPage?: false;
19
+ }): Promise<R>;
20
+ }
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AbstractClientService = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const rxjs_1 = require("rxjs");
15
+ const page_type_exception_1 = require("../exceptions/page-type.exception");
16
+ /**
17
+ * Fixme: This class designed to use with @nestjs/microservices by extending and creating a new class.
18
+ * TODO: Create Implementation and usage of it
19
+ */
20
+ class AbstractClientService {
21
+ constructor(client) {
22
+ this.client = client;
23
+ }
24
+ send(pattern, data, returnDataOptions) {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ const returnData = yield (0, rxjs_1.firstValueFrom)(this.client.send(pattern, data), {
27
+ defaultValue: undefined,
28
+ });
29
+ if ((returnDataOptions === null || returnDataOptions === void 0 ? void 0 : returnDataOptions.isPage) && (!(returnData === null || returnData === void 0 ? void 0 : returnData.data) || !returnData.meta)) {
30
+ throw new page_type_exception_1.PageTypeException();
31
+ }
32
+ if (!(returnDataOptions === null || returnDataOptions === void 0 ? void 0 : returnDataOptions.class) || returnDataOptions.isPage) {
33
+ return returnData;
34
+ }
35
+ return (0, class_transformer_1.plainToInstance)(returnDataOptions.class, returnData);
36
+ });
37
+ }
38
+ }
39
+ exports.AbstractClientService = AbstractClientService;
@@ -0,0 +1,56 @@
1
+ import type { ClientProxy } from '@nestjs/microservices';
2
+ import { plainToInstance } from 'class-transformer';
3
+ import { firstValueFrom } from 'rxjs';
4
+
5
+ import { PageTypeException } from '../exceptions/page-type.exception';
6
+ import type { Constructor } from '../types';
7
+ import type { PageDto } from './dto/page.dto';
8
+ import type { PageMetaDto } from './dto/page-meta.dto';
9
+
10
+ /**
11
+ * Fixme: This class designed to use with @nestjs/microservices by extending and creating a new class.
12
+ * TODO: Create Implementation and usage of it
13
+ */
14
+ export class AbstractClientService<ActionType> {
15
+ constructor(private client: ClientProxy) {}
16
+
17
+ public async send(pattern: ActionType, data: unknown): Promise<void>;
18
+
19
+ public async send<R>(
20
+ pattern: ActionType,
21
+ data: unknown,
22
+ returnDataOptions: { class: Constructor<R>; isPage: true },
23
+ ): Promise<PageDto<R>>;
24
+
25
+ public async send<R>(
26
+ pattern: ActionType,
27
+ data: unknown,
28
+ returnDataOptions?: { class: Constructor<R>; isPage?: false },
29
+ ): Promise<R>;
30
+
31
+ public async send<R, I>(
32
+ pattern: ActionType,
33
+ data: I,
34
+ returnDataOptions?: Partial<{
35
+ class?: Constructor<R>;
36
+ isPage?: boolean;
37
+ }>,
38
+ ): Promise<R | PageDto<R> | void> {
39
+ const returnData = await firstValueFrom(
40
+ this.client.send<{ data?: R; meta?: PageMetaDto }>(pattern, data),
41
+ {
42
+ defaultValue: undefined,
43
+ },
44
+ );
45
+
46
+ if (returnDataOptions?.isPage && (!returnData?.data || !returnData.meta)) {
47
+ throw new PageTypeException();
48
+ }
49
+
50
+ if (!returnDataOptions?.class || returnDataOptions.isPage) {
51
+ return returnData as R;
52
+ }
53
+
54
+ return plainToInstance(returnDataOptions.class, returnData);
55
+ }
56
+ }
@@ -0,0 +1,24 @@
1
+ import type { AbstractDto, AbstractTranslationDto } from './dto/abstract.dto';
2
+ import { LanguageCode } from '../constants';
3
+ /**
4
+ * Abstract Entity
5
+ *
6
+ * @description This class is an abstract class for all entities.
7
+ * It's experimental and recommended using it only in microservice architecture,
8
+ * otherwise just delete and use your own entity.
9
+ */
10
+ export declare abstract class AbstractBaseEntity<DTO, O> {
11
+ createdAt: Date;
12
+ updatedAt: Date;
13
+ translations?: AbstractTranslationEntity[];
14
+ toDto(options?: O): DTO;
15
+ }
16
+ export declare class AbstractEntity<DTO extends AbstractDto = AbstractDto, O = never> extends AbstractBaseEntity<DTO, O> {
17
+ id: number;
18
+ }
19
+ export declare class AbstractTranslationEntity<DTO extends AbstractTranslationDto = AbstractTranslationDto, O = never> extends AbstractEntity<DTO, O> {
20
+ languageCode: LanguageCode;
21
+ }
22
+ export declare class AbstractStringPrimaryEntity<DTO extends AbstractDto = AbstractDto, O = never> extends AbstractBaseEntity<DTO, O> {
23
+ id: string;
24
+ }
@@ -0,0 +1,152 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.AbstractStringPrimaryEntity = exports.AbstractTranslationEntity = exports.AbstractEntity = exports.AbstractBaseEntity = void 0;
38
+ const typeorm_1 = require("typeorm");
39
+ const decorators_1 = require("../decorators");
40
+ const constants_1 = require("../constants");
41
+ /**
42
+ * Abstract Entity
43
+ *
44
+ * @description This class is an abstract class for all entities.
45
+ * It's experimental and recommended using it only in microservice architecture,
46
+ * otherwise just delete and use your own entity.
47
+ */
48
+ let AbstractBaseEntity = (() => {
49
+ var _a;
50
+ let _instanceExtraInitializers = [];
51
+ let _createdAt_decorators;
52
+ let _createdAt_initializers = [];
53
+ let _updatedAt_decorators;
54
+ let _updatedAt_initializers = [];
55
+ return _a = class AbstractBaseEntity {
56
+ constructor() {
57
+ this.createdAt = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _createdAt_initializers, void 0));
58
+ this.updatedAt = __runInitializers(this, _updatedAt_initializers, void 0);
59
+ }
60
+ toDto(options) {
61
+ const dtoClass = Object.getPrototypeOf(this).dtoClass;
62
+ if (!dtoClass) {
63
+ throw new Error(`You need to use @UseDto on class (${this.constructor.name}) be able to call toDto function`);
64
+ }
65
+ return new dtoClass(this, options);
66
+ }
67
+ },
68
+ (() => {
69
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
70
+ _createdAt_decorators = [(0, typeorm_1.CreateDateColumn)({
71
+ type: 'timestamp',
72
+ })];
73
+ _updatedAt_decorators = [(0, typeorm_1.UpdateDateColumn)({
74
+ type: 'timestamp',
75
+ })];
76
+ __esDecorate(null, null, _createdAt_decorators, { kind: "field", name: "createdAt", static: false, private: false, access: { has: obj => "createdAt" in obj, get: obj => obj.createdAt, set: (obj, value) => { obj.createdAt = value; } }, metadata: _metadata }, _createdAt_initializers, _instanceExtraInitializers);
77
+ __esDecorate(null, null, _updatedAt_decorators, { kind: "field", name: "updatedAt", static: false, private: false, access: { has: obj => "updatedAt" in obj, get: obj => obj.updatedAt, set: (obj, value) => { obj.updatedAt = value; } }, metadata: _metadata }, _updatedAt_initializers, _instanceExtraInitializers);
78
+ if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
79
+ })(),
80
+ _a;
81
+ })();
82
+ exports.AbstractBaseEntity = AbstractBaseEntity;
83
+ let AbstractEntity = (() => {
84
+ var _a;
85
+ let _classSuper = AbstractBaseEntity;
86
+ let _instanceExtraInitializers = [];
87
+ let _id_decorators;
88
+ let _id_initializers = [];
89
+ return _a = class AbstractEntity extends _classSuper {
90
+ constructor() {
91
+ super(...arguments);
92
+ this.id = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _id_initializers, void 0));
93
+ }
94
+ },
95
+ (() => {
96
+ var _b;
97
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create((_b = _classSuper[Symbol.metadata]) !== null && _b !== void 0 ? _b : null) : void 0;
98
+ _id_decorators = [(0, typeorm_1.PrimaryGeneratedColumn)('increment', { type: 'bigint' }), (0, decorators_1.NumberFieldOptional)({ swagger: false })];
99
+ __esDecorate(null, null, _id_decorators, { kind: "field", name: "id", static: false, private: false, access: { has: obj => "id" in obj, get: obj => obj.id, set: (obj, value) => { obj.id = value; } }, metadata: _metadata }, _id_initializers, _instanceExtraInitializers);
100
+ if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
101
+ })(),
102
+ _a;
103
+ })();
104
+ exports.AbstractEntity = AbstractEntity;
105
+ let AbstractTranslationEntity = (() => {
106
+ var _a;
107
+ let _classSuper = AbstractEntity;
108
+ let _instanceExtraInitializers = [];
109
+ let _languageCode_decorators;
110
+ let _languageCode_initializers = [];
111
+ return _a = class AbstractTranslationEntity extends _classSuper {
112
+ constructor() {
113
+ super(...arguments);
114
+ this.languageCode = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _languageCode_initializers, void 0));
115
+ }
116
+ },
117
+ (() => {
118
+ var _b;
119
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create((_b = _classSuper[Symbol.metadata]) !== null && _b !== void 0 ? _b : null) : void 0;
120
+ _languageCode_decorators = [(0, typeorm_1.Column)({ type: 'enum', enum: constants_1.LanguageCode })];
121
+ __esDecorate(null, null, _languageCode_decorators, { kind: "field", name: "languageCode", static: false, private: false, access: { has: obj => "languageCode" in obj, get: obj => obj.languageCode, set: (obj, value) => { obj.languageCode = value; } }, metadata: _metadata }, _languageCode_initializers, _instanceExtraInitializers);
122
+ if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
123
+ })(),
124
+ _a;
125
+ })();
126
+ exports.AbstractTranslationEntity = AbstractTranslationEntity;
127
+ let AbstractStringPrimaryEntity = (() => {
128
+ var _a;
129
+ let _classSuper = AbstractBaseEntity;
130
+ let _instanceExtraInitializers = [];
131
+ let _id_decorators;
132
+ let _id_initializers = [];
133
+ return _a = class AbstractStringPrimaryEntity extends _classSuper {
134
+ constructor() {
135
+ super(...arguments);
136
+ this.id = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _id_initializers, void 0));
137
+ }
138
+ },
139
+ (() => {
140
+ var _b;
141
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create((_b = _classSuper[Symbol.metadata]) !== null && _b !== void 0 ? _b : null) : void 0;
142
+ _id_decorators = [(0, typeorm_1.PrimaryGeneratedColumn)('uuid'), (0, decorators_1.StringFieldOptional)({
143
+ maxLength: 36,
144
+ minLength: 2,
145
+ example: '23247899-c237-4ab1-9639-3322029d2e1c',
146
+ })];
147
+ __esDecorate(null, null, _id_decorators, { kind: "field", name: "id", static: false, private: false, access: { has: obj => "id" in obj, get: obj => obj.id, set: (obj, value) => { obj.id = value; } }, metadata: _metadata }, _id_initializers, _instanceExtraInitializers);
148
+ if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
149
+ })(),
150
+ _a;
151
+ })();
152
+ exports.AbstractStringPrimaryEntity = AbstractStringPrimaryEntity;
@@ -0,0 +1,73 @@
1
+ import {
2
+ Column,
3
+ CreateDateColumn,
4
+ PrimaryGeneratedColumn,
5
+ UpdateDateColumn,
6
+ } from 'typeorm';
7
+
8
+ import type { AbstractDto, AbstractTranslationDto } from './dto/abstract.dto';
9
+ import { NumberFieldOptional, StringFieldOptional } from '../decorators';
10
+ import { LanguageCode } from '../constants';
11
+
12
+ /**
13
+ * Abstract Entity
14
+ *
15
+ * @description This class is an abstract class for all entities.
16
+ * It's experimental and recommended using it only in microservice architecture,
17
+ * otherwise just delete and use your own entity.
18
+ */
19
+ export abstract class AbstractBaseEntity<DTO, O> {
20
+ @CreateDateColumn({
21
+ type: 'timestamp',
22
+ })
23
+ createdAt: Date;
24
+
25
+ @UpdateDateColumn({
26
+ type: 'timestamp',
27
+ })
28
+ updatedAt: Date;
29
+
30
+ translations?: AbstractTranslationEntity[];
31
+
32
+ toDto(options?: O): DTO {
33
+ const dtoClass = Object.getPrototypeOf(this).dtoClass;
34
+
35
+ if (!dtoClass) {
36
+ throw new Error(
37
+ `You need to use @UseDto on class (${this.constructor.name}) be able to call toDto function`,
38
+ );
39
+ }
40
+
41
+ return new dtoClass(this, options);
42
+ }
43
+ }
44
+
45
+ export class AbstractEntity<
46
+ DTO extends AbstractDto = AbstractDto,
47
+ O = never,
48
+ > extends AbstractBaseEntity<DTO, O> {
49
+ @PrimaryGeneratedColumn('increment', { type: 'bigint' })
50
+ @NumberFieldOptional({ swagger: false })
51
+ id: number;
52
+ }
53
+
54
+ export class AbstractTranslationEntity<
55
+ DTO extends AbstractTranslationDto = AbstractTranslationDto,
56
+ O = never,
57
+ > extends AbstractEntity<DTO, O> {
58
+ @Column({ type: 'enum', enum: LanguageCode })
59
+ languageCode: LanguageCode;
60
+ }
61
+
62
+ export class AbstractStringPrimaryEntity<
63
+ DTO extends AbstractDto = AbstractDto,
64
+ O = never,
65
+ > extends AbstractBaseEntity<DTO, O> {
66
+ @PrimaryGeneratedColumn('uuid')
67
+ @StringFieldOptional({
68
+ maxLength: 36,
69
+ minLength: 2,
70
+ example: '23247899-c237-4ab1-9639-3322029d2e1c',
71
+ })
72
+ id: string;
73
+ }
@@ -0,0 +1,13 @@
1
+ import { AbstractEntity, AbstractStringPrimaryEntity } from '../abstract.entity';
2
+ export declare class AbstractDto {
3
+ id: number | string;
4
+ createdAt: Date;
5
+ updatedAt: Date;
6
+ translations?: AbstractTranslationDto[];
7
+ constructor(entity: AbstractEntity | AbstractStringPrimaryEntity, options?: {
8
+ excludeFields?: boolean;
9
+ });
10
+ }
11
+ export declare class AbstractTranslationDto extends AbstractDto {
12
+ constructor(entity: AbstractEntity | AbstractStringPrimaryEntity);
13
+ }
@@ -0,0 +1,96 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.AbstractTranslationDto = exports.AbstractDto = void 0;
38
+ const swagger_1 = require("@nestjs/swagger");
39
+ const decorators_1 = require("../../decorators");
40
+ const providers_1 = require("../../providers");
41
+ let AbstractDto = (() => {
42
+ var _a;
43
+ let _instanceExtraInitializers = [];
44
+ let _id_decorators;
45
+ let _id_initializers = [];
46
+ let _createdAt_decorators;
47
+ let _createdAt_initializers = [];
48
+ let _updatedAt_decorators;
49
+ let _updatedAt_initializers = [];
50
+ return _a = class AbstractDto {
51
+ constructor(entity, options) {
52
+ var _b;
53
+ this.id = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _id_initializers, void 0));
54
+ this.createdAt = __runInitializers(this, _createdAt_initializers, void 0);
55
+ this.updatedAt = __runInitializers(this, _updatedAt_initializers, void 0);
56
+ if (!(options === null || options === void 0 ? void 0 : options.excludeFields)) {
57
+ this.id = entity.id;
58
+ this.createdAt = entity.createdAt;
59
+ this.updatedAt = entity.updatedAt;
60
+ }
61
+ const languageCode = providers_1.ContextProvider.getLanguage();
62
+ if (languageCode && entity.translations) {
63
+ const translationEntity = entity.translations.find((titleTranslation) => titleTranslation.languageCode === languageCode);
64
+ const fields = {};
65
+ for (const key of Object.keys(translationEntity)) {
66
+ const metadata = Reflect.getMetadata(decorators_1.DYNAMIC_TRANSLATION_DECORATOR_KEY, this, key);
67
+ if (metadata) {
68
+ fields[key] = translationEntity[key];
69
+ }
70
+ }
71
+ Object.assign(this, fields);
72
+ }
73
+ else {
74
+ this.translations = (_b = entity.translations) === null || _b === void 0 ? void 0 : _b.toDtos();
75
+ }
76
+ }
77
+ },
78
+ (() => {
79
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
80
+ _id_decorators = [(0, swagger_1.ApiProperty)()];
81
+ _createdAt_decorators = [(0, swagger_1.ApiProperty)()];
82
+ _updatedAt_decorators = [(0, swagger_1.ApiProperty)()];
83
+ __esDecorate(null, null, _id_decorators, { kind: "field", name: "id", static: false, private: false, access: { has: obj => "id" in obj, get: obj => obj.id, set: (obj, value) => { obj.id = value; } }, metadata: _metadata }, _id_initializers, _instanceExtraInitializers);
84
+ __esDecorate(null, null, _createdAt_decorators, { kind: "field", name: "createdAt", static: false, private: false, access: { has: obj => "createdAt" in obj, get: obj => obj.createdAt, set: (obj, value) => { obj.createdAt = value; } }, metadata: _metadata }, _createdAt_initializers, _instanceExtraInitializers);
85
+ __esDecorate(null, null, _updatedAt_decorators, { kind: "field", name: "updatedAt", static: false, private: false, access: { has: obj => "updatedAt" in obj, get: obj => obj.updatedAt, set: (obj, value) => { obj.updatedAt = value; } }, metadata: _metadata }, _updatedAt_initializers, _instanceExtraInitializers);
86
+ if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
87
+ })(),
88
+ _a;
89
+ })();
90
+ exports.AbstractDto = AbstractDto;
91
+ class AbstractTranslationDto extends AbstractDto {
92
+ constructor(entity) {
93
+ super(entity, { excludeFields: true });
94
+ }
95
+ }
96
+ exports.AbstractTranslationDto = AbstractTranslationDto;