@webiny/cognito 0.0.0-unstable.61c048f412

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 (217) hide show
  1. package/Cognito.d.ts +8 -0
  2. package/Cognito.js +30 -0
  3. package/Cognito.js.map +1 -0
  4. package/LICENSE +21 -0
  5. package/README.md +11 -0
  6. package/admin/Cognito.d.ts +6 -0
  7. package/admin/Cognito.js +53 -0
  8. package/admin/Cognito.js.map +1 -0
  9. package/admin/CognitoLogin.d.ts +7 -0
  10. package/admin/CognitoLogin.js +18 -0
  11. package/admin/CognitoLogin.js.map +1 -0
  12. package/admin/Extension.d.ts +2 -0
  13. package/admin/Extension.js +20 -0
  14. package/admin/Extension.js.map +1 -0
  15. package/admin/federatedIdentityProviders.d.ts +9 -0
  16. package/admin/federatedIdentityProviders.js +9 -0
  17. package/admin/federatedIdentityProviders.js.map +1 -0
  18. package/admin/plugins/constants.d.ts +3 -0
  19. package/admin/plugins/constants.js +6 -0
  20. package/admin/plugins/constants.js.map +1 -0
  21. package/admin/plugins/permissionRenderer/AdminUsersPermissions.d.ts +7 -0
  22. package/admin/plugins/permissionRenderer/AdminUsersPermissions.js +129 -0
  23. package/admin/plugins/permissionRenderer/AdminUsersPermissions.js.map +1 -0
  24. package/admin/plugins/permissionRenderer/index.d.ts +3 -0
  25. package/admin/plugins/permissionRenderer/index.js +20 -0
  26. package/admin/plugins/permissionRenderer/index.js.map +1 -0
  27. package/admin/plugins/userMenu/AccountDetails.d.ts +6 -0
  28. package/admin/plugins/userMenu/AccountDetails.js +23 -0
  29. package/admin/plugins/userMenu/AccountDetails.js.map +1 -0
  30. package/admin/plugins/userMenu/useIsDefaultTenant.d.ts +1 -0
  31. package/admin/plugins/userMenu/useIsDefaultTenant.js +15 -0
  32. package/admin/plugins/userMenu/useIsDefaultTenant.js.map +1 -0
  33. package/admin/presentation/Cognito/CognitoLoginScreen.d.ts +10 -0
  34. package/admin/presentation/Cognito/CognitoLoginScreen.js +54 -0
  35. package/admin/presentation/Cognito/CognitoLoginScreen.js.map +1 -0
  36. package/admin/presentation/Cognito/CognitoPresenter.d.ts +58 -0
  37. package/admin/presentation/Cognito/CognitoPresenter.js +277 -0
  38. package/admin/presentation/Cognito/CognitoPresenter.js.map +1 -0
  39. package/admin/presentation/Cognito/abstractions.d.ts +72 -0
  40. package/admin/presentation/Cognito/abstractions.js +4 -0
  41. package/admin/presentation/Cognito/abstractions.js.map +1 -0
  42. package/admin/presentation/Cognito/components/Divider.d.ts +2 -0
  43. package/admin/presentation/Cognito/components/Divider.js +16 -0
  44. package/admin/presentation/Cognito/components/Divider.js.map +1 -0
  45. package/admin/presentation/Cognito/components/FederatedLogin.d.ts +7 -0
  46. package/admin/presentation/Cognito/components/FederatedLogin.js +32 -0
  47. package/admin/presentation/Cognito/components/FederatedLogin.js.map +1 -0
  48. package/admin/presentation/Cognito/components/FederatedProviders.d.ts +44 -0
  49. package/admin/presentation/Cognito/components/FederatedProviders.js +14 -0
  50. package/admin/presentation/Cognito/components/FederatedProviders.js.map +1 -0
  51. package/admin/presentation/Cognito/components/FooterSignIn.d.ts +6 -0
  52. package/admin/presentation/Cognito/components/FooterSignIn.js +15 -0
  53. package/admin/presentation/Cognito/components/FooterSignIn.js.map +1 -0
  54. package/admin/presentation/Cognito/components/PasswordResetCodeSent.d.ts +9 -0
  55. package/admin/presentation/Cognito/components/PasswordResetCodeSent.js +43 -0
  56. package/admin/presentation/Cognito/components/PasswordResetCodeSent.js.map +1 -0
  57. package/admin/presentation/Cognito/components/RequestPasswordResetCode.d.ts +8 -0
  58. package/admin/presentation/Cognito/components/RequestPasswordResetCode.js +45 -0
  59. package/admin/presentation/Cognito/components/RequestPasswordResetCode.js.map +1 -0
  60. package/admin/presentation/Cognito/components/RequireNewPassword.d.ts +8 -0
  61. package/admin/presentation/Cognito/components/RequireNewPassword.js +55 -0
  62. package/admin/presentation/Cognito/components/RequireNewPassword.js.map +1 -0
  63. package/admin/presentation/Cognito/components/SetNewPassword.d.ts +8 -0
  64. package/admin/presentation/Cognito/components/SetNewPassword.js +79 -0
  65. package/admin/presentation/Cognito/components/SetNewPassword.js.map +1 -0
  66. package/admin/presentation/Cognito/components/SignIn.d.ts +10 -0
  67. package/admin/presentation/Cognito/components/SignIn.js +64 -0
  68. package/admin/presentation/Cognito/components/SignIn.js.map +1 -0
  69. package/admin/presentation/Cognito/components/View.d.ts +98 -0
  70. package/admin/presentation/Cognito/components/View.js +67 -0
  71. package/admin/presentation/Cognito/components/View.js.map +1 -0
  72. package/admin/presentation/Cognito/feature.d.ts +3 -0
  73. package/admin/presentation/Cognito/feature.js +16 -0
  74. package/admin/presentation/Cognito/feature.js.map +1 -0
  75. package/admin/presentation/shared/createPasswordValidator.d.ts +8 -0
  76. package/admin/presentation/shared/createPasswordValidator.js +27 -0
  77. package/admin/presentation/shared/createPasswordValidator.js.map +1 -0
  78. package/admin/presentation/shared/usePasswordValidator.d.ts +1 -0
  79. package/admin/presentation/shared/usePasswordValidator.js +15 -0
  80. package/admin/presentation/shared/usePasswordValidator.js.map +1 -0
  81. package/admin/routes.d.ts +10 -0
  82. package/admin/routes.js +21 -0
  83. package/admin/routes.js.map +1 -0
  84. package/admin/ui/UserItem.d.ts +10 -0
  85. package/admin/ui/UserItem.js +3 -0
  86. package/admin/ui/UserItem.js.map +1 -0
  87. package/admin/ui/components/AvatarImage/AvatarImage.d.ts +3 -0
  88. package/admin/ui/components/AvatarImage/AvatarImage.js +43 -0
  89. package/admin/ui/components/AvatarImage/AvatarImage.js.map +1 -0
  90. package/admin/ui/components/AvatarImage/AvatarImagePreview.d.ts +10 -0
  91. package/admin/ui/components/AvatarImage/AvatarImagePreview.js +55 -0
  92. package/admin/ui/components/AvatarImage/AvatarImagePreview.js.map +1 -0
  93. package/admin/ui/components/AvatarImage/AvatarImageTrigger.d.ts +7 -0
  94. package/admin/ui/components/AvatarImage/AvatarImageTrigger.js +29 -0
  95. package/admin/ui/components/AvatarImage/AvatarImageTrigger.js.map +1 -0
  96. package/admin/ui/components/AvatarImage/index.d.ts +1 -0
  97. package/admin/ui/components/AvatarImage/index.js +3 -0
  98. package/admin/ui/components/AvatarImage/index.js.map +1 -0
  99. package/admin/ui/views/Account/Account.d.ts +2 -0
  100. package/admin/ui/views/Account/Account.js +142 -0
  101. package/admin/ui/views/Account/Account.js.map +1 -0
  102. package/admin/ui/views/Account/graphql.d.ts +2 -0
  103. package/admin/ui/views/Account/graphql.js +40 -0
  104. package/admin/ui/views/Account/graphql.js.map +1 -0
  105. package/admin/ui/views/Account/index.d.ts +1 -0
  106. package/admin/ui/views/Account/index.js +3 -0
  107. package/admin/ui/views/Account/index.js.map +1 -0
  108. package/admin/ui/views/Users/UsersDataList.d.ts +3 -0
  109. package/admin/ui/views/Users/UsersDataList.js +172 -0
  110. package/admin/ui/views/Users/UsersDataList.js.map +1 -0
  111. package/admin/ui/views/Users/UsersForm.d.ts +5 -0
  112. package/admin/ui/views/Users/UsersForm.js +174 -0
  113. package/admin/ui/views/Users/UsersForm.js.map +1 -0
  114. package/admin/ui/views/Users/UsersView.d.ts +2 -0
  115. package/admin/ui/views/Users/UsersView.js +14 -0
  116. package/admin/ui/views/Users/UsersView.js.map +1 -0
  117. package/admin/ui/views/Users/components/DeleteAction.d.ts +7 -0
  118. package/admin/ui/views/Users/components/DeleteAction.js +36 -0
  119. package/admin/ui/views/Users/components/DeleteAction.js.map +1 -0
  120. package/admin/ui/views/Users/graphql.d.ts +5 -0
  121. package/admin/ui/views/Users/graphql.js +99 -0
  122. package/admin/ui/views/Users/graphql.js.map +1 -0
  123. package/admin/ui/views/Users/hooks/useUserForm.d.ts +27 -0
  124. package/admin/ui/views/Users/hooks/useUserForm.js +127 -0
  125. package/admin/ui/views/Users/hooks/useUserForm.js.map +1 -0
  126. package/admin/ui/views/Users/search.svg +20 -0
  127. package/admin/ui/views/utils.d.ts +3 -0
  128. package/admin/ui/views/utils.js +10 -0
  129. package/admin/ui/views/utils.js.map +1 -0
  130. package/api/CognitoApiFeature.d.ts +1 -0
  131. package/api/CognitoApiFeature.js +28 -0
  132. package/api/CognitoApiFeature.js.map +1 -0
  133. package/api/domain/Username.d.ts +4 -0
  134. package/api/domain/Username.js +7 -0
  135. package/api/domain/Username.js.map +1 -0
  136. package/api/domain/errors.d.ts +37 -0
  137. package/api/domain/errors.js +63 -0
  138. package/api/domain/errors.js.map +1 -0
  139. package/api/features/CognitoIdp/CognitoIdentityProvider.d.ts +15 -0
  140. package/api/features/CognitoIdp/CognitoIdentityProvider.js +61 -0
  141. package/api/features/CognitoIdp/CognitoIdentityProvider.js.map +1 -0
  142. package/api/features/CognitoIdp/abstractions.d.ts +15 -0
  143. package/api/features/CognitoIdp/abstractions.js +4 -0
  144. package/api/features/CognitoIdp/abstractions.js.map +1 -0
  145. package/api/features/CognitoIdp/feature.d.ts +1 -0
  146. package/api/features/CognitoIdp/feature.js +10 -0
  147. package/api/features/CognitoIdp/feature.js.map +1 -0
  148. package/api/features/CognitoIdp/index.d.ts +2 -0
  149. package/api/features/CognitoIdp/index.js +4 -0
  150. package/api/features/CognitoIdp/index.js.map +1 -0
  151. package/api/features/CognitoService/CognitoService.d.ts +20 -0
  152. package/api/features/CognitoService/CognitoService.js +90 -0
  153. package/api/features/CognitoService/CognitoService.js.map +1 -0
  154. package/api/features/CognitoService/abstractions.d.ts +54 -0
  155. package/api/features/CognitoService/abstractions.js +8 -0
  156. package/api/features/CognitoService/abstractions.js.map +1 -0
  157. package/api/features/CognitoService/feature.d.ts +5 -0
  158. package/api/features/CognitoService/feature.js +12 -0
  159. package/api/features/CognitoService/feature.js.map +1 -0
  160. package/api/features/CognitoService/index.d.ts +1 -0
  161. package/api/features/CognitoService/index.js +3 -0
  162. package/api/features/CognitoService/index.js.map +1 -0
  163. package/api/features/CreateUser/CreateUserUseCase.d.ts +22 -0
  164. package/api/features/CreateUser/CreateUserUseCase.js +106 -0
  165. package/api/features/CreateUser/CreateUserUseCase.js.map +1 -0
  166. package/api/features/CreateUser/abstractions.d.ts +35 -0
  167. package/api/features/CreateUser/abstractions.js +4 -0
  168. package/api/features/CreateUser/abstractions.js.map +1 -0
  169. package/api/features/CreateUser/feature.d.ts +1 -0
  170. package/api/features/CreateUser/feature.js +10 -0
  171. package/api/features/CreateUser/feature.js.map +1 -0
  172. package/api/features/CreateUser/index.d.ts +2 -0
  173. package/api/features/CreateUser/index.js +4 -0
  174. package/api/features/CreateUser/index.js.map +1 -0
  175. package/api/features/CreateUser/schema.d.ts +47 -0
  176. package/api/features/CreateUser/schema.js +17 -0
  177. package/api/features/CreateUser/schema.js.map +1 -0
  178. package/api/features/DeleteUser/DeleteUserUseCase.d.ts +16 -0
  179. package/api/features/DeleteUser/DeleteUserUseCase.js +54 -0
  180. package/api/features/DeleteUser/DeleteUserUseCase.js.map +1 -0
  181. package/api/features/DeleteUser/abstractions.d.ts +19 -0
  182. package/api/features/DeleteUser/abstractions.js +4 -0
  183. package/api/features/DeleteUser/abstractions.js.map +1 -0
  184. package/api/features/DeleteUser/feature.d.ts +1 -0
  185. package/api/features/DeleteUser/feature.js +10 -0
  186. package/api/features/DeleteUser/feature.js.map +1 -0
  187. package/api/features/DeleteUser/index.d.ts +2 -0
  188. package/api/features/DeleteUser/index.js +4 -0
  189. package/api/features/DeleteUser/index.js.map +1 -0
  190. package/api/features/UpdateUser/UpdateUserUseCase.d.ts +21 -0
  191. package/api/features/UpdateUser/UpdateUserUseCase.js +88 -0
  192. package/api/features/UpdateUser/UpdateUserUseCase.js.map +1 -0
  193. package/api/features/UpdateUser/abstractions.d.ts +33 -0
  194. package/api/features/UpdateUser/abstractions.js +4 -0
  195. package/api/features/UpdateUser/abstractions.js.map +1 -0
  196. package/api/features/UpdateUser/feature.d.ts +1 -0
  197. package/api/features/UpdateUser/feature.js +10 -0
  198. package/api/features/UpdateUser/feature.js.map +1 -0
  199. package/api/features/UpdateUser/index.d.ts +2 -0
  200. package/api/features/UpdateUser/index.js +4 -0
  201. package/api/features/UpdateUser/index.js.map +1 -0
  202. package/api/features/UpdateUser/schema.d.ts +44 -0
  203. package/api/features/UpdateUser/schema.js +16 -0
  204. package/api/features/UpdateUser/schema.js.map +1 -0
  205. package/api/features/UserInstaller/UserInstaller.d.ts +27 -0
  206. package/api/features/UserInstaller/UserInstaller.js +48 -0
  207. package/api/features/UserInstaller/UserInstaller.js.map +1 -0
  208. package/api/features/UserInstaller/feature.d.ts +1 -0
  209. package/api/features/UserInstaller/feature.js +10 -0
  210. package/api/features/UserInstaller/feature.js.map +1 -0
  211. package/api/graphql/user.gql.d.ts +8 -0
  212. package/api/graphql/user.gql.js +167 -0
  213. package/api/graphql/user.gql.js.map +1 -0
  214. package/index.d.ts +2 -0
  215. package/index.js +4 -0
  216. package/index.js.map +1 -0
  217. package/package.json +49 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CognitoIdentityProvider","CognitoConfig","CognitoService","ServiceAbstraction","CognitoServiceImpl","constructor","config","cognito","region","userExists","username","adminGetUser","Username","UserPoolId","userPoolId","createUser","params","createUserParams","DesiredDeliveryMediums","ForceAliasCreation","MessageAction","TemporaryPassword","temporaryPassword","UserAttributes","Name","Value","attributes","givenName","familyName","preferredUsername","email","customId","adminCreateUser","setEmailVerified","adminUpdateUserAttributes","setPermanentPassword","password","adminSetUserPassword","Permanent","Password","updateUserAttributes","userAttributes","Object","entries","map","name","value","deleteUser","adminDeleteUser","createImplementation","implementation","dependencies"],"sources":["CognitoService.ts"],"sourcesContent":["import type { AdminCreateUserRequest } from \"@webiny/aws-sdk/client-cognito-identity-provider/index.js\";\nimport { CognitoIdentityProvider } from \"@webiny/aws-sdk/client-cognito-identity-provider/index.js\";\nimport { CognitoConfig, CognitoService as ServiceAbstraction } from \"./abstractions.js\";\n\nclass CognitoServiceImpl implements ServiceAbstraction.Interface {\n private cognito: CognitoIdentityProvider;\n\n constructor(private config: CognitoConfig.Interface) {\n this.cognito = new CognitoIdentityProvider({ region: config.region });\n }\n\n async userExists(username: string): Promise<boolean> {\n try {\n await this.cognito.adminGetUser({\n Username: username,\n UserPoolId: this.config.userPoolId\n });\n return true;\n } catch {\n // User does not exist\n return false;\n }\n }\n\n async createUser(params: {\n username: string;\n temporaryPassword: string;\n attributes: ServiceAbstraction.UserAttributes;\n }): Promise<void> {\n const createUserParams: AdminCreateUserRequest = {\n UserPoolId: this.config.userPoolId,\n Username: params.username,\n DesiredDeliveryMediums: [],\n ForceAliasCreation: false,\n MessageAction: \"SUPPRESS\",\n TemporaryPassword: params.temporaryPassword,\n UserAttributes: [\n {\n Name: \"given_name\",\n Value: params.attributes.givenName || \"\"\n },\n {\n Name: \"family_name\",\n Value: params.attributes.familyName || \"\"\n },\n {\n Name: \"preferred_username\",\n Value: params.attributes.preferredUsername\n },\n {\n Name: \"email\",\n Value: params.attributes.email\n },\n {\n Name: \"custom:id\",\n Value: params.attributes.customId\n }\n ]\n };\n\n await this.cognito.adminCreateUser(createUserParams);\n }\n\n async setEmailVerified(username: string): Promise<void> {\n await this.cognito.adminUpdateUserAttributes({\n UserPoolId: this.config.userPoolId,\n Username: username,\n UserAttributes: [\n {\n Name: \"email_verified\",\n Value: \"true\"\n }\n ]\n });\n }\n\n async setPermanentPassword(username: string, password: string): Promise<void> {\n await this.cognito.adminSetUserPassword({\n Permanent: true,\n Password: password,\n Username: username,\n UserPoolId: this.config.userPoolId\n });\n }\n\n async updateUserAttributes(\n username: string,\n attributes: Record<string, string>\n ): Promise<void> {\n const userAttributes = Object.entries(attributes).map(([name, value]) => ({\n Name: name,\n Value: value\n }));\n\n await this.cognito.adminUpdateUserAttributes({\n UserPoolId: this.config.userPoolId,\n Username: username,\n UserAttributes: userAttributes\n });\n }\n\n async deleteUser(username: string): Promise<void> {\n await this.cognito.adminDeleteUser({\n UserPoolId: this.config.userPoolId,\n Username: username\n });\n }\n}\n\nexport const CognitoService = ServiceAbstraction.createImplementation({\n implementation: CognitoServiceImpl,\n dependencies: [CognitoConfig]\n});\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,54 @@
1
+ import type { BaseUserAttributes } from "@webiny/api-core/types/users.js";
2
+ export interface AttributeGetter {
3
+ (user: BaseUserAttributes): string;
4
+ }
5
+ export interface ICognitoConfig {
6
+ region: string;
7
+ userPoolId: string;
8
+ }
9
+ export declare const CognitoConfig: import("@webiny/di").Abstraction<ICognitoConfig>;
10
+ export declare namespace CognitoConfig {
11
+ type Interface = ICognitoConfig;
12
+ }
13
+ export interface CognitoUserAttributes {
14
+ givenName?: string;
15
+ familyName?: string;
16
+ preferredUsername: string;
17
+ email: string;
18
+ customId: string;
19
+ }
20
+ export interface ICognitoService {
21
+ /**
22
+ * Check if a user exists in Cognito User Pool
23
+ */
24
+ userExists(username: string): Promise<boolean>;
25
+ /**
26
+ * Create a new user in Cognito User Pool
27
+ */
28
+ createUser(params: {
29
+ username: string;
30
+ temporaryPassword: string;
31
+ attributes: CognitoUserAttributes;
32
+ }): Promise<void>;
33
+ /**
34
+ * Set email as verified for a user
35
+ */
36
+ setEmailVerified(username: string): Promise<void>;
37
+ /**
38
+ * Set a permanent password for a user
39
+ */
40
+ setPermanentPassword(username: string, password: string): Promise<void>;
41
+ /**
42
+ * Update user attributes in Cognito
43
+ */
44
+ updateUserAttributes(username: string, attributes: Record<string, string>): Promise<void>;
45
+ /**
46
+ * Delete a user from Cognito User Pool
47
+ */
48
+ deleteUser(username: string): Promise<void>;
49
+ }
50
+ export declare const CognitoService: import("@webiny/di").Abstraction<ICognitoService>;
51
+ export declare namespace CognitoService {
52
+ type Interface = ICognitoService;
53
+ type UserAttributes = CognitoUserAttributes;
54
+ }
@@ -0,0 +1,8 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ export const CognitoConfig = createAbstraction("CognitoConfig");
3
+
4
+ // Cognito Service
5
+
6
+ export const CognitoService = createAbstraction("CognitoService");
7
+
8
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","CognitoConfig","CognitoService"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { BaseUserAttributes } from \"@webiny/api-core/types/users.js\";\n\nexport interface AttributeGetter {\n (user: BaseUserAttributes): string;\n}\n\nexport interface ICognitoConfig {\n region: string;\n userPoolId: string;\n}\n\nexport const CognitoConfig = createAbstraction<ICognitoConfig>(\"CognitoConfig\");\n\nexport namespace CognitoConfig {\n export type Interface = ICognitoConfig;\n}\n\n// Cognito Service\n\nexport interface CognitoUserAttributes {\n givenName?: string;\n familyName?: string;\n preferredUsername: string;\n email: string;\n customId: string;\n}\n\nexport interface ICognitoService {\n /**\n * Check if a user exists in Cognito User Pool\n */\n userExists(username: string): Promise<boolean>;\n\n /**\n * Create a new user in Cognito User Pool\n */\n createUser(params: {\n username: string;\n temporaryPassword: string;\n attributes: CognitoUserAttributes;\n }): Promise<void>;\n\n /**\n * Set email as verified for a user\n */\n setEmailVerified(username: string): Promise<void>;\n\n /**\n * Set a permanent password for a user\n */\n setPermanentPassword(username: string, password: string): Promise<void>;\n\n /**\n * Update user attributes in Cognito\n */\n updateUserAttributes(username: string, attributes: Record<string, string>): Promise<void>;\n\n /**\n * Delete a user from Cognito User Pool\n */\n deleteUser(username: string): Promise<void>;\n}\n\nexport const CognitoService = createAbstraction<ICognitoService>(\"CognitoService\");\nexport namespace CognitoService {\n export type Interface = ICognitoService;\n export type UserAttributes = CognitoUserAttributes;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAYvD,OAAO,MAAMC,aAAa,GAAGD,iBAAiB,CAAiB,eAAe,CAAC;;AAM/E;;AA8CA,OAAO,MAAME,cAAc,GAAGF,iBAAiB,CAAkB,gBAAgB,CAAC","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ export type UserPoolConfig = {
2
+ region: string;
3
+ userPoolId: string;
4
+ };
5
+ export declare const CognitoServiceFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<UserPoolConfig>;
@@ -0,0 +1,12 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { CognitoService } from "./CognitoService.js";
3
+ import { CognitoConfig } from "./abstractions.js";
4
+ export const CognitoServiceFeature = createFeature({
5
+ name: "cognitoService",
6
+ register(container, config) {
7
+ container.register(CognitoService).inSingletonScope();
8
+ container.registerInstance(CognitoConfig, config);
9
+ }
10
+ });
11
+
12
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFeature","CognitoService","CognitoConfig","CognitoServiceFeature","name","register","container","config","inSingletonScope","registerInstance"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CognitoService } from \"./CognitoService.js\";\nimport { CognitoConfig } from \"./abstractions.js\";\n\nexport type UserPoolConfig = {\n region: string;\n userPoolId: string;\n};\n\nexport const CognitoServiceFeature = createFeature({\n name: \"cognitoService\",\n register(container, config: UserPoolConfig) {\n container.register(CognitoService).inSingletonScope();\n\n container.registerInstance(CognitoConfig, config);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,cAAc;AACvB,SAASC,aAAa;AAOtB,OAAO,MAAMC,qBAAqB,GAAGH,aAAa,CAAC;EAC/CI,IAAI,EAAE,gBAAgB;EACtBC,QAAQA,CAACC,SAAS,EAAEC,MAAsB,EAAE;IACxCD,SAAS,CAACD,QAAQ,CAACJ,cAAc,CAAC,CAACO,gBAAgB,CAAC,CAAC;IAErDF,SAAS,CAACG,gBAAgB,CAACP,aAAa,EAAEK,MAAM,CAAC;EACrD;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export * from "./abstractions.js";
@@ -0,0 +1,3 @@
1
+ export * from "./abstractions.js";
2
+
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./abstractions.js\";\n"],"mappings":"AAAA","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { AdminUsersRepository } from "@webiny/api-core/features/users/shared/abstractions.js";
3
+ import type { AdminUser } from "@webiny/api-core/types/users.js";
4
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
5
+ import { CreateUserUseCase as CoreCreateUser } from "@webiny/api-core/features/users/CreateUser/index.js";
6
+ import { ListUsersUseCase } from "@webiny/api-core/features/users/ListUsers/index.js";
7
+ import { CreateUserUseCase as UseCaseAbstraction } from "./abstractions.js";
8
+ import type { CreateAdminUserInput } from "./abstractions.js";
9
+ import { CognitoService } from "../../../api/features/CognitoService/index.js";
10
+ declare class CreateUserUseCaseImpl implements UseCaseAbstraction.Interface {
11
+ private identityContext;
12
+ private cognitoService;
13
+ private createUserUseCase;
14
+ private listUsersUseCase;
15
+ private repository;
16
+ constructor(identityContext: IdentityContext.Interface, cognitoService: CognitoService.Interface, createUserUseCase: CoreCreateUser.Interface, listUsersUseCase: ListUsersUseCase.Interface, repository: AdminUsersRepository.Interface);
17
+ execute(input: CreateAdminUserInput): Promise<Result<AdminUser, UseCaseAbstraction.Error>>;
18
+ }
19
+ export declare const CreateUserUseCase: typeof CreateUserUseCaseImpl & {
20
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ICreateUserUseCase>;
21
+ };
22
+ export {};
@@ -0,0 +1,106 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { AdminUsersRepository } from "@webiny/api-core/features/users/shared/abstractions.js";
3
+ import { NotAuthorizedError, UserValidationError } from "@webiny/api-core/features/users/shared/errors.js";
4
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
5
+ import { CreateUserUseCase as CoreCreateUser } from "@webiny/api-core/features/users/CreateUser/index.js";
6
+ import { ListUsersUseCase } from "@webiny/api-core/features/users/ListUsers/index.js";
7
+ import { CreateUserUseCase as UseCaseAbstraction } from "./abstractions.js";
8
+ import { Username } from "../../domain/Username.js";
9
+ import { CognitoAccountExistsError, CognitoCreateUserError } from "../../domain/errors.js";
10
+ import { createAdminUserValidation } from "./schema.js";
11
+ import { CognitoService } from "../CognitoService/index.js";
12
+ class CreateUserUseCaseImpl {
13
+ constructor(identityContext, cognitoService, createUserUseCase, listUsersUseCase, repository) {
14
+ this.identityContext = identityContext;
15
+ this.cognitoService = cognitoService;
16
+ this.createUserUseCase = createUserUseCase;
17
+ this.listUsersUseCase = listUsersUseCase;
18
+ this.repository = repository;
19
+ }
20
+ async execute(input) {
21
+ const permission = await this.identityContext.getPermission("adminUsers.user");
22
+ if (!permission) {
23
+ return Result.fail(new NotAuthorizedError());
24
+ }
25
+
26
+ // Validate input (including password)
27
+ const validation = createAdminUserValidation.safeParse(input);
28
+ if (!validation.success) {
29
+ return Result.fail(new UserValidationError(validation.error.errors[0].message));
30
+ }
31
+ const data = validation.data;
32
+ const {
33
+ password,
34
+ ...userDataWithoutPassword
35
+ } = data;
36
+ const username = Username.fromUser(data);
37
+
38
+ // Check if user exists in database (faster than Cognito check)
39
+ const existingUserResult = await this.repository.get({
40
+ email: data.email
41
+ });
42
+ if (existingUserResult.isOk()) {
43
+ return Result.fail(new CognitoAccountExistsError(data.email));
44
+ }
45
+ let user = undefined;
46
+ try {
47
+ // Check if user exists in Cognito
48
+ const userExists = await this.cognitoService.userExists(username);
49
+ if (userExists) {
50
+ return Result.fail(new CognitoAccountExistsError(data.email));
51
+ }
52
+ // Create user in api-core
53
+ const createUserResult = await this.createUserUseCase.execute(userDataWithoutPassword);
54
+ if (createUserResult.isFail()) {
55
+ return Result.fail(createUserResult.error);
56
+ }
57
+ user = createUserResult.value;
58
+
59
+ // Create user in Cognito
60
+ await this.cognitoService.createUser({
61
+ username,
62
+ temporaryPassword: password,
63
+ attributes: {
64
+ givenName: data.firstName,
65
+ familyName: data.lastName,
66
+ preferredUsername: username,
67
+ email: username,
68
+ customId: user.id
69
+ }
70
+ });
71
+
72
+ // Set email as verified
73
+ await this.cognitoService.setEmailVerified(username);
74
+
75
+ // Check if this is the first user in the system, and if so, set permanent password
76
+ const usersResult = await this.listUsersUseCase.execute();
77
+ if (usersResult.isFail()) {
78
+ // Log error but don't fail the operation
79
+ console.error(`Failed to list users: ${usersResult.error.message}`);
80
+ } else {
81
+ const users = usersResult.value;
82
+ if (users.length <= 1) {
83
+ // This is the first user, set permanent password
84
+ await this.cognitoService.setPermanentPassword(username, password);
85
+ }
86
+ }
87
+ return Result.ok(user);
88
+ } catch (cognitoError) {
89
+ if (user) {
90
+ // Rollback: Delete user from api-core if Cognito creation failed
91
+ try {
92
+ await this.repository.delete(user);
93
+ } catch (rollbackError) {
94
+ console.error("Failed to rollback user creation:", rollbackError);
95
+ }
96
+ }
97
+ return Result.fail(new CognitoCreateUserError(cognitoError));
98
+ }
99
+ }
100
+ }
101
+ export const CreateUserUseCase = UseCaseAbstraction.createImplementation({
102
+ implementation: CreateUserUseCaseImpl,
103
+ dependencies: [IdentityContext, CognitoService, CoreCreateUser, ListUsersUseCase, AdminUsersRepository]
104
+ });
105
+
106
+ //# sourceMappingURL=CreateUserUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Result","AdminUsersRepository","NotAuthorizedError","UserValidationError","IdentityContext","CreateUserUseCase","CoreCreateUser","ListUsersUseCase","UseCaseAbstraction","Username","CognitoAccountExistsError","CognitoCreateUserError","createAdminUserValidation","CognitoService","CreateUserUseCaseImpl","constructor","identityContext","cognitoService","createUserUseCase","listUsersUseCase","repository","execute","input","permission","getPermission","fail","validation","safeParse","success","error","errors","message","data","password","userDataWithoutPassword","username","fromUser","existingUserResult","get","email","isOk","user","undefined","userExists","createUserResult","isFail","value","createUser","temporaryPassword","attributes","givenName","firstName","familyName","lastName","preferredUsername","customId","id","setEmailVerified","usersResult","console","users","length","setPermanentPassword","ok","cognitoError","delete","rollbackError","createImplementation","implementation","dependencies"],"sources":["CreateUserUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { AdminUsersRepository } from \"@webiny/api-core/features/users/shared/abstractions.js\";\nimport {\n NotAuthorizedError,\n UserValidationError\n} from \"@webiny/api-core/features/users/shared/errors.js\";\nimport type { AdminUser } from \"@webiny/api-core/types/users.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { CreateUserUseCase as CoreCreateUser } from \"@webiny/api-core/features/users/CreateUser/index.js\";\nimport { ListUsersUseCase } from \"@webiny/api-core/features/users/ListUsers/index.js\";\n\nimport { CreateUserUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { Username } from \"~/api/domain/Username.js\";\nimport { CognitoAccountExistsError, CognitoCreateUserError } from \"~/api/domain/errors.js\";\nimport { createAdminUserValidation } from \"./schema.js\";\nimport type { CreateAdminUserInput } from \"./abstractions.js\";\nimport { CognitoService } from \"~/api/features/CognitoService/index.js\";\n\nclass CreateUserUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private cognitoService: CognitoService.Interface,\n private createUserUseCase: CoreCreateUser.Interface,\n private listUsersUseCase: ListUsersUseCase.Interface,\n private repository: AdminUsersRepository.Interface\n ) {}\n\n async execute(\n input: CreateAdminUserInput\n ): Promise<Result<AdminUser, UseCaseAbstraction.Error>> {\n const permission = await this.identityContext.getPermission(\"adminUsers.user\");\n if (!permission) {\n return Result.fail(new NotAuthorizedError());\n }\n\n // Validate input (including password)\n const validation = createAdminUserValidation.safeParse(input);\n if (!validation.success) {\n return Result.fail(new UserValidationError(validation.error.errors[0].message));\n }\n\n const data = validation.data;\n const { password, ...userDataWithoutPassword } = data;\n\n const username = Username.fromUser(data);\n\n // Check if user exists in database (faster than Cognito check)\n const existingUserResult = await this.repository.get({ email: data.email });\n if (existingUserResult.isOk()) {\n return Result.fail(new CognitoAccountExistsError(data.email));\n }\n\n let user: AdminUser | undefined = undefined;\n\n try {\n // Check if user exists in Cognito\n const userExists = await this.cognitoService.userExists(username);\n if (userExists) {\n return Result.fail(new CognitoAccountExistsError(data.email));\n }\n // Create user in api-core\n const createUserResult = await this.createUserUseCase.execute(userDataWithoutPassword);\n if (createUserResult.isFail()) {\n return Result.fail(createUserResult.error);\n }\n\n user = createUserResult.value;\n\n // Create user in Cognito\n await this.cognitoService.createUser({\n username,\n temporaryPassword: password,\n attributes: {\n givenName: data.firstName,\n familyName: data.lastName,\n preferredUsername: username,\n email: username,\n customId: user.id\n }\n });\n\n // Set email as verified\n await this.cognitoService.setEmailVerified(username);\n\n // Check if this is the first user in the system, and if so, set permanent password\n const usersResult = await this.listUsersUseCase.execute();\n if (usersResult.isFail()) {\n // Log error but don't fail the operation\n console.error(`Failed to list users: ${usersResult.error.message}`);\n } else {\n const users = usersResult.value;\n if (users.length <= 1) {\n // This is the first user, set permanent password\n await this.cognitoService.setPermanentPassword(username, password);\n }\n }\n\n return Result.ok(user);\n } catch (cognitoError) {\n if (user) {\n // Rollback: Delete user from api-core if Cognito creation failed\n try {\n await this.repository.delete(user);\n } catch (rollbackError) {\n console.error(\"Failed to rollback user creation:\", rollbackError);\n }\n }\n return Result.fail(new CognitoCreateUserError(cognitoError as Error));\n }\n }\n}\n\nexport const CreateUserUseCase = UseCaseAbstraction.createImplementation({\n implementation: CreateUserUseCaseImpl,\n dependencies: [\n IdentityContext,\n CognitoService,\n CoreCreateUser,\n ListUsersUseCase,\n AdminUsersRepository\n ]\n});\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,35 @@
1
+ import type { Result } from "@webiny/feature/api";
2
+ import type { AdminUser } from "@webiny/api-core/types/users.js";
3
+ import type { NotAuthorizedError, EmailTakenError, UserValidationError } from "@webiny/api-core/features/users/shared/errors.js";
4
+ import type { RepositoryError } from "@webiny/api-core/features/users/shared/abstractions.js";
5
+ import type { CognitoAccountExistsError, CognitoCreateUserError } from "../../../api/domain/errors.js";
6
+ export interface CreateAdminUserInput {
7
+ id?: string;
8
+ displayName?: string;
9
+ email: string;
10
+ firstName?: string;
11
+ lastName?: string;
12
+ password: string;
13
+ avatar?: Record<string, any> | null;
14
+ roles?: string[];
15
+ teams?: string[];
16
+ }
17
+ export interface ICreateUserUseCaseErrors {
18
+ authorization: NotAuthorizedError;
19
+ validation: UserValidationError;
20
+ emailTaken: EmailTakenError;
21
+ repository: RepositoryError;
22
+ cognitoAccountExists: CognitoAccountExistsError;
23
+ cognitoCreateUser: CognitoCreateUserError;
24
+ }
25
+ type CreateAdminUserError = ICreateUserUseCaseErrors[keyof ICreateUserUseCaseErrors];
26
+ export interface ICreateUserUseCase {
27
+ execute(input: CreateAdminUserInput): Promise<Result<AdminUser, CreateAdminUserError>>;
28
+ }
29
+ export declare const CreateUserUseCase: import("@webiny/di").Abstraction<ICreateUserUseCase>;
30
+ export declare namespace CreateUserUseCase {
31
+ type Interface = ICreateUserUseCase;
32
+ type Input = CreateAdminUserInput;
33
+ type Error = CreateAdminUserError;
34
+ }
35
+ export {};
@@ -0,0 +1,4 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ export const CreateUserUseCase = createAbstraction("CreateUserUseCase");
3
+
4
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","CreateUserUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { AdminUser } from \"@webiny/api-core/types/users.js\";\nimport type {\n NotAuthorizedError,\n EmailTakenError,\n UserValidationError\n} from \"@webiny/api-core/features/users/shared/errors.js\";\nimport type { RepositoryError } from \"@webiny/api-core/features/users/shared/abstractions.js\";\nimport type { CognitoAccountExistsError, CognitoCreateUserError } from \"~/api/domain/errors.js\";\n\nexport interface CreateAdminUserInput {\n id?: string;\n displayName?: string;\n email: string;\n firstName?: string;\n lastName?: string;\n password: string;\n avatar?: Record<string, any> | null;\n roles?: string[];\n teams?: string[];\n}\n\nexport interface ICreateUserUseCaseErrors {\n authorization: NotAuthorizedError;\n validation: UserValidationError;\n emailTaken: EmailTakenError;\n repository: RepositoryError;\n cognitoAccountExists: CognitoAccountExistsError;\n cognitoCreateUser: CognitoCreateUserError;\n}\n\ntype CreateAdminUserError = ICreateUserUseCaseErrors[keyof ICreateUserUseCaseErrors];\n\nexport interface ICreateUserUseCase {\n execute(input: CreateAdminUserInput): Promise<Result<AdminUser, CreateAdminUserError>>;\n}\n\nexport const CreateUserUseCase = createAbstraction<ICreateUserUseCase>(\"CreateUserUseCase\");\n\nexport namespace CreateUserUseCase {\n export type Interface = ICreateUserUseCase;\n export type Input = CreateAdminUserInput;\n export type Error = CreateAdminUserError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAsCvD,OAAO,MAAMC,iBAAiB,GAAGD,iBAAiB,CAAqB,mBAAmB,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export declare const CreateUserFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
@@ -0,0 +1,10 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { CreateUserUseCase } from "./CreateUserUseCase.js";
3
+ export const CreateUserFeature = createFeature({
4
+ name: "CreateUserFeature",
5
+ register(container) {
6
+ container.register(CreateUserUseCase);
7
+ }
8
+ });
9
+
10
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFeature","CreateUserUseCase","CreateUserFeature","name","register","container"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CreateUserUseCase } from \"./CreateUserUseCase.js\";\n\nexport const CreateUserFeature = createFeature({\n name: \"CreateUserFeature\",\n register(container) {\n container.register(CreateUserUseCase);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,iBAAiB;AAE1B,OAAO,MAAMC,iBAAiB,GAAGF,aAAa,CAAC;EAC3CG,IAAI,EAAE,mBAAmB;EACzBC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACH,iBAAiB,CAAC;EACzC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export * from "./abstractions.js";
2
+ export * from "./feature.js";
@@ -0,0 +1,4 @@
1
+ export * from "./abstractions.js";
2
+ export * from "./feature.js";
3
+
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./abstractions.js\";\nexport * from \"./feature.js\";\n"],"mappings":"AAAA;AACA","ignoreList":[]}
@@ -0,0 +1,47 @@
1
+ import { z } from "zod";
2
+ export declare const createAdminUserValidation: z.ZodObject<{
3
+ id: z.ZodOptional<z.ZodString>;
4
+ displayName: z.ZodOptional<z.ZodString>;
5
+ email: z.ZodString;
6
+ firstName: z.ZodOptional<z.ZodString>;
7
+ lastName: z.ZodOptional<z.ZodString>;
8
+ password: z.ZodString;
9
+ avatar: z.ZodNullable<z.ZodOptional<z.ZodObject<{
10
+ id: z.ZodString;
11
+ src: z.ZodString;
12
+ }, "strip", z.ZodTypeAny, {
13
+ src: string;
14
+ id: string;
15
+ }, {
16
+ src: string;
17
+ id: string;
18
+ }>>>;
19
+ roles: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
20
+ teams: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
21
+ }, "strip", z.ZodTypeAny, {
22
+ roles: string[];
23
+ teams: string[];
24
+ email: string;
25
+ password: string;
26
+ displayName?: string | undefined;
27
+ id?: string | undefined;
28
+ firstName?: string | undefined;
29
+ lastName?: string | undefined;
30
+ avatar?: {
31
+ src: string;
32
+ id: string;
33
+ } | null | undefined;
34
+ }, {
35
+ email: string;
36
+ password: string;
37
+ displayName?: string | undefined;
38
+ id?: string | undefined;
39
+ roles?: string[] | undefined;
40
+ teams?: string[] | undefined;
41
+ firstName?: string | undefined;
42
+ lastName?: string | undefined;
43
+ avatar?: {
44
+ src: string;
45
+ id: string;
46
+ } | null | undefined;
47
+ }>;
@@ -0,0 +1,17 @@
1
+ import { z } from "zod";
2
+ export const createAdminUserValidation = z.object({
3
+ id: z.string().min(1).optional(),
4
+ displayName: z.string().min(1).optional(),
5
+ email: z.string().email(),
6
+ firstName: z.string().optional(),
7
+ lastName: z.string().optional(),
8
+ password: z.string().min(8),
9
+ avatar: z.object({
10
+ id: z.string().min(1),
11
+ src: z.string().url()
12
+ }).optional().nullable(),
13
+ roles: z.array(z.string()).optional().default([]),
14
+ teams: z.array(z.string()).optional().default([])
15
+ });
16
+
17
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["z","createAdminUserValidation","object","id","string","min","optional","displayName","email","firstName","lastName","password","avatar","src","url","nullable","roles","array","default","teams"],"sources":["schema.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const createAdminUserValidation = z.object({\n id: z.string().min(1).optional(),\n displayName: z.string().min(1).optional(),\n email: z.string().email(),\n firstName: z.string().optional(),\n lastName: z.string().optional(),\n password: z.string().min(8),\n avatar: z\n .object({\n id: z.string().min(1),\n src: z.string().url()\n })\n .optional()\n .nullable(),\n roles: z.array(z.string()).optional().default([]),\n teams: z.array(z.string()).optional().default([])\n});\n"],"mappings":"AAAA,SAASA,CAAC,QAAQ,KAAK;AAEvB,OAAO,MAAMC,yBAAyB,GAAGD,CAAC,CAACE,MAAM,CAAC;EAC9CC,EAAE,EAAEH,CAAC,CAACI,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;EAChCC,WAAW,EAAEP,CAAC,CAACI,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;EACzCE,KAAK,EAAER,CAAC,CAACI,MAAM,CAAC,CAAC,CAACI,KAAK,CAAC,CAAC;EACzBC,SAAS,EAAET,CAAC,CAACI,MAAM,CAAC,CAAC,CAACE,QAAQ,CAAC,CAAC;EAChCI,QAAQ,EAAEV,CAAC,CAACI,MAAM,CAAC,CAAC,CAACE,QAAQ,CAAC,CAAC;EAC/BK,QAAQ,EAAEX,CAAC,CAACI,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC,CAAC;EAC3BO,MAAM,EAAEZ,CAAC,CACJE,MAAM,CAAC;IACJC,EAAE,EAAEH,CAAC,CAACI,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC,CAAC;IACrBQ,GAAG,EAAEb,CAAC,CAACI,MAAM,CAAC,CAAC,CAACU,GAAG,CAAC;EACxB,CAAC,CAAC,CACDR,QAAQ,CAAC,CAAC,CACVS,QAAQ,CAAC,CAAC;EACfC,KAAK,EAAEhB,CAAC,CAACiB,KAAK,CAACjB,CAAC,CAACI,MAAM,CAAC,CAAC,CAAC,CAACE,QAAQ,CAAC,CAAC,CAACY,OAAO,CAAC,EAAE,CAAC;EACjDC,KAAK,EAAEnB,CAAC,CAACiB,KAAK,CAACjB,CAAC,CAACI,MAAM,CAAC,CAAC,CAAC,CAACE,QAAQ,CAAC,CAAC,CAACY,OAAO,CAAC,EAAE;AACpD,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { DeleteUserUseCase as CoreDeleteUser } from "@webiny/api-core/features/DeleteUser";
3
+ import { GetUserUseCase } from "@webiny/api-core/features/GetUser";
4
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
5
+ import { DeleteUserUseCase as UseCaseAbstraction } from "./abstractions.js";
6
+ import { CognitoService } from "../CognitoService/abstractions.js";
7
+ declare class DeleteUserUseCaseImpl implements UseCaseAbstraction.Interface {
8
+ private identityContext;
9
+ private cognitoService;
10
+ private deleteUserUseCase;
11
+ private getUserUseCase;
12
+ constructor(identityContext: IdentityContext.Interface, cognitoService: CognitoService.Interface, deleteUserUseCase: CoreDeleteUser.Interface, getUserUseCase: GetUserUseCase.Interface);
13
+ execute(id: string): Promise<Result<void, UseCaseAbstraction.Error>>;
14
+ }
15
+ export declare const DeleteUserUseCase: import("@webiny/di").Implementation<typeof DeleteUserUseCaseImpl>;
16
+ export {};
@@ -0,0 +1,54 @@
1
+ import { createImplementation } from "@webiny/feature/api";
2
+ import { Result } from "@webiny/feature/api";
3
+ import { DeleteUserUseCase as CoreDeleteUser } from "@webiny/api-core/features/DeleteUser";
4
+ import { GetUserUseCase } from "@webiny/api-core/features/GetUser";
5
+ import { NotAuthorizedError } from "@webiny/api-core/features/users/shared/errors.js";
6
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
7
+ import { DeleteUserUseCase as UseCaseAbstraction } from "./abstractions.js";
8
+ import { Username } from "../../domain/Username.js";
9
+ import { CognitoDeleteUserError } from "../../domain/errors.js";
10
+ import { CognitoService } from "../CognitoService/abstractions.js";
11
+ class DeleteUserUseCaseImpl {
12
+ constructor(identityContext, cognitoService, deleteUserUseCase, getUserUseCase) {
13
+ this.identityContext = identityContext;
14
+ this.cognitoService = cognitoService;
15
+ this.deleteUserUseCase = deleteUserUseCase;
16
+ this.getUserUseCase = getUserUseCase;
17
+ }
18
+ async execute(id) {
19
+ const permission = await this.identityContext.getPermission("adminUsers.user");
20
+ if (!permission) {
21
+ return Result.fail(new NotAuthorizedError());
22
+ }
23
+
24
+ // Get user to have email for Cognito deletion
25
+ const getUserResult = await this.getUserUseCase.execute({
26
+ id
27
+ });
28
+ if (getUserResult.isFail()) {
29
+ return Result.fail(getUserResult.error);
30
+ }
31
+ const user = getUserResult.value;
32
+
33
+ // Delete user from the database
34
+ const deleteUserResult = await this.deleteUserUseCase.execute(id);
35
+ if (deleteUserResult.isFail()) {
36
+ return Result.fail(deleteUserResult.error);
37
+ }
38
+
39
+ // Delete user from Cognito
40
+ try {
41
+ await this.cognitoService.deleteUser(Username.fromUser(user));
42
+ return Result.ok();
43
+ } catch (cognitoError) {
44
+ return Result.fail(new CognitoDeleteUserError(cognitoError));
45
+ }
46
+ }
47
+ }
48
+ export const DeleteUserUseCase = createImplementation({
49
+ abstraction: UseCaseAbstraction,
50
+ implementation: DeleteUserUseCaseImpl,
51
+ dependencies: [IdentityContext, CognitoService, CoreDeleteUser, GetUserUseCase]
52
+ });
53
+
54
+ //# sourceMappingURL=DeleteUserUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createImplementation","Result","DeleteUserUseCase","CoreDeleteUser","GetUserUseCase","NotAuthorizedError","IdentityContext","UseCaseAbstraction","Username","CognitoDeleteUserError","CognitoService","DeleteUserUseCaseImpl","constructor","identityContext","cognitoService","deleteUserUseCase","getUserUseCase","execute","id","permission","getPermission","fail","getUserResult","isFail","error","user","value","deleteUserResult","deleteUser","fromUser","ok","cognitoError","abstraction","implementation","dependencies"],"sources":["DeleteUserUseCase.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport { DeleteUserUseCase as CoreDeleteUser } from \"@webiny/api-core/features/DeleteUser\";\nimport { GetUserUseCase } from \"@webiny/api-core/features/GetUser\";\nimport { NotAuthorizedError } from \"@webiny/api-core/features/users/shared/errors.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { DeleteUserUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { Username } from \"~/api/domain/Username.js\";\nimport { CognitoDeleteUserError } from \"~/api/domain/errors.js\";\nimport { CognitoService } from \"../CognitoService/abstractions.js\";\n\nclass DeleteUserUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private cognitoService: CognitoService.Interface,\n private deleteUserUseCase: CoreDeleteUser.Interface,\n private getUserUseCase: GetUserUseCase.Interface\n ) {}\n\n async execute(id: string): Promise<Result<void, UseCaseAbstraction.Error>> {\n const permission = await this.identityContext.getPermission(\"adminUsers.user\");\n if (!permission) {\n return Result.fail(new NotAuthorizedError());\n }\n\n // Get user to have email for Cognito deletion\n const getUserResult = await this.getUserUseCase.execute({ id });\n if (getUserResult.isFail()) {\n return Result.fail(getUserResult.error);\n }\n\n const user = getUserResult.value;\n\n // Delete user from the database\n const deleteUserResult = await this.deleteUserUseCase.execute(id);\n if (deleteUserResult.isFail()) {\n return Result.fail(deleteUserResult.error);\n }\n\n // Delete user from Cognito\n try {\n await this.cognitoService.deleteUser(Username.fromUser(user));\n\n return Result.ok();\n } catch (cognitoError) {\n return Result.fail(new CognitoDeleteUserError(cognitoError as Error));\n }\n }\n}\n\nexport const DeleteUserUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: DeleteUserUseCaseImpl,\n dependencies: [IdentityContext, CognitoService, CoreDeleteUser, GetUserUseCase]\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,qBAAqB;AAC1D,SAASC,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,iBAAiB,IAAIC,cAAc,QAAQ,sCAAsC;AAC1F,SAASC,cAAc,QAAQ,mCAAmC;AAClE,SAASC,kBAAkB,QAAQ,kDAAkD;AACrF,SAASC,eAAe,QAAQ,6DAA6D;AAC7F,SAASJ,iBAAiB,IAAIK,kBAAkB;AAChD,SAASC,QAAQ;AACjB,SAASC,sBAAsB;AAC/B,SAASC,cAAc;AAEvB,MAAMC,qBAAqB,CAAyC;EAChEC,WAAWA,CACCC,eAA0C,EAC1CC,cAAwC,EACxCC,iBAA2C,EAC3CC,cAAwC,EAClD;IAAA,KAJUH,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,cAAwC,GAAxCA,cAAwC;IAAA,KACxCC,iBAA2C,GAA3CA,iBAA2C;IAAA,KAC3CC,cAAwC,GAAxCA,cAAwC;EACjD;EAEH,MAAMC,OAAOA,CAACC,EAAU,EAAmD;IACvE,MAAMC,UAAU,GAAG,MAAM,IAAI,CAACN,eAAe,CAACO,aAAa,CAAC,iBAAiB,CAAC;IAC9E,IAAI,CAACD,UAAU,EAAE;MACb,OAAOlB,MAAM,CAACoB,IAAI,CAAC,IAAIhB,kBAAkB,CAAC,CAAC,CAAC;IAChD;;IAEA;IACA,MAAMiB,aAAa,GAAG,MAAM,IAAI,CAACN,cAAc,CAACC,OAAO,CAAC;MAAEC;IAAG,CAAC,CAAC;IAC/D,IAAII,aAAa,CAACC,MAAM,CAAC,CAAC,EAAE;MACxB,OAAOtB,MAAM,CAACoB,IAAI,CAACC,aAAa,CAACE,KAAK,CAAC;IAC3C;IAEA,MAAMC,IAAI,GAAGH,aAAa,CAACI,KAAK;;IAEhC;IACA,MAAMC,gBAAgB,GAAG,MAAM,IAAI,CAACZ,iBAAiB,CAACE,OAAO,CAACC,EAAE,CAAC;IACjE,IAAIS,gBAAgB,CAACJ,MAAM,CAAC,CAAC,EAAE;MAC3B,OAAOtB,MAAM,CAACoB,IAAI,CAACM,gBAAgB,CAACH,KAAK,CAAC;IAC9C;;IAEA;IACA,IAAI;MACA,MAAM,IAAI,CAACV,cAAc,CAACc,UAAU,CAACpB,QAAQ,CAACqB,QAAQ,CAACJ,IAAI,CAAC,CAAC;MAE7D,OAAOxB,MAAM,CAAC6B,EAAE,CAAC,CAAC;IACtB,CAAC,CAAC,OAAOC,YAAY,EAAE;MACnB,OAAO9B,MAAM,CAACoB,IAAI,CAAC,IAAIZ,sBAAsB,CAACsB,YAAqB,CAAC,CAAC;IACzE;EACJ;AACJ;AAEA,OAAO,MAAM7B,iBAAiB,GAAGF,oBAAoB,CAAC;EAClDgC,WAAW,EAAEzB,kBAAkB;EAC/B0B,cAAc,EAAEtB,qBAAqB;EACrCuB,YAAY,EAAE,CAAC5B,eAAe,EAAEI,cAAc,EAAEP,cAAc,EAAEC,cAAc;AAClF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ import type { Result } from "@webiny/feature/api";
2
+ import type { NotAuthorizedError } from "@webiny/api-core/features/users/shared/errors.js";
3
+ import type { DeleteUserUseCase as CoreDeleteUser } from "@webiny/api-core/features/users/DeleteUser/index.js";
4
+ import type { CognitoDeleteUserError } from "../../../api/domain/errors.js";
5
+ export interface IDeleteUserUseCaseErrors {
6
+ authorization: NotAuthorizedError;
7
+ deleteUser: CoreDeleteUser.Error;
8
+ cognitoDeleteUser: CognitoDeleteUserError;
9
+ }
10
+ type IDeleteAdminUserError = IDeleteUserUseCaseErrors[keyof IDeleteUserUseCaseErrors];
11
+ export interface IDeleteUserUseCase {
12
+ execute(id: string): Promise<Result<void, IDeleteAdminUserError>>;
13
+ }
14
+ export declare const DeleteUserUseCase: import("@webiny/di").Abstraction<IDeleteUserUseCase>;
15
+ export declare namespace DeleteUserUseCase {
16
+ type Interface = IDeleteUserUseCase;
17
+ type Error = IDeleteAdminUserError;
18
+ }
19
+ export {};
@@ -0,0 +1,4 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ export const DeleteUserUseCase = createAbstraction("DeleteUserUseCase");
3
+
4
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","DeleteUserUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { NotAuthorizedError } from \"@webiny/api-core/features/users/shared/errors.js\";\nimport type { DeleteUserUseCase as CoreDeleteUser } from \"@webiny/api-core/features/users/DeleteUser/index.js\";\nimport type { CognitoDeleteUserError } from \"~/api/domain/errors.js\";\n\nexport interface IDeleteUserUseCaseErrors {\n authorization: NotAuthorizedError;\n deleteUser: CoreDeleteUser.Error;\n cognitoDeleteUser: CognitoDeleteUserError;\n}\n\ntype IDeleteAdminUserError = IDeleteUserUseCaseErrors[keyof IDeleteUserUseCaseErrors];\n\nexport interface IDeleteUserUseCase {\n execute(id: string): Promise<Result<void, IDeleteAdminUserError>>;\n}\n\nexport const DeleteUserUseCase = createAbstraction<IDeleteUserUseCase>(\"DeleteUserUseCase\");\n\nexport namespace DeleteUserUseCase {\n export type Interface = IDeleteUserUseCase;\n export type Error = IDeleteAdminUserError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAkBvD,OAAO,MAAMC,iBAAiB,GAAGD,iBAAiB,CAAqB,mBAAmB,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export declare const DeleteUserFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
@@ -0,0 +1,10 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { DeleteUserUseCase } from "./DeleteUserUseCase.js";
3
+ export const DeleteUserFeature = createFeature({
4
+ name: "DeleteUserFeature",
5
+ register(container) {
6
+ container.register(DeleteUserUseCase);
7
+ }
8
+ });
9
+
10
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFeature","DeleteUserUseCase","DeleteUserFeature","name","register","container"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { DeleteUserUseCase } from \"./DeleteUserUseCase.js\";\n\nexport const DeleteUserFeature = createFeature({\n name: \"DeleteUserFeature\",\n register(container) {\n container.register(DeleteUserUseCase);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,iBAAiB;AAE1B,OAAO,MAAMC,iBAAiB,GAAGF,aAAa,CAAC;EAC3CG,IAAI,EAAE,mBAAmB;EACzBC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACH,iBAAiB,CAAC;EACzC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export * from "./abstractions.js";
2
+ export * from "./feature.js";
@@ -0,0 +1,4 @@
1
+ export * from "./abstractions.js";
2
+ export * from "./feature.js";
3
+
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./abstractions.js\";\nexport * from \"./feature.js\";\n"],"mappings":"AAAA;AACA","ignoreList":[]}
@@ -0,0 +1,21 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { UpdateUserUseCase as CoreUpdateUser } from "@webiny/api-core/features/UpdateUser";
3
+ import { GetUserUseCase } from "@webiny/api-core/features/GetUser";
4
+ import type { AdminUser } from "@webiny/api-core/types/users.js";
5
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
6
+ import { UpdateUserUseCase as UseCaseAbstraction } from "./abstractions.js";
7
+ import type { UpdateAdminUserInput } from "./abstractions.js";
8
+ import { CognitoService } from "../../../api/features/CognitoService/index.js";
9
+ declare class UpdateUserUseCaseImpl implements UseCaseAbstraction.Interface {
10
+ private identityContext;
11
+ private cognitoService;
12
+ private updateUserUseCase;
13
+ private getUserUseCase;
14
+ private updateAttributes;
15
+ constructor(identityContext: IdentityContext.Interface, cognitoService: CognitoService.Interface, updateUserUseCase: CoreUpdateUser.Interface, getUserUseCase: GetUserUseCase.Interface);
16
+ execute(id: string, input: UpdateAdminUserInput): Promise<Result<AdminUser, UseCaseAbstraction.Error>>;
17
+ }
18
+ export declare const UpdateUserUseCase: typeof UpdateUserUseCaseImpl & {
19
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IUpdateUserUseCase>;
20
+ };
21
+ export {};