@things-factory/auth-base 7.0.0-alpha.9 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (311) hide show
  1. package/client/actions/auth.ts +3 -3
  2. package/dist-client/actions/auth.d.ts +3 -3
  3. package/dist-client/actions/auth.js.map +1 -1
  4. package/dist-client/auth.js.map +1 -1
  5. package/dist-client/directive/privileged.d.ts +4 -4
  6. package/dist-client/directive/privileged.js.map +1 -1
  7. package/dist-client/profiled.js.map +1 -1
  8. package/dist-client/reducers/auth.js.map +1 -1
  9. package/dist-client/tsconfig.tsbuildinfo +1 -1
  10. package/dist-server/constants/error-code.d.ts +3 -0
  11. package/dist-server/constants/error-code.js +4 -1
  12. package/dist-server/constants/error-code.js.map +1 -1
  13. package/dist-server/controllers/change-pwd.js +1 -2
  14. package/dist-server/controllers/change-pwd.js.map +1 -1
  15. package/dist-server/controllers/checkin.js +1 -2
  16. package/dist-server/controllers/checkin.js.map +1 -1
  17. package/dist-server/controllers/delete-user.js +2 -3
  18. package/dist-server/controllers/delete-user.js.map +1 -1
  19. package/dist-server/controllers/invitation.js +4 -5
  20. package/dist-server/controllers/invitation.js.map +1 -1
  21. package/dist-server/controllers/profile.d.ts +1 -0
  22. package/dist-server/controllers/profile.js +1 -2
  23. package/dist-server/controllers/profile.js.map +1 -1
  24. package/dist-server/controllers/reset-password.js +2 -3
  25. package/dist-server/controllers/reset-password.js.map +1 -1
  26. package/dist-server/controllers/signin.js +1 -2
  27. package/dist-server/controllers/signin.js.map +1 -1
  28. package/dist-server/controllers/signup.js +1 -2
  29. package/dist-server/controllers/signup.js.map +1 -1
  30. package/dist-server/controllers/unlock-user.js +2 -3
  31. package/dist-server/controllers/unlock-user.js.map +1 -1
  32. package/dist-server/controllers/utils/make-invitation-token.js +1 -2
  33. package/dist-server/controllers/utils/make-invitation-token.js.map +1 -1
  34. package/dist-server/controllers/utils/make-verification-token.js +1 -2
  35. package/dist-server/controllers/utils/make-verification-token.js.map +1 -1
  36. package/dist-server/controllers/utils/password-rule.js +10 -10
  37. package/dist-server/controllers/utils/password-rule.js.map +1 -1
  38. package/dist-server/controllers/utils/save-invitation-token.js +1 -2
  39. package/dist-server/controllers/utils/save-invitation-token.js.map +1 -1
  40. package/dist-server/controllers/utils/save-verification-token.js +1 -2
  41. package/dist-server/controllers/utils/save-verification-token.js.map +1 -1
  42. package/dist-server/controllers/verification.js +3 -4
  43. package/dist-server/controllers/verification.js.map +1 -1
  44. package/dist-server/index.js.map +1 -1
  45. package/dist-server/middlewares/authenticate-401-middleware.js +2 -3
  46. package/dist-server/middlewares/authenticate-401-middleware.js.map +1 -1
  47. package/dist-server/middlewares/domain-authenticate-middleware.js +5 -3
  48. package/dist-server/middlewares/domain-authenticate-middleware.js.map +1 -1
  49. package/dist-server/middlewares/graphql-authenticate-middleware.js +1 -2
  50. package/dist-server/middlewares/graphql-authenticate-middleware.js.map +1 -1
  51. package/dist-server/middlewares/index.d.ts +1 -0
  52. package/dist-server/middlewares/index.js +3 -3
  53. package/dist-server/middlewares/index.js.map +1 -1
  54. package/dist-server/middlewares/jwt-authenticate-middleware.js +1 -2
  55. package/dist-server/middlewares/jwt-authenticate-middleware.js.map +1 -1
  56. package/dist-server/middlewares/signin-middleware.js +1 -2
  57. package/dist-server/middlewares/signin-middleware.js.map +1 -1
  58. package/dist-server/middlewares/webauthn-middleware.d.ts +1 -0
  59. package/dist-server/middlewares/webauthn-middleware.js +100 -0
  60. package/dist-server/middlewares/webauthn-middleware.js.map +1 -0
  61. package/dist-server/migrations/1548206416130-SeedUser.js.map +1 -1
  62. package/dist-server/migrations/1566805283882-SeedPrivilege.js.map +1 -1
  63. package/dist-server/router/auth-checkin-router.js.map +1 -1
  64. package/dist-server/router/auth-private-process-router.js +7 -1
  65. package/dist-server/router/auth-private-process-router.js.map +1 -1
  66. package/dist-server/router/auth-public-process-router.js.map +1 -1
  67. package/dist-server/router/auth-signin-router.js.map +1 -1
  68. package/dist-server/router/auth-signup-router.js.map +1 -1
  69. package/dist-server/router/index.d.ts +1 -0
  70. package/dist-server/router/index.js +1 -0
  71. package/dist-server/router/index.js.map +1 -1
  72. package/dist-server/router/oauth2/oauth2-authorize-router.js.map +1 -1
  73. package/dist-server/router/oauth2/oauth2-router.js.map +1 -1
  74. package/dist-server/router/oauth2/oauth2-server.js.map +1 -1
  75. package/dist-server/router/oauth2/passport-oauth2-client-password.js +1 -2
  76. package/dist-server/router/oauth2/passport-oauth2-client-password.js.map +1 -1
  77. package/dist-server/router/oauth2/passport-refresh-token.js +1 -2
  78. package/dist-server/router/oauth2/passport-refresh-token.js.map +1 -1
  79. package/dist-server/router/site-root-router.js.map +1 -1
  80. package/dist-server/router/webauthn-router.d.ts +2 -0
  81. package/dist-server/router/webauthn-router.js +69 -0
  82. package/dist-server/router/webauthn-router.js.map +1 -0
  83. package/dist-server/routes.js +3 -1
  84. package/dist-server/routes.js.map +1 -1
  85. package/dist-server/service/app-binding/app-binding-mutation.js +2 -2
  86. package/dist-server/service/app-binding/app-binding-mutation.js.map +1 -1
  87. package/dist-server/service/app-binding/app-binding-query.js +3 -3
  88. package/dist-server/service/app-binding/app-binding-query.js.map +1 -1
  89. package/dist-server/service/app-binding/app-binding-types.js +2 -2
  90. package/dist-server/service/app-binding/app-binding-types.js.map +1 -1
  91. package/dist-server/service/app-binding/app-binding.js +2 -2
  92. package/dist-server/service/app-binding/app-binding.js.map +1 -1
  93. package/dist-server/service/appliance/appliance-mutation.js +2 -2
  94. package/dist-server/service/appliance/appliance-mutation.js.map +1 -1
  95. package/dist-server/service/appliance/appliance-query.d.ts +1 -0
  96. package/dist-server/service/appliance/appliance-query.js +24 -3
  97. package/dist-server/service/appliance/appliance-query.js.map +1 -1
  98. package/dist-server/service/appliance/appliance-types.js +6 -6
  99. package/dist-server/service/appliance/appliance-types.js.map +1 -1
  100. package/dist-server/service/appliance/appliance.d.ts +1 -1
  101. package/dist-server/service/appliance/appliance.js +3 -2
  102. package/dist-server/service/appliance/appliance.js.map +1 -1
  103. package/dist-server/service/application/application-mutation.js +2 -2
  104. package/dist-server/service/application/application-mutation.js.map +1 -1
  105. package/dist-server/service/application/application-query.js +3 -3
  106. package/dist-server/service/application/application-query.js.map +1 -1
  107. package/dist-server/service/application/application-types.js +8 -8
  108. package/dist-server/service/application/application-types.js.map +1 -1
  109. package/dist-server/service/application/application.js +7 -6
  110. package/dist-server/service/application/application.js.map +1 -1
  111. package/dist-server/service/auth-provider/auth-provider-mutation.js +2 -2
  112. package/dist-server/service/auth-provider/auth-provider-mutation.js.map +1 -1
  113. package/dist-server/service/auth-provider/auth-provider-parameter-spec.d.ts +3 -0
  114. package/dist-server/service/auth-provider/auth-provider-parameter-spec.js +6 -2
  115. package/dist-server/service/auth-provider/auth-provider-parameter-spec.js.map +1 -1
  116. package/dist-server/service/auth-provider/auth-provider-query.js +3 -3
  117. package/dist-server/service/auth-provider/auth-provider-query.js.map +1 -1
  118. package/dist-server/service/auth-provider/auth-provider-type.js +6 -6
  119. package/dist-server/service/auth-provider/auth-provider-type.js.map +1 -1
  120. package/dist-server/service/auth-provider/auth-provider.d.ts +0 -5
  121. package/dist-server/service/auth-provider/auth-provider.js +8 -22
  122. package/dist-server/service/auth-provider/auth-provider.js.map +1 -1
  123. package/dist-server/service/domain-generator/domain-generator-mutation.js +2 -2
  124. package/dist-server/service/domain-generator/domain-generator-mutation.js.map +1 -1
  125. package/dist-server/service/domain-generator/domain-generator-types.js +6 -6
  126. package/dist-server/service/domain-generator/domain-generator-types.js.map +1 -1
  127. package/dist-server/service/granted-role/granted-role-mutation.js +6 -6
  128. package/dist-server/service/granted-role/granted-role-mutation.js.map +1 -1
  129. package/dist-server/service/granted-role/granted-role-query.js +2 -2
  130. package/dist-server/service/granted-role/granted-role-query.js.map +1 -1
  131. package/dist-server/service/granted-role/granted-role.d.ts +1 -1
  132. package/dist-server/service/granted-role/granted-role.js +3 -3
  133. package/dist-server/service/granted-role/granted-role.js.map +1 -1
  134. package/dist-server/service/index.d.ts +2 -1
  135. package/dist-server/service/index.js +4 -1
  136. package/dist-server/service/index.js.map +1 -1
  137. package/dist-server/service/invitation/invitation-mutation.js +2 -2
  138. package/dist-server/service/invitation/invitation-mutation.js.map +1 -1
  139. package/dist-server/service/invitation/invitation-query.js +2 -2
  140. package/dist-server/service/invitation/invitation-query.js.map +1 -1
  141. package/dist-server/service/invitation/invitation-types.js +2 -2
  142. package/dist-server/service/invitation/invitation-types.js.map +1 -1
  143. package/dist-server/service/invitation/invitation.js +2 -2
  144. package/dist-server/service/invitation/invitation.js.map +1 -1
  145. package/dist-server/service/login-history/login-history-query.js +3 -3
  146. package/dist-server/service/login-history/login-history-query.js.map +1 -1
  147. package/dist-server/service/login-history/login-history-type.js +2 -2
  148. package/dist-server/service/login-history/login-history-type.js.map +1 -1
  149. package/dist-server/service/login-history/login-history.d.ts +1 -1
  150. package/dist-server/service/login-history/login-history.js +4 -4
  151. package/dist-server/service/login-history/login-history.js.map +1 -1
  152. package/dist-server/service/partner/partner-mutation.js +2 -2
  153. package/dist-server/service/partner/partner-mutation.js.map +1 -1
  154. package/dist-server/service/partner/partner-query.js +4 -4
  155. package/dist-server/service/partner/partner-query.js.map +1 -1
  156. package/dist-server/service/partner/partner-types.js +2 -2
  157. package/dist-server/service/partner/partner-types.js.map +1 -1
  158. package/dist-server/service/partner/partner.d.ts +2 -2
  159. package/dist-server/service/partner/partner.js +6 -6
  160. package/dist-server/service/partner/partner.js.map +1 -1
  161. package/dist-server/service/password-history/password-history.js +2 -2
  162. package/dist-server/service/password-history/password-history.js.map +1 -1
  163. package/dist-server/service/privilege/privilege-directive.js.map +1 -1
  164. package/dist-server/service/privilege/privilege-mutation.js +2 -2
  165. package/dist-server/service/privilege/privilege-mutation.js.map +1 -1
  166. package/dist-server/service/privilege/privilege-query.js +3 -3
  167. package/dist-server/service/privilege/privilege-query.js.map +1 -1
  168. package/dist-server/service/privilege/privilege-types.js +8 -8
  169. package/dist-server/service/privilege/privilege-types.js.map +1 -1
  170. package/dist-server/service/privilege/privilege.js +6 -6
  171. package/dist-server/service/privilege/privilege.js.map +1 -1
  172. package/dist-server/service/role/role-mutation.js +2 -2
  173. package/dist-server/service/role/role-mutation.js.map +1 -1
  174. package/dist-server/service/role/role-query.js +3 -3
  175. package/dist-server/service/role/role-query.js.map +1 -1
  176. package/dist-server/service/role/role-types.js +10 -10
  177. package/dist-server/service/role/role-types.js.map +1 -1
  178. package/dist-server/service/role/role.d.ts +1 -1
  179. package/dist-server/service/role/role.js +4 -3
  180. package/dist-server/service/role/role.js.map +1 -1
  181. package/dist-server/service/user/domain-query.js +2 -2
  182. package/dist-server/service/user/domain-query.js.map +1 -1
  183. package/dist-server/service/user/user-mutation.js +2 -2
  184. package/dist-server/service/user/user-mutation.js.map +1 -1
  185. package/dist-server/service/user/user-query.js +3 -32
  186. package/dist-server/service/user/user-query.js.map +1 -1
  187. package/dist-server/service/user/user-types.js +6 -6
  188. package/dist-server/service/user/user-types.js.map +1 -1
  189. package/dist-server/service/user/user.d.ts +2 -0
  190. package/dist-server/service/user/user.js +19 -29
  191. package/dist-server/service/user/user.js.map +1 -1
  192. package/dist-server/service/users-auth-providers/users-auth-providers.js +3 -3
  193. package/dist-server/service/users-auth-providers/users-auth-providers.js.map +1 -1
  194. package/dist-server/service/verification-token/verification-token.js +3 -3
  195. package/dist-server/service/verification-token/verification-token.js.map +1 -1
  196. package/dist-server/service/web-auth-credential/index.d.ts +2 -0
  197. package/dist-server/service/web-auth-credential/index.js +6 -0
  198. package/dist-server/service/web-auth-credential/index.js.map +1 -0
  199. package/dist-server/service/web-auth-credential/web-auth-credential.d.ts +15 -0
  200. package/dist-server/service/web-auth-credential/web-auth-credential.js +72 -0
  201. package/dist-server/service/web-auth-credential/web-auth-credential.js.map +1 -0
  202. package/dist-server/templates/account-unlock-email.js +1 -2
  203. package/dist-server/templates/account-unlock-email.js.map +1 -1
  204. package/dist-server/templates/invitation-email.js +1 -2
  205. package/dist-server/templates/invitation-email.js.map +1 -1
  206. package/dist-server/templates/reset-password-email.js +1 -2
  207. package/dist-server/templates/reset-password-email.js.map +1 -1
  208. package/dist-server/templates/verification-email.js +1 -2
  209. package/dist-server/templates/verification-email.js.map +1 -1
  210. package/dist-server/tsconfig.tsbuildinfo +1 -1
  211. package/dist-server/types.d.ts +2 -2
  212. package/dist-server/types.js.map +1 -1
  213. package/dist-server/utils/accepts.js +1 -2
  214. package/dist-server/utils/accepts.js.map +1 -1
  215. package/dist-server/utils/access-token-cookie.d.ts +1 -0
  216. package/dist-server/utils/access-token-cookie.js +14 -4
  217. package/dist-server/utils/access-token-cookie.js.map +1 -1
  218. package/dist-server/utils/check-permission.js +1 -2
  219. package/dist-server/utils/check-permission.js.map +1 -1
  220. package/dist-server/utils/check-user-belongs-domain.js +1 -2
  221. package/dist-server/utils/check-user-belongs-domain.js.map +1 -1
  222. package/dist-server/utils/encrypt-state.js +2 -3
  223. package/dist-server/utils/encrypt-state.js.map +1 -1
  224. package/dist-server/utils/get-aes-256-key.js.map +1 -1
  225. package/dist-server/utils/get-domain-from-hostname.js +1 -2
  226. package/dist-server/utils/get-domain-from-hostname.js.map +1 -1
  227. package/dist-server/utils/get-domain-users.js +2 -3
  228. package/dist-server/utils/get-domain-users.js.map +1 -1
  229. package/dist-server/utils/get-secret.js.map +1 -1
  230. package/dist-server/utils/get-user-domains.js +4 -5
  231. package/dist-server/utils/get-user-domains.js.map +1 -1
  232. package/helps/config/SECRET.ja.md +13 -0
  233. package/helps/config/SECRET.ko.md +13 -0
  234. package/helps/config/SECRET.md +3 -3
  235. package/helps/config/SECRET.ms.md +13 -0
  236. package/helps/config/SECRET.zh.md +13 -0
  237. package/helps/config/accessTokenCookieKey.ja.md +11 -0
  238. package/helps/config/accessTokenCookieKey.ko.md +11 -0
  239. package/helps/config/accessTokenCookieKey.md +1 -1
  240. package/helps/config/accessTokenCookieKey.ms.md +11 -0
  241. package/helps/config/accessTokenCookieKey.zh.md +11 -0
  242. package/helps/config/applianceJwtExpiresIn.ja.md +26 -0
  243. package/helps/config/applianceJwtExpiresIn.ko.md +26 -0
  244. package/helps/config/applianceJwtExpiresIn.md +18 -15
  245. package/helps/config/applianceJwtExpiresIn.ms.md +30 -0
  246. package/helps/config/applianceJwtExpiresIn.zh.md +26 -0
  247. package/helps/config/disableUserSignupProcess.ja.md +22 -0
  248. package/helps/config/disableUserSignupProcess.ko.md +22 -0
  249. package/helps/config/disableUserSignupProcess.md +3 -3
  250. package/helps/config/disableUserSignupProcess.ms.md +22 -0
  251. package/helps/config/disableUserSignupProcess.zh.md +22 -0
  252. package/helps/config/i18n.ja.md +44 -0
  253. package/helps/config/i18n.ko.md +44 -0
  254. package/helps/config/i18n.md +6 -6
  255. package/helps/config/i18n.ms.md +44 -0
  256. package/helps/config/i18n.zh.md +44 -0
  257. package/helps/config/password.ja.md +53 -0
  258. package/helps/config/password.ko.md +65 -0
  259. package/helps/config/password.md +8 -36
  260. package/helps/config/password.ms.md +65 -0
  261. package/helps/config/password.zh.md +65 -0
  262. package/helps/config/publicHomeRoute.ja.md +14 -0
  263. package/helps/config/publicHomeRoute.ko.md +14 -0
  264. package/helps/config/publicHomeRoute.md +3 -3
  265. package/helps/config/publicHomeRoute.ms.md +14 -0
  266. package/helps/config/publicHomeRoute.zh.md +14 -0
  267. package/helps/config/session.ja.md +45 -0
  268. package/helps/config/session.ko.md +49 -0
  269. package/helps/config/session.md +10 -10
  270. package/helps/config/session.ms.md +46 -0
  271. package/helps/config/session.zh.md +49 -0
  272. package/package.json +12 -9
  273. package/server/constants/error-code.ts +3 -0
  274. package/server/middlewares/authenticate-401-middleware.ts +1 -1
  275. package/server/middlewares/domain-authenticate-middleware.ts +5 -1
  276. package/server/middlewares/index.ts +2 -1
  277. package/server/middlewares/webauthn-middleware.ts +127 -0
  278. package/server/router/auth-private-process-router.ts +8 -1
  279. package/server/router/index.ts +1 -0
  280. package/server/router/webauthn-router.ts +87 -0
  281. package/server/routes.ts +7 -8
  282. package/server/service/app-binding/app-binding-query.ts +1 -1
  283. package/server/service/appliance/appliance-query.ts +22 -1
  284. package/server/service/appliance/appliance.ts +4 -3
  285. package/server/service/application/application-query.ts +1 -1
  286. package/server/service/application/application.ts +7 -6
  287. package/server/service/auth-provider/auth-provider-parameter-spec.ts +3 -0
  288. package/server/service/auth-provider/auth-provider-query.ts +4 -1
  289. package/server/service/auth-provider/auth-provider-type.ts +3 -7
  290. package/server/service/auth-provider/auth-provider.ts +3 -19
  291. package/server/service/granted-role/granted-role.ts +2 -2
  292. package/server/service/index.ts +5 -5
  293. package/server/service/login-history/login-history-query.ts +4 -1
  294. package/server/service/login-history/login-history.ts +3 -3
  295. package/server/service/partner/partner-query.ts +5 -2
  296. package/server/service/partner/partner.ts +6 -6
  297. package/server/service/privilege/privilege-query.ts +14 -3
  298. package/server/service/role/role-query.ts +1 -1
  299. package/server/service/role/role.ts +3 -2
  300. package/server/service/user/user-query.ts +1 -33
  301. package/server/service/user/user.ts +12 -22
  302. package/server/service/users-auth-providers/users-auth-providers.ts +1 -1
  303. package/server/service/web-auth-credential/index.ts +3 -0
  304. package/server/service/web-auth-credential/web-auth-credential.ts +67 -0
  305. package/server/types.ts +2 -2
  306. package/server/utils/access-token-cookie.ts +12 -0
  307. package/translations/en.json +33 -28
  308. package/translations/ja.json +34 -29
  309. package/translations/ko.json +35 -29
  310. package/translations/ms.json +5 -0
  311. package/translations/zh.json +6 -0
@@ -1,11 +1,11 @@
1
- import { AnyAction } from 'redux'
1
+ import { Action } from '@reduxjs/toolkit'
2
2
  import { ThunkAction } from 'redux-thunk'
3
3
 
4
4
  export const SET_PROFILE = 'SET-PROFILE'
5
5
  export const SET_AUTH = 'SET-AUTH'
6
6
 
7
7
  export const updateUser =
8
- (user: any): ThunkAction<void, any, unknown, AnyAction> =>
8
+ (user: any): ThunkAction<void, any, unknown, Action<any>> =>
9
9
  (dispatch, getState) => {
10
10
  dispatch({
11
11
  type: SET_PROFILE,
@@ -14,7 +14,7 @@ export const updateUser =
14
14
  }
15
15
 
16
16
  export const updateAuthenticated =
17
- (auth: { authenticated: boolean }): ThunkAction<void, any, unknown, AnyAction> =>
17
+ (auth: { authenticated: boolean }): ThunkAction<void, any, unknown, Action<any>> =>
18
18
  (dispatch, getState) => {
19
19
  dispatch({
20
20
  type: SET_AUTH,
@@ -1,8 +1,8 @@
1
- import { AnyAction } from 'redux';
1
+ import { Action } from '@reduxjs/toolkit';
2
2
  import { ThunkAction } from 'redux-thunk';
3
3
  export declare const SET_PROFILE = "SET-PROFILE";
4
4
  export declare const SET_AUTH = "SET-AUTH";
5
- export declare const updateUser: (user: any) => ThunkAction<void, any, unknown, AnyAction>;
5
+ export declare const updateUser: (user: any) => ThunkAction<void, any, unknown, Action<any>>;
6
6
  export declare const updateAuthenticated: (auth: {
7
7
  authenticated: boolean;
8
- }) => ThunkAction<void, any, unknown, AnyAction>;
8
+ }) => ThunkAction<void, any, unknown, Action<any>>;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../client/actions/auth.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAA;AACxC,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAA;AAElC,MAAM,CAAC,MAAM,UAAU,GACrB,CAAC,IAAS,EAA8C,EAAE,CAC1D,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;IACrB,QAAQ,CAAC;QACP,IAAI,EAAE,WAAW;QACjB,IAAI;KACL,CAAC,CAAA;AACJ,CAAC,CAAA;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAC9B,CAAC,IAAgC,EAA8C,EAAE,CACjF,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;IACrB,QAAQ,CAAC;QACP,IAAI,EAAE,QAAQ;QACd,IAAI;KACL,CAAC,CAAA;AACJ,CAAC,CAAA","sourcesContent":["import { AnyAction } from 'redux'\nimport { ThunkAction } from 'redux-thunk'\n\nexport const SET_PROFILE = 'SET-PROFILE'\nexport const SET_AUTH = 'SET-AUTH'\n\nexport const updateUser =\n (user: any): ThunkAction<void, any, unknown, AnyAction> =>\n (dispatch, getState) => {\n dispatch({\n type: SET_PROFILE,\n user\n })\n }\n\nexport const updateAuthenticated =\n (auth: { authenticated: boolean }): ThunkAction<void, any, unknown, AnyAction> =>\n (dispatch, getState) => {\n dispatch({\n type: SET_AUTH,\n auth\n })\n }\n"]}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../client/actions/auth.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAA;AACxC,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAA;AAElC,MAAM,CAAC,MAAM,UAAU,GACrB,CAAC,IAAS,EAAgD,EAAE,CAC5D,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;IACrB,QAAQ,CAAC;QACP,IAAI,EAAE,WAAW;QACjB,IAAI;KACL,CAAC,CAAA;AACJ,CAAC,CAAA;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAC9B,CAAC,IAAgC,EAAgD,EAAE,CACnF,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;IACrB,QAAQ,CAAC;QACP,IAAI,EAAE,QAAQ;QACd,IAAI;KACL,CAAC,CAAA;AACJ,CAAC,CAAA","sourcesContent":["import { Action } from '@reduxjs/toolkit'\nimport { ThunkAction } from 'redux-thunk'\n\nexport const SET_PROFILE = 'SET-PROFILE'\nexport const SET_AUTH = 'SET-AUTH'\n\nexport const updateUser =\n (user: any): ThunkAction<void, any, unknown, Action<any>> =>\n (dispatch, getState) => {\n dispatch({\n type: SET_PROFILE,\n user\n })\n }\n\nexport const updateAuthenticated =\n (auth: { authenticated: boolean }): ThunkAction<void, any, unknown, Action<any>> =>\n (dispatch, getState) => {\n dispatch({\n type: SET_AUTH,\n auth\n })\n }\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../client/auth.ts"],"names":[],"mappings":"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","sourcesContent":["/* [ AUTH PATH ]\n signinPath = '/auth/signin'\n signoutPath = '/auth/signout'\n profilePath = '/auth/profile'\n updateProfilePath = '/auth/update-profile'\n changepassPath = '/auth/change-pass'\n deleteUserPath = '/auth/delete-user'\n*/\n\nconst HEADER_JSON = {\n 'Content-Type': 'application/json',\n Accept: 'application/json'\n}\ntype AuthEventName = 'profile' | 'signin' | 'signout' | 'presignout' | 'passwordchange' | 'error'\ntype AuthEventHandler = (e?: {\n accessToken?: string\n credential?: string\n domains: any[]\n domain: any\n languages?: { code: string; display: string }[]\n}) => void\ntype AuthErrorHandler = (err: any) => void\n\nclass ClientAuth {\n private listeners: {\n profile: AuthEventHandler[]\n signout: AuthEventHandler[]\n signin: AuthEventHandler[]\n presignout: AuthEventHandler[]\n passwordchange: AuthEventHandler[]\n error: AuthErrorHandler[]\n } = {\n profile: [],\n signout: [],\n signin: [],\n presignout: [],\n passwordchange: [],\n error: []\n }\n\n private authRequiredEventListener = this.onAuthRequired.bind(this)\n private activateRequiredEventListener = this.onActivateRequired.bind(this)\n\n private _credential: any\n private accessToken?: string\n private domains: any[] = []\n private domain: any\n private languages: { code: string; display: string }[] = []\n\n constructor() {\n document.addEventListener('auth-required', this.authRequiredEventListener)\n document.addEventListener('activate-required', this.activateRequiredEventListener)\n }\n\n on(event: AuthEventName, handler: AuthEventHandler | AuthErrorHandler) {\n var listeners = this.listeners[event]\n if (listeners) {\n listeners.push(handler)\n } else {\n console.log('unknown event', event)\n }\n\n if (event == 'profile' && this._credential) {\n /* \n 특별히 event 가 profile 인 경우에는 이미 fetch된 credential이 있다면, 콜백을 해준다. \n 시스템 bootstrap에서 profile 이벤트가 사용되는 경우가 많은데, profile도 매우 초기에 fetch 되므로 레이스컨디션이 발생할 수 있기 때문에, 확실하게 event 콜백을 보장하기 위해서이다.\n */\n handler({ credential: this._credential, domains: this.domains, domain: this.domain, languages: this.languages })\n }\n }\n\n off(event: AuthEventName, handler: AuthEventHandler | AuthErrorHandler) {\n var listeners = this.listeners[event]\n if (listeners) {\n let idx = listeners.indexOf(handler)\n idx >= 0 && listeners.splice(idx, 1)\n } else {\n console.log('unknown event', event)\n }\n }\n\n dispose() {\n document.removeEventListener('auth-required', this.authRequiredEventListener)\n document.removeEventListener('activate-required', this.activateRequiredEventListener)\n\n this.listeners = {\n profile: [],\n signin: [],\n signout: [],\n presignout: [],\n passwordchange: [],\n error: []\n }\n }\n\n private onProfileFetched({ credential, accessToken, domains, domain, languages }) {\n this._credential = credential\n this.domains = domains\n this.domain = domain\n this.languages = languages\n\n if (accessToken && !this.accessToken) {\n /*\n 기존에 세션을 가지거나, 액세스토큰으로 인증된 경우,\n 이 경우는 signin 이벤트리스너들을 호출해서 authenticated 상태로 되도록 유도한다.\n */\n this.accessToken = accessToken\n this.listeners.signin.forEach(handler => handler({ accessToken, domains, domain, languages }))\n }\n accessToken && (this.accessToken = accessToken)\n this.listeners.profile.forEach(handler => handler({ credential, domains, domain, languages }))\n }\n\n private async onPreSignout() {\n for (let onpresignout of this.listeners.presignout) {\n await onpresignout()\n }\n }\n\n private onAuthError(error) {\n /* signin, signup 과정에서 에러가 발생한 경우 */\n this.listeners?.error.forEach(handler => handler(error))\n }\n\n private onPasswordChanged(result) {\n //event is passwordchange, handler is result\n this.listeners?.passwordchange.forEach(handler => handler(result))\n }\n\n private onAuthRequired(e) {\n console.warn('authentication required')\n let url = new URL(window.location.href)\n url.pathname = '/auth/signin'\n url.searchParams.append('redirect_to', window.location.href)\n\n window.location.href = url.href\n }\n\n private onActivateRequired(e) {\n console.warn('activate required')\n var params = new URLSearchParams()\n params.append('email', e.email)\n\n window.location.replace(`/auth/activate?${params}`)\n }\n\n get credential() {\n return this._credential\n }\n\n route(path, redirected) {\n /* history에 남긴다. redirected된 상태임을 남긴다. */\n const location = window.location\n const origin = location.origin || location.protocol + '//' + location.host\n const href = `${origin}${path}`\n\n if (location.pathname === path) return\n\n // popstate 이벤트가 history.back() 에서만 발생하므로\n // 히스토리에 두번을 넣고 back()을 호출하는 편법을 사용함.\n // forward history가 한번 남는 문제가 있으나 signin 프로세스 중에만 발생하므로 큰 문제는 아님.\n // 이 로직은 login process가 어플리케이션 구조에 종속되는 것을 최소화하기 위함임.\n // 예를 들면, redux 구조에 들어가지 않아도 로그인 프로세스가 동작하도록 한 것임.\n window.history.pushState({ redirected }, '', href)\n window.history.pushState({}, '', href)\n\n window.history.back()\n }\n\n async updateProfile(formProps) {\n const response = await fetch('/auth/update-profile', {\n method: 'POST',\n credentials: 'include',\n headers: HEADER_JSON,\n body: JSON.stringify(formProps)\n })\n\n const message = await response.text()\n if (response.ok) {\n return message\n }\n\n throw new Error(message)\n }\n\n async changePassword(formProps) {\n try {\n const response = await fetch('/auth/change-pass', {\n method: 'POST',\n credentials: 'include',\n headers: HEADER_JSON,\n body: JSON.stringify(formProps)\n })\n\n const message = await response.text()\n if (response.ok) {\n this.onPasswordChanged({ message })\n } else {\n this.onAuthError({ message })\n }\n } catch (e) {\n this.onAuthError(e)\n }\n }\n\n async deleteUser(params) {\n const response = await fetch('/auth/delete-user', {\n method: 'POST',\n credentials: 'include',\n headers: HEADER_JSON,\n body: JSON.stringify(params)\n })\n\n const message = await response.text()\n if (response.ok) {\n return message\n } else {\n throw new Error(message)\n }\n }\n\n async profile() {\n if (sessionStorage.getItem('ThingsFactory-UseExternServer')) {\n return\n }\n\n try {\n var searchParams = new URLSearchParams(location.search)\n var token = searchParams.get('token')\n var headers = JSON.parse(JSON.stringify(HEADER_JSON))\n\n if (token) {\n headers.authorization = `Bearer ${token}`\n }\n\n const response = await fetch('/auth/profile', {\n method: 'GET',\n credentials: 'include',\n headers\n })\n\n if (response.ok) {\n if (response.redirected) {\n location.href = response.url\n return\n }\n\n const data = await response.json()\n\n this.onProfileFetched({\n credential: data.user,\n accessToken: data.token,\n domains: data.domains,\n domain: data.domain,\n languages: data.languages\n })\n\n return\n }\n } catch (e) {\n this.onAuthError(e)\n }\n }\n\n async signout() {\n await this.onPreSignout()\n\n window.location.href = '/auth/signout'\n }\n}\n\nexport const auth = new ClientAuth()\n"]}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../client/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;EAOE;AAEF,MAAM,WAAW,GAAG;IAClB,cAAc,EAAE,kBAAkB;IAClC,MAAM,EAAE,kBAAkB;CAC3B,CAAA;AAWD,MAAM,UAAU;IA0Bd;QAzBQ,cAAS,GAOb;YACF,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,EAAE;YACd,cAAc,EAAE,EAAE;YAClB,KAAK,EAAE,EAAE;SACV,CAAA;QAEO,8BAAyB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1D,kCAA6B,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAIlE,YAAO,GAAU,EAAE,CAAA;QAEnB,cAAS,GAAwC,EAAE,CAAA;QAGzD,QAAQ,CAAC,gBAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAA;QAC1E,QAAQ,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,IAAI,CAAC,6BAA6B,CAAC,CAAA;IACpF,CAAC;IAED,EAAE,CAAC,KAAoB,EAAE,OAA4C;QACnE,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QACrC,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACzB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;QACrC,CAAC;QAED,IAAI,KAAK,IAAI,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC3C;;;cAGE;YACF,OAAO,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;QAClH,CAAC;IACH,CAAC;IAED,GAAG,CAAC,KAAoB,EAAE,OAA4C;QACpE,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QACrC,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YACpC,GAAG,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;QACtC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IAED,OAAO;QACL,QAAQ,CAAC,mBAAmB,CAAC,eAAe,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAA;QAC7E,QAAQ,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,IAAI,CAAC,6BAA6B,CAAC,CAAA;QAErF,IAAI,CAAC,SAAS,GAAG;YACf,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,EAAE;YACd,cAAc,EAAE,EAAE;YAClB,KAAK,EAAE,EAAE;SACV,CAAA;IACH,CAAC;IAEO,gBAAgB,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE;QAC9E,IAAI,CAAC,WAAW,GAAG,UAAU,CAAA;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAE1B,IAAI,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACrC;;;cAGE;YACF,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;YAC9B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;QAChG,CAAC;QACD,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,CAAA;QAC/C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;IAChG,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,KAAK,IAAI,YAAY,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;YACnD,MAAM,YAAY,EAAE,CAAA;QACtB,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,KAAK;;QACvB,oCAAoC;QACpC,MAAA,IAAI,CAAC,SAAS,0CAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1D,CAAC;IAEO,iBAAiB,CAAC,MAAM;;QAC9B,4CAA4C;QAC5C,MAAA,IAAI,CAAC,SAAS,0CAAE,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IACpE,CAAC;IAEO,cAAc,CAAC,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;QACvC,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACvC,GAAG,CAAC,QAAQ,GAAG,cAAc,CAAA;QAC7B,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAE5D,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;IACjC,CAAC;IAEO,kBAAkB,CAAC,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;QACjC,IAAI,MAAM,GAAG,IAAI,eAAe,EAAE,CAAA;QAClC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAA;QAE/B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAAA;IACrD,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,IAAI,EAAE,UAAU;QACpB,yCAAyC;QACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;QAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,QAAQ,GAAG,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAA;QAC1E,MAAM,IAAI,GAAG,GAAG,MAAM,GAAG,IAAI,EAAE,CAAA;QAE/B,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI;YAAE,OAAM;QAEtC,yCAAyC;QACzC,qCAAqC;QACrC,iEAAiE;QACjE,qDAAqD;QACrD,kDAAkD;QAClD,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;QAClD,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;QAEtC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAS;QAC3B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,sBAAsB,EAAE;YACnD,MAAM,EAAE,MAAM;YACd,WAAW,EAAE,SAAS;YACtB,OAAO,EAAE,WAAW;YACpB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;SAChC,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QACrC,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,OAAO,OAAO,CAAA;QAChB,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,SAAS;QAC5B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,mBAAmB,EAAE;gBAChD,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,SAAS;gBACtB,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;aAChC,CAAC,CAAA;YAEF,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;YACrC,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAChB,IAAI,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;YACrC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;YAC/B,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;QACrB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAM;QACrB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,mBAAmB,EAAE;YAChD,MAAM,EAAE,MAAM;YACd,WAAW,EAAE,SAAS;YACtB,OAAO,EAAE,WAAW;YACpB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;SAC7B,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QACrC,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,OAAO,OAAO,CAAA;QAChB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,cAAc,CAAC,OAAO,CAAC,+BAA+B,CAAC,EAAE,CAAC;YAC5D,OAAM;QACR,CAAC;QAED,IAAI,CAAC;YACH,IAAI,YAAY,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YACvD,IAAI,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACrC,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAA;YAErD,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,aAAa,GAAG,UAAU,KAAK,EAAE,CAAA;YAC3C,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,eAAe,EAAE;gBAC5C,MAAM,EAAE,KAAK;gBACb,WAAW,EAAE,SAAS;gBACtB,OAAO;aACR,CAAC,CAAA;YAEF,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAChB,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;oBACxB,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAA;oBAC5B,OAAM;gBACR,CAAC;gBAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;gBAElC,IAAI,CAAC,gBAAgB,CAAC;oBACpB,UAAU,EAAE,IAAI,CAAC,IAAI;oBACrB,WAAW,EAAE,IAAI,CAAC,KAAK;oBACvB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;iBAC1B,CAAC,CAAA;gBAEF,OAAM;YACR,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;QACrB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QAEzB,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,eAAe,CAAA;IACxC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,UAAU,EAAE,CAAA","sourcesContent":["/* [ AUTH PATH ]\n signinPath = '/auth/signin'\n signoutPath = '/auth/signout'\n profilePath = '/auth/profile'\n updateProfilePath = '/auth/update-profile'\n changepassPath = '/auth/change-pass'\n deleteUserPath = '/auth/delete-user'\n*/\n\nconst HEADER_JSON = {\n 'Content-Type': 'application/json',\n Accept: 'application/json'\n}\ntype AuthEventName = 'profile' | 'signin' | 'signout' | 'presignout' | 'passwordchange' | 'error'\ntype AuthEventHandler = (e?: {\n accessToken?: string\n credential?: string\n domains: any[]\n domain: any\n languages?: { code: string; display: string }[]\n}) => void\ntype AuthErrorHandler = (err: any) => void\n\nclass ClientAuth {\n private listeners: {\n profile: AuthEventHandler[]\n signout: AuthEventHandler[]\n signin: AuthEventHandler[]\n presignout: AuthEventHandler[]\n passwordchange: AuthEventHandler[]\n error: AuthErrorHandler[]\n } = {\n profile: [],\n signout: [],\n signin: [],\n presignout: [],\n passwordchange: [],\n error: []\n }\n\n private authRequiredEventListener = this.onAuthRequired.bind(this)\n private activateRequiredEventListener = this.onActivateRequired.bind(this)\n\n private _credential: any\n private accessToken?: string\n private domains: any[] = []\n private domain: any\n private languages: { code: string; display: string }[] = []\n\n constructor() {\n document.addEventListener('auth-required', this.authRequiredEventListener)\n document.addEventListener('activate-required', this.activateRequiredEventListener)\n }\n\n on(event: AuthEventName, handler: AuthEventHandler | AuthErrorHandler) {\n var listeners = this.listeners[event]\n if (listeners) {\n listeners.push(handler)\n } else {\n console.log('unknown event', event)\n }\n\n if (event == 'profile' && this._credential) {\n /* \n 특별히 event 가 profile 인 경우에는 이미 fetch된 credential이 있다면, 콜백을 해준다. \n 시스템 bootstrap에서 profile 이벤트가 사용되는 경우가 많은데, profile도 매우 초기에 fetch 되므로 레이스컨디션이 발생할 수 있기 때문에, 확실하게 event 콜백을 보장하기 위해서이다.\n */\n handler({ credential: this._credential, domains: this.domains, domain: this.domain, languages: this.languages })\n }\n }\n\n off(event: AuthEventName, handler: AuthEventHandler | AuthErrorHandler) {\n var listeners = this.listeners[event]\n if (listeners) {\n let idx = listeners.indexOf(handler)\n idx >= 0 && listeners.splice(idx, 1)\n } else {\n console.log('unknown event', event)\n }\n }\n\n dispose() {\n document.removeEventListener('auth-required', this.authRequiredEventListener)\n document.removeEventListener('activate-required', this.activateRequiredEventListener)\n\n this.listeners = {\n profile: [],\n signin: [],\n signout: [],\n presignout: [],\n passwordchange: [],\n error: []\n }\n }\n\n private onProfileFetched({ credential, accessToken, domains, domain, languages }) {\n this._credential = credential\n this.domains = domains\n this.domain = domain\n this.languages = languages\n\n if (accessToken && !this.accessToken) {\n /*\n 기존에 세션을 가지거나, 액세스토큰으로 인증된 경우,\n 이 경우는 signin 이벤트리스너들을 호출해서 authenticated 상태로 되도록 유도한다.\n */\n this.accessToken = accessToken\n this.listeners.signin.forEach(handler => handler({ accessToken, domains, domain, languages }))\n }\n accessToken && (this.accessToken = accessToken)\n this.listeners.profile.forEach(handler => handler({ credential, domains, domain, languages }))\n }\n\n private async onPreSignout() {\n for (let onpresignout of this.listeners.presignout) {\n await onpresignout()\n }\n }\n\n private onAuthError(error) {\n /* signin, signup 과정에서 에러가 발생한 경우 */\n this.listeners?.error.forEach(handler => handler(error))\n }\n\n private onPasswordChanged(result) {\n //event is passwordchange, handler is result\n this.listeners?.passwordchange.forEach(handler => handler(result))\n }\n\n private onAuthRequired(e) {\n console.warn('authentication required')\n let url = new URL(window.location.href)\n url.pathname = '/auth/signin'\n url.searchParams.append('redirect_to', window.location.href)\n\n window.location.href = url.href\n }\n\n private onActivateRequired(e) {\n console.warn('activate required')\n var params = new URLSearchParams()\n params.append('email', e.email)\n\n window.location.replace(`/auth/activate?${params}`)\n }\n\n get credential() {\n return this._credential\n }\n\n route(path, redirected) {\n /* history에 남긴다. redirected된 상태임을 남긴다. */\n const location = window.location\n const origin = location.origin || location.protocol + '//' + location.host\n const href = `${origin}${path}`\n\n if (location.pathname === path) return\n\n // popstate 이벤트가 history.back() 에서만 발생하므로\n // 히스토리에 두번을 넣고 back()을 호출하는 편법을 사용함.\n // forward history가 한번 남는 문제가 있으나 signin 프로세스 중에만 발생하므로 큰 문제는 아님.\n // 이 로직은 login process가 어플리케이션 구조에 종속되는 것을 최소화하기 위함임.\n // 예를 들면, redux 구조에 들어가지 않아도 로그인 프로세스가 동작하도록 한 것임.\n window.history.pushState({ redirected }, '', href)\n window.history.pushState({}, '', href)\n\n window.history.back()\n }\n\n async updateProfile(formProps) {\n const response = await fetch('/auth/update-profile', {\n method: 'POST',\n credentials: 'include',\n headers: HEADER_JSON,\n body: JSON.stringify(formProps)\n })\n\n const message = await response.text()\n if (response.ok) {\n return message\n }\n\n throw new Error(message)\n }\n\n async changePassword(formProps) {\n try {\n const response = await fetch('/auth/change-pass', {\n method: 'POST',\n credentials: 'include',\n headers: HEADER_JSON,\n body: JSON.stringify(formProps)\n })\n\n const message = await response.text()\n if (response.ok) {\n this.onPasswordChanged({ message })\n } else {\n this.onAuthError({ message })\n }\n } catch (e) {\n this.onAuthError(e)\n }\n }\n\n async deleteUser(params) {\n const response = await fetch('/auth/delete-user', {\n method: 'POST',\n credentials: 'include',\n headers: HEADER_JSON,\n body: JSON.stringify(params)\n })\n\n const message = await response.text()\n if (response.ok) {\n return message\n } else {\n throw new Error(message)\n }\n }\n\n async profile() {\n if (sessionStorage.getItem('ThingsFactory-UseExternServer')) {\n return\n }\n\n try {\n var searchParams = new URLSearchParams(location.search)\n var token = searchParams.get('token')\n var headers = JSON.parse(JSON.stringify(HEADER_JSON))\n\n if (token) {\n headers.authorization = `Bearer ${token}`\n }\n\n const response = await fetch('/auth/profile', {\n method: 'GET',\n credentials: 'include',\n headers\n })\n\n if (response.ok) {\n if (response.redirected) {\n location.href = response.url\n return\n }\n\n const data = await response.json()\n\n this.onProfileFetched({\n credential: data.user,\n accessToken: data.token,\n domains: data.domains,\n domain: data.domain,\n languages: data.languages\n })\n\n return\n }\n } catch (e) {\n this.onAuthError(e)\n }\n }\n\n async signout() {\n await this.onPreSignout()\n\n window.location.href = '/auth/signout'\n }\n}\n\nexport const auth = new ClientAuth()\n"]}
@@ -8,9 +8,9 @@ declare class PrivilegedDirective extends AsyncDirective {
8
8
  }, trueResult: any, falseResult?: any): void;
9
9
  }
10
10
  export declare const privileged: (privilege: {
11
- privilege?: string | undefined;
12
- category?: string | undefined;
13
- domainOwnerGranted?: boolean | undefined;
14
- superUserGranted?: boolean | undefined;
11
+ privilege?: string;
12
+ category?: string;
13
+ domainOwnerGranted?: boolean;
14
+ superUserGranted?: boolean;
15
15
  }, trueResult: any, falseResult?: any) => import("lit-html/directive").DirectiveResult<typeof PrivilegedDirective>;
16
16
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"privileged.js","sourceRoot":"","sources":["../../client/directive/privileged.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAA;AAC7B,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,MAAM,mBAAoB,SAAQ,cAAc;IAC9C,MAAM,CACJ,SAKC,EACD,UAAe,EACf,cAAmB,OAAO;QAE1B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QAEtB,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACpC,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;aAC1B;iBAAM;gBACL,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;aAC3B;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC,mBAAmB,CAAC,CAAA","sourcesContent":["import { nothing } from 'lit'\nimport { directive, AsyncDirective } from 'lit/async-directive.js'\nimport { hasPrivilege } from '../profiled'\n\nclass PrivilegedDirective extends AsyncDirective {\n render(\n privilege: {\n privilege?: string\n category?: string\n domainOwnerGranted?: boolean\n superUserGranted?: boolean\n },\n trueResult: any,\n falseResult: any = nothing\n ) {\n this.setValue(nothing)\n\n hasPrivilege(privilege).then(result => {\n if (result) {\n this.setValue(trueResult)\n } else {\n this.setValue(falseResult)\n }\n })\n }\n}\n\nexport const privileged = directive(PrivilegedDirective)\n"]}
1
+ {"version":3,"file":"privileged.js","sourceRoot":"","sources":["../../client/directive/privileged.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAA;AAC7B,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,MAAM,mBAAoB,SAAQ,cAAc;IAC9C,MAAM,CACJ,SAKC,EACD,UAAe,EACf,cAAmB,OAAO;QAE1B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QAEtB,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACpC,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;YAC3B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;YAC5B,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC,mBAAmB,CAAC,CAAA","sourcesContent":["import { nothing } from 'lit'\nimport { directive, AsyncDirective } from 'lit/async-directive.js'\nimport { hasPrivilege } from '../profiled'\n\nclass PrivilegedDirective extends AsyncDirective {\n render(\n privilege: {\n privilege?: string\n category?: string\n domainOwnerGranted?: boolean\n superUserGranted?: boolean\n },\n trueResult: any,\n falseResult: any = nothing\n ) {\n this.setValue(nothing)\n\n hasPrivilege(privilege).then(result => {\n if (result) {\n this.setValue(trueResult)\n } else {\n this.setValue(falseResult)\n }\n })\n }\n}\n\nexport const privileged = directive(PrivilegedDirective)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"profiled.js","sourceRoot":"","sources":["../client/profiled.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE7B,IAAI,eAAe,GAAG,KAAK,CAAA;AAC3B,IAAI,IAAI,CAAA;AACR,IAAI,SAAS,CAAA;AACb,IAAI,MAAM,CAAA;AACV,IAAI,OAAO,CAAA;AAEX,MAAM,YAAY,GAAG,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;IAC/C,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAgD,EAAE,EAAE;QACtE,eAAe,GAAG,IAAI,CAAA;QAEtB,IAAI,GAAG,IAAI,CAAC,UAAU,CAAA;QACtB,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAC1B,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QACpB,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAEtB,OAAO,EAAE,CAAA;IACX,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EACjC,SAAS,EACT,QAAQ,EACR,kBAAkB,EAClB,gBAAgB,EAMjB;IACC,IAAI,CAAC,eAAe,EAAE;QACpB,MAAM,YAAY,CAAA;KACnB;IAED,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;IAE9D,IAAI,QAAQ,EAAE;QACZ,IAAI,SAAS,IAAI,QAAQ,EAAE;YACzB,8CAA8C;YAC9C,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,SAAS,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAA;SACxF;QAED,yEAAyE;QACzE,OAAO,CAAC,kBAAkB,IAAI,CAAC,gBAAgB,CAAA;KAChD;SAAM;QACL,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE;YAC3B,+DAA+D;YAC/D,OAAO,CAAC,kBAAkB,IAAI,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,SAAS,CAAC,CAAA;SACxE;QAED,IAAI,CAAC,kBAAkB,IAAI,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,SAAS,CAAC,EAAE;YACpE,OAAO,IAAI,CAAA;SACZ;QAED,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,SAAS,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAA;KACxF;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,CAAC,eAAe,EAAE;QACpB,MAAM,YAAY,CAAA;KACnB;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,IAAI,CAAC,eAAe,EAAE;QACpB,MAAM,YAAY,CAAA;KACnB;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,IAAI,CAAC,eAAe,EAAE;QACpB,MAAM,YAAY,CAAA;KACnB;IAED,OAAO,OAAO,CAAA;AAChB,CAAC","sourcesContent":["import { auth } from './auth'\n\nvar profileResolved = false\nvar user\nvar languages\nvar domain\nvar domains\n\nconst profileReady = new Promise<void>(resolve => {\n auth.on('profile', (data: { credential; domains; domain; languages }) => {\n profileResolved = true\n\n user = data.credential\n languages = data.languages\n domain = data.domain\n domains = data.domains\n\n resolve()\n })\n})\n\nexport async function hasPrivilege({\n privilege,\n category,\n domainOwnerGranted,\n superUserGranted\n}: {\n privilege?: string\n category?: string\n domainOwnerGranted?: boolean\n superUserGranted?: boolean\n}) {\n if (!profileResolved) {\n await profileReady\n }\n\n const { privileges, owner, super: superUser, unsafeIP } = user\n\n if (unsafeIP) {\n if (privilege && category) {\n // unsafeIP 상황에서는 ownership granted는 적용되지 않는다.\n return (privileges || []).find(p => p.privilege == privilege && p.category == category)\n }\n\n // privileage, category가 설정되지 않은 경우에는 ownership granted가 설정되었다면 허가하지 않는다.\n return !domainOwnerGranted && !superUserGranted\n } else {\n if (!privilege || !category) {\n // privileage, category가 설정되지 않은 경우에는 ownership granted만을 적용한다.\n return (domainOwnerGranted && owner) || (superUserGranted && superUser)\n }\n\n if ((domainOwnerGranted && owner) || (superUserGranted && superUser)) {\n return true\n }\n\n return (privileges || []).find(p => p.privilege == privilege && p.category == category)\n }\n}\n\nexport async function getLanguages() {\n if (!profileResolved) {\n await profileReady\n }\n\n return languages\n}\n\nexport async function getDomain() {\n if (!profileResolved) {\n await profileReady\n }\n\n return domain\n}\n\nexport async function getDomains() {\n if (!profileResolved) {\n await profileReady\n }\n\n return domains\n}\n"]}
1
+ {"version":3,"file":"profiled.js","sourceRoot":"","sources":["../client/profiled.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE7B,IAAI,eAAe,GAAG,KAAK,CAAA;AAC3B,IAAI,IAAI,CAAA;AACR,IAAI,SAAS,CAAA;AACb,IAAI,MAAM,CAAA;AACV,IAAI,OAAO,CAAA;AAEX,MAAM,YAAY,GAAG,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;IAC/C,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAgD,EAAE,EAAE;QACtE,eAAe,GAAG,IAAI,CAAA;QAEtB,IAAI,GAAG,IAAI,CAAC,UAAU,CAAA;QACtB,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAC1B,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QACpB,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAEtB,OAAO,EAAE,CAAA;IACX,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EACjC,SAAS,EACT,QAAQ,EACR,kBAAkB,EAClB,gBAAgB,EAMjB;IACC,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,YAAY,CAAA;IACpB,CAAC;IAED,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;IAE9D,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;YAC1B,8CAA8C;YAC9C,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,SAAS,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAA;QACzF,CAAC;QAED,yEAAyE;QACzE,OAAO,CAAC,kBAAkB,IAAI,CAAC,gBAAgB,CAAA;IACjD,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,+DAA+D;YAC/D,OAAO,CAAC,kBAAkB,IAAI,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,SAAS,CAAC,CAAA;QACzE,CAAC;QAED,IAAI,CAAC,kBAAkB,IAAI,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,SAAS,CAAC,EAAE,CAAC;YACrE,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,SAAS,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAA;IACzF,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,YAAY,CAAA;IACpB,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,YAAY,CAAA;IACpB,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,YAAY,CAAA;IACpB,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC","sourcesContent":["import { auth } from './auth'\n\nvar profileResolved = false\nvar user\nvar languages\nvar domain\nvar domains\n\nconst profileReady = new Promise<void>(resolve => {\n auth.on('profile', (data: { credential; domains; domain; languages }) => {\n profileResolved = true\n\n user = data.credential\n languages = data.languages\n domain = data.domain\n domains = data.domains\n\n resolve()\n })\n})\n\nexport async function hasPrivilege({\n privilege,\n category,\n domainOwnerGranted,\n superUserGranted\n}: {\n privilege?: string\n category?: string\n domainOwnerGranted?: boolean\n superUserGranted?: boolean\n}) {\n if (!profileResolved) {\n await profileReady\n }\n\n const { privileges, owner, super: superUser, unsafeIP } = user\n\n if (unsafeIP) {\n if (privilege && category) {\n // unsafeIP 상황에서는 ownership granted는 적용되지 않는다.\n return (privileges || []).find(p => p.privilege == privilege && p.category == category)\n }\n\n // privileage, category가 설정되지 않은 경우에는 ownership granted가 설정되었다면 허가하지 않는다.\n return !domainOwnerGranted && !superUserGranted\n } else {\n if (!privilege || !category) {\n // privileage, category가 설정되지 않은 경우에는 ownership granted만을 적용한다.\n return (domainOwnerGranted && owner) || (superUserGranted && superUser)\n }\n\n if ((domainOwnerGranted && owner) || (superUserGranted && superUser)) {\n return true\n }\n\n return (privileges || []).find(p => p.privilege == privilege && p.category == category)\n }\n}\n\nexport async function getLanguages() {\n if (!profileResolved) {\n await profileReady\n }\n\n return languages\n}\n\nexport async function getDomain() {\n if (!profileResolved) {\n await profileReady\n }\n\n return domain\n}\n\nexport async function getDomains() {\n if (!profileResolved) {\n await profileReady\n }\n\n return domains\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../client/reducers/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAEvD,MAAM,aAAa,GAAG;IACpB,aAAa,EAAE,KAAK;IACpB,WAAW,EAAE,EAAE;IACf,IAAI,EAAE,IAAI;CACX,CAAA;AAED,MAAM,IAAI,GAAG,CAAC,KAAK,GAAG,aAAa,EAAE,MAAM,EAAE,EAAE;IAC7C,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,QAAQ;YACX,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;YAEtB,uCACK,KAAK,KACR,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,WAAW,EAAE,IAAI,CAAC,WAAW,IAC9B;QAEH,KAAK,WAAW;YACd,uCACK,KAAK,KACR,IAAI,EAAE,MAAM,CAAC,IAAI,IAClB;QAEH;YACE,OAAO,KAAK,CAAA;KACf;AACH,CAAC,CAAA;AAED,eAAe,IAAI,CAAA","sourcesContent":["import { SET_AUTH, SET_PROFILE } from '../actions/auth'\n\nconst INITIAL_STATE = {\n authenticated: false,\n accessToken: '',\n user: null\n}\n\nconst auth = (state = INITIAL_STATE, action) => {\n switch (action.type) {\n case SET_AUTH:\n let auth = action.auth\n\n return {\n ...state,\n authenticated: auth.authenticated,\n accessToken: auth.accessToken\n }\n\n case SET_PROFILE:\n return {\n ...state,\n user: action.user\n }\n\n default:\n return state\n }\n}\n\nexport default auth\n"]}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../client/reducers/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAEvD,MAAM,aAAa,GAAG;IACpB,aAAa,EAAE,KAAK;IACpB,WAAW,EAAE,EAAE;IACf,IAAI,EAAE,IAAI;CACX,CAAA;AAED,MAAM,IAAI,GAAG,CAAC,KAAK,GAAG,aAAa,EAAE,MAAM,EAAE,EAAE;IAC7C,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,QAAQ;YACX,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;YAEtB,uCACK,KAAK,KACR,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,WAAW,EAAE,IAAI,CAAC,WAAW,IAC9B;QAEH,KAAK,WAAW;YACd,uCACK,KAAK,KACR,IAAI,EAAE,MAAM,CAAC,IAAI,IAClB;QAEH;YACE,OAAO,KAAK,CAAA;IAChB,CAAC;AACH,CAAC,CAAA;AAED,eAAe,IAAI,CAAA","sourcesContent":["import { SET_AUTH, SET_PROFILE } from '../actions/auth'\n\nconst INITIAL_STATE = {\n authenticated: false,\n accessToken: '',\n user: null\n}\n\nconst auth = (state = INITIAL_STATE, action) => {\n switch (action.type) {\n case SET_AUTH:\n let auth = action.auth\n\n return {\n ...state,\n authenticated: auth.authenticated,\n accessToken: auth.accessToken\n }\n\n case SET_PROFILE:\n return {\n ...state,\n user: action.user\n }\n\n default:\n return state\n }\n}\n\nexport default auth\n"]}
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../../node_modules/lerna/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/lerna/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/tslib/tslib.d.ts","../client/auth.ts","../../../node_modules/@operato/shell/dist/src/types/domain.d.ts","../../../node_modules/@operato/shell/dist/src/types/user.d.ts","../../../node_modules/@operato/shell/dist/src/types/role.d.ts","../../../node_modules/@operato/shell/dist/src/types/privilege.d.ts","../../../node_modules/@operato/shell/dist/src/types/types.d.ts","../../../node_modules/@operato/shell/dist/src/types/index.d.ts","../../../node_modules/redux/index.d.ts","../../../node_modules/pwa-helpers/lazy-reducer-enhancer.d.ts","../../../node_modules/@operato/shell/dist/src/store.d.ts","../../../node_modules/@operato/shell/dist/src/actions/app.d.ts","../../../node_modules/@operato/shell/dist/src/actions/route.d.ts","../../../node_modules/@operato/shell/dist/src/actions/busy.d.ts","../../../node_modules/@operato/shell/dist/src/actions/const.d.ts","../../../node_modules/@operato/shell/dist/src/actions/index.d.ts","../../../node_modules/@lit/reactive-element/css-tag.d.ts","../../../node_modules/@lit/reactive-element/reactive-controller.d.ts","../../../node_modules/@lit/reactive-element/reactive-element.d.ts","../../../node_modules/@types/trusted-types/lib/index.d.ts","../../../node_modules/@types/trusted-types/index.d.ts","../../../node_modules/lit-html/directive.d.ts","../../../node_modules/lit-html/lit-html.d.ts","../../../node_modules/lit-element/lit-element.d.ts","../../../node_modules/lit-html/is-server.d.ts","../../../node_modules/lit/index.d.ts","../../../node_modules/@operato/shell/dist/src/app/pages/page-view.d.ts","../../../node_modules/@operato/shell/dist/src/object-store.d.ts","../../../node_modules/@operato/shell/dist/src/index.d.ts","../../../node_modules/redux-thunk/es/types.d.ts","../../../node_modules/redux-thunk/es/index.d.ts","../client/actions/auth.ts","../client/reducers/auth.ts","../../../node_modules/lit-html/async-directive.d.ts","../../../node_modules/lit/async-directive.d.ts","../client/profiled.ts","../client/directive/privileged.ts","../client/bootstrap.ts","../client/index.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/buffer/index.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/file.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/filereader.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/dom-events.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@jest/expect-utils/build/index.d.ts","../../../node_modules/chalk/index.d.ts","../../../node_modules/@sinclair/typebox/typebox.d.ts","../../../node_modules/@jest/schemas/build/index.d.ts","../../../node_modules/pretty-format/build/index.d.ts","../../../node_modules/jest-diff/build/index.d.ts","../../../node_modules/jest-matcher-utils/build/index.d.ts","../../../node_modules/expect/build/index.d.ts","../../../node_modules/@types/jest/index.d.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"f3d4da15233e593eacb3965cde7960f3fddf5878528d882bcedd5cbaba0193c7","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"7a1971efcba559ea9002ada4c4e3c925004fb67a755300d53b5edf9399354900",{"version":"b43c3d6f808876e21ed81a3bb8e348be01110ca6c464a080256b2b0ee17aa7ba","signature":"ead7c69443921d68ef00bb0c31d11c3eddefd5cbfca08f7a6979b5bb46a2a2c6"},"4d4cf93a6b4c81851ad759e4569b6feb7a701e80b13a6f9d8d9c6012bbb86bd6","2e6035af8f3e43bf95e4983329c8277d66f9b271106af27b99a85d1c1b9daf4a","774308610e8d4a9954cd93840f99decbf340accfe3ad7365547950ede8162c92","36c15dd26c66c97b9df26ce34baacdb13fc760c5b9a2d789dcc317d27b189257","3d7c0b593a29d717b2b2ba3f03f819c3c48bf9e250d79c4a31860af80f177e8c","f228d440342f5d0933f5db093aafab2f07de24a427b4488ccfae27b7457d7666",{"version":"fd624f7d7b264922476685870f08c5e1c6d6a0f05dee2429a9747b41f6b699d4","affectsGlobalScope":true},"701978f3975f96e76e3ffc2e1762e3a97e3d323812049fb6fdfd559579b89708",{"version":"4ab17f80ced148d509345cee706b2b85941515dd76e32cf47118bcdf6a4bd56a","affectsGlobalScope":true},"641089f0b8094ef74b9d4b3364d5dec1592d5e3b8a51c1ba491bc8872049e79a","bf22d59377e59146e561b8ab7f449fab01aa068a7a8e0a38fef92d2653c517e0","b42033bf1067564808e4d360d79281667c2b3b0792c2d615ab641eb85974d4ba","7af29b0589483f7bb8a99405ddb849f34bc053146184561ed4179e02f5fe4d0f","78faa3783191b2d5d5f7a9e835ee3f6a1456dc391d6eb5b40d3a27dfd9decd6e","52dd370c807255c61765347fc90a9bee3c522b8744dc222714e2bf6b5be3a823","1e5743b25a63fd34ffbae89adcbf248ee17db6ed08d90079ffa93803c3e80d2a","ccf8ea81b0ac699c220b874b804ad02b8aabc5b494e1c3bda0d255ec8d08694d","15fe687c59d62741b4494d5e623d497d55eb38966ecf5bea7f36e48fc3fbe15e",{"version":"2c3b8be03577c98530ef9cb1a76e2c812636a871f367e9edf4c5f3ce702b77f8","affectsGlobalScope":true},"c567d37119d6f56381af48eb7516030ccf35a36f9aca045e238d9c207a7c536c","b448dfbb5a6c4505f6b6beab587cf41f180ad62bcb506b44e3f2c09d20ba63a9","eba7cf33380cc3a3cf614faf67300e14d0bdff9ea6c5cd6f4b040b1756a48ab1","5e7e090243bf203382a5cb04eabbdc38d78f6d5922f16f543e4da8fa007d5ff9","cd823094ded7c8ac4f94ab6dc387dab699293eb8323d9f948304efc07e4ae7b2","08d32a8fc63dbf34214ebb90c547ef20082d7d60126ad146ef8704528fb5e99d","fc48282c397084016a939e1b3f91dcaf4199b6cba339d91d8b2dc2acade79762","981fc22acc36b6a33c9f5b3d468e975b104cf3409b881ca6cffe84c5f9fda7c1","d50a158fc581be7b1c51253ad33cb29c0a8ce3c42ca38775ffadf104c36376d0","1f2cdbf59d0b7933678a64ac26ae2818c48ff9ebf93249dde775dc3e173e16bf",{"version":"d9ada24b70b5731f77ad997ad1bb671b80dcdff931e7c46171fef07ee0dad104","signature":"64b224909f444ceb75c3306e078b6cd5f484b1487ffe18e13f150c9d2689dcd8"},{"version":"d3a72e3acec55990c739ec2c7ec487ace738418d0650356c2db86b67a3d1b818","signature":"6a716b8d3a52002354a3e530ee6c90d52209af1f53eaefb9c4527228bf0a6f67"},"2d176740950664c4a696f79d2d9a9a1c6eff0ea7c1dc08f6e658b2e0b7a7a01e","4e3e1802431769da9f9108920f7f87e71a29df0cef080e674776ff5d3d5106cb",{"version":"2ef2abb081acc60d2fe8083d8aa8925a9fabf6eee88a331c0234dd8fad71bcfc","signature":"d75a3e4665db49528093a3d868b69a53ac6bfc368b232d4db3130fd0a5e543c2"},{"version":"a9b96633c658f87988e20b077d45dc11e39a9237e829bcbbf400e5686c249b7b","signature":"63a48df4549f6e4374bb8827d5c391bb79dbb887b2f84bf113e11ea27f758c78"},{"version":"85d18863957bd329e9e801ea8467123d8e0d12dedced776718fd648ea7c0b28f","signature":"d09851f8824ccbae129caa791d49356c8b7406f05687cb38a7c7eb3ed21d197b"},{"version":"6bfaa102744d3d84c104cbda522e2d54b8bde1813f8dbeda0808eb3757e521d3","signature":"9a70edd7f635c389010a87dea788970736712497a34392e5f28e716bab2fd892"},"efc7d584a33fe3422847783d228f315c4cd1afe74bd7cf8e3f0e4c1125129fef","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"a14ed46fa3f5ffc7a8336b497cd07b45c2084213aaca933a22443fcb2eef0d07","affectsGlobalScope":true},"cce1f5f86974c1e916ec4a8cab6eec9aa8e31e8148845bf07fbaa8e1d97b1a2c",{"version":"7fd7fcbf021a5845bdd9397d4649fcf2fe17152d2098140fc723099a215d19ad","affectsGlobalScope":true},"df3389f71a71a38bc931aaf1ef97a65fada98f0a27f19dd12f8b8de2b0f4e461","7b43160a49cf2c6082da0465876c4a0b164e160b81187caeb0a6ca7a281e85ba",{"version":"41fb2a1c108fbf46609ce5a451b7ec78eb9b5ada95fd5b94643e4b26397de0b3","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb",{"version":"a1d2988ad9d2aef7b9915a22b5e52c165c83a878f2851c35621409046bbe3c05","affectsGlobalScope":true},"bd3f5d05b6b5e4bfcea7739a45f3ffb4a7f4a3442ba7baf93e0200799285b8f1","4c775c2fccabf49483c03cd5e3673f87c1ffb6079d98e7b81089c3def79e29c6","8806ae97308ef26363bd7ec8071bca4d07fb575f905ee3d8a91aff226df6d618","af5bf1db6f1804fb0069039ae77a05d60133c77a2158d9635ea27b6bb2828a8f","b7fe70be794e13d1b7940e318b8770cd1fb3eced7707805318a2e3aaac2c3e9e",{"version":"2c71199d1fc83bf17636ad5bf63a945633406b7b94887612bba4ef027c662b3e","affectsGlobalScope":true},{"version":"674168aa3db414ea0a19b2a31d901b2d49705c7a495e43ffdc96928543010f8c","affectsGlobalScope":true},"fe1fd6afdfe77976d4c702f3746c05fb05a7e566845c890e0e970fe9376d6a90","313a0b063f5188037db113509de1b934a0e286f14e9479af24fada241435e707","afb1701fd4be413a8a5a88df6befdd4510c30a31372c07a4138facf61594c66d","87ef1a23caa071b07157c72077fa42b86d30568f9dc9e31eed24d5d14fc30ba8","396a8939b5e177542bdf9b5262b4eee85d29851b2d57681fa9d7eae30e225830","21773f5ac69ddf5a05636ba1f50b5239f4f2d27e4420db147fc2f76a5ae598ac",{"version":"ea455cc68871b049bcecd9f56d4cf27b852d6dafd5e3b54468ca87cc11604e4d","affectsGlobalScope":true},"c07146dbbbd8b347241b5df250a51e48f2d7bef19b1e187b1a3f20c849988ff1","45b1053e691c5af9bfe85060a3e1542835f8d84a7e6e2e77ca305251eda0cb3c","0f05c06ff6196958d76b865ae17245b52d8fe01773626ac3c43214a2458ea7b7",{"version":"ae5507fc333d637dec9f37c6b3f4d423105421ea2820a64818de55db85214d66","affectsGlobalScope":true},{"version":"0666f4c99b8688c7be5956df8fecf5d1779d3b22f8f2a88258ae7072c7b6026f","affectsGlobalScope":true},"8abd0566d2854c4bd1c5e48e05df5c74927187f1541e6770001d9637ac41542e","54e854615c4eafbdd3fd7688bd02a3aafd0ccf0e87c98f79d3e9109f047ce6b8","d8dba11dc34d50cb4202de5effa9a1b296d7a2f4a029eec871f894bddfb6430d","8b71dd18e7e63b6f991b511a201fad7c3bf8d1e0dd98acb5e3d844f335a73634","01d8e1419c84affad359cc240b2b551fb9812b450b4d3d456b64cda8102d4f60","8221b00f271cf7f535a8eeec03b0f80f0929c7a16116e2d2df089b41066de69b","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","7424817d5eb498771e6d1808d726ec38f75d2eaf3fa359edd5c0c540c52725c1","9a9634296cca836c3308923ba7aa094fa6ed76bb1e366d8ddcf5c65888ab1024",{"version":"bddce945d552a963c9733db106b17a25474eefcab7fc990157a2134ef55d4954","affectsGlobalScope":true},{"version":"7052b7b0c3829df3b4985bab2fd74531074b4835d5a7b263b75c82f0916ad62f","affectsGlobalScope":true},"aa34c3aa493d1c699601027c441b9664547c3024f9dbab1639df7701d63d18fa","4b55240c2a03b2c71e98a7fc528b16136faa762211c92e781a01c37821915ea6","7c651f8dce91a927ab62925e73f190763574c46098f2b11fb8ddc1b147a6709a","7440ab60f4cb031812940cc38166b8bb6fbf2540cfe599f87c41c08011f0c1df",{"version":"94c086dff8dbc5998749326bc69b520e8e4273fb5b7b58b50e0210e0885dfcde","affectsGlobalScope":true},{"version":"f5b5dc128973498b75f52b1b8c2d5f8629869104899733ae485100c2309b4c12","affectsGlobalScope":true},"ebe5facd12fd7745cda5f4bc3319f91fb29dc1f96e57e9c6f8b260a7cc5b67ee","79bad8541d5779c85e82a9fb119c1fe06af77a71cc40f869d62ad379473d4b75","37dc027f781c75f0f546e329cfac7cf92a6b289f42458f47a9adc25e516b6839",{"version":"629d20681ca284d9e38c0a019f647108f5fe02f9c59ac164d56f5694fc3faf4d","affectsGlobalScope":true},"e7dbf5716d76846c7522e910896c5747b6df1abd538fee8f5291bdc843461795",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"b510d0a18e3db42ac9765d26711083ec1e8b4e21caaca6dc4d25ae6e8623f447","cdcc132f207d097d7d3aa75615ab9a2e71d6a478162dde8b67f88ea19f3e54de","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","c085e9aa62d1ae1375794c1fb927a445fa105fed891a7e24edbb1c3300f7384a","f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","3e70a7e67c2cb16f8cd49097360c0309fe9d1e3210ff9222e9dac1f8df9d4fb6","ab68d2a3e3e8767c3fba8f80de099a1cfc18c0de79e42cb02ae66e22dfe14a66","d96cc6598148bf1a98fb2e8dcf01c63a4b3558bdaec6ef35e087fd0562eb40ec",{"version":"5ab630d466ac55baa6d32820378098404fc18ba9da6f7bc5df30c5dbb1cffae8","affectsGlobalScope":true}],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"importHelpers":true,"inlineSources":true,"module":99,"noEmitOnError":true,"noImplicitAny":false,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"target":4,"useDefineForClassFields":false},"fileIdsList":[[172],[60,61],[55,56,57,58],[69],[51,54,59,70,71],[52,53],[46,47,48,49,50],[47,48],[46,47,49],[174,177],[83],[119],[120,125,153],[121,132,133,140,150,161],[121,122,132,140],[123,162],[124,125,133,141],[125,150,158],[126,128,132,140],[119,127],[128,129],[132],[130,132],[119,132],[132,133,134,150,161],[132,133,134,147,150,153],[117,120,166],[128,132,135,140,150,161],[132,133,135,136,140,150,158,161],[135,137,150,158,161],[83,84,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168],[132,138],[139,161,166],[128,132,140,150],[141],[142],[119,143],[144,160,166],[145],[146],[132,147,148],[147,149,162,164],[120,132,150,151,152,153],[120,150,152],[150,151],[153],[154],[119,150],[132,156,157],[156,157],[125,140,150,158],[159],[140,160],[120,135,146,161],[125,162],[150,163],[139,164],[165],[120,125,132,134,143,150,161,164,166],[150,167],[63],[170,176],[174],[171,175],[62,66],[65,66],[66],[64,65],[77],[62,66,67,68],[173],[52],[52,73],[94,98,161],[94,150,161],[89],[91,94,158,161],[140,158],[169],[89,169],[91,94,140,161],[86,87,90,93,120,132,150,161],[86,92],[90,94,120,153,161,169],[120,169],[110,120,169],[88,89,169],[94],[88,89,90,91,92,93,94,95,96,98,99,100,101,102,103,104,105,106,107,108,109,111,112,113,114,115,116],[94,101,102],[92,94,102,103],[93],[86,89,94],[94,98,102,103],[98],[92,94,97,161],[86,91,92,94,98,101],[120,150],[89,94,110,120,166,169],[44,52,74],[44],[44,45,72,75,76,80],[44,69,78,79],[44,45,79,80],[44,45],[44,75],[52,74],[80],[78],[45,79,80]],"referencedMap":[[173,1],[62,2],[59,3],[70,4],[72,5],[54,6],[51,7],[49,8],[48,9],[178,10],[83,11],[84,11],[119,12],[120,13],[121,14],[122,15],[123,16],[124,17],[125,18],[126,19],[127,20],[128,21],[129,21],[131,22],[130,23],[132,24],[133,25],[134,26],[118,27],[135,28],[136,29],[137,30],[169,31],[138,32],[139,33],[140,34],[141,35],[142,36],[143,37],[144,38],[145,39],[146,40],[147,41],[148,41],[149,42],[150,43],[152,44],[151,45],[153,46],[154,47],[155,48],[156,49],[157,50],[158,51],[159,52],[160,53],[161,54],[162,55],[163,56],[164,57],[165,58],[166,59],[167,60],[64,61],[177,62],[175,63],[176,64],[67,65],[77,66],[65,67],[66,68],[78,69],[69,70],[174,71],[53,72],[74,73],[73,72],[101,74],[108,75],[100,74],[115,76],[92,77],[91,78],[114,79],[109,80],[112,81],[94,82],[93,83],[89,84],[88,85],[111,86],[90,87],[95,88],[99,88],[117,89],[116,88],[103,90],[104,91],[106,92],[102,93],[105,94],[110,79],[97,95],[98,96],[107,97],[87,98],[113,99],[75,100],[45,101],[81,102],[80,103],[82,104],[79,105],[76,106]],"exportedModulesMap":[[173,1],[62,2],[59,3],[70,4],[72,5],[54,6],[51,7],[49,8],[48,9],[178,10],[83,11],[84,11],[119,12],[120,13],[121,14],[122,15],[123,16],[124,17],[125,18],[126,19],[127,20],[128,21],[129,21],[131,22],[130,23],[132,24],[133,25],[134,26],[118,27],[135,28],[136,29],[137,30],[169,31],[138,32],[139,33],[140,34],[141,35],[142,36],[143,37],[144,38],[145,39],[146,40],[147,41],[148,41],[149,42],[150,43],[152,44],[151,45],[153,46],[154,47],[155,48],[156,49],[157,50],[158,51],[159,52],[160,53],[161,54],[162,55],[163,56],[164,57],[165,58],[166,59],[167,60],[64,61],[177,62],[175,63],[176,64],[67,65],[77,66],[65,67],[66,68],[78,69],[69,70],[174,71],[53,72],[74,73],[73,72],[101,74],[108,75],[100,74],[115,76],[92,77],[91,78],[114,79],[109,80],[112,81],[94,82],[93,83],[89,84],[88,85],[111,86],[90,87],[95,88],[99,88],[117,89],[116,88],[103,90],[104,91],[106,92],[102,93],[105,94],[110,79],[97,95],[98,96],[107,97],[87,98],[113,99],[75,107],[81,108],[80,109],[82,110]],"semanticDiagnosticsPerFile":[170,173,60,61,62,55,57,58,59,56,70,72,71,54,46,51,49,48,50,47,172,178,83,84,119,120,121,122,123,124,125,126,127,128,129,131,130,132,133,134,118,168,135,136,137,169,138,139,140,141,142,143,144,145,146,147,148,149,150,152,151,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,64,63,85,171,177,175,176,8,9,11,10,2,12,13,14,15,16,17,18,19,3,4,23,20,21,22,24,25,26,5,27,28,29,30,6,34,31,32,33,35,7,36,41,42,37,38,39,40,1,43,67,77,65,68,66,78,69,174,53,74,73,52,44,101,108,100,115,92,91,114,109,112,94,93,89,88,111,90,95,96,99,86,117,116,103,104,106,102,105,110,97,98,107,87,113,75,45,81,80,82,79,76]},"version":"4.9.5"}
1
+ {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/tslib/tslib.d.ts","../client/auth.ts","../../../node_modules/@operato/shell/dist/src/types/domain.d.ts","../../../node_modules/@operato/shell/dist/src/types/user.d.ts","../../../node_modules/@operato/shell/dist/src/types/role.d.ts","../../../node_modules/@operato/shell/dist/src/types/privilege.d.ts","../../../node_modules/@operato/shell/dist/src/types/types.d.ts","../../../node_modules/@operato/shell/dist/src/types/index.d.ts","../../../node_modules/redux/index.d.ts","../../../node_modules/pwa-helpers/lazy-reducer-enhancer.d.ts","../../../node_modules/@operato/shell/dist/src/store.d.ts","../../../node_modules/@operato/shell/dist/src/actions/app.d.ts","../../../node_modules/@operato/shell/dist/src/actions/route.d.ts","../../../node_modules/@operato/shell/dist/src/actions/busy.d.ts","../../../node_modules/@operato/shell/dist/src/actions/const.d.ts","../../../node_modules/@operato/shell/dist/src/actions/index.d.ts","../../../node_modules/@lit/reactive-element/css-tag.d.ts","../../../node_modules/@lit/reactive-element/reactive-controller.d.ts","../../../node_modules/@lit/reactive-element/reactive-element.d.ts","../../../node_modules/@types/trusted-types/lib/index.d.ts","../../../node_modules/@types/trusted-types/index.d.ts","../../../node_modules/lit-html/directive.d.ts","../../../node_modules/lit-html/lit-html.d.ts","../../../node_modules/lit-element/lit-element.d.ts","../../../node_modules/lit-html/is-server.d.ts","../../../node_modules/lit/index.d.ts","../../../node_modules/@operato/shell/dist/src/app/pages/page-view.d.ts","../../../node_modules/@operato/shell/dist/src/object-store.d.ts","../../../node_modules/@operato/shell/dist/src/custom-alert.d.ts","../../../node_modules/@operato/shell/dist/src/index.d.ts","../../../node_modules/@reduxjs/toolkit/node_modules/redux/dist/redux.d.ts","../../../node_modules/immer/dist/immer.d.ts","../../../node_modules/@reduxjs/toolkit/node_modules/reselect/dist/reselect.d.ts","../../../node_modules/@reduxjs/toolkit/dist/createdraftsafeselector.d.ts","../../../node_modules/@reduxjs/toolkit/node_modules/redux-thunk/dist/redux-thunk.d.ts","../../../node_modules/@reduxjs/toolkit/dist/devtoolsextension.d.ts","../../../node_modules/@reduxjs/toolkit/dist/actioncreatorinvariantmiddleware.d.ts","../../../node_modules/@reduxjs/toolkit/dist/immutablestateinvariantmiddleware.d.ts","../../../node_modules/@reduxjs/toolkit/dist/serializablestateinvariantmiddleware.d.ts","../../../node_modules/@reduxjs/toolkit/dist/utils.d.ts","../../../node_modules/@reduxjs/toolkit/dist/tshelpers.d.ts","../../../node_modules/@reduxjs/toolkit/dist/getdefaultmiddleware.d.ts","../../../node_modules/@reduxjs/toolkit/dist/autobatchenhancer.d.ts","../../../node_modules/@reduxjs/toolkit/dist/getdefaultenhancers.d.ts","../../../node_modules/@reduxjs/toolkit/dist/configurestore.d.ts","../../../node_modules/@reduxjs/toolkit/dist/createaction.d.ts","../../../node_modules/@reduxjs/toolkit/dist/mapbuilders.d.ts","../../../node_modules/@reduxjs/toolkit/dist/createreducer.d.ts","../../../node_modules/@reduxjs/toolkit/dist/combineslices.d.ts","../../../node_modules/@reduxjs/toolkit/dist/createasyncthunk.d.ts","../../../node_modules/@reduxjs/toolkit/dist/createslice.d.ts","../../../node_modules/@reduxjs/toolkit/dist/uncheckedindexed.ts","../../../node_modules/@reduxjs/toolkit/dist/entities/state_selectors.d.ts","../../../node_modules/@reduxjs/toolkit/dist/entities/models.d.ts","../../../node_modules/@reduxjs/toolkit/dist/entities/create_adapter.d.ts","../../../node_modules/@reduxjs/toolkit/dist/matchers.d.ts","../../../node_modules/@reduxjs/toolkit/dist/nanoid.d.ts","../../../node_modules/@reduxjs/toolkit/dist/listenermiddleware/exceptions.d.ts","../../../node_modules/@reduxjs/toolkit/dist/listenermiddleware/types.d.ts","../../../node_modules/@reduxjs/toolkit/dist/listenermiddleware/index.d.ts","../../../node_modules/@reduxjs/toolkit/dist/dynamicmiddleware/types.d.ts","../../../node_modules/@reduxjs/toolkit/dist/dynamicmiddleware/index.d.ts","../../../node_modules/@reduxjs/toolkit/dist/formatproderrormessage.d.ts","../../../node_modules/@reduxjs/toolkit/dist/index.d.ts","../../../node_modules/redux-thunk/es/types.d.ts","../../../node_modules/redux-thunk/es/index.d.ts","../client/actions/auth.ts","../client/reducers/auth.ts","../../../node_modules/lit-html/async-directive.d.ts","../../../node_modules/lit/async-directive.d.ts","../client/profiled.ts","../client/directive/privileged.ts","../client/bootstrap.ts","../client/index.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/buffer/index.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/file.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/filereader.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/dom-events.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@jest/expect-utils/build/index.d.ts","../../../node_modules/chalk/index.d.ts","../../../node_modules/@sinclair/typebox/typebox.d.ts","../../../node_modules/@jest/schemas/build/index.d.ts","../../../node_modules/pretty-format/build/index.d.ts","../../../node_modules/jest-diff/build/index.d.ts","../../../node_modules/jest-matcher-utils/build/index.d.ts","../../../node_modules/expect/build/index.d.ts","../../../node_modules/@types/jest/index.d.ts"],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4",{"version":"4af6b0c727b7a2896463d512fafd23634229adf69ac7c00e2ae15a09cb084fad","affectsGlobalScope":true},{"version":"9c00a480825408b6a24c63c1b71362232927247595d7c97659bc24dc68ae0757","affectsGlobalScope":true},{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true},{"version":"ae37d6ccd1560b0203ab88d46987393adaaa78c919e51acf32fb82c86502e98c","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"479553e3779be7d4f68e9f40cdb82d038e5ef7592010100410723ceced22a0f7","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"4a882ffbb4ed09d9b7734f784aebb1dfe488d63725c40759165c5d9c657ca029",{"version":"b43c3d6f808876e21ed81a3bb8e348be01110ca6c464a080256b2b0ee17aa7ba","signature":"ead7c69443921d68ef00bb0c31d11c3eddefd5cbfca08f7a6979b5bb46a2a2c6"},"4d4cf93a6b4c81851ad759e4569b6feb7a701e80b13a6f9d8d9c6012bbb86bd6","2e6035af8f3e43bf95e4983329c8277d66f9b271106af27b99a85d1c1b9daf4a","774308610e8d4a9954cd93840f99decbf340accfe3ad7365547950ede8162c92","36c15dd26c66c97b9df26ce34baacdb13fc760c5b9a2d789dcc317d27b189257","3d7c0b593a29d717b2b2ba3f03f819c3c48bf9e250d79c4a31860af80f177e8c","f228d440342f5d0933f5db093aafab2f07de24a427b4488ccfae27b7457d7666",{"version":"fd624f7d7b264922476685870f08c5e1c6d6a0f05dee2429a9747b41f6b699d4","affectsGlobalScope":true},"701978f3975f96e76e3ffc2e1762e3a97e3d323812049fb6fdfd559579b89708",{"version":"4ab17f80ced148d509345cee706b2b85941515dd76e32cf47118bcdf6a4bd56a","affectsGlobalScope":true},"641089f0b8094ef74b9d4b3364d5dec1592d5e3b8a51c1ba491bc8872049e79a","950fc6ac97ce76785f03282f907aac4b2cbd8ac74b17c963f1389847962cbc20","b42033bf1067564808e4d360d79281667c2b3b0792c2d615ab641eb85974d4ba","7af29b0589483f7bb8a99405ddb849f34bc053146184561ed4179e02f5fe4d0f","78faa3783191b2d5d5f7a9e835ee3f6a1456dc391d6eb5b40d3a27dfd9decd6e","e056bb30bf82271634daeee81f772f4a7960085f01f6d4d09c8da1ebe5f6a623","5e30131b6a5587fe666926ad1d9807e733c0a597ed12d682669fcaa331aea576",{"version":"86492a546c3308feaf1dde967afd325c321483b5e96f5fa9e9b6e691dc23fa9e","affectsGlobalScope":true},"15fe687c59d62741b4494d5e623d497d55eb38966ecf5bea7f36e48fc3fbe15e",{"version":"2c3b8be03577c98530ef9cb1a76e2c812636a871f367e9edf4c5f3ce702b77f8","affectsGlobalScope":true},"d4b4f6148a6444ec92db4ac4c7dd7050ffc32b21a10276a59498e04740e8fd8d","2524f58c8d67af441b487c0ce0e0dd9c18bf3d06c05f621874dcda9780d8e22c","c7dd759e5948a94b42422ba7cf70eb8455416def9447614a3bdc1a99b81fc8bb","1bcd560deed90a43c51b08aa18f7f55229f2e30974ab5ed1b7bb5721be379013","dc08fe04e50bc24d1baded4f33e942222bbdd5d77d6341a93cfe6e4e4586a3be","9c7568f9c75cf6a7d35dc9f18c5971cd5b21344c686c7cce56b3558d3305d40f","fc48282c397084016a939e1b3f91dcaf4199b6cba339d91d8b2dc2acade79762","3e62a55b950132d6eeacc607b7a1bff990d5484347b2be5a1f54db51af30ff25","a6203646763fb7340123eace99b924c9586ea3cf56f65fe8c56308e6ecb2b805",{"version":"f734b58ea162765ff4d4a36f671ee06da898921e985a2064510f4925ec1ed062","affectsGlobalScope":true},"07cbc706c24fa086bcc20daee910b9afa5dc5294e14771355861686c9d5235fd","37f96daaddc2dd96712b2e86f3901f477ac01a5c2539b1bc07fd609d62039ee1","5c56fb4fb890831244687772d50441a5910a702d45722353de8d58d77c8078b7","9c5c84c449a3d74e417343410ba9f1bd8bfeb32abd16945a1b3d0592ded31bc8","d03493be9b57293475aabd26ed19b35448644e5ad9b4a944ebb2e05766046668","a84e675877c7a39d50eb9a3473c79019c83699735e4053b6f7186ce17d953b8c","ee99571596395ad096d6b57634b2c09f561a33998b7671c650ec708d51e73ea0","905f68cb68699f1eba9a308b9f6c945be64c5bd7608b86176250ade97469cd98","3383e7768e19ba23b6f94aefb04e6740a2813c1983c83d53aed5a55f2a0a3800","ed3373a386225d60f44e5fdb854bfe7678744d3addb6bd46a53450d8a00b309f","5d7f0858bbd4fbe9e72dcf94a4c9c02da9806c3ec521ad18dec7a2c477d61b36","21d0a5419711f808c06e0e1520e27f6a5ae437b8071ff4820d3c349a6ef09ca5","a59a06d52419b16b8bb213b1d28b3729e69530429970e301aba5144f7ef29a55","970453cc32c593013457e059da123b8cf44e9623b6f0182a06bb0128e2c41877","ef1eaf5d88eee02801c34abfb3659d8d83e3c894e8a38bbf32a411069f43777b","9e43a967eae7cfe12a6cccb5697ea9cf5da8fd673a0a56622fab7e745a04a581","7a28254be847cc12e993c5ef9a6e75369afaf6f01f791287aa85ae70b5aa51bb","81035115a7bf5ad480d932661fd1be9251a263563922b968823ee442a259b3f4","4ca6f90692bb27e458e91adaf6d2790f39ebf96ba57bdd9bd2a341ec184f90d3","4f6de920a3767139538963975ce0cf2f34418de7cd92051ffd78f35092220db3","a7f09d2aaf994dbfd872eda4f2411d619217b04dbe0916202304e7a3d4b0f5f8","17481ae12d64023c33ed75ca664aa23fe8bcf5769cd5a46d209c390f781bcd0f","a59dc15bb27c3367e112e45f92b0fe5a0b14ad7ea6b0bb718dfd4e0d44e97f5b","baba876825d576af65c6b57356b610a20570c85dab54d9810c266b2af7b99c44","4911ccf2094385591e09a08d20471c76b96dae3f933e2dd8cf61b2bc0a0a5fd1","cba4372698930577bb0f3e9f8a959bb9fc9c0d0de9b118d4225584132fea3134","f024f1e671346833c3b98052ed7efc9d38c586dfb9d99aaca3ceba8f502d9ff7","4bfb11b34fe8e80cad5b08df98102ea96759d38a076cd2525a0cc72a8acdc825","01b1a8632b1d5ea145b6415fa6e3b6bc70eaf98d65f3a27452a12481b1809043","3170c850292f7b2ce9d4544a36cf5162f98d38a35247defab64f19fa39c63f01","9bddff7f584a69b49d05b2abbe4bf905b7cb8596069c42d9dd337e8f7d4b8530","d7183590443304cce065c81a5a616e59f0e8a3cf47ddc4e090929bc35860820c","914c660871ee9bcae4db6a648d8c739ac7d0eb92f2fd068f38c21a58c0c634c0","d50a158fc581be7b1c51253ad33cb29c0a8ce3c42ca38775ffadf104c36376d0","1f2cdbf59d0b7933678a64ac26ae2818c48ff9ebf93249dde775dc3e173e16bf",{"version":"2ba328775832040cb87cb16f6fc454ae00f9620f8dd97dd283ae3bfd9f744637","signature":"a3c81c9082ad3d86a42d51980ce4e29c85e9b91ae9beefb76d1dcf62f8355fa8"},{"version":"d3a72e3acec55990c739ec2c7ec487ace738418d0650356c2db86b67a3d1b818","signature":"6a716b8d3a52002354a3e530ee6c90d52209af1f53eaefb9c4527228bf0a6f67"},"c42f9b18f5f559b133cf9b409f678afb30df9c6498865aae9a1abad0f1e727a8","eabff483c855b848eefb979dbfb64c8858444c56a2f3ea0e59de026ef03fd089",{"version":"2ef2abb081acc60d2fe8083d8aa8925a9fabf6eee88a331c0234dd8fad71bcfc","signature":"d75a3e4665db49528093a3d868b69a53ac6bfc368b232d4db3130fd0a5e543c2"},{"version":"a9b96633c658f87988e20b077d45dc11e39a9237e829bcbbf400e5686c249b7b","signature":"9848af2eb0cfdf37577332c9c5035c616918c3139fa09d5c1f504b878f2281a3"},{"version":"85d18863957bd329e9e801ea8467123d8e0d12dedced776718fd648ea7c0b28f","signature":"d09851f8824ccbae129caa791d49356c8b7406f05687cb38a7c7eb3ed21d197b"},{"version":"6bfaa102744d3d84c104cbda522e2d54b8bde1813f8dbeda0808eb3757e521d3","signature":"9a70edd7f635c389010a87dea788970736712497a34392e5f28e716bab2fd892"},"2db0dd3aaa2ed285950273ce96ae8a450b45423aa9da2d10e194570f1233fa6b","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"e7be367719c613d580d4b27fdf8fe64c9736f48217f4b322c0d63b2971460918","affectsGlobalScope":true},"3d77c73be94570813f8cadd1f05ebc3dc5e2e4fdefe4d340ca20cd018724ee36",{"version":"392eadc2af403dd10b4debfbc655c089a7fa6a9750caeb770cfb30051e55e848","affectsGlobalScope":true},"62f1c00d3d246e0e3cf0224f91e122d560428ec1ccc36bb51d4574a84f1dbad0","53f0960fdcc53d097918adfd8861ffbe0db989c56ffc16c052197bf115da5ed6",{"version":"662163e5327f260b23ca0a1a1ad8a74078aabb587c904fcb5ef518986987eaff","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb",{"version":"c48c503c6b3f63baf18257e9a87559b5602a4e960107c762586d2a6a62b64a18","affectsGlobalScope":true},"b0c0d1d13be149f790a75b381b413490f98558649428bb916fd2d71a3f47a134","3c884d9d9ec454bdf0d5a0b8465bf8297d2caa4d853851d92cc417ac6f30b969","0364f8bb461d6e84252412d4e5590feda4eb582f77d47f7a024a7a9ff105dfdc","5433f7f77cd1fd53f45bd82445a4e437b2f6a72a32070e907530a4fea56c30c8","d0ca5d7df114035258a9d01165be309371fcccf0cccd9d57b1453204686d1ed0",{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true},{"version":"9a30b7fefd7f8abbca4828d481c61c18e40fe5ff107e113b1c1fcd2c8dcf2743","affectsGlobalScope":true},"173b6275a81ebdb283b180654890f46516c21199734fed01a773b1c168b8c45c","304f66274aa8119e8d65a49b1cff84cbf803def6afe1b2cc987386e9a9890e22","1b9adafe8a7fefaeaf9099a0e06f602903f6268438147b843a33a5233ac71745","98273274f2dbb79b0b2009b20f74eca4a7146a3447c912d580cd5d2d94a7ae30","c933f7ba4b201c98b14275fd11a14abb950178afd2074703250fe3654fc10cd2","2eaa31492906bc8525aff3c3ec2236e22d90b0dfeee77089f196cd0adf0b3e3b",{"version":"ea455cc68871b049bcecd9f56d4cf27b852d6dafd5e3b54468ca87cc11604e4d","affectsGlobalScope":true},"8f5814f29dbaf8bacd1764aebdf1c8a6eb86381f6a188ddbac0fcbaab855ce52","a63d03de72adfb91777784015bd3b4125abd2f5ef867fc5a13920b5649e8f52b","d20e003f3d518a7c1f749dbe27c6ab5e3be7b3c905a48361b04a9557de4a6900",{"version":"1d4d78c8b23c9ddaaaa49485e6adc2ec01086dfe5d8d4d36ca4cdc98d2f7e74a","affectsGlobalScope":true},{"version":"44fc16356b81c0463cc7d7b2b35dcf324d8144136f5bc5ce73ced86f2b3475b5","affectsGlobalScope":true},"575fb200043b11b464db8e42cc64379c5fd322b6d787638e005b5ee98a64486d","6de2f225d942562733e231a695534b30039bdf1875b377bb7255881f0df8ede8","56249fd3ef1f6b90888e606f4ea648c43978ef43a7263aafad64f8d83cd3b8aa","139ad1dc93a503da85b7a0d5f615bddbae61ad796bc68fedd049150db67a1e26","7b166975fdbd3b37afb64707b98bca88e46577bbc6c59871f9383a7df2daacd1","9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","81505c54d7cad0009352eaa21bd923ab7cdee7ec3405357a54d9a5da033a2084","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","3c1f19c7abcda6b3a4cf9438a15c7307a080bd3b51dfd56b198d9f86baf19447","2ee1645e0df9d84467cfe1d67b0ad3003c2f387de55874d565094464ee6f2927",{"version":"071d4b4af5755e1a081aa3b785b5526d09276af5a50e4725dea26edd4e7deb31","affectsGlobalScope":true},{"version":"9cf780e96b687e4bdfd1907ed26a688c18b89797490a00598fa8b8ab683335dd","affectsGlobalScope":true},"98e00f3613402504bc2a2c9a621800ab48e0a463d1eed062208a4ae98ad8f84c","9ae88ce9f73446c24b2d2452e993b676da1b31fca5ceb7276e7f36279f693ed1","e49d7625faff2a7842e4e7b9b197f972633fca685afcf6b4403400c97d087c36","b82c38abc53922b1b3670c3af6f333c21b735722a8f156e7d357a2da7c53a0a0",{"version":"b423f53647708043299ded4daa68d95c967a2ac30aa1437adc4442129d7d0a6c","affectsGlobalScope":true},{"version":"7245af181218216bacb01fbdf51095617a51661f20d77178c69a377e16fb69ed","affectsGlobalScope":true},"4f0fc7b7f54422bd97cfaf558ddb4bca86893839367b746a8f86b60ac7619673","4cdd8b6b51599180a387cc7c1c50f49eca5ce06595d781638fd0216520d98246","d91a7d8b5655c42986f1bdfe2105c4408f472831c8f20cf11a8c3345b6b56c8c",{"version":"8704423bf338bff381ebc951ed819935d0252d90cd6de7dffe5b0a5debb65d07","affectsGlobalScope":true},"7c6929fd7cbf38499b6a600b91c3b603d1d78395046dc3499b2b92d01418b94b",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"a42be67ed1ddaec743582f41fc219db96a1b69719fccac6d1464321178d610fc","cdcc132f207d097d7d3aa75615ab9a2e71d6a478162dde8b67f88ea19f3e54de","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","c085e9aa62d1ae1375794c1fb927a445fa105fed891a7e24edbb1c3300f7384a","f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","3e70a7e67c2cb16f8cd49097360c0309fe9d1e3210ff9222e9dac1f8df9d4fb6","ab68d2a3e3e8767c3fba8f80de099a1cfc18c0de79e42cb02ae66e22dfe14a66","d96cc6598148bf1a98fb2e8dcf01c63a4b3558bdaec6ef35e087fd0562eb40ec",{"version":"5ab630d466ac55baa6d32820378098404fc18ba9da6f7bc5df30c5dbb1cffae8","affectsGlobalScope":true}],"root":[49,114,115,[118,121]],"options":{"allowJs":true,"allowSyntheticDefaultImports":true,"declaration":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"importHelpers":true,"inlineSources":true,"module":99,"noEmitOnError":true,"noImplicitAny":false,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"target":4,"useDefineForClassFields":false},"fileIdsList":[[212],[64,65],[59,60,61,62],[73],[55,58,63,74,75,76],[56,57],[50,51,52,53,54],[51,52],[50,51,53],[78],[78,88],[78,83,87,88,89,91],[88],[78,82,88,93],[80],[78,79,88,94],[78,80,88,93,94,95,96,97],[78,108],[78,88,93],[88,101],[79,88,93,99,100],[80,101],[78,87,88,90,92],[78,82,84,85,86,87,88],[78,79,80,81,82,83,84,85,86,87,88,90,92,93,94,95,96,97,98,101,102,103,104,106,107,108,109,110],[111],[78,82,93,105,106],[78,82,93,105],[78,88,95],[88,97],[78,87],[48],[214,217],[122],[158],[159,164,193],[160,165,171,172,179,190,201],[160,161,171,179],[162,202],[163,164,172,180],[164,190,198],[165,167,171,179],[158,166],[167,168],[171],[169,171],[158,171],[171,172,173,190,201],[171,172,173,186,190,193],[156,159,206],[167,171,174,179,190,201],[171,172,174,175,179,190,198,201],[174,176,190,198,201],[122,123,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208],[171,177],[178,201,206],[167,171,179,190],[180],[181],[158,182],[179,180,183,200,206],[184],[185],[171,186,187],[186,188,202,204],[159,171,190,191,192,193],[159,190,192],[190,191],[193],[194],[158,190],[171,196,197],[196,197],[164,179,190,198],[199],[179,200],[159,174,185,201],[164,202],[190,203],[178,204],[205],[159,164,171,173,182,190,201,204,206],[190,207],[67],[210,216],[214],[211,215],[66,70],[69,70],[70],[68,69],[116],[66,70,71,72],[213],[56],[56,112],[133,137,201],[133,190,201],[128],[130,133,198,201],[179,198],[209],[128,209],[130,133,179,201],[125,126,129,132,159,171,190,201],[125,131],[129,133,159,193,201,209],[159,209],[149,159,209],[127,128,209],[133],[127,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,144,145,146,147,148,150,151,152,153,154,155],[133,140,141],[131,133,141,142],[132],[125,128,133],[133,137,141,142],[137],[131,133,136,201],[125,130,131,133,137,140],[159,190],[128,133,149,159,206,209],[48,111,113],[48,49,77,114,115,119],[48,73,117,118],[48,49,118,119],[48,49],[48,114]],"referencedMap":[[213,1],[66,2],[63,3],[74,4],[77,5],[58,6],[55,7],[53,8],[52,9],[84,10],[90,10],[96,11],[92,12],[93,13],[97,14],[81,15],[95,16],[98,17],[83,10],[109,18],[108,19],[102,20],[101,21],[100,22],[91,23],[89,24],[85,10],[111,25],[105,26],[107,27],[106,28],[94,29],[103,30],[86,10],[88,31],[99,32],[82,10],[218,33],[122,34],[123,34],[158,35],[159,36],[160,37],[161,38],[162,39],[163,40],[164,41],[165,42],[166,43],[167,44],[168,44],[170,45],[169,46],[171,47],[172,48],[173,49],[157,50],[174,51],[175,52],[176,53],[209,54],[177,55],[178,56],[179,57],[180,58],[181,59],[182,60],[183,61],[184,62],[185,63],[186,64],[187,64],[188,65],[190,66],[192,67],[191,68],[193,69],[194,70],[195,71],[196,72],[197,73],[198,74],[199,75],[200,76],[201,77],[202,78],[203,79],[204,80],[205,81],[206,82],[207,83],[68,84],[217,85],[215,86],[216,87],[71,88],[116,89],[69,90],[70,91],[117,92],[73,93],[214,94],[57,95],[113,96],[112,95],[140,97],[147,98],[139,97],[154,99],[131,100],[130,101],[153,102],[148,103],[151,104],[133,105],[132,106],[128,107],[127,108],[150,109],[129,110],[134,111],[138,111],[156,112],[155,111],[142,113],[143,114],[145,115],[141,116],[144,117],[149,102],[136,118],[137,119],[146,120],[126,121],[152,122],[114,123],[49,32],[120,124],[119,125],[121,126],[118,127],[115,128]]},"version":"5.5.2"}
@@ -15,3 +15,6 @@ export declare const PASSWORD_PATTERN_NOT_MATCHED = "password should match the r
15
15
  export declare const USER_DUPLICATED = "user duplicated";
16
16
  export declare const PASSWORD_USED_PAST = "password used in the past";
17
17
  export declare const VERIFICATION_ERROR = "user or verification token not found";
18
+ export declare const AUTHN_VERIFICATION_FAILED = "authn verification failed";
19
+ export declare const USER_CREDENTIAL_NOT_FOUND = "user credential not found";
20
+ export declare const AUTH_ERROR = "auth error";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VERIFICATION_ERROR = exports.PASSWORD_USED_PAST = exports.USER_DUPLICATED = exports.PASSWORD_PATTERN_NOT_MATCHED = exports.CONFIRM_PASSWORD_NOT_MATCHED = exports.SUBDOMAIN_NOTFOUND = exports.AUTH_INVALID = exports.TOKEN_INVALID = exports.REDIRECT_TO_DEFAULT_DOMAIN = exports.NO_SELECTED_DOMAIN = exports.UNAVAILABLE_DOMAIN = exports.NO_AVAILABLE_DOMAIN = exports.USER_DELETED = exports.USER_LOCKED = exports.USER_NOT_ACTIVATED = exports.PASSWORD_NOT_MATCHED = exports.USER_NOT_FOUND = void 0;
3
+ exports.AUTH_ERROR = exports.USER_CREDENTIAL_NOT_FOUND = exports.AUTHN_VERIFICATION_FAILED = exports.VERIFICATION_ERROR = exports.PASSWORD_USED_PAST = exports.USER_DUPLICATED = exports.PASSWORD_PATTERN_NOT_MATCHED = exports.CONFIRM_PASSWORD_NOT_MATCHED = exports.SUBDOMAIN_NOTFOUND = exports.AUTH_INVALID = exports.TOKEN_INVALID = exports.REDIRECT_TO_DEFAULT_DOMAIN = exports.NO_SELECTED_DOMAIN = exports.UNAVAILABLE_DOMAIN = exports.NO_AVAILABLE_DOMAIN = exports.USER_DELETED = exports.USER_LOCKED = exports.USER_NOT_ACTIVATED = exports.PASSWORD_NOT_MATCHED = exports.USER_NOT_FOUND = void 0;
4
4
  exports.USER_NOT_FOUND = 'user not found';
5
5
  exports.PASSWORD_NOT_MATCHED = 'password-not-matched';
6
6
  exports.USER_NOT_ACTIVATED = 'user not activated';
@@ -18,4 +18,7 @@ exports.PASSWORD_PATTERN_NOT_MATCHED = 'password should match the rule';
18
18
  exports.USER_DUPLICATED = 'user duplicated';
19
19
  exports.PASSWORD_USED_PAST = 'password used in the past';
20
20
  exports.VERIFICATION_ERROR = 'user or verification token not found';
21
+ exports.AUTHN_VERIFICATION_FAILED = 'authn verification failed';
22
+ exports.USER_CREDENTIAL_NOT_FOUND = 'user credential not found';
23
+ exports.AUTH_ERROR = 'auth error';
21
24
  //# sourceMappingURL=error-code.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"error-code.js","sourceRoot":"","sources":["../../server/constants/error-code.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG,gBAAgB,CAAA;AACjC,QAAA,oBAAoB,GAAG,sBAAsB,CAAA;AAC7C,QAAA,kBAAkB,GAAG,oBAAoB,CAAA;AACzC,QAAA,WAAW,GAAG,aAAa,CAAA;AAC3B,QAAA,YAAY,GAAG,cAAc,CAAA;AAC7B,QAAA,mBAAmB,GAAG,qBAAqB,CAAA;AAC3C,QAAA,kBAAkB,GAAG,oBAAoB,CAAA;AACzC,QAAA,kBAAkB,GAAG,oBAAoB,CAAA;AACzC,QAAA,0BAA0B,GAAG,4BAA4B,CAAA;AACzD,QAAA,aAAa,GAAG,eAAe,CAAA;AAC/B,QAAA,YAAY,GAAG,cAAc,CAAA;AAC7B,QAAA,kBAAkB,GAAG,qBAAqB,CAAA;AAC1C,QAAA,4BAA4B,GAAG,8BAA8B,CAAA;AAC7D,QAAA,4BAA4B,GAAG,gCAAgC,CAAA;AAC/D,QAAA,eAAe,GAAG,iBAAiB,CAAA;AACnC,QAAA,kBAAkB,GAAG,2BAA2B,CAAA;AAChD,QAAA,kBAAkB,GAAG,sCAAsC,CAAA","sourcesContent":["export const USER_NOT_FOUND = 'user not found'\nexport const PASSWORD_NOT_MATCHED = 'password-not-matched'\nexport const USER_NOT_ACTIVATED = 'user not activated'\nexport const USER_LOCKED = 'user-locked'\nexport const USER_DELETED = 'user-deleted'\nexport const NO_AVAILABLE_DOMAIN = 'no-available-domain'\nexport const UNAVAILABLE_DOMAIN = 'unavailable-domain'\nexport const NO_SELECTED_DOMAIN = 'no-selected-domain'\nexport const REDIRECT_TO_DEFAULT_DOMAIN = 'redirect-to-default-domain'\nexport const TOKEN_INVALID = 'token-invalid'\nexport const AUTH_INVALID = 'auth-invalid'\nexport const SUBDOMAIN_NOTFOUND = 'subdomain not found'\nexport const CONFIRM_PASSWORD_NOT_MATCHED = 'confirm password not matched'\nexport const PASSWORD_PATTERN_NOT_MATCHED = 'password should match the rule'\nexport const USER_DUPLICATED = 'user duplicated'\nexport const PASSWORD_USED_PAST = 'password used in the past'\nexport const VERIFICATION_ERROR = 'user or verification token not found'\n"]}
1
+ {"version":3,"file":"error-code.js","sourceRoot":"","sources":["../../server/constants/error-code.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG,gBAAgB,CAAA;AACjC,QAAA,oBAAoB,GAAG,sBAAsB,CAAA;AAC7C,QAAA,kBAAkB,GAAG,oBAAoB,CAAA;AACzC,QAAA,WAAW,GAAG,aAAa,CAAA;AAC3B,QAAA,YAAY,GAAG,cAAc,CAAA;AAC7B,QAAA,mBAAmB,GAAG,qBAAqB,CAAA;AAC3C,QAAA,kBAAkB,GAAG,oBAAoB,CAAA;AACzC,QAAA,kBAAkB,GAAG,oBAAoB,CAAA;AACzC,QAAA,0BAA0B,GAAG,4BAA4B,CAAA;AACzD,QAAA,aAAa,GAAG,eAAe,CAAA;AAC/B,QAAA,YAAY,GAAG,cAAc,CAAA;AAC7B,QAAA,kBAAkB,GAAG,qBAAqB,CAAA;AAC1C,QAAA,4BAA4B,GAAG,8BAA8B,CAAA;AAC7D,QAAA,4BAA4B,GAAG,gCAAgC,CAAA;AAC/D,QAAA,eAAe,GAAG,iBAAiB,CAAA;AACnC,QAAA,kBAAkB,GAAG,2BAA2B,CAAA;AAChD,QAAA,kBAAkB,GAAG,sCAAsC,CAAA;AAC3D,QAAA,yBAAyB,GAAG,2BAA2B,CAAA;AACvD,QAAA,yBAAyB,GAAG,2BAA2B,CAAA;AACvD,QAAA,UAAU,GAAG,YAAY,CAAA","sourcesContent":["export const USER_NOT_FOUND = 'user not found'\nexport const PASSWORD_NOT_MATCHED = 'password-not-matched'\nexport const USER_NOT_ACTIVATED = 'user not activated'\nexport const USER_LOCKED = 'user-locked'\nexport const USER_DELETED = 'user-deleted'\nexport const NO_AVAILABLE_DOMAIN = 'no-available-domain'\nexport const UNAVAILABLE_DOMAIN = 'unavailable-domain'\nexport const NO_SELECTED_DOMAIN = 'no-selected-domain'\nexport const REDIRECT_TO_DEFAULT_DOMAIN = 'redirect-to-default-domain'\nexport const TOKEN_INVALID = 'token-invalid'\nexport const AUTH_INVALID = 'auth-invalid'\nexport const SUBDOMAIN_NOTFOUND = 'subdomain not found'\nexport const CONFIRM_PASSWORD_NOT_MATCHED = 'confirm password not matched'\nexport const PASSWORD_PATTERN_NOT_MATCHED = 'password should match the rule'\nexport const USER_DUPLICATED = 'user duplicated'\nexport const PASSWORD_USED_PAST = 'password used in the past'\nexport const VERIFICATION_ERROR = 'user or verification token not found'\nexport const AUTHN_VERIFICATION_FAILED = 'authn verification failed'\nexport const USER_CREDENTIAL_NOT_FOUND = 'user credential not found'\nexport const AUTH_ERROR = 'auth error'\n"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.changePwd = void 0;
3
+ exports.changePwd = changePwd;
4
4
  const typeorm_1 = require("typeorm");
5
5
  const env_1 = require("@things-factory/env");
6
6
  const shell_1 = require("@things-factory/shell");
@@ -76,5 +76,4 @@ async function changePwd(attrs, currentPass, newPass, confirmPass, context) {
76
76
  }
77
77
  return await user.sign({ subdomain: domain.subdomain });
78
78
  }
79
- exports.changePwd = changePwd;
80
79
  //# sourceMappingURL=change-pwd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"change-pwd.js","sourceRoot":"","sources":["../../server/controllers/change-pwd.ts"],"names":[],"mappings":"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","sourcesContent":["import { ILike } from 'typeorm'\nimport { config } from '@things-factory/env'\nimport { getRepository } from '@things-factory/shell'\n\nimport {\n CONFIRM_PASSWORD_NOT_MATCHED,\n PASSWORD_NOT_MATCHED,\n PASSWORD_USED_PAST,\n USER_NOT_FOUND\n} from '../constants/error-code'\nimport { AuthError } from '../errors/auth-error'\nimport { PasswordHistory } from '../service/password-history/password-history'\nimport { User } from '../service/user/user'\n\nconst HISTORY_SIZE = config.get('password', { history: 0 }).history\n\nexport async function changePwd(attrs, currentPass, newPass, confirmPass, context) {\n const { domain } = context.state\n\n // TODO 이 사용자가 이 도메인에 속한 사용자인지 확인해야함.\n const repository = getRepository(User)\n const user: User = await repository.findOne({ where: { email: ILike(attrs.email) } })\n\n if (!user) {\n throw new AuthError({\n errorCode: USER_NOT_FOUND\n })\n }\n\n if (newPass !== confirmPass) {\n throw new AuthError({\n errorCode: CONFIRM_PASSWORD_NOT_MATCHED\n })\n }\n\n if (!User.verify(user.password, currentPass, user.salt)) {\n throw new AuthError({\n errorCode: PASSWORD_NOT_MATCHED,\n detail: {\n email: user.email,\n failCount: user.failCount\n }\n })\n }\n /* check if password is following the rule */\n User.validatePasswordByRule(newPass, context?.lng)\n\n user.password = User.encode(newPass, user.salt)\n\n if (HISTORY_SIZE > 0) {\n var passwordHistory: PasswordHistory = await getRepository(PasswordHistory).findOneBy({ userId: user.id })\n var history = []\n\n if (passwordHistory) {\n try {\n history = JSON.parse(passwordHistory.history)\n if (!(history instanceof Array)) {\n console.error('password history maybe currupted - not an array')\n history = []\n }\n } catch (e) {\n console.error('password history currupted - not json format')\n }\n\n const found = history.slice(0, HISTORY_SIZE).find(h => {\n return User.verify(h.password, newPass, h.salt)\n })\n\n if (found) {\n throw new AuthError({\n errorCode: PASSWORD_USED_PAST\n })\n }\n }\n }\n\n await repository.save({\n ...user,\n passwordUpdatedAt: new Date()\n })\n\n if (HISTORY_SIZE > 0) {\n history = [\n {\n password: user.password,\n salt: user.salt\n },\n ...history\n ].slice(0, HISTORY_SIZE)\n\n await getRepository(PasswordHistory).save({\n userId: user.id,\n history: JSON.stringify(history)\n })\n }\n\n return await user.sign({ subdomain: domain.subdomain })\n}\n"]}
1
+ {"version":3,"file":"change-pwd.js","sourceRoot":"","sources":["../../server/controllers/change-pwd.ts"],"names":[],"mappings":"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","sourcesContent":["import { ILike } from 'typeorm'\nimport { config } from '@things-factory/env'\nimport { getRepository } from '@things-factory/shell'\n\nimport {\n CONFIRM_PASSWORD_NOT_MATCHED,\n PASSWORD_NOT_MATCHED,\n PASSWORD_USED_PAST,\n USER_NOT_FOUND\n} from '../constants/error-code'\nimport { AuthError } from '../errors/auth-error'\nimport { PasswordHistory } from '../service/password-history/password-history'\nimport { User } from '../service/user/user'\n\nconst HISTORY_SIZE = config.get('password', { history: 0 }).history\n\nexport async function changePwd(attrs, currentPass, newPass, confirmPass, context) {\n const { domain } = context.state\n\n // TODO 이 사용자가 이 도메인에 속한 사용자인지 확인해야함.\n const repository = getRepository(User)\n const user: User = await repository.findOne({ where: { email: ILike(attrs.email) } })\n\n if (!user) {\n throw new AuthError({\n errorCode: USER_NOT_FOUND\n })\n }\n\n if (newPass !== confirmPass) {\n throw new AuthError({\n errorCode: CONFIRM_PASSWORD_NOT_MATCHED\n })\n }\n\n if (!User.verify(user.password, currentPass, user.salt)) {\n throw new AuthError({\n errorCode: PASSWORD_NOT_MATCHED,\n detail: {\n email: user.email,\n failCount: user.failCount\n }\n })\n }\n /* check if password is following the rule */\n User.validatePasswordByRule(newPass, context?.lng)\n\n user.password = User.encode(newPass, user.salt)\n\n if (HISTORY_SIZE > 0) {\n var passwordHistory: PasswordHistory = await getRepository(PasswordHistory).findOneBy({ userId: user.id })\n var history = []\n\n if (passwordHistory) {\n try {\n history = JSON.parse(passwordHistory.history)\n if (!(history instanceof Array)) {\n console.error('password history maybe currupted - not an array')\n history = []\n }\n } catch (e) {\n console.error('password history currupted - not json format')\n }\n\n const found = history.slice(0, HISTORY_SIZE).find(h => {\n return User.verify(h.password, newPass, h.salt)\n })\n\n if (found) {\n throw new AuthError({\n errorCode: PASSWORD_USED_PAST\n })\n }\n }\n }\n\n await repository.save({\n ...user,\n passwordUpdatedAt: new Date()\n })\n\n if (HISTORY_SIZE > 0) {\n history = [\n {\n password: user.password,\n salt: user.salt\n },\n ...history\n ].slice(0, HISTORY_SIZE)\n\n await getRepository(PasswordHistory).save({\n userId: user.id,\n history: JSON.stringify(history)\n })\n }\n\n return await user.sign({ subdomain: domain.subdomain })\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.checkin = void 0;
3
+ exports.checkin = checkin;
4
4
  const shell_1 = require("@things-factory/shell");
5
5
  const user_1 = require("../service/user/user");
6
6
  const get_user_domains_1 = require("../utils/get-user-domains");
@@ -17,5 +17,4 @@ async function checkin({ userId, subdomain }) {
17
17
  }
18
18
  return await user.sign({ subdomain });
19
19
  }
20
- exports.checkin = checkin;
21
20
  //# sourceMappingURL=checkin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkin.js","sourceRoot":"","sources":["../../server/controllers/checkin.ts"],"names":[],"mappings":";;;AAAA,iDAA6D;AAE7D,+CAA2C;AAC3C,gEAA0D;AAEnD,KAAK,UAAU,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE;IACjD,MAAM,QAAQ,GAAG,IAAA,qBAAa,EAAC,WAAI,CAAC,CAAA;IACpC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;IAC9D,MAAM,OAAO,GAAsB,MAAM,IAAA,iCAAc,EAAC,IAAI,CAAC,CAAA;IAE7D,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAA,EAAE;QACpB,OAAO,KAAK,CAAA;KACb;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC,CAAA;IACpE,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,KAAK,CAAA;KACb;IAED,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,CAAA;AACvC,CAAC;AAfD,0BAeC","sourcesContent":["import { Domain, getRepository } from '@things-factory/shell'\n\nimport { User } from '../service/user/user'\nimport { getUserDomains } from '../utils/get-user-domains'\n\nexport async function checkin({ userId, subdomain }) {\n const userRepo = getRepository(User)\n const user = await userRepo.findOne({ where: { id: userId } })\n const domains: Partial<Domain>[] = await getUserDomains(user)\n\n if (!domains?.length) {\n return false\n }\n\n const domain = domains.find(domain => domain.subdomain == subdomain)\n if (!domain) {\n return false\n }\n\n return await user.sign({ subdomain })\n}\n"]}
1
+ {"version":3,"file":"checkin.js","sourceRoot":"","sources":["../../server/controllers/checkin.ts"],"names":[],"mappings":";;AAKA,0BAeC;AApBD,iDAA6D;AAE7D,+CAA2C;AAC3C,gEAA0D;AAEnD,KAAK,UAAU,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE;IACjD,MAAM,QAAQ,GAAG,IAAA,qBAAa,EAAC,WAAI,CAAC,CAAA;IACpC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;IAC9D,MAAM,OAAO,GAAsB,MAAM,IAAA,iCAAc,EAAC,IAAI,CAAC,CAAA;IAE7D,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAA,EAAE,CAAC;QACrB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC,CAAA;IACpE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,CAAA;AACvC,CAAC","sourcesContent":["import { Domain, getRepository } from '@things-factory/shell'\n\nimport { User } from '../service/user/user'\nimport { getUserDomains } from '../utils/get-user-domains'\n\nexport async function checkin({ userId, subdomain }) {\n const userRepo = getRepository(User)\n const user = await userRepo.findOne({ where: { id: userId } })\n const domains: Partial<Domain>[] = await getUserDomains(user)\n\n if (!domains?.length) {\n return false\n }\n\n const domain = domains.find(domain => domain.subdomain == subdomain)\n if (!domain) {\n return false\n }\n\n return await user.sign({ subdomain })\n}\n"]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deleteUsers = exports.deleteUser = void 0;
3
+ exports.deleteUser = deleteUser;
4
+ exports.deleteUsers = deleteUsers;
4
5
  const typeorm_1 = require("typeorm");
5
6
  const user_1 = require("../service/user/user");
6
7
  const auth_error_1 = require("../errors/auth-error");
@@ -28,7 +29,6 @@ async function deleteUser(attrs, tx) {
28
29
  // })
29
30
  // .execute()
30
31
  }
31
- exports.deleteUser = deleteUser;
32
32
  async function deleteUsers(attrs, tx) {
33
33
  // TODO 이 사용자가 이 도메인에 속한 사용자인지 확인해야함.
34
34
  // TODO 다른 도메인에도 포함되어있다면, domains-users 관게와 해당 도메인 관련 정보만 삭제해야 함.
@@ -57,5 +57,4 @@ async function deleteUsers(attrs, tx) {
57
57
  // .execute()
58
58
  return true;
59
59
  }
60
- exports.deleteUsers = deleteUsers;
61
60
  //# sourceMappingURL=delete-user.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"delete-user.js","sourceRoot":"","sources":["../../server/controllers/delete-user.ts"],"names":[],"mappings":";;;AAAA,qCAAkD;AAClD,+CAAuD;AACvD,qDAAgD;AAChD,wDAAwD;AAEjD,KAAK,UAAU,UAAU,CAAC,KAAK,EAAE,EAAkB;IACxD,qCAAqC;IACrC,iEAAiE;IAEjE,MAAM,UAAU,GAAG,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,aAAa,CAAC,WAAI,CAAC,CAAA;IAC1C,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAA,eAAK,EAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;IAC/E,IAAI,CAAC,IAAI,EAAE;QACT,MAAM,IAAI,sBAAS,CAAC;YAClB,SAAS,EAAE,2BAAc;SAC1B,CAAC,CAAA;KACH;IAED,IAAI,CAAC,MAAM,GAAG,iBAAU,CAAC,OAAO,CAAA;IAChC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;IAEjB,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAE3B,2BAA2B;IAC3B,kBAAkB;IAClB,0BAA0B;IAC1B,cAAc;IACd,2BAA2B;IAC3B,aAAa;IACb,uBAAuB;IACvB,OAAO;IACP,eAAe;AACjB,CAAC;AA1BD,gCA0BC;AAEM,KAAK,UAAU,WAAW,CAAC,KAAK,EAAE,EAAkB;IACzD,qCAAqC;IACrC,iEAAiE;IAEjE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;IAExB,MAAM,IAAI,GAAG,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,aAAa,CAAC,WAAI,CAAC,CAAA;IAEpC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;QAC5B,KAAK,EAAE;YACL,KAAK,EAAE,IAAA,YAAE,EAAC,MAAM,CAAC;SAClB;KACF,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,EAAE,CAAA;IAClB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACnB,IAAI,CAAC,MAAM,GAAG,iBAAU,CAAC,OAAO,CAAA;QAChC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;QAEjB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;IAEF,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAEtB,2BAA2B;IAC3B,kBAAkB;IAClB,0BAA0B;IAC1B,cAAc;IACd,2BAA2B;IAC3B,aAAa;IACb,2BAA2B;IAC3B,OAAO;IACP,eAAe;IACf,OAAO,IAAI,CAAA;AACb,CAAC;AAlCD,kCAkCC","sourcesContent":["import { EntityManager, ILike, In } from 'typeorm'\nimport { User, UserStatus } from '../service/user/user'\nimport { AuthError } from '../errors/auth-error'\nimport { USER_NOT_FOUND } from '../constants/error-code'\n\nexport async function deleteUser(attrs, tx?: EntityManager) {\n // TODO 이 사용자가 이 도메인에 속한 사용자인지 확인해야함.\n // TODO 다른 도메인에도 포함되어있다면, domains-users 관게와 해당 도메인 관련 정보만 삭제해야 함.\n\n const repository = tx?.getRepository(User)\n const user = await repository.findOne({ where: { email: ILike(attrs.email) } })\n if (!user) {\n throw new AuthError({\n errorCode: USER_NOT_FOUND\n })\n }\n\n user.status = UserStatus.DELETED\n user.domains = []\n\n await repository.save(user)\n\n // repository api는 작동하지 않음.\n // await txManager\n // .createQueryBuilder()\n // .delete()\n // .from('users_domains')\n // .where({\n // usersId: user.id\n // })\n // .execute()\n}\n\nexport async function deleteUsers(attrs, tx?: EntityManager) {\n // TODO 이 사용자가 이 도메인에 속한 사용자인지 확인해야함.\n // TODO 다른 도메인에도 포함되어있다면, domains-users 관게와 해당 도메인 관련 정보만 삭제해야 함.\n\n const { emails } = attrs\n\n const repo = tx?.getRepository(User)\n\n const users = await repo.find({\n where: {\n email: In(emails)\n }\n })\n\n const userIds = []\n users.forEach(user => {\n user.status = UserStatus.DELETED\n user.domains = []\n\n userIds.push(user.id)\n })\n\n await repo.save(users)\n\n // repository api는 작동하지 않음.\n // await txManager\n // .createQueryBuilder()\n // .delete()\n // .from('users_domains')\n // .where({\n // usersId: In(userIds)\n // })\n // .execute()\n return true\n}\n"]}
1
+ {"version":3,"file":"delete-user.js","sourceRoot":"","sources":["../../server/controllers/delete-user.ts"],"names":[],"mappings":";;AAKA,gCA0BC;AAED,kCAkCC;AAnED,qCAAkD;AAClD,+CAAuD;AACvD,qDAAgD;AAChD,wDAAwD;AAEjD,KAAK,UAAU,UAAU,CAAC,KAAK,EAAE,EAAkB;IACxD,qCAAqC;IACrC,iEAAiE;IAEjE,MAAM,UAAU,GAAG,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,aAAa,CAAC,WAAI,CAAC,CAAA;IAC1C,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAA,eAAK,EAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;IAC/E,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,sBAAS,CAAC;YAClB,SAAS,EAAE,2BAAc;SAC1B,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,GAAG,iBAAU,CAAC,OAAO,CAAA;IAChC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;IAEjB,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAE3B,2BAA2B;IAC3B,kBAAkB;IAClB,0BAA0B;IAC1B,cAAc;IACd,2BAA2B;IAC3B,aAAa;IACb,uBAAuB;IACvB,OAAO;IACP,eAAe;AACjB,CAAC;AAEM,KAAK,UAAU,WAAW,CAAC,KAAK,EAAE,EAAkB;IACzD,qCAAqC;IACrC,iEAAiE;IAEjE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;IAExB,MAAM,IAAI,GAAG,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,aAAa,CAAC,WAAI,CAAC,CAAA;IAEpC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;QAC5B,KAAK,EAAE;YACL,KAAK,EAAE,IAAA,YAAE,EAAC,MAAM,CAAC;SAClB;KACF,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,EAAE,CAAA;IAClB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACnB,IAAI,CAAC,MAAM,GAAG,iBAAU,CAAC,OAAO,CAAA;QAChC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;QAEjB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;IAEF,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAEtB,2BAA2B;IAC3B,kBAAkB;IAClB,0BAA0B;IAC1B,cAAc;IACd,2BAA2B;IAC3B,aAAa;IACb,2BAA2B;IAC3B,OAAO;IACP,eAAe;IACf,OAAO,IAAI,CAAA;AACb,CAAC","sourcesContent":["import { EntityManager, ILike, In } from 'typeorm'\nimport { User, UserStatus } from '../service/user/user'\nimport { AuthError } from '../errors/auth-error'\nimport { USER_NOT_FOUND } from '../constants/error-code'\n\nexport async function deleteUser(attrs, tx?: EntityManager) {\n // TODO 이 사용자가 이 도메인에 속한 사용자인지 확인해야함.\n // TODO 다른 도메인에도 포함되어있다면, domains-users 관게와 해당 도메인 관련 정보만 삭제해야 함.\n\n const repository = tx?.getRepository(User)\n const user = await repository.findOne({ where: { email: ILike(attrs.email) } })\n if (!user) {\n throw new AuthError({\n errorCode: USER_NOT_FOUND\n })\n }\n\n user.status = UserStatus.DELETED\n user.domains = []\n\n await repository.save(user)\n\n // repository api는 작동하지 않음.\n // await txManager\n // .createQueryBuilder()\n // .delete()\n // .from('users_domains')\n // .where({\n // usersId: user.id\n // })\n // .execute()\n}\n\nexport async function deleteUsers(attrs, tx?: EntityManager) {\n // TODO 이 사용자가 이 도메인에 속한 사용자인지 확인해야함.\n // TODO 다른 도메인에도 포함되어있다면, domains-users 관게와 해당 도메인 관련 정보만 삭제해야 함.\n\n const { emails } = attrs\n\n const repo = tx?.getRepository(User)\n\n const users = await repo.find({\n where: {\n email: In(emails)\n }\n })\n\n const userIds = []\n users.forEach(user => {\n user.status = UserStatus.DELETED\n user.domains = []\n\n userIds.push(user.id)\n })\n\n await repo.save(users)\n\n // repository api는 작동하지 않음.\n // await txManager\n // .createQueryBuilder()\n // .delete()\n // .from('users_domains')\n // .where({\n // usersId: In(userIds)\n // })\n // .execute()\n return true\n}\n"]}
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resendInvitationEmail = exports.sendInvitationEmail = exports.acceptInvitation = exports.invite = void 0;
3
+ exports.invite = invite;
4
+ exports.acceptInvitation = acceptInvitation;
5
+ exports.sendInvitationEmail = sendInvitationEmail;
6
+ exports.resendInvitationEmail = resendInvitationEmail;
4
7
  const typeorm_1 = require("typeorm");
5
8
  const url_1 = require("url");
6
9
  const email_base_1 = require("@things-factory/email-base");
@@ -48,7 +51,6 @@ async function invite(attrs, withEmailInvitation) {
48
51
  // TODO need to signup
49
52
  }
50
53
  }
51
- exports.invite = invite;
52
54
  async function acceptInvitation(token) {
53
55
  var invitation = await (0, shell_1.getRepository)(invitation_1.Invitation).findOneBy({
54
56
  token
@@ -74,7 +76,6 @@ async function acceptInvitation(token) {
74
76
  }
75
77
  return true;
76
78
  }
77
- exports.acceptInvitation = acceptInvitation;
78
79
  async function sendInvitationEmail({ invitation, context }) {
79
80
  try {
80
81
  var token = (0, make_invitation_token_1.makeInvitationToken)();
@@ -96,7 +97,6 @@ async function sendInvitationEmail({ invitation, context }) {
96
97
  return false;
97
98
  }
98
99
  }
99
- exports.sendInvitationEmail = sendInvitationEmail;
100
100
  async function resendInvitationEmail({ email, reference, type }, context) {
101
101
  var invitation = await (0, shell_1.getRepository)(invitation_1.Invitation).findOneBy({
102
102
  email: (0, typeorm_1.ILike)(email),
@@ -110,5 +110,4 @@ async function resendInvitationEmail({ email, reference, type }, context) {
110
110
  context
111
111
  });
112
112
  }
113
- exports.resendInvitationEmail = resendInvitationEmail;
114
113
  //# sourceMappingURL=invitation.js.map