@contember/engine-tenant-api 2.1.0-alpha.15 → 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
@@ -1,3 +1,5 @@
1
+ import { Interval } from './types'
2
+ import { OutputInterval } from './types'
1
3
  import { GraphQLResolveInfo, GraphQLScalarType, GraphQLScalarTypeConfig } from 'graphql'
2
4
  export type Maybe<T> = T | null
3
5
  export type InputMaybe<T> = Maybe<T>
@@ -15,8 +17,9 @@ export type Scalars = {
15
17
  Boolean: { input: boolean; output: boolean }
16
18
  Int: { input: number; output: number }
17
19
  Float: { input: number; output: number }
18
- DateTime: { input: any; output: any }
19
- Json: { input: any; output: any }
20
+ DateTime: { input: Date; output: Date }
21
+ Interval: { input: Interval; output: OutputInterval }
22
+ Json: { input: unknown; output: unknown }
20
23
  }
21
24
 
22
25
  export type ActivatePasswordlessOtpError = {
@@ -139,6 +142,7 @@ export type ChangeMyPasswordError = {
139
142
  readonly __typename?: 'ChangeMyPasswordError'
140
143
  readonly code: ChangeMyPasswordErrorCode
141
144
  readonly developerMessage: Scalars['String']['output']
145
+ readonly weakPasswordReasons?: Maybe<ReadonlyArray<WeakPasswordReason>>
142
146
  }
143
147
 
144
148
  export type ChangeMyPasswordErrorCode =
@@ -176,6 +180,7 @@ export type ChangePasswordError = {
176
180
  readonly developerMessage: Scalars['String']['output']
177
181
  /** @deprecated Field no longer supported */
178
182
  readonly endUserMessage?: Maybe<Scalars['String']['output']>
183
+ readonly weakPasswordReasons?: Maybe<ReadonlyArray<WeakPasswordReason>>
179
184
  }
180
185
 
181
186
  export type ChangePasswordErrorCode =
@@ -226,23 +231,67 @@ export type CommonSignInResult = {
226
231
 
227
232
  export type Config = {
228
233
  readonly __typename?: 'Config'
234
+ readonly login: ConfigLogin
235
+ readonly password: ConfigPassword
229
236
  readonly passwordless: ConfigPasswordless
230
237
  }
231
238
 
232
239
  export type ConfigInput = {
240
+ readonly login?: InputMaybe<ConfigLoginInput>
241
+ readonly password?: InputMaybe<ConfigPasswordInput>
233
242
  readonly passwordless?: InputMaybe<ConfigPasswordlessInput>
234
243
  }
235
244
 
245
+ export type ConfigLogin = {
246
+ readonly __typename?: 'ConfigLogin'
247
+ readonly attemptWindow: Scalars['Interval']['output']
248
+ readonly baseBackoff: Scalars['Interval']['output']
249
+ readonly defaultTokenExpiration: Scalars['Interval']['output']
250
+ readonly maxBackoff: Scalars['Interval']['output']
251
+ readonly maxTokenExpiration?: Maybe<Scalars['Interval']['output']>
252
+ readonly revealUserExists: Scalars['Boolean']['output']
253
+ }
254
+
255
+ export type ConfigLoginInput = {
256
+ readonly attemptWindow?: InputMaybe<Scalars['Interval']['input']>
257
+ readonly baseBackoff?: InputMaybe<Scalars['Interval']['input']>
258
+ readonly defaultTokenExpiration?: InputMaybe<Scalars['Interval']['input']>
259
+ readonly maxBackoff?: InputMaybe<Scalars['Interval']['input']>
260
+ readonly maxTokenExpiration?: InputMaybe<Scalars['Interval']['input']>
261
+ readonly revealUserExists?: InputMaybe<Scalars['Boolean']['input']>
262
+ }
263
+
264
+ export type ConfigPassword = {
265
+ readonly __typename?: 'ConfigPassword'
266
+ readonly checkBlacklist: Scalars['Boolean']['output']
267
+ readonly minLength: Scalars['Int']['output']
268
+ readonly pattern?: Maybe<Scalars['String']['output']>
269
+ readonly requireDigit: Scalars['Int']['output']
270
+ readonly requireLowercase: Scalars['Int']['output']
271
+ readonly requireSpecial: Scalars['Int']['output']
272
+ readonly requireUppercase: Scalars['Int']['output']
273
+ }
274
+
275
+ export type ConfigPasswordInput = {
276
+ readonly checkBlacklist?: InputMaybe<Scalars['Boolean']['input']>
277
+ readonly minLength?: InputMaybe<Scalars['Int']['input']>
278
+ readonly pattern?: InputMaybe<Scalars['String']['input']>
279
+ readonly requireDigit?: InputMaybe<Scalars['Int']['input']>
280
+ readonly requireLowercase?: InputMaybe<Scalars['Int']['input']>
281
+ readonly requireSpecial?: InputMaybe<Scalars['Int']['input']>
282
+ readonly requireUppercase?: InputMaybe<Scalars['Int']['input']>
283
+ }
284
+
236
285
  export type ConfigPasswordless = {
237
286
  readonly __typename?: 'ConfigPasswordless'
238
287
  readonly enabled: ConfigPolicy
239
- readonly expirationMinutes: Scalars['Int']['output']
288
+ readonly expiration: Scalars['Interval']['output']
240
289
  readonly url?: Maybe<Scalars['String']['output']>
241
290
  }
242
291
 
243
292
  export type ConfigPasswordlessInput = {
244
293
  readonly enabled?: InputMaybe<ConfigPolicy>
245
- readonly expirationMinutes?: InputMaybe<Scalars['Int']['input']>
294
+ readonly expiration?: InputMaybe<Scalars['Interval']['input']>
246
295
  readonly url?: InputMaybe<Scalars['String']['input']>
247
296
  }
248
297
 
@@ -1169,6 +1218,7 @@ export type ResetPasswordError = {
1169
1218
  readonly developerMessage: Scalars['String']['output']
1170
1219
  /** @deprecated Field no longer supported */
1171
1220
  readonly endUserMessage?: Maybe<Scalars['String']['output']>
1221
+ readonly weakPasswordReasons?: Maybe<ReadonlyArray<WeakPasswordReason>>
1172
1222
  }
1173
1223
 
1174
1224
  export type ResetPasswordErrorCode =
@@ -1234,14 +1284,17 @@ export type SignInError = {
1234
1284
  readonly developerMessage: Scalars['String']['output']
1235
1285
  /** @deprecated Field no longer supported */
1236
1286
  readonly endUserMessage?: Maybe<Scalars['String']['output']>
1287
+ readonly retryAfter?: Maybe<Scalars['Int']['output']>
1237
1288
  }
1238
1289
 
1239
1290
  export type SignInErrorCode =
1291
+ | 'INVALID_CREDENTIALS'
1240
1292
  | 'INVALID_OTP_TOKEN'
1241
1293
  | 'INVALID_PASSWORD'
1242
1294
  | 'NO_PASSWORD_SET'
1243
1295
  | 'OTP_REQUIRED'
1244
1296
  | 'PERSON_DISABLED'
1297
+ | 'RATE_LIMIT_EXCEEDED'
1245
1298
  | 'UNKNOWN_EMAIL'
1246
1299
 
1247
1300
  export type SignInIdpError = {
@@ -1344,6 +1397,7 @@ export type SignUpError = {
1344
1397
  readonly developerMessage: Scalars['String']['output']
1345
1398
  /** @deprecated Field no longer supported */
1346
1399
  readonly endPersonMessage?: Maybe<Scalars['String']['output']>
1400
+ readonly weakPasswordReasons?: Maybe<ReadonlyArray<WeakPasswordReason>>
1347
1401
  }
1348
1402
 
1349
1403
  export type SignUpErrorCode =
@@ -1453,6 +1507,15 @@ export type VariableEntryInput = {
1453
1507
  readonly values: ReadonlyArray<Scalars['String']['input']>
1454
1508
  }
1455
1509
 
1510
+ export type WeakPasswordReason =
1511
+ | 'BLACKLISTED'
1512
+ | 'INVALID_PATTERN'
1513
+ | 'MISSING_DIGIT'
1514
+ | 'MISSING_LOWERCASE'
1515
+ | 'MISSING_SPECIAL'
1516
+ | 'MISSING_UPPERCASE'
1517
+ | 'TOO_SHORT'
1518
+
1456
1519
 
1457
1520
 
1458
1521
  export type ResolverTypeWrapper<T> = Promise<T> | T
@@ -1565,6 +1628,10 @@ export type ResolversTypes = {
1565
1628
  CommonSignInResult: ResolverTypeWrapper<ResolversInterfaceTypes<ResolversTypes>['CommonSignInResult']>
1566
1629
  Config: ResolverTypeWrapper<Config>
1567
1630
  ConfigInput: ConfigInput
1631
+ ConfigLogin: ResolverTypeWrapper<ConfigLogin>
1632
+ ConfigLoginInput: ConfigLoginInput
1633
+ ConfigPassword: ResolverTypeWrapper<ConfigPassword>
1634
+ ConfigPasswordInput: ConfigPasswordInput
1568
1635
  ConfigPasswordless: ResolverTypeWrapper<ConfigPasswordless>
1569
1636
  ConfigPasswordlessInput: ConfigPasswordlessInput
1570
1637
  ConfigPolicy: ConfigPolicy
@@ -1624,6 +1691,7 @@ export type ResolversTypes = {
1624
1691
  InitSignInPasswordlessResponse: ResolverTypeWrapper<InitSignInPasswordlessResponse>
1625
1692
  InitSignInPasswordlessResult: ResolverTypeWrapper<InitSignInPasswordlessResult>
1626
1693
  Int: ResolverTypeWrapper<Scalars['Int']['output']>
1694
+ Interval: ResolverTypeWrapper<Scalars['Interval']['output']>
1627
1695
  InviteError: ResolverTypeWrapper<InviteError>
1628
1696
  InviteErrorCode: InviteErrorCode
1629
1697
  InviteMethod: InviteMethod
@@ -1707,6 +1775,7 @@ export type ResolversTypes = {
1707
1775
  UpdateProjectResponse: ResolverTypeWrapper<UpdateProjectResponse>
1708
1776
  VariableEntry: ResolverTypeWrapper<VariableEntry>
1709
1777
  VariableEntryInput: VariableEntryInput
1778
+ WeakPasswordReason: WeakPasswordReason
1710
1779
  }
1711
1780
 
1712
1781
  /** Mapping between all available schema types and the resolvers parents */
@@ -1737,6 +1806,10 @@ export type ResolversParentTypes = {
1737
1806
  CommonSignInResult: ResolversInterfaceTypes<ResolversParentTypes>['CommonSignInResult']
1738
1807
  Config: Config
1739
1808
  ConfigInput: ConfigInput
1809
+ ConfigLogin: ConfigLogin
1810
+ ConfigLoginInput: ConfigLoginInput
1811
+ ConfigPassword: ConfigPassword
1812
+ ConfigPasswordInput: ConfigPasswordInput
1740
1813
  ConfigPasswordless: ConfigPasswordless
1741
1814
  ConfigPasswordlessInput: ConfigPasswordlessInput
1742
1815
  ConfigureError: ConfigureError
@@ -1782,6 +1855,7 @@ export type ResolversParentTypes = {
1782
1855
  InitSignInPasswordlessResponse: InitSignInPasswordlessResponse
1783
1856
  InitSignInPasswordlessResult: InitSignInPasswordlessResult
1784
1857
  Int: Scalars['Int']['output']
1858
+ Interval: Scalars['Interval']['output']
1785
1859
  InviteError: InviteError
1786
1860
  InviteOptions: InviteOptions
1787
1861
  InviteResponse: InviteResponse
@@ -1934,6 +2008,7 @@ export type ApiKeyWithTokenResolvers<ContextType = any, ParentType extends Resol
1934
2008
  export type ChangeMyPasswordErrorResolvers<ContextType = any, ParentType extends ResolversParentTypes['ChangeMyPasswordError'] = ResolversParentTypes['ChangeMyPasswordError']> = {
1935
2009
  code?: Resolver<ResolversTypes['ChangeMyPasswordErrorCode'], ParentType, ContextType>
1936
2010
  developerMessage?: Resolver<ResolversTypes['String'], ParentType, ContextType>
2011
+ weakPasswordReasons?: Resolver<Maybe<ReadonlyArray<ResolversTypes['WeakPasswordReason']>>, ParentType, ContextType>
1937
2012
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>
1938
2013
  }
1939
2014
 
@@ -1959,6 +2034,7 @@ export type ChangePasswordErrorResolvers<ContextType = any, ParentType extends R
1959
2034
  code?: Resolver<ResolversTypes['ChangePasswordErrorCode'], ParentType, ContextType>
1960
2035
  developerMessage?: Resolver<ResolversTypes['String'], ParentType, ContextType>
1961
2036
  endUserMessage?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>
2037
+ weakPasswordReasons?: Resolver<Maybe<ReadonlyArray<ResolversTypes['WeakPasswordReason']>>, ParentType, ContextType>
1962
2038
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>
1963
2039
  }
1964
2040
 
@@ -1993,13 +2069,36 @@ export type CommonSignInResultResolvers<ContextType = any, ParentType extends Re
1993
2069
  }
1994
2070
 
1995
2071
  export type ConfigResolvers<ContextType = any, ParentType extends ResolversParentTypes['Config'] = ResolversParentTypes['Config']> = {
2072
+ login?: Resolver<ResolversTypes['ConfigLogin'], ParentType, ContextType>
2073
+ password?: Resolver<ResolversTypes['ConfigPassword'], ParentType, ContextType>
1996
2074
  passwordless?: Resolver<ResolversTypes['ConfigPasswordless'], ParentType, ContextType>
1997
2075
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>
1998
2076
  }
1999
2077
 
2078
+ export type ConfigLoginResolvers<ContextType = any, ParentType extends ResolversParentTypes['ConfigLogin'] = ResolversParentTypes['ConfigLogin']> = {
2079
+ attemptWindow?: Resolver<ResolversTypes['Interval'], ParentType, ContextType>
2080
+ baseBackoff?: Resolver<ResolversTypes['Interval'], ParentType, ContextType>
2081
+ defaultTokenExpiration?: Resolver<ResolversTypes['Interval'], ParentType, ContextType>
2082
+ maxBackoff?: Resolver<ResolversTypes['Interval'], ParentType, ContextType>
2083
+ maxTokenExpiration?: Resolver<Maybe<ResolversTypes['Interval']>, ParentType, ContextType>
2084
+ revealUserExists?: Resolver<ResolversTypes['Boolean'], ParentType, ContextType>
2085
+ __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>
2086
+ }
2087
+
2088
+ export type ConfigPasswordResolvers<ContextType = any, ParentType extends ResolversParentTypes['ConfigPassword'] = ResolversParentTypes['ConfigPassword']> = {
2089
+ checkBlacklist?: Resolver<ResolversTypes['Boolean'], ParentType, ContextType>
2090
+ minLength?: Resolver<ResolversTypes['Int'], ParentType, ContextType>
2091
+ pattern?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>
2092
+ requireDigit?: Resolver<ResolversTypes['Int'], ParentType, ContextType>
2093
+ requireLowercase?: Resolver<ResolversTypes['Int'], ParentType, ContextType>
2094
+ requireSpecial?: Resolver<ResolversTypes['Int'], ParentType, ContextType>
2095
+ requireUppercase?: Resolver<ResolversTypes['Int'], ParentType, ContextType>
2096
+ __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>
2097
+ }
2098
+
2000
2099
  export type ConfigPasswordlessResolvers<ContextType = any, ParentType extends ResolversParentTypes['ConfigPasswordless'] = ResolversParentTypes['ConfigPasswordless']> = {
2001
2100
  enabled?: Resolver<ResolversTypes['ConfigPolicy'], ParentType, ContextType>
2002
- expirationMinutes?: Resolver<ResolversTypes['Int'], ParentType, ContextType>
2101
+ expiration?: Resolver<ResolversTypes['Interval'], ParentType, ContextType>
2003
2102
  url?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>
2004
2103
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>
2005
2104
  }
@@ -2250,6 +2349,10 @@ export type InitSignInPasswordlessResultResolvers<ContextType = any, ParentType
2250
2349
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>
2251
2350
  }
2252
2351
 
2352
+ export interface IntervalScalarConfig extends GraphQLScalarTypeConfig<ResolversTypes['Interval'], any> {
2353
+ name: 'Interval'
2354
+ }
2355
+
2253
2356
  export type InviteErrorResolvers<ContextType = any, ParentType extends ResolversParentTypes['InviteError'] = ResolversParentTypes['InviteError']> = {
2254
2357
  code?: Resolver<ResolversTypes['InviteErrorCode'], ParentType, ContextType>
2255
2358
  developerMessage?: Resolver<ResolversTypes['String'], ParentType, ContextType>
@@ -2446,6 +2549,7 @@ export type ResetPasswordErrorResolvers<ContextType = any, ParentType extends Re
2446
2549
  code?: Resolver<ResolversTypes['ResetPasswordErrorCode'], ParentType, ContextType>
2447
2550
  developerMessage?: Resolver<ResolversTypes['String'], ParentType, ContextType>
2448
2551
  endUserMessage?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>
2552
+ weakPasswordReasons?: Resolver<Maybe<ReadonlyArray<ResolversTypes['WeakPasswordReason']>>, ParentType, ContextType>
2449
2553
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>
2450
2554
  }
2451
2555
 
@@ -2500,6 +2604,7 @@ export type SignInErrorResolvers<ContextType = any, ParentType extends Resolvers
2500
2604
  code?: Resolver<ResolversTypes['SignInErrorCode'], ParentType, ContextType>
2501
2605
  developerMessage?: Resolver<ResolversTypes['String'], ParentType, ContextType>
2502
2606
  endUserMessage?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>
2607
+ retryAfter?: Resolver<Maybe<ResolversTypes['Int']>, ParentType, ContextType>
2503
2608
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>
2504
2609
  }
2505
2610
 
@@ -2576,6 +2681,7 @@ export type SignUpErrorResolvers<ContextType = any, ParentType extends Resolvers
2576
2681
  code?: Resolver<ResolversTypes['SignUpErrorCode'], ParentType, ContextType>
2577
2682
  developerMessage?: Resolver<ResolversTypes['String'], ParentType, ContextType>
2578
2683
  endPersonMessage?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>
2684
+ weakPasswordReasons?: Resolver<Maybe<ReadonlyArray<ResolversTypes['WeakPasswordReason']>>, ParentType, ContextType>
2579
2685
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>
2580
2686
  }
2581
2687
 
@@ -2674,6 +2780,8 @@ export type Resolvers<ContextType = any> = {
2674
2780
  CheckResetPasswordTokenResult?: CheckResetPasswordTokenResultResolvers<ContextType>
2675
2781
  CommonSignInResult?: CommonSignInResultResolvers<ContextType>
2676
2782
  Config?: ConfigResolvers<ContextType>
2783
+ ConfigLogin?: ConfigLoginResolvers<ContextType>
2784
+ ConfigPassword?: ConfigPasswordResolvers<ContextType>
2677
2785
  ConfigPasswordless?: ConfigPasswordlessResolvers<ContextType>
2678
2786
  ConfigureError?: ConfigureErrorResolvers<ContextType>
2679
2787
  ConfigureResponse?: ConfigureResponseResolvers<ContextType>
@@ -2712,6 +2820,7 @@ export type Resolvers<ContextType = any> = {
2712
2820
  InitSignInPasswordlessError?: InitSignInPasswordlessErrorResolvers<ContextType>
2713
2821
  InitSignInPasswordlessResponse?: InitSignInPasswordlessResponseResolvers<ContextType>
2714
2822
  InitSignInPasswordlessResult?: InitSignInPasswordlessResultResolvers<ContextType>
2823
+ Interval?: GraphQLScalarType
2715
2824
  InviteError?: InviteErrorResolvers<ContextType>
2716
2825
  InviteResponse?: InviteResponseResolvers<ContextType>
2717
2826
  InviteResult?: InviteResultResolvers<ContextType>
@@ -4,6 +4,9 @@ import { DocumentNode } from 'graphql'
4
4
  const schema: DocumentNode = gql`
5
5
  scalar Json
6
6
  scalar DateTime
7
+
8
+ """ Interval is a string in the format ISO 8601, e.g. "PT1H" for 1 hour """
9
+ scalar Interval
7
10
 
8
11
  schema {
9
12
  query: Query
@@ -120,16 +123,39 @@ const schema: DocumentNode = gql`
120
123
 
121
124
  type Config {
122
125
  passwordless: ConfigPasswordless!
126
+ password: ConfigPassword!
127
+ login: ConfigLogin!
123
128
  }
124
129
 
125
130
  type ConfigPasswordless {
126
131
  enabled: ConfigPolicy!
127
132
  url: String
128
- expirationMinutes: Int!
133
+ expiration: Interval!
129
134
  }
130
135
 
136
+ type ConfigPassword {
137
+ minLength: Int!
138
+ requireUppercase: Int!
139
+ requireLowercase: Int!
140
+ requireDigit: Int!
141
+ requireSpecial: Int!
142
+ pattern: String
143
+ checkBlacklist: Boolean!
144
+ }
145
+
146
+ type ConfigLogin {
147
+ baseBackoff: Interval!
148
+ maxBackoff: Interval!
149
+ attemptWindow: Interval!
150
+ revealUserExists: Boolean!
151
+ defaultTokenExpiration: Interval!
152
+ maxTokenExpiration: Interval
153
+ }
154
+
131
155
  input ConfigInput {
132
156
  passwordless: ConfigPasswordlessInput
157
+ password: ConfigPasswordInput
158
+ login: ConfigLoginInput
133
159
  }
134
160
 
135
161
  enum ConfigPolicy {
@@ -142,9 +168,28 @@ const schema: DocumentNode = gql`
142
168
  input ConfigPasswordlessInput {
143
169
  enabled: ConfigPolicy
144
170
  url: String
145
- expirationMinutes: Int
171
+ expiration: Interval
146
172
  }
147
173
 
174
+ input ConfigPasswordInput {
175
+ minLength: Int
176
+ requireUppercase: Int
177
+ requireLowercase: Int
178
+ requireDigit: Int
179
+ requireSpecial: Int
180
+ pattern: String
181
+ checkBlacklist: Boolean
182
+ }
183
+
184
+ input ConfigLoginInput {
185
+ baseBackoff: Interval
186
+ maxBackoff: Interval
187
+ attemptWindow: Interval
188
+ revealUserExists: Boolean
189
+ defaultTokenExpiration: Interval
190
+ maxTokenExpiration: Interval
191
+ }
192
+
148
193
  type ConfigureResponse {
149
194
  ok: Boolean!
150
195
  error: ConfigureError
@@ -169,6 +214,7 @@ const schema: DocumentNode = gql`
169
214
 
170
215
  type SignUpError {
171
216
  code: SignUpErrorCode!
217
+ weakPasswordReasons: [WeakPasswordReason!]
172
218
  developerMessage: String!
173
219
  endPersonMessage: String @deprecated
174
220
  }
@@ -202,15 +248,18 @@ const schema: DocumentNode = gql`
202
248
  code: SignInErrorCode!
203
249
  developerMessage: String!
204
250
  endUserMessage: String @deprecated
251
+ retryAfter: Int
205
252
  }
206
253
 
207
254
  enum SignInErrorCode {
255
+ INVALID_CREDENTIALS
208
256
  UNKNOWN_EMAIL
209
257
  INVALID_PASSWORD
210
258
  PERSON_DISABLED
211
259
  NO_PASSWORD_SET
212
260
  OTP_REQUIRED
213
261
  INVALID_OTP_TOKEN
262
+ RATE_LIMIT_EXCEEDED
214
263
  }
215
264
 
216
265
  type SignInResult implements CommonSignInResult {
@@ -307,6 +356,7 @@ const schema: DocumentNode = gql`
307
356
 
308
357
  type ChangePasswordError {
309
358
  code: ChangePasswordErrorCode!
359
+ weakPasswordReasons: [WeakPasswordReason!]
310
360
  developerMessage: String!
311
361
  endUserMessage: String @deprecated
312
362
  }
@@ -315,6 +365,16 @@ const schema: DocumentNode = gql`
315
365
  PERSON_NOT_FOUND
316
366
  TOO_WEAK
317
367
  }
368
+
369
+ enum WeakPasswordReason {
370
+ TOO_SHORT
371
+ MISSING_UPPERCASE
372
+ MISSING_LOWERCASE
373
+ MISSING_DIGIT
374
+ MISSING_SPECIAL
375
+ INVALID_PATTERN
376
+ BLACKLISTED
377
+ }
318
378
 
319
379
 
320
380
  # === changeMyPassword ===
@@ -326,6 +386,7 @@ const schema: DocumentNode = gql`
326
386
 
327
387
  type ChangeMyPasswordError {
328
388
  code: ChangeMyPasswordErrorCode!
389
+ weakPasswordReasons: [WeakPasswordReason!]
329
390
  developerMessage: String!
330
391
  }
331
392
 
@@ -1086,6 +1147,7 @@ const schema: DocumentNode = gql`
1086
1147
  }
1087
1148
  type ResetPasswordError {
1088
1149
  code: ResetPasswordErrorCode!
1150
+ weakPasswordReasons: [WeakPasswordReason!]
1089
1151
  developerMessage: String!
1090
1152
  endUserMessage: String @deprecated
1091
1153
  }
@@ -0,0 +1,4 @@
1
+ import { IPostgresInterval } from 'postgres-interval'
2
+
3
+ export type Interval = string & { __kind: 'Interval' }
4
+ export type OutputInterval = string & { __kind: 'Interval' } | IPostgresInterval
@@ -5,12 +5,13 @@ import { test } from 'bun:test'
5
5
  import { changeMyPasswordMutation } from './gql/changeMyPassword'
6
6
  import { getPersonByIdentity } from './sql/getPersonByIdentity'
7
7
  import { authenticatedIdentityId } from '../../../src/testTenant'
8
+ import { getConfigSql } from './sql/getConfigSql'
8
9
 
9
10
  test('changes my password', async () => {
10
11
  const personId = testUuid(1)
11
12
  const identityId = authenticatedIdentityId
12
13
  const currentPassword = '123456'
13
- const newPassword = 'abcd123'
14
+ const newPassword = 'ABcc123456'
14
15
  await executeTenantTest({
15
16
  query: changeMyPasswordMutation({ currentPassword, newPassword }),
16
17
  executes: [
@@ -18,6 +19,7 @@ test('changes my password', async () => {
18
19
  identityId,
19
20
  response: { personId, email: 'john@doe.com', roles: [], password: '123456' },
20
21
  }),
22
+ getConfigSql(),
21
23
  updatePersonPasswordSql({ personId, password: newPassword }),
22
24
  ],
23
25
  return: {
@@ -28,6 +30,42 @@ test('changes my password', async () => {
28
30
  },
29
31
  },
30
32
  },
33
+ expectedAuthLog: { 'type': 'password_change', 'response': { 'result': null, 'ok': true }, 'personId': testUuid(1) },
34
+ })
35
+ })
36
+
37
+ test('changes my password - weak', async () => {
38
+ const personId = testUuid(1)
39
+ const identityId = authenticatedIdentityId
40
+ const currentPassword = '123456'
41
+ const newPassword = 'abcd123'
42
+ await executeTenantTest({
43
+ query: changeMyPasswordMutation({ currentPassword, newPassword }),
44
+ executes: [
45
+ getPersonByIdentity({
46
+ identityId,
47
+ response: { personId, email: 'john@doe.com', roles: [], password: '123456' },
48
+ }),
49
+ getConfigSql(),
50
+ ],
51
+ return: {
52
+ data: {
53
+ changeMyPassword: {
54
+ ok: false,
55
+ error: {
56
+ code: 'TOO_WEAK',
57
+ },
58
+ },
59
+ },
60
+ },
61
+ expectedAuthLog: { 'type': 'password_change', 'response': { ok: false, error: 'TOO_WEAK',
62
+ errorMessage: 'Password must contain at least 1 uppercase letter. Password is blacklisted.',
63
+ metadata: {
64
+ weakPasswordReasons: [
65
+ 'MISSING_UPPERCASE',
66
+ 'BLACKLISTED',
67
+ ],
68
+ } }, 'personId': testUuid(1) },
31
69
  })
32
70
  })
33
71
 
@@ -36,7 +74,7 @@ test('changes my password - invalid current password', async () => {
36
74
  const personId = testUuid(1)
37
75
  const identityId = authenticatedIdentityId
38
76
  const currentPassword = 'xxxxxx'
39
- const newPassword = 'abcd123'
77
+ const newPassword = 'ABcc123456'
40
78
  await executeTenantTest({
41
79
  query: changeMyPasswordMutation({ currentPassword, newPassword }),
42
80
  executes: [
@@ -44,6 +82,7 @@ test('changes my password - invalid current password', async () => {
44
82
  identityId,
45
83
  response: { personId, email: 'john@doe.com', roles: [], password: '123456' },
46
84
  }),
85
+ getConfigSql(),
47
86
  ],
48
87
  return: {
49
88
  data: {
@@ -55,6 +94,7 @@ test('changes my password - invalid current password', async () => {
55
94
  },
56
95
  },
57
96
  },
97
+ expectedAuthLog: { 'type': 'password_change', 'response': { 'ok': false, 'error': 'INVALID_PASSWORD', 'errorMessage': 'Password does not match' }, 'personId': testUuid(1) },
58
98
  })
59
99
  })
60
100
 
@@ -1,7 +1,7 @@
1
1
  import { executeTenantTest } from '../../../src/testTenant'
2
2
  import { testUuid } from '../../../src/testUuid'
3
3
  import { updatePersonProfileNameSql, updatePersonProfileEmailSql, updatePersonProfileNameAndEmailSql } from './sql/updatePesonNameSql'
4
- import { test } from 'bun:test'
4
+ import { expect, test } from 'bun:test'
5
5
  import { changeMyProfileMutation } from './gql/changeMyProfile'
6
6
  import { getPersonByIdentity } from './sql/getPersonByIdentity'
7
7
  import { authenticatedIdentityId } from '../../../src/testTenant'
@@ -78,6 +78,12 @@ test('changes my email', async () => {
78
78
  },
79
79
  },
80
80
  },
81
+ expectedAuthLog: expect.objectContaining({
82
+ type: 'email_change',
83
+ response: expect.objectContaining({
84
+ ok: true,
85
+ }),
86
+ }),
81
87
  })
82
88
  })
83
89
 
@@ -92,7 +98,6 @@ test('changes my email - invalid', async () => {
92
98
  identityId,
93
99
  response: { personId, email: 'john.doe@example.com', name: 'John Doe', roles: [], password: '123456' },
94
100
  }),
95
- updatePersonProfileEmailSql({ personId, email }),
96
101
  ],
97
102
  return: {
98
103
  data: {
@@ -118,7 +123,6 @@ test('changes my email - invalid #2', async () => {
118
123
  identityId,
119
124
  response: { personId, email: 'john.doe@example.com', name: 'John Doe', roles: [], password: '123456' },
120
125
  }),
121
- updatePersonProfileEmailSql({ personId, email }),
122
126
  ],
123
127
  return: {
124
128
  data: {
@@ -130,6 +134,12 @@ test('changes my email - invalid #2', async () => {
130
134
  },
131
135
  },
132
136
  },
137
+ expectedAuthLog: expect.objectContaining({
138
+ type: 'email_change',
139
+ response: expect.objectContaining({
140
+ ok: false,
141
+ }),
142
+ }),
133
143
  })
134
144
  })
135
145
 
@@ -145,7 +155,6 @@ test('changes my email - exists', async () => {
145
155
  response: { personId, email: 'john.doe@example.com', name: 'John Doe', roles: [], password: '123456' },
146
156
  }),
147
157
  getPersonByEmailSql({ email, response: { personId: testUuid(4), identityId: testUuid(5), roles: [], password: '' } }),
148
- updatePersonProfileEmailSql({ personId, email }),
149
158
  ],
150
159
  return: {
151
160
  data: {
@@ -157,6 +166,12 @@ test('changes my email - exists', async () => {
157
166
  },
158
167
  },
159
168
  },
169
+ expectedAuthLog: expect.objectContaining({
170
+ type: 'email_change',
171
+ response: expect.objectContaining({
172
+ ok: false,
173
+ }),
174
+ }),
160
175
  })
161
176
  })
162
177
 
@@ -183,5 +198,11 @@ test('changes my name and email', async () => {
183
198
  },
184
199
  },
185
200
  },
201
+ expectedAuthLog: expect.objectContaining({
202
+ type: 'email_change',
203
+ response: expect.objectContaining({
204
+ ok: true,
205
+ }),
206
+ }),
186
207
  })
187
208
  })
@@ -3,12 +3,13 @@ import { testUuid } from '../../../src/testUuid'
3
3
  import { changePasswordMutation } from './gql/changePassword'
4
4
  import { getPersonByIdSql } from './sql/getPersonByIdSql'
5
5
  import { updatePersonPasswordSql } from './sql/updatePesonPasswordSql'
6
- import { test } from 'bun:test'
6
+ import { expect, test } from 'bun:test'
7
+ import { getConfigSql } from './sql/getConfigSql'
7
8
 
8
9
  test('changes a password', async () => {
9
10
  const personId = testUuid(1)
10
11
  const identityId = testUuid(2)
11
- const password = '123456'
12
+ const password = 'AbcDeg123'
12
13
  await executeTenantTest({
13
14
  query: changePasswordMutation({ personId, password }),
14
15
  executes: [
@@ -16,6 +17,7 @@ test('changes a password', async () => {
16
17
  personId,
17
18
  response: { personId, email: 'john@doe.com', roles: [], password: '123', identityId },
18
19
  }),
20
+ getConfigSql(),
19
21
  updatePersonPasswordSql({ personId, password }),
20
22
  ],
21
23
  return: {
@@ -25,6 +27,12 @@ test('changes a password', async () => {
25
27
  },
26
28
  },
27
29
  },
30
+ expectedAuthLog: expect.objectContaining({
31
+ type: 'password_change',
32
+ response: expect.objectContaining({
33
+ ok: true,
34
+ }),
35
+ }),
28
36
  })
29
37
  })
30
38
 
@@ -1,6 +1,6 @@
1
1
  import { executeTenantTest } from '../../../src/testTenant'
2
2
  import { testUuid } from '../../../src/testUuid'
3
- import { test } from 'bun:test'
3
+ import { expect, test } from 'bun:test'
4
4
  import { changeProfileMutation } from './gql/changeProfile'
5
5
  import { updatePersonProfileNameAndEmailSql } from './sql/updatePesonNameSql'
6
6
  import { authenticatedIdentityId } from '../../../src/testTenant'
@@ -32,6 +32,12 @@ test('changes my name and email', async () => {
32
32
  },
33
33
  },
34
34
  },
35
+ expectedAuthLog: expect.objectContaining({
36
+ type: 'email_change',
37
+ response: expect.objectContaining({
38
+ ok: true,
39
+ }),
40
+ }),
35
41
  })
36
42
  })
37
43