@spinajs/rbac 2.0.85 → 2.0.87

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 (373) hide show
  1. package/lib/{auth.d.ts → cjs/auth.d.ts} +0 -0
  2. package/lib/cjs/auth.d.ts.map +1 -0
  3. package/lib/cjs/auth.js +104 -0
  4. package/lib/cjs/auth.js.map +1 -0
  5. package/lib/{cli → cjs/cli}/ActivateUser.d.ts +0 -0
  6. package/lib/cjs/cli/ActivateUser.d.ts.map +1 -0
  7. package/lib/cjs/cli/ActivateUser.js +48 -0
  8. package/lib/cjs/cli/ActivateUser.js.map +1 -0
  9. package/lib/{cli → cjs/cli}/BanUser.d.ts +0 -0
  10. package/lib/cjs/cli/BanUser.d.ts.map +1 -0
  11. package/lib/cjs/cli/BanUser.js +64 -0
  12. package/lib/cjs/cli/BanUser.js.map +1 -0
  13. package/lib/{cli → cjs/cli}/ChangeUserPassword.d.ts +0 -0
  14. package/lib/cjs/cli/ChangeUserPassword.d.ts.map +1 -0
  15. package/lib/cjs/cli/ChangeUserPassword.js +59 -0
  16. package/lib/cjs/cli/ChangeUserPassword.js.map +1 -0
  17. package/lib/{cli → cjs/cli}/ClearUserTimelineSchedule.d.ts +0 -0
  18. package/lib/cjs/cli/ClearUserTimelineSchedule.d.ts.map +1 -0
  19. package/lib/cjs/cli/ClearUserTimelineSchedule.js +55 -0
  20. package/lib/cjs/cli/ClearUserTimelineSchedule.js.map +1 -0
  21. package/lib/{cli → cjs/cli}/CreateUser.d.ts +0 -0
  22. package/lib/cjs/cli/CreateUser.d.ts.map +1 -0
  23. package/lib/cjs/cli/CreateUser.js +72 -0
  24. package/lib/cjs/cli/CreateUser.js.map +1 -0
  25. package/lib/{cli → cjs/cli}/DeleteUser.d.ts +0 -0
  26. package/lib/cjs/cli/DeleteUser.d.ts.map +1 -0
  27. package/lib/cjs/cli/DeleteUser.js +41 -0
  28. package/lib/cjs/cli/DeleteUser.js.map +1 -0
  29. package/lib/{cli → cjs/cli}/FindUser.d.ts +0 -0
  30. package/lib/cjs/cli/FindUser.d.ts.map +1 -0
  31. package/lib/cjs/cli/FindUser.js +45 -0
  32. package/lib/cjs/cli/FindUser.js.map +1 -0
  33. package/lib/{cli → cjs/cli}/GrantUserRole.d.ts +0 -0
  34. package/lib/cjs/cli/GrantUserRole.d.ts.map +1 -0
  35. package/lib/cjs/cli/GrantUserRole.js +48 -0
  36. package/lib/cjs/cli/GrantUserRole.js.map +1 -0
  37. package/lib/{cli → cjs/cli}/LatestUserEvents.d.ts +0 -0
  38. package/lib/cjs/cli/LatestUserEvents.d.ts.map +1 -0
  39. package/lib/cjs/cli/LatestUserEvents.js +38 -0
  40. package/lib/cjs/cli/LatestUserEvents.js.map +1 -0
  41. package/lib/{cli → cjs/cli}/RevokeUserRole.d.ts +0 -0
  42. package/lib/cjs/cli/RevokeUserRole.d.ts.map +1 -0
  43. package/lib/cjs/cli/RevokeUserRole.js +47 -0
  44. package/lib/cjs/cli/RevokeUserRole.js.map +1 -0
  45. package/lib/{cli → cjs/cli}/UnbanUserSchedule.d.ts +0 -0
  46. package/lib/cjs/cli/UnbanUserSchedule.d.ts.map +1 -0
  47. package/lib/cjs/cli/UnbanUserSchedule.js +55 -0
  48. package/lib/cjs/cli/UnbanUserSchedule.js.map +1 -0
  49. package/lib/{config → cjs/config}/rbac.d.ts +0 -0
  50. package/lib/cjs/config/rbac.d.ts.map +1 -0
  51. package/lib/cjs/config/rbac.js +118 -0
  52. package/lib/cjs/config/rbac.js.map +1 -0
  53. package/lib/{events → cjs/events}/NewUser.d.ts +0 -0
  54. package/lib/cjs/events/NewUser.d.ts.map +1 -0
  55. package/lib/cjs/events/NewUser.js +17 -0
  56. package/lib/cjs/events/NewUser.js.map +1 -0
  57. package/lib/{events → cjs/events}/UserActivated.d.ts +0 -0
  58. package/lib/cjs/events/UserActivated.d.ts.map +1 -0
  59. package/lib/cjs/events/UserActivated.js +25 -0
  60. package/lib/cjs/events/UserActivated.js.map +1 -0
  61. package/lib/{events → cjs/events}/UserBanned.d.ts +0 -0
  62. package/lib/cjs/events/UserBanned.d.ts.map +1 -0
  63. package/lib/cjs/events/UserBanned.js +26 -0
  64. package/lib/cjs/events/UserBanned.js.map +1 -0
  65. package/lib/{events → cjs/events}/UserDeactivated.d.ts +0 -0
  66. package/lib/cjs/events/UserDeactivated.d.ts.map +1 -0
  67. package/lib/cjs/events/UserDeactivated.js +25 -0
  68. package/lib/cjs/events/UserDeactivated.js.map +1 -0
  69. package/lib/{events → cjs/events}/UserDeleted.d.ts +0 -0
  70. package/lib/cjs/events/UserDeleted.d.ts.map +1 -0
  71. package/lib/cjs/events/UserDeleted.js +25 -0
  72. package/lib/cjs/events/UserDeleted.js.map +1 -0
  73. package/lib/{events → cjs/events}/UserMetadataAdded.d.ts +0 -0
  74. package/lib/cjs/events/UserMetadataAdded.d.ts.map +1 -0
  75. package/lib/cjs/events/UserMetadataAdded.js +25 -0
  76. package/lib/cjs/events/UserMetadataAdded.js.map +1 -0
  77. package/lib/{events → cjs/events}/UserMetadataChanged.d.ts +0 -0
  78. package/lib/cjs/events/UserMetadataChanged.d.ts.map +1 -0
  79. package/lib/cjs/events/UserMetadataChanged.js +25 -0
  80. package/lib/cjs/events/UserMetadataChanged.js.map +1 -0
  81. package/lib/{events → cjs/events}/UserMetadataDeleted.d.ts +0 -0
  82. package/lib/cjs/events/UserMetadataDeleted.d.ts.map +1 -0
  83. package/lib/cjs/events/UserMetadataDeleted.js +25 -0
  84. package/lib/cjs/events/UserMetadataDeleted.js.map +1 -0
  85. package/lib/{events → cjs/events}/UserPasswordChanged.d.ts +0 -0
  86. package/lib/cjs/events/UserPasswordChanged.d.ts.map +1 -0
  87. package/lib/cjs/events/UserPasswordChanged.js +25 -0
  88. package/lib/cjs/events/UserPasswordChanged.js.map +1 -0
  89. package/lib/{events → cjs/events}/UserPropertyChanged.d.ts +0 -0
  90. package/lib/cjs/events/UserPropertyChanged.d.ts.map +1 -0
  91. package/lib/cjs/events/UserPropertyChanged.js +17 -0
  92. package/lib/cjs/events/UserPropertyChanged.js.map +1 -0
  93. package/lib/{events → cjs/events}/UserRoleGranted.d.ts +0 -0
  94. package/lib/cjs/events/UserRoleGranted.d.ts.map +1 -0
  95. package/lib/cjs/events/UserRoleGranted.js +26 -0
  96. package/lib/cjs/events/UserRoleGranted.js.map +1 -0
  97. package/lib/{events → cjs/events}/UserRoleRevoked.d.ts +0 -0
  98. package/lib/cjs/events/UserRoleRevoked.d.ts.map +1 -0
  99. package/lib/cjs/events/UserRoleRevoked.js +26 -0
  100. package/lib/cjs/events/UserRoleRevoked.js.map +1 -0
  101. package/lib/{events → cjs/events}/UserUnbanned.d.ts +0 -0
  102. package/lib/cjs/events/UserUnbanned.d.ts.map +1 -0
  103. package/lib/cjs/events/UserUnbanned.js +25 -0
  104. package/lib/cjs/events/UserUnbanned.js.map +1 -0
  105. package/lib/{events → cjs/events}/index.d.ts +0 -0
  106. package/lib/cjs/events/index.d.ts.map +1 -0
  107. package/lib/cjs/events/index.js +30 -0
  108. package/lib/cjs/events/index.js.map +1 -0
  109. package/lib/{index.d.ts → cjs/index.d.ts} +0 -0
  110. package/lib/cjs/index.d.ts.map +1 -0
  111. package/lib/cjs/index.js +57 -0
  112. package/lib/cjs/index.js.map +1 -0
  113. package/lib/{interfaces.d.ts → cjs/interfaces.d.ts} +0 -0
  114. package/lib/cjs/interfaces.d.ts.map +1 -0
  115. package/lib/cjs/interfaces.js +46 -0
  116. package/lib/cjs/interfaces.js.map +1 -0
  117. package/lib/{jobs → cjs/jobs}/UnbanUser.d.ts +0 -0
  118. package/lib/cjs/jobs/UnbanUser.d.ts.map +1 -0
  119. package/lib/cjs/jobs/UnbanUser.js +44 -0
  120. package/lib/cjs/jobs/UnbanUser.js.map +1 -0
  121. package/lib/{middleware.d.ts → cjs/middleware.d.ts} +0 -0
  122. package/lib/cjs/middleware.d.ts.map +1 -0
  123. package/lib/cjs/middleware.js +23 -0
  124. package/lib/cjs/middleware.js.map +1 -0
  125. package/lib/{migrations → cjs/migrations}/RBACInitial_2022_06_28_01_13_00.d.ts +0 -0
  126. package/lib/cjs/migrations/RBACInitial_2022_06_28_01_13_00.d.ts.map +1 -0
  127. package/lib/cjs/migrations/RBACInitial_2022_06_28_01_13_00.js +57 -0
  128. package/lib/cjs/migrations/RBACInitial_2022_06_28_01_13_00.js.map +1 -0
  129. package/lib/{models → cjs/models}/User.d.ts +0 -0
  130. package/lib/cjs/models/User.d.ts.map +1 -0
  131. package/lib/cjs/models/User.js +188 -0
  132. package/lib/cjs/models/User.js.map +1 -0
  133. package/lib/{models → cjs/models}/UserMetadata.d.ts +0 -0
  134. package/lib/cjs/models/UserMetadata.d.ts.map +1 -0
  135. package/lib/cjs/models/UserMetadata.js +33 -0
  136. package/lib/cjs/models/UserMetadata.js.map +1 -0
  137. package/lib/{models → cjs/models}/UserTimeline.d.ts +0 -0
  138. package/lib/cjs/models/UserTimeline.d.ts.map +1 -0
  139. package/lib/cjs/models/UserTimeline.js +47 -0
  140. package/lib/cjs/models/UserTimeline.js.map +1 -0
  141. package/lib/{password.d.ts → cjs/password.d.ts} +0 -0
  142. package/lib/cjs/password.d.ts.map +1 -0
  143. package/lib/cjs/password.js +92 -0
  144. package/lib/cjs/password.js.map +1 -0
  145. package/lib/{session.d.ts → cjs/session.d.ts} +0 -0
  146. package/lib/cjs/session.d.ts.map +1 -0
  147. package/lib/cjs/session.js +101 -0
  148. package/lib/cjs/session.js.map +1 -0
  149. package/lib/mjs/auth.d.ts +16 -0
  150. package/lib/mjs/auth.d.ts.map +1 -0
  151. package/lib/{auth.js → mjs/auth.js} +0 -0
  152. package/lib/mjs/auth.js.map +1 -0
  153. package/lib/mjs/cli/ActivateUser.d.ts +9 -0
  154. package/lib/mjs/cli/ActivateUser.d.ts.map +1 -0
  155. package/lib/{cli → mjs/cli}/ActivateUser.js +0 -0
  156. package/lib/mjs/cli/ActivateUser.js.map +1 -0
  157. package/lib/mjs/cli/BanUser.d.ts +9 -0
  158. package/lib/mjs/cli/BanUser.d.ts.map +1 -0
  159. package/lib/{cli → mjs/cli}/BanUser.js +0 -0
  160. package/lib/mjs/cli/BanUser.js.map +1 -0
  161. package/lib/mjs/cli/ChangeUserPassword.d.ts +12 -0
  162. package/lib/mjs/cli/ChangeUserPassword.d.ts.map +1 -0
  163. package/lib/{cli → mjs/cli}/ChangeUserPassword.js +0 -0
  164. package/lib/mjs/cli/ChangeUserPassword.js.map +1 -0
  165. package/lib/mjs/cli/ClearUserTimelineSchedule.d.ts +9 -0
  166. package/lib/mjs/cli/ClearUserTimelineSchedule.d.ts.map +1 -0
  167. package/lib/{cli → mjs/cli}/ClearUserTimelineSchedule.js +0 -0
  168. package/lib/mjs/cli/ClearUserTimelineSchedule.js.map +1 -0
  169. package/lib/mjs/cli/CreateUser.d.ts +18 -0
  170. package/lib/mjs/cli/CreateUser.d.ts.map +1 -0
  171. package/lib/{cli → mjs/cli}/CreateUser.js +0 -0
  172. package/lib/mjs/cli/CreateUser.js.map +1 -0
  173. package/lib/mjs/cli/DeleteUser.d.ts +9 -0
  174. package/lib/mjs/cli/DeleteUser.d.ts.map +1 -0
  175. package/lib/{cli → mjs/cli}/DeleteUser.js +0 -0
  176. package/lib/mjs/cli/DeleteUser.js.map +1 -0
  177. package/lib/mjs/cli/FindUser.d.ts +13 -0
  178. package/lib/mjs/cli/FindUser.d.ts.map +1 -0
  179. package/lib/{cli → mjs/cli}/FindUser.js +0 -0
  180. package/lib/mjs/cli/FindUser.js.map +1 -0
  181. package/lib/mjs/cli/GrantUserRole.d.ts +9 -0
  182. package/lib/mjs/cli/GrantUserRole.d.ts.map +1 -0
  183. package/lib/{cli → mjs/cli}/GrantUserRole.js +0 -0
  184. package/lib/mjs/cli/GrantUserRole.js.map +1 -0
  185. package/lib/mjs/cli/LatestUserEvents.d.ts +7 -0
  186. package/lib/mjs/cli/LatestUserEvents.d.ts.map +1 -0
  187. package/lib/{cli → mjs/cli}/LatestUserEvents.js +0 -0
  188. package/lib/mjs/cli/LatestUserEvents.js.map +1 -0
  189. package/lib/mjs/cli/RevokeUserRole.d.ts +9 -0
  190. package/lib/mjs/cli/RevokeUserRole.d.ts.map +1 -0
  191. package/lib/{cli → mjs/cli}/RevokeUserRole.js +0 -0
  192. package/lib/mjs/cli/RevokeUserRole.js.map +1 -0
  193. package/lib/mjs/cli/UnbanUserSchedule.d.ts +9 -0
  194. package/lib/mjs/cli/UnbanUserSchedule.d.ts.map +1 -0
  195. package/lib/{cli → mjs/cli}/UnbanUserSchedule.js +0 -0
  196. package/lib/mjs/cli/UnbanUserSchedule.js.map +1 -0
  197. package/lib/mjs/config/rbac.d.ts +115 -0
  198. package/lib/mjs/config/rbac.d.ts.map +1 -0
  199. package/lib/{config → mjs/config}/rbac.js +0 -0
  200. package/lib/mjs/config/rbac.js.map +1 -0
  201. package/lib/mjs/events/NewUser.d.ts +13 -0
  202. package/lib/mjs/events/NewUser.d.ts.map +1 -0
  203. package/lib/{events → mjs/events}/NewUser.js +0 -0
  204. package/lib/mjs/events/NewUser.js.map +1 -0
  205. package/lib/mjs/events/UserActivated.d.ts +6 -0
  206. package/lib/mjs/events/UserActivated.d.ts.map +1 -0
  207. package/lib/{events → mjs/events}/UserActivated.js +0 -0
  208. package/lib/mjs/events/UserActivated.js.map +1 -0
  209. package/lib/mjs/events/UserBanned.d.ts +7 -0
  210. package/lib/mjs/events/UserBanned.d.ts.map +1 -0
  211. package/lib/{events → mjs/events}/UserBanned.js +0 -0
  212. package/lib/mjs/events/UserBanned.js.map +1 -0
  213. package/lib/mjs/events/UserDeactivated.d.ts +6 -0
  214. package/lib/mjs/events/UserDeactivated.d.ts.map +1 -0
  215. package/lib/{events → mjs/events}/UserDeactivated.js +0 -0
  216. package/lib/mjs/events/UserDeactivated.js.map +1 -0
  217. package/lib/mjs/events/UserDeleted.d.ts +6 -0
  218. package/lib/mjs/events/UserDeleted.d.ts.map +1 -0
  219. package/lib/{events → mjs/events}/UserDeleted.js +0 -0
  220. package/lib/mjs/events/UserDeleted.js.map +1 -0
  221. package/lib/mjs/events/UserMetadataAdded.d.ts +6 -0
  222. package/lib/mjs/events/UserMetadataAdded.d.ts.map +1 -0
  223. package/lib/{events → mjs/events}/UserMetadataAdded.js +0 -0
  224. package/lib/mjs/events/UserMetadataAdded.js.map +1 -0
  225. package/lib/mjs/events/UserMetadataChanged.d.ts +6 -0
  226. package/lib/mjs/events/UserMetadataChanged.d.ts.map +1 -0
  227. package/lib/{events → mjs/events}/UserMetadataChanged.js +0 -0
  228. package/lib/mjs/events/UserMetadataChanged.js.map +1 -0
  229. package/lib/mjs/events/UserMetadataDeleted.d.ts +6 -0
  230. package/lib/mjs/events/UserMetadataDeleted.d.ts.map +1 -0
  231. package/lib/{events → mjs/events}/UserMetadataDeleted.js +0 -0
  232. package/lib/mjs/events/UserMetadataDeleted.js.map +1 -0
  233. package/lib/mjs/events/UserPasswordChanged.d.ts +6 -0
  234. package/lib/mjs/events/UserPasswordChanged.d.ts.map +1 -0
  235. package/lib/{events → mjs/events}/UserPasswordChanged.js +0 -0
  236. package/lib/mjs/events/UserPasswordChanged.js.map +1 -0
  237. package/lib/mjs/events/UserPropertyChanged.d.ts +8 -0
  238. package/lib/mjs/events/UserPropertyChanged.d.ts.map +1 -0
  239. package/lib/{events → mjs/events}/UserPropertyChanged.js +0 -0
  240. package/lib/mjs/events/UserPropertyChanged.js.map +1 -0
  241. package/lib/mjs/events/UserRoleGranted.d.ts +7 -0
  242. package/lib/mjs/events/UserRoleGranted.d.ts.map +1 -0
  243. package/lib/{events → mjs/events}/UserRoleGranted.js +0 -0
  244. package/lib/mjs/events/UserRoleGranted.js.map +1 -0
  245. package/lib/mjs/events/UserRoleRevoked.d.ts +7 -0
  246. package/lib/mjs/events/UserRoleRevoked.d.ts.map +1 -0
  247. package/lib/{events → mjs/events}/UserRoleRevoked.js +0 -0
  248. package/lib/mjs/events/UserRoleRevoked.js.map +1 -0
  249. package/lib/mjs/events/UserUnbanned.d.ts +6 -0
  250. package/lib/mjs/events/UserUnbanned.d.ts.map +1 -0
  251. package/lib/{events → mjs/events}/UserUnbanned.js +0 -0
  252. package/lib/mjs/events/UserUnbanned.js.map +1 -0
  253. package/lib/mjs/events/index.d.ts +14 -0
  254. package/lib/mjs/events/index.d.ts.map +1 -0
  255. package/lib/{events → mjs/events}/index.js +0 -0
  256. package/lib/mjs/events/index.js.map +1 -0
  257. package/lib/mjs/index.d.ts +18 -0
  258. package/lib/mjs/index.d.ts.map +1 -0
  259. package/lib/{index.js → mjs/index.js} +0 -0
  260. package/lib/mjs/index.js.map +1 -0
  261. package/lib/mjs/interfaces.d.ts +225 -0
  262. package/lib/mjs/interfaces.d.ts.map +1 -0
  263. package/lib/{interfaces.js → mjs/interfaces.js} +1 -1
  264. package/lib/mjs/interfaces.js.map +1 -0
  265. package/lib/mjs/jobs/UnbanUser.d.ts +10 -0
  266. package/lib/mjs/jobs/UnbanUser.d.ts.map +1 -0
  267. package/lib/{jobs → mjs/jobs}/UnbanUser.js +0 -0
  268. package/lib/mjs/jobs/UnbanUser.js.map +1 -0
  269. package/lib/mjs/middleware.d.ts +5 -0
  270. package/lib/mjs/middleware.d.ts.map +1 -0
  271. package/lib/{middleware.js → mjs/middleware.js} +0 -0
  272. package/lib/mjs/middleware.js.map +1 -0
  273. package/lib/mjs/migrations/RBACInitial_2022_06_28_01_13_00.d.ts +6 -0
  274. package/lib/mjs/migrations/RBACInitial_2022_06_28_01_13_00.d.ts.map +1 -0
  275. package/lib/{migrations → mjs/migrations}/RBACInitial_2022_06_28_01_13_00.js +0 -0
  276. package/lib/mjs/migrations/RBACInitial_2022_06_28_01_13_00.js.map +1 -0
  277. package/lib/mjs/models/User.d.ts +80 -0
  278. package/lib/mjs/models/User.d.ts.map +1 -0
  279. package/lib/{models → mjs/models}/User.js +1 -1
  280. package/lib/mjs/models/User.js.map +1 -0
  281. package/lib/mjs/models/UserMetadata.d.ts +10 -0
  282. package/lib/mjs/models/UserMetadata.d.ts.map +1 -0
  283. package/lib/{models → mjs/models}/UserMetadata.js +0 -0
  284. package/lib/mjs/models/UserMetadata.js.map +1 -0
  285. package/lib/mjs/models/UserTimeline.d.ts +29 -0
  286. package/lib/mjs/models/UserTimeline.d.ts.map +1 -0
  287. package/lib/{models → mjs/models}/UserTimeline.js +0 -0
  288. package/lib/mjs/models/UserTimeline.js.map +1 -0
  289. package/lib/mjs/password.d.ts +26 -0
  290. package/lib/mjs/password.d.ts.map +1 -0
  291. package/lib/{password.js → mjs/password.js} +0 -0
  292. package/lib/mjs/password.js.map +1 -0
  293. package/lib/mjs/session.d.ts +34 -0
  294. package/lib/mjs/session.d.ts.map +1 -0
  295. package/lib/{session.js → mjs/session.js} +0 -0
  296. package/lib/mjs/session.js.map +1 -0
  297. package/lib/tsconfig.cjs.tsbuildinfo +1 -0
  298. package/lib/tsconfig.tsbuildinfo +1 -0
  299. package/package.json +20 -10
  300. package/lib/auth.d.ts.map +0 -1
  301. package/lib/auth.js.map +0 -1
  302. package/lib/cli/ActivateUser.d.ts.map +0 -1
  303. package/lib/cli/ActivateUser.js.map +0 -1
  304. package/lib/cli/BanUser.d.ts.map +0 -1
  305. package/lib/cli/BanUser.js.map +0 -1
  306. package/lib/cli/ChangeUserPassword.d.ts.map +0 -1
  307. package/lib/cli/ChangeUserPassword.js.map +0 -1
  308. package/lib/cli/ClearUserTimelineSchedule.d.ts.map +0 -1
  309. package/lib/cli/ClearUserTimelineSchedule.js.map +0 -1
  310. package/lib/cli/CreateUser.d.ts.map +0 -1
  311. package/lib/cli/CreateUser.js.map +0 -1
  312. package/lib/cli/DeleteUser.d.ts.map +0 -1
  313. package/lib/cli/DeleteUser.js.map +0 -1
  314. package/lib/cli/FindUser.d.ts.map +0 -1
  315. package/lib/cli/FindUser.js.map +0 -1
  316. package/lib/cli/GrantUserRole.d.ts.map +0 -1
  317. package/lib/cli/GrantUserRole.js.map +0 -1
  318. package/lib/cli/LatestUserEvents.d.ts.map +0 -1
  319. package/lib/cli/LatestUserEvents.js.map +0 -1
  320. package/lib/cli/RevokeUserRole.d.ts.map +0 -1
  321. package/lib/cli/RevokeUserRole.js.map +0 -1
  322. package/lib/cli/UnbanUserSchedule.d.ts.map +0 -1
  323. package/lib/cli/UnbanUserSchedule.js.map +0 -1
  324. package/lib/config/rbac.d.ts.map +0 -1
  325. package/lib/config/rbac.js.map +0 -1
  326. package/lib/events/NewUser.d.ts.map +0 -1
  327. package/lib/events/NewUser.js.map +0 -1
  328. package/lib/events/UserActivated.d.ts.map +0 -1
  329. package/lib/events/UserActivated.js.map +0 -1
  330. package/lib/events/UserBanned.d.ts.map +0 -1
  331. package/lib/events/UserBanned.js.map +0 -1
  332. package/lib/events/UserDeactivated.d.ts.map +0 -1
  333. package/lib/events/UserDeactivated.js.map +0 -1
  334. package/lib/events/UserDeleted.d.ts.map +0 -1
  335. package/lib/events/UserDeleted.js.map +0 -1
  336. package/lib/events/UserMetadataAdded.d.ts.map +0 -1
  337. package/lib/events/UserMetadataAdded.js.map +0 -1
  338. package/lib/events/UserMetadataChanged.d.ts.map +0 -1
  339. package/lib/events/UserMetadataChanged.js.map +0 -1
  340. package/lib/events/UserMetadataDeleted.d.ts.map +0 -1
  341. package/lib/events/UserMetadataDeleted.js.map +0 -1
  342. package/lib/events/UserPasswordChanged.d.ts.map +0 -1
  343. package/lib/events/UserPasswordChanged.js.map +0 -1
  344. package/lib/events/UserPropertyChanged.d.ts.map +0 -1
  345. package/lib/events/UserPropertyChanged.js.map +0 -1
  346. package/lib/events/UserRoleGranted.d.ts.map +0 -1
  347. package/lib/events/UserRoleGranted.js.map +0 -1
  348. package/lib/events/UserRoleRevoked.d.ts.map +0 -1
  349. package/lib/events/UserRoleRevoked.js.map +0 -1
  350. package/lib/events/UserUnbanned.d.ts.map +0 -1
  351. package/lib/events/UserUnbanned.js.map +0 -1
  352. package/lib/events/index.d.ts.map +0 -1
  353. package/lib/events/index.js.map +0 -1
  354. package/lib/index.d.ts.map +0 -1
  355. package/lib/index.js.map +0 -1
  356. package/lib/interfaces.d.ts.map +0 -1
  357. package/lib/interfaces.js.map +0 -1
  358. package/lib/jobs/UnbanUser.d.ts.map +0 -1
  359. package/lib/jobs/UnbanUser.js.map +0 -1
  360. package/lib/middleware.d.ts.map +0 -1
  361. package/lib/middleware.js.map +0 -1
  362. package/lib/migrations/RBACInitial_2022_06_28_01_13_00.d.ts.map +0 -1
  363. package/lib/migrations/RBACInitial_2022_06_28_01_13_00.js.map +0 -1
  364. package/lib/models/User.d.ts.map +0 -1
  365. package/lib/models/User.js.map +0 -1
  366. package/lib/models/UserMetadata.d.ts.map +0 -1
  367. package/lib/models/UserMetadata.js.map +0 -1
  368. package/lib/models/UserTimeline.d.ts.map +0 -1
  369. package/lib/models/UserTimeline.js.map +0 -1
  370. package/lib/password.d.ts.map +0 -1
  371. package/lib/password.js.map +0 -1
  372. package/lib/session.d.ts.map +0 -1
  373. package/lib/session.js.map +0 -1
@@ -0,0 +1,18 @@
1
+ import { Bootstrapper } from '@spinajs/di';
2
+ import './auth.js';
3
+ import './password.js';
4
+ import './session.js';
5
+ export * from './interfaces.js';
6
+ export * from './auth.js';
7
+ export * from './password.js';
8
+ export * from './session.js';
9
+ export * from './models/User.js';
10
+ export * from './models/UserMetadata.js';
11
+ export * from './models/UserTimeline.js';
12
+ export * from './migrations/RBACInitial_2022_06_28_01_13_00.js';
13
+ export * from './events/index.js';
14
+ export { AccessControl } from 'accesscontrol';
15
+ export declare class RbacBootstrapper extends Bootstrapper {
16
+ bootstrap(): void;
17
+ }
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAkB,MAAM,aAAa,CAAC;AACvE,OAAO,WAAW,CAAC;AACnB,OAAO,eAAe,CAAC;AACvB,OAAO,cAAc,CAAC;AAItB,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iDAAiD,CAAC;AAChE,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,qBACa,gBAAiB,SAAQ,YAAY;IACzC,SAAS,IAAI,IAAI;CAWzB"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,EAAc,MAAM,aAAa,CAAC;AACvE,OAAO,WAAW,CAAC;AACnB,OAAO,eAAe,CAAC;AACvB,OAAO,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG9C,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iDAAiD,CAAC;AAChE,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGvC,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,YAAY;IACzC,SAAS;QACd,MAAM,EAAE,GAAG,IAAI,aAAa,EAAE,CAAC;QAC/B,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACzC,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,SAAqB,EAAE,aAA4B,EAAE,EAAE;YAC3F,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAgB,eAAe,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAChD,IAAI,MAAM,EAAE;gBACV,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;aACtB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAZY,gBAAgB;IAD5B,UAAU,CAAC,YAAY,CAAC;GACZ,gBAAgB,CAY5B;SAZY,gBAAgB"}
@@ -0,0 +1,225 @@
1
+ import { User } from './models/User.js';
2
+ import { AsyncService } from '@spinajs/di';
3
+ import { DateTime } from 'luxon';
4
+ export interface ISession {
5
+ /**
6
+ * Session identifier
7
+ */
8
+ SessionId: string;
9
+ /**
10
+ * Expiration date. After that date session is invalid
11
+ */
12
+ Expiration?: DateTime;
13
+ /**
14
+ * Session creation date. After that date session is invalid
15
+ */
16
+ Creation: DateTime;
17
+ /**
18
+ * Data holds by session
19
+ */
20
+ Data: Map<string, unknown>;
21
+ /**
22
+ *
23
+ * Extends session lifetime
24
+ *
25
+ * @param seconds - how mutch to extend, if value not provided, default value from config is used
26
+ */
27
+ extend(seconds?: number): void;
28
+ }
29
+ /**
30
+ * Service used for generating random password & for hash raw string
31
+ */
32
+ export declare abstract class PasswordProvider {
33
+ /**
34
+ *
35
+ * Checks if hash is valid for given password
36
+ *
37
+ * @param hash - hasth to validate
38
+ * @param password - password to validate
39
+ */
40
+ abstract verify(hash: string, password: string): Promise<boolean>;
41
+ /**
42
+ *
43
+ * Generate hashed string from user password
44
+ *
45
+ * @param input - string to hash
46
+ */
47
+ abstract hash(input: string): Promise<string>;
48
+ /**
49
+ * Generates random user password
50
+ */
51
+ abstract generate(): string;
52
+ }
53
+ /**
54
+ * Provides standard authentication based on login & password
55
+ *
56
+ * Unlike federated auth providers, it check local db for user,
57
+ * or some kind of other source
58
+ */
59
+ export declare abstract class AuthProvider<U = User> {
60
+ /**
61
+ *
62
+ * Checks if user is already exists with given email
63
+ *
64
+ * @param emailOrUser - email or user object
65
+ */
66
+ abstract exists(emailOrUser: U | string): Promise<boolean>;
67
+ /**
68
+ *
69
+ * Authenticate user with login and pass, if succeded auth result contains user object
70
+ *
71
+ * @param login - user login
72
+ * @param password - user password
73
+ */
74
+ abstract authenticate(login: string, password: string): Promise<IAuthenticationResult<U>>;
75
+ /**
76
+ *
77
+ * Checks if user is banned
78
+ *
79
+ * @param login - user login
80
+ */
81
+ abstract isBanned(login: string): Promise<boolean>;
82
+ /**
83
+ * Checks if user is active
84
+ *
85
+ * @param login - user login
86
+ */
87
+ abstract isActive(login: string): Promise<boolean>;
88
+ /**
89
+ *
90
+ * Cheks if user is deleted
91
+ *
92
+ * @param login - user login
93
+ */
94
+ abstract isDeleted(login: string): Promise<boolean>;
95
+ /**
96
+ *
97
+ * Gets user from auth store
98
+ *
99
+ * @param login - user login
100
+ */
101
+ abstract getByLogin(login: string): Promise<U>;
102
+ /**
103
+ *
104
+ * Gets user from auth store
105
+ *
106
+ * @param email - user email
107
+ */
108
+ abstract getByEmail(email: string): Promise<U>;
109
+ /**
110
+ *
111
+ * Gets user from auth store
112
+ *
113
+ * @param uuid - user uuid
114
+ */
115
+ abstract getByUUID(uuid: string): Promise<U>;
116
+ }
117
+ /**
118
+ * Used for implementign authentication with external services
119
+ * eg. slack or facebook that uses openid or similar auth
120
+ *
121
+ * NOTE: it should only authorize user, it should not register new one if
122
+ * not exists in use DB.
123
+ */
124
+ export declare abstract class FederatedAuthProvider<C, U = User> {
125
+ /**
126
+ * Name of strategy
127
+ */
128
+ abstract get Name(): string;
129
+ /**
130
+ *
131
+ * login service provides Host header for check
132
+ * whitch service is trying to authenticate
133
+ *
134
+ * Base on host adress we choose auth provider
135
+ *
136
+ * @param caller - caller url
137
+ */
138
+ abstract callerCheck(caller: string): boolean;
139
+ /**
140
+ *
141
+ * Authenticates user based on response from external auth service
142
+ *
143
+ * @param credentials - provided credentials eg. data with token
144
+ */
145
+ abstract authenticate(credentials: C): Promise<IAuthenticationResult<U>>;
146
+ }
147
+ export declare abstract class SessionProvider<T = ISession> extends AsyncService {
148
+ /**
149
+ *
150
+ * Load session from store. If not exists or expired returns null
151
+ *
152
+ * @param sessionId - session identifier
153
+ */
154
+ abstract restore(sessionId: string): Promise<T>;
155
+ /**
156
+ *
157
+ * Deletes session from store
158
+ *
159
+ * @param sessionId - session to delete
160
+ */
161
+ abstract delete(sessionId: string): Promise<void>;
162
+ /**
163
+ *
164
+ * Adds or updates session in store
165
+ *
166
+ * @param session - session to update / insert
167
+ */
168
+ abstract save(session: ISession): Promise<void>;
169
+ /**
170
+ *
171
+ * Updates session data for given id
172
+ *
173
+ * @param id - session id
174
+ * @param data - key - value pair of data
175
+ */
176
+ abstract save(id: string, data: object): Promise<void>;
177
+ /**
178
+ *
179
+ * Updates only EXPIRATION TIME of session, not changing other data
180
+ *
181
+ * @param session - session to update
182
+ */
183
+ abstract touch(session: ISession): Promise<void>;
184
+ /**
185
+ *
186
+ * Deletes all session table data
187
+ *
188
+ */
189
+ abstract truncate(): Promise<void>;
190
+ }
191
+ export declare enum AthenticationErrorCodes {
192
+ E_USER_BANNED = "E_USER_BANNED",
193
+ E_USER_NOT_ACTIVE = "E_USER_NOT_ACTIVE",
194
+ E_INVALID_CREDENTIALS = "E_INVALID_CREDENTIALS",
195
+ E_LOGIN_ATTEMPTS_EXCEEDED = "E_LOGIN_ATTEMPTS_EXCEEDED"
196
+ }
197
+ /**
198
+ * Authentication result
199
+ */
200
+ export interface IAuthenticationResult<U = User> {
201
+ /**
202
+ * If auth is succeded, user field is not null
203
+ */
204
+ User?: U;
205
+ /**
206
+ * If result failed, Error field is not null
207
+ */
208
+ Error?: {
209
+ /**
210
+ * Error code eg E_IS_BANNED
211
+ */
212
+ Code: string | AthenticationErrorCodes;
213
+ /**
214
+ * Optional message
215
+ */
216
+ Message?: string;
217
+ };
218
+ }
219
+ /**
220
+ * Interface to provide implementation of password rule validation
221
+ */
222
+ export declare abstract class PasswordValidationProvider {
223
+ abstract check(password: string): boolean;
224
+ }
225
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,QAAQ,CAAC;IAEtB;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE3B;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED;;GAEG;AACH,8BAAsB,gBAAgB;IACpC;;;;;;OAMG;aACa,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAExE;;;;;OAKG;aACa,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAEpD;;OAEG;aACa,QAAQ,IAAI,MAAM;CACnC;AAED;;;;;GAKG;AACH,8BAAsB,YAAY,CAAC,CAAC,GAAG,IAAI;IACzC;;;;;OAKG;aACa,MAAM,CAAC,WAAW,EAAE,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAEjE;;;;;;OAMG;aACa,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAEhG;;;;;OAKG;aACa,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAEzD;;;;OAIG;aACa,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAEzD;;;;;OAKG;aACa,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAE1D;;;;;OAKG;aACa,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAErD;;;;;OAKG;aACa,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAErD;;;;;OAKG;aACa,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CACpD;AAED;;;;;;GAMG;AACH,8BAAsB,qBAAqB,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI;IACrD;;OAEG;IACH,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC;IAE5B;;;;;;;;OAQG;aACa,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAEpD;;;;;OAKG;aACa,YAAY,CAAC,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;CAChF;AAED,8BAAsB,eAAe,CAAC,CAAC,GAAG,QAAQ,CAAE,SAAQ,YAAY;IACtE;;;;;OAKG;aACa,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAEtD;;;;;OAKG;aACa,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAExD;;;;;OAKG;aACa,IAAI,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAEtD;;;;;;OAMG;aACa,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAE7D;;;;;OAKG;aACa,KAAK,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAEvD;;;;OAIG;aACa,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAC1C;AAED,oBAAY,uBAAuB;IACjC,aAAa,kBAAkB;IAC/B,iBAAiB,sBAAsB;IACvC,qBAAqB,0BAA0B;IAC/C,yBAAyB,8BAA8B;CACxD;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB,CAAC,CAAC,GAAG,IAAI;IAC7C;;OAEG;IACH,IAAI,CAAC,EAAE,CAAC,CAAC;IAET;;OAEG;IACH,KAAK,CAAC,EAAE;QACN;;WAEG;QACH,IAAI,EAAE,MAAM,GAAG,uBAAuB,CAAC;QAEvC;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED;;GAEG;AACH,8BAAsB,0BAA0B;aAC9B,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;CACjD"}
@@ -29,7 +29,7 @@ export var AthenticationErrorCodes;
29
29
  AthenticationErrorCodes["E_USER_NOT_ACTIVE"] = "E_USER_NOT_ACTIVE";
30
30
  AthenticationErrorCodes["E_INVALID_CREDENTIALS"] = "E_INVALID_CREDENTIALS";
31
31
  AthenticationErrorCodes["E_LOGIN_ATTEMPTS_EXCEEDED"] = "E_LOGIN_ATTEMPTS_EXCEEDED";
32
- })(AthenticationErrorCodes || (AthenticationErrorCodes = {}));
32
+ })(AthenticationErrorCodes = AthenticationErrorCodes || (AthenticationErrorCodes = {}));
33
33
  /**
34
34
  * Interface to provide implementation of password rule validation
35
35
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAiC3C;;GAEG;AACH,MAAM,OAAgB,gBAAgB;CAsBrC;AAED;;;;;GAKG;AACH,MAAM,OAAgB,YAAY;CAgEjC;AAED;;;;;;GAMG;AACH,MAAM,OAAgB,qBAAqB;CAwB1C;AAED,MAAM,OAAgB,eAA8B,SAAQ,YAAY;CAgDvE;AAED,MAAM,CAAN,IAAY,uBAKX;AALD,WAAY,uBAAuB;IACjC,0DAA+B,CAAA;IAC/B,kEAAuC,CAAA;IACvC,0EAA+C,CAAA;IAC/C,kFAAuD,CAAA;AACzD,CAAC,EALW,uBAAuB,GAAvB,uBAAuB,KAAvB,uBAAuB,QAKlC;AA2BD;;GAEG;AACH,MAAM,OAAgB,0BAA0B;CAE/C"}
@@ -0,0 +1,10 @@
1
+ import { Log } from '@spinajs/log';
2
+ import { QueueClient, QueueJob } from '@spinajs/queue';
3
+ export declare class UnbanUser extends QueueJob {
4
+ UserUUID: string;
5
+ protected Log: Log;
6
+ protected Queue: QueueClient;
7
+ constructor(UserUUID: string);
8
+ execute(): Promise<void>;
9
+ }
10
+ //# sourceMappingURL=UnbanUser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnbanUser.d.ts","sourceRoot":"","sources":["../../../src/jobs/UnbanUser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAO,WAAW,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI5D,qBACa,SAAU,SAAQ,QAAQ;IAOlB,QAAQ,EAAE,MAAM;IALnC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAGnB,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC;gBAEV,QAAQ,EAAE,MAAM;IAItB,OAAO;CAQrB"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnbanUser.js","sourceRoot":"","sources":["../../../src/jobs/UnbanUser.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAGlC,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,QAAQ;IAOrC,YAAmB,QAAgB;QACjC,KAAK,EAAE,CAAC;QADS,aAAQ,GAAR,QAAQ,CAAQ;IAEnC,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC5H,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QAEtB,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACzC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzD,CAAC;CACF,CAAA;AAlBC;IAAC,MAAM,CAAC,MAAM,CAAC;8BACA,GAAG;sCAAC;AAEnB;IAAC,UAAU,CAAC,WAAW,CAAC;8BACP,WAAW;wCAAC;AALlB,SAAS;IADrB,GAAG,EAAE;;GACO,SAAS,CAmBrB;SAnBY,SAAS"}
@@ -0,0 +1,5 @@
1
+ import { QueryBuilder, QueryMiddleware } from '@spinajs/orm';
2
+ export declare class RbacModelPermissionMiddleware extends QueryMiddleware {
3
+ afterQueryCreation(builder: QueryBuilder): void;
4
+ }
5
+ //# sourceMappingURL=middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAsB,MAAM,cAAc,CAAC;AAEjF,qBACa,6BAA8B,SAAQ,eAAe;IAChE,kBAAkB,CAAC,OAAO,EAAE,YAAY;CAKzC"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/middleware.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAgB,eAAe,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAG1E,IAAM,6BAA6B,GAAnC,MAAM,6BAA8B,SAAQ,eAAe;IAChE,kBAAkB,CAAC,OAAqB;QACtC,IAAI,OAAO,YAAY,kBAAkB,EAAE;YACzC,gBAAgB;SACjB;IACH,CAAC;CACF,CAAA;AANY,6BAA6B;IADzC,UAAU,CAAC,eAAe,CAAC;GACf,6BAA6B,CAMzC;SANY,6BAA6B"}
@@ -0,0 +1,6 @@
1
+ import { OrmMigration, OrmDriver } from '@spinajs/orm';
2
+ export declare class RBACInitial_2022_06_28_01_13_00 extends OrmMigration {
3
+ up(connection: OrmDriver): Promise<void>;
4
+ down(_connection: OrmDriver): Promise<void>;
5
+ }
6
+ //# sourceMappingURL=RBACInitial_2022_06_28_01_13_00.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RBACInitial_2022_06_28_01_13_00.d.ts","sourceRoot":"","sources":["../../../src/migrations/RBACInitial_2022_06_28_01_13_00.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAa,MAAM,cAAc,CAAC;AAGlE,qBACa,+BAAgC,SAAQ,YAAY;IAClD,EAAE,CAAC,UAAU,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA2CxC,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;CACzD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RBACInitial_2022_06_28_01_13_00.js","sourceRoot":"","sources":["../../../src/migrations/RBACInitial_2022_06_28_01_13_00.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAsD;AACtD,OAAO,EAAE,YAAY,EAAa,SAAS,EAAE,MAAM,cAAc,CAAC;AAI3D,IAAM,+BAA+B,GAArC,MAAM,+BAAgC,SAAQ,YAAY;IACxD,KAAK,CAAC,EAAE,CAAC,UAAqB;QACnC,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACvD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;YAC7B,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;YAC7C,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;YACxC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACpC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7D,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACvD,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACvD,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAC/B,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;YAC3D,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC5B,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE;YAChE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YAC3F,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;YAC9B,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;YAC/B,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE;YAC9D,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE,CAAC;YAC7C,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;YACtC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzD,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;YAC3D,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;YAE/B,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACzF,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;QACtH,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,qCAAqC;IACrC,gEAAgE;IACzD,KAAK,CAAC,IAAI,CAAC,WAAsB,IAAkB,CAAC;CAC5D,CAAA;AA7CY,+BAA+B;IAD3C,SAAS,CAAC,SAAS,CAAC;GACR,+BAA+B,CA6C3C;SA7CY,+BAA+B"}
@@ -0,0 +1,80 @@
1
+ import { DateTime } from 'luxon';
2
+ import { ModelBase, Relation, OneToManyRelationList, QueryScope, ISelectQueryBuilder } from '@spinajs/orm';
3
+ import { UserMetadata } from './UserMetadata.js';
4
+ import { UserAction } from './UserTimeline.js';
5
+ declare class UserMetadataRelation extends OneToManyRelationList<UserMetadata, User> {
6
+ /**
7
+ *
8
+ * Checks if metadata exists, its DB first, it will only check DB for existence
9
+ *
10
+ * @param key - key to find
11
+ * @returns {true|false}
12
+ */
13
+ exists(key: string | RegExp): Promise<boolean>;
14
+ /**
15
+ *
16
+ * Deletes meta from DB
17
+ *
18
+ * @param key - meta key do delete or regexp
19
+ */
20
+ delete(key: string | RegExp): Promise<void>;
21
+ [index: string]: any;
22
+ }
23
+ export declare class UserQueryScopes implements QueryScope {
24
+ /**
25
+ *
26
+ * Fetch users that are not banned, are active & email confirmed, not deleted
27
+ *
28
+ */
29
+ isActiveUser(this: ISelectQueryBuilder<User>): ISelectQueryBuilder<User>;
30
+ }
31
+ /**
32
+ * Base model for users used by auth and ACL system
33
+ *
34
+ * To add / extend fields simply extend this model and register as default user model in ACL service
35
+ */
36
+ export declare class User extends ModelBase {
37
+ protected _hidden: string[];
38
+ static readonly _queryScopes: UserQueryScopes;
39
+ Id: number;
40
+ Uuid: string;
41
+ Email: string;
42
+ /**
43
+ * Hashed password for user
44
+ */
45
+ Password: string;
46
+ /**
47
+ * Displayed name ( for others to see )
48
+ */
49
+ Login: string;
50
+ /**
51
+ * User role
52
+ */
53
+ Role: string[];
54
+ /**
55
+ * User creation date
56
+ */
57
+ CreatedAt: DateTime;
58
+ /**
59
+ * Registration date. User is registered when clicked confirmation link sended to provided email.
60
+ */
61
+ RegisteredAt: DateTime;
62
+ /**
63
+ * User deletion date
64
+ */
65
+ DeletedAt: DateTime;
66
+ LastLoginAt: DateTime;
67
+ IsBanned: boolean;
68
+ /**
69
+ * Account is fully active (eg. passed registration)
70
+ */
71
+ IsActive: boolean;
72
+ /**
73
+ * User additional information. Can be anything
74
+ */
75
+ Metadata: UserMetadataRelation;
76
+ Actions: Relation<UserAction, User>;
77
+ can(resource: string, permission: string): any;
78
+ }
79
+ export {};
80
+ //# sourceMappingURL=User.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"User.d.ts","sourceRoot":"","sources":["../../../src/models/User.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,SAAS,EAA8D,QAAQ,EAAwB,qBAAqB,EAAuB,UAAU,EAAmB,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGnO,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,cAAM,oBAAqB,SAAQ,qBAAqB,CAAC,YAAY,EAAE,IAAI,CAAC;IAC1E;;;;;;OAMG;IACU,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAexC;;;;;OAKG;IACU,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAkBxC,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AA6DD,qBAAa,eAAgB,YAAW,UAAU;IAChD;;;;OAIG;IACI,YAAY,CAAC,IAAI,EAAE,mBAAmB,CAAC,IAAI,CAAC;CAOpD;AAED;;;;GAIG;AACH,qBAEa,IAAK,SAAQ,SAAS;IACjC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAsB;IAEjD,gBAAuB,YAAY,EAAE,eAAe,CAAyB;IAGtE,EAAE,EAAE,MAAM,CAAC;IAGX,IAAI,EAAE,MAAM,CAAC;IAEb,KAAK,EAAE,MAAM,CAAC;IAErB;;OAEG;IACI,QAAQ,EAAE,MAAM,CAAC;IAExB;;OAEG;IACI,KAAK,EAAE,MAAM,CAAC;IAErB;;OAEG;IACI,IAAI,EAAE,MAAM,EAAE,CAAC;IAEtB;;OAEG;IAEI,SAAS,EAAE,QAAQ,CAAC;IAE3B;;OAEG;IAEI,YAAY,EAAE,QAAQ,CAAC;IAE9B;;OAEG;IAEI,SAAS,EAAE,QAAQ,CAAC;IAGpB,WAAW,EAAE,QAAQ,CAAC;IAEtB,QAAQ,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACI,QAAQ,EAAE,OAAO,CAAC;IAEzB;;OAEG;IAII,QAAQ,EAAE,oBAAoB,CAAC;IAG/B,OAAO,EAAE,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAEpC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;CAIhD"}
@@ -136,12 +136,12 @@ let User = class User extends ModelBase {
136
136
  super(...arguments);
137
137
  this._hidden = ['Password', 'Id'];
138
138
  }
139
- static { this._queryScopes = new UserQueryScopes(); }
140
139
  can(resource, permission) {
141
140
  const ac = DI.get('AccessControl');
142
141
  return ac.can(this.Role)[permission](resource);
143
142
  }
144
143
  };
144
+ User._queryScopes = new UserQueryScopes();
145
145
  __decorate([
146
146
  Primary(),
147
147
  __metadata("design:type", Number)
@@ -0,0 +1 @@
1
+ {"version":3,"file":"User.js","sourceRoot":"","sources":["../../../src/models/User.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { ModelBase, SingleRelation } from '@spinajs/orm';
2
+ import type { User } from './User.js';
3
+ export declare class UserMetadata extends ModelBase<UserMetadata> {
4
+ Id: number;
5
+ Key: string;
6
+ Type: 'number' | 'float' | 'string' | 'json' | 'boolean' | 'datetime';
7
+ Value: any;
8
+ User: SingleRelation<User>;
9
+ }
10
+ //# sourceMappingURL=UserMetadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserMetadata.d.ts","sourceRoot":"","sources":["../../../src/models/UserMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,SAAS,EAAW,cAAc,EAAsB,MAAM,cAAc,CAAC;AAEpH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,qBAEa,YAAa,SAAQ,SAAS,CAAC,YAAY,CAAC;IAEhD,EAAE,EAAE,MAAM,CAAC;IAEX,GAAG,EAAE,MAAM,CAAC;IAEZ,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;IAGtE,KAAK,EAAE,GAAG,CAAC;IAGX,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;CACnC"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserMetadata.js","sourceRoot":"","sources":["../../../src/models/UserMetadata.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAM7G,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,SAAuB;CAaxD,CAAA;AAZC;IAAC,OAAO,EAAE;;wCACQ;AAMlB;IAAC,kBAAkB,CAAC,MAAM,CAAC;;2CACT;AAElB;IAAC,SAAS,CAAC,MAAM,CAAC;8BACL,cAAc;0CAAO;AAZvB,YAAY;IAFxB,UAAU,CAAC,SAAS,CAAC;IACrB,KAAK,CAAC,gBAAgB,CAAC;GACX,YAAY,CAaxB;SAbY,YAAY"}
@@ -0,0 +1,29 @@
1
+ import { ModelBase, SingleRelation } from '@spinajs/orm';
2
+ import { DateTime } from 'luxon';
3
+ import type { User } from './User.js';
4
+ /**
5
+ * Timeline table for storing user actions / interactions
6
+ * eg. login attempts, failed logins, resource deletions, alterations etc.
7
+ */
8
+ export declare class UserAction extends ModelBase<UserAction> {
9
+ Id: number;
10
+ User: SingleRelation<User>;
11
+ Action: string;
12
+ Data: string;
13
+ /**
14
+ * True if this timeline event is persistent
15
+ * eg. we clear out login attempts older than 5 days
16
+ * but we want to save for eg. events related to payments
17
+ */
18
+ Persistent: boolean;
19
+ /**
20
+ * If action is performed on some kind of resource
21
+ * Here is stored this resource identifier or primary key in db
22
+ */
23
+ ResourceId: number;
24
+ asNumber(): number;
25
+ asFloat(): number;
26
+ asJsonObject<T = {}>(): T;
27
+ CreatedAt: DateTime;
28
+ }
29
+ //# sourceMappingURL=UserTimeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserTimeline.d.ts","sourceRoot":"","sources":["../../../src/models/UserTimeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2C,SAAS,EAAW,cAAc,EAAE,MAAM,cAAc,CAAC;AAC3G,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC;;;GAGG;AACH,qBAEa,UAAW,SAAQ,SAAS,CAAC,UAAU,CAAC;IAE5C,EAAE,EAAE,MAAM,CAAC;IAGX,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAE3B,MAAM,EAAE,MAAM,CAAC;IAEf,IAAI,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACI,UAAU,EAAE,OAAO,CAAC;IAE3B;;;OAGG;IACI,UAAU,EAAE,MAAM,CAAC;IAEnB,QAAQ;IAIR,OAAO;IAIP,YAAY,CAAC,CAAC,GAAG,EAAE;IAKnB,SAAS,EAAE,QAAQ,CAAC;CAC5B"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserTimeline.js","sourceRoot":"","sources":["../../../src/models/UserTimeline.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC3G,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGjC;;;GAGG;AAGI,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,SAAqB;IAwB5C,QAAQ;QACb,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACjC,CAAC;IAEM,OAAO;QACZ,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAM,CAAC;IACpC,CAAC;CAIF,CAAA;AArCC;IAAC,OAAO,EAAE;;sCACQ;AAElB;IAAC,SAAS,CAAC,MAAM,CAAC;8BACL,cAAc;wCAAO;AA+BlC;IAAC,SAAS,EAAE;8BACM,QAAQ;6CAAC;AArChB,UAAU;IAFtB,UAAU,CAAC,SAAS,CAAC;IACrB,KAAK,CAAC,cAAc,CAAC;GACT,UAAU,CAsCtB;SAtCY,UAAU"}
@@ -0,0 +1,26 @@
1
+ import { PasswordProvider, PasswordValidationProvider } from './interfaces.js';
2
+ import { DataValidator } from '@spinajs/validation';
3
+ /**
4
+ * Simple password service that use argon2 hash alghoritm and entropy-string to generate password
5
+ */
6
+ export declare class BasicPasswordProvider implements PasswordProvider {
7
+ hash(input: string): Promise<string>;
8
+ /**
9
+ *
10
+ * Checks if hash is valid for given password
11
+ *
12
+ * @param hash - hash to validate
13
+ * @param password - password to validate
14
+ */
15
+ verify(hash: string, password: string): Promise<boolean>;
16
+ generate(): string;
17
+ }
18
+ /**
19
+ * Simple password validation service based on JSON schema validation
20
+ */
21
+ export declare class BasicPasswordValidationProvider extends PasswordValidationProvider {
22
+ protected ValidationSchema: object;
23
+ protected Validator: DataValidator;
24
+ check(password: string): boolean;
25
+ }
26
+ //# sourceMappingURL=password.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"password.d.ts","sourceRoot":"","sources":["../../src/password.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAI/E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD;;GAEG;AACH,qBACa,qBAAsB,YAAW,gBAAgB;IAC/C,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKjD;;;;;;OAMG;IACU,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI9D,QAAQ,IAAI,MAAM;CAK1B;AAED;;GAEG;AACH,qBACa,+BAAgC,SAAQ,0BAA0B;IAE7E,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAGnC,SAAS,CAAC,SAAS,EAAE,aAAa,CAAC;IAE5B,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;CAIxC"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"password.js","sourceRoot":"","sources":["../../src/password.ts"],"names":[],"mappings":"AAAA,4CAA4C;;;;;;;;;;AAE5C,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,KAAK,KAAK,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;GAEG;AAEI,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IACzB,KAAK,CAAC,IAAI,CAAC,KAAa;QAC7B,gDAAgD;QAChD,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,QAAgB;QAChD,OAAO,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAEM,QAAQ;QACb,0EAA0E;QAC1E,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QACnD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;CACF,CAAA;AAtBY,qBAAqB;IADjC,UAAU,CAAC,gBAAgB,CAAC;GAChB,qBAAqB,CAsBjC;SAtBY,qBAAqB;AAwBlC;;GAEG;AAEI,IAAM,+BAA+B,GAArC,MAAM,+BAAgC,SAAQ,0BAA0B;IAOtE,KAAK,CAAC,QAAgB;QAC3B,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAe,CAAC,CAAC;QACpF,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAA;AAVC;IAAC,MAAM,CAAC,+BAA+B,CAAC;;yEACL;AAEnC;IAAC,UAAU,EAAE;8BACQ,aAAa;kEAAC;AALxB,+BAA+B;IAD3C,UAAU,CAAC,0BAA0B,CAAC;GAC1B,+BAA+B,CAW3C;SAXY,+BAA+B"}
@@ -0,0 +1,34 @@
1
+ import { DateTime } from 'luxon';
2
+ import { SessionProvider, ISession } from './interfaces.js';
3
+ /**
4
+ * Session base class
5
+ */
6
+ export declare class Session implements ISession {
7
+ protected SessionExpirationTime: number;
8
+ SessionId: string;
9
+ /**
10
+ * Expiration time for session, if null it does not expire
11
+ */
12
+ Expiration: DateTime;
13
+ Data: Map<string, unknown>;
14
+ Creation: DateTime;
15
+ constructor(session?: Partial<ISession>);
16
+ /**
17
+ * Extends lifetime of session
18
+ *
19
+ * @param seconds - hom mutch to extend
20
+ */
21
+ extend(seconds?: number): void;
22
+ }
23
+ /**
24
+ * Simple session storage in memory, for testing or rapid prototyping
25
+ */
26
+ export declare class MemorySessionStore extends SessionProvider<ISession> {
27
+ protected Sessions: Map<string, ISession>;
28
+ truncate(): Promise<void>;
29
+ touch(session: ISession): Promise<void>;
30
+ restore(sessionId: string): Promise<ISession | null>;
31
+ delete(sessionId: string): Promise<void>;
32
+ save(idOrSession: ISession | string, data?: object): Promise<void>;
33
+ }
34
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAM5D;;GAEG;AACH,qBACa,OAAQ,YAAW,QAAQ;IAEtC,SAAS,CAAC,qBAAqB,EAAE,MAAM,CAAC;IAEjC,SAAS,EAAE,MAAM,CAAY;IAEpC;;OAEG;IACI,UAAU,EAAE,QAAQ,CAAQ;IAE5B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAa;IAEvC,QAAQ,EAAE,QAAQ,CAAkB;gBAE/B,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC;IAMvC;;;;OAIG;IACI,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM;CAG/B;AAED;;GAEG;AACH,qBACa,kBAAmB,SAAQ,eAAe,CAAC,QAAQ,CAAC;IAC/D,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAA+B;IAE3D,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,KAAK,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAYpD,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxC,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAWhF"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":"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"}