@contember/engine-tenant-api 2.0.0-alpha.32 → 2.0.0-alpha.35

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 (730) hide show
  1. package/dist/development/src/TenantContainer.cjs.map +1 -1
  2. package/dist/development/src/TenantContainer.js.map +1 -1
  3. package/dist/development/src/bridges/system/IdentityFetcher.cjs.map +1 -1
  4. package/dist/development/src/bridges/system/IdentityFetcher.js.map +1 -1
  5. package/dist/development/src/exceptions.cjs.map +1 -1
  6. package/dist/development/src/exceptions.js.map +1 -1
  7. package/dist/development/src/migrations/runner.cjs.map +1 -1
  8. package/dist/development/src/migrations/runner.js.map +1 -1
  9. package/dist/development/src/migrations/tenantCredentials.cjs.map +1 -1
  10. package/dist/development/src/migrations/tenantCredentials.js.map +1 -1
  11. package/dist/development/src/model/authorization/AclSchemaAccessNodeFactory.cjs.map +1 -1
  12. package/dist/development/src/model/authorization/AclSchemaAccessNodeFactory.js.map +1 -1
  13. package/dist/development/src/model/authorization/DirectPermissionsAccessNode.cjs.map +1 -1
  14. package/dist/development/src/model/authorization/DirectPermissionsAccessNode.js.map +1 -1
  15. package/dist/development/src/model/authorization/Identity.cjs.map +1 -1
  16. package/dist/development/src/model/authorization/Identity.js.map +1 -1
  17. package/dist/development/src/model/authorization/IdentityFactory.cjs.map +1 -1
  18. package/dist/development/src/model/authorization/IdentityFactory.js.map +1 -1
  19. package/dist/development/src/model/authorization/IdentityScope.cjs.map +1 -1
  20. package/dist/development/src/model/authorization/IdentityScope.js.map +1 -1
  21. package/dist/development/src/model/authorization/MembershipMatcher.cjs.map +1 -1
  22. package/dist/development/src/model/authorization/MembershipMatcher.js.map +1 -1
  23. package/dist/development/src/model/authorization/PermissionActions.cjs.map +1 -1
  24. package/dist/development/src/model/authorization/PermissionActions.js.map +1 -1
  25. package/dist/development/src/model/authorization/PermissionContext.cjs.map +1 -1
  26. package/dist/development/src/model/authorization/PermissionContext.js.map +1 -1
  27. package/dist/development/src/model/authorization/PermissionContextFactory.cjs.map +1 -1
  28. package/dist/development/src/model/authorization/PermissionContextFactory.js.map +1 -1
  29. package/dist/development/src/model/authorization/PermissionsFactory.cjs.map +1 -1
  30. package/dist/development/src/model/authorization/PermissionsFactory.js.map +1 -1
  31. package/dist/development/src/model/authorization/ProjectScope.cjs.map +1 -1
  32. package/dist/development/src/model/authorization/ProjectScope.js.map +1 -1
  33. package/dist/development/src/model/authorization/ProjectScopeFactory.cjs.map +1 -1
  34. package/dist/development/src/model/authorization/ProjectScopeFactory.js.map +1 -1
  35. package/dist/development/src/model/commands/CommandBus.cjs.map +1 -1
  36. package/dist/development/src/model/commands/CommandBus.js.map +1 -1
  37. package/dist/development/src/model/commands/apiKey/ApiKeyHelper.cjs.map +1 -1
  38. package/dist/development/src/model/commands/apiKey/ApiKeyHelper.js.map +1 -1
  39. package/dist/development/src/model/commands/apiKey/CreateApiKeyCommand.cjs.map +1 -1
  40. package/dist/development/src/model/commands/apiKey/CreateApiKeyCommand.js.map +1 -1
  41. package/dist/development/src/model/commands/apiKey/DisableApiKeyCommand.cjs.map +1 -1
  42. package/dist/development/src/model/commands/apiKey/DisableApiKeyCommand.js.map +1 -1
  43. package/dist/development/src/model/commands/apiKey/DisableIdentityApiKeysCommand.cjs.map +1 -1
  44. package/dist/development/src/model/commands/apiKey/DisableIdentityApiKeysCommand.js.map +1 -1
  45. package/dist/development/src/model/commands/apiKey/DisableOneOffApiKeyCommand.cjs.map +1 -1
  46. package/dist/development/src/model/commands/apiKey/DisableOneOffApiKeyCommand.js.map +1 -1
  47. package/dist/development/src/model/commands/apiKey/ProlongApiKeyCommand.cjs.map +1 -1
  48. package/dist/development/src/model/commands/apiKey/ProlongApiKeyCommand.js.map +1 -1
  49. package/dist/development/src/model/commands/configuration/UpdateConfigurationCommand.cjs.map +1 -1
  50. package/dist/development/src/model/commands/configuration/UpdateConfigurationCommand.js.map +1 -1
  51. package/dist/development/src/model/commands/identity/CreateIdentityCommand.cjs.map +1 -1
  52. package/dist/development/src/model/commands/identity/CreateIdentityCommand.js.map +1 -1
  53. package/dist/development/src/model/commands/identity/PatchIdentityGlobalRoles.cjs.map +1 -1
  54. package/dist/development/src/model/commands/identity/PatchIdentityGlobalRoles.js.map +1 -1
  55. package/dist/development/src/model/commands/idp/CreateIdpCommand.cjs.map +1 -1
  56. package/dist/development/src/model/commands/idp/CreateIdpCommand.js.map +1 -1
  57. package/dist/development/src/model/commands/idp/DisableIdpCommand.cjs.map +1 -1
  58. package/dist/development/src/model/commands/idp/DisableIdpCommand.js.map +1 -1
  59. package/dist/development/src/model/commands/idp/EnableIdpCommand.cjs.map +1 -1
  60. package/dist/development/src/model/commands/idp/EnableIdpCommand.js.map +1 -1
  61. package/dist/development/src/model/commands/idp/UpdateIdpCommand.cjs.map +1 -1
  62. package/dist/development/src/model/commands/idp/UpdateIdpCommand.js.map +1 -1
  63. package/dist/development/src/model/commands/mailTemplate/AddMailTemplateCommand.cjs.map +1 -1
  64. package/dist/development/src/model/commands/mailTemplate/AddMailTemplateCommand.js.map +1 -1
  65. package/dist/development/src/model/commands/mailTemplate/RemoveMailTemplateCommand.cjs.map +1 -1
  66. package/dist/development/src/model/commands/mailTemplate/RemoveMailTemplateCommand.js.map +1 -1
  67. package/dist/development/src/model/commands/membership/AddProjectMemberCommand.cjs.map +1 -1
  68. package/dist/development/src/model/commands/membership/AddProjectMemberCommand.js.map +1 -1
  69. package/dist/development/src/model/commands/membership/CreateOrUpdateProjectMembershipCommand.cjs.map +1 -1
  70. package/dist/development/src/model/commands/membership/CreateOrUpdateProjectMembershipCommand.js.map +1 -1
  71. package/dist/development/src/model/commands/membership/RemoveProjectMemberCommand.cjs.map +1 -1
  72. package/dist/development/src/model/commands/membership/RemoveProjectMemberCommand.js.map +1 -1
  73. package/dist/development/src/model/commands/membership/RemoveProjectMembershipsCommand.cjs.map +1 -1
  74. package/dist/development/src/model/commands/membership/RemoveProjectMembershipsCommand.js.map +1 -1
  75. package/dist/development/src/model/commands/membership/UpdateProjectMemberCommand.cjs.map +1 -1
  76. package/dist/development/src/model/commands/membership/UpdateProjectMemberCommand.js.map +1 -1
  77. package/dist/development/src/model/commands/membership/variables/PatchProjectMembershipVariableValuesCommand.cjs.map +1 -1
  78. package/dist/development/src/model/commands/membership/variables/PatchProjectMembershipVariableValuesCommand.js.map +1 -1
  79. package/dist/development/src/model/commands/membership/variables/PatchProjectMembershipVariablesCommand.cjs.map +1 -1
  80. package/dist/development/src/model/commands/membership/variables/PatchProjectMembershipVariablesCommand.js.map +1 -1
  81. package/dist/development/src/model/commands/membership/variables/SetProjectMembershipVariableValuesCommand.cjs.map +1 -1
  82. package/dist/development/src/model/commands/membership/variables/SetProjectMembershipVariableValuesCommand.js.map +1 -1
  83. package/dist/development/src/model/commands/otp/ConfirmOtpCommand.cjs.map +1 -1
  84. package/dist/development/src/model/commands/otp/ConfirmOtpCommand.js.map +1 -1
  85. package/dist/development/src/model/commands/otp/DisableOtpCommand.cjs.map +1 -1
  86. package/dist/development/src/model/commands/otp/DisableOtpCommand.js.map +1 -1
  87. package/dist/development/src/model/commands/otp/PrepareOtpCommand.cjs.map +1 -1
  88. package/dist/development/src/model/commands/otp/PrepareOtpCommand.js.map +1 -1
  89. package/dist/development/src/model/commands/person/ChangePasswordCommand.cjs.map +1 -1
  90. package/dist/development/src/model/commands/person/ChangePasswordCommand.js.map +1 -1
  91. package/dist/development/src/model/commands/person/ChangeProfileCommand.cjs.map +1 -1
  92. package/dist/development/src/model/commands/person/ChangeProfileCommand.js.map +1 -1
  93. package/dist/development/src/model/commands/person/CreatePersonCommand.cjs.map +1 -1
  94. package/dist/development/src/model/commands/person/CreatePersonCommand.js.map +1 -1
  95. package/dist/development/src/model/commands/person/CreatePersonIdentityProviderIdentifierCommand.cjs.map +1 -1
  96. package/dist/development/src/model/commands/person/CreatePersonIdentityProviderIdentifierCommand.js.map +1 -1
  97. package/dist/development/src/model/commands/person/DisablePersonCommand.cjs.map +1 -1
  98. package/dist/development/src/model/commands/person/DisablePersonCommand.js.map +1 -1
  99. package/dist/development/src/model/commands/person/TogglePersonPasswordlessCommand.cjs.map +1 -1
  100. package/dist/development/src/model/commands/person/TogglePersonPasswordlessCommand.js.map +1 -1
  101. package/dist/development/src/model/commands/personToken/ActivateOtpCommand.cjs.map +1 -1
  102. package/dist/development/src/model/commands/personToken/ActivateOtpCommand.js.map +1 -1
  103. package/dist/development/src/model/commands/personToken/CreatePersonTokenCommand.cjs.map +1 -1
  104. package/dist/development/src/model/commands/personToken/CreatePersonTokenCommand.js.map +1 -1
  105. package/dist/development/src/model/commands/personToken/IncreaseOtpAttemptCommand.cjs.map +1 -1
  106. package/dist/development/src/model/commands/personToken/IncreaseOtpAttemptCommand.js.map +1 -1
  107. package/dist/development/src/model/commands/personToken/InvalidateTokenCommand.cjs.map +1 -1
  108. package/dist/development/src/model/commands/personToken/InvalidateTokenCommand.js.map +1 -1
  109. package/dist/development/src/model/commands/personToken/ResetPasswordCommand.cjs.map +1 -1
  110. package/dist/development/src/model/commands/personToken/ResetPasswordCommand.js.map +1 -1
  111. package/dist/development/src/model/commands/personToken/SavePersonTokenCommand.cjs.map +1 -1
  112. package/dist/development/src/model/commands/personToken/SavePersonTokenCommand.js.map +1 -1
  113. package/dist/development/src/model/commands/project/CreateProjectCommand.cjs.map +1 -1
  114. package/dist/development/src/model/commands/project/CreateProjectCommand.js.map +1 -1
  115. package/dist/development/src/model/commands/project/SetProjectSecretCommand.cjs.map +1 -1
  116. package/dist/development/src/model/commands/project/SetProjectSecretCommand.js.map +1 -1
  117. package/dist/development/src/model/commands/project/UpdateProjectCommand.cjs.map +1 -1
  118. package/dist/development/src/model/commands/project/UpdateProjectCommand.js.map +1 -1
  119. package/dist/development/src/model/dtos/Password.cjs.map +1 -1
  120. package/dist/development/src/model/dtos/Password.js.map +1 -1
  121. package/dist/development/src/model/mailing/UserMailer.cjs.map +1 -1
  122. package/dist/development/src/model/mailing/UserMailer.js.map +1 -1
  123. package/dist/development/src/model/mailing/templates/ExistingUserInvited.mustache.cjs.map +1 -1
  124. package/dist/development/src/model/mailing/templates/ExistingUserInvited.mustache.js.map +1 -1
  125. package/dist/development/src/model/mailing/templates/NewUserInvited.mustache.cjs.map +1 -1
  126. package/dist/development/src/model/mailing/templates/NewUserInvited.mustache.js.map +1 -1
  127. package/dist/development/src/model/mailing/templates/PasswordReset.mustache.cjs.map +1 -1
  128. package/dist/development/src/model/mailing/templates/PasswordReset.mustache.js.map +1 -1
  129. package/dist/development/src/model/mailing/templates/PasswordlessSignIn.mustache.cjs.map +1 -1
  130. package/dist/development/src/model/mailing/templates/PasswordlessSignIn.mustache.js.map +1 -1
  131. package/dist/development/src/model/mailing/type.cjs.map +1 -1
  132. package/dist/development/src/model/mailing/type.js.map +1 -1
  133. package/dist/development/src/model/queries/apiKey/ApiKeyQuery.cjs.map +1 -1
  134. package/dist/development/src/model/queries/apiKey/ApiKeyQuery.js.map +1 -1
  135. package/dist/development/src/model/queries/configuration/ConfigurationQuery.cjs.map +1 -1
  136. package/dist/development/src/model/queries/configuration/ConfigurationQuery.js.map +1 -1
  137. package/dist/development/src/model/queries/identity/IdentityQuery.cjs.map +1 -1
  138. package/dist/development/src/model/queries/identity/IdentityQuery.js.map +1 -1
  139. package/dist/development/src/model/queries/idp/IdentityProviderBySlugQuery.cjs.map +1 -1
  140. package/dist/development/src/model/queries/idp/IdentityProviderBySlugQuery.js.map +1 -1
  141. package/dist/development/src/model/queries/idp/IdentityProvidersQuery.cjs.map +1 -1
  142. package/dist/development/src/model/queries/idp/IdentityProvidersQuery.js.map +1 -1
  143. package/dist/development/src/model/queries/idp/helpers.cjs.map +1 -1
  144. package/dist/development/src/model/queries/idp/helpers.js.map +1 -1
  145. package/dist/development/src/model/queries/mailTemplate/MailTemplateListQuery.cjs.map +1 -1
  146. package/dist/development/src/model/queries/mailTemplate/MailTemplateListQuery.js.map +1 -1
  147. package/dist/development/src/model/queries/mailTemplate/MailTemplateQuery.cjs.map +1 -1
  148. package/dist/development/src/model/queries/mailTemplate/MailTemplateQuery.js.map +1 -1
  149. package/dist/development/src/model/queries/membership/ProjectMembersQuery.cjs.map +1 -1
  150. package/dist/development/src/model/queries/membership/ProjectMembersQuery.js.map +1 -1
  151. package/dist/development/src/model/queries/membership/ProjectMembershipByIdentityQuery.cjs.map +1 -1
  152. package/dist/development/src/model/queries/membership/ProjectMembershipByIdentityQuery.js.map +1 -1
  153. package/dist/development/src/model/queries/membership/ProjectRolesByIdentityQuery.cjs.map +1 -1
  154. package/dist/development/src/model/queries/membership/ProjectRolesByIdentityQuery.js.map +1 -1
  155. package/dist/development/src/model/queries/membership/ProjectSlugSpecification.cjs.map +1 -1
  156. package/dist/development/src/model/queries/membership/ProjectSlugSpecification.js.map +1 -1
  157. package/dist/development/src/model/queries/person/PersonByIdPQuery.cjs.map +1 -1
  158. package/dist/development/src/model/queries/person/PersonByIdPQuery.js.map +1 -1
  159. package/dist/development/src/model/queries/person/PersonByIdentityBatchQuery.cjs.map +1 -1
  160. package/dist/development/src/model/queries/person/PersonByIdentityBatchQuery.js.map +1 -1
  161. package/dist/development/src/model/queries/person/PersonQuery.cjs.map +1 -1
  162. package/dist/development/src/model/queries/person/PersonQuery.js.map +1 -1
  163. package/dist/development/src/model/queries/person/PersonQueryBuilderFactory.cjs.map +1 -1
  164. package/dist/development/src/model/queries/person/PersonQueryBuilderFactory.js.map +1 -1
  165. package/dist/development/src/model/queries/personToken/PersonTokenQuery.cjs.map +1 -1
  166. package/dist/development/src/model/queries/personToken/PersonTokenQuery.js.map +1 -1
  167. package/dist/development/src/model/queries/project/ProjectBySlugQuery.cjs.map +1 -1
  168. package/dist/development/src/model/queries/project/ProjectBySlugQuery.js.map +1 -1
  169. package/dist/development/src/model/queries/project/ProjectSecretsQuery.cjs.map +1 -1
  170. package/dist/development/src/model/queries/project/ProjectSecretsQuery.js.map +1 -1
  171. package/dist/development/src/model/queries/project/ProjectUpdateTimestampQuery.cjs.map +1 -1
  172. package/dist/development/src/model/queries/project/ProjectUpdateTimestampQuery.js.map +1 -1
  173. package/dist/development/src/model/queries/project/ProjectsByIdentityQuery.cjs.map +1 -1
  174. package/dist/development/src/model/queries/project/ProjectsByIdentityQuery.js.map +1 -1
  175. package/dist/development/src/model/queries/project/ProjectsQuery.cjs.map +1 -1
  176. package/dist/development/src/model/queries/project/ProjectsQuery.js.map +1 -1
  177. package/dist/development/src/model/service/ConfigurationManager.cjs.map +1 -1
  178. package/dist/development/src/model/service/ConfigurationManager.js.map +1 -1
  179. package/dist/development/src/model/service/EmailValidator.cjs.map +1 -1
  180. package/dist/development/src/model/service/EmailValidator.js.map +1 -1
  181. package/dist/development/src/model/service/IDPSignInManager.cjs.map +1 -1
  182. package/dist/development/src/model/service/IDPSignInManager.js.map +1 -1
  183. package/dist/development/src/model/service/InviteManager.cjs.map +1 -1
  184. package/dist/development/src/model/service/InviteManager.js.map +1 -1
  185. package/dist/development/src/model/service/MailTemplateManager.cjs.map +1 -1
  186. package/dist/development/src/model/service/MailTemplateManager.js.map +1 -1
  187. package/dist/development/src/model/service/MembershipValidator.cjs.map +1 -1
  188. package/dist/development/src/model/service/MembershipValidator.js.map +1 -1
  189. package/dist/development/src/model/service/OtpAuthenticator.cjs.map +1 -1
  190. package/dist/development/src/model/service/OtpAuthenticator.js.map +1 -1
  191. package/dist/development/src/model/service/OtpManager.cjs.map +1 -1
  192. package/dist/development/src/model/service/OtpManager.js.map +1 -1
  193. package/dist/development/src/model/service/PasswordChangeManager.cjs.map +1 -1
  194. package/dist/development/src/model/service/PasswordChangeManager.js.map +1 -1
  195. package/dist/development/src/model/service/PasswordResetManager.cjs.map +1 -1
  196. package/dist/development/src/model/service/PasswordResetManager.js.map +1 -1
  197. package/dist/development/src/model/service/PasswordlessSignInManager.cjs.map +1 -1
  198. package/dist/development/src/model/service/PasswordlessSignInManager.js.map +1 -1
  199. package/dist/development/src/model/service/PersonAccessManager.cjs.map +1 -1
  200. package/dist/development/src/model/service/PersonAccessManager.js.map +1 -1
  201. package/dist/development/src/model/service/PersonManager.cjs.map +1 -1
  202. package/dist/development/src/model/service/PersonManager.js.map +1 -1
  203. package/dist/development/src/model/service/ProjectManager.cjs.map +1 -1
  204. package/dist/development/src/model/service/ProjectManager.js.map +1 -1
  205. package/dist/development/src/model/service/ProjectMemberManager.cjs.map +1 -1
  206. package/dist/development/src/model/service/ProjectMemberManager.js.map +1 -1
  207. package/dist/development/src/model/service/RolesManager.cjs.map +1 -1
  208. package/dist/development/src/model/service/RolesManager.js.map +1 -1
  209. package/dist/development/src/model/service/SecretsManager.cjs.map +1 -1
  210. package/dist/development/src/model/service/SecretsManager.js.map +1 -1
  211. package/dist/development/src/model/service/SignInManager.cjs.map +1 -1
  212. package/dist/development/src/model/service/SignInManager.js.map +1 -1
  213. package/dist/development/src/model/service/SignUpManager.cjs.map +1 -1
  214. package/dist/development/src/model/service/SignUpManager.js.map +1 -1
  215. package/dist/development/src/model/service/apiKey/ApiKeyManager.cjs.map +1 -1
  216. package/dist/development/src/model/service/apiKey/ApiKeyManager.js.map +1 -1
  217. package/dist/development/src/model/service/apiKey/ApiKeyService.cjs.map +1 -1
  218. package/dist/development/src/model/service/apiKey/ApiKeyService.js.map +1 -1
  219. package/dist/development/src/model/service/helpers/getPreferredProject.cjs.map +1 -1
  220. package/dist/development/src/model/service/helpers/getPreferredProject.js.map +1 -1
  221. package/dist/development/src/model/service/idp/IDPHandlerRegistry.cjs.map +1 -1
  222. package/dist/development/src/model/service/idp/IDPHandlerRegistry.js.map +1 -1
  223. package/dist/development/src/model/service/idp/IDPManager.cjs.map +1 -1
  224. package/dist/development/src/model/service/idp/IDPManager.js.map +1 -1
  225. package/dist/development/src/model/service/idp/IDPResponseError.cjs.map +1 -1
  226. package/dist/development/src/model/service/idp/IDPResponseError.js.map +1 -1
  227. package/dist/development/src/model/service/idp/IDPValidationError.cjs.map +1 -1
  228. package/dist/development/src/model/service/idp/IDPValidationError.js.map +1 -1
  229. package/dist/development/src/model/service/idp/IdentityProviderNotFoundError.cjs.map +1 -1
  230. package/dist/development/src/model/service/idp/IdentityProviderNotFoundError.js.map +1 -1
  231. package/dist/development/src/model/service/idp/InvalidIDPConfigurationError.cjs.map +1 -1
  232. package/dist/development/src/model/service/idp/InvalidIDPConfigurationError.js.map +1 -1
  233. package/dist/development/src/model/service/idp/providers/AppleProvider.cjs.map +1 -1
  234. package/dist/development/src/model/service/idp/providers/AppleProvider.js.map +1 -1
  235. package/dist/development/src/model/service/idp/providers/FacebookProvider.cjs.map +1 -1
  236. package/dist/development/src/model/service/idp/providers/FacebookProvider.js.map +1 -1
  237. package/dist/development/src/model/service/idp/providers/OIDCHelpers.cjs.map +1 -1
  238. package/dist/development/src/model/service/idp/providers/OIDCHelpers.js.map +1 -1
  239. package/dist/development/src/model/service/idp/providers/OIDCProvider.cjs.map +1 -1
  240. package/dist/development/src/model/service/idp/providers/OIDCProvider.js.map +1 -1
  241. package/dist/development/src/model/service/idp/providers/OIDCTypes.cjs.map +1 -1
  242. package/dist/development/src/model/service/idp/providers/OIDCTypes.js.map +1 -1
  243. package/dist/development/src/model/service/idp/providers/helpers.cjs.map +1 -1
  244. package/dist/development/src/model/service/idp/providers/helpers.js.map +1 -1
  245. package/dist/development/src/model/service/membershipUtils.cjs.map +1 -1
  246. package/dist/development/src/model/service/membershipUtils.js.map +1 -1
  247. package/dist/development/src/model/type/ApiKey.cjs.map +1 -1
  248. package/dist/development/src/model/type/ApiKey.js.map +1 -1
  249. package/dist/development/src/model/utils/DatabaseContext.cjs.map +1 -1
  250. package/dist/development/src/model/utils/DatabaseContext.js.map +1 -1
  251. package/dist/development/src/model/utils/Response.cjs.map +1 -1
  252. package/dist/development/src/model/utils/Response.js.map +1 -1
  253. package/dist/development/src/model/utils/password.cjs.map +1 -1
  254. package/dist/development/src/model/utils/password.js.map +1 -1
  255. package/dist/development/src/model/utils/tokenUtils.cjs.map +1 -1
  256. package/dist/development/src/model/utils/tokenUtils.js.map +1 -1
  257. package/dist/development/src/resolvers/ResolverFactory.cjs.map +1 -1
  258. package/dist/development/src/resolvers/ResolverFactory.js.map +1 -1
  259. package/dist/development/src/resolvers/TenantResolverContextFactory.cjs.map +1 -1
  260. package/dist/development/src/resolvers/TenantResolverContextFactory.js.map +1 -1
  261. package/dist/development/src/resolvers/errorUtils.cjs.map +1 -1
  262. package/dist/development/src/resolvers/errorUtils.js.map +1 -1
  263. package/dist/development/src/resolvers/membershipUtils.cjs.map +1 -1
  264. package/dist/development/src/resolvers/membershipUtils.js.map +1 -1
  265. package/dist/development/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.cjs.map +1 -1
  266. package/dist/development/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.js.map +1 -1
  267. package/dist/development/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.cjs.map +1 -1
  268. package/dist/development/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.js.map +1 -1
  269. package/dist/development/src/resolvers/mutation/configuration/ConfigurationMutationResolver.cjs.map +1 -1
  270. package/dist/development/src/resolvers/mutation/configuration/ConfigurationMutationResolver.js.map +1 -1
  271. package/dist/development/src/resolvers/mutation/identity/GlobalRolesMutationResolver.cjs.map +1 -1
  272. package/dist/development/src/resolvers/mutation/identity/GlobalRolesMutationResolver.js.map +1 -1
  273. package/dist/development/src/resolvers/mutation/idp/AddIDPMutationResolver.cjs.map +1 -1
  274. package/dist/development/src/resolvers/mutation/idp/AddIDPMutationResolver.js.map +1 -1
  275. package/dist/development/src/resolvers/mutation/idp/DisableIDPMutationResolver.cjs.map +1 -1
  276. package/dist/development/src/resolvers/mutation/idp/DisableIDPMutationResolver.js.map +1 -1
  277. package/dist/development/src/resolvers/mutation/idp/EnableIDPMutationResolver.cjs.map +1 -1
  278. package/dist/development/src/resolvers/mutation/idp/EnableIDPMutationResolver.js.map +1 -1
  279. package/dist/development/src/resolvers/mutation/idp/UpdateIDPMutationResolver.cjs.map +1 -1
  280. package/dist/development/src/resolvers/mutation/idp/UpdateIDPMutationResolver.js.map +1 -1
  281. package/dist/development/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.cjs.map +1 -1
  282. package/dist/development/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.js.map +1 -1
  283. package/dist/development/src/resolvers/mutation/person/ChangePasswordMutationResolver.cjs.map +1 -1
  284. package/dist/development/src/resolvers/mutation/person/ChangePasswordMutationResolver.js.map +1 -1
  285. package/dist/development/src/resolvers/mutation/person/ChangeProfileMutationResolver.cjs.map +1 -1
  286. package/dist/development/src/resolvers/mutation/person/ChangeProfileMutationResolver.js.map +1 -1
  287. package/dist/development/src/resolvers/mutation/person/DisablePersonMutationResolver.cjs.map +1 -1
  288. package/dist/development/src/resolvers/mutation/person/DisablePersonMutationResolver.js.map +1 -1
  289. package/dist/development/src/resolvers/mutation/person/IDPMutationResolver.cjs.map +1 -1
  290. package/dist/development/src/resolvers/mutation/person/IDPMutationResolver.js.map +1 -1
  291. package/dist/development/src/resolvers/mutation/person/InviteMutationResolver.cjs.map +1 -1
  292. package/dist/development/src/resolvers/mutation/person/InviteMutationResolver.js.map +1 -1
  293. package/dist/development/src/resolvers/mutation/person/OtpMutationResolver.cjs.map +1 -1
  294. package/dist/development/src/resolvers/mutation/person/OtpMutationResolver.js.map +1 -1
  295. package/dist/development/src/resolvers/mutation/person/PasswordlessMutationResolver.cjs.map +1 -1
  296. package/dist/development/src/resolvers/mutation/person/PasswordlessMutationResolver.js.map +1 -1
  297. package/dist/development/src/resolvers/mutation/person/ResetPasswordMutationResolver.cjs.map +1 -1
  298. package/dist/development/src/resolvers/mutation/person/ResetPasswordMutationResolver.js.map +1 -1
  299. package/dist/development/src/resolvers/mutation/person/SignInMutationResolver.cjs.map +1 -1
  300. package/dist/development/src/resolvers/mutation/person/SignInMutationResolver.js.map +1 -1
  301. package/dist/development/src/resolvers/mutation/person/SignOutMutationResolver.cjs.map +1 -1
  302. package/dist/development/src/resolvers/mutation/person/SignOutMutationResolver.js.map +1 -1
  303. package/dist/development/src/resolvers/mutation/person/SignUpMutationResolver.cjs.map +1 -1
  304. package/dist/development/src/resolvers/mutation/person/SignUpMutationResolver.js.map +1 -1
  305. package/dist/development/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.cjs.map +1 -1
  306. package/dist/development/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.js.map +1 -1
  307. package/dist/development/src/resolvers/mutation/project/CreateProjectMutationResolver.cjs.map +1 -1
  308. package/dist/development/src/resolvers/mutation/project/CreateProjectMutationResolver.js.map +1 -1
  309. package/dist/development/src/resolvers/mutation/project/SetProjectSecretMutationResolver.cjs.map +1 -1
  310. package/dist/development/src/resolvers/mutation/project/SetProjectSecretMutationResolver.js.map +1 -1
  311. package/dist/development/src/resolvers/mutation/project/UpdateProjectMutationResolver.cjs.map +1 -1
  312. package/dist/development/src/resolvers/mutation/project/UpdateProjectMutationResolver.js.map +1 -1
  313. package/dist/development/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.cjs.map +1 -1
  314. package/dist/development/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.js.map +1 -1
  315. package/dist/development/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.cjs.map +1 -1
  316. package/dist/development/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.js.map +1 -1
  317. package/dist/development/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.cjs.map +1 -1
  318. package/dist/development/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.js.map +1 -1
  319. package/dist/development/src/resolvers/query/ConfigurationQueryResolver.cjs.map +1 -1
  320. package/dist/development/src/resolvers/query/ConfigurationQueryResolver.js.map +1 -1
  321. package/dist/development/src/resolvers/query/IDPQueryResolver.cjs.map +1 -1
  322. package/dist/development/src/resolvers/query/IDPQueryResolver.js.map +1 -1
  323. package/dist/development/src/resolvers/query/MailTemplateQueryResolver.cjs.map +1 -1
  324. package/dist/development/src/resolvers/query/MailTemplateQueryResolver.js.map +1 -1
  325. package/dist/development/src/resolvers/query/MeQueryResolver.cjs.map +1 -1
  326. package/dist/development/src/resolvers/query/MeQueryResolver.js.map +1 -1
  327. package/dist/development/src/resolvers/query/PersonQueryResolver.cjs.map +1 -1
  328. package/dist/development/src/resolvers/query/PersonQueryResolver.js.map +1 -1
  329. package/dist/development/src/resolvers/query/ProjectMembersQueryResolver.cjs.map +1 -1
  330. package/dist/development/src/resolvers/query/ProjectMembersQueryResolver.js.map +1 -1
  331. package/dist/development/src/resolvers/query/ProjectQueryResolver.cjs.map +1 -1
  332. package/dist/development/src/resolvers/query/ProjectQueryResolver.js.map +1 -1
  333. package/dist/development/src/resolvers/responseHelpers/PersonResponseFactory.cjs.map +1 -1
  334. package/dist/development/src/resolvers/responseHelpers/PersonResponseFactory.js.map +1 -1
  335. package/dist/development/src/resolvers/responseHelpers/SignInResponseFactory.cjs.map +1 -1
  336. package/dist/development/src/resolvers/responseHelpers/SignInResponseFactory.js.map +1 -1
  337. package/dist/development/src/resolvers/types/IdentityTypeResolver.cjs.map +1 -1
  338. package/dist/development/src/resolvers/types/IdentityTypeResolver.js.map +1 -1
  339. package/dist/development/src/resolvers/types/ProjectTypeResolver.cjs.map +1 -1
  340. package/dist/development/src/resolvers/types/ProjectTypeResolver.js.map +1 -1
  341. package/dist/development/src/schema/tenant.graphql.cjs.map +1 -1
  342. package/dist/development/src/utils/Mailer.cjs.map +1 -1
  343. package/dist/development/src/utils/Mailer.js.map +1 -1
  344. package/dist/development/src/utils/TemplateRenderer.cjs.map +1 -1
  345. package/dist/development/src/utils/TemplateRenderer.js.map +1 -1
  346. package/dist/development/src/utils/array.cjs.map +1 -1
  347. package/dist/development/src/utils/array.js.map +1 -1
  348. package/dist/development/src/utils/batchQuery.cjs.map +1 -1
  349. package/dist/development/src/utils/batchQuery.js.map +1 -1
  350. package/dist/production/src/TenantContainer.cjs.map +1 -1
  351. package/dist/production/src/TenantContainer.js.map +1 -1
  352. package/dist/production/src/bridges/system/IdentityFetcher.cjs.map +1 -1
  353. package/dist/production/src/bridges/system/IdentityFetcher.js.map +1 -1
  354. package/dist/production/src/exceptions.cjs.map +1 -1
  355. package/dist/production/src/exceptions.js.map +1 -1
  356. package/dist/production/src/migrations/runner.cjs.map +1 -1
  357. package/dist/production/src/migrations/runner.js.map +1 -1
  358. package/dist/production/src/migrations/tenantCredentials.cjs.map +1 -1
  359. package/dist/production/src/migrations/tenantCredentials.js.map +1 -1
  360. package/dist/production/src/model/authorization/AclSchemaAccessNodeFactory.cjs.map +1 -1
  361. package/dist/production/src/model/authorization/AclSchemaAccessNodeFactory.js.map +1 -1
  362. package/dist/production/src/model/authorization/DirectPermissionsAccessNode.cjs.map +1 -1
  363. package/dist/production/src/model/authorization/DirectPermissionsAccessNode.js.map +1 -1
  364. package/dist/production/src/model/authorization/Identity.cjs.map +1 -1
  365. package/dist/production/src/model/authorization/Identity.js.map +1 -1
  366. package/dist/production/src/model/authorization/IdentityFactory.cjs.map +1 -1
  367. package/dist/production/src/model/authorization/IdentityFactory.js.map +1 -1
  368. package/dist/production/src/model/authorization/IdentityScope.cjs.map +1 -1
  369. package/dist/production/src/model/authorization/IdentityScope.js.map +1 -1
  370. package/dist/production/src/model/authorization/MembershipMatcher.cjs.map +1 -1
  371. package/dist/production/src/model/authorization/MembershipMatcher.js.map +1 -1
  372. package/dist/production/src/model/authorization/PermissionActions.cjs.map +1 -1
  373. package/dist/production/src/model/authorization/PermissionActions.js.map +1 -1
  374. package/dist/production/src/model/authorization/PermissionContext.cjs.map +1 -1
  375. package/dist/production/src/model/authorization/PermissionContext.js.map +1 -1
  376. package/dist/production/src/model/authorization/PermissionContextFactory.cjs.map +1 -1
  377. package/dist/production/src/model/authorization/PermissionContextFactory.js.map +1 -1
  378. package/dist/production/src/model/authorization/PermissionsFactory.cjs.map +1 -1
  379. package/dist/production/src/model/authorization/PermissionsFactory.js.map +1 -1
  380. package/dist/production/src/model/authorization/ProjectScope.cjs.map +1 -1
  381. package/dist/production/src/model/authorization/ProjectScope.js.map +1 -1
  382. package/dist/production/src/model/authorization/ProjectScopeFactory.cjs.map +1 -1
  383. package/dist/production/src/model/authorization/ProjectScopeFactory.js.map +1 -1
  384. package/dist/production/src/model/commands/CommandBus.cjs.map +1 -1
  385. package/dist/production/src/model/commands/CommandBus.js.map +1 -1
  386. package/dist/production/src/model/commands/apiKey/ApiKeyHelper.cjs.map +1 -1
  387. package/dist/production/src/model/commands/apiKey/ApiKeyHelper.js.map +1 -1
  388. package/dist/production/src/model/commands/apiKey/CreateApiKeyCommand.cjs.map +1 -1
  389. package/dist/production/src/model/commands/apiKey/CreateApiKeyCommand.js.map +1 -1
  390. package/dist/production/src/model/commands/apiKey/DisableApiKeyCommand.cjs.map +1 -1
  391. package/dist/production/src/model/commands/apiKey/DisableApiKeyCommand.js.map +1 -1
  392. package/dist/production/src/model/commands/apiKey/DisableIdentityApiKeysCommand.cjs.map +1 -1
  393. package/dist/production/src/model/commands/apiKey/DisableIdentityApiKeysCommand.js.map +1 -1
  394. package/dist/production/src/model/commands/apiKey/DisableOneOffApiKeyCommand.cjs.map +1 -1
  395. package/dist/production/src/model/commands/apiKey/DisableOneOffApiKeyCommand.js.map +1 -1
  396. package/dist/production/src/model/commands/apiKey/ProlongApiKeyCommand.cjs.map +1 -1
  397. package/dist/production/src/model/commands/apiKey/ProlongApiKeyCommand.js.map +1 -1
  398. package/dist/production/src/model/commands/configuration/UpdateConfigurationCommand.cjs.map +1 -1
  399. package/dist/production/src/model/commands/configuration/UpdateConfigurationCommand.js.map +1 -1
  400. package/dist/production/src/model/commands/identity/CreateIdentityCommand.cjs.map +1 -1
  401. package/dist/production/src/model/commands/identity/CreateIdentityCommand.js.map +1 -1
  402. package/dist/production/src/model/commands/identity/PatchIdentityGlobalRoles.cjs.map +1 -1
  403. package/dist/production/src/model/commands/identity/PatchIdentityGlobalRoles.js.map +1 -1
  404. package/dist/production/src/model/commands/idp/CreateIdpCommand.cjs.map +1 -1
  405. package/dist/production/src/model/commands/idp/CreateIdpCommand.js.map +1 -1
  406. package/dist/production/src/model/commands/idp/DisableIdpCommand.cjs.map +1 -1
  407. package/dist/production/src/model/commands/idp/DisableIdpCommand.js.map +1 -1
  408. package/dist/production/src/model/commands/idp/EnableIdpCommand.cjs.map +1 -1
  409. package/dist/production/src/model/commands/idp/EnableIdpCommand.js.map +1 -1
  410. package/dist/production/src/model/commands/idp/UpdateIdpCommand.cjs.map +1 -1
  411. package/dist/production/src/model/commands/idp/UpdateIdpCommand.js.map +1 -1
  412. package/dist/production/src/model/commands/mailTemplate/AddMailTemplateCommand.cjs.map +1 -1
  413. package/dist/production/src/model/commands/mailTemplate/AddMailTemplateCommand.js.map +1 -1
  414. package/dist/production/src/model/commands/mailTemplate/RemoveMailTemplateCommand.cjs.map +1 -1
  415. package/dist/production/src/model/commands/mailTemplate/RemoveMailTemplateCommand.js.map +1 -1
  416. package/dist/production/src/model/commands/membership/AddProjectMemberCommand.cjs.map +1 -1
  417. package/dist/production/src/model/commands/membership/AddProjectMemberCommand.js.map +1 -1
  418. package/dist/production/src/model/commands/membership/CreateOrUpdateProjectMembershipCommand.cjs.map +1 -1
  419. package/dist/production/src/model/commands/membership/CreateOrUpdateProjectMembershipCommand.js.map +1 -1
  420. package/dist/production/src/model/commands/membership/RemoveProjectMemberCommand.cjs.map +1 -1
  421. package/dist/production/src/model/commands/membership/RemoveProjectMemberCommand.js.map +1 -1
  422. package/dist/production/src/model/commands/membership/RemoveProjectMembershipsCommand.cjs.map +1 -1
  423. package/dist/production/src/model/commands/membership/RemoveProjectMembershipsCommand.js.map +1 -1
  424. package/dist/production/src/model/commands/membership/UpdateProjectMemberCommand.cjs.map +1 -1
  425. package/dist/production/src/model/commands/membership/UpdateProjectMemberCommand.js.map +1 -1
  426. package/dist/production/src/model/commands/membership/variables/PatchProjectMembershipVariableValuesCommand.cjs.map +1 -1
  427. package/dist/production/src/model/commands/membership/variables/PatchProjectMembershipVariableValuesCommand.js.map +1 -1
  428. package/dist/production/src/model/commands/membership/variables/PatchProjectMembershipVariablesCommand.cjs.map +1 -1
  429. package/dist/production/src/model/commands/membership/variables/PatchProjectMembershipVariablesCommand.js.map +1 -1
  430. package/dist/production/src/model/commands/membership/variables/SetProjectMembershipVariableValuesCommand.cjs.map +1 -1
  431. package/dist/production/src/model/commands/membership/variables/SetProjectMembershipVariableValuesCommand.js.map +1 -1
  432. package/dist/production/src/model/commands/otp/ConfirmOtpCommand.cjs.map +1 -1
  433. package/dist/production/src/model/commands/otp/ConfirmOtpCommand.js.map +1 -1
  434. package/dist/production/src/model/commands/otp/DisableOtpCommand.cjs.map +1 -1
  435. package/dist/production/src/model/commands/otp/DisableOtpCommand.js.map +1 -1
  436. package/dist/production/src/model/commands/otp/PrepareOtpCommand.cjs.map +1 -1
  437. package/dist/production/src/model/commands/otp/PrepareOtpCommand.js.map +1 -1
  438. package/dist/production/src/model/commands/person/ChangePasswordCommand.cjs.map +1 -1
  439. package/dist/production/src/model/commands/person/ChangePasswordCommand.js.map +1 -1
  440. package/dist/production/src/model/commands/person/ChangeProfileCommand.cjs.map +1 -1
  441. package/dist/production/src/model/commands/person/ChangeProfileCommand.js.map +1 -1
  442. package/dist/production/src/model/commands/person/CreatePersonCommand.cjs.map +1 -1
  443. package/dist/production/src/model/commands/person/CreatePersonCommand.js.map +1 -1
  444. package/dist/production/src/model/commands/person/CreatePersonIdentityProviderIdentifierCommand.cjs.map +1 -1
  445. package/dist/production/src/model/commands/person/CreatePersonIdentityProviderIdentifierCommand.js.map +1 -1
  446. package/dist/production/src/model/commands/person/DisablePersonCommand.cjs.map +1 -1
  447. package/dist/production/src/model/commands/person/DisablePersonCommand.js.map +1 -1
  448. package/dist/production/src/model/commands/person/TogglePersonPasswordlessCommand.cjs.map +1 -1
  449. package/dist/production/src/model/commands/person/TogglePersonPasswordlessCommand.js.map +1 -1
  450. package/dist/production/src/model/commands/personToken/ActivateOtpCommand.cjs.map +1 -1
  451. package/dist/production/src/model/commands/personToken/ActivateOtpCommand.js.map +1 -1
  452. package/dist/production/src/model/commands/personToken/CreatePersonTokenCommand.cjs.map +1 -1
  453. package/dist/production/src/model/commands/personToken/CreatePersonTokenCommand.js.map +1 -1
  454. package/dist/production/src/model/commands/personToken/IncreaseOtpAttemptCommand.cjs.map +1 -1
  455. package/dist/production/src/model/commands/personToken/IncreaseOtpAttemptCommand.js.map +1 -1
  456. package/dist/production/src/model/commands/personToken/InvalidateTokenCommand.cjs.map +1 -1
  457. package/dist/production/src/model/commands/personToken/InvalidateTokenCommand.js.map +1 -1
  458. package/dist/production/src/model/commands/personToken/ResetPasswordCommand.cjs.map +1 -1
  459. package/dist/production/src/model/commands/personToken/ResetPasswordCommand.js.map +1 -1
  460. package/dist/production/src/model/commands/personToken/SavePersonTokenCommand.cjs.map +1 -1
  461. package/dist/production/src/model/commands/personToken/SavePersonTokenCommand.js.map +1 -1
  462. package/dist/production/src/model/commands/project/CreateProjectCommand.cjs.map +1 -1
  463. package/dist/production/src/model/commands/project/CreateProjectCommand.js.map +1 -1
  464. package/dist/production/src/model/commands/project/SetProjectSecretCommand.cjs.map +1 -1
  465. package/dist/production/src/model/commands/project/SetProjectSecretCommand.js.map +1 -1
  466. package/dist/production/src/model/commands/project/UpdateProjectCommand.cjs.map +1 -1
  467. package/dist/production/src/model/commands/project/UpdateProjectCommand.js.map +1 -1
  468. package/dist/production/src/model/dtos/Password.cjs.map +1 -1
  469. package/dist/production/src/model/dtos/Password.js.map +1 -1
  470. package/dist/production/src/model/mailing/UserMailer.cjs.map +1 -1
  471. package/dist/production/src/model/mailing/UserMailer.js.map +1 -1
  472. package/dist/production/src/model/mailing/templates/ExistingUserInvited.mustache.cjs.map +1 -1
  473. package/dist/production/src/model/mailing/templates/ExistingUserInvited.mustache.js.map +1 -1
  474. package/dist/production/src/model/mailing/templates/NewUserInvited.mustache.cjs.map +1 -1
  475. package/dist/production/src/model/mailing/templates/NewUserInvited.mustache.js.map +1 -1
  476. package/dist/production/src/model/mailing/templates/PasswordReset.mustache.cjs.map +1 -1
  477. package/dist/production/src/model/mailing/templates/PasswordReset.mustache.js.map +1 -1
  478. package/dist/production/src/model/mailing/templates/PasswordlessSignIn.mustache.cjs.map +1 -1
  479. package/dist/production/src/model/mailing/templates/PasswordlessSignIn.mustache.js.map +1 -1
  480. package/dist/production/src/model/mailing/type.cjs.map +1 -1
  481. package/dist/production/src/model/mailing/type.js.map +1 -1
  482. package/dist/production/src/model/queries/apiKey/ApiKeyQuery.cjs.map +1 -1
  483. package/dist/production/src/model/queries/apiKey/ApiKeyQuery.js.map +1 -1
  484. package/dist/production/src/model/queries/configuration/ConfigurationQuery.cjs.map +1 -1
  485. package/dist/production/src/model/queries/configuration/ConfigurationQuery.js.map +1 -1
  486. package/dist/production/src/model/queries/identity/IdentityQuery.cjs.map +1 -1
  487. package/dist/production/src/model/queries/identity/IdentityQuery.js.map +1 -1
  488. package/dist/production/src/model/queries/idp/IdentityProviderBySlugQuery.cjs.map +1 -1
  489. package/dist/production/src/model/queries/idp/IdentityProviderBySlugQuery.js.map +1 -1
  490. package/dist/production/src/model/queries/idp/IdentityProvidersQuery.cjs.map +1 -1
  491. package/dist/production/src/model/queries/idp/IdentityProvidersQuery.js.map +1 -1
  492. package/dist/production/src/model/queries/idp/helpers.cjs.map +1 -1
  493. package/dist/production/src/model/queries/idp/helpers.js.map +1 -1
  494. package/dist/production/src/model/queries/mailTemplate/MailTemplateListQuery.cjs.map +1 -1
  495. package/dist/production/src/model/queries/mailTemplate/MailTemplateListQuery.js.map +1 -1
  496. package/dist/production/src/model/queries/mailTemplate/MailTemplateQuery.cjs.map +1 -1
  497. package/dist/production/src/model/queries/mailTemplate/MailTemplateQuery.js.map +1 -1
  498. package/dist/production/src/model/queries/membership/ProjectMembersQuery.cjs.map +1 -1
  499. package/dist/production/src/model/queries/membership/ProjectMembersQuery.js.map +1 -1
  500. package/dist/production/src/model/queries/membership/ProjectMembershipByIdentityQuery.cjs.map +1 -1
  501. package/dist/production/src/model/queries/membership/ProjectMembershipByIdentityQuery.js.map +1 -1
  502. package/dist/production/src/model/queries/membership/ProjectRolesByIdentityQuery.cjs.map +1 -1
  503. package/dist/production/src/model/queries/membership/ProjectRolesByIdentityQuery.js.map +1 -1
  504. package/dist/production/src/model/queries/membership/ProjectSlugSpecification.cjs.map +1 -1
  505. package/dist/production/src/model/queries/membership/ProjectSlugSpecification.js.map +1 -1
  506. package/dist/production/src/model/queries/person/PersonByIdPQuery.cjs.map +1 -1
  507. package/dist/production/src/model/queries/person/PersonByIdPQuery.js.map +1 -1
  508. package/dist/production/src/model/queries/person/PersonByIdentityBatchQuery.cjs.map +1 -1
  509. package/dist/production/src/model/queries/person/PersonByIdentityBatchQuery.js.map +1 -1
  510. package/dist/production/src/model/queries/person/PersonQuery.cjs.map +1 -1
  511. package/dist/production/src/model/queries/person/PersonQuery.js.map +1 -1
  512. package/dist/production/src/model/queries/person/PersonQueryBuilderFactory.cjs.map +1 -1
  513. package/dist/production/src/model/queries/person/PersonQueryBuilderFactory.js.map +1 -1
  514. package/dist/production/src/model/queries/personToken/PersonTokenQuery.cjs.map +1 -1
  515. package/dist/production/src/model/queries/personToken/PersonTokenQuery.js.map +1 -1
  516. package/dist/production/src/model/queries/project/ProjectBySlugQuery.cjs.map +1 -1
  517. package/dist/production/src/model/queries/project/ProjectBySlugQuery.js.map +1 -1
  518. package/dist/production/src/model/queries/project/ProjectSecretsQuery.cjs.map +1 -1
  519. package/dist/production/src/model/queries/project/ProjectSecretsQuery.js.map +1 -1
  520. package/dist/production/src/model/queries/project/ProjectUpdateTimestampQuery.cjs.map +1 -1
  521. package/dist/production/src/model/queries/project/ProjectUpdateTimestampQuery.js.map +1 -1
  522. package/dist/production/src/model/queries/project/ProjectsByIdentityQuery.cjs.map +1 -1
  523. package/dist/production/src/model/queries/project/ProjectsByIdentityQuery.js.map +1 -1
  524. package/dist/production/src/model/queries/project/ProjectsQuery.cjs.map +1 -1
  525. package/dist/production/src/model/queries/project/ProjectsQuery.js.map +1 -1
  526. package/dist/production/src/model/service/ConfigurationManager.cjs.map +1 -1
  527. package/dist/production/src/model/service/ConfigurationManager.js.map +1 -1
  528. package/dist/production/src/model/service/EmailValidator.cjs.map +1 -1
  529. package/dist/production/src/model/service/EmailValidator.js.map +1 -1
  530. package/dist/production/src/model/service/IDPSignInManager.cjs.map +1 -1
  531. package/dist/production/src/model/service/IDPSignInManager.js.map +1 -1
  532. package/dist/production/src/model/service/InviteManager.cjs.map +1 -1
  533. package/dist/production/src/model/service/InviteManager.js.map +1 -1
  534. package/dist/production/src/model/service/MailTemplateManager.cjs.map +1 -1
  535. package/dist/production/src/model/service/MailTemplateManager.js.map +1 -1
  536. package/dist/production/src/model/service/MembershipValidator.cjs.map +1 -1
  537. package/dist/production/src/model/service/MembershipValidator.js.map +1 -1
  538. package/dist/production/src/model/service/OtpAuthenticator.cjs.map +1 -1
  539. package/dist/production/src/model/service/OtpAuthenticator.js.map +1 -1
  540. package/dist/production/src/model/service/OtpManager.cjs.map +1 -1
  541. package/dist/production/src/model/service/OtpManager.js.map +1 -1
  542. package/dist/production/src/model/service/PasswordChangeManager.cjs.map +1 -1
  543. package/dist/production/src/model/service/PasswordChangeManager.js.map +1 -1
  544. package/dist/production/src/model/service/PasswordResetManager.cjs.map +1 -1
  545. package/dist/production/src/model/service/PasswordResetManager.js.map +1 -1
  546. package/dist/production/src/model/service/PasswordlessSignInManager.cjs.map +1 -1
  547. package/dist/production/src/model/service/PasswordlessSignInManager.js.map +1 -1
  548. package/dist/production/src/model/service/PersonAccessManager.cjs.map +1 -1
  549. package/dist/production/src/model/service/PersonAccessManager.js.map +1 -1
  550. package/dist/production/src/model/service/PersonManager.cjs.map +1 -1
  551. package/dist/production/src/model/service/PersonManager.js.map +1 -1
  552. package/dist/production/src/model/service/ProjectManager.cjs.map +1 -1
  553. package/dist/production/src/model/service/ProjectManager.js.map +1 -1
  554. package/dist/production/src/model/service/ProjectMemberManager.cjs.map +1 -1
  555. package/dist/production/src/model/service/ProjectMemberManager.js.map +1 -1
  556. package/dist/production/src/model/service/RolesManager.cjs.map +1 -1
  557. package/dist/production/src/model/service/RolesManager.js.map +1 -1
  558. package/dist/production/src/model/service/SecretsManager.cjs.map +1 -1
  559. package/dist/production/src/model/service/SecretsManager.js.map +1 -1
  560. package/dist/production/src/model/service/SignInManager.cjs.map +1 -1
  561. package/dist/production/src/model/service/SignInManager.js.map +1 -1
  562. package/dist/production/src/model/service/SignUpManager.cjs.map +1 -1
  563. package/dist/production/src/model/service/SignUpManager.js.map +1 -1
  564. package/dist/production/src/model/service/apiKey/ApiKeyManager.cjs.map +1 -1
  565. package/dist/production/src/model/service/apiKey/ApiKeyManager.js.map +1 -1
  566. package/dist/production/src/model/service/apiKey/ApiKeyService.cjs.map +1 -1
  567. package/dist/production/src/model/service/apiKey/ApiKeyService.js.map +1 -1
  568. package/dist/production/src/model/service/helpers/getPreferredProject.cjs.map +1 -1
  569. package/dist/production/src/model/service/helpers/getPreferredProject.js.map +1 -1
  570. package/dist/production/src/model/service/idp/IDPHandlerRegistry.cjs.map +1 -1
  571. package/dist/production/src/model/service/idp/IDPHandlerRegistry.js.map +1 -1
  572. package/dist/production/src/model/service/idp/IDPManager.cjs.map +1 -1
  573. package/dist/production/src/model/service/idp/IDPManager.js.map +1 -1
  574. package/dist/production/src/model/service/idp/IDPResponseError.cjs.map +1 -1
  575. package/dist/production/src/model/service/idp/IDPResponseError.js.map +1 -1
  576. package/dist/production/src/model/service/idp/IDPValidationError.cjs.map +1 -1
  577. package/dist/production/src/model/service/idp/IDPValidationError.js.map +1 -1
  578. package/dist/production/src/model/service/idp/IdentityProviderNotFoundError.cjs.map +1 -1
  579. package/dist/production/src/model/service/idp/IdentityProviderNotFoundError.js.map +1 -1
  580. package/dist/production/src/model/service/idp/InvalidIDPConfigurationError.cjs.map +1 -1
  581. package/dist/production/src/model/service/idp/InvalidIDPConfigurationError.js.map +1 -1
  582. package/dist/production/src/model/service/idp/providers/AppleProvider.cjs.map +1 -1
  583. package/dist/production/src/model/service/idp/providers/AppleProvider.js.map +1 -1
  584. package/dist/production/src/model/service/idp/providers/FacebookProvider.cjs.map +1 -1
  585. package/dist/production/src/model/service/idp/providers/FacebookProvider.js.map +1 -1
  586. package/dist/production/src/model/service/idp/providers/OIDCHelpers.cjs.map +1 -1
  587. package/dist/production/src/model/service/idp/providers/OIDCHelpers.js.map +1 -1
  588. package/dist/production/src/model/service/idp/providers/OIDCProvider.cjs.map +1 -1
  589. package/dist/production/src/model/service/idp/providers/OIDCProvider.js.map +1 -1
  590. package/dist/production/src/model/service/idp/providers/OIDCTypes.cjs.map +1 -1
  591. package/dist/production/src/model/service/idp/providers/OIDCTypes.js.map +1 -1
  592. package/dist/production/src/model/service/idp/providers/helpers.cjs.map +1 -1
  593. package/dist/production/src/model/service/idp/providers/helpers.js.map +1 -1
  594. package/dist/production/src/model/service/membershipUtils.cjs.map +1 -1
  595. package/dist/production/src/model/service/membershipUtils.js.map +1 -1
  596. package/dist/production/src/model/type/ApiKey.cjs.map +1 -1
  597. package/dist/production/src/model/type/ApiKey.js.map +1 -1
  598. package/dist/production/src/model/utils/DatabaseContext.cjs.map +1 -1
  599. package/dist/production/src/model/utils/DatabaseContext.js.map +1 -1
  600. package/dist/production/src/model/utils/Response.cjs.map +1 -1
  601. package/dist/production/src/model/utils/Response.js.map +1 -1
  602. package/dist/production/src/model/utils/password.cjs.map +1 -1
  603. package/dist/production/src/model/utils/password.js.map +1 -1
  604. package/dist/production/src/model/utils/tokenUtils.cjs.map +1 -1
  605. package/dist/production/src/model/utils/tokenUtils.js.map +1 -1
  606. package/dist/production/src/resolvers/ResolverFactory.cjs.map +1 -1
  607. package/dist/production/src/resolvers/ResolverFactory.js.map +1 -1
  608. package/dist/production/src/resolvers/TenantResolverContextFactory.cjs.map +1 -1
  609. package/dist/production/src/resolvers/TenantResolverContextFactory.js.map +1 -1
  610. package/dist/production/src/resolvers/errorUtils.cjs.map +1 -1
  611. package/dist/production/src/resolvers/errorUtils.js.map +1 -1
  612. package/dist/production/src/resolvers/membershipUtils.cjs.map +1 -1
  613. package/dist/production/src/resolvers/membershipUtils.js.map +1 -1
  614. package/dist/production/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.cjs.map +1 -1
  615. package/dist/production/src/resolvers/mutation/apiKey/CreateApiKeyMutationResolver.js.map +1 -1
  616. package/dist/production/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.cjs.map +1 -1
  617. package/dist/production/src/resolvers/mutation/apiKey/DisableApiKeyMutationResolver.js.map +1 -1
  618. package/dist/production/src/resolvers/mutation/configuration/ConfigurationMutationResolver.cjs.map +1 -1
  619. package/dist/production/src/resolvers/mutation/configuration/ConfigurationMutationResolver.js.map +1 -1
  620. package/dist/production/src/resolvers/mutation/identity/GlobalRolesMutationResolver.cjs.map +1 -1
  621. package/dist/production/src/resolvers/mutation/identity/GlobalRolesMutationResolver.js.map +1 -1
  622. package/dist/production/src/resolvers/mutation/idp/AddIDPMutationResolver.cjs.map +1 -1
  623. package/dist/production/src/resolvers/mutation/idp/AddIDPMutationResolver.js.map +1 -1
  624. package/dist/production/src/resolvers/mutation/idp/DisableIDPMutationResolver.cjs.map +1 -1
  625. package/dist/production/src/resolvers/mutation/idp/DisableIDPMutationResolver.js.map +1 -1
  626. package/dist/production/src/resolvers/mutation/idp/EnableIDPMutationResolver.cjs.map +1 -1
  627. package/dist/production/src/resolvers/mutation/idp/EnableIDPMutationResolver.js.map +1 -1
  628. package/dist/production/src/resolvers/mutation/idp/UpdateIDPMutationResolver.cjs.map +1 -1
  629. package/dist/production/src/resolvers/mutation/idp/UpdateIDPMutationResolver.js.map +1 -1
  630. package/dist/production/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.cjs.map +1 -1
  631. package/dist/production/src/resolvers/mutation/mailTemplates/MailTemplateMutationResolver.js.map +1 -1
  632. package/dist/production/src/resolvers/mutation/person/ChangePasswordMutationResolver.cjs.map +1 -1
  633. package/dist/production/src/resolvers/mutation/person/ChangePasswordMutationResolver.js.map +1 -1
  634. package/dist/production/src/resolvers/mutation/person/ChangeProfileMutationResolver.cjs.map +1 -1
  635. package/dist/production/src/resolvers/mutation/person/ChangeProfileMutationResolver.js.map +1 -1
  636. package/dist/production/src/resolvers/mutation/person/DisablePersonMutationResolver.cjs.map +1 -1
  637. package/dist/production/src/resolvers/mutation/person/DisablePersonMutationResolver.js.map +1 -1
  638. package/dist/production/src/resolvers/mutation/person/IDPMutationResolver.cjs.map +1 -1
  639. package/dist/production/src/resolvers/mutation/person/IDPMutationResolver.js.map +1 -1
  640. package/dist/production/src/resolvers/mutation/person/InviteMutationResolver.cjs.map +1 -1
  641. package/dist/production/src/resolvers/mutation/person/InviteMutationResolver.js.map +1 -1
  642. package/dist/production/src/resolvers/mutation/person/OtpMutationResolver.cjs.map +1 -1
  643. package/dist/production/src/resolvers/mutation/person/OtpMutationResolver.js.map +1 -1
  644. package/dist/production/src/resolvers/mutation/person/PasswordlessMutationResolver.cjs.map +1 -1
  645. package/dist/production/src/resolvers/mutation/person/PasswordlessMutationResolver.js.map +1 -1
  646. package/dist/production/src/resolvers/mutation/person/ResetPasswordMutationResolver.cjs.map +1 -1
  647. package/dist/production/src/resolvers/mutation/person/ResetPasswordMutationResolver.js.map +1 -1
  648. package/dist/production/src/resolvers/mutation/person/SignInMutationResolver.cjs.map +1 -1
  649. package/dist/production/src/resolvers/mutation/person/SignInMutationResolver.js.map +1 -1
  650. package/dist/production/src/resolvers/mutation/person/SignOutMutationResolver.cjs.map +1 -1
  651. package/dist/production/src/resolvers/mutation/person/SignOutMutationResolver.js.map +1 -1
  652. package/dist/production/src/resolvers/mutation/person/SignUpMutationResolver.cjs.map +1 -1
  653. package/dist/production/src/resolvers/mutation/person/SignUpMutationResolver.js.map +1 -1
  654. package/dist/production/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.cjs.map +1 -1
  655. package/dist/production/src/resolvers/mutation/person/TogglePasswordlessMutationResolver.js.map +1 -1
  656. package/dist/production/src/resolvers/mutation/project/CreateProjectMutationResolver.cjs.map +1 -1
  657. package/dist/production/src/resolvers/mutation/project/CreateProjectMutationResolver.js.map +1 -1
  658. package/dist/production/src/resolvers/mutation/project/SetProjectSecretMutationResolver.cjs.map +1 -1
  659. package/dist/production/src/resolvers/mutation/project/SetProjectSecretMutationResolver.js.map +1 -1
  660. package/dist/production/src/resolvers/mutation/project/UpdateProjectMutationResolver.cjs.map +1 -1
  661. package/dist/production/src/resolvers/mutation/project/UpdateProjectMutationResolver.js.map +1 -1
  662. package/dist/production/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.cjs.map +1 -1
  663. package/dist/production/src/resolvers/mutation/projectMember/AddProjectMemberMutationResolver.js.map +1 -1
  664. package/dist/production/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.cjs.map +1 -1
  665. package/dist/production/src/resolvers/mutation/projectMember/RemoveProjectMemberMutationResolver.js.map +1 -1
  666. package/dist/production/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.cjs.map +1 -1
  667. package/dist/production/src/resolvers/mutation/projectMember/UpdateProjectMemberMutationResolver.js.map +1 -1
  668. package/dist/production/src/resolvers/query/ConfigurationQueryResolver.cjs.map +1 -1
  669. package/dist/production/src/resolvers/query/ConfigurationQueryResolver.js.map +1 -1
  670. package/dist/production/src/resolvers/query/IDPQueryResolver.cjs.map +1 -1
  671. package/dist/production/src/resolvers/query/IDPQueryResolver.js.map +1 -1
  672. package/dist/production/src/resolvers/query/MailTemplateQueryResolver.cjs.map +1 -1
  673. package/dist/production/src/resolvers/query/MailTemplateQueryResolver.js.map +1 -1
  674. package/dist/production/src/resolvers/query/MeQueryResolver.cjs.map +1 -1
  675. package/dist/production/src/resolvers/query/MeQueryResolver.js.map +1 -1
  676. package/dist/production/src/resolvers/query/PersonQueryResolver.cjs.map +1 -1
  677. package/dist/production/src/resolvers/query/PersonQueryResolver.js.map +1 -1
  678. package/dist/production/src/resolvers/query/ProjectMembersQueryResolver.cjs.map +1 -1
  679. package/dist/production/src/resolvers/query/ProjectMembersQueryResolver.js.map +1 -1
  680. package/dist/production/src/resolvers/query/ProjectQueryResolver.cjs.map +1 -1
  681. package/dist/production/src/resolvers/query/ProjectQueryResolver.js.map +1 -1
  682. package/dist/production/src/resolvers/responseHelpers/PersonResponseFactory.cjs.map +1 -1
  683. package/dist/production/src/resolvers/responseHelpers/PersonResponseFactory.js.map +1 -1
  684. package/dist/production/src/resolvers/responseHelpers/SignInResponseFactory.cjs.map +1 -1
  685. package/dist/production/src/resolvers/responseHelpers/SignInResponseFactory.js.map +1 -1
  686. package/dist/production/src/resolvers/types/IdentityTypeResolver.cjs.map +1 -1
  687. package/dist/production/src/resolvers/types/IdentityTypeResolver.js.map +1 -1
  688. package/dist/production/src/resolvers/types/ProjectTypeResolver.cjs.map +1 -1
  689. package/dist/production/src/resolvers/types/ProjectTypeResolver.js.map +1 -1
  690. package/dist/production/src/schema/tenant.graphql.cjs.map +1 -1
  691. package/dist/production/src/utils/Mailer.cjs.map +1 -1
  692. package/dist/production/src/utils/Mailer.js.map +1 -1
  693. package/dist/production/src/utils/TemplateRenderer.cjs.map +1 -1
  694. package/dist/production/src/utils/TemplateRenderer.js.map +1 -1
  695. package/dist/production/src/utils/array.cjs.map +1 -1
  696. package/dist/production/src/utils/array.js.map +1 -1
  697. package/dist/production/src/utils/batchQuery.cjs.map +1 -1
  698. package/dist/production/src/utils/batchQuery.js.map +1 -1
  699. package/dist/tests/src/mailer.d.ts.map +1 -1
  700. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  701. package/dist/types/tsconfig.tsbuildinfo +1 -1
  702. package/package.json +13 -13
  703. package/src/model/service/OtpAuthenticator.ts +1 -1
  704. package/tests/cases/integration/mocked/addProjectMemberMutation.test.ts +1 -1
  705. package/tests/cases/integration/mocked/changeMyPasswordMutation.test.ts +2 -2
  706. package/tests/cases/integration/mocked/changeMyProfileMutation.test.ts +2 -2
  707. package/tests/cases/integration/mocked/changePasswordMutation.test.ts +1 -1
  708. package/tests/cases/integration/mocked/changeProfileMutation.test.ts +2 -2
  709. package/tests/cases/integration/mocked/confirmOtpMutation.test.ts +1 -1
  710. package/tests/cases/integration/mocked/createApiKeyMutation.test.ts +1 -1
  711. package/tests/cases/integration/mocked/createSessionKeyMutation.test.ts +1 -1
  712. package/tests/cases/integration/mocked/disableApiKeyMutation.ts +1 -1
  713. package/tests/cases/integration/mocked/inviteMutations.test.ts +1 -1
  714. package/tests/cases/integration/mocked/listProjectMembersQuery.test.ts +1 -1
  715. package/tests/cases/integration/mocked/personByIdQuery.test.ts +1 -1
  716. package/tests/cases/integration/mocked/prepareOtpMutation.test.ts +3 -3
  717. package/tests/cases/integration/mocked/removeProjectMemberMutation.test.ts +1 -1
  718. package/tests/cases/integration/mocked/signInIdpMutation.test.ts +1 -1
  719. package/tests/cases/integration/mocked/signInMutation.test.ts +1 -1
  720. package/tests/cases/integration/mocked/signOutMutation.test.ts +1 -1
  721. package/tests/cases/integration/mocked/signUpMutation.test.ts +1 -1
  722. package/tests/cases/integration/mocked/updateProjectMemberMutation.test.ts +1 -1
  723. package/tests/cases/migrations/2020-06-08-134000-tenant-credentials.test.ts +5 -3
  724. package/tests/cases/unit/authorization/membershipAwareAccessNode.test.ts +9 -9
  725. package/tests/cases/unit/authorization/membershipMatcher.test.ts +10 -10
  726. package/tests/src/mailer.ts +3 -4
  727. package/tests/src/testGraphql.ts +2 -2
  728. package/dist/tests/src/testTenantDb.d.ts +0 -31
  729. package/dist/tests/src/testTenantDb.d.ts.map +0 -1
  730. package/tests/src/testTenantDb.ts +0 -202
@@ -1 +1 @@
1
- {"version":3,"file":"IDPQueryResolver.js","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/query/IDPQueryResolver.ts"],"sourcesContent":["import { IdentityProvider, QueryResolvers } from '../../schema'\nimport { PermissionActions } from '../../model'\nimport { TenantResolverContext } from '../TenantResolverContext'\nimport { IDPManager } from '../../model/service/idp/IDPManager'\n\nexport class IDPQueryResolver implements QueryResolvers {\n\n\tconstructor(\n\t\tprivate readonly idpManager: IDPManager,\n\t) {\n\t}\n\n\tasync identityProviders(parent: unknown, args: unknown, context: TenantResolverContext): Promise<IdentityProvider[]> {\n\t\tawait context.requireAccess({\n\t\t\taction: PermissionActions.IDP_LIST,\n\t\t\tmessage: 'You are not allowed to list IDP',\n\t\t})\n\n\t\treturn await this.idpManager.listIDP(context.db)\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAKO,MAAM,iBAA2C;AAAA,EAEvD,YACkB,YAChB;AADgB,SAAA,aAAA;AAAA,EAElB;AAAA,EAEA,MAAM,kBAAkB,QAAiB,MAAe,SAA6D;AACpH,UAAM,QAAQ,cAAc;AAAA,MAC3B,QAAQ,kBAAkB;AAAA,MAC1B,SAAS;AAAA,IAAA,CACT;AAED,WAAO,MAAM,KAAK,WAAW,QAAQ,QAAQ,EAAE;AAAA,EAChD;AACD;"}
1
+ {"version":3,"file":"IDPQueryResolver.js","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/query/IDPQueryResolver.ts"],"sourcesContent":["import { IdentityProvider, QueryResolvers } from '../../schema'\nimport { PermissionActions } from '../../model'\nimport { TenantResolverContext } from '../TenantResolverContext'\nimport { IDPManager } from '../../model/service/idp/IDPManager'\n\nexport class IDPQueryResolver implements QueryResolvers {\n\n\tconstructor(\n\t\tprivate readonly idpManager: IDPManager,\n\t) {\n\t}\n\n\tasync identityProviders(parent: unknown, args: unknown, context: TenantResolverContext): Promise<IdentityProvider[]> {\n\t\tawait context.requireAccess({\n\t\t\taction: PermissionActions.IDP_LIST,\n\t\t\tmessage: 'You are not allowed to list IDP',\n\t\t})\n\n\t\treturn await this.idpManager.listIDP(context.db)\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAKO,MAAM,iBAA2C;AAAA,EAEvD,YACkB,YAChB;AADgB,SAAA,aAAA;AAAA,EAAA;AAAA,EAIlB,MAAM,kBAAkB,QAAiB,MAAe,SAA6D;AACpH,UAAM,QAAQ,cAAc;AAAA,MAC3B,QAAQ,kBAAkB;AAAA,MAC1B,SAAS;AAAA,IAAA,CACT;AAED,WAAO,MAAM,KAAK,WAAW,QAAQ,QAAQ,EAAE;AAAA,EAAA;AAEjD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"MailTemplateQueryResolver.cjs","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/query/MailTemplateQueryResolver.ts"],"sourcesContent":["import { MailTemplateData, QueryResolvers } from '../../schema'\nimport { MailTemplateListQuery, mailTypeFromDbToSchema, PermissionActions } from '../../model'\nimport { TenantResolverContext } from '../TenantResolverContext'\n\nexport class MailTemplateQueryResolver implements QueryResolvers {\n\tasync mailTemplates(parent: unknown, args: unknown, context: TenantResolverContext): Promise<MailTemplateData[]> {\n\t\tawait context.requireAccess({\n\t\t\taction: PermissionActions.MAIL_TEMPLATE_LIST,\n\t\t\tmessage: 'You are not allowed to list mail templates',\n\t\t})\n\t\treturn (await context.db.queryHandler.fetch(new MailTemplateListQuery())).map(it => ({\n\t\t\t...it,\n\t\t\tvariant: it.variant || null,\n\t\t\ttype: mailTypeFromDbToSchema(it.type),\n\t\t}))\n\t}\n}\n"],"names":["PermissionActions","MailTemplateListQuery","mailTypeFromDbToSchema"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAIO,MAAM,0BAAoD;AAAA,EAChE,MAAM,cAAc,QAAiB,MAAe,SAA6D;AAChH,UAAM,QAAQ,cAAc;AAAA,MAC3B,QAAQA,kBAAkB,kBAAA;AAAA,MAC1B,SAAS;AAAA,IAAA,CACT;AACO,YAAA,MAAM,QAAQ,GAAG,aAAa,MAAM,IAAIC,sBAAAA,uBAAuB,GAAG,IAAI,CAAO,QAAA;AAAA,MACpF,GAAG;AAAA,MACH,SAAS,GAAG,WAAW;AAAA,MACvB,MAAMC,KAAAA,uBAAuB,GAAG,IAAI;AAAA,IACnC,EAAA;AAAA,EACH;AACD;;"}
1
+ {"version":3,"file":"MailTemplateQueryResolver.cjs","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/query/MailTemplateQueryResolver.ts"],"sourcesContent":["import { MailTemplateData, QueryResolvers } from '../../schema'\nimport { MailTemplateListQuery, mailTypeFromDbToSchema, PermissionActions } from '../../model'\nimport { TenantResolverContext } from '../TenantResolverContext'\n\nexport class MailTemplateQueryResolver implements QueryResolvers {\n\tasync mailTemplates(parent: unknown, args: unknown, context: TenantResolverContext): Promise<MailTemplateData[]> {\n\t\tawait context.requireAccess({\n\t\t\taction: PermissionActions.MAIL_TEMPLATE_LIST,\n\t\t\tmessage: 'You are not allowed to list mail templates',\n\t\t})\n\t\treturn (await context.db.queryHandler.fetch(new MailTemplateListQuery())).map(it => ({\n\t\t\t...it,\n\t\t\tvariant: it.variant || null,\n\t\t\ttype: mailTypeFromDbToSchema(it.type),\n\t\t}))\n\t}\n}\n"],"names":["PermissionActions","MailTemplateListQuery","mailTypeFromDbToSchema"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAIO,MAAM,0BAAoD;AAAA,EAChE,MAAM,cAAc,QAAiB,MAAe,SAA6D;AAChH,UAAM,QAAQ,cAAc;AAAA,MAC3B,QAAQA,kBAAkB,kBAAA;AAAA,MAC1B,SAAS;AAAA,IAAA,CACT;AACO,YAAA,MAAM,QAAQ,GAAG,aAAa,MAAM,IAAIC,sBAAAA,uBAAuB,GAAG,IAAI,CAAO,QAAA;AAAA,MACpF,GAAG;AAAA,MACH,SAAS,GAAG,WAAW;AAAA,MACvB,MAAMC,KAAAA,uBAAuB,GAAG,IAAI;AAAA,IAAA,EACnC;AAAA,EAAA;AAEJ;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"MailTemplateQueryResolver.js","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/query/MailTemplateQueryResolver.ts"],"sourcesContent":["import { MailTemplateData, QueryResolvers } from '../../schema'\nimport { MailTemplateListQuery, mailTypeFromDbToSchema, PermissionActions } from '../../model'\nimport { TenantResolverContext } from '../TenantResolverContext'\n\nexport class MailTemplateQueryResolver implements QueryResolvers {\n\tasync mailTemplates(parent: unknown, args: unknown, context: TenantResolverContext): Promise<MailTemplateData[]> {\n\t\tawait context.requireAccess({\n\t\t\taction: PermissionActions.MAIL_TEMPLATE_LIST,\n\t\t\tmessage: 'You are not allowed to list mail templates',\n\t\t})\n\t\treturn (await context.db.queryHandler.fetch(new MailTemplateListQuery())).map(it => ({\n\t\t\t...it,\n\t\t\tvariant: it.variant || null,\n\t\t\ttype: mailTypeFromDbToSchema(it.type),\n\t\t}))\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAIO,MAAM,0BAAoD;AAAA,EAChE,MAAM,cAAc,QAAiB,MAAe,SAA6D;AAChH,UAAM,QAAQ,cAAc;AAAA,MAC3B,QAAQ,kBAAkB;AAAA,MAC1B,SAAS;AAAA,IAAA,CACT;AACO,YAAA,MAAM,QAAQ,GAAG,aAAa,MAAM,IAAI,uBAAuB,GAAG,IAAI,CAAO,QAAA;AAAA,MACpF,GAAG;AAAA,MACH,SAAS,GAAG,WAAW;AAAA,MACvB,MAAM,uBAAuB,GAAG,IAAI;AAAA,IACnC,EAAA;AAAA,EACH;AACD;"}
1
+ {"version":3,"file":"MailTemplateQueryResolver.js","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/query/MailTemplateQueryResolver.ts"],"sourcesContent":["import { MailTemplateData, QueryResolvers } from '../../schema'\nimport { MailTemplateListQuery, mailTypeFromDbToSchema, PermissionActions } from '../../model'\nimport { TenantResolverContext } from '../TenantResolverContext'\n\nexport class MailTemplateQueryResolver implements QueryResolvers {\n\tasync mailTemplates(parent: unknown, args: unknown, context: TenantResolverContext): Promise<MailTemplateData[]> {\n\t\tawait context.requireAccess({\n\t\t\taction: PermissionActions.MAIL_TEMPLATE_LIST,\n\t\t\tmessage: 'You are not allowed to list mail templates',\n\t\t})\n\t\treturn (await context.db.queryHandler.fetch(new MailTemplateListQuery())).map(it => ({\n\t\t\t...it,\n\t\t\tvariant: it.variant || null,\n\t\t\ttype: mailTypeFromDbToSchema(it.type),\n\t\t}))\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAIO,MAAM,0BAAoD;AAAA,EAChE,MAAM,cAAc,QAAiB,MAAe,SAA6D;AAChH,UAAM,QAAQ,cAAc;AAAA,MAC3B,QAAQ,kBAAkB;AAAA,MAC1B,SAAS;AAAA,IAAA,CACT;AACO,YAAA,MAAM,QAAQ,GAAG,aAAa,MAAM,IAAI,uBAAuB,GAAG,IAAI,CAAO,QAAA;AAAA,MACpF,GAAG;AAAA,MACH,SAAS,GAAG,WAAW;AAAA,MACvB,MAAM,uBAAuB,GAAG,IAAI;AAAA,IAAA,EACnC;AAAA,EAAA;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"MeQueryResolver.cjs","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/query/MeQueryResolver.ts"],"sourcesContent":["import { Identity, QueryResolvers } from '../../schema'\nimport { TenantResolverContext } from '../TenantResolverContext'\n\nexport class MeQueryResolver implements QueryResolvers {\n\tme(parent: unknown, args: unknown, context: TenantResolverContext): Identity {\n\t\treturn {\n\t\t\tid: context.identity.id,\n\t\t\tprojects: [],\n\t\t\tperson: null,\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;AAGO,MAAM,gBAA0C;AAAA,EACtD,GAAG,QAAiB,MAAe,SAA0C;AACrE,WAAA;AAAA,MACN,IAAI,QAAQ,SAAS;AAAA,MACrB,UAAU,CAAC;AAAA,MACX,QAAQ;AAAA,IAAA;AAAA,EAEV;AACD;;"}
1
+ {"version":3,"file":"MeQueryResolver.cjs","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/query/MeQueryResolver.ts"],"sourcesContent":["import { Identity, QueryResolvers } from '../../schema'\nimport { TenantResolverContext } from '../TenantResolverContext'\n\nexport class MeQueryResolver implements QueryResolvers {\n\tme(parent: unknown, args: unknown, context: TenantResolverContext): Identity {\n\t\treturn {\n\t\t\tid: context.identity.id,\n\t\t\tprojects: [],\n\t\t\tperson: null,\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;AAGO,MAAM,gBAA0C;AAAA,EACtD,GAAG,QAAiB,MAAe,SAA0C;AACrE,WAAA;AAAA,MACN,IAAI,QAAQ,SAAS;AAAA,MACrB,UAAU,CAAC;AAAA,MACX,QAAQ;AAAA,IACT;AAAA,EAAA;AAEF;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"MeQueryResolver.js","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/query/MeQueryResolver.ts"],"sourcesContent":["import { Identity, QueryResolvers } from '../../schema'\nimport { TenantResolverContext } from '../TenantResolverContext'\n\nexport class MeQueryResolver implements QueryResolvers {\n\tme(parent: unknown, args: unknown, context: TenantResolverContext): Identity {\n\t\treturn {\n\t\t\tid: context.identity.id,\n\t\t\tprojects: [],\n\t\t\tperson: null,\n\t\t}\n\t}\n}\n"],"names":[],"mappings":"AAGO,MAAM,gBAA0C;AAAA,EACtD,GAAG,QAAiB,MAAe,SAA0C;AACrE,WAAA;AAAA,MACN,IAAI,QAAQ,SAAS;AAAA,MACrB,UAAU,CAAC;AAAA,MACX,QAAQ;AAAA,IAAA;AAAA,EAEV;AACD;"}
1
+ {"version":3,"file":"MeQueryResolver.js","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/query/MeQueryResolver.ts"],"sourcesContent":["import { Identity, QueryResolvers } from '../../schema'\nimport { TenantResolverContext } from '../TenantResolverContext'\n\nexport class MeQueryResolver implements QueryResolvers {\n\tme(parent: unknown, args: unknown, context: TenantResolverContext): Identity {\n\t\treturn {\n\t\t\tid: context.identity.id,\n\t\t\tprojects: [],\n\t\t\tperson: null,\n\t\t}\n\t}\n}\n"],"names":[],"mappings":"AAGO,MAAM,gBAA0C;AAAA,EACtD,GAAG,QAAiB,MAAe,SAA0C;AACrE,WAAA;AAAA,MACN,IAAI,QAAQ,SAAS;AAAA,MACrB,UAAU,CAAC;AAAA,MACX,QAAQ;AAAA,IACT;AAAA,EAAA;AAEF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PersonQueryResolver.cjs","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/query/PersonQueryResolver.ts"],"sourcesContent":["import {\n\tMaybe,\n\tPerson,\n\tQueryPersonByIdArgs,\n\tQueryResolvers,\n} from '../../schema'\nimport { TenantResolverContext } from '../TenantResolverContext'\nimport { PermissionActions, PersonManager } from '../../model'\nimport { PersonResponseFactory } from '../responseHelpers/PersonResponseFactory'\n\nexport class PersonQueryResolver implements QueryResolvers {\n\tconstructor(private readonly personManager: PersonManager) {}\n\n\tasync personById(\n\t\tparent: unknown,\n\t\targs: QueryPersonByIdArgs,\n\t\tcontext: TenantResolverContext,\n\t): Promise<Maybe<Person>> {\n\t\tconst person = await this.personManager.findPersonById(context.db, args.id)\n\t\tif (!person || !(await context.isAllowed({ action: PermissionActions.PERSON_VIEW }))) {\n\t\t\treturn null\n\t\t}\n\n\t\treturn await PersonResponseFactory.createPersonResponse(person)\n\t}\n}\n"],"names":["PermissionActions","PersonResponseFactory"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAUO,MAAM,oBAA8C;AAAA,EAC1D,YAA6B,eAA8B;AAA9B,SAAA,gBAAA;AAAA,EAA+B;AAAA,EAE5D,MAAM,WACL,QACA,MACA,SACyB;AACnB,UAAA,SAAS,MAAM,KAAK,cAAc,eAAe,QAAQ,IAAI,KAAK,EAAE;AACtE,QAAA,CAAC,UAAU,CAAE,MAAM,QAAQ,UAAU,EAAE,QAAQA,kBAAAA,kBAAkB,YAAY,CAAC,GAAI;AAC9E,aAAA;AAAA,IACR;AAEO,WAAA,MAAMC,sBAAsB,sBAAA,qBAAqB,MAAM;AAAA,EAC/D;AACD;;"}
1
+ {"version":3,"file":"PersonQueryResolver.cjs","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/query/PersonQueryResolver.ts"],"sourcesContent":["import {\n\tMaybe,\n\tPerson,\n\tQueryPersonByIdArgs,\n\tQueryResolvers,\n} from '../../schema'\nimport { TenantResolverContext } from '../TenantResolverContext'\nimport { PermissionActions, PersonManager } from '../../model'\nimport { PersonResponseFactory } from '../responseHelpers/PersonResponseFactory'\n\nexport class PersonQueryResolver implements QueryResolvers {\n\tconstructor(private readonly personManager: PersonManager) {}\n\n\tasync personById(\n\t\tparent: unknown,\n\t\targs: QueryPersonByIdArgs,\n\t\tcontext: TenantResolverContext,\n\t): Promise<Maybe<Person>> {\n\t\tconst person = await this.personManager.findPersonById(context.db, args.id)\n\t\tif (!person || !(await context.isAllowed({ action: PermissionActions.PERSON_VIEW }))) {\n\t\t\treturn null\n\t\t}\n\n\t\treturn await PersonResponseFactory.createPersonResponse(person)\n\t}\n}\n"],"names":["PermissionActions","PersonResponseFactory"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAUO,MAAM,oBAA8C;AAAA,EAC1D,YAA6B,eAA8B;AAA9B,SAAA,gBAAA;AAAA,EAAA;AAAA,EAE7B,MAAM,WACL,QACA,MACA,SACyB;AACnB,UAAA,SAAS,MAAM,KAAK,cAAc,eAAe,QAAQ,IAAI,KAAK,EAAE;AACtE,QAAA,CAAC,UAAU,CAAE,MAAM,QAAQ,UAAU,EAAE,QAAQA,kBAAAA,kBAAkB,YAAY,CAAC,GAAI;AAC9E,aAAA;AAAA,IAAA;AAGD,WAAA,MAAMC,sBAAAA,sBAAsB,qBAAqB,MAAM;AAAA,EAAA;AAEhE;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PersonQueryResolver.js","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/query/PersonQueryResolver.ts"],"sourcesContent":["import {\n\tMaybe,\n\tPerson,\n\tQueryPersonByIdArgs,\n\tQueryResolvers,\n} from '../../schema'\nimport { TenantResolverContext } from '../TenantResolverContext'\nimport { PermissionActions, PersonManager } from '../../model'\nimport { PersonResponseFactory } from '../responseHelpers/PersonResponseFactory'\n\nexport class PersonQueryResolver implements QueryResolvers {\n\tconstructor(private readonly personManager: PersonManager) {}\n\n\tasync personById(\n\t\tparent: unknown,\n\t\targs: QueryPersonByIdArgs,\n\t\tcontext: TenantResolverContext,\n\t): Promise<Maybe<Person>> {\n\t\tconst person = await this.personManager.findPersonById(context.db, args.id)\n\t\tif (!person || !(await context.isAllowed({ action: PermissionActions.PERSON_VIEW }))) {\n\t\t\treturn null\n\t\t}\n\n\t\treturn await PersonResponseFactory.createPersonResponse(person)\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAUO,MAAM,oBAA8C;AAAA,EAC1D,YAA6B,eAA8B;AAA9B,SAAA,gBAAA;AAAA,EAA+B;AAAA,EAE5D,MAAM,WACL,QACA,MACA,SACyB;AACnB,UAAA,SAAS,MAAM,KAAK,cAAc,eAAe,QAAQ,IAAI,KAAK,EAAE;AACtE,QAAA,CAAC,UAAU,CAAE,MAAM,QAAQ,UAAU,EAAE,QAAQ,kBAAkB,YAAY,CAAC,GAAI;AAC9E,aAAA;AAAA,IACR;AAEO,WAAA,MAAM,sBAAsB,qBAAqB,MAAM;AAAA,EAC/D;AACD;"}
1
+ {"version":3,"file":"PersonQueryResolver.js","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/query/PersonQueryResolver.ts"],"sourcesContent":["import {\n\tMaybe,\n\tPerson,\n\tQueryPersonByIdArgs,\n\tQueryResolvers,\n} from '../../schema'\nimport { TenantResolverContext } from '../TenantResolverContext'\nimport { PermissionActions, PersonManager } from '../../model'\nimport { PersonResponseFactory } from '../responseHelpers/PersonResponseFactory'\n\nexport class PersonQueryResolver implements QueryResolvers {\n\tconstructor(private readonly personManager: PersonManager) {}\n\n\tasync personById(\n\t\tparent: unknown,\n\t\targs: QueryPersonByIdArgs,\n\t\tcontext: TenantResolverContext,\n\t): Promise<Maybe<Person>> {\n\t\tconst person = await this.personManager.findPersonById(context.db, args.id)\n\t\tif (!person || !(await context.isAllowed({ action: PermissionActions.PERSON_VIEW }))) {\n\t\t\treturn null\n\t\t}\n\n\t\treturn await PersonResponseFactory.createPersonResponse(person)\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAUO,MAAM,oBAA8C;AAAA,EAC1D,YAA6B,eAA8B;AAA9B,SAAA,gBAAA;AAAA,EAAA;AAAA,EAE7B,MAAM,WACL,QACA,MACA,SACyB;AACnB,UAAA,SAAS,MAAM,KAAK,cAAc,eAAe,QAAQ,IAAI,KAAK,EAAE;AACtE,QAAA,CAAC,UAAU,CAAE,MAAM,QAAQ,UAAU,EAAE,QAAQ,kBAAkB,YAAY,CAAC,GAAI;AAC9E,aAAA;AAAA,IAAA;AAGD,WAAA,MAAM,sBAAsB,qBAAqB,MAAM;AAAA,EAAA;AAEhE;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectMembersQueryResolver.cjs","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/query/ProjectMembersQueryResolver.ts"],"sourcesContent":["import { Membership, QueryProjectMembershipsArgs, QueryResolvers } from '../../schema'\nimport { TenantResolverContext } from '../TenantResolverContext'\nimport { PermissionActions, ProjectManager, ProjectMemberManager } from '../../model'\n\nexport class ProjectMembersQueryResolver implements QueryResolvers {\n\tconstructor(\n\t\tprivate readonly projectManager: ProjectManager,\n\t\tprivate readonly projectMemberManager: ProjectMemberManager,\n\t) {}\n\n\tasync projectMemberships(\n\t\tparent: unknown,\n\t\targs: QueryProjectMembershipsArgs,\n\t\tcontext: TenantResolverContext,\n\t): Promise<readonly Membership[]> {\n\t\tconst project = await this.projectManager.getProjectBySlug(context.db, args.projectSlug)\n\t\tconst projectScope = await context.permissionContext.createProjectScope(project)\n\t\tif (\n\t\t\t!project ||\n\t\t\t!(await context.isAllowed({\n\t\t\t\tscope: projectScope,\n\t\t\t\taction: PermissionActions.PROJECT_VIEW_MEMBER([]),\n\t\t\t}))\n\t\t) {\n\t\t\treturn []\n\t\t}\n\t\tconst verifier = context.permissionContext.createAccessVerifier(projectScope)\n\n\t\treturn await this.projectMemberManager.getAllProjectMemberships(context.db, { id: project.id }, { id: args.identityId }, verifier)\n\t}\n}\n"],"names":["PermissionActions"],"mappings":";;;;;;;;;;;;;;;;;;;;AAIO,MAAM,4BAAsD;AAAA,EAClE,YACkB,gBACA,sBAChB;AAFgB,SAAA,iBAAA;AACA,SAAA,uBAAA;AAAA,EACf;AAAA,EAEH,MAAM,mBACL,QACA,MACA,SACiC;AAC3B,UAAA,UAAU,MAAM,KAAK,eAAe,iBAAiB,QAAQ,IAAI,KAAK,WAAW;AACvF,UAAM,eAAe,MAAM,QAAQ,kBAAkB,mBAAmB,OAAO;AAC/E,QACC,CAAC,WACD,CAAE,MAAM,QAAQ,UAAU;AAAA,MACzB,OAAO;AAAA,MACP,QAAQA,kBAAAA,kBAAkB,oBAAoB,EAAE;AAAA,IAAA,CAChD,GACA;AACD,aAAO;IACR;AACA,UAAM,WAAW,QAAQ,kBAAkB,qBAAqB,YAAY;AAE5E,WAAO,MAAM,KAAK,qBAAqB,yBAAyB,QAAQ,IAAI,EAAE,IAAI,QAAQ,GAAA,GAAM,EAAE,IAAI,KAAK,WAAA,GAAc,QAAQ;AAAA,EAClI;AACD;;"}
1
+ {"version":3,"file":"ProjectMembersQueryResolver.cjs","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/query/ProjectMembersQueryResolver.ts"],"sourcesContent":["import { Membership, QueryProjectMembershipsArgs, QueryResolvers } from '../../schema'\nimport { TenantResolverContext } from '../TenantResolverContext'\nimport { PermissionActions, ProjectManager, ProjectMemberManager } from '../../model'\n\nexport class ProjectMembersQueryResolver implements QueryResolvers {\n\tconstructor(\n\t\tprivate readonly projectManager: ProjectManager,\n\t\tprivate readonly projectMemberManager: ProjectMemberManager,\n\t) {}\n\n\tasync projectMemberships(\n\t\tparent: unknown,\n\t\targs: QueryProjectMembershipsArgs,\n\t\tcontext: TenantResolverContext,\n\t): Promise<readonly Membership[]> {\n\t\tconst project = await this.projectManager.getProjectBySlug(context.db, args.projectSlug)\n\t\tconst projectScope = await context.permissionContext.createProjectScope(project)\n\t\tif (\n\t\t\t!project ||\n\t\t\t!(await context.isAllowed({\n\t\t\t\tscope: projectScope,\n\t\t\t\taction: PermissionActions.PROJECT_VIEW_MEMBER([]),\n\t\t\t}))\n\t\t) {\n\t\t\treturn []\n\t\t}\n\t\tconst verifier = context.permissionContext.createAccessVerifier(projectScope)\n\n\t\treturn await this.projectMemberManager.getAllProjectMemberships(context.db, { id: project.id }, { id: args.identityId }, verifier)\n\t}\n}\n"],"names":["PermissionActions"],"mappings":";;;;;;;;;;;;;;;;;;;;AAIO,MAAM,4BAAsD;AAAA,EAClE,YACkB,gBACA,sBAChB;AAFgB,SAAA,iBAAA;AACA,SAAA,uBAAA;AAAA,EAAA;AAAA,EAGlB,MAAM,mBACL,QACA,MACA,SACiC;AAC3B,UAAA,UAAU,MAAM,KAAK,eAAe,iBAAiB,QAAQ,IAAI,KAAK,WAAW;AACvF,UAAM,eAAe,MAAM,QAAQ,kBAAkB,mBAAmB,OAAO;AAC/E,QACC,CAAC,WACD,CAAE,MAAM,QAAQ,UAAU;AAAA,MACzB,OAAO;AAAA,MACP,QAAQA,kBAAAA,kBAAkB,oBAAoB,CAAE,CAAA;AAAA,IAAA,CAChD,GACA;AACD,aAAO,CAAC;AAAA,IAAA;AAET,UAAM,WAAW,QAAQ,kBAAkB,qBAAqB,YAAY;AAE5E,WAAO,MAAM,KAAK,qBAAqB,yBAAyB,QAAQ,IAAI,EAAE,IAAI,QAAQ,MAAM,EAAE,IAAI,KAAK,cAAc,QAAQ;AAAA,EAAA;AAEnI;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectMembersQueryResolver.js","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/query/ProjectMembersQueryResolver.ts"],"sourcesContent":["import { Membership, QueryProjectMembershipsArgs, QueryResolvers } from '../../schema'\nimport { TenantResolverContext } from '../TenantResolverContext'\nimport { PermissionActions, ProjectManager, ProjectMemberManager } from '../../model'\n\nexport class ProjectMembersQueryResolver implements QueryResolvers {\n\tconstructor(\n\t\tprivate readonly projectManager: ProjectManager,\n\t\tprivate readonly projectMemberManager: ProjectMemberManager,\n\t) {}\n\n\tasync projectMemberships(\n\t\tparent: unknown,\n\t\targs: QueryProjectMembershipsArgs,\n\t\tcontext: TenantResolverContext,\n\t): Promise<readonly Membership[]> {\n\t\tconst project = await this.projectManager.getProjectBySlug(context.db, args.projectSlug)\n\t\tconst projectScope = await context.permissionContext.createProjectScope(project)\n\t\tif (\n\t\t\t!project ||\n\t\t\t!(await context.isAllowed({\n\t\t\t\tscope: projectScope,\n\t\t\t\taction: PermissionActions.PROJECT_VIEW_MEMBER([]),\n\t\t\t}))\n\t\t) {\n\t\t\treturn []\n\t\t}\n\t\tconst verifier = context.permissionContext.createAccessVerifier(projectScope)\n\n\t\treturn await this.projectMemberManager.getAllProjectMemberships(context.db, { id: project.id }, { id: args.identityId }, verifier)\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAIO,MAAM,4BAAsD;AAAA,EAClE,YACkB,gBACA,sBAChB;AAFgB,SAAA,iBAAA;AACA,SAAA,uBAAA;AAAA,EACf;AAAA,EAEH,MAAM,mBACL,QACA,MACA,SACiC;AAC3B,UAAA,UAAU,MAAM,KAAK,eAAe,iBAAiB,QAAQ,IAAI,KAAK,WAAW;AACvF,UAAM,eAAe,MAAM,QAAQ,kBAAkB,mBAAmB,OAAO;AAC/E,QACC,CAAC,WACD,CAAE,MAAM,QAAQ,UAAU;AAAA,MACzB,OAAO;AAAA,MACP,QAAQ,kBAAkB,oBAAoB,EAAE;AAAA,IAAA,CAChD,GACA;AACD,aAAO;IACR;AACA,UAAM,WAAW,QAAQ,kBAAkB,qBAAqB,YAAY;AAE5E,WAAO,MAAM,KAAK,qBAAqB,yBAAyB,QAAQ,IAAI,EAAE,IAAI,QAAQ,GAAA,GAAM,EAAE,IAAI,KAAK,WAAA,GAAc,QAAQ;AAAA,EAClI;AACD;"}
1
+ {"version":3,"file":"ProjectMembersQueryResolver.js","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/query/ProjectMembersQueryResolver.ts"],"sourcesContent":["import { Membership, QueryProjectMembershipsArgs, QueryResolvers } from '../../schema'\nimport { TenantResolverContext } from '../TenantResolverContext'\nimport { PermissionActions, ProjectManager, ProjectMemberManager } from '../../model'\n\nexport class ProjectMembersQueryResolver implements QueryResolvers {\n\tconstructor(\n\t\tprivate readonly projectManager: ProjectManager,\n\t\tprivate readonly projectMemberManager: ProjectMemberManager,\n\t) {}\n\n\tasync projectMemberships(\n\t\tparent: unknown,\n\t\targs: QueryProjectMembershipsArgs,\n\t\tcontext: TenantResolverContext,\n\t): Promise<readonly Membership[]> {\n\t\tconst project = await this.projectManager.getProjectBySlug(context.db, args.projectSlug)\n\t\tconst projectScope = await context.permissionContext.createProjectScope(project)\n\t\tif (\n\t\t\t!project ||\n\t\t\t!(await context.isAllowed({\n\t\t\t\tscope: projectScope,\n\t\t\t\taction: PermissionActions.PROJECT_VIEW_MEMBER([]),\n\t\t\t}))\n\t\t) {\n\t\t\treturn []\n\t\t}\n\t\tconst verifier = context.permissionContext.createAccessVerifier(projectScope)\n\n\t\treturn await this.projectMemberManager.getAllProjectMemberships(context.db, { id: project.id }, { id: args.identityId }, verifier)\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAIO,MAAM,4BAAsD;AAAA,EAClE,YACkB,gBACA,sBAChB;AAFgB,SAAA,iBAAA;AACA,SAAA,uBAAA;AAAA,EAAA;AAAA,EAGlB,MAAM,mBACL,QACA,MACA,SACiC;AAC3B,UAAA,UAAU,MAAM,KAAK,eAAe,iBAAiB,QAAQ,IAAI,KAAK,WAAW;AACvF,UAAM,eAAe,MAAM,QAAQ,kBAAkB,mBAAmB,OAAO;AAC/E,QACC,CAAC,WACD,CAAE,MAAM,QAAQ,UAAU;AAAA,MACzB,OAAO;AAAA,MACP,QAAQ,kBAAkB,oBAAoB,CAAE,CAAA;AAAA,IAAA,CAChD,GACA;AACD,aAAO,CAAC;AAAA,IAAA;AAET,UAAM,WAAW,QAAQ,kBAAkB,qBAAqB,YAAY;AAE5E,WAAO,MAAM,KAAK,qBAAqB,yBAAyB,QAAQ,IAAI,EAAE,IAAI,QAAQ,MAAM,EAAE,IAAI,KAAK,cAAc,QAAQ;AAAA,EAAA;AAEnI;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectQueryResolver.cjs","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/query/ProjectQueryResolver.ts"],"sourcesContent":["import { Maybe, Project, QueryProjectBySlugArgs, QueryResolvers } from '../../schema'\nimport { TenantResolverContext } from '../TenantResolverContext'\nimport { PermissionActions, ProjectManager } from '../../model'\n\nexport class ProjectQueryResolver implements QueryResolvers {\n\tconstructor(private readonly projectManager: ProjectManager) {}\n\n\tasync projects(parent: unknown, args: unknown, context: TenantResolverContext): Promise<readonly Project[]> {\n\t\treturn (await this.projectManager.getProjectsByIdentity(context.db, context.identity.id, context.permissionContext)).map(\n\t\t\tit => ({ ...it, members: [], roles: [] }),\n\t\t)\n\t}\n\n\tasync projectBySlug(\n\t\tparent: unknown,\n\t\targs: QueryProjectBySlugArgs,\n\t\tcontext: TenantResolverContext,\n\t): Promise<Maybe<Project>> {\n\t\tconst project = await this.projectManager.getProjectBySlug(context.db, args.slug)\n\t\tif (\n\t\t\t!project ||\n\t\t\t!(await context.isAllowed({\n\t\t\t\tscope: await context.permissionContext.createProjectScope(project),\n\t\t\t\taction: PermissionActions.PROJECT_VIEW,\n\t\t\t}))\n\t\t) {\n\t\t\treturn null\n\t\t}\n\n\t\treturn { ...project, members: [], roles: [] }\n\t}\n}\n"],"names":["PermissionActions"],"mappings":";;;;;;;;;;;;;;;;;;;;AAIO,MAAM,qBAA+C;AAAA,EAC3D,YAA6B,gBAAgC;AAAhC,SAAA,iBAAA;AAAA,EAAiC;AAAA,EAE9D,MAAM,SAAS,QAAiB,MAAe,SAA6D;AACnG,YAAA,MAAM,KAAK,eAAe,sBAAsB,QAAQ,IAAI,QAAQ,SAAS,IAAI,QAAQ,iBAAiB,GAAG;AAAA,MACpH,CAAA,QAAO,EAAE,GAAG,IAAI,SAAS,IAAI,OAAO,CAAA;IAAG;AAAA,EAEzC;AAAA,EAEA,MAAM,cACL,QACA,MACA,SAC0B;AACpB,UAAA,UAAU,MAAM,KAAK,eAAe,iBAAiB,QAAQ,IAAI,KAAK,IAAI;AAChF,QACC,CAAC,WACD,CAAE,MAAM,QAAQ,UAAU;AAAA,MACzB,OAAO,MAAM,QAAQ,kBAAkB,mBAAmB,OAAO;AAAA,MACjE,QAAQA,kBAAkB,kBAAA;AAAA,IAAA,CAC1B,GACA;AACM,aAAA;AAAA,IACR;AAEO,WAAA,EAAE,GAAG,SAAS,SAAS,CAAA,GAAI,OAAO,CAAA;EAC1C;AACD;;"}
1
+ {"version":3,"file":"ProjectQueryResolver.cjs","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/query/ProjectQueryResolver.ts"],"sourcesContent":["import { Maybe, Project, QueryProjectBySlugArgs, QueryResolvers } from '../../schema'\nimport { TenantResolverContext } from '../TenantResolverContext'\nimport { PermissionActions, ProjectManager } from '../../model'\n\nexport class ProjectQueryResolver implements QueryResolvers {\n\tconstructor(private readonly projectManager: ProjectManager) {}\n\n\tasync projects(parent: unknown, args: unknown, context: TenantResolverContext): Promise<readonly Project[]> {\n\t\treturn (await this.projectManager.getProjectsByIdentity(context.db, context.identity.id, context.permissionContext)).map(\n\t\t\tit => ({ ...it, members: [], roles: [] }),\n\t\t)\n\t}\n\n\tasync projectBySlug(\n\t\tparent: unknown,\n\t\targs: QueryProjectBySlugArgs,\n\t\tcontext: TenantResolverContext,\n\t): Promise<Maybe<Project>> {\n\t\tconst project = await this.projectManager.getProjectBySlug(context.db, args.slug)\n\t\tif (\n\t\t\t!project ||\n\t\t\t!(await context.isAllowed({\n\t\t\t\tscope: await context.permissionContext.createProjectScope(project),\n\t\t\t\taction: PermissionActions.PROJECT_VIEW,\n\t\t\t}))\n\t\t) {\n\t\t\treturn null\n\t\t}\n\n\t\treturn { ...project, members: [], roles: [] }\n\t}\n}\n"],"names":["PermissionActions"],"mappings":";;;;;;;;;;;;;;;;;;;;AAIO,MAAM,qBAA+C;AAAA,EAC3D,YAA6B,gBAAgC;AAAhC,SAAA,iBAAA;AAAA,EAAA;AAAA,EAE7B,MAAM,SAAS,QAAiB,MAAe,SAA6D;AACnG,YAAA,MAAM,KAAK,eAAe,sBAAsB,QAAQ,IAAI,QAAQ,SAAS,IAAI,QAAQ,iBAAiB,GAAG;AAAA,MACpH,CAAA,QAAO,EAAE,GAAG,IAAI,SAAS,CAAC,GAAG,OAAO,GAAG;AAAA,IACxC;AAAA,EAAA;AAAA,EAGD,MAAM,cACL,QACA,MACA,SAC0B;AACpB,UAAA,UAAU,MAAM,KAAK,eAAe,iBAAiB,QAAQ,IAAI,KAAK,IAAI;AAChF,QACC,CAAC,WACD,CAAE,MAAM,QAAQ,UAAU;AAAA,MACzB,OAAO,MAAM,QAAQ,kBAAkB,mBAAmB,OAAO;AAAA,MACjE,QAAQA,kBAAAA,kBAAkB;AAAA,IAAA,CAC1B,GACA;AACM,aAAA;AAAA,IAAA;AAGD,WAAA,EAAE,GAAG,SAAS,SAAS,CAAA,GAAI,OAAO,CAAA,EAAG;AAAA,EAAA;AAE9C;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectQueryResolver.js","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/query/ProjectQueryResolver.ts"],"sourcesContent":["import { Maybe, Project, QueryProjectBySlugArgs, QueryResolvers } from '../../schema'\nimport { TenantResolverContext } from '../TenantResolverContext'\nimport { PermissionActions, ProjectManager } from '../../model'\n\nexport class ProjectQueryResolver implements QueryResolvers {\n\tconstructor(private readonly projectManager: ProjectManager) {}\n\n\tasync projects(parent: unknown, args: unknown, context: TenantResolverContext): Promise<readonly Project[]> {\n\t\treturn (await this.projectManager.getProjectsByIdentity(context.db, context.identity.id, context.permissionContext)).map(\n\t\t\tit => ({ ...it, members: [], roles: [] }),\n\t\t)\n\t}\n\n\tasync projectBySlug(\n\t\tparent: unknown,\n\t\targs: QueryProjectBySlugArgs,\n\t\tcontext: TenantResolverContext,\n\t): Promise<Maybe<Project>> {\n\t\tconst project = await this.projectManager.getProjectBySlug(context.db, args.slug)\n\t\tif (\n\t\t\t!project ||\n\t\t\t!(await context.isAllowed({\n\t\t\t\tscope: await context.permissionContext.createProjectScope(project),\n\t\t\t\taction: PermissionActions.PROJECT_VIEW,\n\t\t\t}))\n\t\t) {\n\t\t\treturn null\n\t\t}\n\n\t\treturn { ...project, members: [], roles: [] }\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAIO,MAAM,qBAA+C;AAAA,EAC3D,YAA6B,gBAAgC;AAAhC,SAAA,iBAAA;AAAA,EAAiC;AAAA,EAE9D,MAAM,SAAS,QAAiB,MAAe,SAA6D;AACnG,YAAA,MAAM,KAAK,eAAe,sBAAsB,QAAQ,IAAI,QAAQ,SAAS,IAAI,QAAQ,iBAAiB,GAAG;AAAA,MACpH,CAAA,QAAO,EAAE,GAAG,IAAI,SAAS,IAAI,OAAO,CAAA;IAAG;AAAA,EAEzC;AAAA,EAEA,MAAM,cACL,QACA,MACA,SAC0B;AACpB,UAAA,UAAU,MAAM,KAAK,eAAe,iBAAiB,QAAQ,IAAI,KAAK,IAAI;AAChF,QACC,CAAC,WACD,CAAE,MAAM,QAAQ,UAAU;AAAA,MACzB,OAAO,MAAM,QAAQ,kBAAkB,mBAAmB,OAAO;AAAA,MACjE,QAAQ,kBAAkB;AAAA,IAAA,CAC1B,GACA;AACM,aAAA;AAAA,IACR;AAEO,WAAA,EAAE,GAAG,SAAS,SAAS,CAAA,GAAI,OAAO,CAAA;EAC1C;AACD;"}
1
+ {"version":3,"file":"ProjectQueryResolver.js","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/query/ProjectQueryResolver.ts"],"sourcesContent":["import { Maybe, Project, QueryProjectBySlugArgs, QueryResolvers } from '../../schema'\nimport { TenantResolverContext } from '../TenantResolverContext'\nimport { PermissionActions, ProjectManager } from '../../model'\n\nexport class ProjectQueryResolver implements QueryResolvers {\n\tconstructor(private readonly projectManager: ProjectManager) {}\n\n\tasync projects(parent: unknown, args: unknown, context: TenantResolverContext): Promise<readonly Project[]> {\n\t\treturn (await this.projectManager.getProjectsByIdentity(context.db, context.identity.id, context.permissionContext)).map(\n\t\t\tit => ({ ...it, members: [], roles: [] }),\n\t\t)\n\t}\n\n\tasync projectBySlug(\n\t\tparent: unknown,\n\t\targs: QueryProjectBySlugArgs,\n\t\tcontext: TenantResolverContext,\n\t): Promise<Maybe<Project>> {\n\t\tconst project = await this.projectManager.getProjectBySlug(context.db, args.slug)\n\t\tif (\n\t\t\t!project ||\n\t\t\t!(await context.isAllowed({\n\t\t\t\tscope: await context.permissionContext.createProjectScope(project),\n\t\t\t\taction: PermissionActions.PROJECT_VIEW,\n\t\t\t}))\n\t\t) {\n\t\t\treturn null\n\t\t}\n\n\t\treturn { ...project, members: [], roles: [] }\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAIO,MAAM,qBAA+C;AAAA,EAC3D,YAA6B,gBAAgC;AAAhC,SAAA,iBAAA;AAAA,EAAA;AAAA,EAE7B,MAAM,SAAS,QAAiB,MAAe,SAA6D;AACnG,YAAA,MAAM,KAAK,eAAe,sBAAsB,QAAQ,IAAI,QAAQ,SAAS,IAAI,QAAQ,iBAAiB,GAAG;AAAA,MACpH,CAAA,QAAO,EAAE,GAAG,IAAI,SAAS,CAAC,GAAG,OAAO,GAAG;AAAA,IACxC;AAAA,EAAA;AAAA,EAGD,MAAM,cACL,QACA,MACA,SAC0B;AACpB,UAAA,UAAU,MAAM,KAAK,eAAe,iBAAiB,QAAQ,IAAI,KAAK,IAAI;AAChF,QACC,CAAC,WACD,CAAE,MAAM,QAAQ,UAAU;AAAA,MACzB,OAAO,MAAM,QAAQ,kBAAkB,mBAAmB,OAAO;AAAA,MACjE,QAAQ,kBAAkB;AAAA,IAAA,CAC1B,GACA;AACM,aAAA;AAAA,IAAA;AAGD,WAAA,EAAE,GAAG,SAAS,SAAS,CAAA,GAAI,OAAO,CAAA,EAAG;AAAA,EAAA;AAE9C;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PersonResponseFactory.cjs","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/responseHelpers/PersonResponseFactory.ts"],"sourcesContent":["import { PersonRow } from '../../model'\nimport { IdentityProjectRelation, Person } from '../../schema'\n\nexport class PersonResponseFactory {\n\tpublic static createPersonResponse(personRow: Omit<PersonRow, 'roles'>, projects: ReadonlyArray<IdentityProjectRelation> = []): Person {\n\t\treturn {\n\t\t\tid: personRow.id,\n\t\t\totpEnabled: !!personRow.otp_activated_at,\n\t\t\temail: personRow.email,\n\t\t\tname: personRow.name,\n\t\t\tpasswordlessEnabled: personRow.passwordless_enabled,\n\t\t\tidentity: {\n\t\t\t\tid: personRow.identity_id,\n\t\t\t\tprojects,\n\t\t\t},\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;AAGO,MAAM,sBAAsB;AAAA,EAClC,OAAc,qBAAqB,WAAqC,WAAmD,IAAY;AAC/H,WAAA;AAAA,MACN,IAAI,UAAU;AAAA,MACd,YAAY,CAAC,CAAC,UAAU;AAAA,MACxB,OAAO,UAAU;AAAA,MACjB,MAAM,UAAU;AAAA,MAChB,qBAAqB,UAAU;AAAA,MAC/B,UAAU;AAAA,QACT,IAAI,UAAU;AAAA,QACd;AAAA,MACD;AAAA,IAAA;AAAA,EAEF;AACD;;"}
1
+ {"version":3,"file":"PersonResponseFactory.cjs","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/responseHelpers/PersonResponseFactory.ts"],"sourcesContent":["import { PersonRow } from '../../model'\nimport { IdentityProjectRelation, Person } from '../../schema'\n\nexport class PersonResponseFactory {\n\tpublic static createPersonResponse(personRow: Omit<PersonRow, 'roles'>, projects: ReadonlyArray<IdentityProjectRelation> = []): Person {\n\t\treturn {\n\t\t\tid: personRow.id,\n\t\t\totpEnabled: !!personRow.otp_activated_at,\n\t\t\temail: personRow.email,\n\t\t\tname: personRow.name,\n\t\t\tpasswordlessEnabled: personRow.passwordless_enabled,\n\t\t\tidentity: {\n\t\t\t\tid: personRow.identity_id,\n\t\t\t\tprojects,\n\t\t\t},\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;AAGO,MAAM,sBAAsB;AAAA,EAClC,OAAc,qBAAqB,WAAqC,WAAmD,IAAY;AAC/H,WAAA;AAAA,MACN,IAAI,UAAU;AAAA,MACd,YAAY,CAAC,CAAC,UAAU;AAAA,MACxB,OAAO,UAAU;AAAA,MACjB,MAAM,UAAU;AAAA,MAChB,qBAAqB,UAAU;AAAA,MAC/B,UAAU;AAAA,QACT,IAAI,UAAU;AAAA,QACd;AAAA,MAAA;AAAA,IAEF;AAAA,EAAA;AAEF;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PersonResponseFactory.js","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/responseHelpers/PersonResponseFactory.ts"],"sourcesContent":["import { PersonRow } from '../../model'\nimport { IdentityProjectRelation, Person } from '../../schema'\n\nexport class PersonResponseFactory {\n\tpublic static createPersonResponse(personRow: Omit<PersonRow, 'roles'>, projects: ReadonlyArray<IdentityProjectRelation> = []): Person {\n\t\treturn {\n\t\t\tid: personRow.id,\n\t\t\totpEnabled: !!personRow.otp_activated_at,\n\t\t\temail: personRow.email,\n\t\t\tname: personRow.name,\n\t\t\tpasswordlessEnabled: personRow.passwordless_enabled,\n\t\t\tidentity: {\n\t\t\t\tid: personRow.identity_id,\n\t\t\t\tprojects,\n\t\t\t},\n\t\t}\n\t}\n}\n"],"names":[],"mappings":"AAGO,MAAM,sBAAsB;AAAA,EAClC,OAAc,qBAAqB,WAAqC,WAAmD,IAAY;AAC/H,WAAA;AAAA,MACN,IAAI,UAAU;AAAA,MACd,YAAY,CAAC,CAAC,UAAU;AAAA,MACxB,OAAO,UAAU;AAAA,MACjB,MAAM,UAAU;AAAA,MAChB,qBAAqB,UAAU;AAAA,MAC/B,UAAU;AAAA,QACT,IAAI,UAAU;AAAA,QACd;AAAA,MACD;AAAA,IAAA;AAAA,EAEF;AACD;"}
1
+ {"version":3,"file":"PersonResponseFactory.js","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/responseHelpers/PersonResponseFactory.ts"],"sourcesContent":["import { PersonRow } from '../../model'\nimport { IdentityProjectRelation, Person } from '../../schema'\n\nexport class PersonResponseFactory {\n\tpublic static createPersonResponse(personRow: Omit<PersonRow, 'roles'>, projects: ReadonlyArray<IdentityProjectRelation> = []): Person {\n\t\treturn {\n\t\t\tid: personRow.id,\n\t\t\totpEnabled: !!personRow.otp_activated_at,\n\t\t\temail: personRow.email,\n\t\t\tname: personRow.name,\n\t\t\tpasswordlessEnabled: personRow.passwordless_enabled,\n\t\t\tidentity: {\n\t\t\t\tid: personRow.identity_id,\n\t\t\t\tprojects,\n\t\t\t},\n\t\t}\n\t}\n}\n"],"names":[],"mappings":"AAGO,MAAM,sBAAsB;AAAA,EAClC,OAAc,qBAAqB,WAAqC,WAAmD,IAAY;AAC/H,WAAA;AAAA,MACN,IAAI,UAAU;AAAA,MACd,YAAY,CAAC,CAAC,UAAU;AAAA,MACxB,OAAO,UAAU;AAAA,MACjB,MAAM,UAAU;AAAA,MAChB,qBAAqB,UAAU;AAAA,MAC/B,UAAU;AAAA,QACT,IAAI,UAAU;AAAA,QACd;AAAA,MAAA;AAAA,IAEF;AAAA,EAAA;AAEF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SignInResponseFactory.cjs","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/responseHelpers/SignInResponseFactory.ts"],"sourcesContent":["import { createResolverContext, IdentityTypeResolver, TenantResolverContext } from '../index'\nimport { PermissionContextFactory, SignInResult } from '../../model'\nimport { CommonSignInResult } from '../../schema'\nimport { PersonResponseFactory } from './PersonResponseFactory'\n\nexport class SignInResponseFactory {\n\tconstructor(\n\t\tprivate readonly permissionContextFactory: PermissionContextFactory,\n\t\tprivate readonly identityTypeResolver: IdentityTypeResolver,\n\t) {\n\t}\n\n\tpublic async createResponse(signInResult: SignInResult, context: TenantResolverContext): Promise<CommonSignInResult> {\n\t\tconst identityId = signInResult.person.identity_id\n\t\tconst permissionContext = this.permissionContextFactory.create(context.db, {\n\t\t\tid: identityId,\n\t\t\troles: signInResult.person.roles,\n\t\t})\n\t\tconst projects = await this.identityTypeResolver.projects(\n\t\t\t{ id: identityId, projects: [] },\n\t\t\t{},\n\t\t\t{\n\t\t\t\t...context,\n\t\t\t\t...createResolverContext(permissionContext, context.apiKeyId),\n\t\t\t},\n\t\t)\n\t\treturn {\n\t\t\ttoken: signInResult.token,\n\t\t\tperson: PersonResponseFactory.createPersonResponse(signInResult.person, projects),\n\t\t}\n\t}\n}\n"],"names":["createResolverContext","PersonResponseFactory"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAKO,MAAM,sBAAsB;AAAA,EAClC,YACkB,0BACA,sBAChB;AAFgB,SAAA,2BAAA;AACA,SAAA,uBAAA;AAAA,EAElB;AAAA,EAEA,MAAa,eAAe,cAA4B,SAA6D;AAC9G,UAAA,aAAa,aAAa,OAAO;AACvC,UAAM,oBAAoB,KAAK,yBAAyB,OAAO,QAAQ,IAAI;AAAA,MAC1E,IAAI;AAAA,MACJ,OAAO,aAAa,OAAO;AAAA,IAAA,CAC3B;AACK,UAAA,WAAW,MAAM,KAAK,qBAAqB;AAAA,MAChD,EAAE,IAAI,YAAY,UAAU,GAAG;AAAA,MAC/B,CAAC;AAAA,MACD;AAAA,QACC,GAAG;AAAA,QACH,GAAGA,mDAAsB,mBAAmB,QAAQ,QAAQ;AAAA,MAC7D;AAAA,IAAA;AAEM,WAAA;AAAA,MACN,OAAO,aAAa;AAAA,MACpB,QAAQC,sBAAAA,sBAAsB,qBAAqB,aAAa,QAAQ,QAAQ;AAAA,IAAA;AAAA,EAElF;AACD;;"}
1
+ {"version":3,"file":"SignInResponseFactory.cjs","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/responseHelpers/SignInResponseFactory.ts"],"sourcesContent":["import { createResolverContext, IdentityTypeResolver, TenantResolverContext } from '../index'\nimport { PermissionContextFactory, SignInResult } from '../../model'\nimport { CommonSignInResult } from '../../schema'\nimport { PersonResponseFactory } from './PersonResponseFactory'\n\nexport class SignInResponseFactory {\n\tconstructor(\n\t\tprivate readonly permissionContextFactory: PermissionContextFactory,\n\t\tprivate readonly identityTypeResolver: IdentityTypeResolver,\n\t) {\n\t}\n\n\tpublic async createResponse(signInResult: SignInResult, context: TenantResolverContext): Promise<CommonSignInResult> {\n\t\tconst identityId = signInResult.person.identity_id\n\t\tconst permissionContext = this.permissionContextFactory.create(context.db, {\n\t\t\tid: identityId,\n\t\t\troles: signInResult.person.roles,\n\t\t})\n\t\tconst projects = await this.identityTypeResolver.projects(\n\t\t\t{ id: identityId, projects: [] },\n\t\t\t{},\n\t\t\t{\n\t\t\t\t...context,\n\t\t\t\t...createResolverContext(permissionContext, context.apiKeyId),\n\t\t\t},\n\t\t)\n\t\treturn {\n\t\t\ttoken: signInResult.token,\n\t\t\tperson: PersonResponseFactory.createPersonResponse(signInResult.person, projects),\n\t\t}\n\t}\n}\n"],"names":["createResolverContext","PersonResponseFactory"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAKO,MAAM,sBAAsB;AAAA,EAClC,YACkB,0BACA,sBAChB;AAFgB,SAAA,2BAAA;AACA,SAAA,uBAAA;AAAA,EAAA;AAAA,EAIlB,MAAa,eAAe,cAA4B,SAA6D;AAC9G,UAAA,aAAa,aAAa,OAAO;AACvC,UAAM,oBAAoB,KAAK,yBAAyB,OAAO,QAAQ,IAAI;AAAA,MAC1E,IAAI;AAAA,MACJ,OAAO,aAAa,OAAO;AAAA,IAAA,CAC3B;AACK,UAAA,WAAW,MAAM,KAAK,qBAAqB;AAAA,MAChD,EAAE,IAAI,YAAY,UAAU,GAAG;AAAA,MAC/B,CAAC;AAAA,MACD;AAAA,QACC,GAAG;AAAA,QACH,GAAGA,6BAAA,sBAAsB,mBAAmB,QAAQ,QAAQ;AAAA,MAAA;AAAA,IAE9D;AACO,WAAA;AAAA,MACN,OAAO,aAAa;AAAA,MACpB,QAAQC,sBAAAA,sBAAsB,qBAAqB,aAAa,QAAQ,QAAQ;AAAA,IACjF;AAAA,EAAA;AAEF;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SignInResponseFactory.js","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/responseHelpers/SignInResponseFactory.ts"],"sourcesContent":["import { createResolverContext, IdentityTypeResolver, TenantResolverContext } from '../index'\nimport { PermissionContextFactory, SignInResult } from '../../model'\nimport { CommonSignInResult } from '../../schema'\nimport { PersonResponseFactory } from './PersonResponseFactory'\n\nexport class SignInResponseFactory {\n\tconstructor(\n\t\tprivate readonly permissionContextFactory: PermissionContextFactory,\n\t\tprivate readonly identityTypeResolver: IdentityTypeResolver,\n\t) {\n\t}\n\n\tpublic async createResponse(signInResult: SignInResult, context: TenantResolverContext): Promise<CommonSignInResult> {\n\t\tconst identityId = signInResult.person.identity_id\n\t\tconst permissionContext = this.permissionContextFactory.create(context.db, {\n\t\t\tid: identityId,\n\t\t\troles: signInResult.person.roles,\n\t\t})\n\t\tconst projects = await this.identityTypeResolver.projects(\n\t\t\t{ id: identityId, projects: [] },\n\t\t\t{},\n\t\t\t{\n\t\t\t\t...context,\n\t\t\t\t...createResolverContext(permissionContext, context.apiKeyId),\n\t\t\t},\n\t\t)\n\t\treturn {\n\t\t\ttoken: signInResult.token,\n\t\t\tperson: PersonResponseFactory.createPersonResponse(signInResult.person, projects),\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAKO,MAAM,sBAAsB;AAAA,EAClC,YACkB,0BACA,sBAChB;AAFgB,SAAA,2BAAA;AACA,SAAA,uBAAA;AAAA,EAElB;AAAA,EAEA,MAAa,eAAe,cAA4B,SAA6D;AAC9G,UAAA,aAAa,aAAa,OAAO;AACvC,UAAM,oBAAoB,KAAK,yBAAyB,OAAO,QAAQ,IAAI;AAAA,MAC1E,IAAI;AAAA,MACJ,OAAO,aAAa,OAAO;AAAA,IAAA,CAC3B;AACK,UAAA,WAAW,MAAM,KAAK,qBAAqB;AAAA,MAChD,EAAE,IAAI,YAAY,UAAU,GAAG;AAAA,MAC/B,CAAC;AAAA,MACD;AAAA,QACC,GAAG;AAAA,QACH,GAAG,sBAAsB,mBAAmB,QAAQ,QAAQ;AAAA,MAC7D;AAAA,IAAA;AAEM,WAAA;AAAA,MACN,OAAO,aAAa;AAAA,MACpB,QAAQ,sBAAsB,qBAAqB,aAAa,QAAQ,QAAQ;AAAA,IAAA;AAAA,EAElF;AACD;"}
1
+ {"version":3,"file":"SignInResponseFactory.js","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/responseHelpers/SignInResponseFactory.ts"],"sourcesContent":["import { createResolverContext, IdentityTypeResolver, TenantResolverContext } from '../index'\nimport { PermissionContextFactory, SignInResult } from '../../model'\nimport { CommonSignInResult } from '../../schema'\nimport { PersonResponseFactory } from './PersonResponseFactory'\n\nexport class SignInResponseFactory {\n\tconstructor(\n\t\tprivate readonly permissionContextFactory: PermissionContextFactory,\n\t\tprivate readonly identityTypeResolver: IdentityTypeResolver,\n\t) {\n\t}\n\n\tpublic async createResponse(signInResult: SignInResult, context: TenantResolverContext): Promise<CommonSignInResult> {\n\t\tconst identityId = signInResult.person.identity_id\n\t\tconst permissionContext = this.permissionContextFactory.create(context.db, {\n\t\t\tid: identityId,\n\t\t\troles: signInResult.person.roles,\n\t\t})\n\t\tconst projects = await this.identityTypeResolver.projects(\n\t\t\t{ id: identityId, projects: [] },\n\t\t\t{},\n\t\t\t{\n\t\t\t\t...context,\n\t\t\t\t...createResolverContext(permissionContext, context.apiKeyId),\n\t\t\t},\n\t\t)\n\t\treturn {\n\t\t\ttoken: signInResult.token,\n\t\t\tperson: PersonResponseFactory.createPersonResponse(signInResult.person, projects),\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAKO,MAAM,sBAAsB;AAAA,EAClC,YACkB,0BACA,sBAChB;AAFgB,SAAA,2BAAA;AACA,SAAA,uBAAA;AAAA,EAAA;AAAA,EAIlB,MAAa,eAAe,cAA4B,SAA6D;AAC9G,UAAA,aAAa,aAAa,OAAO;AACvC,UAAM,oBAAoB,KAAK,yBAAyB,OAAO,QAAQ,IAAI;AAAA,MAC1E,IAAI;AAAA,MACJ,OAAO,aAAa,OAAO;AAAA,IAAA,CAC3B;AACK,UAAA,WAAW,MAAM,KAAK,qBAAqB;AAAA,MAChD,EAAE,IAAI,YAAY,UAAU,GAAG;AAAA,MAC/B,CAAC;AAAA,MACD;AAAA,QACC,GAAG;AAAA,QACH,GAAG,sBAAsB,mBAAmB,QAAQ,QAAQ;AAAA,MAAA;AAAA,IAE9D;AACO,WAAA;AAAA,MACN,OAAO,aAAa;AAAA,MACpB,QAAQ,sBAAsB,qBAAqB,aAAa,QAAQ,QAAQ;AAAA,IACjF;AAAA,EAAA;AAEF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"IdentityTypeResolver.cjs","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/types/IdentityTypeResolver.ts"],"sourcesContent":["import {\n\tIdentity,\n\tIdentityGlobalPermissions,\n\tIdentityProjectRelation,\n\tIdentityResolvers,\n\tMaybe,\n\tPerson,\n} from '../../schema'\nimport {\n\tIdentityQuery,\n\tPermissionActions,\n\tPermissionContextFactory,\n\tPersonByIdentityBatchQuery,\n\tPersonRow,\n\tProjectManager,\n\tProjectMemberManager,\n} from '../../model'\nimport { TenantResolverContext } from '../TenantResolverContext'\nimport { notEmpty } from '../../utils/array'\nimport { batchLoader } from '../../utils/batchQuery'\nimport { PersonResponseFactory } from '../responseHelpers/PersonResponseFactory'\n\nexport class IdentityTypeResolver implements IdentityResolvers {\n\tprivate personLoader = batchLoader<string, Record<string, PersonRow>, PersonRow>(\n\t\tasync (ids, db) => {\n\t\t\tconst persons = await db.queryHandler.fetch(new PersonByIdentityBatchQuery(ids))\n\t\t\treturn Object.fromEntries(persons.map(it => [it.identity_id, it]))\n\t\t},\n\t\t(id, result) => result[id],\n\t)\n\tprivate rolesLoader = batchLoader<string, Record<string, string[]>, string[]>(\n\t\tasync (ids, db) => {\n\t\t\tconst identities = await db.queryHandler.fetch(new IdentityQuery(ids))\n\t\t\treturn Object.fromEntries(identities.map(it => [it.id, it.roles]))\n\t\t},\n\t\t(id, result) => result[id] ?? [],\n\t)\n\n\tconstructor(\n\t\tprivate readonly projectMemberManager: ProjectMemberManager,\n\t\tprivate readonly projectManager: ProjectManager,\n\t\tprivate readonly permissionContextFactory: PermissionContextFactory,\n\t) {\n\t}\n\n\tasync person(parent: Identity, args: unknown, context: TenantResolverContext): Promise<Maybe<Person>> {\n\t\tconst person = await context.db.batchLoad(this.personLoader, parent.id)\n\t\tif (!person) {\n\t\t\treturn null\n\t\t}\n\t\treturn {\n\t\t\t...PersonResponseFactory.createPersonResponse(person),\n\t\t\tidentity: parent,\n\t\t}\n\t}\n\n\tasync projects(\n\t\tparent: { id: string; projects: readonly IdentityProjectRelation[] },\n\t\t{}: any,\n\t\tcontext: TenantResolverContext,\n\t): Promise<readonly IdentityProjectRelation[]> {\n\t\tif (parent.projects.length > 0) {\n\t\t\treturn parent.projects\n\t\t}\n\t\tconst isSelf = parent.id === context.identity.id\n\t\tconst roles = isSelf ? context.identity.roles : []\n\t\tconst projects = await this.projectManager.getProjectsByIdentity(context.db, parent.id, context.permissionContext)\n\t\treturn (\n\t\t\tawait Promise.all(\n\t\t\t\tprojects.map(async (it): Promise<IdentityProjectRelation | null> => {\n\t\t\t\t\tconst verifier = isSelf\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: context.permissionContext.createAccessVerifier(await context.permissionContext.createProjectScope(it))\n\t\t\t\t\tconst memberships = await this.projectMemberManager.getAllProjectMemberships(\n\t\t\t\t\t\tcontext.db,\n\t\t\t\t\t\t{ id: it.id },\n\t\t\t\t\t\t{ id: parent.id, roles },\n\t\t\t\t\t\tverifier,\n\t\t\t\t\t)\n\t\t\t\t\tif (memberships.length === 0) {\n\t\t\t\t\t\treturn null\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tproject: { ...it, members: [], roles: [] },\n\t\t\t\t\t\tmemberships: memberships,\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t)\n\t\t).filter(notEmpty)\n\t}\n\n\tasync roles(\n\t\tparent: { id: string; roles?: readonly string[] | undefined | null },\n\t\t{}: any,\n\t\tcontext: TenantResolverContext,\n\t): Promise<readonly string[] | null> {\n\t\tif (parent.roles) {\n\t\t\treturn parent.roles\n\t\t}\n\t\tconst isSelf = parent.id === context.identity.id\n\t\tif (isSelf) {\n\t\t\treturn context.identity.roles\n\t\t}\n\t\tconst canViewRoles = await context.permissionContext.isAllowed({ action: PermissionActions.IDENTITY_VIEW_PERMISSIONS })\n\t\tif (canViewRoles) {\n\t\t\treturn await context.db.batchLoad(this.rolesLoader, parent.id)\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t}\n\n\tasync permissions(\n\t\tparent: { id: string; permissions?: IdentityGlobalPermissions | undefined | null; roles?: readonly string[] | undefined | null },\n\t\t{}: any,\n\t\tcontext: TenantResolverContext,\n\t): Promise<IdentityGlobalPermissions | null> {\n\t\tif (parent.permissions) {\n\t\t\treturn parent.permissions\n\t\t}\n\n\t\tconst permissionsContext = await (async () => {\n\t\t\tconst isSelf = parent.id === context.identity.id\n\t\t\tif (isSelf) {\n\t\t\t\treturn context.permissionContext\n\t\t\t}\n\t\t\tconst roles = await this.roles(parent, {}, context)\n\t\t\tif (roles === null) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\treturn this.permissionContextFactory.create(context.db, { id: parent.id, roles })\n\t\t})()\n\n\t\tif (!permissionsContext) {\n\t\t\treturn null\n\t\t}\n\n\t\treturn {\n\t\t\tcanCreateProject: await permissionsContext.isAllowed({ action: PermissionActions.PROJECT_CREATE }),\n\t\t\tcanDeployEntrypoint: await permissionsContext.isAllowed({ action: PermissionActions.ENTRYPOINT_DEPLOY }),\n\t\t}\n\t}\n}\n"],"names":["batchLoader","PersonByIdentityBatchQuery","IdentityQuery","PersonResponseFactory","notEmpty","PermissionActions"],"mappings":"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"}
1
+ {"version":3,"file":"IdentityTypeResolver.cjs","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/types/IdentityTypeResolver.ts"],"sourcesContent":["import {\n\tIdentity,\n\tIdentityGlobalPermissions,\n\tIdentityProjectRelation,\n\tIdentityResolvers,\n\tMaybe,\n\tPerson,\n} from '../../schema'\nimport {\n\tIdentityQuery,\n\tPermissionActions,\n\tPermissionContextFactory,\n\tPersonByIdentityBatchQuery,\n\tPersonRow,\n\tProjectManager,\n\tProjectMemberManager,\n} from '../../model'\nimport { TenantResolverContext } from '../TenantResolverContext'\nimport { notEmpty } from '../../utils/array'\nimport { batchLoader } from '../../utils/batchQuery'\nimport { PersonResponseFactory } from '../responseHelpers/PersonResponseFactory'\n\nexport class IdentityTypeResolver implements IdentityResolvers {\n\tprivate personLoader = batchLoader<string, Record<string, PersonRow>, PersonRow>(\n\t\tasync (ids, db) => {\n\t\t\tconst persons = await db.queryHandler.fetch(new PersonByIdentityBatchQuery(ids))\n\t\t\treturn Object.fromEntries(persons.map(it => [it.identity_id, it]))\n\t\t},\n\t\t(id, result) => result[id],\n\t)\n\tprivate rolesLoader = batchLoader<string, Record<string, string[]>, string[]>(\n\t\tasync (ids, db) => {\n\t\t\tconst identities = await db.queryHandler.fetch(new IdentityQuery(ids))\n\t\t\treturn Object.fromEntries(identities.map(it => [it.id, it.roles]))\n\t\t},\n\t\t(id, result) => result[id] ?? [],\n\t)\n\n\tconstructor(\n\t\tprivate readonly projectMemberManager: ProjectMemberManager,\n\t\tprivate readonly projectManager: ProjectManager,\n\t\tprivate readonly permissionContextFactory: PermissionContextFactory,\n\t) {\n\t}\n\n\tasync person(parent: Identity, args: unknown, context: TenantResolverContext): Promise<Maybe<Person>> {\n\t\tconst person = await context.db.batchLoad(this.personLoader, parent.id)\n\t\tif (!person) {\n\t\t\treturn null\n\t\t}\n\t\treturn {\n\t\t\t...PersonResponseFactory.createPersonResponse(person),\n\t\t\tidentity: parent,\n\t\t}\n\t}\n\n\tasync projects(\n\t\tparent: { id: string; projects: readonly IdentityProjectRelation[] },\n\t\t{}: any,\n\t\tcontext: TenantResolverContext,\n\t): Promise<readonly IdentityProjectRelation[]> {\n\t\tif (parent.projects.length > 0) {\n\t\t\treturn parent.projects\n\t\t}\n\t\tconst isSelf = parent.id === context.identity.id\n\t\tconst roles = isSelf ? context.identity.roles : []\n\t\tconst projects = await this.projectManager.getProjectsByIdentity(context.db, parent.id, context.permissionContext)\n\t\treturn (\n\t\t\tawait Promise.all(\n\t\t\t\tprojects.map(async (it): Promise<IdentityProjectRelation | null> => {\n\t\t\t\t\tconst verifier = isSelf\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: context.permissionContext.createAccessVerifier(await context.permissionContext.createProjectScope(it))\n\t\t\t\t\tconst memberships = await this.projectMemberManager.getAllProjectMemberships(\n\t\t\t\t\t\tcontext.db,\n\t\t\t\t\t\t{ id: it.id },\n\t\t\t\t\t\t{ id: parent.id, roles },\n\t\t\t\t\t\tverifier,\n\t\t\t\t\t)\n\t\t\t\t\tif (memberships.length === 0) {\n\t\t\t\t\t\treturn null\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tproject: { ...it, members: [], roles: [] },\n\t\t\t\t\t\tmemberships: memberships,\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t)\n\t\t).filter(notEmpty)\n\t}\n\n\tasync roles(\n\t\tparent: { id: string; roles?: readonly string[] | undefined | null },\n\t\t{}: any,\n\t\tcontext: TenantResolverContext,\n\t): Promise<readonly string[] | null> {\n\t\tif (parent.roles) {\n\t\t\treturn parent.roles\n\t\t}\n\t\tconst isSelf = parent.id === context.identity.id\n\t\tif (isSelf) {\n\t\t\treturn context.identity.roles\n\t\t}\n\t\tconst canViewRoles = await context.permissionContext.isAllowed({ action: PermissionActions.IDENTITY_VIEW_PERMISSIONS })\n\t\tif (canViewRoles) {\n\t\t\treturn await context.db.batchLoad(this.rolesLoader, parent.id)\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t}\n\n\tasync permissions(\n\t\tparent: { id: string; permissions?: IdentityGlobalPermissions | undefined | null; roles?: readonly string[] | undefined | null },\n\t\t{}: any,\n\t\tcontext: TenantResolverContext,\n\t): Promise<IdentityGlobalPermissions | null> {\n\t\tif (parent.permissions) {\n\t\t\treturn parent.permissions\n\t\t}\n\n\t\tconst permissionsContext = await (async () => {\n\t\t\tconst isSelf = parent.id === context.identity.id\n\t\t\tif (isSelf) {\n\t\t\t\treturn context.permissionContext\n\t\t\t}\n\t\t\tconst roles = await this.roles(parent, {}, context)\n\t\t\tif (roles === null) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\treturn this.permissionContextFactory.create(context.db, { id: parent.id, roles })\n\t\t})()\n\n\t\tif (!permissionsContext) {\n\t\t\treturn null\n\t\t}\n\n\t\treturn {\n\t\t\tcanCreateProject: await permissionsContext.isAllowed({ action: PermissionActions.PROJECT_CREATE }),\n\t\t\tcanDeployEntrypoint: await permissionsContext.isAllowed({ action: PermissionActions.ENTRYPOINT_DEPLOY }),\n\t\t}\n\t}\n}\n"],"names":["batchLoader","PersonByIdentityBatchQuery","IdentityQuery","PersonResponseFactory","notEmpty","PermissionActions"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"IdentityTypeResolver.js","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/types/IdentityTypeResolver.ts"],"sourcesContent":["import {\n\tIdentity,\n\tIdentityGlobalPermissions,\n\tIdentityProjectRelation,\n\tIdentityResolvers,\n\tMaybe,\n\tPerson,\n} from '../../schema'\nimport {\n\tIdentityQuery,\n\tPermissionActions,\n\tPermissionContextFactory,\n\tPersonByIdentityBatchQuery,\n\tPersonRow,\n\tProjectManager,\n\tProjectMemberManager,\n} from '../../model'\nimport { TenantResolverContext } from '../TenantResolverContext'\nimport { notEmpty } from '../../utils/array'\nimport { batchLoader } from '../../utils/batchQuery'\nimport { PersonResponseFactory } from '../responseHelpers/PersonResponseFactory'\n\nexport class IdentityTypeResolver implements IdentityResolvers {\n\tprivate personLoader = batchLoader<string, Record<string, PersonRow>, PersonRow>(\n\t\tasync (ids, db) => {\n\t\t\tconst persons = await db.queryHandler.fetch(new PersonByIdentityBatchQuery(ids))\n\t\t\treturn Object.fromEntries(persons.map(it => [it.identity_id, it]))\n\t\t},\n\t\t(id, result) => result[id],\n\t)\n\tprivate rolesLoader = batchLoader<string, Record<string, string[]>, string[]>(\n\t\tasync (ids, db) => {\n\t\t\tconst identities = await db.queryHandler.fetch(new IdentityQuery(ids))\n\t\t\treturn Object.fromEntries(identities.map(it => [it.id, it.roles]))\n\t\t},\n\t\t(id, result) => result[id] ?? [],\n\t)\n\n\tconstructor(\n\t\tprivate readonly projectMemberManager: ProjectMemberManager,\n\t\tprivate readonly projectManager: ProjectManager,\n\t\tprivate readonly permissionContextFactory: PermissionContextFactory,\n\t) {\n\t}\n\n\tasync person(parent: Identity, args: unknown, context: TenantResolverContext): Promise<Maybe<Person>> {\n\t\tconst person = await context.db.batchLoad(this.personLoader, parent.id)\n\t\tif (!person) {\n\t\t\treturn null\n\t\t}\n\t\treturn {\n\t\t\t...PersonResponseFactory.createPersonResponse(person),\n\t\t\tidentity: parent,\n\t\t}\n\t}\n\n\tasync projects(\n\t\tparent: { id: string; projects: readonly IdentityProjectRelation[] },\n\t\t{}: any,\n\t\tcontext: TenantResolverContext,\n\t): Promise<readonly IdentityProjectRelation[]> {\n\t\tif (parent.projects.length > 0) {\n\t\t\treturn parent.projects\n\t\t}\n\t\tconst isSelf = parent.id === context.identity.id\n\t\tconst roles = isSelf ? context.identity.roles : []\n\t\tconst projects = await this.projectManager.getProjectsByIdentity(context.db, parent.id, context.permissionContext)\n\t\treturn (\n\t\t\tawait Promise.all(\n\t\t\t\tprojects.map(async (it): Promise<IdentityProjectRelation | null> => {\n\t\t\t\t\tconst verifier = isSelf\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: context.permissionContext.createAccessVerifier(await context.permissionContext.createProjectScope(it))\n\t\t\t\t\tconst memberships = await this.projectMemberManager.getAllProjectMemberships(\n\t\t\t\t\t\tcontext.db,\n\t\t\t\t\t\t{ id: it.id },\n\t\t\t\t\t\t{ id: parent.id, roles },\n\t\t\t\t\t\tverifier,\n\t\t\t\t\t)\n\t\t\t\t\tif (memberships.length === 0) {\n\t\t\t\t\t\treturn null\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tproject: { ...it, members: [], roles: [] },\n\t\t\t\t\t\tmemberships: memberships,\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t)\n\t\t).filter(notEmpty)\n\t}\n\n\tasync roles(\n\t\tparent: { id: string; roles?: readonly string[] | undefined | null },\n\t\t{}: any,\n\t\tcontext: TenantResolverContext,\n\t): Promise<readonly string[] | null> {\n\t\tif (parent.roles) {\n\t\t\treturn parent.roles\n\t\t}\n\t\tconst isSelf = parent.id === context.identity.id\n\t\tif (isSelf) {\n\t\t\treturn context.identity.roles\n\t\t}\n\t\tconst canViewRoles = await context.permissionContext.isAllowed({ action: PermissionActions.IDENTITY_VIEW_PERMISSIONS })\n\t\tif (canViewRoles) {\n\t\t\treturn await context.db.batchLoad(this.rolesLoader, parent.id)\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t}\n\n\tasync permissions(\n\t\tparent: { id: string; permissions?: IdentityGlobalPermissions | undefined | null; roles?: readonly string[] | undefined | null },\n\t\t{}: any,\n\t\tcontext: TenantResolverContext,\n\t): Promise<IdentityGlobalPermissions | null> {\n\t\tif (parent.permissions) {\n\t\t\treturn parent.permissions\n\t\t}\n\n\t\tconst permissionsContext = await (async () => {\n\t\t\tconst isSelf = parent.id === context.identity.id\n\t\t\tif (isSelf) {\n\t\t\t\treturn context.permissionContext\n\t\t\t}\n\t\t\tconst roles = await this.roles(parent, {}, context)\n\t\t\tif (roles === null) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\treturn this.permissionContextFactory.create(context.db, { id: parent.id, roles })\n\t\t})()\n\n\t\tif (!permissionsContext) {\n\t\t\treturn null\n\t\t}\n\n\t\treturn {\n\t\t\tcanCreateProject: await permissionsContext.isAllowed({ action: PermissionActions.PROJECT_CREATE }),\n\t\t\tcanDeployEntrypoint: await permissionsContext.isAllowed({ action: PermissionActions.ENTRYPOINT_DEPLOY }),\n\t\t}\n\t}\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IdentityTypeResolver.js","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/types/IdentityTypeResolver.ts"],"sourcesContent":["import {\n\tIdentity,\n\tIdentityGlobalPermissions,\n\tIdentityProjectRelation,\n\tIdentityResolvers,\n\tMaybe,\n\tPerson,\n} from '../../schema'\nimport {\n\tIdentityQuery,\n\tPermissionActions,\n\tPermissionContextFactory,\n\tPersonByIdentityBatchQuery,\n\tPersonRow,\n\tProjectManager,\n\tProjectMemberManager,\n} from '../../model'\nimport { TenantResolverContext } from '../TenantResolverContext'\nimport { notEmpty } from '../../utils/array'\nimport { batchLoader } from '../../utils/batchQuery'\nimport { PersonResponseFactory } from '../responseHelpers/PersonResponseFactory'\n\nexport class IdentityTypeResolver implements IdentityResolvers {\n\tprivate personLoader = batchLoader<string, Record<string, PersonRow>, PersonRow>(\n\t\tasync (ids, db) => {\n\t\t\tconst persons = await db.queryHandler.fetch(new PersonByIdentityBatchQuery(ids))\n\t\t\treturn Object.fromEntries(persons.map(it => [it.identity_id, it]))\n\t\t},\n\t\t(id, result) => result[id],\n\t)\n\tprivate rolesLoader = batchLoader<string, Record<string, string[]>, string[]>(\n\t\tasync (ids, db) => {\n\t\t\tconst identities = await db.queryHandler.fetch(new IdentityQuery(ids))\n\t\t\treturn Object.fromEntries(identities.map(it => [it.id, it.roles]))\n\t\t},\n\t\t(id, result) => result[id] ?? [],\n\t)\n\n\tconstructor(\n\t\tprivate readonly projectMemberManager: ProjectMemberManager,\n\t\tprivate readonly projectManager: ProjectManager,\n\t\tprivate readonly permissionContextFactory: PermissionContextFactory,\n\t) {\n\t}\n\n\tasync person(parent: Identity, args: unknown, context: TenantResolverContext): Promise<Maybe<Person>> {\n\t\tconst person = await context.db.batchLoad(this.personLoader, parent.id)\n\t\tif (!person) {\n\t\t\treturn null\n\t\t}\n\t\treturn {\n\t\t\t...PersonResponseFactory.createPersonResponse(person),\n\t\t\tidentity: parent,\n\t\t}\n\t}\n\n\tasync projects(\n\t\tparent: { id: string; projects: readonly IdentityProjectRelation[] },\n\t\t{}: any,\n\t\tcontext: TenantResolverContext,\n\t): Promise<readonly IdentityProjectRelation[]> {\n\t\tif (parent.projects.length > 0) {\n\t\t\treturn parent.projects\n\t\t}\n\t\tconst isSelf = parent.id === context.identity.id\n\t\tconst roles = isSelf ? context.identity.roles : []\n\t\tconst projects = await this.projectManager.getProjectsByIdentity(context.db, parent.id, context.permissionContext)\n\t\treturn (\n\t\t\tawait Promise.all(\n\t\t\t\tprojects.map(async (it): Promise<IdentityProjectRelation | null> => {\n\t\t\t\t\tconst verifier = isSelf\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: context.permissionContext.createAccessVerifier(await context.permissionContext.createProjectScope(it))\n\t\t\t\t\tconst memberships = await this.projectMemberManager.getAllProjectMemberships(\n\t\t\t\t\t\tcontext.db,\n\t\t\t\t\t\t{ id: it.id },\n\t\t\t\t\t\t{ id: parent.id, roles },\n\t\t\t\t\t\tverifier,\n\t\t\t\t\t)\n\t\t\t\t\tif (memberships.length === 0) {\n\t\t\t\t\t\treturn null\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tproject: { ...it, members: [], roles: [] },\n\t\t\t\t\t\tmemberships: memberships,\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t)\n\t\t).filter(notEmpty)\n\t}\n\n\tasync roles(\n\t\tparent: { id: string; roles?: readonly string[] | undefined | null },\n\t\t{}: any,\n\t\tcontext: TenantResolverContext,\n\t): Promise<readonly string[] | null> {\n\t\tif (parent.roles) {\n\t\t\treturn parent.roles\n\t\t}\n\t\tconst isSelf = parent.id === context.identity.id\n\t\tif (isSelf) {\n\t\t\treturn context.identity.roles\n\t\t}\n\t\tconst canViewRoles = await context.permissionContext.isAllowed({ action: PermissionActions.IDENTITY_VIEW_PERMISSIONS })\n\t\tif (canViewRoles) {\n\t\t\treturn await context.db.batchLoad(this.rolesLoader, parent.id)\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t}\n\n\tasync permissions(\n\t\tparent: { id: string; permissions?: IdentityGlobalPermissions | undefined | null; roles?: readonly string[] | undefined | null },\n\t\t{}: any,\n\t\tcontext: TenantResolverContext,\n\t): Promise<IdentityGlobalPermissions | null> {\n\t\tif (parent.permissions) {\n\t\t\treturn parent.permissions\n\t\t}\n\n\t\tconst permissionsContext = await (async () => {\n\t\t\tconst isSelf = parent.id === context.identity.id\n\t\t\tif (isSelf) {\n\t\t\t\treturn context.permissionContext\n\t\t\t}\n\t\t\tconst roles = await this.roles(parent, {}, context)\n\t\t\tif (roles === null) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\treturn this.permissionContextFactory.create(context.db, { id: parent.id, roles })\n\t\t})()\n\n\t\tif (!permissionsContext) {\n\t\t\treturn null\n\t\t}\n\n\t\treturn {\n\t\t\tcanCreateProject: await permissionsContext.isAllowed({ action: PermissionActions.PROJECT_CREATE }),\n\t\t\tcanDeployEntrypoint: await permissionsContext.isAllowed({ action: PermissionActions.ENTRYPOINT_DEPLOY }),\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAsBO,MAAM,qBAAkD;AAAA,EAgB9D,YACkB,sBACA,gBACA,0BAChB;AAHgB,SAAA,uBAAA;AACA,SAAA,iBAAA;AACA,SAAA,2BAAA;AAlBlB,kBAAA,MAAQ,gBAAe;AAAA,MACtB,OAAO,KAAK,OAAO;AACZ,cAAA,UAAU,MAAM,GAAG,aAAa,MAAM,IAAI,2BAA2B,GAAG,CAAC;AACxE,eAAA,OAAO,YAAY,QAAQ,IAAI,CAAA,OAAM,CAAC,GAAG,aAAa,EAAE,CAAC,CAAC;AAAA,MAClE;AAAA,MACA,CAAC,IAAI,WAAW,OAAO,EAAE;AAAA,IAAA,CAC1B;AACA,kBAAA,MAAQ,eAAc;AAAA,MACrB,OAAO,KAAK,OAAO;AACZ,cAAA,aAAa,MAAM,GAAG,aAAa,MAAM,IAAI,cAAc,GAAG,CAAC;AAC9D,eAAA,OAAO,YAAY,WAAW,IAAI,CAAA,OAAM,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC;AAAA,MAClE;AAAA,MACA,CAAC,IAAI,WAAW,OAAO,EAAE,KAAK,CAAA;AAAA,IAAC,CAChC;AAAA,EAAA;AAAA,EASA,MAAM,OAAO,QAAkB,MAAe,SAAwD;AAC/F,UAAA,SAAS,MAAM,QAAQ,GAAG,UAAU,KAAK,cAAc,OAAO,EAAE;AACtE,QAAI,CAAC,QAAQ;AACL,aAAA;AAAA,IAAA;AAED,WAAA;AAAA,MACN,GAAG,sBAAsB,qBAAqB,MAAM;AAAA,MACpD,UAAU;AAAA,IACX;AAAA,EAAA;AAAA,EAGD,MAAM,SACL,QACA,IACA,SAC8C;AAC1C,QAAA,OAAO,SAAS,SAAS,GAAG;AAC/B,aAAO,OAAO;AAAA,IAAA;AAEf,UAAM,SAAS,OAAO,OAAO,QAAQ,SAAS;AAC9C,UAAM,QAAQ,SAAS,QAAQ,SAAS,QAAQ,CAAC;AAC3C,UAAA,WAAW,MAAM,KAAK,eAAe,sBAAsB,QAAQ,IAAI,OAAO,IAAI,QAAQ,iBAAiB;AACjH,YACC,MAAM,QAAQ;AAAA,MACb,SAAS,IAAI,OAAO,OAAgD;AAC7D,cAAA,WAAW,SACd,SACA,QAAQ,kBAAkB,qBAAqB,MAAM,QAAQ,kBAAkB,mBAAmB,EAAE,CAAC;AAClG,cAAA,cAAc,MAAM,KAAK,qBAAqB;AAAA,UACnD,QAAQ;AAAA,UACR,EAAE,IAAI,GAAG,GAAG;AAAA,UACZ,EAAE,IAAI,OAAO,IAAI,MAAM;AAAA,UACvB;AAAA,QACD;AACI,YAAA,YAAY,WAAW,GAAG;AACtB,iBAAA;AAAA,QAAA;AAED,eAAA;AAAA,UACN,SAAS,EAAE,GAAG,IAAI,SAAS,CAAC,GAAG,OAAO,GAAG;AAAA,UACzC;AAAA,QACD;AAAA,MACA,CAAA;AAAA,IAAA,GAED,OAAO,QAAQ;AAAA,EAAA;AAAA,EAGlB,MAAM,MACL,QACA,IACA,SACoC;AACpC,QAAI,OAAO,OAAO;AACjB,aAAO,OAAO;AAAA,IAAA;AAEf,UAAM,SAAS,OAAO,OAAO,QAAQ,SAAS;AAC9C,QAAI,QAAQ;AACX,aAAO,QAAQ,SAAS;AAAA,IAAA;AAEnB,UAAA,eAAe,MAAM,QAAQ,kBAAkB,UAAU,EAAE,QAAQ,kBAAkB,2BAA2B;AACtH,QAAI,cAAc;AACjB,aAAO,MAAM,QAAQ,GAAG,UAAU,KAAK,aAAa,OAAO,EAAE;AAAA,IAAA,OACvD;AACC,aAAA;AAAA,IAAA;AAAA,EACR;AAAA,EAGD,MAAM,YACL,QACA,IACA,SAC4C;AAC5C,QAAI,OAAO,aAAa;AACvB,aAAO,OAAO;AAAA,IAAA;AAGT,UAAA,qBAAqB,OAAO,YAAY;AAC7C,YAAM,SAAS,OAAO,OAAO,QAAQ,SAAS;AAC9C,UAAI,QAAQ;AACX,eAAO,QAAQ;AAAA,MAAA;AAEhB,YAAM,QAAQ,MAAM,KAAK,MAAM,QAAQ,IAAI,OAAO;AAClD,UAAI,UAAU,MAAM;AACZ,eAAA;AAAA,MAAA;AAED,aAAA,KAAK,yBAAyB,OAAO,QAAQ,IAAI,EAAE,IAAI,OAAO,IAAI,OAAO;AAAA,IAAA,GAC9E;AAEH,QAAI,CAAC,oBAAoB;AACjB,aAAA;AAAA,IAAA;AAGD,WAAA;AAAA,MACN,kBAAkB,MAAM,mBAAmB,UAAU,EAAE,QAAQ,kBAAkB,gBAAgB;AAAA,MACjG,qBAAqB,MAAM,mBAAmB,UAAU,EAAE,QAAQ,kBAAkB,kBAAmB,CAAA;AAAA,IACxG;AAAA,EAAA;AAEF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectTypeResolver.cjs","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/types/ProjectTypeResolver.ts"],"sourcesContent":["import { ProjectIdentityRelation, ProjectMembersArgs, ProjectResolvers } from '../../schema'\nimport { TenantResolverContext } from '../TenantResolverContext'\nimport { PermissionActions, Project, ProjectMemberManager, ProjectSchemaResolver } from '../../model'\nimport { getRoleVariables } from '@contember/schema-utils'\nimport { Acl } from '@contember/schema'\nimport { UserInputError } from '@contember/graphql-utils'\n\nexport class ProjectTypeResolver implements ProjectResolvers {\n\tconstructor(\n\t\tprivate readonly projectMemberManager: ProjectMemberManager,\n\t\tprivate readonly projectSchemaResolver: ProjectSchemaResolver,\n\t) {}\n\n\tasync members(\n\t\tparent: Project,\n\t\targs: ProjectMembersArgs,\n\t\tcontext: TenantResolverContext,\n\t): Promise<readonly ProjectIdentityRelation[]> {\n\t\tconst projectScope = await context.permissionContext.createProjectScope(parent)\n\t\tconst verifier = context.permissionContext.createAccessVerifier(projectScope)\n\t\tif (!(await verifier(PermissionActions.PROJECT_VIEW_MEMBER([])))) {\n\t\t\treturn []\n\t\t}\n\t\tif (args.input?.filter?.email && args.input.filter.memberType === 'API_KEY') {\n\t\t\tthrow new UserInputError(`Cannot use email filter for ApiKey member type.`)\n\t\t}\n\t\tif (args.input?.filter?.personId && args.input.filter.memberType === 'API_KEY') {\n\t\t\tthrow new UserInputError(`Cannot use personId filter for ApiKey member type.`)\n\t\t}\n\t\tif (args.memberType && args.input) {\n\t\t\tthrow new UserInputError(`Cannot use both deprecated memberType parameter and new input parameter`)\n\t\t}\n\n\t\tconst members = await this.projectMemberManager.getProjectMembers(context.db, parent.id, verifier, args.input ?? { filter: { memberType: args.memberType } })\n\t\treturn members.map(it => ({\n\t\t\t...it,\n\t\t\tidentity: { ...it.identity, projects: [] },\n\t\t}))\n\t}\n\n\tasync roles(parent: Project, args: unknown, context: TenantResolverContext) {\n\t\tconst schema = await this.projectSchemaResolver.getSchema(parent.slug)\n\t\tif (!schema) {\n\t\t\treturn []\n\t\t}\n\t\treturn Object.entries(schema.acl.roles).map(([role, def]) => ({\n\t\t\tname: role,\n\t\t\tvariables: Object.entries(getRoleVariables(role, schema.acl)).map(([name, variableDef]) => {\n\t\t\t\tswitch (variableDef.type) {\n\t\t\t\t\tcase Acl.VariableType.entity:\n\t\t\t\t\t\treturn { __typename: 'RoleEntityVariableDefinition' as const, name, entityName: variableDef.entityName }\n\t\t\t\t\tcase Acl.VariableType.predefined:\n\t\t\t\t\t\treturn { __typename: 'RolePredefinedVariableDefinition' as const, name, value: variableDef.value }\n\t\t\t\t\tcase Acl.VariableType.condition:\n\t\t\t\t\t\treturn { __typename: 'RoleConditionVariableDefinition' as const, name }\n\t\t\t\t}\n\t\t\t}),\n\t\t}))\n\t}\n}\n"],"names":["PermissionActions","UserInputError","schema","getRoleVariables","Acl"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAOO,MAAM,oBAAgD;AAAA,EAC5D,YACkB,sBACA,uBAChB;AAFgB,SAAA,uBAAA;AACA,SAAA,wBAAA;AAAA,EACf;AAAA,EAEH,MAAM,QACL,QACA,MACA,SAC8C;AAC9C,UAAM,eAAe,MAAM,QAAQ,kBAAkB,mBAAmB,MAAM;AAC9E,UAAM,WAAW,QAAQ,kBAAkB,qBAAqB,YAAY;AACxE,QAAA,CAAE,MAAM,SAASA,kBAAAA,kBAAkB,oBAAoB,CAAA,CAAE,CAAC,GAAI;AACjE,aAAO;IACR;AACI,QAAA,KAAK,OAAO,QAAQ,SAAS,KAAK,MAAM,OAAO,eAAe,WAAW;AACtE,YAAA,IAAIC,4BAAe,iDAAiD;AAAA,IAC3E;AACI,QAAA,KAAK,OAAO,QAAQ,YAAY,KAAK,MAAM,OAAO,eAAe,WAAW;AACzE,YAAA,IAAIA,4BAAe,qDAAqD;AAAA,IAC/E;AACI,QAAA,KAAK,cAAc,KAAK,OAAO;AAC5B,YAAA,IAAIA,4BAAe,yEAAyE;AAAA,IACnG;AAEA,UAAM,UAAU,MAAM,KAAK,qBAAqB,kBAAkB,QAAQ,IAAI,OAAO,IAAI,UAAU,KAAK,SAAS,EAAE,QAAQ,EAAE,YAAY,KAAK,cAAc;AACrJ,WAAA,QAAQ,IAAI,CAAO,QAAA;AAAA,MACzB,GAAG;AAAA,MACH,UAAU,EAAE,GAAG,GAAG,UAAU,UAAU,CAAA,EAAG;AAAA,IACxC,EAAA;AAAA,EACH;AAAA,EAEA,MAAM,MAAM,QAAiB,MAAe,SAAgC;AAC3E,UAAMC,WAAS,MAAM,KAAK,sBAAsB,UAAU,OAAO,IAAI;AACrE,QAAI,CAACA,UAAQ;AACZ,aAAO;IACR;AACO,WAAA,OAAO,QAAQA,SAAO,IAAI,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,OAAO;AAAA,MAC7D,MAAM;AAAA,MACN,WAAW,OAAO,QAAQC,YAAA,iBAAiB,MAAMD,SAAO,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,WAAW,MAAM;AAC1F,gBAAQ,YAAY,MAAM;AAAA,UACzB,KAAKE,OAAAA,IAAI,aAAa;AACrB,mBAAO,EAAE,YAAY,gCAAyC,MAAM,YAAY,YAAY;UAC7F,KAAKA,OAAAA,IAAI,aAAa;AACrB,mBAAO,EAAE,YAAY,oCAA6C,MAAM,OAAO,YAAY;UAC5F,KAAKA,OAAAA,IAAI,aAAa;AACd,mBAAA,EAAE,YAAY,mCAA4C;QACnE;AAAA,MAAA,CACA;AAAA,IACA,EAAA;AAAA,EACH;AACD;;"}
1
+ {"version":3,"file":"ProjectTypeResolver.cjs","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/types/ProjectTypeResolver.ts"],"sourcesContent":["import { ProjectIdentityRelation, ProjectMembersArgs, ProjectResolvers } from '../../schema'\nimport { TenantResolverContext } from '../TenantResolverContext'\nimport { PermissionActions, Project, ProjectMemberManager, ProjectSchemaResolver } from '../../model'\nimport { getRoleVariables } from '@contember/schema-utils'\nimport { Acl } from '@contember/schema'\nimport { UserInputError } from '@contember/graphql-utils'\n\nexport class ProjectTypeResolver implements ProjectResolvers {\n\tconstructor(\n\t\tprivate readonly projectMemberManager: ProjectMemberManager,\n\t\tprivate readonly projectSchemaResolver: ProjectSchemaResolver,\n\t) {}\n\n\tasync members(\n\t\tparent: Project,\n\t\targs: ProjectMembersArgs,\n\t\tcontext: TenantResolverContext,\n\t): Promise<readonly ProjectIdentityRelation[]> {\n\t\tconst projectScope = await context.permissionContext.createProjectScope(parent)\n\t\tconst verifier = context.permissionContext.createAccessVerifier(projectScope)\n\t\tif (!(await verifier(PermissionActions.PROJECT_VIEW_MEMBER([])))) {\n\t\t\treturn []\n\t\t}\n\t\tif (args.input?.filter?.email && args.input.filter.memberType === 'API_KEY') {\n\t\t\tthrow new UserInputError(`Cannot use email filter for ApiKey member type.`)\n\t\t}\n\t\tif (args.input?.filter?.personId && args.input.filter.memberType === 'API_KEY') {\n\t\t\tthrow new UserInputError(`Cannot use personId filter for ApiKey member type.`)\n\t\t}\n\t\tif (args.memberType && args.input) {\n\t\t\tthrow new UserInputError(`Cannot use both deprecated memberType parameter and new input parameter`)\n\t\t}\n\n\t\tconst members = await this.projectMemberManager.getProjectMembers(context.db, parent.id, verifier, args.input ?? { filter: { memberType: args.memberType } })\n\t\treturn members.map(it => ({\n\t\t\t...it,\n\t\t\tidentity: { ...it.identity, projects: [] },\n\t\t}))\n\t}\n\n\tasync roles(parent: Project, args: unknown, context: TenantResolverContext) {\n\t\tconst schema = await this.projectSchemaResolver.getSchema(parent.slug)\n\t\tif (!schema) {\n\t\t\treturn []\n\t\t}\n\t\treturn Object.entries(schema.acl.roles).map(([role, def]) => ({\n\t\t\tname: role,\n\t\t\tvariables: Object.entries(getRoleVariables(role, schema.acl)).map(([name, variableDef]) => {\n\t\t\t\tswitch (variableDef.type) {\n\t\t\t\t\tcase Acl.VariableType.entity:\n\t\t\t\t\t\treturn { __typename: 'RoleEntityVariableDefinition' as const, name, entityName: variableDef.entityName }\n\t\t\t\t\tcase Acl.VariableType.predefined:\n\t\t\t\t\t\treturn { __typename: 'RolePredefinedVariableDefinition' as const, name, value: variableDef.value }\n\t\t\t\t\tcase Acl.VariableType.condition:\n\t\t\t\t\t\treturn { __typename: 'RoleConditionVariableDefinition' as const, name }\n\t\t\t\t}\n\t\t\t}),\n\t\t}))\n\t}\n}\n"],"names":["PermissionActions","UserInputError","schema","getRoleVariables","Acl"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAOO,MAAM,oBAAgD;AAAA,EAC5D,YACkB,sBACA,uBAChB;AAFgB,SAAA,uBAAA;AACA,SAAA,wBAAA;AAAA,EAAA;AAAA,EAGlB,MAAM,QACL,QACA,MACA,SAC8C;AAC9C,UAAM,eAAe,MAAM,QAAQ,kBAAkB,mBAAmB,MAAM;AAC9E,UAAM,WAAW,QAAQ,kBAAkB,qBAAqB,YAAY;AACxE,QAAA,CAAE,MAAM,SAASA,kBAAAA,kBAAkB,oBAAoB,CAAA,CAAE,CAAC,GAAI;AACjE,aAAO,CAAC;AAAA,IAAA;AAEL,QAAA,KAAK,OAAO,QAAQ,SAAS,KAAK,MAAM,OAAO,eAAe,WAAW;AACtE,YAAA,IAAIC,aAAAA,eAAe,iDAAiD;AAAA,IAAA;AAEvE,QAAA,KAAK,OAAO,QAAQ,YAAY,KAAK,MAAM,OAAO,eAAe,WAAW;AACzE,YAAA,IAAIA,aAAAA,eAAe,qDAAqD;AAAA,IAAA;AAE3E,QAAA,KAAK,cAAc,KAAK,OAAO;AAC5B,YAAA,IAAIA,aAAAA,eAAe,yEAAyE;AAAA,IAAA;AAGnG,UAAM,UAAU,MAAM,KAAK,qBAAqB,kBAAkB,QAAQ,IAAI,OAAO,IAAI,UAAU,KAAK,SAAS,EAAE,QAAQ,EAAE,YAAY,KAAK,WAAA,GAAc;AACrJ,WAAA,QAAQ,IAAI,CAAO,QAAA;AAAA,MACzB,GAAG;AAAA,MACH,UAAU,EAAE,GAAG,GAAG,UAAU,UAAU,CAAG,EAAA;AAAA,IAAA,EACxC;AAAA,EAAA;AAAA,EAGH,MAAM,MAAM,QAAiB,MAAe,SAAgC;AAC3E,UAAMC,WAAS,MAAM,KAAK,sBAAsB,UAAU,OAAO,IAAI;AACrE,QAAI,CAACA,UAAQ;AACZ,aAAO,CAAC;AAAA,IAAA;AAEF,WAAA,OAAO,QAAQA,SAAO,IAAI,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,OAAO;AAAA,MAC7D,MAAM;AAAA,MACN,WAAW,OAAO,QAAQC,YAAA,iBAAiB,MAAMD,SAAO,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,WAAW,MAAM;AAC1F,gBAAQ,YAAY,MAAM;AAAA,UACzB,KAAKE,OAAAA,IAAI,aAAa;AACrB,mBAAO,EAAE,YAAY,gCAAyC,MAAM,YAAY,YAAY,WAAW;AAAA,UACxG,KAAKA,OAAAA,IAAI,aAAa;AACrB,mBAAO,EAAE,YAAY,oCAA6C,MAAM,OAAO,YAAY,MAAM;AAAA,UAClG,KAAKA,OAAAA,IAAI,aAAa;AACd,mBAAA,EAAE,YAAY,mCAA4C,KAAK;AAAA,QAAA;AAAA,MAExE,CAAA;AAAA,IAAA,EACA;AAAA,EAAA;AAEJ;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectTypeResolver.js","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/types/ProjectTypeResolver.ts"],"sourcesContent":["import { ProjectIdentityRelation, ProjectMembersArgs, ProjectResolvers } from '../../schema'\nimport { TenantResolverContext } from '../TenantResolverContext'\nimport { PermissionActions, Project, ProjectMemberManager, ProjectSchemaResolver } from '../../model'\nimport { getRoleVariables } from '@contember/schema-utils'\nimport { Acl } from '@contember/schema'\nimport { UserInputError } from '@contember/graphql-utils'\n\nexport class ProjectTypeResolver implements ProjectResolvers {\n\tconstructor(\n\t\tprivate readonly projectMemberManager: ProjectMemberManager,\n\t\tprivate readonly projectSchemaResolver: ProjectSchemaResolver,\n\t) {}\n\n\tasync members(\n\t\tparent: Project,\n\t\targs: ProjectMembersArgs,\n\t\tcontext: TenantResolverContext,\n\t): Promise<readonly ProjectIdentityRelation[]> {\n\t\tconst projectScope = await context.permissionContext.createProjectScope(parent)\n\t\tconst verifier = context.permissionContext.createAccessVerifier(projectScope)\n\t\tif (!(await verifier(PermissionActions.PROJECT_VIEW_MEMBER([])))) {\n\t\t\treturn []\n\t\t}\n\t\tif (args.input?.filter?.email && args.input.filter.memberType === 'API_KEY') {\n\t\t\tthrow new UserInputError(`Cannot use email filter for ApiKey member type.`)\n\t\t}\n\t\tif (args.input?.filter?.personId && args.input.filter.memberType === 'API_KEY') {\n\t\t\tthrow new UserInputError(`Cannot use personId filter for ApiKey member type.`)\n\t\t}\n\t\tif (args.memberType && args.input) {\n\t\t\tthrow new UserInputError(`Cannot use both deprecated memberType parameter and new input parameter`)\n\t\t}\n\n\t\tconst members = await this.projectMemberManager.getProjectMembers(context.db, parent.id, verifier, args.input ?? { filter: { memberType: args.memberType } })\n\t\treturn members.map(it => ({\n\t\t\t...it,\n\t\t\tidentity: { ...it.identity, projects: [] },\n\t\t}))\n\t}\n\n\tasync roles(parent: Project, args: unknown, context: TenantResolverContext) {\n\t\tconst schema = await this.projectSchemaResolver.getSchema(parent.slug)\n\t\tif (!schema) {\n\t\t\treturn []\n\t\t}\n\t\treturn Object.entries(schema.acl.roles).map(([role, def]) => ({\n\t\t\tname: role,\n\t\t\tvariables: Object.entries(getRoleVariables(role, schema.acl)).map(([name, variableDef]) => {\n\t\t\t\tswitch (variableDef.type) {\n\t\t\t\t\tcase Acl.VariableType.entity:\n\t\t\t\t\t\treturn { __typename: 'RoleEntityVariableDefinition' as const, name, entityName: variableDef.entityName }\n\t\t\t\t\tcase Acl.VariableType.predefined:\n\t\t\t\t\t\treturn { __typename: 'RolePredefinedVariableDefinition' as const, name, value: variableDef.value }\n\t\t\t\t\tcase Acl.VariableType.condition:\n\t\t\t\t\t\treturn { __typename: 'RoleConditionVariableDefinition' as const, name }\n\t\t\t\t}\n\t\t\t}),\n\t\t}))\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAOO,MAAM,oBAAgD;AAAA,EAC5D,YACkB,sBACA,uBAChB;AAFgB,SAAA,uBAAA;AACA,SAAA,wBAAA;AAAA,EACf;AAAA,EAEH,MAAM,QACL,QACA,MACA,SAC8C;AAC9C,UAAM,eAAe,MAAM,QAAQ,kBAAkB,mBAAmB,MAAM;AAC9E,UAAM,WAAW,QAAQ,kBAAkB,qBAAqB,YAAY;AACxE,QAAA,CAAE,MAAM,SAAS,kBAAkB,oBAAoB,CAAA,CAAE,CAAC,GAAI;AACjE,aAAO;IACR;AACI,QAAA,KAAK,OAAO,QAAQ,SAAS,KAAK,MAAM,OAAO,eAAe,WAAW;AACtE,YAAA,IAAI,eAAe,iDAAiD;AAAA,IAC3E;AACI,QAAA,KAAK,OAAO,QAAQ,YAAY,KAAK,MAAM,OAAO,eAAe,WAAW;AACzE,YAAA,IAAI,eAAe,qDAAqD;AAAA,IAC/E;AACI,QAAA,KAAK,cAAc,KAAK,OAAO;AAC5B,YAAA,IAAI,eAAe,yEAAyE;AAAA,IACnG;AAEA,UAAM,UAAU,MAAM,KAAK,qBAAqB,kBAAkB,QAAQ,IAAI,OAAO,IAAI,UAAU,KAAK,SAAS,EAAE,QAAQ,EAAE,YAAY,KAAK,cAAc;AACrJ,WAAA,QAAQ,IAAI,CAAO,QAAA;AAAA,MACzB,GAAG;AAAA,MACH,UAAU,EAAE,GAAG,GAAG,UAAU,UAAU,CAAA,EAAG;AAAA,IACxC,EAAA;AAAA,EACH;AAAA,EAEA,MAAM,MAAM,QAAiB,MAAe,SAAgC;AAC3E,UAAM,SAAS,MAAM,KAAK,sBAAsB,UAAU,OAAO,IAAI;AACrE,QAAI,CAAC,QAAQ;AACZ,aAAO;IACR;AACO,WAAA,OAAO,QAAQ,OAAO,IAAI,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,OAAO;AAAA,MAC7D,MAAM;AAAA,MACN,WAAW,OAAO,QAAQ,iBAAiB,MAAM,OAAO,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,WAAW,MAAM;AAC1F,gBAAQ,YAAY,MAAM;AAAA,UACzB,KAAK,IAAI,aAAa;AACrB,mBAAO,EAAE,YAAY,gCAAyC,MAAM,YAAY,YAAY;UAC7F,KAAK,IAAI,aAAa;AACrB,mBAAO,EAAE,YAAY,oCAA6C,MAAM,OAAO,YAAY;UAC5F,KAAK,IAAI,aAAa;AACd,mBAAA,EAAE,YAAY,mCAA4C;QACnE;AAAA,MAAA,CACA;AAAA,IACA,EAAA;AAAA,EACH;AACD;"}
1
+ {"version":3,"file":"ProjectTypeResolver.js","sources":["../../../../../../packages/engine-tenant-api/src/resolvers/types/ProjectTypeResolver.ts"],"sourcesContent":["import { ProjectIdentityRelation, ProjectMembersArgs, ProjectResolvers } from '../../schema'\nimport { TenantResolverContext } from '../TenantResolverContext'\nimport { PermissionActions, Project, ProjectMemberManager, ProjectSchemaResolver } from '../../model'\nimport { getRoleVariables } from '@contember/schema-utils'\nimport { Acl } from '@contember/schema'\nimport { UserInputError } from '@contember/graphql-utils'\n\nexport class ProjectTypeResolver implements ProjectResolvers {\n\tconstructor(\n\t\tprivate readonly projectMemberManager: ProjectMemberManager,\n\t\tprivate readonly projectSchemaResolver: ProjectSchemaResolver,\n\t) {}\n\n\tasync members(\n\t\tparent: Project,\n\t\targs: ProjectMembersArgs,\n\t\tcontext: TenantResolverContext,\n\t): Promise<readonly ProjectIdentityRelation[]> {\n\t\tconst projectScope = await context.permissionContext.createProjectScope(parent)\n\t\tconst verifier = context.permissionContext.createAccessVerifier(projectScope)\n\t\tif (!(await verifier(PermissionActions.PROJECT_VIEW_MEMBER([])))) {\n\t\t\treturn []\n\t\t}\n\t\tif (args.input?.filter?.email && args.input.filter.memberType === 'API_KEY') {\n\t\t\tthrow new UserInputError(`Cannot use email filter for ApiKey member type.`)\n\t\t}\n\t\tif (args.input?.filter?.personId && args.input.filter.memberType === 'API_KEY') {\n\t\t\tthrow new UserInputError(`Cannot use personId filter for ApiKey member type.`)\n\t\t}\n\t\tif (args.memberType && args.input) {\n\t\t\tthrow new UserInputError(`Cannot use both deprecated memberType parameter and new input parameter`)\n\t\t}\n\n\t\tconst members = await this.projectMemberManager.getProjectMembers(context.db, parent.id, verifier, args.input ?? { filter: { memberType: args.memberType } })\n\t\treturn members.map(it => ({\n\t\t\t...it,\n\t\t\tidentity: { ...it.identity, projects: [] },\n\t\t}))\n\t}\n\n\tasync roles(parent: Project, args: unknown, context: TenantResolverContext) {\n\t\tconst schema = await this.projectSchemaResolver.getSchema(parent.slug)\n\t\tif (!schema) {\n\t\t\treturn []\n\t\t}\n\t\treturn Object.entries(schema.acl.roles).map(([role, def]) => ({\n\t\t\tname: role,\n\t\t\tvariables: Object.entries(getRoleVariables(role, schema.acl)).map(([name, variableDef]) => {\n\t\t\t\tswitch (variableDef.type) {\n\t\t\t\t\tcase Acl.VariableType.entity:\n\t\t\t\t\t\treturn { __typename: 'RoleEntityVariableDefinition' as const, name, entityName: variableDef.entityName }\n\t\t\t\t\tcase Acl.VariableType.predefined:\n\t\t\t\t\t\treturn { __typename: 'RolePredefinedVariableDefinition' as const, name, value: variableDef.value }\n\t\t\t\t\tcase Acl.VariableType.condition:\n\t\t\t\t\t\treturn { __typename: 'RoleConditionVariableDefinition' as const, name }\n\t\t\t\t}\n\t\t\t}),\n\t\t}))\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAOO,MAAM,oBAAgD;AAAA,EAC5D,YACkB,sBACA,uBAChB;AAFgB,SAAA,uBAAA;AACA,SAAA,wBAAA;AAAA,EAAA;AAAA,EAGlB,MAAM,QACL,QACA,MACA,SAC8C;AAC9C,UAAM,eAAe,MAAM,QAAQ,kBAAkB,mBAAmB,MAAM;AAC9E,UAAM,WAAW,QAAQ,kBAAkB,qBAAqB,YAAY;AACxE,QAAA,CAAE,MAAM,SAAS,kBAAkB,oBAAoB,CAAA,CAAE,CAAC,GAAI;AACjE,aAAO,CAAC;AAAA,IAAA;AAEL,QAAA,KAAK,OAAO,QAAQ,SAAS,KAAK,MAAM,OAAO,eAAe,WAAW;AACtE,YAAA,IAAI,eAAe,iDAAiD;AAAA,IAAA;AAEvE,QAAA,KAAK,OAAO,QAAQ,YAAY,KAAK,MAAM,OAAO,eAAe,WAAW;AACzE,YAAA,IAAI,eAAe,qDAAqD;AAAA,IAAA;AAE3E,QAAA,KAAK,cAAc,KAAK,OAAO;AAC5B,YAAA,IAAI,eAAe,yEAAyE;AAAA,IAAA;AAGnG,UAAM,UAAU,MAAM,KAAK,qBAAqB,kBAAkB,QAAQ,IAAI,OAAO,IAAI,UAAU,KAAK,SAAS,EAAE,QAAQ,EAAE,YAAY,KAAK,WAAA,GAAc;AACrJ,WAAA,QAAQ,IAAI,CAAO,QAAA;AAAA,MACzB,GAAG;AAAA,MACH,UAAU,EAAE,GAAG,GAAG,UAAU,UAAU,CAAG,EAAA;AAAA,IAAA,EACxC;AAAA,EAAA;AAAA,EAGH,MAAM,MAAM,QAAiB,MAAe,SAAgC;AAC3E,UAAM,SAAS,MAAM,KAAK,sBAAsB,UAAU,OAAO,IAAI;AACrE,QAAI,CAAC,QAAQ;AACZ,aAAO,CAAC;AAAA,IAAA;AAEF,WAAA,OAAO,QAAQ,OAAO,IAAI,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,OAAO;AAAA,MAC7D,MAAM;AAAA,MACN,WAAW,OAAO,QAAQ,iBAAiB,MAAM,OAAO,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,WAAW,MAAM;AAC1F,gBAAQ,YAAY,MAAM;AAAA,UACzB,KAAK,IAAI,aAAa;AACrB,mBAAO,EAAE,YAAY,gCAAyC,MAAM,YAAY,YAAY,WAAW;AAAA,UACxG,KAAK,IAAI,aAAa;AACrB,mBAAO,EAAE,YAAY,oCAA6C,MAAM,OAAO,YAAY,MAAM;AAAA,UAClG,KAAK,IAAI,aAAa;AACd,mBAAA,EAAE,YAAY,mCAA4C,KAAK;AAAA,QAAA;AAAA,MAExE,CAAA;AAAA,IAAA,EACA;AAAA,EAAA;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"tenant.graphql.cjs","sources":["../../../../../packages/engine-tenant-api/src/schema/tenant.graphql.ts"],"sourcesContent":["import { gql } from 'graphql-tag'\nimport { DocumentNode } from 'graphql'\n\nconst schema: DocumentNode = gql`\n\tscalar Json\n\tscalar DateTime\n\n\tschema {\n\t\tquery: Query\n\t\tmutation: Mutation\n\t}\n\n\ttype Query {\n\t\tme: Identity!\n\t\tpersonById(id: String!): Person\n\t\tprojects: [Project!]!\n\t\tprojectBySlug(slug: String!): Project\n\t\tprojectMemberships(projectSlug: String!, identityId: String!): [Membership!]!\n\t\tcheckResetPasswordToken(requestId: String!, token: String!): CheckResetPasswordTokenCode!\n\n\t\tidentityProviders: [IdentityProvider!]!\n\t\tmailTemplates: [MailTemplateData!]!\n\t\t\n\t\tconfiguration: Config!\n\t}\n\n\ttype Mutation {\n\t\tsignUp(email: String!, password: String, passwordHash: String, roles: [String!], name: String): SignUpResponse\n\t\tsignIn(email: String!, password: String!, expiration: Int, otpToken: String): SignInResponse\n\t\tcreateSessionToken(email: String, personId: String, expiration: Int): CreateSessionTokenResponse\n\t\tsignOut(all: Boolean): SignOutResponse\n\t\tchangeProfile(personId: String!, email: String, name: String): ChangeProfileResponse\n\t\tchangeMyProfile(email: String, name: String): ChangeMyProfileResponse\n\t\tchangePassword(personId: String!, password: String!): ChangePasswordResponse\n\t\tchangeMyPassword(currentPassword: String!, newPassword: String!): ChangeMyPasswordResponse\n\n\t\tinitSignInIDP(\n\t\t\tidentityProvider: String!,\n\t\t\tdata: Json\n\t\t\tredirectUrl: String @deprecated(reason: \"use data.redirectUrl\")\n\t\t): InitSignInIDPResponse\n\t\tsignInIDP(\n\t\t\tidentityProvider: String!,\n\t\t\tdata: Json,\n\t\t\texpiration: Int\n\t\t\tidpResponse: IDPResponseInput, @deprecated(reason: \"pass idpResponse.url as data.url\")\n\t\t\tredirectUrl: String @deprecated(reason: \"use data.redirectUrl\"),\n\t\t\tsessionData: Json @deprecated(reason: \"use data.sessionData\"),\n\t\t): SignInIDPResponse\n\t\t\n\t\t# passwordless sign in\n\t\tinitSignInPasswordless(email: String!, options: InitSignInPasswordlessOptions): InitSignInPasswordlessResponse\n\t\tsignInPasswordless(requestId: String!, validationType: PasswordlessValidationType!, token: String!, expiration: Int, mfaOtp: String): SignInPasswordlessResponse\n\t\tactivatePasswordlessOtp(requestId: String!, token: String!, otpHash: String!): ActivatePasswordlessOtpResponse\n\n enableMyPasswordless: ToggleMyPasswordlessResponse\n disableMyPasswordless: ToggleMyPasswordlessResponse\n\n\t\t# IDP management\n\t\taddIDP(identityProvider: String!, type: String!, configuration: Json!, options: IDPOptions): AddIDPResponse\n\t\tupdateIDP(identityProvider: String!, type: String, configuration: Json, options: IDPOptions, mergeConfiguration: Boolean): UpdateIDPResponse\n\t\tdisableIDP(identityProvider: String!): DisableIDPResponse\n\t\tenableIDP(identityProvider: String!): EnableIDPResponse\n\n\t\tprepareOtp(label: String): PrepareOtpResponse\n\t\tconfirmOtp(otpToken: String!): ConfirmOtpResponse\n\t\tdisableOtp: DisableOtpResponse\n\n\t\tdisablePerson(personId: String!): DisablePersonResponse\n\n\t\tcreateResetPasswordRequest(email: String!, options: CreateResetPasswordRequestOptions): CreatePasswordResetRequestResponse\n\t\tresetPassword(token: String!, password: String!): ResetPasswordResponse\n\n\t\tinvite(email: String!, name: String, projectSlug: String!, memberships: [MembershipInput!]!, options: InviteOptions): InviteResponse\n\t\tunmanagedInvite(\n\t\t\temail: String!,\n\t\t\tname: String,\n\t\t\tprojectSlug: String!,\n\t\t\tmemberships: [MembershipInput!]!,\n\t\t\toptions: UnmanagedInviteOptions,\n\t\t\tpassword: String @deprecated(reason: \"Use options\")\n\t\t): InviteResponse\n\n\t\taddProjectMember(projectSlug: String!, identityId: String!, memberships: [MembershipInput!]!): AddProjectMemberResponse\n\t\tremoveProjectMember(projectSlug: String!, identityId: String!): RemoveProjectMemberResponse\n\n\t\tupdateProjectMember(projectSlug: String!, identityId: String!, memberships: [MembershipInput!]!): UpdateProjectMemberResponse\n\n\t\tcreateApiKey(projectSlug: String!, memberships: [MembershipInput!]!, description: String!, tokenHash: String): CreateApiKeyResponse\n\t\tcreateGlobalApiKey(description: String!, roles: [String!], tokenHash: String): CreateApiKeyResponse\n\t\tdisableApiKey(id: String!): DisableApiKeyResponse\n\t\taddGlobalIdentityRoles(identityId: String!, roles: [String!]!): AddGlobalIdentityRolesResponse\n\t\tremoveGlobalIdentityRoles(identityId: String!, roles: [String!]!): RemoveGlobalIdentityRolesResponse\n\n\t\taddMailTemplate(template: MailTemplate!): AddMailTemplateResponse\n\t\tremoveMailTemplate(templateIdentifier: MailTemplateIdentifier!): RemoveMailTemplateResponse\n\n\t\tcreateProject(\n\t\t\tprojectSlug: String!,\n\t\t\tname: String,\n\t\t\tconfig: Json,\n\t\t\tsecrets: [ProjectSecret!],\n\t\t\toptions: CreateProjectOptions,\n\t\t\tdeployTokenHash: String @deprecated(reason: \"Use options\")\n\t\t): CreateProjectResponse\n\t\tsetProjectSecret(projectSlug: String!, key: String!, value: String!): SetProjectSecretResponse\n\t\tupdateProject(projectSlug: String!, name: String, config: Json, mergeConfig: Boolean): UpdateProjectResponse\n\t\t\n\t\tconfigure(config: ConfigInput!): ConfigureResponse\n\n\t\taddProjectMailTemplate(template: MailTemplate!): AddMailTemplateResponse\n\t\t@deprecated(reason: \"use addMailTemplate\")\n\n\t\tremoveProjectMailTemplate(templateIdentifier: MailTemplateIdentifier!): RemoveMailTemplateResponse\n\t\t@deprecated(reason: \"use removeMailTemplate\")\n\n\t}\n\t\n\t# === configure ===\n\t\n\ttype Config {\n\t\tpasswordless: ConfigPasswordless!\n\t}\n\t\n\ttype ConfigPasswordless {\n\t\tenabled: ConfigPolicy!\n\t\turl: String\n\t\texpirationMinutes: Int!\n\t}\n\t\n\tinput ConfigInput {\n\t\tpasswordless: ConfigPasswordlessInput\n\t}\n\t\n\tenum ConfigPolicy {\n\t\talways\n\t\tnever\n\t\toptIn\n\t\toptOut\n\t}\n\t\n\tinput ConfigPasswordlessInput {\n\t\tenabled: ConfigPolicy\n\t\turl: String\n\t\texpirationMinutes: Int\n\t}\n\t\n\ttype ConfigureResponse {\n\t\tok: Boolean!\n\t\terror: ConfigureError\n\t}\n\t\n\ttype ConfigureError {\n\t\tcode: ConfigureErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\t\n\tenum ConfigureErrorCode {\n\t\tINVALID_CONFIG\n\t}\n\n\t# === signUp ===\n\ttype SignUpResponse {\n\t\tok: Boolean!\n\t\terrors: [SignUpError!]! @deprecated\n\t\terror: SignUpError\n\t\tresult: SignUpResult\n\t}\n\n\ttype SignUpError {\n\t\tcode: SignUpErrorCode!\n\t\tdeveloperMessage: String!\n\t\tendPersonMessage: String @deprecated\n\t}\n\n\tenum SignUpErrorCode {\n\t\tEMAIL_ALREADY_EXISTS\n\t\tINVALID_EMAIL_FORMAT\n\t\tTOO_WEAK\n\t}\n\n\ttype SignUpResult {\n\t\tperson: Person!\n\t}\n\n\t# === signInCommon ==\n\n\tinterface CommonSignInResult {\n\t\ttoken: String!\n\t\tperson: Person!\n\t}\n\n\t# === signIn ===\n\ttype SignInResponse {\n\t\tok: Boolean!\n\t\terrors: [SignInError!]! @deprecated\n\t\terror: SignInError\n\t\tresult: SignInResult\n\t}\n\n\ttype SignInError {\n\t\tcode: SignInErrorCode!\n\t\tdeveloperMessage: String!\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum SignInErrorCode {\n\t\tUNKNOWN_EMAIL\n\t\tINVALID_PASSWORD\n\t\tPERSON_DISABLED\n\t\tNO_PASSWORD_SET\n\t\tOTP_REQUIRED\n\t\tINVALID_OTP_TOKEN\n\t}\n\n\ttype SignInResult implements CommonSignInResult {\n\t\ttoken: String!\n\t\tperson: Person!\n\t}\n\n\t# == createSessionToken ==\n\n\ttype CreateSessionTokenResponse {\n\t\tok: Boolean!\n\t\terror: CreateSessionTokenError\n\t\tresult: CreateSessionTokenResult\n\t}\n\n\ttype CreateSessionTokenError {\n\t\tcode: CreateSessionTokenErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\n\tenum CreateSessionTokenErrorCode {\n\t\tUNKNOWN_EMAIL\n\t\tUNKNOWN_PERSON_ID\n\t\tPERSON_DISABLED\n\t}\n\n\ttype CreateSessionTokenResult implements CommonSignInResult{\n\t\ttoken: String!\n\t\tperson: Person!\n\t}\n\n\t# === signOut ===\n\n\ttype SignOutResponse {\n\t\tok: Boolean!\n\t\terrors: [SignOutError!]! @deprecated\n\t\terror: SignOutError\n\t}\n\n\ttype SignOutError {\n\t\tcode: SignOutErrorCode!\n\t\tdeveloperMessage: String!\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum SignOutErrorCode {\n\t\tNOT_A_PERSON,\n\t\tNOT_POSSIBLE_SIGN_OUT_WITH_PERMANENT_API_KEY\n\t}\n\n\t# === changeProfile ===\n\t\n\ttype ChangeProfileResponse {\n\t\tok: Boolean!\n\t\terror: ChangeProfileError\n\t}\n\t\n\ttype ChangeProfileError {\n\t\tcode: ChangeProfileErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\t\n\tenum ChangeProfileErrorCode {\n\t\tPERSON_NOT_FOUND\n\t\tINVALID_EMAIL_FORMAT\n\t\tEMAIL_ALREADY_EXISTS\n\t}\n\t\n\t# === changeMyProfile ===\n\n\ttype ChangeMyProfileResponse {\n\t\tok: Boolean!\n\t\terror: ChangeMyProfileError\n\t}\n\n\ttype ChangeMyProfileError {\n\t\tcode: ChangeMyProfileErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\n\tenum ChangeMyProfileErrorCode {\n\t\tNOT_A_PERSON\n\t\tINVALID_EMAIL_FORMAT\n\t\tEMAIL_ALREADY_EXISTS\n\t}\t\n\n\t# === changePassword ===\n\n\ttype ChangePasswordResponse {\n\t\tok: Boolean!\n\t\terrors: [ChangePasswordError!]! @deprecated\n\t\terror: ChangePasswordError\n\t}\n\n\ttype ChangePasswordError {\n\t\tcode: ChangePasswordErrorCode!\n\t\tdeveloperMessage: String!\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum ChangePasswordErrorCode {\n\t\tPERSON_NOT_FOUND\n\t\tTOO_WEAK\n\t}\n\n\n\t# === changeMyPassword ===\n\t\n\ttype ChangeMyPasswordResponse {\n\t\tok: Boolean!\n\t\terror: ChangeMyPasswordError\n\t}\n\n\ttype ChangeMyPasswordError {\n\t\tcode: ChangeMyPasswordErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\n\tenum ChangeMyPasswordErrorCode {\n\t\tTOO_WEAK\n\t\tNOT_A_PERSON\n\t\tINVALID_PASSWORD\n\t\tNO_PASSWORD_SET\n\t}\n\n\t# === IDP ===\n\n\ttype InitSignInIDPResponse {\n\t\tok: Boolean!\n\t\terrors: [InitSignInIDPError!]! @deprecated\n\t\terror: InitSignInIDPError\n\t\tresult: InitSignInIDPResult\n\t}\n\n\ttype InitSignInIDPResult {\n\t\tauthUrl: String!\n\t\tsessionData: Json!\n\t\tidpConfiguration: Json\n\t}\n\n\ttype InitSignInIDPError {\n\t\tcode: InitSignInIDPErrorCode!\n\t\tdeveloperMessage: String!\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum InitSignInIDPErrorCode {\n\t\tPROVIDER_NOT_FOUND\n\t\tIDP_VALIDATION_FAILED\n\t}\n\n\tinput IDPResponseInput {\n\t\turl: String!\n\t}\n\n\ttype SignInIDPResponse {\n\t\tok: Boolean!\n\t\terrors: [SignInIDPError!]! @deprecated\n\t\terror: SignInIDPError\n\t\tresult: SignInIDPResult\n\t}\n\n\ttype SignInIDPError {\n\t\tcode: SignInIDPErrorCode!\n\t\tdeveloperMessage: String!\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum SignInIDPErrorCode {\n\t\tINVALID_IDP_RESPONSE\n\t\tIDP_VALIDATION_FAILED\n\n\t\tPERSON_NOT_FOUND\n\t\tPERSON_DISABLED\n\t\tPERSON_ALREADY_EXISTS\n\t}\n\n\ttype SignInIDPResult implements CommonSignInResult {\n\t\ttoken: String!\n\t\tperson: Person!\n\t\tidpResponse: Json\n\t}\n\n\ttype AddIDPResponse {\n\t\terror: AddIDPError\n\t\tok: Boolean!\n\t}\n\n\ttype AddIDPError {\n\t\tcode: AddIDPErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\n\tenum AddIDPErrorCode {\n\t\tALREADY_EXISTS\n\t\tUNKNOWN_TYPE\n\t\tINVALID_CONFIGURATION\n\t}\n\n\ttype UpdateIDPResponse {\n\t\terror: UpdateIDPError\n\t\tok: Boolean!\n\t}\n\n\ttype UpdateIDPError {\n\t\tcode: UpdateIDPErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\n\tenum UpdateIDPErrorCode {\n\t\tNOT_FOUND\n\t\tINVALID_CONFIGURATION\n\t}\n\n\n\ttype DisableIDPResponse {\n\t\terror: DisableIDPError\n\t\tok: Boolean!\n\t}\n\n\ttype DisableIDPError {\n\t\tcode: DisableIDPErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\n\tenum DisableIDPErrorCode {\n\t\tNOT_FOUND\n\t}\n\n\ttype EnableIDPResponse {\n\t\terror: EnableIDPError\n\t\tok: Boolean!\n\t}\n\n\ttype EnableIDPError {\n\t\tcode: EnableIDPErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\n\tenum EnableIDPErrorCode {\n\t\tNOT_FOUND\n\t}\n\n\ttype IdentityProvider {\n\t\tslug: String!\n\t\ttype: String!\n\t\tconfiguration: Json!\n\t\tdisabledAt: DateTime\n\t\toptions: IDPOptionsOutput!\n\t}\n\n\ttype IDPOptionsOutput {\n\t\tautoSignUp: Boolean!\n\t\texclusive: Boolean!\n\t\tinitReturnsConfig: Boolean!\n\t}\n\n\tinput IDPOptions {\n\t\tautoSignUp: Boolean\n\t\texclusive: Boolean\n\t\tinitReturnsConfig: Boolean\n\t}\n\n\t# === passwordless sign in ===\n\t\n\ttype InitSignInPasswordlessResponse {\n\t\tok: Boolean!\n\t\terror: InitSignInPasswordlessError\n\t\tresult: InitSignInPasswordlessResult\n\t}\n\t\n\ttype InitSignInPasswordlessError {\n\t\tcode: InitSignInPasswordlessErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\t\n\tenum InitSignInPasswordlessErrorCode {\n\t\tPERSON_NOT_FOUND\n\t\t\n\t\tPASSWORDLESS_DISABLED\n\t}\n\t\n\ttype InitSignInPasswordlessResult {\n\t\trequestId: String!\n\t\texpiresAt: DateTime!\n\t}\n\n\tinput InitSignInPasswordlessOptions {\n\t\tmailVariant: String\n\t\tmailProject: String\n\t}\n\t\n\ttype SignInPasswordlessResponse {\n\t\tok: Boolean!\n\t\terror: SignInPasswordlessError\n\t\tresult: SignInPasswordlessResult\n\t}\n\t\n\tenum PasswordlessValidationType {\n\t\totp\n\t\ttoken\n\t}\n\t\n\ttype SignInPasswordlessError {\n\t\tcode: SignInPasswordlessErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\t\n\tenum SignInPasswordlessErrorCode {\n\t\tTOKEN_NOT_FOUND\n\t\tTOKEN_INVALID\n\t\tTOKEN_EXPIRED\n\t\tTOKEN_USED\n\t\tPERSON_DISABLED\n\t\tOTP_REQUIRED\n\t\tINVALID_OTP_TOKEN\n\t}\n\t\n\ttype SignInPasswordlessResult implements CommonSignInResult {\n\t\ttoken: String!\n\t\tperson: Person!\n\t}\n\t\n\ttype ActivatePasswordlessOtpResponse {\n\t\tok: Boolean!\n\t\terror: ActivatePasswordlessOtpError\n\t}\n\t\n\ttype ActivatePasswordlessOtpError {\n\t\tcode: ActivatePasswordlessOtpErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\t\n\tenum ActivatePasswordlessOtpErrorCode {\n\t\tTOKEN_NOT_FOUND\n\t\tTOKEN_INVALID\n\t\tTOKEN_EXPIRED\n\t\tTOKEN_USED\n\t}\n\t\n\ttype ToggleMyPasswordlessResponse {\n\t\tok: Boolean!\n\t\terror: ToggleMyPasswordlessError\n\t}\n\t\n\ttype ToggleMyPasswordlessError {\n\t\tcode: ToggleMyPasswordlessErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\t\n\tenum ToggleMyPasswordlessErrorCode {\n\t\tCANNOT_TOGGLE\n NOT_A_PERSON\n\t}\n\t\n\n\t# === invite ===\n\n\ttype InviteResponse {\n\t\tok: Boolean!\n\t\terrors: [InviteError!]! @deprecated\n\t\terror: InviteError\n\t\tresult: InviteResult\n\t}\n\n\ttype InviteError {\n\t\tcode: InviteErrorCode!\n\t\tdeveloperMessage: String!\n\t\tmembershipValidation: [MembershipValidationError!]\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum InviteErrorCode {\n\t\tPROJECT_NOT_FOUND\n\t\tALREADY_MEMBER\n\t\tINVALID_MEMBERSHIP\n\t\tINVALID_EMAIL_FORMAT\n\n\t\tROLE_NOT_FOUND @deprecated\n\t\tVARIABLE_NOT_FOUND @deprecated\n\t\tVARIABLE_EMPTY @deprecated\n\t}\n\n\ttype InviteResult {\n\t\tperson: Person!\n\t\tisNew: Boolean!\n\t}\n\n\tenum InviteMethod {\n\t\tCREATE_PASSWORD\n\t\tRESET_PASSWORD\n\t}\n\n\tinput InviteOptions {\n\t\tmethod: InviteMethod\n\t\tmailVariant: String\n\t}\n\n\tinput UnmanagedInviteOptions {\n\t\tpassword: String\n\t\tresetTokenHash: String\n\t}\n\n\t# === addProjectMember ===\n\n\ttype AddProjectMemberResponse {\n\t\tok: Boolean!\n\t\terrors: [AddProjectMemberError!]!\n\t\terror: AddProjectMemberError\n\t}\n\n\ttype AddProjectMemberError {\n\t\tcode: AddProjectMemberErrorCode!\n\t\tmembershipValidation: [MembershipValidationError!]\n\t\tdeveloperMessage: String!\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum AddProjectMemberErrorCode {\n\t\tPROJECT_NOT_FOUND\n\t\tIDENTITY_NOT_FOUND\n\t\tALREADY_MEMBER\n\t\tINVALID_MEMBERSHIP\n\n\t\tROLE_NOT_FOUND @deprecated\n\t\tVARIABLE_EMPTY @deprecated\n\t\tVARIABLE_NOT_FOUND @deprecated\n\t}\n\n\t# === updateProjectMember ===\n\n\ttype UpdateProjectMemberResponse {\n\t\tok: Boolean!\n\t\terrors: [UpdateProjectMemberError!]! @deprecated\n\t\terror: UpdateProjectMemberError\n\t}\n\n\ttype UpdateProjectMemberError {\n\t\tcode: UpdateProjectMemberErrorCode!\n\t\tdeveloperMessage: String!\n\t\tmembershipValidation: [MembershipValidationError!]\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum UpdateProjectMemberErrorCode {\n\t\tPROJECT_NOT_FOUND\n\t\tNOT_MEMBER\n\t\tINVALID_MEMBERSHIP\n\n\t\tROLE_NOT_FOUND @deprecated\n\t\tVARIABLE_EMPTY @deprecated\n\t\tVARIABLE_NOT_FOUND @deprecated\n\t}\n\n\t# === removeProjectMember ===\n\n\ttype RemoveProjectMemberResponse {\n\t\tok: Boolean!\n\t\terrors: [RemoveProjectMemberError!]!\n\t\terror: RemoveProjectMemberError\n\t}\n\n\ttype RemoveProjectMemberError {\n\t\tcode: RemoveProjectMemberErrorCode!\n\t\tdeveloperMessage: String!\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum RemoveProjectMemberErrorCode {\n\t\tNOT_MEMBER\n\t\tPROJECT_NOT_FOUND\n\t}\n\n\t# === createApiKey ===\n\n\ttype CreateApiKeyResponse {\n\t\tok: Boolean!\n\t\terrors: [CreateApiKeyError!]! @deprecated\n\t\terror: CreateApiKeyError\n\t\tresult: CreateApiKeyResult\n\t}\n\n\ttype CreateApiKeyError {\n\t\tcode: CreateApiKeyErrorCode!\n\t\tdeveloperMessage: String!\n\t\tmembershipValidation: [MembershipValidationError!]\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum CreateApiKeyErrorCode {\n\t\tPROJECT_NOT_FOUND\n\t\tINVALID_MEMBERSHIP\n\n\t\tVARIABLE_NOT_FOUND @deprecated\n\t\tROLE_NOT_FOUND @deprecated\n\t\tVARIABLE_EMPTY @deprecated\n\t}\n\n\ttype CreateApiKeyResult {\n\t\tapiKey: ApiKeyWithToken!\n\t}\n\n\t# === disableApiKey ===\n\n\ttype DisableApiKeyResponse {\n\t\tok: Boolean!\n\t\terrors: [DisableApiKeyError!]! @deprecated\n\t\terror: DisableApiKeyError\n\t}\n\n\ttype DisableApiKeyError {\n\t\tcode: DisableApiKeyErrorCode!\n\t\tdeveloperMessage: String!\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum DisableApiKeyErrorCode {\n\t\tKEY_NOT_FOUND\n\t}\n\t# === addGlobalIdentityRoles ===\n\n\ttype AddGlobalIdentityRolesResponse {\n\t\tok: Boolean!\n\t\terror: AddGlobalIdentityRolesError\n\t\tresult: AddGlobalIdentityRolesResult\n\t}\n\n\ttype AddGlobalIdentityRolesResult {\n\t\tidentity: Identity!\n\t}\n\ttype AddGlobalIdentityRolesError {\n\t\tcode: AddGlobalIdentityRolesErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\n\tenum AddGlobalIdentityRolesErrorCode {\n\t\tIDENTITY_NOT_FOUND\n\t\tINVALID_ROLE\n\t}\n\n\n\t# === removeGlobalIdentityRoles ===\n\n\ttype RemoveGlobalIdentityRolesResponse {\n\t\tok: Boolean!\n\t\terror: RemoveGlobalIdentityRolesError\n\t\tresult: RemoveGlobalIdentityRolesResult\n\t}\n\n\ttype RemoveGlobalIdentityRolesError {\n\t\tcode: RemoveGlobalIdentityRolesErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\n\ttype RemoveGlobalIdentityRolesResult {\n\t\tidentity: Identity!\n\t}\n\n\tenum RemoveGlobalIdentityRolesErrorCode {\n\t\tIDENTITY_NOT_FOUND\n\t\tINVALID_ROLE\n\t}\n\t# === common ===\n\n\t# === variables ===\n\n\tinput VariableEntryInput {\n\t\tname: String!\n\t\tvalues: [String!]!\n\t}\n\n\ttype VariableEntry {\n\t\tname: String!\n\t\tvalues: [String!]!\n\t}\n\n\t# === membership ===\n\n\tinput MembershipInput {\n\t\trole: String!\n\t\tvariables: [VariableEntryInput!]!\n\t}\n\n\ttype Membership {\n\t\trole: String!\n\t\tvariables: [VariableEntry!]!\n\t}\n\n\ttype MembershipValidationError {\n\t\tcode: MembershipValidationErrorCode!\n\t\trole: String!\n\t\tvariable: String\n\t}\n\n\tenum MembershipValidationErrorCode {\n\t\tROLE_NOT_FOUND\n\t\tVARIABLE_NOT_FOUND\n\t\tVARIABLE_EMPTY\n\t\tVARIABLE_INVALID\n\t}\n\n\t# === person ====\n\n\ttype Person {\n\t\tid: String!\n\t\temail: String\n\t\tname: String\n\t\totpEnabled: Boolean!\n\t\tpasswordlessEnabled: Boolean\n\t\tidentity: Identity!\n\t}\n\n\t# === api key ===\n\n\ttype ApiKey {\n\t\tid: String!\n\t\tidentity: Identity!\n\t}\n\n\ttype ApiKeyWithToken {\n\t\tid: String!\n\t\ttoken: String\n\t\tidentity: Identity!\n\t}\n\n\t# === identity ===\n\n\ttype Identity {\n\t\tid: String!\n\t\tdescription: String\n\t\tperson: Person\n\t\tapiKey: ApiKey\n\t\tprojects: [IdentityProjectRelation!]!\n\t\tpermissions: IdentityGlobalPermissions\n\t\troles: [String!]\n\t}\n\n\ttype IdentityGlobalPermissions {\n\t\tcanCreateProject: Boolean!\n\t\tcanDeployEntrypoint: Boolean!\n\t}\n\n\ttype IdentityProjectRelation {\n\t\tproject: Project!\n\t\tmemberships: [Membership!]!\n\t}\n\n\t# === project ===\n\n\ttype Project {\n\t\tid: String!\n\t\tname: String!\n\t\tslug: String!\n\t\tconfig: Json!\n\t\troles: [RoleDefinition!]!\n\t\tmembers(\n\t\t\tinput: ProjectMembersInput,\n\t\t\tmemberType: MemberType @deprecated(reason: \"Use args\")\n\t\t): [ProjectIdentityRelation!]!\n\t}\n\n\tinput ProjectMembersInput {\n\t\tlimit: Int\n\t\toffset: Int\n\t\tfilter: ProjectMembersFilter\n\t}\n\n\tinput ProjectMembersFilter {\n\t\tmemberType: MemberType\n\t\temail: [String!]\n\t\tidentityId: [String!]\n\t\tpersonId: [String!]\n\t}\n\n\tenum MemberType {\n\t\tAPI_KEY\n\t\tPERSON\n\t}\n\n\ttype ProjectIdentityRelation {\n\t\tidentity: Identity!\n\t\tmemberships: [Membership!]!\n\t}\n\n\ttype RoleDefinition {\n\t\tname: String!\n\t\tvariables: [RoleVariableDefinition!]!\n\t}\n\n\tinterface RoleVariableDefinition {\n\t\tname: String!\n\t}\n\n\ttype RoleEntityVariableDefinition implements RoleVariableDefinition {\n\t\tname: String!\n\t\tentityName: String!\n\t}\n\n\ttype RolePredefinedVariableDefinition implements RoleVariableDefinition {\n\t\tname: String!\n\t\tvalue: String!\n\t}\n\n\ttype RoleConditionVariableDefinition implements RoleVariableDefinition {\n\t\tname: String!\n\t}\n\n\t# ==== 2fa ====\n\n\ttype PrepareOtpResponse {\n\t\tok: Boolean!\n\t\tresult: PrepareOtpResult\n\t}\n\n\ttype PrepareOtpResult {\n\t\totpUri: String!\n\t\totpSecret: String!\n\t}\n\n\ttype ConfirmOtpResponse {\n\t\tok: Boolean!\n\t\terrors: [ConfirmOtpError!]! @deprecated\n\t\terror: ConfirmOtpError\n\t}\n\n\ttype ConfirmOtpError {\n\t\tcode: ConfirmOtpErrorCode!\n\t\tdeveloperMessage: String!\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum ConfirmOtpErrorCode {\n\t\tINVALID_OTP_TOKEN\n\t\tNOT_PREPARED\n\t}\n\n\ttype DisableOtpResponse {\n\t\tok: Boolean!\n\t\terrors: [DisableOtpError!]! @deprecated\n\t\terror: DisableOtpError\n\t}\n\n\ttype DisableOtpError {\n\t\tcode: DisableOtpErrorCode!\n\t\tdeveloperMessage: String!\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum DisableOtpErrorCode {\n\t\tOTP_NOT_ACTIVE\n\t}\n\n\ttype DisablePersonResponse {\n\t\tok: Boolean!\n\t\terror: DisablePersonError\n\t}\n\n\ttype DisablePersonError {\n\t\tcode: DisablePersonErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\n\tenum DisablePersonErrorCode {\n\t\tPERSON_ALREADY_DISABLED\n\t\tPERSON_NOT_FOUND\n\t}\n\n\t# === mails ===\n\t\n\ttype MailTemplateData {\n\t\tprojectSlug: String\n\t\ttype: MailType!\n\t\tvariant: String\n\t\tsubject: String!\n\t\tcontent: String!\n\t\tuseLayout: Boolean!\n\t\treplyTo: String\n\t}\n\t\n\tinput MailTemplate {\n\t\tprojectSlug: String\n\t\ttype: MailType!\n\t\t\"Custom mail variant identifier, e.g. a locale.\"\n\t\tvariant: String\n\t\tsubject: String!\n\t\tcontent: String!\n\t\tuseLayout: Boolean\n\t\treplyTo: String\n\t}\n\n\tenum MailType {\n\t\tEXISTING_USER_INVITED\n\t\tNEW_USER_INVITED\n\t\tRESET_PASSWORD_REQUEST\n\t\tPASSWORDLESS_SIGN_IN\n\t}\n\n\tinput MailTemplateIdentifier {\n\t\tprojectSlug: String\n\t\ttype: MailType!\n\t\tvariant: String\n\t}\n\n\ttype AddMailTemplateResponse {\n\t\tok: Boolean!\n\t\terrors: [AddMailTemplateError!]! @deprecated\n\t\terror: AddMailTemplateError\n\t}\n\n\ttype AddMailTemplateError {\n\t\tcode: AddMailTemplateErrorCode!\n\t\tdeveloperMessage: String!\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum AddMailTemplateErrorCode {\n\t\tMISSING_VARIABLE\n\t\tPROJECT_NOT_FOUND\n\t\tINVALID_REPLY_EMAIL_FORMAT\n\t}\n\n\ttype RemoveMailTemplateResponse {\n\t\tok: Boolean!\n\t\terrors: [RemoveMailTemplateError!]!\n\t\terror: RemoveMailTemplateError\n\t}\n\n\ttype RemoveMailTemplateError {\n\t\tcode: RemoveMailTemplateErrorCode!\n\t\tdeveloperMessage: String!\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum RemoveMailTemplateErrorCode {\n\t\tPROJECT_NOT_FOUND\n\t\tTEMPLATE_NOT_FOUND\n\t}\n\n\t# === password reset ===\n\n\ttype CheckResetPasswordTokenResult {\n\t\tcode: CheckResetPasswordTokenCode!\n\t}\n\n\tenum CheckResetPasswordTokenCode {\n\t\tREQUEST_NOT_FOUND\n\t\tTOKEN_NOT_FOUND\n\t\tTOKEN_INVALID\n\t\tTOKEN_USED\n\t\tTOKEN_EXPIRED\n\t}\n\n\ttype CreatePasswordResetRequestResponse {\n\t\tok: Boolean!\n\t\terrors: [CreatePasswordResetRequestError!]! @deprecated\n\t\terror: CreatePasswordResetRequestError\n\t}\n\n\ttype CreatePasswordResetRequestError {\n\t\tcode: CreatePasswordResetRequestErrorCode!\n\t\tdeveloperMessage: String!\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum CreatePasswordResetRequestErrorCode {\n\t\tPERSON_NOT_FOUND\n\t}\n\n\ttype ResetPasswordResponse {\n\t\tok: Boolean!\n\t\terrors: [ResetPasswordError!]! @deprecated\n\t\terror: ResetPasswordError\n\t}\n\ttype ResetPasswordError {\n\t\tcode: ResetPasswordErrorCode!\n\t\tdeveloperMessage: String!\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum ResetPasswordErrorCode {\n\t\tTOKEN_NOT_FOUND\n\t\tTOKEN_INVALID\n\t\tTOKEN_USED\n\t\tTOKEN_EXPIRED\n\n\t\tPASSWORD_TOO_WEAK\n\t}\n\n\tinput CreateResetPasswordRequestOptions {\n\t\tmailProject: String\n\t\tmailVariant: String\n\t}\n\n\t# === project ===\n\n\tinput ProjectSecret {\n\t\tkey: String!\n\t\tvalue: String!\n\t}\n\n\tinput CreateProjectOptions {\n\t\tdeployTokenHash: String\n\t\tnoDeployToken: Boolean\n\t}\n\n\ttype CreateProjectResponse {\n\t\tok: Boolean!\n\t\terror: CreateProjectResponseError\n\t\tresult: CreateProjectResult\n\t}\n\n\ttype CreateProjectResponseError {\n\t\tcode: CreateProjectResponseErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\n\ttype CreateProjectResult {\n\t\tdeployerApiKey: ApiKeyWithToken\n\t}\n\n\tenum CreateProjectResponseErrorCode {\n\t\tALREADY_EXISTS\n\t\tINIT_ERROR\n\t}\n\n\ttype SetProjectSecretResponse {\n\t\tok: Boolean!\n\t\terror: SetProjectSecretError\n\t}\n\n\ttype SetProjectSecretError {\n\t\tcode: SetProjectSecretErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\n\tenum SetProjectSecretErrorCode {\n\t\tPROJECT_NOT_FOUND\n\t}\n\n\ttype UpdateProjectResponse {\n\t\tok: Boolean!\n\t\terror: UpdateProjectError\n\t}\n\n\ttype UpdateProjectError {\n\t\tcode: UpdateProjectErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\n\tenum UpdateProjectErrorCode {\n\t\tPROJECT_NOT_FOUND\n\t}\n`\n\nexport default schema\n"],"names":["gql"],"mappings":";;AAGA,MAAM,SAAuBA,WAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;"}
1
+ {"version":3,"file":"tenant.graphql.cjs","sources":["../../../../../packages/engine-tenant-api/src/schema/tenant.graphql.ts"],"sourcesContent":["import { gql } from 'graphql-tag'\nimport { DocumentNode } from 'graphql'\n\nconst schema: DocumentNode = gql`\n\tscalar Json\n\tscalar DateTime\n\n\tschema {\n\t\tquery: Query\n\t\tmutation: Mutation\n\t}\n\n\ttype Query {\n\t\tme: Identity!\n\t\tpersonById(id: String!): Person\n\t\tprojects: [Project!]!\n\t\tprojectBySlug(slug: String!): Project\n\t\tprojectMemberships(projectSlug: String!, identityId: String!): [Membership!]!\n\t\tcheckResetPasswordToken(requestId: String!, token: String!): CheckResetPasswordTokenCode!\n\n\t\tidentityProviders: [IdentityProvider!]!\n\t\tmailTemplates: [MailTemplateData!]!\n\t\t\n\t\tconfiguration: Config!\n\t}\n\n\ttype Mutation {\n\t\tsignUp(email: String!, password: String, passwordHash: String, roles: [String!], name: String): SignUpResponse\n\t\tsignIn(email: String!, password: String!, expiration: Int, otpToken: String): SignInResponse\n\t\tcreateSessionToken(email: String, personId: String, expiration: Int): CreateSessionTokenResponse\n\t\tsignOut(all: Boolean): SignOutResponse\n\t\tchangeProfile(personId: String!, email: String, name: String): ChangeProfileResponse\n\t\tchangeMyProfile(email: String, name: String): ChangeMyProfileResponse\n\t\tchangePassword(personId: String!, password: String!): ChangePasswordResponse\n\t\tchangeMyPassword(currentPassword: String!, newPassword: String!): ChangeMyPasswordResponse\n\n\t\tinitSignInIDP(\n\t\t\tidentityProvider: String!,\n\t\t\tdata: Json\n\t\t\tredirectUrl: String @deprecated(reason: \"use data.redirectUrl\")\n\t\t): InitSignInIDPResponse\n\t\tsignInIDP(\n\t\t\tidentityProvider: String!,\n\t\t\tdata: Json,\n\t\t\texpiration: Int\n\t\t\tidpResponse: IDPResponseInput, @deprecated(reason: \"pass idpResponse.url as data.url\")\n\t\t\tredirectUrl: String @deprecated(reason: \"use data.redirectUrl\"),\n\t\t\tsessionData: Json @deprecated(reason: \"use data.sessionData\"),\n\t\t): SignInIDPResponse\n\t\t\n\t\t# passwordless sign in\n\t\tinitSignInPasswordless(email: String!, options: InitSignInPasswordlessOptions): InitSignInPasswordlessResponse\n\t\tsignInPasswordless(requestId: String!, validationType: PasswordlessValidationType!, token: String!, expiration: Int, mfaOtp: String): SignInPasswordlessResponse\n\t\tactivatePasswordlessOtp(requestId: String!, token: String!, otpHash: String!): ActivatePasswordlessOtpResponse\n\n enableMyPasswordless: ToggleMyPasswordlessResponse\n disableMyPasswordless: ToggleMyPasswordlessResponse\n\n\t\t# IDP management\n\t\taddIDP(identityProvider: String!, type: String!, configuration: Json!, options: IDPOptions): AddIDPResponse\n\t\tupdateIDP(identityProvider: String!, type: String, configuration: Json, options: IDPOptions, mergeConfiguration: Boolean): UpdateIDPResponse\n\t\tdisableIDP(identityProvider: String!): DisableIDPResponse\n\t\tenableIDP(identityProvider: String!): EnableIDPResponse\n\n\t\tprepareOtp(label: String): PrepareOtpResponse\n\t\tconfirmOtp(otpToken: String!): ConfirmOtpResponse\n\t\tdisableOtp: DisableOtpResponse\n\n\t\tdisablePerson(personId: String!): DisablePersonResponse\n\n\t\tcreateResetPasswordRequest(email: String!, options: CreateResetPasswordRequestOptions): CreatePasswordResetRequestResponse\n\t\tresetPassword(token: String!, password: String!): ResetPasswordResponse\n\n\t\tinvite(email: String!, name: String, projectSlug: String!, memberships: [MembershipInput!]!, options: InviteOptions): InviteResponse\n\t\tunmanagedInvite(\n\t\t\temail: String!,\n\t\t\tname: String,\n\t\t\tprojectSlug: String!,\n\t\t\tmemberships: [MembershipInput!]!,\n\t\t\toptions: UnmanagedInviteOptions,\n\t\t\tpassword: String @deprecated(reason: \"Use options\")\n\t\t): InviteResponse\n\n\t\taddProjectMember(projectSlug: String!, identityId: String!, memberships: [MembershipInput!]!): AddProjectMemberResponse\n\t\tremoveProjectMember(projectSlug: String!, identityId: String!): RemoveProjectMemberResponse\n\n\t\tupdateProjectMember(projectSlug: String!, identityId: String!, memberships: [MembershipInput!]!): UpdateProjectMemberResponse\n\n\t\tcreateApiKey(projectSlug: String!, memberships: [MembershipInput!]!, description: String!, tokenHash: String): CreateApiKeyResponse\n\t\tcreateGlobalApiKey(description: String!, roles: [String!], tokenHash: String): CreateApiKeyResponse\n\t\tdisableApiKey(id: String!): DisableApiKeyResponse\n\t\taddGlobalIdentityRoles(identityId: String!, roles: [String!]!): AddGlobalIdentityRolesResponse\n\t\tremoveGlobalIdentityRoles(identityId: String!, roles: [String!]!): RemoveGlobalIdentityRolesResponse\n\n\t\taddMailTemplate(template: MailTemplate!): AddMailTemplateResponse\n\t\tremoveMailTemplate(templateIdentifier: MailTemplateIdentifier!): RemoveMailTemplateResponse\n\n\t\tcreateProject(\n\t\t\tprojectSlug: String!,\n\t\t\tname: String,\n\t\t\tconfig: Json,\n\t\t\tsecrets: [ProjectSecret!],\n\t\t\toptions: CreateProjectOptions,\n\t\t\tdeployTokenHash: String @deprecated(reason: \"Use options\")\n\t\t): CreateProjectResponse\n\t\tsetProjectSecret(projectSlug: String!, key: String!, value: String!): SetProjectSecretResponse\n\t\tupdateProject(projectSlug: String!, name: String, config: Json, mergeConfig: Boolean): UpdateProjectResponse\n\t\t\n\t\tconfigure(config: ConfigInput!): ConfigureResponse\n\n\t\taddProjectMailTemplate(template: MailTemplate!): AddMailTemplateResponse\n\t\t@deprecated(reason: \"use addMailTemplate\")\n\n\t\tremoveProjectMailTemplate(templateIdentifier: MailTemplateIdentifier!): RemoveMailTemplateResponse\n\t\t@deprecated(reason: \"use removeMailTemplate\")\n\n\t}\n\t\n\t# === configure ===\n\t\n\ttype Config {\n\t\tpasswordless: ConfigPasswordless!\n\t}\n\t\n\ttype ConfigPasswordless {\n\t\tenabled: ConfigPolicy!\n\t\turl: String\n\t\texpirationMinutes: Int!\n\t}\n\t\n\tinput ConfigInput {\n\t\tpasswordless: ConfigPasswordlessInput\n\t}\n\t\n\tenum ConfigPolicy {\n\t\talways\n\t\tnever\n\t\toptIn\n\t\toptOut\n\t}\n\t\n\tinput ConfigPasswordlessInput {\n\t\tenabled: ConfigPolicy\n\t\turl: String\n\t\texpirationMinutes: Int\n\t}\n\t\n\ttype ConfigureResponse {\n\t\tok: Boolean!\n\t\terror: ConfigureError\n\t}\n\t\n\ttype ConfigureError {\n\t\tcode: ConfigureErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\t\n\tenum ConfigureErrorCode {\n\t\tINVALID_CONFIG\n\t}\n\n\t# === signUp ===\n\ttype SignUpResponse {\n\t\tok: Boolean!\n\t\terrors: [SignUpError!]! @deprecated\n\t\terror: SignUpError\n\t\tresult: SignUpResult\n\t}\n\n\ttype SignUpError {\n\t\tcode: SignUpErrorCode!\n\t\tdeveloperMessage: String!\n\t\tendPersonMessage: String @deprecated\n\t}\n\n\tenum SignUpErrorCode {\n\t\tEMAIL_ALREADY_EXISTS\n\t\tINVALID_EMAIL_FORMAT\n\t\tTOO_WEAK\n\t}\n\n\ttype SignUpResult {\n\t\tperson: Person!\n\t}\n\n\t# === signInCommon ==\n\n\tinterface CommonSignInResult {\n\t\ttoken: String!\n\t\tperson: Person!\n\t}\n\n\t# === signIn ===\n\ttype SignInResponse {\n\t\tok: Boolean!\n\t\terrors: [SignInError!]! @deprecated\n\t\terror: SignInError\n\t\tresult: SignInResult\n\t}\n\n\ttype SignInError {\n\t\tcode: SignInErrorCode!\n\t\tdeveloperMessage: String!\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum SignInErrorCode {\n\t\tUNKNOWN_EMAIL\n\t\tINVALID_PASSWORD\n\t\tPERSON_DISABLED\n\t\tNO_PASSWORD_SET\n\t\tOTP_REQUIRED\n\t\tINVALID_OTP_TOKEN\n\t}\n\n\ttype SignInResult implements CommonSignInResult {\n\t\ttoken: String!\n\t\tperson: Person!\n\t}\n\n\t# == createSessionToken ==\n\n\ttype CreateSessionTokenResponse {\n\t\tok: Boolean!\n\t\terror: CreateSessionTokenError\n\t\tresult: CreateSessionTokenResult\n\t}\n\n\ttype CreateSessionTokenError {\n\t\tcode: CreateSessionTokenErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\n\tenum CreateSessionTokenErrorCode {\n\t\tUNKNOWN_EMAIL\n\t\tUNKNOWN_PERSON_ID\n\t\tPERSON_DISABLED\n\t}\n\n\ttype CreateSessionTokenResult implements CommonSignInResult{\n\t\ttoken: String!\n\t\tperson: Person!\n\t}\n\n\t# === signOut ===\n\n\ttype SignOutResponse {\n\t\tok: Boolean!\n\t\terrors: [SignOutError!]! @deprecated\n\t\terror: SignOutError\n\t}\n\n\ttype SignOutError {\n\t\tcode: SignOutErrorCode!\n\t\tdeveloperMessage: String!\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum SignOutErrorCode {\n\t\tNOT_A_PERSON,\n\t\tNOT_POSSIBLE_SIGN_OUT_WITH_PERMANENT_API_KEY\n\t}\n\n\t# === changeProfile ===\n\t\n\ttype ChangeProfileResponse {\n\t\tok: Boolean!\n\t\terror: ChangeProfileError\n\t}\n\t\n\ttype ChangeProfileError {\n\t\tcode: ChangeProfileErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\t\n\tenum ChangeProfileErrorCode {\n\t\tPERSON_NOT_FOUND\n\t\tINVALID_EMAIL_FORMAT\n\t\tEMAIL_ALREADY_EXISTS\n\t}\n\t\n\t# === changeMyProfile ===\n\n\ttype ChangeMyProfileResponse {\n\t\tok: Boolean!\n\t\terror: ChangeMyProfileError\n\t}\n\n\ttype ChangeMyProfileError {\n\t\tcode: ChangeMyProfileErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\n\tenum ChangeMyProfileErrorCode {\n\t\tNOT_A_PERSON\n\t\tINVALID_EMAIL_FORMAT\n\t\tEMAIL_ALREADY_EXISTS\n\t}\t\n\n\t# === changePassword ===\n\n\ttype ChangePasswordResponse {\n\t\tok: Boolean!\n\t\terrors: [ChangePasswordError!]! @deprecated\n\t\terror: ChangePasswordError\n\t}\n\n\ttype ChangePasswordError {\n\t\tcode: ChangePasswordErrorCode!\n\t\tdeveloperMessage: String!\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum ChangePasswordErrorCode {\n\t\tPERSON_NOT_FOUND\n\t\tTOO_WEAK\n\t}\n\n\n\t# === changeMyPassword ===\n\t\n\ttype ChangeMyPasswordResponse {\n\t\tok: Boolean!\n\t\terror: ChangeMyPasswordError\n\t}\n\n\ttype ChangeMyPasswordError {\n\t\tcode: ChangeMyPasswordErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\n\tenum ChangeMyPasswordErrorCode {\n\t\tTOO_WEAK\n\t\tNOT_A_PERSON\n\t\tINVALID_PASSWORD\n\t\tNO_PASSWORD_SET\n\t}\n\n\t# === IDP ===\n\n\ttype InitSignInIDPResponse {\n\t\tok: Boolean!\n\t\terrors: [InitSignInIDPError!]! @deprecated\n\t\terror: InitSignInIDPError\n\t\tresult: InitSignInIDPResult\n\t}\n\n\ttype InitSignInIDPResult {\n\t\tauthUrl: String!\n\t\tsessionData: Json!\n\t\tidpConfiguration: Json\n\t}\n\n\ttype InitSignInIDPError {\n\t\tcode: InitSignInIDPErrorCode!\n\t\tdeveloperMessage: String!\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum InitSignInIDPErrorCode {\n\t\tPROVIDER_NOT_FOUND\n\t\tIDP_VALIDATION_FAILED\n\t}\n\n\tinput IDPResponseInput {\n\t\turl: String!\n\t}\n\n\ttype SignInIDPResponse {\n\t\tok: Boolean!\n\t\terrors: [SignInIDPError!]! @deprecated\n\t\terror: SignInIDPError\n\t\tresult: SignInIDPResult\n\t}\n\n\ttype SignInIDPError {\n\t\tcode: SignInIDPErrorCode!\n\t\tdeveloperMessage: String!\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum SignInIDPErrorCode {\n\t\tINVALID_IDP_RESPONSE\n\t\tIDP_VALIDATION_FAILED\n\n\t\tPERSON_NOT_FOUND\n\t\tPERSON_DISABLED\n\t\tPERSON_ALREADY_EXISTS\n\t}\n\n\ttype SignInIDPResult implements CommonSignInResult {\n\t\ttoken: String!\n\t\tperson: Person!\n\t\tidpResponse: Json\n\t}\n\n\ttype AddIDPResponse {\n\t\terror: AddIDPError\n\t\tok: Boolean!\n\t}\n\n\ttype AddIDPError {\n\t\tcode: AddIDPErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\n\tenum AddIDPErrorCode {\n\t\tALREADY_EXISTS\n\t\tUNKNOWN_TYPE\n\t\tINVALID_CONFIGURATION\n\t}\n\n\ttype UpdateIDPResponse {\n\t\terror: UpdateIDPError\n\t\tok: Boolean!\n\t}\n\n\ttype UpdateIDPError {\n\t\tcode: UpdateIDPErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\n\tenum UpdateIDPErrorCode {\n\t\tNOT_FOUND\n\t\tINVALID_CONFIGURATION\n\t}\n\n\n\ttype DisableIDPResponse {\n\t\terror: DisableIDPError\n\t\tok: Boolean!\n\t}\n\n\ttype DisableIDPError {\n\t\tcode: DisableIDPErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\n\tenum DisableIDPErrorCode {\n\t\tNOT_FOUND\n\t}\n\n\ttype EnableIDPResponse {\n\t\terror: EnableIDPError\n\t\tok: Boolean!\n\t}\n\n\ttype EnableIDPError {\n\t\tcode: EnableIDPErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\n\tenum EnableIDPErrorCode {\n\t\tNOT_FOUND\n\t}\n\n\ttype IdentityProvider {\n\t\tslug: String!\n\t\ttype: String!\n\t\tconfiguration: Json!\n\t\tdisabledAt: DateTime\n\t\toptions: IDPOptionsOutput!\n\t}\n\n\ttype IDPOptionsOutput {\n\t\tautoSignUp: Boolean!\n\t\texclusive: Boolean!\n\t\tinitReturnsConfig: Boolean!\n\t}\n\n\tinput IDPOptions {\n\t\tautoSignUp: Boolean\n\t\texclusive: Boolean\n\t\tinitReturnsConfig: Boolean\n\t}\n\n\t# === passwordless sign in ===\n\t\n\ttype InitSignInPasswordlessResponse {\n\t\tok: Boolean!\n\t\terror: InitSignInPasswordlessError\n\t\tresult: InitSignInPasswordlessResult\n\t}\n\t\n\ttype InitSignInPasswordlessError {\n\t\tcode: InitSignInPasswordlessErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\t\n\tenum InitSignInPasswordlessErrorCode {\n\t\tPERSON_NOT_FOUND\n\t\t\n\t\tPASSWORDLESS_DISABLED\n\t}\n\t\n\ttype InitSignInPasswordlessResult {\n\t\trequestId: String!\n\t\texpiresAt: DateTime!\n\t}\n\n\tinput InitSignInPasswordlessOptions {\n\t\tmailVariant: String\n\t\tmailProject: String\n\t}\n\t\n\ttype SignInPasswordlessResponse {\n\t\tok: Boolean!\n\t\terror: SignInPasswordlessError\n\t\tresult: SignInPasswordlessResult\n\t}\n\t\n\tenum PasswordlessValidationType {\n\t\totp\n\t\ttoken\n\t}\n\t\n\ttype SignInPasswordlessError {\n\t\tcode: SignInPasswordlessErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\t\n\tenum SignInPasswordlessErrorCode {\n\t\tTOKEN_NOT_FOUND\n\t\tTOKEN_INVALID\n\t\tTOKEN_EXPIRED\n\t\tTOKEN_USED\n\t\tPERSON_DISABLED\n\t\tOTP_REQUIRED\n\t\tINVALID_OTP_TOKEN\n\t}\n\t\n\ttype SignInPasswordlessResult implements CommonSignInResult {\n\t\ttoken: String!\n\t\tperson: Person!\n\t}\n\t\n\ttype ActivatePasswordlessOtpResponse {\n\t\tok: Boolean!\n\t\terror: ActivatePasswordlessOtpError\n\t}\n\t\n\ttype ActivatePasswordlessOtpError {\n\t\tcode: ActivatePasswordlessOtpErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\t\n\tenum ActivatePasswordlessOtpErrorCode {\n\t\tTOKEN_NOT_FOUND\n\t\tTOKEN_INVALID\n\t\tTOKEN_EXPIRED\n\t\tTOKEN_USED\n\t}\n\t\n\ttype ToggleMyPasswordlessResponse {\n\t\tok: Boolean!\n\t\terror: ToggleMyPasswordlessError\n\t}\n\t\n\ttype ToggleMyPasswordlessError {\n\t\tcode: ToggleMyPasswordlessErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\t\n\tenum ToggleMyPasswordlessErrorCode {\n\t\tCANNOT_TOGGLE\n NOT_A_PERSON\n\t}\n\t\n\n\t# === invite ===\n\n\ttype InviteResponse {\n\t\tok: Boolean!\n\t\terrors: [InviteError!]! @deprecated\n\t\terror: InviteError\n\t\tresult: InviteResult\n\t}\n\n\ttype InviteError {\n\t\tcode: InviteErrorCode!\n\t\tdeveloperMessage: String!\n\t\tmembershipValidation: [MembershipValidationError!]\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum InviteErrorCode {\n\t\tPROJECT_NOT_FOUND\n\t\tALREADY_MEMBER\n\t\tINVALID_MEMBERSHIP\n\t\tINVALID_EMAIL_FORMAT\n\n\t\tROLE_NOT_FOUND @deprecated\n\t\tVARIABLE_NOT_FOUND @deprecated\n\t\tVARIABLE_EMPTY @deprecated\n\t}\n\n\ttype InviteResult {\n\t\tperson: Person!\n\t\tisNew: Boolean!\n\t}\n\n\tenum InviteMethod {\n\t\tCREATE_PASSWORD\n\t\tRESET_PASSWORD\n\t}\n\n\tinput InviteOptions {\n\t\tmethod: InviteMethod\n\t\tmailVariant: String\n\t}\n\n\tinput UnmanagedInviteOptions {\n\t\tpassword: String\n\t\tresetTokenHash: String\n\t}\n\n\t# === addProjectMember ===\n\n\ttype AddProjectMemberResponse {\n\t\tok: Boolean!\n\t\terrors: [AddProjectMemberError!]!\n\t\terror: AddProjectMemberError\n\t}\n\n\ttype AddProjectMemberError {\n\t\tcode: AddProjectMemberErrorCode!\n\t\tmembershipValidation: [MembershipValidationError!]\n\t\tdeveloperMessage: String!\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum AddProjectMemberErrorCode {\n\t\tPROJECT_NOT_FOUND\n\t\tIDENTITY_NOT_FOUND\n\t\tALREADY_MEMBER\n\t\tINVALID_MEMBERSHIP\n\n\t\tROLE_NOT_FOUND @deprecated\n\t\tVARIABLE_EMPTY @deprecated\n\t\tVARIABLE_NOT_FOUND @deprecated\n\t}\n\n\t# === updateProjectMember ===\n\n\ttype UpdateProjectMemberResponse {\n\t\tok: Boolean!\n\t\terrors: [UpdateProjectMemberError!]! @deprecated\n\t\terror: UpdateProjectMemberError\n\t}\n\n\ttype UpdateProjectMemberError {\n\t\tcode: UpdateProjectMemberErrorCode!\n\t\tdeveloperMessage: String!\n\t\tmembershipValidation: [MembershipValidationError!]\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum UpdateProjectMemberErrorCode {\n\t\tPROJECT_NOT_FOUND\n\t\tNOT_MEMBER\n\t\tINVALID_MEMBERSHIP\n\n\t\tROLE_NOT_FOUND @deprecated\n\t\tVARIABLE_EMPTY @deprecated\n\t\tVARIABLE_NOT_FOUND @deprecated\n\t}\n\n\t# === removeProjectMember ===\n\n\ttype RemoveProjectMemberResponse {\n\t\tok: Boolean!\n\t\terrors: [RemoveProjectMemberError!]!\n\t\terror: RemoveProjectMemberError\n\t}\n\n\ttype RemoveProjectMemberError {\n\t\tcode: RemoveProjectMemberErrorCode!\n\t\tdeveloperMessage: String!\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum RemoveProjectMemberErrorCode {\n\t\tNOT_MEMBER\n\t\tPROJECT_NOT_FOUND\n\t}\n\n\t# === createApiKey ===\n\n\ttype CreateApiKeyResponse {\n\t\tok: Boolean!\n\t\terrors: [CreateApiKeyError!]! @deprecated\n\t\terror: CreateApiKeyError\n\t\tresult: CreateApiKeyResult\n\t}\n\n\ttype CreateApiKeyError {\n\t\tcode: CreateApiKeyErrorCode!\n\t\tdeveloperMessage: String!\n\t\tmembershipValidation: [MembershipValidationError!]\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum CreateApiKeyErrorCode {\n\t\tPROJECT_NOT_FOUND\n\t\tINVALID_MEMBERSHIP\n\n\t\tVARIABLE_NOT_FOUND @deprecated\n\t\tROLE_NOT_FOUND @deprecated\n\t\tVARIABLE_EMPTY @deprecated\n\t}\n\n\ttype CreateApiKeyResult {\n\t\tapiKey: ApiKeyWithToken!\n\t}\n\n\t# === disableApiKey ===\n\n\ttype DisableApiKeyResponse {\n\t\tok: Boolean!\n\t\terrors: [DisableApiKeyError!]! @deprecated\n\t\terror: DisableApiKeyError\n\t}\n\n\ttype DisableApiKeyError {\n\t\tcode: DisableApiKeyErrorCode!\n\t\tdeveloperMessage: String!\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum DisableApiKeyErrorCode {\n\t\tKEY_NOT_FOUND\n\t}\n\t# === addGlobalIdentityRoles ===\n\n\ttype AddGlobalIdentityRolesResponse {\n\t\tok: Boolean!\n\t\terror: AddGlobalIdentityRolesError\n\t\tresult: AddGlobalIdentityRolesResult\n\t}\n\n\ttype AddGlobalIdentityRolesResult {\n\t\tidentity: Identity!\n\t}\n\ttype AddGlobalIdentityRolesError {\n\t\tcode: AddGlobalIdentityRolesErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\n\tenum AddGlobalIdentityRolesErrorCode {\n\t\tIDENTITY_NOT_FOUND\n\t\tINVALID_ROLE\n\t}\n\n\n\t# === removeGlobalIdentityRoles ===\n\n\ttype RemoveGlobalIdentityRolesResponse {\n\t\tok: Boolean!\n\t\terror: RemoveGlobalIdentityRolesError\n\t\tresult: RemoveGlobalIdentityRolesResult\n\t}\n\n\ttype RemoveGlobalIdentityRolesError {\n\t\tcode: RemoveGlobalIdentityRolesErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\n\ttype RemoveGlobalIdentityRolesResult {\n\t\tidentity: Identity!\n\t}\n\n\tenum RemoveGlobalIdentityRolesErrorCode {\n\t\tIDENTITY_NOT_FOUND\n\t\tINVALID_ROLE\n\t}\n\t# === common ===\n\n\t# === variables ===\n\n\tinput VariableEntryInput {\n\t\tname: String!\n\t\tvalues: [String!]!\n\t}\n\n\ttype VariableEntry {\n\t\tname: String!\n\t\tvalues: [String!]!\n\t}\n\n\t# === membership ===\n\n\tinput MembershipInput {\n\t\trole: String!\n\t\tvariables: [VariableEntryInput!]!\n\t}\n\n\ttype Membership {\n\t\trole: String!\n\t\tvariables: [VariableEntry!]!\n\t}\n\n\ttype MembershipValidationError {\n\t\tcode: MembershipValidationErrorCode!\n\t\trole: String!\n\t\tvariable: String\n\t}\n\n\tenum MembershipValidationErrorCode {\n\t\tROLE_NOT_FOUND\n\t\tVARIABLE_NOT_FOUND\n\t\tVARIABLE_EMPTY\n\t\tVARIABLE_INVALID\n\t}\n\n\t# === person ====\n\n\ttype Person {\n\t\tid: String!\n\t\temail: String\n\t\tname: String\n\t\totpEnabled: Boolean!\n\t\tpasswordlessEnabled: Boolean\n\t\tidentity: Identity!\n\t}\n\n\t# === api key ===\n\n\ttype ApiKey {\n\t\tid: String!\n\t\tidentity: Identity!\n\t}\n\n\ttype ApiKeyWithToken {\n\t\tid: String!\n\t\ttoken: String\n\t\tidentity: Identity!\n\t}\n\n\t# === identity ===\n\n\ttype Identity {\n\t\tid: String!\n\t\tdescription: String\n\t\tperson: Person\n\t\tapiKey: ApiKey\n\t\tprojects: [IdentityProjectRelation!]!\n\t\tpermissions: IdentityGlobalPermissions\n\t\troles: [String!]\n\t}\n\n\ttype IdentityGlobalPermissions {\n\t\tcanCreateProject: Boolean!\n\t\tcanDeployEntrypoint: Boolean!\n\t}\n\n\ttype IdentityProjectRelation {\n\t\tproject: Project!\n\t\tmemberships: [Membership!]!\n\t}\n\n\t# === project ===\n\n\ttype Project {\n\t\tid: String!\n\t\tname: String!\n\t\tslug: String!\n\t\tconfig: Json!\n\t\troles: [RoleDefinition!]!\n\t\tmembers(\n\t\t\tinput: ProjectMembersInput,\n\t\t\tmemberType: MemberType @deprecated(reason: \"Use args\")\n\t\t): [ProjectIdentityRelation!]!\n\t}\n\n\tinput ProjectMembersInput {\n\t\tlimit: Int\n\t\toffset: Int\n\t\tfilter: ProjectMembersFilter\n\t}\n\n\tinput ProjectMembersFilter {\n\t\tmemberType: MemberType\n\t\temail: [String!]\n\t\tidentityId: [String!]\n\t\tpersonId: [String!]\n\t}\n\n\tenum MemberType {\n\t\tAPI_KEY\n\t\tPERSON\n\t}\n\n\ttype ProjectIdentityRelation {\n\t\tidentity: Identity!\n\t\tmemberships: [Membership!]!\n\t}\n\n\ttype RoleDefinition {\n\t\tname: String!\n\t\tvariables: [RoleVariableDefinition!]!\n\t}\n\n\tinterface RoleVariableDefinition {\n\t\tname: String!\n\t}\n\n\ttype RoleEntityVariableDefinition implements RoleVariableDefinition {\n\t\tname: String!\n\t\tentityName: String!\n\t}\n\n\ttype RolePredefinedVariableDefinition implements RoleVariableDefinition {\n\t\tname: String!\n\t\tvalue: String!\n\t}\n\n\ttype RoleConditionVariableDefinition implements RoleVariableDefinition {\n\t\tname: String!\n\t}\n\n\t# ==== 2fa ====\n\n\ttype PrepareOtpResponse {\n\t\tok: Boolean!\n\t\tresult: PrepareOtpResult\n\t}\n\n\ttype PrepareOtpResult {\n\t\totpUri: String!\n\t\totpSecret: String!\n\t}\n\n\ttype ConfirmOtpResponse {\n\t\tok: Boolean!\n\t\terrors: [ConfirmOtpError!]! @deprecated\n\t\terror: ConfirmOtpError\n\t}\n\n\ttype ConfirmOtpError {\n\t\tcode: ConfirmOtpErrorCode!\n\t\tdeveloperMessage: String!\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum ConfirmOtpErrorCode {\n\t\tINVALID_OTP_TOKEN\n\t\tNOT_PREPARED\n\t}\n\n\ttype DisableOtpResponse {\n\t\tok: Boolean!\n\t\terrors: [DisableOtpError!]! @deprecated\n\t\terror: DisableOtpError\n\t}\n\n\ttype DisableOtpError {\n\t\tcode: DisableOtpErrorCode!\n\t\tdeveloperMessage: String!\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum DisableOtpErrorCode {\n\t\tOTP_NOT_ACTIVE\n\t}\n\n\ttype DisablePersonResponse {\n\t\tok: Boolean!\n\t\terror: DisablePersonError\n\t}\n\n\ttype DisablePersonError {\n\t\tcode: DisablePersonErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\n\tenum DisablePersonErrorCode {\n\t\tPERSON_ALREADY_DISABLED\n\t\tPERSON_NOT_FOUND\n\t}\n\n\t# === mails ===\n\t\n\ttype MailTemplateData {\n\t\tprojectSlug: String\n\t\ttype: MailType!\n\t\tvariant: String\n\t\tsubject: String!\n\t\tcontent: String!\n\t\tuseLayout: Boolean!\n\t\treplyTo: String\n\t}\n\t\n\tinput MailTemplate {\n\t\tprojectSlug: String\n\t\ttype: MailType!\n\t\t\"Custom mail variant identifier, e.g. a locale.\"\n\t\tvariant: String\n\t\tsubject: String!\n\t\tcontent: String!\n\t\tuseLayout: Boolean\n\t\treplyTo: String\n\t}\n\n\tenum MailType {\n\t\tEXISTING_USER_INVITED\n\t\tNEW_USER_INVITED\n\t\tRESET_PASSWORD_REQUEST\n\t\tPASSWORDLESS_SIGN_IN\n\t}\n\n\tinput MailTemplateIdentifier {\n\t\tprojectSlug: String\n\t\ttype: MailType!\n\t\tvariant: String\n\t}\n\n\ttype AddMailTemplateResponse {\n\t\tok: Boolean!\n\t\terrors: [AddMailTemplateError!]! @deprecated\n\t\terror: AddMailTemplateError\n\t}\n\n\ttype AddMailTemplateError {\n\t\tcode: AddMailTemplateErrorCode!\n\t\tdeveloperMessage: String!\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum AddMailTemplateErrorCode {\n\t\tMISSING_VARIABLE\n\t\tPROJECT_NOT_FOUND\n\t\tINVALID_REPLY_EMAIL_FORMAT\n\t}\n\n\ttype RemoveMailTemplateResponse {\n\t\tok: Boolean!\n\t\terrors: [RemoveMailTemplateError!]!\n\t\terror: RemoveMailTemplateError\n\t}\n\n\ttype RemoveMailTemplateError {\n\t\tcode: RemoveMailTemplateErrorCode!\n\t\tdeveloperMessage: String!\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum RemoveMailTemplateErrorCode {\n\t\tPROJECT_NOT_FOUND\n\t\tTEMPLATE_NOT_FOUND\n\t}\n\n\t# === password reset ===\n\n\ttype CheckResetPasswordTokenResult {\n\t\tcode: CheckResetPasswordTokenCode!\n\t}\n\n\tenum CheckResetPasswordTokenCode {\n\t\tREQUEST_NOT_FOUND\n\t\tTOKEN_NOT_FOUND\n\t\tTOKEN_INVALID\n\t\tTOKEN_USED\n\t\tTOKEN_EXPIRED\n\t}\n\n\ttype CreatePasswordResetRequestResponse {\n\t\tok: Boolean!\n\t\terrors: [CreatePasswordResetRequestError!]! @deprecated\n\t\terror: CreatePasswordResetRequestError\n\t}\n\n\ttype CreatePasswordResetRequestError {\n\t\tcode: CreatePasswordResetRequestErrorCode!\n\t\tdeveloperMessage: String!\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum CreatePasswordResetRequestErrorCode {\n\t\tPERSON_NOT_FOUND\n\t}\n\n\ttype ResetPasswordResponse {\n\t\tok: Boolean!\n\t\terrors: [ResetPasswordError!]! @deprecated\n\t\terror: ResetPasswordError\n\t}\n\ttype ResetPasswordError {\n\t\tcode: ResetPasswordErrorCode!\n\t\tdeveloperMessage: String!\n\t\tendUserMessage: String @deprecated\n\t}\n\n\tenum ResetPasswordErrorCode {\n\t\tTOKEN_NOT_FOUND\n\t\tTOKEN_INVALID\n\t\tTOKEN_USED\n\t\tTOKEN_EXPIRED\n\n\t\tPASSWORD_TOO_WEAK\n\t}\n\n\tinput CreateResetPasswordRequestOptions {\n\t\tmailProject: String\n\t\tmailVariant: String\n\t}\n\n\t# === project ===\n\n\tinput ProjectSecret {\n\t\tkey: String!\n\t\tvalue: String!\n\t}\n\n\tinput CreateProjectOptions {\n\t\tdeployTokenHash: String\n\t\tnoDeployToken: Boolean\n\t}\n\n\ttype CreateProjectResponse {\n\t\tok: Boolean!\n\t\terror: CreateProjectResponseError\n\t\tresult: CreateProjectResult\n\t}\n\n\ttype CreateProjectResponseError {\n\t\tcode: CreateProjectResponseErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\n\ttype CreateProjectResult {\n\t\tdeployerApiKey: ApiKeyWithToken\n\t}\n\n\tenum CreateProjectResponseErrorCode {\n\t\tALREADY_EXISTS\n\t\tINIT_ERROR\n\t}\n\n\ttype SetProjectSecretResponse {\n\t\tok: Boolean!\n\t\terror: SetProjectSecretError\n\t}\n\n\ttype SetProjectSecretError {\n\t\tcode: SetProjectSecretErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\n\tenum SetProjectSecretErrorCode {\n\t\tPROJECT_NOT_FOUND\n\t}\n\n\ttype UpdateProjectResponse {\n\t\tok: Boolean!\n\t\terror: UpdateProjectError\n\t}\n\n\ttype UpdateProjectError {\n\t\tcode: UpdateProjectErrorCode!\n\t\tdeveloperMessage: String!\n\t}\n\n\tenum UpdateProjectErrorCode {\n\t\tPROJECT_NOT_FOUND\n\t}\n`\n\nexport default schema\n"],"names":["gql"],"mappings":";;AAGA,MAAM,SAAuBA,WAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Mailer.cjs","sources":["../../../../../packages/engine-tenant-api/src/utils/Mailer.ts"],"sourcesContent":["import { createTransport, Transporter, TransportOptions } from 'nodemailer'\nimport { Options as MailMessage } from 'nodemailer/lib/mailer'\nimport * as SMTPTransport from 'nodemailer/lib/smtp-transport'\nimport * as SMTPPool from 'nodemailer/lib/smtp-pool'\nimport * as SendmailTransport from 'nodemailer/lib/sendmail-transport'\nimport * as SESTransport from 'nodemailer/lib/ses-transport'\nimport { logger } from '@contember/logger'\n\nexport { type MailMessage }\n\nexport interface SentInfo {\n\terror?: any\n\tmessageId?: string\n\tenvelope?: any\n\taccepted?: string[]\n\trejected?: string[]\n\tpending?: string[]\n}\n\nexport type MailerOptions = Partial<\n\t(SMTPTransport.Options | SMTPPool.Options | SendmailTransport.Options | SESTransport.Options | TransportOptions) & {\n\t\tfrom?: string\n\t}\n>\n\nexport interface Mailer {\n\tsend(message: MailMessage): Promise<SentInfo>\n}\n\nexport class NodeMailer implements Mailer {\n\tconstructor(private readonly from: string | undefined, private readonly transport: Transporter) {}\n\n\tpublic async send(message: MailMessage): Promise<SentInfo> {\n\t\ttry {\n\t\t\treturn await this.transport.sendMail({ ...message, from: message.from || this.from })\n\t\t} catch (e) {\n\t\t\tlogger.error(e, { message: 'Mail sending failed', mail: message })\n\t\t\treturn { error: e }\n\t\t}\n\t}\n}\n\nexport const createMailer = (options: MailerOptions): Mailer => {\n\tconst { from, ...transportOptions } = options\n\treturn new NodeMailer(from, createTransport(transportOptions as any))\n}\n"],"names":["logger","createTransport"],"mappings":";;;;AA6BO,MAAM,WAA6B;AAAA,EACzC,YAA6B,MAA2C,WAAwB;AAAnE,SAAA,OAAA;AAA2C,SAAA,YAAA;AAAA,EAAyB;AAAA,EAEjG,MAAa,KAAK,SAAyC;AACtD,QAAA;AACH,aAAO,MAAM,KAAK,UAAU,SAAS,EAAE,GAAG,SAAS,MAAM,QAAQ,QAAQ,KAAK,KAAM,CAAA;AAAA,aAC5E,GAAG;AACXA,oBAAO,MAAM,GAAG,EAAE,SAAS,uBAAuB,MAAM,SAAS;AAC1D,aAAA,EAAE,OAAO;IACjB;AAAA,EACD;AACD;AAEa,MAAA,eAAe,CAAC,YAAmC;AAC/D,QAAM,EAAE,MAAM,GAAG,iBAAA,IAAqB;AACtC,SAAO,IAAI,WAAW,MAAMC,WAAAA,gBAAgB,gBAAuB,CAAC;AACrE;;;"}
1
+ {"version":3,"file":"Mailer.cjs","sources":["../../../../../packages/engine-tenant-api/src/utils/Mailer.ts"],"sourcesContent":["import { createTransport, Transporter, TransportOptions } from 'nodemailer'\nimport { Options as MailMessage } from 'nodemailer/lib/mailer'\nimport * as SMTPTransport from 'nodemailer/lib/smtp-transport'\nimport * as SMTPPool from 'nodemailer/lib/smtp-pool'\nimport * as SendmailTransport from 'nodemailer/lib/sendmail-transport'\nimport * as SESTransport from 'nodemailer/lib/ses-transport'\nimport { logger } from '@contember/logger'\n\nexport { type MailMessage }\n\nexport interface SentInfo {\n\terror?: any\n\tmessageId?: string\n\tenvelope?: any\n\taccepted?: string[]\n\trejected?: string[]\n\tpending?: string[]\n}\n\nexport type MailerOptions = Partial<\n\t(SMTPTransport.Options | SMTPPool.Options | SendmailTransport.Options | SESTransport.Options | TransportOptions) & {\n\t\tfrom?: string\n\t}\n>\n\nexport interface Mailer {\n\tsend(message: MailMessage): Promise<SentInfo>\n}\n\nexport class NodeMailer implements Mailer {\n\tconstructor(private readonly from: string | undefined, private readonly transport: Transporter) {}\n\n\tpublic async send(message: MailMessage): Promise<SentInfo> {\n\t\ttry {\n\t\t\treturn await this.transport.sendMail({ ...message, from: message.from || this.from })\n\t\t} catch (e) {\n\t\t\tlogger.error(e, { message: 'Mail sending failed', mail: message })\n\t\t\treturn { error: e }\n\t\t}\n\t}\n}\n\nexport const createMailer = (options: MailerOptions): Mailer => {\n\tconst { from, ...transportOptions } = options\n\treturn new NodeMailer(from, createTransport(transportOptions as any))\n}\n"],"names":["logger","createTransport"],"mappings":";;;;AA6BO,MAAM,WAA6B;AAAA,EACzC,YAA6B,MAA2C,WAAwB;AAAnE,SAAA,OAAA;AAA2C,SAAA,YAAA;AAAA,EAAA;AAAA,EAExE,MAAa,KAAK,SAAyC;AACtD,QAAA;AACH,aAAO,MAAM,KAAK,UAAU,SAAS,EAAE,GAAG,SAAS,MAAM,QAAQ,QAAQ,KAAK,KAAA,CAAM;AAAA,aAC5E,GAAG;AACXA,aAAA,OAAO,MAAM,GAAG,EAAE,SAAS,uBAAuB,MAAM,SAAS;AAC1D,aAAA,EAAE,OAAO,EAAE;AAAA,IAAA;AAAA,EACnB;AAEF;AAEa,MAAA,eAAe,CAAC,YAAmC;AAC/D,QAAM,EAAE,MAAM,GAAG,iBAAA,IAAqB;AACtC,SAAO,IAAI,WAAW,MAAMC,WAAA,gBAAgB,gBAAuB,CAAC;AACrE;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Mailer.js","sources":["../../../../../packages/engine-tenant-api/src/utils/Mailer.ts"],"sourcesContent":["import { createTransport, Transporter, TransportOptions } from 'nodemailer'\nimport { Options as MailMessage } from 'nodemailer/lib/mailer'\nimport * as SMTPTransport from 'nodemailer/lib/smtp-transport'\nimport * as SMTPPool from 'nodemailer/lib/smtp-pool'\nimport * as SendmailTransport from 'nodemailer/lib/sendmail-transport'\nimport * as SESTransport from 'nodemailer/lib/ses-transport'\nimport { logger } from '@contember/logger'\n\nexport { type MailMessage }\n\nexport interface SentInfo {\n\terror?: any\n\tmessageId?: string\n\tenvelope?: any\n\taccepted?: string[]\n\trejected?: string[]\n\tpending?: string[]\n}\n\nexport type MailerOptions = Partial<\n\t(SMTPTransport.Options | SMTPPool.Options | SendmailTransport.Options | SESTransport.Options | TransportOptions) & {\n\t\tfrom?: string\n\t}\n>\n\nexport interface Mailer {\n\tsend(message: MailMessage): Promise<SentInfo>\n}\n\nexport class NodeMailer implements Mailer {\n\tconstructor(private readonly from: string | undefined, private readonly transport: Transporter) {}\n\n\tpublic async send(message: MailMessage): Promise<SentInfo> {\n\t\ttry {\n\t\t\treturn await this.transport.sendMail({ ...message, from: message.from || this.from })\n\t\t} catch (e) {\n\t\t\tlogger.error(e, { message: 'Mail sending failed', mail: message })\n\t\t\treturn { error: e }\n\t\t}\n\t}\n}\n\nexport const createMailer = (options: MailerOptions): Mailer => {\n\tconst { from, ...transportOptions } = options\n\treturn new NodeMailer(from, createTransport(transportOptions as any))\n}\n"],"names":[],"mappings":";;AA6BO,MAAM,WAA6B;AAAA,EACzC,YAA6B,MAA2C,WAAwB;AAAnE,SAAA,OAAA;AAA2C,SAAA,YAAA;AAAA,EAAyB;AAAA,EAEjG,MAAa,KAAK,SAAyC;AACtD,QAAA;AACH,aAAO,MAAM,KAAK,UAAU,SAAS,EAAE,GAAG,SAAS,MAAM,QAAQ,QAAQ,KAAK,KAAM,CAAA;AAAA,aAC5E,GAAG;AACX,aAAO,MAAM,GAAG,EAAE,SAAS,uBAAuB,MAAM,SAAS;AAC1D,aAAA,EAAE,OAAO;IACjB;AAAA,EACD;AACD;AAEa,MAAA,eAAe,CAAC,YAAmC;AAC/D,QAAM,EAAE,MAAM,GAAG,iBAAA,IAAqB;AACtC,SAAO,IAAI,WAAW,MAAM,gBAAgB,gBAAuB,CAAC;AACrE;"}
1
+ {"version":3,"file":"Mailer.js","sources":["../../../../../packages/engine-tenant-api/src/utils/Mailer.ts"],"sourcesContent":["import { createTransport, Transporter, TransportOptions } from 'nodemailer'\nimport { Options as MailMessage } from 'nodemailer/lib/mailer'\nimport * as SMTPTransport from 'nodemailer/lib/smtp-transport'\nimport * as SMTPPool from 'nodemailer/lib/smtp-pool'\nimport * as SendmailTransport from 'nodemailer/lib/sendmail-transport'\nimport * as SESTransport from 'nodemailer/lib/ses-transport'\nimport { logger } from '@contember/logger'\n\nexport { type MailMessage }\n\nexport interface SentInfo {\n\terror?: any\n\tmessageId?: string\n\tenvelope?: any\n\taccepted?: string[]\n\trejected?: string[]\n\tpending?: string[]\n}\n\nexport type MailerOptions = Partial<\n\t(SMTPTransport.Options | SMTPPool.Options | SendmailTransport.Options | SESTransport.Options | TransportOptions) & {\n\t\tfrom?: string\n\t}\n>\n\nexport interface Mailer {\n\tsend(message: MailMessage): Promise<SentInfo>\n}\n\nexport class NodeMailer implements Mailer {\n\tconstructor(private readonly from: string | undefined, private readonly transport: Transporter) {}\n\n\tpublic async send(message: MailMessage): Promise<SentInfo> {\n\t\ttry {\n\t\t\treturn await this.transport.sendMail({ ...message, from: message.from || this.from })\n\t\t} catch (e) {\n\t\t\tlogger.error(e, { message: 'Mail sending failed', mail: message })\n\t\t\treturn { error: e }\n\t\t}\n\t}\n}\n\nexport const createMailer = (options: MailerOptions): Mailer => {\n\tconst { from, ...transportOptions } = options\n\treturn new NodeMailer(from, createTransport(transportOptions as any))\n}\n"],"names":[],"mappings":";;AA6BO,MAAM,WAA6B;AAAA,EACzC,YAA6B,MAA2C,WAAwB;AAAnE,SAAA,OAAA;AAA2C,SAAA,YAAA;AAAA,EAAA;AAAA,EAExE,MAAa,KAAK,SAAyC;AACtD,QAAA;AACH,aAAO,MAAM,KAAK,UAAU,SAAS,EAAE,GAAG,SAAS,MAAM,QAAQ,QAAQ,KAAK,KAAA,CAAM;AAAA,aAC5E,GAAG;AACX,aAAO,MAAM,GAAG,EAAE,SAAS,uBAAuB,MAAM,SAAS;AAC1D,aAAA,EAAE,OAAO,EAAE;AAAA,IAAA;AAAA,EACnB;AAEF;AAEa,MAAA,eAAe,CAAC,YAAmC;AAC/D,QAAM,EAAE,MAAM,GAAG,iBAAA,IAAqB;AACtC,SAAO,IAAI,WAAW,MAAM,gBAAgB,gBAAuB,CAAC;AACrE;"}
@@ -1 +1 @@
1
- {"version":3,"file":"TemplateRenderer.cjs","sources":["../../../../../packages/engine-tenant-api/src/utils/TemplateRenderer.ts"],"sourcesContent":["import mustache from 'mustache'\n\nexport class TemplateRenderer {\n\tpublic async render(template: string, parameters: Record<string, any>): Promise<string> {\n\t\treturn mustache.render(template, parameters)\n\t}\n}\n"],"names":[],"mappings":";;;AAEO,MAAM,iBAAiB;AAAA,EAC7B,MAAa,OAAO,UAAkB,YAAkD;AAChF,WAAA,SAAS,OAAO,UAAU,UAAU;AAAA,EAC5C;AACD;;"}
1
+ {"version":3,"file":"TemplateRenderer.cjs","sources":["../../../../../packages/engine-tenant-api/src/utils/TemplateRenderer.ts"],"sourcesContent":["import mustache from 'mustache'\n\nexport class TemplateRenderer {\n\tpublic async render(template: string, parameters: Record<string, any>): Promise<string> {\n\t\treturn mustache.render(template, parameters)\n\t}\n}\n"],"names":[],"mappings":";;;AAEO,MAAM,iBAAiB;AAAA,EAC7B,MAAa,OAAO,UAAkB,YAAkD;AAChF,WAAA,SAAS,OAAO,UAAU,UAAU;AAAA,EAAA;AAE7C;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"TemplateRenderer.js","sources":["../../../../../packages/engine-tenant-api/src/utils/TemplateRenderer.ts"],"sourcesContent":["import mustache from 'mustache'\n\nexport class TemplateRenderer {\n\tpublic async render(template: string, parameters: Record<string, any>): Promise<string> {\n\t\treturn mustache.render(template, parameters)\n\t}\n}\n"],"names":[],"mappings":";AAEO,MAAM,iBAAiB;AAAA,EAC7B,MAAa,OAAO,UAAkB,YAAkD;AAChF,WAAA,SAAS,OAAO,UAAU,UAAU;AAAA,EAC5C;AACD;"}
1
+ {"version":3,"file":"TemplateRenderer.js","sources":["../../../../../packages/engine-tenant-api/src/utils/TemplateRenderer.ts"],"sourcesContent":["import mustache from 'mustache'\n\nexport class TemplateRenderer {\n\tpublic async render(template: string, parameters: Record<string, any>): Promise<string> {\n\t\treturn mustache.render(template, parameters)\n\t}\n}\n"],"names":[],"mappings":";AAEO,MAAM,iBAAiB;AAAA,EAC7B,MAAa,OAAO,UAAkB,YAAkD;AAChF,WAAA,SAAS,OAAO,UAAU,UAAU;AAAA,EAAA;AAE7C;"}
@@ -1 +1 @@
1
- {"version":3,"file":"array.cjs","sources":["../../../../../packages/engine-tenant-api/src/utils/array.ts"],"sourcesContent":["export function notEmpty<TValue>(value: TValue | null | undefined): value is TValue {\n\treturn value !== null && value !== undefined\n}\n\ntype KeysOfType<T, U> = {\n\t[P in keyof T]: T[P] extends U ? P : never\n}[keyof T]\n\nexport const indexListBy = <Item, Key extends KeysOfType<Item, string>, Index extends Item[Key] & string>(\n\titems: Item[],\n\tkey: Key,\n): Record<Index, Item[]> => {\n\treturn items.reduce(\n\t\t(acc, item) => ({\n\t\t\t...acc,\n\t\t\t[item[key] as unknown as Index]: [...(acc[item[key] as unknown as Index] || []), item],\n\t\t}),\n\t\t{} as Record<Index, Item[]>,\n\t)\n}\n"],"names":[],"mappings":";;AAAO,SAAS,SAAiB,OAAmD;AAC5E,SAAA,UAAU,QAAQ,UAAU;AACpC;AAMa,MAAA,cAAc,CAC1B,OACA,QAC2B;AAC3B,SAAO,MAAM;AAAA,IACZ,CAAC,KAAK,UAAU;AAAA,MACf,GAAG;AAAA,MACH,CAAC,KAAK,GAAG,CAAqB,GAAG,CAAC,GAAI,IAAI,KAAK,GAAG,CAAqB,KAAK,IAAK,IAAI;AAAA,IAAA;AAAA,IAEtF,CAAC;AAAA,EAAA;AAEH;;;"}
1
+ {"version":3,"file":"array.cjs","sources":["../../../../../packages/engine-tenant-api/src/utils/array.ts"],"sourcesContent":["export function notEmpty<TValue>(value: TValue | null | undefined): value is TValue {\n\treturn value !== null && value !== undefined\n}\n\ntype KeysOfType<T, U> = {\n\t[P in keyof T]: T[P] extends U ? P : never\n}[keyof T]\n\nexport const indexListBy = <Item, Key extends KeysOfType<Item, string>, Index extends Item[Key] & string>(\n\titems: Item[],\n\tkey: Key,\n): Record<Index, Item[]> => {\n\treturn items.reduce(\n\t\t(acc, item) => ({\n\t\t\t...acc,\n\t\t\t[item[key] as unknown as Index]: [...(acc[item[key] as unknown as Index] || []), item],\n\t\t}),\n\t\t{} as Record<Index, Item[]>,\n\t)\n}\n"],"names":[],"mappings":";;AAAO,SAAS,SAAiB,OAAmD;AAC5E,SAAA,UAAU,QAAQ,UAAU;AACpC;AAMa,MAAA,cAAc,CAC1B,OACA,QAC2B;AAC3B,SAAO,MAAM;AAAA,IACZ,CAAC,KAAK,UAAU;AAAA,MACf,GAAG;AAAA,MACH,CAAC,KAAK,GAAG,CAAqB,GAAG,CAAC,GAAI,IAAI,KAAK,GAAG,CAAqB,KAAK,CAAA,GAAK,IAAI;AAAA,IAAA;AAAA,IAEtF,CAAA;AAAA,EACD;AACD;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"array.js","sources":["../../../../../packages/engine-tenant-api/src/utils/array.ts"],"sourcesContent":["export function notEmpty<TValue>(value: TValue | null | undefined): value is TValue {\n\treturn value !== null && value !== undefined\n}\n\ntype KeysOfType<T, U> = {\n\t[P in keyof T]: T[P] extends U ? P : never\n}[keyof T]\n\nexport const indexListBy = <Item, Key extends KeysOfType<Item, string>, Index extends Item[Key] & string>(\n\titems: Item[],\n\tkey: Key,\n): Record<Index, Item[]> => {\n\treturn items.reduce(\n\t\t(acc, item) => ({\n\t\t\t...acc,\n\t\t\t[item[key] as unknown as Index]: [...(acc[item[key] as unknown as Index] || []), item],\n\t\t}),\n\t\t{} as Record<Index, Item[]>,\n\t)\n}\n"],"names":[],"mappings":"AAAO,SAAS,SAAiB,OAAmD;AAC5E,SAAA,UAAU,QAAQ,UAAU;AACpC;AAMa,MAAA,cAAc,CAC1B,OACA,QAC2B;AAC3B,SAAO,MAAM;AAAA,IACZ,CAAC,KAAK,UAAU;AAAA,MACf,GAAG;AAAA,MACH,CAAC,KAAK,GAAG,CAAqB,GAAG,CAAC,GAAI,IAAI,KAAK,GAAG,CAAqB,KAAK,IAAK,IAAI;AAAA,IAAA;AAAA,IAEtF,CAAC;AAAA,EAAA;AAEH;"}
1
+ {"version":3,"file":"array.js","sources":["../../../../../packages/engine-tenant-api/src/utils/array.ts"],"sourcesContent":["export function notEmpty<TValue>(value: TValue | null | undefined): value is TValue {\n\treturn value !== null && value !== undefined\n}\n\ntype KeysOfType<T, U> = {\n\t[P in keyof T]: T[P] extends U ? P : never\n}[keyof T]\n\nexport const indexListBy = <Item, Key extends KeysOfType<Item, string>, Index extends Item[Key] & string>(\n\titems: Item[],\n\tkey: Key,\n): Record<Index, Item[]> => {\n\treturn items.reduce(\n\t\t(acc, item) => ({\n\t\t\t...acc,\n\t\t\t[item[key] as unknown as Index]: [...(acc[item[key] as unknown as Index] || []), item],\n\t\t}),\n\t\t{} as Record<Index, Item[]>,\n\t)\n}\n"],"names":[],"mappings":"AAAO,SAAS,SAAiB,OAAmD;AAC5E,SAAA,UAAU,QAAQ,UAAU;AACpC;AAMa,MAAA,cAAc,CAC1B,OACA,QAC2B;AAC3B,SAAO,MAAM;AAAA,IACZ,CAAC,KAAK,UAAU;AAAA,MACf,GAAG;AAAA,MACH,CAAC,KAAK,GAAG,CAAqB,GAAG,CAAC,GAAI,IAAI,KAAK,GAAG,CAAqB,KAAK,CAAA,GAAK,IAAI;AAAA,IAAA;AAAA,IAEtF,CAAA;AAAA,EACD;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"batchQuery.cjs","sources":["../../../../../packages/engine-tenant-api/src/utils/batchQuery.ts"],"sourcesContent":["import { waitForTick } from './tick'\nimport { DatabaseContext } from '../model'\n\nexport type ItemLoader<Arg, Item> = (args: Arg) => Promise<Item>\n\nexport type BatchLoaderArgs<Arg, Result, Item> = [createResult: (args: Arg[], db: DatabaseContext) => Promise<Result>, getItem: (arg: Arg, result: Result) => Item]\nexport const batchLoader = <Arg, Result, Item>(...args: BatchLoaderArgs<Arg, Result, Item>) => args\n\nexport const initBatchLoader = <Arg, Result, Item>(\n\t[createResult, getItem]: BatchLoaderArgs<Arg, Result, Item>,\n\tdb: DatabaseContext,\n): ItemLoader<Arg, Item> => {\n\tlet args: Arg[] = []\n\tlet result: Promise<Result> | null = null\n\n\treturn async (arg: Arg) => {\n\t\targs.push(arg)\n\t\tif (!result) {\n\t\t\tresult = (async () => {\n\t\t\t\tawait waitForTick()\n\t\t\t\tconst batchArgs = args\n\t\t\t\targs = []\n\t\t\t\tresult = null\n\t\t\t\treturn await createResult(batchArgs, db)\n\t\t\t})()\n\t\t}\n\t\treturn getItem(arg, await result)\n\t}\n}\n"],"names":["waitForTick"],"mappings":";;;AAMa,MAAA,cAAc,IAAuB,SAA6C;AAExF,MAAM,kBAAkB,CAC9B,CAAC,cAAc,OAAO,GACtB,OAC2B;AAC3B,MAAI,OAAc,CAAA;AAClB,MAAI,SAAiC;AAErC,SAAO,OAAO,QAAa;AAC1B,SAAK,KAAK,GAAG;AACb,QAAI,CAAC,QAAQ;AACZ,gBAAU,YAAY;AACrB,cAAMA,KAAY,YAAA;AAClB,cAAM,YAAY;AAClB,eAAO,CAAA;AACE,iBAAA;AACF,eAAA,MAAM,aAAa,WAAW,EAAE;AAAA,MAAA;IAEzC;AACO,WAAA,QAAQ,KAAK,MAAM,MAAM;AAAA,EAAA;AAElC;;;"}
1
+ {"version":3,"file":"batchQuery.cjs","sources":["../../../../../packages/engine-tenant-api/src/utils/batchQuery.ts"],"sourcesContent":["import { waitForTick } from './tick'\nimport { DatabaseContext } from '../model'\n\nexport type ItemLoader<Arg, Item> = (args: Arg) => Promise<Item>\n\nexport type BatchLoaderArgs<Arg, Result, Item> = [createResult: (args: Arg[], db: DatabaseContext) => Promise<Result>, getItem: (arg: Arg, result: Result) => Item]\nexport const batchLoader = <Arg, Result, Item>(...args: BatchLoaderArgs<Arg, Result, Item>) => args\n\nexport const initBatchLoader = <Arg, Result, Item>(\n\t[createResult, getItem]: BatchLoaderArgs<Arg, Result, Item>,\n\tdb: DatabaseContext,\n): ItemLoader<Arg, Item> => {\n\tlet args: Arg[] = []\n\tlet result: Promise<Result> | null = null\n\n\treturn async (arg: Arg) => {\n\t\targs.push(arg)\n\t\tif (!result) {\n\t\t\tresult = (async () => {\n\t\t\t\tawait waitForTick()\n\t\t\t\tconst batchArgs = args\n\t\t\t\targs = []\n\t\t\t\tresult = null\n\t\t\t\treturn await createResult(batchArgs, db)\n\t\t\t})()\n\t\t}\n\t\treturn getItem(arg, await result)\n\t}\n}\n"],"names":["waitForTick"],"mappings":";;;AAMa,MAAA,cAAc,IAAuB,SAA6C;AAExF,MAAM,kBAAkB,CAC9B,CAAC,cAAc,OAAO,GACtB,OAC2B;AAC3B,MAAI,OAAc,CAAC;AACnB,MAAI,SAAiC;AAErC,SAAO,OAAO,QAAa;AAC1B,SAAK,KAAK,GAAG;AACb,QAAI,CAAC,QAAQ;AACZ,gBAAU,YAAY;AACrB,cAAMA,iBAAY;AAClB,cAAM,YAAY;AAClB,eAAO,CAAC;AACC,iBAAA;AACF,eAAA,MAAM,aAAa,WAAW,EAAE;AAAA,MAAA,GACrC;AAAA,IAAA;AAEG,WAAA,QAAQ,KAAK,MAAM,MAAM;AAAA,EACjC;AACD;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"batchQuery.js","sources":["../../../../../packages/engine-tenant-api/src/utils/batchQuery.ts"],"sourcesContent":["import { waitForTick } from './tick'\nimport { DatabaseContext } from '../model'\n\nexport type ItemLoader<Arg, Item> = (args: Arg) => Promise<Item>\n\nexport type BatchLoaderArgs<Arg, Result, Item> = [createResult: (args: Arg[], db: DatabaseContext) => Promise<Result>, getItem: (arg: Arg, result: Result) => Item]\nexport const batchLoader = <Arg, Result, Item>(...args: BatchLoaderArgs<Arg, Result, Item>) => args\n\nexport const initBatchLoader = <Arg, Result, Item>(\n\t[createResult, getItem]: BatchLoaderArgs<Arg, Result, Item>,\n\tdb: DatabaseContext,\n): ItemLoader<Arg, Item> => {\n\tlet args: Arg[] = []\n\tlet result: Promise<Result> | null = null\n\n\treturn async (arg: Arg) => {\n\t\targs.push(arg)\n\t\tif (!result) {\n\t\t\tresult = (async () => {\n\t\t\t\tawait waitForTick()\n\t\t\t\tconst batchArgs = args\n\t\t\t\targs = []\n\t\t\t\tresult = null\n\t\t\t\treturn await createResult(batchArgs, db)\n\t\t\t})()\n\t\t}\n\t\treturn getItem(arg, await result)\n\t}\n}\n"],"names":[],"mappings":";AAMa,MAAA,cAAc,IAAuB,SAA6C;AAExF,MAAM,kBAAkB,CAC9B,CAAC,cAAc,OAAO,GACtB,OAC2B;AAC3B,MAAI,OAAc,CAAA;AAClB,MAAI,SAAiC;AAErC,SAAO,OAAO,QAAa;AAC1B,SAAK,KAAK,GAAG;AACb,QAAI,CAAC,QAAQ;AACZ,gBAAU,YAAY;AACrB,cAAM,YAAY;AAClB,cAAM,YAAY;AAClB,eAAO,CAAA;AACE,iBAAA;AACF,eAAA,MAAM,aAAa,WAAW,EAAE;AAAA,MAAA;IAEzC;AACO,WAAA,QAAQ,KAAK,MAAM,MAAM;AAAA,EAAA;AAElC;"}
1
+ {"version":3,"file":"batchQuery.js","sources":["../../../../../packages/engine-tenant-api/src/utils/batchQuery.ts"],"sourcesContent":["import { waitForTick } from './tick'\nimport { DatabaseContext } from '../model'\n\nexport type ItemLoader<Arg, Item> = (args: Arg) => Promise<Item>\n\nexport type BatchLoaderArgs<Arg, Result, Item> = [createResult: (args: Arg[], db: DatabaseContext) => Promise<Result>, getItem: (arg: Arg, result: Result) => Item]\nexport const batchLoader = <Arg, Result, Item>(...args: BatchLoaderArgs<Arg, Result, Item>) => args\n\nexport const initBatchLoader = <Arg, Result, Item>(\n\t[createResult, getItem]: BatchLoaderArgs<Arg, Result, Item>,\n\tdb: DatabaseContext,\n): ItemLoader<Arg, Item> => {\n\tlet args: Arg[] = []\n\tlet result: Promise<Result> | null = null\n\n\treturn async (arg: Arg) => {\n\t\targs.push(arg)\n\t\tif (!result) {\n\t\t\tresult = (async () => {\n\t\t\t\tawait waitForTick()\n\t\t\t\tconst batchArgs = args\n\t\t\t\targs = []\n\t\t\t\tresult = null\n\t\t\t\treturn await createResult(batchArgs, db)\n\t\t\t})()\n\t\t}\n\t\treturn getItem(arg, await result)\n\t}\n}\n"],"names":[],"mappings":";AAMa,MAAA,cAAc,IAAuB,SAA6C;AAExF,MAAM,kBAAkB,CAC9B,CAAC,cAAc,OAAO,GACtB,OAC2B;AAC3B,MAAI,OAAc,CAAC;AACnB,MAAI,SAAiC;AAErC,SAAO,OAAO,QAAa;AAC1B,SAAK,KAAK,GAAG;AACb,QAAI,CAAC,QAAQ;AACZ,gBAAU,YAAY;AACrB,cAAM,YAAY;AAClB,cAAM,YAAY;AAClB,eAAO,CAAC;AACC,iBAAA;AACF,eAAA,MAAM,aAAa,WAAW,EAAE;AAAA,MAAA,GACrC;AAAA,IAAA;AAEG,WAAA,QAAQ,KAAK,MAAM,MAAM;AAAA,EACjC;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"mailer.d.ts","sourceRoot":"","sources":["../../../tests/src/mailer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAY,MAAM,iBAAiB,CAAA;AAG/D,MAAM,MAAM,eAAe,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAEjD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG;IACnC,aAAa,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,WAAW,CAAA;IACxD,WAAW,EAAE,MAAM,IAAI,CAAA;CACvB,CAAA;AACD,eAAO,MAAM,kBAAkB,QAAO,YAsBrC,CAAA"}
1
+ {"version":3,"file":"mailer.d.ts","sourceRoot":"","sources":["../../../tests/src/mailer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAY,MAAM,iBAAiB,CAAA;AAG/D,MAAM,MAAM,eAAe,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAEjD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG;IACnC,aAAa,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,WAAW,CAAA;IACxD,WAAW,EAAE,MAAM,IAAI,CAAA;CACvB,CAAA;AACD,eAAO,MAAM,kBAAkB,QAAO,YAqBrC,CAAA"}