@things-factory/auth-base 5.0.7 → 6.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (411) hide show
  1. package/client/actions/auth.ts +23 -0
  2. package/client/{auth.js → auth.ts} +66 -59
  3. package/client/{bootstrap.js → bootstrap.ts} +5 -4
  4. package/client/index.ts +1 -0
  5. package/client/reducers/{auth.js → auth.ts} +1 -1
  6. package/config/config.development.js +2 -1
  7. package/dist-client/actions/auth.d.ts +8 -0
  8. package/dist-client/actions/auth.js +15 -0
  9. package/dist-client/actions/auth.js.map +1 -0
  10. package/dist-client/auth.d.ts +34 -0
  11. package/dist-client/auth.js +209 -0
  12. package/dist-client/auth.js.map +1 -0
  13. package/dist-client/bootstrap.d.ts +1 -0
  14. package/dist-client/bootstrap.js +34 -0
  15. package/dist-client/bootstrap.js.map +1 -0
  16. package/dist-client/index.d.ts +1 -0
  17. package/dist-client/index.js +2 -0
  18. package/dist-client/index.js.map +1 -0
  19. package/dist-client/reducers/auth.d.ts +14 -0
  20. package/dist-client/reducers/auth.js +19 -0
  21. package/dist-client/reducers/auth.js.map +1 -0
  22. package/dist-client/tsconfig.tsbuildinfo +1 -0
  23. package/dist-server/constants/error-code.d.ts +17 -0
  24. package/dist-server/constants/error-code.js.map +1 -1
  25. package/dist-server/constants/error-message.d.ts +0 -0
  26. package/dist-server/constants/error-message.js.map +1 -1
  27. package/dist-server/constants/max-age.d.ts +1 -0
  28. package/dist-server/constants/max-age.js.map +1 -1
  29. package/dist-server/controllers/auth.d.ts +5 -0
  30. package/dist-server/controllers/auth.js +6 -18
  31. package/dist-server/controllers/auth.js.map +1 -1
  32. package/dist-server/controllers/change-pwd.d.ts +1 -0
  33. package/dist-server/controllers/change-pwd.js +11 -12
  34. package/dist-server/controllers/change-pwd.js.map +1 -1
  35. package/dist-server/controllers/checkin.d.ts +4 -0
  36. package/dist-server/controllers/checkin.js +3 -3
  37. package/dist-server/controllers/checkin.js.map +1 -1
  38. package/dist-server/controllers/delete-user.d.ts +3 -0
  39. package/dist-server/controllers/delete-user.js.map +1 -1
  40. package/dist-server/controllers/invitation.d.ts +11 -0
  41. package/dist-server/controllers/invitation.js +14 -20
  42. package/dist-server/controllers/invitation.js.map +1 -1
  43. package/dist-server/controllers/profile.d.ts +26 -0
  44. package/dist-server/controllers/profile.js +4 -4
  45. package/dist-server/controllers/profile.js.map +1 -1
  46. package/dist-server/controllers/reset-password.d.ts +5 -0
  47. package/dist-server/controllers/reset-password.js +14 -16
  48. package/dist-server/controllers/reset-password.js.map +1 -1
  49. package/dist-server/controllers/signin.d.ts +6 -0
  50. package/dist-server/controllers/signin.js +4 -3
  51. package/dist-server/controllers/signin.js.map +1 -1
  52. package/dist-server/controllers/signup.d.ts +8 -0
  53. package/dist-server/controllers/signup.js +13 -9
  54. package/dist-server/controllers/signup.js.map +1 -1
  55. package/dist-server/controllers/unlock-user.d.ts +5 -0
  56. package/dist-server/controllers/unlock-user.js +6 -6
  57. package/dist-server/controllers/unlock-user.js.map +1 -1
  58. package/dist-server/controllers/utils/make-invitation-token.d.ts +1 -0
  59. package/dist-server/controllers/utils/make-invitation-token.js +2 -4
  60. package/dist-server/controllers/utils/make-invitation-token.js.map +1 -1
  61. package/dist-server/controllers/utils/make-verification-token.d.ts +1 -0
  62. package/dist-server/controllers/utils/make-verification-token.js +2 -4
  63. package/dist-server/controllers/utils/make-verification-token.js.map +1 -1
  64. package/dist-server/controllers/utils/password-rule.d.ts +14 -0
  65. package/dist-server/controllers/utils/password-rule.js +2 -5
  66. package/dist-server/controllers/utils/password-rule.js.map +1 -1
  67. package/dist-server/controllers/utils/save-invitation-token.d.ts +5 -0
  68. package/dist-server/controllers/utils/save-invitation-token.js +2 -2
  69. package/dist-server/controllers/utils/save-invitation-token.js.map +1 -1
  70. package/dist-server/controllers/utils/save-verification-token.d.ts +6 -0
  71. package/dist-server/controllers/utils/save-verification-token.js +2 -2
  72. package/dist-server/controllers/utils/save-verification-token.js.map +1 -1
  73. package/dist-server/controllers/verification.d.ts +6 -0
  74. package/dist-server/controllers/verification.js +8 -8
  75. package/dist-server/controllers/verification.js.map +1 -1
  76. package/dist-server/errors/auth-error.d.ts +11 -0
  77. package/dist-server/errors/auth-error.js +2 -24
  78. package/dist-server/errors/auth-error.js.map +1 -1
  79. package/dist-server/errors/index.d.ts +2 -0
  80. package/dist-server/errors/index.js +3 -16
  81. package/dist-server/errors/index.js.map +1 -1
  82. package/dist-server/errors/user-domain-not-match-error.d.ts +9 -0
  83. package/dist-server/errors/user-domain-not-match-error.js.map +1 -1
  84. package/dist-server/index.d.ts +13 -0
  85. package/dist-server/index.js +13 -25
  86. package/dist-server/index.js.map +1 -1
  87. package/dist-server/middlewares/authenticate-401-middleware.d.ts +1 -0
  88. package/dist-server/middlewares/authenticate-401-middleware.js +12 -20
  89. package/dist-server/middlewares/authenticate-401-middleware.js.map +1 -1
  90. package/dist-server/middlewares/domain-authenticate-middleware.d.ts +11 -0
  91. package/dist-server/middlewares/domain-authenticate-middleware.js +8 -8
  92. package/dist-server/middlewares/domain-authenticate-middleware.js.map +1 -1
  93. package/dist-server/middlewares/graphql-authenticate-middleware.d.ts +1 -0
  94. package/dist-server/middlewares/graphql-authenticate-middleware.js +1 -3
  95. package/dist-server/middlewares/graphql-authenticate-middleware.js.map +1 -1
  96. package/dist-server/middlewares/index.d.ts +5 -0
  97. package/dist-server/middlewares/index.js +6 -24
  98. package/dist-server/middlewares/index.js.map +1 -1
  99. package/dist-server/middlewares/jwt-authenticate-middleware.d.ts +1 -0
  100. package/dist-server/middlewares/jwt-authenticate-middleware.js +5 -11
  101. package/dist-server/middlewares/jwt-authenticate-middleware.js.map +1 -1
  102. package/dist-server/middlewares/signin-middleware.d.ts +1 -0
  103. package/dist-server/middlewares/signin-middleware.js +2 -6
  104. package/dist-server/middlewares/signin-middleware.js.map +1 -1
  105. package/dist-server/migrations/1548206416130-SeedUser.d.ts +5 -0
  106. package/dist-server/migrations/1548206416130-SeedUser.js +4 -5
  107. package/dist-server/migrations/1548206416130-SeedUser.js.map +1 -1
  108. package/dist-server/migrations/1566805283882-SeedPrivilege.d.ts +5 -0
  109. package/dist-server/migrations/1566805283882-SeedPrivilege.js +2 -2
  110. package/dist-server/migrations/1566805283882-SeedPrivilege.js.map +1 -1
  111. package/dist-server/migrations/index.d.ts +1 -0
  112. package/dist-server/migrations/index.js.map +1 -1
  113. package/dist-server/router/auth-checkin-router.d.ts +1 -0
  114. package/dist-server/router/auth-checkin-router.js +3 -8
  115. package/dist-server/router/auth-checkin-router.js.map +1 -1
  116. package/dist-server/router/auth-private-process-router.d.ts +1 -0
  117. package/dist-server/router/auth-private-process-router.js +16 -21
  118. package/dist-server/router/auth-private-process-router.js.map +1 -1
  119. package/dist-server/router/auth-public-process-router.d.ts +1 -0
  120. package/dist-server/router/auth-public-process-router.js +6 -25
  121. package/dist-server/router/auth-public-process-router.js.map +1 -1
  122. package/dist-server/router/auth-signin-router.d.ts +1 -0
  123. package/dist-server/router/auth-signin-router.js +2 -7
  124. package/dist-server/router/auth-signin-router.js.map +1 -1
  125. package/dist-server/router/auth-signup-router.d.ts +1 -0
  126. package/dist-server/router/auth-signup-router.js +34 -40
  127. package/dist-server/router/auth-signup-router.js.map +1 -1
  128. package/dist-server/router/index.d.ts +8 -0
  129. package/dist-server/router/index.js +9 -22
  130. package/dist-server/router/index.js.map +1 -1
  131. package/dist-server/router/oauth2/index.d.ts +2 -0
  132. package/dist-server/router/oauth2/index.js +3 -16
  133. package/dist-server/router/oauth2/index.js.map +1 -1
  134. package/dist-server/router/oauth2/oauth2-authorize-router.d.ts +1 -0
  135. package/dist-server/router/oauth2/oauth2-authorize-router.js +4 -11
  136. package/dist-server/router/oauth2/oauth2-authorize-router.js.map +1 -1
  137. package/dist-server/router/oauth2/oauth2-router.d.ts +9 -0
  138. package/dist-server/router/oauth2/oauth2-router.js +11 -17
  139. package/dist-server/router/oauth2/oauth2-router.js.map +1 -1
  140. package/dist-server/router/oauth2/oauth2-server.d.ts +5 -0
  141. package/dist-server/router/oauth2/oauth2-server.js +25 -35
  142. package/dist-server/router/oauth2/oauth2-server.js.map +1 -1
  143. package/dist-server/router/oauth2/passport-oauth2-client-password.d.ts +7 -0
  144. package/dist-server/router/oauth2/passport-oauth2-client-password.js +3 -5
  145. package/dist-server/router/oauth2/passport-oauth2-client-password.js.map +1 -1
  146. package/dist-server/router/oauth2/passport-refresh-token.d.ts +7 -0
  147. package/dist-server/router/oauth2/passport-refresh-token.js +3 -5
  148. package/dist-server/router/oauth2/passport-refresh-token.js.map +1 -1
  149. package/dist-server/router/path-base-domain-router.d.ts +1 -0
  150. package/dist-server/router/path-base-domain-router.js +2 -6
  151. package/dist-server/router/path-base-domain-router.js.map +1 -1
  152. package/dist-server/router/site-root-router.d.ts +1 -0
  153. package/dist-server/router/site-root-router.js +4 -13
  154. package/dist-server/router/site-root-router.js.map +1 -1
  155. package/dist-server/routes.d.ts +1 -0
  156. package/dist-server/routes.js +2 -9
  157. package/dist-server/routes.js.map +1 -1
  158. package/dist-server/service/app-binding/app-binding-mutation.d.ts +3 -0
  159. package/dist-server/service/app-binding/app-binding-mutation.js +11 -24
  160. package/dist-server/service/app-binding/app-binding-mutation.js.map +1 -1
  161. package/dist-server/service/app-binding/app-binding-query.d.ts +14 -0
  162. package/dist-server/service/app-binding/app-binding-query.js +51 -60
  163. package/dist-server/service/app-binding/app-binding-query.js.map +1 -1
  164. package/dist-server/service/app-binding/app-binding-types.d.ts +5 -0
  165. package/dist-server/service/app-binding/app-binding-types.js +6 -14
  166. package/dist-server/service/app-binding/app-binding-types.js.map +1 -1
  167. package/dist-server/service/app-binding/app-binding.d.ts +7 -0
  168. package/dist-server/service/app-binding/app-binding.js +8 -16
  169. package/dist-server/service/app-binding/app-binding.js.map +1 -1
  170. package/dist-server/service/app-binding/index.d.ts +3 -0
  171. package/dist-server/service/app-binding/index.js.map +1 -1
  172. package/dist-server/service/appliance/appliance-mutation.d.ts +8 -0
  173. package/dist-server/service/appliance/appliance-mutation.js +40 -53
  174. package/dist-server/service/appliance/appliance-mutation.js.map +1 -1
  175. package/dist-server/service/appliance/appliance-query.d.ts +11 -0
  176. package/dist-server/service/appliance/appliance-query.js +35 -48
  177. package/dist-server/service/appliance/appliance-query.js.map +1 -1
  178. package/dist-server/service/appliance/appliance-types.d.ts +22 -0
  179. package/dist-server/service/appliance/appliance-types.js +34 -42
  180. package/dist-server/service/appliance/appliance-types.js.map +1 -1
  181. package/dist-server/service/appliance/appliance.d.ts +22 -0
  182. package/dist-server/service/appliance/appliance.js +35 -47
  183. package/dist-server/service/appliance/appliance.js.map +1 -1
  184. package/dist-server/service/appliance/index.d.ts +5 -0
  185. package/dist-server/service/appliance/index.js.map +1 -1
  186. package/dist-server/service/application/application-mutation.d.ts +66 -0
  187. package/dist-server/service/application/application-mutation.js +47 -61
  188. package/dist-server/service/application/application-mutation.js.map +1 -1
  189. package/dist-server/service/application/application-query.d.ts +16 -0
  190. package/dist-server/service/application/application-query.js +54 -67
  191. package/dist-server/service/application/application-query.js.map +1 -1
  192. package/dist-server/service/application/application-types.d.ts +27 -0
  193. package/dist-server/service/application/application-types.js +41 -49
  194. package/dist-server/service/application/application-types.js.map +1 -1
  195. package/dist-server/service/application/application.d.ts +35 -0
  196. package/dist-server/service/application/application.js +42 -54
  197. package/dist-server/service/application/application.js.map +1 -1
  198. package/dist-server/service/application/index.d.ts +5 -0
  199. package/dist-server/service/application/index.js.map +1 -1
  200. package/dist-server/service/domain-generator/domain-generator-mutation.d.ts +6 -0
  201. package/dist-server/service/domain-generator/domain-generator-mutation.js +21 -32
  202. package/dist-server/service/domain-generator/domain-generator-mutation.js.map +1 -1
  203. package/dist-server/service/domain-generator/domain-generator-types.d.ts +19 -0
  204. package/dist-server/service/domain-generator/domain-generator-types.js +26 -35
  205. package/dist-server/service/domain-generator/domain-generator-types.js.map +1 -1
  206. package/dist-server/service/domain-generator/index.d.ts +2 -0
  207. package/dist-server/service/domain-generator/index.js.map +1 -1
  208. package/dist-server/service/granted-role/granted-role-mutation.d.ts +11 -0
  209. package/dist-server/service/granted-role/granted-role-mutation.js +23 -29
  210. package/dist-server/service/granted-role/granted-role-mutation.js.map +1 -1
  211. package/dist-server/service/granted-role/granted-role-query.d.ts +16 -0
  212. package/dist-server/service/granted-role/granted-role-query.js +31 -43
  213. package/dist-server/service/granted-role/granted-role-query.js.map +1 -1
  214. package/dist-server/service/granted-role/granted-role.d.ts +9 -0
  215. package/dist-server/service/granted-role/granted-role.js +12 -21
  216. package/dist-server/service/granted-role/granted-role.js.map +1 -1
  217. package/dist-server/service/granted-role/index.d.ts +5 -0
  218. package/dist-server/service/granted-role/index.js.map +1 -1
  219. package/dist-server/service/index.d.ts +31 -0
  220. package/dist-server/service/index.js +22 -35
  221. package/dist-server/service/index.js.map +1 -1
  222. package/dist-server/service/invitation/index.d.ts +5 -0
  223. package/dist-server/service/invitation/index.js.map +1 -1
  224. package/dist-server/service/invitation/invitation-mutation.d.ts +17 -0
  225. package/dist-server/service/invitation/invitation-mutation.js +26 -37
  226. package/dist-server/service/invitation/invitation-mutation.js.map +1 -1
  227. package/dist-server/service/invitation/invitation-query.d.ts +8 -0
  228. package/dist-server/service/invitation/invitation-query.js +19 -30
  229. package/dist-server/service/invitation/invitation-query.js.map +1 -1
  230. package/dist-server/service/invitation/invitation-types.d.ts +5 -0
  231. package/dist-server/service/invitation/invitation-types.js +6 -14
  232. package/dist-server/service/invitation/invitation-types.js.map +1 -1
  233. package/dist-server/service/invitation/invitation.d.ts +14 -0
  234. package/dist-server/service/invitation/invitation.js +24 -32
  235. package/dist-server/service/invitation/invitation.js.map +1 -1
  236. package/dist-server/service/login-history/index.d.ts +4 -0
  237. package/dist-server/service/login-history/index.js.map +1 -1
  238. package/dist-server/service/login-history/login-history-query.d.ts +8 -0
  239. package/dist-server/service/login-history/login-history-query.js +27 -40
  240. package/dist-server/service/login-history/login-history-query.js.map +1 -1
  241. package/dist-server/service/login-history/login-history.d.ts +12 -0
  242. package/dist-server/service/login-history/login-history.js +29 -38
  243. package/dist-server/service/login-history/login-history.js.map +1 -1
  244. package/dist-server/service/partner/index.d.ts +5 -0
  245. package/dist-server/service/partner/index.js.map +1 -1
  246. package/dist-server/service/partner/partner-mutation.d.ts +4 -0
  247. package/dist-server/service/partner/partner-mutation.js +20 -32
  248. package/dist-server/service/partner/partner-mutation.js.map +1 -1
  249. package/dist-server/service/partner/partner-query.d.ts +14 -0
  250. package/dist-server/service/partner/partner-query.js +53 -66
  251. package/dist-server/service/partner/partner-query.js.map +1 -1
  252. package/dist-server/service/partner/partner-types.d.ts +5 -0
  253. package/dist-server/service/partner/partner-types.js +6 -14
  254. package/dist-server/service/partner/partner-types.js.map +1 -1
  255. package/dist-server/service/partner/partner.d.ts +15 -0
  256. package/dist-server/service/partner/partner.js +24 -33
  257. package/dist-server/service/partner/partner.js.map +1 -1
  258. package/dist-server/service/password-history/index.d.ts +2 -0
  259. package/dist-server/service/password-history/index.js.map +1 -1
  260. package/dist-server/service/password-history/password-history.d.ts +4 -0
  261. package/dist-server/service/password-history/password-history.js +6 -14
  262. package/dist-server/service/password-history/password-history.js.map +1 -1
  263. package/dist-server/service/privilege/index.d.ts +5 -0
  264. package/dist-server/service/privilege/index.js.map +1 -1
  265. package/dist-server/service/privilege/privilege-directive.d.ts +3 -0
  266. package/dist-server/service/privilege/privilege-directive.js +4 -7
  267. package/dist-server/service/privilege/privilege-directive.js.map +1 -1
  268. package/dist-server/service/privilege/privilege-mutation.d.ts +7 -0
  269. package/dist-server/service/privilege/privilege-mutation.js +32 -42
  270. package/dist-server/service/privilege/privilege-mutation.js.map +1 -1
  271. package/dist-server/service/privilege/privilege-query.d.ts +13 -0
  272. package/dist-server/service/privilege/privilege-query.js +41 -53
  273. package/dist-server/service/privilege/privilege-query.js.map +1 -1
  274. package/dist-server/service/privilege/privilege-types.d.ts +25 -0
  275. package/dist-server/service/privilege/privilege-types.js +35 -43
  276. package/dist-server/service/privilege/privilege-types.js.map +1 -1
  277. package/dist-server/service/privilege/privilege.d.ts +15 -0
  278. package/dist-server/service/privilege/privilege.js +24 -32
  279. package/dist-server/service/privilege/privilege.js.map +1 -1
  280. package/dist-server/service/role/index.d.ts +5 -0
  281. package/dist-server/service/role/index.js.map +1 -1
  282. package/dist-server/service/role/role-mutation.d.ts +8 -0
  283. package/dist-server/service/role/role-mutation.js +40 -49
  284. package/dist-server/service/role/role-mutation.js.map +1 -1
  285. package/dist-server/service/role/role-query.d.ts +18 -0
  286. package/dist-server/service/role/role-query.js +73 -84
  287. package/dist-server/service/role/role-query.js.map +1 -1
  288. package/dist-server/service/role/role-types.d.ts +33 -0
  289. package/dist-server/service/role/role-types.js +48 -56
  290. package/dist-server/service/role/role-types.js.map +1 -1
  291. package/dist-server/service/role/role.d.ts +18 -0
  292. package/dist-server/service/role/role.js +28 -37
  293. package/dist-server/service/role/role.js.map +1 -1
  294. package/dist-server/service/user/index.d.ts +5 -0
  295. package/dist-server/service/user/index.js.map +1 -1
  296. package/dist-server/service/user/user-mutation.d.ts +28 -0
  297. package/dist-server/service/user/user-mutation.js +89 -93
  298. package/dist-server/service/user/user-mutation.js.map +1 -1
  299. package/dist-server/service/user/user-query.d.ts +16 -0
  300. package/dist-server/service/user/user-query.js +73 -82
  301. package/dist-server/service/user/user-query.js.map +1 -1
  302. package/dist-server/service/user/user-types.d.ts +26 -0
  303. package/dist-server/service/user/user-types.js +40 -48
  304. package/dist-server/service/user/user-types.js.map +1 -1
  305. package/dist-server/service/user/user.d.ts +39 -0
  306. package/dist-server/service/user/user.js +53 -63
  307. package/dist-server/service/user/user.js.map +1 -1
  308. package/dist-server/service/verification-token/index.d.ts +2 -0
  309. package/dist-server/service/verification-token/index.js.map +1 -1
  310. package/dist-server/service/verification-token/verification-token.d.ts +14 -0
  311. package/dist-server/service/verification-token/verification-token.js +14 -22
  312. package/dist-server/service/verification-token/verification-token.js.map +1 -1
  313. package/dist-server/templates/account-unlock-email.d.ts +4 -0
  314. package/dist-server/templates/account-unlock-email.js.map +1 -1
  315. package/dist-server/templates/invitation-email.d.ts +4 -0
  316. package/dist-server/templates/invitation-email.js.map +1 -1
  317. package/dist-server/templates/reset-password-email.d.ts +4 -0
  318. package/dist-server/templates/reset-password-email.js.map +1 -1
  319. package/dist-server/templates/verification-email.d.ts +4 -0
  320. package/dist-server/templates/verification-email.js.map +1 -1
  321. package/dist-server/tsconfig.tsbuildinfo +1 -0
  322. package/dist-server/types.d.ts +17 -0
  323. package/dist-server/types.js +3 -0
  324. package/dist-server/types.js.map +1 -0
  325. package/dist-server/utils/accepts.d.ts +1 -0
  326. package/dist-server/utils/accepts.js.map +1 -1
  327. package/dist-server/utils/access-token-cookie.d.ts +3 -0
  328. package/dist-server/utils/access-token-cookie.js.map +1 -1
  329. package/dist-server/utils/check-user-belongs-domain.d.ts +10 -0
  330. package/dist-server/utils/check-user-belongs-domain.js +2 -2
  331. package/dist-server/utils/check-user-belongs-domain.js.map +1 -1
  332. package/dist-server/utils/get-domain-from-hostname.d.ts +1 -0
  333. package/dist-server/utils/get-domain-from-hostname.js.map +1 -1
  334. package/dist-server/utils/get-domain-users.d.ts +5 -0
  335. package/dist-server/utils/get-domain-users.js +2 -3
  336. package/dist-server/utils/get-domain-users.js.map +1 -1
  337. package/dist-server/utils/get-secret.d.ts +1 -0
  338. package/dist-server/utils/get-secret.js.map +1 -1
  339. package/dist-server/utils/get-user-domains.d.ts +5 -0
  340. package/dist-server/utils/get-user-domains.js +7 -5
  341. package/dist-server/utils/get-user-domains.js.map +1 -1
  342. package/package.json +15 -13
  343. package/server/controllers/auth.ts +1 -0
  344. package/server/controllers/change-pwd.ts +12 -15
  345. package/server/controllers/checkin.ts +3 -3
  346. package/server/controllers/invitation.ts +10 -16
  347. package/server/controllers/profile.ts +4 -3
  348. package/server/controllers/reset-password.ts +13 -14
  349. package/server/controllers/signin.ts +4 -2
  350. package/server/controllers/signup.ts +13 -8
  351. package/server/controllers/unlock-user.ts +5 -3
  352. package/server/controllers/utils/password-rule.ts +0 -1
  353. package/server/controllers/utils/save-invitation-token.ts +2 -1
  354. package/server/controllers/utils/save-verification-token.ts +2 -1
  355. package/server/controllers/verification.ts +6 -4
  356. package/server/errors/auth-error.ts +3 -0
  357. package/server/errors/user-domain-not-match-error.ts +3 -0
  358. package/server/index.ts +3 -1
  359. package/server/middlewares/authenticate-401-middleware.ts +15 -11
  360. package/server/middlewares/domain-authenticate-middleware.ts +11 -12
  361. package/server/middlewares/graphql-authenticate-middleware.ts +1 -5
  362. package/server/middlewares/index.ts +0 -4
  363. package/server/middlewares/jwt-authenticate-middleware.ts +4 -9
  364. package/server/middlewares/signin-middleware.ts +6 -5
  365. package/server/migrations/1548206416130-SeedUser.ts +3 -3
  366. package/server/migrations/1566805283882-SeedPrivilege.ts +2 -1
  367. package/server/router/auth-checkin-router.ts +5 -7
  368. package/server/router/auth-private-process-router.ts +16 -18
  369. package/server/router/auth-public-process-router.ts +6 -37
  370. package/server/router/auth-signin-router.ts +1 -5
  371. package/server/router/auth-signup-router.ts +40 -47
  372. package/server/router/oauth2/oauth2-authorize-router.ts +4 -10
  373. package/server/router/oauth2/oauth2-router.ts +4 -11
  374. package/server/router/oauth2/oauth2-server.ts +19 -34
  375. package/server/router/path-base-domain-router.ts +0 -4
  376. package/server/router/site-root-router.ts +4 -11
  377. package/server/routes.ts +8 -13
  378. package/server/service/app-binding/app-binding-mutation.ts +6 -8
  379. package/server/service/app-binding/app-binding-query.ts +15 -14
  380. package/server/service/appliance/appliance-mutation.ts +14 -13
  381. package/server/service/appliance/appliance-query.ts +11 -10
  382. package/server/service/application/application-mutation.ts +24 -18
  383. package/server/service/application/application-query.ts +20 -17
  384. package/server/service/domain-generator/domain-generator-mutation.ts +15 -10
  385. package/server/service/granted-role/granted-role-mutation.ts +15 -13
  386. package/server/service/granted-role/granted-role-query.ts +12 -10
  387. package/server/service/invitation/invitation-mutation.ts +7 -5
  388. package/server/service/invitation/invitation-query.ts +6 -4
  389. package/server/service/login-history/login-history-query.ts +13 -11
  390. package/server/service/login-history/login-history.ts +5 -4
  391. package/server/service/partner/partner-mutation.ts +10 -9
  392. package/server/service/partner/partner-query.ts +10 -10
  393. package/server/service/privilege/privilege-directive.ts +1 -3
  394. package/server/service/privilege/privilege-mutation.ts +15 -9
  395. package/server/service/privilege/privilege-query.ts +7 -7
  396. package/server/service/role/role-mutation.ts +18 -11
  397. package/server/service/role/role-query.ts +18 -16
  398. package/server/service/user/user-mutation.ts +39 -34
  399. package/server/service/user/user-query.ts +29 -21
  400. package/server/service/user/user.ts +12 -10
  401. package/server/types.ts +21 -0
  402. package/server/utils/check-user-belongs-domain.ts +2 -2
  403. package/server/utils/get-domain-users.ts +4 -2
  404. package/server/utils/get-user-domains.ts +8 -5
  405. package/things-factory.config.js +1 -1
  406. package/translations/en.json +2 -5
  407. package/translations/ko.json +5 -8
  408. package/translations/ms.json +2 -5
  409. package/translations/zh.json +2 -5
  410. package/client/actions/auth.js +0 -16
  411. package/client/index.js +0 -2
@@ -1,20 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resetPassword = exports.sendPasswordResetEmail = void 0;
4
- const email_base_1 = require("@things-factory/email-base");
5
- const typeorm_1 = require("typeorm");
6
4
  const url_1 = require("url");
5
+ const email_base_1 = require("@things-factory/email-base");
6
+ const env_1 = require("@things-factory/env");
7
+ const shell_1 = require("@things-factory/shell");
8
+ const error_code_1 = require("../constants/error-code");
9
+ const auth_error_1 = require("../errors/auth-error");
10
+ const password_history_1 = require("../service/password-history/password-history");
7
11
  const user_1 = require("../service/user/user");
8
12
  const verification_token_1 = require("../service/verification-token/verification-token");
9
- const password_history_1 = require("../service/password-history/password-history");
10
13
  const reset_password_email_1 = require("../templates/reset-password-email");
11
14
  const make_verification_token_1 = require("./utils/make-verification-token");
12
15
  const save_verification_token_1 = require("./utils/save-verification-token");
13
- const env_1 = require("@things-factory/env");
14
- const error_code_1 = require("../constants/error-code");
15
- const auth_error_1 = require("../errors/auth-error");
16
16
  const HISTORY_SIZE = env_1.config.get('password', { history: 0 }).history;
17
- const debug = require('debug')('things-factory:auth-base:reset-password');
18
17
  async function sendPasswordResetEmail({ user, context }) {
19
18
  try {
20
19
  var token = (0, make_verification_token_1.makeVerificationToken)();
@@ -39,7 +38,7 @@ async function sendPasswordResetEmail({ user, context }) {
39
38
  exports.sendPasswordResetEmail = sendPasswordResetEmail;
40
39
  async function resetPassword(token, password, context) {
41
40
  const { t } = context;
42
- const verificationToken = await (0, typeorm_1.getRepository)(verification_token_1.VerificationToken).findOne({
41
+ const verificationToken = await (0, shell_1.getRepository)(verification_token_1.VerificationToken).findOne({
43
42
  where: {
44
43
  token,
45
44
  type: verification_token_1.VerificationTokenType.PASSWORD_RESET
@@ -52,7 +51,7 @@ async function resetPassword(token, password, context) {
52
51
  if (!userId) {
53
52
  throw new Error(t('text.invalid verification token'));
54
53
  }
55
- var user = await (0, typeorm_1.getRepository)(user_1.User).findOne(userId);
54
+ var user = await (0, shell_1.getRepository)(user_1.User).findOneBy({ id: userId });
56
55
  if (!user) {
57
56
  throw new Error(t('error.user not found'));
58
57
  }
@@ -63,18 +62,18 @@ async function resetPassword(token, password, context) {
63
62
  user_1.User.validatePasswordByRule(password, context === null || context === void 0 ? void 0 : context.lng);
64
63
  user.password = user_1.User.encode(password, user.salt);
65
64
  if (HISTORY_SIZE > 0) {
66
- var passwordHistory = await (0, typeorm_1.getRepository)(password_history_1.PasswordHistory).findOne(user.id);
65
+ var passwordHistory = await (0, shell_1.getRepository)(password_history_1.PasswordHistory).findOneBy({ userId: user.id });
67
66
  var history = [];
68
67
  if (passwordHistory) {
69
68
  try {
70
69
  history = JSON.parse(passwordHistory.history);
71
70
  if (!(history instanceof Array)) {
72
- debug('password history maybe currupted - not an array');
71
+ console.error('password history maybe currupted - not an array');
73
72
  history = [];
74
73
  }
75
74
  }
76
75
  catch (e) {
77
- debug('password history currupted - not json format');
76
+ console.error('password history currupted - not json format');
78
77
  }
79
78
  const found = history.slice(0, HISTORY_SIZE).find(h => {
80
79
  return user_1.User.verify(h.password, password, h.salt);
@@ -86,8 +85,8 @@ async function resetPassword(token, password, context) {
86
85
  }
87
86
  }
88
87
  }
89
- await (0, typeorm_1.getRepository)(user_1.User).save(Object.assign(Object.assign({}, user), { passwordUpdatedAt: new Date() }));
90
- await (0, typeorm_1.getRepository)(verification_token_1.VerificationToken).delete({
88
+ await (0, shell_1.getRepository)(user_1.User).save(Object.assign(Object.assign({}, user), { passwordUpdatedAt: new Date() }));
89
+ await (0, shell_1.getRepository)(verification_token_1.VerificationToken).delete({
91
90
  userId,
92
91
  token,
93
92
  type: verification_token_1.VerificationTokenType.PASSWORD_RESET
@@ -100,11 +99,10 @@ async function resetPassword(token, password, context) {
100
99
  },
101
100
  ...history
102
101
  ].slice(0, HISTORY_SIZE);
103
- await (0, typeorm_1.getRepository)(password_history_1.PasswordHistory).save({
102
+ await (0, shell_1.getRepository)(password_history_1.PasswordHistory).save({
104
103
  userId: user.id,
105
104
  history: JSON.stringify(history)
106
105
  });
107
- debug('password history updated', history.length);
108
106
  }
109
107
  }
110
108
  exports.resetPassword = resetPassword;
@@ -1 +1 @@
1
- {"version":3,"file":"reset-password.js","sourceRoot":"","sources":["../../server/controllers/reset-password.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reset-password.js","sourceRoot":"","sources":["../../server/controllers/reset-password.ts"],"names":[],"mappings":"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","sourcesContent":["import { URL } from 'url'\n\nimport { sendEmail } from '@things-factory/email-base'\nimport { config } from '@things-factory/env'\nimport { getRepository } from '@things-factory/shell'\n\nimport { PASSWORD_USED_PAST } from '../constants/error-code'\nimport { AuthError } from '../errors/auth-error'\nimport { PasswordHistory } from '../service/password-history/password-history'\nimport { User } from '../service/user/user'\nimport { VerificationToken, VerificationTokenType } from '../service/verification-token/verification-token'\nimport { getResetPasswordEmailForm } from '../templates/reset-password-email'\nimport { makeVerificationToken } from './utils/make-verification-token'\nimport { saveVerificationToken } from './utils/save-verification-token'\n\nconst HISTORY_SIZE = config.get('password', { history: 0 }).history\n\nexport async function sendPasswordResetEmail({ user, context }) {\n try {\n var token = makeVerificationToken()\n var verifaction = await saveVerificationToken(user.id, token, VerificationTokenType.PASSWORD_RESET)\n\n if (verifaction) {\n var serviceUrl = new URL(`/auth/reset-password?token=${token}`, context.header.referer)\n await sendEmail({\n receiver: user.email,\n subject: 'Reset your password',\n content: getResetPasswordEmailForm({\n name: user.name,\n resetUrl: serviceUrl\n })\n })\n\n return true\n }\n } catch (e) {\n return false\n }\n}\n\nexport async function resetPassword(token, password, context) {\n const { t } = context\n\n const verificationToken = await getRepository(VerificationToken).findOne({\n where: {\n token,\n type: VerificationTokenType.PASSWORD_RESET\n }\n })\n\n if (!verificationToken) {\n throw new Error(t('text.invalid verification token'))\n }\n\n const { userId } = verificationToken\n if (!userId) {\n throw new Error(t('text.invalid verification token'))\n }\n\n var user = await getRepository(User).findOneBy({ id: userId })\n if (!user) {\n throw new Error(t('error.user not found'))\n }\n\n // if (user.status == UserStatus.INACTIVE) {\n // throw new Error(t('text.inactive user'))\n // }\n\n /* check if password is following the rule */\n User.validatePasswordByRule(password, context?.lng)\n\n user.password = User.encode(password, user.salt)\n\n if (HISTORY_SIZE > 0) {\n var passwordHistory: PasswordHistory = await getRepository(PasswordHistory).findOneBy({ userId: user.id })\n var history = []\n\n if (passwordHistory) {\n try {\n history = JSON.parse(passwordHistory.history)\n if (!(history instanceof Array)) {\n console.error('password history maybe currupted - not an array')\n history = []\n }\n } catch (e) {\n console.error('password history currupted - not json format')\n }\n\n const found = history.slice(0, HISTORY_SIZE).find(h => {\n return User.verify(h.password, password, h.salt)\n })\n\n if (found) {\n throw new AuthError({\n errorCode: PASSWORD_USED_PAST\n })\n }\n }\n }\n\n await getRepository(User).save({\n ...user,\n passwordUpdatedAt: new Date()\n })\n\n await getRepository(VerificationToken).delete({\n userId,\n token,\n type: VerificationTokenType.PASSWORD_RESET\n })\n\n if (HISTORY_SIZE > 0) {\n history = [\n {\n password: user.password,\n salt: user.salt\n },\n ...history\n ].slice(0, HISTORY_SIZE)\n\n await getRepository(PasswordHistory).save({\n userId: user.id,\n history: JSON.stringify(history)\n })\n }\n}\n"]}
@@ -0,0 +1,6 @@
1
+ import { User } from '../service/user/user';
2
+ export declare function signin(attrs: any, context?: any): Promise<{
3
+ user: User;
4
+ token: string;
5
+ domains: import("@things-factory/shell").Domain[];
6
+ }>;
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.signin = void 0;
4
- const typeorm_1 = require("typeorm");
4
+ const shell_1 = require("@things-factory/shell");
5
5
  const unlock_user_1 = require("../controllers/unlock-user");
6
- const user_1 = require("../service/user/user");
7
6
  const auth_error_1 = require("../errors/auth-error");
7
+ const user_1 = require("../service/user/user");
8
8
  async function signin(attrs, context) {
9
9
  const { domain } = (context === null || context === void 0 ? void 0 : context.state) || {};
10
- const repository = (0, typeorm_1.getRepository)(user_1.User);
10
+ const repository = (0, shell_1.getRepository)(user_1.User);
11
11
  const user = await repository.findOne({ where: { email: attrs.email }, relations: ['domains'] });
12
12
  if (!user)
13
13
  throw new auth_error_1.AuthError({
@@ -50,6 +50,7 @@ async function signin(attrs, context) {
50
50
  throw new auth_error_1.AuthError({
51
51
  errorCode: auth_error_1.AuthError.ERROR_CODES.PASSWORD_NOT_MATCHED,
52
52
  detail: {
53
+ email: user.email,
53
54
  failCount: user.failCount
54
55
  }
55
56
  });
@@ -1 +1 @@
1
- {"version":3,"file":"signin.js","sourceRoot":"","sources":["../../server/controllers/signin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signin.js","sourceRoot":"","sources":["../../server/controllers/signin.ts"],"names":[],"mappings":"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","sourcesContent":["import { getRepository } from '@things-factory/shell'\n\nimport { sendUnlockUserEmail } from '../controllers/unlock-user'\nimport { AuthError } from '../errors/auth-error'\nimport { User, UserStatus } from '../service/user/user'\n\nexport async function signin(attrs, context?) {\n const { domain } = context?.state || {}\n\n const repository = getRepository(User)\n const user = await repository.findOne({ where: { email: attrs.email }, relations: ['domains'] })\n if (!user)\n throw new AuthError({\n errorCode: AuthError.ERROR_CODES.USER_NOT_FOUND\n })\n\n if (user.status == UserStatus.DELETED) {\n throw new AuthError({\n errorCode: AuthError.ERROR_CODES.USER_DELETED\n })\n }\n\n if (user.status == UserStatus.LOCKED) {\n sendUnlockUserEmail({\n user,\n context\n })\n throw new AuthError({\n errorCode: AuthError.ERROR_CODES.USER_LOCKED,\n detail: {\n email: user.email\n }\n })\n }\n\n if (!User.verify(user.password, attrs.password, user.salt)) {\n user.failCount++\n if (user.failCount >= 5) user.status = UserStatus.LOCKED\n await repository.save(user)\n if (user.status == UserStatus.LOCKED) {\n sendUnlockUserEmail({\n user,\n context\n })\n throw new AuthError({\n errorCode: AuthError.ERROR_CODES.USER_LOCKED,\n detail: {\n email: user.email\n }\n })\n }\n throw new AuthError({\n errorCode: AuthError.ERROR_CODES.PASSWORD_NOT_MATCHED,\n detail: {\n email: user.email,\n failCount: user.failCount\n }\n })\n } else {\n user.failCount = 0\n await repository.save(user)\n }\n\n if (user.status == UserStatus.INACTIVE) {\n throw new AuthError({\n errorCode: AuthError.ERROR_CODES.USER_NOT_ACTIVATED,\n detail: {\n email: user.email\n }\n })\n }\n\n return {\n user,\n token: await user.sign({ subdomain: domain?.subdomain }),\n domains: user.domains || []\n }\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import { User } from '../service/user/user';
2
+ export declare function signup(attrs: any, withEmailVerification?: Boolean): Promise<{
3
+ token: {
4
+ user: User;
5
+ token: string;
6
+ domains: import("@things-factory/shell").Domain[];
7
+ };
8
+ }>;
@@ -1,21 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.signup = void 0;
4
- const typeorm_1 = require("typeorm");
4
+ const shell_1 = require("@things-factory/shell");
5
+ const error_code_1 = require("../constants/error-code");
6
+ const auth_error_1 = require("../errors/auth-error");
5
7
  const user_1 = require("../service/user/user");
6
- const verification_1 = require("./verification");
7
8
  const signin_1 = require("./signin");
8
- const auth_error_1 = require("../errors/auth-error");
9
- const error_code_1 = require("../constants/error-code");
9
+ const verification_1 = require("./verification");
10
10
  async function signup(attrs, withEmailVerification) {
11
- const { email, password, domain, context } = attrs;
11
+ const { name, email, password, domain, context } = attrs;
12
12
  /* check if password is following the rule */
13
13
  user_1.User.validatePasswordByRule(password, context.lng);
14
- const repository = (0, typeorm_1.getRepository)(user_1.User);
15
- const old = await repository.findOne({ email });
16
- if (old) {
14
+ const repository = (0, shell_1.getRepository)(user_1.User);
15
+ const duplicated = await repository.findOneBy({ email });
16
+ if (duplicated) {
17
17
  throw new auth_error_1.AuthError({
18
- errorCode: error_code_1.USER_DUPLICATED
18
+ errorCode: error_code_1.USER_DUPLICATED,
19
+ detail: {
20
+ name,
21
+ email
22
+ }
19
23
  });
20
24
  }
21
25
  const salt = user_1.User.generateSalt();
@@ -1 +1 @@
1
- {"version":3,"file":"signup.js","sourceRoot":"","sources":["../../server/controllers/signup.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AACvC,+CAA2C;AAC3C,iDAAsD;AACtD,qCAAiC;AACjC,qDAAgD;AAChD,wDAAyD;AAElD,KAAK,UAAU,MAAM,CAAC,KAAK,EAAE,qBAA+B;IACjE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAA;IAElD,6CAA6C;IAC7C,WAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;IAElD,MAAM,UAAU,GAAG,IAAA,uBAAa,EAAC,WAAI,CAAC,CAAA;IACtC,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAC/C,IAAI,GAAG,EAAE;QACP,MAAM,IAAI,sBAAS,CAAC;YAClB,SAAS,EAAE,4BAAe;SAC3B,CAAC,CAAA;KACH;IAED,MAAM,IAAI,GAAG,WAAI,CAAC,YAAY,EAAE,CAAA;IAEhC,IAAI,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,+BAC9B,QAAQ,EAAE,MAAM,IACb,KAAK,KACR,IAAI,EACJ,QAAQ,EAAE,WAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,EACrC,iBAAiB,EAAE,IAAI,IAAI,EAAE,EAC7B,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAC/B,CAAA;IAEF,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,IAAI,qBAAqB,EAAE;QACzB,OAAO,GAAG,MAAM,IAAA,oCAAqB,EAAC;YACpC,OAAO;YACP,IAAI;SACL,CAAC,CAAA;KACH;IAED,IAAI;QACF,OAAO;YACL,KAAK,EAAE,MAAM,IAAA,eAAM,EACjB;gBACE,KAAK;gBACL,QAAQ;aACT,EACD,EAAE,MAAM,EAAE,CACX;SACF,CAAA;KACF;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;KACvB;AACH,CAAC;AA9CD,wBA8CC"}
1
+ {"version":3,"file":"signup.js","sourceRoot":"","sources":["../../server/controllers/signup.ts"],"names":[],"mappings":";;;AAAA,iDAAqD;AAErD,wDAAyD;AACzD,qDAAgD;AAChD,+CAA2C;AAC3C,qCAAiC;AACjC,iDAAsD;AAE/C,KAAK,UAAU,MAAM,CAAC,KAAK,EAAE,qBAA+B;IACjE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAA;IAExD,6CAA6C;IAC7C,WAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;IAElD,MAAM,UAAU,GAAG,IAAA,qBAAa,EAAC,WAAI,CAAC,CAAA;IACtC,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IACxD,IAAI,UAAU,EAAE;QACd,MAAM,IAAI,sBAAS,CAAC;YAClB,SAAS,EAAE,4BAAe;YAC1B,MAAM,EAAE;gBACN,IAAI;gBACJ,KAAK;aACN;SACF,CAAC,CAAA;KACH;IAED,MAAM,IAAI,GAAG,WAAI,CAAC,YAAY,EAAE,CAAA;IAEhC,IAAI,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,+BAC9B,QAAQ,EAAE,MAAM,IACb,KAAK,KACR,IAAI,EACJ,QAAQ,EAAE,WAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,EACrC,iBAAiB,EAAE,IAAI,IAAI,EAAE,EAC7B,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAC/B,CAAA;IAEF,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,IAAI,qBAAqB,EAAE;QACzB,OAAO,GAAG,MAAM,IAAA,oCAAqB,EAAC;YACpC,OAAO;YACP,IAAI;SACL,CAAC,CAAA;KACH;IAED,IAAI;QACF,OAAO;YACL,KAAK,EAAE,MAAM,IAAA,eAAM,EACjB;gBACE,KAAK;gBACL,QAAQ;aACT,EACD,EAAE,MAAM,EAAE,CACX;SACF,CAAA;KACF;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;KACvB;AACH,CAAC;AAlDD,wBAkDC","sourcesContent":["import { getRepository } from '@things-factory/shell'\n\nimport { USER_DUPLICATED } from '../constants/error-code'\nimport { AuthError } from '../errors/auth-error'\nimport { User } from '../service/user/user'\nimport { signin } from './signin'\nimport { sendVerificationEmail } from './verification'\n\nexport async function signup(attrs, withEmailVerification?: Boolean) {\n const { name, email, password, domain, context } = attrs\n\n /* check if password is following the rule */\n User.validatePasswordByRule(password, context.lng)\n\n const repository = getRepository(User)\n const duplicated = await repository.findOneBy({ email })\n if (duplicated) {\n throw new AuthError({\n errorCode: USER_DUPLICATED,\n detail: {\n name,\n email\n }\n })\n }\n\n const salt = User.generateSalt()\n\n var user = await repository.save({\n userType: 'user',\n ...attrs,\n salt,\n password: User.encode(password, salt),\n passwordUpdatedAt: new Date(),\n domains: domain ? [domain] : []\n })\n\n var succeed = false\n if (withEmailVerification) {\n succeed = await sendVerificationEmail({\n context,\n user\n })\n }\n\n try {\n return {\n token: await signin(\n {\n email,\n password\n },\n { domain }\n )\n }\n } catch (e) {\n return { token: null }\n }\n}\n"]}
@@ -0,0 +1,5 @@
1
+ export declare function sendUnlockUserEmail({ user, context }: {
2
+ user: any;
3
+ context: any;
4
+ }): Promise<boolean>;
5
+ export declare function unlockUser(token: any, password: any): Promise<boolean>;
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.unlockUser = exports.sendUnlockUserEmail = void 0;
4
- const email_base_1 = require("@things-factory/email-base");
5
- const typeorm_1 = require("typeorm");
6
4
  const url_1 = require("url");
5
+ const email_base_1 = require("@things-factory/email-base");
6
+ const shell_1 = require("@things-factory/shell");
7
7
  const user_1 = require("../service/user/user");
8
8
  const verification_token_1 = require("../service/verification-token/verification-token");
9
9
  const account_unlock_email_1 = require("../templates/account-unlock-email");
@@ -32,7 +32,7 @@ async function sendUnlockUserEmail({ user, context }) {
32
32
  }
33
33
  exports.sendUnlockUserEmail = sendUnlockUserEmail;
34
34
  async function unlockUser(token, password) {
35
- var { userId } = await (0, typeorm_1.getRepository)(verification_token_1.VerificationToken).findOne({
35
+ var { userId } = await (0, shell_1.getRepository)(verification_token_1.VerificationToken).findOne({
36
36
  where: {
37
37
  token,
38
38
  type: verification_token_1.VerificationTokenType.UNLOCK
@@ -40,7 +40,7 @@ async function unlockUser(token, password) {
40
40
  });
41
41
  if (!userId)
42
42
  return false;
43
- var userInfo = await (0, typeorm_1.getRepository)(user_1.User).findOne(userId);
43
+ var userInfo = await (0, shell_1.getRepository)(user_1.User).findOneBy({ id: userId });
44
44
  if (!userInfo)
45
45
  return false;
46
46
  if (userInfo.status != user_1.UserStatus.LOCKED)
@@ -48,8 +48,8 @@ async function unlockUser(token, password) {
48
48
  userInfo.status = user_1.UserStatus.ACTIVATED;
49
49
  userInfo.password = user_1.User.encode(password, userInfo.salt);
50
50
  userInfo.failCount = 0;
51
- await (0, typeorm_1.getRepository)(user_1.User).save(userInfo);
52
- await (0, typeorm_1.getRepository)(verification_token_1.VerificationToken).delete({
51
+ await (0, shell_1.getRepository)(user_1.User).save(userInfo);
52
+ await (0, shell_1.getRepository)(verification_token_1.VerificationToken).delete({
53
53
  userId,
54
54
  token,
55
55
  type: verification_token_1.VerificationTokenType.UNLOCK
@@ -1 +1 @@
1
- {"version":3,"file":"unlock-user.js","sourceRoot":"","sources":["../../server/controllers/unlock-user.ts"],"names":[],"mappings":";;;AAAA,2DAAsD;AACtD,qCAAuC;AACvC,6BAAyB;AACzB,+CAAuD;AACvD,yFAA2G;AAC3G,4EAA0E;AAC1E,6EAAuE;AACvE,6EAAuE;AAEhE,KAAK,UAAU,mBAAmB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;IACzD,IAAI;QACF,IAAI,KAAK,GAAG,IAAA,+CAAqB,GAAE,CAAA;QACnC,IAAI,WAAW,GAAG,MAAM,IAAA,+CAAqB,EAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,0CAAqB,CAAC,MAAM,CAAC,CAAA;QAE3F,IAAI,WAAW,EAAE;YACf,IAAI,UAAU,GAAG,IAAI,SAAG,CAAC,2BAA2B,KAAK,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YACpF,MAAM,IAAA,sBAAS,EAAC;gBACd,QAAQ,EAAE,IAAI,CAAC,KAAK;gBACpB,OAAO,EAAE,wBAAwB;gBACjC,OAAO,EAAE,IAAA,6CAAsB,EAAC;oBAC9B,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,QAAQ,EAAE,UAAU;iBACrB,CAAC;aACH,CAAC,CAAA;YAEF,OAAO,IAAI,CAAA;SACZ;KACF;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,KAAK,CAAA;KACb;AACH,CAAC;AArBD,kDAqBC;AAEM,KAAK,UAAU,UAAU,CAAC,KAAK,EAAE,QAAQ;IAC9C,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,uBAAa,EAAC,sCAAiB,CAAC,CAAC,OAAO,CAAC;QAC9D,KAAK,EAAE;YACL,KAAK;YACL,IAAI,EAAE,0CAAqB,CAAC,MAAM;SACnC;KACF,CAAC,CAAA;IAEF,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IAEzB,IAAI,QAAQ,GAAG,MAAM,IAAA,uBAAa,EAAC,WAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACxD,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC3B,IAAI,QAAQ,CAAC,MAAM,IAAI,iBAAU,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IAEtD,QAAQ,CAAC,MAAM,GAAG,iBAAU,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,QAAQ,GAAG,WAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;IACxD,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAA;IAEtB,MAAM,IAAA,uBAAa,EAAC,WAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACxC,MAAM,IAAA,uBAAa,EAAC,sCAAiB,CAAC,CAAC,MAAM,CAAC;QAC5C,MAAM;QACN,KAAK;QACL,IAAI,EAAE,0CAAqB,CAAC,MAAM;KACnC,CAAC,CAAA;IAEF,OAAO,IAAI,CAAA;AACb,CAAC;AA1BD,gCA0BC"}
1
+ {"version":3,"file":"unlock-user.js","sourceRoot":"","sources":["../../server/controllers/unlock-user.ts"],"names":[],"mappings":";;;AAAA,6BAAyB;AAEzB,2DAAsD;AACtD,iDAAqD;AAErD,+CAAuD;AACvD,yFAA2G;AAC3G,4EAA0E;AAC1E,6EAAuE;AACvE,6EAAuE;AAEhE,KAAK,UAAU,mBAAmB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;IACzD,IAAI;QACF,IAAI,KAAK,GAAG,IAAA,+CAAqB,GAAE,CAAA;QACnC,IAAI,WAAW,GAAG,MAAM,IAAA,+CAAqB,EAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,0CAAqB,CAAC,MAAM,CAAC,CAAA;QAE3F,IAAI,WAAW,EAAE;YACf,IAAI,UAAU,GAAG,IAAI,SAAG,CAAC,2BAA2B,KAAK,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YACpF,MAAM,IAAA,sBAAS,EAAC;gBACd,QAAQ,EAAE,IAAI,CAAC,KAAK;gBACpB,OAAO,EAAE,wBAAwB;gBACjC,OAAO,EAAE,IAAA,6CAAsB,EAAC;oBAC9B,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,QAAQ,EAAE,UAAU;iBACrB,CAAC;aACH,CAAC,CAAA;YAEF,OAAO,IAAI,CAAA;SACZ;KACF;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,KAAK,CAAA;KACb;AACH,CAAC;AArBD,kDAqBC;AAEM,KAAK,UAAU,UAAU,CAAC,KAAK,EAAE,QAAQ;IAC9C,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,qBAAa,EAAC,sCAAiB,CAAC,CAAC,OAAO,CAAC;QAC9D,KAAK,EAAE;YACL,KAAK;YACL,IAAI,EAAE,0CAAqB,CAAC,MAAM;SACnC;KACF,CAAC,CAAA;IAEF,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IAEzB,IAAI,QAAQ,GAAG,MAAM,IAAA,qBAAa,EAAC,WAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IAClE,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC3B,IAAI,QAAQ,CAAC,MAAM,IAAI,iBAAU,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IAEtD,QAAQ,CAAC,MAAM,GAAG,iBAAU,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,QAAQ,GAAG,WAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;IACxD,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAA;IAEtB,MAAM,IAAA,qBAAa,EAAC,WAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACxC,MAAM,IAAA,qBAAa,EAAC,sCAAiB,CAAC,CAAC,MAAM,CAAC;QAC5C,MAAM;QACN,KAAK;QACL,IAAI,EAAE,0CAAqB,CAAC,MAAM;KACnC,CAAC,CAAA;IAEF,OAAO,IAAI,CAAA;AACb,CAAC;AA1BD,gCA0BC","sourcesContent":["import { URL } from 'url'\n\nimport { sendEmail } from '@things-factory/email-base'\nimport { getRepository } from '@things-factory/shell'\n\nimport { User, UserStatus } from '../service/user/user'\nimport { VerificationToken, VerificationTokenType } from '../service/verification-token/verification-token'\nimport { getUnlockUserEmailForm } from '../templates/account-unlock-email'\nimport { makeVerificationToken } from './utils/make-verification-token'\nimport { saveVerificationToken } from './utils/save-verification-token'\n\nexport async function sendUnlockUserEmail({ user, context }) {\n try {\n var token = makeVerificationToken()\n var verifaction = await saveVerificationToken(user.id, token, VerificationTokenType.UNLOCK)\n\n if (verifaction) {\n var serviceUrl = new URL(`/auth/unlock-user?token=${token}`, context.header.referer)\n await sendEmail({\n receiver: user.email,\n subject: 'Your account is locked',\n content: getUnlockUserEmailForm({\n name: user.name,\n resetUrl: serviceUrl\n })\n })\n\n return true\n }\n } catch (e) {\n return false\n }\n}\n\nexport async function unlockUser(token, password) {\n var { userId } = await getRepository(VerificationToken).findOne({\n where: {\n token,\n type: VerificationTokenType.UNLOCK\n }\n })\n\n if (!userId) return false\n\n var userInfo = await getRepository(User).findOneBy({ id: userId })\n if (!userInfo) return false\n if (userInfo.status != UserStatus.LOCKED) return false\n\n userInfo.status = UserStatus.ACTIVATED\n userInfo.password = User.encode(password, userInfo.salt)\n userInfo.failCount = 0\n\n await getRepository(User).save(userInfo)\n await getRepository(VerificationToken).delete({\n userId,\n token,\n type: VerificationTokenType.UNLOCK\n })\n\n return true\n}\n"]}
@@ -0,0 +1 @@
1
+ export declare function makeInvitationToken(): string;
@@ -1,10 +1,8 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.makeInvitationToken = void 0;
7
- const crypto_1 = __importDefault(require("crypto"));
4
+ const tslib_1 = require("tslib");
5
+ const crypto_1 = tslib_1.__importDefault(require("crypto"));
8
6
  function makeInvitationToken() {
9
7
  return crypto_1.default.randomBytes(16).toString('hex');
10
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"make-invitation-token.js","sourceRoot":"","sources":["../../../server/controllers/utils/make-invitation-token.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA2B;AAE3B,SAAgB,mBAAmB;IACjC,OAAO,gBAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC/C,CAAC;AAFD,kDAEC"}
1
+ {"version":3,"file":"make-invitation-token.js","sourceRoot":"","sources":["../../../server/controllers/utils/make-invitation-token.ts"],"names":[],"mappings":";;;;AAAA,4DAA2B;AAE3B,SAAgB,mBAAmB;IACjC,OAAO,gBAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC/C,CAAC;AAFD,kDAEC","sourcesContent":["import crypto from 'crypto'\n\nexport function makeInvitationToken() {\n return crypto.randomBytes(16).toString('hex')\n}\n"]}
@@ -0,0 +1 @@
1
+ export declare function makeVerificationToken(): string;
@@ -1,10 +1,8 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.makeVerificationToken = void 0;
7
- const crypto_1 = __importDefault(require("crypto"));
4
+ const tslib_1 = require("tslib");
5
+ const crypto_1 = tslib_1.__importDefault(require("crypto"));
8
6
  function makeVerificationToken() {
9
7
  return crypto_1.default.randomBytes(16).toString('hex');
10
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"make-verification-token.js","sourceRoot":"","sources":["../../../server/controllers/utils/make-verification-token.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA2B;AAC3B,SAAgB,qBAAqB;IACnC,OAAO,gBAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC/C,CAAC;AAFD,sDAEC"}
1
+ {"version":3,"file":"make-verification-token.js","sourceRoot":"","sources":["../../../server/controllers/utils/make-verification-token.ts"],"names":[],"mappings":";;;;AAAA,4DAA2B;AAC3B,SAAgB,qBAAqB;IACnC,OAAO,gBAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC/C,CAAC;AAFD,sDAEC","sourcesContent":["import crypto from 'crypto'\nexport function makeVerificationToken() {\n return crypto.randomBytes(16).toString('hex')\n}\n"]}
@@ -0,0 +1,14 @@
1
+ export declare function generatePasswordPatternHelp({ lowerCase, upperCase, digit, specialCharacter, allowRepeat, useTightPattern, useLoosePattern, tightCharacterLength, looseCharacterLength }: {
2
+ lowerCase?: boolean;
3
+ upperCase?: boolean;
4
+ digit?: boolean;
5
+ specialCharacter?: boolean;
6
+ allowRepeat?: boolean;
7
+ useTightPattern?: boolean;
8
+ useLoosePattern?: boolean;
9
+ tightCharacterLength?: number;
10
+ looseCharacterLength?: number;
11
+ }, lng: any): string;
12
+ export declare const passwordPattern: RegExp;
13
+ export declare function passwordHelp(lng: any): string;
14
+ export declare function validatePasswordByRule(password: any, lng: any): void;
@@ -1,14 +1,11 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.validatePasswordByRule = exports.passwordHelp = exports.passwordPattern = exports.generatePasswordPatternHelp = void 0;
7
- const i18next_1 = __importDefault(require("i18next"));
4
+ const tslib_1 = require("tslib");
5
+ const i18next_1 = tslib_1.__importDefault(require("i18next"));
8
6
  const env_1 = require("@things-factory/env");
9
7
  const error_code_1 = require("../../constants/error-code");
10
8
  const auth_error_1 = require("../../errors/auth-error");
11
- const debug = require('debug')('things-factory:auth-base:password-rule');
12
9
  const passwordConfig = env_1.config.get('password') || {
13
10
  lowerCase: true,
14
11
  upperCase: true,
@@ -1 +1 @@
1
- {"version":3,"file":"password-rule.js","sourceRoot":"","sources":["../../../server/controllers/utils/password-rule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"password-rule.js","sourceRoot":"","sources":["../../../server/controllers/utils/password-rule.ts"],"names":[],"mappings":";;;;AAAA,8DAA6B;AAE7B,6CAA4C;AAE5C,2DAAyE;AACzE,wDAAmD;AAEnD,MAAM,cAAc,GAAG,YAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI;IAC/C,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,KAAK,EAAE,IAAI;IACX,gBAAgB,EAAE,IAAI;IACtB,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,KAAK;IACtB,oBAAoB,EAAE,CAAC;IACvB,oBAAoB,EAAE,EAAE;CACzB,CAAA;AAED,SAAS,6BAA6B,CAAC,EACrC,SAAS,GAAG,IAAI,EAChB,SAAS,GAAG,IAAI,EAChB,KAAK,GAAG,IAAI,EACZ,gBAAgB,GAAG,IAAI,EACvB,WAAW,GAAG,KAAK,EACnB,eAAe,GAAG,IAAI,EACtB,eAAe,GAAG,KAAK,EACvB,oBAAoB,GAAG,CAAC,EACxB,oBAAoB,GAAG,EAAE,EAC1B,GAAG,EAAE;IACJ,IAAI,cAAc,GAAG,eAAe;QAClC,CAAC,CAAC;YACE,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;YAC9B,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;YAC9B,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;YACxB,gBAAgB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE;YAC5C,CAAC,WAAW,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE;YAC7C,KAAK,oBAAoB,IAAI,CAAC,6BAA6B;SAC5D;QACH,CAAC,CAAC,EAAE,CAAA;IAEN,IAAI,cAAc,GAAG,eAAe;QAClC,CAAC,CAAC;YACE,KAAK,oBAAoB,IAAI,CAAC,8BAA8B;SAC7D;QACH,CAAC,CAAC,EAAE,CAAA;IAEN,IAAI,SAAS,GAAG;QACd,GAAG;QACH,GAAG,cAAc;QACjB,cAAc,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACzD,GAAG,cAAc;QACjB,GAAG,CAAC,aAAa;KAClB,CAAA;IAED,OAAO,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;AACvC,CAAC;AAED,SAAgB,2BAA2B,CACzC,EACE,SAAS,GAAG,IAAI,EAChB,SAAS,GAAG,IAAI,EAChB,KAAK,GAAG,IAAI,EACZ,gBAAgB,GAAG,IAAI,EACvB,WAAW,GAAG,KAAK,EACnB,eAAe,GAAG,IAAI,EACtB,eAAe,GAAG,KAAK,EACvB,oBAAoB,GAAG,CAAC,EACxB,oBAAoB,GAAG,EAAE,EAC1B,GAAG,EAAE,EACN,GAAG;IAEH,GAAG,GAAG,GAAG,IAAI,OAAO,CAAA;IACpB,IAAI,YAAY,GAAG,EAAE,CAAA;IAErB,MAAM,CAAC,GAAG,iBAAO,CAAC,SAAS,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;IAEhD,IAAI,eAAe,EAAE;QACnB,YAAY,CAAC,IAAI,CAAC,aAAa,oBAAoB,aAAa,CAAC,CAAA;KAClE;IAED,IAAI,eAAe,EAAE;QACnB,CAAC,eAAe;YACd,YAAY,CAAC,IAAI,CACf,CAAC,CAAC,gCAAgC,EAAE;gBAClC,MAAM,EAAE,oBAAoB;aAC7B,CAAC,CACH,CAAA;QACH,SAAS,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAA;QACrE,SAAS,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAA;QACrE,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAA;QAC7D,gBAAgB,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAA;QAC1E,CAAC,WAAW,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAA;KACjE;IAED,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAChC,CAAC;AAtCD,kEAsCC;AAEY,QAAA,eAAe,GAAG,6BAA6B,CAAC,cAAc,CAAC,CAAA;AAC5E,SAAgB,YAAY,CAAC,GAAG;IAC9B,OAAO,2BAA2B,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;AACzD,CAAC;AAFD,oCAEC;AAED,SAAgB,sBAAsB,CAAC,QAAQ,EAAE,GAAG;IAClD,IAAI,CAAC,uBAAe,EAAE;QACpB,OAAM;KACP;IAED,IAAI,uBAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QAClC,OAAM;KACP;IAED,MAAM,IAAI,GAAG,2BAA2B,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;IAC7D,MAAM,IAAI,sBAAS,CAAC;QAClB,SAAS,EAAE,yCAA4B;QACvC,MAAM,EAAE;YACN,IAAI;SACL;KACF,CAAC,CAAA;AACJ,CAAC;AAhBD,wDAgBC","sourcesContent":["import i18next from 'i18next'\n\nimport { config } from '@things-factory/env'\n\nimport { PASSWORD_PATTERN_NOT_MATCHED } from '../../constants/error-code'\nimport { AuthError } from '../../errors/auth-error'\n\nconst passwordConfig = config.get('password') || {\n lowerCase: true,\n upperCase: true,\n digit: true,\n specialCharacter: true,\n allowRepeat: false,\n useTightPattern: true,\n useLoosePattern: false,\n tightCharacterLength: 8,\n looseCharacterLength: 15\n}\n\nfunction generatePasswordPatternRegExp({\n lowerCase = true,\n upperCase = true,\n digit = true,\n specialCharacter = true,\n allowRepeat = false,\n useTightPattern = true,\n useLoosePattern = false,\n tightCharacterLength = 8,\n looseCharacterLength = 15\n} = {}) {\n var tightChecklist = useTightPattern\n ? [\n lowerCase ? '(?=.*[a-z])' : '', // has at least one lower case character\n upperCase ? '(?=.*[A-Z])' : '', // has at least one upper case character\n digit ? '(?=.*\\\\d)' : '', // has at least one digit\n specialCharacter ? '(?=.*[!@#$%^&*()])' : '', // has at least one special character\n !allowRepeat ? '(?!.*(.)\\\\1(?=\\\\1{1,}))' : '', // has not an repeated character more than twice\n `.{${tightCharacterLength},}` // has a length of 8 and more\n ]\n : []\n\n var looseChecklist = useLoosePattern\n ? [\n `.{${looseCharacterLength},}` // has a length of 15 and more\n ]\n : []\n\n var checkList = [\n '^', // from start\n ...tightChecklist,\n tightChecklist.length && looseChecklist.length ? '|' : '',\n ...looseChecklist,\n '$' //to the end\"\n ]\n\n return new RegExp(checkList.join(''))\n}\n\nexport function generatePasswordPatternHelp(\n {\n lowerCase = true,\n upperCase = true,\n digit = true,\n specialCharacter = true,\n allowRepeat = false,\n useTightPattern = true,\n useLoosePattern = false,\n tightCharacterLength = 8,\n looseCharacterLength = 15\n } = {},\n lng\n) {\n lng = lng || 'en-US'\n var descriptions = []\n\n const t = i18next.getFixedT(lng, 'translations')\n\n if (useLoosePattern) {\n descriptions.push(`more than ${looseCharacterLength} characters`)\n }\n\n if (useTightPattern) {\n !useLoosePattern &&\n descriptions.push(\n t('text.pattern_minimum_charaters', {\n length: tightCharacterLength\n })\n )\n lowerCase && descriptions.push(t('text.pattern_atleast_1_lowercase'))\n upperCase && descriptions.push(t('text.pattern_atleast_1_uppercase'))\n digit && descriptions.push(t('text.pattern_atleast_1_digit'))\n specialCharacter && descriptions.push(t('text.pattern_atleast_1_special'))\n !allowRepeat && descriptions.push(t('text.pattern_not_allowed'))\n }\n\n return descriptions.join(', ')\n}\n\nexport const passwordPattern = generatePasswordPatternRegExp(passwordConfig)\nexport function passwordHelp(lng) {\n return generatePasswordPatternHelp(passwordConfig, lng)\n}\n\nexport function validatePasswordByRule(password, lng) {\n if (!passwordPattern) {\n return\n }\n\n if (passwordPattern.test(password)) {\n return\n }\n\n const rule = generatePasswordPatternHelp(passwordConfig, lng)\n throw new AuthError({\n errorCode: PASSWORD_PATTERN_NOT_MATCHED,\n detail: {\n rule\n }\n })\n}\n"]}
@@ -0,0 +1,5 @@
1
+ import { Invitation } from '../../service/invitation/invitation';
2
+ export declare function saveInvitationToken(id: any, token: any): Promise<{
3
+ id: any;
4
+ token: any;
5
+ } & Invitation>;
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.saveInvitationToken = void 0;
4
- const typeorm_1 = require("typeorm");
4
+ const shell_1 = require("@things-factory/shell");
5
5
  const invitation_1 = require("../../service/invitation/invitation");
6
6
  async function saveInvitationToken(id, token) {
7
- return await (0, typeorm_1.getRepository)(invitation_1.Invitation).save({
7
+ return await (0, shell_1.getRepository)(invitation_1.Invitation).save({
8
8
  id,
9
9
  token
10
10
  });
@@ -1 +1 @@
1
- {"version":3,"file":"save-invitation-token.js","sourceRoot":"","sources":["../../../server/controllers/utils/save-invitation-token.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AACvC,oEAAgE;AAEzD,KAAK,UAAU,mBAAmB,CAAC,EAAE,EAAE,KAAK;IACjD,OAAO,MAAM,IAAA,uBAAa,EAAC,uBAAU,CAAC,CAAC,IAAI,CAAC;QAC1C,EAAE;QACF,KAAK;KACN,CAAC,CAAA;AACJ,CAAC;AALD,kDAKC"}
1
+ {"version":3,"file":"save-invitation-token.js","sourceRoot":"","sources":["../../../server/controllers/utils/save-invitation-token.ts"],"names":[],"mappings":";;;AAAA,iDAAqD;AAErD,oEAAgE;AAEzD,KAAK,UAAU,mBAAmB,CAAC,EAAE,EAAE,KAAK;IACjD,OAAO,MAAM,IAAA,qBAAa,EAAC,uBAAU,CAAC,CAAC,IAAI,CAAC;QAC1C,EAAE;QACF,KAAK;KACN,CAAC,CAAA;AACJ,CAAC;AALD,kDAKC","sourcesContent":["import { getRepository } from '@things-factory/shell'\n\nimport { Invitation } from '../../service/invitation/invitation'\n\nexport async function saveInvitationToken(id, token) {\n return await getRepository(Invitation).save({\n id,\n token\n })\n}\n"]}
@@ -0,0 +1,6 @@
1
+ import { VerificationToken, VerificationTokenType } from '../../service/verification-token/verification-token';
2
+ export declare function saveVerificationToken(id: any, token: any, type?: VerificationTokenType): Promise<{
3
+ userId: any;
4
+ token: any;
5
+ type: VerificationTokenType;
6
+ } & VerificationToken>;
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.saveVerificationToken = void 0;
4
- const typeorm_1 = require("typeorm");
4
+ const shell_1 = require("@things-factory/shell");
5
5
  const verification_token_1 = require("../../service/verification-token/verification-token");
6
6
  async function saveVerificationToken(id, token, type = verification_token_1.VerificationTokenType.ACTIVATION) {
7
- const verificationRepo = (0, typeorm_1.getRepository)(verification_token_1.VerificationToken);
7
+ const verificationRepo = (0, shell_1.getRepository)(verification_token_1.VerificationToken);
8
8
  return await verificationRepo.save({
9
9
  userId: id,
10
10
  token,
@@ -1 +1 @@
1
- {"version":3,"file":"save-verification-token.js","sourceRoot":"","sources":["../../../server/controllers/utils/save-verification-token.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AACvC,4FAA8G;AAEvG,KAAK,UAAU,qBAAqB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,0CAAqB,CAAC,UAAU;IAC5F,MAAM,gBAAgB,GAAG,IAAA,uBAAa,EAAC,sCAAiB,CAAC,CAAA;IACzD,OAAO,MAAM,gBAAgB,CAAC,IAAI,CAAC;QACjC,MAAM,EAAE,EAAE;QACV,KAAK;QACL,IAAI;KACL,CAAC,CAAA;AACJ,CAAC;AAPD,sDAOC"}
1
+ {"version":3,"file":"save-verification-token.js","sourceRoot":"","sources":["../../../server/controllers/utils/save-verification-token.ts"],"names":[],"mappings":";;;AAAA,iDAAqD;AAErD,4FAA8G;AAEvG,KAAK,UAAU,qBAAqB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,0CAAqB,CAAC,UAAU;IAC5F,MAAM,gBAAgB,GAAG,IAAA,qBAAa,EAAC,sCAAiB,CAAC,CAAA;IACzD,OAAO,MAAM,gBAAgB,CAAC,IAAI,CAAC;QACjC,MAAM,EAAE,EAAE;QACV,KAAK;QACL,IAAI;KACL,CAAC,CAAA;AACJ,CAAC;AAPD,sDAOC","sourcesContent":["import { getRepository } from '@things-factory/shell'\n\nimport { VerificationToken, VerificationTokenType } from '../../service/verification-token/verification-token'\n\nexport async function saveVerificationToken(id, token, type = VerificationTokenType.ACTIVATION) {\n const verificationRepo = getRepository(VerificationToken)\n return await verificationRepo.save({\n userId: id,\n token,\n type\n })\n}\n"]}
@@ -0,0 +1,6 @@
1
+ export declare function sendVerificationEmail({ user, context }: {
2
+ user: any;
3
+ context: any;
4
+ }): Promise<boolean>;
5
+ export declare function verify(token: any): Promise<void>;
6
+ export declare function resendVerificationEmail(email: any, context: any): Promise<boolean>;
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resendVerificationEmail = exports.verify = exports.sendVerificationEmail = void 0;
4
- const email_base_1 = require("@things-factory/email-base");
5
- const typeorm_1 = require("typeorm");
6
4
  const url_1 = require("url");
5
+ const email_base_1 = require("@things-factory/email-base");
6
+ const shell_1 = require("@things-factory/shell");
7
+ const auth_error_1 = require("../errors/auth-error");
7
8
  const user_1 = require("../service/user/user");
8
9
  const verification_token_1 = require("../service/verification-token/verification-token");
9
10
  const verification_email_1 = require("../templates/verification-email");
10
11
  const make_verification_token_1 = require("./utils/make-verification-token");
11
12
  const save_verification_token_1 = require("./utils/save-verification-token");
12
- const auth_error_1 = require("../errors/auth-error");
13
13
  async function sendVerificationEmail({ user, context }) {
14
14
  try {
15
15
  var token = (0, make_verification_token_1.makeVerificationToken)();
@@ -33,7 +33,7 @@ async function sendVerificationEmail({ user, context }) {
33
33
  }
34
34
  exports.sendVerificationEmail = sendVerificationEmail;
35
35
  async function verify(token) {
36
- var verification = await (0, typeorm_1.getRepository)(verification_token_1.VerificationToken).findOne({
36
+ var verification = await (0, shell_1.getRepository)(verification_token_1.VerificationToken).findOne({
37
37
  where: {
38
38
  token
39
39
  }
@@ -43,7 +43,7 @@ async function verify(token) {
43
43
  errorCode: auth_error_1.AuthError.ERROR_CODES.VERIFICATION_ERROR
44
44
  });
45
45
  }
46
- var userInfo = await (0, typeorm_1.getRepository)(user_1.User).findOne(verification.userId);
46
+ var userInfo = await (0, shell_1.getRepository)(user_1.User).findOneBy({ id: verification.userId });
47
47
  if (!userInfo) {
48
48
  throw new auth_error_1.AuthError({
49
49
  errorCode: auth_error_1.AuthError.ERROR_CODES.VERIFICATION_ERROR
@@ -55,12 +55,12 @@ async function verify(token) {
55
55
  });
56
56
  }
57
57
  userInfo.status = user_1.UserStatus.ACTIVATED;
58
- await (0, typeorm_1.getRepository)(user_1.User).save(userInfo);
59
- await (0, typeorm_1.getRepository)(verification_token_1.VerificationToken).delete(verification);
58
+ await (0, shell_1.getRepository)(user_1.User).save(userInfo);
59
+ await (0, shell_1.getRepository)(verification_token_1.VerificationToken).delete(verification);
60
60
  }
61
61
  exports.verify = verify;
62
62
  async function resendVerificationEmail(email, context) {
63
- var user = await (0, typeorm_1.getRepository)(user_1.User).findOne({
63
+ var user = await (0, shell_1.getRepository)(user_1.User).findOne({
64
64
  where: {
65
65
  email
66
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"verification.js","sourceRoot":"","sources":["../../server/controllers/verification.ts"],"names":[],"mappings":";;;AAAA,2DAAsD;AACtD,qCAAuC;AACvC,6BAAyB;AACzB,+CAAuD;AACvD,yFAAoF;AACpF,wEAA0E;AAC1E,6EAAuE;AACvE,6EAAuE;AACvE,qDAAgD;AAEzC,KAAK,UAAU,qBAAqB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;IAC3D,IAAI;QACF,IAAI,KAAK,GAAG,IAAA,+CAAqB,GAAE,CAAA;QACnC,IAAI,WAAW,GAAG,MAAM,IAAA,+CAAqB,EAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QAE7D,IAAI,WAAW,EAAE;YACf,IAAI,UAAU,GAAG,IAAI,SAAG,CAAC,gBAAgB,KAAK,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YACzE,MAAM,IAAA,sBAAS,EAAC;gBACd,QAAQ,EAAE,IAAI,CAAC,KAAK;gBACpB,OAAO,EAAE,mBAAmB;gBAC5B,OAAO,EAAE,IAAA,6CAAwB,EAAC;oBAChC,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,SAAS,EAAE,UAAU;iBACtB,CAAC;aACH,CAAC,CAAA;YAEF,OAAO,IAAI,CAAA;SACZ;KACF;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,KAAK,CAAA;KACb;AACH,CAAC;AArBD,sDAqBC;AAEM,KAAK,UAAU,MAAM,CAAC,KAAK;IAChC,IAAI,YAAY,GAAG,MAAM,IAAA,uBAAa,EAAC,sCAAiB,CAAC,CAAC,OAAO,CAAC;QAChE,KAAK,EAAE;YACL,KAAK;SACN;KACF,CAAC,CAAA;IAEF,IAAI,CAAC,YAAY,EAAE;QACjB,MAAM,IAAI,sBAAS,CAAC;YAClB,SAAS,EAAE,sBAAS,CAAC,WAAW,CAAC,kBAAkB;SACpD,CAAC,CAAA;KACH;IAED,IAAI,QAAQ,GAAG,MAAM,IAAA,uBAAa,EAAC,WAAI,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;IACrE,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,IAAI,sBAAS,CAAC;YAClB,SAAS,EAAE,sBAAS,CAAC,WAAW,CAAC,kBAAkB;SACpD,CAAC,CAAA;KACH;IAED,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,iBAAU,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,IAAI,iBAAU,CAAC,MAAM,CAAC,EAAE;QACrF,MAAM,IAAI,sBAAS,CAAC;YAClB,SAAS,EAAE,sBAAS,CAAC,WAAW,CAAC,kBAAkB;SACpD,CAAC,CAAA;KACH;IAED,QAAQ,CAAC,MAAM,GAAG,iBAAU,CAAC,SAAS,CAAA;IACtC,MAAM,IAAA,uBAAa,EAAC,WAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACxC,MAAM,IAAA,uBAAa,EAAC,sCAAiB,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;AAC7D,CAAC;AA7BD,wBA6BC;AAEM,KAAK,UAAU,uBAAuB,CAAC,KAAK,EAAE,OAAO;IAC1D,IAAI,IAAI,GAAG,MAAM,IAAA,uBAAa,EAAC,WAAI,CAAC,CAAC,OAAO,CAAC;QAC3C,KAAK,EAAE;YACL,KAAK;SACN;KACF,CAAC,CAAA;IAEF,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAA;IACvB,IAAI,IAAI,CAAC,MAAM,IAAI,iBAAU,CAAC,SAAS;QAAE,OAAO,KAAK,CAAA;IAErD,OAAO,MAAM,qBAAqB,CAAC;QACjC,IAAI;QACJ,OAAO;KACR,CAAC,CAAA;AACJ,CAAC;AAdD,0DAcC"}
1
+ {"version":3,"file":"verification.js","sourceRoot":"","sources":["../../server/controllers/verification.ts"],"names":[],"mappings":";;;AAAA,6BAAyB;AAEzB,2DAAsD;AACtD,iDAAqD;AAErD,qDAAgD;AAChD,+CAAuD;AACvD,yFAAoF;AACpF,wEAA0E;AAC1E,6EAAuE;AACvE,6EAAuE;AAEhE,KAAK,UAAU,qBAAqB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;IAC3D,IAAI;QACF,IAAI,KAAK,GAAG,IAAA,+CAAqB,GAAE,CAAA;QACnC,IAAI,WAAW,GAAG,MAAM,IAAA,+CAAqB,EAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QAE7D,IAAI,WAAW,EAAE;YACf,IAAI,UAAU,GAAG,IAAI,SAAG,CAAC,gBAAgB,KAAK,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YACzE,MAAM,IAAA,sBAAS,EAAC;gBACd,QAAQ,EAAE,IAAI,CAAC,KAAK;gBACpB,OAAO,EAAE,mBAAmB;gBAC5B,OAAO,EAAE,IAAA,6CAAwB,EAAC;oBAChC,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,SAAS,EAAE,UAAU;iBACtB,CAAC;aACH,CAAC,CAAA;YAEF,OAAO,IAAI,CAAA;SACZ;KACF;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,KAAK,CAAA;KACb;AACH,CAAC;AArBD,sDAqBC;AAEM,KAAK,UAAU,MAAM,CAAC,KAAK;IAChC,IAAI,YAAY,GAAG,MAAM,IAAA,qBAAa,EAAC,sCAAiB,CAAC,CAAC,OAAO,CAAC;QAChE,KAAK,EAAE;YACL,KAAK;SACN;KACF,CAAC,CAAA;IAEF,IAAI,CAAC,YAAY,EAAE;QACjB,MAAM,IAAI,sBAAS,CAAC;YAClB,SAAS,EAAE,sBAAS,CAAC,WAAW,CAAC,kBAAkB;SACpD,CAAC,CAAA;KACH;IAED,IAAI,QAAQ,GAAG,MAAM,IAAA,qBAAa,EAAC,WAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,CAAA;IAC/E,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,IAAI,sBAAS,CAAC;YAClB,SAAS,EAAE,sBAAS,CAAC,WAAW,CAAC,kBAAkB;SACpD,CAAC,CAAA;KACH;IAED,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,iBAAU,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,IAAI,iBAAU,CAAC,MAAM,CAAC,EAAE;QACrF,MAAM,IAAI,sBAAS,CAAC;YAClB,SAAS,EAAE,sBAAS,CAAC,WAAW,CAAC,kBAAkB;SACpD,CAAC,CAAA;KACH;IAED,QAAQ,CAAC,MAAM,GAAG,iBAAU,CAAC,SAAS,CAAA;IACtC,MAAM,IAAA,qBAAa,EAAC,WAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACxC,MAAM,IAAA,qBAAa,EAAC,sCAAiB,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;AAC7D,CAAC;AA7BD,wBA6BC;AAEM,KAAK,UAAU,uBAAuB,CAAC,KAAK,EAAE,OAAO;IAC1D,IAAI,IAAI,GAAG,MAAM,IAAA,qBAAa,EAAC,WAAI,CAAC,CAAC,OAAO,CAAC;QAC3C,KAAK,EAAE;YACL,KAAK;SACN;KACF,CAAC,CAAA;IAEF,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAA;IACvB,IAAI,IAAI,CAAC,MAAM,IAAI,iBAAU,CAAC,SAAS;QAAE,OAAO,KAAK,CAAA;IAErD,OAAO,MAAM,qBAAqB,CAAC;QACjC,IAAI;QACJ,OAAO;KACR,CAAC,CAAA;AACJ,CAAC;AAdD,0DAcC","sourcesContent":["import { URL } from 'url'\n\nimport { sendEmail } from '@things-factory/email-base'\nimport { getRepository } from '@things-factory/shell'\n\nimport { AuthError } from '../errors/auth-error'\nimport { User, UserStatus } from '../service/user/user'\nimport { VerificationToken } from '../service/verification-token/verification-token'\nimport { getVerificationEmailForm } from '../templates/verification-email'\nimport { makeVerificationToken } from './utils/make-verification-token'\nimport { saveVerificationToken } from './utils/save-verification-token'\n\nexport async function sendVerificationEmail({ user, context }) {\n try {\n var token = makeVerificationToken()\n var verifaction = await saveVerificationToken(user.id, token)\n\n if (verifaction) {\n var serviceUrl = new URL(`/auth/verify/${token}`, context.header.referer)\n await sendEmail({\n receiver: user.email,\n subject: 'Verify your email',\n content: getVerificationEmailForm({\n name: user.name,\n verifyUrl: serviceUrl\n })\n })\n\n return true\n }\n } catch (e) {\n return false\n }\n}\n\nexport async function verify(token) {\n var verification = await getRepository(VerificationToken).findOne({\n where: {\n token\n }\n })\n\n if (!verification) {\n throw new AuthError({\n errorCode: AuthError.ERROR_CODES.VERIFICATION_ERROR\n })\n }\n\n var userInfo = await getRepository(User).findOneBy({ id: verification.userId })\n if (!userInfo) {\n throw new AuthError({\n errorCode: AuthError.ERROR_CODES.VERIFICATION_ERROR\n })\n }\n\n if (!(userInfo.status == UserStatus.INACTIVE || userInfo.status == UserStatus.LOCKED)) {\n throw new AuthError({\n errorCode: AuthError.ERROR_CODES.VERIFICATION_ERROR\n })\n }\n\n userInfo.status = UserStatus.ACTIVATED\n await getRepository(User).save(userInfo)\n await getRepository(VerificationToken).delete(verification)\n}\n\nexport async function resendVerificationEmail(email, context) {\n var user = await getRepository(User).findOne({\n where: {\n email\n }\n })\n\n if (!user) return false\n if (user.status == UserStatus.ACTIVATED) return false\n\n return await sendVerificationEmail({\n user,\n context\n })\n}\n"]}
@@ -0,0 +1,11 @@
1
+ declare type AuthErrorArgument = {
2
+ errorCode: string;
3
+ detail?: Object;
4
+ };
5
+ export declare class AuthError extends Error {
6
+ static get ERROR_CODES(): any;
7
+ errorCode: any;
8
+ detail: Object;
9
+ constructor({ errorCode, detail }: AuthErrorArgument);
10
+ }
11
+ export {};
@@ -1,30 +1,8 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
3
  exports.AuthError = void 0;
27
- const ERROR_CODES = __importStar(require("../constants/error-code"));
4
+ const tslib_1 = require("tslib");
5
+ const ERROR_CODES = tslib_1.__importStar(require("../constants/error-code"));
28
6
  class AuthError extends Error {
29
7
  constructor({ errorCode, detail }) {
30
8
  super(errorCode);
@@ -1 +1 @@
1
- {"version":3,"file":"auth-error.js","sourceRoot":"","sources":["../../server/errors/auth-error.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qEAAsD;AAMtD,MAAa,SAAU,SAAQ,KAAK;IAQlC,YAAY,EAAE,SAAS,EAAE,MAAM,EAAqB;QAClD,KAAK,CAAC,SAAS,CAAC,CAAA;QAChB,IAAI,CAAC,IAAI,GAAG,YAAY,CAAA;QACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAZD,MAAM,KAAK,WAAW;QACpB,yBACK,WAAW,EACf;IACH,CAAC;CASF;AAdD,8BAcC"}
1
+ {"version":3,"file":"auth-error.js","sourceRoot":"","sources":["../../server/errors/auth-error.ts"],"names":[],"mappings":";;;;AAAA,6EAAsD;AAMtD,MAAa,SAAU,SAAQ,KAAK;IAUlC,YAAY,EAAE,SAAS,EAAE,MAAM,EAAqB;QAClD,KAAK,CAAC,SAAS,CAAC,CAAA;QAEhB,IAAI,CAAC,IAAI,GAAG,YAAY,CAAA;QACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAfD,MAAM,KAAK,WAAW;QACpB,yBACK,WAAW,EACf;IACH,CAAC;CAYF;AAjBD,8BAiBC","sourcesContent":["import * as ERROR_CODES from '../constants/error-code'\n\ntype AuthErrorArgument = {\n errorCode: string\n detail?: Object\n}\nexport class AuthError extends Error {\n static get ERROR_CODES(): any {\n return {\n ...ERROR_CODES\n }\n }\n\n errorCode: any\n detail: Object\n\n constructor({ errorCode, detail }: AuthErrorArgument) {\n super(errorCode)\n\n this.name = 'auth-error'\n this.errorCode = errorCode\n this.detail = detail\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export * from './auth-error';
2
+ export * from './user-domain-not-match-error';