@things-factory/auth-base 8.0.5 → 9.0.0-beta.12

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 (493) hide show
  1. package/config/config.development.js +45 -0
  2. package/config/config.production.js +45 -0
  3. package/dist-client/bootstrap.d.ts +1 -1
  4. package/dist-client/bootstrap.js +4 -4
  5. package/dist-client/bootstrap.js.map +1 -1
  6. package/dist-client/directive/privileged.d.ts +1 -1
  7. package/dist-client/directive/privileged.js +1 -1
  8. package/dist-client/directive/privileged.js.map +1 -1
  9. package/dist-client/index.d.ts +4 -3
  10. package/dist-client/index.js +4 -3
  11. package/dist-client/index.js.map +1 -1
  12. package/dist-client/profiled.js +1 -1
  13. package/dist-client/profiled.js.map +1 -1
  14. package/dist-client/reducers/auth.js +1 -1
  15. package/dist-client/reducers/auth.js.map +1 -1
  16. package/dist-client/tsconfig.tsbuildinfo +1 -1
  17. package/dist-client/verify-webauthn.d.ts +13 -0
  18. package/dist-client/verify-webauthn.js +72 -0
  19. package/dist-client/verify-webauthn.js.map +1 -0
  20. package/dist-server/constants/error-code.d.ts +2 -0
  21. package/dist-server/constants/error-code.js +3 -1
  22. package/dist-server/constants/error-code.js.map +1 -1
  23. package/dist-server/controllers/auth.d.ts +5 -5
  24. package/dist-server/controllers/auth.js +5 -5
  25. package/dist-server/controllers/auth.js.map +1 -1
  26. package/dist-server/controllers/change-pwd.js +21 -21
  27. package/dist-server/controllers/change-pwd.js.map +1 -1
  28. package/dist-server/controllers/checkin.js +4 -4
  29. package/dist-server/controllers/checkin.js.map +1 -1
  30. package/dist-server/controllers/delete-user.js +22 -21
  31. package/dist-server/controllers/delete-user.js.map +1 -1
  32. package/dist-server/controllers/invitation.d.ts +2 -1
  33. package/dist-server/controllers/invitation.js +46 -21
  34. package/dist-server/controllers/invitation.js.map +1 -1
  35. package/dist-server/controllers/profile.d.ts +9 -8
  36. package/dist-server/controllers/profile.js +26 -8
  37. package/dist-server/controllers/profile.js.map +1 -1
  38. package/dist-server/controllers/reset-password.js +24 -24
  39. package/dist-server/controllers/reset-password.js.map +1 -1
  40. package/dist-server/controllers/signin.d.ts +5 -2
  41. package/dist-server/controllers/signin.js +41 -25
  42. package/dist-server/controllers/signin.js.map +1 -1
  43. package/dist-server/controllers/signup.d.ts +1 -1
  44. package/dist-server/controllers/signup.js +26 -17
  45. package/dist-server/controllers/signup.js.map +1 -1
  46. package/dist-server/controllers/unlock-user.js +18 -17
  47. package/dist-server/controllers/unlock-user.js.map +1 -1
  48. package/dist-server/controllers/utils/password-rule.js +4 -4
  49. package/dist-server/controllers/utils/password-rule.js.map +1 -1
  50. package/dist-server/controllers/utils/save-invitation-token.d.ts +1 -1
  51. package/dist-server/controllers/utils/save-invitation-token.js +2 -2
  52. package/dist-server/controllers/utils/save-invitation-token.js.map +1 -1
  53. package/dist-server/controllers/utils/save-verification-token.d.ts +1 -1
  54. package/dist-server/controllers/utils/save-verification-token.js +3 -3
  55. package/dist-server/controllers/utils/save-verification-token.js.map +1 -1
  56. package/dist-server/controllers/verification.js +24 -23
  57. package/dist-server/controllers/verification.js.map +1 -1
  58. package/dist-server/errors/auth-error.js +1 -1
  59. package/dist-server/errors/auth-error.js.map +1 -1
  60. package/dist-server/errors/index.d.ts +2 -2
  61. package/dist-server/errors/index.js +2 -2
  62. package/dist-server/errors/index.js.map +1 -1
  63. package/dist-server/errors/user-domain-not-match-error.d.ts +1 -1
  64. package/dist-server/errors/user-domain-not-match-error.js +8 -8
  65. package/dist-server/errors/user-domain-not-match-error.js.map +1 -1
  66. package/dist-server/index.d.ts +16 -16
  67. package/dist-server/index.js +18 -18
  68. package/dist-server/index.js.map +1 -1
  69. package/dist-server/middlewares/authenticate-401-middleware.js +11 -11
  70. package/dist-server/middlewares/authenticate-401-middleware.js.map +1 -1
  71. package/dist-server/middlewares/domain-authenticate-middleware.d.ts +1 -1
  72. package/dist-server/middlewares/domain-authenticate-middleware.js +9 -9
  73. package/dist-server/middlewares/domain-authenticate-middleware.js.map +1 -1
  74. package/dist-server/middlewares/graphql-authenticate-middleware.js +4 -4
  75. package/dist-server/middlewares/graphql-authenticate-middleware.js.map +1 -1
  76. package/dist-server/middlewares/index.d.ts +5 -5
  77. package/dist-server/middlewares/index.js +18 -18
  78. package/dist-server/middlewares/index.js.map +1 -1
  79. package/dist-server/middlewares/jwt-authenticate-middleware.js +15 -15
  80. package/dist-server/middlewares/jwt-authenticate-middleware.js.map +1 -1
  81. package/dist-server/middlewares/signin-middleware.js +7 -6
  82. package/dist-server/middlewares/signin-middleware.js.map +1 -1
  83. package/dist-server/middlewares/verify-recaptcha-middleware.d.ts +3 -0
  84. package/dist-server/middlewares/verify-recaptcha-middleware.js +95 -0
  85. package/dist-server/middlewares/verify-recaptcha-middleware.js.map +1 -0
  86. package/dist-server/middlewares/webauthn-middleware.js +16 -13
  87. package/dist-server/middlewares/webauthn-middleware.js.map +1 -1
  88. package/dist-server/migrations/1548206416130-SeedUser.js +8 -7
  89. package/dist-server/migrations/1548206416130-SeedUser.js.map +1 -1
  90. package/dist-server/migrations/1566805283882-SeedPrivilege.js +2 -2
  91. package/dist-server/migrations/1566805283882-SeedPrivilege.js.map +1 -1
  92. package/dist-server/migrations/index.js.map +1 -1
  93. package/dist-server/router/auth-checkin-router.js +18 -12
  94. package/dist-server/router/auth-checkin-router.js.map +1 -1
  95. package/dist-server/router/auth-private-process-router.js +26 -21
  96. package/dist-server/router/auth-private-process-router.js.map +1 -1
  97. package/dist-server/router/auth-public-process-router.js +42 -31
  98. package/dist-server/router/auth-public-process-router.js.map +1 -1
  99. package/dist-server/router/auth-signin-router.js +16 -16
  100. package/dist-server/router/auth-signin-router.js.map +1 -1
  101. package/dist-server/router/auth-signup-router.js +13 -9
  102. package/dist-server/router/auth-signup-router.js.map +1 -1
  103. package/dist-server/router/index.d.ts +9 -9
  104. package/dist-server/router/index.js +9 -9
  105. package/dist-server/router/index.js.map +1 -1
  106. package/dist-server/router/oauth2/index.d.ts +2 -2
  107. package/dist-server/router/oauth2/index.js +2 -2
  108. package/dist-server/router/oauth2/index.js.map +1 -1
  109. package/dist-server/router/oauth2/oauth2-authorize-router.js +6 -6
  110. package/dist-server/router/oauth2/oauth2-authorize-router.js.map +1 -1
  111. package/dist-server/router/oauth2/oauth2-router.d.ts +1 -1
  112. package/dist-server/router/oauth2/oauth2-router.js +21 -21
  113. package/dist-server/router/oauth2/oauth2-router.js.map +1 -1
  114. package/dist-server/router/oauth2/oauth2-server.js +21 -21
  115. package/dist-server/router/oauth2/oauth2-server.js.map +1 -1
  116. package/dist-server/router/site-root-router.js +4 -4
  117. package/dist-server/router/site-root-router.js.map +1 -1
  118. package/dist-server/router/webauthn-router.js +58 -8
  119. package/dist-server/router/webauthn-router.js.map +1 -1
  120. package/dist-server/routes.js +19 -19
  121. package/dist-server/routes.js.map +1 -1
  122. package/dist-server/service/app-binding/app-binding-mutation.js +4 -4
  123. package/dist-server/service/app-binding/app-binding-mutation.js.map +1 -1
  124. package/dist-server/service/app-binding/app-binding-query.d.ts +4 -4
  125. package/dist-server/service/app-binding/app-binding-query.js +22 -22
  126. package/dist-server/service/app-binding/app-binding-query.js.map +1 -1
  127. package/dist-server/service/app-binding/app-binding-types.d.ts +1 -1
  128. package/dist-server/service/app-binding/app-binding-types.js +2 -2
  129. package/dist-server/service/app-binding/app-binding-types.js.map +1 -1
  130. package/dist-server/service/app-binding/app-binding.d.ts +2 -2
  131. package/dist-server/service/app-binding/app-binding.js +4 -4
  132. package/dist-server/service/app-binding/app-binding.js.map +1 -1
  133. package/dist-server/service/app-binding/index.d.ts +2 -2
  134. package/dist-server/service/app-binding/index.js +3 -3
  135. package/dist-server/service/app-binding/index.js.map +1 -1
  136. package/dist-server/service/appliance/appliance-mutation.d.ts +2 -2
  137. package/dist-server/service/appliance/appliance-mutation.js +21 -21
  138. package/dist-server/service/appliance/appliance-mutation.js.map +1 -1
  139. package/dist-server/service/appliance/appliance-query.d.ts +3 -3
  140. package/dist-server/service/appliance/appliance-query.js +17 -17
  141. package/dist-server/service/appliance/appliance-query.js.map +1 -1
  142. package/dist-server/service/appliance/appliance-types.d.ts +1 -1
  143. package/dist-server/service/appliance/appliance-types.js +2 -2
  144. package/dist-server/service/appliance/appliance-types.js.map +1 -1
  145. package/dist-server/service/appliance/appliance.d.ts +1 -1
  146. package/dist-server/service/appliance/appliance.js +8 -8
  147. package/dist-server/service/appliance/appliance.js.map +1 -1
  148. package/dist-server/service/appliance/index.d.ts +3 -3
  149. package/dist-server/service/appliance/index.js +5 -5
  150. package/dist-server/service/appliance/index.js.map +1 -1
  151. package/dist-server/service/application/application-mutation.d.ts +8 -8
  152. package/dist-server/service/application/application-mutation.js +20 -20
  153. package/dist-server/service/application/application-mutation.js.map +1 -1
  154. package/dist-server/service/application/application-query.d.ts +2 -2
  155. package/dist-server/service/application/application-query.js +16 -16
  156. package/dist-server/service/application/application-query.js.map +1 -1
  157. package/dist-server/service/application/application-types.d.ts +1 -1
  158. package/dist-server/service/application/application-types.js +4 -4
  159. package/dist-server/service/application/application-types.js.map +1 -1
  160. package/dist-server/service/application/application.d.ts +1 -1
  161. package/dist-server/service/application/application.js +12 -12
  162. package/dist-server/service/application/application.js.map +1 -1
  163. package/dist-server/service/application/index.d.ts +3 -3
  164. package/dist-server/service/application/index.js +5 -5
  165. package/dist-server/service/application/index.js.map +1 -1
  166. package/dist-server/service/auth-provider/auth-provider-mutation.d.ts +2 -2
  167. package/dist-server/service/auth-provider/auth-provider-mutation.js +20 -20
  168. package/dist-server/service/auth-provider/auth-provider-mutation.js.map +1 -1
  169. package/dist-server/service/auth-provider/auth-provider-query.d.ts +3 -3
  170. package/dist-server/service/auth-provider/auth-provider-query.js +20 -20
  171. package/dist-server/service/auth-provider/auth-provider-query.js.map +1 -1
  172. package/dist-server/service/auth-provider/auth-provider-type.d.ts +1 -1
  173. package/dist-server/service/auth-provider/auth-provider-type.js +2 -2
  174. package/dist-server/service/auth-provider/auth-provider-type.js.map +1 -1
  175. package/dist-server/service/auth-provider/auth-provider.d.ts +3 -3
  176. package/dist-server/service/auth-provider/auth-provider.js +12 -12
  177. package/dist-server/service/auth-provider/auth-provider.js.map +1 -1
  178. package/dist-server/service/auth-provider/index.d.ts +3 -3
  179. package/dist-server/service/auth-provider/index.js +5 -5
  180. package/dist-server/service/auth-provider/index.js.map +1 -1
  181. package/dist-server/service/domain-generator/domain-generator-mutation.d.ts +1 -1
  182. package/dist-server/service/domain-generator/domain-generator-mutation.js +11 -11
  183. package/dist-server/service/domain-generator/domain-generator-mutation.js.map +1 -1
  184. package/dist-server/service/domain-generator/domain-generator-types.d.ts +1 -1
  185. package/dist-server/service/domain-generator/domain-generator-types.js +3 -3
  186. package/dist-server/service/domain-generator/domain-generator-types.js.map +1 -1
  187. package/dist-server/service/domain-generator/index.d.ts +1 -1
  188. package/dist-server/service/domain-generator/index.js +2 -2
  189. package/dist-server/service/domain-generator/index.js.map +1 -1
  190. package/dist-server/service/granted-role/granted-role-mutation.d.ts +3 -3
  191. package/dist-server/service/granted-role/granted-role-mutation.js +17 -17
  192. package/dist-server/service/granted-role/granted-role-mutation.js.map +1 -1
  193. package/dist-server/service/granted-role/granted-role-query.d.ts +2 -2
  194. package/dist-server/service/granted-role/granted-role-query.js +13 -13
  195. package/dist-server/service/granted-role/granted-role-query.js.map +1 -1
  196. package/dist-server/service/granted-role/granted-role.d.ts +1 -1
  197. package/dist-server/service/granted-role/granted-role.js +3 -3
  198. package/dist-server/service/granted-role/granted-role.js.map +1 -1
  199. package/dist-server/service/granted-role/index.d.ts +3 -3
  200. package/dist-server/service/granted-role/index.js +5 -5
  201. package/dist-server/service/granted-role/index.js.map +1 -1
  202. package/dist-server/service/index.d.ts +25 -25
  203. package/dist-server/service/index.js +70 -70
  204. package/dist-server/service/index.js.map +1 -1
  205. package/dist-server/service/invitation/index.d.ts +3 -3
  206. package/dist-server/service/invitation/index.js +5 -5
  207. package/dist-server/service/invitation/index.js.map +1 -1
  208. package/dist-server/service/invitation/invitation-mutation.d.ts +4 -3
  209. package/dist-server/service/invitation/invitation-mutation.js +26 -14
  210. package/dist-server/service/invitation/invitation-mutation.js.map +1 -1
  211. package/dist-server/service/invitation/invitation-query.d.ts +1 -1
  212. package/dist-server/service/invitation/invitation-query.js +7 -7
  213. package/dist-server/service/invitation/invitation-query.js.map +1 -1
  214. package/dist-server/service/invitation/invitation-types.d.ts +1 -1
  215. package/dist-server/service/invitation/invitation-types.js +2 -2
  216. package/dist-server/service/invitation/invitation-types.js.map +1 -1
  217. package/dist-server/service/invitation/invitation.d.ts +1 -1
  218. package/dist-server/service/invitation/invitation.js +5 -5
  219. package/dist-server/service/invitation/invitation.js.map +1 -1
  220. package/dist-server/service/login-history/index.d.ts +2 -2
  221. package/dist-server/service/login-history/index.js +4 -4
  222. package/dist-server/service/login-history/index.js.map +1 -1
  223. package/dist-server/service/login-history/login-history-query.d.ts +3 -3
  224. package/dist-server/service/login-history/login-history-query.js +11 -11
  225. package/dist-server/service/login-history/login-history-query.js.map +1 -1
  226. package/dist-server/service/login-history/login-history-type.d.ts +1 -1
  227. package/dist-server/service/login-history/login-history-type.js +2 -2
  228. package/dist-server/service/login-history/login-history-type.js.map +1 -1
  229. package/dist-server/service/login-history/login-history.d.ts +1 -1
  230. package/dist-server/service/login-history/login-history.js +4 -4
  231. package/dist-server/service/login-history/login-history.js.map +1 -1
  232. package/dist-server/service/partner/index.d.ts +3 -3
  233. package/dist-server/service/partner/index.js +5 -5
  234. package/dist-server/service/partner/index.js.map +1 -1
  235. package/dist-server/service/partner/partner-mutation.js +8 -8
  236. package/dist-server/service/partner/partner-mutation.js.map +1 -1
  237. package/dist-server/service/partner/partner-query.d.ts +3 -3
  238. package/dist-server/service/partner/partner-query.js +17 -17
  239. package/dist-server/service/partner/partner-query.js.map +1 -1
  240. package/dist-server/service/partner/partner-types.d.ts +1 -1
  241. package/dist-server/service/partner/partner-types.js +2 -2
  242. package/dist-server/service/partner/partner-types.js.map +1 -1
  243. package/dist-server/service/partner/partner.d.ts +1 -1
  244. package/dist-server/service/partner/partner.js +5 -5
  245. package/dist-server/service/partner/partner.js.map +1 -1
  246. package/dist-server/service/password-history/index.d.ts +1 -1
  247. package/dist-server/service/password-history/index.js +2 -2
  248. package/dist-server/service/password-history/index.js.map +1 -1
  249. package/dist-server/service/privilege/index.d.ts +3 -3
  250. package/dist-server/service/privilege/index.js +5 -5
  251. package/dist-server/service/privilege/index.js.map +1 -1
  252. package/dist-server/service/privilege/privilege-directive.js +2 -2
  253. package/dist-server/service/privilege/privilege-directive.js.map +1 -1
  254. package/dist-server/service/privilege/privilege-mutation.d.ts +2 -2
  255. package/dist-server/service/privilege/privilege-mutation.js +15 -15
  256. package/dist-server/service/privilege/privilege-mutation.js.map +1 -1
  257. package/dist-server/service/privilege/privilege-query.d.ts +4 -4
  258. package/dist-server/service/privilege/privilege-query.js +20 -20
  259. package/dist-server/service/privilege/privilege-query.js.map +1 -1
  260. package/dist-server/service/privilege/privilege-types.d.ts +1 -1
  261. package/dist-server/service/privilege/privilege-types.js +2 -2
  262. package/dist-server/service/privilege/privilege-types.js.map +1 -1
  263. package/dist-server/service/privilege/privilege.d.ts +2 -2
  264. package/dist-server/service/privilege/privilege.js +10 -10
  265. package/dist-server/service/privilege/privilege.js.map +1 -1
  266. package/dist-server/service/role/index.d.ts +3 -3
  267. package/dist-server/service/role/index.js +5 -5
  268. package/dist-server/service/role/index.js.map +1 -1
  269. package/dist-server/service/role/role-mutation.d.ts +2 -2
  270. package/dist-server/service/role/role-mutation.js +19 -19
  271. package/dist-server/service/role/role-mutation.js.map +1 -1
  272. package/dist-server/service/role/role-query.d.ts +4 -4
  273. package/dist-server/service/role/role-query.js +29 -29
  274. package/dist-server/service/role/role-query.js.map +1 -1
  275. package/dist-server/service/role/role-types.d.ts +1 -1
  276. package/dist-server/service/role/role-types.js +2 -2
  277. package/dist-server/service/role/role-types.js.map +1 -1
  278. package/dist-server/service/role/role.d.ts +2 -2
  279. package/dist-server/service/role/role.js +12 -12
  280. package/dist-server/service/role/role.js.map +1 -1
  281. package/dist-server/service/user/domain-query.d.ts +1 -1
  282. package/dist-server/service/user/domain-query.js +3 -3
  283. package/dist-server/service/user/domain-query.js.map +1 -1
  284. package/dist-server/service/user/index.d.ts +4 -4
  285. package/dist-server/service/user/index.js +6 -6
  286. package/dist-server/service/user/index.js.map +1 -1
  287. package/dist-server/service/user/user-mutation.d.ts +13 -12
  288. package/dist-server/service/user/user-mutation.js +141 -83
  289. package/dist-server/service/user/user-mutation.js.map +1 -1
  290. package/dist-server/service/user/user-query.d.ts +3 -3
  291. package/dist-server/service/user/user-query.js +21 -21
  292. package/dist-server/service/user/user-query.js.map +1 -1
  293. package/dist-server/service/user/user-types.d.ts +2 -1
  294. package/dist-server/service/user/user-types.js +6 -2
  295. package/dist-server/service/user/user-types.js.map +1 -1
  296. package/dist-server/service/user/user.d.ts +4 -3
  297. package/dist-server/service/user/user.js +80 -54
  298. package/dist-server/service/user/user.js.map +1 -1
  299. package/dist-server/service/users-auth-providers/index.d.ts +1 -1
  300. package/dist-server/service/users-auth-providers/index.js +2 -2
  301. package/dist-server/service/users-auth-providers/index.js.map +1 -1
  302. package/dist-server/service/users-auth-providers/users-auth-providers.d.ts +2 -2
  303. package/dist-server/service/users-auth-providers/users-auth-providers.js +8 -8
  304. package/dist-server/service/users-auth-providers/users-auth-providers.js.map +1 -1
  305. package/dist-server/service/verification-token/index.d.ts +1 -1
  306. package/dist-server/service/verification-token/index.js +2 -2
  307. package/dist-server/service/verification-token/index.js.map +1 -1
  308. package/dist-server/service/web-auth-credential/index.d.ts +1 -1
  309. package/dist-server/service/web-auth-credential/index.js +2 -2
  310. package/dist-server/service/web-auth-credential/index.js.map +1 -1
  311. package/dist-server/service/web-auth-credential/web-auth-credential.d.ts +1 -1
  312. package/dist-server/service/web-auth-credential/web-auth-credential.js +10 -10
  313. package/dist-server/service/web-auth-credential/web-auth-credential.js.map +1 -1
  314. package/dist-server/templates/account-unlock-email.d.ts +2 -1
  315. package/dist-server/templates/account-unlock-email.js +1 -1
  316. package/dist-server/templates/account-unlock-email.js.map +1 -1
  317. package/dist-server/templates/invitation-email.d.ts +2 -1
  318. package/dist-server/templates/invitation-email.js +1 -1
  319. package/dist-server/templates/invitation-email.js.map +1 -1
  320. package/dist-server/templates/verification-email.d.ts +2 -1
  321. package/dist-server/templates/verification-email.js +1 -1
  322. package/dist-server/templates/verification-email.js.map +1 -1
  323. package/dist-server/tsconfig.tsbuildinfo +1 -1
  324. package/dist-server/types.d.ts +1 -1
  325. package/dist-server/types.js.map +1 -1
  326. package/dist-server/utils/access-token-cookie.js +2 -2
  327. package/dist-server/utils/access-token-cookie.js.map +1 -1
  328. package/dist-server/utils/check-permission.d.ts +2 -2
  329. package/dist-server/utils/check-permission.js +3 -3
  330. package/dist-server/utils/check-permission.js.map +1 -1
  331. package/dist-server/utils/check-user-belongs-domain.d.ts +1 -1
  332. package/dist-server/utils/check-user-belongs-domain.js +2 -2
  333. package/dist-server/utils/check-user-belongs-domain.js.map +1 -1
  334. package/dist-server/utils/check-user-has-role.d.ts +1 -1
  335. package/dist-server/utils/check-user-has-role.js +2 -2
  336. package/dist-server/utils/check-user-has-role.js.map +1 -1
  337. package/dist-server/utils/get-domain-users.d.ts +1 -1
  338. package/dist-server/utils/get-domain-users.js +2 -2
  339. package/dist-server/utils/get-domain-users.js.map +1 -1
  340. package/dist-server/utils/get-user-domains.d.ts +1 -1
  341. package/dist-server/utils/get-user-domains.js +4 -4
  342. package/dist-server/utils/get-user-domains.js.map +1 -1
  343. package/helps/config/recaptcha.ja.md +49 -0
  344. package/helps/config/recaptcha.ko.md +49 -0
  345. package/helps/config/recaptcha.md +49 -0
  346. package/helps/config/recaptcha.ms.md +49 -0
  347. package/helps/config/recaptcha.zh.md +49 -0
  348. package/package.json +10 -9
  349. package/translations/en.json +5 -1
  350. package/translations/ja.json +5 -1
  351. package/translations/ko.json +6 -3
  352. package/translations/ms.json +5 -1
  353. package/translations/zh.json +5 -1
  354. package/client/actions/auth.ts +0 -24
  355. package/client/auth.ts +0 -272
  356. package/client/bootstrap.ts +0 -47
  357. package/client/directive/privileged.ts +0 -28
  358. package/client/index.ts +0 -3
  359. package/client/profiled.ts +0 -83
  360. package/client/reducers/auth.ts +0 -31
  361. package/server/constants/error-code.ts +0 -20
  362. package/server/constants/error-message.ts +0 -0
  363. package/server/constants/max-age.ts +0 -1
  364. package/server/controllers/auth.ts +0 -5
  365. package/server/controllers/change-pwd.ts +0 -99
  366. package/server/controllers/checkin.ts +0 -21
  367. package/server/controllers/delete-user.ts +0 -68
  368. package/server/controllers/invitation.ts +0 -132
  369. package/server/controllers/profile.ts +0 -28
  370. package/server/controllers/reset-password.ts +0 -126
  371. package/server/controllers/signin.ts +0 -79
  372. package/server/controllers/signup.ts +0 -60
  373. package/server/controllers/unlock-user.ts +0 -61
  374. package/server/controllers/utils/make-invitation-token.ts +0 -5
  375. package/server/controllers/utils/make-verification-token.ts +0 -4
  376. package/server/controllers/utils/password-rule.ts +0 -120
  377. package/server/controllers/utils/save-invitation-token.ts +0 -10
  378. package/server/controllers/utils/save-verification-token.ts +0 -12
  379. package/server/controllers/verification.ts +0 -83
  380. package/server/errors/auth-error.ts +0 -24
  381. package/server/errors/index.ts +0 -2
  382. package/server/errors/user-domain-not-match-error.ts +0 -29
  383. package/server/index.ts +0 -37
  384. package/server/middlewares/authenticate-401-middleware.ts +0 -114
  385. package/server/middlewares/domain-authenticate-middleware.ts +0 -78
  386. package/server/middlewares/graphql-authenticate-middleware.ts +0 -13
  387. package/server/middlewares/index.ts +0 -67
  388. package/server/middlewares/jwt-authenticate-middleware.ts +0 -84
  389. package/server/middlewares/signin-middleware.ts +0 -55
  390. package/server/middlewares/webauthn-middleware.ts +0 -127
  391. package/server/migrations/1548206416130-SeedUser.ts +0 -59
  392. package/server/migrations/1566805283882-SeedPrivilege.ts +0 -28
  393. package/server/migrations/index.ts +0 -9
  394. package/server/router/auth-checkin-router.ts +0 -107
  395. package/server/router/auth-private-process-router.ts +0 -107
  396. package/server/router/auth-public-process-router.ts +0 -302
  397. package/server/router/auth-signin-router.ts +0 -65
  398. package/server/router/auth-signup-router.ts +0 -95
  399. package/server/router/index.ts +0 -9
  400. package/server/router/oauth2/index.ts +0 -2
  401. package/server/router/oauth2/oauth2-authorize-router.ts +0 -81
  402. package/server/router/oauth2/oauth2-router.ts +0 -165
  403. package/server/router/oauth2/oauth2-server.ts +0 -262
  404. package/server/router/oauth2/passport-oauth2-client-password.ts +0 -87
  405. package/server/router/oauth2/passport-refresh-token.ts +0 -87
  406. package/server/router/path-base-domain-router.ts +0 -8
  407. package/server/router/site-root-router.ts +0 -48
  408. package/server/router/webauthn-router.ts +0 -87
  409. package/server/routes.ts +0 -80
  410. package/server/service/app-binding/app-binding-mutation.ts +0 -22
  411. package/server/service/app-binding/app-binding-query.ts +0 -92
  412. package/server/service/app-binding/app-binding-types.ts +0 -11
  413. package/server/service/app-binding/app-binding.ts +0 -17
  414. package/server/service/app-binding/index.ts +0 -4
  415. package/server/service/appliance/appliance-mutation.ts +0 -113
  416. package/server/service/appliance/appliance-query.ts +0 -76
  417. package/server/service/appliance/appliance-types.ts +0 -56
  418. package/server/service/appliance/appliance.ts +0 -133
  419. package/server/service/appliance/index.ts +0 -6
  420. package/server/service/application/application-mutation.ts +0 -104
  421. package/server/service/application/application-query.ts +0 -98
  422. package/server/service/application/application-types.ts +0 -76
  423. package/server/service/application/application.ts +0 -216
  424. package/server/service/application/index.ts +0 -6
  425. package/server/service/auth-provider/auth-provider-mutation.ts +0 -159
  426. package/server/service/auth-provider/auth-provider-parameter-spec.ts +0 -24
  427. package/server/service/auth-provider/auth-provider-query.ts +0 -88
  428. package/server/service/auth-provider/auth-provider-type.ts +0 -67
  429. package/server/service/auth-provider/auth-provider.ts +0 -155
  430. package/server/service/auth-provider/index.ts +0 -7
  431. package/server/service/domain-generator/domain-generator-mutation.ts +0 -117
  432. package/server/service/domain-generator/domain-generator-types.ts +0 -46
  433. package/server/service/domain-generator/index.ts +0 -3
  434. package/server/service/granted-role/granted-role-mutation.ts +0 -156
  435. package/server/service/granted-role/granted-role-query.ts +0 -60
  436. package/server/service/granted-role/granted-role.ts +0 -27
  437. package/server/service/granted-role/index.ts +0 -6
  438. package/server/service/index.ts +0 -90
  439. package/server/service/invitation/index.ts +0 -6
  440. package/server/service/invitation/invitation-mutation.ts +0 -63
  441. package/server/service/invitation/invitation-query.ts +0 -33
  442. package/server/service/invitation/invitation-types.ts +0 -11
  443. package/server/service/invitation/invitation.ts +0 -63
  444. package/server/service/login-history/index.ts +0 -5
  445. package/server/service/login-history/login-history-query.ts +0 -51
  446. package/server/service/login-history/login-history-type.ts +0 -12
  447. package/server/service/login-history/login-history.ts +0 -45
  448. package/server/service/partner/index.ts +0 -6
  449. package/server/service/partner/partner-mutation.ts +0 -61
  450. package/server/service/partner/partner-query.ts +0 -102
  451. package/server/service/partner/partner-types.ts +0 -11
  452. package/server/service/partner/partner.ts +0 -57
  453. package/server/service/password-history/index.ts +0 -3
  454. package/server/service/password-history/password-history.ts +0 -16
  455. package/server/service/privilege/index.ts +0 -6
  456. package/server/service/privilege/privilege-directive.ts +0 -77
  457. package/server/service/privilege/privilege-mutation.ts +0 -92
  458. package/server/service/privilege/privilege-query.ts +0 -94
  459. package/server/service/privilege/privilege-types.ts +0 -60
  460. package/server/service/privilege/privilege.ts +0 -102
  461. package/server/service/role/index.ts +0 -6
  462. package/server/service/role/role-mutation.ts +0 -109
  463. package/server/service/role/role-query.ts +0 -155
  464. package/server/service/role/role-types.ts +0 -81
  465. package/server/service/role/role.ts +0 -72
  466. package/server/service/user/domain-query.ts +0 -24
  467. package/server/service/user/index.ts +0 -7
  468. package/server/service/user/user-mutation.ts +0 -413
  469. package/server/service/user/user-query.ts +0 -145
  470. package/server/service/user/user-types.ts +0 -97
  471. package/server/service/user/user.ts +0 -354
  472. package/server/service/users-auth-providers/index.ts +0 -5
  473. package/server/service/users-auth-providers/users-auth-providers.ts +0 -71
  474. package/server/service/verification-token/index.ts +0 -3
  475. package/server/service/verification-token/verification-token.ts +0 -60
  476. package/server/service/web-auth-credential/index.ts +0 -3
  477. package/server/service/web-auth-credential/web-auth-credential.ts +0 -67
  478. package/server/templates/account-unlock-email.ts +0 -65
  479. package/server/templates/invitation-email.ts +0 -66
  480. package/server/templates/reset-password-email.ts +0 -65
  481. package/server/templates/verification-email.ts +0 -66
  482. package/server/types.ts +0 -21
  483. package/server/utils/accepts.ts +0 -11
  484. package/server/utils/access-token-cookie.ts +0 -61
  485. package/server/utils/check-permission.ts +0 -52
  486. package/server/utils/check-user-belongs-domain.ts +0 -19
  487. package/server/utils/check-user-has-role.ts +0 -29
  488. package/server/utils/encrypt-state.ts +0 -22
  489. package/server/utils/get-aes-256-key.ts +0 -13
  490. package/server/utils/get-domain-from-hostname.ts +0 -7
  491. package/server/utils/get-domain-users.ts +0 -38
  492. package/server/utils/get-secret.ts +0 -13
  493. package/server/utils/get-user-domains.ts +0 -112
@@ -4,8 +4,8 @@ exports.PartnerMutation = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const type_graphql_1 = require("type-graphql");
6
6
  const shell_1 = require("@things-factory/shell");
7
- const granted_role_mutation_1 = require("../granted-role/granted-role-mutation");
8
- const partner_1 = require("./partner");
7
+ const granted_role_mutation_js_1 = require("../granted-role/granted-role-mutation.js");
8
+ const partner_js_1 = require("./partner.js");
9
9
  let PartnerMutation = class PartnerMutation {
10
10
  async inviteCustomer(customerDomainName, context) {
11
11
  // 1. Try to find existing customer
@@ -13,12 +13,12 @@ let PartnerMutation = class PartnerMutation {
13
13
  const customerDomain = await (0, shell_1.getRepository)(shell_1.Domain).findOne({ where: { name: customerDomainName } });
14
14
  if (!customerDomain)
15
15
  throw new Error(`There's no customer which has ${customerDomainName} as name`);
16
- const isExistingCustomer = Boolean(await (0, shell_1.getRepository)(partner_1.Partner).count({
16
+ const isExistingCustomer = Boolean(await (0, shell_1.getRepository)(partner_js_1.Partner).count({
17
17
  where: { domain: { id: domain.id }, partnerDomain: { id: customerDomain.id } }
18
18
  }));
19
19
  if (isExistingCustomer)
20
20
  throw new Error('Partner is registered as customer already');
21
- await (0, shell_1.getRepository)(partner_1.Partner).save({
21
+ await (0, shell_1.getRepository)(partner_js_1.Partner).save({
22
22
  domain,
23
23
  partnerDomain: customerDomain,
24
24
  requester: user,
@@ -35,15 +35,15 @@ let PartnerMutation = class PartnerMutation {
35
35
  if (!partnerDomain)
36
36
  throw new Error(context.t('error.failed to find x', { x: context.t('label.partner') }));
37
37
  // Find partner
38
- const partner = await tx.getRepository(partner_1.Partner).findOne({
38
+ const partner = await tx.getRepository(partner_js_1.Partner).findOne({
39
39
  where: { domain: { id: domain.id }, partnerDomain: { id: partnerDomain.id } }
40
40
  });
41
41
  if (!partner)
42
42
  throw new Error(context.t('error.failed to find x', { x: context.t('label.partner') }));
43
43
  // Remove record from partner
44
- await tx.getRepository(partner_1.Partner).delete(partner.id);
44
+ await tx.getRepository(partner_js_1.Partner).delete(partner.id);
45
45
  // Remove granted roles
46
- await (0, granted_role_mutation_1.terminateGrantedRoles)(domain, partnerDomain, tx);
46
+ await (0, granted_role_mutation_js_1.terminateGrantedRoles)(domain, partnerDomain, tx);
47
47
  return true;
48
48
  }
49
49
  };
@@ -68,6 +68,6 @@ tslib_1.__decorate([
68
68
  tslib_1.__metadata("design:returntype", Promise)
69
69
  ], PartnerMutation.prototype, "terminateContract", null);
70
70
  exports.PartnerMutation = PartnerMutation = tslib_1.__decorate([
71
- (0, type_graphql_1.Resolver)(partner_1.Partner)
71
+ (0, type_graphql_1.Resolver)(partner_js_1.Partner)
72
72
  ], PartnerMutation);
73
73
  //# sourceMappingURL=partner-mutation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"partner-mutation.js","sourceRoot":"","sources":["../../../server/service/partner/partner-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\n\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { terminateGrantedRoles } from '../granted-role/granted-role-mutation'\nimport { Partner } from './partner'\n\n@Resolver(Partner)\nexport class PartnerMutation {\n @Directive('@privilege(category: \"partner\", privilege: \"mutation\")')\n @Mutation(returns => Boolean)\n async inviteCustomer(@Arg('customerDomainName') customerDomainName: string, @Ctx() context: ResolverContext) {\n // 1. Try to find existing customer\n const { domain, user } = context.state\n const customerDomain: Domain = await getRepository(Domain).findOne({ where: { name: customerDomainName } })\n if (!customerDomain) throw new Error(`There's no customer which has ${customerDomainName} as name`)\n\n const isExistingCustomer: boolean = Boolean(\n await getRepository(Partner).count({\n where: { domain: { id: domain.id }, partnerDomain: { id: customerDomain.id } }\n })\n )\n if (isExistingCustomer) throw new Error('Partner is registered as customer already')\n\n await getRepository(Partner).save({\n domain,\n partnerDomain: customerDomain,\n requester: user,\n approver: user\n })\n\n return true\n }\n\n @Directive('@privilege(category: \"partner\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async terminateContract(@Arg('partnerName') partnerName: string, @Ctx() context: ResolverContext) {\n const { tx, domain } = context.state\n\n // Find partnerDomain\n const partnerDomain: Domain = await tx.getRepository(Domain).findOne({\n where: { name: partnerName }\n })\n if (!partnerDomain) throw new Error(context.t('error.failed to find x', { x: context.t('label.partner') }))\n\n // Find partner\n const partner: Partner = await tx.getRepository(Partner).findOne({\n where: { domain: { id: domain.id }, partnerDomain: { id: partnerDomain.id } }\n })\n if (!partner) throw new Error(context.t('error.failed to find x', { x: context.t('label.partner') }))\n\n // Remove record from partner\n await tx.getRepository(Partner).delete(partner.id)\n\n // Remove granted roles\n await terminateGrantedRoles(domain, partnerDomain, tx)\n\n return true\n }\n}\n"]}
1
+ {"version":3,"file":"partner-mutation.js","sourceRoot":"","sources":["../../../server/service/partner/partner-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\n\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { terminateGrantedRoles } from '../granted-role/granted-role-mutation.js'\nimport { Partner } from './partner.js'\n\n@Resolver(Partner)\nexport class PartnerMutation {\n @Directive('@privilege(category: \"partner\", privilege: \"mutation\")')\n @Mutation(returns => Boolean)\n async inviteCustomer(@Arg('customerDomainName') customerDomainName: string, @Ctx() context: ResolverContext) {\n // 1. Try to find existing customer\n const { domain, user } = context.state\n const customerDomain: Domain = await getRepository(Domain).findOne({ where: { name: customerDomainName } })\n if (!customerDomain) throw new Error(`There's no customer which has ${customerDomainName} as name`)\n\n const isExistingCustomer: boolean = Boolean(\n await getRepository(Partner).count({\n where: { domain: { id: domain.id }, partnerDomain: { id: customerDomain.id } }\n })\n )\n if (isExistingCustomer) throw new Error('Partner is registered as customer already')\n\n await getRepository(Partner).save({\n domain,\n partnerDomain: customerDomain,\n requester: user,\n approver: user\n })\n\n return true\n }\n\n @Directive('@privilege(category: \"partner\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async terminateContract(@Arg('partnerName') partnerName: string, @Ctx() context: ResolverContext) {\n const { tx, domain } = context.state\n\n // Find partnerDomain\n const partnerDomain: Domain = await tx.getRepository(Domain).findOne({\n where: { name: partnerName }\n })\n if (!partnerDomain) throw new Error(context.t('error.failed to find x', { x: context.t('label.partner') }))\n\n // Find partner\n const partner: Partner = await tx.getRepository(Partner).findOne({\n where: { domain: { id: domain.id }, partnerDomain: { id: partnerDomain.id } }\n })\n if (!partner) throw new Error(context.t('error.failed to find x', { x: context.t('label.partner') }))\n\n // Remove record from partner\n await tx.getRepository(Partner).delete(partner.id)\n\n // Remove granted roles\n await terminateGrantedRoles(domain, partnerDomain, tx)\n\n return true\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { Domain, DomainList, ListParam } from '@things-factory/shell';
2
- import { User } from '../user/user';
3
- import { Partner } from './partner';
4
- import { PartnerList } from './partner-types';
2
+ import { User } from '../user/user.js';
3
+ import { Partner } from './partner.js';
4
+ import { PartnerList } from './partner-types.js';
5
5
  export declare class PartnerQuery {
6
6
  partners(params: ListParam, context: ResolverContext): Promise<PartnerList>;
7
7
  customers(context: ResolverContext): Promise<Domain[]>;
@@ -4,18 +4,18 @@ exports.PartnerQuery = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const type_graphql_1 = require("type-graphql");
6
6
  const shell_1 = require("@things-factory/shell");
7
- const check_user_belongs_domain_1 = require("../../utils/check-user-belongs-domain");
8
- const user_1 = require("../user/user");
9
- const partner_1 = require("./partner");
10
- const partner_types_1 = require("./partner-types");
7
+ const check_user_belongs_domain_js_1 = require("../../utils/check-user-belongs-domain.js");
8
+ const user_js_1 = require("../user/user.js");
9
+ const partner_js_1 = require("./partner.js");
10
+ const partner_types_js_1 = require("./partner-types.js");
11
11
  let PartnerQuery = class PartnerQuery {
12
12
  async partners(params, context) {
13
- if (await (0, check_user_belongs_domain_1.checkUserBelongsDomain)(context.state.domain, context.state.user)) {
13
+ if (await (0, check_user_belongs_domain_js_1.checkUserBelongsDomain)(context.state.domain, context.state.user)) {
14
14
  const { domain } = context.state;
15
15
  const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
16
16
  domain,
17
17
  params,
18
- repository: (0, shell_1.getRepository)(partner_1.Partner),
18
+ repository: (0, shell_1.getRepository)(partner_js_1.Partner),
19
19
  alias: 'partner'
20
20
  });
21
21
  const [items, total] = await queryBuilder.getManyAndCount();
@@ -27,7 +27,7 @@ let PartnerQuery = class PartnerQuery {
27
27
  }
28
28
  async customers(context) {
29
29
  const { domain } = context.state;
30
- const partners = await (0, shell_1.getRepository)(partner_1.Partner).find({
30
+ const partners = await (0, shell_1.getRepository)(partner_js_1.Partner).find({
31
31
  where: { domain: { id: domain.id } },
32
32
  relations: ['partnerDomain']
33
33
  });
@@ -35,7 +35,7 @@ let PartnerQuery = class PartnerQuery {
35
35
  }
36
36
  async searchCustomers(params, context) {
37
37
  const { domain } = context.state;
38
- const partners = await (0, shell_1.getRepository)(partner_1.Partner).find({
38
+ const partners = await (0, shell_1.getRepository)(partner_js_1.Partner).find({
39
39
  where: { domain: { id: domain.id } },
40
40
  relations: ['partnerDomain']
41
41
  });
@@ -50,7 +50,7 @@ let PartnerQuery = class PartnerQuery {
50
50
  }
51
51
  async vendors(context) {
52
52
  const { domain } = context.state;
53
- const qb = (0, shell_1.getRepository)(partner_1.Partner).createQueryBuilder('PARTNER');
53
+ const qb = (0, shell_1.getRepository)(partner_js_1.Partner).createQueryBuilder('PARTNER');
54
54
  const partners = await qb
55
55
  .leftJoinAndSelect('PARTNER.domain', 'DOMAIN')
56
56
  .leftJoinAndSelect('PARTNER.partnerDomain', 'P_DOMAIN')
@@ -65,16 +65,16 @@ let PartnerQuery = class PartnerQuery {
65
65
  return await (0, shell_1.getRepository)(shell_1.Domain).findOneBy({ id: partner.partnerDomainId });
66
66
  }
67
67
  async requester(partner) {
68
- return await (0, shell_1.getRepository)(user_1.User).findOneBy({ id: partner.requesterId });
68
+ return await (0, shell_1.getRepository)(user_js_1.User).findOneBy({ id: partner.requesterId });
69
69
  }
70
70
  async approver(partner) {
71
- return await (0, shell_1.getRepository)(user_1.User).findOneBy({ id: partner.approverId });
71
+ return await (0, shell_1.getRepository)(user_js_1.User).findOneBy({ id: partner.approverId });
72
72
  }
73
73
  };
74
74
  exports.PartnerQuery = PartnerQuery;
75
75
  tslib_1.__decorate([
76
76
  (0, type_graphql_1.Directive)('@privilege(category: "partner", privilege: "query", domainOwnerGranted: true)'),
77
- (0, type_graphql_1.Query)(returns => partner_types_1.PartnerList),
77
+ (0, type_graphql_1.Query)(returns => partner_types_js_1.PartnerList),
78
78
  tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
79
79
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
80
80
  tslib_1.__metadata("design:type", Function),
@@ -110,31 +110,31 @@ tslib_1.__decorate([
110
110
  (0, type_graphql_1.FieldResolver)(),
111
111
  tslib_1.__param(0, (0, type_graphql_1.Root)()),
112
112
  tslib_1.__metadata("design:type", Function),
113
- tslib_1.__metadata("design:paramtypes", [partner_1.Partner]),
113
+ tslib_1.__metadata("design:paramtypes", [partner_js_1.Partner]),
114
114
  tslib_1.__metadata("design:returntype", Promise)
115
115
  ], PartnerQuery.prototype, "domain", null);
116
116
  tslib_1.__decorate([
117
117
  (0, type_graphql_1.FieldResolver)(),
118
118
  tslib_1.__param(0, (0, type_graphql_1.Root)()),
119
119
  tslib_1.__metadata("design:type", Function),
120
- tslib_1.__metadata("design:paramtypes", [partner_1.Partner]),
120
+ tslib_1.__metadata("design:paramtypes", [partner_js_1.Partner]),
121
121
  tslib_1.__metadata("design:returntype", Promise)
122
122
  ], PartnerQuery.prototype, "partnerDomain", null);
123
123
  tslib_1.__decorate([
124
124
  (0, type_graphql_1.FieldResolver)(),
125
125
  tslib_1.__param(0, (0, type_graphql_1.Root)()),
126
126
  tslib_1.__metadata("design:type", Function),
127
- tslib_1.__metadata("design:paramtypes", [partner_1.Partner]),
127
+ tslib_1.__metadata("design:paramtypes", [partner_js_1.Partner]),
128
128
  tslib_1.__metadata("design:returntype", Promise)
129
129
  ], PartnerQuery.prototype, "requester", null);
130
130
  tslib_1.__decorate([
131
131
  (0, type_graphql_1.FieldResolver)(),
132
132
  tslib_1.__param(0, (0, type_graphql_1.Root)()),
133
133
  tslib_1.__metadata("design:type", Function),
134
- tslib_1.__metadata("design:paramtypes", [partner_1.Partner]),
134
+ tslib_1.__metadata("design:paramtypes", [partner_js_1.Partner]),
135
135
  tslib_1.__metadata("design:returntype", Promise)
136
136
  ], PartnerQuery.prototype, "approver", null);
137
137
  exports.PartnerQuery = PartnerQuery = tslib_1.__decorate([
138
- (0, type_graphql_1.Resolver)(partner_1.Partner)
138
+ (0, type_graphql_1.Resolver)(partner_js_1.Partner)
139
139
  ], PartnerQuery);
140
140
  //# sourceMappingURL=partner-query.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"partner-query.js","sourceRoot":"","sources":["../../../server/service/partner/partner-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { SelectQueryBuilder } from 'typeorm'\n\nimport { Domain, DomainList, getRepository, ListParam, getQueryBuilderFromListParams } from '@things-factory/shell'\n\nimport { checkUserBelongsDomain } from '../../utils/check-user-belongs-domain'\nimport { User } from '../user/user'\nimport { Partner } from './partner'\nimport { PartnerList } from './partner-types'\n\n@Resolver(Partner)\nexport class PartnerQuery {\n @Directive('@privilege(category: \"partner\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => PartnerList)\n async partners(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<PartnerList> {\n if (await checkUserBelongsDomain(context.state.domain, context.state.user)) {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: getRepository(Partner),\n alias: 'partner'\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n } else {\n throw new Error(`User doesn't belong in current domain`)\n }\n }\n\n @Directive('@privilege(category: \"partner\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => [Domain])\n async customers(@Ctx() context: ResolverContext): Promise<Domain[]> {\n const { domain } = context.state\n const partners: Partner[] = await getRepository(Partner).find({\n where: { domain: { id: domain.id } },\n relations: ['partnerDomain']\n })\n\n return partners.map((p: Partner) => p.partnerDomain)\n }\n\n @Directive('@privilege(category: \"partner\", privilege: \"query\")')\n @Query(returns => DomainList)\n async searchCustomers(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DomainList> {\n const { domain } = context.state\n const partners: Partner[] = await getRepository(Partner).find({\n where: { domain: { id: domain.id } },\n relations: ['partnerDomain']\n })\n\n const qb: SelectQueryBuilder<Domain> = await getQueryBuilderFromListParams({\n repository: getRepository(Domain),\n params,\n searchables: ['name', 'description']\n })\n\n qb.andWhereInIds(partners.map((p: Partner) => p.partnerDomain.id))\n const [items, total] = await qb.getManyAndCount()\n return { items, total }\n }\n\n @Directive('@privilege(category: \"partner\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => [Domain])\n async vendors(@Ctx() context: ResolverContext): Promise<Domain[]> {\n const { domain } = context.state\n const qb: SelectQueryBuilder<Partner> = getRepository(Partner).createQueryBuilder('PARTNER')\n const partners: Partner[] = await qb\n .leftJoinAndSelect('PARTNER.domain', 'DOMAIN')\n .leftJoinAndSelect('PARTNER.partnerDomain', 'P_DOMAIN')\n .where('P_DOMAIN.id = :domainId', { domainId: domain.id })\n .getMany()\n\n return partners.map((p: Partner) => p.domain)\n }\n\n @FieldResolver()\n async domain(@Root() partner: Partner) {\n return await getRepository(Domain).findOneBy({ id: partner.domainId })\n }\n\n @FieldResolver()\n async partnerDomain(@Root() partner: Partner) {\n return await getRepository(Domain).findOneBy({ id: partner.partnerDomainId })\n }\n\n @FieldResolver()\n async requester(@Root() partner: Partner) {\n return await getRepository(User).findOneBy({ id: partner.requesterId })\n }\n\n @FieldResolver()\n async approver(@Root() partner: Partner) {\n return await getRepository(User).findOneBy({ id: partner.approverId })\n }\n}\n"]}
1
+ {"version":3,"file":"partner-query.js","sourceRoot":"","sources":["../../../server/service/partner/partner-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { SelectQueryBuilder } from 'typeorm'\n\nimport { Domain, DomainList, getRepository, ListParam, getQueryBuilderFromListParams } from '@things-factory/shell'\n\nimport { checkUserBelongsDomain } from '../../utils/check-user-belongs-domain.js'\nimport { User } from '../user/user.js'\nimport { Partner } from './partner.js'\nimport { PartnerList } from './partner-types.js'\n\n@Resolver(Partner)\nexport class PartnerQuery {\n @Directive('@privilege(category: \"partner\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => PartnerList)\n async partners(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<PartnerList> {\n if (await checkUserBelongsDomain(context.state.domain, context.state.user)) {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: getRepository(Partner),\n alias: 'partner'\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n } else {\n throw new Error(`User doesn't belong in current domain`)\n }\n }\n\n @Directive('@privilege(category: \"partner\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => [Domain])\n async customers(@Ctx() context: ResolverContext): Promise<Domain[]> {\n const { domain } = context.state\n const partners: Partner[] = await getRepository(Partner).find({\n where: { domain: { id: domain.id } },\n relations: ['partnerDomain']\n })\n\n return partners.map((p: Partner) => p.partnerDomain)\n }\n\n @Directive('@privilege(category: \"partner\", privilege: \"query\")')\n @Query(returns => DomainList)\n async searchCustomers(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DomainList> {\n const { domain } = context.state\n const partners: Partner[] = await getRepository(Partner).find({\n where: { domain: { id: domain.id } },\n relations: ['partnerDomain']\n })\n\n const qb: SelectQueryBuilder<Domain> = await getQueryBuilderFromListParams({\n repository: getRepository(Domain),\n params,\n searchables: ['name', 'description']\n })\n\n qb.andWhereInIds(partners.map((p: Partner) => p.partnerDomain.id))\n const [items, total] = await qb.getManyAndCount()\n return { items, total }\n }\n\n @Directive('@privilege(category: \"partner\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => [Domain])\n async vendors(@Ctx() context: ResolverContext): Promise<Domain[]> {\n const { domain } = context.state\n const qb: SelectQueryBuilder<Partner> = getRepository(Partner).createQueryBuilder('PARTNER')\n const partners: Partner[] = await qb\n .leftJoinAndSelect('PARTNER.domain', 'DOMAIN')\n .leftJoinAndSelect('PARTNER.partnerDomain', 'P_DOMAIN')\n .where('P_DOMAIN.id = :domainId', { domainId: domain.id })\n .getMany()\n\n return partners.map((p: Partner) => p.domain)\n }\n\n @FieldResolver()\n async domain(@Root() partner: Partner) {\n return await getRepository(Domain).findOneBy({ id: partner.domainId })\n }\n\n @FieldResolver()\n async partnerDomain(@Root() partner: Partner) {\n return await getRepository(Domain).findOneBy({ id: partner.partnerDomainId })\n }\n\n @FieldResolver()\n async requester(@Root() partner: Partner) {\n return await getRepository(User).findOneBy({ id: partner.requesterId })\n }\n\n @FieldResolver()\n async approver(@Root() partner: Partner) {\n return await getRepository(User).findOneBy({ id: partner.approverId })\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { Partner } from './partner';
1
+ import { Partner } from './partner.js';
2
2
  export declare class PartnerList {
3
3
  items: Partner[];
4
4
  total: number;
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PartnerList = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const type_graphql_1 = require("type-graphql");
6
- const partner_1 = require("./partner");
6
+ const partner_js_1 = require("./partner.js");
7
7
  let PartnerList = class PartnerList {
8
8
  };
9
9
  exports.PartnerList = PartnerList;
10
10
  tslib_1.__decorate([
11
- (0, type_graphql_1.Field)(type => [partner_1.Partner], { nullable: true }),
11
+ (0, type_graphql_1.Field)(type => [partner_js_1.Partner], { nullable: true }),
12
12
  tslib_1.__metadata("design:type", Array)
13
13
  ], PartnerList.prototype, "items", void 0);
14
14
  tslib_1.__decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"partner-types.js","sourceRoot":"","sources":["../../../server/service/partner/partner-types.ts"],"names":[],"mappings":";;;;AAAA,+CAAqD;AACrD,uCAAmC;AAG5B,IAAM,WAAW,GAAjB,MAAM,WAAW;CAMvB,CAAA;AANY,kCAAW;AAEtB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,iBAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CAC7B;AAGhB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CAC1B;sBALF,WAAW;IADvB,IAAA,yBAAU,GAAE;GACA,WAAW,CAMvB","sourcesContent":["import { Field, Int, ObjectType } from 'type-graphql'\nimport { Partner } from './partner'\n\n@ObjectType()\nexport class PartnerList {\n @Field(type => [Partner], { nullable: true })\n items: Partner[]\n\n @Field(type => Int, { nullable: true })\n total: number\n}\n"]}
1
+ {"version":3,"file":"partner-types.js","sourceRoot":"","sources":["../../../server/service/partner/partner-types.ts"],"names":[],"mappings":";;;;AAAA,+CAAqD;AACrD,6CAAsC;AAG/B,IAAM,WAAW,GAAjB,MAAM,WAAW;CAMvB,CAAA;AANY,kCAAW;AAEtB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,oBAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CAC7B;AAGhB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CAC1B;sBALF,WAAW;IADvB,IAAA,yBAAU,GAAE;GACA,WAAW,CAMvB","sourcesContent":["import { Field, Int, ObjectType } from 'type-graphql'\nimport { Partner } from './partner.js'\n\n@ObjectType()\nexport class PartnerList {\n @Field(type => [Partner], { nullable: true })\n items: Partner[]\n\n @Field(type => Int, { nullable: true })\n total: number\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { Domain } from '@things-factory/shell';
2
- import { User } from '../user/user';
2
+ import { User } from '../user/user.js';
3
3
  export declare class Partner {
4
4
  readonly id: string;
5
5
  domain?: Domain;
@@ -5,7 +5,7 @@ const tslib_1 = require("tslib");
5
5
  const shell_1 = require("@things-factory/shell");
6
6
  const typeorm_1 = require("typeorm");
7
7
  const type_graphql_1 = require("type-graphql");
8
- const user_1 = require("../user/user");
8
+ const user_js_1 = require("../user/user.js");
9
9
  let Partner = class Partner {
10
10
  };
11
11
  exports.Partner = Partner;
@@ -43,18 +43,18 @@ tslib_1.__decorate([
43
43
  tslib_1.__metadata("design:type", Date)
44
44
  ], Partner.prototype, "approvedAt", void 0);
45
45
  tslib_1.__decorate([
46
- (0, typeorm_1.ManyToOne)(type => user_1.User, { nullable: true }),
46
+ (0, typeorm_1.ManyToOne)(type => user_js_1.User, { nullable: true }),
47
47
  (0, type_graphql_1.Field)({ nullable: true }),
48
- tslib_1.__metadata("design:type", user_1.User)
48
+ tslib_1.__metadata("design:type", user_js_1.User)
49
49
  ], Partner.prototype, "requester", void 0);
50
50
  tslib_1.__decorate([
51
51
  (0, typeorm_1.RelationId)((partner) => partner.requester),
52
52
  tslib_1.__metadata("design:type", String)
53
53
  ], Partner.prototype, "requesterId", void 0);
54
54
  tslib_1.__decorate([
55
- (0, typeorm_1.ManyToOne)(type => user_1.User, { nullable: true }),
55
+ (0, typeorm_1.ManyToOne)(type => user_js_1.User, { nullable: true }),
56
56
  (0, type_graphql_1.Field)({ nullable: true }),
57
- tslib_1.__metadata("design:type", user_1.User)
57
+ tslib_1.__metadata("design:type", user_js_1.User)
58
58
  ], Partner.prototype, "approver", void 0);
59
59
  tslib_1.__decorate([
60
60
  (0, typeorm_1.RelationId)((partner) => partner.approver),
@@ -1 +1 @@
1
- {"version":3,"file":"partner.js","sourceRoot":"","sources":["../../../server/service/partner/partner.ts"],"names":[],"mappings":";;;;AAAA,iDAA8C;AAC9C,qCAQgB;AAChB,+CAAoD;AACpD,uCAAmC;AAK5B,IAAM,OAAO,GAAb,MAAM,OAAO;CAwCnB,CAAA;AAxCY,0BAAO;AAGT;IAFR,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAC9B,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,CAAC;;mCACC;AAInB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IACzB,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;sCACb,cAAM;uCAAA;AAGf;IADC,IAAA,oBAAU,EAAC,CAAC,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;;yCACjC;AAIhB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IACzB,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;sCACN,cAAM;8CAAA;AAGtB;IADC,IAAA,oBAAU,EAAC,CAAC,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;;gDACjC;AAIvB;IAFC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACb,IAAI;4CAAA;AAIjB;IAFC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;2CAAA;AAIhB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,WAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACf,WAAI;0CAAA;AAGf;IADC,IAAA,oBAAU,EAAC,CAAC,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;;4CACjC;AAInB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,WAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAChB,WAAI;yCAAA;AAGd;IADC,IAAA,oBAAU,EAAC,CAAC,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;;2CACjC;kBAvCP,OAAO;IAHnB,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EAAC,cAAc,EAAE,CAAC,OAAgB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACtG,IAAA,yBAAU,GAAE;GACA,OAAO,CAwCnB","sourcesContent":["import { Domain } from '@things-factory/shell'\nimport {\n CreateDateColumn,\n Entity,\n Index,\n ManyToOne,\n PrimaryGeneratedColumn,\n UpdateDateColumn,\n RelationId\n} from 'typeorm'\nimport { ObjectType, Field, ID } from 'type-graphql'\nimport { User } from '../user/user'\n\n@Entity()\n@Index('ix_partner_0', (partner: Partner) => [partner.domain, partner.partnerDomain], { unique: true })\n@ObjectType()\nexport class Partner {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain)\n domain?: Domain\n\n @RelationId((partner: Partner) => partner.domain)\n domainId: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain)\n partnerDomain?: Domain\n\n @RelationId((partner: Partner) => partner.partnerDomain)\n partnerDomainId: string\n\n @CreateDateColumn()\n @Field({ nullable: true })\n requestedAt: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n approvedAt: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field({ nullable: true })\n requester: User\n\n @RelationId((partner: Partner) => partner.requester)\n requesterId: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field({ nullable: true })\n approver: User\n\n @RelationId((partner: Partner) => partner.approver)\n approverId: string\n}\n"]}
1
+ {"version":3,"file":"partner.js","sourceRoot":"","sources":["../../../server/service/partner/partner.ts"],"names":[],"mappings":";;;;AAAA,iDAA8C;AAC9C,qCAQgB;AAChB,+CAAoD;AACpD,6CAAsC;AAK/B,IAAM,OAAO,GAAb,MAAM,OAAO;CAwCnB,CAAA;AAxCY,0BAAO;AAGT;IAFR,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAC9B,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,CAAC;;mCACC;AAInB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IACzB,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;sCACb,cAAM;uCAAA;AAGf;IADC,IAAA,oBAAU,EAAC,CAAC,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;;yCACjC;AAIhB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IACzB,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;sCACN,cAAM;8CAAA;AAGtB;IADC,IAAA,oBAAU,EAAC,CAAC,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;;gDACjC;AAIvB;IAFC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACb,IAAI;4CAAA;AAIjB;IAFC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;2CAAA;AAIhB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,cAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACf,cAAI;0CAAA;AAGf;IADC,IAAA,oBAAU,EAAC,CAAC,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;;4CACjC;AAInB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,cAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAChB,cAAI;yCAAA;AAGd;IADC,IAAA,oBAAU,EAAC,CAAC,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;;2CACjC;kBAvCP,OAAO;IAHnB,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EAAC,cAAc,EAAE,CAAC,OAAgB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACtG,IAAA,yBAAU,GAAE;GACA,OAAO,CAwCnB","sourcesContent":["import { Domain } from '@things-factory/shell'\nimport {\n CreateDateColumn,\n Entity,\n Index,\n ManyToOne,\n PrimaryGeneratedColumn,\n UpdateDateColumn,\n RelationId\n} from 'typeorm'\nimport { ObjectType, Field, ID } from 'type-graphql'\nimport { User } from '../user/user.js'\n\n@Entity()\n@Index('ix_partner_0', (partner: Partner) => [partner.domain, partner.partnerDomain], { unique: true })\n@ObjectType()\nexport class Partner {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain)\n domain?: Domain\n\n @RelationId((partner: Partner) => partner.domain)\n domainId: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain)\n partnerDomain?: Domain\n\n @RelationId((partner: Partner) => partner.partnerDomain)\n partnerDomainId: string\n\n @CreateDateColumn()\n @Field({ nullable: true })\n requestedAt: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n approvedAt: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field({ nullable: true })\n requester: User\n\n @RelationId((partner: Partner) => partner.requester)\n requesterId: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field({ nullable: true })\n approver: User\n\n @RelationId((partner: Partner) => partner.approver)\n approverId: string\n}\n"]}
@@ -1,2 +1,2 @@
1
- import { PasswordHistory } from './password-history';
1
+ import { PasswordHistory } from './password-history.js';
2
2
  export declare const entities: (typeof PasswordHistory)[];
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.entities = void 0;
4
- const password_history_1 = require("./password-history");
5
- exports.entities = [password_history_1.PasswordHistory];
4
+ const password_history_js_1 = require("./password-history.js");
5
+ exports.entities = [password_history_js_1.PasswordHistory];
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/service/password-history/index.ts"],"names":[],"mappings":";;;AAAA,yDAAoD;AAEvC,QAAA,QAAQ,GAAG,CAAC,kCAAe,CAAC,CAAA","sourcesContent":["import { PasswordHistory } from './password-history'\n\nexport const entities = [PasswordHistory]\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/service/password-history/index.ts"],"names":[],"mappings":";;;AAAA,+DAAuD;AAE1C,QAAA,QAAQ,GAAG,CAAC,qCAAe,CAAC,CAAA","sourcesContent":["import { PasswordHistory } from './password-history.js'\n\nexport const entities = [PasswordHistory]\n"]}
@@ -1,5 +1,5 @@
1
- import { Privilege } from './privilege';
2
- import { PrivilegeQuery } from './privilege-query';
3
- import { PrivilegeMutation } from './privilege-mutation';
1
+ import { Privilege } from './privilege.js';
2
+ import { PrivilegeQuery } from './privilege-query.js';
3
+ import { PrivilegeMutation } from './privilege-mutation.js';
4
4
  export declare const entities: (typeof Privilege)[];
5
5
  export declare const resolvers: (typeof PrivilegeQuery | typeof PrivilegeMutation)[];
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resolvers = exports.entities = void 0;
4
- const privilege_1 = require("./privilege");
5
- const privilege_query_1 = require("./privilege-query");
6
- const privilege_mutation_1 = require("./privilege-mutation");
7
- exports.entities = [privilege_1.Privilege];
8
- exports.resolvers = [privilege_query_1.PrivilegeQuery, privilege_mutation_1.PrivilegeMutation];
4
+ const privilege_js_1 = require("./privilege.js");
5
+ const privilege_query_js_1 = require("./privilege-query.js");
6
+ const privilege_mutation_js_1 = require("./privilege-mutation.js");
7
+ exports.entities = [privilege_js_1.Privilege];
8
+ exports.resolvers = [privilege_query_js_1.PrivilegeQuery, privilege_mutation_js_1.PrivilegeMutation];
9
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/service/privilege/index.ts"],"names":[],"mappings":";;;AAAA,2CAAuC;AACvC,uDAAkD;AAClD,6DAAwD;AAE3C,QAAA,QAAQ,GAAG,CAAC,qBAAS,CAAC,CAAA;AACtB,QAAA,SAAS,GAAG,CAAC,gCAAc,EAAE,sCAAiB,CAAC,CAAA","sourcesContent":["import { Privilege } from './privilege'\nimport { PrivilegeQuery } from './privilege-query'\nimport { PrivilegeMutation } from './privilege-mutation'\n\nexport const entities = [Privilege]\nexport const resolvers = [PrivilegeQuery, PrivilegeMutation]\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/service/privilege/index.ts"],"names":[],"mappings":";;;AAAA,iDAA0C;AAC1C,6DAAqD;AACrD,mEAA2D;AAE9C,QAAA,QAAQ,GAAG,CAAC,wBAAS,CAAC,CAAA;AACtB,QAAA,SAAS,GAAG,CAAC,mCAAc,EAAE,yCAAiB,CAAC,CAAA","sourcesContent":["import { Privilege } from './privilege.js'\nimport { PrivilegeQuery } from './privilege-query.js'\nimport { PrivilegeMutation } from './privilege-mutation.js'\n\nexport const entities = [Privilege]\nexport const resolvers = [PrivilegeQuery, PrivilegeMutation]\n"]}
@@ -5,7 +5,7 @@ const tslib_1 = require("tslib");
5
5
  const graphql_1 = require("graphql");
6
6
  const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
7
7
  const utils_1 = require("@graphql-tools/utils");
8
- const check_permission_1 = require("../../utils/check-permission");
8
+ const check_permission_js_1 = require("../../utils/check-permission.js");
9
9
  process['PRIVILEGES'] = {};
10
10
  const DIRECTIVE = 'privilege';
11
11
  exports.privilegeDirectiveTypeDefs = (0, graphql_tag_1.default) `
@@ -39,7 +39,7 @@ const privilegeDirectiveResolver = (schema) => (0, utils_1.mapSchema)(schema, {
39
39
  fieldConfig.description = `${existingDescription} ${privilegeDescription}`.trim();
40
40
  fieldConfig.resolve = async function (source, args, context, info) {
41
41
  const { domain, user, unsafeIP, prohibitedPrivileges } = context.state;
42
- if (await (0, check_permission_1.checkPermission)({
42
+ if (await (0, check_permission_js_1.checkPermission)({
43
43
  category,
44
44
  privilege,
45
45
  owner: domainOwnerGranted,
@@ -1 +1 @@
1
- {"version":3,"file":"privilege-directive.js","sourceRoot":"","sources":["../../../server/service/privilege/privilege-directive.ts"],"names":[],"mappings":";;;;AAAA,qCAA6D;AAC7D,sEAA6B;AAE7B,gDAA0E;AAC1E,mEAA8D;AAE9D,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,CAAA;AAE1B,MAAM,SAAS,GAAG,WAAW,CAAA;AAEhB,QAAA,0BAA0B,GAAG,IAAA,qBAAG,EAAA;;;;;;;CAO5C,CAAA;AACM,MAAM,0BAA0B,GAAG,CAAC,MAAqB,EAAE,EAAE,CAClE,IAAA,iBAAS,EAAC,MAAM,EAAE;IAChB,CAAC,kBAAU,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;;QACtE,MAAM,kBAAkB,GAAG,MAAA,IAAA,oBAAY,EAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,0CAAG,CAAC,CAAC,CAAA;QAC5E,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,EAAE,OAAO,GAAG,8BAAoB,EAAE,IAAI,EAAE,GAAG,WAAW,CAAA;YAE5D,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,8EAA8E,SAAS,GAAG,CAAC,CAAA;YAC7G,CAAC;YAED,MAAM,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,kBAAkB,CAAA;YACxF,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;gBAC1B,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,QAAQ,IAAI,SAAS,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;YAC3E,CAAC;YAED,0BAA0B;YAC1B,MAAM,mBAAmB,GAAG,WAAW,CAAC,WAAW,IAAI,EAAE,CAAA;YAEzD,gCAAgC;YAChC,MAAM,oBAAoB,GACxB,8BAA8B,QAAQ,IAAI,SAAS,EAAE;gBACrD,CAAC,kBAAkB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,CAAC,gBAAgB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;YAEhD,qBAAqB;YACrB,WAAW,CAAC,WAAW,GAAG,GAAG,mBAAmB,IAAI,oBAAoB,EAAE,CAAC,IAAI,EAAE,CAAA;YAEjF,WAAW,CAAC,OAAO,GAAG,KAAK,WAAW,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI;gBAC/D,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;gBAEtE,IACE,MAAM,IAAA,kCAAe,EACnB;oBACE,QAAQ;oBACR,SAAS;oBACT,KAAK,EAAE,kBAAkB;oBACzB,KAAK,EAAE,gBAAgB;iBACxB,EACD,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,oBAAoB,CACrB,EACD,CAAC;oBACD,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;gBAC9D,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CACb,iBACE,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,QAAQ,GAAG,GAAG,GAAG,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,mBACtE,WAAW,CACZ,CAAA;gBACH,CAAC;YACH,CAAC,CAAA;YAED,OAAO,WAAW,CAAA;QACpB,CAAC;IACH,CAAC;CACF,CAAC,CAAA;AA1DS,QAAA,0BAA0B,8BA0DnC","sourcesContent":["import { defaultFieldResolver, GraphQLSchema } from 'graphql'\nimport gql from 'graphql-tag'\n\nimport { getDirective, MapperKind, mapSchema } from '@graphql-tools/utils'\nimport { checkPermission } from '../../utils/check-permission'\n\nprocess['PRIVILEGES'] = {}\n\nconst DIRECTIVE = 'privilege'\n\nexport const privilegeDirectiveTypeDefs = gql`\n directive @privilege(\n category: String\n privilege: String\n domainOwnerGranted: Boolean\n superUserGranted: Boolean\n ) on FIELD_DEFINITION\n`\nexport const privilegeDirectiveResolver = (schema: GraphQLSchema) =>\n mapSchema(schema, {\n [MapperKind.OBJECT_FIELD]: (fieldConfig, fieldName, typeName, schema) => {\n const privilegeDirective = getDirective(schema, fieldConfig, DIRECTIVE)?.[0]\n if (privilegeDirective) {\n const { resolve = defaultFieldResolver, args } = fieldConfig\n\n if (!args) {\n throw new Error(`Unexpected Error. args should be defined in @privilege directive for field ${fieldName}.`)\n }\n\n const { domainOwnerGranted, superUserGranted, category, privilege } = privilegeDirective\n if (category && privilege) {\n process['PRIVILEGES'][`${category} ${privilege}`] = [category, privilege]\n }\n\n // 필드의 기존 description 가져오기\n const existingDescription = fieldConfig.description || ''\n\n // 권한 정보를 포함한 새로운 description 생성\n const privilegeDescription =\n `\\n\\n🔒 Requires privilege: ${category}:${privilege}` +\n (domainOwnerGranted ? ', Domain ownership' : '') +\n (superUserGranted ? ', System ownership' : '')\n\n // 기존 description과 결합\n fieldConfig.description = `${existingDescription} ${privilegeDescription}`.trim()\n\n fieldConfig.resolve = async function (source, args, context, info) {\n const { domain, user, unsafeIP, prohibitedPrivileges } = context.state\n\n if (\n await checkPermission(\n {\n category,\n privilege,\n owner: domainOwnerGranted,\n super: superUserGranted\n },\n user,\n domain,\n unsafeIP,\n prohibitedPrivileges\n )\n ) {\n return await resolve.call(this, source, args, context, info)\n } else {\n throw new Error(\n `Unauthorized! ${\n category && privilege ? category + ':' + privilege + ' privilege' : 'ownership granted'\n } required`\n )\n }\n }\n\n return fieldConfig\n }\n }\n })\n"]}
1
+ {"version":3,"file":"privilege-directive.js","sourceRoot":"","sources":["../../../server/service/privilege/privilege-directive.ts"],"names":[],"mappings":";;;;AAAA,qCAA6D;AAC7D,sEAA6B;AAE7B,gDAA0E;AAC1E,yEAAiE;AAEjE,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,CAAA;AAE1B,MAAM,SAAS,GAAG,WAAW,CAAA;AAEhB,QAAA,0BAA0B,GAAG,IAAA,qBAAG,EAAA;;;;;;;CAO5C,CAAA;AACM,MAAM,0BAA0B,GAAG,CAAC,MAAqB,EAAE,EAAE,CAClE,IAAA,iBAAS,EAAC,MAAM,EAAE;IAChB,CAAC,kBAAU,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;;QACtE,MAAM,kBAAkB,GAAG,MAAA,IAAA,oBAAY,EAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,0CAAG,CAAC,CAAC,CAAA;QAC5E,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,EAAE,OAAO,GAAG,8BAAoB,EAAE,IAAI,EAAE,GAAG,WAAW,CAAA;YAE5D,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,8EAA8E,SAAS,GAAG,CAAC,CAAA;YAC7G,CAAC;YAED,MAAM,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,kBAAkB,CAAA;YACxF,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;gBAC1B,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,QAAQ,IAAI,SAAS,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;YAC3E,CAAC;YAED,0BAA0B;YAC1B,MAAM,mBAAmB,GAAG,WAAW,CAAC,WAAW,IAAI,EAAE,CAAA;YAEzD,gCAAgC;YAChC,MAAM,oBAAoB,GACxB,8BAA8B,QAAQ,IAAI,SAAS,EAAE;gBACrD,CAAC,kBAAkB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,CAAC,gBAAgB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;YAEhD,qBAAqB;YACrB,WAAW,CAAC,WAAW,GAAG,GAAG,mBAAmB,IAAI,oBAAoB,EAAE,CAAC,IAAI,EAAE,CAAA;YAEjF,WAAW,CAAC,OAAO,GAAG,KAAK,WAAW,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI;gBAC/D,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;gBAEtE,IACE,MAAM,IAAA,qCAAe,EACnB;oBACE,QAAQ;oBACR,SAAS;oBACT,KAAK,EAAE,kBAAkB;oBACzB,KAAK,EAAE,gBAAgB;iBACxB,EACD,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,oBAAoB,CACrB,EACD,CAAC;oBACD,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;gBAC9D,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CACb,iBACE,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,QAAQ,GAAG,GAAG,GAAG,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,mBACtE,WAAW,CACZ,CAAA;gBACH,CAAC;YACH,CAAC,CAAA;YAED,OAAO,WAAW,CAAA;QACpB,CAAC;IACH,CAAC;CACF,CAAC,CAAA;AA1DS,QAAA,0BAA0B,8BA0DnC","sourcesContent":["import { defaultFieldResolver, GraphQLSchema } from 'graphql'\nimport gql from 'graphql-tag'\n\nimport { getDirective, MapperKind, mapSchema } from '@graphql-tools/utils'\nimport { checkPermission } from '../../utils/check-permission.js'\n\nprocess['PRIVILEGES'] = {}\n\nconst DIRECTIVE = 'privilege'\n\nexport const privilegeDirectiveTypeDefs = gql`\n directive @privilege(\n category: String\n privilege: String\n domainOwnerGranted: Boolean\n superUserGranted: Boolean\n ) on FIELD_DEFINITION\n`\nexport const privilegeDirectiveResolver = (schema: GraphQLSchema) =>\n mapSchema(schema, {\n [MapperKind.OBJECT_FIELD]: (fieldConfig, fieldName, typeName, schema) => {\n const privilegeDirective = getDirective(schema, fieldConfig, DIRECTIVE)?.[0]\n if (privilegeDirective) {\n const { resolve = defaultFieldResolver, args } = fieldConfig\n\n if (!args) {\n throw new Error(`Unexpected Error. args should be defined in @privilege directive for field ${fieldName}.`)\n }\n\n const { domainOwnerGranted, superUserGranted, category, privilege } = privilegeDirective\n if (category && privilege) {\n process['PRIVILEGES'][`${category} ${privilege}`] = [category, privilege]\n }\n\n // 필드의 기존 description 가져오기\n const existingDescription = fieldConfig.description || ''\n\n // 권한 정보를 포함한 새로운 description 생성\n const privilegeDescription =\n `\\n\\n🔒 Requires privilege: ${category}:${privilege}` +\n (domainOwnerGranted ? ', Domain ownership' : '') +\n (superUserGranted ? ', System ownership' : '')\n\n // 기존 description과 결합\n fieldConfig.description = `${existingDescription} ${privilegeDescription}`.trim()\n\n fieldConfig.resolve = async function (source, args, context, info) {\n const { domain, user, unsafeIP, prohibitedPrivileges } = context.state\n\n if (\n await checkPermission(\n {\n category,\n privilege,\n owner: domainOwnerGranted,\n super: superUserGranted\n },\n user,\n domain,\n unsafeIP,\n prohibitedPrivileges\n )\n ) {\n return await resolve.call(this, source, args, context, info)\n } else {\n throw new Error(\n `Unauthorized! ${\n category && privilege ? category + ':' + privilege + ' privilege' : 'ownership granted'\n } required`\n )\n }\n }\n\n return fieldConfig\n }\n }\n })\n"]}
@@ -1,5 +1,5 @@
1
- import { Privilege } from './privilege';
2
- import { NewPrivilege, PrivilegePatch } from './privilege-types';
1
+ import { Privilege } from './privilege.js';
2
+ import { NewPrivilege, PrivilegePatch } from './privilege-types.js';
3
3
  export declare class PrivilegeMutation {
4
4
  synchronizePrivilegeMaster(privilege: NewPrivilege, context: ResolverContext): Promise<Boolean>;
5
5
  createPrivilege(privilege: NewPrivilege, context: ResolverContext): Promise<Privilege>;
@@ -5,13 +5,13 @@ const tslib_1 = require("tslib");
5
5
  const type_graphql_1 = require("type-graphql");
6
6
  const typeorm_1 = require("typeorm");
7
7
  const shell_1 = require("@things-factory/shell");
8
- const role_1 = require("../role/role");
9
- const privilege_1 = require("./privilege");
10
- const privilege_types_1 = require("./privilege-types");
8
+ const role_js_1 = require("../role/role.js");
9
+ const privilege_js_1 = require("./privilege.js");
10
+ const privilege_types_js_1 = require("./privilege-types.js");
11
11
  let PrivilegeMutation = class PrivilegeMutation {
12
12
  async synchronizePrivilegeMaster(privilege, context) {
13
13
  const privileges = process['PRIVILEGES'];
14
- const privilegeRepository = (0, shell_1.getRepository)(privilege_1.Privilege);
14
+ const privilegeRepository = (0, shell_1.getRepository)(privilege_js_1.Privilege);
15
15
  for (const [category, name] of Object.values(privileges)) {
16
16
  if (0 == (await privilegeRepository.count({ where: { category, name } }))) {
17
17
  await privilegeRepository.save({ category, name });
@@ -21,14 +21,14 @@ let PrivilegeMutation = class PrivilegeMutation {
21
21
  }
22
22
  async createPrivilege(privilege, context) {
23
23
  if (privilege.roles && privilege.roles.length) {
24
- privilege.roles = await (0, shell_1.getRepository)(role_1.Role).findBy({
24
+ privilege.roles = await (0, shell_1.getRepository)(role_js_1.Role).findBy({
25
25
  id: (0, typeorm_1.In)(privilege.roles.map((role) => role.id))
26
26
  });
27
27
  }
28
- return await (0, shell_1.getRepository)(privilege_1.Privilege).save(Object.assign({ creator: context.state.user, updater: context.state.user }, privilege));
28
+ return await (0, shell_1.getRepository)(privilege_js_1.Privilege).save(Object.assign({ creator: context.state.user, updater: context.state.user }, privilege));
29
29
  }
30
30
  async updatePrivilege(name, category, patch, context) {
31
- const repository = (0, shell_1.getRepository)(privilege_1.Privilege);
31
+ const repository = (0, shell_1.getRepository)(privilege_js_1.Privilege);
32
32
  const privilege = await repository.findOne({
33
33
  where: { name, category },
34
34
  relations: ['roles', 'creator', 'updater']
@@ -41,10 +41,10 @@ let PrivilegeMutation = class PrivilegeMutation {
41
41
  }
42
42
  });
43
43
  }
44
- return await repository.save(Object.assign(Object.assign(Object.assign({}, privilege), patch), { roles: await (0, shell_1.getRepository)(role_1.Role).findByIds(roleIds), updater: context.state.user }));
44
+ return await repository.save(Object.assign(Object.assign(Object.assign({}, privilege), patch), { roles: await (0, shell_1.getRepository)(role_js_1.Role).findByIds(roleIds), updater: context.state.user }));
45
45
  }
46
46
  async deletePrivilege(name, category, context) {
47
- await (0, shell_1.getRepository)(privilege_1.Privilege).delete({ name, category });
47
+ await (0, shell_1.getRepository)(privilege_js_1.Privilege).delete({ name, category });
48
48
  return true;
49
49
  }
50
50
  };
@@ -57,27 +57,27 @@ tslib_1.__decorate([
57
57
  tslib_1.__param(0, (0, type_graphql_1.Arg)('privilege')),
58
58
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
59
59
  tslib_1.__metadata("design:type", Function),
60
- tslib_1.__metadata("design:paramtypes", [privilege_types_1.NewPrivilege, Object]),
60
+ tslib_1.__metadata("design:paramtypes", [privilege_types_js_1.NewPrivilege, Object]),
61
61
  tslib_1.__metadata("design:returntype", Promise)
62
62
  ], PrivilegeMutation.prototype, "synchronizePrivilegeMaster", null);
63
63
  tslib_1.__decorate([
64
64
  (0, type_graphql_1.Directive)('@privilege(superUserGranted:true)'),
65
- (0, type_graphql_1.Mutation)(returns => privilege_1.Privilege, { description: 'To create new privilege' }),
65
+ (0, type_graphql_1.Mutation)(returns => privilege_js_1.Privilege, { description: 'To create new privilege' }),
66
66
  tslib_1.__param(0, (0, type_graphql_1.Arg)('privilege')),
67
67
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
68
68
  tslib_1.__metadata("design:type", Function),
69
- tslib_1.__metadata("design:paramtypes", [privilege_types_1.NewPrivilege, Object]),
69
+ tslib_1.__metadata("design:paramtypes", [privilege_types_js_1.NewPrivilege, Object]),
70
70
  tslib_1.__metadata("design:returntype", Promise)
71
71
  ], PrivilegeMutation.prototype, "createPrivilege", null);
72
72
  tslib_1.__decorate([
73
73
  (0, type_graphql_1.Directive)('@privilege(superUserGranted:true)'),
74
- (0, type_graphql_1.Mutation)(returns => privilege_1.Privilege, { description: 'To modify privilege information' }),
74
+ (0, type_graphql_1.Mutation)(returns => privilege_js_1.Privilege, { description: 'To modify privilege information' }),
75
75
  tslib_1.__param(0, (0, type_graphql_1.Arg)('name')),
76
76
  tslib_1.__param(1, (0, type_graphql_1.Arg)('category')),
77
77
  tslib_1.__param(2, (0, type_graphql_1.Arg)('patch')),
78
78
  tslib_1.__param(3, (0, type_graphql_1.Ctx)()),
79
79
  tslib_1.__metadata("design:type", Function),
80
- tslib_1.__metadata("design:paramtypes", [String, String, privilege_types_1.PrivilegePatch, Object]),
80
+ tslib_1.__metadata("design:paramtypes", [String, String, privilege_types_js_1.PrivilegePatch, Object]),
81
81
  tslib_1.__metadata("design:returntype", Promise)
82
82
  ], PrivilegeMutation.prototype, "updatePrivilege", null);
83
83
  tslib_1.__decorate([
@@ -91,6 +91,6 @@ tslib_1.__decorate([
91
91
  tslib_1.__metadata("design:returntype", Promise)
92
92
  ], PrivilegeMutation.prototype, "deletePrivilege", null);
93
93
  exports.PrivilegeMutation = PrivilegeMutation = tslib_1.__decorate([
94
- (0, type_graphql_1.Resolver)(privilege_1.Privilege)
94
+ (0, type_graphql_1.Resolver)(privilege_js_1.Privilege)
95
95
  ], PrivilegeMutation);
96
96
  //# sourceMappingURL=privilege-mutation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"privilege-mutation.js","sourceRoot":"","sources":["../../../server/service/privilege/privilege-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Mutation, Resolver, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { getRepository } from '@things-factory/shell'\n\nimport { Role } from '../role/role'\nimport { Privilege } from './privilege'\nimport { NewPrivilege, PrivilegePatch } from './privilege-types'\n\n@Resolver(Privilege)\nexport class PrivilegeMutation {\n @Directive('@privilege(superUserGranted:true)')\n @Mutation(returns => Boolean, {\n description: 'To synchronize privilege master from graphql directives. Only superuser is permitted.'\n })\n async synchronizePrivilegeMaster(\n @Arg('privilege') privilege: NewPrivilege,\n @Ctx() context: ResolverContext\n ): Promise<Boolean> {\n const privileges = process['PRIVILEGES']\n const privilegeRepository = getRepository(Privilege)\n\n for (const [category, name] of Object.values(privileges as [string, string])) {\n if (0 == (await privilegeRepository.count({ where: { category, name } }))) {\n await privilegeRepository.save({ category, name })\n }\n }\n\n return true\n }\n\n @Directive('@privilege(superUserGranted:true)')\n @Mutation(returns => Privilege, { description: 'To create new privilege' })\n async createPrivilege(\n @Arg('privilege') privilege: NewPrivilege,\n @Ctx() context: ResolverContext\n ): Promise<Privilege> {\n if (privilege.roles && privilege.roles.length) {\n privilege.roles = await getRepository(Role).findBy({\n id: In(privilege.roles.map((role: Partial<Role>) => role.id))\n })\n }\n\n return await getRepository(Privilege).save({\n creator: context.state.user,\n updater: context.state.user,\n ...privilege\n })\n }\n\n @Directive('@privilege(superUserGranted:true)')\n @Mutation(returns => Privilege, { description: 'To modify privilege information' })\n async updatePrivilege(\n @Arg('name') name: string,\n @Arg('category') category: string,\n @Arg('patch') patch: PrivilegePatch,\n @Ctx() context: ResolverContext\n ): Promise<Privilege> {\n const repository = getRepository(Privilege)\n const privilege = await repository.findOne({\n where: { name, category },\n relations: ['roles', 'creator', 'updater']\n })\n\n const roleIds = privilege.roles.map(role => role.id)\n if (patch.roles && patch.roles.length) {\n patch.roles.forEach(({ id }) => {\n if (!roleIds.includes(id)) {\n roleIds.push(id)\n }\n })\n }\n\n return await repository.save({\n ...privilege,\n ...patch,\n roles: await getRepository(Role).findByIds(roleIds),\n updater: context.state.user\n })\n }\n\n @Directive('@privilege(superUserGranted:true)')\n @Mutation(returns => Boolean, { description: 'To delete privilege' })\n async deletePrivilege(\n @Arg('name') name: string,\n @Arg('category') category: string,\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n await getRepository(Privilege).delete({ name, category })\n return true\n }\n}\n"]}
1
+ {"version":3,"file":"privilege-mutation.js","sourceRoot":"","sources":["../../../server/service/privilege/privilege-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Mutation, Resolver, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { getRepository } from '@things-factory/shell'\n\nimport { Role } from '../role/role.js'\nimport { Privilege } from './privilege.js'\nimport { NewPrivilege, PrivilegePatch } from './privilege-types.js'\n\n@Resolver(Privilege)\nexport class PrivilegeMutation {\n @Directive('@privilege(superUserGranted:true)')\n @Mutation(returns => Boolean, {\n description: 'To synchronize privilege master from graphql directives. Only superuser is permitted.'\n })\n async synchronizePrivilegeMaster(\n @Arg('privilege') privilege: NewPrivilege,\n @Ctx() context: ResolverContext\n ): Promise<Boolean> {\n const privileges = process['PRIVILEGES']\n const privilegeRepository = getRepository(Privilege)\n\n for (const [category, name] of Object.values(privileges as [string, string])) {\n if (0 == (await privilegeRepository.count({ where: { category, name } }))) {\n await privilegeRepository.save({ category, name })\n }\n }\n\n return true\n }\n\n @Directive('@privilege(superUserGranted:true)')\n @Mutation(returns => Privilege, { description: 'To create new privilege' })\n async createPrivilege(\n @Arg('privilege') privilege: NewPrivilege,\n @Ctx() context: ResolverContext\n ): Promise<Privilege> {\n if (privilege.roles && privilege.roles.length) {\n privilege.roles = await getRepository(Role).findBy({\n id: In(privilege.roles.map((role: Partial<Role>) => role.id))\n })\n }\n\n return await getRepository(Privilege).save({\n creator: context.state.user,\n updater: context.state.user,\n ...privilege\n })\n }\n\n @Directive('@privilege(superUserGranted:true)')\n @Mutation(returns => Privilege, { description: 'To modify privilege information' })\n async updatePrivilege(\n @Arg('name') name: string,\n @Arg('category') category: string,\n @Arg('patch') patch: PrivilegePatch,\n @Ctx() context: ResolverContext\n ): Promise<Privilege> {\n const repository = getRepository(Privilege)\n const privilege = await repository.findOne({\n where: { name, category },\n relations: ['roles', 'creator', 'updater']\n })\n\n const roleIds = privilege.roles.map(role => role.id)\n if (patch.roles && patch.roles.length) {\n patch.roles.forEach(({ id }) => {\n if (!roleIds.includes(id)) {\n roleIds.push(id)\n }\n })\n }\n\n return await repository.save({\n ...privilege,\n ...patch,\n roles: await getRepository(Role).findByIds(roleIds),\n updater: context.state.user\n })\n }\n\n @Directive('@privilege(superUserGranted:true)')\n @Mutation(returns => Boolean, { description: 'To delete privilege' })\n async deletePrivilege(\n @Arg('name') name: string,\n @Arg('category') category: string,\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n await getRepository(Privilege).delete({ name, category })\n return true\n }\n}\n"]}
@@ -1,8 +1,8 @@
1
1
  import { Domain, ListParam } from '@things-factory/shell';
2
- import { Role } from '../role/role';
3
- import { User } from '../user/user';
4
- import { Privilege } from './privilege';
5
- import { PrivilegeList } from './privilege-types';
2
+ import { Role } from '../role/role.js';
3
+ import { User } from '../user/user.js';
4
+ import { Privilege } from './privilege.js';
5
+ import { PrivilegeList } from './privilege-types.js';
6
6
  export declare class PrivilegeQuery {
7
7
  privileges(params: ListParam, context: ResolverContext): Promise<PrivilegeList>;
8
8
  hasPrivilege(privilege: string, category: string, context: ResolverContext): Promise<Boolean>;