@contember/engine-tenant-api 2.0.0-alpha.13 → 2.0.0-alpha.15

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 (526) hide show
  1. package/dist/development/index.cjs +18 -6
  2. package/dist/development/index.cjs.map +1 -1
  3. package/dist/development/index.js +20 -8
  4. package/dist/development/index.js.map +1 -1
  5. package/dist/development/src/TenantContainer.cjs +7 -1
  6. package/dist/development/src/TenantContainer.cjs.map +1 -1
  7. package/dist/development/src/TenantContainer.js +7 -1
  8. package/dist/development/src/TenantContainer.js.map +1 -1
  9. package/dist/development/src/migrations/2024-08-26-120000-passwordless.cjs +31 -0
  10. package/dist/development/src/migrations/2024-08-26-120000-passwordless.cjs.map +1 -0
  11. package/dist/development/src/migrations/2024-08-26-120000-passwordless.js +32 -0
  12. package/dist/development/src/migrations/2024-08-26-120000-passwordless.js.map +1 -0
  13. package/dist/development/src/migrations/runner.cjs +3 -1
  14. package/dist/development/src/migrations/runner.cjs.map +1 -1
  15. package/dist/development/src/migrations/runner.js +3 -1
  16. package/dist/development/src/migrations/runner.js.map +1 -1
  17. package/dist/development/src/migrations/snapshot.cjs +33 -5
  18. package/dist/development/src/migrations/snapshot.cjs.map +1 -1
  19. package/dist/development/src/migrations/snapshot.js +33 -5
  20. package/dist/development/src/migrations/snapshot.js.map +1 -1
  21. package/dist/development/src/model/authorization/PermissionActions.cjs +5 -0
  22. package/dist/development/src/model/authorization/PermissionActions.cjs.map +1 -1
  23. package/dist/development/src/model/authorization/PermissionActions.js +5 -0
  24. package/dist/development/src/model/authorization/PermissionActions.js.map +1 -1
  25. package/dist/development/src/model/authorization/PermissionsFactory.cjs +5 -0
  26. package/dist/development/src/model/authorization/PermissionsFactory.cjs.map +1 -1
  27. package/dist/development/src/model/authorization/PermissionsFactory.js +5 -0
  28. package/dist/development/src/model/authorization/PermissionsFactory.js.map +1 -1
  29. package/dist/development/src/model/commands/configuration/UpdateConfigurationCommand.cjs +20 -0
  30. package/dist/development/src/model/commands/configuration/UpdateConfigurationCommand.cjs.map +1 -0
  31. package/dist/development/src/model/commands/configuration/UpdateConfigurationCommand.js +20 -0
  32. package/dist/development/src/model/commands/configuration/UpdateConfigurationCommand.js.map +1 -0
  33. package/dist/development/src/model/commands/person/CreatePersonCommand.cjs +2 -1
  34. package/dist/development/src/model/commands/person/CreatePersonCommand.cjs.map +1 -1
  35. package/dist/development/src/model/commands/person/CreatePersonCommand.js +2 -1
  36. package/dist/development/src/model/commands/person/CreatePersonCommand.js.map +1 -1
  37. package/dist/development/src/model/commands/person/TogglePersonPasswordlessCommand.cjs +18 -0
  38. package/dist/development/src/model/commands/person/TogglePersonPasswordlessCommand.cjs.map +1 -0
  39. package/dist/development/src/model/commands/person/TogglePersonPasswordlessCommand.js +18 -0
  40. package/dist/development/src/model/commands/person/TogglePersonPasswordlessCommand.js.map +1 -0
  41. package/dist/development/src/model/commands/personToken/ActivateOtpCommand.cjs +20 -0
  42. package/dist/development/src/model/commands/personToken/ActivateOtpCommand.cjs.map +1 -0
  43. package/dist/development/src/model/commands/personToken/ActivateOtpCommand.js +20 -0
  44. package/dist/development/src/model/commands/personToken/ActivateOtpCommand.js.map +1 -0
  45. package/dist/development/src/model/commands/personToken/CreatePersonTokenCommand.cjs +33 -0
  46. package/dist/development/src/model/commands/personToken/CreatePersonTokenCommand.cjs.map +1 -0
  47. package/dist/development/src/model/commands/personToken/CreatePersonTokenCommand.js +33 -0
  48. package/dist/development/src/model/commands/personToken/CreatePersonTokenCommand.js.map +1 -0
  49. package/dist/development/src/model/commands/personToken/IncreaseOtpAttemptCommand.cjs +19 -0
  50. package/dist/development/src/model/commands/personToken/IncreaseOtpAttemptCommand.cjs.map +1 -0
  51. package/dist/development/src/model/commands/personToken/IncreaseOtpAttemptCommand.js +19 -0
  52. package/dist/development/src/model/commands/personToken/IncreaseOtpAttemptCommand.js.map +1 -0
  53. package/dist/development/src/model/commands/personToken/InvalidateTokenCommand.cjs +19 -0
  54. package/dist/development/src/model/commands/personToken/InvalidateTokenCommand.cjs.map +1 -0
  55. package/dist/development/src/model/commands/personToken/InvalidateTokenCommand.js +19 -0
  56. package/dist/development/src/model/commands/personToken/InvalidateTokenCommand.js.map +1 -0
  57. package/dist/development/src/model/commands/personToken/ResetPasswordCommand.cjs +28 -0
  58. package/dist/development/src/model/commands/personToken/ResetPasswordCommand.cjs.map +1 -0
  59. package/dist/development/src/model/commands/personToken/ResetPasswordCommand.js +28 -0
  60. package/dist/development/src/model/commands/personToken/ResetPasswordCommand.js.map +1 -0
  61. package/dist/development/src/model/commands/personToken/SavePersonTokenCommand.cjs +28 -0
  62. package/dist/development/src/model/commands/personToken/SavePersonTokenCommand.cjs.map +1 -0
  63. package/dist/development/src/model/commands/personToken/SavePersonTokenCommand.js +28 -0
  64. package/dist/development/src/model/commands/personToken/SavePersonTokenCommand.js.map +1 -0
  65. package/dist/development/src/model/consts/expirations.cjs +7 -0
  66. package/dist/development/src/model/consts/expirations.cjs.map +1 -0
  67. package/dist/development/src/model/consts/expirations.js +7 -0
  68. package/dist/development/src/model/consts/expirations.js.map +1 -0
  69. package/dist/development/src/model/mailing/UserMailer.cjs +10 -1
  70. package/dist/development/src/model/mailing/UserMailer.cjs.map +1 -1
  71. package/dist/development/src/model/mailing/UserMailer.js +10 -1
  72. package/dist/development/src/model/mailing/UserMailer.js.map +1 -1
  73. package/dist/development/src/model/mailing/templates/PasswordlessSignIn.mustache.cjs +17 -0
  74. package/dist/development/src/model/mailing/templates/PasswordlessSignIn.mustache.cjs.map +1 -0
  75. package/dist/development/src/model/mailing/templates/PasswordlessSignIn.mustache.js +18 -0
  76. package/dist/development/src/model/mailing/templates/PasswordlessSignIn.mustache.js.map +1 -0
  77. package/dist/development/src/model/mailing/type.cjs +9 -3
  78. package/dist/development/src/model/mailing/type.cjs.map +1 -1
  79. package/dist/development/src/model/mailing/type.js +9 -3
  80. package/dist/development/src/model/mailing/type.js.map +1 -1
  81. package/dist/development/src/model/queries/configuration/ConfigurationQuery.cjs +21 -0
  82. package/dist/development/src/model/queries/configuration/ConfigurationQuery.cjs.map +1 -0
  83. package/dist/development/src/model/queries/configuration/ConfigurationQuery.js +21 -0
  84. package/dist/development/src/model/queries/configuration/ConfigurationQuery.js.map +1 -0
  85. package/dist/development/src/model/queries/person/PersonQueryBuilderFactory.cjs +1 -1
  86. package/dist/development/src/model/queries/person/PersonQueryBuilderFactory.cjs.map +1 -1
  87. package/dist/development/src/model/queries/person/PersonQueryBuilderFactory.js +1 -1
  88. package/dist/development/src/model/queries/person/PersonQueryBuilderFactory.js.map +1 -1
  89. package/dist/development/src/model/queries/personToken/PersonTokenQuery.cjs +29 -0
  90. package/dist/development/src/model/queries/personToken/PersonTokenQuery.cjs.map +1 -0
  91. package/dist/development/src/model/queries/personToken/PersonTokenQuery.js +29 -0
  92. package/dist/development/src/model/queries/personToken/PersonTokenQuery.js.map +1 -0
  93. package/dist/development/src/model/service/ConfigurationManager.cjs +27 -0
  94. package/dist/development/src/model/service/ConfigurationManager.cjs.map +1 -0
  95. package/dist/development/src/model/service/ConfigurationManager.js +27 -0
  96. package/dist/development/src/model/service/ConfigurationManager.js.map +1 -0
  97. package/dist/development/src/model/service/InviteManager.cjs +7 -7
  98. package/dist/development/src/model/service/InviteManager.cjs.map +1 -1
  99. package/dist/development/src/model/service/InviteManager.js +6 -6
  100. package/dist/development/src/model/service/InviteManager.js.map +1 -1
  101. package/dist/development/src/model/service/PasswordChangeManager.cjs +1 -1
  102. package/dist/development/src/model/service/PasswordChangeManager.js +1 -1
  103. package/dist/development/src/model/service/PasswordResetManager.cjs +7 -15
  104. package/dist/development/src/model/service/PasswordResetManager.cjs.map +1 -1
  105. package/dist/development/src/model/service/PasswordResetManager.js +7 -15
  106. package/dist/development/src/model/service/PasswordResetManager.js.map +1 -1
  107. package/dist/development/src/model/service/PasswordlessSignInManager.cjs +135 -0
  108. package/dist/development/src/model/service/PasswordlessSignInManager.cjs.map +1 -0
  109. package/dist/development/src/model/service/PasswordlessSignInManager.js +135 -0
  110. package/dist/development/src/model/service/PasswordlessSignInManager.js.map +1 -0
  111. package/dist/development/src/model/service/PersonManager.cjs +7 -0
  112. package/dist/development/src/model/service/PersonManager.cjs.map +1 -1
  113. package/dist/development/src/model/service/PersonManager.js +7 -0
  114. package/dist/development/src/model/service/PersonManager.js.map +1 -1
  115. package/dist/development/src/model/service/ProjectManager.cjs +2 -2
  116. package/dist/development/src/model/service/ProjectManager.js +2 -2
  117. package/dist/development/src/model/service/RolesManager.cjs +1 -1
  118. package/dist/development/src/model/service/RolesManager.js +1 -1
  119. package/dist/development/src/model/service/SignUpManager.cjs +1 -1
  120. package/dist/development/src/model/service/SignUpManager.js +1 -1
  121. package/dist/development/src/model/service/helpers/getPreferredProject.cjs +13 -0
  122. package/dist/development/src/model/service/helpers/getPreferredProject.cjs.map +1 -0
  123. package/dist/development/src/model/service/helpers/getPreferredProject.js +13 -0
  124. package/dist/development/src/model/service/helpers/getPreferredProject.js.map +1 -0
  125. package/dist/development/src/model/service/idp/providers/OIDCProvider.cjs +2 -1
  126. package/dist/development/src/model/service/idp/providers/OIDCProvider.cjs.map +1 -1
  127. package/dist/development/src/model/service/idp/providers/OIDCProvider.js +2 -1
  128. package/dist/development/src/model/service/idp/providers/OIDCProvider.js.map +1 -1
  129. package/dist/development/src/model/service/idp/providers/OIDCTypes.cjs +2 -1
  130. package/dist/development/src/model/service/idp/providers/OIDCTypes.cjs.map +1 -1
  131. package/dist/development/src/model/service/idp/providers/OIDCTypes.js +2 -1
  132. package/dist/development/src/model/service/idp/providers/OIDCTypes.js.map +1 -1
  133. package/dist/development/src/model/utils/tokenUtils.cjs +39 -0
  134. package/dist/development/src/model/utils/tokenUtils.cjs.map +1 -1
  135. package/dist/development/src/model/utils/tokenUtils.js +40 -1
  136. package/dist/development/src/model/utils/tokenUtils.js.map +1 -1
  137. package/dist/development/src/resolvers/ResolverFactory.cjs +8 -1
  138. package/dist/development/src/resolvers/ResolverFactory.cjs.map +1 -1
  139. package/dist/development/src/resolvers/ResolverFactory.js +8 -1
  140. package/dist/development/src/resolvers/ResolverFactory.js.map +1 -1
  141. package/dist/development/src/resolvers/mutation/configuration/ConfigurationMutationResolver.cjs +41 -0
  142. package/dist/development/src/resolvers/mutation/configuration/ConfigurationMutationResolver.cjs.map +1 -0
  143. package/dist/development/src/resolvers/mutation/configuration/ConfigurationMutationResolver.js +41 -0
  144. package/dist/development/src/resolvers/mutation/configuration/ConfigurationMutationResolver.js.map +1 -0
  145. package/dist/development/src/resolvers/mutation/person/PasswordlessMutationResolver.cjs +83 -0
  146. package/dist/development/src/resolvers/mutation/person/PasswordlessMutationResolver.cjs.map +1 -0
  147. package/dist/development/src/resolvers/mutation/person/PasswordlessMutationResolver.js +83 -0
  148. package/dist/development/src/resolvers/mutation/person/PasswordlessMutationResolver.js.map +1 -0
  149. package/dist/development/src/resolvers/mutation/person/ResetPasswordMutationResolver.cjs.map +1 -1
  150. package/dist/development/src/resolvers/mutation/person/ResetPasswordMutationResolver.js.map +1 -1
  151. package/dist/development/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.cjs +52 -0
  152. package/dist/development/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.cjs.map +1 -0
  153. package/dist/development/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.js +52 -0
  154. package/dist/development/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.js.map +1 -0
  155. package/dist/development/src/resolvers/query/ConfigurationQueryResolver.cjs +34 -0
  156. package/dist/development/src/resolvers/query/ConfigurationQueryResolver.cjs.map +1 -0
  157. package/dist/development/src/resolvers/query/ConfigurationQueryResolver.js +34 -0
  158. package/dist/development/src/resolvers/query/ConfigurationQueryResolver.js.map +1 -0
  159. package/dist/development/src/resolvers/responseHelpers/PersonResponseFactory.cjs +1 -0
  160. package/dist/development/src/resolvers/responseHelpers/PersonResponseFactory.cjs.map +1 -1
  161. package/dist/development/src/resolvers/responseHelpers/PersonResponseFactory.js +1 -0
  162. package/dist/development/src/resolvers/responseHelpers/PersonResponseFactory.js.map +1 -1
  163. package/dist/development/src/schema/tenant.graphql.cjs +161 -10
  164. package/dist/development/src/schema/tenant.graphql.cjs.map +1 -1
  165. package/dist/development/src/schema/tenant.graphql.js +161 -10
  166. package/dist/development/src/schema/tenant.graphql.js.map +1 -1
  167. package/dist/production/index.cjs +18 -6
  168. package/dist/production/index.cjs.map +1 -1
  169. package/dist/production/index.js +20 -8
  170. package/dist/production/index.js.map +1 -1
  171. package/dist/production/src/TenantContainer.cjs +7 -1
  172. package/dist/production/src/TenantContainer.cjs.map +1 -1
  173. package/dist/production/src/TenantContainer.js +7 -1
  174. package/dist/production/src/TenantContainer.js.map +1 -1
  175. package/dist/production/src/migrations/2024-08-26-120000-passwordless.cjs +31 -0
  176. package/dist/production/src/migrations/2024-08-26-120000-passwordless.cjs.map +1 -0
  177. package/dist/production/src/migrations/2024-08-26-120000-passwordless.js +32 -0
  178. package/dist/production/src/migrations/2024-08-26-120000-passwordless.js.map +1 -0
  179. package/dist/production/src/migrations/runner.cjs +3 -1
  180. package/dist/production/src/migrations/runner.cjs.map +1 -1
  181. package/dist/production/src/migrations/runner.js +3 -1
  182. package/dist/production/src/migrations/runner.js.map +1 -1
  183. package/dist/production/src/migrations/snapshot.cjs +33 -5
  184. package/dist/production/src/migrations/snapshot.cjs.map +1 -1
  185. package/dist/production/src/migrations/snapshot.js +33 -5
  186. package/dist/production/src/migrations/snapshot.js.map +1 -1
  187. package/dist/production/src/model/authorization/PermissionActions.cjs +5 -0
  188. package/dist/production/src/model/authorization/PermissionActions.cjs.map +1 -1
  189. package/dist/production/src/model/authorization/PermissionActions.js +5 -0
  190. package/dist/production/src/model/authorization/PermissionActions.js.map +1 -1
  191. package/dist/production/src/model/authorization/PermissionsFactory.cjs +5 -0
  192. package/dist/production/src/model/authorization/PermissionsFactory.cjs.map +1 -1
  193. package/dist/production/src/model/authorization/PermissionsFactory.js +5 -0
  194. package/dist/production/src/model/authorization/PermissionsFactory.js.map +1 -1
  195. package/dist/production/src/model/commands/configuration/UpdateConfigurationCommand.cjs +20 -0
  196. package/dist/production/src/model/commands/configuration/UpdateConfigurationCommand.cjs.map +1 -0
  197. package/dist/production/src/model/commands/configuration/UpdateConfigurationCommand.js +20 -0
  198. package/dist/production/src/model/commands/configuration/UpdateConfigurationCommand.js.map +1 -0
  199. package/dist/production/src/model/commands/person/CreatePersonCommand.cjs +2 -1
  200. package/dist/production/src/model/commands/person/CreatePersonCommand.cjs.map +1 -1
  201. package/dist/production/src/model/commands/person/CreatePersonCommand.js +2 -1
  202. package/dist/production/src/model/commands/person/CreatePersonCommand.js.map +1 -1
  203. package/dist/production/src/model/commands/person/TogglePersonPasswordlessCommand.cjs +18 -0
  204. package/dist/production/src/model/commands/person/TogglePersonPasswordlessCommand.cjs.map +1 -0
  205. package/dist/production/src/model/commands/person/TogglePersonPasswordlessCommand.js +18 -0
  206. package/dist/production/src/model/commands/person/TogglePersonPasswordlessCommand.js.map +1 -0
  207. package/dist/production/src/model/commands/personToken/ActivateOtpCommand.cjs +20 -0
  208. package/dist/production/src/model/commands/personToken/ActivateOtpCommand.cjs.map +1 -0
  209. package/dist/production/src/model/commands/personToken/ActivateOtpCommand.js +20 -0
  210. package/dist/production/src/model/commands/personToken/ActivateOtpCommand.js.map +1 -0
  211. package/dist/production/src/model/commands/personToken/CreatePersonTokenCommand.cjs +33 -0
  212. package/dist/production/src/model/commands/personToken/CreatePersonTokenCommand.cjs.map +1 -0
  213. package/dist/production/src/model/commands/personToken/CreatePersonTokenCommand.js +33 -0
  214. package/dist/production/src/model/commands/personToken/CreatePersonTokenCommand.js.map +1 -0
  215. package/dist/production/src/model/commands/personToken/IncreaseOtpAttemptCommand.cjs +19 -0
  216. package/dist/production/src/model/commands/personToken/IncreaseOtpAttemptCommand.cjs.map +1 -0
  217. package/dist/production/src/model/commands/personToken/IncreaseOtpAttemptCommand.js +19 -0
  218. package/dist/production/src/model/commands/personToken/IncreaseOtpAttemptCommand.js.map +1 -0
  219. package/dist/production/src/model/commands/personToken/InvalidateTokenCommand.cjs +19 -0
  220. package/dist/production/src/model/commands/personToken/InvalidateTokenCommand.cjs.map +1 -0
  221. package/dist/production/src/model/commands/personToken/InvalidateTokenCommand.js +19 -0
  222. package/dist/production/src/model/commands/personToken/InvalidateTokenCommand.js.map +1 -0
  223. package/dist/production/src/model/commands/personToken/ResetPasswordCommand.cjs +28 -0
  224. package/dist/production/src/model/commands/personToken/ResetPasswordCommand.cjs.map +1 -0
  225. package/dist/production/src/model/commands/personToken/ResetPasswordCommand.js +28 -0
  226. package/dist/production/src/model/commands/personToken/ResetPasswordCommand.js.map +1 -0
  227. package/dist/production/src/model/commands/personToken/SavePersonTokenCommand.cjs +28 -0
  228. package/dist/production/src/model/commands/personToken/SavePersonTokenCommand.cjs.map +1 -0
  229. package/dist/production/src/model/commands/personToken/SavePersonTokenCommand.js +28 -0
  230. package/dist/production/src/model/commands/personToken/SavePersonTokenCommand.js.map +1 -0
  231. package/dist/production/src/model/consts/expirations.cjs +7 -0
  232. package/dist/production/src/model/consts/expirations.cjs.map +1 -0
  233. package/dist/production/src/model/consts/expirations.js +7 -0
  234. package/dist/production/src/model/consts/expirations.js.map +1 -0
  235. package/dist/production/src/model/mailing/UserMailer.cjs +10 -1
  236. package/dist/production/src/model/mailing/UserMailer.cjs.map +1 -1
  237. package/dist/production/src/model/mailing/UserMailer.js +10 -1
  238. package/dist/production/src/model/mailing/UserMailer.js.map +1 -1
  239. package/dist/production/src/model/mailing/templates/PasswordlessSignIn.mustache.cjs +17 -0
  240. package/dist/production/src/model/mailing/templates/PasswordlessSignIn.mustache.cjs.map +1 -0
  241. package/dist/production/src/model/mailing/templates/PasswordlessSignIn.mustache.js +18 -0
  242. package/dist/production/src/model/mailing/templates/PasswordlessSignIn.mustache.js.map +1 -0
  243. package/dist/production/src/model/mailing/type.cjs +9 -3
  244. package/dist/production/src/model/mailing/type.cjs.map +1 -1
  245. package/dist/production/src/model/mailing/type.js +9 -3
  246. package/dist/production/src/model/mailing/type.js.map +1 -1
  247. package/dist/production/src/model/queries/configuration/ConfigurationQuery.cjs +21 -0
  248. package/dist/production/src/model/queries/configuration/ConfigurationQuery.cjs.map +1 -0
  249. package/dist/production/src/model/queries/configuration/ConfigurationQuery.js +21 -0
  250. package/dist/production/src/model/queries/configuration/ConfigurationQuery.js.map +1 -0
  251. package/dist/production/src/model/queries/person/PersonQueryBuilderFactory.cjs +1 -1
  252. package/dist/production/src/model/queries/person/PersonQueryBuilderFactory.cjs.map +1 -1
  253. package/dist/production/src/model/queries/person/PersonQueryBuilderFactory.js +1 -1
  254. package/dist/production/src/model/queries/person/PersonQueryBuilderFactory.js.map +1 -1
  255. package/dist/production/src/model/queries/personToken/PersonTokenQuery.cjs +29 -0
  256. package/dist/production/src/model/queries/personToken/PersonTokenQuery.cjs.map +1 -0
  257. package/dist/production/src/model/queries/personToken/PersonTokenQuery.js +29 -0
  258. package/dist/production/src/model/queries/personToken/PersonTokenQuery.js.map +1 -0
  259. package/dist/production/src/model/service/ConfigurationManager.cjs +27 -0
  260. package/dist/production/src/model/service/ConfigurationManager.cjs.map +1 -0
  261. package/dist/production/src/model/service/ConfigurationManager.js +27 -0
  262. package/dist/production/src/model/service/ConfigurationManager.js.map +1 -0
  263. package/dist/production/src/model/service/InviteManager.cjs +7 -7
  264. package/dist/production/src/model/service/InviteManager.cjs.map +1 -1
  265. package/dist/production/src/model/service/InviteManager.js +6 -6
  266. package/dist/production/src/model/service/InviteManager.js.map +1 -1
  267. package/dist/production/src/model/service/PasswordChangeManager.cjs +1 -1
  268. package/dist/production/src/model/service/PasswordChangeManager.js +1 -1
  269. package/dist/production/src/model/service/PasswordResetManager.cjs +7 -15
  270. package/dist/production/src/model/service/PasswordResetManager.cjs.map +1 -1
  271. package/dist/production/src/model/service/PasswordResetManager.js +7 -15
  272. package/dist/production/src/model/service/PasswordResetManager.js.map +1 -1
  273. package/dist/production/src/model/service/PasswordlessSignInManager.cjs +135 -0
  274. package/dist/production/src/model/service/PasswordlessSignInManager.cjs.map +1 -0
  275. package/dist/production/src/model/service/PasswordlessSignInManager.js +135 -0
  276. package/dist/production/src/model/service/PasswordlessSignInManager.js.map +1 -0
  277. package/dist/production/src/model/service/PersonManager.cjs +7 -0
  278. package/dist/production/src/model/service/PersonManager.cjs.map +1 -1
  279. package/dist/production/src/model/service/PersonManager.js +7 -0
  280. package/dist/production/src/model/service/PersonManager.js.map +1 -1
  281. package/dist/production/src/model/service/ProjectManager.cjs +2 -2
  282. package/dist/production/src/model/service/ProjectManager.js +2 -2
  283. package/dist/production/src/model/service/RolesManager.cjs +1 -1
  284. package/dist/production/src/model/service/RolesManager.js +1 -1
  285. package/dist/production/src/model/service/SignUpManager.cjs +1 -1
  286. package/dist/production/src/model/service/SignUpManager.js +1 -1
  287. package/dist/production/src/model/service/helpers/getPreferredProject.cjs +13 -0
  288. package/dist/production/src/model/service/helpers/getPreferredProject.cjs.map +1 -0
  289. package/dist/production/src/model/service/helpers/getPreferredProject.js +13 -0
  290. package/dist/production/src/model/service/helpers/getPreferredProject.js.map +1 -0
  291. package/dist/production/src/model/service/idp/providers/OIDCProvider.cjs +2 -1
  292. package/dist/production/src/model/service/idp/providers/OIDCProvider.cjs.map +1 -1
  293. package/dist/production/src/model/service/idp/providers/OIDCProvider.js +2 -1
  294. package/dist/production/src/model/service/idp/providers/OIDCProvider.js.map +1 -1
  295. package/dist/production/src/model/service/idp/providers/OIDCTypes.cjs +2 -1
  296. package/dist/production/src/model/service/idp/providers/OIDCTypes.cjs.map +1 -1
  297. package/dist/production/src/model/service/idp/providers/OIDCTypes.js +2 -1
  298. package/dist/production/src/model/service/idp/providers/OIDCTypes.js.map +1 -1
  299. package/dist/production/src/model/utils/tokenUtils.cjs +39 -0
  300. package/dist/production/src/model/utils/tokenUtils.cjs.map +1 -1
  301. package/dist/production/src/model/utils/tokenUtils.js +40 -1
  302. package/dist/production/src/model/utils/tokenUtils.js.map +1 -1
  303. package/dist/production/src/resolvers/ResolverFactory.cjs +8 -1
  304. package/dist/production/src/resolvers/ResolverFactory.cjs.map +1 -1
  305. package/dist/production/src/resolvers/ResolverFactory.js +8 -1
  306. package/dist/production/src/resolvers/ResolverFactory.js.map +1 -1
  307. package/dist/production/src/resolvers/mutation/configuration/ConfigurationMutationResolver.cjs +41 -0
  308. package/dist/production/src/resolvers/mutation/configuration/ConfigurationMutationResolver.cjs.map +1 -0
  309. package/dist/production/src/resolvers/mutation/configuration/ConfigurationMutationResolver.js +41 -0
  310. package/dist/production/src/resolvers/mutation/configuration/ConfigurationMutationResolver.js.map +1 -0
  311. package/dist/production/src/resolvers/mutation/person/PasswordlessMutationResolver.cjs +83 -0
  312. package/dist/production/src/resolvers/mutation/person/PasswordlessMutationResolver.cjs.map +1 -0
  313. package/dist/production/src/resolvers/mutation/person/PasswordlessMutationResolver.js +83 -0
  314. package/dist/production/src/resolvers/mutation/person/PasswordlessMutationResolver.js.map +1 -0
  315. package/dist/production/src/resolvers/mutation/person/ResetPasswordMutationResolver.cjs.map +1 -1
  316. package/dist/production/src/resolvers/mutation/person/ResetPasswordMutationResolver.js.map +1 -1
  317. package/dist/production/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.cjs +52 -0
  318. package/dist/production/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.cjs.map +1 -0
  319. package/dist/production/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.js +52 -0
  320. package/dist/production/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.js.map +1 -0
  321. package/dist/production/src/resolvers/query/ConfigurationQueryResolver.cjs +34 -0
  322. package/dist/production/src/resolvers/query/ConfigurationQueryResolver.cjs.map +1 -0
  323. package/dist/production/src/resolvers/query/ConfigurationQueryResolver.js +34 -0
  324. package/dist/production/src/resolvers/query/ConfigurationQueryResolver.js.map +1 -0
  325. package/dist/production/src/resolvers/responseHelpers/PersonResponseFactory.cjs +1 -0
  326. package/dist/production/src/resolvers/responseHelpers/PersonResponseFactory.cjs.map +1 -1
  327. package/dist/production/src/resolvers/responseHelpers/PersonResponseFactory.js +1 -0
  328. package/dist/production/src/resolvers/responseHelpers/PersonResponseFactory.js.map +1 -1
  329. package/dist/production/src/schema/tenant.graphql.cjs +161 -10
  330. package/dist/production/src/schema/tenant.graphql.cjs.map +1 -1
  331. package/dist/production/src/schema/tenant.graphql.js +161 -10
  332. package/dist/production/src/schema/tenant.graphql.js.map +1 -1
  333. package/dist/tests/cases/integration/mocked/sql/{createPasswordResetSql.d.ts → createPersonTokenSql.d.ts} +3 -2
  334. package/dist/tests/cases/integration/mocked/sql/createPersonTokenSql.d.ts.map +1 -0
  335. package/dist/tests/cases/integration/mocked/sql/getPersonByEmailSql.d.ts.map +1 -1
  336. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  337. package/dist/types/TenantContainer.d.ts +18 -0
  338. package/dist/types/TenantContainer.d.ts.map +1 -1
  339. package/dist/types/migrations/2024-08-26-120000-passwordless.d.ts +3 -0
  340. package/dist/types/migrations/2024-08-26-120000-passwordless.d.ts.map +1 -0
  341. package/dist/types/migrations/runner.d.ts.map +1 -1
  342. package/dist/types/migrations/snapshot.d.ts.map +1 -1
  343. package/dist/types/model/authorization/PermissionActions.d.ts +25 -0
  344. package/dist/types/model/authorization/PermissionActions.d.ts.map +1 -1
  345. package/dist/types/model/authorization/PermissionsFactory.d.ts.map +1 -1
  346. package/dist/types/model/commands/configuration/UpdateConfigurationCommand.d.ts +8 -0
  347. package/dist/types/model/commands/configuration/UpdateConfigurationCommand.d.ts.map +1 -0
  348. package/dist/types/model/commands/configuration/index.d.ts +2 -0
  349. package/dist/types/model/commands/configuration/index.d.ts.map +1 -0
  350. package/dist/types/model/commands/index.d.ts +2 -2
  351. package/dist/types/model/commands/index.d.ts.map +1 -1
  352. package/dist/types/model/commands/person/CreatePersonCommand.d.ts.map +1 -1
  353. package/dist/types/model/commands/person/TogglePersonPasswordlessCommand.d.ts +8 -0
  354. package/dist/types/model/commands/person/TogglePersonPasswordlessCommand.d.ts.map +1 -0
  355. package/dist/types/model/commands/person/index.d.ts +1 -0
  356. package/dist/types/model/commands/person/index.d.ts.map +1 -1
  357. package/dist/types/model/commands/personToken/ActivateOtpCommand.d.ts +8 -0
  358. package/dist/types/model/commands/personToken/ActivateOtpCommand.d.ts.map +1 -0
  359. package/dist/types/model/commands/personToken/CreatePersonTokenCommand.d.ts +19 -0
  360. package/dist/types/model/commands/personToken/CreatePersonTokenCommand.d.ts.map +1 -0
  361. package/dist/types/model/commands/personToken/IncreaseOtpAttemptCommand.d.ts +7 -0
  362. package/dist/types/model/commands/personToken/IncreaseOtpAttemptCommand.d.ts.map +1 -0
  363. package/dist/types/model/commands/personToken/InvalidateTokenCommand.d.ts +7 -0
  364. package/dist/types/model/commands/personToken/InvalidateTokenCommand.d.ts.map +1 -0
  365. package/dist/types/model/commands/{passwordReset → personToken}/ResetPasswordCommand.d.ts +3 -2
  366. package/dist/types/model/commands/personToken/ResetPasswordCommand.d.ts.map +1 -0
  367. package/dist/types/model/commands/personToken/SavePersonTokenCommand.d.ts +19 -0
  368. package/dist/types/model/commands/personToken/SavePersonTokenCommand.d.ts.map +1 -0
  369. package/dist/types/model/commands/personToken/index.d.ts +7 -0
  370. package/dist/types/model/commands/personToken/index.d.ts.map +1 -0
  371. package/dist/types/model/consts/expirations.d.ts +3 -0
  372. package/dist/types/model/consts/expirations.d.ts.map +1 -0
  373. package/dist/types/model/mailing/UserMailer.d.ts +10 -0
  374. package/dist/types/model/mailing/UserMailer.d.ts.map +1 -1
  375. package/dist/types/model/mailing/templates/PasswordlessSignIn.mustache.d.ts +3 -0
  376. package/dist/types/model/mailing/templates/PasswordlessSignIn.mustache.d.ts.map +1 -0
  377. package/dist/types/model/mailing/type.d.ts +2 -1
  378. package/dist/types/model/mailing/type.d.ts.map +1 -1
  379. package/dist/types/model/queries/configuration/ConfigurationQuery.d.ts +6 -0
  380. package/dist/types/model/queries/configuration/ConfigurationQuery.d.ts.map +1 -0
  381. package/dist/types/model/queries/configuration/index.d.ts +2 -0
  382. package/dist/types/model/queries/configuration/index.d.ts.map +1 -0
  383. package/dist/types/model/queries/index.d.ts +1 -0
  384. package/dist/types/model/queries/index.d.ts.map +1 -1
  385. package/dist/types/model/queries/person/PersonQueryBuilderFactory.d.ts.map +1 -1
  386. package/dist/types/model/queries/person/types.d.ts +1 -0
  387. package/dist/types/model/queries/person/types.d.ts.map +1 -1
  388. package/dist/types/model/queries/personToken/PersonTokenQuery.d.ts +12 -0
  389. package/dist/types/model/queries/personToken/PersonTokenQuery.d.ts.map +1 -0
  390. package/dist/types/model/service/ConfigurationManager.d.ts +9 -0
  391. package/dist/types/model/service/ConfigurationManager.d.ts.map +1 -0
  392. package/dist/types/model/service/InviteManager.d.ts.map +1 -1
  393. package/dist/types/model/service/PasswordResetManager.d.ts +1 -1
  394. package/dist/types/model/service/PasswordResetManager.d.ts.map +1 -1
  395. package/dist/types/model/service/PasswordlessSignInManager.d.ts +54 -0
  396. package/dist/types/model/service/PasswordlessSignInManager.d.ts.map +1 -0
  397. package/dist/types/model/service/PersonManager.d.ts +1 -0
  398. package/dist/types/model/service/PersonManager.d.ts.map +1 -1
  399. package/dist/types/model/service/PersonTokenManager.d.ts +3 -0
  400. package/dist/types/model/service/PersonTokenManager.d.ts.map +1 -0
  401. package/dist/types/model/service/helpers/getPreferredProject.d.ts +3 -0
  402. package/dist/types/model/service/helpers/getPreferredProject.d.ts.map +1 -0
  403. package/dist/types/model/service/idp/providers/AppleProvider.d.ts +2 -0
  404. package/dist/types/model/service/idp/providers/AppleProvider.d.ts.map +1 -1
  405. package/dist/types/model/service/idp/providers/FacebookProvider.d.ts +2 -0
  406. package/dist/types/model/service/idp/providers/FacebookProvider.d.ts.map +1 -1
  407. package/dist/types/model/service/idp/providers/OIDCProvider.d.ts +1 -0
  408. package/dist/types/model/service/idp/providers/OIDCProvider.d.ts.map +1 -1
  409. package/dist/types/model/service/idp/providers/OIDCTypes.d.ts +5 -1
  410. package/dist/types/model/service/idp/providers/OIDCTypes.d.ts.map +1 -1
  411. package/dist/types/model/type/PersonToken.d.ts +16 -0
  412. package/dist/types/model/type/PersonToken.d.ts.map +1 -0
  413. package/dist/types/model/type/index.d.ts +1 -0
  414. package/dist/types/model/type/index.d.ts.map +1 -1
  415. package/dist/types/model/utils/tokenUtils.d.ts +8 -0
  416. package/dist/types/model/utils/tokenUtils.d.ts.map +1 -1
  417. package/dist/types/resolvers/ResolverFactory.d.ts +8 -0
  418. package/dist/types/resolvers/ResolverFactory.d.ts.map +1 -1
  419. package/dist/types/resolvers/mutation/configuration/ConfigurationMutationResolver.d.ts +9 -0
  420. package/dist/types/resolvers/mutation/configuration/ConfigurationMutationResolver.d.ts.map +1 -0
  421. package/dist/types/resolvers/mutation/person/PasswordlessMutationResolver.d.ts +13 -0
  422. package/dist/types/resolvers/mutation/person/PasswordlessMutationResolver.d.ts.map +1 -0
  423. package/dist/types/resolvers/mutation/person/ResetPasswordMutationResolver.d.ts.map +1 -1
  424. package/dist/types/resolvers/mutation/person/TogglePasswordlessMutationResolver.d.ts +13 -0
  425. package/dist/types/resolvers/mutation/person/TogglePasswordlessMutationResolver.d.ts.map +1 -0
  426. package/dist/types/resolvers/query/ConfigurationQueryResolver.d.ts +9 -0
  427. package/dist/types/resolvers/query/ConfigurationQueryResolver.d.ts.map +1 -0
  428. package/dist/types/resolvers/responseHelpers/PersonResponseFactory.d.ts.map +1 -1
  429. package/dist/types/schema/index.d.ts +258 -5
  430. package/dist/types/schema/index.d.ts.map +1 -1
  431. package/dist/types/schema/tenant.graphql.d.ts.map +1 -1
  432. package/dist/types/tsconfig.tsbuildinfo +1 -1
  433. package/package.json +12 -12
  434. package/src/TenantContainer.ts +18 -0
  435. package/src/migrations/2024-08-26-120000-passwordless.ts +31 -0
  436. package/src/migrations/runner.ts +2 -0
  437. package/src/migrations/snapshot-template-end.txt +3 -0
  438. package/src/migrations/snapshot.ts +33 -5
  439. package/src/model/authorization/PermissionActions.ts +7 -0
  440. package/src/model/authorization/PermissionsFactory.ts +5 -0
  441. package/src/model/commands/configuration/UpdateConfigurationCommand.ts +26 -0
  442. package/src/model/commands/configuration/index.ts +1 -0
  443. package/src/model/commands/index.ts +2 -2
  444. package/src/model/commands/person/CreatePersonCommand.ts +1 -0
  445. package/src/model/commands/person/TogglePersonPasswordlessCommand.ts +18 -0
  446. package/src/model/commands/person/index.ts +1 -0
  447. package/src/model/commands/personToken/ActivateOtpCommand.ts +24 -0
  448. package/src/model/commands/personToken/CreatePersonTokenCommand.ts +42 -0
  449. package/src/model/commands/personToken/IncreaseOtpAttemptCommand.ts +23 -0
  450. package/src/model/commands/personToken/InvalidateTokenCommand.ts +22 -0
  451. package/src/model/commands/personToken/ResetPasswordCommand.ts +28 -0
  452. package/src/model/commands/personToken/SavePersonTokenCommand.ts +42 -0
  453. package/src/model/commands/personToken/index.ts +6 -0
  454. package/src/model/consts/expirations.ts +2 -0
  455. package/src/model/mailing/UserMailer.ts +14 -0
  456. package/src/model/mailing/templates/PasswordlessSignIn.mustache.ts +15 -0
  457. package/src/model/mailing/type.ts +3 -0
  458. package/src/model/queries/configuration/ConfigurationQuery.ts +30 -0
  459. package/src/model/queries/configuration/index.ts +1 -0
  460. package/src/model/queries/index.ts +1 -0
  461. package/src/model/queries/person/PersonQueryBuilderFactory.ts +1 -0
  462. package/src/model/queries/person/types.ts +1 -0
  463. package/src/model/queries/personToken/PersonTokenQuery.ts +35 -0
  464. package/src/model/service/ConfigurationManager.ts +22 -0
  465. package/src/model/service/InviteManager.ts +5 -6
  466. package/src/model/service/PasswordResetManager.ts +4 -10
  467. package/src/model/service/PasswordlessSignInManager.ts +190 -0
  468. package/src/model/service/PersonManager.ts +6 -0
  469. package/src/model/service/PersonTokenManager.ts +2 -0
  470. package/src/model/service/helpers/getPreferredProject.ts +11 -0
  471. package/src/model/service/idp/providers/OIDCProvider.ts +1 -0
  472. package/src/model/service/idp/providers/OIDCTypes.ts +1 -0
  473. package/src/model/type/PersonToken.ts +21 -0
  474. package/src/model/type/index.ts +1 -0
  475. package/src/model/utils/tokenUtils.ts +47 -0
  476. package/src/resolvers/ResolverFactory.ts +19 -0
  477. package/src/resolvers/mutation/configuration/ConfigurationMutationResolver.ts +29 -0
  478. package/src/resolvers/mutation/person/PasswordlessMutationResolver.ts +81 -0
  479. package/src/resolvers/mutation/person/ResetPasswordMutationResolver.ts +1 -10
  480. package/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.ts +44 -0
  481. package/src/resolvers/query/ConfigurationQueryResolver.ts +21 -0
  482. package/src/resolvers/responseHelpers/PersonResponseFactory.ts +1 -0
  483. package/src/schema/index.ts +326 -2
  484. package/src/schema/tenant.graphql.ts +161 -10
  485. package/tests/cases/integration/mocked/inviteMutations.test.ts +2 -2
  486. package/tests/cases/integration/mocked/sql/{createPasswordResetSql.ts → createPersonTokenSql.ts} +5 -3
  487. package/tests/cases/integration/mocked/sql/getPersonByEmailSql.ts +2 -1
  488. package/tests/cases/integration/mocked/sql/getPersonByIdSql.ts +1 -1
  489. package/tests/cases/integration/mocked/sql/getPersonByIdentity.ts +1 -1
  490. package/tests/cases/integration/mocked/sql/getPersonByIdpSql.ts +1 -1
  491. package/dist/development/src/model/commands/passwordReset/CreatePasswordResetRequestCommand.cjs +0 -30
  492. package/dist/development/src/model/commands/passwordReset/CreatePasswordResetRequestCommand.cjs.map +0 -1
  493. package/dist/development/src/model/commands/passwordReset/CreatePasswordResetRequestCommand.js +0 -30
  494. package/dist/development/src/model/commands/passwordReset/CreatePasswordResetRequestCommand.js.map +0 -1
  495. package/dist/development/src/model/commands/passwordReset/ResetPasswordCommand.cjs +0 -38
  496. package/dist/development/src/model/commands/passwordReset/ResetPasswordCommand.cjs.map +0 -1
  497. package/dist/development/src/model/commands/passwordReset/ResetPasswordCommand.js +0 -38
  498. package/dist/development/src/model/commands/passwordReset/ResetPasswordCommand.js.map +0 -1
  499. package/dist/development/src/model/commands/passwordReset/SavePasswordResetRequestCommand.cjs +0 -24
  500. package/dist/development/src/model/commands/passwordReset/SavePasswordResetRequestCommand.cjs.map +0 -1
  501. package/dist/development/src/model/commands/passwordReset/SavePasswordResetRequestCommand.js +0 -24
  502. package/dist/development/src/model/commands/passwordReset/SavePasswordResetRequestCommand.js.map +0 -1
  503. package/dist/production/src/model/commands/passwordReset/CreatePasswordResetRequestCommand.cjs +0 -30
  504. package/dist/production/src/model/commands/passwordReset/CreatePasswordResetRequestCommand.cjs.map +0 -1
  505. package/dist/production/src/model/commands/passwordReset/CreatePasswordResetRequestCommand.js +0 -30
  506. package/dist/production/src/model/commands/passwordReset/CreatePasswordResetRequestCommand.js.map +0 -1
  507. package/dist/production/src/model/commands/passwordReset/ResetPasswordCommand.cjs +0 -38
  508. package/dist/production/src/model/commands/passwordReset/ResetPasswordCommand.cjs.map +0 -1
  509. package/dist/production/src/model/commands/passwordReset/ResetPasswordCommand.js +0 -38
  510. package/dist/production/src/model/commands/passwordReset/ResetPasswordCommand.js.map +0 -1
  511. package/dist/production/src/model/commands/passwordReset/SavePasswordResetRequestCommand.cjs +0 -24
  512. package/dist/production/src/model/commands/passwordReset/SavePasswordResetRequestCommand.cjs.map +0 -1
  513. package/dist/production/src/model/commands/passwordReset/SavePasswordResetRequestCommand.js +0 -24
  514. package/dist/production/src/model/commands/passwordReset/SavePasswordResetRequestCommand.js.map +0 -1
  515. package/dist/tests/cases/integration/mocked/sql/createPasswordResetSql.d.ts.map +0 -1
  516. package/dist/types/model/commands/passwordReset/CreatePasswordResetRequestCommand.d.ts +0 -12
  517. package/dist/types/model/commands/passwordReset/CreatePasswordResetRequestCommand.d.ts.map +0 -1
  518. package/dist/types/model/commands/passwordReset/ResetPasswordCommand.d.ts.map +0 -1
  519. package/dist/types/model/commands/passwordReset/SavePasswordResetRequestCommand.d.ts +0 -10
  520. package/dist/types/model/commands/passwordReset/SavePasswordResetRequestCommand.d.ts.map +0 -1
  521. package/dist/types/model/commands/passwordReset/index.d.ts +0 -4
  522. package/dist/types/model/commands/passwordReset/index.d.ts.map +0 -1
  523. package/src/model/commands/passwordReset/CreatePasswordResetRequestCommand.ts +0 -25
  524. package/src/model/commands/passwordReset/ResetPasswordCommand.ts +0 -57
  525. package/src/model/commands/passwordReset/SavePasswordResetRequestCommand.ts +0 -28
  526. package/src/model/commands/passwordReset/index.ts +0 -3
@@ -1 +1 @@
1
- {"version":3,"file":"TenantContainer.cjs","sources":["../../../../packages/engine-tenant-api/src/TenantContainer.ts"],"sourcesContent":["import { AccessEvaluator, Authorizator } from '@contember/authorization'\nimport { Connection, DatabaseConfig } from '@contember/database'\nimport { Builder } from '@contember/dic'\nimport {\n\tAclSchemaAccessNodeFactory,\n\tApiKeyManager,\n\tApiKeyService,\n\tAppleProvider,\n\tDatabaseContext,\n\tEmailValidator,\n\tFacebookProvider,\n\tIdentity,\n\tIdentityFactory,\n\tIDPHandlerRegistry,\n\tIDPManager,\n\tIDPSignInManager,\n\tInviteManager,\n\tMailTemplateManager,\n\tMembershipValidator,\n\tOIDCProvider,\n\tOtpAuthenticator,\n\tOtpManager,\n\tPasswordChangeManager,\n\tPasswordResetManager,\n\tPermissionContextFactory,\n\tPermissionsFactory,\n\tPersonAccessManager,\n\tPersonManager,\n\tProjectInitializer,\n\tProjectManager,\n\tProjectMemberManager,\n\tProjectSchemaResolver,\n\tProjectScopeFactory,\n\tProviders,\n\tRolesManager,\n\tSecretsManager,\n\tSignInManager,\n\tSignUpManager,\n\tUserMailer,\n} from './model'\nimport {\n\tAddIDPMutationResolver,\n\tAddProjectMemberMutationResolver,\n\tChangePasswordMutationResolver,\n\tChangeProfileMutationResolver,\n\tCreateApiKeyMutationResolver,\n\tCreateProjectMutationResolver,\n\tDisableApiKeyMutationResolver,\n\tDisableIDPMutationResolver,\n\tEnableIDPMutationResolver,\n\tIdentityGlobalRolesMutationResolver,\n\tIdentityTypeResolver,\n\tIDPMutationResolver,\n\tInviteMutationResolver,\n\tMailTemplateMutationResolver,\n\tMeQueryResolver,\n\tOtpMutationResolver,\n\tPersonQueryResolver,\n\tProjectMembersQueryResolver,\n\tProjectQueryResolver,\n\tProjectTypeResolver,\n\tRemoveProjectMemberMutationResolver,\n\tResetPasswordMutationResolver,\n\tResolverFactory,\n\tSetProjectSecretMutationResolver,\n\tSignInMutationResolver,\n\tSignOutMutationResolver,\n\tSignUpMutationResolver,\n\tTenantResolverContextFactory,\n\tUpdateProjectMemberMutationResolver,\n\tUpdateProjectMutationResolver,\n} from './resolvers'\nimport * as Schema from './schema'\nimport { createMailer, MailerOptions, TemplateRenderer } from './utils'\nimport { IdentityFetcher } from './bridges/system/IdentityFetcher'\nimport { SignInResponseFactory } from './resolvers/responseHelpers/SignInResponseFactory'\nimport { IDPQueryResolver } from './resolvers/query/IDPQueryResolver'\nimport { UpdateIDPMutationResolver } from './resolvers/mutation/idp/UpdateIDPMutationResolver'\nimport { TenantCredentials, TenantMigrationsRunner } from './migrations'\nimport { DisablePersonMutationResolver } from './resolvers/mutation/person/DisablePersonMutationResolver'\nimport { MailTemplateQueryResolver } from './resolvers/query/MailTemplateQueryResolver'\n\nexport interface TenantContainer {\n\tprojectMemberManager: ProjectMemberManager\n\tapiKeyManager: ApiKeyManager\n\tsignUpManager: SignUpManager\n\tprojectManager: ProjectManager\n\tresolvers: Schema.Resolvers\n\tresolverContextFactory: TenantResolverContextFactory\n\tauthorizator: Authorizator<Identity>\n\tidentityFetcher: IdentityFetcher\n\tdatabaseContext: DatabaseContext\n\treadDatabaseContext: DatabaseContext\n\tmigrationsRunner: TenantMigrationsRunner\n\tconnection: Connection.ConnectionType\n\treadConnection: Connection.ConnectionType\n}\n\nexport interface TenantContainerArgs {\n\tconnection: Connection.ConnectionType\n\treadConnection: Connection.ConnectionType\n\tdbCredentials: DatabaseConfig\n\tmailOptions: MailerOptions\n\tprojectSchemaResolver: ProjectSchemaResolver\n\tprojectInitializer: ProjectInitializer\n\ttenantCredentials: TenantCredentials\n\tcryptoProviders: Pick<Providers, 'encrypt' | 'decrypt'>\n}\n\nexport class TenantContainerFactory {\n\tconstructor(\n\t\tprivate readonly providers: Omit<Providers, 'encrypt' | 'decrypt'>,\n\t) { }\n\n\tcreate(args: TenantContainerArgs): TenantContainer {\n\t\treturn this.createBuilder(args)\n\t\t\t.build()\n\t\t\t.pick(\n\t\t\t\t'apiKeyManager',\n\t\t\t\t'projectMemberManager',\n\t\t\t\t'projectManager',\n\t\t\t\t'signUpManager',\n\t\t\t\t'resolvers',\n\t\t\t\t'authorizator',\n\t\t\t\t'resolverContextFactory',\n\t\t\t\t'identityFetcher',\n\t\t\t\t'databaseContext',\n\t\t\t\t'readDatabaseContext',\n\t\t\t\t'migrationsRunner',\n\t\t\t\t'connection',\n\t\t\t\t'readConnection',\n\t\t\t)\n\t}\n\n\tcreateBuilder(args: TenantContainerArgs) {\n\t\treturn new Builder({})\n\t\t\t.addService('providers', () =>\n\t\t\t\t({ ...this.providers, ...args.cryptoProviders }))\n\t\t\t.addService('mailer', () =>\n\t\t\t\tcreateMailer(args.mailOptions))\n\t\t\t.addService('projectSchemaResolver', () =>\n\t\t\t\targs.projectSchemaResolver)\n\t\t\t.addService('templateRenderer', () =>\n\t\t\t\tnew TemplateRenderer())\n\t\t\t.addService('accessEvaluator', ({ }) =>\n\t\t\t\tnew AccessEvaluator.PermissionEvaluator(new PermissionsFactory().create()))\n\t\t\t.addService('authorizator', ({ accessEvaluator }) =>\n\t\t\t\tnew Authorizator.Default(accessEvaluator))\n\t\t\t.addService('userMailer', ({ mailer, templateRenderer }) =>\n\t\t\t\tnew UserMailer(mailer, templateRenderer))\n\t\t\t.addService('apiKeyService', () =>\n\t\t\t\tnew ApiKeyService())\n\t\t\t.addService('apiKeyManager', ({ apiKeyService }) =>\n\t\t\t\tnew ApiKeyManager(apiKeyService))\n\t\t\t.addService('emailValidator', () =>\n\t\t\t\tnew EmailValidator())\n\t\t\t.addService('signUpManager', ({ emailValidator }) =>\n\t\t\t\tnew SignUpManager(emailValidator))\n\t\t\t.addService('passwordChangeManager', ({ providers }) =>\n\t\t\t\tnew PasswordChangeManager(providers))\n\t\t\t.addService('projectMemberManager', () =>\n\t\t\t\tnew ProjectMemberManager())\n\t\t\t.addService('identityFactory', ({ projectMemberManager }) =>\n\t\t\t\tnew IdentityFactory(projectMemberManager))\n\t\t\t.addService('projectScopeFactory', () =>\n\t\t\t\tnew ProjectScopeFactory(new AclSchemaAccessNodeFactory()))\n\t\t\t.addService('permissionContextFactory', ({ authorizator, identityFactory, projectScopeFactory, projectSchemaResolver }) =>\n\t\t\t\tnew PermissionContextFactory(authorizator, identityFactory, projectScopeFactory, projectSchemaResolver))\n\t\t\t.addService('secretManager', ({ providers }) =>\n\t\t\t\tnew SecretsManager(providers))\n\t\t\t.addService('projectManager', ({ secretManager, apiKeyService }) =>\n\t\t\t\tnew ProjectManager(secretManager, args.projectInitializer, apiKeyService))\n\t\t\t.addService('personAccessManager', ({ apiKeyManager }) =>\n\t\t\t\tnew PersonAccessManager(apiKeyManager))\n\t\t\t.addService('personManager', ({ emailValidator }) =>\n\t\t\t\tnew PersonManager(emailValidator))\n\t\t\t.addService('passwordResetManager', ({ userMailer, projectManager }) =>\n\t\t\t\tnew PasswordResetManager(userMailer, projectManager))\n\t\t\t.addService('idpRegistry', () => {\n\t\t\t\tconst idpRegistry = new IDPHandlerRegistry()\n\t\t\t\tidpRegistry.registerHandler('oidc', new OIDCProvider())\n\t\t\t\tidpRegistry.registerHandler('facebook', new FacebookProvider())\n\t\t\t\tidpRegistry.registerHandler('apple', new AppleProvider())\n\t\t\t\treturn idpRegistry\n\t\t\t})\n\t\t\t.addService('idpSignInManager', ({ apiKeyManager, idpRegistry }) =>\n\t\t\t\tnew IDPSignInManager(apiKeyManager, idpRegistry))\n\t\t\t.addService('idpManager', ({ idpRegistry }) =>\n\t\t\t\tnew IDPManager(idpRegistry))\n\t\t\t.addService('otpAuthenticator', ({ providers }) =>\n\t\t\t\tnew OtpAuthenticator(providers))\n\t\t\t.addService('signInManager', ({ apiKeyManager, providers, otpAuthenticator }) =>\n\t\t\t\tnew SignInManager(apiKeyManager, providers, otpAuthenticator))\n\t\t\t.addService('membershipValidator', ({ projectSchemaResolver }) =>\n\t\t\t\tnew MembershipValidator(projectSchemaResolver))\n\t\t\t.addService('inviteManager', ({ providers, userMailer, projectSchemaResolver }) =>\n\t\t\t\tnew InviteManager(providers, userMailer, projectSchemaResolver))\n\t\t\t.addService('otpManager', ({ otpAuthenticator }) =>\n\t\t\t\tnew OtpManager(otpAuthenticator))\n\t\t\t.addService('mailTemplateManager', () =>\n\t\t\t\tnew MailTemplateManager())\n\t\t\t.addService('rolesManager', () =>\n\t\t\t\tnew RolesManager())\n\n\t\t\t.addService('identityTypeResolver', ({ projectMemberManager, projectManager, permissionContextFactory }) =>\n\t\t\t\tnew IdentityTypeResolver(projectMemberManager, projectManager, permissionContextFactory))\n\t\t\t.addService('projectTypeResolver', ({ projectMemberManager, projectSchemaResolver }) =>\n\t\t\t\tnew ProjectTypeResolver(projectMemberManager, projectSchemaResolver))\n\t\t\t.addService('signInResponseFactory', ({ permissionContextFactory, identityTypeResolver }) =>\n\t\t\t\tnew SignInResponseFactory(permissionContextFactory, identityTypeResolver))\n\t\t\t.addService('meQueryResolver', () =>\n\t\t\t\tnew MeQueryResolver())\n\t\t\t.addService('personQueryResolver', ({ personManager }) =>\n\t\t\t\tnew PersonQueryResolver(personManager))\n\t\t\t.addService('idpQueryResolver', ({ idpManager }) =>\n\t\t\t\tnew IDPQueryResolver(idpManager))\n\t\t\t.addService('projectQueryResolver', ({ projectManager }) =>\n\t\t\t\tnew ProjectQueryResolver(projectManager))\n\t\t\t.addService('projectMembersQueryResolver', ({ projectManager, projectMemberManager }) =>\n\t\t\t\tnew ProjectMembersQueryResolver(projectManager, projectMemberManager))\n\t\t\t.addService('mailTemplateQueryResolver', () =>\n\t\t\t\tnew MailTemplateQueryResolver())\n\t\t\t.addService('signUpMutationResolver', ({ signUpManager, apiKeyManager }) =>\n\t\t\t\tnew SignUpMutationResolver(signUpManager, apiKeyManager))\n\t\t\t.addService('signInMutationResolver', ({ signInManager, signInResponseFactory }) =>\n\t\t\t\tnew SignInMutationResolver(signInManager, signInResponseFactory))\n\t\t\t.addService('signOutMutationResolver', ({ apiKeyManager }) =>\n\t\t\t\tnew SignOutMutationResolver(apiKeyManager))\n\t\t\t.addService('changeProfileMutationResolver', ({ personManager }) =>\n\t\t\t\tnew ChangeProfileMutationResolver(personManager))\n\t\t\t.addService('changePasswordMutationResolver', ({ passwordChangeManager }) =>\n\t\t\t\tnew ChangePasswordMutationResolver(passwordChangeManager))\n\t\t\t.addService('resetPasswordMutationResolver', ({ passwordResetManager, permissionContextFactory }) =>\n\t\t\t\tnew ResetPasswordMutationResolver(passwordResetManager, permissionContextFactory))\n\t\t\t.addService('inviteMutationResolver', ({ inviteManager, projectManager, membershipValidator }) =>\n\t\t\t\tnew InviteMutationResolver(inviteManager, projectManager, membershipValidator))\n\t\t\t.addService('addProjectMemberMutationResolver', ({ projectMemberManager, projectManager, membershipValidator }) =>\n\t\t\t\tnew AddProjectMemberMutationResolver(projectMemberManager, projectManager, membershipValidator))\n\t\t\t.addService('updateProjectMemberMutationResolver', ({ projectMemberManager, projectManager, membershipValidator }) =>\n\t\t\t\tnew UpdateProjectMemberMutationResolver(projectMemberManager, projectManager, membershipValidator))\n\t\t\t.addService('removeProjectMemberMutationResolver', ({ projectMemberManager, projectManager }) =>\n\t\t\t\tnew RemoveProjectMemberMutationResolver(projectMemberManager, projectManager))\n\t\t\t.addService('createApiKeyMutationResolver', ({ apiKeyManager, projectManager, membershipValidator }) =>\n\t\t\t\tnew CreateApiKeyMutationResolver(apiKeyManager, projectManager, membershipValidator))\n\t\t\t.addService('disableApiKeyMutationResolver', ({ apiKeyManager }) =>\n\t\t\t\tnew DisableApiKeyMutationResolver(apiKeyManager))\n\t\t\t.addService('otpMutationResolver', ({ otpManager }) =>\n\t\t\t\tnew OtpMutationResolver(otpManager))\n\t\t\t.addService('mailTemplateMutationResolver', ({ projectManager, mailTemplateManager }) =>\n\t\t\t\tnew MailTemplateMutationResolver(projectManager, mailTemplateManager))\n\t\t\t.addService('idpMutationResolver', ({ idpSignInManager, signInResponseFactory }) =>\n\t\t\t\tnew IDPMutationResolver(idpSignInManager, signInResponseFactory))\n\t\t\t.addService('registerIdpMutationResolver', ({ idpManager }) =>\n\t\t\t\tnew AddIDPMutationResolver(idpManager))\n\t\t\t.addService('updateIdpMutationResolver', ({ idpManager }) =>\n\t\t\t\tnew UpdateIDPMutationResolver(idpManager))\n\t\t\t.addService('disableIdpMutationResolver', ({ idpManager }) =>\n\t\t\t\tnew DisableIDPMutationResolver(idpManager))\n\t\t\t.addService('enableIdpMutationResolver', ({ idpManager }) =>\n\t\t\t\tnew EnableIDPMutationResolver(idpManager))\n\t\t\t.addService('createProjectMutationResolver', ({ projectManager }) =>\n\t\t\t\tnew CreateProjectMutationResolver(projectManager))\n\t\t\t.addService('disablePersonMutationResolver', ({ personAccessManager, personManager }) =>\n\t\t\t\tnew DisablePersonMutationResolver(personAccessManager, personManager))\n\t\t\t.addService('updateProjectMutationResolver', ({ projectManager }) =>\n\t\t\t\tnew UpdateProjectMutationResolver(projectManager))\n\t\t\t.addService('setProjectSecretMutationResolver', ({ projectManager, secretManager }) =>\n\t\t\t\tnew SetProjectSecretMutationResolver(projectManager, secretManager))\n\t\t\t.addService('identityGlobalRolesMutationResolver', ({ rolesManager }) =>\n\t\t\t\tnew IdentityGlobalRolesMutationResolver(rolesManager))\n\t\t\t.addService('resolverContextFactory', ({ permissionContextFactory }) =>\n\t\t\t\tnew TenantResolverContextFactory(permissionContextFactory))\n\t\t\t.addService('resolvers', container =>\n\t\t\t\tnew ResolverFactory(container).create())\n\t\t\t.addService('connection', () =>\n\t\t\t\targs.connection)\n\t\t\t.addService('readConnection', () =>\n\t\t\t\targs.readConnection)\n\t\t\t.addService('databaseContext', ({ connection, providers }) =>\n\t\t\t\tnew DatabaseContext(connection.createClient('tenant', { module: 'tenant' }), providers))\n\t\t\t.addService('readDatabaseContext', ({ readConnection, providers }) =>\n\t\t\t\tnew DatabaseContext(readConnection.createClient('tenant', { module: 'tenant' }), providers))\n\t\t\t.addService('identityFetcher', ({ databaseContext }) =>\n\t\t\t\tnew IdentityFetcher(databaseContext.client))\n\t\t\t.addService('migrationsRunner', ({ providers }) =>\n\t\t\t\tnew TenantMigrationsRunner(args.dbCredentials, 'tenant', args.tenantCredentials, providers))\n\t}\n}\n"],"names":["Builder","createMailer","TemplateRenderer","AccessEvaluator","PermissionsFactory","Authorizator","UserMailer","ApiKeyService","ApiKeyManager","EmailValidator","SignUpManager","PasswordChangeManager","ProjectMemberManager","IdentityFactory","ProjectScopeFactory","AclSchemaAccessNodeFactory","PermissionContextFactory","SecretsManager","ProjectManager","PersonAccessManager","PersonManager","PasswordResetManager","IDPHandlerRegistry","OIDCProvider","FacebookProvider","AppleProvider","IDPSignInManager","IDPManager","OtpAuthenticator","SignInManager","MembershipValidator","InviteManager","OtpManager","MailTemplateManager","RolesManager","IdentityTypeResolver","ProjectTypeResolver","SignInResponseFactory","MeQueryResolver","PersonQueryResolver","IDPQueryResolver","ProjectQueryResolver","ProjectMembersQueryResolver","MailTemplateQueryResolver","SignUpMutationResolver","SignInMutationResolver","SignOutMutationResolver","ChangeProfileMutationResolver","ChangePasswordMutationResolver","ResetPasswordMutationResolver","InviteMutationResolver","AddProjectMemberMutationResolver","UpdateProjectMemberMutationResolver","RemoveProjectMemberMutationResolver","CreateApiKeyMutationResolver","DisableApiKeyMutationResolver","OtpMutationResolver","MailTemplateMutationResolver","IDPMutationResolver","AddIDPMutationResolver","UpdateIDPMutationResolver","DisableIDPMutationResolver","EnableIDPMutationResolver","CreateProjectMutationResolver","DisablePersonMutationResolver","UpdateProjectMutationResolver","SetProjectSecretMutationResolver","IdentityGlobalRolesMutationResolver","TenantResolverContextFactory","ResolverFactory","DatabaseContext","IdentityFetcher","TenantMigrationsRunner"],"mappings":"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"}
1
+ {"version":3,"file":"TenantContainer.cjs","sources":["../../../../packages/engine-tenant-api/src/TenantContainer.ts"],"sourcesContent":["import { AccessEvaluator, Authorizator } from '@contember/authorization'\nimport { Connection, DatabaseConfig } from '@contember/database'\nimport { Builder } from '@contember/dic'\nimport {\n\tAclSchemaAccessNodeFactory,\n\tApiKeyManager,\n\tApiKeyService,\n\tAppleProvider,\n\tDatabaseContext,\n\tEmailValidator,\n\tFacebookProvider,\n\tIdentity,\n\tIdentityFactory,\n\tIDPHandlerRegistry,\n\tIDPManager,\n\tIDPSignInManager,\n\tInviteManager,\n\tMailTemplateManager,\n\tMembershipValidator,\n\tOIDCProvider,\n\tOtpAuthenticator,\n\tOtpManager,\n\tPasswordChangeManager,\n\tPasswordResetManager,\n\tPermissionContextFactory,\n\tPermissionsFactory,\n\tPersonAccessManager,\n\tPersonManager,\n\tProjectInitializer,\n\tProjectManager,\n\tProjectMemberManager,\n\tProjectSchemaResolver,\n\tProjectScopeFactory,\n\tProviders,\n\tRolesManager,\n\tSecretsManager,\n\tSignInManager,\n\tSignUpManager,\n\tUserMailer,\n} from './model'\nimport {\n\tAddIDPMutationResolver,\n\tAddProjectMemberMutationResolver,\n\tChangePasswordMutationResolver,\n\tChangeProfileMutationResolver,\n\tCreateApiKeyMutationResolver,\n\tCreateProjectMutationResolver,\n\tDisableApiKeyMutationResolver,\n\tDisableIDPMutationResolver,\n\tEnableIDPMutationResolver,\n\tIdentityGlobalRolesMutationResolver,\n\tIdentityTypeResolver,\n\tIDPMutationResolver,\n\tInviteMutationResolver,\n\tMailTemplateMutationResolver,\n\tMeQueryResolver,\n\tOtpMutationResolver,\n\tPersonQueryResolver,\n\tProjectMembersQueryResolver,\n\tProjectQueryResolver,\n\tProjectTypeResolver,\n\tRemoveProjectMemberMutationResolver,\n\tResetPasswordMutationResolver,\n\tResolverFactory,\n\tSetProjectSecretMutationResolver,\n\tSignInMutationResolver,\n\tSignOutMutationResolver,\n\tSignUpMutationResolver,\n\tTenantResolverContextFactory,\n\tUpdateProjectMemberMutationResolver,\n\tUpdateProjectMutationResolver,\n} from './resolvers'\nimport * as Schema from './schema'\nimport { createMailer, MailerOptions, TemplateRenderer } from './utils'\nimport { IdentityFetcher } from './bridges/system/IdentityFetcher'\nimport { SignInResponseFactory } from './resolvers/responseHelpers/SignInResponseFactory'\nimport { IDPQueryResolver } from './resolvers/query/IDPQueryResolver'\nimport { UpdateIDPMutationResolver } from './resolvers/mutation/idp/UpdateIDPMutationResolver'\nimport { TenantCredentials, TenantMigrationsRunner } from './migrations'\nimport { DisablePersonMutationResolver } from './resolvers/mutation/person/DisablePersonMutationResolver'\nimport { MailTemplateQueryResolver } from './resolvers/query/MailTemplateQueryResolver'\nimport { ConfigurationManager } from './model/service/ConfigurationManager'\nimport { ConfigurationMutationResolver } from './resolvers/mutation/configuration/ConfigurationMutationResolver'\nimport { ConfigurationQueryResolver } from './resolvers/query/ConfigurationQueryResolver'\nimport { PasswordlessMutationResolver } from './resolvers/mutation/person/PasswordlessMutationResolver'\nimport { PasswordlessSignInManager } from './model/service/PasswordlessSignInManager'\nimport { TogglePasswordlessMutationResolver } from './resolvers/mutation/person/TogglePasswordlessMutationResolver'\n\nexport interface TenantContainer {\n\tprojectMemberManager: ProjectMemberManager\n\tapiKeyManager: ApiKeyManager\n\tsignUpManager: SignUpManager\n\tprojectManager: ProjectManager\n\tresolvers: Schema.Resolvers\n\tresolverContextFactory: TenantResolverContextFactory\n\tauthorizator: Authorizator<Identity>\n\tidentityFetcher: IdentityFetcher\n\tdatabaseContext: DatabaseContext\n\treadDatabaseContext: DatabaseContext\n\tmigrationsRunner: TenantMigrationsRunner\n\tconnection: Connection.ConnectionType\n\treadConnection: Connection.ConnectionType\n}\n\nexport interface TenantContainerArgs {\n\tconnection: Connection.ConnectionType\n\treadConnection: Connection.ConnectionType\n\tdbCredentials: DatabaseConfig\n\tmailOptions: MailerOptions\n\tprojectSchemaResolver: ProjectSchemaResolver\n\tprojectInitializer: ProjectInitializer\n\ttenantCredentials: TenantCredentials\n\tcryptoProviders: Pick<Providers, 'encrypt' | 'decrypt'>\n}\n\nexport class TenantContainerFactory {\n\tconstructor(\n\t\tprivate readonly providers: Omit<Providers, 'encrypt' | 'decrypt'>,\n\t) { }\n\n\tcreate(args: TenantContainerArgs): TenantContainer {\n\t\treturn this.createBuilder(args)\n\t\t\t.build()\n\t\t\t.pick(\n\t\t\t\t'apiKeyManager',\n\t\t\t\t'projectMemberManager',\n\t\t\t\t'projectManager',\n\t\t\t\t'signUpManager',\n\t\t\t\t'resolvers',\n\t\t\t\t'authorizator',\n\t\t\t\t'resolverContextFactory',\n\t\t\t\t'identityFetcher',\n\t\t\t\t'databaseContext',\n\t\t\t\t'readDatabaseContext',\n\t\t\t\t'migrationsRunner',\n\t\t\t\t'connection',\n\t\t\t\t'readConnection',\n\t\t\t)\n\t}\n\n\tcreateBuilder(args: TenantContainerArgs) {\n\t\treturn new Builder({})\n\t\t\t.addService('providers', () =>\n\t\t\t\t({ ...this.providers, ...args.cryptoProviders }))\n\t\t\t.addService('mailer', () =>\n\t\t\t\tcreateMailer(args.mailOptions))\n\t\t\t.addService('projectSchemaResolver', () =>\n\t\t\t\targs.projectSchemaResolver)\n\t\t\t.addService('templateRenderer', () =>\n\t\t\t\tnew TemplateRenderer())\n\t\t\t.addService('accessEvaluator', ({ }) =>\n\t\t\t\tnew AccessEvaluator.PermissionEvaluator(new PermissionsFactory().create()))\n\t\t\t.addService('authorizator', ({ accessEvaluator }) =>\n\t\t\t\tnew Authorizator.Default(accessEvaluator))\n\t\t\t.addService('userMailer', ({ mailer, templateRenderer }) =>\n\t\t\t\tnew UserMailer(mailer, templateRenderer))\n\t\t\t.addService('apiKeyService', () =>\n\t\t\t\tnew ApiKeyService())\n\t\t\t.addService('apiKeyManager', ({ apiKeyService }) =>\n\t\t\t\tnew ApiKeyManager(apiKeyService))\n\t\t\t.addService('emailValidator', () =>\n\t\t\t\tnew EmailValidator())\n\t\t\t.addService('signUpManager', ({ emailValidator }) =>\n\t\t\t\tnew SignUpManager(emailValidator))\n\t\t\t.addService('passwordChangeManager', ({ providers }) =>\n\t\t\t\tnew PasswordChangeManager(providers))\n\t\t\t.addService('projectMemberManager', () =>\n\t\t\t\tnew ProjectMemberManager())\n\t\t\t.addService('identityFactory', ({ projectMemberManager }) =>\n\t\t\t\tnew IdentityFactory(projectMemberManager))\n\t\t\t.addService('projectScopeFactory', () =>\n\t\t\t\tnew ProjectScopeFactory(new AclSchemaAccessNodeFactory()))\n\t\t\t.addService('permissionContextFactory', ({ authorizator, identityFactory, projectScopeFactory, projectSchemaResolver }) =>\n\t\t\t\tnew PermissionContextFactory(authorizator, identityFactory, projectScopeFactory, projectSchemaResolver))\n\t\t\t.addService('secretManager', ({ providers }) =>\n\t\t\t\tnew SecretsManager(providers))\n\t\t\t.addService('projectManager', ({ secretManager, apiKeyService }) =>\n\t\t\t\tnew ProjectManager(secretManager, args.projectInitializer, apiKeyService))\n\t\t\t.addService('personAccessManager', ({ apiKeyManager }) =>\n\t\t\t\tnew PersonAccessManager(apiKeyManager))\n\t\t\t.addService('personManager', ({ emailValidator }) =>\n\t\t\t\tnew PersonManager(emailValidator))\n\t\t\t.addService('passwordResetManager', ({ userMailer, projectManager }) =>\n\t\t\t\tnew PasswordResetManager(userMailer, projectManager))\n\t\t\t.addService('idpRegistry', () => {\n\t\t\t\tconst idpRegistry = new IDPHandlerRegistry()\n\t\t\t\tidpRegistry.registerHandler('oidc', new OIDCProvider())\n\t\t\t\tidpRegistry.registerHandler('facebook', new FacebookProvider())\n\t\t\t\tidpRegistry.registerHandler('apple', new AppleProvider())\n\t\t\t\treturn idpRegistry\n\t\t\t})\n\t\t\t.addService('idpSignInManager', ({ apiKeyManager, idpRegistry }) =>\n\t\t\t\tnew IDPSignInManager(apiKeyManager, idpRegistry))\n\t\t\t.addService('idpManager', ({ idpRegistry }) =>\n\t\t\t\tnew IDPManager(idpRegistry))\n\t\t\t.addService('otpAuthenticator', ({ providers }) =>\n\t\t\t\tnew OtpAuthenticator(providers))\n\t\t\t.addService('signInManager', ({ apiKeyManager, providers, otpAuthenticator }) =>\n\t\t\t\tnew SignInManager(apiKeyManager, providers, otpAuthenticator))\n\t\t\t.addService('membershipValidator', ({ projectSchemaResolver }) =>\n\t\t\t\tnew MembershipValidator(projectSchemaResolver))\n\t\t\t.addService('inviteManager', ({ providers, userMailer, projectSchemaResolver }) =>\n\t\t\t\tnew InviteManager(providers, userMailer, projectSchemaResolver))\n\t\t\t.addService('otpManager', ({ otpAuthenticator }) =>\n\t\t\t\tnew OtpManager(otpAuthenticator))\n\t\t\t.addService('mailTemplateManager', () =>\n\t\t\t\tnew MailTemplateManager())\n\t\t\t.addService('rolesManager', () =>\n\t\t\t\tnew RolesManager())\n\t\t\t.addService('configurationManager', () =>\n\t\t\t\tnew ConfigurationManager())\n\t\t\t.addService('passwordlessSignInManager', ({ apiKeyManager, configurationManager, userMailer, projectManager, otpAuthenticator }) =>\n\t\t\t\tnew PasswordlessSignInManager(apiKeyManager, configurationManager, userMailer, projectManager, otpAuthenticator))\n\n\t\t\t.addService('identityTypeResolver', ({ projectMemberManager, projectManager, permissionContextFactory }) =>\n\t\t\t\tnew IdentityTypeResolver(projectMemberManager, projectManager, permissionContextFactory))\n\t\t\t.addService('projectTypeResolver', ({ projectMemberManager, projectSchemaResolver }) =>\n\t\t\t\tnew ProjectTypeResolver(projectMemberManager, projectSchemaResolver))\n\t\t\t.addService('signInResponseFactory', ({ permissionContextFactory, identityTypeResolver }) =>\n\t\t\t\tnew SignInResponseFactory(permissionContextFactory, identityTypeResolver))\n\t\t\t.addService('meQueryResolver', () =>\n\t\t\t\tnew MeQueryResolver())\n\t\t\t.addService('personQueryResolver', ({ personManager }) =>\n\t\t\t\tnew PersonQueryResolver(personManager))\n\t\t\t.addService('idpQueryResolver', ({ idpManager }) =>\n\t\t\t\tnew IDPQueryResolver(idpManager))\n\t\t\t.addService('projectQueryResolver', ({ projectManager }) =>\n\t\t\t\tnew ProjectQueryResolver(projectManager))\n\t\t\t.addService('projectMembersQueryResolver', ({ projectManager, projectMemberManager }) =>\n\t\t\t\tnew ProjectMembersQueryResolver(projectManager, projectMemberManager))\n\t\t\t.addService('mailTemplateQueryResolver', () =>\n\t\t\t\tnew MailTemplateQueryResolver())\n\t\t\t.addService('signUpMutationResolver', ({ signUpManager, apiKeyManager }) =>\n\t\t\t\tnew SignUpMutationResolver(signUpManager, apiKeyManager))\n\t\t\t.addService('signInMutationResolver', ({ signInManager, signInResponseFactory }) =>\n\t\t\t\tnew SignInMutationResolver(signInManager, signInResponseFactory))\n\t\t\t.addService('signOutMutationResolver', ({ apiKeyManager }) =>\n\t\t\t\tnew SignOutMutationResolver(apiKeyManager))\n\t\t\t.addService('changeProfileMutationResolver', ({ personManager }) =>\n\t\t\t\tnew ChangeProfileMutationResolver(personManager))\n\t\t\t.addService('changePasswordMutationResolver', ({ passwordChangeManager }) =>\n\t\t\t\tnew ChangePasswordMutationResolver(passwordChangeManager))\n\t\t\t.addService('resetPasswordMutationResolver', ({ passwordResetManager, permissionContextFactory }) =>\n\t\t\t\tnew ResetPasswordMutationResolver(passwordResetManager, permissionContextFactory))\n\t\t\t.addService('inviteMutationResolver', ({ inviteManager, projectManager, membershipValidator }) =>\n\t\t\t\tnew InviteMutationResolver(inviteManager, projectManager, membershipValidator))\n\t\t\t.addService('addProjectMemberMutationResolver', ({ projectMemberManager, projectManager, membershipValidator }) =>\n\t\t\t\tnew AddProjectMemberMutationResolver(projectMemberManager, projectManager, membershipValidator))\n\t\t\t.addService('updateProjectMemberMutationResolver', ({ projectMemberManager, projectManager, membershipValidator }) =>\n\t\t\t\tnew UpdateProjectMemberMutationResolver(projectMemberManager, projectManager, membershipValidator))\n\t\t\t.addService('removeProjectMemberMutationResolver', ({ projectMemberManager, projectManager }) =>\n\t\t\t\tnew RemoveProjectMemberMutationResolver(projectMemberManager, projectManager))\n\t\t\t.addService('createApiKeyMutationResolver', ({ apiKeyManager, projectManager, membershipValidator }) =>\n\t\t\t\tnew CreateApiKeyMutationResolver(apiKeyManager, projectManager, membershipValidator))\n\t\t\t.addService('disableApiKeyMutationResolver', ({ apiKeyManager }) =>\n\t\t\t\tnew DisableApiKeyMutationResolver(apiKeyManager))\n\t\t\t.addService('otpMutationResolver', ({ otpManager }) =>\n\t\t\t\tnew OtpMutationResolver(otpManager))\n\t\t\t.addService('mailTemplateMutationResolver', ({ projectManager, mailTemplateManager }) =>\n\t\t\t\tnew MailTemplateMutationResolver(projectManager, mailTemplateManager))\n\t\t\t.addService('idpMutationResolver', ({ idpSignInManager, signInResponseFactory }) =>\n\t\t\t\tnew IDPMutationResolver(idpSignInManager, signInResponseFactory))\n\t\t\t.addService('registerIdpMutationResolver', ({ idpManager }) =>\n\t\t\t\tnew AddIDPMutationResolver(idpManager))\n\t\t\t.addService('updateIdpMutationResolver', ({ idpManager }) =>\n\t\t\t\tnew UpdateIDPMutationResolver(idpManager))\n\t\t\t.addService('disableIdpMutationResolver', ({ idpManager }) =>\n\t\t\t\tnew DisableIDPMutationResolver(idpManager))\n\t\t\t.addService('enableIdpMutationResolver', ({ idpManager }) =>\n\t\t\t\tnew EnableIDPMutationResolver(idpManager))\n\t\t\t.addService('createProjectMutationResolver', ({ projectManager }) =>\n\t\t\t\tnew CreateProjectMutationResolver(projectManager))\n\t\t\t.addService('disablePersonMutationResolver', ({ personAccessManager, personManager }) =>\n\t\t\t\tnew DisablePersonMutationResolver(personAccessManager, personManager))\n\t\t\t.addService('updateProjectMutationResolver', ({ projectManager }) =>\n\t\t\t\tnew UpdateProjectMutationResolver(projectManager))\n\t\t\t.addService('setProjectSecretMutationResolver', ({ projectManager, secretManager }) =>\n\t\t\t\tnew SetProjectSecretMutationResolver(projectManager, secretManager))\n\t\t\t.addService('identityGlobalRolesMutationResolver', ({ rolesManager }) =>\n\t\t\t\tnew IdentityGlobalRolesMutationResolver(rolesManager))\n\t\t\t.addService('configurationMutationResolver', ({ configurationManager }) =>\n\t\t\t\tnew ConfigurationMutationResolver(configurationManager))\n\t\t\t.addService('configurationQueryResolver', ({ configurationManager }) =>\n\t\t\t\tnew ConfigurationQueryResolver(configurationManager))\n\t\t\t.addService('passwordlessMutationResolver', ({ passwordlessSignInManager, signInResponseFactory }) =>\n\t\t\t\tnew PasswordlessMutationResolver(passwordlessSignInManager, signInResponseFactory))\n\t\t\t.addService('togglePasswordlessMutationResolver', ({ configurationManager, personManager }) =>\n\t\t\t\tnew TogglePasswordlessMutationResolver(configurationManager, personManager))\n\t\t\t.addService('resolverContextFactory', ({ permissionContextFactory }) =>\n\t\t\t\tnew TenantResolverContextFactory(permissionContextFactory))\n\t\t\t.addService('resolvers', container =>\n\t\t\t\tnew ResolverFactory(container).create())\n\t\t\t.addService('connection', () =>\n\t\t\t\targs.connection)\n\t\t\t.addService('readConnection', () =>\n\t\t\t\targs.readConnection)\n\t\t\t.addService('databaseContext', ({ connection, providers }) =>\n\t\t\t\tnew DatabaseContext(connection.createClient('tenant', { module: 'tenant' }), providers))\n\t\t\t.addService('readDatabaseContext', ({ readConnection, providers }) =>\n\t\t\t\tnew DatabaseContext(readConnection.createClient('tenant', { module: 'tenant' }), providers))\n\t\t\t.addService('identityFetcher', ({ databaseContext }) =>\n\t\t\t\tnew IdentityFetcher(databaseContext.client))\n\t\t\t.addService('migrationsRunner', ({ providers }) =>\n\t\t\t\tnew TenantMigrationsRunner(args.dbCredentials, 'tenant', args.tenantCredentials, providers))\n\t}\n}\n"],"names":["Builder","createMailer","TemplateRenderer","AccessEvaluator","PermissionsFactory","Authorizator","UserMailer","ApiKeyService","ApiKeyManager","EmailValidator","SignUpManager","PasswordChangeManager","ProjectMemberManager","IdentityFactory","ProjectScopeFactory","AclSchemaAccessNodeFactory","PermissionContextFactory","SecretsManager","ProjectManager","PersonAccessManager","PersonManager","PasswordResetManager","IDPHandlerRegistry","OIDCProvider","FacebookProvider","AppleProvider","IDPSignInManager","IDPManager","OtpAuthenticator","SignInManager","MembershipValidator","InviteManager","OtpManager","MailTemplateManager","RolesManager","ConfigurationManager","PasswordlessSignInManager","IdentityTypeResolver","ProjectTypeResolver","SignInResponseFactory","MeQueryResolver","PersonQueryResolver","IDPQueryResolver","ProjectQueryResolver","ProjectMembersQueryResolver","MailTemplateQueryResolver","SignUpMutationResolver","SignInMutationResolver","SignOutMutationResolver","ChangeProfileMutationResolver","ChangePasswordMutationResolver","ResetPasswordMutationResolver","InviteMutationResolver","AddProjectMemberMutationResolver","UpdateProjectMemberMutationResolver","RemoveProjectMemberMutationResolver","CreateApiKeyMutationResolver","DisableApiKeyMutationResolver","OtpMutationResolver","MailTemplateMutationResolver","IDPMutationResolver","AddIDPMutationResolver","UpdateIDPMutationResolver","DisableIDPMutationResolver","EnableIDPMutationResolver","CreateProjectMutationResolver","DisablePersonMutationResolver","UpdateProjectMutationResolver","SetProjectSecretMutationResolver","IdentityGlobalRolesMutationResolver","ConfigurationMutationResolver","ConfigurationQueryResolver","PasswordlessMutationResolver","TogglePasswordlessMutationResolver","TenantResolverContextFactory","ResolverFactory","DatabaseContext","IdentityFetcher","TenantMigrationsRunner"],"mappings":"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"}
@@ -77,6 +77,12 @@ import { UpdateIDPMutationResolver } from "./resolvers/mutation/idp/UpdateIDPMut
77
77
  import { TenantMigrationsRunner } from "./migrations/runner.js";
78
78
  import { DisablePersonMutationResolver } from "./resolvers/mutation/person/DisablePersonMutationResolver.js";
79
79
  import { MailTemplateQueryResolver } from "./resolvers/query/MailTemplateQueryResolver.js";
80
+ import { ConfigurationManager } from "./model/service/ConfigurationManager.js";
81
+ import { ConfigurationMutationResolver } from "./resolvers/mutation/configuration/ConfigurationMutationResolver.js";
82
+ import { ConfigurationQueryResolver } from "./resolvers/query/ConfigurationQueryResolver.js";
83
+ import { PasswordlessMutationResolver } from "./resolvers/mutation/person/PasswordlessMutationResolver.js";
84
+ import { PasswordlessSignInManager } from "./model/service/PasswordlessSignInManager.js";
85
+ import { TogglePasswordlessMutationResolver } from "./resolvers/mutation/person/TogglePasswordlessMutationResolver.js";
80
86
  class TenantContainerFactory {
81
87
  constructor(providers) {
82
88
  this.providers = providers;
@@ -105,7 +111,7 @@ class TenantContainerFactory {
105
111
  idpRegistry.registerHandler("facebook", new FacebookProvider());
106
112
  idpRegistry.registerHandler("apple", new AppleProvider());
107
113
  return idpRegistry;
108
- }).addService("idpSignInManager", ({ apiKeyManager, idpRegistry }) => new IDPSignInManager(apiKeyManager, idpRegistry)).addService("idpManager", ({ idpRegistry }) => new IDPManager(idpRegistry)).addService("otpAuthenticator", ({ providers }) => new OtpAuthenticator(providers)).addService("signInManager", ({ apiKeyManager, providers, otpAuthenticator }) => new SignInManager(apiKeyManager, providers, otpAuthenticator)).addService("membershipValidator", ({ projectSchemaResolver }) => new MembershipValidator(projectSchemaResolver)).addService("inviteManager", ({ providers, userMailer, projectSchemaResolver }) => new InviteManager(providers, userMailer, projectSchemaResolver)).addService("otpManager", ({ otpAuthenticator }) => new OtpManager(otpAuthenticator)).addService("mailTemplateManager", () => new MailTemplateManager()).addService("rolesManager", () => new RolesManager()).addService("identityTypeResolver", ({ projectMemberManager, projectManager, permissionContextFactory }) => new IdentityTypeResolver(projectMemberManager, projectManager, permissionContextFactory)).addService("projectTypeResolver", ({ projectMemberManager, projectSchemaResolver }) => new ProjectTypeResolver(projectMemberManager, projectSchemaResolver)).addService("signInResponseFactory", ({ permissionContextFactory, identityTypeResolver }) => new SignInResponseFactory(permissionContextFactory, identityTypeResolver)).addService("meQueryResolver", () => new MeQueryResolver()).addService("personQueryResolver", ({ personManager }) => new PersonQueryResolver(personManager)).addService("idpQueryResolver", ({ idpManager }) => new IDPQueryResolver(idpManager)).addService("projectQueryResolver", ({ projectManager }) => new ProjectQueryResolver(projectManager)).addService("projectMembersQueryResolver", ({ projectManager, projectMemberManager }) => new ProjectMembersQueryResolver(projectManager, projectMemberManager)).addService("mailTemplateQueryResolver", () => new MailTemplateQueryResolver()).addService("signUpMutationResolver", ({ signUpManager, apiKeyManager }) => new SignUpMutationResolver(signUpManager, apiKeyManager)).addService("signInMutationResolver", ({ signInManager, signInResponseFactory }) => new SignInMutationResolver(signInManager, signInResponseFactory)).addService("signOutMutationResolver", ({ apiKeyManager }) => new SignOutMutationResolver(apiKeyManager)).addService("changeProfileMutationResolver", ({ personManager }) => new ChangeProfileMutationResolver(personManager)).addService("changePasswordMutationResolver", ({ passwordChangeManager }) => new ChangePasswordMutationResolver(passwordChangeManager)).addService("resetPasswordMutationResolver", ({ passwordResetManager, permissionContextFactory }) => new ResetPasswordMutationResolver(passwordResetManager, permissionContextFactory)).addService("inviteMutationResolver", ({ inviteManager, projectManager, membershipValidator }) => new InviteMutationResolver(inviteManager, projectManager, membershipValidator)).addService("addProjectMemberMutationResolver", ({ projectMemberManager, projectManager, membershipValidator }) => new AddProjectMemberMutationResolver(projectMemberManager, projectManager, membershipValidator)).addService("updateProjectMemberMutationResolver", ({ projectMemberManager, projectManager, membershipValidator }) => new UpdateProjectMemberMutationResolver(projectMemberManager, projectManager, membershipValidator)).addService("removeProjectMemberMutationResolver", ({ projectMemberManager, projectManager }) => new RemoveProjectMemberMutationResolver(projectMemberManager, projectManager)).addService("createApiKeyMutationResolver", ({ apiKeyManager, projectManager, membershipValidator }) => new CreateApiKeyMutationResolver(apiKeyManager, projectManager, membershipValidator)).addService("disableApiKeyMutationResolver", ({ apiKeyManager }) => new DisableApiKeyMutationResolver(apiKeyManager)).addService("otpMutationResolver", ({ otpManager }) => new OtpMutationResolver(otpManager)).addService("mailTemplateMutationResolver", ({ projectManager, mailTemplateManager }) => new MailTemplateMutationResolver(projectManager, mailTemplateManager)).addService("idpMutationResolver", ({ idpSignInManager, signInResponseFactory }) => new IDPMutationResolver(idpSignInManager, signInResponseFactory)).addService("registerIdpMutationResolver", ({ idpManager }) => new AddIDPMutationResolver(idpManager)).addService("updateIdpMutationResolver", ({ idpManager }) => new UpdateIDPMutationResolver(idpManager)).addService("disableIdpMutationResolver", ({ idpManager }) => new DisableIDPMutationResolver(idpManager)).addService("enableIdpMutationResolver", ({ idpManager }) => new EnableIDPMutationResolver(idpManager)).addService("createProjectMutationResolver", ({ projectManager }) => new CreateProjectMutationResolver(projectManager)).addService("disablePersonMutationResolver", ({ personAccessManager, personManager }) => new DisablePersonMutationResolver(personAccessManager, personManager)).addService("updateProjectMutationResolver", ({ projectManager }) => new UpdateProjectMutationResolver(projectManager)).addService("setProjectSecretMutationResolver", ({ projectManager, secretManager }) => new SetProjectSecretMutationResolver(projectManager, secretManager)).addService("identityGlobalRolesMutationResolver", ({ rolesManager }) => new IdentityGlobalRolesMutationResolver(rolesManager)).addService("resolverContextFactory", ({ permissionContextFactory }) => new TenantResolverContextFactory(permissionContextFactory)).addService("resolvers", (container) => new ResolverFactory(container).create()).addService("connection", () => args.connection).addService("readConnection", () => args.readConnection).addService("databaseContext", ({ connection, providers }) => new DatabaseContext(connection.createClient("tenant", { module: "tenant" }), providers)).addService("readDatabaseContext", ({ readConnection, providers }) => new DatabaseContext(readConnection.createClient("tenant", { module: "tenant" }), providers)).addService("identityFetcher", ({ databaseContext }) => new IdentityFetcher(databaseContext.client)).addService("migrationsRunner", ({ providers }) => new TenantMigrationsRunner(args.dbCredentials, "tenant", args.tenantCredentials, providers));
114
+ }).addService("idpSignInManager", ({ apiKeyManager, idpRegistry }) => new IDPSignInManager(apiKeyManager, idpRegistry)).addService("idpManager", ({ idpRegistry }) => new IDPManager(idpRegistry)).addService("otpAuthenticator", ({ providers }) => new OtpAuthenticator(providers)).addService("signInManager", ({ apiKeyManager, providers, otpAuthenticator }) => new SignInManager(apiKeyManager, providers, otpAuthenticator)).addService("membershipValidator", ({ projectSchemaResolver }) => new MembershipValidator(projectSchemaResolver)).addService("inviteManager", ({ providers, userMailer, projectSchemaResolver }) => new InviteManager(providers, userMailer, projectSchemaResolver)).addService("otpManager", ({ otpAuthenticator }) => new OtpManager(otpAuthenticator)).addService("mailTemplateManager", () => new MailTemplateManager()).addService("rolesManager", () => new RolesManager()).addService("configurationManager", () => new ConfigurationManager()).addService("passwordlessSignInManager", ({ apiKeyManager, configurationManager, userMailer, projectManager, otpAuthenticator }) => new PasswordlessSignInManager(apiKeyManager, configurationManager, userMailer, projectManager, otpAuthenticator)).addService("identityTypeResolver", ({ projectMemberManager, projectManager, permissionContextFactory }) => new IdentityTypeResolver(projectMemberManager, projectManager, permissionContextFactory)).addService("projectTypeResolver", ({ projectMemberManager, projectSchemaResolver }) => new ProjectTypeResolver(projectMemberManager, projectSchemaResolver)).addService("signInResponseFactory", ({ permissionContextFactory, identityTypeResolver }) => new SignInResponseFactory(permissionContextFactory, identityTypeResolver)).addService("meQueryResolver", () => new MeQueryResolver()).addService("personQueryResolver", ({ personManager }) => new PersonQueryResolver(personManager)).addService("idpQueryResolver", ({ idpManager }) => new IDPQueryResolver(idpManager)).addService("projectQueryResolver", ({ projectManager }) => new ProjectQueryResolver(projectManager)).addService("projectMembersQueryResolver", ({ projectManager, projectMemberManager }) => new ProjectMembersQueryResolver(projectManager, projectMemberManager)).addService("mailTemplateQueryResolver", () => new MailTemplateQueryResolver()).addService("signUpMutationResolver", ({ signUpManager, apiKeyManager }) => new SignUpMutationResolver(signUpManager, apiKeyManager)).addService("signInMutationResolver", ({ signInManager, signInResponseFactory }) => new SignInMutationResolver(signInManager, signInResponseFactory)).addService("signOutMutationResolver", ({ apiKeyManager }) => new SignOutMutationResolver(apiKeyManager)).addService("changeProfileMutationResolver", ({ personManager }) => new ChangeProfileMutationResolver(personManager)).addService("changePasswordMutationResolver", ({ passwordChangeManager }) => new ChangePasswordMutationResolver(passwordChangeManager)).addService("resetPasswordMutationResolver", ({ passwordResetManager, permissionContextFactory }) => new ResetPasswordMutationResolver(passwordResetManager, permissionContextFactory)).addService("inviteMutationResolver", ({ inviteManager, projectManager, membershipValidator }) => new InviteMutationResolver(inviteManager, projectManager, membershipValidator)).addService("addProjectMemberMutationResolver", ({ projectMemberManager, projectManager, membershipValidator }) => new AddProjectMemberMutationResolver(projectMemberManager, projectManager, membershipValidator)).addService("updateProjectMemberMutationResolver", ({ projectMemberManager, projectManager, membershipValidator }) => new UpdateProjectMemberMutationResolver(projectMemberManager, projectManager, membershipValidator)).addService("removeProjectMemberMutationResolver", ({ projectMemberManager, projectManager }) => new RemoveProjectMemberMutationResolver(projectMemberManager, projectManager)).addService("createApiKeyMutationResolver", ({ apiKeyManager, projectManager, membershipValidator }) => new CreateApiKeyMutationResolver(apiKeyManager, projectManager, membershipValidator)).addService("disableApiKeyMutationResolver", ({ apiKeyManager }) => new DisableApiKeyMutationResolver(apiKeyManager)).addService("otpMutationResolver", ({ otpManager }) => new OtpMutationResolver(otpManager)).addService("mailTemplateMutationResolver", ({ projectManager, mailTemplateManager }) => new MailTemplateMutationResolver(projectManager, mailTemplateManager)).addService("idpMutationResolver", ({ idpSignInManager, signInResponseFactory }) => new IDPMutationResolver(idpSignInManager, signInResponseFactory)).addService("registerIdpMutationResolver", ({ idpManager }) => new AddIDPMutationResolver(idpManager)).addService("updateIdpMutationResolver", ({ idpManager }) => new UpdateIDPMutationResolver(idpManager)).addService("disableIdpMutationResolver", ({ idpManager }) => new DisableIDPMutationResolver(idpManager)).addService("enableIdpMutationResolver", ({ idpManager }) => new EnableIDPMutationResolver(idpManager)).addService("createProjectMutationResolver", ({ projectManager }) => new CreateProjectMutationResolver(projectManager)).addService("disablePersonMutationResolver", ({ personAccessManager, personManager }) => new DisablePersonMutationResolver(personAccessManager, personManager)).addService("updateProjectMutationResolver", ({ projectManager }) => new UpdateProjectMutationResolver(projectManager)).addService("setProjectSecretMutationResolver", ({ projectManager, secretManager }) => new SetProjectSecretMutationResolver(projectManager, secretManager)).addService("identityGlobalRolesMutationResolver", ({ rolesManager }) => new IdentityGlobalRolesMutationResolver(rolesManager)).addService("configurationMutationResolver", ({ configurationManager }) => new ConfigurationMutationResolver(configurationManager)).addService("configurationQueryResolver", ({ configurationManager }) => new ConfigurationQueryResolver(configurationManager)).addService("passwordlessMutationResolver", ({ passwordlessSignInManager, signInResponseFactory }) => new PasswordlessMutationResolver(passwordlessSignInManager, signInResponseFactory)).addService("togglePasswordlessMutationResolver", ({ configurationManager, personManager }) => new TogglePasswordlessMutationResolver(configurationManager, personManager)).addService("resolverContextFactory", ({ permissionContextFactory }) => new TenantResolverContextFactory(permissionContextFactory)).addService("resolvers", (container) => new ResolverFactory(container).create()).addService("connection", () => args.connection).addService("readConnection", () => args.readConnection).addService("databaseContext", ({ connection, providers }) => new DatabaseContext(connection.createClient("tenant", { module: "tenant" }), providers)).addService("readDatabaseContext", ({ readConnection, providers }) => new DatabaseContext(readConnection.createClient("tenant", { module: "tenant" }), providers)).addService("identityFetcher", ({ databaseContext }) => new IdentityFetcher(databaseContext.client)).addService("migrationsRunner", ({ providers }) => new TenantMigrationsRunner(args.dbCredentials, "tenant", args.tenantCredentials, providers));
109
115
  }
110
116
  }
111
117
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"TenantContainer.js","sources":["../../../../packages/engine-tenant-api/src/TenantContainer.ts"],"sourcesContent":["import { AccessEvaluator, Authorizator } from '@contember/authorization'\nimport { Connection, DatabaseConfig } from '@contember/database'\nimport { Builder } from '@contember/dic'\nimport {\n\tAclSchemaAccessNodeFactory,\n\tApiKeyManager,\n\tApiKeyService,\n\tAppleProvider,\n\tDatabaseContext,\n\tEmailValidator,\n\tFacebookProvider,\n\tIdentity,\n\tIdentityFactory,\n\tIDPHandlerRegistry,\n\tIDPManager,\n\tIDPSignInManager,\n\tInviteManager,\n\tMailTemplateManager,\n\tMembershipValidator,\n\tOIDCProvider,\n\tOtpAuthenticator,\n\tOtpManager,\n\tPasswordChangeManager,\n\tPasswordResetManager,\n\tPermissionContextFactory,\n\tPermissionsFactory,\n\tPersonAccessManager,\n\tPersonManager,\n\tProjectInitializer,\n\tProjectManager,\n\tProjectMemberManager,\n\tProjectSchemaResolver,\n\tProjectScopeFactory,\n\tProviders,\n\tRolesManager,\n\tSecretsManager,\n\tSignInManager,\n\tSignUpManager,\n\tUserMailer,\n} from './model'\nimport {\n\tAddIDPMutationResolver,\n\tAddProjectMemberMutationResolver,\n\tChangePasswordMutationResolver,\n\tChangeProfileMutationResolver,\n\tCreateApiKeyMutationResolver,\n\tCreateProjectMutationResolver,\n\tDisableApiKeyMutationResolver,\n\tDisableIDPMutationResolver,\n\tEnableIDPMutationResolver,\n\tIdentityGlobalRolesMutationResolver,\n\tIdentityTypeResolver,\n\tIDPMutationResolver,\n\tInviteMutationResolver,\n\tMailTemplateMutationResolver,\n\tMeQueryResolver,\n\tOtpMutationResolver,\n\tPersonQueryResolver,\n\tProjectMembersQueryResolver,\n\tProjectQueryResolver,\n\tProjectTypeResolver,\n\tRemoveProjectMemberMutationResolver,\n\tResetPasswordMutationResolver,\n\tResolverFactory,\n\tSetProjectSecretMutationResolver,\n\tSignInMutationResolver,\n\tSignOutMutationResolver,\n\tSignUpMutationResolver,\n\tTenantResolverContextFactory,\n\tUpdateProjectMemberMutationResolver,\n\tUpdateProjectMutationResolver,\n} from './resolvers'\nimport * as Schema from './schema'\nimport { createMailer, MailerOptions, TemplateRenderer } from './utils'\nimport { IdentityFetcher } from './bridges/system/IdentityFetcher'\nimport { SignInResponseFactory } from './resolvers/responseHelpers/SignInResponseFactory'\nimport { IDPQueryResolver } from './resolvers/query/IDPQueryResolver'\nimport { UpdateIDPMutationResolver } from './resolvers/mutation/idp/UpdateIDPMutationResolver'\nimport { TenantCredentials, TenantMigrationsRunner } from './migrations'\nimport { DisablePersonMutationResolver } from './resolvers/mutation/person/DisablePersonMutationResolver'\nimport { MailTemplateQueryResolver } from './resolvers/query/MailTemplateQueryResolver'\n\nexport interface TenantContainer {\n\tprojectMemberManager: ProjectMemberManager\n\tapiKeyManager: ApiKeyManager\n\tsignUpManager: SignUpManager\n\tprojectManager: ProjectManager\n\tresolvers: Schema.Resolvers\n\tresolverContextFactory: TenantResolverContextFactory\n\tauthorizator: Authorizator<Identity>\n\tidentityFetcher: IdentityFetcher\n\tdatabaseContext: DatabaseContext\n\treadDatabaseContext: DatabaseContext\n\tmigrationsRunner: TenantMigrationsRunner\n\tconnection: Connection.ConnectionType\n\treadConnection: Connection.ConnectionType\n}\n\nexport interface TenantContainerArgs {\n\tconnection: Connection.ConnectionType\n\treadConnection: Connection.ConnectionType\n\tdbCredentials: DatabaseConfig\n\tmailOptions: MailerOptions\n\tprojectSchemaResolver: ProjectSchemaResolver\n\tprojectInitializer: ProjectInitializer\n\ttenantCredentials: TenantCredentials\n\tcryptoProviders: Pick<Providers, 'encrypt' | 'decrypt'>\n}\n\nexport class TenantContainerFactory {\n\tconstructor(\n\t\tprivate readonly providers: Omit<Providers, 'encrypt' | 'decrypt'>,\n\t) { }\n\n\tcreate(args: TenantContainerArgs): TenantContainer {\n\t\treturn this.createBuilder(args)\n\t\t\t.build()\n\t\t\t.pick(\n\t\t\t\t'apiKeyManager',\n\t\t\t\t'projectMemberManager',\n\t\t\t\t'projectManager',\n\t\t\t\t'signUpManager',\n\t\t\t\t'resolvers',\n\t\t\t\t'authorizator',\n\t\t\t\t'resolverContextFactory',\n\t\t\t\t'identityFetcher',\n\t\t\t\t'databaseContext',\n\t\t\t\t'readDatabaseContext',\n\t\t\t\t'migrationsRunner',\n\t\t\t\t'connection',\n\t\t\t\t'readConnection',\n\t\t\t)\n\t}\n\n\tcreateBuilder(args: TenantContainerArgs) {\n\t\treturn new Builder({})\n\t\t\t.addService('providers', () =>\n\t\t\t\t({ ...this.providers, ...args.cryptoProviders }))\n\t\t\t.addService('mailer', () =>\n\t\t\t\tcreateMailer(args.mailOptions))\n\t\t\t.addService('projectSchemaResolver', () =>\n\t\t\t\targs.projectSchemaResolver)\n\t\t\t.addService('templateRenderer', () =>\n\t\t\t\tnew TemplateRenderer())\n\t\t\t.addService('accessEvaluator', ({ }) =>\n\t\t\t\tnew AccessEvaluator.PermissionEvaluator(new PermissionsFactory().create()))\n\t\t\t.addService('authorizator', ({ accessEvaluator }) =>\n\t\t\t\tnew Authorizator.Default(accessEvaluator))\n\t\t\t.addService('userMailer', ({ mailer, templateRenderer }) =>\n\t\t\t\tnew UserMailer(mailer, templateRenderer))\n\t\t\t.addService('apiKeyService', () =>\n\t\t\t\tnew ApiKeyService())\n\t\t\t.addService('apiKeyManager', ({ apiKeyService }) =>\n\t\t\t\tnew ApiKeyManager(apiKeyService))\n\t\t\t.addService('emailValidator', () =>\n\t\t\t\tnew EmailValidator())\n\t\t\t.addService('signUpManager', ({ emailValidator }) =>\n\t\t\t\tnew SignUpManager(emailValidator))\n\t\t\t.addService('passwordChangeManager', ({ providers }) =>\n\t\t\t\tnew PasswordChangeManager(providers))\n\t\t\t.addService('projectMemberManager', () =>\n\t\t\t\tnew ProjectMemberManager())\n\t\t\t.addService('identityFactory', ({ projectMemberManager }) =>\n\t\t\t\tnew IdentityFactory(projectMemberManager))\n\t\t\t.addService('projectScopeFactory', () =>\n\t\t\t\tnew ProjectScopeFactory(new AclSchemaAccessNodeFactory()))\n\t\t\t.addService('permissionContextFactory', ({ authorizator, identityFactory, projectScopeFactory, projectSchemaResolver }) =>\n\t\t\t\tnew PermissionContextFactory(authorizator, identityFactory, projectScopeFactory, projectSchemaResolver))\n\t\t\t.addService('secretManager', ({ providers }) =>\n\t\t\t\tnew SecretsManager(providers))\n\t\t\t.addService('projectManager', ({ secretManager, apiKeyService }) =>\n\t\t\t\tnew ProjectManager(secretManager, args.projectInitializer, apiKeyService))\n\t\t\t.addService('personAccessManager', ({ apiKeyManager }) =>\n\t\t\t\tnew PersonAccessManager(apiKeyManager))\n\t\t\t.addService('personManager', ({ emailValidator }) =>\n\t\t\t\tnew PersonManager(emailValidator))\n\t\t\t.addService('passwordResetManager', ({ userMailer, projectManager }) =>\n\t\t\t\tnew PasswordResetManager(userMailer, projectManager))\n\t\t\t.addService('idpRegistry', () => {\n\t\t\t\tconst idpRegistry = new IDPHandlerRegistry()\n\t\t\t\tidpRegistry.registerHandler('oidc', new OIDCProvider())\n\t\t\t\tidpRegistry.registerHandler('facebook', new FacebookProvider())\n\t\t\t\tidpRegistry.registerHandler('apple', new AppleProvider())\n\t\t\t\treturn idpRegistry\n\t\t\t})\n\t\t\t.addService('idpSignInManager', ({ apiKeyManager, idpRegistry }) =>\n\t\t\t\tnew IDPSignInManager(apiKeyManager, idpRegistry))\n\t\t\t.addService('idpManager', ({ idpRegistry }) =>\n\t\t\t\tnew IDPManager(idpRegistry))\n\t\t\t.addService('otpAuthenticator', ({ providers }) =>\n\t\t\t\tnew OtpAuthenticator(providers))\n\t\t\t.addService('signInManager', ({ apiKeyManager, providers, otpAuthenticator }) =>\n\t\t\t\tnew SignInManager(apiKeyManager, providers, otpAuthenticator))\n\t\t\t.addService('membershipValidator', ({ projectSchemaResolver }) =>\n\t\t\t\tnew MembershipValidator(projectSchemaResolver))\n\t\t\t.addService('inviteManager', ({ providers, userMailer, projectSchemaResolver }) =>\n\t\t\t\tnew InviteManager(providers, userMailer, projectSchemaResolver))\n\t\t\t.addService('otpManager', ({ otpAuthenticator }) =>\n\t\t\t\tnew OtpManager(otpAuthenticator))\n\t\t\t.addService('mailTemplateManager', () =>\n\t\t\t\tnew MailTemplateManager())\n\t\t\t.addService('rolesManager', () =>\n\t\t\t\tnew RolesManager())\n\n\t\t\t.addService('identityTypeResolver', ({ projectMemberManager, projectManager, permissionContextFactory }) =>\n\t\t\t\tnew IdentityTypeResolver(projectMemberManager, projectManager, permissionContextFactory))\n\t\t\t.addService('projectTypeResolver', ({ projectMemberManager, projectSchemaResolver }) =>\n\t\t\t\tnew ProjectTypeResolver(projectMemberManager, projectSchemaResolver))\n\t\t\t.addService('signInResponseFactory', ({ permissionContextFactory, identityTypeResolver }) =>\n\t\t\t\tnew SignInResponseFactory(permissionContextFactory, identityTypeResolver))\n\t\t\t.addService('meQueryResolver', () =>\n\t\t\t\tnew MeQueryResolver())\n\t\t\t.addService('personQueryResolver', ({ personManager }) =>\n\t\t\t\tnew PersonQueryResolver(personManager))\n\t\t\t.addService('idpQueryResolver', ({ idpManager }) =>\n\t\t\t\tnew IDPQueryResolver(idpManager))\n\t\t\t.addService('projectQueryResolver', ({ projectManager }) =>\n\t\t\t\tnew ProjectQueryResolver(projectManager))\n\t\t\t.addService('projectMembersQueryResolver', ({ projectManager, projectMemberManager }) =>\n\t\t\t\tnew ProjectMembersQueryResolver(projectManager, projectMemberManager))\n\t\t\t.addService('mailTemplateQueryResolver', () =>\n\t\t\t\tnew MailTemplateQueryResolver())\n\t\t\t.addService('signUpMutationResolver', ({ signUpManager, apiKeyManager }) =>\n\t\t\t\tnew SignUpMutationResolver(signUpManager, apiKeyManager))\n\t\t\t.addService('signInMutationResolver', ({ signInManager, signInResponseFactory }) =>\n\t\t\t\tnew SignInMutationResolver(signInManager, signInResponseFactory))\n\t\t\t.addService('signOutMutationResolver', ({ apiKeyManager }) =>\n\t\t\t\tnew SignOutMutationResolver(apiKeyManager))\n\t\t\t.addService('changeProfileMutationResolver', ({ personManager }) =>\n\t\t\t\tnew ChangeProfileMutationResolver(personManager))\n\t\t\t.addService('changePasswordMutationResolver', ({ passwordChangeManager }) =>\n\t\t\t\tnew ChangePasswordMutationResolver(passwordChangeManager))\n\t\t\t.addService('resetPasswordMutationResolver', ({ passwordResetManager, permissionContextFactory }) =>\n\t\t\t\tnew ResetPasswordMutationResolver(passwordResetManager, permissionContextFactory))\n\t\t\t.addService('inviteMutationResolver', ({ inviteManager, projectManager, membershipValidator }) =>\n\t\t\t\tnew InviteMutationResolver(inviteManager, projectManager, membershipValidator))\n\t\t\t.addService('addProjectMemberMutationResolver', ({ projectMemberManager, projectManager, membershipValidator }) =>\n\t\t\t\tnew AddProjectMemberMutationResolver(projectMemberManager, projectManager, membershipValidator))\n\t\t\t.addService('updateProjectMemberMutationResolver', ({ projectMemberManager, projectManager, membershipValidator }) =>\n\t\t\t\tnew UpdateProjectMemberMutationResolver(projectMemberManager, projectManager, membershipValidator))\n\t\t\t.addService('removeProjectMemberMutationResolver', ({ projectMemberManager, projectManager }) =>\n\t\t\t\tnew RemoveProjectMemberMutationResolver(projectMemberManager, projectManager))\n\t\t\t.addService('createApiKeyMutationResolver', ({ apiKeyManager, projectManager, membershipValidator }) =>\n\t\t\t\tnew CreateApiKeyMutationResolver(apiKeyManager, projectManager, membershipValidator))\n\t\t\t.addService('disableApiKeyMutationResolver', ({ apiKeyManager }) =>\n\t\t\t\tnew DisableApiKeyMutationResolver(apiKeyManager))\n\t\t\t.addService('otpMutationResolver', ({ otpManager }) =>\n\t\t\t\tnew OtpMutationResolver(otpManager))\n\t\t\t.addService('mailTemplateMutationResolver', ({ projectManager, mailTemplateManager }) =>\n\t\t\t\tnew MailTemplateMutationResolver(projectManager, mailTemplateManager))\n\t\t\t.addService('idpMutationResolver', ({ idpSignInManager, signInResponseFactory }) =>\n\t\t\t\tnew IDPMutationResolver(idpSignInManager, signInResponseFactory))\n\t\t\t.addService('registerIdpMutationResolver', ({ idpManager }) =>\n\t\t\t\tnew AddIDPMutationResolver(idpManager))\n\t\t\t.addService('updateIdpMutationResolver', ({ idpManager }) =>\n\t\t\t\tnew UpdateIDPMutationResolver(idpManager))\n\t\t\t.addService('disableIdpMutationResolver', ({ idpManager }) =>\n\t\t\t\tnew DisableIDPMutationResolver(idpManager))\n\t\t\t.addService('enableIdpMutationResolver', ({ idpManager }) =>\n\t\t\t\tnew EnableIDPMutationResolver(idpManager))\n\t\t\t.addService('createProjectMutationResolver', ({ projectManager }) =>\n\t\t\t\tnew CreateProjectMutationResolver(projectManager))\n\t\t\t.addService('disablePersonMutationResolver', ({ personAccessManager, personManager }) =>\n\t\t\t\tnew DisablePersonMutationResolver(personAccessManager, personManager))\n\t\t\t.addService('updateProjectMutationResolver', ({ projectManager }) =>\n\t\t\t\tnew UpdateProjectMutationResolver(projectManager))\n\t\t\t.addService('setProjectSecretMutationResolver', ({ projectManager, secretManager }) =>\n\t\t\t\tnew SetProjectSecretMutationResolver(projectManager, secretManager))\n\t\t\t.addService('identityGlobalRolesMutationResolver', ({ rolesManager }) =>\n\t\t\t\tnew IdentityGlobalRolesMutationResolver(rolesManager))\n\t\t\t.addService('resolverContextFactory', ({ permissionContextFactory }) =>\n\t\t\t\tnew TenantResolverContextFactory(permissionContextFactory))\n\t\t\t.addService('resolvers', container =>\n\t\t\t\tnew ResolverFactory(container).create())\n\t\t\t.addService('connection', () =>\n\t\t\t\targs.connection)\n\t\t\t.addService('readConnection', () =>\n\t\t\t\targs.readConnection)\n\t\t\t.addService('databaseContext', ({ connection, providers }) =>\n\t\t\t\tnew DatabaseContext(connection.createClient('tenant', { module: 'tenant' }), providers))\n\t\t\t.addService('readDatabaseContext', ({ readConnection, providers }) =>\n\t\t\t\tnew DatabaseContext(readConnection.createClient('tenant', { module: 'tenant' }), providers))\n\t\t\t.addService('identityFetcher', ({ databaseContext }) =>\n\t\t\t\tnew IdentityFetcher(databaseContext.client))\n\t\t\t.addService('migrationsRunner', ({ providers }) =>\n\t\t\t\tnew TenantMigrationsRunner(args.dbCredentials, 'tenant', args.tenantCredentials, providers))\n\t}\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TenantContainer.js","sources":["../../../../packages/engine-tenant-api/src/TenantContainer.ts"],"sourcesContent":["import { AccessEvaluator, Authorizator } from '@contember/authorization'\nimport { Connection, DatabaseConfig } from '@contember/database'\nimport { Builder } from '@contember/dic'\nimport {\n\tAclSchemaAccessNodeFactory,\n\tApiKeyManager,\n\tApiKeyService,\n\tAppleProvider,\n\tDatabaseContext,\n\tEmailValidator,\n\tFacebookProvider,\n\tIdentity,\n\tIdentityFactory,\n\tIDPHandlerRegistry,\n\tIDPManager,\n\tIDPSignInManager,\n\tInviteManager,\n\tMailTemplateManager,\n\tMembershipValidator,\n\tOIDCProvider,\n\tOtpAuthenticator,\n\tOtpManager,\n\tPasswordChangeManager,\n\tPasswordResetManager,\n\tPermissionContextFactory,\n\tPermissionsFactory,\n\tPersonAccessManager,\n\tPersonManager,\n\tProjectInitializer,\n\tProjectManager,\n\tProjectMemberManager,\n\tProjectSchemaResolver,\n\tProjectScopeFactory,\n\tProviders,\n\tRolesManager,\n\tSecretsManager,\n\tSignInManager,\n\tSignUpManager,\n\tUserMailer,\n} from './model'\nimport {\n\tAddIDPMutationResolver,\n\tAddProjectMemberMutationResolver,\n\tChangePasswordMutationResolver,\n\tChangeProfileMutationResolver,\n\tCreateApiKeyMutationResolver,\n\tCreateProjectMutationResolver,\n\tDisableApiKeyMutationResolver,\n\tDisableIDPMutationResolver,\n\tEnableIDPMutationResolver,\n\tIdentityGlobalRolesMutationResolver,\n\tIdentityTypeResolver,\n\tIDPMutationResolver,\n\tInviteMutationResolver,\n\tMailTemplateMutationResolver,\n\tMeQueryResolver,\n\tOtpMutationResolver,\n\tPersonQueryResolver,\n\tProjectMembersQueryResolver,\n\tProjectQueryResolver,\n\tProjectTypeResolver,\n\tRemoveProjectMemberMutationResolver,\n\tResetPasswordMutationResolver,\n\tResolverFactory,\n\tSetProjectSecretMutationResolver,\n\tSignInMutationResolver,\n\tSignOutMutationResolver,\n\tSignUpMutationResolver,\n\tTenantResolverContextFactory,\n\tUpdateProjectMemberMutationResolver,\n\tUpdateProjectMutationResolver,\n} from './resolvers'\nimport * as Schema from './schema'\nimport { createMailer, MailerOptions, TemplateRenderer } from './utils'\nimport { IdentityFetcher } from './bridges/system/IdentityFetcher'\nimport { SignInResponseFactory } from './resolvers/responseHelpers/SignInResponseFactory'\nimport { IDPQueryResolver } from './resolvers/query/IDPQueryResolver'\nimport { UpdateIDPMutationResolver } from './resolvers/mutation/idp/UpdateIDPMutationResolver'\nimport { TenantCredentials, TenantMigrationsRunner } from './migrations'\nimport { DisablePersonMutationResolver } from './resolvers/mutation/person/DisablePersonMutationResolver'\nimport { MailTemplateQueryResolver } from './resolvers/query/MailTemplateQueryResolver'\nimport { ConfigurationManager } from './model/service/ConfigurationManager'\nimport { ConfigurationMutationResolver } from './resolvers/mutation/configuration/ConfigurationMutationResolver'\nimport { ConfigurationQueryResolver } from './resolvers/query/ConfigurationQueryResolver'\nimport { PasswordlessMutationResolver } from './resolvers/mutation/person/PasswordlessMutationResolver'\nimport { PasswordlessSignInManager } from './model/service/PasswordlessSignInManager'\nimport { TogglePasswordlessMutationResolver } from './resolvers/mutation/person/TogglePasswordlessMutationResolver'\n\nexport interface TenantContainer {\n\tprojectMemberManager: ProjectMemberManager\n\tapiKeyManager: ApiKeyManager\n\tsignUpManager: SignUpManager\n\tprojectManager: ProjectManager\n\tresolvers: Schema.Resolvers\n\tresolverContextFactory: TenantResolverContextFactory\n\tauthorizator: Authorizator<Identity>\n\tidentityFetcher: IdentityFetcher\n\tdatabaseContext: DatabaseContext\n\treadDatabaseContext: DatabaseContext\n\tmigrationsRunner: TenantMigrationsRunner\n\tconnection: Connection.ConnectionType\n\treadConnection: Connection.ConnectionType\n}\n\nexport interface TenantContainerArgs {\n\tconnection: Connection.ConnectionType\n\treadConnection: Connection.ConnectionType\n\tdbCredentials: DatabaseConfig\n\tmailOptions: MailerOptions\n\tprojectSchemaResolver: ProjectSchemaResolver\n\tprojectInitializer: ProjectInitializer\n\ttenantCredentials: TenantCredentials\n\tcryptoProviders: Pick<Providers, 'encrypt' | 'decrypt'>\n}\n\nexport class TenantContainerFactory {\n\tconstructor(\n\t\tprivate readonly providers: Omit<Providers, 'encrypt' | 'decrypt'>,\n\t) { }\n\n\tcreate(args: TenantContainerArgs): TenantContainer {\n\t\treturn this.createBuilder(args)\n\t\t\t.build()\n\t\t\t.pick(\n\t\t\t\t'apiKeyManager',\n\t\t\t\t'projectMemberManager',\n\t\t\t\t'projectManager',\n\t\t\t\t'signUpManager',\n\t\t\t\t'resolvers',\n\t\t\t\t'authorizator',\n\t\t\t\t'resolverContextFactory',\n\t\t\t\t'identityFetcher',\n\t\t\t\t'databaseContext',\n\t\t\t\t'readDatabaseContext',\n\t\t\t\t'migrationsRunner',\n\t\t\t\t'connection',\n\t\t\t\t'readConnection',\n\t\t\t)\n\t}\n\n\tcreateBuilder(args: TenantContainerArgs) {\n\t\treturn new Builder({})\n\t\t\t.addService('providers', () =>\n\t\t\t\t({ ...this.providers, ...args.cryptoProviders }))\n\t\t\t.addService('mailer', () =>\n\t\t\t\tcreateMailer(args.mailOptions))\n\t\t\t.addService('projectSchemaResolver', () =>\n\t\t\t\targs.projectSchemaResolver)\n\t\t\t.addService('templateRenderer', () =>\n\t\t\t\tnew TemplateRenderer())\n\t\t\t.addService('accessEvaluator', ({ }) =>\n\t\t\t\tnew AccessEvaluator.PermissionEvaluator(new PermissionsFactory().create()))\n\t\t\t.addService('authorizator', ({ accessEvaluator }) =>\n\t\t\t\tnew Authorizator.Default(accessEvaluator))\n\t\t\t.addService('userMailer', ({ mailer, templateRenderer }) =>\n\t\t\t\tnew UserMailer(mailer, templateRenderer))\n\t\t\t.addService('apiKeyService', () =>\n\t\t\t\tnew ApiKeyService())\n\t\t\t.addService('apiKeyManager', ({ apiKeyService }) =>\n\t\t\t\tnew ApiKeyManager(apiKeyService))\n\t\t\t.addService('emailValidator', () =>\n\t\t\t\tnew EmailValidator())\n\t\t\t.addService('signUpManager', ({ emailValidator }) =>\n\t\t\t\tnew SignUpManager(emailValidator))\n\t\t\t.addService('passwordChangeManager', ({ providers }) =>\n\t\t\t\tnew PasswordChangeManager(providers))\n\t\t\t.addService('projectMemberManager', () =>\n\t\t\t\tnew ProjectMemberManager())\n\t\t\t.addService('identityFactory', ({ projectMemberManager }) =>\n\t\t\t\tnew IdentityFactory(projectMemberManager))\n\t\t\t.addService('projectScopeFactory', () =>\n\t\t\t\tnew ProjectScopeFactory(new AclSchemaAccessNodeFactory()))\n\t\t\t.addService('permissionContextFactory', ({ authorizator, identityFactory, projectScopeFactory, projectSchemaResolver }) =>\n\t\t\t\tnew PermissionContextFactory(authorizator, identityFactory, projectScopeFactory, projectSchemaResolver))\n\t\t\t.addService('secretManager', ({ providers }) =>\n\t\t\t\tnew SecretsManager(providers))\n\t\t\t.addService('projectManager', ({ secretManager, apiKeyService }) =>\n\t\t\t\tnew ProjectManager(secretManager, args.projectInitializer, apiKeyService))\n\t\t\t.addService('personAccessManager', ({ apiKeyManager }) =>\n\t\t\t\tnew PersonAccessManager(apiKeyManager))\n\t\t\t.addService('personManager', ({ emailValidator }) =>\n\t\t\t\tnew PersonManager(emailValidator))\n\t\t\t.addService('passwordResetManager', ({ userMailer, projectManager }) =>\n\t\t\t\tnew PasswordResetManager(userMailer, projectManager))\n\t\t\t.addService('idpRegistry', () => {\n\t\t\t\tconst idpRegistry = new IDPHandlerRegistry()\n\t\t\t\tidpRegistry.registerHandler('oidc', new OIDCProvider())\n\t\t\t\tidpRegistry.registerHandler('facebook', new FacebookProvider())\n\t\t\t\tidpRegistry.registerHandler('apple', new AppleProvider())\n\t\t\t\treturn idpRegistry\n\t\t\t})\n\t\t\t.addService('idpSignInManager', ({ apiKeyManager, idpRegistry }) =>\n\t\t\t\tnew IDPSignInManager(apiKeyManager, idpRegistry))\n\t\t\t.addService('idpManager', ({ idpRegistry }) =>\n\t\t\t\tnew IDPManager(idpRegistry))\n\t\t\t.addService('otpAuthenticator', ({ providers }) =>\n\t\t\t\tnew OtpAuthenticator(providers))\n\t\t\t.addService('signInManager', ({ apiKeyManager, providers, otpAuthenticator }) =>\n\t\t\t\tnew SignInManager(apiKeyManager, providers, otpAuthenticator))\n\t\t\t.addService('membershipValidator', ({ projectSchemaResolver }) =>\n\t\t\t\tnew MembershipValidator(projectSchemaResolver))\n\t\t\t.addService('inviteManager', ({ providers, userMailer, projectSchemaResolver }) =>\n\t\t\t\tnew InviteManager(providers, userMailer, projectSchemaResolver))\n\t\t\t.addService('otpManager', ({ otpAuthenticator }) =>\n\t\t\t\tnew OtpManager(otpAuthenticator))\n\t\t\t.addService('mailTemplateManager', () =>\n\t\t\t\tnew MailTemplateManager())\n\t\t\t.addService('rolesManager', () =>\n\t\t\t\tnew RolesManager())\n\t\t\t.addService('configurationManager', () =>\n\t\t\t\tnew ConfigurationManager())\n\t\t\t.addService('passwordlessSignInManager', ({ apiKeyManager, configurationManager, userMailer, projectManager, otpAuthenticator }) =>\n\t\t\t\tnew PasswordlessSignInManager(apiKeyManager, configurationManager, userMailer, projectManager, otpAuthenticator))\n\n\t\t\t.addService('identityTypeResolver', ({ projectMemberManager, projectManager, permissionContextFactory }) =>\n\t\t\t\tnew IdentityTypeResolver(projectMemberManager, projectManager, permissionContextFactory))\n\t\t\t.addService('projectTypeResolver', ({ projectMemberManager, projectSchemaResolver }) =>\n\t\t\t\tnew ProjectTypeResolver(projectMemberManager, projectSchemaResolver))\n\t\t\t.addService('signInResponseFactory', ({ permissionContextFactory, identityTypeResolver }) =>\n\t\t\t\tnew SignInResponseFactory(permissionContextFactory, identityTypeResolver))\n\t\t\t.addService('meQueryResolver', () =>\n\t\t\t\tnew MeQueryResolver())\n\t\t\t.addService('personQueryResolver', ({ personManager }) =>\n\t\t\t\tnew PersonQueryResolver(personManager))\n\t\t\t.addService('idpQueryResolver', ({ idpManager }) =>\n\t\t\t\tnew IDPQueryResolver(idpManager))\n\t\t\t.addService('projectQueryResolver', ({ projectManager }) =>\n\t\t\t\tnew ProjectQueryResolver(projectManager))\n\t\t\t.addService('projectMembersQueryResolver', ({ projectManager, projectMemberManager }) =>\n\t\t\t\tnew ProjectMembersQueryResolver(projectManager, projectMemberManager))\n\t\t\t.addService('mailTemplateQueryResolver', () =>\n\t\t\t\tnew MailTemplateQueryResolver())\n\t\t\t.addService('signUpMutationResolver', ({ signUpManager, apiKeyManager }) =>\n\t\t\t\tnew SignUpMutationResolver(signUpManager, apiKeyManager))\n\t\t\t.addService('signInMutationResolver', ({ signInManager, signInResponseFactory }) =>\n\t\t\t\tnew SignInMutationResolver(signInManager, signInResponseFactory))\n\t\t\t.addService('signOutMutationResolver', ({ apiKeyManager }) =>\n\t\t\t\tnew SignOutMutationResolver(apiKeyManager))\n\t\t\t.addService('changeProfileMutationResolver', ({ personManager }) =>\n\t\t\t\tnew ChangeProfileMutationResolver(personManager))\n\t\t\t.addService('changePasswordMutationResolver', ({ passwordChangeManager }) =>\n\t\t\t\tnew ChangePasswordMutationResolver(passwordChangeManager))\n\t\t\t.addService('resetPasswordMutationResolver', ({ passwordResetManager, permissionContextFactory }) =>\n\t\t\t\tnew ResetPasswordMutationResolver(passwordResetManager, permissionContextFactory))\n\t\t\t.addService('inviteMutationResolver', ({ inviteManager, projectManager, membershipValidator }) =>\n\t\t\t\tnew InviteMutationResolver(inviteManager, projectManager, membershipValidator))\n\t\t\t.addService('addProjectMemberMutationResolver', ({ projectMemberManager, projectManager, membershipValidator }) =>\n\t\t\t\tnew AddProjectMemberMutationResolver(projectMemberManager, projectManager, membershipValidator))\n\t\t\t.addService('updateProjectMemberMutationResolver', ({ projectMemberManager, projectManager, membershipValidator }) =>\n\t\t\t\tnew UpdateProjectMemberMutationResolver(projectMemberManager, projectManager, membershipValidator))\n\t\t\t.addService('removeProjectMemberMutationResolver', ({ projectMemberManager, projectManager }) =>\n\t\t\t\tnew RemoveProjectMemberMutationResolver(projectMemberManager, projectManager))\n\t\t\t.addService('createApiKeyMutationResolver', ({ apiKeyManager, projectManager, membershipValidator }) =>\n\t\t\t\tnew CreateApiKeyMutationResolver(apiKeyManager, projectManager, membershipValidator))\n\t\t\t.addService('disableApiKeyMutationResolver', ({ apiKeyManager }) =>\n\t\t\t\tnew DisableApiKeyMutationResolver(apiKeyManager))\n\t\t\t.addService('otpMutationResolver', ({ otpManager }) =>\n\t\t\t\tnew OtpMutationResolver(otpManager))\n\t\t\t.addService('mailTemplateMutationResolver', ({ projectManager, mailTemplateManager }) =>\n\t\t\t\tnew MailTemplateMutationResolver(projectManager, mailTemplateManager))\n\t\t\t.addService('idpMutationResolver', ({ idpSignInManager, signInResponseFactory }) =>\n\t\t\t\tnew IDPMutationResolver(idpSignInManager, signInResponseFactory))\n\t\t\t.addService('registerIdpMutationResolver', ({ idpManager }) =>\n\t\t\t\tnew AddIDPMutationResolver(idpManager))\n\t\t\t.addService('updateIdpMutationResolver', ({ idpManager }) =>\n\t\t\t\tnew UpdateIDPMutationResolver(idpManager))\n\t\t\t.addService('disableIdpMutationResolver', ({ idpManager }) =>\n\t\t\t\tnew DisableIDPMutationResolver(idpManager))\n\t\t\t.addService('enableIdpMutationResolver', ({ idpManager }) =>\n\t\t\t\tnew EnableIDPMutationResolver(idpManager))\n\t\t\t.addService('createProjectMutationResolver', ({ projectManager }) =>\n\t\t\t\tnew CreateProjectMutationResolver(projectManager))\n\t\t\t.addService('disablePersonMutationResolver', ({ personAccessManager, personManager }) =>\n\t\t\t\tnew DisablePersonMutationResolver(personAccessManager, personManager))\n\t\t\t.addService('updateProjectMutationResolver', ({ projectManager }) =>\n\t\t\t\tnew UpdateProjectMutationResolver(projectManager))\n\t\t\t.addService('setProjectSecretMutationResolver', ({ projectManager, secretManager }) =>\n\t\t\t\tnew SetProjectSecretMutationResolver(projectManager, secretManager))\n\t\t\t.addService('identityGlobalRolesMutationResolver', ({ rolesManager }) =>\n\t\t\t\tnew IdentityGlobalRolesMutationResolver(rolesManager))\n\t\t\t.addService('configurationMutationResolver', ({ configurationManager }) =>\n\t\t\t\tnew ConfigurationMutationResolver(configurationManager))\n\t\t\t.addService('configurationQueryResolver', ({ configurationManager }) =>\n\t\t\t\tnew ConfigurationQueryResolver(configurationManager))\n\t\t\t.addService('passwordlessMutationResolver', ({ passwordlessSignInManager, signInResponseFactory }) =>\n\t\t\t\tnew PasswordlessMutationResolver(passwordlessSignInManager, signInResponseFactory))\n\t\t\t.addService('togglePasswordlessMutationResolver', ({ configurationManager, personManager }) =>\n\t\t\t\tnew TogglePasswordlessMutationResolver(configurationManager, personManager))\n\t\t\t.addService('resolverContextFactory', ({ permissionContextFactory }) =>\n\t\t\t\tnew TenantResolverContextFactory(permissionContextFactory))\n\t\t\t.addService('resolvers', container =>\n\t\t\t\tnew ResolverFactory(container).create())\n\t\t\t.addService('connection', () =>\n\t\t\t\targs.connection)\n\t\t\t.addService('readConnection', () =>\n\t\t\t\targs.readConnection)\n\t\t\t.addService('databaseContext', ({ connection, providers }) =>\n\t\t\t\tnew DatabaseContext(connection.createClient('tenant', { module: 'tenant' }), providers))\n\t\t\t.addService('readDatabaseContext', ({ readConnection, providers }) =>\n\t\t\t\tnew DatabaseContext(readConnection.createClient('tenant', { module: 'tenant' }), providers))\n\t\t\t.addService('identityFetcher', ({ databaseContext }) =>\n\t\t\t\tnew IdentityFetcher(databaseContext.client))\n\t\t\t.addService('migrationsRunner', ({ providers }) =>\n\t\t\t\tnew TenantMigrationsRunner(args.dbCredentials, 'tenant', args.tenantCredentials, providers))\n\t}\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ const sql = `
3
+ CREATE TYPE CONFIG_SINGLETON AS ENUM ('singleton');
4
+ CREATE TYPE CONFIG_POLICY AS ENUM ('always', 'never', 'optIn', 'optOut');
5
+ CREATE TABLE "config"
6
+ (
7
+ id CONFIG_SINGLETON PRIMARY KEY DEFAULT 'singleton',
8
+ passwordless_enabled CONFIG_POLICY NOT NULL DEFAULT 'never',
9
+ passwordless_url TEXT,
10
+ passwordless_expiration_minutes INTEGER NOT NULL DEFAULT 5
11
+ );
12
+ INSERT INTO "config" (id)
13
+ VALUES (DEFAULT);
14
+
15
+ ALTER TABLE person_password_reset
16
+ RENAME TO person_token;
17
+ CREATE TYPE PERSON_TOKEN_TYPE AS ENUM ('password_reset', 'passwordless');
18
+ ALTER TABLE person_token
19
+ ADD COLUMN type PERSON_TOKEN_TYPE NOT NULL DEFAULT 'password_reset',
20
+ ADD COLUMN otp_hash TEXT DEFAULT NULL,
21
+ ADD COLUMN otp_attempts INTEGER NOT NULL DEFAULT 0;
22
+
23
+ ALTER TABLE person
24
+ ADD COLUMN passwordless_enabled BOOLEAN DEFAULT NULL;
25
+
26
+ `;
27
+ async function _20240826120000passwordless(builder) {
28
+ builder.sql(sql);
29
+ }
30
+ module.exports = _20240826120000passwordless;
31
+ //# sourceMappingURL=2024-08-26-120000-passwordless.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"2024-08-26-120000-passwordless.cjs","sources":["../../../../../packages/engine-tenant-api/src/migrations/2024-08-26-120000-passwordless.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\n\nconst sql = `\nCREATE TYPE CONFIG_SINGLETON AS ENUM ('singleton');\nCREATE TYPE CONFIG_POLICY AS ENUM ('always', 'never', 'optIn', 'optOut');\nCREATE TABLE \"config\"\n(\n\tid CONFIG_SINGLETON PRIMARY KEY DEFAULT 'singleton',\n\tpasswordless_enabled CONFIG_POLICY NOT NULL DEFAULT 'never',\n\tpasswordless_url TEXT,\n\tpasswordless_expiration_minutes INTEGER NOT NULL DEFAULT 5\n);\nINSERT INTO \"config\" (id)\nVALUES (DEFAULT);\n\nALTER TABLE person_password_reset\n\tRENAME TO person_token;\nCREATE TYPE PERSON_TOKEN_TYPE AS ENUM ('password_reset', 'passwordless');\nALTER TABLE person_token\n\tADD COLUMN type PERSON_TOKEN_TYPE NOT NULL DEFAULT 'password_reset',\n\tADD COLUMN otp_hash TEXT DEFAULT NULL,\n\tADD COLUMN otp_attempts INTEGER NOT NULL DEFAULT 0;\n\nALTER TABLE person\n\tADD COLUMN passwordless_enabled BOOLEAN DEFAULT NULL;\n\n`\n\nexport default async function (builder: MigrationBuilder) {\n\tbuilder.sql(sql)\n}\n"],"names":[],"mappings":";AAEA,MAAM,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0BZ,eAAA,4BAA+B,SAA2B;AACzD,UAAQ,IAAI,GAAG;AAChB;;"}
@@ -0,0 +1,32 @@
1
+ const sql = `
2
+ CREATE TYPE CONFIG_SINGLETON AS ENUM ('singleton');
3
+ CREATE TYPE CONFIG_POLICY AS ENUM ('always', 'never', 'optIn', 'optOut');
4
+ CREATE TABLE "config"
5
+ (
6
+ id CONFIG_SINGLETON PRIMARY KEY DEFAULT 'singleton',
7
+ passwordless_enabled CONFIG_POLICY NOT NULL DEFAULT 'never',
8
+ passwordless_url TEXT,
9
+ passwordless_expiration_minutes INTEGER NOT NULL DEFAULT 5
10
+ );
11
+ INSERT INTO "config" (id)
12
+ VALUES (DEFAULT);
13
+
14
+ ALTER TABLE person_password_reset
15
+ RENAME TO person_token;
16
+ CREATE TYPE PERSON_TOKEN_TYPE AS ENUM ('password_reset', 'passwordless');
17
+ ALTER TABLE person_token
18
+ ADD COLUMN type PERSON_TOKEN_TYPE NOT NULL DEFAULT 'password_reset',
19
+ ADD COLUMN otp_hash TEXT DEFAULT NULL,
20
+ ADD COLUMN otp_attempts INTEGER NOT NULL DEFAULT 0;
21
+
22
+ ALTER TABLE person
23
+ ADD COLUMN passwordless_enabled BOOLEAN DEFAULT NULL;
24
+
25
+ `;
26
+ async function _20240826120000passwordless(builder) {
27
+ builder.sql(sql);
28
+ }
29
+ export {
30
+ _20240826120000passwordless as default
31
+ };
32
+ //# sourceMappingURL=2024-08-26-120000-passwordless.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"2024-08-26-120000-passwordless.js","sources":["../../../../../packages/engine-tenant-api/src/migrations/2024-08-26-120000-passwordless.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\n\nconst sql = `\nCREATE TYPE CONFIG_SINGLETON AS ENUM ('singleton');\nCREATE TYPE CONFIG_POLICY AS ENUM ('always', 'never', 'optIn', 'optOut');\nCREATE TABLE \"config\"\n(\n\tid CONFIG_SINGLETON PRIMARY KEY DEFAULT 'singleton',\n\tpasswordless_enabled CONFIG_POLICY NOT NULL DEFAULT 'never',\n\tpasswordless_url TEXT,\n\tpasswordless_expiration_minutes INTEGER NOT NULL DEFAULT 5\n);\nINSERT INTO \"config\" (id)\nVALUES (DEFAULT);\n\nALTER TABLE person_password_reset\n\tRENAME TO person_token;\nCREATE TYPE PERSON_TOKEN_TYPE AS ENUM ('password_reset', 'passwordless');\nALTER TABLE person_token\n\tADD COLUMN type PERSON_TOKEN_TYPE NOT NULL DEFAULT 'password_reset',\n\tADD COLUMN otp_hash TEXT DEFAULT NULL,\n\tADD COLUMN otp_attempts INTEGER NOT NULL DEFAULT 0;\n\nALTER TABLE person\n\tADD COLUMN passwordless_enabled BOOLEAN DEFAULT NULL;\n\n`\n\nexport default async function (builder: MigrationBuilder) {\n\tbuilder.sql(sql)\n}\n"],"names":[],"mappings":"AAEA,MAAM,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0BZ,eAAA,4BAA+B,SAA2B;AACzD,UAAQ,IAAI,GAAG;AAChB;"}
@@ -38,6 +38,7 @@ const _20230120135500PersonEmailNormalize = require("./2023-01-20-135500-person-
38
38
  const _20230603104000PersonDisabled = require("./2023-06-03-104000-person-disabled.cjs");
39
39
  const _20230901165000IdpReturnConfig = require("./2023-09-01-165000-idp-return-config.cjs");
40
40
  const _20240620140000MailReply = require("./2024-06-20-140000-mail-reply.cjs");
41
+ const _20240826120000Passwordless = require("./2024-08-26-120000-passwordless.cjs");
41
42
  const snapshot = require("./snapshot.cjs");
42
43
  require("../model/authorization/PermissionActions.cjs");
43
44
  require("@contember/authorization");
@@ -92,7 +93,8 @@ const migrations = {
92
93
  "2023-01-20-135500-person-email-normalize": _20230120135500PersonEmailNormalize,
93
94
  "2023-06-03-104000-person-disabled": _20230603104000PersonDisabled,
94
95
  "2023-09-01-165000-idp-return-config": _20230901165000IdpReturnConfig,
95
- "2024-06-20-140000-mail-reply": _20240620140000MailReply
96
+ "2024-06-20-140000-mail-reply": _20240620140000MailReply,
97
+ "2024-08-26-120000-passwordless": _20240826120000Passwordless
96
98
  };
97
99
  class TenantMigrationsRunner {
98
100
  constructor(db, schema, tenantCredentials, providers) {
@@ -1 +1 @@
1
- {"version":3,"file":"runner.cjs","sources":["../../../../../packages/engine-tenant-api/src/migrations/runner.ts"],"sourcesContent":["import { Connection, createDatabaseIfNotExists, DatabaseConfig, EventManager } from '@contember/database'\nimport { TenantMigrationArgs } from './types'\nimport { MigrationsRunner as DbMigrationsRunner, SnapshotMigrationResolver } from '@contember/database-migrations'\nimport _20180802174310init from './2018-08-02-174310-init'\nimport _20180903140621identityproject from './2018-09-03-140621-identity-project'\nimport _20181026165450setupapikey from './2018-10-26-165450-setup-api-key'\nimport _20181026175155variables from './2018-10-26-175155-variables'\nimport _20190218110949projectslug from './2019-02-18-110949-project-slug'\nimport _20190218160155sessionexpiration from './2019-02-18-160155-session-expiration'\nimport _20190503163729apikeydisabledat from './2019-05-03-163729-api-key-disabled-at'\nimport _20190814153300projectslugunique from './2019-08-14-153300-project-slug-unique'\nimport _20190906111000membership from './2019-09-06-111000-membership'\nimport _20190906111001dropoldmember from './2019-09-06-111001-drop-old-member'\nimport _20200129idenitynote from './2020-01-29-idenity-note'\nimport _20200417fixpersonindex from './2020-04-17-fix-person-index'\nimport _20200501170000apikeyindex from './2020-05-01-170000-api-key-index'\nimport _20200608134000tenantcredentials from './2020-06-08-134000-tenant-credentials'\nimport _20200807110000personotp from './2020-08-07-110000-person-otp'\nimport _20200817162200mailtemplates from './2020-08-17-162200-mail-templates'\nimport _20200821143400personpasswordreset from './2020-08-21-143400-person-password-reset'\nimport _20200907094200identityprovider from './2020-09-07-094200-identity-provider'\nimport _20210328134000timestamp from './2021-03-28-134000-timestamp'\nimport _20210726105000projectconfig from './2021-07-26-105000-project-config'\nimport _20210726132000projectsecrets from './2021-07-26-132000-project-secrets'\nimport _20210727174000projectaliasindex from './2021-07-27-174000-project-alias-index'\nimport _20211124130000personpasswordnull from './2021-11-24-130000-person-password-null'\nimport _20211124161500mailtemplateprojectnull from './2021-11-24-161500-mail-template-project-null'\nimport _20220104144000personuniqueidentity from './2022-01-04-144000-person-unique-identity'\nimport _20220209111800fixcrypted from './2022-02-09-111800-fix-crypted'\nimport _20220211153000idpautosignup from './2022-02-11-153000-idp-auto-sign-up'\nimport _20220629105000personidp from './2022-06-29-105000-person-idp'\nimport _20220707135000personemailoptuniq from './2022-07-07-135000-person-email-opt-uniq'\nimport _20220707141000persondisplayname from './2022-07-07-141000-person-display-name'\nimport _20220714145000personloginoptions from './2022-07-14-145000-person-login-options'\nimport _20221108projectupdatenotification from './2022-11-08-project-update-notification'\nimport _20230120135500personemailnormalize from './2023-01-20-135500-person-email-normalize'\nimport _20230603104000persondisabled from './2023-06-03-104000-person-disabled'\nimport _20230901165000idpreturnconfig from './2023-09-01-165000-idp-return-config'\nimport _20240620140000mailreply from './2024-06-20-140000-mail-reply'\n\nimport snapshot from './snapshot'\nimport { computeTokenHash, Providers } from '../model'\nimport { Logger } from '@contember/logger'\n\nexport interface TenantCredentials {\n\tloginToken?: string\n\trootEmail?: string\n\trootToken?: string\n\trootTokenHash?: string\n\trootPassword?: string\n}\n\nconst migrations = {\n\t'2018-08-02-174310-init': _20180802174310init,\n\t'2018-09-03-140621-identity-project': _20180903140621identityproject,\n\t'2018-10-26-165450-setup-api-key': _20181026165450setupapikey,\n\t'2018-10-26-175155-variables': _20181026175155variables,\n\t'2019-02-18-110949-project-slug': _20190218110949projectslug,\n\t'2019-02-18-160155-session-expiration': _20190218160155sessionexpiration,\n\t'2019-05-03-163729-api-key-disabled-at': _20190503163729apikeydisabledat,\n\t'2019-08-14-153300-project-slug-unique': _20190814153300projectslugunique,\n\t'2019-09-06-111000-membership': _20190906111000membership,\n\t'2019-09-06-111001-drop-old-member': _20190906111001dropoldmember,\n\t'2020-01-29-idenity-note': _20200129idenitynote,\n\t'2020-04-17-fix-person-index': _20200417fixpersonindex,\n\t'2020-05-01-170000-api-key-index': _20200501170000apikeyindex,\n\t'2020-06-08-134000-tenant-credentials': _20200608134000tenantcredentials,\n\t'2020-08-07-110000-person-otp': _20200807110000personotp,\n\t'2020-08-17-162200-mail-templates': _20200817162200mailtemplates,\n\t'2020-08-21-143400-person-password-reset': _20200821143400personpasswordreset,\n\t'2020-09-07-094200-identity-provider': _20200907094200identityprovider,\n\t'2021-03-28-134000-timestamp': _20210328134000timestamp,\n\t'2021-07-26-105000-project-config': _20210726105000projectconfig,\n\t'2021-07-26-132000-project-secrets': _20210726132000projectsecrets,\n\t'2021-07-27-174000-project-alias-index': _20210727174000projectaliasindex,\n\t'2021-11-24-130000-person-password-null': _20211124130000personpasswordnull,\n\t'2021-11-24-161500-mail-template-project-null': _20211124161500mailtemplateprojectnull,\n\t'2022-01-04-144000-person-unique-identity': _20220104144000personuniqueidentity,\n\t'2022-02-09-111800-fix-crypted': _20220209111800fixcrypted,\n\t'2022-02-11-153000-idp-auto-sign-up': _20220211153000idpautosignup,\n\t'2022-06-29-105000-person-idp': _20220629105000personidp,\n\t'2022-07-07-135000-person-email-opt-uniq': _20220707135000personemailoptuniq,\n\t'2022-07-07-141000-person-display-name': _20220707141000persondisplayname,\n\t'2022-07-14-145000-person-login-options': _20220714145000personloginoptions,\n\t'2022-11-08-project-update-notification': _20221108projectupdatenotification,\n\t'2023-01-20-135500-person-email-normalize': _20230120135500personemailnormalize,\n\t'2023-06-03-104000-person-disabled': _20230603104000persondisabled,\n\t'2023-09-01-165000-idp-return-config': _20230901165000idpreturnconfig,\n\t'2024-06-20-140000-mail-reply': _20240620140000mailreply,\n}\n\nexport class TenantMigrationsRunner {\n\tconstructor(\n\t\tprivate readonly db: DatabaseConfig,\n\t\tprivate readonly schema: string,\n\t\tprivate readonly tenantCredentials: TenantCredentials,\n\t\tprivate readonly providers: Pick<Providers, 'bcrypt' | 'uuid'>,\n\t) {\n\t}\n\n\tpublic async run(logger: Logger): Promise<{ name: string }[]> {\n\t\tawait createDatabaseIfNotExists(this.db, message => typeof message === 'string' ? logger.warn(message) : logger.error(message))\n\t\tconst connection = Connection.createSingle(this.db, err => logger.error(err))\n\t\tconst result = await connection.scope(async connection => {\n\t\t\tconst migrationsResolver = new SnapshotMigrationResolver(snapshot, migrations)\n\n\t\t\tconst innerRunner = new DbMigrationsRunner<TenantMigrationArgs>(connection, this.schema, migrationsResolver)\n\t\t\treturn await innerRunner.migrate(message => logger.warn(message), {\n\t\t\t\tgetCredentials: async () => ({\n\t\t\t\t\tloginTokenHash: this.tenantCredentials.loginToken ? computeTokenHash(this.tenantCredentials.loginToken) : undefined,\n\t\t\t\t\trootTokenHash: this.tenantCredentials.rootTokenHash\n\t\t\t\t\t\t?? (this.tenantCredentials.rootToken ? computeTokenHash(this.tenantCredentials.rootToken) : undefined),\n\t\t\t\t\trootEmail: this.tenantCredentials.rootEmail,\n\t\t\t\t\trootPasswordBcrypted: this.tenantCredentials.rootPassword ? await this.providers.bcrypt(this.tenantCredentials.rootPassword) : undefined,\n\t\t\t\t}),\n\t\t\t\tproviders: this.providers,\n\t\t\t})\n\t\t})\n\t\tawait connection.end()\n\t\treturn result\n\t}\n}\n"],"names":["_20180802174310init","_20180903140621identityproject","_20181026165450setupapikey","_20181026175155variables","_20190218110949projectslug","_20190218160155sessionexpiration","_20190503163729apikeydisabledat","_20190814153300projectslugunique","_20190906111000membership","_20190906111001dropoldmember","_20200129idenitynote","_20200417fixpersonindex","_20200501170000apikeyindex","_20200608134000tenantcredentials","_20200807110000personotp","_20200817162200mailtemplates","_20200821143400personpasswordreset","_20200907094200identityprovider","_20210328134000timestamp","_20210726105000projectconfig","_20210726132000projectsecrets","_20210727174000projectaliasindex","_20211124130000personpasswordnull","_20211124161500mailtemplateprojectnull","_20220104144000personuniqueidentity","_20220209111800fixcrypted","_20220211153000idpautosignup","_20220629105000personidp","_20220707135000personemailoptuniq","_20220707141000persondisplayname","_20220714145000personloginoptions","_20221108projectupdatenotification","_20230120135500personemailnormalize","_20230603104000persondisabled","_20230901165000idpreturnconfig","_20240620140000mailreply","createDatabaseIfNotExists","Connection","connection","SnapshotMigrationResolver","DbMigrationsRunner","computeTokenHash"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDA,MAAM,aAAa;AAAA,EAClB,0BAA0BA;AAAAA,EAC1B,sCAAsCC;AAAAA,EACtC,mCAAmCC;AAAAA,EACnC,+BAA+BC;AAAAA,EAC/B,kCAAkCC;AAAAA,EAClC,wCAAwCC;AAAAA,EACxC,yCAAyCC;AAAAA,EACzC,yCAAyCC;AAAAA,EACzC,gCAAgCC;AAAAA,EAChC,qCAAqCC;AAAAA,EACrC,2BAA2BC;AAAAA,EAC3B,+BAA+BC;AAAAA,EAC/B,mCAAmCC;AAAAA,EACnC,wCAAwCC;AAAAA,EACxC,gCAAgCC;AAAAA,EAChC,oCAAoCC;AAAAA,EACpC,2CAA2CC;AAAAA,EAC3C,uCAAuCC;AAAAA,EACvC,+BAA+BC;AAAAA,EAC/B,oCAAoCC;AAAAA,EACpC,qCAAqCC;AAAAA,EACrC,yCAAyCC;AAAAA,EACzC,0CAA0CC;AAAAA,EAC1C,gDAAgDC;AAAAA,EAChD,4CAA4CC;AAAAA,EAC5C,iCAAiCC;AAAAA,EACjC,sCAAsCC;AAAAA,EACtC,gCAAgCC;AAAAA,EAChC,2CAA2CC;AAAAA,EAC3C,yCAAyCC;AAAAA,EACzC,0CAA0CC;AAAAA,EAC1C,0CAA0CC;AAAAA,EAC1C,4CAA4CC;AAAAA,EAC5C,qCAAqCC;AAAAA,EACrC,uCAAuCC;AAAAA,EACvC,gCAAgCC;AACjC;AAEO,MAAM,uBAAuB;AAAA,EACnC,YACkB,IACA,QACA,mBACA,WAChB;AAJgB,SAAA,KAAA;AACA,SAAA,SAAA;AACA,SAAA,oBAAA;AACA,SAAA,YAAA;AAAA,EAElB;AAAA,EAEA,MAAa,IAAI,QAA6C;AAC7D,UAAMC,SAAAA,0BAA0B,KAAK,IAAI,CAAA,YAAW,OAAO,YAAY,WAAW,OAAO,KAAK,OAAO,IAAI,OAAO,MAAM,OAAO,CAAC;AACxH,UAAA,aAAaC,SAAAA,WAAW,aAAa,KAAK,IAAI,CAAO,QAAA,OAAO,MAAM,GAAG,CAAC;AAC5E,UAAM,SAAS,MAAM,WAAW,MAAM,OAAMC,gBAAc;AACzD,YAAM,qBAAqB,IAAIC,mBAAAA,0BAA0B,UAAU,UAAU;AAE7E,YAAM,cAAc,IAAIC,oCAAwCF,aAAY,KAAK,QAAQ,kBAAkB;AAC3G,aAAO,MAAM,YAAY,QAAQ,aAAW,OAAO,KAAK,OAAO,GAAG;AAAA,QACjE,gBAAgB,aAAa;AAAA,UAC5B,gBAAgB,KAAK,kBAAkB,aAAaG,WAAAA,iBAAiB,KAAK,kBAAkB,UAAU,IAAI;AAAA,UAC1G,eAAe,KAAK,kBAAkB,kBACjC,KAAK,kBAAkB,YAAYA,WAAAA,iBAAiB,KAAK,kBAAkB,SAAS,IAAI;AAAA,UAC7F,WAAW,KAAK,kBAAkB;AAAA,UAClC,sBAAsB,KAAK,kBAAkB,eAAe,MAAM,KAAK,UAAU,OAAO,KAAK,kBAAkB,YAAY,IAAI;AAAA,QAAA;AAAA,QAEhI,WAAW,KAAK;AAAA,MAAA,CAChB;AAAA,IAAA,CACD;AACD,UAAM,WAAW;AACV,WAAA;AAAA,EACR;AACD;;"}
1
+ {"version":3,"file":"runner.cjs","sources":["../../../../../packages/engine-tenant-api/src/migrations/runner.ts"],"sourcesContent":["import { Connection, createDatabaseIfNotExists, DatabaseConfig, EventManager } from '@contember/database'\nimport { TenantMigrationArgs } from './types'\nimport { MigrationsRunner as DbMigrationsRunner, SnapshotMigrationResolver } from '@contember/database-migrations'\nimport _20180802174310init from './2018-08-02-174310-init'\nimport _20180903140621identityproject from './2018-09-03-140621-identity-project'\nimport _20181026165450setupapikey from './2018-10-26-165450-setup-api-key'\nimport _20181026175155variables from './2018-10-26-175155-variables'\nimport _20190218110949projectslug from './2019-02-18-110949-project-slug'\nimport _20190218160155sessionexpiration from './2019-02-18-160155-session-expiration'\nimport _20190503163729apikeydisabledat from './2019-05-03-163729-api-key-disabled-at'\nimport _20190814153300projectslugunique from './2019-08-14-153300-project-slug-unique'\nimport _20190906111000membership from './2019-09-06-111000-membership'\nimport _20190906111001dropoldmember from './2019-09-06-111001-drop-old-member'\nimport _20200129idenitynote from './2020-01-29-idenity-note'\nimport _20200417fixpersonindex from './2020-04-17-fix-person-index'\nimport _20200501170000apikeyindex from './2020-05-01-170000-api-key-index'\nimport _20200608134000tenantcredentials from './2020-06-08-134000-tenant-credentials'\nimport _20200807110000personotp from './2020-08-07-110000-person-otp'\nimport _20200817162200mailtemplates from './2020-08-17-162200-mail-templates'\nimport _20200821143400personpasswordreset from './2020-08-21-143400-person-password-reset'\nimport _20200907094200identityprovider from './2020-09-07-094200-identity-provider'\nimport _20210328134000timestamp from './2021-03-28-134000-timestamp'\nimport _20210726105000projectconfig from './2021-07-26-105000-project-config'\nimport _20210726132000projectsecrets from './2021-07-26-132000-project-secrets'\nimport _20210727174000projectaliasindex from './2021-07-27-174000-project-alias-index'\nimport _20211124130000personpasswordnull from './2021-11-24-130000-person-password-null'\nimport _20211124161500mailtemplateprojectnull from './2021-11-24-161500-mail-template-project-null'\nimport _20220104144000personuniqueidentity from './2022-01-04-144000-person-unique-identity'\nimport _20220209111800fixcrypted from './2022-02-09-111800-fix-crypted'\nimport _20220211153000idpautosignup from './2022-02-11-153000-idp-auto-sign-up'\nimport _20220629105000personidp from './2022-06-29-105000-person-idp'\nimport _20220707135000personemailoptuniq from './2022-07-07-135000-person-email-opt-uniq'\nimport _20220707141000persondisplayname from './2022-07-07-141000-person-display-name'\nimport _20220714145000personloginoptions from './2022-07-14-145000-person-login-options'\nimport _20221108projectupdatenotification from './2022-11-08-project-update-notification'\nimport _20230120135500personemailnormalize from './2023-01-20-135500-person-email-normalize'\nimport _20230603104000persondisabled from './2023-06-03-104000-person-disabled'\nimport _20230901165000idpreturnconfig from './2023-09-01-165000-idp-return-config'\nimport _20240620140000mailreply from './2024-06-20-140000-mail-reply'\nimport _20240826120000passwordless from './2024-08-26-120000-passwordless'\n\nimport snapshot from './snapshot'\nimport { computeTokenHash, Providers } from '../model'\nimport { Logger } from '@contember/logger'\n\nexport interface TenantCredentials {\n\tloginToken?: string\n\trootEmail?: string\n\trootToken?: string\n\trootTokenHash?: string\n\trootPassword?: string\n}\n\nconst migrations = {\n\t'2018-08-02-174310-init': _20180802174310init,\n\t'2018-09-03-140621-identity-project': _20180903140621identityproject,\n\t'2018-10-26-165450-setup-api-key': _20181026165450setupapikey,\n\t'2018-10-26-175155-variables': _20181026175155variables,\n\t'2019-02-18-110949-project-slug': _20190218110949projectslug,\n\t'2019-02-18-160155-session-expiration': _20190218160155sessionexpiration,\n\t'2019-05-03-163729-api-key-disabled-at': _20190503163729apikeydisabledat,\n\t'2019-08-14-153300-project-slug-unique': _20190814153300projectslugunique,\n\t'2019-09-06-111000-membership': _20190906111000membership,\n\t'2019-09-06-111001-drop-old-member': _20190906111001dropoldmember,\n\t'2020-01-29-idenity-note': _20200129idenitynote,\n\t'2020-04-17-fix-person-index': _20200417fixpersonindex,\n\t'2020-05-01-170000-api-key-index': _20200501170000apikeyindex,\n\t'2020-06-08-134000-tenant-credentials': _20200608134000tenantcredentials,\n\t'2020-08-07-110000-person-otp': _20200807110000personotp,\n\t'2020-08-17-162200-mail-templates': _20200817162200mailtemplates,\n\t'2020-08-21-143400-person-password-reset': _20200821143400personpasswordreset,\n\t'2020-09-07-094200-identity-provider': _20200907094200identityprovider,\n\t'2021-03-28-134000-timestamp': _20210328134000timestamp,\n\t'2021-07-26-105000-project-config': _20210726105000projectconfig,\n\t'2021-07-26-132000-project-secrets': _20210726132000projectsecrets,\n\t'2021-07-27-174000-project-alias-index': _20210727174000projectaliasindex,\n\t'2021-11-24-130000-person-password-null': _20211124130000personpasswordnull,\n\t'2021-11-24-161500-mail-template-project-null': _20211124161500mailtemplateprojectnull,\n\t'2022-01-04-144000-person-unique-identity': _20220104144000personuniqueidentity,\n\t'2022-02-09-111800-fix-crypted': _20220209111800fixcrypted,\n\t'2022-02-11-153000-idp-auto-sign-up': _20220211153000idpautosignup,\n\t'2022-06-29-105000-person-idp': _20220629105000personidp,\n\t'2022-07-07-135000-person-email-opt-uniq': _20220707135000personemailoptuniq,\n\t'2022-07-07-141000-person-display-name': _20220707141000persondisplayname,\n\t'2022-07-14-145000-person-login-options': _20220714145000personloginoptions,\n\t'2022-11-08-project-update-notification': _20221108projectupdatenotification,\n\t'2023-01-20-135500-person-email-normalize': _20230120135500personemailnormalize,\n\t'2023-06-03-104000-person-disabled': _20230603104000persondisabled,\n\t'2023-09-01-165000-idp-return-config': _20230901165000idpreturnconfig,\n\t'2024-06-20-140000-mail-reply': _20240620140000mailreply,\n\t'2024-08-26-120000-passwordless': _20240826120000passwordless,\n}\n\nexport class TenantMigrationsRunner {\n\tconstructor(\n\t\tprivate readonly db: DatabaseConfig,\n\t\tprivate readonly schema: string,\n\t\tprivate readonly tenantCredentials: TenantCredentials,\n\t\tprivate readonly providers: Pick<Providers, 'bcrypt' | 'uuid'>,\n\t) {\n\t}\n\n\tpublic async run(logger: Logger): Promise<{ name: string }[]> {\n\t\tawait createDatabaseIfNotExists(this.db, message => typeof message === 'string' ? logger.warn(message) : logger.error(message))\n\t\tconst connection = Connection.createSingle(this.db, err => logger.error(err))\n\t\tconst result = await connection.scope(async connection => {\n\t\t\tconst migrationsResolver = new SnapshotMigrationResolver(snapshot, migrations)\n\n\t\t\tconst innerRunner = new DbMigrationsRunner<TenantMigrationArgs>(connection, this.schema, migrationsResolver)\n\t\t\treturn await innerRunner.migrate(message => logger.warn(message), {\n\t\t\t\tgetCredentials: async () => ({\n\t\t\t\t\tloginTokenHash: this.tenantCredentials.loginToken ? computeTokenHash(this.tenantCredentials.loginToken) : undefined,\n\t\t\t\t\trootTokenHash: this.tenantCredentials.rootTokenHash\n\t\t\t\t\t\t?? (this.tenantCredentials.rootToken ? computeTokenHash(this.tenantCredentials.rootToken) : undefined),\n\t\t\t\t\trootEmail: this.tenantCredentials.rootEmail,\n\t\t\t\t\trootPasswordBcrypted: this.tenantCredentials.rootPassword ? await this.providers.bcrypt(this.tenantCredentials.rootPassword) : undefined,\n\t\t\t\t}),\n\t\t\t\tproviders: this.providers,\n\t\t\t})\n\t\t})\n\t\tawait connection.end()\n\t\treturn result\n\t}\n}\n"],"names":["_20180802174310init","_20180903140621identityproject","_20181026165450setupapikey","_20181026175155variables","_20190218110949projectslug","_20190218160155sessionexpiration","_20190503163729apikeydisabledat","_20190814153300projectslugunique","_20190906111000membership","_20190906111001dropoldmember","_20200129idenitynote","_20200417fixpersonindex","_20200501170000apikeyindex","_20200608134000tenantcredentials","_20200807110000personotp","_20200817162200mailtemplates","_20200821143400personpasswordreset","_20200907094200identityprovider","_20210328134000timestamp","_20210726105000projectconfig","_20210726132000projectsecrets","_20210727174000projectaliasindex","_20211124130000personpasswordnull","_20211124161500mailtemplateprojectnull","_20220104144000personuniqueidentity","_20220209111800fixcrypted","_20220211153000idpautosignup","_20220629105000personidp","_20220707135000personemailoptuniq","_20220707141000persondisplayname","_20220714145000personloginoptions","_20221108projectupdatenotification","_20230120135500personemailnormalize","_20230603104000persondisabled","_20230901165000idpreturnconfig","_20240620140000mailreply","_20240826120000passwordless","createDatabaseIfNotExists","Connection","connection","SnapshotMigrationResolver","DbMigrationsRunner","computeTokenHash"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDA,MAAM,aAAa;AAAA,EAClB,0BAA0BA;AAAAA,EAC1B,sCAAsCC;AAAAA,EACtC,mCAAmCC;AAAAA,EACnC,+BAA+BC;AAAAA,EAC/B,kCAAkCC;AAAAA,EAClC,wCAAwCC;AAAAA,EACxC,yCAAyCC;AAAAA,EACzC,yCAAyCC;AAAAA,EACzC,gCAAgCC;AAAAA,EAChC,qCAAqCC;AAAAA,EACrC,2BAA2BC;AAAAA,EAC3B,+BAA+BC;AAAAA,EAC/B,mCAAmCC;AAAAA,EACnC,wCAAwCC;AAAAA,EACxC,gCAAgCC;AAAAA,EAChC,oCAAoCC;AAAAA,EACpC,2CAA2CC;AAAAA,EAC3C,uCAAuCC;AAAAA,EACvC,+BAA+BC;AAAAA,EAC/B,oCAAoCC;AAAAA,EACpC,qCAAqCC;AAAAA,EACrC,yCAAyCC;AAAAA,EACzC,0CAA0CC;AAAAA,EAC1C,gDAAgDC;AAAAA,EAChD,4CAA4CC;AAAAA,EAC5C,iCAAiCC;AAAAA,EACjC,sCAAsCC;AAAAA,EACtC,gCAAgCC;AAAAA,EAChC,2CAA2CC;AAAAA,EAC3C,yCAAyCC;AAAAA,EACzC,0CAA0CC;AAAAA,EAC1C,0CAA0CC;AAAAA,EAC1C,4CAA4CC;AAAAA,EAC5C,qCAAqCC;AAAAA,EACrC,uCAAuCC;AAAAA,EACvC,gCAAgCC;AAAAA,EAChC,kCAAkCC;AACnC;AAEO,MAAM,uBAAuB;AAAA,EACnC,YACkB,IACA,QACA,mBACA,WAChB;AAJgB,SAAA,KAAA;AACA,SAAA,SAAA;AACA,SAAA,oBAAA;AACA,SAAA,YAAA;AAAA,EAElB;AAAA,EAEA,MAAa,IAAI,QAA6C;AAC7D,UAAMC,SAAAA,0BAA0B,KAAK,IAAI,CAAA,YAAW,OAAO,YAAY,WAAW,OAAO,KAAK,OAAO,IAAI,OAAO,MAAM,OAAO,CAAC;AACxH,UAAA,aAAaC,SAAAA,WAAW,aAAa,KAAK,IAAI,CAAO,QAAA,OAAO,MAAM,GAAG,CAAC;AAC5E,UAAM,SAAS,MAAM,WAAW,MAAM,OAAMC,gBAAc;AACzD,YAAM,qBAAqB,IAAIC,mBAAAA,0BAA0B,UAAU,UAAU;AAE7E,YAAM,cAAc,IAAIC,oCAAwCF,aAAY,KAAK,QAAQ,kBAAkB;AAC3G,aAAO,MAAM,YAAY,QAAQ,aAAW,OAAO,KAAK,OAAO,GAAG;AAAA,QACjE,gBAAgB,aAAa;AAAA,UAC5B,gBAAgB,KAAK,kBAAkB,aAAaG,WAAAA,iBAAiB,KAAK,kBAAkB,UAAU,IAAI;AAAA,UAC1G,eAAe,KAAK,kBAAkB,kBACjC,KAAK,kBAAkB,YAAYA,WAAAA,iBAAiB,KAAK,kBAAkB,SAAS,IAAI;AAAA,UAC7F,WAAW,KAAK,kBAAkB;AAAA,UAClC,sBAAsB,KAAK,kBAAkB,eAAe,MAAM,KAAK,UAAU,OAAO,KAAK,kBAAkB,YAAY,IAAI;AAAA,QAAA;AAAA,QAEhI,WAAW,KAAK;AAAA,MAAA,CAChB;AAAA,IAAA,CACD;AACD,UAAM,WAAW;AACV,WAAA;AAAA,EACR;AACD;;"}
@@ -36,6 +36,7 @@ import _20230120135500personemailnormalize from "./2023-01-20-135500-person-emai
36
36
  import _20230603104000persondisabled from "./2023-06-03-104000-person-disabled.js";
37
37
  import _20230901165000idpreturnconfig from "./2023-09-01-165000-idp-return-config.js";
38
38
  import _20240620140000mailreply from "./2024-06-20-140000-mail-reply.js";
39
+ import _20240826120000passwordless from "./2024-08-26-120000-passwordless.js";
39
40
  import snapshot from "./snapshot.js";
40
41
  import "../model/authorization/PermissionActions.js";
41
42
  import "@contember/authorization";
@@ -90,7 +91,8 @@ const migrations = {
90
91
  "2023-01-20-135500-person-email-normalize": _20230120135500personemailnormalize,
91
92
  "2023-06-03-104000-person-disabled": _20230603104000persondisabled,
92
93
  "2023-09-01-165000-idp-return-config": _20230901165000idpreturnconfig,
93
- "2024-06-20-140000-mail-reply": _20240620140000mailreply
94
+ "2024-06-20-140000-mail-reply": _20240620140000mailreply,
95
+ "2024-08-26-120000-passwordless": _20240826120000passwordless
94
96
  };
95
97
  class TenantMigrationsRunner {
96
98
  constructor(db, schema, tenantCredentials, providers) {
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sources":["../../../../../packages/engine-tenant-api/src/migrations/runner.ts"],"sourcesContent":["import { Connection, createDatabaseIfNotExists, DatabaseConfig, EventManager } from '@contember/database'\nimport { TenantMigrationArgs } from './types'\nimport { MigrationsRunner as DbMigrationsRunner, SnapshotMigrationResolver } from '@contember/database-migrations'\nimport _20180802174310init from './2018-08-02-174310-init'\nimport _20180903140621identityproject from './2018-09-03-140621-identity-project'\nimport _20181026165450setupapikey from './2018-10-26-165450-setup-api-key'\nimport _20181026175155variables from './2018-10-26-175155-variables'\nimport _20190218110949projectslug from './2019-02-18-110949-project-slug'\nimport _20190218160155sessionexpiration from './2019-02-18-160155-session-expiration'\nimport _20190503163729apikeydisabledat from './2019-05-03-163729-api-key-disabled-at'\nimport _20190814153300projectslugunique from './2019-08-14-153300-project-slug-unique'\nimport _20190906111000membership from './2019-09-06-111000-membership'\nimport _20190906111001dropoldmember from './2019-09-06-111001-drop-old-member'\nimport _20200129idenitynote from './2020-01-29-idenity-note'\nimport _20200417fixpersonindex from './2020-04-17-fix-person-index'\nimport _20200501170000apikeyindex from './2020-05-01-170000-api-key-index'\nimport _20200608134000tenantcredentials from './2020-06-08-134000-tenant-credentials'\nimport _20200807110000personotp from './2020-08-07-110000-person-otp'\nimport _20200817162200mailtemplates from './2020-08-17-162200-mail-templates'\nimport _20200821143400personpasswordreset from './2020-08-21-143400-person-password-reset'\nimport _20200907094200identityprovider from './2020-09-07-094200-identity-provider'\nimport _20210328134000timestamp from './2021-03-28-134000-timestamp'\nimport _20210726105000projectconfig from './2021-07-26-105000-project-config'\nimport _20210726132000projectsecrets from './2021-07-26-132000-project-secrets'\nimport _20210727174000projectaliasindex from './2021-07-27-174000-project-alias-index'\nimport _20211124130000personpasswordnull from './2021-11-24-130000-person-password-null'\nimport _20211124161500mailtemplateprojectnull from './2021-11-24-161500-mail-template-project-null'\nimport _20220104144000personuniqueidentity from './2022-01-04-144000-person-unique-identity'\nimport _20220209111800fixcrypted from './2022-02-09-111800-fix-crypted'\nimport _20220211153000idpautosignup from './2022-02-11-153000-idp-auto-sign-up'\nimport _20220629105000personidp from './2022-06-29-105000-person-idp'\nimport _20220707135000personemailoptuniq from './2022-07-07-135000-person-email-opt-uniq'\nimport _20220707141000persondisplayname from './2022-07-07-141000-person-display-name'\nimport _20220714145000personloginoptions from './2022-07-14-145000-person-login-options'\nimport _20221108projectupdatenotification from './2022-11-08-project-update-notification'\nimport _20230120135500personemailnormalize from './2023-01-20-135500-person-email-normalize'\nimport _20230603104000persondisabled from './2023-06-03-104000-person-disabled'\nimport _20230901165000idpreturnconfig from './2023-09-01-165000-idp-return-config'\nimport _20240620140000mailreply from './2024-06-20-140000-mail-reply'\n\nimport snapshot from './snapshot'\nimport { computeTokenHash, Providers } from '../model'\nimport { Logger } from '@contember/logger'\n\nexport interface TenantCredentials {\n\tloginToken?: string\n\trootEmail?: string\n\trootToken?: string\n\trootTokenHash?: string\n\trootPassword?: string\n}\n\nconst migrations = {\n\t'2018-08-02-174310-init': _20180802174310init,\n\t'2018-09-03-140621-identity-project': _20180903140621identityproject,\n\t'2018-10-26-165450-setup-api-key': _20181026165450setupapikey,\n\t'2018-10-26-175155-variables': _20181026175155variables,\n\t'2019-02-18-110949-project-slug': _20190218110949projectslug,\n\t'2019-02-18-160155-session-expiration': _20190218160155sessionexpiration,\n\t'2019-05-03-163729-api-key-disabled-at': _20190503163729apikeydisabledat,\n\t'2019-08-14-153300-project-slug-unique': _20190814153300projectslugunique,\n\t'2019-09-06-111000-membership': _20190906111000membership,\n\t'2019-09-06-111001-drop-old-member': _20190906111001dropoldmember,\n\t'2020-01-29-idenity-note': _20200129idenitynote,\n\t'2020-04-17-fix-person-index': _20200417fixpersonindex,\n\t'2020-05-01-170000-api-key-index': _20200501170000apikeyindex,\n\t'2020-06-08-134000-tenant-credentials': _20200608134000tenantcredentials,\n\t'2020-08-07-110000-person-otp': _20200807110000personotp,\n\t'2020-08-17-162200-mail-templates': _20200817162200mailtemplates,\n\t'2020-08-21-143400-person-password-reset': _20200821143400personpasswordreset,\n\t'2020-09-07-094200-identity-provider': _20200907094200identityprovider,\n\t'2021-03-28-134000-timestamp': _20210328134000timestamp,\n\t'2021-07-26-105000-project-config': _20210726105000projectconfig,\n\t'2021-07-26-132000-project-secrets': _20210726132000projectsecrets,\n\t'2021-07-27-174000-project-alias-index': _20210727174000projectaliasindex,\n\t'2021-11-24-130000-person-password-null': _20211124130000personpasswordnull,\n\t'2021-11-24-161500-mail-template-project-null': _20211124161500mailtemplateprojectnull,\n\t'2022-01-04-144000-person-unique-identity': _20220104144000personuniqueidentity,\n\t'2022-02-09-111800-fix-crypted': _20220209111800fixcrypted,\n\t'2022-02-11-153000-idp-auto-sign-up': _20220211153000idpautosignup,\n\t'2022-06-29-105000-person-idp': _20220629105000personidp,\n\t'2022-07-07-135000-person-email-opt-uniq': _20220707135000personemailoptuniq,\n\t'2022-07-07-141000-person-display-name': _20220707141000persondisplayname,\n\t'2022-07-14-145000-person-login-options': _20220714145000personloginoptions,\n\t'2022-11-08-project-update-notification': _20221108projectupdatenotification,\n\t'2023-01-20-135500-person-email-normalize': _20230120135500personemailnormalize,\n\t'2023-06-03-104000-person-disabled': _20230603104000persondisabled,\n\t'2023-09-01-165000-idp-return-config': _20230901165000idpreturnconfig,\n\t'2024-06-20-140000-mail-reply': _20240620140000mailreply,\n}\n\nexport class TenantMigrationsRunner {\n\tconstructor(\n\t\tprivate readonly db: DatabaseConfig,\n\t\tprivate readonly schema: string,\n\t\tprivate readonly tenantCredentials: TenantCredentials,\n\t\tprivate readonly providers: Pick<Providers, 'bcrypt' | 'uuid'>,\n\t) {\n\t}\n\n\tpublic async run(logger: Logger): Promise<{ name: string }[]> {\n\t\tawait createDatabaseIfNotExists(this.db, message => typeof message === 'string' ? logger.warn(message) : logger.error(message))\n\t\tconst connection = Connection.createSingle(this.db, err => logger.error(err))\n\t\tconst result = await connection.scope(async connection => {\n\t\t\tconst migrationsResolver = new SnapshotMigrationResolver(snapshot, migrations)\n\n\t\t\tconst innerRunner = new DbMigrationsRunner<TenantMigrationArgs>(connection, this.schema, migrationsResolver)\n\t\t\treturn await innerRunner.migrate(message => logger.warn(message), {\n\t\t\t\tgetCredentials: async () => ({\n\t\t\t\t\tloginTokenHash: this.tenantCredentials.loginToken ? computeTokenHash(this.tenantCredentials.loginToken) : undefined,\n\t\t\t\t\trootTokenHash: this.tenantCredentials.rootTokenHash\n\t\t\t\t\t\t?? (this.tenantCredentials.rootToken ? computeTokenHash(this.tenantCredentials.rootToken) : undefined),\n\t\t\t\t\trootEmail: this.tenantCredentials.rootEmail,\n\t\t\t\t\trootPasswordBcrypted: this.tenantCredentials.rootPassword ? await this.providers.bcrypt(this.tenantCredentials.rootPassword) : undefined,\n\t\t\t\t}),\n\t\t\t\tproviders: this.providers,\n\t\t\t})\n\t\t})\n\t\tawait connection.end()\n\t\treturn result\n\t}\n}\n"],"names":["connection","DbMigrationsRunner"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDA,MAAM,aAAa;AAAA,EAClB,0BAA0B;AAAA,EAC1B,sCAAsC;AAAA,EACtC,mCAAmC;AAAA,EACnC,+BAA+B;AAAA,EAC/B,kCAAkC;AAAA,EAClC,wCAAwC;AAAA,EACxC,yCAAyC;AAAA,EACzC,yCAAyC;AAAA,EACzC,gCAAgC;AAAA,EAChC,qCAAqC;AAAA,EACrC,2BAA2B;AAAA,EAC3B,+BAA+B;AAAA,EAC/B,mCAAmC;AAAA,EACnC,wCAAwC;AAAA,EACxC,gCAAgC;AAAA,EAChC,oCAAoC;AAAA,EACpC,2CAA2C;AAAA,EAC3C,uCAAuC;AAAA,EACvC,+BAA+B;AAAA,EAC/B,oCAAoC;AAAA,EACpC,qCAAqC;AAAA,EACrC,yCAAyC;AAAA,EACzC,0CAA0C;AAAA,EAC1C,gDAAgD;AAAA,EAChD,4CAA4C;AAAA,EAC5C,iCAAiC;AAAA,EACjC,sCAAsC;AAAA,EACtC,gCAAgC;AAAA,EAChC,2CAA2C;AAAA,EAC3C,yCAAyC;AAAA,EACzC,0CAA0C;AAAA,EAC1C,0CAA0C;AAAA,EAC1C,4CAA4C;AAAA,EAC5C,qCAAqC;AAAA,EACrC,uCAAuC;AAAA,EACvC,gCAAgC;AACjC;AAEO,MAAM,uBAAuB;AAAA,EACnC,YACkB,IACA,QACA,mBACA,WAChB;AAJgB,SAAA,KAAA;AACA,SAAA,SAAA;AACA,SAAA,oBAAA;AACA,SAAA,YAAA;AAAA,EAElB;AAAA,EAEA,MAAa,IAAI,QAA6C;AAC7D,UAAM,0BAA0B,KAAK,IAAI,CAAA,YAAW,OAAO,YAAY,WAAW,OAAO,KAAK,OAAO,IAAI,OAAO,MAAM,OAAO,CAAC;AACxH,UAAA,aAAa,WAAW,aAAa,KAAK,IAAI,CAAO,QAAA,OAAO,MAAM,GAAG,CAAC;AAC5E,UAAM,SAAS,MAAM,WAAW,MAAM,OAAMA,gBAAc;AACzD,YAAM,qBAAqB,IAAI,0BAA0B,UAAU,UAAU;AAE7E,YAAM,cAAc,IAAIC,iBAAwCD,aAAY,KAAK,QAAQ,kBAAkB;AAC3G,aAAO,MAAM,YAAY,QAAQ,aAAW,OAAO,KAAK,OAAO,GAAG;AAAA,QACjE,gBAAgB,aAAa;AAAA,UAC5B,gBAAgB,KAAK,kBAAkB,aAAa,iBAAiB,KAAK,kBAAkB,UAAU,IAAI;AAAA,UAC1G,eAAe,KAAK,kBAAkB,kBACjC,KAAK,kBAAkB,YAAY,iBAAiB,KAAK,kBAAkB,SAAS,IAAI;AAAA,UAC7F,WAAW,KAAK,kBAAkB;AAAA,UAClC,sBAAsB,KAAK,kBAAkB,eAAe,MAAM,KAAK,UAAU,OAAO,KAAK,kBAAkB,YAAY,IAAI;AAAA,QAAA;AAAA,QAEhI,WAAW,KAAK;AAAA,MAAA,CAChB;AAAA,IAAA,CACD;AACD,UAAM,WAAW;AACV,WAAA;AAAA,EACR;AACD;"}
1
+ {"version":3,"file":"runner.js","sources":["../../../../../packages/engine-tenant-api/src/migrations/runner.ts"],"sourcesContent":["import { Connection, createDatabaseIfNotExists, DatabaseConfig, EventManager } from '@contember/database'\nimport { TenantMigrationArgs } from './types'\nimport { MigrationsRunner as DbMigrationsRunner, SnapshotMigrationResolver } from '@contember/database-migrations'\nimport _20180802174310init from './2018-08-02-174310-init'\nimport _20180903140621identityproject from './2018-09-03-140621-identity-project'\nimport _20181026165450setupapikey from './2018-10-26-165450-setup-api-key'\nimport _20181026175155variables from './2018-10-26-175155-variables'\nimport _20190218110949projectslug from './2019-02-18-110949-project-slug'\nimport _20190218160155sessionexpiration from './2019-02-18-160155-session-expiration'\nimport _20190503163729apikeydisabledat from './2019-05-03-163729-api-key-disabled-at'\nimport _20190814153300projectslugunique from './2019-08-14-153300-project-slug-unique'\nimport _20190906111000membership from './2019-09-06-111000-membership'\nimport _20190906111001dropoldmember from './2019-09-06-111001-drop-old-member'\nimport _20200129idenitynote from './2020-01-29-idenity-note'\nimport _20200417fixpersonindex from './2020-04-17-fix-person-index'\nimport _20200501170000apikeyindex from './2020-05-01-170000-api-key-index'\nimport _20200608134000tenantcredentials from './2020-06-08-134000-tenant-credentials'\nimport _20200807110000personotp from './2020-08-07-110000-person-otp'\nimport _20200817162200mailtemplates from './2020-08-17-162200-mail-templates'\nimport _20200821143400personpasswordreset from './2020-08-21-143400-person-password-reset'\nimport _20200907094200identityprovider from './2020-09-07-094200-identity-provider'\nimport _20210328134000timestamp from './2021-03-28-134000-timestamp'\nimport _20210726105000projectconfig from './2021-07-26-105000-project-config'\nimport _20210726132000projectsecrets from './2021-07-26-132000-project-secrets'\nimport _20210727174000projectaliasindex from './2021-07-27-174000-project-alias-index'\nimport _20211124130000personpasswordnull from './2021-11-24-130000-person-password-null'\nimport _20211124161500mailtemplateprojectnull from './2021-11-24-161500-mail-template-project-null'\nimport _20220104144000personuniqueidentity from './2022-01-04-144000-person-unique-identity'\nimport _20220209111800fixcrypted from './2022-02-09-111800-fix-crypted'\nimport _20220211153000idpautosignup from './2022-02-11-153000-idp-auto-sign-up'\nimport _20220629105000personidp from './2022-06-29-105000-person-idp'\nimport _20220707135000personemailoptuniq from './2022-07-07-135000-person-email-opt-uniq'\nimport _20220707141000persondisplayname from './2022-07-07-141000-person-display-name'\nimport _20220714145000personloginoptions from './2022-07-14-145000-person-login-options'\nimport _20221108projectupdatenotification from './2022-11-08-project-update-notification'\nimport _20230120135500personemailnormalize from './2023-01-20-135500-person-email-normalize'\nimport _20230603104000persondisabled from './2023-06-03-104000-person-disabled'\nimport _20230901165000idpreturnconfig from './2023-09-01-165000-idp-return-config'\nimport _20240620140000mailreply from './2024-06-20-140000-mail-reply'\nimport _20240826120000passwordless from './2024-08-26-120000-passwordless'\n\nimport snapshot from './snapshot'\nimport { computeTokenHash, Providers } from '../model'\nimport { Logger } from '@contember/logger'\n\nexport interface TenantCredentials {\n\tloginToken?: string\n\trootEmail?: string\n\trootToken?: string\n\trootTokenHash?: string\n\trootPassword?: string\n}\n\nconst migrations = {\n\t'2018-08-02-174310-init': _20180802174310init,\n\t'2018-09-03-140621-identity-project': _20180903140621identityproject,\n\t'2018-10-26-165450-setup-api-key': _20181026165450setupapikey,\n\t'2018-10-26-175155-variables': _20181026175155variables,\n\t'2019-02-18-110949-project-slug': _20190218110949projectslug,\n\t'2019-02-18-160155-session-expiration': _20190218160155sessionexpiration,\n\t'2019-05-03-163729-api-key-disabled-at': _20190503163729apikeydisabledat,\n\t'2019-08-14-153300-project-slug-unique': _20190814153300projectslugunique,\n\t'2019-09-06-111000-membership': _20190906111000membership,\n\t'2019-09-06-111001-drop-old-member': _20190906111001dropoldmember,\n\t'2020-01-29-idenity-note': _20200129idenitynote,\n\t'2020-04-17-fix-person-index': _20200417fixpersonindex,\n\t'2020-05-01-170000-api-key-index': _20200501170000apikeyindex,\n\t'2020-06-08-134000-tenant-credentials': _20200608134000tenantcredentials,\n\t'2020-08-07-110000-person-otp': _20200807110000personotp,\n\t'2020-08-17-162200-mail-templates': _20200817162200mailtemplates,\n\t'2020-08-21-143400-person-password-reset': _20200821143400personpasswordreset,\n\t'2020-09-07-094200-identity-provider': _20200907094200identityprovider,\n\t'2021-03-28-134000-timestamp': _20210328134000timestamp,\n\t'2021-07-26-105000-project-config': _20210726105000projectconfig,\n\t'2021-07-26-132000-project-secrets': _20210726132000projectsecrets,\n\t'2021-07-27-174000-project-alias-index': _20210727174000projectaliasindex,\n\t'2021-11-24-130000-person-password-null': _20211124130000personpasswordnull,\n\t'2021-11-24-161500-mail-template-project-null': _20211124161500mailtemplateprojectnull,\n\t'2022-01-04-144000-person-unique-identity': _20220104144000personuniqueidentity,\n\t'2022-02-09-111800-fix-crypted': _20220209111800fixcrypted,\n\t'2022-02-11-153000-idp-auto-sign-up': _20220211153000idpautosignup,\n\t'2022-06-29-105000-person-idp': _20220629105000personidp,\n\t'2022-07-07-135000-person-email-opt-uniq': _20220707135000personemailoptuniq,\n\t'2022-07-07-141000-person-display-name': _20220707141000persondisplayname,\n\t'2022-07-14-145000-person-login-options': _20220714145000personloginoptions,\n\t'2022-11-08-project-update-notification': _20221108projectupdatenotification,\n\t'2023-01-20-135500-person-email-normalize': _20230120135500personemailnormalize,\n\t'2023-06-03-104000-person-disabled': _20230603104000persondisabled,\n\t'2023-09-01-165000-idp-return-config': _20230901165000idpreturnconfig,\n\t'2024-06-20-140000-mail-reply': _20240620140000mailreply,\n\t'2024-08-26-120000-passwordless': _20240826120000passwordless,\n}\n\nexport class TenantMigrationsRunner {\n\tconstructor(\n\t\tprivate readonly db: DatabaseConfig,\n\t\tprivate readonly schema: string,\n\t\tprivate readonly tenantCredentials: TenantCredentials,\n\t\tprivate readonly providers: Pick<Providers, 'bcrypt' | 'uuid'>,\n\t) {\n\t}\n\n\tpublic async run(logger: Logger): Promise<{ name: string }[]> {\n\t\tawait createDatabaseIfNotExists(this.db, message => typeof message === 'string' ? logger.warn(message) : logger.error(message))\n\t\tconst connection = Connection.createSingle(this.db, err => logger.error(err))\n\t\tconst result = await connection.scope(async connection => {\n\t\t\tconst migrationsResolver = new SnapshotMigrationResolver(snapshot, migrations)\n\n\t\t\tconst innerRunner = new DbMigrationsRunner<TenantMigrationArgs>(connection, this.schema, migrationsResolver)\n\t\t\treturn await innerRunner.migrate(message => logger.warn(message), {\n\t\t\t\tgetCredentials: async () => ({\n\t\t\t\t\tloginTokenHash: this.tenantCredentials.loginToken ? computeTokenHash(this.tenantCredentials.loginToken) : undefined,\n\t\t\t\t\trootTokenHash: this.tenantCredentials.rootTokenHash\n\t\t\t\t\t\t?? (this.tenantCredentials.rootToken ? computeTokenHash(this.tenantCredentials.rootToken) : undefined),\n\t\t\t\t\trootEmail: this.tenantCredentials.rootEmail,\n\t\t\t\t\trootPasswordBcrypted: this.tenantCredentials.rootPassword ? await this.providers.bcrypt(this.tenantCredentials.rootPassword) : undefined,\n\t\t\t\t}),\n\t\t\t\tproviders: this.providers,\n\t\t\t})\n\t\t})\n\t\tawait connection.end()\n\t\treturn result\n\t}\n}\n"],"names":["connection","DbMigrationsRunner"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDA,MAAM,aAAa;AAAA,EAClB,0BAA0B;AAAA,EAC1B,sCAAsC;AAAA,EACtC,mCAAmC;AAAA,EACnC,+BAA+B;AAAA,EAC/B,kCAAkC;AAAA,EAClC,wCAAwC;AAAA,EACxC,yCAAyC;AAAA,EACzC,yCAAyC;AAAA,EACzC,gCAAgC;AAAA,EAChC,qCAAqC;AAAA,EACrC,2BAA2B;AAAA,EAC3B,+BAA+B;AAAA,EAC/B,mCAAmC;AAAA,EACnC,wCAAwC;AAAA,EACxC,gCAAgC;AAAA,EAChC,oCAAoC;AAAA,EACpC,2CAA2C;AAAA,EAC3C,uCAAuC;AAAA,EACvC,+BAA+B;AAAA,EAC/B,oCAAoC;AAAA,EACpC,qCAAqC;AAAA,EACrC,yCAAyC;AAAA,EACzC,0CAA0C;AAAA,EAC1C,gDAAgD;AAAA,EAChD,4CAA4C;AAAA,EAC5C,iCAAiC;AAAA,EACjC,sCAAsC;AAAA,EACtC,gCAAgC;AAAA,EAChC,2CAA2C;AAAA,EAC3C,yCAAyC;AAAA,EACzC,0CAA0C;AAAA,EAC1C,0CAA0C;AAAA,EAC1C,4CAA4C;AAAA,EAC5C,qCAAqC;AAAA,EACrC,uCAAuC;AAAA,EACvC,gCAAgC;AAAA,EAChC,kCAAkC;AACnC;AAEO,MAAM,uBAAuB;AAAA,EACnC,YACkB,IACA,QACA,mBACA,WAChB;AAJgB,SAAA,KAAA;AACA,SAAA,SAAA;AACA,SAAA,oBAAA;AACA,SAAA,YAAA;AAAA,EAElB;AAAA,EAEA,MAAa,IAAI,QAA6C;AAC7D,UAAM,0BAA0B,KAAK,IAAI,CAAA,YAAW,OAAO,YAAY,WAAW,OAAO,KAAK,OAAO,IAAI,OAAO,MAAM,OAAO,CAAC;AACxH,UAAA,aAAa,WAAW,aAAa,KAAK,IAAI,CAAO,QAAA,OAAO,MAAM,GAAG,CAAC;AAC5E,UAAM,SAAS,MAAM,WAAW,MAAM,OAAMA,gBAAc;AACzD,YAAM,qBAAqB,IAAI,0BAA0B,UAAU,UAAU;AAE7E,YAAM,cAAc,IAAIC,iBAAwCD,aAAY,KAAK,QAAQ,kBAAkB;AAC3G,aAAO,MAAM,YAAY,QAAQ,aAAW,OAAO,KAAK,OAAO,GAAG;AAAA,QACjE,gBAAgB,aAAa;AAAA,UAC5B,gBAAgB,KAAK,kBAAkB,aAAa,iBAAiB,KAAK,kBAAkB,UAAU,IAAI;AAAA,UAC1G,eAAe,KAAK,kBAAkB,kBACjC,KAAK,kBAAkB,YAAY,iBAAiB,KAAK,kBAAkB,SAAS,IAAI;AAAA,UAC7F,WAAW,KAAK,kBAAkB;AAAA,UAClC,sBAAsB,KAAK,kBAAkB,eAAe,MAAM,KAAK,UAAU,OAAO,KAAK,kBAAkB,YAAY,IAAI;AAAA,QAAA;AAAA,QAEhI,WAAW,KAAK;AAAA,MAAA,CAChB;AAAA,IAAA,CACD;AACD,UAAM,WAAW;AACV,WAAA;AAAA,EACR;AACD;"}