@things-factory/auth-base 9.0.0-beta.0 → 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 (332) 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 -4
  10. package/dist-client/index.js +4 -4
  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-server/controllers/auth.d.ts +5 -5
  18. package/dist-server/controllers/auth.js +5 -5
  19. package/dist-server/controllers/auth.js.map +1 -1
  20. package/dist-server/controllers/change-pwd.js +19 -19
  21. package/dist-server/controllers/change-pwd.js.map +1 -1
  22. package/dist-server/controllers/checkin.js +4 -4
  23. package/dist-server/controllers/checkin.js.map +1 -1
  24. package/dist-server/controllers/delete-user.js +9 -9
  25. package/dist-server/controllers/delete-user.js.map +1 -1
  26. package/dist-server/controllers/invitation.js +19 -19
  27. package/dist-server/controllers/invitation.js.map +1 -1
  28. package/dist-server/controllers/profile.d.ts +5 -5
  29. package/dist-server/controllers/profile.js +10 -10
  30. package/dist-server/controllers/profile.js.map +1 -1
  31. package/dist-server/controllers/reset-password.js +24 -24
  32. package/dist-server/controllers/reset-password.js.map +1 -1
  33. package/dist-server/controllers/signin.d.ts +1 -1
  34. package/dist-server/controllers/signin.js +24 -24
  35. package/dist-server/controllers/signin.js.map +1 -1
  36. package/dist-server/controllers/signup.d.ts +1 -1
  37. package/dist-server/controllers/signup.js +13 -13
  38. package/dist-server/controllers/signup.js.map +1 -1
  39. package/dist-server/controllers/unlock-user.js +17 -17
  40. package/dist-server/controllers/unlock-user.js.map +1 -1
  41. package/dist-server/controllers/utils/password-rule.js +4 -4
  42. package/dist-server/controllers/utils/password-rule.js.map +1 -1
  43. package/dist-server/controllers/utils/save-invitation-token.d.ts +1 -1
  44. package/dist-server/controllers/utils/save-invitation-token.js +2 -2
  45. package/dist-server/controllers/utils/save-invitation-token.js.map +1 -1
  46. package/dist-server/controllers/utils/save-verification-token.d.ts +1 -1
  47. package/dist-server/controllers/utils/save-verification-token.js +3 -3
  48. package/dist-server/controllers/utils/save-verification-token.js.map +1 -1
  49. package/dist-server/controllers/verification.js +23 -23
  50. package/dist-server/controllers/verification.js.map +1 -1
  51. package/dist-server/errors/auth-error.js +1 -1
  52. package/dist-server/errors/auth-error.js.map +1 -1
  53. package/dist-server/errors/index.d.ts +2 -2
  54. package/dist-server/errors/index.js +2 -2
  55. package/dist-server/errors/index.js.map +1 -1
  56. package/dist-server/errors/user-domain-not-match-error.d.ts +1 -1
  57. package/dist-server/errors/user-domain-not-match-error.js +8 -8
  58. package/dist-server/errors/user-domain-not-match-error.js.map +1 -1
  59. package/dist-server/index.d.ts +16 -16
  60. package/dist-server/index.js +18 -18
  61. package/dist-server/index.js.map +1 -1
  62. package/dist-server/middlewares/authenticate-401-middleware.js +11 -11
  63. package/dist-server/middlewares/authenticate-401-middleware.js.map +1 -1
  64. package/dist-server/middlewares/domain-authenticate-middleware.d.ts +1 -1
  65. package/dist-server/middlewares/domain-authenticate-middleware.js +9 -9
  66. package/dist-server/middlewares/domain-authenticate-middleware.js.map +1 -1
  67. package/dist-server/middlewares/graphql-authenticate-middleware.js +4 -4
  68. package/dist-server/middlewares/graphql-authenticate-middleware.js.map +1 -1
  69. package/dist-server/middlewares/index.d.ts +5 -5
  70. package/dist-server/middlewares/index.js +18 -18
  71. package/dist-server/middlewares/index.js.map +1 -1
  72. package/dist-server/middlewares/jwt-authenticate-middleware.js +15 -15
  73. package/dist-server/middlewares/jwt-authenticate-middleware.js.map +1 -1
  74. package/dist-server/middlewares/signin-middleware.js +2 -6
  75. package/dist-server/middlewares/signin-middleware.js.map +1 -1
  76. package/dist-server/middlewares/verify-recaptcha-middleware.d.ts +3 -0
  77. package/dist-server/middlewares/verify-recaptcha-middleware.js +95 -0
  78. package/dist-server/middlewares/verify-recaptcha-middleware.js.map +1 -0
  79. package/dist-server/middlewares/webauthn-middleware.js +16 -13
  80. package/dist-server/middlewares/webauthn-middleware.js.map +1 -1
  81. package/dist-server/migrations/1548206416130-SeedUser.js +6 -6
  82. package/dist-server/migrations/1548206416130-SeedUser.js.map +1 -1
  83. package/dist-server/migrations/1566805283882-SeedPrivilege.js +2 -2
  84. package/dist-server/migrations/1566805283882-SeedPrivilege.js.map +1 -1
  85. package/dist-server/migrations/index.js.map +1 -1
  86. package/dist-server/router/auth-checkin-router.js +10 -10
  87. package/dist-server/router/auth-checkin-router.js.map +1 -1
  88. package/dist-server/router/auth-private-process-router.js +15 -15
  89. package/dist-server/router/auth-private-process-router.js.map +1 -1
  90. package/dist-server/router/auth-public-process-router.js +30 -30
  91. package/dist-server/router/auth-public-process-router.js.map +1 -1
  92. package/dist-server/router/auth-signin-router.js +12 -6
  93. package/dist-server/router/auth-signin-router.js.map +1 -1
  94. package/dist-server/router/auth-signup-router.js +13 -9
  95. package/dist-server/router/auth-signup-router.js.map +1 -1
  96. package/dist-server/router/index.d.ts +9 -9
  97. package/dist-server/router/index.js +9 -9
  98. package/dist-server/router/index.js.map +1 -1
  99. package/dist-server/router/oauth2/index.d.ts +2 -2
  100. package/dist-server/router/oauth2/index.js +2 -2
  101. package/dist-server/router/oauth2/index.js.map +1 -1
  102. package/dist-server/router/oauth2/oauth2-authorize-router.js +6 -6
  103. package/dist-server/router/oauth2/oauth2-authorize-router.js.map +1 -1
  104. package/dist-server/router/oauth2/oauth2-router.d.ts +1 -1
  105. package/dist-server/router/oauth2/oauth2-router.js +21 -21
  106. package/dist-server/router/oauth2/oauth2-router.js.map +1 -1
  107. package/dist-server/router/oauth2/oauth2-server.js +21 -21
  108. package/dist-server/router/oauth2/oauth2-server.js.map +1 -1
  109. package/dist-server/router/site-root-router.js +4 -4
  110. package/dist-server/router/site-root-router.js.map +1 -1
  111. package/dist-server/router/webauthn-router.js +9 -9
  112. package/dist-server/router/webauthn-router.js.map +1 -1
  113. package/dist-server/routes.js +19 -19
  114. package/dist-server/routes.js.map +1 -1
  115. package/dist-server/service/app-binding/app-binding-mutation.js +4 -4
  116. package/dist-server/service/app-binding/app-binding-mutation.js.map +1 -1
  117. package/dist-server/service/app-binding/app-binding-query.d.ts +4 -4
  118. package/dist-server/service/app-binding/app-binding-query.js +22 -22
  119. package/dist-server/service/app-binding/app-binding-query.js.map +1 -1
  120. package/dist-server/service/app-binding/app-binding-types.d.ts +1 -1
  121. package/dist-server/service/app-binding/app-binding-types.js +2 -2
  122. package/dist-server/service/app-binding/app-binding-types.js.map +1 -1
  123. package/dist-server/service/app-binding/app-binding.d.ts +2 -2
  124. package/dist-server/service/app-binding/app-binding.js +4 -4
  125. package/dist-server/service/app-binding/app-binding.js.map +1 -1
  126. package/dist-server/service/app-binding/index.d.ts +2 -2
  127. package/dist-server/service/app-binding/index.js +3 -3
  128. package/dist-server/service/app-binding/index.js.map +1 -1
  129. package/dist-server/service/appliance/appliance-mutation.d.ts +2 -2
  130. package/dist-server/service/appliance/appliance-mutation.js +21 -21
  131. package/dist-server/service/appliance/appliance-mutation.js.map +1 -1
  132. package/dist-server/service/appliance/appliance-query.d.ts +3 -3
  133. package/dist-server/service/appliance/appliance-query.js +17 -17
  134. package/dist-server/service/appliance/appliance-query.js.map +1 -1
  135. package/dist-server/service/appliance/appliance-types.d.ts +1 -1
  136. package/dist-server/service/appliance/appliance-types.js +2 -2
  137. package/dist-server/service/appliance/appliance-types.js.map +1 -1
  138. package/dist-server/service/appliance/appliance.d.ts +1 -1
  139. package/dist-server/service/appliance/appliance.js +8 -8
  140. package/dist-server/service/appliance/appliance.js.map +1 -1
  141. package/dist-server/service/appliance/index.d.ts +3 -3
  142. package/dist-server/service/appliance/index.js +5 -5
  143. package/dist-server/service/appliance/index.js.map +1 -1
  144. package/dist-server/service/application/application-mutation.d.ts +8 -8
  145. package/dist-server/service/application/application-mutation.js +20 -20
  146. package/dist-server/service/application/application-mutation.js.map +1 -1
  147. package/dist-server/service/application/application-query.d.ts +2 -2
  148. package/dist-server/service/application/application-query.js +16 -16
  149. package/dist-server/service/application/application-query.js.map +1 -1
  150. package/dist-server/service/application/application-types.d.ts +1 -1
  151. package/dist-server/service/application/application-types.js +4 -4
  152. package/dist-server/service/application/application-types.js.map +1 -1
  153. package/dist-server/service/application/application.d.ts +1 -1
  154. package/dist-server/service/application/application.js +12 -12
  155. package/dist-server/service/application/application.js.map +1 -1
  156. package/dist-server/service/application/index.d.ts +3 -3
  157. package/dist-server/service/application/index.js +5 -5
  158. package/dist-server/service/application/index.js.map +1 -1
  159. package/dist-server/service/auth-provider/auth-provider-mutation.d.ts +2 -2
  160. package/dist-server/service/auth-provider/auth-provider-mutation.js +20 -20
  161. package/dist-server/service/auth-provider/auth-provider-mutation.js.map +1 -1
  162. package/dist-server/service/auth-provider/auth-provider-query.d.ts +3 -3
  163. package/dist-server/service/auth-provider/auth-provider-query.js +20 -20
  164. package/dist-server/service/auth-provider/auth-provider-query.js.map +1 -1
  165. package/dist-server/service/auth-provider/auth-provider-type.d.ts +1 -1
  166. package/dist-server/service/auth-provider/auth-provider-type.js +2 -2
  167. package/dist-server/service/auth-provider/auth-provider-type.js.map +1 -1
  168. package/dist-server/service/auth-provider/auth-provider.d.ts +3 -3
  169. package/dist-server/service/auth-provider/auth-provider.js +12 -12
  170. package/dist-server/service/auth-provider/auth-provider.js.map +1 -1
  171. package/dist-server/service/auth-provider/index.d.ts +3 -3
  172. package/dist-server/service/auth-provider/index.js +5 -5
  173. package/dist-server/service/auth-provider/index.js.map +1 -1
  174. package/dist-server/service/domain-generator/domain-generator-mutation.d.ts +1 -1
  175. package/dist-server/service/domain-generator/domain-generator-mutation.js +11 -11
  176. package/dist-server/service/domain-generator/domain-generator-mutation.js.map +1 -1
  177. package/dist-server/service/domain-generator/domain-generator-types.d.ts +1 -1
  178. package/dist-server/service/domain-generator/domain-generator-types.js +3 -3
  179. package/dist-server/service/domain-generator/domain-generator-types.js.map +1 -1
  180. package/dist-server/service/domain-generator/index.d.ts +1 -1
  181. package/dist-server/service/domain-generator/index.js +2 -2
  182. package/dist-server/service/domain-generator/index.js.map +1 -1
  183. package/dist-server/service/granted-role/granted-role-mutation.d.ts +3 -3
  184. package/dist-server/service/granted-role/granted-role-mutation.js +17 -17
  185. package/dist-server/service/granted-role/granted-role-mutation.js.map +1 -1
  186. package/dist-server/service/granted-role/granted-role-query.d.ts +2 -2
  187. package/dist-server/service/granted-role/granted-role-query.js +13 -13
  188. package/dist-server/service/granted-role/granted-role-query.js.map +1 -1
  189. package/dist-server/service/granted-role/granted-role.d.ts +1 -1
  190. package/dist-server/service/granted-role/granted-role.js +3 -3
  191. package/dist-server/service/granted-role/granted-role.js.map +1 -1
  192. package/dist-server/service/granted-role/index.d.ts +3 -3
  193. package/dist-server/service/granted-role/index.js +5 -5
  194. package/dist-server/service/granted-role/index.js.map +1 -1
  195. package/dist-server/service/index.d.ts +25 -25
  196. package/dist-server/service/index.js +70 -70
  197. package/dist-server/service/index.js.map +1 -1
  198. package/dist-server/service/invitation/index.d.ts +3 -3
  199. package/dist-server/service/invitation/index.js +5 -5
  200. package/dist-server/service/invitation/index.js.map +1 -1
  201. package/dist-server/service/invitation/invitation-mutation.d.ts +2 -2
  202. package/dist-server/service/invitation/invitation-mutation.js +10 -10
  203. package/dist-server/service/invitation/invitation-mutation.js.map +1 -1
  204. package/dist-server/service/invitation/invitation-query.d.ts +1 -1
  205. package/dist-server/service/invitation/invitation-query.js +7 -7
  206. package/dist-server/service/invitation/invitation-query.js.map +1 -1
  207. package/dist-server/service/invitation/invitation-types.d.ts +1 -1
  208. package/dist-server/service/invitation/invitation-types.js +2 -2
  209. package/dist-server/service/invitation/invitation-types.js.map +1 -1
  210. package/dist-server/service/invitation/invitation.d.ts +1 -1
  211. package/dist-server/service/invitation/invitation.js +5 -5
  212. package/dist-server/service/invitation/invitation.js.map +1 -1
  213. package/dist-server/service/login-history/index.d.ts +2 -2
  214. package/dist-server/service/login-history/index.js +4 -4
  215. package/dist-server/service/login-history/index.js.map +1 -1
  216. package/dist-server/service/login-history/login-history-query.d.ts +3 -3
  217. package/dist-server/service/login-history/login-history-query.js +11 -11
  218. package/dist-server/service/login-history/login-history-query.js.map +1 -1
  219. package/dist-server/service/login-history/login-history-type.d.ts +1 -1
  220. package/dist-server/service/login-history/login-history-type.js +2 -2
  221. package/dist-server/service/login-history/login-history-type.js.map +1 -1
  222. package/dist-server/service/login-history/login-history.d.ts +1 -1
  223. package/dist-server/service/login-history/login-history.js +4 -4
  224. package/dist-server/service/login-history/login-history.js.map +1 -1
  225. package/dist-server/service/partner/index.d.ts +3 -3
  226. package/dist-server/service/partner/index.js +5 -5
  227. package/dist-server/service/partner/index.js.map +1 -1
  228. package/dist-server/service/partner/partner-mutation.js +8 -8
  229. package/dist-server/service/partner/partner-mutation.js.map +1 -1
  230. package/dist-server/service/partner/partner-query.d.ts +3 -3
  231. package/dist-server/service/partner/partner-query.js +17 -17
  232. package/dist-server/service/partner/partner-query.js.map +1 -1
  233. package/dist-server/service/partner/partner-types.d.ts +1 -1
  234. package/dist-server/service/partner/partner-types.js +2 -2
  235. package/dist-server/service/partner/partner-types.js.map +1 -1
  236. package/dist-server/service/partner/partner.d.ts +1 -1
  237. package/dist-server/service/partner/partner.js +5 -5
  238. package/dist-server/service/partner/partner.js.map +1 -1
  239. package/dist-server/service/password-history/index.d.ts +1 -1
  240. package/dist-server/service/password-history/index.js +2 -2
  241. package/dist-server/service/password-history/index.js.map +1 -1
  242. package/dist-server/service/privilege/index.d.ts +3 -3
  243. package/dist-server/service/privilege/index.js +5 -5
  244. package/dist-server/service/privilege/index.js.map +1 -1
  245. package/dist-server/service/privilege/privilege-directive.js +2 -2
  246. package/dist-server/service/privilege/privilege-directive.js.map +1 -1
  247. package/dist-server/service/privilege/privilege-mutation.d.ts +2 -2
  248. package/dist-server/service/privilege/privilege-mutation.js +15 -15
  249. package/dist-server/service/privilege/privilege-mutation.js.map +1 -1
  250. package/dist-server/service/privilege/privilege-query.d.ts +4 -4
  251. package/dist-server/service/privilege/privilege-query.js +20 -20
  252. package/dist-server/service/privilege/privilege-query.js.map +1 -1
  253. package/dist-server/service/privilege/privilege-types.d.ts +1 -1
  254. package/dist-server/service/privilege/privilege-types.js +2 -2
  255. package/dist-server/service/privilege/privilege-types.js.map +1 -1
  256. package/dist-server/service/privilege/privilege.d.ts +2 -2
  257. package/dist-server/service/privilege/privilege.js +10 -10
  258. package/dist-server/service/privilege/privilege.js.map +1 -1
  259. package/dist-server/service/role/index.d.ts +3 -3
  260. package/dist-server/service/role/index.js +5 -5
  261. package/dist-server/service/role/index.js.map +1 -1
  262. package/dist-server/service/role/role-mutation.d.ts +2 -2
  263. package/dist-server/service/role/role-mutation.js +19 -19
  264. package/dist-server/service/role/role-mutation.js.map +1 -1
  265. package/dist-server/service/role/role-query.d.ts +4 -4
  266. package/dist-server/service/role/role-query.js +29 -29
  267. package/dist-server/service/role/role-query.js.map +1 -1
  268. package/dist-server/service/role/role-types.d.ts +1 -1
  269. package/dist-server/service/role/role-types.js +2 -2
  270. package/dist-server/service/role/role-types.js.map +1 -1
  271. package/dist-server/service/role/role.d.ts +2 -2
  272. package/dist-server/service/role/role.js +12 -12
  273. package/dist-server/service/role/role.js.map +1 -1
  274. package/dist-server/service/user/domain-query.d.ts +1 -1
  275. package/dist-server/service/user/domain-query.js +3 -3
  276. package/dist-server/service/user/domain-query.js.map +1 -1
  277. package/dist-server/service/user/index.d.ts +4 -4
  278. package/dist-server/service/user/index.js +6 -6
  279. package/dist-server/service/user/index.js.map +1 -1
  280. package/dist-server/service/user/user-mutation.d.ts +3 -3
  281. package/dist-server/service/user/user-mutation.js +42 -42
  282. package/dist-server/service/user/user-mutation.js.map +1 -1
  283. package/dist-server/service/user/user-query.d.ts +3 -3
  284. package/dist-server/service/user/user-query.js +21 -21
  285. package/dist-server/service/user/user-query.js.map +1 -1
  286. package/dist-server/service/user/user-types.d.ts +1 -1
  287. package/dist-server/service/user/user-types.js +2 -2
  288. package/dist-server/service/user/user-types.js.map +1 -1
  289. package/dist-server/service/user/user.d.ts +3 -3
  290. package/dist-server/service/user/user.js +40 -40
  291. package/dist-server/service/user/user.js.map +1 -1
  292. package/dist-server/service/users-auth-providers/index.d.ts +1 -1
  293. package/dist-server/service/users-auth-providers/index.js +2 -2
  294. package/dist-server/service/users-auth-providers/index.js.map +1 -1
  295. package/dist-server/service/users-auth-providers/users-auth-providers.d.ts +2 -2
  296. package/dist-server/service/users-auth-providers/users-auth-providers.js +8 -8
  297. package/dist-server/service/users-auth-providers/users-auth-providers.js.map +1 -1
  298. package/dist-server/service/verification-token/index.d.ts +1 -1
  299. package/dist-server/service/verification-token/index.js +2 -2
  300. package/dist-server/service/verification-token/index.js.map +1 -1
  301. package/dist-server/service/web-auth-credential/index.d.ts +1 -1
  302. package/dist-server/service/web-auth-credential/index.js +2 -2
  303. package/dist-server/service/web-auth-credential/index.js.map +1 -1
  304. package/dist-server/service/web-auth-credential/web-auth-credential.d.ts +1 -1
  305. package/dist-server/service/web-auth-credential/web-auth-credential.js +10 -10
  306. package/dist-server/service/web-auth-credential/web-auth-credential.js.map +1 -1
  307. package/dist-server/tsconfig.tsbuildinfo +1 -1
  308. package/dist-server/types.d.ts +1 -1
  309. package/dist-server/types.js.map +1 -1
  310. package/dist-server/utils/access-token-cookie.js +2 -2
  311. package/dist-server/utils/access-token-cookie.js.map +1 -1
  312. package/dist-server/utils/check-permission.d.ts +2 -2
  313. package/dist-server/utils/check-permission.js +3 -3
  314. package/dist-server/utils/check-permission.js.map +1 -1
  315. package/dist-server/utils/check-user-belongs-domain.d.ts +1 -1
  316. package/dist-server/utils/check-user-belongs-domain.js +2 -2
  317. package/dist-server/utils/check-user-belongs-domain.js.map +1 -1
  318. package/dist-server/utils/check-user-has-role.d.ts +1 -1
  319. package/dist-server/utils/check-user-has-role.js +2 -2
  320. package/dist-server/utils/check-user-has-role.js.map +1 -1
  321. package/dist-server/utils/get-domain-users.d.ts +1 -1
  322. package/dist-server/utils/get-domain-users.js +2 -2
  323. package/dist-server/utils/get-domain-users.js.map +1 -1
  324. package/dist-server/utils/get-user-domains.d.ts +1 -1
  325. package/dist-server/utils/get-user-domains.js +4 -4
  326. package/dist-server/utils/get-user-domains.js.map +1 -1
  327. package/helps/config/recaptcha.ja.md +49 -0
  328. package/helps/config/recaptcha.ko.md +49 -0
  329. package/helps/config/recaptcha.md +49 -0
  330. package/helps/config/recaptcha.ms.md +49 -0
  331. package/helps/config/recaptcha.zh.md +49 -0
  332. package/package.json +9 -8
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../server/routes.ts"],"names":[],"mappings":"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","sourcesContent":["import { config } from '@things-factory/env'\n\nimport { domainAuthenticateMiddleware, jwtAuthenticateMiddleware } from './middlewares'\nimport {\n authCheckinRouter,\n authPrivateProcessRouter,\n authPublicProcessRouter,\n authSigninRouter,\n authSignupRouter,\n oauth2AuthorizeRouter,\n oauth2Router,\n pathBaseDomainRouter,\n siteRootRouter,\n webAuthnGlobalPublicRouter,\n webAuthnGlobalPrivateRouter\n} from './router'\n\nimport { setAccessTokenCookie } from './utils/access-token-cookie'\n\nconst isPathBaseDomain = !config.get('subdomain') && !config.get('useVirtualHostBasedDomain')\n\nprocess.on('bootstrap-module-global-public-route' as any, (app, globalPublicRouter) => {\n globalPublicRouter.use(siteRootRouter.routes(), siteRootRouter.allowedMethods())\n globalPublicRouter.use(authPublicProcessRouter.routes(), authPublicProcessRouter.allowedMethods())\n\n /* ssoMiddleware가 정의되어있다면, /auth/sso-signin 패스를 활성화한다. */\n if (app.ssoMiddlewares.length > 0) {\n authSigninRouter.get('/auth/sso-signin', app.ssoMiddlewares[0], async context => {\n const { user } = context.state\n\n const token = await user.sign()\n setAccessTokenCookie(context, token)\n\n context.redirect('/auth/checkin')\n })\n }\n})\n\nprocess.on('bootstrap-module-global-private-route' as any, (app, globalPrivateRouter) => {\n globalPrivateRouter.use(jwtAuthenticateMiddleware)\n\n /* globalPrivateRouter based nested-routers */\n globalPrivateRouter.use(authCheckinRouter.routes(), authCheckinRouter.allowedMethods())\n globalPrivateRouter.use(authPrivateProcessRouter.routes(), authPrivateProcessRouter.allowedMethods())\n globalPrivateRouter.use(webAuthnGlobalPrivateRouter.routes(), webAuthnGlobalPrivateRouter.allowedMethods())\n})\n\nprocess.on('bootstrap-module-domain-public-route' as any, (app, domainPublicRouter) => {\n /* domainPublicRouter based nested-routers */\n domainPublicRouter.use(authSigninRouter.routes(), authSigninRouter.allowedMethods())\n domainPublicRouter.use(authSignupRouter.routes(), authSignupRouter.allowedMethods())\n domainPublicRouter.use(webAuthnGlobalPublicRouter.routes(), webAuthnGlobalPublicRouter.allowedMethods())\n\n /* path '/admin/oauth/...' is deprecated. should use path '/oauth/...' for oauth2 related routing */\n domainPublicRouter.use('/oauth', oauth2Router.routes(), oauth2Router.allowedMethods()) // if i use context\n})\n\nprocess.on('bootstrap-module-domain-private-route' as any, (app, domainPrivateRouter) => {\n domainPrivateRouter.use(jwtAuthenticateMiddleware)\n domainPrivateRouter.use(domainAuthenticateMiddleware)\n\n /* domainPrivateRouter based nested-routers */\n if (isPathBaseDomain) {\n // pathBaseDomainRouter는 history-fallback의 경우에 인증 처리를 하기 위한 라우터이다.\n // (보통, URL 링크등을 통해서 domain path URL로 바로 요청하는 경우에 해당한다.)\n // pathBaseDomainRouter는 domain path를 domain-private-router를 사용하는 것을 전제로 한다.\n domainPrivateRouter.use('/domain/:domain/oauth', oauth2AuthorizeRouter.routes(), oauth2AuthorizeRouter.allowedMethods())\n domainPrivateRouter.use('/domain', pathBaseDomainRouter.routes(), pathBaseDomainRouter.allowedMethods())\n }\n\n // Client Routing : path 확장자가 없는 경우는 대부분 client 라우팅에 해당한다.\n // 즉, browser-history-fallback 으로 index.html을 send 하는 경우에, 사용자 로그인이 필요한 경우에,\n // 화면깜박임없이 signin page로 redirect 하고자하는 목적의 설정이다.\n // domain-private 라우트를 통과하고 싶지 않다면, regexp를 조정한다.\n // '(.[^.]+)' 은 '', '/'는 제외하고, '/xxx', '/yyy/zzz' 등 모두를 포함하지만, path에 '.'가 있는 경우는 제외한다.\n // (테스트는 여기서 : http://forbeslindesay.github.io/express-route-tester/)\n domainPrivateRouter.get('(.[^.]+)', async (context, next) => {\n await next()\n })\n})\n"]}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../server/routes.ts"],"names":[],"mappings":"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","sourcesContent":["import { config } from '@things-factory/env'\n\nimport { domainAuthenticateMiddleware, jwtAuthenticateMiddleware } from './middlewares/index.js'\nimport {\n authCheckinRouter,\n authPrivateProcessRouter,\n authPublicProcessRouter,\n authSigninRouter,\n authSignupRouter,\n oauth2AuthorizeRouter,\n oauth2Router,\n pathBaseDomainRouter,\n siteRootRouter,\n webAuthnGlobalPublicRouter,\n webAuthnGlobalPrivateRouter\n} from './router/index.js'\n\nimport { setAccessTokenCookie } from './utils/access-token-cookie.js'\n\nconst isPathBaseDomain = !config.get('subdomain') && !config.get('useVirtualHostBasedDomain')\n\nprocess.on('bootstrap-module-global-public-route' as any, (app, globalPublicRouter) => {\n globalPublicRouter.use(siteRootRouter.routes(), siteRootRouter.allowedMethods())\n globalPublicRouter.use(authPublicProcessRouter.routes(), authPublicProcessRouter.allowedMethods())\n\n /* ssoMiddleware가 정의되어있다면, /auth/sso-signin 패스를 활성화한다. */\n if (app.ssoMiddlewares.length > 0) {\n authSigninRouter.get('/auth/sso-signin', app.ssoMiddlewares[0], async context => {\n const { user } = context.state\n\n const token = await user.sign()\n setAccessTokenCookie(context, token)\n\n context.redirect('/auth/checkin')\n })\n }\n})\n\nprocess.on('bootstrap-module-global-private-route' as any, (app, globalPrivateRouter) => {\n globalPrivateRouter.use(jwtAuthenticateMiddleware)\n\n /* globalPrivateRouter based nested-routers */\n globalPrivateRouter.use(authCheckinRouter.routes(), authCheckinRouter.allowedMethods())\n globalPrivateRouter.use(authPrivateProcessRouter.routes(), authPrivateProcessRouter.allowedMethods())\n globalPrivateRouter.use(webAuthnGlobalPrivateRouter.routes(), webAuthnGlobalPrivateRouter.allowedMethods())\n})\n\nprocess.on('bootstrap-module-domain-public-route' as any, (app, domainPublicRouter) => {\n /* domainPublicRouter based nested-routers */\n domainPublicRouter.use(authSigninRouter.routes(), authSigninRouter.allowedMethods())\n domainPublicRouter.use(authSignupRouter.routes(), authSignupRouter.allowedMethods())\n domainPublicRouter.use(webAuthnGlobalPublicRouter.routes(), webAuthnGlobalPublicRouter.allowedMethods())\n\n /* path '/admin/oauth/...' is deprecated. should use path '/oauth/...' for oauth2 related routing */\n domainPublicRouter.use('/oauth', oauth2Router.routes(), oauth2Router.allowedMethods()) // if i use context\n})\n\nprocess.on('bootstrap-module-domain-private-route' as any, (app, domainPrivateRouter) => {\n domainPrivateRouter.use(jwtAuthenticateMiddleware)\n domainPrivateRouter.use(domainAuthenticateMiddleware)\n\n /* domainPrivateRouter based nested-routers */\n if (isPathBaseDomain) {\n // pathBaseDomainRouter는 history-fallback의 경우에 인증 처리를 하기 위한 라우터이다.\n // (보통, URL 링크등을 통해서 domain path URL로 바로 요청하는 경우에 해당한다.)\n // pathBaseDomainRouter는 domain path를 domain-private-router를 사용하는 것을 전제로 한다.\n domainPrivateRouter.use(\n '/domain/:domain/oauth',\n oauth2AuthorizeRouter.routes(),\n oauth2AuthorizeRouter.allowedMethods()\n )\n domainPrivateRouter.use('/domain', pathBaseDomainRouter.routes(), pathBaseDomainRouter.allowedMethods())\n }\n\n // Client Routing : path 확장자가 없는 경우는 대부분 client 라우팅에 해당한다.\n // 즉, browser-history-fallback 으로 index.html을 send 하는 경우에, 사용자 로그인이 필요한 경우에,\n // 화면깜박임없이 signin page로 redirect 하고자하는 목적의 설정이다.\n // domain-private 라우트를 통과하고 싶지 않다면, regexp를 조정한다.\n // '(.[^.]+)' 은 '', '/'는 제외하고, '/xxx', '/yyy/zzz' 등 모두를 포함하지만, path에 '.'가 있는 경우는 제외한다.\n // (테스트는 여기서 : http://forbeslindesay.github.io/express-route-tester/)\n domainPrivateRouter.get('(.[^.]+)', async (context, next) => {\n await next()\n })\n})\n"]}
@@ -4,14 +4,14 @@ exports.AppBindingMutation = 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 user_1 = require("../user/user");
8
- const app_binding_1 = require("./app-binding");
7
+ const user_js_1 = require("../user/user.js");
8
+ const app_binding_js_1 = require("./app-binding.js");
9
9
  let AppBindingMutation = class AppBindingMutation {
10
10
  async deleteAppBinding(id, context) {
11
11
  const { domain } = context.state;
12
12
  // TODO 이 사용자가 이 도메인에 속한 사용자인지 확인해야함.
13
13
  // TODO 다른 도메인에도 포함되어있다면, domains-users 관게와 해당 도메인 관련 정보만 삭제해야 함.
14
- await (0, shell_1.getRepository)(user_1.User).delete({
14
+ await (0, shell_1.getRepository)(user_js_1.User).delete({
15
15
  id
16
16
  });
17
17
  return true;
@@ -27,6 +27,6 @@ tslib_1.__decorate([
27
27
  tslib_1.__metadata("design:returntype", Promise)
28
28
  ], AppBindingMutation.prototype, "deleteAppBinding", null);
29
29
  exports.AppBindingMutation = AppBindingMutation = tslib_1.__decorate([
30
- (0, type_graphql_1.Resolver)(app_binding_1.AppBinding)
30
+ (0, type_graphql_1.Resolver)(app_binding_js_1.AppBinding)
31
31
  ], AppBindingMutation);
32
32
  //# sourceMappingURL=app-binding-mutation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-binding-mutation.js","sourceRoot":"","sources":["../../../server/service/app-binding/app-binding-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAA2D;AAE3D,iDAAqD;AAErD,uCAAmC;AACnC,+CAA0C;AAGnC,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAEvB,AAAN,KAAK,CAAC,gBAAgB,CAAY,EAAU,EAAS,OAAwB;QAC3E,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,qCAAqC;QACrC,iEAAiE;QACjE,MAAM,IAAA,qBAAa,EAAC,WAAI,CAAC,CAAC,MAAM,CAAC;YAC/B,EAAE;SACH,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA;AAbY,gDAAkB;AAEvB;IADL,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC;IACL,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IAAc,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;0DAUnD;6BAZU,kBAAkB;IAD9B,IAAA,uBAAQ,EAAC,wBAAU,CAAC;GACR,kBAAkB,CAa9B","sourcesContent":["import { Arg, Ctx, Mutation, Resolver } from 'type-graphql'\n\nimport { getRepository } from '@things-factory/shell'\n\nimport { User } from '../user/user'\nimport { AppBinding } from './app-binding'\n\n@Resolver(AppBinding)\nexport class AppBindingMutation {\n @Mutation(returns => Boolean)\n async deleteAppBinding(@Arg('id') id: string, @Ctx() context: ResolverContext) {\n const { domain } = context.state\n\n // TODO 이 사용자가 이 도메인에 속한 사용자인지 확인해야함.\n // TODO 다른 도메인에도 포함되어있다면, domains-users 관게와 해당 도메인 관련 정보만 삭제해야 함.\n await getRepository(User).delete({\n id\n })\n\n return true\n }\n}\n"]}
1
+ {"version":3,"file":"app-binding-mutation.js","sourceRoot":"","sources":["../../../server/service/app-binding/app-binding-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAA2D;AAE3D,iDAAqD;AAErD,6CAAsC;AACtC,qDAA6C;AAGtC,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAEvB,AAAN,KAAK,CAAC,gBAAgB,CAAY,EAAU,EAAS,OAAwB;QAC3E,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,qCAAqC;QACrC,iEAAiE;QACjE,MAAM,IAAA,qBAAa,EAAC,cAAI,CAAC,CAAC,MAAM,CAAC;YAC/B,EAAE;SACH,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA;AAbY,gDAAkB;AAEvB;IADL,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC;IACL,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IAAc,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;0DAUnD;6BAZU,kBAAkB;IAD9B,IAAA,uBAAQ,EAAC,2BAAU,CAAC;GACR,kBAAkB,CAa9B","sourcesContent":["import { Arg, Ctx, Mutation, Resolver } from 'type-graphql'\n\nimport { getRepository } from '@things-factory/shell'\n\nimport { User } from '../user/user.js'\nimport { AppBinding } from './app-binding.js'\n\n@Resolver(AppBinding)\nexport class AppBindingMutation {\n @Mutation(returns => Boolean)\n async deleteAppBinding(@Arg('id') id: string, @Ctx() context: ResolverContext) {\n const { domain } = context.state\n\n // TODO 이 사용자가 이 도메인에 속한 사용자인지 확인해야함.\n // TODO 다른 도메인에도 포함되어있다면, domains-users 관게와 해당 도메인 관련 정보만 삭제해야 함.\n await getRepository(User).delete({\n id\n })\n\n return true\n }\n}\n"]}
@@ -1,8 +1,8 @@
1
1
  import { ListParam } from '@things-factory/shell';
2
- import { Application } from '../application/application';
3
- import { User } from '../user/user';
4
- import { UserList } from '../user/user-types';
5
- import { AppBinding } from './app-binding';
2
+ import { Application } from '../application/application.js';
3
+ import { User } from '../user/user.js';
4
+ import { UserList } from '../user/user-types.js';
5
+ import { AppBinding } from './app-binding.js';
6
6
  export declare class AppBindingQuery {
7
7
  appBinding(id: string, context: ResolverContext): Promise<User>;
8
8
  appBindings(params: ListParam, context: ResolverContext): Promise<UserList>;
@@ -4,16 +4,16 @@ exports.AppBindingQuery = 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 get_domain_users_1 = require("../../utils/get-domain-users");
8
- const application_1 = require("../application/application");
9
- const user_1 = require("../user/user");
10
- const app_binding_1 = require("./app-binding");
11
- const app_binding_types_1 = require("./app-binding-types");
7
+ const get_domain_users_js_1 = require("../../utils/get-domain-users.js");
8
+ const application_js_1 = require("../application/application.js");
9
+ const user_js_1 = require("../user/user.js");
10
+ const app_binding_js_1 = require("./app-binding.js");
11
+ const app_binding_types_js_1 = require("./app-binding-types.js");
12
12
  let AppBindingQuery = class AppBindingQuery {
13
13
  async appBinding(id, context) {
14
14
  const { domain } = context.state;
15
15
  // TODO should check domain is available
16
- return await (0, shell_1.getRepository)(user_1.User).findOneBy({ id, userType: 'application' });
16
+ return await (0, shell_1.getRepository)(user_js_1.User).findOneBy({ id, userType: 'application' });
17
17
  }
18
18
  /* TODO optimize query */
19
19
  async appBindings(params, context) {
@@ -24,7 +24,7 @@ let AppBindingQuery = class AppBindingQuery {
24
24
  // userType: 'application'
25
25
  // } as any
26
26
  const alias = 'USER';
27
- const qb = (0, get_domain_users_1.buildDomainUsersQueryBuilder)(domain.id, alias);
27
+ const qb = (0, get_domain_users_js_1.buildDomainUsersQueryBuilder)(domain.id, alias);
28
28
  (0, shell_1.buildQuery)(qb, params, null, { domainRef: false });
29
29
  var [items] = await qb
30
30
  // .leftJoinAndSelect(`${alias}.roles`, 'ROLES')
@@ -52,25 +52,25 @@ let AppBindingQuery = class AppBindingQuery {
52
52
  return { items, total: items.length };
53
53
  }
54
54
  async application(appBinding) {
55
- return await (0, shell_1.getRepository)(application_1.Application).findOneBy({ id: appBinding.reference });
55
+ return await (0, shell_1.getRepository)(application_js_1.Application).findOneBy({ id: appBinding.reference });
56
56
  }
57
57
  async scope(appBinding) {
58
- const u = await (0, shell_1.getRepository)(user_1.User).findOne({ where: { reference: appBinding.reference }, relations: ['roles'] });
58
+ const u = await (0, shell_1.getRepository)(user_js_1.User).findOne({ where: { reference: appBinding.reference }, relations: ['roles'] });
59
59
  return u.roles.map(role => role.name).join(',');
60
60
  }
61
61
  async refreshToken(appBinding) {
62
62
  return appBinding.password;
63
63
  }
64
64
  async updater(appBinding) {
65
- return await (0, shell_1.getRepository)(user_1.User).findOneBy({ id: appBinding.updaterId });
65
+ return await (0, shell_1.getRepository)(user_js_1.User).findOneBy({ id: appBinding.updaterId });
66
66
  }
67
67
  async creator(appBinding) {
68
- return await (0, shell_1.getRepository)(user_1.User).findOneBy({ id: appBinding.creatorId });
68
+ return await (0, shell_1.getRepository)(user_js_1.User).findOneBy({ id: appBinding.creatorId });
69
69
  }
70
70
  };
71
71
  exports.AppBindingQuery = AppBindingQuery;
72
72
  tslib_1.__decorate([
73
- (0, type_graphql_1.Query)(returns => app_binding_1.AppBinding),
73
+ (0, type_graphql_1.Query)(returns => app_binding_js_1.AppBinding),
74
74
  tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
75
75
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
76
76
  tslib_1.__metadata("design:type", Function),
@@ -78,7 +78,7 @@ tslib_1.__decorate([
78
78
  tslib_1.__metadata("design:returntype", Promise)
79
79
  ], AppBindingQuery.prototype, "appBinding", null);
80
80
  tslib_1.__decorate([
81
- (0, type_graphql_1.Query)(returns => app_binding_types_1.AppBindingList),
81
+ (0, type_graphql_1.Query)(returns => app_binding_types_js_1.AppBindingList),
82
82
  tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
83
83
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
84
84
  tslib_1.__metadata("design:type", Function),
@@ -86,41 +86,41 @@ tslib_1.__decorate([
86
86
  tslib_1.__metadata("design:returntype", Promise)
87
87
  ], AppBindingQuery.prototype, "appBindings", null);
88
88
  tslib_1.__decorate([
89
- (0, type_graphql_1.FieldResolver)(type => application_1.Application),
89
+ (0, type_graphql_1.FieldResolver)(type => application_js_1.Application),
90
90
  tslib_1.__param(0, (0, type_graphql_1.Root)()),
91
91
  tslib_1.__metadata("design:type", Function),
92
- tslib_1.__metadata("design:paramtypes", [app_binding_1.AppBinding]),
92
+ tslib_1.__metadata("design:paramtypes", [app_binding_js_1.AppBinding]),
93
93
  tslib_1.__metadata("design:returntype", Promise)
94
94
  ], AppBindingQuery.prototype, "application", null);
95
95
  tslib_1.__decorate([
96
96
  (0, type_graphql_1.FieldResolver)(type => String),
97
97
  tslib_1.__param(0, (0, type_graphql_1.Root)()),
98
98
  tslib_1.__metadata("design:type", Function),
99
- tslib_1.__metadata("design:paramtypes", [app_binding_1.AppBinding]),
99
+ tslib_1.__metadata("design:paramtypes", [app_binding_js_1.AppBinding]),
100
100
  tslib_1.__metadata("design:returntype", Promise)
101
101
  ], AppBindingQuery.prototype, "scope", null);
102
102
  tslib_1.__decorate([
103
103
  (0, type_graphql_1.FieldResolver)(type => String),
104
104
  tslib_1.__param(0, (0, type_graphql_1.Root)()),
105
105
  tslib_1.__metadata("design:type", Function),
106
- tslib_1.__metadata("design:paramtypes", [app_binding_1.AppBinding]),
106
+ tslib_1.__metadata("design:paramtypes", [app_binding_js_1.AppBinding]),
107
107
  tslib_1.__metadata("design:returntype", Promise)
108
108
  ], AppBindingQuery.prototype, "refreshToken", null);
109
109
  tslib_1.__decorate([
110
- (0, type_graphql_1.FieldResolver)(type => user_1.User),
110
+ (0, type_graphql_1.FieldResolver)(type => user_js_1.User),
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", [app_binding_1.AppBinding]),
113
+ tslib_1.__metadata("design:paramtypes", [app_binding_js_1.AppBinding]),
114
114
  tslib_1.__metadata("design:returntype", Promise)
115
115
  ], AppBindingQuery.prototype, "updater", null);
116
116
  tslib_1.__decorate([
117
- (0, type_graphql_1.FieldResolver)(type => user_1.User),
117
+ (0, type_graphql_1.FieldResolver)(type => user_js_1.User),
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", [app_binding_1.AppBinding]),
120
+ tslib_1.__metadata("design:paramtypes", [app_binding_js_1.AppBinding]),
121
121
  tslib_1.__metadata("design:returntype", Promise)
122
122
  ], AppBindingQuery.prototype, "creator", null);
123
123
  exports.AppBindingQuery = AppBindingQuery = tslib_1.__decorate([
124
- (0, type_graphql_1.Resolver)(app_binding_1.AppBinding)
124
+ (0, type_graphql_1.Resolver)(app_binding_js_1.AppBinding)
125
125
  ], AppBindingQuery);
126
126
  //# sourceMappingURL=app-binding-query.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-binding-query.js","sourceRoot":"","sources":["../../../server/service/app-binding/app-binding-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { SelectQueryBuilder } from 'typeorm'\n\nimport { buildQuery, getRepository, ListParam } from '@things-factory/shell'\n\nimport { buildDomainUsersQueryBuilder } from '../../utils/get-domain-users'\nimport { Application } from '../application/application'\nimport { User } from '../user/user'\nimport { UserList } from '../user/user-types'\nimport { AppBinding } from './app-binding'\nimport { AppBindingList } from './app-binding-types'\n\n@Resolver(AppBinding)\nexport class AppBindingQuery {\n @Query(returns => AppBinding)\n async appBinding(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<User> {\n const { domain } = context.state\n\n // TODO should check domain is available\n return await getRepository(User).findOneBy({ id, userType: 'application' })\n }\n\n /* TODO optimize query */\n @Query(returns => AppBindingList)\n async appBindings(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<UserList> {\n const { domain } = context.state\n\n // const convertedParams = convertListParams(params)\n // convertedParams.where = {\n // ...convertedParams.where,\n // userType: 'application'\n // } as any\n\n const alias: string = 'USER'\n const qb: SelectQueryBuilder<User> = buildDomainUsersQueryBuilder(domain.id, alias)\n buildQuery(qb, params, null, { domainRef: false })\n var [items] = await qb\n // .leftJoinAndSelect(`${alias}.roles`, 'ROLES')\n // .leftJoinAndSelect(`${alias}.creator`, 'CREATOR')\n // .leftJoinAndSelect(`${alias}.updater`, 'UPDATER')\n .getManyAndCount()\n\n items = items.filter((user: User) => user.userType == 'application')\n\n // var boundApps = await Promise.all(\n // items\n // .filter((user: User) => user.userType == 'application')\n // .map(async (user: User) => {\n // const email = user.email\n // const appKey = email.substr(0, email.lastIndexOf('@'))\n // const application = await getRepository(Application).findOneBy({\n // appKey\n // })\n\n // return {\n // ...user,\n // application,\n // scope: user.roles.map(role => role.name).join(','),\n // refreshToken: user.password\n // }\n // })\n // )\n\n return { items, total: items.length }\n }\n\n @FieldResolver(type => Application)\n async application(@Root() appBinding: AppBinding): Promise<Application> {\n return await getRepository(Application).findOneBy({ id: appBinding.reference })\n }\n\n @FieldResolver(type => String)\n async scope(@Root() appBinding: AppBinding): Promise<string> {\n const u = await getRepository(User).findOne({ where: { reference: appBinding.reference }, relations: ['roles'] })\n return u.roles.map(role => role.name).join(',')\n }\n\n @FieldResolver(type => String)\n async refreshToken(@Root() appBinding: AppBinding): Promise<string> {\n return appBinding.password\n }\n\n @FieldResolver(type => User)\n async updater(@Root() appBinding: AppBinding): Promise<User> {\n return await getRepository(User).findOneBy({ id: appBinding.updaterId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() appBinding: AppBinding): Promise<User> {\n return await getRepository(User).findOneBy({ id: appBinding.creatorId })\n }\n}\n"]}
1
+ {"version":3,"file":"app-binding-query.js","sourceRoot":"","sources":["../../../server/service/app-binding/app-binding-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { SelectQueryBuilder } from 'typeorm'\n\nimport { buildQuery, getRepository, ListParam } from '@things-factory/shell'\n\nimport { buildDomainUsersQueryBuilder } from '../../utils/get-domain-users.js'\nimport { Application } from '../application/application.js'\nimport { User } from '../user/user.js'\nimport { UserList } from '../user/user-types.js'\nimport { AppBinding } from './app-binding.js'\nimport { AppBindingList } from './app-binding-types.js'\n\n@Resolver(AppBinding)\nexport class AppBindingQuery {\n @Query(returns => AppBinding)\n async appBinding(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<User> {\n const { domain } = context.state\n\n // TODO should check domain is available\n return await getRepository(User).findOneBy({ id, userType: 'application' })\n }\n\n /* TODO optimize query */\n @Query(returns => AppBindingList)\n async appBindings(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<UserList> {\n const { domain } = context.state\n\n // const convertedParams = convertListParams(params)\n // convertedParams.where = {\n // ...convertedParams.where,\n // userType: 'application'\n // } as any\n\n const alias: string = 'USER'\n const qb: SelectQueryBuilder<User> = buildDomainUsersQueryBuilder(domain.id, alias)\n buildQuery(qb, params, null, { domainRef: false })\n var [items] = await qb\n // .leftJoinAndSelect(`${alias}.roles`, 'ROLES')\n // .leftJoinAndSelect(`${alias}.creator`, 'CREATOR')\n // .leftJoinAndSelect(`${alias}.updater`, 'UPDATER')\n .getManyAndCount()\n\n items = items.filter((user: User) => user.userType == 'application')\n\n // var boundApps = await Promise.all(\n // items\n // .filter((user: User) => user.userType == 'application')\n // .map(async (user: User) => {\n // const email = user.email\n // const appKey = email.substr(0, email.lastIndexOf('@'))\n // const application = await getRepository(Application).findOneBy({\n // appKey\n // })\n\n // return {\n // ...user,\n // application,\n // scope: user.roles.map(role => role.name).join(','),\n // refreshToken: user.password\n // }\n // })\n // )\n\n return { items, total: items.length }\n }\n\n @FieldResolver(type => Application)\n async application(@Root() appBinding: AppBinding): Promise<Application> {\n return await getRepository(Application).findOneBy({ id: appBinding.reference })\n }\n\n @FieldResolver(type => String)\n async scope(@Root() appBinding: AppBinding): Promise<string> {\n const u = await getRepository(User).findOne({ where: { reference: appBinding.reference }, relations: ['roles'] })\n return u.roles.map(role => role.name).join(',')\n }\n\n @FieldResolver(type => String)\n async refreshToken(@Root() appBinding: AppBinding): Promise<string> {\n return appBinding.password\n }\n\n @FieldResolver(type => User)\n async updater(@Root() appBinding: AppBinding): Promise<User> {\n return await getRepository(User).findOneBy({ id: appBinding.updaterId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() appBinding: AppBinding): Promise<User> {\n return await getRepository(User).findOneBy({ id: appBinding.creatorId })\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { AppBinding } from './app-binding';
1
+ import { AppBinding } from './app-binding.js';
2
2
  export declare class AppBindingList {
3
3
  items?: [AppBinding];
4
4
  total?: number;
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AppBindingList = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const type_graphql_1 = require("type-graphql");
6
- const app_binding_1 = require("./app-binding");
6
+ const app_binding_js_1 = require("./app-binding.js");
7
7
  let AppBindingList = class AppBindingList {
8
8
  };
9
9
  exports.AppBindingList = AppBindingList;
10
10
  tslib_1.__decorate([
11
- (0, type_graphql_1.Field)(type => [app_binding_1.AppBinding], { nullable: true }),
11
+ (0, type_graphql_1.Field)(type => [app_binding_js_1.AppBinding], { nullable: true }),
12
12
  tslib_1.__metadata("design:type", Array)
13
13
  ], AppBindingList.prototype, "items", void 0);
14
14
  tslib_1.__decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"app-binding-types.js","sourceRoot":"","sources":["../../../server/service/app-binding/app-binding-types.ts"],"names":[],"mappings":";;;;AAAA,+CAAqD;AACrD,+CAA0C;AAGnC,IAAM,cAAc,GAApB,MAAM,cAAc;CAM1B,CAAA;AANY,wCAAc;AAEzB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,wBAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CAC5B;AAGpB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACzB;yBALH,cAAc;IAD1B,IAAA,yBAAU,GAAE;GACA,cAAc,CAM1B","sourcesContent":["import { Field, Int, ObjectType } from 'type-graphql'\nimport { AppBinding } from './app-binding'\n\n@ObjectType()\nexport class AppBindingList {\n @Field(type => [AppBinding], { nullable: true })\n items?: [AppBinding]\n\n @Field(type => Int, { nullable: true })\n total?: number\n}\n"]}
1
+ {"version":3,"file":"app-binding-types.js","sourceRoot":"","sources":["../../../server/service/app-binding/app-binding-types.ts"],"names":[],"mappings":";;;;AAAA,+CAAqD;AACrD,qDAA6C;AAGtC,IAAM,cAAc,GAApB,MAAM,cAAc;CAM1B,CAAA;AANY,wCAAc;AAEzB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,2BAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CAC5B;AAGpB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACzB;yBALH,cAAc;IAD1B,IAAA,yBAAU,GAAE;GACA,cAAc,CAM1B","sourcesContent":["import { Field, Int, ObjectType } from 'type-graphql'\nimport { AppBinding } from './app-binding.js'\n\n@ObjectType()\nexport class AppBindingList {\n @Field(type => [AppBinding], { nullable: true })\n items?: [AppBinding]\n\n @Field(type => Int, { nullable: true })\n total?: number\n}\n"]}
@@ -1,5 +1,5 @@
1
- import { Application } from '../application/application';
2
- import { User } from '../user/user';
1
+ import { Application } from '../application/application.js';
2
+ import { User } from '../user/user.js';
3
3
  export declare class AppBinding extends User {
4
4
  application: Application;
5
5
  scope: string;
@@ -3,14 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AppBinding = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const type_graphql_1 = require("type-graphql");
6
- const application_1 = require("../application/application");
7
- const user_1 = require("../user/user");
8
- let AppBinding = class AppBinding extends user_1.User {
6
+ const application_js_1 = require("../application/application.js");
7
+ const user_js_1 = require("../user/user.js");
8
+ let AppBinding = class AppBinding extends user_js_1.User {
9
9
  };
10
10
  exports.AppBinding = AppBinding;
11
11
  tslib_1.__decorate([
12
12
  (0, type_graphql_1.Field)({ nullable: true }),
13
- tslib_1.__metadata("design:type", application_1.Application)
13
+ tslib_1.__metadata("design:type", application_js_1.Application)
14
14
  ], AppBinding.prototype, "application", void 0);
15
15
  tslib_1.__decorate([
16
16
  (0, type_graphql_1.Field)({ nullable: true }),
@@ -1 +1 @@
1
- {"version":3,"file":"app-binding.js","sourceRoot":"","sources":["../../../server/service/app-binding/app-binding.ts"],"names":[],"mappings":";;;;AAAA,+CAA2D;AAE3D,4DAAwD;AACxD,uCAA+C;AAGxC,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,WAAI;CAUnC,CAAA;AAVY,gCAAU;AAErB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACb,yBAAW;+CAAA;AAGxB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCACb;AAIb;IAFC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACzB,IAAA,wBAAS,EAAC,gFAAgF,CAAC;;gDACxE;qBATT,UAAU;IADtB,IAAA,yBAAU,GAAE;GACA,UAAU,CAUtB","sourcesContent":["import { ObjectType, Field, Directive } from 'type-graphql'\nimport { Domain } from '@things-factory/shell'\nimport { Application } from '../application/application'\nimport { User, UserStatus } from '../user/user'\n\n@ObjectType()\nexport class AppBinding extends User {\n @Field({ nullable: true })\n application: Application\n\n @Field({ nullable: true })\n scope: string\n\n @Field({ nullable: true })\n @Directive('@privilege(category: \"security\", privilege: \"query\", domainOwnerGranted: true)')\n refreshToken: string\n}\n"]}
1
+ {"version":3,"file":"app-binding.js","sourceRoot":"","sources":["../../../server/service/app-binding/app-binding.ts"],"names":[],"mappings":";;;;AAAA,+CAA2D;AAC3D,kEAA2D;AAC3D,6CAAsC;AAG/B,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,cAAI;CAUnC,CAAA;AAVY,gCAAU;AAErB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACb,4BAAW;+CAAA;AAGxB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCACb;AAIb;IAFC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACzB,IAAA,wBAAS,EAAC,gFAAgF,CAAC;;gDACxE;qBATT,UAAU;IADtB,IAAA,yBAAU,GAAE;GACA,UAAU,CAUtB","sourcesContent":["import { ObjectType, Field, Directive } from 'type-graphql'\nimport { Application } from '../application/application.js'\nimport { User } from '../user/user.js'\n\n@ObjectType()\nexport class AppBinding extends User {\n @Field({ nullable: true })\n application: Application\n\n @Field({ nullable: true })\n scope: string\n\n @Field({ nullable: true })\n @Directive('@privilege(category: \"security\", privilege: \"query\", domainOwnerGranted: true)')\n refreshToken: string\n}\n"]}
@@ -1,3 +1,3 @@
1
- import { AppBindingQuery } from './app-binding-query';
2
- import { AppBindingMutation } from './app-binding-mutation';
1
+ import { AppBindingQuery } from './app-binding-query.js';
2
+ import { AppBindingMutation } from './app-binding-mutation.js';
3
3
  export declare const resolvers: (typeof AppBindingQuery | typeof AppBindingMutation)[];
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resolvers = void 0;
4
- const app_binding_query_1 = require("./app-binding-query");
5
- const app_binding_mutation_1 = require("./app-binding-mutation");
6
- exports.resolvers = [app_binding_query_1.AppBindingQuery, app_binding_mutation_1.AppBindingMutation];
4
+ const app_binding_query_js_1 = require("./app-binding-query.js");
5
+ const app_binding_mutation_js_1 = require("./app-binding-mutation.js");
6
+ exports.resolvers = [app_binding_query_js_1.AppBindingQuery, app_binding_mutation_js_1.AppBindingMutation];
7
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/service/app-binding/index.ts"],"names":[],"mappings":";;;AAAA,2DAAqD;AACrD,iEAA2D;AAE9C,QAAA,SAAS,GAAG,CAAC,mCAAe,EAAE,yCAAkB,CAAC,CAAA","sourcesContent":["import { AppBindingQuery } from './app-binding-query'\nimport { AppBindingMutation } from './app-binding-mutation'\n\nexport const resolvers = [AppBindingQuery, AppBindingMutation]\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/service/app-binding/index.ts"],"names":[],"mappings":";;;AAAA,iEAAwD;AACxD,uEAA8D;AAEjD,QAAA,SAAS,GAAG,CAAC,sCAAe,EAAE,4CAAkB,CAAC,CAAA","sourcesContent":["import { AppBindingQuery } from './app-binding-query.js'\nimport { AppBindingMutation } from './app-binding-mutation.js'\n\nexport const resolvers = [AppBindingQuery, AppBindingMutation]\n"]}
@@ -1,5 +1,5 @@
1
- import { Appliance } from './appliance';
2
- import { AppliancePatch, NewAppliance } from './appliance-types';
1
+ import { Appliance } from './appliance.js';
2
+ import { AppliancePatch, NewAppliance } from './appliance-types.js';
3
3
  export declare class ApplianceMutation {
4
4
  createAppliance(appliance: NewAppliance, context: ResolverContext): Promise<Appliance>;
5
5
  deleteAppliance(id: string, context: ResolverContext): Promise<Boolean>;
@@ -4,30 +4,30 @@ exports.ApplianceMutation = 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 user_1 = require("../user/user");
8
- const appliance_1 = require("./appliance");
9
- const appliance_types_1 = require("./appliance-types");
7
+ const user_js_1 = require("../user/user.js");
8
+ const appliance_js_1 = require("./appliance.js");
9
+ const appliance_types_js_1 = require("./appliance-types.js");
10
10
  const crypto = require('crypto');
11
11
  let ApplianceMutation = class ApplianceMutation {
12
12
  async createAppliance(appliance, context) {
13
- return await (0, shell_1.getRepository)(appliance_1.Appliance).save(Object.assign({ domain: context.state.domain, creator: context.state.user, updater: context.state.user }, appliance));
13
+ return await (0, shell_1.getRepository)(appliance_js_1.Appliance).save(Object.assign({ domain: context.state.domain, creator: context.state.user, updater: context.state.user }, appliance));
14
14
  }
15
15
  async deleteAppliance(id, context) {
16
16
  const { domain } = context.state;
17
17
  // TODO 이 사용자가 이 도메인에 속한 사용자인지 확인해야함.
18
18
  // TODO 다른 도메인에도 포함되어있다면, domains-users 관게와 해당 도메인 관련 정보만 삭제해야 함.
19
- await (0, shell_1.getRepository)(user_1.User).delete({
19
+ await (0, shell_1.getRepository)(user_js_1.User).delete({
20
20
  reference: id,
21
21
  userType: 'appliance'
22
22
  });
23
- await (0, shell_1.getRepository)(appliance_1.Appliance).delete({ domain: { id: domain.id }, id });
23
+ await (0, shell_1.getRepository)(appliance_js_1.Appliance).delete({ domain: { id: domain.id }, id });
24
24
  return true;
25
25
  }
26
26
  async generateApplianceSecret(id, context) {
27
27
  const { domain, user } = context.state;
28
- const appliance = await (0, shell_1.getRepository)(appliance_1.Appliance).findOneBy({ domain: { id: domain.id }, id });
28
+ const appliance = await (0, shell_1.getRepository)(appliance_js_1.Appliance).findOneBy({ domain: { id: domain.id }, id });
29
29
  const appuserEmail = `${crypto.randomUUID()}@${domain === null || domain === void 0 ? void 0 : domain.subdomain}`;
30
- let appuser = await (0, shell_1.getRepository)(user_1.User).findOne({
30
+ let appuser = await (0, shell_1.getRepository)(user_js_1.User).findOne({
31
31
  where: {
32
32
  reference: id,
33
33
  userType: 'appliance'
@@ -36,12 +36,12 @@ let ApplianceMutation = class ApplianceMutation {
36
36
  });
37
37
  if (!appuser) {
38
38
  /* newly create appuser */
39
- appuser = await (0, shell_1.getRepository)(user_1.User).save({
39
+ appuser = await (0, shell_1.getRepository)(user_js_1.User).save({
40
40
  email: appuserEmail,
41
41
  name: appliance.name,
42
42
  userType: 'appliance',
43
43
  reference: id,
44
- status: user_1.UserStatus.ACTIVATED,
44
+ status: user_js_1.UserStatus.ACTIVATED,
45
45
  domains: [domain],
46
46
  updater: user,
47
47
  creator: user
@@ -50,14 +50,14 @@ let ApplianceMutation = class ApplianceMutation {
50
50
  if (!appuser.domains.find(d => d.id === domain.id)) {
51
51
  context.throw(401, 'appliance is not allowed for this domain');
52
52
  }
53
- appuser.password = appliance_1.Appliance.generateAccessToken(domain, appuser, appliance);
54
- await (0, shell_1.getRepository)(user_1.User).save(appuser);
55
- return await (0, shell_1.getRepository)(appliance_1.Appliance).save(Object.assign(Object.assign({}, appliance), { accessToken: appuser.password, updater: user }));
53
+ appuser.password = appliance_js_1.Appliance.generateAccessToken(domain, appuser, appliance);
54
+ await (0, shell_1.getRepository)(user_js_1.User).save(appuser);
55
+ return await (0, shell_1.getRepository)(appliance_js_1.Appliance).save(Object.assign(Object.assign({}, appliance), { accessToken: appuser.password, updater: user }));
56
56
  }
57
57
  async updateAppliance(id, patch, context) {
58
58
  const { domain } = context.state;
59
- const applianceRepository = (0, shell_1.getRepository)(appliance_1.Appliance);
60
- const userRepository = (0, shell_1.getRepository)(user_1.User);
59
+ const applianceRepository = (0, shell_1.getRepository)(appliance_js_1.Appliance);
60
+ const userRepository = (0, shell_1.getRepository)(user_js_1.User);
61
61
  const appliance = await applianceRepository.findOne({ where: { domain: { id: domain.id }, id } });
62
62
  const user = await userRepository.findOne({ where: { reference: id, userType: 'appliance' } });
63
63
  userRepository.save(Object.assign(Object.assign({}, user), { name: (patch === null || patch === void 0 ? void 0 : patch.name) || user.name }));
@@ -67,11 +67,11 @@ let ApplianceMutation = class ApplianceMutation {
67
67
  exports.ApplianceMutation = ApplianceMutation;
68
68
  tslib_1.__decorate([
69
69
  (0, type_graphql_1.Directive)('@privilege(category: "user", privilege: "mutation", domainOwnerGranted: true)'),
70
- (0, type_graphql_1.Mutation)(returns => appliance_1.Appliance, { description: 'To create new appliance' }),
70
+ (0, type_graphql_1.Mutation)(returns => appliance_js_1.Appliance, { description: 'To create new appliance' }),
71
71
  tslib_1.__param(0, (0, type_graphql_1.Arg)('appliance')),
72
72
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
73
73
  tslib_1.__metadata("design:type", Function),
74
- tslib_1.__metadata("design:paramtypes", [appliance_types_1.NewAppliance, Object]),
74
+ tslib_1.__metadata("design:paramtypes", [appliance_types_js_1.NewAppliance, Object]),
75
75
  tslib_1.__metadata("design:returntype", Promise)
76
76
  ], ApplianceMutation.prototype, "createAppliance", null);
77
77
  tslib_1.__decorate([
@@ -85,7 +85,7 @@ tslib_1.__decorate([
85
85
  ], ApplianceMutation.prototype, "deleteAppliance", null);
86
86
  tslib_1.__decorate([
87
87
  (0, type_graphql_1.Directive)('@privilege(category: "security", privilege: "mutation", domainOwnerGranted: true)'),
88
- (0, type_graphql_1.Mutation)(returns => appliance_1.Appliance),
88
+ (0, type_graphql_1.Mutation)(returns => appliance_js_1.Appliance),
89
89
  tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
90
90
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
91
91
  tslib_1.__metadata("design:type", Function),
@@ -94,15 +94,15 @@ tslib_1.__decorate([
94
94
  ], ApplianceMutation.prototype, "generateApplianceSecret", null);
95
95
  tslib_1.__decorate([
96
96
  (0, type_graphql_1.Directive)('@privilege(category: "user", privilege: "mutation", domainOwnerGranted: true)'),
97
- (0, type_graphql_1.Mutation)(returns => appliance_1.Appliance),
97
+ (0, type_graphql_1.Mutation)(returns => appliance_js_1.Appliance),
98
98
  tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
99
99
  tslib_1.__param(1, (0, type_graphql_1.Arg)('patch')),
100
100
  tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
101
101
  tslib_1.__metadata("design:type", Function),
102
- tslib_1.__metadata("design:paramtypes", [String, appliance_types_1.AppliancePatch, Object]),
102
+ tslib_1.__metadata("design:paramtypes", [String, appliance_types_js_1.AppliancePatch, Object]),
103
103
  tslib_1.__metadata("design:returntype", Promise)
104
104
  ], ApplianceMutation.prototype, "updateAppliance", null);
105
105
  exports.ApplianceMutation = ApplianceMutation = tslib_1.__decorate([
106
- (0, type_graphql_1.Resolver)(appliance_1.Appliance)
106
+ (0, type_graphql_1.Resolver)(appliance_js_1.Appliance)
107
107
  ], ApplianceMutation);
108
108
  //# sourceMappingURL=appliance-mutation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"appliance-mutation.js","sourceRoot":"","sources":["../../../server/service/appliance/appliance-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Directive, Arg, Ctx, Mutation, Resolver } from 'type-graphql'\n\nimport { getRepository } from '@things-factory/shell'\n\nimport { User, UserStatus } from '../user/user'\nimport { Appliance } from './appliance'\nimport { AppliancePatch, NewAppliance } from './appliance-types'\n\nconst crypto = require('crypto')\n\n@Resolver(Appliance)\nexport class ApplianceMutation {\n @Directive('@privilege(category: \"user\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Appliance, { description: 'To create new appliance' })\n async createAppliance(\n @Arg('appliance') appliance: NewAppliance,\n @Ctx() context: ResolverContext\n ): Promise<Appliance> {\n return await getRepository(Appliance).save({\n domain: context.state.domain,\n creator: context.state.user,\n updater: context.state.user,\n ...appliance\n })\n }\n\n @Directive('@privilege(category: \"user\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete appliance' })\n async deleteAppliance(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Boolean> {\n const { domain } = context.state\n // TODO 이 사용자가 이 도메인에 속한 사용자인지 확인해야함.\n // TODO 다른 도메인에도 포함되어있다면, domains-users 관게와 해당 도메인 관련 정보만 삭제해야 함.\n await getRepository(User).delete({\n reference: id,\n userType: 'appliance'\n })\n\n await getRepository(Appliance).delete({ domain: { id: domain.id }, id })\n\n return true\n }\n\n @Directive('@privilege(category: \"security\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Appliance)\n async generateApplianceSecret(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Appliance> {\n const { domain, user } = context.state\n\n const appliance: Appliance = await getRepository(Appliance).findOneBy({ domain: { id: domain.id }, id })\n\n const appuserEmail = `${crypto.randomUUID()}@${domain?.subdomain}`\n let appuser: User = await getRepository(User).findOne({\n where: {\n reference: id,\n userType: 'appliance'\n },\n relations: ['domains']\n })\n\n if (!appuser) {\n /* newly create appuser */\n appuser = await getRepository(User).save({\n email: appuserEmail,\n name: appliance.name,\n userType: 'appliance',\n reference: id,\n status: UserStatus.ACTIVATED,\n domains: [domain],\n updater: user,\n creator: user\n })\n }\n\n if (!appuser.domains.find(d => d.id === domain.id)) {\n context.throw(401, 'appliance is not allowed for this domain')\n }\n\n appuser.password = Appliance.generateAccessToken(domain, appuser, appliance)\n\n await getRepository(User).save(appuser)\n\n return await getRepository(Appliance).save({\n ...appliance,\n accessToken: appuser.password,\n updater: user\n })\n }\n\n @Directive('@privilege(category: \"user\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Appliance)\n async updateAppliance(\n @Arg('id') id: string,\n @Arg('patch') patch: AppliancePatch,\n @Ctx() context: ResolverContext\n ): Promise<Appliance> {\n const { domain } = context.state\n\n const applianceRepository = getRepository(Appliance)\n const userRepository = getRepository(User)\n const appliance = await applianceRepository.findOne({ where: { domain: { id: domain.id }, id } })\n const user = await userRepository.findOne({ where: { reference: id, userType: 'appliance' } })\n\n userRepository.save({\n ...user,\n name: patch?.name || user.name\n })\n\n return await applianceRepository.save({\n ...appliance,\n ...patch,\n updater: context.state.user\n })\n }\n}\n"]}
1
+ {"version":3,"file":"appliance-mutation.js","sourceRoot":"","sources":["../../../server/service/appliance/appliance-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Directive, Arg, Ctx, Mutation, Resolver } from 'type-graphql'\n\nimport { getRepository } from '@things-factory/shell'\n\nimport { User, UserStatus } from '../user/user.js'\nimport { Appliance } from './appliance.js'\nimport { AppliancePatch, NewAppliance } from './appliance-types.js'\n\nconst crypto = require('crypto')\n\n@Resolver(Appliance)\nexport class ApplianceMutation {\n @Directive('@privilege(category: \"user\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Appliance, { description: 'To create new appliance' })\n async createAppliance(\n @Arg('appliance') appliance: NewAppliance,\n @Ctx() context: ResolverContext\n ): Promise<Appliance> {\n return await getRepository(Appliance).save({\n domain: context.state.domain,\n creator: context.state.user,\n updater: context.state.user,\n ...appliance\n })\n }\n\n @Directive('@privilege(category: \"user\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete appliance' })\n async deleteAppliance(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Boolean> {\n const { domain } = context.state\n // TODO 이 사용자가 이 도메인에 속한 사용자인지 확인해야함.\n // TODO 다른 도메인에도 포함되어있다면, domains-users 관게와 해당 도메인 관련 정보만 삭제해야 함.\n await getRepository(User).delete({\n reference: id,\n userType: 'appliance'\n })\n\n await getRepository(Appliance).delete({ domain: { id: domain.id }, id })\n\n return true\n }\n\n @Directive('@privilege(category: \"security\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Appliance)\n async generateApplianceSecret(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Appliance> {\n const { domain, user } = context.state\n\n const appliance: Appliance = await getRepository(Appliance).findOneBy({ domain: { id: domain.id }, id })\n\n const appuserEmail = `${crypto.randomUUID()}@${domain?.subdomain}`\n let appuser: User = await getRepository(User).findOne({\n where: {\n reference: id,\n userType: 'appliance'\n },\n relations: ['domains']\n })\n\n if (!appuser) {\n /* newly create appuser */\n appuser = await getRepository(User).save({\n email: appuserEmail,\n name: appliance.name,\n userType: 'appliance',\n reference: id,\n status: UserStatus.ACTIVATED,\n domains: [domain],\n updater: user,\n creator: user\n })\n }\n\n if (!appuser.domains.find(d => d.id === domain.id)) {\n context.throw(401, 'appliance is not allowed for this domain')\n }\n\n appuser.password = Appliance.generateAccessToken(domain, appuser, appliance)\n\n await getRepository(User).save(appuser)\n\n return await getRepository(Appliance).save({\n ...appliance,\n accessToken: appuser.password,\n updater: user\n })\n }\n\n @Directive('@privilege(category: \"user\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Appliance)\n async updateAppliance(\n @Arg('id') id: string,\n @Arg('patch') patch: AppliancePatch,\n @Ctx() context: ResolverContext\n ): Promise<Appliance> {\n const { domain } = context.state\n\n const applianceRepository = getRepository(Appliance)\n const userRepository = getRepository(User)\n const appliance = await applianceRepository.findOne({ where: { domain: { id: domain.id }, id } })\n const user = await userRepository.findOne({ where: { reference: id, userType: 'appliance' } })\n\n userRepository.save({\n ...user,\n name: patch?.name || user.name\n })\n\n return await applianceRepository.save({\n ...appliance,\n ...patch,\n updater: context.state.user\n })\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { Domain, ListParam } from '@things-factory/shell';
2
- import { Appliance } from '../appliance/appliance';
3
- import { User } from '../user/user';
4
- import { ApplianceList } from './appliance-types';
2
+ import { Appliance } from '../appliance/appliance.js';
3
+ import { User } from '../user/user.js';
4
+ import { ApplianceList } from './appliance-types.js';
5
5
  export declare class ApplianceQuery {
6
6
  appliance(id: string, context: ResolverContext): Promise<Appliance>;
7
7
  appliances(params: ListParam, context: ResolverContext): Promise<ApplianceList>;