@evara-group/guard 1.0.30 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (419) hide show
  1. package/README.md +346 -28
  2. package/dist/common.d.ts +2 -0
  3. package/dist/common.js +6 -0
  4. package/dist/common.js.map +1 -0
  5. package/dist/core/database/switch.schema.d.ts +6 -0
  6. package/dist/core/database/switch.schema.js +39 -0
  7. package/dist/core/database/switch.schema.js.map +1 -0
  8. package/dist/core/enums/user-permission.d.ts +32 -0
  9. package/dist/core/enums/user-permission.js +37 -0
  10. package/dist/core/enums/user-permission.js.map +1 -0
  11. package/dist/core/utils/base.entity.d.ts +1 -0
  12. package/dist/core/utils/base.entity.js +4 -3
  13. package/dist/core/utils/base.entity.js.map +1 -1
  14. package/dist/core/utils/base.migration.d.ts +2 -0
  15. package/dist/core/utils/base.migration.js +44 -0
  16. package/dist/core/utils/base.migration.js.map +1 -0
  17. package/dist/core/utils/guard-base.entity.d.ts +10 -0
  18. package/dist/core/utils/guard-base.entity.js +46 -0
  19. package/dist/core/utils/guard-base.entity.js.map +1 -0
  20. package/dist/core/utils/lower-case.transformer.d.ts +3 -0
  21. package/dist/core/utils/lower-case.transformer.js +6 -0
  22. package/dist/core/utils/lower-case.transformer.js.map +1 -0
  23. package/dist/core/utils/pagination.entity.js.map +1 -1
  24. package/dist/core/utils/remove-spaces.transformer.d.ts +3 -0
  25. package/dist/core/utils/remove-spaces.transformer.js +6 -0
  26. package/dist/core/utils/remove-spaces.transformer.js.map +1 -0
  27. package/dist/core/utils/request.d.ts +1 -1
  28. package/dist/database/config/typeorm.config.d.ts +5 -0
  29. package/dist/database/config/typeorm.config.js +38 -0
  30. package/dist/database/config/typeorm.config.js.map +1 -0
  31. package/dist/database/migrations/1765027603465-CreateUserTable.d.ts +6 -0
  32. package/dist/database/migrations/1765027603465-CreateUserTable.js +63 -0
  33. package/dist/database/migrations/1765027603465-CreateUserTable.js.map +1 -0
  34. package/dist/database/migrations/1765042818137-CreateModuleTable.d.ts +6 -0
  35. package/dist/database/migrations/1765042818137-CreateModuleTable.js +53 -0
  36. package/dist/database/migrations/1765042818137-CreateModuleTable.js.map +1 -0
  37. package/dist/database/migrations/1765042839363-CreatepermissionTable.d.ts +6 -0
  38. package/dist/database/migrations/1765042839363-CreatepermissionTable.js +74 -0
  39. package/dist/database/migrations/1765042839363-CreatepermissionTable.js.map +1 -0
  40. package/dist/database/migrations/1765042865354-CreateRoleTable.d.ts +6 -0
  41. package/dist/database/migrations/1765042865354-CreateRoleTable.js +60 -0
  42. package/dist/database/migrations/1765042865354-CreateRoleTable.js.map +1 -0
  43. package/dist/database/migrations/1765042888581-CreateUserTable.d.ts +6 -0
  44. package/dist/database/migrations/1765042888581-CreateUserTable.js +58 -0
  45. package/dist/database/migrations/1765042888581-CreateUserTable.js.map +1 -0
  46. package/dist/database/migrations/1765042926793-CreateUserRoleTable.d.ts +6 -0
  47. package/dist/database/migrations/1765042926793-CreateUserRoleTable.js +54 -0
  48. package/dist/database/migrations/1765042926793-CreateUserRoleTable.js.map +1 -0
  49. package/dist/database/migrations/1765042959694-CreateRolePermissionTable.d.ts +6 -0
  50. package/dist/database/migrations/1765042959694-CreateRolePermissionTable.js +45 -0
  51. package/dist/database/migrations/1765042959694-CreateRolePermissionTable.js.map +1 -0
  52. package/dist/database/migrations/1765042980940-CreateUserPermissionTable.d.ts +6 -0
  53. package/dist/database/migrations/1765042980940-CreateUserPermissionTable.js +50 -0
  54. package/dist/database/migrations/1765042980940-CreateUserPermissionTable.js.map +1 -0
  55. package/dist/database/seeders/auth.seeder.d.ts +12 -0
  56. package/dist/database/seeders/auth.seeder.js +338 -0
  57. package/dist/database/seeders/auth.seeder.js.map +1 -0
  58. package/dist/database/seeders/modules.seeder.d.ts +6 -0
  59. package/dist/database/seeders/modules.seeder.js +39 -0
  60. package/dist/database/seeders/modules.seeder.js.map +1 -0
  61. package/dist/database/seeders/orchestrator.seeder.d.ts +6 -0
  62. package/dist/database/seeders/orchestrator.seeder.js +32 -0
  63. package/dist/database/seeders/orchestrator.seeder.js.map +1 -0
  64. package/dist/database/seeders/permissions.seeder.d.ts +6 -0
  65. package/dist/database/seeders/permissions.seeder.js +96 -0
  66. package/dist/database/seeders/permissions.seeder.js.map +1 -0
  67. package/dist/database/seeders/role-permissions.seeder.d.ts +6 -0
  68. package/dist/database/seeders/role-permissions.seeder.js +35 -0
  69. package/dist/database/seeders/role-permissions.seeder.js.map +1 -0
  70. package/dist/database/seeders/roles.seeder.d.ts +6 -0
  71. package/dist/database/seeders/roles.seeder.js +33 -0
  72. package/dist/database/seeders/roles.seeder.js.map +1 -0
  73. package/dist/database/seeders/run.seeder.d.ts +1 -0
  74. package/dist/database/seeders/run.seeder.js +82 -0
  75. package/dist/database/seeders/run.seeder.js.map +1 -0
  76. package/dist/database/seeders/user-roles.seeder.d.ts +6 -0
  77. package/dist/database/seeders/user-roles.seeder.js +41 -0
  78. package/dist/database/seeders/user-roles.seeder.js.map +1 -0
  79. package/dist/database/seeders/users.seeder.d.ts +6 -0
  80. package/dist/database/seeders/users.seeder.js +72 -0
  81. package/dist/database/seeders/users.seeder.js.map +1 -0
  82. package/dist/index.d.ts +72 -5
  83. package/dist/index.js +76 -5
  84. package/dist/index.js.map +1 -1
  85. package/dist/modules/app.module.d.ts +16 -0
  86. package/dist/modules/app.module.js +86 -0
  87. package/dist/modules/app.module.js.map +1 -0
  88. package/dist/modules/auth/auth.controller.d.ts +10 -0
  89. package/dist/modules/auth/auth.controller.js +47 -0
  90. package/dist/modules/auth/auth.controller.js.map +1 -0
  91. package/dist/modules/auth/auth.module-definition.d.ts +2 -0
  92. package/dist/modules/auth/auth.module-definition.js +11 -0
  93. package/dist/modules/auth/auth.module-definition.js.map +1 -0
  94. package/dist/modules/auth/auth.module.d.ts +2 -0
  95. package/dist/modules/auth/auth.module.js +48 -0
  96. package/dist/modules/auth/auth.module.js.map +1 -0
  97. package/dist/modules/auth/auth.options.d.ts +13 -0
  98. package/dist/modules/auth/auth.options.js +3 -0
  99. package/dist/modules/auth/auth.options.js.map +1 -0
  100. package/dist/modules/auth/auth.service.d.ts +15 -0
  101. package/dist/modules/auth/auth.service.js +133 -0
  102. package/dist/modules/auth/auth.service.js.map +1 -0
  103. package/dist/modules/auth/dto/auth-login.dto.d.ts +5 -0
  104. package/dist/modules/auth/dto/auth-login.dto.js +32 -0
  105. package/dist/modules/auth/dto/auth-login.dto.js.map +1 -0
  106. package/dist/modules/auth/dto/register.dto.d.ts +7 -0
  107. package/dist/modules/auth/dto/register.dto.js +46 -0
  108. package/dist/modules/auth/dto/register.dto.js.map +1 -0
  109. package/dist/modules/module/dtos/create-module.dto.d.ts +5 -0
  110. package/dist/modules/module/dtos/create-module.dto.js +14 -0
  111. package/dist/modules/module/dtos/create-module.dto.js.map +1 -0
  112. package/dist/modules/module/dtos/module-query.dto.d.ts +3 -0
  113. package/dist/modules/module/dtos/module-query.dto.js +8 -0
  114. package/dist/modules/module/dtos/module-query.dto.js.map +1 -0
  115. package/dist/modules/module/dtos/module.dto.d.ts +10 -0
  116. package/dist/modules/module/dtos/module.dto.js +84 -0
  117. package/dist/modules/module/dtos/module.dto.js.map +1 -0
  118. package/dist/modules/module/dtos/update-module.dto.d.ts +5 -0
  119. package/dist/modules/module/dtos/update-module.dto.js +14 -0
  120. package/dist/modules/module/dtos/update-module.dto.js.map +1 -0
  121. package/dist/modules/module/module.controller.d.ts +12 -0
  122. package/dist/modules/module/module.controller.js +111 -0
  123. package/dist/modules/module/module.controller.js.map +1 -0
  124. package/dist/modules/module/module.entity.d.ts +10 -0
  125. package/dist/modules/module/module.entity.js +46 -0
  126. package/dist/modules/module/module.entity.js.map +1 -0
  127. package/dist/modules/module/module.mapper.d.ts +5 -0
  128. package/dist/modules/module/module.mapper.js +35 -0
  129. package/dist/modules/module/module.mapper.js.map +1 -0
  130. package/dist/modules/module/module.module.d.ts +2 -0
  131. package/dist/modules/module/module.module.js +27 -0
  132. package/dist/modules/module/module.module.js.map +1 -0
  133. package/dist/modules/module/module.service.d.ts +13 -0
  134. package/dist/modules/module/module.service.js +63 -0
  135. package/dist/modules/module/module.service.js.map +1 -0
  136. package/dist/modules/permission/dtos/create-permission.dto.d.ts +5 -0
  137. package/dist/modules/permission/dtos/create-permission.dto.js +14 -0
  138. package/dist/modules/permission/dtos/create-permission.dto.js.map +1 -0
  139. package/dist/modules/permission/dtos/permission-query.dto.d.ts +3 -0
  140. package/dist/modules/permission/dtos/permission-query.dto.js +8 -0
  141. package/dist/modules/permission/dtos/permission-query.dto.js.map +1 -0
  142. package/dist/modules/permission/dtos/permission.dto.d.ts +9 -0
  143. package/dist/modules/permission/dtos/permission.dto.js +72 -0
  144. package/dist/modules/permission/dtos/permission.dto.js.map +1 -0
  145. package/dist/modules/permission/dtos/update-permission.dto.d.ts +5 -0
  146. package/dist/modules/permission/dtos/update-permission.dto.js +9 -0
  147. package/dist/modules/permission/dtos/update-permission.dto.js.map +1 -0
  148. package/dist/modules/permission/permission.controller.d.ts +11 -0
  149. package/dist/modules/permission/permission.controller.js +109 -0
  150. package/dist/modules/permission/permission.controller.js.map +1 -0
  151. package/dist/modules/permission/permission.entity.d.ts +11 -0
  152. package/dist/modules/permission/permission.entity.js +57 -0
  153. package/dist/modules/permission/permission.entity.js.map +1 -0
  154. package/dist/modules/permission/permission.mapper.d.ts +5 -0
  155. package/dist/modules/permission/permission.mapper.js +32 -0
  156. package/dist/modules/permission/permission.mapper.js.map +1 -0
  157. package/dist/modules/permission/permission.module.d.ts +2 -0
  158. package/dist/modules/permission/permission.module.js +27 -0
  159. package/dist/modules/permission/permission.module.js.map +1 -0
  160. package/dist/modules/permission/permission.service.d.ts +13 -0
  161. package/dist/modules/permission/permission.service.js +60 -0
  162. package/dist/modules/permission/permission.service.js.map +1 -0
  163. package/dist/modules/role/dtos/create-role.dto.d.ts +6 -0
  164. package/dist/modules/role/dtos/create-role.dto.js +15 -0
  165. package/dist/modules/role/dtos/create-role.dto.js.map +1 -0
  166. package/dist/modules/role/dtos/role-query.dto.d.ts +3 -0
  167. package/dist/modules/role/dtos/role-query.dto.js +8 -0
  168. package/dist/modules/role/dtos/role-query.dto.js.map +1 -0
  169. package/dist/modules/role/dtos/role.dto.d.ts +11 -0
  170. package/dist/modules/role/dtos/role.dto.js +82 -0
  171. package/dist/modules/role/dtos/role.dto.js.map +1 -0
  172. package/dist/modules/role/dtos/update-role.dto.d.ts +5 -0
  173. package/dist/modules/role/dtos/update-role.dto.js +9 -0
  174. package/dist/modules/role/dtos/update-role.dto.js.map +1 -0
  175. package/dist/modules/role/role.controller.d.ts +16 -0
  176. package/dist/modules/role/role.controller.js +174 -0
  177. package/dist/modules/role/role.controller.js.map +1 -0
  178. package/dist/modules/role/role.entity.d.ts +11 -0
  179. package/dist/modules/role/role.entity.js +61 -0
  180. package/dist/modules/role/role.entity.js.map +1 -0
  181. package/dist/modules/role/role.mapper.d.ts +9 -0
  182. package/dist/modules/role/role.mapper.js +74 -0
  183. package/dist/modules/role/role.mapper.js.map +1 -0
  184. package/dist/modules/role/role.module.d.ts +2 -0
  185. package/dist/modules/role/role.module.js +27 -0
  186. package/dist/modules/role/role.module.js.map +1 -0
  187. package/dist/modules/role/role.service.d.ts +13 -0
  188. package/dist/modules/role/role.service.js +63 -0
  189. package/dist/modules/role/role.service.js.map +1 -0
  190. package/dist/modules/role-permission/dtos/create-role-permission.dto.d.ts +5 -0
  191. package/dist/modules/role-permission/dtos/create-role-permission.dto.js +14 -0
  192. package/dist/modules/role-permission/dtos/create-role-permission.dto.js.map +1 -0
  193. package/dist/modules/role-permission/dtos/role-permission-query.dto.d.ts +3 -0
  194. package/dist/modules/role-permission/dtos/role-permission-query.dto.js +8 -0
  195. package/dist/modules/role-permission/dtos/role-permission-query.dto.js.map +1 -0
  196. package/dist/modules/role-permission/dtos/role-permission.dto.d.ts +7 -0
  197. package/dist/modules/role-permission/dtos/role-permission.dto.js +28 -0
  198. package/dist/modules/role-permission/dtos/role-permission.dto.js.map +1 -0
  199. package/dist/modules/role-permission/dtos/update-role-permission.dto.d.ts +5 -0
  200. package/dist/modules/role-permission/dtos/update-role-permission.dto.js +9 -0
  201. package/dist/modules/role-permission/dtos/update-role-permission.dto.js.map +1 -0
  202. package/dist/modules/role-permission/role-permission.controller.d.ts +2 -0
  203. package/dist/modules/role-permission/role-permission.controller.js +17 -0
  204. package/dist/modules/role-permission/role-permission.controller.js.map +1 -0
  205. package/dist/modules/role-permission/role-permission.entity.d.ts +7 -0
  206. package/dist/modules/role-permission/role-permission.entity.js +33 -0
  207. package/dist/modules/role-permission/role-permission.entity.js.map +1 -0
  208. package/dist/modules/role-permission/role-permission.mapper.d.ts +10 -0
  209. package/dist/modules/role-permission/role-permission.mapper.js +47 -0
  210. package/dist/modules/role-permission/role-permission.mapper.js.map +1 -0
  211. package/dist/modules/role-permission/role-permission.module.d.ts +2 -0
  212. package/dist/modules/role-permission/role-permission.module.js +29 -0
  213. package/dist/modules/role-permission/role-permission.module.js.map +1 -0
  214. package/dist/modules/role-permission/role-permission.service.d.ts +13 -0
  215. package/dist/modules/role-permission/role-permission.service.js +60 -0
  216. package/dist/modules/role-permission/role-permission.service.js.map +1 -0
  217. package/dist/modules/user/dtos/create-user.dto.d.ts +6 -0
  218. package/dist/modules/user/dtos/create-user.dto.js +15 -0
  219. package/dist/modules/user/dtos/create-user.dto.js.map +1 -0
  220. package/dist/modules/user/dtos/update-user.dto.js.map +1 -0
  221. package/dist/modules/user/dtos/user-query.dto.d.ts +3 -0
  222. package/dist/{user → modules/user}/dtos/user-query.dto.js +1 -1
  223. package/dist/modules/user/dtos/user-query.dto.js.map +1 -0
  224. package/dist/modules/user/dtos/user.dto.d.ts +13 -0
  225. package/dist/{user → modules/user}/dtos/user.dto.js +1 -12
  226. package/dist/modules/user/dtos/user.dto.js.map +1 -0
  227. package/dist/modules/user/user.controller.d.ts +18 -0
  228. package/dist/{user → modules/user}/user.controller.js +62 -29
  229. package/dist/modules/user/user.controller.js.map +1 -0
  230. package/dist/{user → modules/user}/user.entity.d.ts +4 -3
  231. package/dist/{user → modules/user}/user.entity.js +17 -6
  232. package/dist/modules/user/user.entity.js.map +1 -0
  233. package/dist/{user → modules/user}/user.mapper.d.ts +6 -2
  234. package/dist/modules/user/user.mapper.js +126 -0
  235. package/dist/modules/user/user.mapper.js.map +1 -0
  236. package/dist/modules/user/user.module-definition.d.ts +5 -0
  237. package/dist/modules/user/user.module-definition.js +9 -0
  238. package/dist/modules/user/user.module-definition.js.map +1 -0
  239. package/dist/modules/user/user.module.d.ts +2 -0
  240. package/dist/{user → modules/user}/user.module.js +10 -14
  241. package/dist/modules/user/user.module.js.map +1 -0
  242. package/dist/{user → modules/user}/user.service.d.ts +4 -4
  243. package/dist/{user → modules/user}/user.service.js +8 -8
  244. package/dist/modules/user/user.service.js.map +1 -0
  245. package/dist/modules/user-permission/dtos/create-user-permission.dto.d.ts +5 -0
  246. package/dist/modules/user-permission/dtos/create-user-permission.dto.js +14 -0
  247. package/dist/modules/user-permission/dtos/create-user-permission.dto.js.map +1 -0
  248. package/dist/modules/user-permission/dtos/update-user-permission.dto.d.ts +5 -0
  249. package/dist/modules/user-permission/dtos/update-user-permission.dto.js +9 -0
  250. package/dist/modules/user-permission/dtos/update-user-permission.dto.js.map +1 -0
  251. package/dist/modules/user-permission/dtos/user-permission-query.dto.d.ts +3 -0
  252. package/dist/modules/user-permission/dtos/user-permission-query.dto.js +8 -0
  253. package/dist/modules/user-permission/dtos/user-permission-query.dto.js.map +1 -0
  254. package/dist/modules/user-permission/dtos/user-permission.dto.d.ts +8 -0
  255. package/dist/modules/user-permission/dtos/user-permission.dto.js +36 -0
  256. package/dist/modules/user-permission/dtos/user-permission.dto.js.map +1 -0
  257. package/dist/modules/user-permission/user-permission.controller.d.ts +2 -0
  258. package/dist/modules/user-permission/user-permission.controller.js +17 -0
  259. package/dist/modules/user-permission/user-permission.controller.js.map +1 -0
  260. package/dist/modules/user-permission/user-permission.entity.d.ts +8 -0
  261. package/dist/modules/user-permission/user-permission.entity.js +41 -0
  262. package/dist/modules/user-permission/user-permission.entity.js.map +1 -0
  263. package/dist/modules/user-permission/user-permission.mapper.d.ts +10 -0
  264. package/dist/modules/user-permission/user-permission.mapper.js +51 -0
  265. package/dist/modules/user-permission/user-permission.mapper.js.map +1 -0
  266. package/dist/modules/user-permission/user-permission.module.d.ts +2 -0
  267. package/dist/modules/user-permission/user-permission.module.js +29 -0
  268. package/dist/modules/user-permission/user-permission.module.js.map +1 -0
  269. package/dist/modules/user-permission/user-permission.service.d.ts +13 -0
  270. package/dist/modules/user-permission/user-permission.service.js +60 -0
  271. package/dist/modules/user-permission/user-permission.service.js.map +1 -0
  272. package/dist/modules/user-role/dtos/create-user-role.dto.d.ts +5 -0
  273. package/dist/modules/user-role/dtos/create-user-role.dto.js +14 -0
  274. package/dist/modules/user-role/dtos/create-user-role.dto.js.map +1 -0
  275. package/dist/modules/user-role/dtos/update-user-role.dto.d.ts +5 -0
  276. package/dist/modules/user-role/dtos/update-user-role.dto.js +9 -0
  277. package/dist/modules/user-role/dtos/update-user-role.dto.js.map +1 -0
  278. package/dist/modules/user-role/dtos/user-role-query.dto.d.ts +3 -0
  279. package/dist/modules/user-role/dtos/user-role-query.dto.js +8 -0
  280. package/dist/modules/user-role/dtos/user-role-query.dto.js.map +1 -0
  281. package/dist/modules/user-role/dtos/user-role.dto.d.ts +7 -0
  282. package/dist/{security/security.service.js → modules/user-role/dtos/user-role.dto.js} +17 -20
  283. package/dist/modules/user-role/dtos/user-role.dto.js.map +1 -0
  284. package/dist/modules/user-role/user-role.controller.d.ts +0 -0
  285. package/dist/modules/user-role/user-role.controller.js +2 -0
  286. package/dist/modules/user-role/user-role.controller.js.map +1 -0
  287. package/dist/modules/user-role/user-role.entity.d.ts +0 -0
  288. package/dist/modules/user-role/user-role.entity.js +2 -0
  289. package/dist/modules/user-role/user-role.entity.js.map +1 -0
  290. package/dist/modules/user-role/user-role.mapper.d.ts +0 -0
  291. package/dist/modules/user-role/user-role.mapper.js +2 -0
  292. package/dist/modules/user-role/user-role.mapper.js.map +1 -0
  293. package/dist/modules/user-role/user-role.module.d.ts +0 -0
  294. package/dist/modules/user-role/user-role.module.js +2 -0
  295. package/dist/modules/user-role/user-role.module.js.map +1 -0
  296. package/dist/modules/user-role/user-role.service.d.ts +0 -0
  297. package/dist/modules/user-role/user-role.service.js +2 -0
  298. package/dist/modules/user-role/user-role.service.js.map +1 -0
  299. package/dist/scripts/run-migrations.d.ts +1 -0
  300. package/dist/scripts/run-migrations.js +60 -0
  301. package/dist/scripts/run-migrations.js.map +1 -0
  302. package/dist/security/decorators/auth-user.decorator.d.ts +1 -1
  303. package/dist/security/decorators/auth-user.decorator.js +3 -3
  304. package/dist/security/decorators/auth-user.decorator.js.map +1 -1
  305. package/dist/security/decorators/permissions.decorator.d.ts +2 -0
  306. package/dist/security/decorators/permissions.decorator.js +7 -0
  307. package/dist/security/decorators/permissions.decorator.js.map +1 -0
  308. package/dist/security/decorators/roles.decorator.d.ts +2 -1
  309. package/dist/security/decorators/roles.decorator.js +1 -1
  310. package/dist/security/decorators/roles.decorator.js.map +1 -1
  311. package/dist/security/guards/jwt-auth.guard.d.ts +5 -2
  312. package/dist/security/guards/jwt-auth.guard.js +12 -5
  313. package/dist/security/guards/jwt-auth.guard.js.map +1 -1
  314. package/dist/security/guards/roles.guard.d.ts +7 -5
  315. package/dist/security/guards/roles.guard.js +33 -9
  316. package/dist/security/guards/roles.guard.js.map +1 -1
  317. package/dist/security/interfaces/jwt-payload.interface.d.ts +14 -0
  318. package/dist/security/interfaces/jwt-payload.interface.js +3 -0
  319. package/dist/security/interfaces/jwt-payload.interface.js.map +1 -0
  320. package/dist/security/interfaces/token.interface.d.ts +3 -0
  321. package/dist/security/interfaces/token.interface.js +3 -0
  322. package/dist/security/interfaces/token.interface.js.map +1 -0
  323. package/dist/security/password-util.d.ts +3 -0
  324. package/dist/security/password-util.js +44 -0
  325. package/dist/security/password-util.js.map +1 -0
  326. package/dist/security/strategies/jwt.strategy.d.ts +14 -3
  327. package/dist/security/strategies/jwt.strategy.js +28 -13
  328. package/dist/security/strategies/jwt.strategy.js.map +1 -1
  329. package/dist/seeders/auth.seeder.d.ts +12 -0
  330. package/dist/seeders/auth.seeder.js +404 -0
  331. package/dist/seeders/auth.seeder.js.map +1 -0
  332. package/dist/seeders/modules.seeder.d.ts +6 -0
  333. package/dist/seeders/modules.seeder.js +53 -0
  334. package/dist/seeders/modules.seeder.js.map +1 -0
  335. package/dist/seeders/orchestrator.seeder.d.ts +6 -0
  336. package/dist/seeders/orchestrator.seeder.js +32 -0
  337. package/dist/seeders/orchestrator.seeder.js.map +1 -0
  338. package/dist/seeders/permissions.seeder.d.ts +6 -0
  339. package/dist/seeders/permissions.seeder.js +51 -0
  340. package/dist/seeders/permissions.seeder.js.map +1 -0
  341. package/dist/seeders/role-permissions.seeder.d.ts +6 -0
  342. package/dist/seeders/role-permissions.seeder.js +65 -0
  343. package/dist/seeders/role-permissions.seeder.js.map +1 -0
  344. package/dist/seeders/roles.seeder.d.ts +6 -0
  345. package/dist/seeders/roles.seeder.js +57 -0
  346. package/dist/seeders/roles.seeder.js.map +1 -0
  347. package/dist/seeders/run.seeder.d.ts +1 -0
  348. package/dist/seeders/run.seeder.js +82 -0
  349. package/dist/seeders/run.seeder.js.map +1 -0
  350. package/dist/seeders/user/data.d.ts +2 -0
  351. package/dist/seeders/user/data.js +16 -0
  352. package/dist/seeders/user/data.js.map +1 -0
  353. package/dist/seeders/user/user-seeder.module.d.ts +2 -0
  354. package/dist/seeders/user/user-seeder.module.js +24 -0
  355. package/dist/seeders/user/user-seeder.module.js.map +1 -0
  356. package/dist/seeders/user/user-seeder.service.d.ts +7 -0
  357. package/dist/seeders/user/user-seeder.service.js +51 -0
  358. package/dist/seeders/user/user-seeder.service.js.map +1 -0
  359. package/dist/seeders/user-roles.seeder.d.ts +6 -0
  360. package/dist/seeders/user-roles.seeder.js +44 -0
  361. package/dist/seeders/user-roles.seeder.js.map +1 -0
  362. package/dist/seeders/users.seeder.d.ts +6 -0
  363. package/dist/seeders/users.seeder.js +93 -0
  364. package/dist/seeders/users.seeder.js.map +1 -0
  365. package/dist/tenant-db/config/tenant-db.config.d.ts +4 -0
  366. package/dist/tenant-db/config/tenant-db.config.js +18 -0
  367. package/dist/tenant-db/config/tenant-db.config.js.map +1 -0
  368. package/dist/tenant-db/context/tenant-db.context.d.ts +11 -0
  369. package/dist/tenant-db/context/tenant-db.context.js +46 -0
  370. package/dist/tenant-db/context/tenant-db.context.js.map +1 -0
  371. package/dist/tenant-db/helpers/tenant-db.helpers.d.ts +13 -0
  372. package/dist/tenant-db/helpers/tenant-db.helpers.js +42 -0
  373. package/dist/tenant-db/helpers/tenant-db.helpers.js.map +1 -0
  374. package/dist/tenant-db/manager/tenant-db.manager.d.ts +20 -0
  375. package/dist/tenant-db/manager/tenant-db.manager.js +135 -0
  376. package/dist/tenant-db/manager/tenant-db.manager.js.map +1 -0
  377. package/dist/tenant-db/middleware/tenant-db.middleware.d.ts +13 -0
  378. package/dist/tenant-db/middleware/tenant-db.middleware.js +46 -0
  379. package/dist/tenant-db/middleware/tenant-db.middleware.js.map +1 -0
  380. package/dist/tenant-db/module/tenant=db-module.d.ts +10 -0
  381. package/dist/tenant-db/module/tenant=db-module.js +53 -0
  382. package/dist/tenant-db/module/tenant=db-module.js.map +1 -0
  383. package/dist/tenant-db/resolvers/tenant.resolver.d.ts +9 -0
  384. package/dist/tenant-db/resolvers/tenant.resolver.js +42 -0
  385. package/dist/tenant-db/resolvers/tenant.resolver.js.map +1 -0
  386. package/dist/tenant-db/service/tenant-db.service.d.ts +14 -0
  387. package/dist/tenant-db/service/tenant-db.service.js +62 -0
  388. package/dist/tenant-db/service/tenant-db.service.js.map +1 -0
  389. package/dist/tenant-db/tenant-cache.d.ts +10 -0
  390. package/dist/tenant-db/tenant-cache.js +17 -0
  391. package/dist/tenant-db/tenant-cache.js.map +1 -0
  392. package/dist/tenant-db/types/tenant-db.types.d.ts +29 -0
  393. package/dist/tenant-db/types/tenant-db.types.js +3 -0
  394. package/dist/tenant-db/types/tenant-db.types.js.map +1 -0
  395. package/dist/tsconfig.tsbuildinfo +1 -1
  396. package/package.json +18 -10
  397. package/dist/security/security.module.d.ts +0 -7
  398. package/dist/security/security.module.js +0 -43
  399. package/dist/security/security.module.js.map +0 -1
  400. package/dist/security/security.service.d.ts +0 -7
  401. package/dist/security/security.service.js.map +0 -1
  402. package/dist/user/dtos/create-user.dto.d.ts +0 -5
  403. package/dist/user/dtos/create-user.dto.js +0 -7
  404. package/dist/user/dtos/create-user.dto.js.map +0 -1
  405. package/dist/user/dtos/update-user.dto.js.map +0 -1
  406. package/dist/user/dtos/user-query.dto.d.ts +0 -3
  407. package/dist/user/dtos/user-query.dto.js.map +0 -1
  408. package/dist/user/dtos/user.dto.d.ts +0 -11
  409. package/dist/user/dtos/user.dto.js.map +0 -1
  410. package/dist/user/user.controller.d.ts +0 -16
  411. package/dist/user/user.controller.js.map +0 -1
  412. package/dist/user/user.entity.js.map +0 -1
  413. package/dist/user/user.mapper.js +0 -32
  414. package/dist/user/user.mapper.js.map +0 -1
  415. package/dist/user/user.module.d.ts +0 -4
  416. package/dist/user/user.module.js.map +0 -1
  417. package/dist/user/user.service.js.map +0 -1
  418. /package/dist/{user → modules/user}/dtos/update-user.dto.d.ts +0 -0
  419. /package/dist/{user → modules/user}/dtos/update-user.dto.js +0 -0
package/README.md CHANGED
@@ -1,46 +1,364 @@
1
- # NestJS Authorization Guards (Roles + Permissions)
1
+ # @evara-group/guard - Authentication & Authorization Package
2
2
 
3
- A reusable and extensible **role + permission-based access control** system for NestJS applications.
3
+ A reusable **authentication and authorization** package for NestJS applications with isolated database support. This package provides a complete auth system with its own dedicated database connection, allowing you to reuse authentication across multiple applications while each application maintains its own separate database.
4
4
 
5
5
  ---
6
6
 
7
7
  ## 🚀 Features
8
8
 
9
- - ✅ Role-based access control (`UserRole`)
10
- - ✅ Permission-based access control (`Permission`)
11
- - ✅ Unified `@Roles()` decorator to handle both
12
- - ✅ Built-in `AuthUser` decorator for easy access to authenticated user
13
- - ✅ JWT-compatible `AuthGuard` via Passport strategy
14
- - ✅ Plug-and-play with DTOs and enums
9
+ - ✅ **Isolated Database Connection** - Dedicated auth database that doesn't conflict with your app's database
10
+ - ✅ **Role-based access control** (`UserRole`)
11
+ - ✅ **JWT-based authentication** with configurable expiration
12
+ - ✅ **Built-in `AuthGuard`** for route protection
13
+ - ✅ **Built-in `RolesGuard`** for role-based authorization
14
+ - ✅ **`@Roles()` decorator** for easy role checking
15
+ - ✅ **`@AuthUser()` decorator** for easy access to authenticated user
16
+ - ✅ **Complete user management** (CRUD operations)
17
+ - ✅ **Password hashing** with bcrypt
18
+ - ✅ **Type-safe** with TypeScript and DTOs
15
19
 
16
20
  ---
17
21
 
18
- ## 📦 Files Overview
22
+ ## 📦 Installation
19
23
 
20
- | File | Purpose |
21
- |-------------------------------|-----------------------------------------|
22
- | `roles.guard.ts` | Guard that checks roles & permissions |
23
- | `roles.decorator.ts` | `@Roles()` decorator |
24
- | `auth.guard.ts` | JWT-based authentication guard |
25
- | `auth-user.decorator.ts` | Custom param decorator for user access |
26
- | `user-role.enum.ts` | Enum defining system roles |
27
- | `permission.enum.ts` | Enum defining permission constants |
28
- | `user.dto.ts` | DTO representing user payload structure |
24
+ ```bash
25
+ npm install @evara-group/guard
26
+ # or
27
+ pnpm add @evara-group/guard
28
+ # or
29
+ yarn add @evara-group/guard
30
+ ```
29
31
 
30
32
  ---
31
33
 
32
- ## 🧑‍🏫 How It Works
34
+ ## 🏗️ Architecture
33
35
 
34
- ### Roles + Permissions Enum
36
+ This package uses a **named TypeORM connection** (`AUTH_DATABASE_CONNECTION`) to ensure complete isolation from your application's database. This means:
35
37
 
36
- ```ts
37
- export enum UserRole {
38
- Admin = 'admin',
39
- Manager = 'manager',
40
- User = 'user',
38
+ - ✅ Your app can have its own database connection
39
+ - The auth package uses a separate, dedicated database for users
40
+ - No conflicts between connections
41
+ - Easy to reuse across multiple applications
42
+
43
+ ### Module Structure
44
+
45
+ The package follows the same architecture pattern as dms-new-backend-nestjs:
46
+
47
+ 1. **`AuthorizationGuardModule`** - Unified entry point that:
48
+ - Configures TypeORM connection for the auth database (named connection)
49
+ - Loads `UserModule` (simple module for user management)
50
+ - Loads `AuthModule` (simple module for authentication)
51
+
52
+ 2. **`UserModule`** - Simple module that:
53
+ - Uses `TypeOrmModule.forFeature([User], AUTH_DATABASE_CONNECTION)`
54
+ - Provides `UserService` for CRUD operations
55
+ - Exports `UserService` and `TypeOrmModule`
56
+
57
+ 3. **`AuthModule`** - Simple module that:
58
+ - Imports `UserModule` directly
59
+ - Configures JWT using `JwtModule.registerAsync()` with `ConfigService`
60
+ - Provides `AuthService` and `JwtStrategy`
61
+ - Exports `AuthService`
62
+
63
+ This architecture ensures:
64
+
65
+ - ✅ Clear separation of concerns
66
+ - ✅ Proper dependency resolution
67
+ - ✅ Simple, maintainable code structure
68
+ - ✅ Follows NestJS best practices
69
+
70
+ ---
71
+
72
+ ## 📖 Usage
73
+
74
+ ### 1. Basic Setup
75
+
76
+ In your `app.module.ts`:
77
+
78
+ ```typescript
79
+ import { Module } from "@nestjs/common";
80
+ import { ConfigModule } from "@nestjs/config";
81
+ import { TypeOrmModule } from "@nestjs/typeorm";
82
+ import { AuthorizationGuardModule } from "@evara-group/guard";
83
+
84
+ @Module({
85
+ imports: [
86
+ // Global configuration
87
+ ConfigModule.forRoot({
88
+ isGlobal: true,
89
+ envFilePath: [".env"],
90
+ }),
91
+
92
+ // Your application database connection (for business entities)
93
+ TypeOrmModule.forRootAsync({
94
+ // Your app database configuration
95
+ // ...
96
+ }),
97
+
98
+ // Authorization Guard Module - Unified module that configures auth database and loads UserModule & AuthModule
99
+ AuthorizationGuardModule.forRoot({
100
+ database: {
101
+ name: process.env.AUTH_DATABASE_NAME || "auth_db",
102
+ host: process.env.AUTH_DATABASE_HOST || "localhost",
103
+ port: Number(process.env.AUTH_DATABASE_PORT || "5432"),
104
+ user: process.env.AUTH_DATABASE_USER || "postgres",
105
+ password: process.env.AUTH_DATABASE_PASSWORD || "postgres",
106
+ ssl: process.env.AUTH_DATABASE_SSL === "true" || false,
107
+ },
108
+ jwtSecret: process.env.JWT_SECRET || "your-secret-key",
109
+ expiresIn: "7d", // Optional, defaults to '7d'
110
+ }),
111
+
112
+ // Your other modules...
113
+ ],
114
+ })
115
+ export class AppModule {}
116
+ ```
117
+
118
+ ### 2. Environment Variables
119
+
120
+ Create a `.env` file:
121
+
122
+ ```env
123
+ # Auth Database Configuration
124
+ AUTH_DATABASE_NAME=auth_db
125
+ AUTH_DATABASE_HOST=localhost
126
+ AUTH_DATABASE_PORT=5432
127
+ AUTH_DATABASE_USER=postgres
128
+ AUTH_DATABASE_PASSWORD=postgres
129
+ AUTH_DATABASE_SSL=false
130
+
131
+ # JWT Configuration
132
+ JWT_SECRET=your-super-secret-jwt-key-change-this-in-production
133
+ ```
134
+
135
+ ### 3. Protecting Routes
136
+
137
+ ```typescript
138
+ import { Controller, Get } from "@nestjs/common";
139
+ import { AuthGuard, RolesGuard, Roles, AuthUser } from "@evara-group/guard";
140
+ import { UseGuards } from "@nestjs/common";
141
+ import { UserDTO } from "@evara-group/guard";
142
+
143
+ @Controller("protected")
144
+ @UseGuards(AuthGuard, RolesGuard)
145
+ export class ProtectedController {
146
+ @Get("profile")
147
+ @Roles("user", "admin") // Allow both user and admin roles
148
+ getProfile(@AuthUser() user: UserDTO) {
149
+ return {
150
+ message: `Hello ${user.email}`,
151
+ user: user,
152
+ };
153
+ }
154
+
155
+ @Get("admin-only")
156
+ @Roles("admin") // Only admin can access
157
+ adminOnly() {
158
+ return { message: "Admin area" };
159
+ }
41
160
  }
161
+ ```
162
+
163
+ ### 4. Using Auth Service
42
164
 
43
- export enum Permission {
44
- ReadScenarios = 'scenarios:read',
45
- EditScenarios = 'scenarios:edit',
165
+ ```typescript
166
+ import { Injectable } from "@nestjs/common";
167
+ import { AuthService } from "@evara-group/guard";
168
+
169
+ @Injectable()
170
+ export class MyService {
171
+ constructor(private readonly authService: AuthService) {}
172
+
173
+ async login(email: string, password: string) {
174
+ return this.authService.login({ email, password });
175
+ }
46
176
  }
177
+ ```
178
+
179
+ ### 5. Using User Service
180
+
181
+ ```typescript
182
+ import { Injectable } from "@nestjs/common";
183
+ import { UserService } from "@evara-group/guard";
184
+
185
+ @Injectable()
186
+ export class MyService {
187
+ constructor(private readonly userService: UserService) {}
188
+
189
+ async getUserById(id: number) {
190
+ return this.userService.findById(id);
191
+ }
192
+
193
+ async createUser(userData: CreateUserDTO) {
194
+ return this.userService.save(userData);
195
+ }
196
+ }
197
+ ```
198
+
199
+ ---
200
+
201
+ ## 🔐 Database Setup
202
+
203
+ ### Create the Auth Database
204
+
205
+ The package requires a separate PostgreSQL database for authentication. Create it:
206
+
207
+ ```sql
208
+ CREATE DATABASE auth_db;
209
+ ```
210
+
211
+ ### Run Migrations
212
+
213
+ The package uses TypeORM entities. You'll need to:
214
+
215
+ 1. **Option 1: Use TypeORM migrations** (recommended)
216
+ - Generate migration from the `User` entity
217
+ - Run migrations on your auth database
218
+
219
+ 2. **Option 2: Use synchronize** (development only)
220
+ - Modify `AuthorizationGuardModule.forRoot()` to set `synchronize: true` in the TypeORM config (NOT recommended for production)
221
+
222
+ ### User Entity Schema
223
+
224
+ The package includes a `User` entity with the following fields:
225
+
226
+ - `id` - Primary key
227
+ - `email` - Unique email address
228
+ - `password` - Hashed password
229
+ - `username` - Optional username
230
+ - `activated` - Account activation status
231
+ - `imageUrl` - Optional profile image URL
232
+ - `role` - User role (enum: UserRole)
233
+ - `resetPasswordRequest` - Password reset flag
234
+ - `createdAt`, `updatedAt`, `deletedAt` - Timestamps
235
+ - `createdBy`, `updatedBy`, `deletedBy` - Audit fields
236
+
237
+ ---
238
+
239
+ ## 🎯 API Reference
240
+
241
+ ### AuthorizationGuardModule
242
+
243
+ #### `AuthorizationGuardModule.forRoot(options: GuardModuleOptions)`
244
+
245
+ Unified module that configures the TypeORM connection for the auth database and loads both `UserModule` and `AuthModule`. This is the recommended way to use the package.
246
+
247
+ **Options:**
248
+
249
+ - `database` - Database configuration object
250
+ - `name` - Database name
251
+ - `host` - Database host
252
+ - `port` - Database port (number)
253
+ - `user` - Database user
254
+ - `password` - Database password
255
+ - `ssl` - Enable SSL (optional, boolean)
256
+ - `jwtSecret` - JWT secret key (required)
257
+ - `expiresIn` - Token expiration time (optional, default: '7d')
258
+
259
+ **Architecture:**
260
+
261
+ The module follows the same pattern as dms-new-backend-nestjs:
262
+
263
+ 1. Configures TypeORM connection first (with named connection `AUTH_DATABASE_CONNECTION`)
264
+ 2. Loads `UserModule` (simple module that uses the configured TypeORM connection)
265
+ 3. Loads `AuthModule` (simple module that imports `UserModule` and configures JWT)
266
+
267
+ This ensures proper dependency resolution and follows NestJS best practices.
268
+
269
+ ### Guards
270
+
271
+ #### `AuthGuard`
272
+
273
+ Protects routes requiring authentication. Validates JWT tokens.
274
+
275
+ #### `RolesGuard`
276
+
277
+ Checks user roles against route requirements. Must be used with `@Roles()` decorator.
278
+
279
+ ### Decorators
280
+
281
+ #### `@Roles(...roles: string[])`
282
+
283
+ Specifies which roles can access a route.
284
+
285
+ #### `@AuthUser()`
286
+
287
+ Extracts the authenticated user from the request.
288
+
289
+ ### Services
290
+
291
+ #### `AuthService`
292
+
293
+ - `login(dto: AuthLoginDTO)` - Authenticate user and return JWT token
294
+ - `validateUser(payload: JwtPayload)` - Validate user from JWT payload
295
+
296
+ #### `UserService`
297
+
298
+ - `findById(id: number)` - Find user by ID
299
+ - `findByFields(options)` - Find user by custom criteria
300
+ - `save(userDTO, creator?, updatePassword?)` - Create or update user
301
+ - `update(userDTO, updater?)` - Update user
302
+ - `delete(userDTO)` - Delete user
303
+ - `findAndCount(options)` - Find users with pagination
304
+
305
+ ---
306
+
307
+ ## 🔄 Multiple Applications Setup
308
+
309
+ This package is designed to be reused across multiple applications. Each application can:
310
+
311
+ 1. **Share the same auth database** - All apps authenticate against the same user database
312
+ 2. **Have separate application databases** - Each app has its own business data
313
+
314
+ Example setup:
315
+
316
+ ```
317
+ Application A (E-commerce)
318
+ ├── Auth Database (shared) ← Users from @evara-group/guard
319
+ └── App Database A ← Products, Orders, etc.
320
+
321
+ Application B (CMS)
322
+ ├── Auth Database (shared) ← Users from @evara-group/guard
323
+ └── App Database B ← Articles, Pages, etc.
324
+ ```
325
+
326
+ Both applications use the same `AuthorizationGuardModule.forRoot()` configuration pointing to the same auth database, but each has its own application database.
327
+
328
+ ---
329
+
330
+ ## 🛠️ Development
331
+
332
+ ### Building the Package
333
+
334
+ ```bash
335
+ pnpm build
336
+ ```
337
+
338
+ ### Running Tests
339
+
340
+ ```bash
341
+ pnpm test
342
+ ```
343
+
344
+ ---
345
+
346
+ ## 📝 Notes
347
+
348
+ - The package uses a **named TypeORM connection** (`AUTH_DATABASE_CONNECTION`) to avoid conflicts
349
+ - Never set `synchronize: true` in production
350
+ - Always use strong JWT secrets in production
351
+ - The auth database is completely isolated from your application database
352
+ - All password operations use bcrypt for security
353
+
354
+ ---
355
+
356
+ ## 📄 License
357
+
358
+ ISC
359
+
360
+ ---
361
+
362
+ ## 👤 Author
363
+
364
+ abdullah anter
@@ -0,0 +1,2 @@
1
+ export declare const JWT_SECRET = "JWT_SECRET_TOKEN";
2
+ export declare const AUTH_DATABASE_CONNECTION = "AUTH_DATABASE_CONNECTION";
package/dist/common.js ADDED
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AUTH_DATABASE_CONNECTION = exports.JWT_SECRET = void 0;
4
+ exports.JWT_SECRET = "JWT_SECRET_TOKEN";
5
+ exports.AUTH_DATABASE_CONNECTION = "AUTH_DATABASE_CONNECTION";
6
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":";;;AAIa,QAAA,UAAU,GAAG,kBAAkB,CAAC;AAMhC,QAAA,wBAAwB,GAAG,0BAA0B,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { DataSource } from "typeorm";
2
+ export declare class DatabaseService {
3
+ private readonly dataSource;
4
+ constructor(dataSource: DataSource);
5
+ listDatabases(): Promise<any[]>;
6
+ }
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.DatabaseService = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const typeorm_1 = require("@nestjs/typeorm");
18
+ const typeorm_2 = require("typeorm");
19
+ let DatabaseService = class DatabaseService {
20
+ constructor(dataSource) {
21
+ this.dataSource = dataSource;
22
+ }
23
+ async listDatabases() {
24
+ const query = this.dataSource
25
+ .createQueryBuilder()
26
+ .select("datname", "database_name")
27
+ .from("pg_database", "pg_database")
28
+ .where("datistemplate = :isTemplate", { isTemplate: false })
29
+ .orderBy("datname", "ASC");
30
+ return await query.getRawMany();
31
+ }
32
+ };
33
+ exports.DatabaseService = DatabaseService;
34
+ exports.DatabaseService = DatabaseService = __decorate([
35
+ (0, common_1.Injectable)(),
36
+ __param(0, (0, typeorm_1.InjectDataSource)()),
37
+ __metadata("design:paramtypes", [typeorm_2.DataSource])
38
+ ], DatabaseService);
39
+ //# sourceMappingURL=switch.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch.schema.js","sourceRoot":"","sources":["../../../src/core/database/switch.schema.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAmD;AACnD,qCAAqC;AAG9B,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,YAAiD,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAE3E,KAAK,CAAC,aAAa;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU;aAC1B,kBAAkB,EAAE;aACpB,MAAM,CAAC,SAAS,EAAE,eAAe,CAAC;aAClC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC;aAClC,KAAK,CAAC,6BAA6B,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;aAC3D,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAE7B,OAAO,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;IAClC,CAAC;CACF,CAAA;AAbY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;IAEE,WAAA,IAAA,0BAAgB,GAAE,CAAA;qCAA8B,oBAAU;GAD5D,eAAe,CAa3B"}
@@ -0,0 +1,32 @@
1
+ export declare enum UserPermissionEnum {
2
+ AUTH_USER_LIST = "AUTH_USER_LIST",
3
+ AUTH_USER_CREATE = "AUTH_USER_CREATE",
4
+ AUTH_USER_READ = "AUTH_USER_READ",
5
+ AUTH_USER_UPDATE = "AUTH_USER_UPDATE",
6
+ AUTH_USER_DELETE = "AUTH_USER_DELETE",
7
+ AUTH_ROLE_LIST = "AUTH_ROLE_LIST",
8
+ AUTH_ROLE_CREATE = "AUTH_ROLE_CREATE",
9
+ AUTH_ROLE_READ = "AUTH_ROLE_READ",
10
+ AUTH_ROLE_UPDATE = "AUTH_ROLE_UPDATE",
11
+ AUTH_ROLE_DELETE = "AUTH_ROLE_DELETE",
12
+ AUTH_PERMISSION_LIST = "AUTH_PERMISSION_LIST",
13
+ AUTH_PERMISSION_CREATE = "AUTH_PERMISSION_CREATE",
14
+ AUTH_PERMISSION_READ = "AUTH_PERMISSION_READ",
15
+ AUTH_PERMISSION_UPDATE = "AUTH_PERMISSION_UPDATE",
16
+ AUTH_PERMISSION_DELETE = "AUTH_PERMISSION_DELETE",
17
+ ORGANIZATION_SETTINGS_MINISTRIES_LIST = "ORGANIZATION_SETTINGS_MINISTRIES_LIST",
18
+ ORGANIZATION_SETTINGS_MINISTRIES_CREATE = "ORGANIZATION_SETTINGS_MINISTRIES_CREATE",
19
+ ORGANIZATION_SETTINGS_MINISTRIES_READ = "ORGANIZATION_SETTINGS_MINISTRIES_READ",
20
+ ORGANIZATION_SETTINGS_MINISTRIES_UPDATE = "ORGANIZATION_SETTINGS_MINISTRIES_UPDATE",
21
+ ORGANIZATION_SETTINGS_MINISTRIES_DELETE = "ORGANIZATION_SETTINGS_MINISTRIES_DELETE",
22
+ ORGANIZATION_SETTINGS_DEPARTMENTS_LIST = "ORGANIZATION_SETTINGS_DEPARTMENTS_LIST",
23
+ ORGANIZATION_SETTINGS_DEPARTMENTS_CREATE = "ORGANIZATION_SETTINGS_DEPARTMENTS_CREATE",
24
+ ORGANIZATION_SETTINGS_DEPARTMENTS_READ = "ORGANIZATION_SETTINGS_DEPARTMENTS_READ",
25
+ ORGANIZATION_SETTINGS_DEPARTMENTS_UPDATE = "ORGANIZATION_SETTINGS_DEPARTMENTS_UPDATE",
26
+ ORGANIZATION_SETTINGS_DEPARTMENTS_DELETE = "ORGANIZATION_SETTINGS_DEPARTMENTS_DELETE",
27
+ ORGANIZATION_SETTINGS_AGENCIES_LIST = "ORGANIZATION_SETTINGS_AGENCIES_LIST",
28
+ ORGANIZATION_SETTINGS_AGENCIES_CREATE = "ORGANIZATION_SETTINGS_AGENCIES_CREATE",
29
+ ORGANIZATION_SETTINGS_AGENCIES_READ = "ORGANIZATION_SETTINGS_AGENCIES_READ",
30
+ ORGANIZATION_SETTINGS_AGENCIES_UPDATE = "ORGANIZATION_SETTINGS_AGENCIES_UPDATE",
31
+ ORGANIZATION_SETTINGS_AGENCIES_DELETE = "ORGANIZATION_SETTINGS_AGENCIES_DELETE"
32
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UserPermissionEnum = void 0;
4
+ var UserPermissionEnum;
5
+ (function (UserPermissionEnum) {
6
+ UserPermissionEnum["AUTH_USER_LIST"] = "AUTH_USER_LIST";
7
+ UserPermissionEnum["AUTH_USER_CREATE"] = "AUTH_USER_CREATE";
8
+ UserPermissionEnum["AUTH_USER_READ"] = "AUTH_USER_READ";
9
+ UserPermissionEnum["AUTH_USER_UPDATE"] = "AUTH_USER_UPDATE";
10
+ UserPermissionEnum["AUTH_USER_DELETE"] = "AUTH_USER_DELETE";
11
+ UserPermissionEnum["AUTH_ROLE_LIST"] = "AUTH_ROLE_LIST";
12
+ UserPermissionEnum["AUTH_ROLE_CREATE"] = "AUTH_ROLE_CREATE";
13
+ UserPermissionEnum["AUTH_ROLE_READ"] = "AUTH_ROLE_READ";
14
+ UserPermissionEnum["AUTH_ROLE_UPDATE"] = "AUTH_ROLE_UPDATE";
15
+ UserPermissionEnum["AUTH_ROLE_DELETE"] = "AUTH_ROLE_DELETE";
16
+ UserPermissionEnum["AUTH_PERMISSION_LIST"] = "AUTH_PERMISSION_LIST";
17
+ UserPermissionEnum["AUTH_PERMISSION_CREATE"] = "AUTH_PERMISSION_CREATE";
18
+ UserPermissionEnum["AUTH_PERMISSION_READ"] = "AUTH_PERMISSION_READ";
19
+ UserPermissionEnum["AUTH_PERMISSION_UPDATE"] = "AUTH_PERMISSION_UPDATE";
20
+ UserPermissionEnum["AUTH_PERMISSION_DELETE"] = "AUTH_PERMISSION_DELETE";
21
+ UserPermissionEnum["ORGANIZATION_SETTINGS_MINISTRIES_LIST"] = "ORGANIZATION_SETTINGS_MINISTRIES_LIST";
22
+ UserPermissionEnum["ORGANIZATION_SETTINGS_MINISTRIES_CREATE"] = "ORGANIZATION_SETTINGS_MINISTRIES_CREATE";
23
+ UserPermissionEnum["ORGANIZATION_SETTINGS_MINISTRIES_READ"] = "ORGANIZATION_SETTINGS_MINISTRIES_READ";
24
+ UserPermissionEnum["ORGANIZATION_SETTINGS_MINISTRIES_UPDATE"] = "ORGANIZATION_SETTINGS_MINISTRIES_UPDATE";
25
+ UserPermissionEnum["ORGANIZATION_SETTINGS_MINISTRIES_DELETE"] = "ORGANIZATION_SETTINGS_MINISTRIES_DELETE";
26
+ UserPermissionEnum["ORGANIZATION_SETTINGS_DEPARTMENTS_LIST"] = "ORGANIZATION_SETTINGS_DEPARTMENTS_LIST";
27
+ UserPermissionEnum["ORGANIZATION_SETTINGS_DEPARTMENTS_CREATE"] = "ORGANIZATION_SETTINGS_DEPARTMENTS_CREATE";
28
+ UserPermissionEnum["ORGANIZATION_SETTINGS_DEPARTMENTS_READ"] = "ORGANIZATION_SETTINGS_DEPARTMENTS_READ";
29
+ UserPermissionEnum["ORGANIZATION_SETTINGS_DEPARTMENTS_UPDATE"] = "ORGANIZATION_SETTINGS_DEPARTMENTS_UPDATE";
30
+ UserPermissionEnum["ORGANIZATION_SETTINGS_DEPARTMENTS_DELETE"] = "ORGANIZATION_SETTINGS_DEPARTMENTS_DELETE";
31
+ UserPermissionEnum["ORGANIZATION_SETTINGS_AGENCIES_LIST"] = "ORGANIZATION_SETTINGS_AGENCIES_LIST";
32
+ UserPermissionEnum["ORGANIZATION_SETTINGS_AGENCIES_CREATE"] = "ORGANIZATION_SETTINGS_AGENCIES_CREATE";
33
+ UserPermissionEnum["ORGANIZATION_SETTINGS_AGENCIES_READ"] = "ORGANIZATION_SETTINGS_AGENCIES_READ";
34
+ UserPermissionEnum["ORGANIZATION_SETTINGS_AGENCIES_UPDATE"] = "ORGANIZATION_SETTINGS_AGENCIES_UPDATE";
35
+ UserPermissionEnum["ORGANIZATION_SETTINGS_AGENCIES_DELETE"] = "ORGANIZATION_SETTINGS_AGENCIES_DELETE";
36
+ })(UserPermissionEnum || (exports.UserPermissionEnum = UserPermissionEnum = {}));
37
+ //# sourceMappingURL=user-permission.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-permission.js","sourceRoot":"","sources":["../../../src/core/enums/user-permission.ts"],"names":[],"mappings":";;;AAAA,IAAY,kBAkCX;AAlCD,WAAY,kBAAkB;IAC5B,uDAAiC,CAAA;IACjC,2DAAqC,CAAA;IACrC,uDAAiC,CAAA;IACjC,2DAAqC,CAAA;IACrC,2DAAqC,CAAA;IACrC,uDAAiC,CAAA;IACjC,2DAAqC,CAAA;IACrC,uDAAiC,CAAA;IACjC,2DAAqC,CAAA;IACrC,2DAAqC,CAAA;IACrC,mEAA6C,CAAA;IAC7C,uEAAiD,CAAA;IACjD,mEAA6C,CAAA;IAC7C,uEAAiD,CAAA;IACjD,uEAAiD,CAAA;IAEjD,qGAA+E,CAAA;IAC/E,yGAAmF,CAAA;IACnF,qGAA+E,CAAA;IAC/E,yGAAmF,CAAA;IACnF,yGAAmF,CAAA;IAEnF,uGAAiF,CAAA;IACjF,2GAAqF,CAAA;IACrF,uGAAiF,CAAA;IACjF,2GAAqF,CAAA;IACrF,2GAAqF,CAAA;IAErF,iGAA2E,CAAA;IAC3E,qGAA+E,CAAA;IAC/E,iGAA2E,CAAA;IAC3E,qGAA+E,CAAA;IAC/E,qGAA+E,CAAA;AACjF,CAAC,EAlCW,kBAAkB,kCAAlB,kBAAkB,QAkC7B"}
@@ -1,3 +1,4 @@
1
+ import "reflect-metadata";
1
2
  export declare abstract class BaseEntity {
2
3
  id?: number;
3
4
  createdBy?: string;
@@ -10,6 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.BaseEntity = void 0;
13
+ require("reflect-metadata");
13
14
  const typeorm_1 = require("typeorm");
14
15
  class BaseEntity {
15
16
  }
@@ -23,7 +24,7 @@ __decorate([
23
24
  __metadata("design:type", String)
24
25
  ], BaseEntity.prototype, "createdBy", void 0);
25
26
  __decorate([
26
- (0, typeorm_1.CreateDateColumn)({ name: "created_at", type: "timestamptz" }),
27
+ (0, typeorm_1.Column)({ name: "created_at", type: "timestamptz", nullable: true }),
27
28
  __metadata("design:type", Date)
28
29
  ], BaseEntity.prototype, "createdAt", void 0);
29
30
  __decorate([
@@ -31,7 +32,7 @@ __decorate([
31
32
  __metadata("design:type", String)
32
33
  ], BaseEntity.prototype, "updatedBy", void 0);
33
34
  __decorate([
34
- (0, typeorm_1.UpdateDateColumn)({ name: "updated_at", type: "timestamptz" }),
35
+ (0, typeorm_1.Column)({ name: "updated_at", type: "timestamptz", nullable: true }),
35
36
  __metadata("design:type", Date)
36
37
  ], BaseEntity.prototype, "updatedAt", void 0);
37
38
  __decorate([
@@ -39,7 +40,7 @@ __decorate([
39
40
  __metadata("design:type", String)
40
41
  ], BaseEntity.prototype, "deletedBy", void 0);
41
42
  __decorate([
42
- (0, typeorm_1.DeleteDateColumn)({ name: "deleted_at", type: "timestamptz", nullable: true }),
43
+ (0, typeorm_1.Column)({ name: "deleted_at", type: "timestamptz", nullable: true }),
43
44
  __metadata("design:type", Date)
44
45
  ], BaseEntity.prototype, "deletedAt", void 0);
45
46
  //# sourceMappingURL=base.entity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.entity.js","sourceRoot":"","sources":["../../../src/core/utils/base.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAMiB;AAEjB,MAAsB,UAAU;CAqB/B;AArBD,gCAqBC;AAnBC;IADC,IAAA,gCAAsB,GAAE;;sCACb;AAGZ;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CAC5B;AAGnB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;8BAClD,IAAI;6CAAC;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CAC5B;AAGnB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;8BAClD,IAAI;6CAAC;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CAC5B;AAGnB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BAClE,IAAI;6CAAC"}
1
+ {"version":3,"file":"base.entity.js","sourceRoot":"","sources":["../../../src/core/utils/base.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4BAA0B;AAE1B,qCAAyD;AAKzD,MAAsB,UAAU;CAqB/B;AArBD,gCAqBC;AAnBC;IADC,IAAA,gCAAsB,GAAE;;sCACb;AAGZ;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CAC5B;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACxD,IAAI;6CAAC;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CAC5B;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACxD,IAAI;6CAAC;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CAC5B;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACxD,IAAI;6CAAC"}
@@ -0,0 +1,2 @@
1
+ import { TableColumnOptions } from 'typeorm/schema-builder/options/TableColumnOptions';
2
+ export declare const baseColumns: TableColumnOptions[];
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.baseColumns = void 0;
4
+ exports.baseColumns = [
5
+ {
6
+ name: 'id',
7
+ type: 'int4',
8
+ isPrimary: true,
9
+ isGenerated: true,
10
+ generationStrategy: 'increment',
11
+ },
12
+ {
13
+ name: 'created_by',
14
+ type: 'varchar',
15
+ isNullable: true,
16
+ },
17
+ {
18
+ name: 'created_at',
19
+ type: 'timestamptz',
20
+ isNullable: true,
21
+ default: 'now()',
22
+ },
23
+ {
24
+ name: 'updated_by',
25
+ type: 'varchar',
26
+ isNullable: true,
27
+ },
28
+ {
29
+ name: 'updated_at',
30
+ type: 'timestamptz',
31
+ isNullable: true,
32
+ },
33
+ {
34
+ name: 'deleted_by',
35
+ type: 'varchar',
36
+ isNullable: true,
37
+ },
38
+ {
39
+ name: 'deleted_at',
40
+ type: 'timestamptz',
41
+ isNullable: true,
42
+ },
43
+ ];
44
+ //# sourceMappingURL=base.migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.migration.js","sourceRoot":"","sources":["../../../src/core/utils/base.migration.ts"],"names":[],"mappings":";;;AAEa,QAAA,WAAW,GAAyB;IAC/C;QACE,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,IAAI;QACjB,kBAAkB,EAAE,WAAW;KAChC;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,IAAI;KACjB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,IAAI;QAChB,OAAO,EAAE,OAAO;KACjB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,IAAI;KACjB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,IAAI;KACjB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,IAAI;KACjB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,IAAI;KACjB;CACF,CAAC"}
@@ -0,0 +1,10 @@
1
+ import "reflect-metadata";
2
+ export declare abstract class GuardBaseEntity {
3
+ id?: number;
4
+ createdBy?: string;
5
+ createdAt?: Date;
6
+ updatedBy?: string;
7
+ updatedAt?: Date;
8
+ deletedBy?: string;
9
+ deletedAt?: Date;
10
+ }