@spinajs/rbac 2.0.185 → 2.0.187

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 (321) hide show
  1. package/lib/cjs/actions.d.ts +75 -0
  2. package/lib/cjs/actions.d.ts.map +1 -0
  3. package/lib/cjs/actions.js +266 -0
  4. package/lib/cjs/actions.js.map +1 -0
  5. package/lib/cjs/auth.d.ts +5 -5
  6. package/lib/cjs/auth.d.ts.map +1 -1
  7. package/lib/cjs/auth.js +24 -51
  8. package/lib/cjs/auth.js.map +1 -1
  9. package/lib/cjs/cli/ActivateUser.d.ts.map +1 -1
  10. package/lib/cjs/cli/ActivateUser.js +6 -11
  11. package/lib/cjs/cli/ActivateUser.js.map +1 -1
  12. package/lib/cjs/cli/BanUser.d.ts +1 -3
  13. package/lib/cjs/cli/BanUser.d.ts.map +1 -1
  14. package/lib/cjs/cli/BanUser.js +9 -34
  15. package/lib/cjs/cli/BanUser.js.map +1 -1
  16. package/lib/cjs/cli/ChangeUserPassword.d.ts +0 -5
  17. package/lib/cjs/cli/ChangeUserPassword.d.ts.map +1 -1
  18. package/lib/cjs/cli/ChangeUserPassword.js +8 -29
  19. package/lib/cjs/cli/ChangeUserPassword.js.map +1 -1
  20. package/lib/cjs/cli/CreateUser.d.ts +0 -4
  21. package/lib/cjs/cli/CreateUser.d.ts.map +1 -1
  22. package/lib/cjs/cli/CreateUser.js +6 -37
  23. package/lib/cjs/cli/CreateUser.js.map +1 -1
  24. package/lib/cjs/cli/DeleteUser.d.ts.map +1 -1
  25. package/lib/cjs/cli/DeleteUser.js +13 -6
  26. package/lib/cjs/cli/DeleteUser.js.map +1 -1
  27. package/lib/cjs/cli/FindUser.d.ts +1 -7
  28. package/lib/cjs/cli/FindUser.d.ts.map +1 -1
  29. package/lib/cjs/cli/FindUser.js +8 -18
  30. package/lib/cjs/cli/FindUser.js.map +1 -1
  31. package/lib/cjs/cli/GrantUserRole.d.ts +0 -2
  32. package/lib/cjs/cli/GrantUserRole.d.ts.map +1 -1
  33. package/lib/cjs/cli/GrantUserRole.js +13 -18
  34. package/lib/cjs/cli/GrantUserRole.js.map +1 -1
  35. package/lib/cjs/cli/RevokeUserRole.d.ts +0 -2
  36. package/lib/cjs/cli/RevokeUserRole.d.ts.map +1 -1
  37. package/lib/cjs/cli/RevokeUserRole.js +13 -17
  38. package/lib/cjs/cli/RevokeUserRole.js.map +1 -1
  39. package/lib/cjs/cli/UnbanUserSchedule.d.ts.map +1 -1
  40. package/lib/cjs/cli/UnbanUserSchedule.js +1 -15
  41. package/lib/cjs/cli/UnbanUserSchedule.js.map +1 -1
  42. package/lib/cjs/config/rbac.d.ts +45 -16
  43. package/lib/cjs/config/rbac.d.ts.map +1 -1
  44. package/lib/cjs/config/rbac.js +44 -10
  45. package/lib/cjs/config/rbac.js.map +1 -1
  46. package/lib/cjs/events/UserActivated.d.ts +2 -4
  47. package/lib/cjs/events/UserActivated.d.ts.map +1 -1
  48. package/lib/cjs/events/UserActivated.js +3 -10
  49. package/lib/cjs/events/UserActivated.js.map +1 -1
  50. package/lib/cjs/events/UserBanned.d.ts +2 -5
  51. package/lib/cjs/events/UserBanned.d.ts.map +1 -1
  52. package/lib/cjs/events/UserBanned.js +3 -11
  53. package/lib/cjs/events/UserBanned.js.map +1 -1
  54. package/lib/{mjs/events/NewUser.d.ts → cjs/events/UserCreated.d.ts} +4 -3
  55. package/lib/cjs/events/UserCreated.d.ts.map +1 -0
  56. package/lib/cjs/events/{UserMetadataDeleted.js → UserCreated.js} +10 -10
  57. package/lib/cjs/events/UserCreated.js.map +1 -0
  58. package/lib/cjs/events/UserDeactivated.d.ts +2 -4
  59. package/lib/cjs/events/UserDeactivated.d.ts.map +1 -1
  60. package/lib/cjs/events/UserDeactivated.js +3 -10
  61. package/lib/cjs/events/UserDeactivated.js.map +1 -1
  62. package/lib/cjs/events/UserDeleted.d.ts +2 -4
  63. package/lib/cjs/events/UserDeleted.d.ts.map +1 -1
  64. package/lib/cjs/events/UserDeleted.js +3 -10
  65. package/lib/cjs/events/UserDeleted.js.map +1 -1
  66. package/lib/cjs/events/UserEvent.d.ts +7 -0
  67. package/lib/cjs/events/UserEvent.d.ts.map +1 -0
  68. package/lib/cjs/events/{UserMetadataAdded.js → UserEvent.js} +10 -9
  69. package/lib/cjs/events/UserEvent.js.map +1 -0
  70. package/lib/cjs/events/UserLogged.d.ts +4 -0
  71. package/lib/cjs/events/UserLogged.d.ts.map +1 -0
  72. package/lib/cjs/events/{NewUser.js → UserLogged.js} +7 -6
  73. package/lib/cjs/events/UserLogged.js.map +1 -0
  74. package/lib/cjs/events/UserLoginFailed.d.ts +7 -0
  75. package/lib/cjs/events/UserLoginFailed.d.ts.map +1 -0
  76. package/lib/cjs/events/{UserMetadataChanged.js → UserLoginFailed.js} +12 -10
  77. package/lib/cjs/events/UserLoginFailed.js.map +1 -0
  78. package/lib/cjs/events/UserMetadataChange.d.ts +14 -0
  79. package/lib/cjs/events/UserMetadataChange.d.ts.map +1 -0
  80. package/lib/cjs/events/UserMetadataChange.js +28 -0
  81. package/lib/cjs/events/UserMetadataChange.js.map +1 -0
  82. package/lib/cjs/events/UserPasswordChangeRequest.d.ts +4 -0
  83. package/lib/cjs/events/UserPasswordChangeRequest.d.ts.map +1 -0
  84. package/lib/cjs/events/UserPasswordChangeRequest.js +18 -0
  85. package/lib/cjs/events/UserPasswordChangeRequest.js.map +1 -0
  86. package/lib/cjs/events/UserPasswordChanged.d.ts +2 -4
  87. package/lib/cjs/events/UserPasswordChanged.d.ts.map +1 -1
  88. package/lib/cjs/events/UserPasswordChanged.js +3 -10
  89. package/lib/cjs/events/UserPasswordChanged.js.map +1 -1
  90. package/lib/cjs/events/UserPropertyChanged.d.ts +2 -6
  91. package/lib/cjs/events/UserPropertyChanged.d.ts.map +1 -1
  92. package/lib/cjs/events/UserPropertyChanged.js +6 -5
  93. package/lib/cjs/events/UserPropertyChanged.js.map +1 -1
  94. package/lib/cjs/events/UserRoleGranted.d.ts +5 -4
  95. package/lib/cjs/events/UserRoleGranted.d.ts.map +1 -1
  96. package/lib/cjs/events/UserRoleGranted.js +7 -5
  97. package/lib/cjs/events/UserRoleGranted.js.map +1 -1
  98. package/lib/cjs/events/UserRoleRevoked.d.ts +5 -4
  99. package/lib/cjs/events/UserRoleRevoked.d.ts.map +1 -1
  100. package/lib/cjs/events/UserRoleRevoked.js +7 -5
  101. package/lib/cjs/events/UserRoleRevoked.js.map +1 -1
  102. package/lib/cjs/events/UserUnbanned.d.ts +2 -4
  103. package/lib/cjs/events/UserUnbanned.d.ts.map +1 -1
  104. package/lib/cjs/events/UserUnbanned.js +3 -10
  105. package/lib/cjs/events/UserUnbanned.js.map +1 -1
  106. package/lib/cjs/events/index.d.ts +4 -4
  107. package/lib/cjs/events/index.d.ts.map +1 -1
  108. package/lib/cjs/events/index.js +4 -4
  109. package/lib/cjs/events/index.js.map +1 -1
  110. package/lib/cjs/index.d.ts +1 -1
  111. package/lib/cjs/index.d.ts.map +1 -1
  112. package/lib/cjs/index.js +1 -1
  113. package/lib/cjs/index.js.map +1 -1
  114. package/lib/cjs/interfaces.d.ts +11 -33
  115. package/lib/cjs/interfaces.d.ts.map +1 -1
  116. package/lib/cjs/interfaces.js +4 -4
  117. package/lib/cjs/interfaces.js.map +1 -1
  118. package/lib/cjs/migrations/RBACInitial_2022_06_28_01_13_00.d.ts.map +1 -1
  119. package/lib/cjs/migrations/RBACInitial_2022_06_28_01_13_00.js +3 -14
  120. package/lib/cjs/migrations/RBACInitial_2022_06_28_01_13_00.js.map +1 -1
  121. package/lib/cjs/models/User.d.ts +94 -28
  122. package/lib/cjs/models/User.d.ts.map +1 -1
  123. package/lib/cjs/models/User.js +150 -105
  124. package/lib/cjs/models/User.js.map +1 -1
  125. package/lib/cjs/models/UserMetadata.d.ts +2 -6
  126. package/lib/cjs/models/UserMetadata.d.ts.map +1 -1
  127. package/lib/cjs/models/UserMetadata.js +1 -9
  128. package/lib/cjs/models/UserMetadata.js.map +1 -1
  129. package/lib/cjs/session.d.ts +1 -1
  130. package/lib/cjs/session.d.ts.map +1 -1
  131. package/lib/cjs/session.js +6 -6
  132. package/lib/cjs/session.js.map +1 -1
  133. package/lib/mjs/actions.d.ts +75 -0
  134. package/lib/mjs/actions.d.ts.map +1 -0
  135. package/lib/mjs/actions.js +242 -0
  136. package/lib/mjs/actions.js.map +1 -0
  137. package/lib/mjs/auth.d.ts +5 -5
  138. package/lib/mjs/auth.d.ts.map +1 -1
  139. package/lib/mjs/auth.js +24 -51
  140. package/lib/mjs/auth.js.map +1 -1
  141. package/lib/mjs/cli/ActivateUser.d.ts.map +1 -1
  142. package/lib/mjs/cli/ActivateUser.js +6 -11
  143. package/lib/mjs/cli/ActivateUser.js.map +1 -1
  144. package/lib/mjs/cli/BanUser.d.ts +1 -3
  145. package/lib/mjs/cli/BanUser.d.ts.map +1 -1
  146. package/lib/mjs/cli/BanUser.js +9 -34
  147. package/lib/mjs/cli/BanUser.js.map +1 -1
  148. package/lib/mjs/cli/ChangeUserPassword.d.ts +0 -5
  149. package/lib/mjs/cli/ChangeUserPassword.d.ts.map +1 -1
  150. package/lib/mjs/cli/ChangeUserPassword.js +8 -29
  151. package/lib/mjs/cli/ChangeUserPassword.js.map +1 -1
  152. package/lib/mjs/cli/CreateUser.d.ts +0 -4
  153. package/lib/mjs/cli/CreateUser.d.ts.map +1 -1
  154. package/lib/mjs/cli/CreateUser.js +6 -37
  155. package/lib/mjs/cli/CreateUser.js.map +1 -1
  156. package/lib/mjs/cli/DeleteUser.d.ts.map +1 -1
  157. package/lib/mjs/cli/DeleteUser.js +13 -6
  158. package/lib/mjs/cli/DeleteUser.js.map +1 -1
  159. package/lib/mjs/cli/FindUser.d.ts +1 -7
  160. package/lib/mjs/cli/FindUser.d.ts.map +1 -1
  161. package/lib/mjs/cli/FindUser.js +8 -18
  162. package/lib/mjs/cli/FindUser.js.map +1 -1
  163. package/lib/mjs/cli/GrantUserRole.d.ts +0 -2
  164. package/lib/mjs/cli/GrantUserRole.d.ts.map +1 -1
  165. package/lib/mjs/cli/GrantUserRole.js +13 -15
  166. package/lib/mjs/cli/GrantUserRole.js.map +1 -1
  167. package/lib/mjs/cli/RevokeUserRole.d.ts +0 -2
  168. package/lib/mjs/cli/RevokeUserRole.d.ts.map +1 -1
  169. package/lib/mjs/cli/RevokeUserRole.js +13 -14
  170. package/lib/mjs/cli/RevokeUserRole.js.map +1 -1
  171. package/lib/mjs/cli/UnbanUserSchedule.d.ts.map +1 -1
  172. package/lib/mjs/cli/UnbanUserSchedule.js +1 -15
  173. package/lib/mjs/cli/UnbanUserSchedule.js.map +1 -1
  174. package/lib/mjs/config/rbac.d.ts +45 -16
  175. package/lib/mjs/config/rbac.d.ts.map +1 -1
  176. package/lib/mjs/config/rbac.js +44 -10
  177. package/lib/mjs/config/rbac.js.map +1 -1
  178. package/lib/mjs/events/UserActivated.d.ts +2 -4
  179. package/lib/mjs/events/UserActivated.d.ts.map +1 -1
  180. package/lib/mjs/events/UserActivated.js +4 -11
  181. package/lib/mjs/events/UserActivated.js.map +1 -1
  182. package/lib/mjs/events/UserBanned.d.ts +2 -5
  183. package/lib/mjs/events/UserBanned.d.ts.map +1 -1
  184. package/lib/mjs/events/UserBanned.js +4 -12
  185. package/lib/mjs/events/UserBanned.js.map +1 -1
  186. package/lib/{cjs/events/NewUser.d.ts → mjs/events/UserCreated.d.ts} +4 -3
  187. package/lib/mjs/events/UserCreated.d.ts.map +1 -0
  188. package/lib/mjs/events/{UserMetadataChanged.js → UserCreated.js} +10 -10
  189. package/lib/mjs/events/UserCreated.js.map +1 -0
  190. package/lib/mjs/events/UserDeactivated.d.ts +2 -4
  191. package/lib/mjs/events/UserDeactivated.d.ts.map +1 -1
  192. package/lib/mjs/events/UserDeactivated.js +4 -11
  193. package/lib/mjs/events/UserDeactivated.js.map +1 -1
  194. package/lib/mjs/events/UserDeleted.d.ts +2 -4
  195. package/lib/mjs/events/UserDeleted.d.ts.map +1 -1
  196. package/lib/mjs/events/UserDeleted.js +4 -11
  197. package/lib/mjs/events/UserDeleted.js.map +1 -1
  198. package/lib/mjs/events/UserEvent.d.ts +7 -0
  199. package/lib/mjs/events/UserEvent.d.ts.map +1 -0
  200. package/lib/mjs/events/{UserMetadataAdded.js → UserEvent.js} +9 -8
  201. package/lib/mjs/events/UserEvent.js.map +1 -0
  202. package/lib/mjs/events/UserLogged.d.ts +4 -0
  203. package/lib/mjs/events/UserLogged.d.ts.map +1 -0
  204. package/lib/mjs/events/{NewUser.js → UserLogged.js} +7 -6
  205. package/lib/mjs/events/UserLogged.js.map +1 -0
  206. package/lib/mjs/events/UserLoginFailed.d.ts +7 -0
  207. package/lib/mjs/events/UserLoginFailed.d.ts.map +1 -0
  208. package/lib/mjs/events/{UserMetadataDeleted.js → UserLoginFailed.js} +12 -10
  209. package/lib/mjs/events/UserLoginFailed.js.map +1 -0
  210. package/lib/mjs/events/UserMetadataChange.d.ts +14 -0
  211. package/lib/mjs/events/UserMetadataChange.d.ts.map +1 -0
  212. package/lib/mjs/events/UserMetadataChange.js +25 -0
  213. package/lib/mjs/events/UserMetadataChange.js.map +1 -0
  214. package/lib/mjs/events/UserPasswordChangeRequest.d.ts +4 -0
  215. package/lib/mjs/events/UserPasswordChangeRequest.d.ts.map +1 -0
  216. package/lib/mjs/events/UserPasswordChangeRequest.js +15 -0
  217. package/lib/mjs/events/UserPasswordChangeRequest.js.map +1 -0
  218. package/lib/mjs/events/UserPasswordChanged.d.ts +2 -4
  219. package/lib/mjs/events/UserPasswordChanged.d.ts.map +1 -1
  220. package/lib/mjs/events/UserPasswordChanged.js +4 -11
  221. package/lib/mjs/events/UserPasswordChanged.js.map +1 -1
  222. package/lib/mjs/events/UserPropertyChanged.d.ts +2 -6
  223. package/lib/mjs/events/UserPropertyChanged.d.ts.map +1 -1
  224. package/lib/mjs/events/UserPropertyChanged.js +6 -5
  225. package/lib/mjs/events/UserPropertyChanged.js.map +1 -1
  226. package/lib/mjs/events/UserRoleGranted.d.ts +5 -4
  227. package/lib/mjs/events/UserRoleGranted.d.ts.map +1 -1
  228. package/lib/mjs/events/UserRoleGranted.js +8 -6
  229. package/lib/mjs/events/UserRoleGranted.js.map +1 -1
  230. package/lib/mjs/events/UserRoleRevoked.d.ts +5 -4
  231. package/lib/mjs/events/UserRoleRevoked.d.ts.map +1 -1
  232. package/lib/mjs/events/UserRoleRevoked.js +8 -6
  233. package/lib/mjs/events/UserRoleRevoked.js.map +1 -1
  234. package/lib/mjs/events/UserUnbanned.d.ts +2 -4
  235. package/lib/mjs/events/UserUnbanned.d.ts.map +1 -1
  236. package/lib/mjs/events/UserUnbanned.js +4 -11
  237. package/lib/mjs/events/UserUnbanned.js.map +1 -1
  238. package/lib/mjs/events/index.d.ts +4 -4
  239. package/lib/mjs/events/index.d.ts.map +1 -1
  240. package/lib/mjs/events/index.js +4 -4
  241. package/lib/mjs/events/index.js.map +1 -1
  242. package/lib/mjs/index.d.ts +1 -1
  243. package/lib/mjs/index.d.ts.map +1 -1
  244. package/lib/mjs/index.js +1 -1
  245. package/lib/mjs/index.js.map +1 -1
  246. package/lib/mjs/interfaces.d.ts +11 -33
  247. package/lib/mjs/interfaces.d.ts.map +1 -1
  248. package/lib/mjs/interfaces.js +4 -4
  249. package/lib/mjs/interfaces.js.map +1 -1
  250. package/lib/mjs/migrations/RBACInitial_2022_06_28_01_13_00.d.ts.map +1 -1
  251. package/lib/mjs/migrations/RBACInitial_2022_06_28_01_13_00.js +3 -14
  252. package/lib/mjs/migrations/RBACInitial_2022_06_28_01_13_00.js.map +1 -1
  253. package/lib/mjs/models/User.d.ts +94 -28
  254. package/lib/mjs/models/User.d.ts.map +1 -1
  255. package/lib/mjs/models/User.js +150 -105
  256. package/lib/mjs/models/User.js.map +1 -1
  257. package/lib/mjs/models/UserMetadata.d.ts +2 -6
  258. package/lib/mjs/models/UserMetadata.d.ts.map +1 -1
  259. package/lib/mjs/models/UserMetadata.js +2 -10
  260. package/lib/mjs/models/UserMetadata.js.map +1 -1
  261. package/lib/mjs/session.d.ts +1 -1
  262. package/lib/mjs/session.d.ts.map +1 -1
  263. package/lib/mjs/session.js +5 -5
  264. package/lib/mjs/session.js.map +1 -1
  265. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  266. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  267. package/package.json +16 -18
  268. package/lib/cjs/cli/ClearUserTimelineSchedule.d.ts +0 -9
  269. package/lib/cjs/cli/ClearUserTimelineSchedule.d.ts.map +0 -1
  270. package/lib/cjs/cli/ClearUserTimelineSchedule.js +0 -55
  271. package/lib/cjs/cli/ClearUserTimelineSchedule.js.map +0 -1
  272. package/lib/cjs/cli/LatestUserEvents.d.ts +0 -7
  273. package/lib/cjs/cli/LatestUserEvents.d.ts.map +0 -1
  274. package/lib/cjs/cli/LatestUserEvents.js +0 -38
  275. package/lib/cjs/cli/LatestUserEvents.js.map +0 -1
  276. package/lib/cjs/events/NewUser.d.ts.map +0 -1
  277. package/lib/cjs/events/NewUser.js.map +0 -1
  278. package/lib/cjs/events/UserMetadataAdded.d.ts +0 -6
  279. package/lib/cjs/events/UserMetadataAdded.d.ts.map +0 -1
  280. package/lib/cjs/events/UserMetadataAdded.js.map +0 -1
  281. package/lib/cjs/events/UserMetadataChanged.d.ts +0 -6
  282. package/lib/cjs/events/UserMetadataChanged.d.ts.map +0 -1
  283. package/lib/cjs/events/UserMetadataChanged.js.map +0 -1
  284. package/lib/cjs/events/UserMetadataDeleted.d.ts +0 -6
  285. package/lib/cjs/events/UserMetadataDeleted.d.ts.map +0 -1
  286. package/lib/cjs/events/UserMetadataDeleted.js.map +0 -1
  287. package/lib/cjs/jobs/UnbanUser.d.ts +0 -10
  288. package/lib/cjs/jobs/UnbanUser.d.ts.map +0 -1
  289. package/lib/cjs/jobs/UnbanUser.js +0 -44
  290. package/lib/cjs/jobs/UnbanUser.js.map +0 -1
  291. package/lib/cjs/models/UserTimeline.d.ts +0 -29
  292. package/lib/cjs/models/UserTimeline.d.ts.map +0 -1
  293. package/lib/cjs/models/UserTimeline.js +0 -47
  294. package/lib/cjs/models/UserTimeline.js.map +0 -1
  295. package/lib/mjs/cli/ClearUserTimelineSchedule.d.ts +0 -9
  296. package/lib/mjs/cli/ClearUserTimelineSchedule.d.ts.map +0 -1
  297. package/lib/mjs/cli/ClearUserTimelineSchedule.js +0 -52
  298. package/lib/mjs/cli/ClearUserTimelineSchedule.js.map +0 -1
  299. package/lib/mjs/cli/LatestUserEvents.d.ts +0 -7
  300. package/lib/mjs/cli/LatestUserEvents.d.ts.map +0 -1
  301. package/lib/mjs/cli/LatestUserEvents.js +0 -35
  302. package/lib/mjs/cli/LatestUserEvents.js.map +0 -1
  303. package/lib/mjs/events/NewUser.d.ts.map +0 -1
  304. package/lib/mjs/events/NewUser.js.map +0 -1
  305. package/lib/mjs/events/UserMetadataAdded.d.ts +0 -6
  306. package/lib/mjs/events/UserMetadataAdded.d.ts.map +0 -1
  307. package/lib/mjs/events/UserMetadataAdded.js.map +0 -1
  308. package/lib/mjs/events/UserMetadataChanged.d.ts +0 -6
  309. package/lib/mjs/events/UserMetadataChanged.d.ts.map +0 -1
  310. package/lib/mjs/events/UserMetadataChanged.js.map +0 -1
  311. package/lib/mjs/events/UserMetadataDeleted.d.ts +0 -6
  312. package/lib/mjs/events/UserMetadataDeleted.d.ts.map +0 -1
  313. package/lib/mjs/events/UserMetadataDeleted.js.map +0 -1
  314. package/lib/mjs/jobs/UnbanUser.d.ts +0 -10
  315. package/lib/mjs/jobs/UnbanUser.d.ts.map +0 -1
  316. package/lib/mjs/jobs/UnbanUser.js +0 -41
  317. package/lib/mjs/jobs/UnbanUser.js.map +0 -1
  318. package/lib/mjs/models/UserTimeline.d.ts +0 -29
  319. package/lib/mjs/models/UserTimeline.d.ts.map +0 -1
  320. package/lib/mjs/models/UserTimeline.js +0 -44
  321. package/lib/mjs/models/UserTimeline.js.map +0 -1
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.MemorySessionStore = exports.Session = void 0;
15
+ exports.MemorySessionStore = exports.UserSession = void 0;
16
16
  const luxon_1 = require("luxon");
17
17
  const interfaces_js_1 = require("./interfaces.js");
18
18
  const di_1 = require("@spinajs/di");
@@ -22,7 +22,7 @@ const lodash_1 = __importDefault(require("lodash"));
22
22
  /**
23
23
  * Session base class
24
24
  */
25
- let Session = class Session {
25
+ let UserSession = class UserSession {
26
26
  constructor(session) {
27
27
  this.SessionId = (0, uuid_1.v4)();
28
28
  /**
@@ -44,15 +44,15 @@ let Session = class Session {
44
44
  this.Expiration = luxon_1.DateTime.now().plus({ seconds: seconds ? seconds : this.SessionExpirationTime });
45
45
  }
46
46
  };
47
- exports.Session = Session;
47
+ exports.UserSession = UserSession;
48
48
  __decorate([
49
49
  (0, configuration_1.Config)('rbac.session.expiration'),
50
50
  __metadata("design:type", Number)
51
- ], Session.prototype, "SessionExpirationTime", void 0);
52
- exports.Session = Session = __decorate([
51
+ ], UserSession.prototype, "SessionExpirationTime", void 0);
52
+ exports.UserSession = UserSession = __decorate([
53
53
  (0, di_1.NewInstance)(),
54
54
  __metadata("design:paramtypes", [Object])
55
- ], Session);
55
+ ], UserSession);
56
56
  /**
57
57
  * Simple session storage in memory, for testing or rapid prototyping
58
58
  */
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iCAAiC;AACjC,mDAA4D;AAC5D,oCAAsD;AACtD,0DAAgD;AAChD,+BAAoC;AACpC,oDAAuB;AAEvB;;GAEG;AAEI,IAAM,OAAO,GAAb,MAAM,OAAO;IAelB,YAAY,OAA2B;QAXhC,cAAS,GAAW,IAAA,SAAM,GAAE,CAAC;QAEpC;;WAEG;QACI,eAAU,GAAa,IAAI,CAAC;QAE5B,SAAI,GAAyB,IAAI,GAAG,EAAE,CAAC;QAEvC,aAAQ,GAAa,gBAAQ,CAAC,GAAG,EAAE,CAAC;QAGzC,IAAI,OAAO,EAAE;YACX,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAC9B;IACH,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,OAAgB;QAC5B,IAAI,CAAC,UAAU,GAAG,gBAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACrG,CAAC;CACF,CAAA;AA7BY,0BAAO;AAER;IADT,IAAA,sBAAM,EAAC,yBAAyB,CAAC;;sDACM;kBAF7B,OAAO;IADnB,IAAA,gBAAW,GAAE;;GACD,OAAO,CA6BnB;AAED;;GAEG;AAEI,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,+BAAyB;IAA1D;;QACK,aAAQ,GAA0B,IAAI,GAAG,EAAoB,CAAC;IAuC1E,CAAC;IArCQ,KAAK,CAAC,QAAQ;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC9C,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,OAAiB;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,SAAiB;QACpC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YAChC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,GAAG,gBAAQ,CAAC,GAAG,EAAE,EAAE;gBAC9D,OAAO,OAAO,CAAC;aAChB;YACD,OAAO,IAAI,CAAC;SACb;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,SAAiB;QACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YAChC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACjC;IACH,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAA8B,EAAE,IAAa;QAC7D,IAAI,gBAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAEzC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;gBACtB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAG,IAAY,CAAC,GAAG,CAAC,CAAC,CAAC;aACrC;SACF;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;SACvD;IACH,CAAC;CACF,CAAA;AAxCY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,eAAU,EAAC,+BAAe,CAAC;GACf,kBAAkB,CAwC9B"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iCAAiC;AACjC,mDAA4D;AAC5D,oCAAsD;AACtD,0DAAgD;AAChD,+BAAoC;AACpC,oDAAuB;AAEvB;;GAEG;AAEI,IAAM,WAAW,GAAjB,MAAM,WAAW;IAetB,YAAY,OAA2B;QAXhC,cAAS,GAAW,IAAA,SAAM,GAAE,CAAC;QAEpC;;WAEG;QACI,eAAU,GAAa,IAAI,CAAC;QAE5B,SAAI,GAAyB,IAAI,GAAG,EAAE,CAAC;QAEvC,aAAQ,GAAa,gBAAQ,CAAC,GAAG,EAAE,CAAC;QAGzC,IAAI,OAAO,EAAE;YACX,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAC9B;IACH,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,OAAgB;QAC5B,IAAI,CAAC,UAAU,GAAG,gBAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACrG,CAAC;CACF,CAAA;AA7BY,kCAAW;AAEZ;IADT,IAAA,sBAAM,EAAC,yBAAyB,CAAC;;0DACM;sBAF7B,WAAW;IADvB,IAAA,gBAAW,GAAE;;GACD,WAAW,CA6BvB;AAED;;GAEG;AAEI,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,+BAAyB;IAA1D;;QACK,aAAQ,GAA0B,IAAI,GAAG,EAAoB,CAAC;IAuC1E,CAAC;IArCQ,KAAK,CAAC,QAAQ;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC9C,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,OAAiB;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,SAAiB;QACpC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YAChC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,GAAG,gBAAQ,CAAC,GAAG,EAAE,EAAE;gBAC9D,OAAO,OAAO,CAAC;aAChB;YACD,OAAO,IAAI,CAAC;SACb;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,SAAiB;QACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YAChC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACjC;IACH,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAA8B,EAAE,IAAa;QAC7D,IAAI,gBAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAEzC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;gBACtB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAG,IAAY,CAAC,GAAG,CAAC,CAAC,CAAC;aACrC;SACF;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;SACvD;IACH,CAAC;CACF,CAAA;AAxCY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,eAAU,EAAC,+BAAe,CAAC;GACf,kBAAkB,CAwC9B"}
@@ -0,0 +1,75 @@
1
+ import { User } from './models/User.js';
2
+ import { Constructor } from '@spinajs/di';
3
+ import { UserEvent } from './events/UserEvent.js';
4
+ export declare enum E_CODES {
5
+ E_TOKEN_EXPIRED = 0,
6
+ E_TOKEN_INVALID = 1,
7
+ E_PASSWORD_DOES_NOT_MEET_REQUIREMENTS = 2,
8
+ E_USER_NOT_FOUND = 3,
9
+ E_USER_ALREADY_EXISTS = 4,
10
+ E_USER_NOT_ACTIVE = 5,
11
+ E_USER_BANNED = 6,
12
+ E_METADATA_NOT_FOUND = 7,
13
+ E_METADATA_NOT_POPULATED = 8,
14
+ E_EMAIL_NOT_CONFIGURED = 9,
15
+ E_NO_EMAIL_TEMPLATE = 10,
16
+ E_NOT_LOGGED = 11
17
+ }
18
+ /**
19
+ * ===============================================
20
+ * HELPER FUNCTIONS
21
+ * ===============================================
22
+ */
23
+ export declare function _set_user_meta(meta: string | {
24
+ key: string;
25
+ value: any;
26
+ }[], value?: any): (u: User) => Promise<User>;
27
+ export declare function _get_user_meta(key: string): (u: User) => Promise<any>;
28
+ /**
29
+ * Helper function for sending user notification emails
30
+ * Templates are defined in rbac configuration
31
+ *
32
+ * @param cfgTemplate
33
+ * @returns
34
+ */
35
+ export declare function _user_email(cfgTemplate: 'changePassword' | 'created' | 'confirm' | 'deactivated' | 'activated' | 'deleted' | 'unbanned' | 'banned'): (u: User) => Promise<void>;
36
+ export declare function _user_ev(event: Constructor<UserEvent>, ...args: any[]): (u: User) => Promise<User>;
37
+ export declare function _user_update(data?: Partial<User>): (u: User) => Promise<User>;
38
+ export declare function _user(identifier: number | string | User): () => Promise<User>;
39
+ /**
40
+ * ===============================================
41
+ * USER ACTIONS
42
+ * ===============================================
43
+ */
44
+ export declare function activate(identifier: number | string | User): Promise<unknown>;
45
+ export declare function deactivate(identifier: number | string): Promise<void>;
46
+ export declare function create(email: string, login: string, password: string, roles: string[]): Promise<{
47
+ User: User;
48
+ Password: string;
49
+ }>;
50
+ export declare function deleteUser(identifier: number | string | User): Promise<void>;
51
+ export declare function grant(identifier: number | string, role: string): Promise<User>;
52
+ export declare function revoke(identifier: number | string | User, role: string): Promise<User>;
53
+ /**
54
+ *
55
+ * Bans user for specified time. If duration is 0 user is banned for 24h
56
+ *
57
+ * @param identifier user identifier one of : id, uuid, email, login
58
+ * @param reason reson for ban
59
+ * @param duration duration in seconds
60
+ * @returns
61
+ */
62
+ export declare function ban(identifier: number | string | User, reason?: string, duration?: number): Promise<User>;
63
+ /**
64
+ *
65
+ * Unban user
66
+ *
67
+ * @param identifier
68
+ * @returns
69
+ */
70
+ export declare function unban(identifier: number | string | User): Promise<User>;
71
+ export declare function passwordChangeRequest(identifier: number | string | User): Promise<unknown>;
72
+ export declare function confirmPasswordReset(identifier: number | string | User, newPassword: string, token: string): Promise<unknown>;
73
+ export declare function changePassword(password: string): Promise<(u: User) => Promise<User>>;
74
+ export declare function auth(identifier: number | string | User, password: string): Promise<User>;
75
+ //# sourceMappingURL=actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/actions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,242 @@
1
+ import { _insert, _update } from '@spinajs/orm';
2
+ import { _use, _zip, _tap, _chain, _catch, _check_arg, _gt, _non_nil, _is_email, _non_empty, _trim, _is_number, _is_string, _default, _max_length, _to_array } from '@spinajs/util';
3
+ import _ from 'lodash';
4
+ import { _email_deferred } from '@spinajs/email';
5
+ import { _ev } from '@spinajs/queue';
6
+ import { USER_COMMON_METADATA, User } from './models/User.js';
7
+ import { _cfg, _service } from '@spinajs/configuration';
8
+ import { UserActivated, UserBanned, UserChanged, UserCreated, UserDeactivated, UserDeleted, UserLogged, UserPasswordChangeRequest, UserPasswordChanged, UserRoleGranted, UserRoleRevoked, UserUnbanned } from './events/index.js';
9
+ import { AuthProvider, PasswordProvider, PasswordValidationProvider } from './interfaces.js';
10
+ import { DateTime } from 'luxon';
11
+ import { ErrorCode } from '@spinajs/exceptions';
12
+ import { v4 as uuidv4 } from 'uuid';
13
+ import { UserLoginFailed } from './events/UserLoginFailed.js';
14
+ import { UserMetadataChange } from './events/UserMetadataChange.js';
15
+ export var E_CODES;
16
+ (function (E_CODES) {
17
+ E_CODES[E_CODES["E_TOKEN_EXPIRED"] = 0] = "E_TOKEN_EXPIRED";
18
+ E_CODES[E_CODES["E_TOKEN_INVALID"] = 1] = "E_TOKEN_INVALID";
19
+ E_CODES[E_CODES["E_PASSWORD_DOES_NOT_MEET_REQUIREMENTS"] = 2] = "E_PASSWORD_DOES_NOT_MEET_REQUIREMENTS";
20
+ E_CODES[E_CODES["E_USER_NOT_FOUND"] = 3] = "E_USER_NOT_FOUND";
21
+ E_CODES[E_CODES["E_USER_ALREADY_EXISTS"] = 4] = "E_USER_ALREADY_EXISTS";
22
+ E_CODES[E_CODES["E_USER_NOT_ACTIVE"] = 5] = "E_USER_NOT_ACTIVE";
23
+ E_CODES[E_CODES["E_USER_BANNED"] = 6] = "E_USER_BANNED";
24
+ E_CODES[E_CODES["E_METADATA_NOT_FOUND"] = 7] = "E_METADATA_NOT_FOUND";
25
+ E_CODES[E_CODES["E_METADATA_NOT_POPULATED"] = 8] = "E_METADATA_NOT_POPULATED";
26
+ E_CODES[E_CODES["E_EMAIL_NOT_CONFIGURED"] = 9] = "E_EMAIL_NOT_CONFIGURED";
27
+ E_CODES[E_CODES["E_NO_EMAIL_TEMPLATE"] = 10] = "E_NO_EMAIL_TEMPLATE";
28
+ E_CODES[E_CODES["E_NOT_LOGGED"] = 11] = "E_NOT_LOGGED";
29
+ })(E_CODES || (E_CODES = {}));
30
+ /**
31
+ * ===============================================
32
+ * HELPER FUNCTIONS
33
+ * ===============================================
34
+ */
35
+ export function _set_user_meta(meta, value = null) {
36
+ return async (u) => {
37
+ const mArgs = _check_arg(_non_nil(new ErrorCode(E_CODES.E_METADATA_NOT_POPULATED, 'User metadata not loaded', { user: u })), _to_array())(meta, 'Metadata');
38
+ mArgs.forEach((m) => {
39
+ _.isString(m) ? (u.Metadata[m] = value) : (u.Metadata[m.key] = m.value);
40
+ });
41
+ await _chain(u, _tap(() => u.Metadata.sync()), _user_ev(UserMetadataChange, () => {
42
+ return mArgs.map((m) => {
43
+ return _.isString(m) ? { key: m, value } : m;
44
+ });
45
+ }));
46
+ return u;
47
+ };
48
+ }
49
+ export function _get_user_meta(key) {
50
+ return async (u) => {
51
+ _check_arg(_non_nil(new ErrorCode(E_CODES.E_METADATA_NOT_POPULATED, 'User metadata not loaded', { user: u, key })))(u.Metadata, 'Metadata');
52
+ _check_arg(_non_nil(new ErrorCode(E_CODES.E_METADATA_NOT_FOUND, 'Metadata not found in user data', { user: u, key })))(u.Metadata[key], `Metadata.${key}`);
53
+ return u.Metadata[key];
54
+ };
55
+ }
56
+ /**
57
+ * Helper function for sending user notification emails
58
+ * Templates are defined in rbac configuration
59
+ *
60
+ * @param cfgTemplate
61
+ * @returns
62
+ */
63
+ export function _user_email(cfgTemplate) {
64
+ return async (u) => {
65
+ return _chain(_use(_cfg('rbac.email.connection', 'default'), 'connection'), _use(_cfg(`rbac.email.${cfgTemplate}`), 'template'), ({ connection, template }) => {
66
+ _check_arg(_non_nil(new ErrorCode(E_CODES.E_NO_EMAIL_TEMPLATE, `Email template ${cfgTemplate} not configured. Check rbac.email in config`)))(template, 'template');
67
+ _check_arg(_is_string(_non_empty(), _max_length(128)))(template.template, 'email.template');
68
+ _check_arg(_is_string(_non_empty(), _max_length(128)))(template.subject, 'email.subject');
69
+ return (template.enabled &&
70
+ _email_deferred({
71
+ to: [u.Email],
72
+ connection,
73
+ model: u.toJSON(),
74
+ tag: `rbac-user-${cfgTemplate}`,
75
+ template: template.template,
76
+ subject: template.subject,
77
+ }));
78
+ });
79
+ };
80
+ }
81
+ export function _user_ev(event, ...args) {
82
+ return async (u) => {
83
+ await _ev(new event(u, ...args))();
84
+ return u;
85
+ };
86
+ }
87
+ export function _user_update(data) {
88
+ return async (u) => {
89
+ await _chain(u, _update(data), _user_ev(UserChanged));
90
+ return u;
91
+ };
92
+ }
93
+ export function _user(identifier) {
94
+ const id = _check_arg(_trim(), _non_nil())(identifier, 'identifier');
95
+ if (id instanceof User) {
96
+ return () => Promise.resolve(id);
97
+ }
98
+ return () => User.query().whereAnything(id).populate('Metadata').firstOrFail();
99
+ }
100
+ /**
101
+ * ===============================================
102
+ * USER ACTIONS
103
+ * ===============================================
104
+ */
105
+ export async function activate(identifier) {
106
+ return _chain(_user(identifier), _user_update({ IsActive: true }), _user_ev(UserActivated), _user_email('activated'));
107
+ }
108
+ export async function deactivate(identifier) {
109
+ return _chain(_user(identifier), _user_update({ IsActive: false }), _user_ev(UserDeactivated), _user_email('deactivated'));
110
+ }
111
+ export async function create(email, login, password, roles) {
112
+ const sPassword = await _service('rbac.password', PasswordProvider)();
113
+ email = _check_arg(_trim(), _non_empty(), _is_email(), _max_length(64))(email, 'email');
114
+ login = _check_arg(_trim(), _non_empty(), _max_length(32))(login, 'login');
115
+ password = _check_arg(_trim(), _default(() => sPassword.generate()))(password, 'password');
116
+ const hPassword = await sPassword.hash(password);
117
+ return _chain(
118
+ // create user
119
+ () => Promise.resolve(new User({
120
+ Email: email,
121
+ Login: login,
122
+ Password: hPassword,
123
+ Role: roles,
124
+ RegisteredAt: DateTime.now(),
125
+ IsActive: false,
126
+ Uuid: uuidv4(),
127
+ })),
128
+ // insert to db
129
+ _insert(),
130
+ // send event
131
+ _user_ev(UserCreated, (u) => u.toJSON()),
132
+ // send email if needed
133
+ _tap(_user_email('confirm')), // send email
134
+ // return user & password - if generated we want to know not hashed password
135
+ (u) => {
136
+ return { User: u, Password: password };
137
+ });
138
+ }
139
+ export async function deleteUser(identifier) {
140
+ return _chain(_user(identifier), _tap((u) => u.destroy()), _user_ev(UserDeleted), _user_email('deleted'));
141
+ }
142
+ export async function grant(identifier, role) {
143
+ role = _check_arg(_trim(), _non_empty())(role, 'role');
144
+ return _chain(_user(identifier), _tap(async (u) => (u.Role = _.uniq([...u.Role, role]))), _user_update(), _user_ev(UserRoleGranted, role));
145
+ }
146
+ export async function revoke(identifier, role) {
147
+ role = _check_arg(_trim(), _non_empty())(role, 'role');
148
+ return _chain(_user(identifier), _tap(async (u) => (u.Role = u.Role.filter((r) => r !== role))), _user_update(), _user_ev(UserRoleRevoked, role));
149
+ }
150
+ /**
151
+ *
152
+ * Bans user for specified time. If duration is 0 user is banned for 24h
153
+ *
154
+ * @param identifier user identifier one of : id, uuid, email, login
155
+ * @param reason reson for ban
156
+ * @param duration duration in seconds
157
+ * @returns
158
+ */
159
+ export async function ban(identifier, reason, duration) {
160
+ duration = _check_arg(_default(24 * 60 * 60), _is_number(_gt(0)))(duration, 'duration');
161
+ reason = _check_arg(_default('NO_REASON'), _max_length(255))(reason, 'reason');
162
+ return _chain(_user(identifier), (u) => {
163
+ if (u.Metadata[USER_COMMON_METADATA.USER_BAN_IS_BANNED]) {
164
+ throw new ErrorCode(E_CODES.E_USER_BANNED, `User is already banned`, { user: u });
165
+ }
166
+ return u;
167
+ }, _set_user_meta([
168
+ { key: USER_COMMON_METADATA.USER_BAN_DURATION, value: duration },
169
+ { key: USER_COMMON_METADATA.USER_BAN_REASON, value: reason },
170
+ { key: USER_COMMON_METADATA.USER_BAN_IS_BANNED, value: true },
171
+ { key: USER_COMMON_METADATA.USER_BAN_START_DATE, value: DateTime.now() },
172
+ ]), _user_ev(UserBanned), _user_email('banned'));
173
+ }
174
+ /**
175
+ *
176
+ * Unban user
177
+ *
178
+ * @param identifier
179
+ * @returns
180
+ */
181
+ export async function unban(identifier) {
182
+ return _chain(_user(identifier), (u) => {
183
+ if (!u.Metadata[USER_COMMON_METADATA.USER_BAN_IS_BANNED]) {
184
+ throw new ErrorCode(E_CODES.E_USER_BANNED, `User is already unbanned`, { user: u });
185
+ }
186
+ }, _set_user_meta('/^user:ban/', null), _user_ev(UserUnbanned), _user_email('unbanned'));
187
+ }
188
+ export async function passwordChangeRequest(identifier) {
189
+ const pwdWaitTime = await _cfg('rbac.password.reset_wait_time')();
190
+ return _chain(_user(identifier), _set_user_meta([
191
+ { key: USER_COMMON_METADATA.USER_PWD_RESET_START_DATE, value: DateTime.now() },
192
+ { key: USER_COMMON_METADATA.USER_PWD_RESET_TOKEN, value: uuidv4() },
193
+ { key: USER_COMMON_METADATA.USER_PWD_RESET_WAIT_TIME, value: pwdWaitTime },
194
+ ]), _user_ev(UserPasswordChangeRequest), _user_email('changePassword'));
195
+ }
196
+ export async function confirmPasswordReset(identifier, newPassword, token) {
197
+ return _chain(_user(identifier), _tap((u) => _chain(u, _zip(_get_user_meta(USER_COMMON_METADATA.USER_PWD_RESET_START_DATE), _get_user_meta(USER_COMMON_METADATA.USER_PWD_RESET_WAIT_TIME)), ([dueDate, waitTime]) => {
198
+ if (dueDate.plus(waitTime) < DateTime.now()) {
199
+ throw new ErrorCode(E_CODES.E_TOKEN_EXPIRED, `Password change token expired, token expiration date is: ${dueDate.toISO()}`, {
200
+ dueDate,
201
+ waitTime,
202
+ time: DateTime.now(),
203
+ user: u,
204
+ });
205
+ }
206
+ })), _tap((u) => _chain(u, _get_user_meta(USER_COMMON_METADATA.USER_PWD_RESET_TOKEN), async (resetToken) => {
207
+ if (resetToken !== token) {
208
+ throw new ErrorCode(E_CODES.E_TOKEN_INVALID, `Password change token invalid, operation not permitted`, {
209
+ token,
210
+ resetToken,
211
+ user: u,
212
+ });
213
+ }
214
+ })), changePassword(newPassword));
215
+ }
216
+ export async function changePassword(password) {
217
+ password = _check_arg(_trim(), _non_empty())(password, 'password');
218
+ return async (u) => {
219
+ return _chain(_use(_service('rbac.password', PasswordProvider), 'pwd'), _use(_service('rbac.password.validation', PasswordValidationProvider), 'validator'), _tap(async ({ validator }) => {
220
+ if (!validator.check(password)) {
221
+ throw new Error('Password does not meet requirements');
222
+ }
223
+ }),
224
+ // update password
225
+ ({ pwd }) => pwd.hash(password), (hPassword) => _chain(u, _update({ Password: hPassword }), _set_user_meta('/^user:pwd_reset/'), _user_ev(UserPasswordChanged)));
226
+ };
227
+ }
228
+ export async function auth(identifier, password) {
229
+ password = _check_arg(_trim(), _non_empty())(password, 'password');
230
+ return await _chain(_user(identifier), _catch((u) => {
231
+ return _chain(_service('rbac.auth', AuthProvider), async (sAuth) => sAuth.authenticate(u.Email, password), _update({ LastLoginAt: DateTime.now() }), _user_ev(UserLogged));
232
+ }, (err, u) => {
233
+ return _chain(() => u,
234
+ // send event of failed login
235
+ _user_ev(UserLoginFailed, err),
236
+ // rethrow error for caller
237
+ () => {
238
+ throw err;
239
+ });
240
+ }));
241
+ }
242
+ //# sourceMappingURL=actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/actions.ts"],"names":[],"mappings":"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"}
package/lib/mjs/auth.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { AuthProvider, IAuthenticationResult, PasswordProvider } from './interfaces.js';
1
+ import { AuthProvider, PasswordProvider } from './interfaces.js';
2
2
  import { User } from './models/User.js';
3
3
  import { IContainer } from '@spinajs/di';
4
4
  export declare class SimpleDbAuthProvider implements AuthProvider<User> {
@@ -8,9 +8,9 @@ export declare class SimpleDbAuthProvider implements AuthProvider<User> {
8
8
  getByLogin(login: string): Promise<User>;
9
9
  getByEmail(email: string): Promise<User>;
10
10
  getByUUID(uuid: string): Promise<User>;
11
- authenticate(email: string, password: string): Promise<IAuthenticationResult<User>>;
12
- isBanned(email: string): Promise<boolean>;
13
- isActive(email: string): Promise<boolean>;
14
- isDeleted(email: string): Promise<boolean>;
11
+ authenticate(email: string, password: string): Promise<User>;
12
+ isBanned(userOrEmail: User | string): Promise<boolean>;
13
+ isActive(userOrEmail: User | string): Promise<boolean>;
14
+ isDeleted(userOrEmail: User | string): Promise<boolean>;
15
15
  }
16
16
  //# sourceMappingURL=auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,YAAY,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACjH,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAyB,UAAU,EAAc,MAAM,aAAa,CAAC;AAG5E,qBACa,oBAAqB,YAAW,YAAY,CAAC,IAAI,CAAC;IAE7D,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC;IAGhC,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAEhC,MAAM,CAAC,WAAW,EAAE,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASpD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAgDnF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMzC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKzC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAIxD"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAyB,UAAU,EAAc,MAAM,aAAa,CAAC;AAK5E,qBACa,oBAAqB,YAAW,YAAY,CAAC,IAAI,CAAC;IAE7D,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC;IAGhC,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAEhC,MAAM,CAAC,WAAW,EAAE,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASpD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB5D,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKtD,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKtD,SAAS,CAAC,WAAW,EAAE,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAIrE"}
package/lib/mjs/auth.js CHANGED
@@ -11,6 +11,8 @@ import { AthenticationErrorCodes, AuthProvider, PasswordProvider } from './inter
11
11
  import { User } from './models/User.js';
12
12
  import { Autoinject, Container, Injectable } from '@spinajs/di';
13
13
  import { AutoinjectService } from '@spinajs/configuration';
14
+ import { _check_arg, _is_email, _max_length, _non_empty, _trim } from '@spinajs/util';
15
+ import { ErrorCode } from '@spinajs/exceptions';
14
16
  let SimpleDbAuthProvider = class SimpleDbAuthProvider {
15
17
  async exists(userOrEmail) {
16
18
  const result = await User.where('Email', userOrEmail instanceof User ? userOrEmail.Email : userOrEmail).first();
@@ -20,70 +22,41 @@ let SimpleDbAuthProvider = class SimpleDbAuthProvider {
20
22
  return false;
21
23
  }
22
24
  async getByLogin(login) {
23
- const result = await User.where('Login', login).first();
24
- return result;
25
+ return await User.getByLogin(login);
25
26
  }
26
27
  async getByEmail(email) {
27
- const result = await User.where('Email', email).first();
28
- return result;
28
+ return User.getByEmail(email);
29
29
  }
30
30
  async getByUUID(uuid) {
31
- const result = await User.where('Uuid', uuid).first();
32
- return result;
31
+ return User.getByUuid(uuid);
33
32
  }
34
33
  async authenticate(email, password) {
35
- const result = await User.where({ Email: email, DeletedAt: null }).first();
36
- const eInvalidCredentials = {
37
- Error: {
38
- Code: AthenticationErrorCodes.E_INVALID_CREDENTIALS,
39
- Message: 'Invalid user credentials, or user not exist.',
40
- },
41
- };
42
- /**
43
- * If user not exists, is deleted, or password dont match
44
- * return E_INVALID_CREDENTIALS for security reasons ( so attaker wont now if email is valid, or password don match)
45
- */
46
- if (!result) {
47
- return eInvalidCredentials;
48
- }
49
- const valid = await this.PasswordProvider.verify(result.Password, password);
34
+ _check_arg(_trim(), _non_empty(), _is_email(), _max_length(64))(email, 'email');
35
+ _check_arg(_trim(), _non_empty(), _max_length(64))(password, 'password');
36
+ const user = await User.query().whereEmail(email).notDeleted().populate('Metadata').firstOrThrow(new ErrorCode(AthenticationErrorCodes.E_INVALID_CREDENTIALS));
37
+ const valid = await this.PasswordProvider.verify(user.Password, password);
50
38
  if (!valid) {
51
- return {
52
- User: undefined,
53
- ...eInvalidCredentials,
54
- };
39
+ throw new ErrorCode(AthenticationErrorCodes.E_INVALID_CREDENTIALS);
55
40
  }
56
- if (result.IsBanned) {
57
- return {
58
- User: result,
59
- Error: {
60
- Code: AthenticationErrorCodes.E_USER_BANNED,
61
- },
62
- };
41
+ if (user.IsBanned) {
42
+ throw new ErrorCode(AthenticationErrorCodes.E_USER_BANNED);
63
43
  }
64
- if (result.IsActive) {
65
- return {
66
- User: result,
67
- Error: {
68
- Code: AthenticationErrorCodes.E_USER_NOT_ACTIVE,
69
- },
70
- };
44
+ if (!user.IsActive) {
45
+ throw new ErrorCode(AthenticationErrorCodes.E_USER_NOT_ACTIVE);
71
46
  }
72
- return {
73
- User: result,
74
- };
47
+ return user;
75
48
  }
76
- async isBanned(email) {
77
- const result = await User.where({ Email: email, IsBanned: true }).first();
78
- return result !== null;
49
+ async isBanned(userOrEmail) {
50
+ const result = await User.query().whereUser(userOrEmail).checkIsBanned();
51
+ return result;
79
52
  }
80
- async isActive(email) {
81
- const result = await User.where({ Email: email, IsActive: true }).first();
82
- return result !== null;
53
+ async isActive(userOrEmail) {
54
+ const result = await User.query().whereUser(userOrEmail).checkIsActive();
55
+ return result;
83
56
  }
84
- async isDeleted(email) {
85
- const result = await User.where('Email', email).whereNotNull('DeletedAt').first();
86
- return result !== null;
57
+ async isDeleted(userOrEmail) {
58
+ const result = await User.query().whereUser(userOrEmail).notDeleted().first();
59
+ return result === undefined;
87
60
  }
88
61
  };
89
62
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ActivateUser.d.ts","sourceRoot":"","sources":["../../../src/cli/ActivateUser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAY,UAAU,EAAW,MAAM,cAAc,CAAC;AAK7D,qBAGa,YAAa,SAAQ,UAAU;IAE1C,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAGnB,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC;IAEjB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAavE"}
1
+ {"version":3,"file":"ActivateUser.d.ts","sourceRoot":"","sources":["../../../src/cli/ActivateUser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAY,UAAU,EAAW,MAAM,cAAc,CAAC;AAI7D,qBAGa,YAAa,SAAQ,UAAU;IAE1C,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAGnB,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC;IAEjB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CASvE"}
@@ -7,24 +7,19 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- import { UserDeactivated } from './../events/UserDeactivated.js';
11
- //import { UserBannedMessage } from './../messages/UserBanned';
12
10
  import { QueueService } from '@spinajs/Queue';
13
11
  import { Log, Logger } from '@spinajs/log';
14
12
  import { Argument, CliCommand, Command } from '@spinajs/cli';
15
13
  import { Autoinject } from '@spinajs/di';
16
- import { User } from '../models/User.js';
17
- import { UserActivated } from '../events/UserActivated.js';
14
+ import { activate, deactivate } from '../actions.js';
18
15
  let ActivateUser = class ActivateUser extends CliCommand {
19
16
  async execute(idOrUuid, active) {
20
- const result = await User.update({ IsActive: active }).where('Id', idOrUuid).orWhere('Uuid', idOrUuid);
21
- if (result.RowsAffected > 0) {
22
- const event = active ? new UserActivated(idOrUuid) : new UserDeactivated(idOrUuid);
23
- this.Queue.emit(event);
24
- this.Log.success(`User activation status changed to ${active}`);
17
+ try {
18
+ await active ? activate(idOrUuid) : deactivate(idOrUuid);
19
+ this.Log.success(`User ${idOrUuid} ${active ? 'activated' : 'deactivated'}`);
25
20
  }
26
- else {
27
- this.Log.warn(`No user with id: ${idOrUuid} found`);
21
+ catch (e) {
22
+ this.Log.error(`Error while activating user user ${idOrUuid} ${e.message}`);
28
23
  }
29
24
  }
30
25
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ActivateUser.js","sourceRoot":"","sources":["../../../src/cli/ActivateUser.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,+DAA+D;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAKpD,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,UAAU;IAOnC,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAEvG,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE;YAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC;YAEnF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEvB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,qCAAqC,MAAM,EAAE,CAAC,CAAC;SACjE;aAAM;YACL,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,QAAQ,QAAQ,CAAC,CAAC;SACrD;IACH,CAAC;CACF,CAAA;AAlBW;IADT,MAAM,CAAC,MAAM,CAAC;8BACA,GAAG;yCAAC;AAGT;IADT,UAAU,CAAC,YAAY,CAAC;8BACR,YAAY;2CAAC;AALnB,YAAY;IAHxB,OAAO,CAAC,oBAAoB,EAAE,8BAA8B,CAAC;IAC7D,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;GAC9F,YAAY,CAoBxB"}
1
+ {"version":3,"file":"ActivateUser.js","sourceRoot":"","sources":["../../../src/cli/ActivateUser.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAK9C,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,UAAU;IAOnC,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,MAAe;QACpD,IAAI;YACF,MAAM,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAEzD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;SAC9E;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oCAAoC,QAAQ,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;SAC7E;IACH,CAAC;CACF,CAAA;AAdW;IADT,MAAM,CAAC,MAAM,CAAC;8BACA,GAAG;yCAAC;AAGT;IADT,UAAU,CAAC,YAAY,CAAC;8BACR,YAAY;2CAAC;AALnB,YAAY;IAHxB,OAAO,CAAC,oBAAoB,EAAE,8BAA8B,CAAC;IAC7D,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;GAC9F,YAAY,CAgBxB"}
@@ -1,9 +1,7 @@
1
- import { QueueService } from '@spinajs/Queue';
2
1
  import { Log } from '@spinajs/log';
3
2
  import { CliCommand } from '@spinajs/cli';
4
3
  export declare class BanUser extends CliCommand {
5
4
  protected Log: Log;
6
- protected Queue: QueueService;
7
- execute(idOrUuid: string, ban: boolean, duration: number): Promise<void>;
5
+ execute(idOrUuid: string, banOrUnban: boolean, duration: number, reason: string): Promise<void>;
8
6
  }
9
7
  //# sourceMappingURL=BanUser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BanUser.d.ts","sourceRoot":"","sources":["../../../src/cli/BanUser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAY,UAAU,EAAW,MAAM,cAAc,CAAC;AAQ7D,qBAIa,OAAQ,SAAQ,UAAU;IAErC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAGnB,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC;IAEjB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA8BtF"}
1
+ {"version":3,"file":"BanUser.d.ts","sourceRoot":"","sources":["../../../src/cli/BanUser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAY,UAAU,EAAW,MAAM,cAAc,CAAC;AAG7D,qBAKa,OAAQ,SAAQ,UAAU;IAErC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAEN,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAU7G"}