@contember/engine-tenant-api 2.1.0-alpha.16 → 2.1.0-alpha.17

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 (740) hide show
  1. package/dist/development/index.cjs +5 -6
  2. package/dist/development/index.cjs.map +1 -1
  3. package/dist/development/index.js +2 -3
  4. package/dist/development/src/TenantContainer.cjs +4 -2
  5. package/dist/development/src/TenantContainer.cjs.map +1 -1
  6. package/dist/development/src/TenantContainer.js +4 -2
  7. package/dist/development/src/TenantContainer.js.map +1 -1
  8. package/dist/development/src/bridges/system/IdentityFetcher.cjs +1 -0
  9. package/dist/development/src/bridges/system/IdentityFetcher.cjs.map +1 -1
  10. package/dist/development/src/bridges/system/IdentityFetcher.js +1 -0
  11. package/dist/development/src/bridges/system/IdentityFetcher.js.map +1 -1
  12. package/dist/development/src/migrations/2025-04-16-180000-config-up.cjs +39 -0
  13. package/dist/development/src/migrations/2025-04-16-180000-config-up.cjs.map +1 -0
  14. package/dist/development/src/migrations/2025-04-16-180000-config-up.js +40 -0
  15. package/dist/development/src/migrations/2025-04-16-180000-config-up.js.map +1 -0
  16. package/dist/development/src/migrations/2025-04-17-160000-auth-log.cjs +45 -0
  17. package/dist/development/src/migrations/2025-04-17-160000-auth-log.cjs.map +1 -0
  18. package/dist/development/src/migrations/2025-04-17-160000-auth-log.js +46 -0
  19. package/dist/development/src/migrations/2025-04-17-160000-auth-log.js.map +1 -0
  20. package/dist/development/src/migrations/runner.cjs +9 -4
  21. package/dist/development/src/migrations/runner.cjs.map +1 -1
  22. package/dist/development/src/migrations/runner.js +7 -2
  23. package/dist/development/src/migrations/runner.js.map +1 -1
  24. package/dist/development/src/migrations/snapshot.cjs +56 -1
  25. package/dist/development/src/migrations/snapshot.cjs.map +1 -1
  26. package/dist/development/src/migrations/snapshot.js +56 -1
  27. package/dist/development/src/migrations/snapshot.js.map +1 -1
  28. package/dist/development/src/model/commands/apiKey/CreateApiKeyCommand.cjs +7 -7
  29. package/dist/development/src/model/commands/apiKey/CreateApiKeyCommand.cjs.map +1 -1
  30. package/dist/development/src/model/commands/apiKey/CreateApiKeyCommand.js +1 -1
  31. package/dist/development/src/model/commands/authLog/CreateAuthLogEntryCommand.cjs +27 -0
  32. package/dist/development/src/model/commands/authLog/CreateAuthLogEntryCommand.cjs.map +1 -0
  33. package/dist/development/src/model/commands/authLog/CreateAuthLogEntryCommand.js +27 -0
  34. package/dist/development/src/model/commands/authLog/CreateAuthLogEntryCommand.js.map +1 -0
  35. package/dist/development/src/model/commands/configuration/UpdateConfigurationCommand.cjs +15 -2
  36. package/dist/development/src/model/commands/configuration/UpdateConfigurationCommand.cjs.map +1 -1
  37. package/dist/development/src/model/commands/configuration/UpdateConfigurationCommand.js +15 -2
  38. package/dist/development/src/model/commands/configuration/UpdateConfigurationCommand.js.map +1 -1
  39. package/dist/development/src/model/commands/personToken/CreatePersonTokenCommand.cjs +4 -4
  40. package/dist/development/src/model/commands/personToken/CreatePersonTokenCommand.cjs.map +1 -1
  41. package/dist/development/src/model/commands/personToken/CreatePersonTokenCommand.js +1 -1
  42. package/dist/development/src/model/commands/personToken/ResetPasswordCommand.cjs +5 -5
  43. package/dist/development/src/model/commands/personToken/ResetPasswordCommand.cjs.map +1 -1
  44. package/dist/development/src/model/commands/personToken/ResetPasswordCommand.js +1 -1
  45. package/dist/development/src/model/queries/apiKey/ApiKeyQuery.cjs +4 -4
  46. package/dist/development/src/model/queries/apiKey/ApiKeyQuery.cjs.map +1 -1
  47. package/dist/development/src/model/queries/apiKey/ApiKeyQuery.js +1 -1
  48. package/dist/development/src/model/queries/authLog/NextLoginAttemptQuery.cjs +46 -0
  49. package/dist/development/src/model/queries/authLog/NextLoginAttemptQuery.cjs.map +1 -0
  50. package/dist/development/src/model/queries/authLog/NextLoginAttemptQuery.js +46 -0
  51. package/dist/development/src/model/queries/authLog/NextLoginAttemptQuery.js.map +1 -0
  52. package/dist/development/src/model/queries/configuration/ConfigurationQuery.cjs +18 -1
  53. package/dist/development/src/model/queries/configuration/ConfigurationQuery.cjs.map +1 -1
  54. package/dist/development/src/model/queries/configuration/ConfigurationQuery.js +18 -1
  55. package/dist/development/src/model/queries/configuration/ConfigurationQuery.js.map +1 -1
  56. package/dist/development/src/model/queries/personToken/PersonTokenQuery.cjs +3 -3
  57. package/dist/development/src/model/queries/personToken/PersonTokenQuery.cjs.map +1 -1
  58. package/dist/development/src/model/queries/personToken/PersonTokenQuery.js +1 -1
  59. package/dist/development/src/model/service/AuthLogService.cjs +34 -0
  60. package/dist/development/src/model/service/AuthLogService.cjs.map +1 -0
  61. package/dist/development/src/model/service/AuthLogService.js +34 -0
  62. package/dist/development/src/model/service/AuthLogService.js.map +1 -0
  63. package/dist/development/src/model/service/ConfigurationManager.cjs +0 -10
  64. package/dist/development/src/model/service/ConfigurationManager.cjs.map +1 -1
  65. package/dist/development/src/model/service/ConfigurationManager.js +0 -10
  66. package/dist/development/src/model/service/ConfigurationManager.js.map +1 -1
  67. package/dist/development/src/model/service/IDPSignInManager.cjs +37 -5
  68. package/dist/development/src/model/service/IDPSignInManager.cjs.map +1 -1
  69. package/dist/development/src/model/service/IDPSignInManager.js +37 -5
  70. package/dist/development/src/model/service/IDPSignInManager.js.map +1 -1
  71. package/dist/development/src/model/service/PasswordChangeManager.cjs +21 -12
  72. package/dist/development/src/model/service/PasswordChangeManager.cjs.map +1 -1
  73. package/dist/development/src/model/service/PasswordChangeManager.js +20 -11
  74. package/dist/development/src/model/service/PasswordChangeManager.js.map +1 -1
  75. package/dist/development/src/model/service/PasswordResetManager.cjs +40 -8
  76. package/dist/development/src/model/service/PasswordResetManager.cjs.map +1 -1
  77. package/dist/development/src/model/service/PasswordResetManager.js +40 -8
  78. package/dist/development/src/model/service/PasswordResetManager.js.map +1 -1
  79. package/dist/development/src/model/service/PasswordStrengthValidator.cjs +63 -0
  80. package/dist/development/src/model/service/PasswordStrengthValidator.cjs.map +1 -0
  81. package/dist/development/src/model/service/PasswordStrengthValidator.js +63 -0
  82. package/dist/development/src/model/service/PasswordStrengthValidator.js.map +1 -0
  83. package/dist/development/src/model/service/PasswordlessSignInManager.cjs +89 -24
  84. package/dist/development/src/model/service/PasswordlessSignInManager.cjs.map +1 -1
  85. package/dist/development/src/model/service/PasswordlessSignInManager.js +81 -16
  86. package/dist/development/src/model/service/PasswordlessSignInManager.js.map +1 -1
  87. package/dist/development/src/model/service/PersonAccessManager.cjs +7 -29
  88. package/dist/development/src/model/service/PersonAccessManager.cjs.map +1 -1
  89. package/dist/development/src/model/service/PersonAccessManager.js +7 -29
  90. package/dist/development/src/model/service/PersonAccessManager.js.map +1 -1
  91. package/dist/development/src/model/service/SignInManager.cjs +56 -31
  92. package/dist/development/src/model/service/SignInManager.cjs.map +1 -1
  93. package/dist/development/src/model/service/SignInManager.js +57 -32
  94. package/dist/development/src/model/service/SignInManager.js.map +1 -1
  95. package/dist/development/src/model/service/SignUpManager.cjs +13 -8
  96. package/dist/development/src/model/service/SignUpManager.cjs.map +1 -1
  97. package/dist/development/src/model/service/SignUpManager.js +11 -6
  98. package/dist/development/src/model/service/SignUpManager.js.map +1 -1
  99. package/dist/development/src/model/service/apiKey/ApiKeyManager.cjs +6 -1
  100. package/dist/development/src/model/service/apiKey/ApiKeyManager.cjs.map +1 -1
  101. package/dist/development/src/model/service/apiKey/ApiKeyManager.js +6 -1
  102. package/dist/development/src/model/service/apiKey/ApiKeyManager.js.map +1 -1
  103. package/dist/development/src/model/utils/Response.cjs +2 -1
  104. package/dist/development/src/model/utils/Response.cjs.map +1 -1
  105. package/dist/development/src/model/utils/Response.js +2 -1
  106. package/dist/development/src/model/utils/Response.js.map +1 -1
  107. package/dist/development/src/model/utils/blacklist.cjs +10006 -0
  108. package/dist/development/src/model/utils/blacklist.cjs.map +1 -0
  109. package/dist/development/src/model/utils/blacklist.js +10006 -0
  110. package/dist/development/src/model/utils/blacklist.js.map +1 -0
  111. package/dist/{production/src/model/utils/typeUtils.cjs → development/src/model/utils/hex.cjs} +1 -1
  112. package/dist/development/src/model/utils/hex.cjs.map +1 -0
  113. package/dist/development/src/model/utils/{typeUtils.js → hex.js} +1 -1
  114. package/dist/development/src/model/utils/hex.js.map +1 -0
  115. package/dist/development/src/model/utils/interval.cjs +8 -0
  116. package/dist/development/src/model/utils/interval.cjs.map +1 -0
  117. package/dist/development/src/model/utils/interval.js +8 -0
  118. package/dist/development/src/model/utils/interval.js.map +1 -0
  119. package/dist/development/src/model/utils/{tokenUtils.cjs → token.cjs} +3 -3
  120. package/dist/development/src/model/utils/token.cjs.map +1 -0
  121. package/dist/development/src/model/utils/{tokenUtils.js → token.js} +2 -2
  122. package/dist/development/src/model/utils/token.js.map +1 -0
  123. package/dist/development/src/resolvers/ResolverFactory.cjs +1 -0
  124. package/dist/development/src/resolvers/ResolverFactory.cjs.map +1 -1
  125. package/dist/development/src/resolvers/ResolverFactory.js +2 -1
  126. package/dist/development/src/resolvers/ResolverFactory.js.map +1 -1
  127. package/dist/development/src/resolvers/TenantResolverContextFactory.cjs +10 -2
  128. package/dist/development/src/resolvers/TenantResolverContextFactory.cjs.map +1 -1
  129. package/dist/development/src/resolvers/TenantResolverContextFactory.js +10 -2
  130. package/dist/development/src/resolvers/TenantResolverContextFactory.js.map +1 -1
  131. package/dist/development/src/resolvers/errorUtils.cjs +15 -4
  132. package/dist/development/src/resolvers/errorUtils.cjs.map +1 -1
  133. package/dist/development/src/resolvers/errorUtils.js +15 -4
  134. package/dist/development/src/resolvers/errorUtils.js.map +1 -1
  135. package/dist/development/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.cjs +4 -3
  136. package/dist/development/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.cjs.map +1 -1
  137. package/dist/development/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.js +2 -1
  138. package/dist/development/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.js.map +1 -1
  139. package/dist/development/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.cjs +1 -0
  140. package/dist/development/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.cjs.map +1 -1
  141. package/dist/development/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.js +1 -0
  142. package/dist/development/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.js.map +1 -1
  143. package/dist/development/src/resolvers/mutation/configuration/ConfigurationMutationResolver.cjs +1 -0
  144. package/dist/development/src/resolvers/mutation/configuration/ConfigurationMutationResolver.cjs.map +1 -1
  145. package/dist/development/src/resolvers/mutation/configuration/ConfigurationMutationResolver.js +1 -0
  146. package/dist/development/src/resolvers/mutation/configuration/ConfigurationMutationResolver.js.map +1 -1
  147. package/dist/development/src/resolvers/mutation/identity/GlobalRolesMutationResolver.cjs +1 -0
  148. package/dist/development/src/resolvers/mutation/identity/GlobalRolesMutationResolver.cjs.map +1 -1
  149. package/dist/development/src/resolvers/mutation/identity/GlobalRolesMutationResolver.js +1 -0
  150. package/dist/development/src/resolvers/mutation/identity/GlobalRolesMutationResolver.js.map +1 -1
  151. package/dist/development/src/resolvers/mutation/idp/AddIDPMutationResolver.cjs +1 -0
  152. package/dist/development/src/resolvers/mutation/idp/AddIDPMutationResolver.cjs.map +1 -1
  153. package/dist/development/src/resolvers/mutation/idp/AddIDPMutationResolver.js +1 -0
  154. package/dist/development/src/resolvers/mutation/idp/AddIDPMutationResolver.js.map +1 -1
  155. package/dist/development/src/resolvers/mutation/idp/DisableIDPMutationResolver.cjs +1 -0
  156. package/dist/development/src/resolvers/mutation/idp/DisableIDPMutationResolver.cjs.map +1 -1
  157. package/dist/development/src/resolvers/mutation/idp/DisableIDPMutationResolver.js +1 -0
  158. package/dist/development/src/resolvers/mutation/idp/DisableIDPMutationResolver.js.map +1 -1
  159. package/dist/development/src/resolvers/mutation/idp/EnableIDPMutationResolver.cjs +1 -0
  160. package/dist/development/src/resolvers/mutation/idp/EnableIDPMutationResolver.cjs.map +1 -1
  161. package/dist/development/src/resolvers/mutation/idp/EnableIDPMutationResolver.js +1 -0
  162. package/dist/development/src/resolvers/mutation/idp/EnableIDPMutationResolver.js.map +1 -1
  163. package/dist/development/src/resolvers/mutation/idp/UpdateIDPMutationResolver.cjs +1 -0
  164. package/dist/development/src/resolvers/mutation/idp/UpdateIDPMutationResolver.cjs.map +1 -1
  165. package/dist/development/src/resolvers/mutation/idp/UpdateIDPMutationResolver.js +1 -0
  166. package/dist/development/src/resolvers/mutation/idp/UpdateIDPMutationResolver.js.map +1 -1
  167. package/dist/development/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.cjs +1 -0
  168. package/dist/development/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.cjs.map +1 -1
  169. package/dist/development/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.js +1 -0
  170. package/dist/development/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.js.map +1 -1
  171. package/dist/development/src/resolvers/mutation/person/ChangePasswordMutationResolver.cjs +17 -6
  172. package/dist/development/src/resolvers/mutation/person/ChangePasswordMutationResolver.cjs.map +1 -1
  173. package/dist/development/src/resolvers/mutation/person/ChangePasswordMutationResolver.js +17 -6
  174. package/dist/development/src/resolvers/mutation/person/ChangePasswordMutationResolver.js.map +1 -1
  175. package/dist/development/src/resolvers/mutation/person/ChangeProfileMutationResolver.cjs +14 -0
  176. package/dist/development/src/resolvers/mutation/person/ChangeProfileMutationResolver.cjs.map +1 -1
  177. package/dist/development/src/resolvers/mutation/person/ChangeProfileMutationResolver.js +14 -0
  178. package/dist/development/src/resolvers/mutation/person/ChangeProfileMutationResolver.js.map +1 -1
  179. package/dist/development/src/resolvers/mutation/person/DisablePersonMutationResolver.cjs +7 -1
  180. package/dist/development/src/resolvers/mutation/person/DisablePersonMutationResolver.cjs.map +1 -1
  181. package/dist/development/src/resolvers/mutation/person/DisablePersonMutationResolver.js +7 -1
  182. package/dist/development/src/resolvers/mutation/person/DisablePersonMutationResolver.js.map +1 -1
  183. package/dist/development/src/resolvers/mutation/person/IDPMutationResolver.cjs +5 -0
  184. package/dist/development/src/resolvers/mutation/person/IDPMutationResolver.cjs.map +1 -1
  185. package/dist/development/src/resolvers/mutation/person/IDPMutationResolver.js +5 -0
  186. package/dist/development/src/resolvers/mutation/person/IDPMutationResolver.js.map +1 -1
  187. package/dist/development/src/resolvers/mutation/person/InviteMutationResolver.cjs +3 -2
  188. package/dist/development/src/resolvers/mutation/person/InviteMutationResolver.cjs.map +1 -1
  189. package/dist/development/src/resolvers/mutation/person/InviteMutationResolver.js +2 -1
  190. package/dist/development/src/resolvers/mutation/person/InviteMutationResolver.js.map +1 -1
  191. package/dist/development/src/resolvers/mutation/person/OtpMutationResolver.cjs +26 -1
  192. package/dist/development/src/resolvers/mutation/person/OtpMutationResolver.cjs.map +1 -1
  193. package/dist/development/src/resolvers/mutation/person/OtpMutationResolver.js +26 -1
  194. package/dist/development/src/resolvers/mutation/person/OtpMutationResolver.js.map +1 -1
  195. package/dist/development/src/resolvers/mutation/person/PasswordlessMutationResolver.cjs +20 -0
  196. package/dist/development/src/resolvers/mutation/person/PasswordlessMutationResolver.cjs.map +1 -1
  197. package/dist/development/src/resolvers/mutation/person/PasswordlessMutationResolver.js +20 -0
  198. package/dist/development/src/resolvers/mutation/person/PasswordlessMutationResolver.js.map +1 -1
  199. package/dist/development/src/resolvers/mutation/person/ResetPasswordMutationResolver.cjs +25 -2
  200. package/dist/development/src/resolvers/mutation/person/ResetPasswordMutationResolver.cjs.map +1 -1
  201. package/dist/development/src/resolvers/mutation/person/ResetPasswordMutationResolver.js +25 -2
  202. package/dist/development/src/resolvers/mutation/person/ResetPasswordMutationResolver.js.map +1 -1
  203. package/dist/development/src/resolvers/mutation/person/SignInMutationResolver.cjs +22 -0
  204. package/dist/development/src/resolvers/mutation/person/SignInMutationResolver.cjs.map +1 -1
  205. package/dist/development/src/resolvers/mutation/person/SignInMutationResolver.js +22 -0
  206. package/dist/development/src/resolvers/mutation/person/SignInMutationResolver.js.map +1 -1
  207. package/dist/development/src/resolvers/mutation/person/SignOutMutationResolver.cjs +1 -0
  208. package/dist/development/src/resolvers/mutation/person/SignOutMutationResolver.cjs.map +1 -1
  209. package/dist/development/src/resolvers/mutation/person/SignOutMutationResolver.js +1 -0
  210. package/dist/development/src/resolvers/mutation/person/SignOutMutationResolver.js.map +1 -1
  211. package/dist/development/src/resolvers/mutation/person/SignUpMutationResolver.cjs +2 -1
  212. package/dist/development/src/resolvers/mutation/person/SignUpMutationResolver.cjs.map +1 -1
  213. package/dist/development/src/resolvers/mutation/person/SignUpMutationResolver.js +2 -1
  214. package/dist/development/src/resolvers/mutation/person/SignUpMutationResolver.js.map +1 -1
  215. package/dist/development/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.cjs +3 -1
  216. package/dist/development/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.cjs.map +1 -1
  217. package/dist/development/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.js +3 -1
  218. package/dist/development/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.js.map +1 -1
  219. package/dist/development/src/resolvers/mutation/project/CreateProjectMutationResolver.cjs +3 -2
  220. package/dist/development/src/resolvers/mutation/project/CreateProjectMutationResolver.cjs.map +1 -1
  221. package/dist/development/src/resolvers/mutation/project/CreateProjectMutationResolver.js +2 -1
  222. package/dist/development/src/resolvers/mutation/project/CreateProjectMutationResolver.js.map +1 -1
  223. package/dist/development/src/resolvers/mutation/project/SetProjectSecretMutationResolver.cjs +1 -0
  224. package/dist/development/src/resolvers/mutation/project/SetProjectSecretMutationResolver.cjs.map +1 -1
  225. package/dist/development/src/resolvers/mutation/project/SetProjectSecretMutationResolver.js +1 -0
  226. package/dist/development/src/resolvers/mutation/project/SetProjectSecretMutationResolver.js.map +1 -1
  227. package/dist/development/src/resolvers/mutation/project/UpdateProjectMutationResolver.cjs +1 -0
  228. package/dist/development/src/resolvers/mutation/project/UpdateProjectMutationResolver.cjs.map +1 -1
  229. package/dist/development/src/resolvers/mutation/project/UpdateProjectMutationResolver.js +1 -0
  230. package/dist/development/src/resolvers/mutation/project/UpdateProjectMutationResolver.js.map +1 -1
  231. package/dist/development/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.cjs +1 -0
  232. package/dist/development/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.cjs.map +1 -1
  233. package/dist/development/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.js +1 -0
  234. package/dist/development/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.js.map +1 -1
  235. package/dist/development/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.cjs +1 -0
  236. package/dist/development/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.cjs.map +1 -1
  237. package/dist/development/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.js +1 -0
  238. package/dist/development/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.js.map +1 -1
  239. package/dist/development/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.cjs +1 -0
  240. package/dist/development/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.cjs.map +1 -1
  241. package/dist/development/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.js +1 -0
  242. package/dist/development/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.js.map +1 -1
  243. package/dist/development/src/resolvers/query/ConfigurationQueryResolver.cjs +3 -1
  244. package/dist/development/src/resolvers/query/ConfigurationQueryResolver.cjs.map +1 -1
  245. package/dist/development/src/resolvers/query/ConfigurationQueryResolver.js +3 -1
  246. package/dist/development/src/resolvers/query/ConfigurationQueryResolver.js.map +1 -1
  247. package/dist/development/src/resolvers/query/IDPQueryResolver.cjs +1 -0
  248. package/dist/development/src/resolvers/query/IDPQueryResolver.cjs.map +1 -1
  249. package/dist/development/src/resolvers/query/IDPQueryResolver.js +1 -0
  250. package/dist/development/src/resolvers/query/IDPQueryResolver.js.map +1 -1
  251. package/dist/development/src/resolvers/query/MailTemplateQueryResolver.cjs +1 -0
  252. package/dist/development/src/resolvers/query/MailTemplateQueryResolver.cjs.map +1 -1
  253. package/dist/development/src/resolvers/query/MailTemplateQueryResolver.js +1 -0
  254. package/dist/development/src/resolvers/query/MailTemplateQueryResolver.js.map +1 -1
  255. package/dist/development/src/resolvers/query/PersonQueryResolver.cjs +1 -0
  256. package/dist/development/src/resolvers/query/PersonQueryResolver.cjs.map +1 -1
  257. package/dist/development/src/resolvers/query/PersonQueryResolver.js +1 -0
  258. package/dist/development/src/resolvers/query/PersonQueryResolver.js.map +1 -1
  259. package/dist/development/src/resolvers/query/ProjectMembersQueryResolver.cjs +1 -0
  260. package/dist/development/src/resolvers/query/ProjectMembersQueryResolver.cjs.map +1 -1
  261. package/dist/development/src/resolvers/query/ProjectMembersQueryResolver.js +1 -0
  262. package/dist/development/src/resolvers/query/ProjectMembersQueryResolver.js.map +1 -1
  263. package/dist/development/src/resolvers/query/ProjectQueryResolver.cjs +1 -0
  264. package/dist/development/src/resolvers/query/ProjectQueryResolver.cjs.map +1 -1
  265. package/dist/development/src/resolvers/query/ProjectQueryResolver.js +1 -0
  266. package/dist/development/src/resolvers/query/ProjectQueryResolver.js.map +1 -1
  267. package/dist/development/src/resolvers/responseHelpers/SignInResponseFactory.cjs +1 -0
  268. package/dist/development/src/resolvers/responseHelpers/SignInResponseFactory.cjs.map +1 -1
  269. package/dist/development/src/resolvers/responseHelpers/SignInResponseFactory.js +1 -0
  270. package/dist/development/src/resolvers/responseHelpers/SignInResponseFactory.js.map +1 -1
  271. package/dist/development/src/resolvers/types/IdentityTypeResolver.cjs +1 -0
  272. package/dist/development/src/resolvers/types/IdentityTypeResolver.cjs.map +1 -1
  273. package/dist/development/src/resolvers/types/IdentityTypeResolver.js +1 -0
  274. package/dist/development/src/resolvers/types/IdentityTypeResolver.js.map +1 -1
  275. package/dist/development/src/resolvers/types/ProjectTypeResolver.cjs +1 -0
  276. package/dist/development/src/resolvers/types/ProjectTypeResolver.cjs.map +1 -1
  277. package/dist/development/src/resolvers/types/ProjectTypeResolver.js +1 -0
  278. package/dist/development/src/resolvers/types/ProjectTypeResolver.js.map +1 -1
  279. package/dist/development/src/schema/tenant.graphql.cjs +64 -2
  280. package/dist/development/src/schema/tenant.graphql.cjs.map +1 -1
  281. package/dist/development/src/schema/tenant.graphql.js +64 -2
  282. package/dist/development/src/schema/tenant.graphql.js.map +1 -1
  283. package/dist/production/index.cjs +5 -6
  284. package/dist/production/index.cjs.map +1 -1
  285. package/dist/production/index.js +2 -3
  286. package/dist/production/src/TenantContainer.cjs +4 -2
  287. package/dist/production/src/TenantContainer.cjs.map +1 -1
  288. package/dist/production/src/TenantContainer.js +4 -2
  289. package/dist/production/src/TenantContainer.js.map +1 -1
  290. package/dist/production/src/bridges/system/IdentityFetcher.cjs +1 -0
  291. package/dist/production/src/bridges/system/IdentityFetcher.cjs.map +1 -1
  292. package/dist/production/src/bridges/system/IdentityFetcher.js +1 -0
  293. package/dist/production/src/bridges/system/IdentityFetcher.js.map +1 -1
  294. package/dist/production/src/migrations/2025-04-16-180000-config-up.cjs +39 -0
  295. package/dist/production/src/migrations/2025-04-16-180000-config-up.cjs.map +1 -0
  296. package/dist/production/src/migrations/2025-04-16-180000-config-up.js +40 -0
  297. package/dist/production/src/migrations/2025-04-16-180000-config-up.js.map +1 -0
  298. package/dist/production/src/migrations/2025-04-17-160000-auth-log.cjs +45 -0
  299. package/dist/production/src/migrations/2025-04-17-160000-auth-log.cjs.map +1 -0
  300. package/dist/production/src/migrations/2025-04-17-160000-auth-log.js +46 -0
  301. package/dist/production/src/migrations/2025-04-17-160000-auth-log.js.map +1 -0
  302. package/dist/production/src/migrations/runner.cjs +9 -4
  303. package/dist/production/src/migrations/runner.cjs.map +1 -1
  304. package/dist/production/src/migrations/runner.js +7 -2
  305. package/dist/production/src/migrations/runner.js.map +1 -1
  306. package/dist/production/src/migrations/snapshot.cjs +56 -1
  307. package/dist/production/src/migrations/snapshot.cjs.map +1 -1
  308. package/dist/production/src/migrations/snapshot.js +56 -1
  309. package/dist/production/src/migrations/snapshot.js.map +1 -1
  310. package/dist/production/src/model/commands/apiKey/CreateApiKeyCommand.cjs +7 -7
  311. package/dist/production/src/model/commands/apiKey/CreateApiKeyCommand.cjs.map +1 -1
  312. package/dist/production/src/model/commands/apiKey/CreateApiKeyCommand.js +1 -1
  313. package/dist/production/src/model/commands/authLog/CreateAuthLogEntryCommand.cjs +27 -0
  314. package/dist/production/src/model/commands/authLog/CreateAuthLogEntryCommand.cjs.map +1 -0
  315. package/dist/production/src/model/commands/authLog/CreateAuthLogEntryCommand.js +27 -0
  316. package/dist/production/src/model/commands/authLog/CreateAuthLogEntryCommand.js.map +1 -0
  317. package/dist/production/src/model/commands/configuration/UpdateConfigurationCommand.cjs +15 -2
  318. package/dist/production/src/model/commands/configuration/UpdateConfigurationCommand.cjs.map +1 -1
  319. package/dist/production/src/model/commands/configuration/UpdateConfigurationCommand.js +15 -2
  320. package/dist/production/src/model/commands/configuration/UpdateConfigurationCommand.js.map +1 -1
  321. package/dist/production/src/model/commands/personToken/CreatePersonTokenCommand.cjs +4 -4
  322. package/dist/production/src/model/commands/personToken/CreatePersonTokenCommand.cjs.map +1 -1
  323. package/dist/production/src/model/commands/personToken/CreatePersonTokenCommand.js +1 -1
  324. package/dist/production/src/model/commands/personToken/ResetPasswordCommand.cjs +5 -5
  325. package/dist/production/src/model/commands/personToken/ResetPasswordCommand.cjs.map +1 -1
  326. package/dist/production/src/model/commands/personToken/ResetPasswordCommand.js +1 -1
  327. package/dist/production/src/model/queries/apiKey/ApiKeyQuery.cjs +4 -4
  328. package/dist/production/src/model/queries/apiKey/ApiKeyQuery.cjs.map +1 -1
  329. package/dist/production/src/model/queries/apiKey/ApiKeyQuery.js +1 -1
  330. package/dist/production/src/model/queries/authLog/NextLoginAttemptQuery.cjs +46 -0
  331. package/dist/production/src/model/queries/authLog/NextLoginAttemptQuery.cjs.map +1 -0
  332. package/dist/production/src/model/queries/authLog/NextLoginAttemptQuery.js +46 -0
  333. package/dist/production/src/model/queries/authLog/NextLoginAttemptQuery.js.map +1 -0
  334. package/dist/production/src/model/queries/configuration/ConfigurationQuery.cjs +18 -1
  335. package/dist/production/src/model/queries/configuration/ConfigurationQuery.cjs.map +1 -1
  336. package/dist/production/src/model/queries/configuration/ConfigurationQuery.js +18 -1
  337. package/dist/production/src/model/queries/configuration/ConfigurationQuery.js.map +1 -1
  338. package/dist/production/src/model/queries/personToken/PersonTokenQuery.cjs +3 -3
  339. package/dist/production/src/model/queries/personToken/PersonTokenQuery.cjs.map +1 -1
  340. package/dist/production/src/model/queries/personToken/PersonTokenQuery.js +1 -1
  341. package/dist/production/src/model/service/AuthLogService.cjs +34 -0
  342. package/dist/production/src/model/service/AuthLogService.cjs.map +1 -0
  343. package/dist/production/src/model/service/AuthLogService.js +34 -0
  344. package/dist/production/src/model/service/AuthLogService.js.map +1 -0
  345. package/dist/production/src/model/service/ConfigurationManager.cjs +0 -10
  346. package/dist/production/src/model/service/ConfigurationManager.cjs.map +1 -1
  347. package/dist/production/src/model/service/ConfigurationManager.js +0 -10
  348. package/dist/production/src/model/service/ConfigurationManager.js.map +1 -1
  349. package/dist/production/src/model/service/IDPSignInManager.cjs +37 -5
  350. package/dist/production/src/model/service/IDPSignInManager.cjs.map +1 -1
  351. package/dist/production/src/model/service/IDPSignInManager.js +37 -5
  352. package/dist/production/src/model/service/IDPSignInManager.js.map +1 -1
  353. package/dist/production/src/model/service/PasswordChangeManager.cjs +21 -12
  354. package/dist/production/src/model/service/PasswordChangeManager.cjs.map +1 -1
  355. package/dist/production/src/model/service/PasswordChangeManager.js +20 -11
  356. package/dist/production/src/model/service/PasswordChangeManager.js.map +1 -1
  357. package/dist/production/src/model/service/PasswordResetManager.cjs +40 -8
  358. package/dist/production/src/model/service/PasswordResetManager.cjs.map +1 -1
  359. package/dist/production/src/model/service/PasswordResetManager.js +40 -8
  360. package/dist/production/src/model/service/PasswordResetManager.js.map +1 -1
  361. package/dist/production/src/model/service/PasswordStrengthValidator.cjs +63 -0
  362. package/dist/production/src/model/service/PasswordStrengthValidator.cjs.map +1 -0
  363. package/dist/production/src/model/service/PasswordStrengthValidator.js +63 -0
  364. package/dist/production/src/model/service/PasswordStrengthValidator.js.map +1 -0
  365. package/dist/production/src/model/service/PasswordlessSignInManager.cjs +89 -24
  366. package/dist/production/src/model/service/PasswordlessSignInManager.cjs.map +1 -1
  367. package/dist/production/src/model/service/PasswordlessSignInManager.js +81 -16
  368. package/dist/production/src/model/service/PasswordlessSignInManager.js.map +1 -1
  369. package/dist/production/src/model/service/PersonAccessManager.cjs +7 -29
  370. package/dist/production/src/model/service/PersonAccessManager.cjs.map +1 -1
  371. package/dist/production/src/model/service/PersonAccessManager.js +7 -29
  372. package/dist/production/src/model/service/PersonAccessManager.js.map +1 -1
  373. package/dist/production/src/model/service/SignInManager.cjs +56 -31
  374. package/dist/production/src/model/service/SignInManager.cjs.map +1 -1
  375. package/dist/production/src/model/service/SignInManager.js +57 -32
  376. package/dist/production/src/model/service/SignInManager.js.map +1 -1
  377. package/dist/production/src/model/service/SignUpManager.cjs +13 -8
  378. package/dist/production/src/model/service/SignUpManager.cjs.map +1 -1
  379. package/dist/production/src/model/service/SignUpManager.js +11 -6
  380. package/dist/production/src/model/service/SignUpManager.js.map +1 -1
  381. package/dist/production/src/model/service/apiKey/ApiKeyManager.cjs +6 -1
  382. package/dist/production/src/model/service/apiKey/ApiKeyManager.cjs.map +1 -1
  383. package/dist/production/src/model/service/apiKey/ApiKeyManager.js +6 -1
  384. package/dist/production/src/model/service/apiKey/ApiKeyManager.js.map +1 -1
  385. package/dist/production/src/model/utils/Response.cjs +2 -1
  386. package/dist/production/src/model/utils/Response.cjs.map +1 -1
  387. package/dist/production/src/model/utils/Response.js +2 -1
  388. package/dist/production/src/model/utils/Response.js.map +1 -1
  389. package/dist/production/src/model/utils/blacklist.cjs +10006 -0
  390. package/dist/production/src/model/utils/blacklist.cjs.map +1 -0
  391. package/dist/production/src/model/utils/blacklist.js +10006 -0
  392. package/dist/production/src/model/utils/blacklist.js.map +1 -0
  393. package/dist/{development/src/model/utils/typeUtils.cjs → production/src/model/utils/hex.cjs} +1 -1
  394. package/dist/production/src/model/utils/hex.cjs.map +1 -0
  395. package/dist/production/src/model/utils/{typeUtils.js → hex.js} +1 -1
  396. package/dist/production/src/model/utils/hex.js.map +1 -0
  397. package/dist/production/src/model/utils/interval.cjs +8 -0
  398. package/dist/production/src/model/utils/interval.cjs.map +1 -0
  399. package/dist/production/src/model/utils/interval.js +8 -0
  400. package/dist/production/src/model/utils/interval.js.map +1 -0
  401. package/dist/production/src/model/utils/{tokenUtils.cjs → token.cjs} +3 -3
  402. package/dist/production/src/model/utils/token.cjs.map +1 -0
  403. package/dist/production/src/model/utils/{tokenUtils.js → token.js} +2 -2
  404. package/dist/production/src/model/utils/token.js.map +1 -0
  405. package/dist/production/src/resolvers/ResolverFactory.cjs +1 -0
  406. package/dist/production/src/resolvers/ResolverFactory.cjs.map +1 -1
  407. package/dist/production/src/resolvers/ResolverFactory.js +2 -1
  408. package/dist/production/src/resolvers/ResolverFactory.js.map +1 -1
  409. package/dist/production/src/resolvers/TenantResolverContextFactory.cjs +10 -2
  410. package/dist/production/src/resolvers/TenantResolverContextFactory.cjs.map +1 -1
  411. package/dist/production/src/resolvers/TenantResolverContextFactory.js +10 -2
  412. package/dist/production/src/resolvers/TenantResolverContextFactory.js.map +1 -1
  413. package/dist/production/src/resolvers/errorUtils.cjs +15 -4
  414. package/dist/production/src/resolvers/errorUtils.cjs.map +1 -1
  415. package/dist/production/src/resolvers/errorUtils.js +15 -4
  416. package/dist/production/src/resolvers/errorUtils.js.map +1 -1
  417. package/dist/production/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.cjs +4 -3
  418. package/dist/production/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.cjs.map +1 -1
  419. package/dist/production/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.js +2 -1
  420. package/dist/production/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.js.map +1 -1
  421. package/dist/production/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.cjs +1 -0
  422. package/dist/production/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.cjs.map +1 -1
  423. package/dist/production/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.js +1 -0
  424. package/dist/production/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.js.map +1 -1
  425. package/dist/production/src/resolvers/mutation/configuration/ConfigurationMutationResolver.cjs +1 -0
  426. package/dist/production/src/resolvers/mutation/configuration/ConfigurationMutationResolver.cjs.map +1 -1
  427. package/dist/production/src/resolvers/mutation/configuration/ConfigurationMutationResolver.js +1 -0
  428. package/dist/production/src/resolvers/mutation/configuration/ConfigurationMutationResolver.js.map +1 -1
  429. package/dist/production/src/resolvers/mutation/identity/GlobalRolesMutationResolver.cjs +1 -0
  430. package/dist/production/src/resolvers/mutation/identity/GlobalRolesMutationResolver.cjs.map +1 -1
  431. package/dist/production/src/resolvers/mutation/identity/GlobalRolesMutationResolver.js +1 -0
  432. package/dist/production/src/resolvers/mutation/identity/GlobalRolesMutationResolver.js.map +1 -1
  433. package/dist/production/src/resolvers/mutation/idp/AddIDPMutationResolver.cjs +1 -0
  434. package/dist/production/src/resolvers/mutation/idp/AddIDPMutationResolver.cjs.map +1 -1
  435. package/dist/production/src/resolvers/mutation/idp/AddIDPMutationResolver.js +1 -0
  436. package/dist/production/src/resolvers/mutation/idp/AddIDPMutationResolver.js.map +1 -1
  437. package/dist/production/src/resolvers/mutation/idp/DisableIDPMutationResolver.cjs +1 -0
  438. package/dist/production/src/resolvers/mutation/idp/DisableIDPMutationResolver.cjs.map +1 -1
  439. package/dist/production/src/resolvers/mutation/idp/DisableIDPMutationResolver.js +1 -0
  440. package/dist/production/src/resolvers/mutation/idp/DisableIDPMutationResolver.js.map +1 -1
  441. package/dist/production/src/resolvers/mutation/idp/EnableIDPMutationResolver.cjs +1 -0
  442. package/dist/production/src/resolvers/mutation/idp/EnableIDPMutationResolver.cjs.map +1 -1
  443. package/dist/production/src/resolvers/mutation/idp/EnableIDPMutationResolver.js +1 -0
  444. package/dist/production/src/resolvers/mutation/idp/EnableIDPMutationResolver.js.map +1 -1
  445. package/dist/production/src/resolvers/mutation/idp/UpdateIDPMutationResolver.cjs +1 -0
  446. package/dist/production/src/resolvers/mutation/idp/UpdateIDPMutationResolver.cjs.map +1 -1
  447. package/dist/production/src/resolvers/mutation/idp/UpdateIDPMutationResolver.js +1 -0
  448. package/dist/production/src/resolvers/mutation/idp/UpdateIDPMutationResolver.js.map +1 -1
  449. package/dist/production/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.cjs +1 -0
  450. package/dist/production/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.cjs.map +1 -1
  451. package/dist/production/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.js +1 -0
  452. package/dist/production/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.js.map +1 -1
  453. package/dist/production/src/resolvers/mutation/person/ChangePasswordMutationResolver.cjs +17 -6
  454. package/dist/production/src/resolvers/mutation/person/ChangePasswordMutationResolver.cjs.map +1 -1
  455. package/dist/production/src/resolvers/mutation/person/ChangePasswordMutationResolver.js +17 -6
  456. package/dist/production/src/resolvers/mutation/person/ChangePasswordMutationResolver.js.map +1 -1
  457. package/dist/production/src/resolvers/mutation/person/ChangeProfileMutationResolver.cjs +14 -0
  458. package/dist/production/src/resolvers/mutation/person/ChangeProfileMutationResolver.cjs.map +1 -1
  459. package/dist/production/src/resolvers/mutation/person/ChangeProfileMutationResolver.js +14 -0
  460. package/dist/production/src/resolvers/mutation/person/ChangeProfileMutationResolver.js.map +1 -1
  461. package/dist/production/src/resolvers/mutation/person/DisablePersonMutationResolver.cjs +7 -1
  462. package/dist/production/src/resolvers/mutation/person/DisablePersonMutationResolver.cjs.map +1 -1
  463. package/dist/production/src/resolvers/mutation/person/DisablePersonMutationResolver.js +7 -1
  464. package/dist/production/src/resolvers/mutation/person/DisablePersonMutationResolver.js.map +1 -1
  465. package/dist/production/src/resolvers/mutation/person/IDPMutationResolver.cjs +5 -0
  466. package/dist/production/src/resolvers/mutation/person/IDPMutationResolver.cjs.map +1 -1
  467. package/dist/production/src/resolvers/mutation/person/IDPMutationResolver.js +5 -0
  468. package/dist/production/src/resolvers/mutation/person/IDPMutationResolver.js.map +1 -1
  469. package/dist/production/src/resolvers/mutation/person/InviteMutationResolver.cjs +3 -2
  470. package/dist/production/src/resolvers/mutation/person/InviteMutationResolver.cjs.map +1 -1
  471. package/dist/production/src/resolvers/mutation/person/InviteMutationResolver.js +2 -1
  472. package/dist/production/src/resolvers/mutation/person/InviteMutationResolver.js.map +1 -1
  473. package/dist/production/src/resolvers/mutation/person/OtpMutationResolver.cjs +26 -1
  474. package/dist/production/src/resolvers/mutation/person/OtpMutationResolver.cjs.map +1 -1
  475. package/dist/production/src/resolvers/mutation/person/OtpMutationResolver.js +26 -1
  476. package/dist/production/src/resolvers/mutation/person/OtpMutationResolver.js.map +1 -1
  477. package/dist/production/src/resolvers/mutation/person/PasswordlessMutationResolver.cjs +20 -0
  478. package/dist/production/src/resolvers/mutation/person/PasswordlessMutationResolver.cjs.map +1 -1
  479. package/dist/production/src/resolvers/mutation/person/PasswordlessMutationResolver.js +20 -0
  480. package/dist/production/src/resolvers/mutation/person/PasswordlessMutationResolver.js.map +1 -1
  481. package/dist/production/src/resolvers/mutation/person/ResetPasswordMutationResolver.cjs +25 -2
  482. package/dist/production/src/resolvers/mutation/person/ResetPasswordMutationResolver.cjs.map +1 -1
  483. package/dist/production/src/resolvers/mutation/person/ResetPasswordMutationResolver.js +25 -2
  484. package/dist/production/src/resolvers/mutation/person/ResetPasswordMutationResolver.js.map +1 -1
  485. package/dist/production/src/resolvers/mutation/person/SignInMutationResolver.cjs +22 -0
  486. package/dist/production/src/resolvers/mutation/person/SignInMutationResolver.cjs.map +1 -1
  487. package/dist/production/src/resolvers/mutation/person/SignInMutationResolver.js +22 -0
  488. package/dist/production/src/resolvers/mutation/person/SignInMutationResolver.js.map +1 -1
  489. package/dist/production/src/resolvers/mutation/person/SignOutMutationResolver.cjs +1 -0
  490. package/dist/production/src/resolvers/mutation/person/SignOutMutationResolver.cjs.map +1 -1
  491. package/dist/production/src/resolvers/mutation/person/SignOutMutationResolver.js +1 -0
  492. package/dist/production/src/resolvers/mutation/person/SignOutMutationResolver.js.map +1 -1
  493. package/dist/production/src/resolvers/mutation/person/SignUpMutationResolver.cjs +2 -1
  494. package/dist/production/src/resolvers/mutation/person/SignUpMutationResolver.cjs.map +1 -1
  495. package/dist/production/src/resolvers/mutation/person/SignUpMutationResolver.js +2 -1
  496. package/dist/production/src/resolvers/mutation/person/SignUpMutationResolver.js.map +1 -1
  497. package/dist/production/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.cjs +3 -1
  498. package/dist/production/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.cjs.map +1 -1
  499. package/dist/production/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.js +3 -1
  500. package/dist/production/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.js.map +1 -1
  501. package/dist/production/src/resolvers/mutation/project/CreateProjectMutationResolver.cjs +3 -2
  502. package/dist/production/src/resolvers/mutation/project/CreateProjectMutationResolver.cjs.map +1 -1
  503. package/dist/production/src/resolvers/mutation/project/CreateProjectMutationResolver.js +2 -1
  504. package/dist/production/src/resolvers/mutation/project/CreateProjectMutationResolver.js.map +1 -1
  505. package/dist/production/src/resolvers/mutation/project/SetProjectSecretMutationResolver.cjs +1 -0
  506. package/dist/production/src/resolvers/mutation/project/SetProjectSecretMutationResolver.cjs.map +1 -1
  507. package/dist/production/src/resolvers/mutation/project/SetProjectSecretMutationResolver.js +1 -0
  508. package/dist/production/src/resolvers/mutation/project/SetProjectSecretMutationResolver.js.map +1 -1
  509. package/dist/production/src/resolvers/mutation/project/UpdateProjectMutationResolver.cjs +1 -0
  510. package/dist/production/src/resolvers/mutation/project/UpdateProjectMutationResolver.cjs.map +1 -1
  511. package/dist/production/src/resolvers/mutation/project/UpdateProjectMutationResolver.js +1 -0
  512. package/dist/production/src/resolvers/mutation/project/UpdateProjectMutationResolver.js.map +1 -1
  513. package/dist/production/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.cjs +1 -0
  514. package/dist/production/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.cjs.map +1 -1
  515. package/dist/production/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.js +1 -0
  516. package/dist/production/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.js.map +1 -1
  517. package/dist/production/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.cjs +1 -0
  518. package/dist/production/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.cjs.map +1 -1
  519. package/dist/production/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.js +1 -0
  520. package/dist/production/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.js.map +1 -1
  521. package/dist/production/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.cjs +1 -0
  522. package/dist/production/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.cjs.map +1 -1
  523. package/dist/production/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.js +1 -0
  524. package/dist/production/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.js.map +1 -1
  525. package/dist/production/src/resolvers/query/ConfigurationQueryResolver.cjs +3 -1
  526. package/dist/production/src/resolvers/query/ConfigurationQueryResolver.cjs.map +1 -1
  527. package/dist/production/src/resolvers/query/ConfigurationQueryResolver.js +3 -1
  528. package/dist/production/src/resolvers/query/ConfigurationQueryResolver.js.map +1 -1
  529. package/dist/production/src/resolvers/query/IDPQueryResolver.cjs +1 -0
  530. package/dist/production/src/resolvers/query/IDPQueryResolver.cjs.map +1 -1
  531. package/dist/production/src/resolvers/query/IDPQueryResolver.js +1 -0
  532. package/dist/production/src/resolvers/query/IDPQueryResolver.js.map +1 -1
  533. package/dist/production/src/resolvers/query/MailTemplateQueryResolver.cjs +1 -0
  534. package/dist/production/src/resolvers/query/MailTemplateQueryResolver.cjs.map +1 -1
  535. package/dist/production/src/resolvers/query/MailTemplateQueryResolver.js +1 -0
  536. package/dist/production/src/resolvers/query/MailTemplateQueryResolver.js.map +1 -1
  537. package/dist/production/src/resolvers/query/PersonQueryResolver.cjs +1 -0
  538. package/dist/production/src/resolvers/query/PersonQueryResolver.cjs.map +1 -1
  539. package/dist/production/src/resolvers/query/PersonQueryResolver.js +1 -0
  540. package/dist/production/src/resolvers/query/PersonQueryResolver.js.map +1 -1
  541. package/dist/production/src/resolvers/query/ProjectMembersQueryResolver.cjs +1 -0
  542. package/dist/production/src/resolvers/query/ProjectMembersQueryResolver.cjs.map +1 -1
  543. package/dist/production/src/resolvers/query/ProjectMembersQueryResolver.js +1 -0
  544. package/dist/production/src/resolvers/query/ProjectMembersQueryResolver.js.map +1 -1
  545. package/dist/production/src/resolvers/query/ProjectQueryResolver.cjs +1 -0
  546. package/dist/production/src/resolvers/query/ProjectQueryResolver.cjs.map +1 -1
  547. package/dist/production/src/resolvers/query/ProjectQueryResolver.js +1 -0
  548. package/dist/production/src/resolvers/query/ProjectQueryResolver.js.map +1 -1
  549. package/dist/production/src/resolvers/responseHelpers/SignInResponseFactory.cjs +1 -0
  550. package/dist/production/src/resolvers/responseHelpers/SignInResponseFactory.cjs.map +1 -1
  551. package/dist/production/src/resolvers/responseHelpers/SignInResponseFactory.js +1 -0
  552. package/dist/production/src/resolvers/responseHelpers/SignInResponseFactory.js.map +1 -1
  553. package/dist/production/src/resolvers/types/IdentityTypeResolver.cjs +1 -0
  554. package/dist/production/src/resolvers/types/IdentityTypeResolver.cjs.map +1 -1
  555. package/dist/production/src/resolvers/types/IdentityTypeResolver.js +1 -0
  556. package/dist/production/src/resolvers/types/IdentityTypeResolver.js.map +1 -1
  557. package/dist/production/src/resolvers/types/ProjectTypeResolver.cjs +1 -0
  558. package/dist/production/src/resolvers/types/ProjectTypeResolver.cjs.map +1 -1
  559. package/dist/production/src/resolvers/types/ProjectTypeResolver.js +1 -0
  560. package/dist/production/src/resolvers/types/ProjectTypeResolver.js.map +1 -1
  561. package/dist/production/src/schema/tenant.graphql.cjs +64 -2
  562. package/dist/production/src/schema/tenant.graphql.cjs.map +1 -1
  563. package/dist/production/src/schema/tenant.graphql.js +64 -2
  564. package/dist/production/src/schema/tenant.graphql.js.map +1 -1
  565. package/dist/tests/cases/integration/mocked/sql/createSessionKeySql.d.ts +1 -1
  566. package/dist/tests/cases/integration/mocked/sql/getConfigSql.d.ts +3 -0
  567. package/dist/tests/cases/integration/mocked/sql/getConfigSql.d.ts.map +1 -0
  568. package/dist/tests/cases/integration/mocked/sql/getNextLoginAttemptSql.d.ts +3 -0
  569. package/dist/tests/cases/integration/mocked/sql/getNextLoginAttemptSql.d.ts.map +1 -0
  570. package/dist/tests/src/testTenant.d.ts +2 -0
  571. package/dist/tests/src/testTenant.d.ts.map +1 -1
  572. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  573. package/dist/types/TenantContainer.d.ts +6 -0
  574. package/dist/types/TenantContainer.d.ts.map +1 -1
  575. package/dist/types/migrations/2025-04-16-180000-config-up.d.ts +3 -0
  576. package/dist/types/migrations/2025-04-16-180000-config-up.d.ts.map +1 -0
  577. package/dist/types/migrations/2025-04-17-160000-auth-log.d.ts +3 -0
  578. package/dist/types/migrations/2025-04-17-160000-auth-log.d.ts.map +1 -0
  579. package/dist/types/migrations/runner.d.ts.map +1 -1
  580. package/dist/types/migrations/snapshot.d.ts.map +1 -1
  581. package/dist/types/model/commands/authLog/CreateAuthLogEntryCommand.d.ts +26 -0
  582. package/dist/types/model/commands/authLog/CreateAuthLogEntryCommand.d.ts.map +1 -0
  583. package/dist/types/model/commands/configuration/UpdateConfigurationCommand.d.ts.map +1 -1
  584. package/dist/types/model/dtos/AuthLogBag.d.ts +3 -0
  585. package/dist/types/model/dtos/AuthLogBag.d.ts.map +1 -0
  586. package/dist/types/model/queries/authLog/NextLoginAttemptQuery.d.ts +7 -0
  587. package/dist/types/model/queries/authLog/NextLoginAttemptQuery.d.ts.map +1 -0
  588. package/dist/types/model/queries/configuration/ConfigurationQuery.d.ts +1 -1
  589. package/dist/types/model/queries/configuration/ConfigurationQuery.d.ts.map +1 -1
  590. package/dist/types/model/service/AuthLogService.d.ts +34 -0
  591. package/dist/types/model/service/AuthLogService.d.ts.map +1 -0
  592. package/dist/types/model/service/ConfigurationManager.d.ts +1 -2
  593. package/dist/types/model/service/ConfigurationManager.d.ts.map +1 -1
  594. package/dist/types/model/service/IDPSignInManager.d.ts +5 -1
  595. package/dist/types/model/service/IDPSignInManager.d.ts.map +1 -1
  596. package/dist/types/model/service/PasswordChangeManager.d.ts +8 -4
  597. package/dist/types/model/service/PasswordChangeManager.d.ts.map +1 -1
  598. package/dist/types/model/service/PasswordResetManager.d.ts +11 -4
  599. package/dist/types/model/service/PasswordResetManager.d.ts.map +1 -1
  600. package/dist/types/model/service/PasswordStrengthValidator.d.ts +11 -0
  601. package/dist/types/model/service/PasswordStrengthValidator.d.ts.map +1 -0
  602. package/dist/types/model/service/PasswordlessSignInManager.d.ts +16 -6
  603. package/dist/types/model/service/PasswordlessSignInManager.d.ts.map +1 -1
  604. package/dist/types/model/service/PersonAccessManager.d.ts +2 -1
  605. package/dist/types/model/service/PersonAccessManager.d.ts.map +1 -1
  606. package/dist/types/model/service/SignInManager.d.ts +9 -4
  607. package/dist/types/model/service/SignInManager.d.ts.map +1 -1
  608. package/dist/types/model/service/SignUpManager.d.ts +7 -3
  609. package/dist/types/model/service/SignUpManager.d.ts.map +1 -1
  610. package/dist/types/model/service/apiKey/ApiKeyManager.d.ts.map +1 -1
  611. package/dist/types/model/type/AuthLog.d.ts +2 -0
  612. package/dist/types/model/type/AuthLog.d.ts.map +1 -0
  613. package/dist/types/model/type/Config.d.ts +28 -0
  614. package/dist/types/model/type/Config.d.ts.map +1 -0
  615. package/dist/types/model/utils/Response.d.ts +4 -3
  616. package/dist/types/model/utils/Response.d.ts.map +1 -1
  617. package/dist/types/model/utils/blacklist.d.ts +2 -0
  618. package/dist/types/model/utils/blacklist.d.ts.map +1 -0
  619. package/dist/types/model/utils/{typeUtils.d.ts → hex.d.ts} +1 -1
  620. package/dist/types/model/utils/hex.d.ts.map +1 -0
  621. package/dist/types/model/utils/index.d.ts +1 -1
  622. package/dist/types/model/utils/index.d.ts.map +1 -1
  623. package/dist/types/model/utils/interval.d.ts +3 -0
  624. package/dist/types/model/utils/interval.d.ts.map +1 -0
  625. package/dist/types/model/utils/{tokenUtils.d.ts → token.d.ts} +2 -2
  626. package/dist/types/model/utils/token.d.ts.map +1 -0
  627. package/dist/types/resolvers/ResolverFactory.d.ts.map +1 -1
  628. package/dist/types/resolvers/TenantResolverContext.d.ts +2 -0
  629. package/dist/types/resolvers/TenantResolverContext.d.ts.map +1 -1
  630. package/dist/types/resolvers/TenantResolverContextFactory.d.ts +6 -1
  631. package/dist/types/resolvers/TenantResolverContextFactory.d.ts.map +1 -1
  632. package/dist/types/resolvers/errorUtils.d.ts +7 -5
  633. package/dist/types/resolvers/errorUtils.d.ts.map +1 -1
  634. package/dist/types/resolvers/mutation/person/ChangePasswordMutationResolver.d.ts.map +1 -1
  635. package/dist/types/resolvers/mutation/person/ChangeProfileMutationResolver.d.ts.map +1 -1
  636. package/dist/types/resolvers/mutation/person/DisablePersonMutationResolver.d.ts.map +1 -1
  637. package/dist/types/resolvers/mutation/person/IDPMutationResolver.d.ts.map +1 -1
  638. package/dist/types/resolvers/mutation/person/OtpMutationResolver.d.ts.map +1 -1
  639. package/dist/types/resolvers/mutation/person/PasswordlessMutationResolver.d.ts.map +1 -1
  640. package/dist/types/resolvers/mutation/person/ResetPasswordMutationResolver.d.ts.map +1 -1
  641. package/dist/types/resolvers/mutation/person/SignInMutationResolver.d.ts.map +1 -1
  642. package/dist/types/resolvers/mutation/person/TogglePasswordlessMutationResolver.d.ts.map +1 -1
  643. package/dist/types/resolvers/types/ProjectTypeResolver.d.ts +2 -2
  644. package/dist/types/resolvers/types/ProjectTypeResolver.d.ts.map +1 -1
  645. package/dist/types/schema/index.d.ts +103 -8
  646. package/dist/types/schema/index.d.ts.map +1 -1
  647. package/dist/types/schema/tenant.graphql.d.ts.map +1 -1
  648. package/dist/types/schema/types.d.ts +8 -0
  649. package/dist/types/schema/types.d.ts.map +1 -0
  650. package/dist/types/tsconfig.tsbuildinfo +1 -1
  651. package/graphql.codegen.yml +7 -3
  652. package/package.json +2 -1
  653. package/src/TenantContainer.ts +16 -10
  654. package/src/migrations/2025-04-16-180000-config-up.ts +39 -0
  655. package/src/migrations/2025-04-17-160000-auth-log.ts +45 -0
  656. package/src/migrations/runner.ts +4 -1
  657. package/src/migrations/snapshot.ts +56 -1
  658. package/src/model/commands/authLog/CreateAuthLogEntryCommand.ts +51 -0
  659. package/src/model/commands/configuration/UpdateConfigurationCommand.ts +20 -2
  660. package/src/model/dtos/AuthLogBag.ts +3 -0
  661. package/src/model/queries/authLog/NextLoginAttemptQuery.ts +63 -0
  662. package/src/model/queries/configuration/ConfigurationQuery.ts +20 -8
  663. package/src/model/service/AuthLogService.ts +62 -0
  664. package/src/model/service/ConfigurationManager.ts +1 -6
  665. package/src/model/service/IDPSignInManager.ts +41 -6
  666. package/src/model/service/PasswordChangeManager.ts +17 -12
  667. package/src/model/service/PasswordResetManager.ts +42 -11
  668. package/src/model/service/PasswordStrengthValidator.ts +85 -0
  669. package/src/model/service/PasswordlessSignInManager.ts +95 -28
  670. package/src/model/service/PersonAccessManager.ts +8 -27
  671. package/src/model/service/SignInManager.ts +68 -33
  672. package/src/model/service/SignUpManager.ts +16 -8
  673. package/src/model/service/apiKey/ApiKeyManager.ts +8 -2
  674. package/src/model/type/AuthLog.ts +14 -0
  675. package/src/model/type/Config.ts +29 -0
  676. package/src/model/utils/Response.ts +10 -3
  677. package/src/model/utils/blacklist.ts +4 -0
  678. package/src/model/utils/index.ts +1 -1
  679. package/src/model/utils/interval.ts +14 -0
  680. package/src/model/utils/{tokenUtils.ts → token.ts} +1 -1
  681. package/src/resolvers/ResolverFactory.ts +2 -1
  682. package/src/resolvers/TenantResolverContext.ts +2 -0
  683. package/src/resolvers/TenantResolverContextFactory.ts +10 -0
  684. package/src/resolvers/errorUtils.ts +23 -5
  685. package/src/resolvers/mutation/idp/AddIDPMutationResolver.ts +1 -1
  686. package/src/resolvers/mutation/idp/UpdateIDPMutationResolver.ts +1 -1
  687. package/src/resolvers/mutation/person/ChangePasswordMutationResolver.ts +17 -15
  688. package/src/resolvers/mutation/person/ChangeProfileMutationResolver.ts +13 -0
  689. package/src/resolvers/mutation/person/DisablePersonMutationResolver.ts +7 -7
  690. package/src/resolvers/mutation/person/IDPMutationResolver.ts +4 -0
  691. package/src/resolvers/mutation/person/OtpMutationResolver.ts +25 -1
  692. package/src/resolvers/mutation/person/PasswordlessMutationResolver.ts +21 -1
  693. package/src/resolvers/mutation/person/ResetPasswordMutationResolver.ts +27 -3
  694. package/src/resolvers/mutation/person/SignInMutationResolver.ts +26 -8
  695. package/src/resolvers/mutation/person/SignUpMutationResolver.ts +1 -1
  696. package/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.ts +2 -2
  697. package/src/resolvers/mutation/project/CreateProjectMutationResolver.ts +1 -1
  698. package/src/resolvers/mutation/project/UpdateProjectMutationResolver.ts +1 -1
  699. package/src/resolvers/query/ConfigurationQueryResolver.ts +2 -2
  700. package/src/resolvers/types/ProjectTypeResolver.ts +2 -2
  701. package/src/schema/index.ts +114 -5
  702. package/src/schema/tenant.graphql.ts +64 -2
  703. package/src/schema/types.ts +4 -0
  704. package/tests/cases/integration/mocked/changeMyPasswordMutation.test.ts +42 -2
  705. package/tests/cases/integration/mocked/changeMyProfileMutation.test.ts +25 -4
  706. package/tests/cases/integration/mocked/changePasswordMutation.test.ts +10 -2
  707. package/tests/cases/integration/mocked/changeProfileMutation.test.ts +7 -1
  708. package/tests/cases/integration/mocked/confirmOtpMutation.test.ts +13 -8
  709. package/tests/cases/integration/mocked/createSessionKeyMutation.test.ts +9 -21
  710. package/tests/cases/integration/mocked/inviteMutations.test.ts +0 -24
  711. package/tests/cases/integration/mocked/signInIdpMutation.test.ts +16 -1
  712. package/tests/cases/integration/mocked/signInMutation.test.ts +54 -22
  713. package/tests/cases/integration/mocked/signOutMutation.test.ts +0 -5
  714. package/tests/cases/integration/mocked/signUpMutation.test.ts +3 -12
  715. package/tests/cases/integration/mocked/sql/createSessionKeySql.ts +1 -1
  716. package/tests/cases/integration/mocked/sql/getConfigSql.ts +29 -0
  717. package/tests/cases/integration/mocked/sql/getNextLoginAttemptSql.ts +20 -0
  718. package/tests/src/testTenant.ts +13 -0
  719. package/dist/development/src/model/utils/password.cjs +0 -12
  720. package/dist/development/src/model/utils/password.cjs.map +0 -1
  721. package/dist/development/src/model/utils/password.js +0 -12
  722. package/dist/development/src/model/utils/password.js.map +0 -1
  723. package/dist/development/src/model/utils/tokenUtils.cjs.map +0 -1
  724. package/dist/development/src/model/utils/tokenUtils.js.map +0 -1
  725. package/dist/development/src/model/utils/typeUtils.cjs.map +0 -1
  726. package/dist/development/src/model/utils/typeUtils.js.map +0 -1
  727. package/dist/production/src/model/utils/password.cjs +0 -12
  728. package/dist/production/src/model/utils/password.cjs.map +0 -1
  729. package/dist/production/src/model/utils/password.js +0 -12
  730. package/dist/production/src/model/utils/password.js.map +0 -1
  731. package/dist/production/src/model/utils/tokenUtils.cjs.map +0 -1
  732. package/dist/production/src/model/utils/tokenUtils.js.map +0 -1
  733. package/dist/production/src/model/utils/typeUtils.cjs.map +0 -1
  734. package/dist/production/src/model/utils/typeUtils.js.map +0 -1
  735. package/dist/types/model/utils/password.d.ts +0 -4
  736. package/dist/types/model/utils/password.d.ts.map +0 -1
  737. package/dist/types/model/utils/tokenUtils.d.ts.map +0 -1
  738. package/dist/types/model/utils/typeUtils.d.ts.map +0 -1
  739. package/src/model/utils/password.ts +0 -8
  740. /package/src/model/utils/{typeUtils.ts → hex.ts} +0 -0
@@ -3,4 +3,4 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const isHex = /^[a-f0-9]+$/;
4
4
  const isFixedLengthHexString = (input, length) => input.length === length && input.match(isHex) !== null;
5
5
  exports.isFixedLengthHexString = isFixedLengthHexString;
6
- //# sourceMappingURL=typeUtils.cjs.map
6
+ //# sourceMappingURL=hex.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hex.cjs","sources":["../../../../../../packages/engine-tenant-api/src/model/utils/hex.ts"],"sourcesContent":["export type FixedLengthHexString<Length extends number> = string & { __brand: `hexstring_${Length}` }\n\nconst isHex = /^[a-f0-9]+$/\n\nexport const isFixedLengthHexString = <Length extends number>(input: string, length: Length): input is FixedLengthHexString<Length> => (\n\tinput.length === length && input.match(isHex) !== null\n)\n"],"names":[],"mappings":";;AAEA,MAAM,QAAQ;AAED,MAAA,yBAAyB,CAAwB,OAAe,WAC5E,MAAM,WAAW,UAAU,MAAM,MAAM,KAAK,MAAM;;"}
@@ -3,4 +3,4 @@ const isFixedLengthHexString = (input, length) => input.length === length && inp
3
3
  export {
4
4
  isFixedLengthHexString
5
5
  };
6
- //# sourceMappingURL=typeUtils.js.map
6
+ //# sourceMappingURL=hex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hex.js","sources":["../../../../../../packages/engine-tenant-api/src/model/utils/hex.ts"],"sourcesContent":["export type FixedLengthHexString<Length extends number> = string & { __brand: `hexstring_${Length}` }\n\nconst isHex = /^[a-f0-9]+$/\n\nexport const isFixedLengthHexString = <Length extends number>(input: string, length: Length): input is FixedLengthHexString<Length> => (\n\tinput.length === length && input.match(isHex) !== null\n)\n"],"names":[],"mappings":"AAEA,MAAM,QAAQ;AAED,MAAA,yBAAyB,CAAwB,OAAe,WAC5E,MAAM,WAAW,UAAU,MAAM,MAAM,KAAK,MAAM;"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const intervalToSeconds = (interval) => {
4
+ const { months, years, days, hours, minutes, seconds, milliseconds } = interval;
5
+ return (years || 0) * 365 * 24 * 60 * 60 + (months || 0) * 30 * 24 * 60 * 60 + (days || 0) * 24 * 60 * 60 + (hours || 0) * 60 * 60 + (minutes || 0) * 60 + (seconds || 0) + (milliseconds || 0) / 1e3;
6
+ };
7
+ exports.intervalToSeconds = intervalToSeconds;
8
+ //# sourceMappingURL=interval.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interval.cjs","sources":["../../../../../../packages/engine-tenant-api/src/model/utils/interval.ts"],"sourcesContent":["import { IPostgresInterval } from 'postgres-interval'\n\nexport const intervalToSeconds = (interval: IPostgresInterval): number => {\n\tconst { months, years, days, hours, minutes, seconds, milliseconds } = interval\n\treturn (\n\t\t(years || 0) * 365 * 24 * 60 * 60 +\n\t\t(months || 0) * 30 * 24 * 60 * 60 +\n\t\t(days || 0) * 24 * 60 * 60 +\n\t\t(hours || 0) * 60 * 60 +\n\t\t(minutes || 0) * 60 +\n\t\t(seconds || 0) +\n\t\t(milliseconds || 0) / 1000\n\t)\n}\n"],"names":[],"mappings":";;AAEa,MAAA,oBAAoB,CAAC,aAAwC;AACnE,QAAA,EAAE,QAAQ,OAAQ,MAAM,OAAO,SAAS,SAAS,iBAAiB;AAEtE,UAAA,SAAS,KAAK,MAAM,KAAK,KAAK,MAC9B,UAAU,KAAK,KAAK,KAAK,KAAK,MAC9B,QAAQ,KAAK,KAAK,KAAK,MACvB,SAAS,KAAK,KAAK,MACnB,WAAW,KAAK,MAChB,WAAW,MACX,gBAAgB,KAAK;AAExB;;"}
@@ -0,0 +1,8 @@
1
+ const intervalToSeconds = (interval) => {
2
+ const { months, years, days, hours, minutes, seconds, milliseconds } = interval;
3
+ return (years || 0) * 365 * 24 * 60 * 60 + (months || 0) * 30 * 24 * 60 * 60 + (days || 0) * 24 * 60 * 60 + (hours || 0) * 60 * 60 + (minutes || 0) * 60 + (seconds || 0) + (milliseconds || 0) / 1e3;
4
+ };
5
+ export {
6
+ intervalToSeconds
7
+ };
8
+ //# sourceMappingURL=interval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interval.js","sources":["../../../../../../packages/engine-tenant-api/src/model/utils/interval.ts"],"sourcesContent":["import { IPostgresInterval } from 'postgres-interval'\n\nexport const intervalToSeconds = (interval: IPostgresInterval): number => {\n\tconst { months, years, days, hours, minutes, seconds, milliseconds } = interval\n\treturn (\n\t\t(years || 0) * 365 * 24 * 60 * 60 +\n\t\t(months || 0) * 30 * 24 * 60 * 60 +\n\t\t(days || 0) * 24 * 60 * 60 +\n\t\t(hours || 0) * 60 * 60 +\n\t\t(minutes || 0) * 60 +\n\t\t(seconds || 0) +\n\t\t(milliseconds || 0) / 1000\n\t)\n}\n"],"names":[],"mappings":"AAEa,MAAA,oBAAoB,CAAC,aAAwC;AACnE,QAAA,EAAE,QAAQ,OAAQ,MAAM,OAAO,SAAS,SAAS,iBAAiB;AAEtE,UAAA,SAAS,KAAK,MAAM,KAAK,KAAK,MAC9B,UAAU,KAAK,KAAK,KAAK,KAAK,MAC9B,QAAQ,KAAK,KAAK,KAAK,MACvB,SAAS,KAAK,KAAK,MACnB,WAAW,KAAK,MAChB,WAAW,MACX,gBAAgB,KAAK;AAExB;"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const crypto = require("node:crypto");
4
- const typeUtils = require("./typeUtils.cjs");
4
+ const hex = require("./hex.cjs");
5
5
  const exceptions = require("../../exceptions.cjs");
6
6
  const Response = require("./Response.cjs");
7
7
  const generateToken = async (generator) => {
@@ -10,7 +10,7 @@ const generateToken = async (generator) => {
10
10
  const computeTokenHash = (token) => {
11
11
  return crypto.createHash("sha256").update(token, "ascii").digest("hex");
12
12
  };
13
- const isTokenHash = (token) => typeUtils.isFixedLengthHexString(token, 64);
13
+ const isTokenHash = (token) => hex.isFixedLengthHexString(token, 64);
14
14
  const MAX_OTP_ATTEMPTS = 3;
15
15
  const validateToken = ({ entry, validationType, token, now }) => {
16
16
  if (!entry) {
@@ -51,4 +51,4 @@ exports.computeTokenHash = computeTokenHash;
51
51
  exports.generateToken = generateToken;
52
52
  exports.isTokenHash = isTokenHash;
53
53
  exports.validateToken = validateToken;
54
- //# sourceMappingURL=tokenUtils.cjs.map
54
+ //# sourceMappingURL=token.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.cjs","sources":["../../../../../../packages/engine-tenant-api/src/model/utils/token.ts"],"sourcesContent":["import crypto from 'node:crypto'\nimport { FixedLengthHexString, isFixedLengthHexString } from './hex'\nimport { PersonToken } from '../type'\nimport { ImplementationException } from '../../exceptions'\nimport { Response, ResponseError, ResponseOk } from './Response'\n\nexport const generateToken = async (generator: {\n\trandomBytes: (bytes: number) => Promise<Buffer>\n}): Promise<string> => {\n\treturn (await generator.randomBytes(20)).toString('hex')\n}\n\nexport type TokenHash = FixedLengthHexString<64>\n\nexport const computeTokenHash = (token: string): TokenHash => {\n\treturn crypto //\n\t\t.createHash('sha256')\n\t\t.update(token, 'ascii')\n\t\t.digest('hex') as TokenHash\n}\n\nexport const isTokenHash = (token: string): token is TokenHash => isFixedLengthHexString(token, 64)\n\n\nconst MAX_OTP_ATTEMPTS = 3\n\nexport const validateToken = ({ entry, validationType, token, now }: {\n\tentry: PersonToken.Row | null\n\tvalidationType: PersonToken.ValidationType\n\ttoken: string\n\tnow: Date\n}): Response<PersonToken.Row, PersonToken.TokenValidationError> => {\n\tif (!entry) {\n\t\treturn new ResponseError('TOKEN_NOT_FOUND', 'Token not found')\n\t}\n\tif (validationType === 'otp' && entry.otp_attempts >= MAX_OTP_ATTEMPTS) {\n\t\treturn new ResponseError('TOKEN_EXPIRED', 'OTP attempts exceeded')\n\t}\n\tswitch (validationType) {\n\t\tcase 'token':\n\t\t\tif (entry.otp_hash !== null) {\n\t\t\t\treturn new ResponseError('TOKEN_INVALID', 'The token was exchanged for OTP')\n\t\t\t}\n\t\t\tif (entry.token_hash !== computeTokenHash(token)) {\n\t\t\t\treturn new ResponseError('TOKEN_INVALID', 'Token invalid')\n\t\t\t}\n\t\t\tbreak\n\t\tcase 'otp':\n\t\t\tif (entry.otp_hash === null) {\n\t\t\t\treturn new ResponseError('TOKEN_INVALID', 'OTP not set')\n\t\t\t}\n\t\t\tif (entry.otp_hash !== computeTokenHash(token)) {\n\t\t\t\treturn new ResponseError('TOKEN_INVALID', 'OTP invalid')\n\t\t\t}\n\t\t\tbreak\n\t\tdefault:\n\t\t\tthrow new ImplementationException()\n\t}\n\tif (entry.used_at) {\n\t\treturn new ResponseError('TOKEN_USED', 'Token used at ' + entry.used_at.toISOString())\n\t}\n\tif (entry.expires_at < now) {\n\t\treturn new ResponseError('TOKEN_EXPIRED', 'Token expired at ' + entry.expires_at.toISOString())\n\t}\n\treturn new ResponseOk(entry)\n}\n"],"names":["isFixedLengthHexString","ResponseError","ImplementationException","ResponseOk"],"mappings":";;;;;;AAMa,MAAA,gBAAgB,OAAO,cAEb;AACtB,UAAQ,MAAM,UAAU,YAAY,EAAE,GAAG,SAAS,KAAK;AACxD;AAIa,MAAA,mBAAmB,CAAC,UAA6B;AACtD,SAAA,OACL,WAAW,QAAQ,EACnB,OAAO,OAAO,OAAO,EACrB,OAAO,KAAK;AACf;AAEO,MAAM,cAAc,CAAC,UAAsCA,IAAA,uBAAuB,OAAO,EAAE;AAGlG,MAAM,mBAAmB;AAElB,MAAM,gBAAgB,CAAC,EAAE,OAAO,gBAAgB,OAAO,UAKK;AAClE,MAAI,CAAC,OAAO;AACJ,WAAA,IAAIC,SAAAA,cAAc,mBAAmB,iBAAiB;AAAA,EAAA;AAE9D,MAAI,mBAAmB,SAAS,MAAM,gBAAgB,kBAAkB;AAChE,WAAA,IAAIA,SAAAA,cAAc,iBAAiB,uBAAuB;AAAA,EAAA;AAElE,UAAQ,gBAAgB;AAAA,IACvB,KAAK;AACA,UAAA,MAAM,aAAa,MAAM;AACrB,eAAA,IAAIA,SAAAA,cAAc,iBAAiB,iCAAiC;AAAA,MAAA;AAE5E,UAAI,MAAM,eAAe,iBAAiB,KAAK,GAAG;AAC1C,eAAA,IAAIA,SAAAA,cAAc,iBAAiB,eAAe;AAAA,MAAA;AAE1D;AAAA,IACD,KAAK;AACA,UAAA,MAAM,aAAa,MAAM;AACrB,eAAA,IAAIA,SAAAA,cAAc,iBAAiB,aAAa;AAAA,MAAA;AAExD,UAAI,MAAM,aAAa,iBAAiB,KAAK,GAAG;AACxC,eAAA,IAAIA,SAAAA,cAAc,iBAAiB,aAAa;AAAA,MAAA;AAExD;AAAA,IACD;AACC,YAAM,IAAIC,WAAAA,wBAAwB;AAAA,EAAA;AAEpC,MAAI,MAAM,SAAS;AAClB,WAAO,IAAID,SAAc,cAAA,cAAc,mBAAmB,MAAM,QAAQ,aAAa;AAAA,EAAA;AAElF,MAAA,MAAM,aAAa,KAAK;AAC3B,WAAO,IAAIA,SAAc,cAAA,iBAAiB,sBAAsB,MAAM,WAAW,aAAa;AAAA,EAAA;AAExF,SAAA,IAAIE,oBAAW,KAAK;AAC5B;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import crypto__default from "node:crypto";
2
- import { isFixedLengthHexString } from "./typeUtils.js";
2
+ import { isFixedLengthHexString } from "./hex.js";
3
3
  import { ImplementationException } from "../../exceptions.js";
4
4
  import { ResponseError, ResponseOk } from "./Response.js";
5
5
  const generateToken = async (generator) => {
@@ -51,4 +51,4 @@ export {
51
51
  isTokenHash,
52
52
  validateToken
53
53
  };
54
- //# sourceMappingURL=tokenUtils.js.map
54
+ //# sourceMappingURL=token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.js","sources":["../../../../../../packages/engine-tenant-api/src/model/utils/token.ts"],"sourcesContent":["import crypto from 'node:crypto'\nimport { FixedLengthHexString, isFixedLengthHexString } from './hex'\nimport { PersonToken } from '../type'\nimport { ImplementationException } from '../../exceptions'\nimport { Response, ResponseError, ResponseOk } from './Response'\n\nexport const generateToken = async (generator: {\n\trandomBytes: (bytes: number) => Promise<Buffer>\n}): Promise<string> => {\n\treturn (await generator.randomBytes(20)).toString('hex')\n}\n\nexport type TokenHash = FixedLengthHexString<64>\n\nexport const computeTokenHash = (token: string): TokenHash => {\n\treturn crypto //\n\t\t.createHash('sha256')\n\t\t.update(token, 'ascii')\n\t\t.digest('hex') as TokenHash\n}\n\nexport const isTokenHash = (token: string): token is TokenHash => isFixedLengthHexString(token, 64)\n\n\nconst MAX_OTP_ATTEMPTS = 3\n\nexport const validateToken = ({ entry, validationType, token, now }: {\n\tentry: PersonToken.Row | null\n\tvalidationType: PersonToken.ValidationType\n\ttoken: string\n\tnow: Date\n}): Response<PersonToken.Row, PersonToken.TokenValidationError> => {\n\tif (!entry) {\n\t\treturn new ResponseError('TOKEN_NOT_FOUND', 'Token not found')\n\t}\n\tif (validationType === 'otp' && entry.otp_attempts >= MAX_OTP_ATTEMPTS) {\n\t\treturn new ResponseError('TOKEN_EXPIRED', 'OTP attempts exceeded')\n\t}\n\tswitch (validationType) {\n\t\tcase 'token':\n\t\t\tif (entry.otp_hash !== null) {\n\t\t\t\treturn new ResponseError('TOKEN_INVALID', 'The token was exchanged for OTP')\n\t\t\t}\n\t\t\tif (entry.token_hash !== computeTokenHash(token)) {\n\t\t\t\treturn new ResponseError('TOKEN_INVALID', 'Token invalid')\n\t\t\t}\n\t\t\tbreak\n\t\tcase 'otp':\n\t\t\tif (entry.otp_hash === null) {\n\t\t\t\treturn new ResponseError('TOKEN_INVALID', 'OTP not set')\n\t\t\t}\n\t\t\tif (entry.otp_hash !== computeTokenHash(token)) {\n\t\t\t\treturn new ResponseError('TOKEN_INVALID', 'OTP invalid')\n\t\t\t}\n\t\t\tbreak\n\t\tdefault:\n\t\t\tthrow new ImplementationException()\n\t}\n\tif (entry.used_at) {\n\t\treturn new ResponseError('TOKEN_USED', 'Token used at ' + entry.used_at.toISOString())\n\t}\n\tif (entry.expires_at < now) {\n\t\treturn new ResponseError('TOKEN_EXPIRED', 'Token expired at ' + entry.expires_at.toISOString())\n\t}\n\treturn new ResponseOk(entry)\n}\n"],"names":["crypto"],"mappings":";;;;AAMa,MAAA,gBAAgB,OAAO,cAEb;AACtB,UAAQ,MAAM,UAAU,YAAY,EAAE,GAAG,SAAS,KAAK;AACxD;AAIa,MAAA,mBAAmB,CAAC,UAA6B;AACtD,SAAAA,gBACL,WAAW,QAAQ,EACnB,OAAO,OAAO,OAAO,EACrB,OAAO,KAAK;AACf;AAEO,MAAM,cAAc,CAAC,UAAsC,uBAAuB,OAAO,EAAE;AAGlG,MAAM,mBAAmB;AAElB,MAAM,gBAAgB,CAAC,EAAE,OAAO,gBAAgB,OAAO,UAKK;AAClE,MAAI,CAAC,OAAO;AACJ,WAAA,IAAI,cAAc,mBAAmB,iBAAiB;AAAA,EAAA;AAE9D,MAAI,mBAAmB,SAAS,MAAM,gBAAgB,kBAAkB;AAChE,WAAA,IAAI,cAAc,iBAAiB,uBAAuB;AAAA,EAAA;AAElE,UAAQ,gBAAgB;AAAA,IACvB,KAAK;AACA,UAAA,MAAM,aAAa,MAAM;AACrB,eAAA,IAAI,cAAc,iBAAiB,iCAAiC;AAAA,MAAA;AAE5E,UAAI,MAAM,eAAe,iBAAiB,KAAK,GAAG;AAC1C,eAAA,IAAI,cAAc,iBAAiB,eAAe;AAAA,MAAA;AAE1D;AAAA,IACD,KAAK;AACA,UAAA,MAAM,aAAa,MAAM;AACrB,eAAA,IAAI,cAAc,iBAAiB,aAAa;AAAA,MAAA;AAExD,UAAI,MAAM,aAAa,iBAAiB,KAAK,GAAG;AACxC,eAAA,IAAI,cAAc,iBAAiB,aAAa;AAAA,MAAA;AAExD;AAAA,IACD;AACC,YAAM,IAAI,wBAAwB;AAAA,EAAA;AAEpC,MAAI,MAAM,SAAS;AAClB,WAAO,IAAI,cAAc,cAAc,mBAAmB,MAAM,QAAQ,aAAa;AAAA,EAAA;AAElF,MAAA,MAAM,aAAa,KAAK;AAC3B,WAAO,IAAI,cAAc,iBAAiB,sBAAsB,MAAM,WAAW,aAAa;AAAA,EAAA;AAExF,SAAA,IAAI,WAAW,KAAK;AAC5B;"}
@@ -9,6 +9,7 @@ class ResolverFactory {
9
9
  return {
10
10
  Json: graphqlUtils.JSONType,
11
11
  DateTime: graphqlUtils.DateTimeType,
12
+ Interval: graphqlUtils.IntervalType,
12
13
  Identity: {
13
14
  projects: this.resolvers.identityTypeResolver.projects.bind(this.resolvers.identityTypeResolver),
14
15
  person: this.resolvers.identityTypeResolver.person.bind(this.resolvers.identityTypeResolver),
@@ -1 +1 @@
1
- {"version":3,"file":"ResolverFactory.cjs","sources":["../../../../../packages/engine-tenant-api/src/resolvers/ResolverFactory.ts"],"sourcesContent":["import {\n\tAddIDPMutationResolver,\n\tAddProjectMemberMutationResolver,\n\tChangePasswordMutationResolver,\n\tChangeProfileMutationResolver,\n\tCreateApiKeyMutationResolver,\n\tCreateProjectMutationResolver,\n\tDisableApiKeyMutationResolver,\n\tDisableIDPMutationResolver,\n\tEnableIDPMutationResolver,\n\tIdentityGlobalRolesMutationResolver,\n\tIDPMutationResolver,\n\tInviteMutationResolver,\n\tMailTemplateMutationResolver,\n\tOtpMutationResolver,\n\tRemoveProjectMemberMutationResolver,\n\tResetPasswordMutationResolver,\n\tSetProjectSecretMutationResolver,\n\tSignInMutationResolver,\n\tSignOutMutationResolver,\n\tSignUpMutationResolver,\n\tUpdateProjectMemberMutationResolver,\n\tUpdateProjectMutationResolver,\n} from './mutation'\n\nimport { Resolvers } from '../schema'\nimport { MeQueryResolver, PersonQueryResolver, ProjectMembersQueryResolver, ProjectQueryResolver } from './query'\nimport { IdentityTypeResolver, ProjectTypeResolver } from './types'\nimport { DateTimeType, JSONType } from '@contember/graphql-utils'\nimport { IDPQueryResolver } from './query/IDPQueryResolver'\nimport { UpdateIDPMutationResolver } from './mutation/idp/UpdateIDPMutationResolver'\nimport { DisablePersonMutationResolver } from './mutation/person/DisablePersonMutationResolver'\nimport { MailTemplateQueryResolver } from './query/MailTemplateQueryResolver'\nimport { ConfigurationMutationResolver } from './mutation/configuration/ConfigurationMutationResolver'\nimport { ConfigurationQueryResolver } from './query/ConfigurationQueryResolver'\nimport { PasswordlessMutationResolver } from './mutation/person/PasswordlessMutationResolver'\nimport { TogglePasswordlessMutationResolver } from './mutation/person/TogglePasswordlessMutationResolver'\n\nclass ResolverFactory {\n\tpublic constructor(\n\t\tprivate readonly resolvers: {\n\t\t\tmeQueryResolver: MeQueryResolver\n\t\t\tpersonQueryResolver: PersonQueryResolver\n\t\t\tprojectQueryResolver: ProjectQueryResolver\n\t\t\tprojectMembersQueryResolver: ProjectMembersQueryResolver\n\t\t\tidpQueryResolver: IDPQueryResolver\n\t\t\tmailTemplateQueryResolver: MailTemplateQueryResolver\n\n\t\t\tsignUpMutationResolver: SignUpMutationResolver\n\t\t\tsignInMutationResolver: SignInMutationResolver\n\t\t\tsignOutMutationResolver: SignOutMutationResolver\n\t\t\tchangeProfileMutationResolver: ChangeProfileMutationResolver\n\t\t\tchangePasswordMutationResolver: ChangePasswordMutationResolver\n\t\t\tresetPasswordMutationResolver: ResetPasswordMutationResolver\n\t\t\tidpMutationResolver: IDPMutationResolver\n\t\t\tregisterIdpMutationResolver: AddIDPMutationResolver\n\t\t\tdisableIdpMutationResolver: DisableIDPMutationResolver\n\t\t\tenableIdpMutationResolver: EnableIDPMutationResolver\n\t\t\tupdateIdpMutationResolver: UpdateIDPMutationResolver\n\t\t\tpasswordlessMutationResolver: PasswordlessMutationResolver\n\n\t\t\tdisablePersonMutationResolver: DisablePersonMutationResolver\n\n\t\t\tinviteMutationResolver: InviteMutationResolver\n\t\t\taddProjectMemberMutationResolver: AddProjectMemberMutationResolver\n\t\t\tupdateProjectMemberMutationResolver: UpdateProjectMemberMutationResolver\n\t\t\tremoveProjectMemberMutationResolver: RemoveProjectMemberMutationResolver\n\n\t\t\tcreateApiKeyMutationResolver: CreateApiKeyMutationResolver\n\t\t\tdisableApiKeyMutationResolver: DisableApiKeyMutationResolver\n\n\t\t\totpMutationResolver: OtpMutationResolver\n\n\t\t\tmailTemplateMutationResolver: MailTemplateMutationResolver\n\n\t\t\tcreateProjectMutationResolver: CreateProjectMutationResolver\n\t\t\tsetProjectSecretMutationResolver: SetProjectSecretMutationResolver\n\t\t\tupdateProjectMutationResolver: UpdateProjectMutationResolver\n\n\t\t\tidentityTypeResolver: IdentityTypeResolver\n\t\t\tprojectTypeResolver: ProjectTypeResolver\n\n\t\t\tidentityGlobalRolesMutationResolver: IdentityGlobalRolesMutationResolver\n\n\t\t\tconfigurationMutationResolver: ConfigurationMutationResolver\n\t\t\tconfigurationQueryResolver: ConfigurationQueryResolver\n\n\t\t\ttogglePasswordlessMutationResolver: TogglePasswordlessMutationResolver\n\n\t\t},\n\t) { }\n\n\tcreate(): Resolvers & { Mutation: Required<Resolvers['Mutation']> } & { Query: Required<Resolvers['Query']> } {\n\t\treturn {\n\t\t\tJson: JSONType,\n\t\t\tDateTime: DateTimeType,\n\t\t\tIdentity: {\n\t\t\t\tprojects: this.resolvers.identityTypeResolver.projects.bind(this.resolvers.identityTypeResolver),\n\t\t\t\tperson: this.resolvers.identityTypeResolver.person.bind(this.resolvers.identityTypeResolver),\n\t\t\t\troles: this.resolvers.identityTypeResolver.roles.bind(this.resolvers.identityTypeResolver),\n\t\t\t\tpermissions: this.resolvers.identityTypeResolver.permissions.bind(this.resolvers.identityTypeResolver),\n\t\t\t},\n\t\t\tProject: {\n\t\t\t\tmembers: this.resolvers.projectTypeResolver.members.bind(this.resolvers.projectTypeResolver),\n\t\t\t\troles: this.resolvers.projectTypeResolver.roles.bind(this.resolvers.projectTypeResolver),\n\t\t\t},\n\t\t\tQuery: {\n\t\t\t\tme: this.resolvers.meQueryResolver.me.bind(this.resolvers.meQueryResolver),\n\t\t\t\tpersonById: this.resolvers.personQueryResolver.personById.bind(this.resolvers.personQueryResolver),\n\t\t\t\tprojectBySlug: this.resolvers.projectQueryResolver.projectBySlug.bind(this.resolvers.projectQueryResolver),\n\t\t\t\tprojects: this.resolvers.projectQueryResolver.projects.bind(this.resolvers.projectQueryResolver),\n\t\t\t\tprojectMemberships: this.resolvers.projectMembersQueryResolver.projectMemberships.bind(this.resolvers.projectMembersQueryResolver),\n\t\t\t\tidentityProviders: this.resolvers.idpQueryResolver.identityProviders.bind(this.resolvers.idpQueryResolver),\n\t\t\t\tmailTemplates: this.resolvers.mailTemplateQueryResolver.mailTemplates.bind(this.resolvers.mailTemplateQueryResolver),\n\t\t\t\tconfiguration: this.resolvers.configurationQueryResolver.configuration.bind(this.resolvers.configurationQueryResolver),\n\t\t\t\tcheckResetPasswordToken: () => {\n\t\t\t\t\tthrow new Error('not implemented')\n\t\t\t\t},\n\t\t\t},\n\t\t\tMutation: {\n\t\t\t\tsignUp: this.resolvers.signUpMutationResolver.signUp.bind(this.resolvers.signUpMutationResolver),\n\t\t\t\tsignIn: this.resolvers.signInMutationResolver.signIn.bind(this.resolvers.signInMutationResolver),\n\t\t\t\tcreateSessionToken: this.resolvers.signInMutationResolver.createSessionToken.bind(this.resolvers.signInMutationResolver),\n\t\t\t\tsignOut: this.resolvers.signOutMutationResolver.signOut.bind(this.resolvers.signOutMutationResolver),\n\n\t\t\t\tchangeProfile: this.resolvers.changeProfileMutationResolver.changeProfile.bind(this.resolvers.changeProfileMutationResolver),\n\t\t\t\tchangeMyProfile: this.resolvers.changeProfileMutationResolver.changeMyProfile.bind(this.resolvers.changeProfileMutationResolver),\n\t\t\t\tchangePassword: this.resolvers.changePasswordMutationResolver.changePassword.bind(this.resolvers.changePasswordMutationResolver),\n\t\t\t\tchangeMyPassword: this.resolvers.changePasswordMutationResolver.changeMyPassword.bind(this.resolvers.changePasswordMutationResolver),\n\t\t\t\tcreateResetPasswordRequest: this.resolvers.resetPasswordMutationResolver.createResetPasswordRequest.bind(this.resolvers.resetPasswordMutationResolver),\n\t\t\t\tresetPassword: this.resolvers.resetPasswordMutationResolver.resetPassword.bind(this.resolvers.resetPasswordMutationResolver),\n\n\t\t\t\tinitSignInIDP: this.resolvers.idpMutationResolver.initSignInIDP.bind(this.resolvers.idpMutationResolver),\n\t\t\t\tsignInIDP: this.resolvers.idpMutationResolver.signInIDP.bind(this.resolvers.idpMutationResolver),\n\t\t\t\taddIDP: this.resolvers.registerIdpMutationResolver.addIDP.bind(this.resolvers.registerIdpMutationResolver),\n\t\t\t\tdisableIDP: this.resolvers.disableIdpMutationResolver.disableIDP.bind(this.resolvers.disableIdpMutationResolver),\n\t\t\t\tenableIDP: this.resolvers.enableIdpMutationResolver.enableIDP.bind(this.resolvers.enableIdpMutationResolver),\n\t\t\t\tupdateIDP: this.resolvers.updateIdpMutationResolver.updateIDP.bind(this.resolvers.updateIdpMutationResolver),\n\t\t\t\tdisablePerson: this.resolvers.disablePersonMutationResolver.disablePerson.bind(this.resolvers.disablePersonMutationResolver),\n\n\t\t\t\tsignInPasswordless: this.resolvers.passwordlessMutationResolver.signInPasswordless.bind(this.resolvers.passwordlessMutationResolver),\n\t\t\t\tinitSignInPasswordless: this.resolvers.passwordlessMutationResolver.initSignInPasswordless.bind(this.resolvers.passwordlessMutationResolver),\n\t\t\t\tactivatePasswordlessOtp: this.resolvers.passwordlessMutationResolver.activatePasswordlessOtp.bind(this.resolvers.passwordlessMutationResolver),\n\t\t\t\tdisableMyPasswordless: this.resolvers.togglePasswordlessMutationResolver.disableMyPasswordless.bind(this.resolvers.togglePasswordlessMutationResolver),\n\t\t\t\tenableMyPasswordless: this.resolvers.togglePasswordlessMutationResolver.enableMyPasswordless.bind(this.resolvers.togglePasswordlessMutationResolver),\n\n\t\t\t\tinvite: this.resolvers.inviteMutationResolver.invite.bind(this.resolvers.inviteMutationResolver),\n\t\t\t\tunmanagedInvite: this.resolvers.inviteMutationResolver.unmanagedInvite.bind(this.resolvers.inviteMutationResolver),\n\n\t\t\t\taddProjectMember: this.resolvers.addProjectMemberMutationResolver.addProjectMember.bind(this.resolvers.addProjectMemberMutationResolver),\n\t\t\t\tupdateProjectMember: this.resolvers.updateProjectMemberMutationResolver.updateProjectMember.bind(this.resolvers.updateProjectMemberMutationResolver),\n\t\t\t\tremoveProjectMember: this.resolvers.removeProjectMemberMutationResolver.removeProjectMember.bind(this.resolvers.updateProjectMemberMutationResolver),\n\n\t\t\t\tcreateApiKey: this.resolvers.createApiKeyMutationResolver.createApiKey.bind(this.resolvers.createApiKeyMutationResolver),\n\t\t\t\tcreateGlobalApiKey: this.resolvers.createApiKeyMutationResolver.createGlobalApiKey.bind(this.resolvers.createApiKeyMutationResolver),\n\t\t\t\tdisableApiKey: this.resolvers.disableApiKeyMutationResolver.disableApiKey.bind(this.resolvers.disableApiKeyMutationResolver),\n\n\t\t\t\tprepareOtp: this.resolvers.otpMutationResolver.prepareOtp.bind(this.resolvers.otpMutationResolver),\n\t\t\t\tconfirmOtp: this.resolvers.otpMutationResolver.confirmOtp.bind(this.resolvers.otpMutationResolver),\n\t\t\t\tdisableOtp: this.resolvers.otpMutationResolver.disableOtp.bind(this.resolvers.otpMutationResolver),\n\n\t\t\t\taddMailTemplate: this.resolvers.mailTemplateMutationResolver.addMailTemplate.bind(this.resolvers.mailTemplateMutationResolver),\n\t\t\t\tremoveMailTemplate: this.resolvers.mailTemplateMutationResolver.removeMailTemplate.bind(this.resolvers.mailTemplateMutationResolver),\n\n\t\t\t\taddProjectMailTemplate: this.resolvers.mailTemplateMutationResolver.addMailTemplate.bind(this.resolvers.mailTemplateMutationResolver),\n\t\t\t\tremoveProjectMailTemplate: this.resolvers.mailTemplateMutationResolver.removeMailTemplate.bind(this.resolvers.mailTemplateMutationResolver),\n\n\t\t\t\tcreateProject: this.resolvers.createProjectMutationResolver.createProject.bind(this.resolvers.createProjectMutationResolver),\n\t\t\t\tupdateProject: this.resolvers.updateProjectMutationResolver.updateProject.bind(this.resolvers.updateProjectMutationResolver),\n\t\t\t\tsetProjectSecret: this.resolvers.setProjectSecretMutationResolver.setProjectSecret.bind(this.resolvers.setProjectSecretMutationResolver),\n\n\t\t\t\taddGlobalIdentityRoles: this.resolvers.identityGlobalRolesMutationResolver.addGlobalIdentityRoles.bind(this.resolvers.identityGlobalRolesMutationResolver),\n\t\t\t\tremoveGlobalIdentityRoles: this.resolvers.identityGlobalRolesMutationResolver.removeGlobalIdentityRoles.bind(this.resolvers.identityGlobalRolesMutationResolver),\n\n\t\t\t\tconfigure: this.resolvers.configurationMutationResolver.configure.bind(this.resolvers.configurationMutationResolver),\n\t\t\t},\n\t\t}\n\t}\n}\n\nnamespace ResolverFactory {\n\texport type FieldResolverArgs = {\n\t\t[argument: string]: any\n\t}\n}\n\nexport { ResolverFactory }\n"],"names":["JSONType","DateTimeType"],"mappings":"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"}
1
+ {"version":3,"file":"ResolverFactory.cjs","sources":["../../../../../packages/engine-tenant-api/src/resolvers/ResolverFactory.ts"],"sourcesContent":["import {\n\tAddIDPMutationResolver,\n\tAddProjectMemberMutationResolver,\n\tChangePasswordMutationResolver,\n\tChangeProfileMutationResolver,\n\tCreateApiKeyMutationResolver,\n\tCreateProjectMutationResolver,\n\tDisableApiKeyMutationResolver,\n\tDisableIDPMutationResolver,\n\tEnableIDPMutationResolver,\n\tIdentityGlobalRolesMutationResolver,\n\tIDPMutationResolver,\n\tInviteMutationResolver,\n\tMailTemplateMutationResolver,\n\tOtpMutationResolver,\n\tRemoveProjectMemberMutationResolver,\n\tResetPasswordMutationResolver,\n\tSetProjectSecretMutationResolver,\n\tSignInMutationResolver,\n\tSignOutMutationResolver,\n\tSignUpMutationResolver,\n\tUpdateProjectMemberMutationResolver,\n\tUpdateProjectMutationResolver,\n} from './mutation'\n\nimport { Resolvers } from '../schema'\nimport { MeQueryResolver, PersonQueryResolver, ProjectMembersQueryResolver, ProjectQueryResolver } from './query'\nimport { IdentityTypeResolver, ProjectTypeResolver } from './types'\nimport { DateTimeType, IntervalType, JSONType } from '@contember/graphql-utils'\nimport { IDPQueryResolver } from './query/IDPQueryResolver'\nimport { UpdateIDPMutationResolver } from './mutation/idp/UpdateIDPMutationResolver'\nimport { DisablePersonMutationResolver } from './mutation/person/DisablePersonMutationResolver'\nimport { MailTemplateQueryResolver } from './query/MailTemplateQueryResolver'\nimport { ConfigurationMutationResolver } from './mutation/configuration/ConfigurationMutationResolver'\nimport { ConfigurationQueryResolver } from './query/ConfigurationQueryResolver'\nimport { PasswordlessMutationResolver } from './mutation/person/PasswordlessMutationResolver'\nimport { TogglePasswordlessMutationResolver } from './mutation/person/TogglePasswordlessMutationResolver'\n\nclass ResolverFactory {\n\tpublic constructor(\n\t\tprivate readonly resolvers: {\n\t\t\tmeQueryResolver: MeQueryResolver\n\t\t\tpersonQueryResolver: PersonQueryResolver\n\t\t\tprojectQueryResolver: ProjectQueryResolver\n\t\t\tprojectMembersQueryResolver: ProjectMembersQueryResolver\n\t\t\tidpQueryResolver: IDPQueryResolver\n\t\t\tmailTemplateQueryResolver: MailTemplateQueryResolver\n\n\t\t\tsignUpMutationResolver: SignUpMutationResolver\n\t\t\tsignInMutationResolver: SignInMutationResolver\n\t\t\tsignOutMutationResolver: SignOutMutationResolver\n\t\t\tchangeProfileMutationResolver: ChangeProfileMutationResolver\n\t\t\tchangePasswordMutationResolver: ChangePasswordMutationResolver\n\t\t\tresetPasswordMutationResolver: ResetPasswordMutationResolver\n\t\t\tidpMutationResolver: IDPMutationResolver\n\t\t\tregisterIdpMutationResolver: AddIDPMutationResolver\n\t\t\tdisableIdpMutationResolver: DisableIDPMutationResolver\n\t\t\tenableIdpMutationResolver: EnableIDPMutationResolver\n\t\t\tupdateIdpMutationResolver: UpdateIDPMutationResolver\n\t\t\tpasswordlessMutationResolver: PasswordlessMutationResolver\n\n\t\t\tdisablePersonMutationResolver: DisablePersonMutationResolver\n\n\t\t\tinviteMutationResolver: InviteMutationResolver\n\t\t\taddProjectMemberMutationResolver: AddProjectMemberMutationResolver\n\t\t\tupdateProjectMemberMutationResolver: UpdateProjectMemberMutationResolver\n\t\t\tremoveProjectMemberMutationResolver: RemoveProjectMemberMutationResolver\n\n\t\t\tcreateApiKeyMutationResolver: CreateApiKeyMutationResolver\n\t\t\tdisableApiKeyMutationResolver: DisableApiKeyMutationResolver\n\n\t\t\totpMutationResolver: OtpMutationResolver\n\n\t\t\tmailTemplateMutationResolver: MailTemplateMutationResolver\n\n\t\t\tcreateProjectMutationResolver: CreateProjectMutationResolver\n\t\t\tsetProjectSecretMutationResolver: SetProjectSecretMutationResolver\n\t\t\tupdateProjectMutationResolver: UpdateProjectMutationResolver\n\n\t\t\tidentityTypeResolver: IdentityTypeResolver\n\t\t\tprojectTypeResolver: ProjectTypeResolver\n\n\t\t\tidentityGlobalRolesMutationResolver: IdentityGlobalRolesMutationResolver\n\n\t\t\tconfigurationMutationResolver: ConfigurationMutationResolver\n\t\t\tconfigurationQueryResolver: ConfigurationQueryResolver\n\n\t\t\ttogglePasswordlessMutationResolver: TogglePasswordlessMutationResolver\n\n\t\t},\n\t) { }\n\n\tcreate(): Resolvers & { Mutation: Required<Resolvers['Mutation']> } & { Query: Required<Resolvers['Query']> } {\n\t\treturn {\n\t\t\tJson: JSONType,\n\t\t\tDateTime: DateTimeType,\n\t\t\tInterval: IntervalType,\n\t\t\tIdentity: {\n\t\t\t\tprojects: this.resolvers.identityTypeResolver.projects.bind(this.resolvers.identityTypeResolver),\n\t\t\t\tperson: this.resolvers.identityTypeResolver.person.bind(this.resolvers.identityTypeResolver),\n\t\t\t\troles: this.resolvers.identityTypeResolver.roles.bind(this.resolvers.identityTypeResolver),\n\t\t\t\tpermissions: this.resolvers.identityTypeResolver.permissions.bind(this.resolvers.identityTypeResolver),\n\t\t\t},\n\t\t\tProject: {\n\t\t\t\tmembers: this.resolvers.projectTypeResolver.members.bind(this.resolvers.projectTypeResolver),\n\t\t\t\troles: this.resolvers.projectTypeResolver.roles.bind(this.resolvers.projectTypeResolver),\n\t\t\t},\n\t\t\tQuery: {\n\t\t\t\tme: this.resolvers.meQueryResolver.me.bind(this.resolvers.meQueryResolver),\n\t\t\t\tpersonById: this.resolvers.personQueryResolver.personById.bind(this.resolvers.personQueryResolver),\n\t\t\t\tprojectBySlug: this.resolvers.projectQueryResolver.projectBySlug.bind(this.resolvers.projectQueryResolver),\n\t\t\t\tprojects: this.resolvers.projectQueryResolver.projects.bind(this.resolvers.projectQueryResolver),\n\t\t\t\tprojectMemberships: this.resolvers.projectMembersQueryResolver.projectMemberships.bind(this.resolvers.projectMembersQueryResolver),\n\t\t\t\tidentityProviders: this.resolvers.idpQueryResolver.identityProviders.bind(this.resolvers.idpQueryResolver),\n\t\t\t\tmailTemplates: this.resolvers.mailTemplateQueryResolver.mailTemplates.bind(this.resolvers.mailTemplateQueryResolver),\n\t\t\t\tconfiguration: this.resolvers.configurationQueryResolver.configuration.bind(this.resolvers.configurationQueryResolver),\n\t\t\t\tcheckResetPasswordToken: () => {\n\t\t\t\t\tthrow new Error('not implemented')\n\t\t\t\t},\n\t\t\t},\n\t\t\tMutation: {\n\t\t\t\tsignUp: this.resolvers.signUpMutationResolver.signUp.bind(this.resolvers.signUpMutationResolver),\n\t\t\t\tsignIn: this.resolvers.signInMutationResolver.signIn.bind(this.resolvers.signInMutationResolver),\n\t\t\t\tcreateSessionToken: this.resolvers.signInMutationResolver.createSessionToken.bind(this.resolvers.signInMutationResolver),\n\t\t\t\tsignOut: this.resolvers.signOutMutationResolver.signOut.bind(this.resolvers.signOutMutationResolver),\n\n\t\t\t\tchangeProfile: this.resolvers.changeProfileMutationResolver.changeProfile.bind(this.resolvers.changeProfileMutationResolver),\n\t\t\t\tchangeMyProfile: this.resolvers.changeProfileMutationResolver.changeMyProfile.bind(this.resolvers.changeProfileMutationResolver),\n\t\t\t\tchangePassword: this.resolvers.changePasswordMutationResolver.changePassword.bind(this.resolvers.changePasswordMutationResolver),\n\t\t\t\tchangeMyPassword: this.resolvers.changePasswordMutationResolver.changeMyPassword.bind(this.resolvers.changePasswordMutationResolver),\n\t\t\t\tcreateResetPasswordRequest: this.resolvers.resetPasswordMutationResolver.createResetPasswordRequest.bind(this.resolvers.resetPasswordMutationResolver),\n\t\t\t\tresetPassword: this.resolvers.resetPasswordMutationResolver.resetPassword.bind(this.resolvers.resetPasswordMutationResolver),\n\n\t\t\t\tinitSignInIDP: this.resolvers.idpMutationResolver.initSignInIDP.bind(this.resolvers.idpMutationResolver),\n\t\t\t\tsignInIDP: this.resolvers.idpMutationResolver.signInIDP.bind(this.resolvers.idpMutationResolver),\n\t\t\t\taddIDP: this.resolvers.registerIdpMutationResolver.addIDP.bind(this.resolvers.registerIdpMutationResolver),\n\t\t\t\tdisableIDP: this.resolvers.disableIdpMutationResolver.disableIDP.bind(this.resolvers.disableIdpMutationResolver),\n\t\t\t\tenableIDP: this.resolvers.enableIdpMutationResolver.enableIDP.bind(this.resolvers.enableIdpMutationResolver),\n\t\t\t\tupdateIDP: this.resolvers.updateIdpMutationResolver.updateIDP.bind(this.resolvers.updateIdpMutationResolver),\n\t\t\t\tdisablePerson: this.resolvers.disablePersonMutationResolver.disablePerson.bind(this.resolvers.disablePersonMutationResolver),\n\n\t\t\t\tsignInPasswordless: this.resolvers.passwordlessMutationResolver.signInPasswordless.bind(this.resolvers.passwordlessMutationResolver),\n\t\t\t\tinitSignInPasswordless: this.resolvers.passwordlessMutationResolver.initSignInPasswordless.bind(this.resolvers.passwordlessMutationResolver),\n\t\t\t\tactivatePasswordlessOtp: this.resolvers.passwordlessMutationResolver.activatePasswordlessOtp.bind(this.resolvers.passwordlessMutationResolver),\n\t\t\t\tdisableMyPasswordless: this.resolvers.togglePasswordlessMutationResolver.disableMyPasswordless.bind(this.resolvers.togglePasswordlessMutationResolver),\n\t\t\t\tenableMyPasswordless: this.resolvers.togglePasswordlessMutationResolver.enableMyPasswordless.bind(this.resolvers.togglePasswordlessMutationResolver),\n\n\t\t\t\tinvite: this.resolvers.inviteMutationResolver.invite.bind(this.resolvers.inviteMutationResolver),\n\t\t\t\tunmanagedInvite: this.resolvers.inviteMutationResolver.unmanagedInvite.bind(this.resolvers.inviteMutationResolver),\n\n\t\t\t\taddProjectMember: this.resolvers.addProjectMemberMutationResolver.addProjectMember.bind(this.resolvers.addProjectMemberMutationResolver),\n\t\t\t\tupdateProjectMember: this.resolvers.updateProjectMemberMutationResolver.updateProjectMember.bind(this.resolvers.updateProjectMemberMutationResolver),\n\t\t\t\tremoveProjectMember: this.resolvers.removeProjectMemberMutationResolver.removeProjectMember.bind(this.resolvers.updateProjectMemberMutationResolver),\n\n\t\t\t\tcreateApiKey: this.resolvers.createApiKeyMutationResolver.createApiKey.bind(this.resolvers.createApiKeyMutationResolver),\n\t\t\t\tcreateGlobalApiKey: this.resolvers.createApiKeyMutationResolver.createGlobalApiKey.bind(this.resolvers.createApiKeyMutationResolver),\n\t\t\t\tdisableApiKey: this.resolvers.disableApiKeyMutationResolver.disableApiKey.bind(this.resolvers.disableApiKeyMutationResolver),\n\n\t\t\t\tprepareOtp: this.resolvers.otpMutationResolver.prepareOtp.bind(this.resolvers.otpMutationResolver),\n\t\t\t\tconfirmOtp: this.resolvers.otpMutationResolver.confirmOtp.bind(this.resolvers.otpMutationResolver),\n\t\t\t\tdisableOtp: this.resolvers.otpMutationResolver.disableOtp.bind(this.resolvers.otpMutationResolver),\n\n\t\t\t\taddMailTemplate: this.resolvers.mailTemplateMutationResolver.addMailTemplate.bind(this.resolvers.mailTemplateMutationResolver),\n\t\t\t\tremoveMailTemplate: this.resolvers.mailTemplateMutationResolver.removeMailTemplate.bind(this.resolvers.mailTemplateMutationResolver),\n\n\t\t\t\taddProjectMailTemplate: this.resolvers.mailTemplateMutationResolver.addMailTemplate.bind(this.resolvers.mailTemplateMutationResolver),\n\t\t\t\tremoveProjectMailTemplate: this.resolvers.mailTemplateMutationResolver.removeMailTemplate.bind(this.resolvers.mailTemplateMutationResolver),\n\n\t\t\t\tcreateProject: this.resolvers.createProjectMutationResolver.createProject.bind(this.resolvers.createProjectMutationResolver),\n\t\t\t\tupdateProject: this.resolvers.updateProjectMutationResolver.updateProject.bind(this.resolvers.updateProjectMutationResolver),\n\t\t\t\tsetProjectSecret: this.resolvers.setProjectSecretMutationResolver.setProjectSecret.bind(this.resolvers.setProjectSecretMutationResolver),\n\n\t\t\t\taddGlobalIdentityRoles: this.resolvers.identityGlobalRolesMutationResolver.addGlobalIdentityRoles.bind(this.resolvers.identityGlobalRolesMutationResolver),\n\t\t\t\tremoveGlobalIdentityRoles: this.resolvers.identityGlobalRolesMutationResolver.removeGlobalIdentityRoles.bind(this.resolvers.identityGlobalRolesMutationResolver),\n\n\t\t\t\tconfigure: this.resolvers.configurationMutationResolver.configure.bind(this.resolvers.configurationMutationResolver),\n\t\t\t},\n\t\t}\n\t}\n}\n\nnamespace ResolverFactory {\n\texport type FieldResolverArgs = {\n\t\t[argument: string]: any\n\t}\n}\n\nexport { ResolverFactory }\n"],"names":["JSONType","DateTimeType","IntervalType"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { JSONType, DateTimeType } from "@contember/graphql-utils";
1
+ import { JSONType, DateTimeType, IntervalType } from "@contember/graphql-utils";
2
2
  class ResolverFactory {
3
3
  constructor(resolvers) {
4
4
  this.resolvers = resolvers;
@@ -7,6 +7,7 @@ class ResolverFactory {
7
7
  return {
8
8
  Json: JSONType,
9
9
  DateTime: DateTimeType,
10
+ Interval: IntervalType,
10
11
  Identity: {
11
12
  projects: this.resolvers.identityTypeResolver.projects.bind(this.resolvers.identityTypeResolver),
12
13
  person: this.resolvers.identityTypeResolver.person.bind(this.resolvers.identityTypeResolver),
@@ -1 +1 @@
1
- {"version":3,"file":"ResolverFactory.js","sources":["../../../../../packages/engine-tenant-api/src/resolvers/ResolverFactory.ts"],"sourcesContent":["import {\n\tAddIDPMutationResolver,\n\tAddProjectMemberMutationResolver,\n\tChangePasswordMutationResolver,\n\tChangeProfileMutationResolver,\n\tCreateApiKeyMutationResolver,\n\tCreateProjectMutationResolver,\n\tDisableApiKeyMutationResolver,\n\tDisableIDPMutationResolver,\n\tEnableIDPMutationResolver,\n\tIdentityGlobalRolesMutationResolver,\n\tIDPMutationResolver,\n\tInviteMutationResolver,\n\tMailTemplateMutationResolver,\n\tOtpMutationResolver,\n\tRemoveProjectMemberMutationResolver,\n\tResetPasswordMutationResolver,\n\tSetProjectSecretMutationResolver,\n\tSignInMutationResolver,\n\tSignOutMutationResolver,\n\tSignUpMutationResolver,\n\tUpdateProjectMemberMutationResolver,\n\tUpdateProjectMutationResolver,\n} from './mutation'\n\nimport { Resolvers } from '../schema'\nimport { MeQueryResolver, PersonQueryResolver, ProjectMembersQueryResolver, ProjectQueryResolver } from './query'\nimport { IdentityTypeResolver, ProjectTypeResolver } from './types'\nimport { DateTimeType, JSONType } from '@contember/graphql-utils'\nimport { IDPQueryResolver } from './query/IDPQueryResolver'\nimport { UpdateIDPMutationResolver } from './mutation/idp/UpdateIDPMutationResolver'\nimport { DisablePersonMutationResolver } from './mutation/person/DisablePersonMutationResolver'\nimport { MailTemplateQueryResolver } from './query/MailTemplateQueryResolver'\nimport { ConfigurationMutationResolver } from './mutation/configuration/ConfigurationMutationResolver'\nimport { ConfigurationQueryResolver } from './query/ConfigurationQueryResolver'\nimport { PasswordlessMutationResolver } from './mutation/person/PasswordlessMutationResolver'\nimport { TogglePasswordlessMutationResolver } from './mutation/person/TogglePasswordlessMutationResolver'\n\nclass ResolverFactory {\n\tpublic constructor(\n\t\tprivate readonly resolvers: {\n\t\t\tmeQueryResolver: MeQueryResolver\n\t\t\tpersonQueryResolver: PersonQueryResolver\n\t\t\tprojectQueryResolver: ProjectQueryResolver\n\t\t\tprojectMembersQueryResolver: ProjectMembersQueryResolver\n\t\t\tidpQueryResolver: IDPQueryResolver\n\t\t\tmailTemplateQueryResolver: MailTemplateQueryResolver\n\n\t\t\tsignUpMutationResolver: SignUpMutationResolver\n\t\t\tsignInMutationResolver: SignInMutationResolver\n\t\t\tsignOutMutationResolver: SignOutMutationResolver\n\t\t\tchangeProfileMutationResolver: ChangeProfileMutationResolver\n\t\t\tchangePasswordMutationResolver: ChangePasswordMutationResolver\n\t\t\tresetPasswordMutationResolver: ResetPasswordMutationResolver\n\t\t\tidpMutationResolver: IDPMutationResolver\n\t\t\tregisterIdpMutationResolver: AddIDPMutationResolver\n\t\t\tdisableIdpMutationResolver: DisableIDPMutationResolver\n\t\t\tenableIdpMutationResolver: EnableIDPMutationResolver\n\t\t\tupdateIdpMutationResolver: UpdateIDPMutationResolver\n\t\t\tpasswordlessMutationResolver: PasswordlessMutationResolver\n\n\t\t\tdisablePersonMutationResolver: DisablePersonMutationResolver\n\n\t\t\tinviteMutationResolver: InviteMutationResolver\n\t\t\taddProjectMemberMutationResolver: AddProjectMemberMutationResolver\n\t\t\tupdateProjectMemberMutationResolver: UpdateProjectMemberMutationResolver\n\t\t\tremoveProjectMemberMutationResolver: RemoveProjectMemberMutationResolver\n\n\t\t\tcreateApiKeyMutationResolver: CreateApiKeyMutationResolver\n\t\t\tdisableApiKeyMutationResolver: DisableApiKeyMutationResolver\n\n\t\t\totpMutationResolver: OtpMutationResolver\n\n\t\t\tmailTemplateMutationResolver: MailTemplateMutationResolver\n\n\t\t\tcreateProjectMutationResolver: CreateProjectMutationResolver\n\t\t\tsetProjectSecretMutationResolver: SetProjectSecretMutationResolver\n\t\t\tupdateProjectMutationResolver: UpdateProjectMutationResolver\n\n\t\t\tidentityTypeResolver: IdentityTypeResolver\n\t\t\tprojectTypeResolver: ProjectTypeResolver\n\n\t\t\tidentityGlobalRolesMutationResolver: IdentityGlobalRolesMutationResolver\n\n\t\t\tconfigurationMutationResolver: ConfigurationMutationResolver\n\t\t\tconfigurationQueryResolver: ConfigurationQueryResolver\n\n\t\t\ttogglePasswordlessMutationResolver: TogglePasswordlessMutationResolver\n\n\t\t},\n\t) { }\n\n\tcreate(): Resolvers & { Mutation: Required<Resolvers['Mutation']> } & { Query: Required<Resolvers['Query']> } {\n\t\treturn {\n\t\t\tJson: JSONType,\n\t\t\tDateTime: DateTimeType,\n\t\t\tIdentity: {\n\t\t\t\tprojects: this.resolvers.identityTypeResolver.projects.bind(this.resolvers.identityTypeResolver),\n\t\t\t\tperson: this.resolvers.identityTypeResolver.person.bind(this.resolvers.identityTypeResolver),\n\t\t\t\troles: this.resolvers.identityTypeResolver.roles.bind(this.resolvers.identityTypeResolver),\n\t\t\t\tpermissions: this.resolvers.identityTypeResolver.permissions.bind(this.resolvers.identityTypeResolver),\n\t\t\t},\n\t\t\tProject: {\n\t\t\t\tmembers: this.resolvers.projectTypeResolver.members.bind(this.resolvers.projectTypeResolver),\n\t\t\t\troles: this.resolvers.projectTypeResolver.roles.bind(this.resolvers.projectTypeResolver),\n\t\t\t},\n\t\t\tQuery: {\n\t\t\t\tme: this.resolvers.meQueryResolver.me.bind(this.resolvers.meQueryResolver),\n\t\t\t\tpersonById: this.resolvers.personQueryResolver.personById.bind(this.resolvers.personQueryResolver),\n\t\t\t\tprojectBySlug: this.resolvers.projectQueryResolver.projectBySlug.bind(this.resolvers.projectQueryResolver),\n\t\t\t\tprojects: this.resolvers.projectQueryResolver.projects.bind(this.resolvers.projectQueryResolver),\n\t\t\t\tprojectMemberships: this.resolvers.projectMembersQueryResolver.projectMemberships.bind(this.resolvers.projectMembersQueryResolver),\n\t\t\t\tidentityProviders: this.resolvers.idpQueryResolver.identityProviders.bind(this.resolvers.idpQueryResolver),\n\t\t\t\tmailTemplates: this.resolvers.mailTemplateQueryResolver.mailTemplates.bind(this.resolvers.mailTemplateQueryResolver),\n\t\t\t\tconfiguration: this.resolvers.configurationQueryResolver.configuration.bind(this.resolvers.configurationQueryResolver),\n\t\t\t\tcheckResetPasswordToken: () => {\n\t\t\t\t\tthrow new Error('not implemented')\n\t\t\t\t},\n\t\t\t},\n\t\t\tMutation: {\n\t\t\t\tsignUp: this.resolvers.signUpMutationResolver.signUp.bind(this.resolvers.signUpMutationResolver),\n\t\t\t\tsignIn: this.resolvers.signInMutationResolver.signIn.bind(this.resolvers.signInMutationResolver),\n\t\t\t\tcreateSessionToken: this.resolvers.signInMutationResolver.createSessionToken.bind(this.resolvers.signInMutationResolver),\n\t\t\t\tsignOut: this.resolvers.signOutMutationResolver.signOut.bind(this.resolvers.signOutMutationResolver),\n\n\t\t\t\tchangeProfile: this.resolvers.changeProfileMutationResolver.changeProfile.bind(this.resolvers.changeProfileMutationResolver),\n\t\t\t\tchangeMyProfile: this.resolvers.changeProfileMutationResolver.changeMyProfile.bind(this.resolvers.changeProfileMutationResolver),\n\t\t\t\tchangePassword: this.resolvers.changePasswordMutationResolver.changePassword.bind(this.resolvers.changePasswordMutationResolver),\n\t\t\t\tchangeMyPassword: this.resolvers.changePasswordMutationResolver.changeMyPassword.bind(this.resolvers.changePasswordMutationResolver),\n\t\t\t\tcreateResetPasswordRequest: this.resolvers.resetPasswordMutationResolver.createResetPasswordRequest.bind(this.resolvers.resetPasswordMutationResolver),\n\t\t\t\tresetPassword: this.resolvers.resetPasswordMutationResolver.resetPassword.bind(this.resolvers.resetPasswordMutationResolver),\n\n\t\t\t\tinitSignInIDP: this.resolvers.idpMutationResolver.initSignInIDP.bind(this.resolvers.idpMutationResolver),\n\t\t\t\tsignInIDP: this.resolvers.idpMutationResolver.signInIDP.bind(this.resolvers.idpMutationResolver),\n\t\t\t\taddIDP: this.resolvers.registerIdpMutationResolver.addIDP.bind(this.resolvers.registerIdpMutationResolver),\n\t\t\t\tdisableIDP: this.resolvers.disableIdpMutationResolver.disableIDP.bind(this.resolvers.disableIdpMutationResolver),\n\t\t\t\tenableIDP: this.resolvers.enableIdpMutationResolver.enableIDP.bind(this.resolvers.enableIdpMutationResolver),\n\t\t\t\tupdateIDP: this.resolvers.updateIdpMutationResolver.updateIDP.bind(this.resolvers.updateIdpMutationResolver),\n\t\t\t\tdisablePerson: this.resolvers.disablePersonMutationResolver.disablePerson.bind(this.resolvers.disablePersonMutationResolver),\n\n\t\t\t\tsignInPasswordless: this.resolvers.passwordlessMutationResolver.signInPasswordless.bind(this.resolvers.passwordlessMutationResolver),\n\t\t\t\tinitSignInPasswordless: this.resolvers.passwordlessMutationResolver.initSignInPasswordless.bind(this.resolvers.passwordlessMutationResolver),\n\t\t\t\tactivatePasswordlessOtp: this.resolvers.passwordlessMutationResolver.activatePasswordlessOtp.bind(this.resolvers.passwordlessMutationResolver),\n\t\t\t\tdisableMyPasswordless: this.resolvers.togglePasswordlessMutationResolver.disableMyPasswordless.bind(this.resolvers.togglePasswordlessMutationResolver),\n\t\t\t\tenableMyPasswordless: this.resolvers.togglePasswordlessMutationResolver.enableMyPasswordless.bind(this.resolvers.togglePasswordlessMutationResolver),\n\n\t\t\t\tinvite: this.resolvers.inviteMutationResolver.invite.bind(this.resolvers.inviteMutationResolver),\n\t\t\t\tunmanagedInvite: this.resolvers.inviteMutationResolver.unmanagedInvite.bind(this.resolvers.inviteMutationResolver),\n\n\t\t\t\taddProjectMember: this.resolvers.addProjectMemberMutationResolver.addProjectMember.bind(this.resolvers.addProjectMemberMutationResolver),\n\t\t\t\tupdateProjectMember: this.resolvers.updateProjectMemberMutationResolver.updateProjectMember.bind(this.resolvers.updateProjectMemberMutationResolver),\n\t\t\t\tremoveProjectMember: this.resolvers.removeProjectMemberMutationResolver.removeProjectMember.bind(this.resolvers.updateProjectMemberMutationResolver),\n\n\t\t\t\tcreateApiKey: this.resolvers.createApiKeyMutationResolver.createApiKey.bind(this.resolvers.createApiKeyMutationResolver),\n\t\t\t\tcreateGlobalApiKey: this.resolvers.createApiKeyMutationResolver.createGlobalApiKey.bind(this.resolvers.createApiKeyMutationResolver),\n\t\t\t\tdisableApiKey: this.resolvers.disableApiKeyMutationResolver.disableApiKey.bind(this.resolvers.disableApiKeyMutationResolver),\n\n\t\t\t\tprepareOtp: this.resolvers.otpMutationResolver.prepareOtp.bind(this.resolvers.otpMutationResolver),\n\t\t\t\tconfirmOtp: this.resolvers.otpMutationResolver.confirmOtp.bind(this.resolvers.otpMutationResolver),\n\t\t\t\tdisableOtp: this.resolvers.otpMutationResolver.disableOtp.bind(this.resolvers.otpMutationResolver),\n\n\t\t\t\taddMailTemplate: this.resolvers.mailTemplateMutationResolver.addMailTemplate.bind(this.resolvers.mailTemplateMutationResolver),\n\t\t\t\tremoveMailTemplate: this.resolvers.mailTemplateMutationResolver.removeMailTemplate.bind(this.resolvers.mailTemplateMutationResolver),\n\n\t\t\t\taddProjectMailTemplate: this.resolvers.mailTemplateMutationResolver.addMailTemplate.bind(this.resolvers.mailTemplateMutationResolver),\n\t\t\t\tremoveProjectMailTemplate: this.resolvers.mailTemplateMutationResolver.removeMailTemplate.bind(this.resolvers.mailTemplateMutationResolver),\n\n\t\t\t\tcreateProject: this.resolvers.createProjectMutationResolver.createProject.bind(this.resolvers.createProjectMutationResolver),\n\t\t\t\tupdateProject: this.resolvers.updateProjectMutationResolver.updateProject.bind(this.resolvers.updateProjectMutationResolver),\n\t\t\t\tsetProjectSecret: this.resolvers.setProjectSecretMutationResolver.setProjectSecret.bind(this.resolvers.setProjectSecretMutationResolver),\n\n\t\t\t\taddGlobalIdentityRoles: this.resolvers.identityGlobalRolesMutationResolver.addGlobalIdentityRoles.bind(this.resolvers.identityGlobalRolesMutationResolver),\n\t\t\t\tremoveGlobalIdentityRoles: this.resolvers.identityGlobalRolesMutationResolver.removeGlobalIdentityRoles.bind(this.resolvers.identityGlobalRolesMutationResolver),\n\n\t\t\t\tconfigure: this.resolvers.configurationMutationResolver.configure.bind(this.resolvers.configurationMutationResolver),\n\t\t\t},\n\t\t}\n\t}\n}\n\nnamespace ResolverFactory {\n\texport type FieldResolverArgs = {\n\t\t[argument: string]: any\n\t}\n}\n\nexport { ResolverFactory }\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ResolverFactory.js","sources":["../../../../../packages/engine-tenant-api/src/resolvers/ResolverFactory.ts"],"sourcesContent":["import {\n\tAddIDPMutationResolver,\n\tAddProjectMemberMutationResolver,\n\tChangePasswordMutationResolver,\n\tChangeProfileMutationResolver,\n\tCreateApiKeyMutationResolver,\n\tCreateProjectMutationResolver,\n\tDisableApiKeyMutationResolver,\n\tDisableIDPMutationResolver,\n\tEnableIDPMutationResolver,\n\tIdentityGlobalRolesMutationResolver,\n\tIDPMutationResolver,\n\tInviteMutationResolver,\n\tMailTemplateMutationResolver,\n\tOtpMutationResolver,\n\tRemoveProjectMemberMutationResolver,\n\tResetPasswordMutationResolver,\n\tSetProjectSecretMutationResolver,\n\tSignInMutationResolver,\n\tSignOutMutationResolver,\n\tSignUpMutationResolver,\n\tUpdateProjectMemberMutationResolver,\n\tUpdateProjectMutationResolver,\n} from './mutation'\n\nimport { Resolvers } from '../schema'\nimport { MeQueryResolver, PersonQueryResolver, ProjectMembersQueryResolver, ProjectQueryResolver } from './query'\nimport { IdentityTypeResolver, ProjectTypeResolver } from './types'\nimport { DateTimeType, IntervalType, JSONType } from '@contember/graphql-utils'\nimport { IDPQueryResolver } from './query/IDPQueryResolver'\nimport { UpdateIDPMutationResolver } from './mutation/idp/UpdateIDPMutationResolver'\nimport { DisablePersonMutationResolver } from './mutation/person/DisablePersonMutationResolver'\nimport { MailTemplateQueryResolver } from './query/MailTemplateQueryResolver'\nimport { ConfigurationMutationResolver } from './mutation/configuration/ConfigurationMutationResolver'\nimport { ConfigurationQueryResolver } from './query/ConfigurationQueryResolver'\nimport { PasswordlessMutationResolver } from './mutation/person/PasswordlessMutationResolver'\nimport { TogglePasswordlessMutationResolver } from './mutation/person/TogglePasswordlessMutationResolver'\n\nclass ResolverFactory {\n\tpublic constructor(\n\t\tprivate readonly resolvers: {\n\t\t\tmeQueryResolver: MeQueryResolver\n\t\t\tpersonQueryResolver: PersonQueryResolver\n\t\t\tprojectQueryResolver: ProjectQueryResolver\n\t\t\tprojectMembersQueryResolver: ProjectMembersQueryResolver\n\t\t\tidpQueryResolver: IDPQueryResolver\n\t\t\tmailTemplateQueryResolver: MailTemplateQueryResolver\n\n\t\t\tsignUpMutationResolver: SignUpMutationResolver\n\t\t\tsignInMutationResolver: SignInMutationResolver\n\t\t\tsignOutMutationResolver: SignOutMutationResolver\n\t\t\tchangeProfileMutationResolver: ChangeProfileMutationResolver\n\t\t\tchangePasswordMutationResolver: ChangePasswordMutationResolver\n\t\t\tresetPasswordMutationResolver: ResetPasswordMutationResolver\n\t\t\tidpMutationResolver: IDPMutationResolver\n\t\t\tregisterIdpMutationResolver: AddIDPMutationResolver\n\t\t\tdisableIdpMutationResolver: DisableIDPMutationResolver\n\t\t\tenableIdpMutationResolver: EnableIDPMutationResolver\n\t\t\tupdateIdpMutationResolver: UpdateIDPMutationResolver\n\t\t\tpasswordlessMutationResolver: PasswordlessMutationResolver\n\n\t\t\tdisablePersonMutationResolver: DisablePersonMutationResolver\n\n\t\t\tinviteMutationResolver: InviteMutationResolver\n\t\t\taddProjectMemberMutationResolver: AddProjectMemberMutationResolver\n\t\t\tupdateProjectMemberMutationResolver: UpdateProjectMemberMutationResolver\n\t\t\tremoveProjectMemberMutationResolver: RemoveProjectMemberMutationResolver\n\n\t\t\tcreateApiKeyMutationResolver: CreateApiKeyMutationResolver\n\t\t\tdisableApiKeyMutationResolver: DisableApiKeyMutationResolver\n\n\t\t\totpMutationResolver: OtpMutationResolver\n\n\t\t\tmailTemplateMutationResolver: MailTemplateMutationResolver\n\n\t\t\tcreateProjectMutationResolver: CreateProjectMutationResolver\n\t\t\tsetProjectSecretMutationResolver: SetProjectSecretMutationResolver\n\t\t\tupdateProjectMutationResolver: UpdateProjectMutationResolver\n\n\t\t\tidentityTypeResolver: IdentityTypeResolver\n\t\t\tprojectTypeResolver: ProjectTypeResolver\n\n\t\t\tidentityGlobalRolesMutationResolver: IdentityGlobalRolesMutationResolver\n\n\t\t\tconfigurationMutationResolver: ConfigurationMutationResolver\n\t\t\tconfigurationQueryResolver: ConfigurationQueryResolver\n\n\t\t\ttogglePasswordlessMutationResolver: TogglePasswordlessMutationResolver\n\n\t\t},\n\t) { }\n\n\tcreate(): Resolvers & { Mutation: Required<Resolvers['Mutation']> } & { Query: Required<Resolvers['Query']> } {\n\t\treturn {\n\t\t\tJson: JSONType,\n\t\t\tDateTime: DateTimeType,\n\t\t\tInterval: IntervalType,\n\t\t\tIdentity: {\n\t\t\t\tprojects: this.resolvers.identityTypeResolver.projects.bind(this.resolvers.identityTypeResolver),\n\t\t\t\tperson: this.resolvers.identityTypeResolver.person.bind(this.resolvers.identityTypeResolver),\n\t\t\t\troles: this.resolvers.identityTypeResolver.roles.bind(this.resolvers.identityTypeResolver),\n\t\t\t\tpermissions: this.resolvers.identityTypeResolver.permissions.bind(this.resolvers.identityTypeResolver),\n\t\t\t},\n\t\t\tProject: {\n\t\t\t\tmembers: this.resolvers.projectTypeResolver.members.bind(this.resolvers.projectTypeResolver),\n\t\t\t\troles: this.resolvers.projectTypeResolver.roles.bind(this.resolvers.projectTypeResolver),\n\t\t\t},\n\t\t\tQuery: {\n\t\t\t\tme: this.resolvers.meQueryResolver.me.bind(this.resolvers.meQueryResolver),\n\t\t\t\tpersonById: this.resolvers.personQueryResolver.personById.bind(this.resolvers.personQueryResolver),\n\t\t\t\tprojectBySlug: this.resolvers.projectQueryResolver.projectBySlug.bind(this.resolvers.projectQueryResolver),\n\t\t\t\tprojects: this.resolvers.projectQueryResolver.projects.bind(this.resolvers.projectQueryResolver),\n\t\t\t\tprojectMemberships: this.resolvers.projectMembersQueryResolver.projectMemberships.bind(this.resolvers.projectMembersQueryResolver),\n\t\t\t\tidentityProviders: this.resolvers.idpQueryResolver.identityProviders.bind(this.resolvers.idpQueryResolver),\n\t\t\t\tmailTemplates: this.resolvers.mailTemplateQueryResolver.mailTemplates.bind(this.resolvers.mailTemplateQueryResolver),\n\t\t\t\tconfiguration: this.resolvers.configurationQueryResolver.configuration.bind(this.resolvers.configurationQueryResolver),\n\t\t\t\tcheckResetPasswordToken: () => {\n\t\t\t\t\tthrow new Error('not implemented')\n\t\t\t\t},\n\t\t\t},\n\t\t\tMutation: {\n\t\t\t\tsignUp: this.resolvers.signUpMutationResolver.signUp.bind(this.resolvers.signUpMutationResolver),\n\t\t\t\tsignIn: this.resolvers.signInMutationResolver.signIn.bind(this.resolvers.signInMutationResolver),\n\t\t\t\tcreateSessionToken: this.resolvers.signInMutationResolver.createSessionToken.bind(this.resolvers.signInMutationResolver),\n\t\t\t\tsignOut: this.resolvers.signOutMutationResolver.signOut.bind(this.resolvers.signOutMutationResolver),\n\n\t\t\t\tchangeProfile: this.resolvers.changeProfileMutationResolver.changeProfile.bind(this.resolvers.changeProfileMutationResolver),\n\t\t\t\tchangeMyProfile: this.resolvers.changeProfileMutationResolver.changeMyProfile.bind(this.resolvers.changeProfileMutationResolver),\n\t\t\t\tchangePassword: this.resolvers.changePasswordMutationResolver.changePassword.bind(this.resolvers.changePasswordMutationResolver),\n\t\t\t\tchangeMyPassword: this.resolvers.changePasswordMutationResolver.changeMyPassword.bind(this.resolvers.changePasswordMutationResolver),\n\t\t\t\tcreateResetPasswordRequest: this.resolvers.resetPasswordMutationResolver.createResetPasswordRequest.bind(this.resolvers.resetPasswordMutationResolver),\n\t\t\t\tresetPassword: this.resolvers.resetPasswordMutationResolver.resetPassword.bind(this.resolvers.resetPasswordMutationResolver),\n\n\t\t\t\tinitSignInIDP: this.resolvers.idpMutationResolver.initSignInIDP.bind(this.resolvers.idpMutationResolver),\n\t\t\t\tsignInIDP: this.resolvers.idpMutationResolver.signInIDP.bind(this.resolvers.idpMutationResolver),\n\t\t\t\taddIDP: this.resolvers.registerIdpMutationResolver.addIDP.bind(this.resolvers.registerIdpMutationResolver),\n\t\t\t\tdisableIDP: this.resolvers.disableIdpMutationResolver.disableIDP.bind(this.resolvers.disableIdpMutationResolver),\n\t\t\t\tenableIDP: this.resolvers.enableIdpMutationResolver.enableIDP.bind(this.resolvers.enableIdpMutationResolver),\n\t\t\t\tupdateIDP: this.resolvers.updateIdpMutationResolver.updateIDP.bind(this.resolvers.updateIdpMutationResolver),\n\t\t\t\tdisablePerson: this.resolvers.disablePersonMutationResolver.disablePerson.bind(this.resolvers.disablePersonMutationResolver),\n\n\t\t\t\tsignInPasswordless: this.resolvers.passwordlessMutationResolver.signInPasswordless.bind(this.resolvers.passwordlessMutationResolver),\n\t\t\t\tinitSignInPasswordless: this.resolvers.passwordlessMutationResolver.initSignInPasswordless.bind(this.resolvers.passwordlessMutationResolver),\n\t\t\t\tactivatePasswordlessOtp: this.resolvers.passwordlessMutationResolver.activatePasswordlessOtp.bind(this.resolvers.passwordlessMutationResolver),\n\t\t\t\tdisableMyPasswordless: this.resolvers.togglePasswordlessMutationResolver.disableMyPasswordless.bind(this.resolvers.togglePasswordlessMutationResolver),\n\t\t\t\tenableMyPasswordless: this.resolvers.togglePasswordlessMutationResolver.enableMyPasswordless.bind(this.resolvers.togglePasswordlessMutationResolver),\n\n\t\t\t\tinvite: this.resolvers.inviteMutationResolver.invite.bind(this.resolvers.inviteMutationResolver),\n\t\t\t\tunmanagedInvite: this.resolvers.inviteMutationResolver.unmanagedInvite.bind(this.resolvers.inviteMutationResolver),\n\n\t\t\t\taddProjectMember: this.resolvers.addProjectMemberMutationResolver.addProjectMember.bind(this.resolvers.addProjectMemberMutationResolver),\n\t\t\t\tupdateProjectMember: this.resolvers.updateProjectMemberMutationResolver.updateProjectMember.bind(this.resolvers.updateProjectMemberMutationResolver),\n\t\t\t\tremoveProjectMember: this.resolvers.removeProjectMemberMutationResolver.removeProjectMember.bind(this.resolvers.updateProjectMemberMutationResolver),\n\n\t\t\t\tcreateApiKey: this.resolvers.createApiKeyMutationResolver.createApiKey.bind(this.resolvers.createApiKeyMutationResolver),\n\t\t\t\tcreateGlobalApiKey: this.resolvers.createApiKeyMutationResolver.createGlobalApiKey.bind(this.resolvers.createApiKeyMutationResolver),\n\t\t\t\tdisableApiKey: this.resolvers.disableApiKeyMutationResolver.disableApiKey.bind(this.resolvers.disableApiKeyMutationResolver),\n\n\t\t\t\tprepareOtp: this.resolvers.otpMutationResolver.prepareOtp.bind(this.resolvers.otpMutationResolver),\n\t\t\t\tconfirmOtp: this.resolvers.otpMutationResolver.confirmOtp.bind(this.resolvers.otpMutationResolver),\n\t\t\t\tdisableOtp: this.resolvers.otpMutationResolver.disableOtp.bind(this.resolvers.otpMutationResolver),\n\n\t\t\t\taddMailTemplate: this.resolvers.mailTemplateMutationResolver.addMailTemplate.bind(this.resolvers.mailTemplateMutationResolver),\n\t\t\t\tremoveMailTemplate: this.resolvers.mailTemplateMutationResolver.removeMailTemplate.bind(this.resolvers.mailTemplateMutationResolver),\n\n\t\t\t\taddProjectMailTemplate: this.resolvers.mailTemplateMutationResolver.addMailTemplate.bind(this.resolvers.mailTemplateMutationResolver),\n\t\t\t\tremoveProjectMailTemplate: this.resolvers.mailTemplateMutationResolver.removeMailTemplate.bind(this.resolvers.mailTemplateMutationResolver),\n\n\t\t\t\tcreateProject: this.resolvers.createProjectMutationResolver.createProject.bind(this.resolvers.createProjectMutationResolver),\n\t\t\t\tupdateProject: this.resolvers.updateProjectMutationResolver.updateProject.bind(this.resolvers.updateProjectMutationResolver),\n\t\t\t\tsetProjectSecret: this.resolvers.setProjectSecretMutationResolver.setProjectSecret.bind(this.resolvers.setProjectSecretMutationResolver),\n\n\t\t\t\taddGlobalIdentityRoles: this.resolvers.identityGlobalRolesMutationResolver.addGlobalIdentityRoles.bind(this.resolvers.identityGlobalRolesMutationResolver),\n\t\t\t\tremoveGlobalIdentityRoles: this.resolvers.identityGlobalRolesMutationResolver.removeGlobalIdentityRoles.bind(this.resolvers.identityGlobalRolesMutationResolver),\n\n\t\t\t\tconfigure: this.resolvers.configurationMutationResolver.configure.bind(this.resolvers.configurationMutationResolver),\n\t\t\t},\n\t\t}\n\t}\n}\n\nnamespace ResolverFactory {\n\texport type FieldResolverArgs = {\n\t\t[argument: string]: any\n\t}\n}\n\nexport { ResolverFactory }\n"],"names":[],"mappings":";AAsCA,MAAM,gBAAgB;AAAA,EACd,YACW,WAkDhB;AAlDgB,SAAA,YAAA;AAAA,EAAA;AAAA,EAoDlB,SAA8G;AACtG,WAAA;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,MACV,UAAU;AAAA,MACV,UAAU;AAAA,QACT,UAAU,KAAK,UAAU,qBAAqB,SAAS,KAAK,KAAK,UAAU,oBAAoB;AAAA,QAC/F,QAAQ,KAAK,UAAU,qBAAqB,OAAO,KAAK,KAAK,UAAU,oBAAoB;AAAA,QAC3F,OAAO,KAAK,UAAU,qBAAqB,MAAM,KAAK,KAAK,UAAU,oBAAoB;AAAA,QACzF,aAAa,KAAK,UAAU,qBAAqB,YAAY,KAAK,KAAK,UAAU,oBAAoB;AAAA,MACtG;AAAA,MACA,SAAS;AAAA,QACR,SAAS,KAAK,UAAU,oBAAoB,QAAQ,KAAK,KAAK,UAAU,mBAAmB;AAAA,QAC3F,OAAO,KAAK,UAAU,oBAAoB,MAAM,KAAK,KAAK,UAAU,mBAAmB;AAAA,MACxF;AAAA,MACA,OAAO;AAAA,QACN,IAAI,KAAK,UAAU,gBAAgB,GAAG,KAAK,KAAK,UAAU,eAAe;AAAA,QACzE,YAAY,KAAK,UAAU,oBAAoB,WAAW,KAAK,KAAK,UAAU,mBAAmB;AAAA,QACjG,eAAe,KAAK,UAAU,qBAAqB,cAAc,KAAK,KAAK,UAAU,oBAAoB;AAAA,QACzG,UAAU,KAAK,UAAU,qBAAqB,SAAS,KAAK,KAAK,UAAU,oBAAoB;AAAA,QAC/F,oBAAoB,KAAK,UAAU,4BAA4B,mBAAmB,KAAK,KAAK,UAAU,2BAA2B;AAAA,QACjI,mBAAmB,KAAK,UAAU,iBAAiB,kBAAkB,KAAK,KAAK,UAAU,gBAAgB;AAAA,QACzG,eAAe,KAAK,UAAU,0BAA0B,cAAc,KAAK,KAAK,UAAU,yBAAyB;AAAA,QACnH,eAAe,KAAK,UAAU,2BAA2B,cAAc,KAAK,KAAK,UAAU,0BAA0B;AAAA,QACrH,yBAAyB,MAAM;AACxB,gBAAA,IAAI,MAAM,iBAAiB;AAAA,QAAA;AAAA,MAEnC;AAAA,MACA,UAAU;AAAA,QACT,QAAQ,KAAK,UAAU,uBAAuB,OAAO,KAAK,KAAK,UAAU,sBAAsB;AAAA,QAC/F,QAAQ,KAAK,UAAU,uBAAuB,OAAO,KAAK,KAAK,UAAU,sBAAsB;AAAA,QAC/F,oBAAoB,KAAK,UAAU,uBAAuB,mBAAmB,KAAK,KAAK,UAAU,sBAAsB;AAAA,QACvH,SAAS,KAAK,UAAU,wBAAwB,QAAQ,KAAK,KAAK,UAAU,uBAAuB;AAAA,QAEnG,eAAe,KAAK,UAAU,8BAA8B,cAAc,KAAK,KAAK,UAAU,6BAA6B;AAAA,QAC3H,iBAAiB,KAAK,UAAU,8BAA8B,gBAAgB,KAAK,KAAK,UAAU,6BAA6B;AAAA,QAC/H,gBAAgB,KAAK,UAAU,+BAA+B,eAAe,KAAK,KAAK,UAAU,8BAA8B;AAAA,QAC/H,kBAAkB,KAAK,UAAU,+BAA+B,iBAAiB,KAAK,KAAK,UAAU,8BAA8B;AAAA,QACnI,4BAA4B,KAAK,UAAU,8BAA8B,2BAA2B,KAAK,KAAK,UAAU,6BAA6B;AAAA,QACrJ,eAAe,KAAK,UAAU,8BAA8B,cAAc,KAAK,KAAK,UAAU,6BAA6B;AAAA,QAE3H,eAAe,KAAK,UAAU,oBAAoB,cAAc,KAAK,KAAK,UAAU,mBAAmB;AAAA,QACvG,WAAW,KAAK,UAAU,oBAAoB,UAAU,KAAK,KAAK,UAAU,mBAAmB;AAAA,QAC/F,QAAQ,KAAK,UAAU,4BAA4B,OAAO,KAAK,KAAK,UAAU,2BAA2B;AAAA,QACzG,YAAY,KAAK,UAAU,2BAA2B,WAAW,KAAK,KAAK,UAAU,0BAA0B;AAAA,QAC/G,WAAW,KAAK,UAAU,0BAA0B,UAAU,KAAK,KAAK,UAAU,yBAAyB;AAAA,QAC3G,WAAW,KAAK,UAAU,0BAA0B,UAAU,KAAK,KAAK,UAAU,yBAAyB;AAAA,QAC3G,eAAe,KAAK,UAAU,8BAA8B,cAAc,KAAK,KAAK,UAAU,6BAA6B;AAAA,QAE3H,oBAAoB,KAAK,UAAU,6BAA6B,mBAAmB,KAAK,KAAK,UAAU,4BAA4B;AAAA,QACnI,wBAAwB,KAAK,UAAU,6BAA6B,uBAAuB,KAAK,KAAK,UAAU,4BAA4B;AAAA,QAC3I,yBAAyB,KAAK,UAAU,6BAA6B,wBAAwB,KAAK,KAAK,UAAU,4BAA4B;AAAA,QAC7I,uBAAuB,KAAK,UAAU,mCAAmC,sBAAsB,KAAK,KAAK,UAAU,kCAAkC;AAAA,QACrJ,sBAAsB,KAAK,UAAU,mCAAmC,qBAAqB,KAAK,KAAK,UAAU,kCAAkC;AAAA,QAEnJ,QAAQ,KAAK,UAAU,uBAAuB,OAAO,KAAK,KAAK,UAAU,sBAAsB;AAAA,QAC/F,iBAAiB,KAAK,UAAU,uBAAuB,gBAAgB,KAAK,KAAK,UAAU,sBAAsB;AAAA,QAEjH,kBAAkB,KAAK,UAAU,iCAAiC,iBAAiB,KAAK,KAAK,UAAU,gCAAgC;AAAA,QACvI,qBAAqB,KAAK,UAAU,oCAAoC,oBAAoB,KAAK,KAAK,UAAU,mCAAmC;AAAA,QACnJ,qBAAqB,KAAK,UAAU,oCAAoC,oBAAoB,KAAK,KAAK,UAAU,mCAAmC;AAAA,QAEnJ,cAAc,KAAK,UAAU,6BAA6B,aAAa,KAAK,KAAK,UAAU,4BAA4B;AAAA,QACvH,oBAAoB,KAAK,UAAU,6BAA6B,mBAAmB,KAAK,KAAK,UAAU,4BAA4B;AAAA,QACnI,eAAe,KAAK,UAAU,8BAA8B,cAAc,KAAK,KAAK,UAAU,6BAA6B;AAAA,QAE3H,YAAY,KAAK,UAAU,oBAAoB,WAAW,KAAK,KAAK,UAAU,mBAAmB;AAAA,QACjG,YAAY,KAAK,UAAU,oBAAoB,WAAW,KAAK,KAAK,UAAU,mBAAmB;AAAA,QACjG,YAAY,KAAK,UAAU,oBAAoB,WAAW,KAAK,KAAK,UAAU,mBAAmB;AAAA,QAEjG,iBAAiB,KAAK,UAAU,6BAA6B,gBAAgB,KAAK,KAAK,UAAU,4BAA4B;AAAA,QAC7H,oBAAoB,KAAK,UAAU,6BAA6B,mBAAmB,KAAK,KAAK,UAAU,4BAA4B;AAAA,QAEnI,wBAAwB,KAAK,UAAU,6BAA6B,gBAAgB,KAAK,KAAK,UAAU,4BAA4B;AAAA,QACpI,2BAA2B,KAAK,UAAU,6BAA6B,mBAAmB,KAAK,KAAK,UAAU,4BAA4B;AAAA,QAE1I,eAAe,KAAK,UAAU,8BAA8B,cAAc,KAAK,KAAK,UAAU,6BAA6B;AAAA,QAC3H,eAAe,KAAK,UAAU,8BAA8B,cAAc,KAAK,KAAK,UAAU,6BAA6B;AAAA,QAC3H,kBAAkB,KAAK,UAAU,iCAAiC,iBAAiB,KAAK,KAAK,UAAU,gCAAgC;AAAA,QAEvI,wBAAwB,KAAK,UAAU,oCAAoC,uBAAuB,KAAK,KAAK,UAAU,mCAAmC;AAAA,QACzJ,2BAA2B,KAAK,UAAU,oCAAoC,0BAA0B,KAAK,KAAK,UAAU,mCAAmC;AAAA,QAE/J,WAAW,KAAK,UAAU,8BAA8B,UAAU,KAAK,KAAK,UAAU,6BAA6B;AAAA,MAAA;AAAA,IAErH;AAAA,EAAA;AAEF;"}
@@ -10,16 +10,24 @@ const createResolverContext = (permissionContext, apiKeyId) => {
10
10
  };
11
11
  };
12
12
  class TenantResolverContextFactory {
13
- constructor(permissionContextFactory) {
13
+ constructor(permissionContextFactory, authLogService) {
14
14
  this.permissionContextFactory = permissionContextFactory;
15
+ this.authLogService = authLogService;
15
16
  }
16
- create(authContext, db, logger) {
17
+ create(authContext, httpInfo, db, logger) {
17
18
  const permissionContext = this.permissionContextFactory.create(db, {
18
19
  id: authContext.identityId,
19
20
  roles: authContext.roles
20
21
  });
21
22
  return {
22
23
  ...createResolverContext(permissionContext, authContext.apiKeyId),
24
+ logAuthAction: async (data) => {
25
+ await this.authLogService.logAuthAction(db, {
26
+ identityId: authContext.identityId,
27
+ userAgent: httpInfo.userAgent,
28
+ clientIp: httpInfo.ip
29
+ }, data);
30
+ },
23
31
  db,
24
32
  logger
25
33
  };
@@ -1 +1 @@
1
- {"version":3,"file":"TenantResolverContextFactory.cjs","sources":["../../../../../packages/engine-tenant-api/src/resolvers/TenantResolverContextFactory.ts"],"sourcesContent":["import { TenantResolverContext } from './TenantResolverContext'\nimport { DatabaseContext, PermissionContext, PermissionContextFactory } from '../model'\nimport { Logger } from '@contember/logger'\n\nexport const createResolverContext = (permissionContext: PermissionContext, apiKeyId: string) => {\n\treturn {\n\t\tapiKeyId: apiKeyId,\n\t\tpermissionContext,\n\t\tidentity: permissionContext.identity,\n\t\tisAllowed: permissionContext.isAllowed.bind(permissionContext),\n\t\trequireAccess: permissionContext.requireAccess.bind(permissionContext),\n\t}\n}\n\nexport class TenantResolverContextFactory {\n\tconstructor(\n\t\tprivate readonly permissionContextFactory: PermissionContextFactory,\n\t) {}\n\n\tpublic create(\n\t\tauthContext: { apiKeyId: string; identityId: string; roles: string[] },\n\t\tdb: DatabaseContext,\n\t\tlogger: Logger,\n\t): TenantResolverContext {\n\t\tconst permissionContext = this.permissionContextFactory.create(db, {\n\t\t\tid: authContext.identityId,\n\t\t\troles: authContext.roles,\n\t\t})\n\t\treturn {\n\t\t\t...createResolverContext(permissionContext, authContext.apiKeyId),\n\t\t\tdb,\n\t\t\tlogger,\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;AAIa,MAAA,wBAAwB,CAAC,mBAAsC,aAAqB;AACzF,SAAA;AAAA,IACN;AAAA,IACA;AAAA,IACA,UAAU,kBAAkB;AAAA,IAC5B,WAAW,kBAAkB,UAAU,KAAK,iBAAiB;AAAA,IAC7D,eAAe,kBAAkB,cAAc,KAAK,iBAAiB;AAAA,EACtE;AACD;AAEO,MAAM,6BAA6B;AAAA,EACzC,YACkB,0BAChB;AADgB,SAAA,2BAAA;AAAA,EAAA;AAAA,EAGX,OACN,aACA,IACA,QACwB;AACxB,UAAM,oBAAoB,KAAK,yBAAyB,OAAO,IAAI;AAAA,MAClE,IAAI,YAAY;AAAA,MAChB,OAAO,YAAY;AAAA,IAAA,CACnB;AACM,WAAA;AAAA,MACN,GAAG,sBAAsB,mBAAmB,YAAY,QAAQ;AAAA,MAChE;AAAA,MACA;AAAA,IACD;AAAA,EAAA;AAEF;;;"}
1
+ {"version":3,"file":"TenantResolverContextFactory.cjs","sources":["../../../../../packages/engine-tenant-api/src/resolvers/TenantResolverContextFactory.ts"],"sourcesContent":["import { TenantResolverContext } from './TenantResolverContext'\nimport { DatabaseContext, PermissionContext, PermissionContextFactory } from '../model'\nimport { Logger } from '@contember/logger'\nimport { AuthLogService } from '../model/service/AuthLogService'\n\nexport const createResolverContext = (permissionContext: PermissionContext, apiKeyId: string) => {\n\treturn {\n\t\tapiKeyId: apiKeyId,\n\t\tpermissionContext,\n\t\tidentity: permissionContext.identity,\n\t\tisAllowed: permissionContext.isAllowed.bind(permissionContext),\n\t\trequireAccess: permissionContext.requireAccess.bind(permissionContext),\n\t}\n}\n\nexport class TenantResolverContextFactory {\n\tconstructor(\n\t\tprivate readonly permissionContextFactory: PermissionContextFactory,\n\t\tprivate readonly authLogService: AuthLogService,\n\t) {}\n\n\tpublic create(\n\t\tauthContext: { apiKeyId: string; identityId: string; roles: string[] },\n\t\thttpInfo: { ip: string; userAgent?: string },\n\t\tdb: DatabaseContext,\n\t\tlogger: Logger,\n\t): TenantResolverContext {\n\t\tconst permissionContext = this.permissionContextFactory.create(db, {\n\t\t\tid: authContext.identityId,\n\t\t\troles: authContext.roles,\n\t\t})\n\t\treturn {\n\t\t\t...createResolverContext(permissionContext, authContext.apiKeyId),\n\t\t\tlogAuthAction: async data => {\n\t\t\t\tawait this.authLogService.logAuthAction(db, {\n\t\t\t\t\tidentityId: authContext.identityId,\n\t\t\t\t\tuserAgent: httpInfo.userAgent,\n\t\t\t\t\tclientIp: httpInfo.ip,\n\t\t\t\t}, data)\n\t\t\t},\n\t\t\tdb,\n\t\t\tlogger,\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;AAKa,MAAA,wBAAwB,CAAC,mBAAsC,aAAqB;AACzF,SAAA;AAAA,IACN;AAAA,IACA;AAAA,IACA,UAAU,kBAAkB;AAAA,IAC5B,WAAW,kBAAkB,UAAU,KAAK,iBAAiB;AAAA,IAC7D,eAAe,kBAAkB,cAAc,KAAK,iBAAiB;AAAA,EACtE;AACD;AAEO,MAAM,6BAA6B;AAAA,EACzC,YACkB,0BACA,gBAChB;AAFgB,SAAA,2BAAA;AACA,SAAA,iBAAA;AAAA,EAAA;AAAA,EAGX,OACN,aACA,UACA,IACA,QACwB;AACxB,UAAM,oBAAoB,KAAK,yBAAyB,OAAO,IAAI;AAAA,MAClE,IAAI,YAAY;AAAA,MAChB,OAAO,YAAY;AAAA,IAAA,CACnB;AACM,WAAA;AAAA,MACN,GAAG,sBAAsB,mBAAmB,YAAY,QAAQ;AAAA,MAChE,eAAe,OAAM,SAAQ;AACtB,cAAA,KAAK,eAAe,cAAc,IAAI;AAAA,UAC3C,YAAY,YAAY;AAAA,UACxB,WAAW,SAAS;AAAA,UACpB,UAAU,SAAS;AAAA,WACjB,IAAI;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EAAA;AAEF;;;"}
@@ -8,16 +8,24 @@ const createResolverContext = (permissionContext, apiKeyId) => {
8
8
  };
9
9
  };
10
10
  class TenantResolverContextFactory {
11
- constructor(permissionContextFactory) {
11
+ constructor(permissionContextFactory, authLogService) {
12
12
  this.permissionContextFactory = permissionContextFactory;
13
+ this.authLogService = authLogService;
13
14
  }
14
- create(authContext, db, logger) {
15
+ create(authContext, httpInfo, db, logger) {
15
16
  const permissionContext = this.permissionContextFactory.create(db, {
16
17
  id: authContext.identityId,
17
18
  roles: authContext.roles
18
19
  });
19
20
  return {
20
21
  ...createResolverContext(permissionContext, authContext.apiKeyId),
22
+ logAuthAction: async (data) => {
23
+ await this.authLogService.logAuthAction(db, {
24
+ identityId: authContext.identityId,
25
+ userAgent: httpInfo.userAgent,
26
+ clientIp: httpInfo.ip
27
+ }, data);
28
+ },
21
29
  db,
22
30
  logger
23
31
  };
@@ -1 +1 @@
1
- {"version":3,"file":"TenantResolverContextFactory.js","sources":["../../../../../packages/engine-tenant-api/src/resolvers/TenantResolverContextFactory.ts"],"sourcesContent":["import { TenantResolverContext } from './TenantResolverContext'\nimport { DatabaseContext, PermissionContext, PermissionContextFactory } from '../model'\nimport { Logger } from '@contember/logger'\n\nexport const createResolverContext = (permissionContext: PermissionContext, apiKeyId: string) => {\n\treturn {\n\t\tapiKeyId: apiKeyId,\n\t\tpermissionContext,\n\t\tidentity: permissionContext.identity,\n\t\tisAllowed: permissionContext.isAllowed.bind(permissionContext),\n\t\trequireAccess: permissionContext.requireAccess.bind(permissionContext),\n\t}\n}\n\nexport class TenantResolverContextFactory {\n\tconstructor(\n\t\tprivate readonly permissionContextFactory: PermissionContextFactory,\n\t) {}\n\n\tpublic create(\n\t\tauthContext: { apiKeyId: string; identityId: string; roles: string[] },\n\t\tdb: DatabaseContext,\n\t\tlogger: Logger,\n\t): TenantResolverContext {\n\t\tconst permissionContext = this.permissionContextFactory.create(db, {\n\t\t\tid: authContext.identityId,\n\t\t\troles: authContext.roles,\n\t\t})\n\t\treturn {\n\t\t\t...createResolverContext(permissionContext, authContext.apiKeyId),\n\t\t\tdb,\n\t\t\tlogger,\n\t\t}\n\t}\n}\n"],"names":[],"mappings":"AAIa,MAAA,wBAAwB,CAAC,mBAAsC,aAAqB;AACzF,SAAA;AAAA,IACN;AAAA,IACA;AAAA,IACA,UAAU,kBAAkB;AAAA,IAC5B,WAAW,kBAAkB,UAAU,KAAK,iBAAiB;AAAA,IAC7D,eAAe,kBAAkB,cAAc,KAAK,iBAAiB;AAAA,EACtE;AACD;AAEO,MAAM,6BAA6B;AAAA,EACzC,YACkB,0BAChB;AADgB,SAAA,2BAAA;AAAA,EAAA;AAAA,EAGX,OACN,aACA,IACA,QACwB;AACxB,UAAM,oBAAoB,KAAK,yBAAyB,OAAO,IAAI;AAAA,MAClE,IAAI,YAAY;AAAA,MAChB,OAAO,YAAY;AAAA,IAAA,CACnB;AACM,WAAA;AAAA,MACN,GAAG,sBAAsB,mBAAmB,YAAY,QAAQ;AAAA,MAChE;AAAA,MACA;AAAA,IACD;AAAA,EAAA;AAEF;"}
1
+ {"version":3,"file":"TenantResolverContextFactory.js","sources":["../../../../../packages/engine-tenant-api/src/resolvers/TenantResolverContextFactory.ts"],"sourcesContent":["import { TenantResolverContext } from './TenantResolverContext'\nimport { DatabaseContext, PermissionContext, PermissionContextFactory } from '../model'\nimport { Logger } from '@contember/logger'\nimport { AuthLogService } from '../model/service/AuthLogService'\n\nexport const createResolverContext = (permissionContext: PermissionContext, apiKeyId: string) => {\n\treturn {\n\t\tapiKeyId: apiKeyId,\n\t\tpermissionContext,\n\t\tidentity: permissionContext.identity,\n\t\tisAllowed: permissionContext.isAllowed.bind(permissionContext),\n\t\trequireAccess: permissionContext.requireAccess.bind(permissionContext),\n\t}\n}\n\nexport class TenantResolverContextFactory {\n\tconstructor(\n\t\tprivate readonly permissionContextFactory: PermissionContextFactory,\n\t\tprivate readonly authLogService: AuthLogService,\n\t) {}\n\n\tpublic create(\n\t\tauthContext: { apiKeyId: string; identityId: string; roles: string[] },\n\t\thttpInfo: { ip: string; userAgent?: string },\n\t\tdb: DatabaseContext,\n\t\tlogger: Logger,\n\t): TenantResolverContext {\n\t\tconst permissionContext = this.permissionContextFactory.create(db, {\n\t\t\tid: authContext.identityId,\n\t\t\troles: authContext.roles,\n\t\t})\n\t\treturn {\n\t\t\t...createResolverContext(permissionContext, authContext.apiKeyId),\n\t\t\tlogAuthAction: async data => {\n\t\t\t\tawait this.authLogService.logAuthAction(db, {\n\t\t\t\t\tidentityId: authContext.identityId,\n\t\t\t\t\tuserAgent: httpInfo.userAgent,\n\t\t\t\t\tclientIp: httpInfo.ip,\n\t\t\t\t}, data)\n\t\t\t},\n\t\t\tdb,\n\t\t\tlogger,\n\t\t}\n\t}\n}\n"],"names":[],"mappings":"AAKa,MAAA,wBAAwB,CAAC,mBAAsC,aAAqB;AACzF,SAAA;AAAA,IACN;AAAA,IACA;AAAA,IACA,UAAU,kBAAkB;AAAA,IAC5B,WAAW,kBAAkB,UAAU,KAAK,iBAAiB;AAAA,IAC7D,eAAe,kBAAkB,cAAc,KAAK,iBAAiB;AAAA,EACtE;AACD;AAEO,MAAM,6BAA6B;AAAA,EACzC,YACkB,0BACA,gBAChB;AAFgB,SAAA,2BAAA;AACA,SAAA,iBAAA;AAAA,EAAA;AAAA,EAGX,OACN,aACA,UACA,IACA,QACwB;AACxB,UAAM,oBAAoB,KAAK,yBAAyB,OAAO,IAAI;AAAA,MAClE,IAAI,YAAY;AAAA,MAChB,OAAO,YAAY;AAAA,IAAA,CACnB;AACM,WAAA;AAAA,MACN,GAAG,sBAAsB,mBAAmB,YAAY,QAAQ;AAAA,MAChE,eAAe,OAAM,SAAQ;AACtB,cAAA,KAAK,eAAe,cAAc,IAAI;AAAA,UAC3C,YAAY,YAAY;AAAA,UACxB,WAAW,SAAS;AAAA,UACpB,UAAU,SAAS;AAAA,WACjB,IAAI;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EAAA;AAEF;"}
@@ -1,9 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const createErrorResponse = (code, developerMessage) => {
4
- const error = { code, developerMessage };
5
- return { ok: false, error, errors: [error] };
6
- };
3
+ function createErrorResponse(codeOrErrorResponse, developerMessage) {
4
+ if (typeof codeOrErrorResponse === "string") {
5
+ if (!developerMessage) {
6
+ throw new Error("Developer message is required when passing a string as code.");
7
+ }
8
+ const error2 = { code: codeOrErrorResponse, developerMessage };
9
+ return { ok: false, error: error2, errors: [error2] };
10
+ }
11
+ const error = { code: codeOrErrorResponse.error, developerMessage: codeOrErrorResponse.errorMessage, ...codeOrErrorResponse.metadata ?? {} };
12
+ return {
13
+ ok: false,
14
+ error,
15
+ errors: [error]
16
+ };
17
+ }
7
18
  const createProjectNotFoundResponse = (code, projectSlug) => createErrorResponse(code, `Project ${projectSlug} was not found or you are not allowed to access it.`);
8
19
  exports.createErrorResponse = createErrorResponse;
9
20
  exports.createProjectNotFoundResponse = createProjectNotFoundResponse;
@@ -1 +1 @@
1
- {"version":3,"file":"errorUtils.cjs","sources":["../../../../../packages/engine-tenant-api/src/resolvers/errorUtils.ts"],"sourcesContent":["type Error<T> = { code: T; developerMessage: string }\ntype ErrorResponse<T> = { ok: false; error: Error<T>; errors: [Error<T>] }\nexport const createErrorResponse = <T>(code: T, developerMessage: string): ErrorResponse<T> => {\n\tconst error = { code, developerMessage }\n\treturn { ok: false, error, errors: [error] }\n}\nexport const createProjectNotFoundResponse = <const T>(code: T, projectSlug: string): ErrorResponse<T> =>\n\tcreateErrorResponse(code, `Project ${projectSlug} was not found or you are not allowed to access it.`)\n"],"names":[],"mappings":";;AAEa,MAAA,sBAAsB,CAAI,MAAS,qBAA+C;AACxF,QAAA,QAAQ,EAAE,MAAM,iBAAiB;AACvC,SAAO,EAAE,IAAI,OAAO,OAAO,QAAQ,CAAC,KAAK,EAAE;AAC5C;AACa,MAAA,gCAAgC,CAAU,MAAS,gBAC/D,oBAAoB,MAAM,WAAW,WAAW,qDAAqD;;;"}
1
+ {"version":3,"file":"errorUtils.cjs","sources":["../../../../../packages/engine-tenant-api/src/resolvers/errorUtils.ts"],"sourcesContent":["import { ResponseError } from '../model/utils/Response'\n\ntype Error<T> = { code: T; developerMessage: string }\ntype ErrorResponse<T, Meta = {}> = { ok: false; error: Error<T> & Meta; errors: [Error<T> & Meta] }\n\n\nexport function createErrorResponse <const T extends string, Meta extends {} | undefined>(responseError: ResponseError<T, Meta>): ErrorResponse<T, Meta>\nexport function createErrorResponse <const T extends string>(code: T, developerMessage: string): ErrorResponse<T>\nexport function createErrorResponse (codeOrErrorResponse: string | ResponseError<any>, developerMessage?: string): ErrorResponse<any> {\n\tif (typeof codeOrErrorResponse === 'string') {\n\t\tif (!developerMessage) {\n\t\t\tthrow new Error('Developer message is required when passing a string as code.')\n\t\t}\n\t\tconst error = { code: codeOrErrorResponse, developerMessage }\n\t\treturn { ok: false, error, errors: [error] }\n\t}\n\tconst error = { code: codeOrErrorResponse.error, developerMessage: codeOrErrorResponse.errorMessage, ...(codeOrErrorResponse.metadata ?? {}) }\n\treturn {\n\t\tok: false,\n\t\terror,\n\t\terrors: [error],\n\t}\n}\n\nexport const createProjectNotFoundResponse = <const T extends string>(code: T, projectSlug: string): ErrorResponse<T> =>\n\tcreateErrorResponse(code, `Project ${projectSlug} was not found or you are not allowed to access it.`)\n"],"names":["error"],"mappings":";;AAQgB,SAAA,oBAAqB,qBAAkD,kBAA+C;AACjI,MAAA,OAAO,wBAAwB,UAAU;AAC5C,QAAI,CAAC,kBAAkB;AAChB,YAAA,IAAI,MAAM,8DAA8D;AAAA,IAAA;AAE/E,UAAMA,SAAQ,EAAE,MAAM,qBAAqB,iBAAiB;AACrD,WAAA,EAAE,IAAI,OAAO,OAAAA,QAAO,QAAQ,CAACA,MAAK,EAAE;AAAA,EAAA;AAE5C,QAAM,QAAQ,EAAE,MAAM,oBAAoB,OAAO,kBAAkB,oBAAoB,cAAc,GAAI,oBAAoB,YAAY,CAAA,EAAI;AACtI,SAAA;AAAA,IACN,IAAI;AAAA,IACJ;AAAA,IACA,QAAQ,CAAC,KAAK;AAAA,EACf;AACD;AAEa,MAAA,gCAAgC,CAAyB,MAAS,gBAC9E,oBAAoB,MAAM,WAAW,WAAW,qDAAqD;;;"}
@@ -1,7 +1,18 @@
1
- const createErrorResponse = (code, developerMessage) => {
2
- const error = { code, developerMessage };
3
- return { ok: false, error, errors: [error] };
4
- };
1
+ function createErrorResponse(codeOrErrorResponse, developerMessage) {
2
+ if (typeof codeOrErrorResponse === "string") {
3
+ if (!developerMessage) {
4
+ throw new Error("Developer message is required when passing a string as code.");
5
+ }
6
+ const error2 = { code: codeOrErrorResponse, developerMessage };
7
+ return { ok: false, error: error2, errors: [error2] };
8
+ }
9
+ const error = { code: codeOrErrorResponse.error, developerMessage: codeOrErrorResponse.errorMessage, ...codeOrErrorResponse.metadata ?? {} };
10
+ return {
11
+ ok: false,
12
+ error,
13
+ errors: [error]
14
+ };
15
+ }
5
16
  const createProjectNotFoundResponse = (code, projectSlug) => createErrorResponse(code, `Project ${projectSlug} was not found or you are not allowed to access it.`);
6
17
  export {
7
18
  createErrorResponse,
@@ -1 +1 @@
1
- {"version":3,"file":"errorUtils.js","sources":["../../../../../packages/engine-tenant-api/src/resolvers/errorUtils.ts"],"sourcesContent":["type Error<T> = { code: T; developerMessage: string }\ntype ErrorResponse<T> = { ok: false; error: Error<T>; errors: [Error<T>] }\nexport const createErrorResponse = <T>(code: T, developerMessage: string): ErrorResponse<T> => {\n\tconst error = { code, developerMessage }\n\treturn { ok: false, error, errors: [error] }\n}\nexport const createProjectNotFoundResponse = <const T>(code: T, projectSlug: string): ErrorResponse<T> =>\n\tcreateErrorResponse(code, `Project ${projectSlug} was not found or you are not allowed to access it.`)\n"],"names":[],"mappings":"AAEa,MAAA,sBAAsB,CAAI,MAAS,qBAA+C;AACxF,QAAA,QAAQ,EAAE,MAAM,iBAAiB;AACvC,SAAO,EAAE,IAAI,OAAO,OAAO,QAAQ,CAAC,KAAK,EAAE;AAC5C;AACa,MAAA,gCAAgC,CAAU,MAAS,gBAC/D,oBAAoB,MAAM,WAAW,WAAW,qDAAqD;"}
1
+ {"version":3,"file":"errorUtils.js","sources":["../../../../../packages/engine-tenant-api/src/resolvers/errorUtils.ts"],"sourcesContent":["import { ResponseError } from '../model/utils/Response'\n\ntype Error<T> = { code: T; developerMessage: string }\ntype ErrorResponse<T, Meta = {}> = { ok: false; error: Error<T> & Meta; errors: [Error<T> & Meta] }\n\n\nexport function createErrorResponse <const T extends string, Meta extends {} | undefined>(responseError: ResponseError<T, Meta>): ErrorResponse<T, Meta>\nexport function createErrorResponse <const T extends string>(code: T, developerMessage: string): ErrorResponse<T>\nexport function createErrorResponse (codeOrErrorResponse: string | ResponseError<any>, developerMessage?: string): ErrorResponse<any> {\n\tif (typeof codeOrErrorResponse === 'string') {\n\t\tif (!developerMessage) {\n\t\t\tthrow new Error('Developer message is required when passing a string as code.')\n\t\t}\n\t\tconst error = { code: codeOrErrorResponse, developerMessage }\n\t\treturn { ok: false, error, errors: [error] }\n\t}\n\tconst error = { code: codeOrErrorResponse.error, developerMessage: codeOrErrorResponse.errorMessage, ...(codeOrErrorResponse.metadata ?? {}) }\n\treturn {\n\t\tok: false,\n\t\terror,\n\t\terrors: [error],\n\t}\n}\n\nexport const createProjectNotFoundResponse = <const T extends string>(code: T, projectSlug: string): ErrorResponse<T> =>\n\tcreateErrorResponse(code, `Project ${projectSlug} was not found or you are not allowed to access it.`)\n"],"names":["error"],"mappings":"AAQgB,SAAA,oBAAqB,qBAAkD,kBAA+C;AACjI,MAAA,OAAO,wBAAwB,UAAU;AAC5C,QAAI,CAAC,kBAAkB;AAChB,YAAA,IAAI,MAAM,8DAA8D;AAAA,IAAA;AAE/E,UAAMA,SAAQ,EAAE,MAAM,qBAAqB,iBAAiB;AACrD,WAAA,EAAE,IAAI,OAAO,OAAAA,QAAO,QAAQ,CAACA,MAAK,EAAE;AAAA,EAAA;AAE5C,QAAM,QAAQ,EAAE,MAAM,oBAAoB,OAAO,kBAAkB,oBAAoB,cAAc,GAAI,oBAAoB,YAAY,CAAA,EAAI;AACtI,SAAA;AAAA,IACN,IAAI;AAAA,IACJ;AAAA,IACA,QAAQ,CAAC,KAAK;AAAA,EACf;AACD;AAEa,MAAA,gCAAgC,CAAyB,MAAS,gBAC9E,oBAAoB,MAAM,WAAW,WAAW,qDAAqD;"}
@@ -7,7 +7,7 @@ require("../../../model/authorization/PermissionsFactory.cjs");
7
7
  require("@contember/schema");
8
8
  require("../../../model/type/ApiKey.cjs");
9
9
  require("@contember/database");
10
- const tokenUtils = require("../../../model/utils/tokenUtils.cjs");
10
+ const token = require("../../../model/utils/token.cjs");
11
11
  require("../../../model/queries/apiKey/ApiKeyQuery.cjs");
12
12
  require("node:assert");
13
13
  require("../../../model/service/idp/providers/AppleProvider.cjs");
@@ -15,6 +15,7 @@ require("openid-client");
15
15
  require("@contember/typesafe");
16
16
  require("../../../model/service/idp/providers/OIDCTypes.cjs");
17
17
  require("../../../model/service/idp/providers/FacebookProvider.cjs");
18
+ require("../../../model/service/AuthLogService.cjs");
18
19
  require("@contember/schema-utils");
19
20
  require("otpauth");
20
21
  const membershipUtils = require("../../membershipUtils.cjs");
@@ -36,7 +37,7 @@ class CreateApiKeyMutationResolver {
36
37
  if (!project) {
37
38
  return errorUtils.createProjectNotFoundResponse("PROJECT_NOT_FOUND", projectSlug);
38
39
  }
39
- if (typeof tokenHash === "string" && !tokenUtils.isTokenHash(tokenHash)) {
40
+ if (typeof tokenHash === "string" && !token.isTokenHash(tokenHash)) {
40
41
  throw new graphqlUtils.UserInputError("Invalid format of tokenHash. Must be hex-encoded sha256.");
41
42
  }
42
43
  const validationResult = await this.membershipValidator.validate(project.slug, memberships);
@@ -63,7 +64,7 @@ class CreateApiKeyMutationResolver {
63
64
  action: PermissionActions.PermissionActions.API_KEY_CREATE_GLOBAL(roles),
64
65
  message: "You are not allowed to create a global API key"
65
66
  });
66
- if (typeof tokenHash === "string" && !tokenUtils.isTokenHash(tokenHash)) {
67
+ if (typeof tokenHash === "string" && !token.isTokenHash(tokenHash)) {
67
68
  throw new graphqlUtils.UserInputError("Invalid format of tokenHash. Must be hex-encoded sha256.");
68
69
  }
69
70
  const result = await this.apiKeyManager.createGlobalPermanentApiKey(context.db, description, roles, tokenHash ?? void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"CreateApiKeyMutationResolver.cjs","sources":["../../../../../../../packages/engine-tenant-api/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.ts"],"sourcesContent":["import {\n\tCreateApiKeyErrorCode,\n\tCreateApiKeyResponse,\n\tMutationCreateApiKeyArgs, MutationCreateGlobalApiKeyArgs,\n\tMutationResolvers,\n} from '../../../schema'\nimport { GraphQLResolveInfo } from 'graphql'\nimport { TenantResolverContext } from '../../TenantResolverContext'\nimport { ApiKeyManager, isTokenHash, MembershipValidator, PermissionActions, ProjectManager } from '../../../model'\nimport { createMembershipValidationErrorResult } from '../../membershipUtils'\nimport { createProjectNotFoundResponse } from '../../errorUtils'\nimport { UserInputError } from '@contember/graphql-utils'\n\nexport class CreateApiKeyMutationResolver implements MutationResolvers {\n\tconstructor(\n\t\tprivate readonly apiKeyManager: ApiKeyManager,\n\t\tprivate readonly projectManager: ProjectManager,\n\t\tprivate readonly membershipValidator: MembershipValidator,\n\t) {}\n\n\tasync createApiKey(\n\t\tparent: any,\n\t\t{ projectSlug, memberships, description, tokenHash }: MutationCreateApiKeyArgs,\n\t\tcontext: TenantResolverContext,\n\t\tinfo: GraphQLResolveInfo,\n\t): Promise<CreateApiKeyResponse> {\n\t\tconst project = await this.projectManager.getProjectBySlug(context.db, projectSlug)\n\t\tawait context.requireAccess({\n\t\t\tscope: await context.permissionContext.createProjectScope(project),\n\t\t\taction: PermissionActions.API_KEY_CREATE,\n\t\t\tmessage: 'You are not allowed to create an API key for this project',\n\t\t})\n\t\tif (!project) {\n\t\t\treturn createProjectNotFoundResponse('PROJECT_NOT_FOUND', projectSlug)\n\t\t}\n\t\tif (typeof tokenHash === 'string' && !isTokenHash(tokenHash)) {\n\t\t\tthrow new UserInputError('Invalid format of tokenHash. Must be hex-encoded sha256.')\n\t\t}\n\t\tconst validationResult = await this.membershipValidator.validate(project.slug, memberships)\n\t\tif (validationResult.length > 0) {\n\t\t\tconst errors = createMembershipValidationErrorResult(validationResult)\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terrors: errors,\n\t\t\t\terror: errors[0],\n\t\t\t}\n\t\t}\n\n\t\tconst result = await this.apiKeyManager.createProjectPermanentApiKey(context.db, project.id, memberships, description, tokenHash ?? undefined)\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\terrors: [],\n\t\t\tresult: {\n\t\t\t\tapiKey: result.result.toApiKeyWithToken(),\n\t\t\t},\n\t\t}\n\t}\n\n\tasync createGlobalApiKey(\n\t\tparent: any,\n\t\t{ roles, description, tokenHash }: MutationCreateGlobalApiKeyArgs,\n\t\tcontext: TenantResolverContext,\n\t\tinfo: GraphQLResolveInfo,\n\t): Promise<CreateApiKeyResponse> {\n\t\troles ??= []\n\t\tawait context.requireAccess({\n\t\t\taction: PermissionActions.API_KEY_CREATE_GLOBAL(roles),\n\t\t\tmessage: 'You are not allowed to create a global API key',\n\t\t})\n\t\tif (typeof tokenHash === 'string' && !isTokenHash(tokenHash)) {\n\t\t\tthrow new UserInputError('Invalid format of tokenHash. Must be hex-encoded sha256.')\n\t\t}\n\t\tconst result = await this.apiKeyManager.createGlobalPermanentApiKey(context.db, description, roles, tokenHash ?? undefined)\n\t\treturn {\n\t\t\tok: true,\n\t\t\terrors: [],\n\t\t\tresult: {\n\t\t\t\tapiKey: result.result.toApiKeyWithToken(),\n\t\t\t},\n\t\t}\n\t}\n}\n"],"names":["PermissionActions","createProjectNotFoundResponse","isTokenHash","UserInputError","createMembershipValidationErrorResult"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAaO,MAAM,6BAA0D;AAAA,EACtE,YACkB,eACA,gBACA,qBAChB;AAHgB,SAAA,gBAAA;AACA,SAAA,iBAAA;AACA,SAAA,sBAAA;AAAA,EAAA;AAAA,EAGlB,MAAM,aACL,QACA,EAAE,aAAa,aAAa,aAAa,UAAA,GACzC,SACA,MACgC;AAChC,UAAM,UAAU,MAAM,KAAK,eAAe,iBAAiB,QAAQ,IAAI,WAAW;AAClF,UAAM,QAAQ,cAAc;AAAA,MAC3B,OAAO,MAAM,QAAQ,kBAAkB,mBAAmB,OAAO;AAAA,MACjE,QAAQA,kBAAkB,kBAAA;AAAA,MAC1B,SAAS;AAAA,IAAA,CACT;AACD,QAAI,CAAC,SAAS;AACN,aAAAC,WAAA,8BAA8B,qBAAqB,WAAW;AAAA,IAAA;AAEtE,QAAI,OAAO,cAAc,YAAY,CAACC,WAAA,YAAY,SAAS,GAAG;AACvD,YAAA,IAAIC,4BAAe,0DAA0D;AAAA,IAAA;AAEpF,UAAM,mBAAmB,MAAM,KAAK,oBAAoB,SAAS,QAAQ,MAAM,WAAW;AACtF,QAAA,iBAAiB,SAAS,GAAG;AAC1B,YAAA,SAASC,sDAAsC,gBAAgB;AAC9D,aAAA;AAAA,QACN,IAAI;AAAA,QACJ;AAAA,QACA,OAAO,OAAO,CAAC;AAAA,MAChB;AAAA,IAAA;AAGD,UAAM,SAAS,MAAM,KAAK,cAAc,6BAA6B,QAAQ,IAAI,QAAQ,IAAI,aAAa,aAAa,aAAa,MAAS;AAEtI,WAAA;AAAA,MACN,IAAI;AAAA,MACJ,QAAQ,CAAC;AAAA,MACT,QAAQ;AAAA,QACP,QAAQ,OAAO,OAAO,kBAAkB;AAAA,MAAA;AAAA,IAE1C;AAAA,EAAA;AAAA,EAGD,MAAM,mBACL,QACA,EAAE,OAAO,aAAa,UACtB,GAAA,SACA,MACgC;AAChC,cAAA,QAAU;AACV,UAAM,QAAQ,cAAc;AAAA,MAC3B,QAAQJ,kBAAAA,kBAAkB,sBAAsB,KAAK;AAAA,MACrD,SAAS;AAAA,IAAA,CACT;AACD,QAAI,OAAO,cAAc,YAAY,CAACE,WAAA,YAAY,SAAS,GAAG;AACvD,YAAA,IAAIC,4BAAe,0DAA0D;AAAA,IAAA;AAE9E,UAAA,SAAS,MAAM,KAAK,cAAc,4BAA4B,QAAQ,IAAI,aAAa,OAAO,aAAa,MAAS;AACnH,WAAA;AAAA,MACN,IAAI;AAAA,MACJ,QAAQ,CAAC;AAAA,MACT,QAAQ;AAAA,QACP,QAAQ,OAAO,OAAO,kBAAkB;AAAA,MAAA;AAAA,IAE1C;AAAA,EAAA;AAEF;;"}
1
+ {"version":3,"file":"CreateApiKeyMutationResolver.cjs","sources":["../../../../../../../packages/engine-tenant-api/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.ts"],"sourcesContent":["import {\n\tCreateApiKeyErrorCode,\n\tCreateApiKeyResponse,\n\tMutationCreateApiKeyArgs, MutationCreateGlobalApiKeyArgs,\n\tMutationResolvers,\n} from '../../../schema'\nimport { GraphQLResolveInfo } from 'graphql'\nimport { TenantResolverContext } from '../../TenantResolverContext'\nimport { ApiKeyManager, isTokenHash, MembershipValidator, PermissionActions, ProjectManager } from '../../../model'\nimport { createMembershipValidationErrorResult } from '../../membershipUtils'\nimport { createProjectNotFoundResponse } from '../../errorUtils'\nimport { UserInputError } from '@contember/graphql-utils'\n\nexport class CreateApiKeyMutationResolver implements MutationResolvers {\n\tconstructor(\n\t\tprivate readonly apiKeyManager: ApiKeyManager,\n\t\tprivate readonly projectManager: ProjectManager,\n\t\tprivate readonly membershipValidator: MembershipValidator,\n\t) {}\n\n\tasync createApiKey(\n\t\tparent: any,\n\t\t{ projectSlug, memberships, description, tokenHash }: MutationCreateApiKeyArgs,\n\t\tcontext: TenantResolverContext,\n\t\tinfo: GraphQLResolveInfo,\n\t): Promise<CreateApiKeyResponse> {\n\t\tconst project = await this.projectManager.getProjectBySlug(context.db, projectSlug)\n\t\tawait context.requireAccess({\n\t\t\tscope: await context.permissionContext.createProjectScope(project),\n\t\t\taction: PermissionActions.API_KEY_CREATE,\n\t\t\tmessage: 'You are not allowed to create an API key for this project',\n\t\t})\n\t\tif (!project) {\n\t\t\treturn createProjectNotFoundResponse('PROJECT_NOT_FOUND', projectSlug)\n\t\t}\n\t\tif (typeof tokenHash === 'string' && !isTokenHash(tokenHash)) {\n\t\t\tthrow new UserInputError('Invalid format of tokenHash. Must be hex-encoded sha256.')\n\t\t}\n\t\tconst validationResult = await this.membershipValidator.validate(project.slug, memberships)\n\t\tif (validationResult.length > 0) {\n\t\t\tconst errors = createMembershipValidationErrorResult(validationResult)\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terrors: errors,\n\t\t\t\terror: errors[0],\n\t\t\t}\n\t\t}\n\n\t\tconst result = await this.apiKeyManager.createProjectPermanentApiKey(context.db, project.id, memberships, description, tokenHash ?? undefined)\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\terrors: [],\n\t\t\tresult: {\n\t\t\t\tapiKey: result.result.toApiKeyWithToken(),\n\t\t\t},\n\t\t}\n\t}\n\n\tasync createGlobalApiKey(\n\t\tparent: any,\n\t\t{ roles, description, tokenHash }: MutationCreateGlobalApiKeyArgs,\n\t\tcontext: TenantResolverContext,\n\t\tinfo: GraphQLResolveInfo,\n\t): Promise<CreateApiKeyResponse> {\n\t\troles ??= []\n\t\tawait context.requireAccess({\n\t\t\taction: PermissionActions.API_KEY_CREATE_GLOBAL(roles),\n\t\t\tmessage: 'You are not allowed to create a global API key',\n\t\t})\n\t\tif (typeof tokenHash === 'string' && !isTokenHash(tokenHash)) {\n\t\t\tthrow new UserInputError('Invalid format of tokenHash. Must be hex-encoded sha256.')\n\t\t}\n\t\tconst result = await this.apiKeyManager.createGlobalPermanentApiKey(context.db, description, roles, tokenHash ?? undefined)\n\t\treturn {\n\t\t\tok: true,\n\t\t\terrors: [],\n\t\t\tresult: {\n\t\t\t\tapiKey: result.result.toApiKeyWithToken(),\n\t\t\t},\n\t\t}\n\t}\n}\n"],"names":["PermissionActions","createProjectNotFoundResponse","isTokenHash","UserInputError","createMembershipValidationErrorResult"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAaO,MAAM,6BAA0D;AAAA,EACtE,YACkB,eACA,gBACA,qBAChB;AAHgB,SAAA,gBAAA;AACA,SAAA,iBAAA;AACA,SAAA,sBAAA;AAAA,EAAA;AAAA,EAGlB,MAAM,aACL,QACA,EAAE,aAAa,aAAa,aAAa,UAAA,GACzC,SACA,MACgC;AAChC,UAAM,UAAU,MAAM,KAAK,eAAe,iBAAiB,QAAQ,IAAI,WAAW;AAClF,UAAM,QAAQ,cAAc;AAAA,MAC3B,OAAO,MAAM,QAAQ,kBAAkB,mBAAmB,OAAO;AAAA,MACjE,QAAQA,kBAAkB,kBAAA;AAAA,MAC1B,SAAS;AAAA,IAAA,CACT;AACD,QAAI,CAAC,SAAS;AACN,aAAAC,WAAA,8BAA8B,qBAAqB,WAAW;AAAA,IAAA;AAEtE,QAAI,OAAO,cAAc,YAAY,CAACC,MAAA,YAAY,SAAS,GAAG;AACvD,YAAA,IAAIC,4BAAe,0DAA0D;AAAA,IAAA;AAEpF,UAAM,mBAAmB,MAAM,KAAK,oBAAoB,SAAS,QAAQ,MAAM,WAAW;AACtF,QAAA,iBAAiB,SAAS,GAAG;AAC1B,YAAA,SAASC,sDAAsC,gBAAgB;AAC9D,aAAA;AAAA,QACN,IAAI;AAAA,QACJ;AAAA,QACA,OAAO,OAAO,CAAC;AAAA,MAChB;AAAA,IAAA;AAGD,UAAM,SAAS,MAAM,KAAK,cAAc,6BAA6B,QAAQ,IAAI,QAAQ,IAAI,aAAa,aAAa,aAAa,MAAS;AAEtI,WAAA;AAAA,MACN,IAAI;AAAA,MACJ,QAAQ,CAAC;AAAA,MACT,QAAQ;AAAA,QACP,QAAQ,OAAO,OAAO,kBAAkB;AAAA,MAAA;AAAA,IAE1C;AAAA,EAAA;AAAA,EAGD,MAAM,mBACL,QACA,EAAE,OAAO,aAAa,UACtB,GAAA,SACA,MACgC;AAChC,cAAA,QAAU;AACV,UAAM,QAAQ,cAAc;AAAA,MAC3B,QAAQJ,kBAAAA,kBAAkB,sBAAsB,KAAK;AAAA,MACrD,SAAS;AAAA,IAAA,CACT;AACD,QAAI,OAAO,cAAc,YAAY,CAACE,MAAA,YAAY,SAAS,GAAG;AACvD,YAAA,IAAIC,4BAAe,0DAA0D;AAAA,IAAA;AAE9E,UAAA,SAAS,MAAM,KAAK,cAAc,4BAA4B,QAAQ,IAAI,aAAa,OAAO,aAAa,MAAS;AACnH,WAAA;AAAA,MACN,IAAI;AAAA,MACJ,QAAQ,CAAC;AAAA,MACT,QAAQ;AAAA,QACP,QAAQ,OAAO,OAAO,kBAAkB;AAAA,MAAA;AAAA,IAE1C;AAAA,EAAA;AAEF;;"}
@@ -5,7 +5,7 @@ import "../../../model/authorization/PermissionsFactory.js";
5
5
  import "@contember/schema";
6
6
  import "../../../model/type/ApiKey.js";
7
7
  import "@contember/database";
8
- import { isTokenHash } from "../../../model/utils/tokenUtils.js";
8
+ import { isTokenHash } from "../../../model/utils/token.js";
9
9
  import "../../../model/queries/apiKey/ApiKeyQuery.js";
10
10
  import "node:assert";
11
11
  import "../../../model/service/idp/providers/AppleProvider.js";
@@ -13,6 +13,7 @@ import "openid-client";
13
13
  import "@contember/typesafe";
14
14
  import "../../../model/service/idp/providers/OIDCTypes.js";
15
15
  import "../../../model/service/idp/providers/FacebookProvider.js";
16
+ import "../../../model/service/AuthLogService.js";
16
17
  import "@contember/schema-utils";
17
18
  import "otpauth";
18
19
  import { createMembershipValidationErrorResult } from "../../membershipUtils.js";
@@ -1 +1 @@
1
- {"version":3,"file":"CreateApiKeyMutationResolver.js","sources":["../../../../../../../packages/engine-tenant-api/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.ts"],"sourcesContent":["import {\n\tCreateApiKeyErrorCode,\n\tCreateApiKeyResponse,\n\tMutationCreateApiKeyArgs, MutationCreateGlobalApiKeyArgs,\n\tMutationResolvers,\n} from '../../../schema'\nimport { GraphQLResolveInfo } from 'graphql'\nimport { TenantResolverContext } from '../../TenantResolverContext'\nimport { ApiKeyManager, isTokenHash, MembershipValidator, PermissionActions, ProjectManager } from '../../../model'\nimport { createMembershipValidationErrorResult } from '../../membershipUtils'\nimport { createProjectNotFoundResponse } from '../../errorUtils'\nimport { UserInputError } from '@contember/graphql-utils'\n\nexport class CreateApiKeyMutationResolver implements MutationResolvers {\n\tconstructor(\n\t\tprivate readonly apiKeyManager: ApiKeyManager,\n\t\tprivate readonly projectManager: ProjectManager,\n\t\tprivate readonly membershipValidator: MembershipValidator,\n\t) {}\n\n\tasync createApiKey(\n\t\tparent: any,\n\t\t{ projectSlug, memberships, description, tokenHash }: MutationCreateApiKeyArgs,\n\t\tcontext: TenantResolverContext,\n\t\tinfo: GraphQLResolveInfo,\n\t): Promise<CreateApiKeyResponse> {\n\t\tconst project = await this.projectManager.getProjectBySlug(context.db, projectSlug)\n\t\tawait context.requireAccess({\n\t\t\tscope: await context.permissionContext.createProjectScope(project),\n\t\t\taction: PermissionActions.API_KEY_CREATE,\n\t\t\tmessage: 'You are not allowed to create an API key for this project',\n\t\t})\n\t\tif (!project) {\n\t\t\treturn createProjectNotFoundResponse('PROJECT_NOT_FOUND', projectSlug)\n\t\t}\n\t\tif (typeof tokenHash === 'string' && !isTokenHash(tokenHash)) {\n\t\t\tthrow new UserInputError('Invalid format of tokenHash. Must be hex-encoded sha256.')\n\t\t}\n\t\tconst validationResult = await this.membershipValidator.validate(project.slug, memberships)\n\t\tif (validationResult.length > 0) {\n\t\t\tconst errors = createMembershipValidationErrorResult(validationResult)\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terrors: errors,\n\t\t\t\terror: errors[0],\n\t\t\t}\n\t\t}\n\n\t\tconst result = await this.apiKeyManager.createProjectPermanentApiKey(context.db, project.id, memberships, description, tokenHash ?? undefined)\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\terrors: [],\n\t\t\tresult: {\n\t\t\t\tapiKey: result.result.toApiKeyWithToken(),\n\t\t\t},\n\t\t}\n\t}\n\n\tasync createGlobalApiKey(\n\t\tparent: any,\n\t\t{ roles, description, tokenHash }: MutationCreateGlobalApiKeyArgs,\n\t\tcontext: TenantResolverContext,\n\t\tinfo: GraphQLResolveInfo,\n\t): Promise<CreateApiKeyResponse> {\n\t\troles ??= []\n\t\tawait context.requireAccess({\n\t\t\taction: PermissionActions.API_KEY_CREATE_GLOBAL(roles),\n\t\t\tmessage: 'You are not allowed to create a global API key',\n\t\t})\n\t\tif (typeof tokenHash === 'string' && !isTokenHash(tokenHash)) {\n\t\t\tthrow new UserInputError('Invalid format of tokenHash. Must be hex-encoded sha256.')\n\t\t}\n\t\tconst result = await this.apiKeyManager.createGlobalPermanentApiKey(context.db, description, roles, tokenHash ?? undefined)\n\t\treturn {\n\t\t\tok: true,\n\t\t\terrors: [],\n\t\t\tresult: {\n\t\t\t\tapiKey: result.result.toApiKeyWithToken(),\n\t\t\t},\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAaO,MAAM,6BAA0D;AAAA,EACtE,YACkB,eACA,gBACA,qBAChB;AAHgB,SAAA,gBAAA;AACA,SAAA,iBAAA;AACA,SAAA,sBAAA;AAAA,EAAA;AAAA,EAGlB,MAAM,aACL,QACA,EAAE,aAAa,aAAa,aAAa,UAAA,GACzC,SACA,MACgC;AAChC,UAAM,UAAU,MAAM,KAAK,eAAe,iBAAiB,QAAQ,IAAI,WAAW;AAClF,UAAM,QAAQ,cAAc;AAAA,MAC3B,OAAO,MAAM,QAAQ,kBAAkB,mBAAmB,OAAO;AAAA,MACjE,QAAQ,kBAAkB;AAAA,MAC1B,SAAS;AAAA,IAAA,CACT;AACD,QAAI,CAAC,SAAS;AACN,aAAA,8BAA8B,qBAAqB,WAAW;AAAA,IAAA;AAEtE,QAAI,OAAO,cAAc,YAAY,CAAC,YAAY,SAAS,GAAG;AACvD,YAAA,IAAI,eAAe,0DAA0D;AAAA,IAAA;AAEpF,UAAM,mBAAmB,MAAM,KAAK,oBAAoB,SAAS,QAAQ,MAAM,WAAW;AACtF,QAAA,iBAAiB,SAAS,GAAG;AAC1B,YAAA,SAAS,sCAAsC,gBAAgB;AAC9D,aAAA;AAAA,QACN,IAAI;AAAA,QACJ;AAAA,QACA,OAAO,OAAO,CAAC;AAAA,MAChB;AAAA,IAAA;AAGD,UAAM,SAAS,MAAM,KAAK,cAAc,6BAA6B,QAAQ,IAAI,QAAQ,IAAI,aAAa,aAAa,aAAa,MAAS;AAEtI,WAAA;AAAA,MACN,IAAI;AAAA,MACJ,QAAQ,CAAC;AAAA,MACT,QAAQ;AAAA,QACP,QAAQ,OAAO,OAAO,kBAAkB;AAAA,MAAA;AAAA,IAE1C;AAAA,EAAA;AAAA,EAGD,MAAM,mBACL,QACA,EAAE,OAAO,aAAa,UACtB,GAAA,SACA,MACgC;AAChC,cAAA,QAAU;AACV,UAAM,QAAQ,cAAc;AAAA,MAC3B,QAAQ,kBAAkB,sBAAsB,KAAK;AAAA,MACrD,SAAS;AAAA,IAAA,CACT;AACD,QAAI,OAAO,cAAc,YAAY,CAAC,YAAY,SAAS,GAAG;AACvD,YAAA,IAAI,eAAe,0DAA0D;AAAA,IAAA;AAE9E,UAAA,SAAS,MAAM,KAAK,cAAc,4BAA4B,QAAQ,IAAI,aAAa,OAAO,aAAa,MAAS;AACnH,WAAA;AAAA,MACN,IAAI;AAAA,MACJ,QAAQ,CAAC;AAAA,MACT,QAAQ;AAAA,QACP,QAAQ,OAAO,OAAO,kBAAkB;AAAA,MAAA;AAAA,IAE1C;AAAA,EAAA;AAEF;"}
1
+ {"version":3,"file":"CreateApiKeyMutationResolver.js","sources":["../../../../../../../packages/engine-tenant-api/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.ts"],"sourcesContent":["import {\n\tCreateApiKeyErrorCode,\n\tCreateApiKeyResponse,\n\tMutationCreateApiKeyArgs, MutationCreateGlobalApiKeyArgs,\n\tMutationResolvers,\n} from '../../../schema'\nimport { GraphQLResolveInfo } from 'graphql'\nimport { TenantResolverContext } from '../../TenantResolverContext'\nimport { ApiKeyManager, isTokenHash, MembershipValidator, PermissionActions, ProjectManager } from '../../../model'\nimport { createMembershipValidationErrorResult } from '../../membershipUtils'\nimport { createProjectNotFoundResponse } from '../../errorUtils'\nimport { UserInputError } from '@contember/graphql-utils'\n\nexport class CreateApiKeyMutationResolver implements MutationResolvers {\n\tconstructor(\n\t\tprivate readonly apiKeyManager: ApiKeyManager,\n\t\tprivate readonly projectManager: ProjectManager,\n\t\tprivate readonly membershipValidator: MembershipValidator,\n\t) {}\n\n\tasync createApiKey(\n\t\tparent: any,\n\t\t{ projectSlug, memberships, description, tokenHash }: MutationCreateApiKeyArgs,\n\t\tcontext: TenantResolverContext,\n\t\tinfo: GraphQLResolveInfo,\n\t): Promise<CreateApiKeyResponse> {\n\t\tconst project = await this.projectManager.getProjectBySlug(context.db, projectSlug)\n\t\tawait context.requireAccess({\n\t\t\tscope: await context.permissionContext.createProjectScope(project),\n\t\t\taction: PermissionActions.API_KEY_CREATE,\n\t\t\tmessage: 'You are not allowed to create an API key for this project',\n\t\t})\n\t\tif (!project) {\n\t\t\treturn createProjectNotFoundResponse('PROJECT_NOT_FOUND', projectSlug)\n\t\t}\n\t\tif (typeof tokenHash === 'string' && !isTokenHash(tokenHash)) {\n\t\t\tthrow new UserInputError('Invalid format of tokenHash. Must be hex-encoded sha256.')\n\t\t}\n\t\tconst validationResult = await this.membershipValidator.validate(project.slug, memberships)\n\t\tif (validationResult.length > 0) {\n\t\t\tconst errors = createMembershipValidationErrorResult(validationResult)\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terrors: errors,\n\t\t\t\terror: errors[0],\n\t\t\t}\n\t\t}\n\n\t\tconst result = await this.apiKeyManager.createProjectPermanentApiKey(context.db, project.id, memberships, description, tokenHash ?? undefined)\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\terrors: [],\n\t\t\tresult: {\n\t\t\t\tapiKey: result.result.toApiKeyWithToken(),\n\t\t\t},\n\t\t}\n\t}\n\n\tasync createGlobalApiKey(\n\t\tparent: any,\n\t\t{ roles, description, tokenHash }: MutationCreateGlobalApiKeyArgs,\n\t\tcontext: TenantResolverContext,\n\t\tinfo: GraphQLResolveInfo,\n\t): Promise<CreateApiKeyResponse> {\n\t\troles ??= []\n\t\tawait context.requireAccess({\n\t\t\taction: PermissionActions.API_KEY_CREATE_GLOBAL(roles),\n\t\t\tmessage: 'You are not allowed to create a global API key',\n\t\t})\n\t\tif (typeof tokenHash === 'string' && !isTokenHash(tokenHash)) {\n\t\t\tthrow new UserInputError('Invalid format of tokenHash. Must be hex-encoded sha256.')\n\t\t}\n\t\tconst result = await this.apiKeyManager.createGlobalPermanentApiKey(context.db, description, roles, tokenHash ?? undefined)\n\t\treturn {\n\t\t\tok: true,\n\t\t\terrors: [],\n\t\t\tresult: {\n\t\t\t\tapiKey: result.result.toApiKeyWithToken(),\n\t\t\t},\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAaO,MAAM,6BAA0D;AAAA,EACtE,YACkB,eACA,gBACA,qBAChB;AAHgB,SAAA,gBAAA;AACA,SAAA,iBAAA;AACA,SAAA,sBAAA;AAAA,EAAA;AAAA,EAGlB,MAAM,aACL,QACA,EAAE,aAAa,aAAa,aAAa,UAAA,GACzC,SACA,MACgC;AAChC,UAAM,UAAU,MAAM,KAAK,eAAe,iBAAiB,QAAQ,IAAI,WAAW;AAClF,UAAM,QAAQ,cAAc;AAAA,MAC3B,OAAO,MAAM,QAAQ,kBAAkB,mBAAmB,OAAO;AAAA,MACjE,QAAQ,kBAAkB;AAAA,MAC1B,SAAS;AAAA,IAAA,CACT;AACD,QAAI,CAAC,SAAS;AACN,aAAA,8BAA8B,qBAAqB,WAAW;AAAA,IAAA;AAEtE,QAAI,OAAO,cAAc,YAAY,CAAC,YAAY,SAAS,GAAG;AACvD,YAAA,IAAI,eAAe,0DAA0D;AAAA,IAAA;AAEpF,UAAM,mBAAmB,MAAM,KAAK,oBAAoB,SAAS,QAAQ,MAAM,WAAW;AACtF,QAAA,iBAAiB,SAAS,GAAG;AAC1B,YAAA,SAAS,sCAAsC,gBAAgB;AAC9D,aAAA;AAAA,QACN,IAAI;AAAA,QACJ;AAAA,QACA,OAAO,OAAO,CAAC;AAAA,MAChB;AAAA,IAAA;AAGD,UAAM,SAAS,MAAM,KAAK,cAAc,6BAA6B,QAAQ,IAAI,QAAQ,IAAI,aAAa,aAAa,aAAa,MAAS;AAEtI,WAAA;AAAA,MACN,IAAI;AAAA,MACJ,QAAQ,CAAC;AAAA,MACT,QAAQ;AAAA,QACP,QAAQ,OAAO,OAAO,kBAAkB;AAAA,MAAA;AAAA,IAE1C;AAAA,EAAA;AAAA,EAGD,MAAM,mBACL,QACA,EAAE,OAAO,aAAa,UACtB,GAAA,SACA,MACgC;AAChC,cAAA,QAAU;AACV,UAAM,QAAQ,cAAc;AAAA,MAC3B,QAAQ,kBAAkB,sBAAsB,KAAK;AAAA,MACrD,SAAS;AAAA,IAAA,CACT;AACD,QAAI,OAAO,cAAc,YAAY,CAAC,YAAY,SAAS,GAAG;AACvD,YAAA,IAAI,eAAe,0DAA0D;AAAA,IAAA;AAE9E,UAAA,SAAS,MAAM,KAAK,cAAc,4BAA4B,QAAQ,IAAI,aAAa,OAAO,aAAa,MAAS;AACnH,WAAA;AAAA,MACN,IAAI;AAAA,MACJ,QAAQ,CAAC;AAAA,MACT,QAAQ;AAAA,QACP,QAAQ,OAAO,OAAO,kBAAkB;AAAA,MAAA;AAAA,IAE1C;AAAA,EAAA;AAEF;"}
@@ -15,6 +15,7 @@ require("openid-client");
15
15
  require("@contember/typesafe");
16
16
  require("../../../model/service/idp/providers/OIDCTypes.cjs");
17
17
  require("../../../model/service/idp/providers/FacebookProvider.cjs");
18
+ require("../../../model/service/AuthLogService.cjs");
18
19
  require("@contember/schema-utils");
19
20
  require("otpauth");
20
21
  const errorUtils = require("../../errorUtils.cjs");
@@ -1 +1 @@
1
- {"version":3,"file":"DisableApiKeyMutationResolver.cjs","sources":["../../../../../../../packages/engine-tenant-api/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.ts"],"sourcesContent":["import {\n\tDisableApiKeyErrorCode,\n\tDisableApiKeyResponse,\n\tMutationDisableApiKeyArgs,\n\tMutationResolvers,\n} from '../../../schema'\nimport { GraphQLResolveInfo } from 'graphql'\nimport { TenantResolverContext } from '../../TenantResolverContext'\nimport { PermissionActions, ApiKeyManager } from '../../../model'\nimport { createErrorResponse } from '../../errorUtils'\n\nexport class DisableApiKeyMutationResolver implements MutationResolvers {\n\tconstructor(private readonly apiKeyManager: ApiKeyManager) {}\n\n\tasync disableApiKey(\n\t\tparent: any,\n\t\t{ id }: MutationDisableApiKeyArgs,\n\t\tcontext: TenantResolverContext,\n\t\tinfo: GraphQLResolveInfo,\n\t): Promise<DisableApiKeyResponse> {\n\t\tawait context.requireAccess({\n\t\t\taction: PermissionActions.API_KEY_DISABLE,\n\t\t\tmessage: 'You are not allowed to disable api key',\n\t\t})\n\n\t\tconst result = await this.apiKeyManager.disableApiKey(context.db, id)\n\n\t\tif (!result) {\n\t\t\treturn createErrorResponse('KEY_NOT_FOUND', 'API key not found')\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\terrors: [],\n\t\t}\n\t}\n}\n"],"names":["PermissionActions","createErrorResponse"],"mappings":";;;;;;;;;;;;;;;;;;;;AAWO,MAAM,8BAA2D;AAAA,EACvE,YAA6B,eAA8B;AAA9B,SAAA,gBAAA;AAAA,EAAA;AAAA,EAE7B,MAAM,cACL,QACA,EAAE,GAAG,GACL,SACA,MACiC;AACjC,UAAM,QAAQ,cAAc;AAAA,MAC3B,QAAQA,kBAAkB,kBAAA;AAAA,MAC1B,SAAS;AAAA,IAAA,CACT;AAED,UAAM,SAAS,MAAM,KAAK,cAAc,cAAc,QAAQ,IAAI,EAAE;AAEpE,QAAI,CAAC,QAAQ;AACL,aAAAC,WAAA,oBAAoB,iBAAiB,mBAAmB;AAAA,IAAA;AAGzD,WAAA;AAAA,MACN,IAAI;AAAA,MACJ,QAAQ,CAAA;AAAA,IACT;AAAA,EAAA;AAEF;;"}
1
+ {"version":3,"file":"DisableApiKeyMutationResolver.cjs","sources":["../../../../../../../packages/engine-tenant-api/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.ts"],"sourcesContent":["import {\n\tDisableApiKeyErrorCode,\n\tDisableApiKeyResponse,\n\tMutationDisableApiKeyArgs,\n\tMutationResolvers,\n} from '../../../schema'\nimport { GraphQLResolveInfo } from 'graphql'\nimport { TenantResolverContext } from '../../TenantResolverContext'\nimport { PermissionActions, ApiKeyManager } from '../../../model'\nimport { createErrorResponse } from '../../errorUtils'\n\nexport class DisableApiKeyMutationResolver implements MutationResolvers {\n\tconstructor(private readonly apiKeyManager: ApiKeyManager) {}\n\n\tasync disableApiKey(\n\t\tparent: any,\n\t\t{ id }: MutationDisableApiKeyArgs,\n\t\tcontext: TenantResolverContext,\n\t\tinfo: GraphQLResolveInfo,\n\t): Promise<DisableApiKeyResponse> {\n\t\tawait context.requireAccess({\n\t\t\taction: PermissionActions.API_KEY_DISABLE,\n\t\t\tmessage: 'You are not allowed to disable api key',\n\t\t})\n\n\t\tconst result = await this.apiKeyManager.disableApiKey(context.db, id)\n\n\t\tif (!result) {\n\t\t\treturn createErrorResponse('KEY_NOT_FOUND', 'API key not found')\n\t\t}\n\n\t\treturn {\n\t\t\tok: true,\n\t\t\terrors: [],\n\t\t}\n\t}\n}\n"],"names":["PermissionActions","createErrorResponse"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAWO,MAAM,8BAA2D;AAAA,EACvE,YAA6B,eAA8B;AAA9B,SAAA,gBAAA;AAAA,EAAA;AAAA,EAE7B,MAAM,cACL,QACA,EAAE,GAAG,GACL,SACA,MACiC;AACjC,UAAM,QAAQ,cAAc;AAAA,MAC3B,QAAQA,kBAAkB,kBAAA;AAAA,MAC1B,SAAS;AAAA,IAAA,CACT;AAED,UAAM,SAAS,MAAM,KAAK,cAAc,cAAc,QAAQ,IAAI,EAAE;AAEpE,QAAI,CAAC,QAAQ;AACL,aAAAC,WAAA,oBAAoB,iBAAiB,mBAAmB;AAAA,IAAA;AAGzD,WAAA;AAAA,MACN,IAAI;AAAA,MACJ,QAAQ,CAAA;AAAA,IACT;AAAA,EAAA;AAEF;;"}
@@ -13,6 +13,7 @@ import "openid-client";
13
13
  import "@contember/typesafe";
14
14
  import "../../../model/service/idp/providers/OIDCTypes.js";
15
15
  import "../../../model/service/idp/providers/FacebookProvider.js";
16
+ import "../../../model/service/AuthLogService.js";
16
17
  import "@contember/schema-utils";
17
18
  import "otpauth";
18
19
  import { createErrorResponse } from "../../errorUtils.js";