@evara-group/guard 1.0.30 → 3.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 (422) hide show
  1. package/README.md +350 -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/database-ops.d.ts +2 -0
  32. package/dist/database/database-ops.js +21 -0
  33. package/dist/database/database-ops.js.map +1 -0
  34. package/dist/database/migrations/1765027603465-CreateUserTable.d.ts +6 -0
  35. package/dist/database/migrations/1765027603465-CreateUserTable.js +63 -0
  36. package/dist/database/migrations/1765027603465-CreateUserTable.js.map +1 -0
  37. package/dist/database/migrations/1765042818137-CreateModuleTable.d.ts +6 -0
  38. package/dist/database/migrations/1765042818137-CreateModuleTable.js +53 -0
  39. package/dist/database/migrations/1765042818137-CreateModuleTable.js.map +1 -0
  40. package/dist/database/migrations/1765042839363-CreatepermissionTable.d.ts +6 -0
  41. package/dist/database/migrations/1765042839363-CreatepermissionTable.js +74 -0
  42. package/dist/database/migrations/1765042839363-CreatepermissionTable.js.map +1 -0
  43. package/dist/database/migrations/1765042865354-CreateRoleTable.d.ts +6 -0
  44. package/dist/database/migrations/1765042865354-CreateRoleTable.js +60 -0
  45. package/dist/database/migrations/1765042865354-CreateRoleTable.js.map +1 -0
  46. package/dist/database/migrations/1765042888581-CreateUserTable.d.ts +6 -0
  47. package/dist/database/migrations/1765042888581-CreateUserTable.js +58 -0
  48. package/dist/database/migrations/1765042888581-CreateUserTable.js.map +1 -0
  49. package/dist/database/migrations/1765042926793-CreateUserRoleTable.d.ts +6 -0
  50. package/dist/database/migrations/1765042926793-CreateUserRoleTable.js +54 -0
  51. package/dist/database/migrations/1765042926793-CreateUserRoleTable.js.map +1 -0
  52. package/dist/database/migrations/1765042959694-CreateRolePermissionTable.d.ts +6 -0
  53. package/dist/database/migrations/1765042959694-CreateRolePermissionTable.js +45 -0
  54. package/dist/database/migrations/1765042959694-CreateRolePermissionTable.js.map +1 -0
  55. package/dist/database/migrations/1765042980940-CreateUserPermissionTable.d.ts +6 -0
  56. package/dist/database/migrations/1765042980940-CreateUserPermissionTable.js +50 -0
  57. package/dist/database/migrations/1765042980940-CreateUserPermissionTable.js.map +1 -0
  58. package/dist/database/seeders/auth.seeder.d.ts +12 -0
  59. package/dist/database/seeders/auth.seeder.js +338 -0
  60. package/dist/database/seeders/auth.seeder.js.map +1 -0
  61. package/dist/database/seeders/modules.seeder.d.ts +6 -0
  62. package/dist/database/seeders/modules.seeder.js +39 -0
  63. package/dist/database/seeders/modules.seeder.js.map +1 -0
  64. package/dist/database/seeders/orchestrator.seeder.d.ts +6 -0
  65. package/dist/database/seeders/orchestrator.seeder.js +32 -0
  66. package/dist/database/seeders/orchestrator.seeder.js.map +1 -0
  67. package/dist/database/seeders/permissions.seeder.d.ts +6 -0
  68. package/dist/database/seeders/permissions.seeder.js +96 -0
  69. package/dist/database/seeders/permissions.seeder.js.map +1 -0
  70. package/dist/database/seeders/role-permissions.seeder.d.ts +6 -0
  71. package/dist/database/seeders/role-permissions.seeder.js +35 -0
  72. package/dist/database/seeders/role-permissions.seeder.js.map +1 -0
  73. package/dist/database/seeders/roles.seeder.d.ts +6 -0
  74. package/dist/database/seeders/roles.seeder.js +33 -0
  75. package/dist/database/seeders/roles.seeder.js.map +1 -0
  76. package/dist/database/seeders/run.seeder.d.ts +1 -0
  77. package/dist/database/seeders/run.seeder.js +82 -0
  78. package/dist/database/seeders/run.seeder.js.map +1 -0
  79. package/dist/database/seeders/user-roles.seeder.d.ts +6 -0
  80. package/dist/database/seeders/user-roles.seeder.js +41 -0
  81. package/dist/database/seeders/user-roles.seeder.js.map +1 -0
  82. package/dist/database/seeders/users.seeder.d.ts +6 -0
  83. package/dist/database/seeders/users.seeder.js +72 -0
  84. package/dist/database/seeders/users.seeder.js.map +1 -0
  85. package/dist/index.d.ts +73 -5
  86. package/dist/index.js +79 -5
  87. package/dist/index.js.map +1 -1
  88. package/dist/modules/app.module.d.ts +16 -0
  89. package/dist/modules/app.module.js +86 -0
  90. package/dist/modules/app.module.js.map +1 -0
  91. package/dist/modules/auth/auth.controller.d.ts +10 -0
  92. package/dist/modules/auth/auth.controller.js +47 -0
  93. package/dist/modules/auth/auth.controller.js.map +1 -0
  94. package/dist/modules/auth/auth.module-definition.d.ts +2 -0
  95. package/dist/modules/auth/auth.module-definition.js +11 -0
  96. package/dist/modules/auth/auth.module-definition.js.map +1 -0
  97. package/dist/modules/auth/auth.module.d.ts +2 -0
  98. package/dist/modules/auth/auth.module.js +48 -0
  99. package/dist/modules/auth/auth.module.js.map +1 -0
  100. package/dist/modules/auth/auth.options.d.ts +13 -0
  101. package/dist/modules/auth/auth.options.js +3 -0
  102. package/dist/modules/auth/auth.options.js.map +1 -0
  103. package/dist/modules/auth/auth.service.d.ts +15 -0
  104. package/dist/modules/auth/auth.service.js +133 -0
  105. package/dist/modules/auth/auth.service.js.map +1 -0
  106. package/dist/modules/auth/dto/auth-login.dto.d.ts +5 -0
  107. package/dist/modules/auth/dto/auth-login.dto.js +32 -0
  108. package/dist/modules/auth/dto/auth-login.dto.js.map +1 -0
  109. package/dist/modules/auth/dto/register.dto.d.ts +7 -0
  110. package/dist/modules/auth/dto/register.dto.js +46 -0
  111. package/dist/modules/auth/dto/register.dto.js.map +1 -0
  112. package/dist/modules/module/dtos/create-module.dto.d.ts +5 -0
  113. package/dist/modules/module/dtos/create-module.dto.js +14 -0
  114. package/dist/modules/module/dtos/create-module.dto.js.map +1 -0
  115. package/dist/modules/module/dtos/module-query.dto.d.ts +3 -0
  116. package/dist/modules/module/dtos/module-query.dto.js +8 -0
  117. package/dist/modules/module/dtos/module-query.dto.js.map +1 -0
  118. package/dist/modules/module/dtos/module.dto.d.ts +10 -0
  119. package/dist/modules/module/dtos/module.dto.js +84 -0
  120. package/dist/modules/module/dtos/module.dto.js.map +1 -0
  121. package/dist/modules/module/dtos/update-module.dto.d.ts +5 -0
  122. package/dist/modules/module/dtos/update-module.dto.js +14 -0
  123. package/dist/modules/module/dtos/update-module.dto.js.map +1 -0
  124. package/dist/modules/module/module.controller.d.ts +12 -0
  125. package/dist/modules/module/module.controller.js +111 -0
  126. package/dist/modules/module/module.controller.js.map +1 -0
  127. package/dist/modules/module/module.entity.d.ts +10 -0
  128. package/dist/modules/module/module.entity.js +46 -0
  129. package/dist/modules/module/module.entity.js.map +1 -0
  130. package/dist/modules/module/module.mapper.d.ts +5 -0
  131. package/dist/modules/module/module.mapper.js +35 -0
  132. package/dist/modules/module/module.mapper.js.map +1 -0
  133. package/dist/modules/module/module.module.d.ts +2 -0
  134. package/dist/modules/module/module.module.js +27 -0
  135. package/dist/modules/module/module.module.js.map +1 -0
  136. package/dist/modules/module/module.service.d.ts +13 -0
  137. package/dist/modules/module/module.service.js +63 -0
  138. package/dist/modules/module/module.service.js.map +1 -0
  139. package/dist/modules/permission/dtos/create-permission.dto.d.ts +5 -0
  140. package/dist/modules/permission/dtos/create-permission.dto.js +14 -0
  141. package/dist/modules/permission/dtos/create-permission.dto.js.map +1 -0
  142. package/dist/modules/permission/dtos/permission-query.dto.d.ts +3 -0
  143. package/dist/modules/permission/dtos/permission-query.dto.js +8 -0
  144. package/dist/modules/permission/dtos/permission-query.dto.js.map +1 -0
  145. package/dist/modules/permission/dtos/permission.dto.d.ts +9 -0
  146. package/dist/modules/permission/dtos/permission.dto.js +72 -0
  147. package/dist/modules/permission/dtos/permission.dto.js.map +1 -0
  148. package/dist/modules/permission/dtos/update-permission.dto.d.ts +5 -0
  149. package/dist/modules/permission/dtos/update-permission.dto.js +9 -0
  150. package/dist/modules/permission/dtos/update-permission.dto.js.map +1 -0
  151. package/dist/modules/permission/permission.controller.d.ts +11 -0
  152. package/dist/modules/permission/permission.controller.js +109 -0
  153. package/dist/modules/permission/permission.controller.js.map +1 -0
  154. package/dist/modules/permission/permission.entity.d.ts +11 -0
  155. package/dist/modules/permission/permission.entity.js +57 -0
  156. package/dist/modules/permission/permission.entity.js.map +1 -0
  157. package/dist/modules/permission/permission.mapper.d.ts +5 -0
  158. package/dist/modules/permission/permission.mapper.js +32 -0
  159. package/dist/modules/permission/permission.mapper.js.map +1 -0
  160. package/dist/modules/permission/permission.module.d.ts +2 -0
  161. package/dist/modules/permission/permission.module.js +27 -0
  162. package/dist/modules/permission/permission.module.js.map +1 -0
  163. package/dist/modules/permission/permission.service.d.ts +13 -0
  164. package/dist/modules/permission/permission.service.js +60 -0
  165. package/dist/modules/permission/permission.service.js.map +1 -0
  166. package/dist/modules/role/dtos/create-role.dto.d.ts +6 -0
  167. package/dist/modules/role/dtos/create-role.dto.js +15 -0
  168. package/dist/modules/role/dtos/create-role.dto.js.map +1 -0
  169. package/dist/modules/role/dtos/role-query.dto.d.ts +3 -0
  170. package/dist/modules/role/dtos/role-query.dto.js +8 -0
  171. package/dist/modules/role/dtos/role-query.dto.js.map +1 -0
  172. package/dist/modules/role/dtos/role.dto.d.ts +11 -0
  173. package/dist/modules/role/dtos/role.dto.js +82 -0
  174. package/dist/modules/role/dtos/role.dto.js.map +1 -0
  175. package/dist/modules/role/dtos/update-role.dto.d.ts +5 -0
  176. package/dist/modules/role/dtos/update-role.dto.js +9 -0
  177. package/dist/modules/role/dtos/update-role.dto.js.map +1 -0
  178. package/dist/modules/role/role.controller.d.ts +16 -0
  179. package/dist/modules/role/role.controller.js +174 -0
  180. package/dist/modules/role/role.controller.js.map +1 -0
  181. package/dist/modules/role/role.entity.d.ts +11 -0
  182. package/dist/modules/role/role.entity.js +61 -0
  183. package/dist/modules/role/role.entity.js.map +1 -0
  184. package/dist/modules/role/role.mapper.d.ts +9 -0
  185. package/dist/modules/role/role.mapper.js +74 -0
  186. package/dist/modules/role/role.mapper.js.map +1 -0
  187. package/dist/modules/role/role.module.d.ts +2 -0
  188. package/dist/modules/role/role.module.js +27 -0
  189. package/dist/modules/role/role.module.js.map +1 -0
  190. package/dist/modules/role/role.service.d.ts +13 -0
  191. package/dist/modules/role/role.service.js +63 -0
  192. package/dist/modules/role/role.service.js.map +1 -0
  193. package/dist/modules/role-permission/dtos/create-role-permission.dto.d.ts +5 -0
  194. package/dist/modules/role-permission/dtos/create-role-permission.dto.js +14 -0
  195. package/dist/modules/role-permission/dtos/create-role-permission.dto.js.map +1 -0
  196. package/dist/modules/role-permission/dtos/role-permission-query.dto.d.ts +3 -0
  197. package/dist/modules/role-permission/dtos/role-permission-query.dto.js +8 -0
  198. package/dist/modules/role-permission/dtos/role-permission-query.dto.js.map +1 -0
  199. package/dist/modules/role-permission/dtos/role-permission.dto.d.ts +7 -0
  200. package/dist/modules/role-permission/dtos/role-permission.dto.js +28 -0
  201. package/dist/modules/role-permission/dtos/role-permission.dto.js.map +1 -0
  202. package/dist/modules/role-permission/dtos/update-role-permission.dto.d.ts +5 -0
  203. package/dist/modules/role-permission/dtos/update-role-permission.dto.js +9 -0
  204. package/dist/modules/role-permission/dtos/update-role-permission.dto.js.map +1 -0
  205. package/dist/modules/role-permission/role-permission.controller.d.ts +2 -0
  206. package/dist/modules/role-permission/role-permission.controller.js +17 -0
  207. package/dist/modules/role-permission/role-permission.controller.js.map +1 -0
  208. package/dist/modules/role-permission/role-permission.entity.d.ts +7 -0
  209. package/dist/modules/role-permission/role-permission.entity.js +33 -0
  210. package/dist/modules/role-permission/role-permission.entity.js.map +1 -0
  211. package/dist/modules/role-permission/role-permission.mapper.d.ts +10 -0
  212. package/dist/modules/role-permission/role-permission.mapper.js +47 -0
  213. package/dist/modules/role-permission/role-permission.mapper.js.map +1 -0
  214. package/dist/modules/role-permission/role-permission.module.d.ts +2 -0
  215. package/dist/modules/role-permission/role-permission.module.js +29 -0
  216. package/dist/modules/role-permission/role-permission.module.js.map +1 -0
  217. package/dist/modules/role-permission/role-permission.service.d.ts +13 -0
  218. package/dist/modules/role-permission/role-permission.service.js +60 -0
  219. package/dist/modules/role-permission/role-permission.service.js.map +1 -0
  220. package/dist/modules/user/dtos/create-user.dto.d.ts +6 -0
  221. package/dist/modules/user/dtos/create-user.dto.js +15 -0
  222. package/dist/modules/user/dtos/create-user.dto.js.map +1 -0
  223. package/dist/modules/user/dtos/update-user.dto.js.map +1 -0
  224. package/dist/modules/user/dtos/user-query.dto.d.ts +3 -0
  225. package/dist/{user → modules/user}/dtos/user-query.dto.js +1 -1
  226. package/dist/modules/user/dtos/user-query.dto.js.map +1 -0
  227. package/dist/modules/user/dtos/user.dto.d.ts +13 -0
  228. package/dist/{user → modules/user}/dtos/user.dto.js +1 -12
  229. package/dist/modules/user/dtos/user.dto.js.map +1 -0
  230. package/dist/modules/user/user.controller.d.ts +18 -0
  231. package/dist/{user → modules/user}/user.controller.js +62 -29
  232. package/dist/modules/user/user.controller.js.map +1 -0
  233. package/dist/{user → modules/user}/user.entity.d.ts +4 -3
  234. package/dist/{user → modules/user}/user.entity.js +17 -6
  235. package/dist/modules/user/user.entity.js.map +1 -0
  236. package/dist/{user → modules/user}/user.mapper.d.ts +6 -2
  237. package/dist/modules/user/user.mapper.js +126 -0
  238. package/dist/modules/user/user.mapper.js.map +1 -0
  239. package/dist/modules/user/user.module-definition.d.ts +5 -0
  240. package/dist/modules/user/user.module-definition.js +9 -0
  241. package/dist/modules/user/user.module-definition.js.map +1 -0
  242. package/dist/modules/user/user.module.d.ts +2 -0
  243. package/dist/{user → modules/user}/user.module.js +10 -14
  244. package/dist/modules/user/user.module.js.map +1 -0
  245. package/dist/{user → modules/user}/user.service.d.ts +4 -4
  246. package/dist/{user → modules/user}/user.service.js +8 -8
  247. package/dist/modules/user/user.service.js.map +1 -0
  248. package/dist/modules/user-permission/dtos/create-user-permission.dto.d.ts +5 -0
  249. package/dist/modules/user-permission/dtos/create-user-permission.dto.js +14 -0
  250. package/dist/modules/user-permission/dtos/create-user-permission.dto.js.map +1 -0
  251. package/dist/modules/user-permission/dtos/update-user-permission.dto.d.ts +5 -0
  252. package/dist/modules/user-permission/dtos/update-user-permission.dto.js +9 -0
  253. package/dist/modules/user-permission/dtos/update-user-permission.dto.js.map +1 -0
  254. package/dist/modules/user-permission/dtos/user-permission-query.dto.d.ts +3 -0
  255. package/dist/modules/user-permission/dtos/user-permission-query.dto.js +8 -0
  256. package/dist/modules/user-permission/dtos/user-permission-query.dto.js.map +1 -0
  257. package/dist/modules/user-permission/dtos/user-permission.dto.d.ts +8 -0
  258. package/dist/modules/user-permission/dtos/user-permission.dto.js +36 -0
  259. package/dist/modules/user-permission/dtos/user-permission.dto.js.map +1 -0
  260. package/dist/modules/user-permission/user-permission.controller.d.ts +2 -0
  261. package/dist/modules/user-permission/user-permission.controller.js +17 -0
  262. package/dist/modules/user-permission/user-permission.controller.js.map +1 -0
  263. package/dist/modules/user-permission/user-permission.entity.d.ts +8 -0
  264. package/dist/modules/user-permission/user-permission.entity.js +41 -0
  265. package/dist/modules/user-permission/user-permission.entity.js.map +1 -0
  266. package/dist/modules/user-permission/user-permission.mapper.d.ts +10 -0
  267. package/dist/modules/user-permission/user-permission.mapper.js +51 -0
  268. package/dist/modules/user-permission/user-permission.mapper.js.map +1 -0
  269. package/dist/modules/user-permission/user-permission.module.d.ts +2 -0
  270. package/dist/modules/user-permission/user-permission.module.js +29 -0
  271. package/dist/modules/user-permission/user-permission.module.js.map +1 -0
  272. package/dist/modules/user-permission/user-permission.service.d.ts +13 -0
  273. package/dist/modules/user-permission/user-permission.service.js +60 -0
  274. package/dist/modules/user-permission/user-permission.service.js.map +1 -0
  275. package/dist/modules/user-role/dtos/create-user-role.dto.d.ts +5 -0
  276. package/dist/modules/user-role/dtos/create-user-role.dto.js +14 -0
  277. package/dist/modules/user-role/dtos/create-user-role.dto.js.map +1 -0
  278. package/dist/modules/user-role/dtos/update-user-role.dto.d.ts +5 -0
  279. package/dist/modules/user-role/dtos/update-user-role.dto.js +9 -0
  280. package/dist/modules/user-role/dtos/update-user-role.dto.js.map +1 -0
  281. package/dist/modules/user-role/dtos/user-role-query.dto.d.ts +3 -0
  282. package/dist/modules/user-role/dtos/user-role-query.dto.js +8 -0
  283. package/dist/modules/user-role/dtos/user-role-query.dto.js.map +1 -0
  284. package/dist/modules/user-role/dtos/user-role.dto.d.ts +7 -0
  285. package/dist/{security/security.service.js → modules/user-role/dtos/user-role.dto.js} +17 -20
  286. package/dist/modules/user-role/dtos/user-role.dto.js.map +1 -0
  287. package/dist/modules/user-role/user-role.controller.d.ts +0 -0
  288. package/dist/modules/user-role/user-role.controller.js +2 -0
  289. package/dist/modules/user-role/user-role.controller.js.map +1 -0
  290. package/dist/modules/user-role/user-role.entity.d.ts +0 -0
  291. package/dist/modules/user-role/user-role.entity.js +2 -0
  292. package/dist/modules/user-role/user-role.entity.js.map +1 -0
  293. package/dist/modules/user-role/user-role.mapper.d.ts +0 -0
  294. package/dist/modules/user-role/user-role.mapper.js +2 -0
  295. package/dist/modules/user-role/user-role.mapper.js.map +1 -0
  296. package/dist/modules/user-role/user-role.module.d.ts +0 -0
  297. package/dist/modules/user-role/user-role.module.js +2 -0
  298. package/dist/modules/user-role/user-role.module.js.map +1 -0
  299. package/dist/modules/user-role/user-role.service.d.ts +0 -0
  300. package/dist/modules/user-role/user-role.service.js +2 -0
  301. package/dist/modules/user-role/user-role.service.js.map +1 -0
  302. package/dist/scripts/run-migrations.d.ts +1 -0
  303. package/dist/scripts/run-migrations.js +60 -0
  304. package/dist/scripts/run-migrations.js.map +1 -0
  305. package/dist/security/decorators/auth-user.decorator.d.ts +1 -1
  306. package/dist/security/decorators/auth-user.decorator.js +3 -3
  307. package/dist/security/decorators/auth-user.decorator.js.map +1 -1
  308. package/dist/security/decorators/permissions.decorator.d.ts +2 -0
  309. package/dist/security/decorators/permissions.decorator.js +7 -0
  310. package/dist/security/decorators/permissions.decorator.js.map +1 -0
  311. package/dist/security/decorators/roles.decorator.d.ts +2 -1
  312. package/dist/security/decorators/roles.decorator.js +1 -1
  313. package/dist/security/decorators/roles.decorator.js.map +1 -1
  314. package/dist/security/guards/jwt-auth.guard.d.ts +5 -2
  315. package/dist/security/guards/jwt-auth.guard.js +12 -5
  316. package/dist/security/guards/jwt-auth.guard.js.map +1 -1
  317. package/dist/security/guards/roles.guard.d.ts +7 -5
  318. package/dist/security/guards/roles.guard.js +33 -9
  319. package/dist/security/guards/roles.guard.js.map +1 -1
  320. package/dist/security/interfaces/jwt-payload.interface.d.ts +14 -0
  321. package/dist/security/interfaces/jwt-payload.interface.js +3 -0
  322. package/dist/security/interfaces/jwt-payload.interface.js.map +1 -0
  323. package/dist/security/interfaces/token.interface.d.ts +3 -0
  324. package/dist/security/interfaces/token.interface.js +3 -0
  325. package/dist/security/interfaces/token.interface.js.map +1 -0
  326. package/dist/security/password-util.d.ts +3 -0
  327. package/dist/security/password-util.js +44 -0
  328. package/dist/security/password-util.js.map +1 -0
  329. package/dist/security/strategies/jwt.strategy.d.ts +14 -3
  330. package/dist/security/strategies/jwt.strategy.js +28 -13
  331. package/dist/security/strategies/jwt.strategy.js.map +1 -1
  332. package/dist/seeders/auth.seeder.d.ts +12 -0
  333. package/dist/seeders/auth.seeder.js +404 -0
  334. package/dist/seeders/auth.seeder.js.map +1 -0
  335. package/dist/seeders/modules.seeder.d.ts +6 -0
  336. package/dist/seeders/modules.seeder.js +53 -0
  337. package/dist/seeders/modules.seeder.js.map +1 -0
  338. package/dist/seeders/orchestrator.seeder.d.ts +6 -0
  339. package/dist/seeders/orchestrator.seeder.js +32 -0
  340. package/dist/seeders/orchestrator.seeder.js.map +1 -0
  341. package/dist/seeders/permissions.seeder.d.ts +6 -0
  342. package/dist/seeders/permissions.seeder.js +51 -0
  343. package/dist/seeders/permissions.seeder.js.map +1 -0
  344. package/dist/seeders/role-permissions.seeder.d.ts +6 -0
  345. package/dist/seeders/role-permissions.seeder.js +65 -0
  346. package/dist/seeders/role-permissions.seeder.js.map +1 -0
  347. package/dist/seeders/roles.seeder.d.ts +6 -0
  348. package/dist/seeders/roles.seeder.js +57 -0
  349. package/dist/seeders/roles.seeder.js.map +1 -0
  350. package/dist/seeders/run.seeder.d.ts +1 -0
  351. package/dist/seeders/run.seeder.js +82 -0
  352. package/dist/seeders/run.seeder.js.map +1 -0
  353. package/dist/seeders/user/data.d.ts +2 -0
  354. package/dist/seeders/user/data.js +16 -0
  355. package/dist/seeders/user/data.js.map +1 -0
  356. package/dist/seeders/user/user-seeder.module.d.ts +2 -0
  357. package/dist/seeders/user/user-seeder.module.js +24 -0
  358. package/dist/seeders/user/user-seeder.module.js.map +1 -0
  359. package/dist/seeders/user/user-seeder.service.d.ts +7 -0
  360. package/dist/seeders/user/user-seeder.service.js +51 -0
  361. package/dist/seeders/user/user-seeder.service.js.map +1 -0
  362. package/dist/seeders/user-roles.seeder.d.ts +6 -0
  363. package/dist/seeders/user-roles.seeder.js +44 -0
  364. package/dist/seeders/user-roles.seeder.js.map +1 -0
  365. package/dist/seeders/users.seeder.d.ts +6 -0
  366. package/dist/seeders/users.seeder.js +93 -0
  367. package/dist/seeders/users.seeder.js.map +1 -0
  368. package/dist/tenant-db/config/tenant-db.config.d.ts +4 -0
  369. package/dist/tenant-db/config/tenant-db.config.js +18 -0
  370. package/dist/tenant-db/config/tenant-db.config.js.map +1 -0
  371. package/dist/tenant-db/context/tenant-db.context.d.ts +11 -0
  372. package/dist/tenant-db/context/tenant-db.context.js +46 -0
  373. package/dist/tenant-db/context/tenant-db.context.js.map +1 -0
  374. package/dist/tenant-db/helpers/tenant-db.helpers.d.ts +13 -0
  375. package/dist/tenant-db/helpers/tenant-db.helpers.js +42 -0
  376. package/dist/tenant-db/helpers/tenant-db.helpers.js.map +1 -0
  377. package/dist/tenant-db/manager/tenant-db.manager.d.ts +20 -0
  378. package/dist/tenant-db/manager/tenant-db.manager.js +135 -0
  379. package/dist/tenant-db/manager/tenant-db.manager.js.map +1 -0
  380. package/dist/tenant-db/middleware/tenant-db.middleware.d.ts +13 -0
  381. package/dist/tenant-db/middleware/tenant-db.middleware.js +46 -0
  382. package/dist/tenant-db/middleware/tenant-db.middleware.js.map +1 -0
  383. package/dist/tenant-db/module/tenant=db-module.d.ts +10 -0
  384. package/dist/tenant-db/module/tenant=db-module.js +53 -0
  385. package/dist/tenant-db/module/tenant=db-module.js.map +1 -0
  386. package/dist/tenant-db/resolvers/tenant.resolver.d.ts +9 -0
  387. package/dist/tenant-db/resolvers/tenant.resolver.js +42 -0
  388. package/dist/tenant-db/resolvers/tenant.resolver.js.map +1 -0
  389. package/dist/tenant-db/service/tenant-db.service.d.ts +14 -0
  390. package/dist/tenant-db/service/tenant-db.service.js +62 -0
  391. package/dist/tenant-db/service/tenant-db.service.js.map +1 -0
  392. package/dist/tenant-db/tenant-cache.d.ts +10 -0
  393. package/dist/tenant-db/tenant-cache.js +17 -0
  394. package/dist/tenant-db/tenant-cache.js.map +1 -0
  395. package/dist/tenant-db/types/tenant-db.types.d.ts +29 -0
  396. package/dist/tenant-db/types/tenant-db.types.js +3 -0
  397. package/dist/tenant-db/types/tenant-db.types.js.map +1 -0
  398. package/dist/tsconfig.tsbuildinfo +1 -1
  399. package/package.json +18 -10
  400. package/dist/security/security.module.d.ts +0 -7
  401. package/dist/security/security.module.js +0 -43
  402. package/dist/security/security.module.js.map +0 -1
  403. package/dist/security/security.service.d.ts +0 -7
  404. package/dist/security/security.service.js.map +0 -1
  405. package/dist/user/dtos/create-user.dto.d.ts +0 -5
  406. package/dist/user/dtos/create-user.dto.js +0 -7
  407. package/dist/user/dtos/create-user.dto.js.map +0 -1
  408. package/dist/user/dtos/update-user.dto.js.map +0 -1
  409. package/dist/user/dtos/user-query.dto.d.ts +0 -3
  410. package/dist/user/dtos/user-query.dto.js.map +0 -1
  411. package/dist/user/dtos/user.dto.d.ts +0 -11
  412. package/dist/user/dtos/user.dto.js.map +0 -1
  413. package/dist/user/user.controller.d.ts +0 -16
  414. package/dist/user/user.controller.js.map +0 -1
  415. package/dist/user/user.entity.js.map +0 -1
  416. package/dist/user/user.mapper.js +0 -32
  417. package/dist/user/user.mapper.js.map +0 -1
  418. package/dist/user/user.module.d.ts +0 -4
  419. package/dist/user/user.module.js.map +0 -1
  420. package/dist/user/user.service.js.map +0 -1
  421. /package/dist/{user → modules/user}/dtos/update-user.dto.d.ts +0 -0
  422. /package/dist/{user → modules/user}/dtos/update-user.dto.js +0 -0
package/README.md CHANGED
@@ -1,46 +1,368 @@
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
+
49
+ - Configures TypeORM connection for the auth database (named connection)
50
+ - Loads `UserModule` (simple module for user management)
51
+ - Loads `AuthModule` (simple module for authentication)
52
+ 2. **`UserModule`** - Simple module that:
53
+
54
+ - Uses `TypeOrmModule.forFeature([User], AUTH_DATABASE_CONNECTION)`
55
+ - Provides `UserService` for CRUD operations
56
+ - Exports `UserService` and `TypeOrmModule`
57
+ 3. **`AuthModule`** - Simple module that:
58
+
59
+ - Imports `UserModule` directly
60
+ - Configures JWT using `JwtModule.registerAsync()` with `ConfigService`
61
+ - Provides `AuthService` and `JwtStrategy`
62
+ - Exports `AuthService`
63
+
64
+ This architecture ensures:
65
+
66
+ - ✅ Clear separation of concerns
67
+ - ✅ Proper dependency resolution
68
+ - ✅ Simple, maintainable code structure
69
+ - ✅ Follows NestJS best practices
70
+
71
+ ---
72
+
73
+ ## 📖 Usage
74
+
75
+ ### 1. Basic Setup
76
+
77
+ In your `app.module.ts`:
78
+
79
+ ```typescript
80
+ import { Module } from "@nestjs/common";
81
+ import { ConfigModule } from "@nestjs/config";
82
+ import { TypeOrmModule } from "@nestjs/typeorm";
83
+ import { AuthorizationGuardModule } from "@evara-group/guard";
84
+
85
+ @Module({
86
+ imports: [
87
+ // Global configuration
88
+ ConfigModule.forRoot({
89
+ isGlobal: true,
90
+ envFilePath: [".env"],
91
+ }),
92
+
93
+ // Your application database connection (for business entities)
94
+ TypeOrmModule.forRootAsync({
95
+ // Your app database configuration
96
+ // ...
97
+ }),
98
+
99
+ // Authorization Guard Module - Unified module that configures auth database and loads UserModule & AuthModule
100
+ AuthorizationGuardModule.forRoot({
101
+ database: {
102
+ name: process.env.AUTH_DATABASE_NAME || "auth_db",
103
+ host: process.env.AUTH_DATABASE_HOST || "localhost",
104
+ port: Number(process.env.AUTH_DATABASE_PORT || "5432"),
105
+ user: process.env.AUTH_DATABASE_USER || "postgres",
106
+ password: process.env.AUTH_DATABASE_PASSWORD || "postgres",
107
+ ssl: process.env.AUTH_DATABASE_SSL === "true" || false,
108
+ },
109
+ jwtSecret: process.env.JWT_SECRET || "your-secret-key",
110
+ expiresIn: "7d", // Optional, defaults to '7d'
111
+ }),
112
+
113
+ // Your other modules...
114
+ ],
115
+ })
116
+ export class AppModule {}
117
+ ```
118
+
119
+ ### 2. Environment Variables
120
+
121
+ Create a `.env` file:
122
+
123
+ ```env
124
+ # Auth Database Configuration
125
+ AUTH_DATABASE_NAME=auth_db
126
+ AUTH_DATABASE_HOST=localhost
127
+ AUTH_DATABASE_PORT=5432
128
+ AUTH_DATABASE_USER=postgres
129
+ AUTH_DATABASE_PASSWORD=postgres
130
+ AUTH_DATABASE_SSL=false
131
+
132
+ # JWT Configuration
133
+ JWT_SECRET=your-super-secret-jwt-key-change-this-in-production
134
+ ```
135
+
136
+ ### 3. Protecting Routes
137
+
138
+ ```typescript
139
+ import { Controller, Get } from "@nestjs/common";
140
+ import { AuthGuard, RolesGuard, Roles, AuthUser } from "@evara-group/guard";
141
+ import { UseGuards } from "@nestjs/common";
142
+ import { UserDTO } from "@evara-group/guard";
143
+
144
+ @Controller("protected")
145
+ @UseGuards(AuthGuard, RolesGuard)
146
+ export class ProtectedController {
147
+ @Get("profile")
148
+ @Roles("user", "admin") // Allow both user and admin roles
149
+ getProfile(@AuthUser() user: UserDTO) {
150
+ return {
151
+ message: `Hello ${user.email}`,
152
+ user: user,
153
+ };
154
+ }
155
+
156
+ @Get("admin-only")
157
+ @Roles("admin") // Only admin can access
158
+ adminOnly() {
159
+ return { message: "Admin area" };
160
+ }
41
161
  }
162
+ ```
163
+
164
+ ### 4. Using Auth Service
42
165
 
43
- export enum Permission {
44
- ReadScenarios = 'scenarios:read',
45
- EditScenarios = 'scenarios:edit',
166
+ ```typescript
167
+ import { Injectable } from "@nestjs/common";
168
+ import { AuthService } from "@evara-group/guard";
169
+
170
+ @Injectable()
171
+ export class MyService {
172
+ constructor(private readonly authService: AuthService) {}
173
+
174
+ async login(email: string, password: string) {
175
+ return this.authService.login({ email, password });
176
+ }
46
177
  }
178
+ ```
179
+
180
+ ### 5. Using User Service
181
+
182
+ ```typescript
183
+ import { Injectable } from "@nestjs/common";
184
+ import { UserService } from "@evara-group/guard";
185
+
186
+ @Injectable()
187
+ export class MyService {
188
+ constructor(private readonly userService: UserService) {}
189
+
190
+ async getUserById(id: number) {
191
+ return this.userService.findById(id);
192
+ }
193
+
194
+ async createUser(userData: CreateUserDTO) {
195
+ return this.userService.save(userData);
196
+ }
197
+ }
198
+ ```
199
+
200
+ ---
201
+
202
+ ## 🔐 Database Setup
203
+
204
+ ### Create the Auth Database
205
+
206
+ The package requires a separate PostgreSQL database for authentication. Create it:
207
+
208
+ ```sql
209
+ CREATE DATABASE auth_db;
210
+ ```
211
+
212
+ ### Run Migrations
213
+
214
+ The package uses TypeORM entities. You'll need to:
215
+
216
+ 1. **Option 1: Use TypeORM migrations** (recommended)
217
+
218
+ - Generate migration from the `User` entity
219
+ - Run migrations on your auth database
220
+ 2. **Option 2: Use synchronize** (development only)
221
+
222
+ - Modify `AuthorizationGuardModule.forRoot()` to set `synchronize: true` in the TypeORM config (NOT recommended for production)
223
+
224
+ ### User Entity Schema
225
+
226
+ The package includes a `User` entity with the following fields:
227
+
228
+ - `id` - Primary key
229
+ - `email` - Unique email address
230
+ - `password` - Hashed password
231
+ - `username` - Optional username
232
+ - `activated` - Account activation status
233
+ - `imageUrl` - Optional profile image URL
234
+ - `role` - User role (enum: UserRole)
235
+ - `resetPasswordRequest` - Password reset flag
236
+ - `createdAt`, `updatedAt`, `deletedAt` - Timestamps
237
+ - `createdBy`, `updatedBy`, `deletedBy` - Audit fields
238
+
239
+ ---
240
+
241
+ ## 🎯 API Reference
242
+
243
+ ### AuthorizationGuardModule
244
+
245
+ #### `AuthorizationGuardModule.forRoot(options: GuardModuleOptions)`
246
+
247
+ 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.
248
+
249
+ **Options:**
250
+
251
+ - `database` - Database configuration object
252
+ - `name` - Database name
253
+ - `host` - Database host
254
+ - `port` - Database port (number)
255
+ - `user` - Database user
256
+ - `password` - Database password
257
+ - `ssl` - Enable SSL (optional, boolean)
258
+ - `jwtSecret` - JWT secret key (required)
259
+ - `expiresIn` - Token expiration time (optional, default: '7d')
260
+
261
+ **Architecture:**
262
+
263
+ The module follows the same pattern as dms-new-backend-nestjs:
264
+
265
+ 1. Configures TypeORM connection first (with named connection `AUTH_DATABASE_CONNECTION`)
266
+ 2. Loads `UserModule` (simple module that uses the configured TypeORM connection)
267
+ 3. Loads `AuthModule` (simple module that imports `UserModule` and configures JWT)
268
+
269
+ This ensures proper dependency resolution and follows NestJS best practices.
270
+
271
+ ### Guards
272
+
273
+ #### `AuthGuard`
274
+
275
+ Protects routes requiring authentication. Validates JWT tokens.
276
+
277
+ #### `RolesGuard`
278
+
279
+ Checks user roles against route requirements. Must be used with `@Roles()` decorator.
280
+
281
+ ### Decorators
282
+
283
+ #### `@Roles(...roles: string[])`
284
+
285
+ Specifies which roles can access a route.
286
+
287
+ #### `@AuthUser()`
288
+
289
+ Extracts the authenticated user from the request.
290
+
291
+ ### Services
292
+
293
+ #### `AuthService`
294
+
295
+ - `login(dto: AuthLoginDTO)` - Authenticate user and return JWT token
296
+ - `validateUser(payload: JwtPayload)` - Validate user from JWT payload
297
+
298
+ #### `UserService`
299
+
300
+ - `findById(id: number)` - Find user by ID
301
+ - `findByFields(options)` - Find user by custom criteria
302
+ - `save(userDTO, creator?, updatePassword?)` - Create or update user
303
+ - `update(userDTO, updater?)` - Update user
304
+ - `delete(userDTO)` - Delete user
305
+ - `findAndCount(options)` - Find users with pagination
306
+
307
+ ---
308
+
309
+ ## 🔄 Multiple Applications Setup
310
+
311
+ This package is designed to be reused across multiple applications. Each application can:
312
+
313
+ 1. **Share the same auth database** - All apps authenticate against the same user database
314
+ 2. **Have separate application databases** - Each app has its own business data
315
+
316
+ Example setup:
317
+
318
+ ```
319
+ Application A (E-commerce)
320
+ ├── Auth Database (shared) ← Users from @evara-group/guard
321
+ └── App Database A ← Products, Orders, etc.
322
+
323
+ Application B (CMS)
324
+ ├── Auth Database (shared) ← Users from @evara-group/guard
325
+ └── App Database B ← Articles, Pages, etc.
326
+ ```
327
+
328
+ Both applications use the same `AuthorizationGuardModule.forRoot()` configuration pointing to the same auth database, but each has its own application database.
329
+
330
+ ---
331
+
332
+ ## 🛠️ Development
333
+
334
+ ### Building the Package
335
+
336
+ ```bash
337
+ pnpm build
338
+ ```
339
+
340
+ ### Running Tests
341
+
342
+ ```bash
343
+ pnpm test
344
+ ```
345
+
346
+ ---
347
+
348
+ ## 📝 Notes
349
+
350
+ - The package uses a **named TypeORM connection** (`AUTH_DATABASE_CONNECTION`) to avoid conflicts
351
+ - Never set `synchronize: true` in production
352
+ - Always use strong JWT secrets in production
353
+ - The auth database is completely isolated from your application database
354
+ - All password operations use bcrypt for security
355
+
356
+ ---
357
+
358
+ ## 📄 License
359
+
360
+ ISC
361
+
362
+ ---
363
+
364
+ ## 👤 Author
365
+
366
+ bassem elsayed
367
+
368
+ 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
+ }