@contember/engine-tenant-api 2.2.0-alpha.3 → 2.2.0-alpha.5

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 (1181) hide show
  1. package/CLAUDE.md +35 -2
  2. package/dist/development/index.cjs +30 -0
  3. package/dist/development/index.cjs.map +1 -1
  4. package/dist/development/index.js +31 -1
  5. package/dist/development/index.js.map +1 -1
  6. package/dist/development/src/TenantContainer.cjs +15 -3
  7. package/dist/development/src/TenantContainer.cjs.map +1 -1
  8. package/dist/development/src/TenantContainer.js +15 -3
  9. package/dist/development/src/TenantContainer.js.map +1 -1
  10. package/dist/development/src/bridges/system/IdentityFetcher.cjs +2 -1
  11. package/dist/development/src/bridges/system/IdentityFetcher.cjs.map +1 -1
  12. package/dist/development/src/bridges/system/IdentityFetcher.js +2 -1
  13. package/dist/development/src/bridges/system/IdentityFetcher.js.map +1 -1
  14. package/dist/development/src/migrations/2026-06-18-120000-idp-claim-mapping.cjs +10 -0
  15. package/dist/development/src/migrations/2026-06-18-120000-idp-claim-mapping.cjs.map +1 -0
  16. package/dist/development/src/migrations/2026-06-18-120000-idp-claim-mapping.js +11 -0
  17. package/dist/development/src/migrations/2026-06-18-120000-idp-claim-mapping.js.map +1 -0
  18. package/dist/development/src/migrations/2026-08-03-120000-person-enable-auth-log.cjs +9 -0
  19. package/dist/development/src/migrations/2026-08-03-120000-person-enable-auth-log.cjs.map +1 -0
  20. package/dist/development/src/migrations/2026-08-03-120000-person-enable-auth-log.js +10 -0
  21. package/dist/development/src/migrations/2026-08-03-120000-person-enable-auth-log.js.map +1 -0
  22. package/dist/development/src/migrations/2026-08-04-120000-config-panel.cjs +11 -0
  23. package/dist/development/src/migrations/2026-08-04-120000-config-panel.cjs.map +1 -0
  24. package/dist/development/src/migrations/2026-08-04-120000-config-panel.js +12 -0
  25. package/dist/development/src/migrations/2026-08-04-120000-config-panel.js.map +1 -0
  26. package/dist/development/src/migrations/runner.cjs +9 -2
  27. package/dist/development/src/migrations/runner.cjs.map +1 -1
  28. package/dist/development/src/migrations/runner.js +9 -2
  29. package/dist/development/src/migrations/runner.js.map +1 -1
  30. package/dist/development/src/migrations/snapshot.cjs +6 -1
  31. package/dist/development/src/migrations/snapshot.cjs.map +1 -1
  32. package/dist/development/src/migrations/snapshot.js +6 -1
  33. package/dist/development/src/migrations/snapshot.js.map +1 -1
  34. package/dist/development/src/model/commands/configuration/UpdateConfigurationCommand.cjs +5 -3
  35. package/dist/development/src/model/commands/configuration/UpdateConfigurationCommand.cjs.map +1 -1
  36. package/dist/development/src/model/commands/configuration/UpdateConfigurationCommand.js +5 -3
  37. package/dist/development/src/model/commands/configuration/UpdateConfigurationCommand.js.map +1 -1
  38. package/dist/development/src/model/commands/membership/{RemoveProjectMembershipsCommand.cjs → RemoveProjectMembershipCommand.cjs} +1 -1
  39. package/dist/development/src/model/commands/membership/RemoveProjectMembershipCommand.cjs.map +1 -0
  40. package/dist/development/src/model/commands/membership/{RemoveProjectMembershipsCommand.js → RemoveProjectMembershipCommand.js} +1 -1
  41. package/dist/development/src/model/commands/membership/RemoveProjectMembershipCommand.js.map +1 -0
  42. package/dist/development/src/model/commands/membership/UpdateProjectMemberCommand.cjs +2 -2
  43. package/dist/development/src/model/commands/membership/UpdateProjectMemberCommand.cjs.map +1 -1
  44. package/dist/development/src/model/commands/membership/UpdateProjectMemberCommand.js +1 -1
  45. package/dist/development/src/model/commands/membership/UpdateProjectMemberCommand.js.map +1 -1
  46. package/dist/development/src/model/commands/person/EnablePersonCommand.cjs +17 -0
  47. package/dist/development/src/model/commands/person/EnablePersonCommand.cjs.map +1 -0
  48. package/dist/development/src/model/commands/person/EnablePersonCommand.js +17 -0
  49. package/dist/development/src/model/commands/person/EnablePersonCommand.js.map +1 -0
  50. package/dist/development/src/model/queries/configuration/ConfigurationQuery.cjs +4 -0
  51. package/dist/development/src/model/queries/configuration/ConfigurationQuery.cjs.map +1 -1
  52. package/dist/development/src/model/queries/configuration/ConfigurationQuery.js +4 -0
  53. package/dist/development/src/model/queries/configuration/ConfigurationQuery.js.map +1 -1
  54. package/dist/development/src/model/queries/membership/ProjectMembersQuery.cjs +1 -1
  55. package/dist/development/src/model/queries/membership/ProjectMembersQuery.cjs.map +1 -1
  56. package/dist/development/src/model/queries/membership/ProjectMembersQuery.js +1 -1
  57. package/dist/development/src/model/queries/membership/ProjectMembersQuery.js.map +1 -1
  58. package/dist/development/src/model/queries/person/PersonQueryBuilderFactory.cjs +1 -1
  59. package/dist/development/src/model/queries/person/PersonQueryBuilderFactory.cjs.map +1 -1
  60. package/dist/development/src/model/queries/person/PersonQueryBuilderFactory.js +1 -1
  61. package/dist/development/src/model/queries/person/PersonQueryBuilderFactory.js.map +1 -1
  62. package/dist/development/src/model/service/AuthLogService.cjs +8 -2
  63. package/dist/development/src/model/service/AuthLogService.cjs.map +1 -1
  64. package/dist/development/src/model/service/AuthLogService.js +8 -2
  65. package/dist/development/src/model/service/AuthLogService.js.map +1 -1
  66. package/dist/development/src/model/service/IDPSignInManager.cjs +29 -2
  67. package/dist/development/src/model/service/IDPSignInManager.cjs.map +1 -1
  68. package/dist/development/src/model/service/IDPSignInManager.js +29 -2
  69. package/dist/development/src/model/service/IDPSignInManager.js.map +1 -1
  70. package/dist/development/src/model/service/PanelAccessResolver.cjs +31 -0
  71. package/dist/development/src/model/service/PanelAccessResolver.cjs.map +1 -0
  72. package/dist/development/src/model/service/PanelAccessResolver.js +31 -0
  73. package/dist/development/src/model/service/PanelAccessResolver.js.map +1 -0
  74. package/dist/development/src/model/service/PersonAccessManager.cjs +10 -2
  75. package/dist/development/src/model/service/PersonAccessManager.cjs.map +1 -1
  76. package/dist/development/src/model/service/PersonAccessManager.js +10 -2
  77. package/dist/development/src/model/service/PersonAccessManager.js.map +1 -1
  78. package/dist/development/src/model/service/apiKey/ApiKeyManager.cjs +4 -3
  79. package/dist/development/src/model/service/apiKey/ApiKeyManager.cjs.map +1 -1
  80. package/dist/development/src/model/service/apiKey/ApiKeyManager.js +4 -3
  81. package/dist/development/src/model/service/apiKey/ApiKeyManager.js.map +1 -1
  82. package/dist/development/src/model/service/apiKey/UnpersistedApiKeyManager.cjs +7 -0
  83. package/dist/development/src/model/service/apiKey/UnpersistedApiKeyManager.cjs.map +1 -1
  84. package/dist/development/src/model/service/apiKey/UnpersistedApiKeyManager.js +8 -1
  85. package/dist/development/src/model/service/apiKey/UnpersistedApiKeyManager.js.map +1 -1
  86. package/dist/development/src/model/service/idp/ClaimMapping.cjs +187 -0
  87. package/dist/development/src/model/service/idp/ClaimMapping.cjs.map +1 -0
  88. package/dist/development/src/model/service/idp/ClaimMapping.js +170 -0
  89. package/dist/development/src/model/service/idp/ClaimMapping.js.map +1 -0
  90. package/dist/development/src/model/service/idp/ClaimMappingEvaluator.cjs +155 -0
  91. package/dist/development/src/model/service/idp/ClaimMappingEvaluator.cjs.map +1 -0
  92. package/dist/development/src/model/service/idp/ClaimMappingEvaluator.js +155 -0
  93. package/dist/development/src/model/service/idp/ClaimMappingEvaluator.js.map +1 -0
  94. package/dist/development/src/model/service/idp/ClaimMappingValidation.cjs +83 -0
  95. package/dist/development/src/model/service/idp/ClaimMappingValidation.cjs.map +1 -0
  96. package/dist/development/src/model/service/idp/ClaimMappingValidation.js +83 -0
  97. package/dist/development/src/model/service/idp/ClaimMappingValidation.js.map +1 -0
  98. package/dist/development/src/model/service/idp/IDPClaimSyncService.cjs +260 -0
  99. package/dist/development/src/model/service/idp/IDPClaimSyncService.cjs.map +1 -0
  100. package/dist/development/src/model/service/idp/IDPClaimSyncService.js +260 -0
  101. package/dist/development/src/model/service/idp/IDPClaimSyncService.js.map +1 -0
  102. package/dist/development/src/model/service/idp/IDPManager.cjs +96 -20
  103. package/dist/development/src/model/service/idp/IDPManager.cjs.map +1 -1
  104. package/dist/development/src/model/service/idp/IDPManager.js +96 -20
  105. package/dist/development/src/model/service/idp/IDPManager.js.map +1 -1
  106. package/dist/development/src/model/service/idp/IdpSessionRevalidator.cjs +55 -1
  107. package/dist/development/src/model/service/idp/IdpSessionRevalidator.cjs.map +1 -1
  108. package/dist/development/src/model/service/idp/IdpSessionRevalidator.js +55 -1
  109. package/dist/development/src/model/service/idp/IdpSessionRevalidator.js.map +1 -1
  110. package/dist/development/src/model/service/idp/providers/OIDCHelpers.cjs +69 -33
  111. package/dist/development/src/model/service/idp/providers/OIDCHelpers.cjs.map +1 -1
  112. package/dist/development/src/model/service/idp/providers/OIDCHelpers.js +69 -33
  113. package/dist/development/src/model/service/idp/providers/OIDCHelpers.js.map +1 -1
  114. package/dist/development/src/model/service/idp/providers/OIDCProvider.cjs +4 -1
  115. package/dist/development/src/model/service/idp/providers/OIDCProvider.cjs.map +1 -1
  116. package/dist/development/src/model/service/idp/providers/OIDCProvider.js +4 -1
  117. package/dist/development/src/model/service/idp/providers/OIDCProvider.js.map +1 -1
  118. package/dist/development/src/model/utils/DatabaseContext.cjs +7 -2
  119. package/dist/development/src/model/utils/DatabaseContext.cjs.map +1 -1
  120. package/dist/development/src/model/utils/DatabaseContext.js +8 -3
  121. package/dist/development/src/model/utils/DatabaseContext.js.map +1 -1
  122. package/dist/development/src/resolvers/ResolverFactory.cjs +6 -2
  123. package/dist/development/src/resolvers/ResolverFactory.cjs.map +1 -1
  124. package/dist/development/src/resolvers/ResolverFactory.js +6 -2
  125. package/dist/development/src/resolvers/ResolverFactory.js.map +1 -1
  126. package/dist/development/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.cjs +2 -1
  127. package/dist/development/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.cjs.map +1 -1
  128. package/dist/development/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.js +2 -1
  129. package/dist/development/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.js.map +1 -1
  130. package/dist/development/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.cjs +2 -1
  131. package/dist/development/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.cjs.map +1 -1
  132. package/dist/development/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.js +2 -1
  133. package/dist/development/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.js.map +1 -1
  134. package/dist/development/src/resolvers/mutation/configuration/AuthPolicyMutationResolver.cjs +2 -1
  135. package/dist/development/src/resolvers/mutation/configuration/AuthPolicyMutationResolver.cjs.map +1 -1
  136. package/dist/development/src/resolvers/mutation/configuration/AuthPolicyMutationResolver.js +2 -1
  137. package/dist/development/src/resolvers/mutation/configuration/AuthPolicyMutationResolver.js.map +1 -1
  138. package/dist/development/src/resolvers/mutation/configuration/ConfigurationMutationResolver.cjs +2 -1
  139. package/dist/development/src/resolvers/mutation/configuration/ConfigurationMutationResolver.cjs.map +1 -1
  140. package/dist/development/src/resolvers/mutation/configuration/ConfigurationMutationResolver.js +2 -1
  141. package/dist/development/src/resolvers/mutation/configuration/ConfigurationMutationResolver.js.map +1 -1
  142. package/dist/development/src/resolvers/mutation/identity/GlobalRolesMutationResolver.cjs +2 -1
  143. package/dist/development/src/resolvers/mutation/identity/GlobalRolesMutationResolver.cjs.map +1 -1
  144. package/dist/development/src/resolvers/mutation/identity/GlobalRolesMutationResolver.js +2 -1
  145. package/dist/development/src/resolvers/mutation/identity/GlobalRolesMutationResolver.js.map +1 -1
  146. package/dist/development/src/resolvers/mutation/idp/AddIDPMutationResolver.cjs +2 -1
  147. package/dist/development/src/resolvers/mutation/idp/AddIDPMutationResolver.cjs.map +1 -1
  148. package/dist/development/src/resolvers/mutation/idp/AddIDPMutationResolver.js +2 -1
  149. package/dist/development/src/resolvers/mutation/idp/AddIDPMutationResolver.js.map +1 -1
  150. package/dist/development/src/resolvers/mutation/idp/DisableIDPMutationResolver.cjs +2 -1
  151. package/dist/development/src/resolvers/mutation/idp/DisableIDPMutationResolver.cjs.map +1 -1
  152. package/dist/development/src/resolvers/mutation/idp/DisableIDPMutationResolver.js +2 -1
  153. package/dist/development/src/resolvers/mutation/idp/DisableIDPMutationResolver.js.map +1 -1
  154. package/dist/development/src/resolvers/mutation/idp/DisconnectMyIdentityProviderMutationResolver.cjs +2 -1
  155. package/dist/development/src/resolvers/mutation/idp/DisconnectMyIdentityProviderMutationResolver.cjs.map +1 -1
  156. package/dist/development/src/resolvers/mutation/idp/DisconnectMyIdentityProviderMutationResolver.js +2 -1
  157. package/dist/development/src/resolvers/mutation/idp/DisconnectMyIdentityProviderMutationResolver.js.map +1 -1
  158. package/dist/development/src/resolvers/mutation/idp/EnableIDPMutationResolver.cjs +2 -1
  159. package/dist/development/src/resolvers/mutation/idp/EnableIDPMutationResolver.cjs.map +1 -1
  160. package/dist/development/src/resolvers/mutation/idp/EnableIDPMutationResolver.js +2 -1
  161. package/dist/development/src/resolvers/mutation/idp/EnableIDPMutationResolver.js.map +1 -1
  162. package/dist/development/src/resolvers/mutation/idp/UpdateIDPMutationResolver.cjs +2 -1
  163. package/dist/development/src/resolvers/mutation/idp/UpdateIDPMutationResolver.cjs.map +1 -1
  164. package/dist/development/src/resolvers/mutation/idp/UpdateIDPMutationResolver.js +2 -1
  165. package/dist/development/src/resolvers/mutation/idp/UpdateIDPMutationResolver.js.map +1 -1
  166. package/dist/development/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.cjs +2 -1
  167. package/dist/development/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.cjs.map +1 -1
  168. package/dist/development/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.js +2 -1
  169. package/dist/development/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.js.map +1 -1
  170. package/dist/development/src/resolvers/mutation/person/ChangePasswordMutationResolver.cjs +2 -1
  171. package/dist/development/src/resolvers/mutation/person/ChangePasswordMutationResolver.cjs.map +1 -1
  172. package/dist/development/src/resolvers/mutation/person/ChangePasswordMutationResolver.js +2 -1
  173. package/dist/development/src/resolvers/mutation/person/ChangePasswordMutationResolver.js.map +1 -1
  174. package/dist/development/src/resolvers/mutation/person/ChangeProfileMutationResolver.cjs +2 -1
  175. package/dist/development/src/resolvers/mutation/person/ChangeProfileMutationResolver.cjs.map +1 -1
  176. package/dist/development/src/resolvers/mutation/person/ChangeProfileMutationResolver.js +2 -1
  177. package/dist/development/src/resolvers/mutation/person/ChangeProfileMutationResolver.js.map +1 -1
  178. package/dist/development/src/resolvers/mutation/person/DisablePersonMutationResolver.cjs +4 -3
  179. package/dist/development/src/resolvers/mutation/person/DisablePersonMutationResolver.cjs.map +1 -1
  180. package/dist/development/src/resolvers/mutation/person/DisablePersonMutationResolver.js +4 -3
  181. package/dist/development/src/resolvers/mutation/person/DisablePersonMutationResolver.js.map +1 -1
  182. package/dist/development/src/resolvers/mutation/person/EmailOtpMutationResolver.cjs +2 -1
  183. package/dist/development/src/resolvers/mutation/person/EmailOtpMutationResolver.cjs.map +1 -1
  184. package/dist/development/src/resolvers/mutation/person/EmailOtpMutationResolver.js +2 -1
  185. package/dist/development/src/resolvers/mutation/person/EmailOtpMutationResolver.js.map +1 -1
  186. package/dist/development/src/resolvers/mutation/person/EmailVerificationMutationResolver.cjs +2 -1
  187. package/dist/development/src/resolvers/mutation/person/EmailVerificationMutationResolver.cjs.map +1 -1
  188. package/dist/development/src/resolvers/mutation/person/EmailVerificationMutationResolver.js +2 -1
  189. package/dist/development/src/resolvers/mutation/person/EmailVerificationMutationResolver.js.map +1 -1
  190. package/dist/development/src/resolvers/mutation/person/EnablePersonMutationResolver.cjs +60 -0
  191. package/dist/development/src/resolvers/mutation/person/EnablePersonMutationResolver.cjs.map +1 -0
  192. package/dist/development/src/resolvers/mutation/person/EnablePersonMutationResolver.js +60 -0
  193. package/dist/development/src/resolvers/mutation/person/EnablePersonMutationResolver.js.map +1 -0
  194. package/dist/development/src/resolvers/mutation/person/ForceSignOutMutationResolver.cjs +2 -1
  195. package/dist/development/src/resolvers/mutation/person/ForceSignOutMutationResolver.cjs.map +1 -1
  196. package/dist/development/src/resolvers/mutation/person/ForceSignOutMutationResolver.js +2 -1
  197. package/dist/development/src/resolvers/mutation/person/ForceSignOutMutationResolver.js.map +1 -1
  198. package/dist/development/src/resolvers/mutation/person/IDPMutationResolver.cjs +27 -1
  199. package/dist/development/src/resolvers/mutation/person/IDPMutationResolver.cjs.map +1 -1
  200. package/dist/development/src/resolvers/mutation/person/IDPMutationResolver.js +27 -1
  201. package/dist/development/src/resolvers/mutation/person/IDPMutationResolver.js.map +1 -1
  202. package/dist/development/src/resolvers/mutation/person/InviteMutationResolver.cjs +2 -1
  203. package/dist/development/src/resolvers/mutation/person/InviteMutationResolver.cjs.map +1 -1
  204. package/dist/development/src/resolvers/mutation/person/InviteMutationResolver.js +2 -1
  205. package/dist/development/src/resolvers/mutation/person/InviteMutationResolver.js.map +1 -1
  206. package/dist/development/src/resolvers/mutation/person/OtpMutationResolver.cjs +2 -1
  207. package/dist/development/src/resolvers/mutation/person/OtpMutationResolver.cjs.map +1 -1
  208. package/dist/development/src/resolvers/mutation/person/OtpMutationResolver.js +2 -1
  209. package/dist/development/src/resolvers/mutation/person/OtpMutationResolver.js.map +1 -1
  210. package/dist/development/src/resolvers/mutation/person/PasswordlessMutationResolver.cjs +2 -1
  211. package/dist/development/src/resolvers/mutation/person/PasswordlessMutationResolver.cjs.map +1 -1
  212. package/dist/development/src/resolvers/mutation/person/PasswordlessMutationResolver.js +2 -1
  213. package/dist/development/src/resolvers/mutation/person/PasswordlessMutationResolver.js.map +1 -1
  214. package/dist/development/src/resolvers/mutation/person/RegenerateBackupCodesMutationResolver.cjs +2 -1
  215. package/dist/development/src/resolvers/mutation/person/RegenerateBackupCodesMutationResolver.cjs.map +1 -1
  216. package/dist/development/src/resolvers/mutation/person/RegenerateBackupCodesMutationResolver.js +2 -1
  217. package/dist/development/src/resolvers/mutation/person/RegenerateBackupCodesMutationResolver.js.map +1 -1
  218. package/dist/development/src/resolvers/mutation/person/ResetPasswordMutationResolver.cjs +2 -1
  219. package/dist/development/src/resolvers/mutation/person/ResetPasswordMutationResolver.cjs.map +1 -1
  220. package/dist/development/src/resolvers/mutation/person/ResetPasswordMutationResolver.js +2 -1
  221. package/dist/development/src/resolvers/mutation/person/ResetPasswordMutationResolver.js.map +1 -1
  222. package/dist/development/src/resolvers/mutation/person/ResetPersonMfaMutationResolver.cjs +2 -1
  223. package/dist/development/src/resolvers/mutation/person/ResetPersonMfaMutationResolver.cjs.map +1 -1
  224. package/dist/development/src/resolvers/mutation/person/ResetPersonMfaMutationResolver.js +2 -1
  225. package/dist/development/src/resolvers/mutation/person/ResetPersonMfaMutationResolver.js.map +1 -1
  226. package/dist/development/src/resolvers/mutation/person/RevokeSessionMutationResolver.cjs +2 -1
  227. package/dist/development/src/resolvers/mutation/person/RevokeSessionMutationResolver.cjs.map +1 -1
  228. package/dist/development/src/resolvers/mutation/person/RevokeSessionMutationResolver.js +2 -1
  229. package/dist/development/src/resolvers/mutation/person/RevokeSessionMutationResolver.js.map +1 -1
  230. package/dist/development/src/resolvers/mutation/person/SignInMutationResolver.cjs +2 -1
  231. package/dist/development/src/resolvers/mutation/person/SignInMutationResolver.cjs.map +1 -1
  232. package/dist/development/src/resolvers/mutation/person/SignInMutationResolver.js +2 -1
  233. package/dist/development/src/resolvers/mutation/person/SignInMutationResolver.js.map +1 -1
  234. package/dist/development/src/resolvers/mutation/person/SignOutMutationResolver.cjs +2 -1
  235. package/dist/development/src/resolvers/mutation/person/SignOutMutationResolver.cjs.map +1 -1
  236. package/dist/development/src/resolvers/mutation/person/SignOutMutationResolver.js +2 -1
  237. package/dist/development/src/resolvers/mutation/person/SignOutMutationResolver.js.map +1 -1
  238. package/dist/development/src/resolvers/mutation/person/SignUpMutationResolver.cjs +2 -1
  239. package/dist/development/src/resolvers/mutation/person/SignUpMutationResolver.cjs.map +1 -1
  240. package/dist/development/src/resolvers/mutation/person/SignUpMutationResolver.js +2 -1
  241. package/dist/development/src/resolvers/mutation/person/SignUpMutationResolver.js.map +1 -1
  242. package/dist/development/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.cjs +2 -1
  243. package/dist/development/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.cjs.map +1 -1
  244. package/dist/development/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.js +2 -1
  245. package/dist/development/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.js.map +1 -1
  246. package/dist/development/src/resolvers/mutation/project/CreateProjectMutationResolver.cjs +2 -1
  247. package/dist/development/src/resolvers/mutation/project/CreateProjectMutationResolver.cjs.map +1 -1
  248. package/dist/development/src/resolvers/mutation/project/CreateProjectMutationResolver.js +2 -1
  249. package/dist/development/src/resolvers/mutation/project/CreateProjectMutationResolver.js.map +1 -1
  250. package/dist/development/src/resolvers/mutation/project/SetProjectSecretMutationResolver.cjs +2 -1
  251. package/dist/development/src/resolvers/mutation/project/SetProjectSecretMutationResolver.cjs.map +1 -1
  252. package/dist/development/src/resolvers/mutation/project/SetProjectSecretMutationResolver.js +2 -1
  253. package/dist/development/src/resolvers/mutation/project/SetProjectSecretMutationResolver.js.map +1 -1
  254. package/dist/development/src/resolvers/mutation/project/UpdateProjectMutationResolver.cjs +2 -1
  255. package/dist/development/src/resolvers/mutation/project/UpdateProjectMutationResolver.cjs.map +1 -1
  256. package/dist/development/src/resolvers/mutation/project/UpdateProjectMutationResolver.js +2 -1
  257. package/dist/development/src/resolvers/mutation/project/UpdateProjectMutationResolver.js.map +1 -1
  258. package/dist/development/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.cjs +2 -1
  259. package/dist/development/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.cjs.map +1 -1
  260. package/dist/development/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.js +2 -1
  261. package/dist/development/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.js.map +1 -1
  262. package/dist/development/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.cjs +2 -1
  263. package/dist/development/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.cjs.map +1 -1
  264. package/dist/development/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.js +2 -1
  265. package/dist/development/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.js.map +1 -1
  266. package/dist/development/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.cjs +2 -1
  267. package/dist/development/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.cjs.map +1 -1
  268. package/dist/development/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.js +2 -1
  269. package/dist/development/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.js.map +1 -1
  270. package/dist/development/src/resolvers/query/ApiKeyQueryResolver.cjs +2 -1
  271. package/dist/development/src/resolvers/query/ApiKeyQueryResolver.cjs.map +1 -1
  272. package/dist/development/src/resolvers/query/ApiKeyQueryResolver.js +2 -1
  273. package/dist/development/src/resolvers/query/ApiKeyQueryResolver.js.map +1 -1
  274. package/dist/development/src/resolvers/query/AuthLogQueryResolver.cjs +2 -1
  275. package/dist/development/src/resolvers/query/AuthLogQueryResolver.cjs.map +1 -1
  276. package/dist/development/src/resolvers/query/AuthLogQueryResolver.js +2 -1
  277. package/dist/development/src/resolvers/query/AuthLogQueryResolver.js.map +1 -1
  278. package/dist/development/src/resolvers/query/AuthPolicyQueryResolver.cjs +2 -1
  279. package/dist/development/src/resolvers/query/AuthPolicyQueryResolver.cjs.map +1 -1
  280. package/dist/development/src/resolvers/query/AuthPolicyQueryResolver.js +2 -1
  281. package/dist/development/src/resolvers/query/AuthPolicyQueryResolver.js.map +1 -1
  282. package/dist/development/src/resolvers/query/ConfigurationQueryResolver.cjs +2 -1
  283. package/dist/development/src/resolvers/query/ConfigurationQueryResolver.cjs.map +1 -1
  284. package/dist/development/src/resolvers/query/ConfigurationQueryResolver.js +2 -1
  285. package/dist/development/src/resolvers/query/ConfigurationQueryResolver.js.map +1 -1
  286. package/dist/development/src/resolvers/query/IDPQueryResolver.cjs +2 -1
  287. package/dist/development/src/resolvers/query/IDPQueryResolver.cjs.map +1 -1
  288. package/dist/development/src/resolvers/query/IDPQueryResolver.js +2 -1
  289. package/dist/development/src/resolvers/query/IDPQueryResolver.js.map +1 -1
  290. package/dist/development/src/resolvers/query/MailTemplateQueryResolver.cjs +2 -1
  291. package/dist/development/src/resolvers/query/MailTemplateQueryResolver.cjs.map +1 -1
  292. package/dist/development/src/resolvers/query/MailTemplateQueryResolver.js +2 -1
  293. package/dist/development/src/resolvers/query/MailTemplateQueryResolver.js.map +1 -1
  294. package/dist/development/src/resolvers/query/PersonQueryResolver.cjs +2 -1
  295. package/dist/development/src/resolvers/query/PersonQueryResolver.cjs.map +1 -1
  296. package/dist/development/src/resolvers/query/PersonQueryResolver.js +2 -1
  297. package/dist/development/src/resolvers/query/PersonQueryResolver.js.map +1 -1
  298. package/dist/development/src/resolvers/query/ProjectMembersQueryResolver.cjs +2 -1
  299. package/dist/development/src/resolvers/query/ProjectMembersQueryResolver.cjs.map +1 -1
  300. package/dist/development/src/resolvers/query/ProjectMembersQueryResolver.js +2 -1
  301. package/dist/development/src/resolvers/query/ProjectMembersQueryResolver.js.map +1 -1
  302. package/dist/development/src/resolvers/query/ProjectQueryResolver.cjs +5 -3
  303. package/dist/development/src/resolvers/query/ProjectQueryResolver.cjs.map +1 -1
  304. package/dist/development/src/resolvers/query/ProjectQueryResolver.js +5 -3
  305. package/dist/development/src/resolvers/query/ProjectQueryResolver.js.map +1 -1
  306. package/dist/development/src/resolvers/responseHelpers/ApiKeyResponseFactory.cjs +2 -1
  307. package/dist/development/src/resolvers/responseHelpers/ApiKeyResponseFactory.cjs.map +1 -1
  308. package/dist/development/src/resolvers/responseHelpers/ApiKeyResponseFactory.js +2 -1
  309. package/dist/development/src/resolvers/responseHelpers/ApiKeyResponseFactory.js.map +1 -1
  310. package/dist/development/src/resolvers/responseHelpers/PersonResponseFactory.cjs +5 -0
  311. package/dist/development/src/resolvers/responseHelpers/PersonResponseFactory.cjs.map +1 -1
  312. package/dist/development/src/resolvers/responseHelpers/PersonResponseFactory.js +5 -0
  313. package/dist/development/src/resolvers/responseHelpers/PersonResponseFactory.js.map +1 -1
  314. package/dist/development/src/resolvers/responseHelpers/ProjectResponseFactory.cjs +23 -0
  315. package/dist/development/src/resolvers/responseHelpers/ProjectResponseFactory.cjs.map +1 -0
  316. package/dist/development/src/resolvers/responseHelpers/ProjectResponseFactory.js +23 -0
  317. package/dist/development/src/resolvers/responseHelpers/ProjectResponseFactory.js.map +1 -0
  318. package/dist/development/src/resolvers/responseHelpers/SignInResponseFactory.cjs +2 -1
  319. package/dist/development/src/resolvers/responseHelpers/SignInResponseFactory.cjs.map +1 -1
  320. package/dist/development/src/resolvers/responseHelpers/SignInResponseFactory.js +2 -1
  321. package/dist/development/src/resolvers/responseHelpers/SignInResponseFactory.js.map +1 -1
  322. package/dist/development/src/resolvers/types/IdentityTypeResolver.cjs +37 -4
  323. package/dist/development/src/resolvers/types/IdentityTypeResolver.cjs.map +1 -1
  324. package/dist/development/src/resolvers/types/IdentityTypeResolver.js +37 -4
  325. package/dist/development/src/resolvers/types/IdentityTypeResolver.js.map +1 -1
  326. package/dist/development/src/resolvers/types/PersonTypeResolver.cjs +30 -1
  327. package/dist/development/src/resolvers/types/PersonTypeResolver.cjs.map +1 -1
  328. package/dist/development/src/resolvers/types/PersonTypeResolver.js +30 -1
  329. package/dist/development/src/resolvers/types/PersonTypeResolver.js.map +1 -1
  330. package/dist/development/src/resolvers/types/ProjectTypeResolver.cjs +25 -1
  331. package/dist/development/src/resolvers/types/ProjectTypeResolver.cjs.map +1 -1
  332. package/dist/development/src/resolvers/types/ProjectTypeResolver.js +25 -1
  333. package/dist/development/src/resolvers/types/ProjectTypeResolver.js.map +1 -1
  334. package/dist/development/src/schema/tenant.graphql.cjs +116 -0
  335. package/dist/development/src/schema/tenant.graphql.cjs.map +1 -1
  336. package/dist/development/src/schema/tenant.graphql.js +116 -0
  337. package/dist/development/src/schema/tenant.graphql.js.map +1 -1
  338. package/dist/production/index.cjs +30 -0
  339. package/dist/production/index.cjs.map +1 -1
  340. package/dist/production/index.js +31 -1
  341. package/dist/production/index.js.map +1 -1
  342. package/dist/production/src/TenantContainer.cjs +15 -3
  343. package/dist/production/src/TenantContainer.cjs.map +1 -1
  344. package/dist/production/src/TenantContainer.js +15 -3
  345. package/dist/production/src/TenantContainer.js.map +1 -1
  346. package/dist/production/src/bridges/system/IdentityFetcher.cjs +2 -1
  347. package/dist/production/src/bridges/system/IdentityFetcher.cjs.map +1 -1
  348. package/dist/production/src/bridges/system/IdentityFetcher.js +2 -1
  349. package/dist/production/src/bridges/system/IdentityFetcher.js.map +1 -1
  350. package/dist/production/src/migrations/2026-06-18-120000-idp-claim-mapping.cjs +10 -0
  351. package/dist/production/src/migrations/2026-06-18-120000-idp-claim-mapping.cjs.map +1 -0
  352. package/dist/production/src/migrations/2026-06-18-120000-idp-claim-mapping.js +11 -0
  353. package/dist/production/src/migrations/2026-06-18-120000-idp-claim-mapping.js.map +1 -0
  354. package/dist/production/src/migrations/2026-08-03-120000-person-enable-auth-log.cjs +9 -0
  355. package/dist/production/src/migrations/2026-08-03-120000-person-enable-auth-log.cjs.map +1 -0
  356. package/dist/production/src/migrations/2026-08-03-120000-person-enable-auth-log.js +10 -0
  357. package/dist/production/src/migrations/2026-08-03-120000-person-enable-auth-log.js.map +1 -0
  358. package/dist/production/src/migrations/2026-08-04-120000-config-panel.cjs +11 -0
  359. package/dist/production/src/migrations/2026-08-04-120000-config-panel.cjs.map +1 -0
  360. package/dist/production/src/migrations/2026-08-04-120000-config-panel.js +12 -0
  361. package/dist/production/src/migrations/2026-08-04-120000-config-panel.js.map +1 -0
  362. package/dist/production/src/migrations/runner.cjs +9 -2
  363. package/dist/production/src/migrations/runner.cjs.map +1 -1
  364. package/dist/production/src/migrations/runner.js +9 -2
  365. package/dist/production/src/migrations/runner.js.map +1 -1
  366. package/dist/production/src/migrations/snapshot.cjs +6 -1
  367. package/dist/production/src/migrations/snapshot.cjs.map +1 -1
  368. package/dist/production/src/migrations/snapshot.js +6 -1
  369. package/dist/production/src/migrations/snapshot.js.map +1 -1
  370. package/dist/production/src/model/commands/configuration/UpdateConfigurationCommand.cjs +5 -3
  371. package/dist/production/src/model/commands/configuration/UpdateConfigurationCommand.cjs.map +1 -1
  372. package/dist/production/src/model/commands/configuration/UpdateConfigurationCommand.js +5 -3
  373. package/dist/production/src/model/commands/configuration/UpdateConfigurationCommand.js.map +1 -1
  374. package/dist/production/src/model/commands/membership/{RemoveProjectMembershipsCommand.cjs → RemoveProjectMembershipCommand.cjs} +1 -1
  375. package/dist/production/src/model/commands/membership/RemoveProjectMembershipCommand.cjs.map +1 -0
  376. package/dist/production/src/model/commands/membership/{RemoveProjectMembershipsCommand.js → RemoveProjectMembershipCommand.js} +1 -1
  377. package/dist/production/src/model/commands/membership/RemoveProjectMembershipCommand.js.map +1 -0
  378. package/dist/production/src/model/commands/membership/UpdateProjectMemberCommand.cjs +2 -2
  379. package/dist/production/src/model/commands/membership/UpdateProjectMemberCommand.cjs.map +1 -1
  380. package/dist/production/src/model/commands/membership/UpdateProjectMemberCommand.js +1 -1
  381. package/dist/production/src/model/commands/membership/UpdateProjectMemberCommand.js.map +1 -1
  382. package/dist/production/src/model/commands/person/EnablePersonCommand.cjs +17 -0
  383. package/dist/production/src/model/commands/person/EnablePersonCommand.cjs.map +1 -0
  384. package/dist/production/src/model/commands/person/EnablePersonCommand.js +17 -0
  385. package/dist/production/src/model/commands/person/EnablePersonCommand.js.map +1 -0
  386. package/dist/production/src/model/queries/configuration/ConfigurationQuery.cjs +4 -0
  387. package/dist/production/src/model/queries/configuration/ConfigurationQuery.cjs.map +1 -1
  388. package/dist/production/src/model/queries/configuration/ConfigurationQuery.js +4 -0
  389. package/dist/production/src/model/queries/configuration/ConfigurationQuery.js.map +1 -1
  390. package/dist/production/src/model/queries/membership/ProjectMembersQuery.cjs +1 -1
  391. package/dist/production/src/model/queries/membership/ProjectMembersQuery.cjs.map +1 -1
  392. package/dist/production/src/model/queries/membership/ProjectMembersQuery.js +1 -1
  393. package/dist/production/src/model/queries/membership/ProjectMembersQuery.js.map +1 -1
  394. package/dist/production/src/model/queries/person/PersonQueryBuilderFactory.cjs +1 -1
  395. package/dist/production/src/model/queries/person/PersonQueryBuilderFactory.cjs.map +1 -1
  396. package/dist/production/src/model/queries/person/PersonQueryBuilderFactory.js +1 -1
  397. package/dist/production/src/model/queries/person/PersonQueryBuilderFactory.js.map +1 -1
  398. package/dist/production/src/model/service/AuthLogService.cjs +8 -2
  399. package/dist/production/src/model/service/AuthLogService.cjs.map +1 -1
  400. package/dist/production/src/model/service/AuthLogService.js +8 -2
  401. package/dist/production/src/model/service/AuthLogService.js.map +1 -1
  402. package/dist/production/src/model/service/IDPSignInManager.cjs +29 -2
  403. package/dist/production/src/model/service/IDPSignInManager.cjs.map +1 -1
  404. package/dist/production/src/model/service/IDPSignInManager.js +29 -2
  405. package/dist/production/src/model/service/IDPSignInManager.js.map +1 -1
  406. package/dist/production/src/model/service/PanelAccessResolver.cjs +31 -0
  407. package/dist/production/src/model/service/PanelAccessResolver.cjs.map +1 -0
  408. package/dist/production/src/model/service/PanelAccessResolver.js +31 -0
  409. package/dist/production/src/model/service/PanelAccessResolver.js.map +1 -0
  410. package/dist/production/src/model/service/PersonAccessManager.cjs +10 -2
  411. package/dist/production/src/model/service/PersonAccessManager.cjs.map +1 -1
  412. package/dist/production/src/model/service/PersonAccessManager.js +10 -2
  413. package/dist/production/src/model/service/PersonAccessManager.js.map +1 -1
  414. package/dist/production/src/model/service/apiKey/ApiKeyManager.cjs +4 -3
  415. package/dist/production/src/model/service/apiKey/ApiKeyManager.cjs.map +1 -1
  416. package/dist/production/src/model/service/apiKey/ApiKeyManager.js +4 -3
  417. package/dist/production/src/model/service/apiKey/ApiKeyManager.js.map +1 -1
  418. package/dist/production/src/model/service/apiKey/UnpersistedApiKeyManager.cjs +7 -0
  419. package/dist/production/src/model/service/apiKey/UnpersistedApiKeyManager.cjs.map +1 -1
  420. package/dist/production/src/model/service/apiKey/UnpersistedApiKeyManager.js +8 -1
  421. package/dist/production/src/model/service/apiKey/UnpersistedApiKeyManager.js.map +1 -1
  422. package/dist/production/src/model/service/idp/ClaimMapping.cjs +187 -0
  423. package/dist/production/src/model/service/idp/ClaimMapping.cjs.map +1 -0
  424. package/dist/production/src/model/service/idp/ClaimMapping.js +170 -0
  425. package/dist/production/src/model/service/idp/ClaimMapping.js.map +1 -0
  426. package/dist/production/src/model/service/idp/ClaimMappingEvaluator.cjs +155 -0
  427. package/dist/production/src/model/service/idp/ClaimMappingEvaluator.cjs.map +1 -0
  428. package/dist/production/src/model/service/idp/ClaimMappingEvaluator.js +155 -0
  429. package/dist/production/src/model/service/idp/ClaimMappingEvaluator.js.map +1 -0
  430. package/dist/production/src/model/service/idp/ClaimMappingValidation.cjs +83 -0
  431. package/dist/production/src/model/service/idp/ClaimMappingValidation.cjs.map +1 -0
  432. package/dist/production/src/model/service/idp/ClaimMappingValidation.js +83 -0
  433. package/dist/production/src/model/service/idp/ClaimMappingValidation.js.map +1 -0
  434. package/dist/production/src/model/service/idp/IDPClaimSyncService.cjs +260 -0
  435. package/dist/production/src/model/service/idp/IDPClaimSyncService.cjs.map +1 -0
  436. package/dist/production/src/model/service/idp/IDPClaimSyncService.js +260 -0
  437. package/dist/production/src/model/service/idp/IDPClaimSyncService.js.map +1 -0
  438. package/dist/production/src/model/service/idp/IDPManager.cjs +96 -20
  439. package/dist/production/src/model/service/idp/IDPManager.cjs.map +1 -1
  440. package/dist/production/src/model/service/idp/IDPManager.js +96 -20
  441. package/dist/production/src/model/service/idp/IDPManager.js.map +1 -1
  442. package/dist/production/src/model/service/idp/IdpSessionRevalidator.cjs +55 -1
  443. package/dist/production/src/model/service/idp/IdpSessionRevalidator.cjs.map +1 -1
  444. package/dist/production/src/model/service/idp/IdpSessionRevalidator.js +55 -1
  445. package/dist/production/src/model/service/idp/IdpSessionRevalidator.js.map +1 -1
  446. package/dist/production/src/model/service/idp/providers/OIDCHelpers.cjs +69 -33
  447. package/dist/production/src/model/service/idp/providers/OIDCHelpers.cjs.map +1 -1
  448. package/dist/production/src/model/service/idp/providers/OIDCHelpers.js +69 -33
  449. package/dist/production/src/model/service/idp/providers/OIDCHelpers.js.map +1 -1
  450. package/dist/production/src/model/service/idp/providers/OIDCProvider.cjs +4 -1
  451. package/dist/production/src/model/service/idp/providers/OIDCProvider.cjs.map +1 -1
  452. package/dist/production/src/model/service/idp/providers/OIDCProvider.js +4 -1
  453. package/dist/production/src/model/service/idp/providers/OIDCProvider.js.map +1 -1
  454. package/dist/production/src/model/utils/DatabaseContext.cjs +7 -2
  455. package/dist/production/src/model/utils/DatabaseContext.cjs.map +1 -1
  456. package/dist/production/src/model/utils/DatabaseContext.js +8 -3
  457. package/dist/production/src/model/utils/DatabaseContext.js.map +1 -1
  458. package/dist/production/src/resolvers/ResolverFactory.cjs +6 -2
  459. package/dist/production/src/resolvers/ResolverFactory.cjs.map +1 -1
  460. package/dist/production/src/resolvers/ResolverFactory.js +6 -2
  461. package/dist/production/src/resolvers/ResolverFactory.js.map +1 -1
  462. package/dist/production/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.cjs +2 -1
  463. package/dist/production/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.cjs.map +1 -1
  464. package/dist/production/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.js +2 -1
  465. package/dist/production/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.js.map +1 -1
  466. package/dist/production/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.cjs +2 -1
  467. package/dist/production/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.cjs.map +1 -1
  468. package/dist/production/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.js +2 -1
  469. package/dist/production/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.js.map +1 -1
  470. package/dist/production/src/resolvers/mutation/configuration/AuthPolicyMutationResolver.cjs +2 -1
  471. package/dist/production/src/resolvers/mutation/configuration/AuthPolicyMutationResolver.cjs.map +1 -1
  472. package/dist/production/src/resolvers/mutation/configuration/AuthPolicyMutationResolver.js +2 -1
  473. package/dist/production/src/resolvers/mutation/configuration/AuthPolicyMutationResolver.js.map +1 -1
  474. package/dist/production/src/resolvers/mutation/configuration/ConfigurationMutationResolver.cjs +2 -1
  475. package/dist/production/src/resolvers/mutation/configuration/ConfigurationMutationResolver.cjs.map +1 -1
  476. package/dist/production/src/resolvers/mutation/configuration/ConfigurationMutationResolver.js +2 -1
  477. package/dist/production/src/resolvers/mutation/configuration/ConfigurationMutationResolver.js.map +1 -1
  478. package/dist/production/src/resolvers/mutation/identity/GlobalRolesMutationResolver.cjs +2 -1
  479. package/dist/production/src/resolvers/mutation/identity/GlobalRolesMutationResolver.cjs.map +1 -1
  480. package/dist/production/src/resolvers/mutation/identity/GlobalRolesMutationResolver.js +2 -1
  481. package/dist/production/src/resolvers/mutation/identity/GlobalRolesMutationResolver.js.map +1 -1
  482. package/dist/production/src/resolvers/mutation/idp/AddIDPMutationResolver.cjs +2 -1
  483. package/dist/production/src/resolvers/mutation/idp/AddIDPMutationResolver.cjs.map +1 -1
  484. package/dist/production/src/resolvers/mutation/idp/AddIDPMutationResolver.js +2 -1
  485. package/dist/production/src/resolvers/mutation/idp/AddIDPMutationResolver.js.map +1 -1
  486. package/dist/production/src/resolvers/mutation/idp/DisableIDPMutationResolver.cjs +2 -1
  487. package/dist/production/src/resolvers/mutation/idp/DisableIDPMutationResolver.cjs.map +1 -1
  488. package/dist/production/src/resolvers/mutation/idp/DisableIDPMutationResolver.js +2 -1
  489. package/dist/production/src/resolvers/mutation/idp/DisableIDPMutationResolver.js.map +1 -1
  490. package/dist/production/src/resolvers/mutation/idp/DisconnectMyIdentityProviderMutationResolver.cjs +2 -1
  491. package/dist/production/src/resolvers/mutation/idp/DisconnectMyIdentityProviderMutationResolver.cjs.map +1 -1
  492. package/dist/production/src/resolvers/mutation/idp/DisconnectMyIdentityProviderMutationResolver.js +2 -1
  493. package/dist/production/src/resolvers/mutation/idp/DisconnectMyIdentityProviderMutationResolver.js.map +1 -1
  494. package/dist/production/src/resolvers/mutation/idp/EnableIDPMutationResolver.cjs +2 -1
  495. package/dist/production/src/resolvers/mutation/idp/EnableIDPMutationResolver.cjs.map +1 -1
  496. package/dist/production/src/resolvers/mutation/idp/EnableIDPMutationResolver.js +2 -1
  497. package/dist/production/src/resolvers/mutation/idp/EnableIDPMutationResolver.js.map +1 -1
  498. package/dist/production/src/resolvers/mutation/idp/UpdateIDPMutationResolver.cjs +2 -1
  499. package/dist/production/src/resolvers/mutation/idp/UpdateIDPMutationResolver.cjs.map +1 -1
  500. package/dist/production/src/resolvers/mutation/idp/UpdateIDPMutationResolver.js +2 -1
  501. package/dist/production/src/resolvers/mutation/idp/UpdateIDPMutationResolver.js.map +1 -1
  502. package/dist/production/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.cjs +2 -1
  503. package/dist/production/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.cjs.map +1 -1
  504. package/dist/production/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.js +2 -1
  505. package/dist/production/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.js.map +1 -1
  506. package/dist/production/src/resolvers/mutation/person/ChangePasswordMutationResolver.cjs +2 -1
  507. package/dist/production/src/resolvers/mutation/person/ChangePasswordMutationResolver.cjs.map +1 -1
  508. package/dist/production/src/resolvers/mutation/person/ChangePasswordMutationResolver.js +2 -1
  509. package/dist/production/src/resolvers/mutation/person/ChangePasswordMutationResolver.js.map +1 -1
  510. package/dist/production/src/resolvers/mutation/person/ChangeProfileMutationResolver.cjs +2 -1
  511. package/dist/production/src/resolvers/mutation/person/ChangeProfileMutationResolver.cjs.map +1 -1
  512. package/dist/production/src/resolvers/mutation/person/ChangeProfileMutationResolver.js +2 -1
  513. package/dist/production/src/resolvers/mutation/person/ChangeProfileMutationResolver.js.map +1 -1
  514. package/dist/production/src/resolvers/mutation/person/DisablePersonMutationResolver.cjs +4 -3
  515. package/dist/production/src/resolvers/mutation/person/DisablePersonMutationResolver.cjs.map +1 -1
  516. package/dist/production/src/resolvers/mutation/person/DisablePersonMutationResolver.js +4 -3
  517. package/dist/production/src/resolvers/mutation/person/DisablePersonMutationResolver.js.map +1 -1
  518. package/dist/production/src/resolvers/mutation/person/EmailOtpMutationResolver.cjs +2 -1
  519. package/dist/production/src/resolvers/mutation/person/EmailOtpMutationResolver.cjs.map +1 -1
  520. package/dist/production/src/resolvers/mutation/person/EmailOtpMutationResolver.js +2 -1
  521. package/dist/production/src/resolvers/mutation/person/EmailOtpMutationResolver.js.map +1 -1
  522. package/dist/production/src/resolvers/mutation/person/EmailVerificationMutationResolver.cjs +2 -1
  523. package/dist/production/src/resolvers/mutation/person/EmailVerificationMutationResolver.cjs.map +1 -1
  524. package/dist/production/src/resolvers/mutation/person/EmailVerificationMutationResolver.js +2 -1
  525. package/dist/production/src/resolvers/mutation/person/EmailVerificationMutationResolver.js.map +1 -1
  526. package/dist/production/src/resolvers/mutation/person/EnablePersonMutationResolver.cjs +60 -0
  527. package/dist/production/src/resolvers/mutation/person/EnablePersonMutationResolver.cjs.map +1 -0
  528. package/dist/production/src/resolvers/mutation/person/EnablePersonMutationResolver.js +60 -0
  529. package/dist/production/src/resolvers/mutation/person/EnablePersonMutationResolver.js.map +1 -0
  530. package/dist/production/src/resolvers/mutation/person/ForceSignOutMutationResolver.cjs +2 -1
  531. package/dist/production/src/resolvers/mutation/person/ForceSignOutMutationResolver.cjs.map +1 -1
  532. package/dist/production/src/resolvers/mutation/person/ForceSignOutMutationResolver.js +2 -1
  533. package/dist/production/src/resolvers/mutation/person/ForceSignOutMutationResolver.js.map +1 -1
  534. package/dist/production/src/resolvers/mutation/person/IDPMutationResolver.cjs +27 -1
  535. package/dist/production/src/resolvers/mutation/person/IDPMutationResolver.cjs.map +1 -1
  536. package/dist/production/src/resolvers/mutation/person/IDPMutationResolver.js +27 -1
  537. package/dist/production/src/resolvers/mutation/person/IDPMutationResolver.js.map +1 -1
  538. package/dist/production/src/resolvers/mutation/person/InviteMutationResolver.cjs +2 -1
  539. package/dist/production/src/resolvers/mutation/person/InviteMutationResolver.cjs.map +1 -1
  540. package/dist/production/src/resolvers/mutation/person/InviteMutationResolver.js +2 -1
  541. package/dist/production/src/resolvers/mutation/person/InviteMutationResolver.js.map +1 -1
  542. package/dist/production/src/resolvers/mutation/person/OtpMutationResolver.cjs +2 -1
  543. package/dist/production/src/resolvers/mutation/person/OtpMutationResolver.cjs.map +1 -1
  544. package/dist/production/src/resolvers/mutation/person/OtpMutationResolver.js +2 -1
  545. package/dist/production/src/resolvers/mutation/person/OtpMutationResolver.js.map +1 -1
  546. package/dist/production/src/resolvers/mutation/person/PasswordlessMutationResolver.cjs +2 -1
  547. package/dist/production/src/resolvers/mutation/person/PasswordlessMutationResolver.cjs.map +1 -1
  548. package/dist/production/src/resolvers/mutation/person/PasswordlessMutationResolver.js +2 -1
  549. package/dist/production/src/resolvers/mutation/person/PasswordlessMutationResolver.js.map +1 -1
  550. package/dist/production/src/resolvers/mutation/person/RegenerateBackupCodesMutationResolver.cjs +2 -1
  551. package/dist/production/src/resolvers/mutation/person/RegenerateBackupCodesMutationResolver.cjs.map +1 -1
  552. package/dist/production/src/resolvers/mutation/person/RegenerateBackupCodesMutationResolver.js +2 -1
  553. package/dist/production/src/resolvers/mutation/person/RegenerateBackupCodesMutationResolver.js.map +1 -1
  554. package/dist/production/src/resolvers/mutation/person/ResetPasswordMutationResolver.cjs +2 -1
  555. package/dist/production/src/resolvers/mutation/person/ResetPasswordMutationResolver.cjs.map +1 -1
  556. package/dist/production/src/resolvers/mutation/person/ResetPasswordMutationResolver.js +2 -1
  557. package/dist/production/src/resolvers/mutation/person/ResetPasswordMutationResolver.js.map +1 -1
  558. package/dist/production/src/resolvers/mutation/person/ResetPersonMfaMutationResolver.cjs +2 -1
  559. package/dist/production/src/resolvers/mutation/person/ResetPersonMfaMutationResolver.cjs.map +1 -1
  560. package/dist/production/src/resolvers/mutation/person/ResetPersonMfaMutationResolver.js +2 -1
  561. package/dist/production/src/resolvers/mutation/person/ResetPersonMfaMutationResolver.js.map +1 -1
  562. package/dist/production/src/resolvers/mutation/person/RevokeSessionMutationResolver.cjs +2 -1
  563. package/dist/production/src/resolvers/mutation/person/RevokeSessionMutationResolver.cjs.map +1 -1
  564. package/dist/production/src/resolvers/mutation/person/RevokeSessionMutationResolver.js +2 -1
  565. package/dist/production/src/resolvers/mutation/person/RevokeSessionMutationResolver.js.map +1 -1
  566. package/dist/production/src/resolvers/mutation/person/SignInMutationResolver.cjs +2 -1
  567. package/dist/production/src/resolvers/mutation/person/SignInMutationResolver.cjs.map +1 -1
  568. package/dist/production/src/resolvers/mutation/person/SignInMutationResolver.js +2 -1
  569. package/dist/production/src/resolvers/mutation/person/SignInMutationResolver.js.map +1 -1
  570. package/dist/production/src/resolvers/mutation/person/SignOutMutationResolver.cjs +2 -1
  571. package/dist/production/src/resolvers/mutation/person/SignOutMutationResolver.cjs.map +1 -1
  572. package/dist/production/src/resolvers/mutation/person/SignOutMutationResolver.js +2 -1
  573. package/dist/production/src/resolvers/mutation/person/SignOutMutationResolver.js.map +1 -1
  574. package/dist/production/src/resolvers/mutation/person/SignUpMutationResolver.cjs +2 -1
  575. package/dist/production/src/resolvers/mutation/person/SignUpMutationResolver.cjs.map +1 -1
  576. package/dist/production/src/resolvers/mutation/person/SignUpMutationResolver.js +2 -1
  577. package/dist/production/src/resolvers/mutation/person/SignUpMutationResolver.js.map +1 -1
  578. package/dist/production/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.cjs +2 -1
  579. package/dist/production/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.cjs.map +1 -1
  580. package/dist/production/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.js +2 -1
  581. package/dist/production/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.js.map +1 -1
  582. package/dist/production/src/resolvers/mutation/project/CreateProjectMutationResolver.cjs +2 -1
  583. package/dist/production/src/resolvers/mutation/project/CreateProjectMutationResolver.cjs.map +1 -1
  584. package/dist/production/src/resolvers/mutation/project/CreateProjectMutationResolver.js +2 -1
  585. package/dist/production/src/resolvers/mutation/project/CreateProjectMutationResolver.js.map +1 -1
  586. package/dist/production/src/resolvers/mutation/project/SetProjectSecretMutationResolver.cjs +2 -1
  587. package/dist/production/src/resolvers/mutation/project/SetProjectSecretMutationResolver.cjs.map +1 -1
  588. package/dist/production/src/resolvers/mutation/project/SetProjectSecretMutationResolver.js +2 -1
  589. package/dist/production/src/resolvers/mutation/project/SetProjectSecretMutationResolver.js.map +1 -1
  590. package/dist/production/src/resolvers/mutation/project/UpdateProjectMutationResolver.cjs +2 -1
  591. package/dist/production/src/resolvers/mutation/project/UpdateProjectMutationResolver.cjs.map +1 -1
  592. package/dist/production/src/resolvers/mutation/project/UpdateProjectMutationResolver.js +2 -1
  593. package/dist/production/src/resolvers/mutation/project/UpdateProjectMutationResolver.js.map +1 -1
  594. package/dist/production/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.cjs +2 -1
  595. package/dist/production/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.cjs.map +1 -1
  596. package/dist/production/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.js +2 -1
  597. package/dist/production/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.js.map +1 -1
  598. package/dist/production/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.cjs +2 -1
  599. package/dist/production/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.cjs.map +1 -1
  600. package/dist/production/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.js +2 -1
  601. package/dist/production/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.js.map +1 -1
  602. package/dist/production/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.cjs +2 -1
  603. package/dist/production/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.cjs.map +1 -1
  604. package/dist/production/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.js +2 -1
  605. package/dist/production/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.js.map +1 -1
  606. package/dist/production/src/resolvers/query/ApiKeyQueryResolver.cjs +2 -1
  607. package/dist/production/src/resolvers/query/ApiKeyQueryResolver.cjs.map +1 -1
  608. package/dist/production/src/resolvers/query/ApiKeyQueryResolver.js +2 -1
  609. package/dist/production/src/resolvers/query/ApiKeyQueryResolver.js.map +1 -1
  610. package/dist/production/src/resolvers/query/AuthLogQueryResolver.cjs +2 -1
  611. package/dist/production/src/resolvers/query/AuthLogQueryResolver.cjs.map +1 -1
  612. package/dist/production/src/resolvers/query/AuthLogQueryResolver.js +2 -1
  613. package/dist/production/src/resolvers/query/AuthLogQueryResolver.js.map +1 -1
  614. package/dist/production/src/resolvers/query/AuthPolicyQueryResolver.cjs +2 -1
  615. package/dist/production/src/resolvers/query/AuthPolicyQueryResolver.cjs.map +1 -1
  616. package/dist/production/src/resolvers/query/AuthPolicyQueryResolver.js +2 -1
  617. package/dist/production/src/resolvers/query/AuthPolicyQueryResolver.js.map +1 -1
  618. package/dist/production/src/resolvers/query/ConfigurationQueryResolver.cjs +2 -1
  619. package/dist/production/src/resolvers/query/ConfigurationQueryResolver.cjs.map +1 -1
  620. package/dist/production/src/resolvers/query/ConfigurationQueryResolver.js +2 -1
  621. package/dist/production/src/resolvers/query/ConfigurationQueryResolver.js.map +1 -1
  622. package/dist/production/src/resolvers/query/IDPQueryResolver.cjs +2 -1
  623. package/dist/production/src/resolvers/query/IDPQueryResolver.cjs.map +1 -1
  624. package/dist/production/src/resolvers/query/IDPQueryResolver.js +2 -1
  625. package/dist/production/src/resolvers/query/IDPQueryResolver.js.map +1 -1
  626. package/dist/production/src/resolvers/query/MailTemplateQueryResolver.cjs +2 -1
  627. package/dist/production/src/resolvers/query/MailTemplateQueryResolver.cjs.map +1 -1
  628. package/dist/production/src/resolvers/query/MailTemplateQueryResolver.js +2 -1
  629. package/dist/production/src/resolvers/query/MailTemplateQueryResolver.js.map +1 -1
  630. package/dist/production/src/resolvers/query/PersonQueryResolver.cjs +2 -1
  631. package/dist/production/src/resolvers/query/PersonQueryResolver.cjs.map +1 -1
  632. package/dist/production/src/resolvers/query/PersonQueryResolver.js +2 -1
  633. package/dist/production/src/resolvers/query/PersonQueryResolver.js.map +1 -1
  634. package/dist/production/src/resolvers/query/ProjectMembersQueryResolver.cjs +2 -1
  635. package/dist/production/src/resolvers/query/ProjectMembersQueryResolver.cjs.map +1 -1
  636. package/dist/production/src/resolvers/query/ProjectMembersQueryResolver.js +2 -1
  637. package/dist/production/src/resolvers/query/ProjectMembersQueryResolver.js.map +1 -1
  638. package/dist/production/src/resolvers/query/ProjectQueryResolver.cjs +5 -3
  639. package/dist/production/src/resolvers/query/ProjectQueryResolver.cjs.map +1 -1
  640. package/dist/production/src/resolvers/query/ProjectQueryResolver.js +5 -3
  641. package/dist/production/src/resolvers/query/ProjectQueryResolver.js.map +1 -1
  642. package/dist/production/src/resolvers/responseHelpers/ApiKeyResponseFactory.cjs +2 -1
  643. package/dist/production/src/resolvers/responseHelpers/ApiKeyResponseFactory.cjs.map +1 -1
  644. package/dist/production/src/resolvers/responseHelpers/ApiKeyResponseFactory.js +2 -1
  645. package/dist/production/src/resolvers/responseHelpers/ApiKeyResponseFactory.js.map +1 -1
  646. package/dist/production/src/resolvers/responseHelpers/PersonResponseFactory.cjs +5 -0
  647. package/dist/production/src/resolvers/responseHelpers/PersonResponseFactory.cjs.map +1 -1
  648. package/dist/production/src/resolvers/responseHelpers/PersonResponseFactory.js +5 -0
  649. package/dist/production/src/resolvers/responseHelpers/PersonResponseFactory.js.map +1 -1
  650. package/dist/production/src/resolvers/responseHelpers/ProjectResponseFactory.cjs +23 -0
  651. package/dist/production/src/resolvers/responseHelpers/ProjectResponseFactory.cjs.map +1 -0
  652. package/dist/production/src/resolvers/responseHelpers/ProjectResponseFactory.js +23 -0
  653. package/dist/production/src/resolvers/responseHelpers/ProjectResponseFactory.js.map +1 -0
  654. package/dist/production/src/resolvers/responseHelpers/SignInResponseFactory.cjs +2 -1
  655. package/dist/production/src/resolvers/responseHelpers/SignInResponseFactory.cjs.map +1 -1
  656. package/dist/production/src/resolvers/responseHelpers/SignInResponseFactory.js +2 -1
  657. package/dist/production/src/resolvers/responseHelpers/SignInResponseFactory.js.map +1 -1
  658. package/dist/production/src/resolvers/types/IdentityTypeResolver.cjs +37 -4
  659. package/dist/production/src/resolvers/types/IdentityTypeResolver.cjs.map +1 -1
  660. package/dist/production/src/resolvers/types/IdentityTypeResolver.js +37 -4
  661. package/dist/production/src/resolvers/types/IdentityTypeResolver.js.map +1 -1
  662. package/dist/production/src/resolvers/types/PersonTypeResolver.cjs +30 -1
  663. package/dist/production/src/resolvers/types/PersonTypeResolver.cjs.map +1 -1
  664. package/dist/production/src/resolvers/types/PersonTypeResolver.js +30 -1
  665. package/dist/production/src/resolvers/types/PersonTypeResolver.js.map +1 -1
  666. package/dist/production/src/resolvers/types/ProjectTypeResolver.cjs +25 -1
  667. package/dist/production/src/resolvers/types/ProjectTypeResolver.cjs.map +1 -1
  668. package/dist/production/src/resolvers/types/ProjectTypeResolver.js +25 -1
  669. package/dist/production/src/resolvers/types/ProjectTypeResolver.js.map +1 -1
  670. package/dist/production/src/schema/tenant.graphql.cjs +116 -0
  671. package/dist/production/src/schema/tenant.graphql.cjs.map +1 -1
  672. package/dist/production/src/schema/tenant.graphql.js +116 -0
  673. package/dist/production/src/schema/tenant.graphql.js.map +1 -1
  674. package/dist/tests/cases/integration/mocked/configurationPanel.test.d.ts +2 -0
  675. package/dist/tests/cases/integration/mocked/configurationPanel.test.d.ts.map +1 -0
  676. package/dist/tests/cases/integration/mocked/disablePersonMutation.test.d.ts +2 -0
  677. package/dist/tests/cases/integration/mocked/disablePersonMutation.test.d.ts.map +1 -0
  678. package/dist/tests/cases/integration/mocked/enablePersonMutation.test.d.ts +2 -0
  679. package/dist/tests/cases/integration/mocked/enablePersonMutation.test.d.ts.map +1 -0
  680. package/dist/tests/cases/integration/mocked/gql/addProjectMember.d.ts.map +1 -1
  681. package/dist/tests/cases/integration/mocked/gql/changeMyPassword.d.ts.map +1 -1
  682. package/dist/tests/cases/integration/mocked/gql/changeMyProfile.d.ts.map +1 -1
  683. package/dist/tests/cases/integration/mocked/gql/changePassword.d.ts.map +1 -1
  684. package/dist/tests/cases/integration/mocked/gql/changeProfile.d.ts.map +1 -1
  685. package/dist/tests/cases/integration/mocked/gql/confirmOtp.d.ts.map +1 -1
  686. package/dist/tests/cases/integration/mocked/gql/createApiKey.d.ts.map +1 -1
  687. package/dist/tests/cases/integration/mocked/gql/createResetPasswordRequest.d.ts.map +1 -1
  688. package/dist/tests/cases/integration/mocked/gql/createSessionToken.d.ts.map +1 -1
  689. package/dist/tests/cases/integration/mocked/gql/emailOtp.d.ts.map +1 -1
  690. package/dist/tests/cases/integration/mocked/gql/emailVerification.d.ts.map +1 -1
  691. package/dist/tests/cases/integration/mocked/gql/invite.d.ts.map +1 -1
  692. package/dist/tests/cases/integration/mocked/gql/myIdentityProviders.d.ts.map +1 -1
  693. package/dist/tests/cases/integration/mocked/gql/passwordless.d.ts +1 -1
  694. package/dist/tests/cases/integration/mocked/gql/passwordless.d.ts.map +1 -1
  695. package/dist/tests/cases/integration/mocked/gql/prepareOtp.d.ts.map +1 -1
  696. package/dist/tests/cases/integration/mocked/gql/resetPassword.d.ts.map +1 -1
  697. package/dist/tests/cases/integration/mocked/gql/signIn.d.ts.map +1 -1
  698. package/dist/tests/cases/integration/mocked/gql/signInIdp.d.ts.map +1 -1
  699. package/dist/tests/cases/integration/mocked/gql/signUp.d.ts.map +1 -1
  700. package/dist/tests/cases/integration/mocked/gql/unmanagedInvite.d.ts.map +1 -1
  701. package/dist/tests/cases/integration/mocked/gql/updateProjectMember.d.ts.map +1 -1
  702. package/dist/tests/cases/integration/mocked/idpClaimMappingConfig.test.d.ts +2 -0
  703. package/dist/tests/cases/integration/mocked/idpClaimMappingConfig.test.d.ts.map +1 -0
  704. package/dist/tests/cases/integration/mocked/permissionsQuery.test.d.ts +2 -0
  705. package/dist/tests/cases/integration/mocked/permissionsQuery.test.d.ts.map +1 -0
  706. package/dist/tests/cases/integration/mocked/signInIdpClaimMapping.test.d.ts +2 -0
  707. package/dist/tests/cases/integration/mocked/signInIdpClaimMapping.test.d.ts.map +1 -0
  708. package/dist/tests/cases/integration/mocked/signInIdpClaimMappingFixes.test.d.ts +2 -0
  709. package/dist/tests/cases/integration/mocked/signInIdpClaimMappingFixes.test.d.ts.map +1 -0
  710. package/dist/tests/cases/integration/mocked/signInIdpClaimMappingSafety.test.d.ts +2 -0
  711. package/dist/tests/cases/integration/mocked/signInIdpClaimMappingSafety.test.d.ts.map +1 -0
  712. package/dist/tests/cases/integration/mocked/sql/authLogSql.d.ts.map +1 -1
  713. package/dist/tests/cases/integration/mocked/sql/authPolicySql.d.ts.map +1 -1
  714. package/dist/tests/cases/integration/mocked/sql/consumeBackupCodeSql.d.ts.map +1 -1
  715. package/dist/tests/cases/integration/mocked/sql/createApiKeySql.d.ts.map +1 -1
  716. package/dist/tests/cases/integration/mocked/sql/createIdentitySql.d.ts.map +1 -1
  717. package/dist/tests/cases/integration/mocked/sql/createMembershipSql.d.ts.map +1 -1
  718. package/dist/tests/cases/integration/mocked/sql/createMembershipVariableSql.d.ts.map +1 -1
  719. package/dist/tests/cases/integration/mocked/sql/createPersonSql.d.ts.map +1 -1
  720. package/dist/tests/cases/integration/mocked/sql/createPersonTokenSql.d.ts.map +1 -1
  721. package/dist/tests/cases/integration/mocked/sql/createSessionKeySql.d.ts.map +1 -1
  722. package/dist/tests/cases/integration/mocked/sql/disableApiKeySql.d.ts.map +1 -1
  723. package/dist/tests/cases/integration/mocked/sql/disableOneOffKeySql.d.ts.map +1 -1
  724. package/dist/tests/cases/integration/mocked/sql/emailOtpSql.d.ts.map +1 -1
  725. package/dist/tests/cases/integration/mocked/sql/generateBackupCodesSql.d.ts.map +1 -1
  726. package/dist/tests/cases/integration/mocked/sql/getApiKeySql.d.ts.map +1 -1
  727. package/dist/tests/cases/integration/mocked/sql/getConfigSql.d.ts.map +1 -1
  728. package/dist/tests/cases/integration/mocked/sql/getIdentityByIdSql.d.ts.map +1 -1
  729. package/dist/tests/cases/integration/mocked/sql/getIdentityProjectsSql.d.ts.map +1 -1
  730. package/dist/tests/cases/integration/mocked/sql/getIdpBySlugSql.d.ts.map +1 -1
  731. package/dist/tests/cases/integration/mocked/sql/getIdpSessionByApiKeySql.d.ts.map +1 -1
  732. package/dist/tests/cases/integration/mocked/sql/getMailTemplateSql.d.ts.map +1 -1
  733. package/dist/tests/cases/integration/mocked/sql/getNextLoginAttemptSql.d.ts.map +1 -1
  734. package/dist/tests/cases/integration/mocked/sql/getNextMailAttemptSql.d.ts +1 -1
  735. package/dist/tests/cases/integration/mocked/sql/getNextMailAttemptSql.d.ts.map +1 -1
  736. package/dist/tests/cases/integration/mocked/sql/getPersonByEmailSql.d.ts.map +1 -1
  737. package/dist/tests/cases/integration/mocked/sql/getPersonByIdSql.d.ts.map +1 -1
  738. package/dist/tests/cases/integration/mocked/sql/getPersonByIdentity.d.ts.map +1 -1
  739. package/dist/tests/cases/integration/mocked/sql/getPersonByIdpSql.d.ts.map +1 -1
  740. package/dist/tests/cases/integration/mocked/sql/getPersonsByIdentitySql.d.ts.map +1 -1
  741. package/dist/tests/cases/integration/mocked/sql/getProjectBySlugSql.d.ts +1 -1
  742. package/dist/tests/cases/integration/mocked/sql/getProjectBySlugSql.d.ts.map +1 -1
  743. package/dist/tests/cases/integration/mocked/sql/getProjectMembershipSql.d.ts.map +1 -1
  744. package/dist/tests/cases/integration/mocked/sql/listApiKeysSql.d.ts.map +1 -1
  745. package/dist/tests/cases/integration/mocked/sql/listPersonsSql.d.ts +2 -0
  746. package/dist/tests/cases/integration/mocked/sql/listPersonsSql.d.ts.map +1 -1
  747. package/dist/tests/cases/integration/mocked/sql/listProjectSecretsSql.d.ts.map +1 -1
  748. package/dist/tests/cases/integration/mocked/sql/listSessionsSql.d.ts.map +1 -1
  749. package/dist/tests/cases/integration/mocked/sql/loginHistorySql.d.ts.map +1 -1
  750. package/dist/tests/cases/integration/mocked/sql/patchVariablesSql.d.ts.map +1 -1
  751. package/dist/tests/cases/integration/mocked/sql/personIdentityProvidersSql.d.ts.map +1 -1
  752. package/dist/tests/cases/integration/mocked/sql/removeMembershipSql.d.ts +8 -0
  753. package/dist/tests/cases/integration/mocked/sql/removeMembershipSql.d.ts.map +1 -0
  754. package/dist/tests/cases/integration/mocked/sql/selectMembershipsSql.d.ts.map +1 -1
  755. package/dist/tests/cases/integration/mocked/sql/setEmailOtpEnabledSql.d.ts.map +1 -1
  756. package/dist/tests/cases/integration/mocked/sql/sqlTransaction.d.ts.map +1 -1
  757. package/dist/tests/cases/integration/mocked/sql/updatePesonNameSql.d.ts.map +1 -1
  758. package/dist/tests/cases/integration/mocked/sql/updatePesonPasswordSql.d.ts.map +1 -1
  759. package/dist/tests/cases/unit/databaseContextRetry.test.d.ts +2 -0
  760. package/dist/tests/cases/unit/databaseContextRetry.test.d.ts.map +1 -0
  761. package/dist/tests/cases/unit/idp/claimMappingEvaluator.test.d.ts +2 -0
  762. package/dist/tests/cases/unit/idp/claimMappingEvaluator.test.d.ts.map +1 -0
  763. package/dist/tests/cases/unit/idp/claimMappingValidation.test.d.ts +2 -0
  764. package/dist/tests/cases/unit/idp/claimMappingValidation.test.d.ts.map +1 -0
  765. package/dist/tests/cases/unit/idp/idpManagerConfigMerge.test.d.ts +2 -0
  766. package/dist/tests/cases/unit/idp/idpManagerConfigMerge.test.d.ts.map +1 -0
  767. package/dist/tests/cases/unit/idp/idpManagerUnknownConfigKeys.test.d.ts +2 -0
  768. package/dist/tests/cases/unit/idp/idpManagerUnknownConfigKeys.test.d.ts.map +1 -0
  769. package/dist/tests/cases/unit/idp/oidcClaims.test.d.ts +2 -0
  770. package/dist/tests/cases/unit/idp/oidcClaims.test.d.ts.map +1 -0
  771. package/dist/tests/cases/unit/panelAccessResolver.test.d.ts +2 -0
  772. package/dist/tests/cases/unit/panelAccessResolver.test.d.ts.map +1 -0
  773. package/dist/tests/cases/unit/updateConfigurationCommand.test.d.ts +2 -0
  774. package/dist/tests/cases/unit/updateConfigurationCommand.test.d.ts.map +1 -0
  775. package/dist/tests/src/IdPMock.d.ts.map +1 -1
  776. package/dist/tests/src/dbUtils.d.ts.map +1 -1
  777. package/dist/tests/src/tags.d.ts.map +1 -1
  778. package/dist/tests/src/testGraphql.d.ts.map +1 -1
  779. package/dist/tests/src/testTenant.d.ts +7 -1
  780. package/dist/tests/src/testTenant.d.ts.map +1 -1
  781. package/dist/tests/src/testUuid.d.ts.map +1 -1
  782. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  783. package/dist/types/TenantContainer.d.ts +21 -13
  784. package/dist/types/TenantContainer.d.ts.map +1 -1
  785. package/dist/types/bridges/system/IdentityFetcher.d.ts +2 -2
  786. package/dist/types/bridges/system/IdentityFetcher.d.ts.map +1 -1
  787. package/dist/types/exceptions.d.ts.map +1 -1
  788. package/dist/types/migrations/2026-06-18-120000-idp-claim-mapping.d.ts +3 -0
  789. package/dist/types/migrations/2026-06-18-120000-idp-claim-mapping.d.ts.map +1 -0
  790. package/dist/types/migrations/2026-08-03-120000-person-enable-auth-log.d.ts +3 -0
  791. package/dist/types/migrations/2026-08-03-120000-person-enable-auth-log.d.ts.map +1 -0
  792. package/dist/types/migrations/2026-08-04-120000-config-panel.d.ts +3 -0
  793. package/dist/types/migrations/2026-08-04-120000-config-panel.d.ts.map +1 -0
  794. package/dist/types/migrations/runner.d.ts.map +1 -1
  795. package/dist/types/migrations/snapshot-factory.d.ts.map +1 -1
  796. package/dist/types/migrations/snapshot.d.ts.map +1 -1
  797. package/dist/types/migrations/tenantCredentials.d.ts.map +1 -1
  798. package/dist/types/model/authorization/AclSchemaAccessNodeFactory.d.ts.map +1 -1
  799. package/dist/types/model/authorization/DirectPermissionsAccessNode.d.ts.map +1 -1
  800. package/dist/types/model/authorization/Identity.d.ts.map +1 -1
  801. package/dist/types/model/authorization/IdentityFactory.d.ts.map +1 -1
  802. package/dist/types/model/authorization/IdentityScope.d.ts.map +1 -1
  803. package/dist/types/model/authorization/MembershipMatcher.d.ts.map +1 -1
  804. package/dist/types/model/authorization/PermissionActions.d.ts.map +1 -1
  805. package/dist/types/model/authorization/PermissionContext.d.ts.map +1 -1
  806. package/dist/types/model/authorization/PermissionContextFactory.d.ts.map +1 -1
  807. package/dist/types/model/authorization/PermissionsFactory.d.ts.map +1 -1
  808. package/dist/types/model/authorization/ProjectScope.d.ts.map +1 -1
  809. package/dist/types/model/authorization/ProjectScopeFactory.d.ts.map +1 -1
  810. package/dist/types/model/commands/CommandBus.d.ts.map +1 -1
  811. package/dist/types/model/commands/apiKey/ApiKeyHelper.d.ts.map +1 -1
  812. package/dist/types/model/commands/apiKey/CreateApiKeyCommand.d.ts.map +1 -1
  813. package/dist/types/model/commands/apiKey/DisableApiKeyCommand.d.ts.map +1 -1
  814. package/dist/types/model/commands/apiKey/DisableIdentityApiKeysCommand.d.ts.map +1 -1
  815. package/dist/types/model/commands/apiKey/DisableOneOffApiKeyCommand.d.ts.map +1 -1
  816. package/dist/types/model/commands/apiKey/ProlongApiKeyCommand.d.ts +1 -1
  817. package/dist/types/model/commands/apiKey/ProlongApiKeyCommand.d.ts.map +1 -1
  818. package/dist/types/model/commands/authLog/CreateAuthLogEntryCommand.d.ts.map +1 -1
  819. package/dist/types/model/commands/authPolicy/CreateAuthPolicyCommand.d.ts.map +1 -1
  820. package/dist/types/model/commands/authPolicy/DeleteAuthPolicyCommand.d.ts.map +1 -1
  821. package/dist/types/model/commands/authPolicy/UpdateAuthPolicyCommand.d.ts.map +1 -1
  822. package/dist/types/model/commands/backupCode/ConsumeBackupCodeCommand.d.ts.map +1 -1
  823. package/dist/types/model/commands/backupCode/CreateBackupCodeCommand.d.ts.map +1 -1
  824. package/dist/types/model/commands/backupCode/DeleteBackupCodesCommand.d.ts.map +1 -1
  825. package/dist/types/model/commands/configuration/UpdateConfigurationCommand.d.ts.map +1 -1
  826. package/dist/types/model/commands/identity/CreateIdentityCommand.d.ts.map +1 -1
  827. package/dist/types/model/commands/identity/PatchIdentityGlobalRoles.d.ts.map +1 -1
  828. package/dist/types/model/commands/idp/ClaimIdpRevalidationCommand.d.ts.map +1 -1
  829. package/dist/types/model/commands/idp/CreateIdpCommand.d.ts.map +1 -1
  830. package/dist/types/model/commands/idp/CreateIdpSessionCommand.d.ts.map +1 -1
  831. package/dist/types/model/commands/idp/DisableIdpCommand.d.ts.map +1 -1
  832. package/dist/types/model/commands/idp/DisconnectPersonIdentityProviderCommand.d.ts.map +1 -1
  833. package/dist/types/model/commands/idp/EnableIdpCommand.d.ts.map +1 -1
  834. package/dist/types/model/commands/idp/UpdateIdpCommand.d.ts.map +1 -1
  835. package/dist/types/model/commands/idp/UpdateIdpSessionCommand.d.ts.map +1 -1
  836. package/dist/types/model/commands/mailTemplate/AddMailTemplateCommand.d.ts.map +1 -1
  837. package/dist/types/model/commands/mailTemplate/RemoveMailTemplateCommand.d.ts.map +1 -1
  838. package/dist/types/model/commands/membership/AddProjectMemberCommand.d.ts.map +1 -1
  839. package/dist/types/model/commands/membership/CreateOrUpdateProjectMembershipCommand.d.ts.map +1 -1
  840. package/dist/types/model/commands/membership/RemoveProjectMemberCommand.d.ts.map +1 -1
  841. package/dist/types/model/commands/membership/{RemoveProjectMembershipsCommand.d.ts → RemoveProjectMembershipCommand.d.ts} +1 -1
  842. package/dist/types/model/commands/membership/RemoveProjectMembershipCommand.d.ts.map +1 -0
  843. package/dist/types/model/commands/membership/UpdateProjectMemberCommand.d.ts.map +1 -1
  844. package/dist/types/model/commands/membership/index.d.ts +2 -1
  845. package/dist/types/model/commands/membership/index.d.ts.map +1 -1
  846. package/dist/types/model/commands/membership/variables/PatchProjectMembershipVariableValuesCommand.d.ts.map +1 -1
  847. package/dist/types/model/commands/membership/variables/PatchProjectMembershipVariablesCommand.d.ts.map +1 -1
  848. package/dist/types/model/commands/membership/variables/SetProjectMembershipVariableValuesCommand.d.ts.map +1 -1
  849. package/dist/types/model/commands/membership/variables/index.d.ts +1 -0
  850. package/dist/types/model/commands/membership/variables/index.d.ts.map +1 -1
  851. package/dist/types/model/commands/otp/ConfirmOtpCommand.d.ts.map +1 -1
  852. package/dist/types/model/commands/otp/DisableOtpCommand.d.ts.map +1 -1
  853. package/dist/types/model/commands/otp/PrepareOtpCommand.d.ts.map +1 -1
  854. package/dist/types/model/commands/otp/ReEncryptOtpSecretCommand.d.ts.map +1 -1
  855. package/dist/types/model/commands/otp/SetEmailOtpEnabledCommand.d.ts.map +1 -1
  856. package/dist/types/model/commands/person/ChangePasswordCommand.d.ts.map +1 -1
  857. package/dist/types/model/commands/person/ChangeProfileCommand.d.ts.map +1 -1
  858. package/dist/types/model/commands/person/CreatePersonCommand.d.ts.map +1 -1
  859. package/dist/types/model/commands/person/CreatePersonIdentityProviderIdentifierCommand.d.ts.map +1 -1
  860. package/dist/types/model/commands/person/DisablePersonCommand.d.ts.map +1 -1
  861. package/dist/types/model/commands/person/EnablePersonCommand.d.ts +7 -0
  862. package/dist/types/model/commands/person/EnablePersonCommand.d.ts.map +1 -0
  863. package/dist/types/model/commands/person/MarkEmailVerifiedCommand.d.ts.map +1 -1
  864. package/dist/types/model/commands/person/ResetPersonMfaCommand.d.ts.map +1 -1
  865. package/dist/types/model/commands/person/SetMfaGraceUntilCommand.d.ts.map +1 -1
  866. package/dist/types/model/commands/person/TogglePersonPasswordlessCommand.d.ts.map +1 -1
  867. package/dist/types/model/commands/personToken/ActivateOtpCommand.d.ts.map +1 -1
  868. package/dist/types/model/commands/personToken/ClaimOtpAttemptCommand.d.ts.map +1 -1
  869. package/dist/types/model/commands/personToken/CreatePersonTokenCommand.d.ts.map +1 -1
  870. package/dist/types/model/commands/personToken/IncreaseOtpAttemptCommand.d.ts.map +1 -1
  871. package/dist/types/model/commands/personToken/InvalidateEmailOtpTokensCommand.d.ts.map +1 -1
  872. package/dist/types/model/commands/personToken/InvalidateTokenCommand.d.ts.map +1 -1
  873. package/dist/types/model/commands/personToken/ResetPasswordCommand.d.ts.map +1 -1
  874. package/dist/types/model/commands/personToken/SaveEmailOtpTokenCommand.d.ts.map +1 -1
  875. package/dist/types/model/commands/personToken/SavePersonTokenCommand.d.ts.map +1 -1
  876. package/dist/types/model/commands/project/CreateProjectCommand.d.ts.map +1 -1
  877. package/dist/types/model/commands/project/SetProjectSecretCommand.d.ts.map +1 -1
  878. package/dist/types/model/commands/project/UpdateProjectCommand.d.ts.map +1 -1
  879. package/dist/types/model/commands/rateLimit/RecordRateLimitEventCommand.d.ts.map +1 -1
  880. package/dist/types/model/dtos/Password.d.ts.map +1 -1
  881. package/dist/types/model/mailing/UserMailer.d.ts.map +1 -1
  882. package/dist/types/model/mailing/templates/BackupCodesExhausted.mustache.d.ts.map +1 -1
  883. package/dist/types/model/mailing/templates/EmailChangeNotify.mustache.d.ts.map +1 -1
  884. package/dist/types/model/mailing/templates/EmailChangeVerify.mustache.d.ts.map +1 -1
  885. package/dist/types/model/mailing/templates/EmailOtp.mustache.d.ts.map +1 -1
  886. package/dist/types/model/mailing/templates/EmailVerification.mustache.d.ts.map +1 -1
  887. package/dist/types/model/mailing/templates/ExistingUserInvited.mustache.d.ts.map +1 -1
  888. package/dist/types/model/mailing/templates/ForcedSignOut.mustache.d.ts.map +1 -1
  889. package/dist/types/model/mailing/templates/Layout.mustache.d.ts.map +1 -1
  890. package/dist/types/model/mailing/templates/NewUserInvited.mustache.d.ts.map +1 -1
  891. package/dist/types/model/mailing/templates/PasswordReset.mustache.d.ts.map +1 -1
  892. package/dist/types/model/mailing/templates/PasswordlessSignIn.mustache.d.ts.map +1 -1
  893. package/dist/types/model/mailing/templates/UnusualLogin.mustache.d.ts.map +1 -1
  894. package/dist/types/model/mailing/type.d.ts.map +1 -1
  895. package/dist/types/model/queries/apiKey/ApiKeyListQuery.d.ts.map +1 -1
  896. package/dist/types/model/queries/apiKey/ApiKeyQuery.d.ts.map +1 -1
  897. package/dist/types/model/queries/apiKey/ApiKeySessionsQuery.d.ts.map +1 -1
  898. package/dist/types/model/queries/authLog/AuthLogQuery.d.ts.map +1 -1
  899. package/dist/types/model/queries/authLog/NextLoginAttemptQuery.d.ts.map +1 -1
  900. package/dist/types/model/queries/authLog/NextMailAttemptQuery.d.ts.map +1 -1
  901. package/dist/types/model/queries/authPolicy/AuthPoliciesQuery.d.ts.map +1 -1
  902. package/dist/types/model/queries/configuration/ConfigurationQuery.d.ts.map +1 -1
  903. package/dist/types/model/queries/identity/IdentityQuery.d.ts.map +1 -1
  904. package/dist/types/model/queries/idp/IdentityProviderBySlugQuery.d.ts.map +1 -1
  905. package/dist/types/model/queries/idp/IdentityProvidersQuery.d.ts.map +1 -1
  906. package/dist/types/model/queries/idp/IdpSessionByApiKeyQuery.d.ts.map +1 -1
  907. package/dist/types/model/queries/idp/IdpSessionsBySidQuery.d.ts.map +1 -1
  908. package/dist/types/model/queries/idp/IdpSessionsBySubQuery.d.ts.map +1 -1
  909. package/dist/types/model/queries/idp/PersonIdentityProvidersQuery.d.ts.map +1 -1
  910. package/dist/types/model/queries/idp/helpers.d.ts.map +1 -1
  911. package/dist/types/model/queries/mailTemplate/MailTemplateListQuery.d.ts.map +1 -1
  912. package/dist/types/model/queries/mailTemplate/MailTemplateQuery.d.ts.map +1 -1
  913. package/dist/types/model/queries/membership/AllProjectRolesByIdentityQuery.d.ts.map +1 -1
  914. package/dist/types/model/queries/membership/ProjectMembersQuery.d.ts.map +1 -1
  915. package/dist/types/model/queries/membership/ProjectMembershipByIdentityQuery.d.ts.map +1 -1
  916. package/dist/types/model/queries/membership/ProjectRolesByIdentityQuery.d.ts.map +1 -1
  917. package/dist/types/model/queries/membership/ProjectSlugSpecification.d.ts.map +1 -1
  918. package/dist/types/model/queries/person/PersonByIdPQuery.d.ts.map +1 -1
  919. package/dist/types/model/queries/person/PersonByIdentityBatchQuery.d.ts.map +1 -1
  920. package/dist/types/model/queries/person/PersonQuery.d.ts.map +1 -1
  921. package/dist/types/model/queries/person/PersonQueryBuilderFactory.d.ts.map +1 -1
  922. package/dist/types/model/queries/person/PersonsQuery.d.ts.map +1 -1
  923. package/dist/types/model/queries/person/types.d.ts +1 -0
  924. package/dist/types/model/queries/person/types.d.ts.map +1 -1
  925. package/dist/types/model/queries/personToken/PersonTokenQuery.d.ts.map +1 -1
  926. package/dist/types/model/queries/project/ProjectBySlugQuery.d.ts.map +1 -1
  927. package/dist/types/model/queries/project/ProjectSecretKeysQuery.d.ts.map +1 -1
  928. package/dist/types/model/queries/project/ProjectSecretsQuery.d.ts.map +1 -1
  929. package/dist/types/model/queries/project/ProjectUpdateTimestampQuery.d.ts.map +1 -1
  930. package/dist/types/model/queries/project/ProjectsByIdentityQuery.d.ts.map +1 -1
  931. package/dist/types/model/queries/project/ProjectsQuery.d.ts.map +1 -1
  932. package/dist/types/model/queries/rateLimit/RateLimitCountQuery.d.ts.map +1 -1
  933. package/dist/types/model/service/AuthLogService.d.ts.map +1 -1
  934. package/dist/types/model/service/AuthPolicyManager.d.ts.map +1 -1
  935. package/dist/types/model/service/AuthPolicyResolver.d.ts.map +1 -1
  936. package/dist/types/model/service/BackupCodeManager.d.ts.map +1 -1
  937. package/dist/types/model/service/ConfigurationManager.d.ts.map +1 -1
  938. package/dist/types/model/service/EmailChangeManager.d.ts.map +1 -1
  939. package/dist/types/model/service/EmailOtpManager.d.ts.map +1 -1
  940. package/dist/types/model/service/EmailValidator.d.ts.map +1 -1
  941. package/dist/types/model/service/EmailVerificationManager.d.ts.map +1 -1
  942. package/dist/types/model/service/HibpChecker.d.ts.map +1 -1
  943. package/dist/types/model/service/IDPSignInManager.d.ts +11 -1
  944. package/dist/types/model/service/IDPSignInManager.d.ts.map +1 -1
  945. package/dist/types/model/service/InviteManager.d.ts.map +1 -1
  946. package/dist/types/model/service/LoginRiskAnalyzer.d.ts +1 -1
  947. package/dist/types/model/service/LoginRiskAnalyzer.d.ts.map +1 -1
  948. package/dist/types/model/service/MailTemplateManager.d.ts.map +1 -1
  949. package/dist/types/model/service/MembershipValidator.d.ts.map +1 -1
  950. package/dist/types/model/service/OtpAuthenticator.d.ts.map +1 -1
  951. package/dist/types/model/service/OtpManager.d.ts.map +1 -1
  952. package/dist/types/model/service/PanelAccessResolver.d.ts +19 -0
  953. package/dist/types/model/service/PanelAccessResolver.d.ts.map +1 -0
  954. package/dist/types/model/service/PasswordChangeManager.d.ts.map +1 -1
  955. package/dist/types/model/service/PasswordResetManager.d.ts.map +1 -1
  956. package/dist/types/model/service/PasswordStrengthValidator.d.ts.map +1 -1
  957. package/dist/types/model/service/PasswordlessSignInManager.d.ts.map +1 -1
  958. package/dist/types/model/service/PersonAccessManager.d.ts +5 -2
  959. package/dist/types/model/service/PersonAccessManager.d.ts.map +1 -1
  960. package/dist/types/model/service/PersonManager.d.ts.map +1 -1
  961. package/dist/types/model/service/ProjectManager.d.ts.map +1 -1
  962. package/dist/types/model/service/ProjectMemberManager.d.ts.map +1 -1
  963. package/dist/types/model/service/RateLimiter.d.ts.map +1 -1
  964. package/dist/types/model/service/RolesManager.d.ts.map +1 -1
  965. package/dist/types/model/service/SecretsManager.d.ts.map +1 -1
  966. package/dist/types/model/service/SignInManager.d.ts.map +1 -1
  967. package/dist/types/model/service/SignOutManager.d.ts.map +1 -1
  968. package/dist/types/model/service/SignUpManager.d.ts.map +1 -1
  969. package/dist/types/model/service/apiKey/ApiKeyManager.d.ts.map +1 -1
  970. package/dist/types/model/service/apiKey/ApiKeyService.d.ts.map +1 -1
  971. package/dist/types/model/service/apiKey/UnpersistedApiKeyManager.d.ts +18 -0
  972. package/dist/types/model/service/apiKey/UnpersistedApiKeyManager.d.ts.map +1 -1
  973. package/dist/types/model/service/captcha/CaptchaValidator.d.ts.map +1 -1
  974. package/dist/types/model/service/captcha/HCaptchaProvider.d.ts.map +1 -1
  975. package/dist/types/model/service/captcha/RecaptchaV3Provider.d.ts.map +1 -1
  976. package/dist/types/model/service/captcha/TurnstileProvider.d.ts.map +1 -1
  977. package/dist/types/model/service/helpers/getPreferredProject.d.ts.map +1 -1
  978. package/dist/types/model/service/helpers/isPasswordlessEnabled.d.ts.map +1 -1
  979. package/dist/types/model/service/idp/BackchannelLogoutManager.d.ts.map +1 -1
  980. package/dist/types/model/service/idp/ClaimMapping.d.ts +330 -0
  981. package/dist/types/model/service/idp/ClaimMapping.d.ts.map +1 -0
  982. package/dist/types/model/service/idp/ClaimMappingEvaluator.d.ts +30 -0
  983. package/dist/types/model/service/idp/ClaimMappingEvaluator.d.ts.map +1 -0
  984. package/dist/types/model/service/idp/ClaimMappingValidation.d.ts +55 -0
  985. package/dist/types/model/service/idp/ClaimMappingValidation.d.ts.map +1 -0
  986. package/dist/types/model/service/idp/IDPClaimSyncService.d.ts +113 -0
  987. package/dist/types/model/service/idp/IDPClaimSyncService.d.ts.map +1 -0
  988. package/dist/types/model/service/idp/IDPHandlerRegistry.d.ts.map +1 -1
  989. package/dist/types/model/service/idp/IDPManager.d.ts +31 -1
  990. package/dist/types/model/service/idp/IDPManager.d.ts.map +1 -1
  991. package/dist/types/model/service/idp/IdentityProviderHandler.d.ts +7 -0
  992. package/dist/types/model/service/idp/IdentityProviderHandler.d.ts.map +1 -1
  993. package/dist/types/model/service/idp/IdpSessionRevalidator.d.ts +13 -1
  994. package/dist/types/model/service/idp/IdpSessionRevalidator.d.ts.map +1 -1
  995. package/dist/types/model/service/idp/PersonIdentityProviderManager.d.ts.map +1 -1
  996. package/dist/types/model/service/idp/index.d.ts +4 -0
  997. package/dist/types/model/service/idp/index.d.ts.map +1 -1
  998. package/dist/types/model/service/idp/providers/AppleProvider.d.ts +2 -2
  999. package/dist/types/model/service/idp/providers/AppleProvider.d.ts.map +1 -1
  1000. package/dist/types/model/service/idp/providers/FacebookProvider.d.ts +2 -2
  1001. package/dist/types/model/service/idp/providers/FacebookProvider.d.ts.map +1 -1
  1002. package/dist/types/model/service/idp/providers/OIDCHelpers.d.ts +13 -1
  1003. package/dist/types/model/service/idp/providers/OIDCHelpers.d.ts.map +1 -1
  1004. package/dist/types/model/service/idp/providers/OIDCProvider.d.ts +1 -1
  1005. package/dist/types/model/service/idp/providers/OIDCProvider.d.ts.map +1 -1
  1006. package/dist/types/model/service/idp/providers/OIDCTypes.d.ts +5 -5
  1007. package/dist/types/model/service/idp/providers/helpers.d.ts.map +1 -1
  1008. package/dist/types/model/service/index.d.ts +1 -0
  1009. package/dist/types/model/service/index.d.ts.map +1 -1
  1010. package/dist/types/model/service/membershipUtils.d.ts.map +1 -1
  1011. package/dist/types/model/type/AuthLog.d.ts +1 -1
  1012. package/dist/types/model/type/AuthLog.d.ts.map +1 -1
  1013. package/dist/types/model/type/Config.d.ts +2 -0
  1014. package/dist/types/model/type/Config.d.ts.map +1 -1
  1015. package/dist/types/model/type/RateLimit.d.ts +6 -6
  1016. package/dist/types/model/type/RateLimit.d.ts.map +1 -1
  1017. package/dist/types/model/utils/DatabaseContext.d.ts +14 -1
  1018. package/dist/types/model/utils/DatabaseContext.d.ts.map +1 -1
  1019. package/dist/types/model/utils/Response.d.ts.map +1 -1
  1020. package/dist/types/model/utils/email.d.ts.map +1 -1
  1021. package/dist/types/model/utils/hex.d.ts.map +1 -1
  1022. package/dist/types/model/utils/interval.d.ts.map +1 -1
  1023. package/dist/types/model/utils/time.d.ts.map +1 -1
  1024. package/dist/types/model/utils/token.d.ts.map +1 -1
  1025. package/dist/types/resolvers/ResolverFactory.d.ts +2 -0
  1026. package/dist/types/resolvers/ResolverFactory.d.ts.map +1 -1
  1027. package/dist/types/resolvers/TenantResolverContextFactory.d.ts.map +1 -1
  1028. package/dist/types/resolvers/errorUtils.d.ts.map +1 -1
  1029. package/dist/types/resolvers/membershipUtils.d.ts.map +1 -1
  1030. package/dist/types/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.d.ts.map +1 -1
  1031. package/dist/types/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.d.ts.map +1 -1
  1032. package/dist/types/resolvers/mutation/configuration/AuthPolicyMutationResolver.d.ts.map +1 -1
  1033. package/dist/types/resolvers/mutation/configuration/ConfigurationMutationResolver.d.ts.map +1 -1
  1034. package/dist/types/resolvers/mutation/identity/GlobalRolesMutationResolver.d.ts.map +1 -1
  1035. package/dist/types/resolvers/mutation/idp/AddIDPMutationResolver.d.ts.map +1 -1
  1036. package/dist/types/resolvers/mutation/idp/DisableIDPMutationResolver.d.ts.map +1 -1
  1037. package/dist/types/resolvers/mutation/idp/DisconnectMyIdentityProviderMutationResolver.d.ts.map +1 -1
  1038. package/dist/types/resolvers/mutation/idp/EnableIDPMutationResolver.d.ts.map +1 -1
  1039. package/dist/types/resolvers/mutation/idp/UpdateIDPMutationResolver.d.ts.map +1 -1
  1040. package/dist/types/resolvers/mutation/idp/audit.d.ts.map +1 -1
  1041. package/dist/types/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.d.ts.map +1 -1
  1042. package/dist/types/resolvers/mutation/person/ChangePasswordMutationResolver.d.ts.map +1 -1
  1043. package/dist/types/resolvers/mutation/person/ChangeProfileMutationResolver.d.ts.map +1 -1
  1044. package/dist/types/resolvers/mutation/person/DisablePersonMutationResolver.d.ts +1 -1
  1045. package/dist/types/resolvers/mutation/person/DisablePersonMutationResolver.d.ts.map +1 -1
  1046. package/dist/types/resolvers/mutation/person/EmailOtpMutationResolver.d.ts.map +1 -1
  1047. package/dist/types/resolvers/mutation/person/EmailVerificationMutationResolver.d.ts.map +1 -1
  1048. package/dist/types/resolvers/mutation/person/EnablePersonMutationResolver.d.ts +11 -0
  1049. package/dist/types/resolvers/mutation/person/EnablePersonMutationResolver.d.ts.map +1 -0
  1050. package/dist/types/resolvers/mutation/person/ForceSignOutMutationResolver.d.ts.map +1 -1
  1051. package/dist/types/resolvers/mutation/person/IDPMutationResolver.d.ts.map +1 -1
  1052. package/dist/types/resolvers/mutation/person/InviteMutationResolver.d.ts.map +1 -1
  1053. package/dist/types/resolvers/mutation/person/OtpMutationResolver.d.ts.map +1 -1
  1054. package/dist/types/resolvers/mutation/person/PasswordlessMutationResolver.d.ts.map +1 -1
  1055. package/dist/types/resolvers/mutation/person/RegenerateBackupCodesMutationResolver.d.ts.map +1 -1
  1056. package/dist/types/resolvers/mutation/person/ResetPasswordMutationResolver.d.ts.map +1 -1
  1057. package/dist/types/resolvers/mutation/person/ResetPersonMfaMutationResolver.d.ts.map +1 -1
  1058. package/dist/types/resolvers/mutation/person/RevokeSessionMutationResolver.d.ts.map +1 -1
  1059. package/dist/types/resolvers/mutation/person/SignInMutationResolver.d.ts.map +1 -1
  1060. package/dist/types/resolvers/mutation/person/SignOutMutationResolver.d.ts.map +1 -1
  1061. package/dist/types/resolvers/mutation/person/SignUpMutationResolver.d.ts.map +1 -1
  1062. package/dist/types/resolvers/mutation/person/TogglePasswordlessMutationResolver.d.ts.map +1 -1
  1063. package/dist/types/resolvers/mutation/project/CreateProjectMutationResolver.d.ts.map +1 -1
  1064. package/dist/types/resolvers/mutation/project/SetProjectSecretMutationResolver.d.ts.map +1 -1
  1065. package/dist/types/resolvers/mutation/project/UpdateProjectMutationResolver.d.ts.map +1 -1
  1066. package/dist/types/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.d.ts.map +1 -1
  1067. package/dist/types/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.d.ts.map +1 -1
  1068. package/dist/types/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.d.ts.map +1 -1
  1069. package/dist/types/resolvers/mutation/projectMember/audit.d.ts +1 -1
  1070. package/dist/types/resolvers/mutation/projectMember/audit.d.ts.map +1 -1
  1071. package/dist/types/resolvers/query/ApiKeyQueryResolver.d.ts.map +1 -1
  1072. package/dist/types/resolvers/query/AuthLogQueryResolver.d.ts.map +1 -1
  1073. package/dist/types/resolvers/query/AuthPolicyQueryResolver.d.ts.map +1 -1
  1074. package/dist/types/resolvers/query/ConfigurationQueryResolver.d.ts.map +1 -1
  1075. package/dist/types/resolvers/query/IDPQueryResolver.d.ts.map +1 -1
  1076. package/dist/types/resolvers/query/MailTemplateQueryResolver.d.ts.map +1 -1
  1077. package/dist/types/resolvers/query/MeQueryResolver.d.ts.map +1 -1
  1078. package/dist/types/resolvers/query/PersonQueryResolver.d.ts.map +1 -1
  1079. package/dist/types/resolvers/query/ProjectMembersQueryResolver.d.ts.map +1 -1
  1080. package/dist/types/resolvers/query/ProjectQueryResolver.d.ts.map +1 -1
  1081. package/dist/types/resolvers/responseHelpers/ApiKeyResponseFactory.d.ts.map +1 -1
  1082. package/dist/types/resolvers/responseHelpers/PersonResponseFactory.d.ts.map +1 -1
  1083. package/dist/types/resolvers/responseHelpers/ProjectResponseFactory.d.ts +10 -0
  1084. package/dist/types/resolvers/responseHelpers/ProjectResponseFactory.d.ts.map +1 -0
  1085. package/dist/types/resolvers/responseHelpers/SignInResponseFactory.d.ts.map +1 -1
  1086. package/dist/types/resolvers/types/IdentityTypeResolver.d.ts.map +1 -1
  1087. package/dist/types/resolvers/types/PersonTypeResolver.d.ts +15 -1
  1088. package/dist/types/resolvers/types/PersonTypeResolver.d.ts.map +1 -1
  1089. package/dist/types/resolvers/types/ProjectTypeResolver.d.ts +15 -6
  1090. package/dist/types/resolvers/types/ProjectTypeResolver.d.ts.map +1 -1
  1091. package/dist/types/schema/index.d.ts +161 -0
  1092. package/dist/types/schema/index.d.ts.map +1 -1
  1093. package/dist/types/schema/tenant.graphql.d.ts.map +1 -1
  1094. package/dist/types/schema/types.d.ts +2 -2
  1095. package/dist/types/schema/types.d.ts.map +1 -1
  1096. package/dist/types/tsconfig.tsbuildinfo +1 -1
  1097. package/dist/types/utils/Mailer.d.ts.map +1 -1
  1098. package/dist/types/utils/TemplateRenderer.d.ts.map +1 -1
  1099. package/dist/types/utils/array.d.ts.map +1 -1
  1100. package/dist/types/utils/batchQuery.d.ts.map +1 -1
  1101. package/package.json +12 -12
  1102. package/src/TenantContainer.ts +17 -3
  1103. package/src/migrations/2026-06-18-120000-idp-claim-mapping.ts +15 -0
  1104. package/src/migrations/2026-08-03-120000-person-enable-auth-log.ts +12 -0
  1105. package/src/migrations/2026-08-04-120000-config-panel.ts +13 -0
  1106. package/src/migrations/runner.ts +6 -0
  1107. package/src/migrations/snapshot.ts +6 -1
  1108. package/src/model/commands/configuration/UpdateConfigurationCommand.ts +5 -4
  1109. package/src/model/commands/membership/UpdateProjectMemberCommand.ts +1 -1
  1110. package/src/model/commands/membership/index.ts +2 -1
  1111. package/src/model/commands/membership/variables/index.ts +1 -0
  1112. package/src/model/commands/person/EnablePersonCommand.ts +18 -0
  1113. package/src/model/queries/configuration/ConfigurationQuery.ts +4 -0
  1114. package/src/model/queries/membership/ProjectMembersQuery.ts +1 -0
  1115. package/src/model/queries/person/PersonQueryBuilderFactory.ts +1 -0
  1116. package/src/model/queries/person/types.ts +1 -0
  1117. package/src/model/service/AuthLogService.ts +18 -2
  1118. package/src/model/service/IDPSignInManager.ts +49 -1
  1119. package/src/model/service/PanelAccessResolver.ts +32 -0
  1120. package/src/model/service/PersonAccessManager.ts +19 -3
  1121. package/src/model/service/apiKey/ApiKeyManager.ts +5 -3
  1122. package/src/model/service/apiKey/UnpersistedApiKeyManager.ts +24 -0
  1123. package/src/model/service/idp/ClaimMapping.ts +283 -0
  1124. package/src/model/service/idp/ClaimMappingEvaluator.ts +226 -0
  1125. package/src/model/service/idp/ClaimMappingValidation.ts +158 -0
  1126. package/src/model/service/idp/IDPClaimSyncService.ts +401 -0
  1127. package/src/model/service/idp/IDPManager.ts +126 -21
  1128. package/src/model/service/idp/IdentityProviderHandler.ts +7 -0
  1129. package/src/model/service/idp/IdpSessionRevalidator.ts +90 -0
  1130. package/src/model/service/idp/index.ts +4 -0
  1131. package/src/model/service/idp/providers/OIDCHelpers.ts +161 -53
  1132. package/src/model/service/idp/providers/OIDCProvider.ts +4 -1
  1133. package/src/model/service/index.ts +1 -0
  1134. package/src/model/type/AuthLog.ts +3 -0
  1135. package/src/model/type/Config.ts +3 -0
  1136. package/src/model/utils/DatabaseContext.ts +27 -6
  1137. package/src/resolvers/ResolverFactory.ts +6 -0
  1138. package/src/resolvers/mutation/person/DisablePersonMutationResolver.ts +3 -3
  1139. package/src/resolvers/mutation/person/EnablePersonMutationResolver.ts +50 -0
  1140. package/src/resolvers/mutation/person/IDPMutationResolver.ts +31 -0
  1141. package/src/resolvers/query/ProjectQueryResolver.ts +3 -2
  1142. package/src/resolvers/responseHelpers/PersonResponseFactory.ts +5 -0
  1143. package/src/resolvers/responseHelpers/ProjectResponseFactory.ts +24 -0
  1144. package/src/resolvers/types/IdentityTypeResolver.ts +39 -3
  1145. package/src/resolvers/types/PersonTypeResolver.ts +35 -2
  1146. package/src/resolvers/types/ProjectTypeResolver.ts +33 -1
  1147. package/src/schema/index.ts +183 -0
  1148. package/src/schema/tenant.graphql.ts +116 -0
  1149. package/tests/cases/integration/mocked/configurationPanel.test.ts +105 -0
  1150. package/tests/cases/integration/mocked/disablePersonMutation.test.ts +89 -0
  1151. package/tests/cases/integration/mocked/enablePersonMutation.test.ts +130 -0
  1152. package/tests/cases/integration/mocked/idpClaimMappingConfig.test.ts +332 -0
  1153. package/tests/cases/integration/mocked/listProjectMembersQuery.test.ts +8 -3
  1154. package/tests/cases/integration/mocked/permissionsQuery.test.ts +153 -0
  1155. package/tests/cases/integration/mocked/personsQuery.test.ts +38 -5
  1156. package/tests/cases/integration/mocked/signInIdpClaimMapping.test.ts +1244 -0
  1157. package/tests/cases/integration/mocked/signInIdpClaimMappingFixes.test.ts +340 -0
  1158. package/tests/cases/integration/mocked/signInIdpClaimMappingSafety.test.ts +525 -0
  1159. package/tests/cases/integration/mocked/sql/getConfigSql.ts +3 -0
  1160. package/tests/cases/integration/mocked/sql/getProjectBySlugSql.ts +1 -1
  1161. package/tests/cases/integration/mocked/sql/listPersonsSql.ts +5 -2
  1162. package/tests/cases/integration/mocked/sql/removeMembershipSql.ts +14 -0
  1163. package/tests/cases/unit/databaseContextRetry.test.ts +81 -0
  1164. package/tests/cases/unit/idp/claimMappingEvaluator.test.ts +554 -0
  1165. package/tests/cases/unit/idp/claimMappingValidation.test.ts +134 -0
  1166. package/tests/cases/unit/idp/idpManagerConfigMerge.test.ts +97 -0
  1167. package/tests/cases/unit/idp/idpManagerUnknownConfigKeys.test.ts +101 -0
  1168. package/tests/cases/unit/idp/idpSessionRevalidator.test.ts +226 -24
  1169. package/tests/cases/unit/idp/oidcClaims.test.ts +29 -0
  1170. package/tests/cases/unit/idp/oidcResponse.test.ts +54 -0
  1171. package/tests/cases/unit/idp/oidcRevalidate.test.ts +94 -2
  1172. package/tests/cases/unit/panelAccessResolver.test.ts +57 -0
  1173. package/tests/cases/unit/updateConfigurationCommand.test.ts +63 -0
  1174. package/tests/src/IdPMock.ts +4 -0
  1175. package/tests/src/testTenant.ts +32 -1
  1176. package/dist/development/src/model/commands/membership/RemoveProjectMembershipsCommand.cjs.map +0 -1
  1177. package/dist/development/src/model/commands/membership/RemoveProjectMembershipsCommand.js.map +0 -1
  1178. package/dist/production/src/model/commands/membership/RemoveProjectMembershipsCommand.cjs.map +0 -1
  1179. package/dist/production/src/model/commands/membership/RemoveProjectMembershipsCommand.js.map +0 -1
  1180. package/dist/types/model/commands/membership/RemoveProjectMembershipsCommand.d.ts.map +0 -1
  1181. /package/src/model/commands/membership/{RemoveProjectMembershipsCommand.ts → RemoveProjectMembershipCommand.ts} +0 -0
@@ -0,0 +1,155 @@
1
+ import { isRecord } from "./ClaimMapping.js";
2
+ const evaluateClaimMapping = (mapping, claims) => {
3
+ const membershipByKey = /* @__PURE__ */ new Map();
4
+ for (const rule of mapping.rules) {
5
+ if (!ruleMatches(rule, resolvePath(claims, rule.claim))) {
6
+ continue;
7
+ }
8
+ if (rule.grantMembership) {
9
+ const membership = toMembership(rule.grantMembership, claims);
10
+ const key = JSON.stringify([membership.project, membership.role]);
11
+ const existing = membershipByKey.get(key);
12
+ membershipByKey.set(key, existing ? mergeMembershipVariables(existing, membership) : membership);
13
+ }
14
+ }
15
+ return [...membershipByKey.values()];
16
+ };
17
+ const toMembership = (membership, claims) => ({
18
+ project: membership.project,
19
+ role: membership.role,
20
+ // Union by name so a single grant that lists the same variable twice (e.g. two `locale` entries)
21
+ // combines their values into one entry, rather than emitting duplicate entries that would later race
22
+ // and clobber each other when each is written as a full-replace of the same (membership, variable).
23
+ variables: unionVariablesByName(
24
+ (membership.variables ?? []).map((variable) => ({ name: variable.name, values: resolveVariableValues(variable, claims) }))
25
+ )
26
+ });
27
+ const mergeMembershipVariables = (a, b) => ({
28
+ project: a.project,
29
+ role: a.role,
30
+ variables: unionVariablesByName([...a.variables, ...b.variables])
31
+ });
32
+ const unionVariablesByName = (variables) => {
33
+ const valuesByName = /* @__PURE__ */ new Map();
34
+ for (const variable of variables) {
35
+ const values = valuesByName.get(variable.name) ?? /* @__PURE__ */ new Set();
36
+ for (const value of variable.values) {
37
+ values.add(value);
38
+ }
39
+ valuesByName.set(variable.name, values);
40
+ }
41
+ return [...valuesByName].map(([name, values]) => ({ name, values: [...values].sort() }));
42
+ };
43
+ const resolveVariableValues = (variable, claims) => {
44
+ const values = new Set(variable.values ?? []);
45
+ if (variable.from) {
46
+ const allow = variable.allow ? new Set(variable.allow) : null;
47
+ for (const raw of extractClaimValues(variable.from, claims)) {
48
+ const mapped = variable.map && Object.prototype.hasOwnProperty.call(variable.map, raw) ? variable.map[raw] : variable.passthrough ? [raw] : [];
49
+ for (const value of mapped) {
50
+ if (!allow || allow.has(value)) {
51
+ values.add(value);
52
+ }
53
+ }
54
+ }
55
+ }
56
+ return [...values];
57
+ };
58
+ const extractClaimValues = (source, claims) => {
59
+ const resolved = resolvePath(claims, source.claim);
60
+ const items = Array.isArray(resolved) ? resolved : [resolved];
61
+ const out = [];
62
+ for (const item of items) {
63
+ let value = item;
64
+ if (source.where !== void 0 || source.pick !== void 0) {
65
+ if (!isRecord(item)) {
66
+ continue;
67
+ }
68
+ if (source.where && !scalarEquals(resolvePath(item, source.where.field), source.where.equals)) {
69
+ continue;
70
+ }
71
+ value = source.pick !== void 0 ? resolvePath(item, source.pick) : void 0;
72
+ }
73
+ if (typeof value === "string" && source.split !== void 0) {
74
+ for (const part of value.split(source.split)) {
75
+ const trimmed = part.trim();
76
+ if (trimmed.length > 0) {
77
+ out.push(trimmed);
78
+ }
79
+ }
80
+ continue;
81
+ }
82
+ const scalar = coerceToString(value);
83
+ if (scalar !== null) {
84
+ out.push(scalar);
85
+ }
86
+ }
87
+ return [...new Set(out)];
88
+ };
89
+ const resolvePath = (root, path) => {
90
+ if (isRecord(root) && Object.prototype.hasOwnProperty.call(root, path)) {
91
+ return root[path];
92
+ }
93
+ let current = root;
94
+ for (const key of path.split(".")) {
95
+ if (!isRecord(current) || !Object.prototype.hasOwnProperty.call(current, key)) {
96
+ return void 0;
97
+ }
98
+ current = current[key];
99
+ }
100
+ return current;
101
+ };
102
+ const coerceToString = (value) => {
103
+ if (typeof value === "string") {
104
+ return value;
105
+ }
106
+ if (typeof value === "number" && Number.isFinite(value)) {
107
+ return String(value);
108
+ }
109
+ return null;
110
+ };
111
+ const ruleMatches = (rule, claimValue) => {
112
+ if (rule.equals !== void 0) {
113
+ return matchEquals(claimValue, rule.equals);
114
+ }
115
+ if (rule.contains !== void 0) {
116
+ return matchContains(claimValue, rule.contains);
117
+ }
118
+ if (claimValue === void 0 || claimValue === null || claimValue === false || claimValue === "") {
119
+ return false;
120
+ }
121
+ if (Array.isArray(claimValue)) {
122
+ return claimValue.length > 0;
123
+ }
124
+ return true;
125
+ };
126
+ const matchEquals = (claimValue, expected) => {
127
+ if (Array.isArray(claimValue)) {
128
+ return claimValue.some((it) => scalarEquals(it, expected));
129
+ }
130
+ return scalarEquals(claimValue, expected);
131
+ };
132
+ const matchContains = (claimValue, needle) => {
133
+ if (needle === "") {
134
+ return false;
135
+ }
136
+ if (Array.isArray(claimValue)) {
137
+ return claimValue.some((it) => scalarEquals(it, needle));
138
+ }
139
+ if (typeof claimValue === "string" && typeof needle === "string") {
140
+ return claimValue.includes(needle);
141
+ }
142
+ return scalarEquals(claimValue, needle);
143
+ };
144
+ const scalarEquals = (value, expected) => {
145
+ if (typeof value === "string" || typeof value === "number" || typeof value === "boolean" || value === null) {
146
+ return value === expected;
147
+ }
148
+ return false;
149
+ };
150
+ export {
151
+ evaluateClaimMapping,
152
+ extractClaimValues,
153
+ resolveVariableValues
154
+ };
155
+ //# sourceMappingURL=ClaimMappingEvaluator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClaimMappingEvaluator.js","sources":["../../../../../../../packages/engine-tenant-api/src/model/service/idp/ClaimMappingEvaluator.ts"],"sourcesContent":["import { ClaimMapping, ClaimMappingMembership, ClaimMappingRule, ClaimMappingVariable, ClaimValueSource, isRecord } from './ClaimMapping.js'\n\nexport type MappedMembership = {\n\treadonly project: string\n\treadonly role: string\n\treadonly variables: readonly { readonly name: string; readonly values: readonly string[] }[]\n}\n\n/**\n * Evaluate every rule of a claim mapping against the claims of an IdP response and collect the union\n * of granted project memberships (keyed implicitly by (project, role)). Pure: no DB, no side effects —\n * the caller decides how to apply the result (and whether to add-only or replace, per `unmatched`).\n */\nexport const evaluateClaimMapping = (mapping: ClaimMapping, claims: Record<string, unknown>): MappedMembership[] => {\n\tconst membershipByKey = new Map<string, MappedMembership>()\n\n\tfor (const rule of mapping.rules) {\n\t\tif (!ruleMatches(rule, resolvePath(claims, rule.claim))) {\n\t\t\tcontinue\n\t\t}\n\t\tif (rule.grantMembership) {\n\t\t\tconst membership = toMembership(rule.grantMembership, claims)\n\t\t\t// JSON-encode the (project, role) pair so the dedup key can't collide on a delimiter that a\n\t\t\t// slug could itself contain (a plain `${project}::${role}` would fold `a::b`/`c` into `a`/`b::c`).\n\t\t\tconst key = JSON.stringify([membership.project, membership.role])\n\t\t\tconst existing = membershipByKey.get(key)\n\t\t\tmembershipByKey.set(key, existing ? mergeMembershipVariables(existing, membership) : membership)\n\t\t}\n\t}\n\n\treturn [...membershipByKey.values()]\n}\n\nconst toMembership = (membership: ClaimMappingMembership, claims: Record<string, unknown>): MappedMembership => ({\n\tproject: membership.project,\n\trole: membership.role,\n\t// Union by name so a single grant that lists the same variable twice (e.g. two `locale` entries)\n\t// combines their values into one entry, rather than emitting duplicate entries that would later race\n\t// and clobber each other when each is written as a full-replace of the same (membership, variable).\n\tvariables: unionVariablesByName(\n\t\t(membership.variables ?? []).map(variable => ({ name: variable.name, values: resolveVariableValues(variable, claims) })),\n\t),\n})\n\n/**\n * Merge two grants of the same (project, role) by unioning their membership variables per name — so\n * several matching rules granting the same membership combine their variables (consistent with how\n * global roles union), rather than the last rule silently overwriting the variables of the earlier ones.\n */\nconst mergeMembershipVariables = (a: MappedMembership, b: MappedMembership): MappedMembership => ({\n\tproject: a.project,\n\trole: a.role,\n\tvariables: unionVariablesByName([...a.variables, ...b.variables]),\n})\n\n/**\n * Union a list of membership variables by name: several entries for the same variable name — whether from\n * one grant listing it twice or from several rules granting the same membership — combine their values into\n * a single entry. Values are de-duplicated and SORTED so the result is canonical: the same effective grant\n * always yields the same value array regardless of claim/rule order. That keeps the persisted JSON stable\n * (no redundant rewrite when an IdP returns a multi-valued claim in a different order across sign-ins) and\n * the audit delta order-insensitive. Variable entries keep first-seen order.\n */\nconst unionVariablesByName = (\n\tvariables: readonly { readonly name: string; readonly values: readonly string[] }[],\n): { name: string; values: string[] }[] => {\n\tconst valuesByName = new Map<string, Set<string>>()\n\tfor (const variable of variables) {\n\t\tconst values = valuesByName.get(variable.name) ?? new Set<string>()\n\t\tfor (const value of variable.values) {\n\t\t\tvalues.add(value)\n\t\t}\n\t\tvaluesByName.set(variable.name, values)\n\t}\n\treturn [...valuesByName].map(([name, values]) => ({ name, values: [...values].sort() }))\n}\n\n/**\n * Resolve a membership variable to its final string values: constant `values` (always kept) unioned\n * with values derived from `from` (extracted from the claims, then mapped / passed through / allow-\n * filtered). Pure; an empty result simply means the variable is not applied — `IDPClaimSyncService`\n * drops empty-valued variables so an empty `set` never soft-deletes the membership.\n */\nexport const resolveVariableValues = (variable: ClaimMappingVariable, claims: Record<string, unknown>): string[] => {\n\tconst values = new Set<string>(variable.values ?? [])\n\tif (variable.from) {\n\t\tconst allow = variable.allow ? new Set(variable.allow) : null\n\t\tfor (const raw of extractClaimValues(variable.from, claims)) {\n\t\t\t// `raw` is an external claim value used as a `map` key — look it up as an OWN property only.\n\t\t\t// A plain `map?.[raw]` would let a hostile claim like `__proto__` / `constructor` resolve to an\n\t\t\t// inherited prototype member (a non-array object/function), which then slips past `?? []` and\n\t\t\t// throws `not iterable` in the loop below — aborting the sign-in transaction.\n\t\t\tconst mapped = variable.map && Object.prototype.hasOwnProperty.call(variable.map, raw)\n\t\t\t\t? variable.map[raw]\n\t\t\t\t: (variable.passthrough ? [raw] : [])\n\t\t\tfor (const value of mapped) {\n\t\t\t\tif (!allow || allow.has(value)) {\n\t\t\t\t\tvalues.add(value)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn [...values]\n}\n\n/**\n * Extract a flat, de-duplicated list of string values from a single claim per a {@link ClaimValueSource}:\n * resolves the (possibly nested) claim, normalises scalar/array, optionally filters + projects an\n * array of objects (`where` / `pick`), and optionally splits a delimited string (`split`). Non-scalar\n * leaves (objects, null/undefined) are skipped; finite numbers are coerced to their string form.\n */\nexport const extractClaimValues = (source: ClaimValueSource, claims: Record<string, unknown>): string[] => {\n\tconst resolved = resolvePath(claims, source.claim)\n\tconst items: unknown[] = Array.isArray(resolved) ? resolved : [resolved]\n\tconst out: string[] = []\n\tfor (const item of items) {\n\t\tlet value: unknown = item\n\t\tif (source.where !== undefined || source.pick !== undefined) {\n\t\t\tif (!isRecord(item)) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif (source.where && !scalarEquals(resolvePath(item, source.where.field), source.where.equals)) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tvalue = source.pick !== undefined ? resolvePath(item, source.pick) : undefined\n\t\t}\n\t\tif (typeof value === 'string' && source.split !== undefined) {\n\t\t\tfor (const part of value.split(source.split)) {\n\t\t\t\tconst trimmed = part.trim()\n\t\t\t\tif (trimmed.length > 0) {\n\t\t\t\t\tout.push(trimmed)\n\t\t\t\t}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tconst scalar = coerceToString(value)\n\t\tif (scalar !== null) {\n\t\t\tout.push(scalar)\n\t\t}\n\t}\n\treturn [...new Set(out)]\n}\n\n/**\n * Resolve a claim name — a rule's `claim` and a variable's `from.claim` / `pick` / `where.field` all\n * use this same lookup. The EXACT name is tried first, so a claim whose name literally contains dots\n * (URL-namespaced, e.g. Auth0's `https://example.com/roles`) stays addressable and wins over a nested\n * path of the same spelling; only then is the name treated as a dot-path into nested objects\n * (`realm_access.roles`). Own-property only at every step: never descend into inherited members, so a\n * claim object can't surface `Object.prototype` via a `__proto__` segment (and a configured path can't\n * read a prototype member).\n */\nconst resolvePath = (root: unknown, path: string): unknown => {\n\tif (isRecord(root) && Object.prototype.hasOwnProperty.call(root, path)) {\n\t\treturn root[path]\n\t}\n\tlet current: unknown = root\n\tfor (const key of path.split('.')) {\n\t\tif (!isRecord(current) || !Object.prototype.hasOwnProperty.call(current, key)) {\n\t\t\treturn undefined\n\t\t}\n\t\tcurrent = current[key]\n\t}\n\treturn current\n}\n\nconst coerceToString = (value: unknown): string | null => {\n\tif (typeof value === 'string') {\n\t\treturn value\n\t}\n\tif (typeof value === 'number' && Number.isFinite(value)) {\n\t\treturn String(value)\n\t}\n\treturn null\n}\n\nconst ruleMatches = (rule: ClaimMappingRule, claimValue: unknown): boolean => {\n\tif (rule.equals !== undefined) {\n\t\treturn matchEquals(claimValue, rule.equals)\n\t}\n\tif (rule.contains !== undefined) {\n\t\treturn matchContains(claimValue, rule.contains)\n\t}\n\t// No condition: match on mere PRESENCE of a non-empty value. Treated as absent: `undefined` / `null`\n\t// (claim not present), the boolean `false` (a `groups`-style flag only grants when truthy), an empty\n\t// array (e.g. `groups: []` — the user is in no group), and an empty string. \"Presence\" therefore means\n\t// the claim actually carries a value, not merely that the field exists but is empty.\n\tif (claimValue === undefined || claimValue === null || claimValue === false || claimValue === '') {\n\t\treturn false\n\t}\n\tif (Array.isArray(claimValue)) {\n\t\treturn claimValue.length > 0\n\t}\n\treturn true\n}\n\nconst matchEquals = (claimValue: unknown, expected: string | number | boolean | null): boolean => {\n\tif (Array.isArray(claimValue)) {\n\t\treturn claimValue.some(it => scalarEquals(it, expected))\n\t}\n\treturn scalarEquals(claimValue, expected)\n}\n\nconst matchContains = (claimValue: unknown, needle: string | number | boolean | null): boolean => {\n\t// An empty-string needle would substring-match EVERY string claim (`s.includes('') === true`) — a\n\t// match-everyone grant to every user of the IdP. Config-time validation rejects it, but a config planted\n\t// out-of-band (a direct `identity_provider.configuration` JSONB edit) bypasses that guard; refuse it here\n\t// too so the evaluator never honours a degenerate match-everyone rule, regardless of how it arrived (SEC-1).\n\tif (needle === '') {\n\t\treturn false\n\t}\n\tif (Array.isArray(claimValue)) {\n\t\treturn claimValue.some(it => scalarEquals(it, needle))\n\t}\n\tif (typeof claimValue === 'string' && typeof needle === 'string') {\n\t\treturn claimValue.includes(needle)\n\t}\n\treturn scalarEquals(claimValue, needle)\n}\n\nconst scalarEquals = (value: unknown, expected: string | number | boolean | null): boolean => {\n\tif (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean' || value === null) {\n\t\treturn value === expected\n\t}\n\treturn false\n}\n"],"names":[],"mappings":";AAaO,MAAM,uBAAuB,CAAC,SAAuB,WAAwD;AACnH,QAAM,sCAAsB,IAAA;AAE5B,aAAW,QAAQ,QAAQ,OAAO;AACjC,QAAI,CAAC,YAAY,MAAM,YAAY,QAAQ,KAAK,KAAK,CAAC,GAAG;AACxD;AAAA,IACD;AACA,QAAI,KAAK,iBAAiB;AACzB,YAAM,aAAa,aAAa,KAAK,iBAAiB,MAAM;AAG5D,YAAM,MAAM,KAAK,UAAU,CAAC,WAAW,SAAS,WAAW,IAAI,CAAC;AAChE,YAAM,WAAW,gBAAgB,IAAI,GAAG;AACxC,sBAAgB,IAAI,KAAK,WAAW,yBAAyB,UAAU,UAAU,IAAI,UAAU;AAAA,IAChG;AAAA,EACD;AAEA,SAAO,CAAC,GAAG,gBAAgB,QAAQ;AACpC;AAEA,MAAM,eAAe,CAAC,YAAoC,YAAuD;AAAA,EAChH,SAAS,WAAW;AAAA,EACpB,MAAM,WAAW;AAAA;AAAA;AAAA;AAAA,EAIjB,WAAW;AAAA,KACT,WAAW,aAAa,CAAA,GAAI,IAAI,CAAA,cAAa,EAAE,MAAM,SAAS,MAAM,QAAQ,sBAAsB,UAAU,MAAM,IAAI;AAAA,EAAA;AAEzH;AAOA,MAAM,2BAA2B,CAAC,GAAqB,OAA2C;AAAA,EACjG,SAAS,EAAE;AAAA,EACX,MAAM,EAAE;AAAA,EACR,WAAW,qBAAqB,CAAC,GAAG,EAAE,WAAW,GAAG,EAAE,SAAS,CAAC;AACjE;AAUA,MAAM,uBAAuB,CAC5B,cAC0C;AAC1C,QAAM,mCAAmB,IAAA;AACzB,aAAW,YAAY,WAAW;AACjC,UAAM,SAAS,aAAa,IAAI,SAAS,IAAI,yBAAS,IAAA;AACtD,eAAW,SAAS,SAAS,QAAQ;AACpC,aAAO,IAAI,KAAK;AAAA,IACjB;AACA,iBAAa,IAAI,SAAS,MAAM,MAAM;AAAA,EACvC;AACA,SAAO,CAAC,GAAG,YAAY,EAAE,IAAI,CAAC,CAAC,MAAM,MAAM,OAAO,EAAE,MAAM,QAAQ,CAAC,GAAG,MAAM,EAAE,KAAA,IAAS;AACxF;AAQO,MAAM,wBAAwB,CAAC,UAAgC,WAA8C;AACnH,QAAM,SAAS,IAAI,IAAY,SAAS,UAAU,CAAA,CAAE;AACpD,MAAI,SAAS,MAAM;AAClB,UAAM,QAAQ,SAAS,QAAQ,IAAI,IAAI,SAAS,KAAK,IAAI;AACzD,eAAW,OAAO,mBAAmB,SAAS,MAAM,MAAM,GAAG;AAK5D,YAAM,SAAS,SAAS,OAAO,OAAO,UAAU,eAAe,KAAK,SAAS,KAAK,GAAG,IAClF,SAAS,IAAI,GAAG,IACf,SAAS,cAAc,CAAC,GAAG,IAAI,CAAA;AACnC,iBAAW,SAAS,QAAQ;AAC3B,YAAI,CAAC,SAAS,MAAM,IAAI,KAAK,GAAG;AAC/B,iBAAO,IAAI,KAAK;AAAA,QACjB;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACA,SAAO,CAAC,GAAG,MAAM;AAClB;AAQO,MAAM,qBAAqB,CAAC,QAA0B,WAA8C;AAC1G,QAAM,WAAW,YAAY,QAAQ,OAAO,KAAK;AACjD,QAAM,QAAmB,MAAM,QAAQ,QAAQ,IAAI,WAAW,CAAC,QAAQ;AACvE,QAAM,MAAgB,CAAA;AACtB,aAAW,QAAQ,OAAO;AACzB,QAAI,QAAiB;AACrB,QAAI,OAAO,UAAU,UAAa,OAAO,SAAS,QAAW;AAC5D,UAAI,CAAC,SAAS,IAAI,GAAG;AACpB;AAAA,MACD;AACA,UAAI,OAAO,SAAS,CAAC,aAAa,YAAY,MAAM,OAAO,MAAM,KAAK,GAAG,OAAO,MAAM,MAAM,GAAG;AAC9F;AAAA,MACD;AACA,cAAQ,OAAO,SAAS,SAAY,YAAY,MAAM,OAAO,IAAI,IAAI;AAAA,IACtE;AACA,QAAI,OAAO,UAAU,YAAY,OAAO,UAAU,QAAW;AAC5D,iBAAW,QAAQ,MAAM,MAAM,OAAO,KAAK,GAAG;AAC7C,cAAM,UAAU,KAAK,KAAA;AACrB,YAAI,QAAQ,SAAS,GAAG;AACvB,cAAI,KAAK,OAAO;AAAA,QACjB;AAAA,MACD;AACA;AAAA,IACD;AACA,UAAM,SAAS,eAAe,KAAK;AACnC,QAAI,WAAW,MAAM;AACpB,UAAI,KAAK,MAAM;AAAA,IAChB;AAAA,EACD;AACA,SAAO,CAAC,GAAG,IAAI,IAAI,GAAG,CAAC;AACxB;AAWA,MAAM,cAAc,CAAC,MAAe,SAA0B;AAC7D,MAAI,SAAS,IAAI,KAAK,OAAO,UAAU,eAAe,KAAK,MAAM,IAAI,GAAG;AACvE,WAAO,KAAK,IAAI;AAAA,EACjB;AACA,MAAI,UAAmB;AACvB,aAAW,OAAO,KAAK,MAAM,GAAG,GAAG;AAClC,QAAI,CAAC,SAAS,OAAO,KAAK,CAAC,OAAO,UAAU,eAAe,KAAK,SAAS,GAAG,GAAG;AAC9E,aAAO;AAAA,IACR;AACA,cAAU,QAAQ,GAAG;AAAA,EACtB;AACA,SAAO;AACR;AAEA,MAAM,iBAAiB,CAAC,UAAkC;AACzD,MAAI,OAAO,UAAU,UAAU;AAC9B,WAAO;AAAA,EACR;AACA,MAAI,OAAO,UAAU,YAAY,OAAO,SAAS,KAAK,GAAG;AACxD,WAAO,OAAO,KAAK;AAAA,EACpB;AACA,SAAO;AACR;AAEA,MAAM,cAAc,CAAC,MAAwB,eAAiC;AAC7E,MAAI,KAAK,WAAW,QAAW;AAC9B,WAAO,YAAY,YAAY,KAAK,MAAM;AAAA,EAC3C;AACA,MAAI,KAAK,aAAa,QAAW;AAChC,WAAO,cAAc,YAAY,KAAK,QAAQ;AAAA,EAC/C;AAKA,MAAI,eAAe,UAAa,eAAe,QAAQ,eAAe,SAAS,eAAe,IAAI;AACjG,WAAO;AAAA,EACR;AACA,MAAI,MAAM,QAAQ,UAAU,GAAG;AAC9B,WAAO,WAAW,SAAS;AAAA,EAC5B;AACA,SAAO;AACR;AAEA,MAAM,cAAc,CAAC,YAAqB,aAAwD;AACjG,MAAI,MAAM,QAAQ,UAAU,GAAG;AAC9B,WAAO,WAAW,KAAK,CAAA,OAAM,aAAa,IAAI,QAAQ,CAAC;AAAA,EACxD;AACA,SAAO,aAAa,YAAY,QAAQ;AACzC;AAEA,MAAM,gBAAgB,CAAC,YAAqB,WAAsD;AAKjG,MAAI,WAAW,IAAI;AAClB,WAAO;AAAA,EACR;AACA,MAAI,MAAM,QAAQ,UAAU,GAAG;AAC9B,WAAO,WAAW,KAAK,CAAA,OAAM,aAAa,IAAI,MAAM,CAAC;AAAA,EACtD;AACA,MAAI,OAAO,eAAe,YAAY,OAAO,WAAW,UAAU;AACjE,WAAO,WAAW,SAAS,MAAM;AAAA,EAClC;AACA,SAAO,aAAa,YAAY,MAAM;AACvC;AAEA,MAAM,eAAe,CAAC,OAAgB,aAAwD;AAC7F,MAAI,OAAO,UAAU,YAAY,OAAO,UAAU,YAAY,OAAO,UAAU,aAAa,UAAU,MAAM;AAC3G,WAAO,UAAU;AAAA,EAClB;AACA,SAAO;AACR;"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const schema = require("@contember/schema");
4
+ const schemaUtils = require("@contember/schema-utils");
5
+ var ClaimMappingMembershipErrorType = /* @__PURE__ */ ((ClaimMappingMembershipErrorType2) => {
6
+ ClaimMappingMembershipErrorType2["roleNotFound"] = "roleNotFound";
7
+ ClaimMappingMembershipErrorType2["variableNotFound"] = "variableNotFound";
8
+ ClaimMappingMembershipErrorType2["predefinedVariable"] = "predefinedVariable";
9
+ ClaimMappingMembershipErrorType2["conditionInjection"] = "conditionInjection";
10
+ ClaimMappingMembershipErrorType2["conditionValueInvalid"] = "conditionValueInvalid";
11
+ return ClaimMappingMembershipErrorType2;
12
+ })(ClaimMappingMembershipErrorType || {});
13
+ const validateClaimMappingMembership = (acl, membership) => {
14
+ const errors = [];
15
+ const roleExists = Object.prototype.hasOwnProperty.call(acl.roles, membership.role);
16
+ const roleVariables = roleExists ? schemaUtils.getRoleVariables(membership.role, acl) : {};
17
+ if (roleExists) {
18
+ for (const variable of membership.variables ?? []) {
19
+ const aclVariable = Object.prototype.hasOwnProperty.call(roleVariables, variable.name) ? roleVariables[variable.name] : void 0;
20
+ if (aclVariable?.type === schema.Acl.VariableType.condition && variable.from !== void 0 && (variable.passthrough === true || variable.allow === void 0)) {
21
+ errors.push({
22
+ type: "conditionInjection",
23
+ message: `claimMapping variable '${variable.name}' of role '${membership.role}' is a condition variable: a claim-derived value is interpreted as a row-level ACL condition, so it must be constrained by an 'allow' allowlist and must not use 'passthrough'`
24
+ });
25
+ }
26
+ }
27
+ }
28
+ const resolverMembership = {
29
+ role: membership.role,
30
+ variables: (membership.variables ?? []).map((variable) => ({ name: variable.name, values: staticVariableValues(variable) }))
31
+ };
32
+ const result = new schemaUtils.MembershipResolver().resolve(acl, [resolverMembership], schemaUtils.MembershipResolver.UnknownIdentity, false);
33
+ for (const error of result.errors) {
34
+ const translated = translateResolverError(error.error, membership, error.variable, roleVariables);
35
+ if (translated) {
36
+ errors.push(translated);
37
+ }
38
+ }
39
+ return errors;
40
+ };
41
+ const staticVariableValues = (variable) => [
42
+ .../* @__PURE__ */ new Set([
43
+ ...variable.values ?? [],
44
+ ...Object.values(variable.map ?? {}).flat(),
45
+ ...variable.allow ?? []
46
+ ])
47
+ ];
48
+ const translateResolverError = (type, membership, variableName, roleVariables) => {
49
+ const aclVariable = variableName && Object.prototype.hasOwnProperty.call(roleVariables, variableName) ? roleVariables[variableName] : void 0;
50
+ switch (type) {
51
+ case schemaUtils.MembershipValidationErrorType.ROLE_NOT_FOUND:
52
+ return {
53
+ type: "roleNotFound",
54
+ message: `claimMapping grants role '${membership.role}' which is not defined in the ACL of project '${membership.project}'`
55
+ };
56
+ case schemaUtils.MembershipValidationErrorType.VARIABLE_NOT_FOUND:
57
+ if (aclVariable?.type === schema.Acl.VariableType.predefined) {
58
+ return {
59
+ type: "predefinedVariable",
60
+ message: `claimMapping cannot set the predefined variable '${variableName}' of role '${membership.role}'`
61
+ };
62
+ }
63
+ return {
64
+ type: "variableNotFound",
65
+ message: `claimMapping sets variable '${variableName}' which is not defined for role '${membership.role}' in project '${membership.project}'`
66
+ };
67
+ case schemaUtils.MembershipValidationErrorType.VARIABLE_INVALID:
68
+ if (aclVariable?.type === schema.Acl.VariableType.predefined) {
69
+ return null;
70
+ }
71
+ return {
72
+ type: "conditionValueInvalid",
73
+ message: `claimMapping variable '${variableName}' of role '${membership.role}' is a condition variable, but a configured value (a constant, a 'map' output, or an 'allow' entry) is not a valid condition`
74
+ };
75
+ case schemaUtils.MembershipValidationErrorType.VARIABLE_EMPTY:
76
+ return null;
77
+ default:
78
+ return null;
79
+ }
80
+ };
81
+ exports.ClaimMappingMembershipErrorType = ClaimMappingMembershipErrorType;
82
+ exports.validateClaimMappingMembership = validateClaimMappingMembership;
83
+ //# sourceMappingURL=ClaimMappingValidation.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClaimMappingValidation.cjs","sources":["../../../../../../../packages/engine-tenant-api/src/model/service/idp/ClaimMappingValidation.ts"],"sourcesContent":["import { Acl } from '@contember/schema'\nimport { getRoleVariables, MembershipResolver, MembershipValidationErrorType } from '@contember/schema-utils'\nimport { ClaimMappingMembership, ClaimMappingVariable } from './ClaimMapping.js'\n\n/**\n * Why a granted membership in an A09 claim mapping is invalid against a project's live ACL schema.\n * Shared by config-time validation ({@link validateClaimMappingMembership} via\n * `IDPManager.assertValidClaimMapping`, which rejects the whole IdP config) and the apply-time backstop\n * (`IDPClaimSyncService`, which drops the unsafe grant), so the per-membership ACL validation can never\n * drift between the two. NOTE this shared check is ONLY the per-membership ACL validation; the rule-shape\n * checks (`findClaimMappingShapeErrors`) and the removed-key check (`findRemovedRuleKeys`, e.g. `grantRoles`)\n * run at config time only — the apply-time backstop deliberately re-checks just the ACL safety of each\n * grant, not the mapping's overall shape (a malformed shape can only arrive via an out-of-band JSONB edit\n * that bypassed config validation; `evaluateClaimMapping` then honours whatever shape it finds).\n */\nexport enum ClaimMappingMembershipErrorType {\n\t/** The granted role is not defined in the project ACL. */\n\troleNotFound = 'roleNotFound',\n\t/** A membership variable is not defined for the granted role. */\n\tvariableNotFound = 'variableNotFound',\n\t/** A predefined variable (identityID / personID) cannot be set — the runtime binds it to the signed-in identity. */\n\tpredefinedVariable = 'predefinedVariable',\n\t/**\n\t * A claim-derived (`from`) value would be written into a `condition` ACL variable without being bounded\n\t * by an `allow` allowlist (or with `passthrough`). A condition variable's stored value is parsed as a\n\t * row-level ACL condition at every content request, so this is an arbitrary-condition injection vector.\n\t */\n\tconditionInjection = 'conditionInjection',\n\t/** A configured value targeting a `condition` variable is not a parseable ACL condition (it would deny at content time). */\n\tconditionValueInvalid = 'conditionValueInvalid',\n}\n\nexport interface ClaimMappingMembershipError {\n\treadonly type: ClaimMappingMembershipErrorType\n\treadonly message: string\n}\n\n/**\n * Validate one A09 granted membership against a project's live ACL schema.\n *\n * The shared membership-shape checks (role exists, each set variable is defined for the role, a\n * predefined variable cannot be set, a `condition` variable's stored value parses as an ACL condition)\n * are DELEGATED to the very {@link MembershipResolver} the direct add-member path uses — so the IdP path\n * cannot drift from it. Only the resolver's `VARIABLE_EMPTY` is excluded: A09 grants are *partial* (a\n * rule sets only some of a role's variables), which is legitimate here but `VARIABLE_EMPTY` to the\n * resolver. On top of the shared checks A09 adds one claim-aware guard the resolver cannot know about —\n * the condition-injection guard (a claim-derived value must not flow unbounded into a `condition`\n * variable). See {@link ClaimMappingMembershipErrorType}.\n *\n * Returns every problem found (empty array = valid). The caller decides the consequence: config-time\n * validation throws on the first error (rejecting the whole IdP config), while the apply-time backstop\n * (`IDPClaimSyncService`) drops any grant that produces an error.\n *\n * Role / variable lookups are own-property only, so a name like `constructor` / `toString` cannot\n * resolve to an inherited Object.prototype member and pass as defined (the resolver and\n * `getRoleVariables` are likewise own-property guarded).\n */\nexport const validateClaimMappingMembership = (acl: Acl.Schema, membership: ClaimMappingMembership): ClaimMappingMembershipError[] => {\n\tconst errors: ClaimMappingMembershipError[] = []\n\tconst roleExists = Object.prototype.hasOwnProperty.call(acl.roles, membership.role)\n\tconst roleVariables = roleExists ? getRoleVariables(membership.role, acl) : {}\n\n\t// A09-specific, claim-aware injection guard — MembershipResolver does not see `from`/`passthrough`/\n\t// `allow`. For a `condition` ACL variable, a claim-derived value is interpreted as a row-level ACL\n\t// condition on every content request, so it must be bounded by an explicit `allow` allowlist and must\n\t// not use `passthrough`. Constant `values` are configurer-controlled (their shape is validated by the\n\t// resolver below). Only checkable when the role resolves; an unknown role is reported as roleNotFound.\n\tif (roleExists) {\n\t\tfor (const variable of membership.variables ?? []) {\n\t\t\tconst aclVariable = Object.prototype.hasOwnProperty.call(roleVariables, variable.name) ? roleVariables[variable.name] : undefined\n\t\t\tif (\n\t\t\t\taclVariable?.type === Acl.VariableType.condition && variable.from !== undefined && (variable.passthrough === true || variable.allow === undefined)\n\t\t\t) {\n\t\t\t\terrors.push({\n\t\t\t\t\ttype: ClaimMappingMembershipErrorType.conditionInjection,\n\t\t\t\t\tmessage:\n\t\t\t\t\t\t`claimMapping variable '${variable.name}' of role '${membership.role}' is a condition variable: a claim-derived value is interpreted as a row-level ACL condition, so it must be constrained by an 'allow' allowlist and must not use 'passthrough'`,\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\n\t// Shared shape checks — delegate to MembershipResolver over the configurer-authored STATIC values the\n\t// mapping can deposit into each variable (constants + every `map` output + the `allow` allowlist), so a\n\t// malformed condition in ANY of them is rejected here rather than silently denying (`{ never: true }`)\n\t// on every content request once granted. Raw claim-derived values are unknown at validation time and\n\t// are bounded separately by the injection guard above.\n\tconst resolverMembership: Acl.Membership = {\n\t\trole: membership.role,\n\t\tvariables: (membership.variables ?? []).map(variable => ({ name: variable.name, values: staticVariableValues(variable) })),\n\t}\n\tconst result = new MembershipResolver().resolve(acl, [resolverMembership], MembershipResolver.UnknownIdentity, false)\n\tfor (const error of result.errors) {\n\t\tconst translated = translateResolverError(error.error, membership, error.variable, roleVariables)\n\t\tif (translated) {\n\t\t\terrors.push(translated)\n\t\t}\n\t}\n\treturn errors\n}\n\n/**\n * Every configurer-authored value the mapping could store into a variable: constant `values`, every\n * `map` output, and the `allow` allowlist (raw claim values are excluded — unknown at validation time\n * and bounded by the injection guard). De-duplicated; fed to the resolver so each is shape-checked.\n */\nconst staticVariableValues = (variable: ClaimMappingVariable): string[] => [\n\t...new Set([\n\t\t...(variable.values ?? []),\n\t\t...Object.values(variable.map ?? {}).flat(),\n\t\t...(variable.allow ?? []),\n\t]),\n]\n\nconst translateResolverError = (\n\ttype: MembershipValidationErrorType,\n\tmembership: ClaimMappingMembership,\n\tvariableName: string | undefined,\n\troleVariables: Acl.Variables,\n): ClaimMappingMembershipError | null => {\n\tconst aclVariable = variableName && Object.prototype.hasOwnProperty.call(roleVariables, variableName) ? roleVariables[variableName] : undefined\n\tswitch (type) {\n\t\tcase MembershipValidationErrorType.ROLE_NOT_FOUND:\n\t\t\treturn {\n\t\t\t\ttype: ClaimMappingMembershipErrorType.roleNotFound,\n\t\t\t\tmessage: `claimMapping grants role '${membership.role}' which is not defined in the ACL of project '${membership.project}'`,\n\t\t\t}\n\t\tcase MembershipValidationErrorType.VARIABLE_NOT_FOUND:\n\t\t\t// The resolver reports a (forbidden) predefined variable as VARIABLE_NOT_FOUND when not assumed;\n\t\t\t// surface A09's clearer `predefinedVariable` message when that is the actual cause.\n\t\t\tif (aclVariable?.type === Acl.VariableType.predefined) {\n\t\t\t\treturn {\n\t\t\t\t\ttype: ClaimMappingMembershipErrorType.predefinedVariable,\n\t\t\t\t\tmessage: `claimMapping cannot set the predefined variable '${variableName}' of role '${membership.role}'`,\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\ttype: ClaimMappingMembershipErrorType.variableNotFound,\n\t\t\t\tmessage: `claimMapping sets variable '${variableName}' which is not defined for role '${membership.role}' in project '${membership.project}'`,\n\t\t\t}\n\t\tcase MembershipValidationErrorType.VARIABLE_INVALID:\n\t\t\t// A predefined variable can also raise VARIABLE_INVALID (its non-id value) — already reported as\n\t\t\t// predefinedVariable above, so don't double-report it as a bad condition value.\n\t\t\tif (aclVariable?.type === Acl.VariableType.predefined) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\treturn {\n\t\t\t\ttype: ClaimMappingMembershipErrorType.conditionValueInvalid,\n\t\t\t\tmessage:\n\t\t\t\t\t`claimMapping variable '${variableName}' of role '${membership.role}' is a condition variable, but a configured value (a constant, a 'map' output, or an 'allow' entry) is not a valid condition`,\n\t\t\t}\n\t\tcase MembershipValidationErrorType.VARIABLE_EMPTY:\n\t\t\t// A09 intentionally tolerates partial grants — a rule may set only some of a role's variables.\n\t\t\treturn null\n\t\tdefault:\n\t\t\treturn null\n\t}\n}\n"],"names":["ClaimMappingMembershipErrorType","getRoleVariables","Acl","MembershipResolver","MembershipValidationErrorType"],"mappings":";;;;AAeO,IAAK,oDAAAA,qCAAL;AAENA,mCAAA,cAAA,IAAe;AAEfA,mCAAA,kBAAA,IAAmB;AAEnBA,mCAAA,oBAAA,IAAqB;AAMrBA,mCAAA,oBAAA,IAAqB;AAErBA,mCAAA,uBAAA,IAAwB;AAdb,SAAAA;AAAA,GAAA,mCAAA,CAAA,CAAA;AA0CL,MAAM,iCAAiC,CAAC,KAAiB,eAAsE;AACrI,QAAM,SAAwC,CAAA;AAC9C,QAAM,aAAa,OAAO,UAAU,eAAe,KAAK,IAAI,OAAO,WAAW,IAAI;AAClF,QAAM,gBAAgB,aAAaC,YAAAA,iBAAiB,WAAW,MAAM,GAAG,IAAI,CAAA;AAO5E,MAAI,YAAY;AACf,eAAW,YAAY,WAAW,aAAa,CAAA,GAAI;AAClD,YAAM,cAAc,OAAO,UAAU,eAAe,KAAK,eAAe,SAAS,IAAI,IAAI,cAAc,SAAS,IAAI,IAAI;AACxH,UACC,aAAa,SAASC,OAAAA,IAAI,aAAa,aAAa,SAAS,SAAS,WAAc,SAAS,gBAAgB,QAAQ,SAAS,UAAU,SACvI;AACD,eAAO,KAAK;AAAA,UACX,MAAM;AAAA,UACN,SACC,0BAA0B,SAAS,IAAI,cAAc,WAAW,IAAI;AAAA,QAAA,CACrE;AAAA,MACF;AAAA,IACD;AAAA,EACD;AAOA,QAAM,qBAAqC;AAAA,IAC1C,MAAM,WAAW;AAAA,IACjB,YAAY,WAAW,aAAa,CAAA,GAAI,IAAI,CAAA,cAAa,EAAE,MAAM,SAAS,MAAM,QAAQ,qBAAqB,QAAQ,IAAI;AAAA,EAAA;AAE1H,QAAM,SAAS,IAAIC,+BAAA,EAAqB,QAAQ,KAAK,CAAC,kBAAkB,GAAGA,YAAAA,mBAAmB,iBAAiB,KAAK;AACpH,aAAW,SAAS,OAAO,QAAQ;AAClC,UAAM,aAAa,uBAAuB,MAAM,OAAO,YAAY,MAAM,UAAU,aAAa;AAChG,QAAI,YAAY;AACf,aAAO,KAAK,UAAU;AAAA,IACvB;AAAA,EACD;AACA,SAAO;AACR;AAOA,MAAM,uBAAuB,CAAC,aAA6C;AAAA,EAC1E,uBAAO,IAAI;AAAA,IACV,GAAI,SAAS,UAAU,CAAA;AAAA,IACvB,GAAG,OAAO,OAAO,SAAS,OAAO,CAAA,CAAE,EAAE,KAAA;AAAA,IACrC,GAAI,SAAS,SAAS,CAAA;AAAA,EAAC,CACvB;AACF;AAEA,MAAM,yBAAyB,CAC9B,MACA,YACA,cACA,kBACwC;AACxC,QAAM,cAAc,gBAAgB,OAAO,UAAU,eAAe,KAAK,eAAe,YAAY,IAAI,cAAc,YAAY,IAAI;AACtI,UAAQ,MAAA;AAAA,IACP,KAAKC,YAAAA,8BAA8B;AAClC,aAAO;AAAA,QACN,MAAM;AAAA,QACN,SAAS,6BAA6B,WAAW,IAAI,iDAAiD,WAAW,OAAO;AAAA,MAAA;AAAA,IAE1H,KAAKA,YAAAA,8BAA8B;AAGlC,UAAI,aAAa,SAASF,WAAI,aAAa,YAAY;AACtD,eAAO;AAAA,UACN,MAAM;AAAA,UACN,SAAS,oDAAoD,YAAY,cAAc,WAAW,IAAI;AAAA,QAAA;AAAA,MAExG;AACA,aAAO;AAAA,QACN,MAAM;AAAA,QACN,SAAS,+BAA+B,YAAY,oCAAoC,WAAW,IAAI,iBAAiB,WAAW,OAAO;AAAA,MAAA;AAAA,IAE5I,KAAKE,YAAAA,8BAA8B;AAGlC,UAAI,aAAa,SAASF,WAAI,aAAa,YAAY;AACtD,eAAO;AAAA,MACR;AACA,aAAO;AAAA,QACN,MAAM;AAAA,QACN,SACC,0BAA0B,YAAY,cAAc,WAAW,IAAI;AAAA,MAAA;AAAA,IAEtE,KAAKE,YAAAA,8BAA8B;AAElC,aAAO;AAAA,IACR;AACC,aAAO;AAAA,EAAA;AAEV;;;"}
@@ -0,0 +1,83 @@
1
+ import { Acl } from "@contember/schema";
2
+ import { getRoleVariables, MembershipResolver, MembershipValidationErrorType } from "@contember/schema-utils";
3
+ var ClaimMappingMembershipErrorType = /* @__PURE__ */ ((ClaimMappingMembershipErrorType2) => {
4
+ ClaimMappingMembershipErrorType2["roleNotFound"] = "roleNotFound";
5
+ ClaimMappingMembershipErrorType2["variableNotFound"] = "variableNotFound";
6
+ ClaimMappingMembershipErrorType2["predefinedVariable"] = "predefinedVariable";
7
+ ClaimMappingMembershipErrorType2["conditionInjection"] = "conditionInjection";
8
+ ClaimMappingMembershipErrorType2["conditionValueInvalid"] = "conditionValueInvalid";
9
+ return ClaimMappingMembershipErrorType2;
10
+ })(ClaimMappingMembershipErrorType || {});
11
+ const validateClaimMappingMembership = (acl, membership) => {
12
+ const errors = [];
13
+ const roleExists = Object.prototype.hasOwnProperty.call(acl.roles, membership.role);
14
+ const roleVariables = roleExists ? getRoleVariables(membership.role, acl) : {};
15
+ if (roleExists) {
16
+ for (const variable of membership.variables ?? []) {
17
+ const aclVariable = Object.prototype.hasOwnProperty.call(roleVariables, variable.name) ? roleVariables[variable.name] : void 0;
18
+ if (aclVariable?.type === Acl.VariableType.condition && variable.from !== void 0 && (variable.passthrough === true || variable.allow === void 0)) {
19
+ errors.push({
20
+ type: "conditionInjection",
21
+ message: `claimMapping variable '${variable.name}' of role '${membership.role}' is a condition variable: a claim-derived value is interpreted as a row-level ACL condition, so it must be constrained by an 'allow' allowlist and must not use 'passthrough'`
22
+ });
23
+ }
24
+ }
25
+ }
26
+ const resolverMembership = {
27
+ role: membership.role,
28
+ variables: (membership.variables ?? []).map((variable) => ({ name: variable.name, values: staticVariableValues(variable) }))
29
+ };
30
+ const result = new MembershipResolver().resolve(acl, [resolverMembership], MembershipResolver.UnknownIdentity, false);
31
+ for (const error of result.errors) {
32
+ const translated = translateResolverError(error.error, membership, error.variable, roleVariables);
33
+ if (translated) {
34
+ errors.push(translated);
35
+ }
36
+ }
37
+ return errors;
38
+ };
39
+ const staticVariableValues = (variable) => [
40
+ .../* @__PURE__ */ new Set([
41
+ ...variable.values ?? [],
42
+ ...Object.values(variable.map ?? {}).flat(),
43
+ ...variable.allow ?? []
44
+ ])
45
+ ];
46
+ const translateResolverError = (type, membership, variableName, roleVariables) => {
47
+ const aclVariable = variableName && Object.prototype.hasOwnProperty.call(roleVariables, variableName) ? roleVariables[variableName] : void 0;
48
+ switch (type) {
49
+ case MembershipValidationErrorType.ROLE_NOT_FOUND:
50
+ return {
51
+ type: "roleNotFound",
52
+ message: `claimMapping grants role '${membership.role}' which is not defined in the ACL of project '${membership.project}'`
53
+ };
54
+ case MembershipValidationErrorType.VARIABLE_NOT_FOUND:
55
+ if (aclVariable?.type === Acl.VariableType.predefined) {
56
+ return {
57
+ type: "predefinedVariable",
58
+ message: `claimMapping cannot set the predefined variable '${variableName}' of role '${membership.role}'`
59
+ };
60
+ }
61
+ return {
62
+ type: "variableNotFound",
63
+ message: `claimMapping sets variable '${variableName}' which is not defined for role '${membership.role}' in project '${membership.project}'`
64
+ };
65
+ case MembershipValidationErrorType.VARIABLE_INVALID:
66
+ if (aclVariable?.type === Acl.VariableType.predefined) {
67
+ return null;
68
+ }
69
+ return {
70
+ type: "conditionValueInvalid",
71
+ message: `claimMapping variable '${variableName}' of role '${membership.role}' is a condition variable, but a configured value (a constant, a 'map' output, or an 'allow' entry) is not a valid condition`
72
+ };
73
+ case MembershipValidationErrorType.VARIABLE_EMPTY:
74
+ return null;
75
+ default:
76
+ return null;
77
+ }
78
+ };
79
+ export {
80
+ ClaimMappingMembershipErrorType,
81
+ validateClaimMappingMembership
82
+ };
83
+ //# sourceMappingURL=ClaimMappingValidation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClaimMappingValidation.js","sources":["../../../../../../../packages/engine-tenant-api/src/model/service/idp/ClaimMappingValidation.ts"],"sourcesContent":["import { Acl } from '@contember/schema'\nimport { getRoleVariables, MembershipResolver, MembershipValidationErrorType } from '@contember/schema-utils'\nimport { ClaimMappingMembership, ClaimMappingVariable } from './ClaimMapping.js'\n\n/**\n * Why a granted membership in an A09 claim mapping is invalid against a project's live ACL schema.\n * Shared by config-time validation ({@link validateClaimMappingMembership} via\n * `IDPManager.assertValidClaimMapping`, which rejects the whole IdP config) and the apply-time backstop\n * (`IDPClaimSyncService`, which drops the unsafe grant), so the per-membership ACL validation can never\n * drift between the two. NOTE this shared check is ONLY the per-membership ACL validation; the rule-shape\n * checks (`findClaimMappingShapeErrors`) and the removed-key check (`findRemovedRuleKeys`, e.g. `grantRoles`)\n * run at config time only — the apply-time backstop deliberately re-checks just the ACL safety of each\n * grant, not the mapping's overall shape (a malformed shape can only arrive via an out-of-band JSONB edit\n * that bypassed config validation; `evaluateClaimMapping` then honours whatever shape it finds).\n */\nexport enum ClaimMappingMembershipErrorType {\n\t/** The granted role is not defined in the project ACL. */\n\troleNotFound = 'roleNotFound',\n\t/** A membership variable is not defined for the granted role. */\n\tvariableNotFound = 'variableNotFound',\n\t/** A predefined variable (identityID / personID) cannot be set — the runtime binds it to the signed-in identity. */\n\tpredefinedVariable = 'predefinedVariable',\n\t/**\n\t * A claim-derived (`from`) value would be written into a `condition` ACL variable without being bounded\n\t * by an `allow` allowlist (or with `passthrough`). A condition variable's stored value is parsed as a\n\t * row-level ACL condition at every content request, so this is an arbitrary-condition injection vector.\n\t */\n\tconditionInjection = 'conditionInjection',\n\t/** A configured value targeting a `condition` variable is not a parseable ACL condition (it would deny at content time). */\n\tconditionValueInvalid = 'conditionValueInvalid',\n}\n\nexport interface ClaimMappingMembershipError {\n\treadonly type: ClaimMappingMembershipErrorType\n\treadonly message: string\n}\n\n/**\n * Validate one A09 granted membership against a project's live ACL schema.\n *\n * The shared membership-shape checks (role exists, each set variable is defined for the role, a\n * predefined variable cannot be set, a `condition` variable's stored value parses as an ACL condition)\n * are DELEGATED to the very {@link MembershipResolver} the direct add-member path uses — so the IdP path\n * cannot drift from it. Only the resolver's `VARIABLE_EMPTY` is excluded: A09 grants are *partial* (a\n * rule sets only some of a role's variables), which is legitimate here but `VARIABLE_EMPTY` to the\n * resolver. On top of the shared checks A09 adds one claim-aware guard the resolver cannot know about —\n * the condition-injection guard (a claim-derived value must not flow unbounded into a `condition`\n * variable). See {@link ClaimMappingMembershipErrorType}.\n *\n * Returns every problem found (empty array = valid). The caller decides the consequence: config-time\n * validation throws on the first error (rejecting the whole IdP config), while the apply-time backstop\n * (`IDPClaimSyncService`) drops any grant that produces an error.\n *\n * Role / variable lookups are own-property only, so a name like `constructor` / `toString` cannot\n * resolve to an inherited Object.prototype member and pass as defined (the resolver and\n * `getRoleVariables` are likewise own-property guarded).\n */\nexport const validateClaimMappingMembership = (acl: Acl.Schema, membership: ClaimMappingMembership): ClaimMappingMembershipError[] => {\n\tconst errors: ClaimMappingMembershipError[] = []\n\tconst roleExists = Object.prototype.hasOwnProperty.call(acl.roles, membership.role)\n\tconst roleVariables = roleExists ? getRoleVariables(membership.role, acl) : {}\n\n\t// A09-specific, claim-aware injection guard — MembershipResolver does not see `from`/`passthrough`/\n\t// `allow`. For a `condition` ACL variable, a claim-derived value is interpreted as a row-level ACL\n\t// condition on every content request, so it must be bounded by an explicit `allow` allowlist and must\n\t// not use `passthrough`. Constant `values` are configurer-controlled (their shape is validated by the\n\t// resolver below). Only checkable when the role resolves; an unknown role is reported as roleNotFound.\n\tif (roleExists) {\n\t\tfor (const variable of membership.variables ?? []) {\n\t\t\tconst aclVariable = Object.prototype.hasOwnProperty.call(roleVariables, variable.name) ? roleVariables[variable.name] : undefined\n\t\t\tif (\n\t\t\t\taclVariable?.type === Acl.VariableType.condition && variable.from !== undefined && (variable.passthrough === true || variable.allow === undefined)\n\t\t\t) {\n\t\t\t\terrors.push({\n\t\t\t\t\ttype: ClaimMappingMembershipErrorType.conditionInjection,\n\t\t\t\t\tmessage:\n\t\t\t\t\t\t`claimMapping variable '${variable.name}' of role '${membership.role}' is a condition variable: a claim-derived value is interpreted as a row-level ACL condition, so it must be constrained by an 'allow' allowlist and must not use 'passthrough'`,\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\n\t// Shared shape checks — delegate to MembershipResolver over the configurer-authored STATIC values the\n\t// mapping can deposit into each variable (constants + every `map` output + the `allow` allowlist), so a\n\t// malformed condition in ANY of them is rejected here rather than silently denying (`{ never: true }`)\n\t// on every content request once granted. Raw claim-derived values are unknown at validation time and\n\t// are bounded separately by the injection guard above.\n\tconst resolverMembership: Acl.Membership = {\n\t\trole: membership.role,\n\t\tvariables: (membership.variables ?? []).map(variable => ({ name: variable.name, values: staticVariableValues(variable) })),\n\t}\n\tconst result = new MembershipResolver().resolve(acl, [resolverMembership], MembershipResolver.UnknownIdentity, false)\n\tfor (const error of result.errors) {\n\t\tconst translated = translateResolverError(error.error, membership, error.variable, roleVariables)\n\t\tif (translated) {\n\t\t\terrors.push(translated)\n\t\t}\n\t}\n\treturn errors\n}\n\n/**\n * Every configurer-authored value the mapping could store into a variable: constant `values`, every\n * `map` output, and the `allow` allowlist (raw claim values are excluded — unknown at validation time\n * and bounded by the injection guard). De-duplicated; fed to the resolver so each is shape-checked.\n */\nconst staticVariableValues = (variable: ClaimMappingVariable): string[] => [\n\t...new Set([\n\t\t...(variable.values ?? []),\n\t\t...Object.values(variable.map ?? {}).flat(),\n\t\t...(variable.allow ?? []),\n\t]),\n]\n\nconst translateResolverError = (\n\ttype: MembershipValidationErrorType,\n\tmembership: ClaimMappingMembership,\n\tvariableName: string | undefined,\n\troleVariables: Acl.Variables,\n): ClaimMappingMembershipError | null => {\n\tconst aclVariable = variableName && Object.prototype.hasOwnProperty.call(roleVariables, variableName) ? roleVariables[variableName] : undefined\n\tswitch (type) {\n\t\tcase MembershipValidationErrorType.ROLE_NOT_FOUND:\n\t\t\treturn {\n\t\t\t\ttype: ClaimMappingMembershipErrorType.roleNotFound,\n\t\t\t\tmessage: `claimMapping grants role '${membership.role}' which is not defined in the ACL of project '${membership.project}'`,\n\t\t\t}\n\t\tcase MembershipValidationErrorType.VARIABLE_NOT_FOUND:\n\t\t\t// The resolver reports a (forbidden) predefined variable as VARIABLE_NOT_FOUND when not assumed;\n\t\t\t// surface A09's clearer `predefinedVariable` message when that is the actual cause.\n\t\t\tif (aclVariable?.type === Acl.VariableType.predefined) {\n\t\t\t\treturn {\n\t\t\t\t\ttype: ClaimMappingMembershipErrorType.predefinedVariable,\n\t\t\t\t\tmessage: `claimMapping cannot set the predefined variable '${variableName}' of role '${membership.role}'`,\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\ttype: ClaimMappingMembershipErrorType.variableNotFound,\n\t\t\t\tmessage: `claimMapping sets variable '${variableName}' which is not defined for role '${membership.role}' in project '${membership.project}'`,\n\t\t\t}\n\t\tcase MembershipValidationErrorType.VARIABLE_INVALID:\n\t\t\t// A predefined variable can also raise VARIABLE_INVALID (its non-id value) — already reported as\n\t\t\t// predefinedVariable above, so don't double-report it as a bad condition value.\n\t\t\tif (aclVariable?.type === Acl.VariableType.predefined) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\treturn {\n\t\t\t\ttype: ClaimMappingMembershipErrorType.conditionValueInvalid,\n\t\t\t\tmessage:\n\t\t\t\t\t`claimMapping variable '${variableName}' of role '${membership.role}' is a condition variable, but a configured value (a constant, a 'map' output, or an 'allow' entry) is not a valid condition`,\n\t\t\t}\n\t\tcase MembershipValidationErrorType.VARIABLE_EMPTY:\n\t\t\t// A09 intentionally tolerates partial grants — a rule may set only some of a role's variables.\n\t\t\treturn null\n\t\tdefault:\n\t\t\treturn null\n\t}\n}\n"],"names":["ClaimMappingMembershipErrorType"],"mappings":";;AAeO,IAAK,oDAAAA,qCAAL;AAENA,mCAAA,cAAA,IAAe;AAEfA,mCAAA,kBAAA,IAAmB;AAEnBA,mCAAA,oBAAA,IAAqB;AAMrBA,mCAAA,oBAAA,IAAqB;AAErBA,mCAAA,uBAAA,IAAwB;AAdb,SAAAA;AAAA,GAAA,mCAAA,CAAA,CAAA;AA0CL,MAAM,iCAAiC,CAAC,KAAiB,eAAsE;AACrI,QAAM,SAAwC,CAAA;AAC9C,QAAM,aAAa,OAAO,UAAU,eAAe,KAAK,IAAI,OAAO,WAAW,IAAI;AAClF,QAAM,gBAAgB,aAAa,iBAAiB,WAAW,MAAM,GAAG,IAAI,CAAA;AAO5E,MAAI,YAAY;AACf,eAAW,YAAY,WAAW,aAAa,CAAA,GAAI;AAClD,YAAM,cAAc,OAAO,UAAU,eAAe,KAAK,eAAe,SAAS,IAAI,IAAI,cAAc,SAAS,IAAI,IAAI;AACxH,UACC,aAAa,SAAS,IAAI,aAAa,aAAa,SAAS,SAAS,WAAc,SAAS,gBAAgB,QAAQ,SAAS,UAAU,SACvI;AACD,eAAO,KAAK;AAAA,UACX,MAAM;AAAA,UACN,SACC,0BAA0B,SAAS,IAAI,cAAc,WAAW,IAAI;AAAA,QAAA,CACrE;AAAA,MACF;AAAA,IACD;AAAA,EACD;AAOA,QAAM,qBAAqC;AAAA,IAC1C,MAAM,WAAW;AAAA,IACjB,YAAY,WAAW,aAAa,CAAA,GAAI,IAAI,CAAA,cAAa,EAAE,MAAM,SAAS,MAAM,QAAQ,qBAAqB,QAAQ,IAAI;AAAA,EAAA;AAE1H,QAAM,SAAS,IAAI,mBAAA,EAAqB,QAAQ,KAAK,CAAC,kBAAkB,GAAG,mBAAmB,iBAAiB,KAAK;AACpH,aAAW,SAAS,OAAO,QAAQ;AAClC,UAAM,aAAa,uBAAuB,MAAM,OAAO,YAAY,MAAM,UAAU,aAAa;AAChG,QAAI,YAAY;AACf,aAAO,KAAK,UAAU;AAAA,IACvB;AAAA,EACD;AACA,SAAO;AACR;AAOA,MAAM,uBAAuB,CAAC,aAA6C;AAAA,EAC1E,uBAAO,IAAI;AAAA,IACV,GAAI,SAAS,UAAU,CAAA;AAAA,IACvB,GAAG,OAAO,OAAO,SAAS,OAAO,CAAA,CAAE,EAAE,KAAA;AAAA,IACrC,GAAI,SAAS,SAAS,CAAA;AAAA,EAAC,CACvB;AACF;AAEA,MAAM,yBAAyB,CAC9B,MACA,YACA,cACA,kBACwC;AACxC,QAAM,cAAc,gBAAgB,OAAO,UAAU,eAAe,KAAK,eAAe,YAAY,IAAI,cAAc,YAAY,IAAI;AACtI,UAAQ,MAAA;AAAA,IACP,KAAK,8BAA8B;AAClC,aAAO;AAAA,QACN,MAAM;AAAA,QACN,SAAS,6BAA6B,WAAW,IAAI,iDAAiD,WAAW,OAAO;AAAA,MAAA;AAAA,IAE1H,KAAK,8BAA8B;AAGlC,UAAI,aAAa,SAAS,IAAI,aAAa,YAAY;AACtD,eAAO;AAAA,UACN,MAAM;AAAA,UACN,SAAS,oDAAoD,YAAY,cAAc,WAAW,IAAI;AAAA,QAAA;AAAA,MAExG;AACA,aAAO;AAAA,QACN,MAAM;AAAA,QACN,SAAS,+BAA+B,YAAY,oCAAoC,WAAW,IAAI,iBAAiB,WAAW,OAAO;AAAA,MAAA;AAAA,IAE5I,KAAK,8BAA8B;AAGlC,UAAI,aAAa,SAAS,IAAI,aAAa,YAAY;AACtD,eAAO;AAAA,MACR;AACA,aAAO;AAAA,QACN,MAAM;AAAA,QACN,SACC,0BAA0B,YAAY,cAAc,WAAW,IAAI;AAAA,MAAA;AAAA,IAEtE,KAAK,8BAA8B;AAElC,aAAO;AAAA,IACR;AACC,aAAO;AAAA,EAAA;AAEV;"}