@webiny/api-core 6.3.0 → 6.4.0-beta.1

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 (816) hide show
  1. package/ApiCoreFeature.js +22 -18
  2. package/ApiCoreFeature.js.map +1 -1
  3. package/createApiCore.d.ts +1 -1
  4. package/createApiCore.js +14 -9
  5. package/createApiCore.js.map +1 -1
  6. package/domain/identity/SystemIdentityValue.js +9 -8
  7. package/domain/identity/SystemIdentityValue.js.map +1 -1
  8. package/domain/security/ApiToken.js +5 -11
  9. package/domain/security/ApiToken.js.map +1 -1
  10. package/domain/tenancy/RootTenantValue.js +9 -8
  11. package/domain/tenancy/RootTenantValue.js.map +1 -1
  12. package/domain/tenancy/errors.js +0 -3
  13. package/exports/api/build-params.js +0 -3
  14. package/exports/api/event-publisher.js +0 -3
  15. package/exports/api/graphql.js +0 -2
  16. package/exports/api/key-value-store.js +0 -3
  17. package/exports/api/logger.js +0 -3
  18. package/exports/api/security/api-key.js +0 -2
  19. package/exports/api/security/authentication.js +0 -2
  20. package/exports/api/security/role.js +1 -3
  21. package/exports/api/security/user.js +0 -2
  22. package/exports/api/security.js +3 -7
  23. package/exports/api/system.js +0 -2
  24. package/exports/api/tasks.js +0 -2
  25. package/exports/api/tenancy.js +4 -6
  26. package/exports/api/webhooks.d.ts +1 -0
  27. package/exports/api/webhooks.js +1 -0
  28. package/exports/api.js +1 -3
  29. package/features/ai/Ai.js +100 -117
  30. package/features/ai/Ai.js.map +1 -1
  31. package/features/ai/AiSdkTools.js +23 -19
  32. package/features/ai/AiSdkTools.js.map +1 -1
  33. package/features/ai/AnthropicSdkFactory.js +82 -65
  34. package/features/ai/AnthropicSdkFactory.js.map +1 -1
  35. package/features/ai/OpenAiSdkFactory.js +234 -181
  36. package/features/ai/OpenAiSdkFactory.js.map +1 -1
  37. package/features/ai/abstractions.js +7 -32
  38. package/features/ai/abstractions.js.map +1 -1
  39. package/features/ai/feature.js +9 -8
  40. package/features/ai/feature.js.map +1 -1
  41. package/features/ai/index.js +1 -3
  42. package/features/buildParams/BuildParams.js +20 -14
  43. package/features/buildParams/BuildParams.js.map +1 -1
  44. package/features/buildParams/abstractions.js +3 -4
  45. package/features/buildParams/abstractions.js.map +1 -1
  46. package/features/buildParams/feature.js +6 -5
  47. package/features/buildParams/feature.js.map +1 -1
  48. package/features/buildParams/index.js +0 -2
  49. package/features/encryption/EncryptionService.js +50 -46
  50. package/features/encryption/EncryptionService.js.map +1 -1
  51. package/features/encryption/abstractions.js +2 -2
  52. package/features/encryption/abstractions.js.map +1 -1
  53. package/features/encryption/feature.js +6 -5
  54. package/features/encryption/feature.js.map +1 -1
  55. package/features/encryption/index.js +0 -2
  56. package/features/eventPublisher/EventPublisher.js +9 -15
  57. package/features/eventPublisher/EventPublisher.js.map +1 -1
  58. package/features/eventPublisher/__tests__/EventPublisher.test.js +385 -419
  59. package/features/eventPublisher/__tests__/EventPublisher.test.js.map +1 -1
  60. package/features/eventPublisher/abstractions.js +7 -12
  61. package/features/eventPublisher/abstractions.js.map +1 -1
  62. package/features/eventPublisher/feature.js +8 -7
  63. package/features/eventPublisher/feature.js.map +1 -1
  64. package/features/eventPublisher/index.js +0 -2
  65. package/features/featureFlags/FeatureFlags.js +15 -12
  66. package/features/featureFlags/FeatureFlags.js.map +1 -1
  67. package/features/featureFlags/abstractions.js +2 -1
  68. package/features/featureFlags/abstractions.js.map +1 -1
  69. package/features/featureFlags/feature.js +6 -5
  70. package/features/featureFlags/feature.js.map +1 -1
  71. package/features/keyValueStore/GlobalKeyValueStore.js +28 -23
  72. package/features/keyValueStore/GlobalKeyValueStore.js.map +1 -1
  73. package/features/keyValueStore/KeyValueStore.js +30 -27
  74. package/features/keyValueStore/KeyValueStore.js.map +1 -1
  75. package/features/keyValueStore/KeyValueStoreRepository.d.ts +2 -2
  76. package/features/keyValueStore/KeyValueStoreRepository.js +34 -41
  77. package/features/keyValueStore/KeyValueStoreRepository.js.map +1 -1
  78. package/features/keyValueStore/abstractions.d.ts +6 -2
  79. package/features/keyValueStore/abstractions.js +5 -20
  80. package/features/keyValueStore/abstractions.js.map +1 -1
  81. package/features/keyValueStore/errors.js +16 -17
  82. package/features/keyValueStore/errors.js.map +1 -1
  83. package/features/keyValueStore/feature.js +9 -9
  84. package/features/keyValueStore/feature.js.map +1 -1
  85. package/features/keyValueStore/index.js +1 -3
  86. package/features/logger/LoggerService.js +41 -45
  87. package/features/logger/LoggerService.js.map +1 -1
  88. package/features/logger/abstractions.js +2 -2
  89. package/features/logger/abstractions.js.map +1 -1
  90. package/features/logger/feature.js +6 -5
  91. package/features/logger/feature.js.map +1 -1
  92. package/features/logger/index.js +0 -2
  93. package/features/masker/Masker.js +11 -14
  94. package/features/masker/Masker.js.map +1 -1
  95. package/features/masker/abstractions.js +2 -1
  96. package/features/masker/abstractions.js.map +1 -1
  97. package/features/masker/feature.js +7 -6
  98. package/features/masker/feature.js.map +1 -1
  99. package/features/masker/index.js +0 -2
  100. package/features/security/IdentityContext/AnonymousIdentity.js +12 -16
  101. package/features/security/IdentityContext/AnonymousIdentity.js.map +1 -1
  102. package/features/security/IdentityContext/AuthenticatedIdentity.js +5 -8
  103. package/features/security/IdentityContext/AuthenticatedIdentity.js.map +1 -1
  104. package/features/security/IdentityContext/Identity.js +63 -71
  105. package/features/security/IdentityContext/Identity.js.map +1 -1
  106. package/features/security/IdentityContext/IdentityContext.js +69 -106
  107. package/features/security/IdentityContext/IdentityContext.js.map +1 -1
  108. package/features/security/IdentityContext/abstractions.js +2 -2
  109. package/features/security/IdentityContext/abstractions.js.map +1 -1
  110. package/features/security/IdentityContext/feature.js +6 -5
  111. package/features/security/IdentityContext/feature.js.map +1 -1
  112. package/features/security/IdentityContext/index.js +0 -3
  113. package/features/security/SecurityFeature.js +13 -21
  114. package/features/security/SecurityFeature.js.map +1 -1
  115. package/features/security/apiKeys/CreateApiKey/CreateApiKeyUseCase.js +48 -49
  116. package/features/security/apiKeys/CreateApiKey/CreateApiKeyUseCase.js.map +1 -1
  117. package/features/security/apiKeys/CreateApiKey/abstractions.js +2 -2
  118. package/features/security/apiKeys/CreateApiKey/abstractions.js.map +1 -1
  119. package/features/security/apiKeys/CreateApiKey/events.js +17 -16
  120. package/features/security/apiKeys/CreateApiKey/events.js.map +1 -1
  121. package/features/security/apiKeys/CreateApiKey/feature.js +6 -5
  122. package/features/security/apiKeys/CreateApiKey/feature.js.map +1 -1
  123. package/features/security/apiKeys/CreateApiKey/index.js +0 -2
  124. package/features/security/apiKeys/DeleteApiKey/DeleteApiKeyUseCase.js +29 -30
  125. package/features/security/apiKeys/DeleteApiKey/DeleteApiKeyUseCase.js.map +1 -1
  126. package/features/security/apiKeys/DeleteApiKey/abstractions.js +2 -2
  127. package/features/security/apiKeys/DeleteApiKey/abstractions.js.map +1 -1
  128. package/features/security/apiKeys/DeleteApiKey/events.js +17 -16
  129. package/features/security/apiKeys/DeleteApiKey/events.js.map +1 -1
  130. package/features/security/apiKeys/DeleteApiKey/feature.js +6 -5
  131. package/features/security/apiKeys/DeleteApiKey/feature.js.map +1 -1
  132. package/features/security/apiKeys/DeleteApiKey/index.js +0 -2
  133. package/features/security/apiKeys/GetApiKey/GetApiKeyUseCase.js +16 -14
  134. package/features/security/apiKeys/GetApiKey/GetApiKeyUseCase.js.map +1 -1
  135. package/features/security/apiKeys/GetApiKey/abstractions.js +2 -2
  136. package/features/security/apiKeys/GetApiKey/abstractions.js.map +1 -1
  137. package/features/security/apiKeys/GetApiKey/feature.js +6 -5
  138. package/features/security/apiKeys/GetApiKey/feature.js.map +1 -1
  139. package/features/security/apiKeys/GetApiKey/index.js +0 -2
  140. package/features/security/apiKeys/GetApiKeyBySlug/GetApiKeyBySlugUseCase.js +13 -10
  141. package/features/security/apiKeys/GetApiKeyBySlug/GetApiKeyBySlugUseCase.js.map +1 -1
  142. package/features/security/apiKeys/GetApiKeyBySlug/abstractions.js +2 -2
  143. package/features/security/apiKeys/GetApiKeyBySlug/abstractions.js.map +1 -1
  144. package/features/security/apiKeys/GetApiKeyBySlug/feature.js +6 -5
  145. package/features/security/apiKeys/GetApiKeyBySlug/feature.js.map +1 -1
  146. package/features/security/apiKeys/GetApiKeyBySlug/index.js +0 -2
  147. package/features/security/apiKeys/GetApiKeyByToken/GetApiKeyByTokenUseCase.js +13 -10
  148. package/features/security/apiKeys/GetApiKeyByToken/GetApiKeyByTokenUseCase.js.map +1 -1
  149. package/features/security/apiKeys/GetApiKeyByToken/abstractions.js +2 -2
  150. package/features/security/apiKeys/GetApiKeyByToken/abstractions.js.map +1 -1
  151. package/features/security/apiKeys/GetApiKeyByToken/feature.js +6 -5
  152. package/features/security/apiKeys/GetApiKeyByToken/feature.js.map +1 -1
  153. package/features/security/apiKeys/GetApiKeyByToken/index.js +0 -2
  154. package/features/security/apiKeys/ListApiKeys/ListApiKeysUseCase.js +17 -17
  155. package/features/security/apiKeys/ListApiKeys/ListApiKeysUseCase.js.map +1 -1
  156. package/features/security/apiKeys/ListApiKeys/abstractions.js +2 -2
  157. package/features/security/apiKeys/ListApiKeys/abstractions.js.map +1 -1
  158. package/features/security/apiKeys/ListApiKeys/feature.js +6 -5
  159. package/features/security/apiKeys/ListApiKeys/feature.js.map +1 -1
  160. package/features/security/apiKeys/ListApiKeys/index.js +0 -2
  161. package/features/security/apiKeys/UpdateApiKey/UpdateApiKeyUseCase.js +39 -42
  162. package/features/security/apiKeys/UpdateApiKey/UpdateApiKeyUseCase.js.map +1 -1
  163. package/features/security/apiKeys/UpdateApiKey/abstractions.js +2 -2
  164. package/features/security/apiKeys/UpdateApiKey/abstractions.js.map +1 -1
  165. package/features/security/apiKeys/UpdateApiKey/events.js +17 -16
  166. package/features/security/apiKeys/UpdateApiKey/events.js.map +1 -1
  167. package/features/security/apiKeys/UpdateApiKey/feature.js +6 -5
  168. package/features/security/apiKeys/UpdateApiKey/feature.js.map +1 -1
  169. package/features/security/apiKeys/UpdateApiKey/index.js +0 -2
  170. package/features/security/apiKeys/feature.js +14 -16
  171. package/features/security/apiKeys/feature.js.map +1 -1
  172. package/features/security/apiKeys/shared/ApiKeyProvider.js +42 -42
  173. package/features/security/apiKeys/shared/ApiKeyProvider.js.map +1 -1
  174. package/features/security/apiKeys/shared/ApiKeysRepository.js +108 -135
  175. package/features/security/apiKeys/shared/ApiKeysRepository.js.map +1 -1
  176. package/features/security/apiKeys/shared/abstractions.js +4 -6
  177. package/features/security/apiKeys/shared/abstractions.js.map +1 -1
  178. package/features/security/apiKeys/shared/errors.js +29 -32
  179. package/features/security/apiKeys/shared/errors.js.map +1 -1
  180. package/features/security/apiKeys/shared/generateToken.js +6 -16
  181. package/features/security/apiKeys/shared/generateToken.js.map +1 -1
  182. package/features/security/apiKeys/shared/schemas.js +27 -23
  183. package/features/security/apiKeys/shared/schemas.js.map +1 -1
  184. package/features/security/apiKeys/shared/types.js +0 -3
  185. package/features/security/authentication/AuthenticationContext/AuthenticationContext.js +44 -38
  186. package/features/security/authentication/AuthenticationContext/AuthenticationContext.js.map +1 -1
  187. package/features/security/authentication/AuthenticationContext/SetIdTokenCookie.js +33 -43
  188. package/features/security/authentication/AuthenticationContext/SetIdTokenCookie.js.map +1 -1
  189. package/features/security/authentication/AuthenticationContext/abstractions.js +2 -2
  190. package/features/security/authentication/AuthenticationContext/abstractions.js.map +1 -1
  191. package/features/security/authentication/AuthenticationContext/errors.js +51 -116
  192. package/features/security/authentication/AuthenticationContext/errors.js.map +1 -1
  193. package/features/security/authentication/AuthenticationContext/events.js +17 -16
  194. package/features/security/authentication/AuthenticationContext/events.js.map +1 -1
  195. package/features/security/authentication/AuthenticationContext/feature.js +6 -5
  196. package/features/security/authentication/AuthenticationContext/feature.js.map +1 -1
  197. package/features/security/authentication/AuthenticationContext/index.js +2 -4
  198. package/features/security/authentication/Authenticator/abstractions.js +2 -2
  199. package/features/security/authentication/Authenticator/abstractions.js.map +1 -1
  200. package/features/security/authentication/Authenticator/index.js +0 -2
  201. package/features/security/authorization/AuthorizationContext/AuthorizationContext.js +46 -59
  202. package/features/security/authorization/AuthorizationContext/AuthorizationContext.js.map +1 -1
  203. package/features/security/authorization/AuthorizationContext/abstractions.js +3 -4
  204. package/features/security/authorization/AuthorizationContext/abstractions.js.map +1 -1
  205. package/features/security/authorization/AuthorizationContext/feature.js +10 -9
  206. package/features/security/authorization/AuthorizationContext/feature.js.map +1 -1
  207. package/features/security/authorization/AuthorizationContext/index.js +1 -4
  208. package/features/security/authorization/Authorizer/abstractions.js +2 -2
  209. package/features/security/authorization/Authorizer/abstractions.js.map +1 -1
  210. package/features/security/authorization/Authorizer/index.js +0 -2
  211. package/features/security/authorization/GroupsTeamsAuthorizer/GetPermissionsFromIdentity.js +60 -64
  212. package/features/security/authorization/GroupsTeamsAuthorizer/GetPermissionsFromIdentity.js.map +1 -1
  213. package/features/security/authorization/GroupsTeamsAuthorizer/RolesTeamsAuthorizer.js +26 -40
  214. package/features/security/authorization/GroupsTeamsAuthorizer/RolesTeamsAuthorizer.js.map +1 -1
  215. package/features/security/authorization/GroupsTeamsAuthorizer/abstractions.js +2 -1
  216. package/features/security/authorization/GroupsTeamsAuthorizer/abstractions.js.map +1 -1
  217. package/features/security/authorization/GroupsTeamsAuthorizer/feature.js +7 -6
  218. package/features/security/authorization/GroupsTeamsAuthorizer/feature.js.map +1 -1
  219. package/features/security/login/abstractions.js +9 -8
  220. package/features/security/login/abstractions.js.map +1 -1
  221. package/features/security/login/index.js +0 -2
  222. package/features/security/permissions/createPermissionSchema.js +6 -5
  223. package/features/security/permissions/createPermissionSchema.js.map +1 -1
  224. package/features/security/permissions/createPermissions.js +148 -236
  225. package/features/security/permissions/createPermissions.js.map +1 -1
  226. package/features/security/permissions/index.js +0 -2
  227. package/features/security/permissions/types.js +0 -3
  228. package/features/security/roles/CreateRole/CreateRoleUseCase.js +53 -59
  229. package/features/security/roles/CreateRole/CreateRoleUseCase.js.map +1 -1
  230. package/features/security/roles/CreateRole/abstractions.js +2 -2
  231. package/features/security/roles/CreateRole/abstractions.js.map +1 -1
  232. package/features/security/roles/CreateRole/events.js +17 -16
  233. package/features/security/roles/CreateRole/events.js.map +1 -1
  234. package/features/security/roles/CreateRole/feature.js +6 -5
  235. package/features/security/roles/CreateRole/feature.js.map +1 -1
  236. package/features/security/roles/CreateRole/index.js +0 -2
  237. package/features/security/roles/CreateRole/schema.js +8 -7
  238. package/features/security/roles/CreateRole/schema.js.map +1 -1
  239. package/features/security/roles/DeleteRole/DeleteRoleUseCase.js +35 -41
  240. package/features/security/roles/DeleteRole/DeleteRoleUseCase.js.map +1 -1
  241. package/features/security/roles/DeleteRole/abstractions.js +2 -2
  242. package/features/security/roles/DeleteRole/abstractions.js.map +1 -1
  243. package/features/security/roles/DeleteRole/events.js +17 -16
  244. package/features/security/roles/DeleteRole/events.js.map +1 -1
  245. package/features/security/roles/DeleteRole/feature.js +6 -5
  246. package/features/security/roles/DeleteRole/feature.js.map +1 -1
  247. package/features/security/roles/DeleteRole/index.js +0 -2
  248. package/features/security/roles/GetRole/GetRoleUseCase.js +19 -18
  249. package/features/security/roles/GetRole/GetRoleUseCase.js.map +1 -1
  250. package/features/security/roles/GetRole/abstractions.js +2 -2
  251. package/features/security/roles/GetRole/abstractions.js.map +1 -1
  252. package/features/security/roles/GetRole/feature.js +6 -5
  253. package/features/security/roles/GetRole/feature.js.map +1 -1
  254. package/features/security/roles/GetRole/index.js +0 -2
  255. package/features/security/roles/Installer/RolesInstaller.js +38 -35
  256. package/features/security/roles/Installer/RolesInstaller.js.map +1 -1
  257. package/features/security/roles/ListRoles/ListRolesUseCase.js +18 -17
  258. package/features/security/roles/ListRoles/ListRolesUseCase.js.map +1 -1
  259. package/features/security/roles/ListRoles/abstractions.js +2 -2
  260. package/features/security/roles/ListRoles/abstractions.js.map +1 -1
  261. package/features/security/roles/ListRoles/feature.js +6 -5
  262. package/features/security/roles/ListRoles/feature.js.map +1 -1
  263. package/features/security/roles/ListRoles/index.js +0 -2
  264. package/features/security/roles/UpdateRole/UpdateRoleUseCase.js +43 -50
  265. package/features/security/roles/UpdateRole/UpdateRoleUseCase.js.map +1 -1
  266. package/features/security/roles/UpdateRole/abstractions.js +2 -2
  267. package/features/security/roles/UpdateRole/abstractions.js.map +1 -1
  268. package/features/security/roles/UpdateRole/events.js +17 -16
  269. package/features/security/roles/UpdateRole/events.js.map +1 -1
  270. package/features/security/roles/UpdateRole/feature.js +6 -5
  271. package/features/security/roles/UpdateRole/feature.js.map +1 -1
  272. package/features/security/roles/UpdateRole/index.js +0 -2
  273. package/features/security/roles/UpdateRole/schema.js +7 -6
  274. package/features/security/roles/UpdateRole/schema.js.map +1 -1
  275. package/features/security/roles/feature.js +14 -18
  276. package/features/security/roles/feature.js.map +1 -1
  277. package/features/security/roles/shared/RoleProvider.js +27 -21
  278. package/features/security/roles/shared/RoleProvider.js.map +1 -1
  279. package/features/security/roles/shared/RolesRepository.js +96 -113
  280. package/features/security/roles/shared/RolesRepository.js.map +1 -1
  281. package/features/security/roles/shared/abstractions.js +3 -4
  282. package/features/security/roles/shared/abstractions.js.map +1 -1
  283. package/features/security/roles/shared/decorators/ListCache.js +23 -22
  284. package/features/security/roles/shared/decorators/ListCache.js.map +1 -1
  285. package/features/security/roles/shared/decorators/RolesRepositoryCachingDecorator.js +40 -62
  286. package/features/security/roles/shared/decorators/RolesRepositoryCachingDecorator.js.map +1 -1
  287. package/features/security/roles/shared/errors.js +50 -56
  288. package/features/security/roles/shared/errors.js.map +1 -1
  289. package/features/security/roles/shared/types.js +0 -3
  290. package/features/security/shared/abstractions.js +4 -6
  291. package/features/security/shared/abstractions.js.map +1 -1
  292. package/features/security/shared/errors.js +8 -8
  293. package/features/security/shared/errors.js.map +1 -1
  294. package/features/security/shared/index.js +0 -2
  295. package/features/security/teams/CreateTeam/CreateTeamUseCase.js +53 -59
  296. package/features/security/teams/CreateTeam/CreateTeamUseCase.js.map +1 -1
  297. package/features/security/teams/CreateTeam/abstractions.js +2 -2
  298. package/features/security/teams/CreateTeam/abstractions.js.map +1 -1
  299. package/features/security/teams/CreateTeam/events.js +17 -16
  300. package/features/security/teams/CreateTeam/events.js.map +1 -1
  301. package/features/security/teams/CreateTeam/feature.js +6 -5
  302. package/features/security/teams/CreateTeam/feature.js.map +1 -1
  303. package/features/security/teams/CreateTeam/index.js +0 -2
  304. package/features/security/teams/CreateTeam/schema.js +6 -5
  305. package/features/security/teams/CreateTeam/schema.js.map +1 -1
  306. package/features/security/teams/DeleteTeam/DeleteTeamUseCase.js +36 -46
  307. package/features/security/teams/DeleteTeam/DeleteTeamUseCase.js.map +1 -1
  308. package/features/security/teams/DeleteTeam/abstractions.js +2 -2
  309. package/features/security/teams/DeleteTeam/abstractions.js.map +1 -1
  310. package/features/security/teams/DeleteTeam/events.js +17 -16
  311. package/features/security/teams/DeleteTeam/events.js.map +1 -1
  312. package/features/security/teams/DeleteTeam/feature.js +6 -5
  313. package/features/security/teams/DeleteTeam/feature.js.map +1 -1
  314. package/features/security/teams/DeleteTeam/index.js +0 -2
  315. package/features/security/teams/GetTeam/GetTeamUseCase.js +17 -17
  316. package/features/security/teams/GetTeam/GetTeamUseCase.js.map +1 -1
  317. package/features/security/teams/GetTeam/abstractions.js +2 -2
  318. package/features/security/teams/GetTeam/abstractions.js.map +1 -1
  319. package/features/security/teams/GetTeam/feature.js +6 -5
  320. package/features/security/teams/GetTeam/feature.js.map +1 -1
  321. package/features/security/teams/GetTeam/index.js +0 -2
  322. package/features/security/teams/ListTeams/ListTeamsUseCase.js +20 -21
  323. package/features/security/teams/ListTeams/ListTeamsUseCase.js.map +1 -1
  324. package/features/security/teams/ListTeams/abstractions.js +2 -2
  325. package/features/security/teams/ListTeams/abstractions.js.map +1 -1
  326. package/features/security/teams/ListTeams/feature.js +6 -5
  327. package/features/security/teams/ListTeams/feature.js.map +1 -1
  328. package/features/security/teams/ListTeams/index.js +0 -2
  329. package/features/security/teams/UpdateTeam/UpdateTeamUseCase.js +46 -58
  330. package/features/security/teams/UpdateTeam/UpdateTeamUseCase.js.map +1 -1
  331. package/features/security/teams/UpdateTeam/abstractions.js +2 -2
  332. package/features/security/teams/UpdateTeam/abstractions.js.map +1 -1
  333. package/features/security/teams/UpdateTeam/events.js +17 -16
  334. package/features/security/teams/UpdateTeam/events.js.map +1 -1
  335. package/features/security/teams/UpdateTeam/feature.js +6 -5
  336. package/features/security/teams/UpdateTeam/feature.js.map +1 -1
  337. package/features/security/teams/UpdateTeam/index.js +0 -2
  338. package/features/security/teams/UpdateTeam/schema.js +5 -4
  339. package/features/security/teams/UpdateTeam/schema.js.map +1 -1
  340. package/features/security/teams/feature.js +13 -17
  341. package/features/security/teams/feature.js.map +1 -1
  342. package/features/security/teams/shared/TeamProvider.js +27 -21
  343. package/features/security/teams/shared/TeamProvider.js.map +1 -1
  344. package/features/security/teams/shared/TeamsRepository.js +100 -118
  345. package/features/security/teams/shared/TeamsRepository.js.map +1 -1
  346. package/features/security/teams/shared/abstractions.js +3 -4
  347. package/features/security/teams/shared/abstractions.js.map +1 -1
  348. package/features/security/teams/shared/decorators/TeamsRepositoryCachingDecorator.js +40 -62
  349. package/features/security/teams/shared/decorators/TeamsRepositoryCachingDecorator.js.map +1 -1
  350. package/features/security/teams/shared/errors.js +62 -70
  351. package/features/security/teams/shared/errors.js.map +1 -1
  352. package/features/security/teams/shared/types.js +0 -3
  353. package/features/security/utils/AppPermissions.js +50 -89
  354. package/features/security/utils/AppPermissions.js.map +1 -1
  355. package/features/security/utils/IdentityValue.js +19 -22
  356. package/features/security/utils/IdentityValue.js.map +1 -1
  357. package/features/security/utils/filterOutCustomWbyAppsPermissions.js +24 -27
  358. package/features/security/utils/filterOutCustomWbyAppsPermissions.js.map +1 -1
  359. package/features/security/utils/getPermissionsFromRoles.js +5 -10
  360. package/features/security/utils/getPermissionsFromRoles.js.map +1 -1
  361. package/features/security/utils/isJwt.js +2 -1
  362. package/features/security/utils/isJwt.js.map +1 -1
  363. package/features/security/utils/verifyJwtUsingJwk.js +6 -7
  364. package/features/security/utils/verifyJwtUsingJwk.js.map +1 -1
  365. package/features/system/InstallSystem/InstallSystemUseCase.js +45 -44
  366. package/features/system/InstallSystem/InstallSystemUseCase.js.map +1 -1
  367. package/features/system/InstallSystem/abstractions.js +3 -17
  368. package/features/system/InstallSystem/abstractions.js.map +1 -1
  369. package/features/system/InstallSystem/errors.js +15 -16
  370. package/features/system/InstallSystem/errors.js.map +1 -1
  371. package/features/system/InstallSystem/events.js +8 -5
  372. package/features/system/InstallSystem/events.js.map +1 -1
  373. package/features/system/InstallSystem/feature.js +6 -7
  374. package/features/system/InstallSystem/feature.js.map +1 -1
  375. package/features/system/InstallSystem/index.js +2 -6
  376. package/features/system/SystemFeature.js +6 -5
  377. package/features/system/SystemFeature.js.map +1 -1
  378. package/features/task/TaskController/abstractions.js +2 -10
  379. package/features/task/TaskController/abstractions.js.map +1 -1
  380. package/features/task/TaskController/index.js +0 -2
  381. package/features/task/TaskDefinition/abstractions.js +8 -40
  382. package/features/task/TaskDefinition/abstractions.js.map +1 -1
  383. package/features/task/TaskDefinition/index.js +0 -2
  384. package/features/task/TaskService/abstractions.js +9 -13
  385. package/features/task/TaskService/abstractions.js.map +1 -1
  386. package/features/task/TaskService/index.js +0 -2
  387. package/features/tenancy/CreateTenant/CreateTenantGateway.js +14 -11
  388. package/features/tenancy/CreateTenant/CreateTenantGateway.js.map +1 -1
  389. package/features/tenancy/CreateTenant/CreateTenantRepository.js +18 -15
  390. package/features/tenancy/CreateTenant/CreateTenantRepository.js.map +1 -1
  391. package/features/tenancy/CreateTenant/CreateTenantUseCase.js +44 -41
  392. package/features/tenancy/CreateTenant/CreateTenantUseCase.js.map +1 -1
  393. package/features/tenancy/CreateTenant/abstractions.js +6 -29
  394. package/features/tenancy/CreateTenant/abstractions.js.map +1 -1
  395. package/features/tenancy/CreateTenant/decorators/CreateTenantWithWcpIncrement.js +16 -15
  396. package/features/tenancy/CreateTenant/decorators/CreateTenantWithWcpIncrement.js.map +1 -1
  397. package/features/tenancy/CreateTenant/errors.js +8 -8
  398. package/features/tenancy/CreateTenant/errors.js.map +1 -1
  399. package/features/tenancy/CreateTenant/events.js +16 -11
  400. package/features/tenancy/CreateTenant/events.js.map +1 -1
  401. package/features/tenancy/CreateTenant/feature.js +9 -8
  402. package/features/tenancy/CreateTenant/feature.js.map +1 -1
  403. package/features/tenancy/CreateTenant/index.js +2 -4
  404. package/features/tenancy/DeleteTenant/DeleteTenantGateway.js +15 -12
  405. package/features/tenancy/DeleteTenant/DeleteTenantGateway.js.map +1 -1
  406. package/features/tenancy/DeleteTenant/DeleteTenantRepository.js +22 -19
  407. package/features/tenancy/DeleteTenant/DeleteTenantRepository.js.map +1 -1
  408. package/features/tenancy/DeleteTenant/DeleteTenantUseCase.js +29 -27
  409. package/features/tenancy/DeleteTenant/DeleteTenantUseCase.js.map +1 -1
  410. package/features/tenancy/DeleteTenant/abstractions.js +6 -10
  411. package/features/tenancy/DeleteTenant/abstractions.js.map +1 -1
  412. package/features/tenancy/DeleteTenant/decorators/DeleteTenantWithWcpDecrement.js +16 -13
  413. package/features/tenancy/DeleteTenant/decorators/DeleteTenantWithWcpDecrement.js.map +1 -1
  414. package/features/tenancy/DeleteTenant/events.js +16 -11
  415. package/features/tenancy/DeleteTenant/events.js.map +1 -1
  416. package/features/tenancy/DeleteTenant/feature.js +9 -8
  417. package/features/tenancy/DeleteTenant/feature.js.map +1 -1
  418. package/features/tenancy/DeleteTenant/index.js +2 -4
  419. package/features/tenancy/GetRootTenant/GetRootTenantUseCase.js +15 -12
  420. package/features/tenancy/GetRootTenant/GetRootTenantUseCase.js.map +1 -1
  421. package/features/tenancy/GetRootTenant/abstractions.js +2 -4
  422. package/features/tenancy/GetRootTenant/abstractions.js.map +1 -1
  423. package/features/tenancy/GetRootTenant/feature.js +6 -5
  424. package/features/tenancy/GetRootTenant/feature.js.map +1 -1
  425. package/features/tenancy/GetRootTenant/index.js +0 -2
  426. package/features/tenancy/GetTenantById/GetTenantByIdGateway.js +17 -12
  427. package/features/tenancy/GetTenantById/GetTenantByIdGateway.js.map +1 -1
  428. package/features/tenancy/GetTenantById/GetTenantByIdRepository.js +18 -19
  429. package/features/tenancy/GetTenantById/GetTenantByIdRepository.js.map +1 -1
  430. package/features/tenancy/GetTenantById/GetTenantByIdUseCase.js +17 -17
  431. package/features/tenancy/GetTenantById/GetTenantByIdUseCase.js.map +1 -1
  432. package/features/tenancy/GetTenantById/abstractions.js +4 -6
  433. package/features/tenancy/GetTenantById/abstractions.js.map +1 -1
  434. package/features/tenancy/GetTenantById/feature.js +8 -12
  435. package/features/tenancy/GetTenantById/feature.js.map +1 -1
  436. package/features/tenancy/GetTenantById/index.js +1 -3
  437. package/features/tenancy/InstallTenant/DependencyResolver.js +53 -65
  438. package/features/tenancy/InstallTenant/DependencyResolver.js.map +1 -1
  439. package/features/tenancy/InstallTenant/InstallTenantUseCase.js +95 -113
  440. package/features/tenancy/InstallTenant/InstallTenantUseCase.js.map +1 -1
  441. package/features/tenancy/InstallTenant/abstractions.js +4 -15
  442. package/features/tenancy/InstallTenant/abstractions.js.map +1 -1
  443. package/features/tenancy/InstallTenant/errors.js +15 -16
  444. package/features/tenancy/InstallTenant/errors.js.map +1 -1
  445. package/features/tenancy/InstallTenant/events.js +8 -5
  446. package/features/tenancy/InstallTenant/events.js.map +1 -1
  447. package/features/tenancy/InstallTenant/feature.js +6 -5
  448. package/features/tenancy/InstallTenant/feature.js.map +1 -1
  449. package/features/tenancy/InstallTenant/index.js +1 -3
  450. package/features/tenancy/ListTenants/ListTenantsGateway.js +14 -11
  451. package/features/tenancy/ListTenants/ListTenantsGateway.js.map +1 -1
  452. package/features/tenancy/ListTenants/ListTenantsRepository.js +14 -12
  453. package/features/tenancy/ListTenants/ListTenantsRepository.js.map +1 -1
  454. package/features/tenancy/ListTenants/ListTenantsUseCase.js +16 -14
  455. package/features/tenancy/ListTenants/ListTenantsUseCase.js.map +1 -1
  456. package/features/tenancy/ListTenants/abstractions.js +4 -12
  457. package/features/tenancy/ListTenants/abstractions.js.map +1 -1
  458. package/features/tenancy/ListTenants/feature.js +8 -7
  459. package/features/tenancy/ListTenants/feature.js.map +1 -1
  460. package/features/tenancy/ListTenants/index.js +1 -3
  461. package/features/tenancy/TenancyFeature.js +20 -26
  462. package/features/tenancy/TenancyFeature.js.map +1 -1
  463. package/features/tenancy/TenantContext/TenantContext.js +46 -48
  464. package/features/tenancy/TenantContext/TenantContext.js.map +1 -1
  465. package/features/tenancy/TenantContext/abstractions.js +2 -2
  466. package/features/tenancy/TenantContext/abstractions.js.map +1 -1
  467. package/features/tenancy/TenantContext/errors.js +7 -7
  468. package/features/tenancy/TenantContext/errors.js.map +1 -1
  469. package/features/tenancy/TenantContext/feature.js +6 -5
  470. package/features/tenancy/TenantContext/feature.js.map +1 -1
  471. package/features/tenancy/TenantContext/index.js +0 -2
  472. package/features/tenancy/UpdateTenant/UpdateTenantGateway.js +14 -11
  473. package/features/tenancy/UpdateTenant/UpdateTenantGateway.js.map +1 -1
  474. package/features/tenancy/UpdateTenant/UpdateTenantRepository.js +19 -16
  475. package/features/tenancy/UpdateTenant/UpdateTenantRepository.js.map +1 -1
  476. package/features/tenancy/UpdateTenant/UpdateTenantUseCase.js +37 -36
  477. package/features/tenancy/UpdateTenant/UpdateTenantUseCase.js.map +1 -1
  478. package/features/tenancy/UpdateTenant/abstractions.js +6 -10
  479. package/features/tenancy/UpdateTenant/abstractions.js.map +1 -1
  480. package/features/tenancy/UpdateTenant/events.js +16 -11
  481. package/features/tenancy/UpdateTenant/events.js.map +1 -1
  482. package/features/tenancy/UpdateTenant/feature.js +8 -7
  483. package/features/tenancy/UpdateTenant/feature.js.map +1 -1
  484. package/features/tenancy/UpdateTenant/index.js +2 -4
  485. package/features/tenancy/shared/TenantCache.js +18 -17
  486. package/features/tenancy/shared/TenantCache.js.map +1 -1
  487. package/features/tenancy/shared/abstractions.js +2 -1
  488. package/features/tenancy/shared/abstractions.js.map +1 -1
  489. package/features/tenancy/shared/storageOperations.js +2 -5
  490. package/features/tenancy/shared/storageOperations.js.map +1 -1
  491. package/features/users/AdminUsersFeature.js +15 -19
  492. package/features/users/AdminUsersFeature.js.map +1 -1
  493. package/features/users/CreateUser/CreateUserUseCase.js +65 -100
  494. package/features/users/CreateUser/CreateUserUseCase.js.map +1 -1
  495. package/features/users/CreateUser/abstractions.js +2 -13
  496. package/features/users/CreateUser/abstractions.js.map +1 -1
  497. package/features/users/CreateUser/decorators/CreateUserWithWcpIncrement.js +16 -15
  498. package/features/users/CreateUser/decorators/CreateUserWithWcpIncrement.js.map +1 -1
  499. package/features/users/CreateUser/events.js +17 -18
  500. package/features/users/CreateUser/events.js.map +1 -1
  501. package/features/users/CreateUser/feature.js +7 -6
  502. package/features/users/CreateUser/feature.js.map +1 -1
  503. package/features/users/CreateUser/index.js +0 -2
  504. package/features/users/CreateUser/schema.js +14 -18
  505. package/features/users/CreateUser/schema.js.map +1 -1
  506. package/features/users/DeleteUser/DeleteUserUseCase.js +35 -50
  507. package/features/users/DeleteUser/DeleteUserUseCase.js.map +1 -1
  508. package/features/users/DeleteUser/abstractions.js +2 -13
  509. package/features/users/DeleteUser/abstractions.js.map +1 -1
  510. package/features/users/DeleteUser/decorators/DeleteUserWithWcpDecrement.js +15 -16
  511. package/features/users/DeleteUser/decorators/DeleteUserWithWcpDecrement.js.map +1 -1
  512. package/features/users/DeleteUser/errors.js +7 -7
  513. package/features/users/DeleteUser/errors.js.map +1 -1
  514. package/features/users/DeleteUser/events.js +17 -18
  515. package/features/users/DeleteUser/events.js.map +1 -1
  516. package/features/users/DeleteUser/feature.js +7 -6
  517. package/features/users/DeleteUser/feature.js.map +1 -1
  518. package/features/users/DeleteUser/index.js +0 -2
  519. package/features/users/ExternalIdpUserSync/ExternalIdpUserSyncHandler.js +60 -74
  520. package/features/users/ExternalIdpUserSync/ExternalIdpUserSyncHandler.js.map +1 -1
  521. package/features/users/ExternalIdpUserSync/feature.js +6 -5
  522. package/features/users/ExternalIdpUserSync/feature.js.map +1 -1
  523. package/features/users/ExternalIdpUserSync/index.js +0 -2
  524. package/features/users/GetIdentityProfile/GetIdentityProfileUseCase.js +29 -39
  525. package/features/users/GetIdentityProfile/GetIdentityProfileUseCase.js.map +1 -1
  526. package/features/users/GetIdentityProfile/abstractions.js +2 -11
  527. package/features/users/GetIdentityProfile/abstractions.js.map +1 -1
  528. package/features/users/GetIdentityProfile/feature.js +6 -5
  529. package/features/users/GetIdentityProfile/feature.js.map +1 -1
  530. package/features/users/GetIdentityProfile/index.js +0 -2
  531. package/features/users/GetIdentityProfile/types.js +0 -3
  532. package/features/users/GetUser/GetUserUseCase.js +19 -23
  533. package/features/users/GetUser/GetUserUseCase.js.map +1 -1
  534. package/features/users/GetUser/abstractions.js +2 -11
  535. package/features/users/GetUser/abstractions.js.map +1 -1
  536. package/features/users/GetUser/feature.js +6 -5
  537. package/features/users/GetUser/feature.js.map +1 -1
  538. package/features/users/GetUser/index.js +0 -2
  539. package/features/users/ListUserTeams/ListUserTeamsUseCase.js +33 -42
  540. package/features/users/ListUserTeams/ListUserTeamsUseCase.js.map +1 -1
  541. package/features/users/ListUserTeams/abstractions.js +2 -11
  542. package/features/users/ListUserTeams/abstractions.js.map +1 -1
  543. package/features/users/ListUserTeams/feature.js +6 -5
  544. package/features/users/ListUserTeams/feature.js.map +1 -1
  545. package/features/users/ListUserTeams/index.js +0 -2
  546. package/features/users/ListUsers/ListUsersUseCase.js +19 -23
  547. package/features/users/ListUsers/ListUsersUseCase.js.map +1 -1
  548. package/features/users/ListUsers/abstractions.js +2 -11
  549. package/features/users/ListUsers/abstractions.js.map +1 -1
  550. package/features/users/ListUsers/feature.js +6 -5
  551. package/features/users/ListUsers/feature.js.map +1 -1
  552. package/features/users/ListUsers/index.js +0 -2
  553. package/features/users/UpdateUser/UpdateUserUseCase.js +52 -74
  554. package/features/users/UpdateUser/UpdateUserUseCase.js.map +1 -1
  555. package/features/users/UpdateUser/abstractions.js +2 -13
  556. package/features/users/UpdateUser/abstractions.js.map +1 -1
  557. package/features/users/UpdateUser/events.js +17 -18
  558. package/features/users/UpdateUser/events.js.map +1 -1
  559. package/features/users/UpdateUser/feature.js +6 -5
  560. package/features/users/UpdateUser/feature.js.map +1 -1
  561. package/features/users/UpdateUser/index.js +0 -2
  562. package/features/users/UpdateUser/schema.js +11 -10
  563. package/features/users/UpdateUser/schema.js.map +1 -1
  564. package/features/users/shared/AdminUsersRepository.js +104 -112
  565. package/features/users/shared/AdminUsersRepository.js.map +1 -1
  566. package/features/users/shared/abstractions.js +2 -9
  567. package/features/users/shared/abstractions.js.map +1 -1
  568. package/features/users/shared/errors.js +40 -46
  569. package/features/users/shared/errors.js.map +1 -1
  570. package/features/users/shared/loaders.js +52 -66
  571. package/features/users/shared/loaders.js.map +1 -1
  572. package/features/users/shared/storageAbstractions.js +2 -2
  573. package/features/users/shared/storageAbstractions.js.map +1 -1
  574. package/features/users/shared/types.js +0 -3
  575. package/features/wcp/WcpContext/WcpContext.js +138 -142
  576. package/features/wcp/WcpContext/WcpContext.js.map +1 -1
  577. package/features/wcp/WcpContext/abstractions.js +2 -6
  578. package/features/wcp/WcpContext/abstractions.js.map +1 -1
  579. package/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.js +135 -134
  580. package/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.js.map +1 -1
  581. package/features/wcp/WcpContext/feature.js +6 -5
  582. package/features/wcp/WcpContext/feature.js.map +1 -1
  583. package/features/wcp/WcpContext/index.js +0 -2
  584. package/features/wcp/WcpContext/types.js +0 -3
  585. package/features/wcp/WcpContext/utils.js +35 -53
  586. package/features/wcp/WcpContext/utils.js.map +1 -1
  587. package/features/wcp/WcpFeature.js +7 -6
  588. package/features/wcp/WcpFeature.js.map +1 -1
  589. package/features/webhooks/Webhook/WebhookProvider.d.ts +12 -0
  590. package/features/webhooks/Webhook/WebhookProvider.js +28 -0
  591. package/features/webhooks/Webhook/WebhookProvider.js.map +1 -0
  592. package/features/webhooks/Webhook/abstractions/WebhookFactory.d.ts +14 -0
  593. package/features/webhooks/Webhook/abstractions/WebhookFactory.js +5 -0
  594. package/features/webhooks/Webhook/abstractions/WebhookFactory.js.map +1 -0
  595. package/features/webhooks/Webhook/abstractions/WebhookProvider.d.ts +9 -0
  596. package/features/webhooks/Webhook/abstractions/WebhookProvider.js +5 -0
  597. package/features/webhooks/Webhook/abstractions/WebhookProvider.js.map +1 -0
  598. package/features/webhooks/Webhook/feature.d.ts +4 -0
  599. package/features/webhooks/Webhook/feature.js +11 -0
  600. package/features/webhooks/Webhook/feature.js.map +1 -0
  601. package/features/webhooks/Webhook/index.d.ts +2 -0
  602. package/features/webhooks/Webhook/index.js +2 -0
  603. package/features/webhooks/WebhookDispatcher/NullWebhookDispatcher.d.ts +8 -0
  604. package/features/webhooks/WebhookDispatcher/NullWebhookDispatcher.js +11 -0
  605. package/features/webhooks/WebhookDispatcher/NullWebhookDispatcher.js.map +1 -0
  606. package/features/webhooks/WebhookDispatcher/abstractions.d.ts +12 -0
  607. package/features/webhooks/WebhookDispatcher/abstractions.js +5 -0
  608. package/features/webhooks/WebhookDispatcher/abstractions.js.map +1 -0
  609. package/features/webhooks/WebhookSignPayload/abstractions.d.ts +14 -0
  610. package/features/webhooks/WebhookSignPayload/abstractions.js +5 -0
  611. package/features/webhooks/WebhookSignPayload/abstractions.js.map +1 -0
  612. package/features/webhooks/WebhookVerifyPayload/abstractions.d.ts +11 -0
  613. package/features/webhooks/WebhookVerifyPayload/abstractions.js +5 -0
  614. package/features/webhooks/WebhookVerifyPayload/abstractions.js.map +1 -0
  615. package/features/webhooks/index.d.ts +5 -0
  616. package/features/webhooks/index.js +5 -0
  617. package/graphql/security/NotAuthorizedResponse.js +11 -14
  618. package/graphql/security/NotAuthorizedResponse.js.map +1 -1
  619. package/graphql/security/ProfileMapper.js +12 -11
  620. package/graphql/security/ProfileMapper.js.map +1 -1
  621. package/graphql/security/apiKey.gql.js +38 -47
  622. package/graphql/security/apiKey.gql.js.map +1 -1
  623. package/graphql/security/base.gql.js +11 -10
  624. package/graphql/security/base.gql.js.map +1 -1
  625. package/graphql/security/identity.gql.js +87 -97
  626. package/graphql/security/identity.gql.js.map +1 -1
  627. package/graphql/security/index.js +13 -8
  628. package/graphql/security/index.js.map +1 -1
  629. package/graphql/security/role.gql.js +49 -57
  630. package/graphql/security/role.gql.js.map +1 -1
  631. package/graphql/security/team.gql.js +61 -69
  632. package/graphql/security/team.gql.js.map +1 -1
  633. package/graphql/system/createSystemGraphQL.js +31 -34
  634. package/graphql/system/createSystemGraphQL.js.map +1 -1
  635. package/graphql/users/user.gql.js +87 -105
  636. package/graphql/users/user.gql.js.map +1 -1
  637. package/graphql/wcp/graphql.js +25 -28
  638. package/graphql/wcp/graphql.js.map +1 -1
  639. package/idp/JwksCache.js +22 -28
  640. package/idp/JwksCache.js.map +1 -1
  641. package/idp/JwtAuthenticator.js +34 -46
  642. package/idp/JwtAuthenticator.js.map +1 -1
  643. package/idp/OidcJwtIdentityProvider.js +55 -82
  644. package/idp/OidcJwtIdentityProvider.js.map +1 -1
  645. package/idp/abstractions.js +5 -14
  646. package/idp/abstractions.js.map +1 -1
  647. package/idp/feature.js +8 -7
  648. package/idp/feature.js.map +1 -1
  649. package/idp/index.js +1 -3
  650. package/idp/types.js +0 -3
  651. package/index.js +0 -2
  652. package/legacy/security/LegacyContext.js +133 -186
  653. package/legacy/security/LegacyContext.js.map +1 -1
  654. package/legacy/security/createSecurityContext.js +5 -9
  655. package/legacy/security/createSecurityContext.js.map +1 -1
  656. package/legacy/security/plugins/apiKeyAuthentication.js +15 -24
  657. package/legacy/security/plugins/apiKeyAuthentication.js.map +1 -1
  658. package/legacy/security/plugins/apiKeyAuthorization.js +9 -18
  659. package/legacy/security/plugins/apiKeyAuthorization.js.map +1 -1
  660. package/legacy/security/plugins/authenticateUsingCookie.js +18 -22
  661. package/legacy/security/plugins/authenticateUsingCookie.js.map +1 -1
  662. package/legacy/security/plugins/authenticateUsingHttpHeader.d.ts +1 -1
  663. package/legacy/security/plugins/authenticateUsingHttpHeader.js +15 -18
  664. package/legacy/security/plugins/authenticateUsingHttpHeader.js.map +1 -1
  665. package/legacy/security/plugins/secureHeaders.js +28 -21
  666. package/legacy/security/plugins/secureHeaders.js.map +1 -1
  667. package/legacy/tenancy/LegacyContext.js +45 -52
  668. package/legacy/tenancy/LegacyContext.js.map +1 -1
  669. package/legacy/tenancy/createTenancyContext.js +22 -42
  670. package/legacy/tenancy/createTenancyContext.js.map +1 -1
  671. package/legacy/users/LegacyContext.js +39 -54
  672. package/legacy/users/LegacyContext.js.map +1 -1
  673. package/legacy/users/createAdminUsersContext.js +7 -7
  674. package/legacy/users/createAdminUsersContext.js.map +1 -1
  675. package/legacy/wcp/LegacyWcpContext.js +80 -79
  676. package/legacy/wcp/LegacyWcpContext.js.map +1 -1
  677. package/legacy/wcp/context.d.ts +1 -3
  678. package/legacy/wcp/context.js +33 -37
  679. package/legacy/wcp/context.js.map +1 -1
  680. package/models/base/BaseModel.js +51 -56
  681. package/models/base/BaseModel.js.map +1 -1
  682. package/models/base/ModelBuilder.js +65 -78
  683. package/models/base/ModelBuilder.js.map +1 -1
  684. package/models/base/ModelFactory.js +0 -3
  685. package/models/base/__tests__/ModelBuilder.test.js +437 -454
  686. package/models/base/__tests__/ModelBuilder.test.js.map +1 -1
  687. package/models/base/abstractions.js +0 -3
  688. package/models/cms/FieldBuilder.js +112 -121
  689. package/models/cms/FieldBuilder.js.map +1 -1
  690. package/models/cms/FieldBuilderRegistry.js +13 -12
  691. package/models/cms/FieldBuilderRegistry.js.map +1 -1
  692. package/models/cms/FieldDefinitionsBuilder.js +37 -54
  693. package/models/cms/FieldDefinitionsBuilder.js.map +1 -1
  694. package/models/cms/PrivateCmsModelBuilder.js +84 -89
  695. package/models/cms/PrivateCmsModelBuilder.js.map +1 -1
  696. package/models/cms/PrivatePage/Page.fields.js +7 -6
  697. package/models/cms/PrivatePage/Page.fields.js.map +1 -1
  698. package/models/cms/PrivatePage/PageModelBuilder.js +18 -15
  699. package/models/cms/PrivatePage/PageModelBuilder.js.map +1 -1
  700. package/models/cms/PrivatePage/PageModelFactory.js +20 -25
  701. package/models/cms/PrivatePage/PageModelFactory.js.map +1 -1
  702. package/models/cms/PrivatePage/__tests__/PageModelFactory.test.js +218 -234
  703. package/models/cms/PrivatePage/__tests__/PageModelFactory.test.js.map +1 -1
  704. package/models/cms/PrivatePage/__tests__/PagePublishingDecorator.js +33 -36
  705. package/models/cms/PrivatePage/__tests__/PagePublishingDecorator.js.map +1 -1
  706. package/models/cms/PrivatePage/__tests__/PageSeoDecorator.js +25 -26
  707. package/models/cms/PrivatePage/__tests__/PageSeoDecorator.js.map +1 -1
  708. package/models/cms/PrivatePage/abstractions.js +3 -9
  709. package/models/cms/PrivatePage/abstractions.js.map +1 -1
  710. package/models/cms/__tests__/PrivateCmsModelBuilder.test.js +173 -185
  711. package/models/cms/__tests__/PrivateCmsModelBuilder.test.js.map +1 -1
  712. package/models/cms/abstractions.js +3 -20
  713. package/models/cms/abstractions.js.map +1 -1
  714. package/models/cms/types.js +0 -3
  715. package/models/simple/Page/PageModelBuilder.js +15 -14
  716. package/models/simple/Page/PageModelBuilder.js.map +1 -1
  717. package/models/simple/Page/PageModelFactory.js +16 -15
  718. package/models/simple/Page/PageModelFactory.js.map +1 -1
  719. package/models/simple/Page/__tests__/PageModelBuilderDecorator.js +21 -20
  720. package/models/simple/Page/__tests__/PageModelBuilderDecorator.js.map +1 -1
  721. package/models/simple/Page/__tests__/PageModelBuilderDecorator2.js +17 -16
  722. package/models/simple/Page/__tests__/PageModelBuilderDecorator2.js.map +1 -1
  723. package/models/simple/Page/__tests__/PageModelFactory.test.js +28 -28
  724. package/models/simple/Page/__tests__/PageModelFactory.test.js.map +1 -1
  725. package/models/simple/Page/abstractions.js +9 -8
  726. package/models/simple/Page/abstractions.js.map +1 -1
  727. package/package.json +22 -22
  728. package/types/core.js +0 -3
  729. package/types/security.js +0 -3
  730. package/types/tenancy.js +0 -3
  731. package/types/users.js +0 -3
  732. package/domain/tenancy/errors.js.map +0 -1
  733. package/exports/api/build-params.js.map +0 -1
  734. package/exports/api/event-publisher.js.map +0 -1
  735. package/exports/api/graphql.js.map +0 -1
  736. package/exports/api/key-value-store.js.map +0 -1
  737. package/exports/api/logger.js.map +0 -1
  738. package/exports/api/security/api-key.js.map +0 -1
  739. package/exports/api/security/authentication.js.map +0 -1
  740. package/exports/api/security/role.js.map +0 -1
  741. package/exports/api/security/user.js.map +0 -1
  742. package/exports/api/security.js.map +0 -1
  743. package/exports/api/system.js.map +0 -1
  744. package/exports/api/tasks.js.map +0 -1
  745. package/exports/api/tenancy.js.map +0 -1
  746. package/exports/api.js.map +0 -1
  747. package/features/ai/index.js.map +0 -1
  748. package/features/buildParams/index.js.map +0 -1
  749. package/features/encryption/index.js.map +0 -1
  750. package/features/eventPublisher/index.js.map +0 -1
  751. package/features/keyValueStore/index.js.map +0 -1
  752. package/features/logger/index.js.map +0 -1
  753. package/features/masker/index.js.map +0 -1
  754. package/features/security/IdentityContext/index.js.map +0 -1
  755. package/features/security/apiKeys/CreateApiKey/index.js.map +0 -1
  756. package/features/security/apiKeys/DeleteApiKey/index.js.map +0 -1
  757. package/features/security/apiKeys/GetApiKey/index.js.map +0 -1
  758. package/features/security/apiKeys/GetApiKeyBySlug/index.js.map +0 -1
  759. package/features/security/apiKeys/GetApiKeyByToken/index.js.map +0 -1
  760. package/features/security/apiKeys/ListApiKeys/index.js.map +0 -1
  761. package/features/security/apiKeys/UpdateApiKey/index.js.map +0 -1
  762. package/features/security/apiKeys/shared/types.js.map +0 -1
  763. package/features/security/authentication/AuthenticationContext/index.js.map +0 -1
  764. package/features/security/authentication/Authenticator/index.js.map +0 -1
  765. package/features/security/authorization/AuthorizationContext/index.js.map +0 -1
  766. package/features/security/authorization/Authorizer/index.js.map +0 -1
  767. package/features/security/login/index.js.map +0 -1
  768. package/features/security/permissions/index.js.map +0 -1
  769. package/features/security/permissions/types.js.map +0 -1
  770. package/features/security/roles/CreateRole/index.js.map +0 -1
  771. package/features/security/roles/DeleteRole/index.js.map +0 -1
  772. package/features/security/roles/GetRole/index.js.map +0 -1
  773. package/features/security/roles/ListRoles/index.js.map +0 -1
  774. package/features/security/roles/UpdateRole/index.js.map +0 -1
  775. package/features/security/roles/shared/types.js.map +0 -1
  776. package/features/security/shared/index.js.map +0 -1
  777. package/features/security/teams/CreateTeam/index.js.map +0 -1
  778. package/features/security/teams/DeleteTeam/index.js.map +0 -1
  779. package/features/security/teams/GetTeam/index.js.map +0 -1
  780. package/features/security/teams/ListTeams/index.js.map +0 -1
  781. package/features/security/teams/UpdateTeam/index.js.map +0 -1
  782. package/features/security/teams/shared/types.js.map +0 -1
  783. package/features/system/InstallSystem/index.js.map +0 -1
  784. package/features/task/TaskController/index.js.map +0 -1
  785. package/features/task/TaskDefinition/index.js.map +0 -1
  786. package/features/task/TaskService/index.js.map +0 -1
  787. package/features/tenancy/CreateTenant/index.js.map +0 -1
  788. package/features/tenancy/DeleteTenant/index.js.map +0 -1
  789. package/features/tenancy/GetRootTenant/index.js.map +0 -1
  790. package/features/tenancy/GetTenantById/index.js.map +0 -1
  791. package/features/tenancy/InstallTenant/index.js.map +0 -1
  792. package/features/tenancy/ListTenants/index.js.map +0 -1
  793. package/features/tenancy/TenantContext/index.js.map +0 -1
  794. package/features/tenancy/UpdateTenant/index.js.map +0 -1
  795. package/features/users/CreateUser/index.js.map +0 -1
  796. package/features/users/DeleteUser/index.js.map +0 -1
  797. package/features/users/ExternalIdpUserSync/index.js.map +0 -1
  798. package/features/users/GetIdentityProfile/index.js.map +0 -1
  799. package/features/users/GetIdentityProfile/types.js.map +0 -1
  800. package/features/users/GetUser/index.js.map +0 -1
  801. package/features/users/ListUserTeams/index.js.map +0 -1
  802. package/features/users/ListUsers/index.js.map +0 -1
  803. package/features/users/UpdateUser/index.js.map +0 -1
  804. package/features/users/shared/types.js.map +0 -1
  805. package/features/wcp/WcpContext/index.js.map +0 -1
  806. package/features/wcp/WcpContext/types.js.map +0 -1
  807. package/idp/index.js.map +0 -1
  808. package/idp/types.js.map +0 -1
  809. package/index.js.map +0 -1
  810. package/models/base/ModelFactory.js.map +0 -1
  811. package/models/base/abstractions.js.map +0 -1
  812. package/models/cms/types.js.map +0 -1
  813. package/types/core.js.map +0 -1
  814. package/types/security.js.map +0 -1
  815. package/types/tenancy.js.map +0 -1
  816. package/types/users.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["createImplementation","Result","IdentityContext","EventPublisher","UpdateUserUseCase","UseCaseAbstraction","AdminUsersRepository","updateUserValidation","NotAuthorizedError","EmailTakenError","UserValidationError","UserBeforeUpdateEvent","UserAfterUpdateEvent","UpdateUserUseCaseImpl","constructor","identityContext","eventPublisher","repository","execute","id","input","permission","getPermission","fail","validation","safeParse","success","error","issues","message","email","existingUserResult","get","isOk","value","getUserResult","isFail","originalUser","updateData","structuredClone","data","publish","user","updatedUser","result","update","ok","abstraction","implementation","dependencies"],"sources":["UpdateUserUseCase.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"~/features/security/IdentityContext/index.js\";\nimport { EventPublisher } from \"~/features/eventPublisher/index.js\";\nimport { UpdateUserUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { AdminUsersRepository } from \"~/features/users/shared/abstractions.js\";\nimport { updateUserValidation } from \"./schema.js\";\nimport {\n NotAuthorizedError,\n EmailTakenError,\n UserValidationError\n} from \"~/features/users/shared/errors.js\";\nimport { UserBeforeUpdateEvent, UserAfterUpdateEvent } from \"./events.js\";\nimport type { AdminUser } from \"~/features/users/shared/types.js\";\nimport type { UpdateUserInput } from \"~/features/users/shared/types.js\";\n\nclass UpdateUserUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private eventPublisher: EventPublisher.Interface,\n private repository: AdminUsersRepository.Interface\n ) {}\n\n async execute(\n id: string,\n input: UpdateUserInput\n ): Promise<Result<AdminUser, UseCaseAbstraction.Error>> {\n // 1. Check permission\n const permission = await this.identityContext.getPermission(\"adminUsers.user\");\n if (!permission) {\n return Result.fail(new NotAuthorizedError());\n }\n\n // 2. Validate input\n const validation = updateUserValidation.safeParse(input);\n if (!validation.success) {\n return Result.fail(new UserValidationError(validation.error.issues[0].message));\n }\n\n // If the input contains email, check if it is free to use.\n if (input.email) {\n const existingUserResult = await this.repository.get({ email: input.email });\n if (existingUserResult.isOk()) {\n if (existingUserResult.value.id !== id) {\n return Result.fail(new EmailTakenError(input.email));\n }\n }\n }\n // 3. Get existing user\n const getUserResult = await this.repository.get({ id });\n if (getUserResult.isFail()) {\n return Result.fail(getUserResult.error);\n }\n\n const originalUser = getUserResult.value;\n\n // 4. Clone update data for event modification\n const updateData = structuredClone(validation.data);\n\n // 5. Publish before event\n await this.eventPublisher.publish(\n new UserBeforeUpdateEvent({ user: originalUser, updateData, input: validation.data })\n );\n\n // 6. Merge updates with existing user\n const updatedUser: AdminUser = {\n ...originalUser,\n ...updateData\n };\n\n // 7. Update user via repository\n const result = await this.repository.update(updatedUser);\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n // 8. Publish after event\n await this.eventPublisher.publish(\n new UserAfterUpdateEvent({\n originalUser,\n updatedUser: result.value,\n input: validation.data\n })\n );\n\n return Result.ok(result.value);\n }\n}\n\nexport const UpdateUserUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: UpdateUserUseCaseImpl,\n dependencies: [IdentityContext, EventPublisher, AdminUsersRepository]\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"features/users/UpdateUser/UpdateUserUseCase.js","sources":["../../../../src/features/users/UpdateUser/UpdateUserUseCase.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"~/features/security/IdentityContext/index.js\";\nimport { EventPublisher } from \"~/features/eventPublisher/index.js\";\nimport { UpdateUserUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { AdminUsersRepository } from \"~/features/users/shared/abstractions.js\";\nimport { updateUserValidation } from \"./schema.js\";\nimport {\n NotAuthorizedError,\n EmailTakenError,\n UserValidationError\n} from \"~/features/users/shared/errors.js\";\nimport { UserBeforeUpdateEvent, UserAfterUpdateEvent } from \"./events.js\";\nimport type { AdminUser } from \"~/features/users/shared/types.js\";\nimport type { UpdateUserInput } from \"~/features/users/shared/types.js\";\n\nclass UpdateUserUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private eventPublisher: EventPublisher.Interface,\n private repository: AdminUsersRepository.Interface\n ) {}\n\n async execute(\n id: string,\n input: UpdateUserInput\n ): Promise<Result<AdminUser, UseCaseAbstraction.Error>> {\n // 1. Check permission\n const permission = await this.identityContext.getPermission(\"adminUsers.user\");\n if (!permission) {\n return Result.fail(new NotAuthorizedError());\n }\n\n // 2. Validate input\n const validation = updateUserValidation.safeParse(input);\n if (!validation.success) {\n return Result.fail(new UserValidationError(validation.error.issues[0].message));\n }\n\n // If the input contains email, check if it is free to use.\n if (input.email) {\n const existingUserResult = await this.repository.get({ email: input.email });\n if (existingUserResult.isOk()) {\n if (existingUserResult.value.id !== id) {\n return Result.fail(new EmailTakenError(input.email));\n }\n }\n }\n // 3. Get existing user\n const getUserResult = await this.repository.get({ id });\n if (getUserResult.isFail()) {\n return Result.fail(getUserResult.error);\n }\n\n const originalUser = getUserResult.value;\n\n // 4. Clone update data for event modification\n const updateData = structuredClone(validation.data);\n\n // 5. Publish before event\n await this.eventPublisher.publish(\n new UserBeforeUpdateEvent({ user: originalUser, updateData, input: validation.data })\n );\n\n // 6. Merge updates with existing user\n const updatedUser: AdminUser = {\n ...originalUser,\n ...updateData\n };\n\n // 7. Update user via repository\n const result = await this.repository.update(updatedUser);\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n // 8. Publish after event\n await this.eventPublisher.publish(\n new UserAfterUpdateEvent({\n originalUser,\n updatedUser: result.value,\n input: validation.data\n })\n );\n\n return Result.ok(result.value);\n }\n}\n\nexport const UpdateUserUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: UpdateUserUseCaseImpl,\n dependencies: [IdentityContext, EventPublisher, AdminUsersRepository]\n});\n"],"names":["UpdateUserUseCaseImpl","identityContext","eventPublisher","repository","id","input","permission","Result","NotAuthorizedError","validation","updateUserValidation","UserValidationError","existingUserResult","EmailTakenError","getUserResult","originalUser","updateData","structuredClone","UserBeforeUpdateEvent","updatedUser","result","UserAfterUpdateEvent","UpdateUserUseCase","createImplementation","UseCaseAbstraction","IdentityContext","EventPublisher","AdminUsersRepository"],"mappings":";;;;;;;;AAgBA,MAAMA;IACF,YACYC,eAA0C,EAC1CC,cAAwC,EACxCC,UAA0C,CACpD;aAHUF,eAAe,GAAfA;aACAC,cAAc,GAAdA;aACAC,UAAU,GAAVA;IACT;IAEH,MAAM,QACFC,EAAU,EACVC,KAAsB,EAC8B;QAEpD,MAAMC,aAAa,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;QAC5D,IAAI,CAACA,YACD,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAI3B,MAAMC,aAAaC,qBAAqB,SAAS,CAACL;QAClD,IAAI,CAACI,WAAW,OAAO,EACnB,OAAOF,OAAO,IAAI,CAAC,IAAII,oBAAoBF,WAAW,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO;QAIjF,IAAIJ,MAAM,KAAK,EAAE;YACb,MAAMO,qBAAqB,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,OAAOP,MAAM,KAAK;YAAC;YAC1E,IAAIO,mBAAmB,IAAI,IACvB;gBAAA,IAAIA,mBAAmB,KAAK,CAAC,EAAE,KAAKR,IAChC,OAAOG,OAAO,IAAI,CAAC,IAAIM,gBAAgBR,MAAM,KAAK;YACtD;QAER;QAEA,MAAMS,gBAAgB,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAEV;QAAG;QACrD,IAAIU,cAAc,MAAM,IACpB,OAAOP,OAAO,IAAI,CAACO,cAAc,KAAK;QAG1C,MAAMC,eAAeD,cAAc,KAAK;QAGxC,MAAME,aAAaC,gBAAgBR,WAAW,IAAI;QAGlD,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIS,sBAAsB;YAAE,MAAMH;YAAcC;YAAY,OAAOP,WAAW,IAAI;QAAC;QAIvF,MAAMU,cAAyB;YAC3B,GAAGJ,YAAY;YACf,GAAGC,UAAU;QACjB;QAGA,MAAMI,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAACD;QAC5C,IAAIC,OAAO,MAAM,IACb,OAAOb,OAAO,IAAI,CAACa,OAAO,KAAK;QAInC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIC,qBAAqB;YACrBN;YACA,aAAaK,OAAO,KAAK;YACzB,OAAOX,WAAW,IAAI;QAC1B;QAGJ,OAAOF,OAAO,EAAE,CAACa,OAAO,KAAK;IACjC;AACJ;AAEO,MAAME,sCAAoBC,qBAAqB;IAClD,aAAaC;IACb,gBAAgBxB;IAChB,cAAc;QAACyB;QAAiBC;QAAgBC;KAAqB;AACzE"}
@@ -1,16 +1,5 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
-
3
- // Use case specific errors
4
-
5
- // Combined error type (use case errors + repository errors)
6
-
7
- // Use case interface
8
-
9
- /** Update an existing admin user. */
10
- export const UpdateUserUseCase = createAbstraction("UpdateUserUseCase");
11
-
12
- // Namespace exports
13
-
14
- // Event payload types
2
+ const UpdateUserUseCase = createAbstraction("UpdateUserUseCase");
3
+ export { UpdateUserUseCase };
15
4
 
16
5
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","UpdateUserUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport type { AdminUser } from \"~/features/users/shared/types.js\";\nimport type { UpdateUserInput } from \"~/features/users/shared/types.js\";\nimport { AdminUsersRepository } from \"~/features/users/shared/abstractions.js\";\nimport {\n NotAuthorizedError,\n EmailTakenError,\n UserValidationError\n} from \"~/features/users/shared/errors.js\";\n\n// Use case specific errors\nexport interface IUpdateUserErrors {\n notAuthorized: NotAuthorizedError;\n validation: UserValidationError;\n userExists: EmailTakenError;\n}\n\n// Combined error type (use case errors + repository errors)\ntype UpdateUserError = IUpdateUserErrors[keyof IUpdateUserErrors] | AdminUsersRepository.Error;\n\n// Use case interface\nexport interface IUpdateUser {\n execute(id: string, input: UpdateUserInput): Promise<Result<AdminUser, UpdateUserError>>;\n}\n\n/** Update an existing admin user. */\nexport const UpdateUserUseCase = createAbstraction<IUpdateUser>(\"UpdateUserUseCase\");\n\n// Namespace exports\nexport namespace UpdateUserUseCase {\n export type Interface = IUpdateUser;\n export type Error = UpdateUserError;\n}\n\n// Event payload types\nexport interface UserBeforeUpdatePayload {\n user: AdminUser;\n updateData: Partial<AdminUser>;\n input: UpdateUserInput;\n}\n\nexport interface UserAfterUpdatePayload {\n originalUser: AdminUser;\n updatedUser: AdminUser;\n input: UpdateUserInput;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAWvD;;AAOA;;AAGA;;AAKA;AACA,OAAO,MAAMC,iBAAiB,GAAGD,iBAAiB,CAAc,mBAAmB,CAAC;;AAEpF;;AAMA","ignoreList":[]}
1
+ {"version":3,"file":"features/users/UpdateUser/abstractions.js","sources":["../../../../src/features/users/UpdateUser/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport type { AdminUser } from \"~/features/users/shared/types.js\";\nimport type { UpdateUserInput } from \"~/features/users/shared/types.js\";\nimport { AdminUsersRepository } from \"~/features/users/shared/abstractions.js\";\nimport {\n NotAuthorizedError,\n EmailTakenError,\n UserValidationError\n} from \"~/features/users/shared/errors.js\";\n\n// Use case specific errors\nexport interface IUpdateUserErrors {\n notAuthorized: NotAuthorizedError;\n validation: UserValidationError;\n userExists: EmailTakenError;\n}\n\n// Combined error type (use case errors + repository errors)\ntype UpdateUserError = IUpdateUserErrors[keyof IUpdateUserErrors] | AdminUsersRepository.Error;\n\n// Use case interface\nexport interface IUpdateUser {\n execute(id: string, input: UpdateUserInput): Promise<Result<AdminUser, UpdateUserError>>;\n}\n\n/** Update an existing admin user. */\nexport const UpdateUserUseCase = createAbstraction<IUpdateUser>(\"UpdateUserUseCase\");\n\n// Namespace exports\nexport namespace UpdateUserUseCase {\n export type Interface = IUpdateUser;\n export type Error = UpdateUserError;\n}\n\n// Event payload types\nexport interface UserBeforeUpdatePayload {\n user: AdminUser;\n updateData: Partial<AdminUser>;\n input: UpdateUserInput;\n}\n\nexport interface UserAfterUpdatePayload {\n originalUser: AdminUser;\n updatedUser: AdminUser;\n input: UpdateUserInput;\n}\n"],"names":["UpdateUserUseCase","createAbstraction"],"mappings":";AA2BO,MAAMA,oBAAoBC,kBAA+B"}
@@ -1,24 +1,23 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
2
  import { DomainEvent } from "../../eventPublisher/index.js";
3
- // Before Update Event
4
- export class UserBeforeUpdateEvent extends DomainEvent {
5
- eventType = "user.beforeUpdate";
6
- getHandlerAbstraction() {
7
- return UserBeforeUpdateEventHandler;
8
- }
3
+ class UserBeforeUpdateEvent extends DomainEvent {
4
+ getHandlerAbstraction() {
5
+ return UserBeforeUpdateEventHandler;
6
+ }
7
+ constructor(...args){
8
+ super(...args), this.eventType = "user.beforeUpdate";
9
+ }
9
10
  }
10
-
11
- /** Hook into user lifecycle before a user is updated. */
12
- export const UserBeforeUpdateEventHandler = createAbstraction("UserBeforeUpdateEventHandler");
13
- // After Update Event
14
- export class UserAfterUpdateEvent extends DomainEvent {
15
- eventType = "user.afterUpdate";
16
- getHandlerAbstraction() {
17
- return UserAfterUpdateEventHandler;
18
- }
11
+ const UserBeforeUpdateEventHandler = createAbstraction("UserBeforeUpdateEventHandler");
12
+ class UserAfterUpdateEvent extends DomainEvent {
13
+ getHandlerAbstraction() {
14
+ return UserAfterUpdateEventHandler;
15
+ }
16
+ constructor(...args){
17
+ super(...args), this.eventType = "user.afterUpdate";
18
+ }
19
19
  }
20
-
21
- /** Hook into user lifecycle after a user is updated. */
22
- export const UserAfterUpdateEventHandler = createAbstraction("UserAfterUpdateEventHandler");
20
+ const UserAfterUpdateEventHandler = createAbstraction("UserAfterUpdateEventHandler");
21
+ export { UserAfterUpdateEvent, UserAfterUpdateEventHandler, UserBeforeUpdateEvent, UserBeforeUpdateEventHandler };
23
22
 
24
23
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","DomainEvent","UserBeforeUpdateEvent","eventType","getHandlerAbstraction","UserBeforeUpdateEventHandler","UserAfterUpdateEvent","UserAfterUpdateEventHandler"],"sources":["events.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { DomainEvent } from \"~/features/eventPublisher/index.js\";\nimport type { IEventHandler } from \"~/features/eventPublisher/index.js\";\nimport type { UserBeforeUpdatePayload, UserAfterUpdatePayload } from \"./abstractions.js\";\n\n// Before Update Event\nexport class UserBeforeUpdateEvent extends DomainEvent<UserBeforeUpdatePayload> {\n eventType = \"user.beforeUpdate\" as const;\n\n getHandlerAbstraction() {\n return UserBeforeUpdateEventHandler;\n }\n}\n\n/** Hook into user lifecycle before a user is updated. */\nexport const UserBeforeUpdateEventHandler = createAbstraction<IEventHandler<UserBeforeUpdateEvent>>(\n \"UserBeforeUpdateEventHandler\"\n);\n\nexport namespace UserBeforeUpdateEventHandler {\n export type Interface = IEventHandler<UserBeforeUpdateEvent>;\n export type Event = UserBeforeUpdateEvent;\n}\n\n// After Update Event\nexport class UserAfterUpdateEvent extends DomainEvent<UserAfterUpdatePayload> {\n eventType = \"user.afterUpdate\" as const;\n\n getHandlerAbstraction() {\n return UserAfterUpdateEventHandler;\n }\n}\n\n/** Hook into user lifecycle after a user is updated. */\nexport const UserAfterUpdateEventHandler = createAbstraction<IEventHandler<UserAfterUpdateEvent>>(\n \"UserAfterUpdateEventHandler\"\n);\n\nexport namespace UserAfterUpdateEventHandler {\n export type Interface = IEventHandler<UserAfterUpdateEvent>;\n export type Event = UserAfterUpdateEvent;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,WAAW;AAIpB;AACA,OAAO,MAAMC,qBAAqB,SAASD,WAAW,CAA0B;EAC5EE,SAAS,GAAG,mBAAmB;EAE/BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOC,4BAA4B;EACvC;AACJ;;AAEA;AACA,OAAO,MAAMA,4BAA4B,GAAGL,iBAAiB,CACzD,8BACJ,CAAC;AAOD;AACA,OAAO,MAAMM,oBAAoB,SAASL,WAAW,CAAyB;EAC1EE,SAAS,GAAG,kBAAkB;EAE9BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOG,2BAA2B;EACtC;AACJ;;AAEA;AACA,OAAO,MAAMA,2BAA2B,GAAGP,iBAAiB,CACxD,6BACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/users/UpdateUser/events.js","sources":["../../../../src/features/users/UpdateUser/events.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { DomainEvent } from \"~/features/eventPublisher/index.js\";\nimport type { IEventHandler } from \"~/features/eventPublisher/index.js\";\nimport type { UserBeforeUpdatePayload, UserAfterUpdatePayload } from \"./abstractions.js\";\n\n// Before Update Event\nexport class UserBeforeUpdateEvent extends DomainEvent<UserBeforeUpdatePayload> {\n eventType = \"user.beforeUpdate\" as const;\n\n getHandlerAbstraction() {\n return UserBeforeUpdateEventHandler;\n }\n}\n\n/** Hook into user lifecycle before a user is updated. */\nexport const UserBeforeUpdateEventHandler = createAbstraction<IEventHandler<UserBeforeUpdateEvent>>(\n \"UserBeforeUpdateEventHandler\"\n);\n\nexport namespace UserBeforeUpdateEventHandler {\n export type Interface = IEventHandler<UserBeforeUpdateEvent>;\n export type Event = UserBeforeUpdateEvent;\n}\n\n// After Update Event\nexport class UserAfterUpdateEvent extends DomainEvent<UserAfterUpdatePayload> {\n eventType = \"user.afterUpdate\" as const;\n\n getHandlerAbstraction() {\n return UserAfterUpdateEventHandler;\n }\n}\n\n/** Hook into user lifecycle after a user is updated. */\nexport const UserAfterUpdateEventHandler = createAbstraction<IEventHandler<UserAfterUpdateEvent>>(\n \"UserAfterUpdateEventHandler\"\n);\n\nexport namespace UserAfterUpdateEventHandler {\n export type Interface = IEventHandler<UserAfterUpdateEvent>;\n export type Event = UserAfterUpdateEvent;\n}\n"],"names":["UserBeforeUpdateEvent","DomainEvent","UserBeforeUpdateEventHandler","createAbstraction","UserAfterUpdateEvent","UserAfterUpdateEventHandler"],"mappings":";;AAMO,MAAMA,8BAA8BC;IAGvC,wBAAwB;QACpB,OAAOC;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB;AAGO,MAAMA,+BAA+BC,kBACxC;AASG,MAAMC,6BAA6BH;IAGtC,wBAAwB;QACpB,OAAOI;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB;AAGO,MAAMA,8BAA8BF,kBACvC"}
@@ -1,10 +1,11 @@
1
1
  import { createFeature } from "@webiny/feature/api";
2
2
  import { UpdateUserUseCase } from "./UpdateUserUseCase.js";
3
- export const UpdateUserFeature = createFeature({
4
- name: "UpdateUser",
5
- register(container) {
6
- container.register(UpdateUserUseCase);
7
- }
3
+ const UpdateUserFeature = createFeature({
4
+ name: "UpdateUser",
5
+ register (container) {
6
+ container.register(UpdateUserUseCase);
7
+ }
8
8
  });
9
+ export { UpdateUserFeature };
9
10
 
10
11
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","UpdateUserUseCase","UpdateUserFeature","name","register","container"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { UpdateUserUseCase } from \"./UpdateUserUseCase.js\";\n\nexport const UpdateUserFeature = createFeature({\n name: \"UpdateUser\",\n register(container) {\n container.register(UpdateUserUseCase);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,iBAAiB;AAE1B,OAAO,MAAMC,iBAAiB,GAAGF,aAAa,CAAC;EAC3CG,IAAI,EAAE,YAAY;EAClBC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACH,iBAAiB,CAAC;EACzC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/users/UpdateUser/feature.js","sources":["../../../../src/features/users/UpdateUser/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { UpdateUserUseCase } from \"./UpdateUserUseCase.js\";\n\nexport const UpdateUserFeature = createFeature({\n name: \"UpdateUser\",\n register(container) {\n container.register(UpdateUserUseCase);\n }\n});\n"],"names":["UpdateUserFeature","createFeature","container","UpdateUserUseCase"],"mappings":";;AAGO,MAAMA,oBAAoBC,cAAc;IAC3C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
@@ -1,4 +1,2 @@
1
1
  export * from "./abstractions.js";
2
2
  export * from "./events.js";
3
-
4
- //# sourceMappingURL=index.js.map
@@ -1,14 +1,15 @@
1
1
  import { z } from "zod";
2
- export const updateUserValidation = z.object({
3
- displayName: z.string().min(1).optional(),
4
- firstName: z.string().optional(),
5
- lastName: z.string().optional(),
6
- avatar: z.object({
7
- id: z.string().min(1),
8
- src: z.string().url()
9
- }).optional().nullable(),
10
- roles: z.array(z.string()).optional(),
11
- teams: z.array(z.string()).optional()
2
+ const updateUserValidation = z.object({
3
+ displayName: z.string().min(1).optional(),
4
+ firstName: z.string().optional(),
5
+ lastName: z.string().optional(),
6
+ avatar: z.object({
7
+ id: z.string().min(1),
8
+ src: z.string().url()
9
+ }).optional().nullable(),
10
+ roles: z.array(z.string()).optional(),
11
+ teams: z.array(z.string()).optional()
12
12
  });
13
+ export { updateUserValidation };
13
14
 
14
15
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["z","updateUserValidation","object","displayName","string","min","optional","firstName","lastName","avatar","id","src","url","nullable","roles","array","teams"],"sources":["schema.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const updateUserValidation = z.object({\n displayName: z.string().min(1).optional(),\n firstName: z.string().optional(),\n lastName: z.string().optional(),\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(),\n teams: z.array(z.string()).optional()\n});\n"],"mappings":"AAAA,SAASA,CAAC,QAAQ,KAAK;AAEvB,OAAO,MAAMC,oBAAoB,GAAGD,CAAC,CAACE,MAAM,CAAC;EACzCC,WAAW,EAAEH,CAAC,CAACI,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;EACzCC,SAAS,EAAEP,CAAC,CAACI,MAAM,CAAC,CAAC,CAACE,QAAQ,CAAC,CAAC;EAChCE,QAAQ,EAAER,CAAC,CAACI,MAAM,CAAC,CAAC,CAACE,QAAQ,CAAC,CAAC;EAC/BG,MAAM,EAAET,CAAC,CACJE,MAAM,CAAC;IACJQ,EAAE,EAAEV,CAAC,CAACI,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC,CAAC;IACrBM,GAAG,EAAEX,CAAC,CAACI,MAAM,CAAC,CAAC,CAACQ,GAAG,CAAC;EACxB,CAAC,CAAC,CACDN,QAAQ,CAAC,CAAC,CACVO,QAAQ,CAAC,CAAC;EACfC,KAAK,EAAEd,CAAC,CAACe,KAAK,CAACf,CAAC,CAACI,MAAM,CAAC,CAAC,CAAC,CAACE,QAAQ,CAAC,CAAC;EACrCU,KAAK,EAAEhB,CAAC,CAACe,KAAK,CAACf,CAAC,CAACI,MAAM,CAAC,CAAC,CAAC,CAACE,QAAQ,CAAC;AACxC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/users/UpdateUser/schema.js","sources":["../../../../src/features/users/UpdateUser/schema.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const updateUserValidation = z.object({\n displayName: z.string().min(1).optional(),\n firstName: z.string().optional(),\n lastName: z.string().optional(),\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(),\n teams: z.array(z.string()).optional()\n});\n"],"names":["updateUserValidation","z"],"mappings":";AAEO,MAAMA,uBAAuBC,EAAE,MAAM,CAAC;IACzC,aAAaA,EAAE,MAAM,GAAG,GAAG,CAAC,GAAG,QAAQ;IACvC,WAAWA,EAAE,MAAM,GAAG,QAAQ;IAC9B,UAAUA,EAAE,MAAM,GAAG,QAAQ;IAC7B,QAAQA,EAAAA,MACG,CAAC;QACJ,IAAIA,EAAE,MAAM,GAAG,GAAG,CAAC;QACnB,KAAKA,EAAE,MAAM,GAAG,GAAG;IACvB,GACC,QAAQ,GACR,QAAQ;IACb,OAAOA,EAAE,KAAK,CAACA,EAAE,MAAM,IAAI,QAAQ;IACnC,OAAOA,EAAE,KAAK,CAACA,EAAE,MAAM,IAAI,QAAQ;AACvC"}
@@ -1,129 +1,121 @@
1
- import { createImplementation } from "@webiny/feature/api";
2
- import { Result } from "@webiny/feature/api";
1
+ import { Result, createImplementation } from "@webiny/feature/api";
3
2
  import { TenantContext } from "../../tenancy/TenantContext/index.js";
4
- import { AdminUsersRepository as RepositoryAbstraction } from "./abstractions.js";
3
+ import { AdminUsersRepository } from "./abstractions.js";
5
4
  import { AdminUsersStorageOperations } from "./storageAbstractions.js";
6
5
  import { createUserLoaders } from "./loaders.js";
7
6
  import { UserNotFoundError, UserStorageError } from "./errors.js";
8
7
  class AdminUsersRepositoryImpl {
9
- constructor(tenantContext, storageOperations) {
10
- this.tenantContext = tenantContext;
11
- this.storageOperations = storageOperations;
12
- // Initialize DataLoaders using existing implementation
13
- this.loaders = createUserLoaders({
14
- getTenant: () => this.tenantContext.getTenant().id,
15
- storageOperations: this.storageOperations
16
- });
17
- }
18
- async get(params) {
19
- try {
20
- const tenant = this.tenantContext.getTenant().id;
21
-
22
- // Use DataLoader for ID-based queries (majority of queries)
23
- if (params.id) {
24
- const user = await this.loaders.getUser.load({
25
- tenant,
26
- id: params.id
8
+ constructor(tenantContext, storageOperations){
9
+ this.tenantContext = tenantContext;
10
+ this.storageOperations = storageOperations;
11
+ this.loaders = createUserLoaders({
12
+ getTenant: ()=>this.tenantContext.getTenant().id,
13
+ storageOperations: this.storageOperations
27
14
  });
28
- if (!user) {
29
- return Result.fail(new UserNotFoundError(params.id));
15
+ }
16
+ async get(params) {
17
+ try {
18
+ const tenant = this.tenantContext.getTenant().id;
19
+ if (params.id) {
20
+ const user = await this.loaders.getUser.load({
21
+ tenant,
22
+ id: params.id
23
+ });
24
+ if (!user) return Result.fail(new UserNotFoundError(params.id));
25
+ return Result.ok(user);
26
+ }
27
+ if (params.email) {
28
+ const user = await this.storageOperations.getUser({
29
+ where: {
30
+ tenant,
31
+ email: params.email
32
+ }
33
+ });
34
+ if (!user) return Result.fail(new UserNotFoundError(params.email));
35
+ return Result.ok(user);
36
+ }
37
+ return Result.fail(new UserNotFoundError("unknown"));
38
+ } catch (error) {
39
+ return Result.fail(new UserStorageError(error));
30
40
  }
31
- return Result.ok(user);
32
- }
33
-
34
- // Direct query for email-based lookups (rare)
35
- if (params.email) {
36
- const user = await this.storageOperations.getUser({
37
- where: {
38
- tenant,
39
- email: params.email
40
- }
41
- });
42
- if (!user) {
43
- return Result.fail(new UserNotFoundError(params.email));
41
+ }
42
+ async list(params) {
43
+ try {
44
+ const tenant = this.tenantContext.getTenant().id;
45
+ const users = await this.storageOperations.listUsers({
46
+ where: {
47
+ tenant,
48
+ ...params.where
49
+ },
50
+ sort: params.sort || [
51
+ "createdOn_ASC"
52
+ ]
53
+ });
54
+ return Result.ok(users);
55
+ } catch (error) {
56
+ return Result.fail(new UserStorageError(error));
44
57
  }
45
- return Result.ok(user);
46
- }
47
- return Result.fail(new UserNotFoundError("unknown"));
48
- } catch (error) {
49
- return Result.fail(new UserStorageError(error));
50
58
  }
51
- }
52
- async list(params) {
53
- try {
54
- const tenant = this.tenantContext.getTenant().id;
55
- const users = await this.storageOperations.listUsers({
56
- where: {
57
- tenant,
58
- ...params.where
59
- },
60
- sort: params.sort || ["createdOn_ASC"]
61
- });
62
- return Result.ok(users);
63
- } catch (error) {
64
- return Result.fail(new UserStorageError(error));
59
+ async create(user) {
60
+ try {
61
+ const result = await this.storageOperations.createUser({
62
+ user
63
+ });
64
+ const tenant = this.tenantContext.getTenant().id;
65
+ const key = {
66
+ tenant,
67
+ id: result.id
68
+ };
69
+ this.loaders.getUser.clear(key).prime(key, result);
70
+ return Result.ok(result);
71
+ } catch (error) {
72
+ return Result.fail(new UserStorageError(error));
73
+ }
65
74
  }
66
- }
67
- async create(user) {
68
- try {
69
- const result = await this.storageOperations.createUser({
70
- user
71
- });
72
-
73
- // Prime the cache with the new user
74
- const tenant = this.tenantContext.getTenant().id;
75
- const key = {
76
- tenant,
77
- id: result.id
78
- };
79
- this.loaders.getUser.clear(key).prime(key, result);
80
- return Result.ok(result);
81
- } catch (error) {
82
- return Result.fail(new UserStorageError(error));
75
+ async update(user) {
76
+ try {
77
+ await this.storageOperations.updateUser({
78
+ user
79
+ });
80
+ const tenant = this.tenantContext.getTenant().id;
81
+ await this.loaders.updateDataLoaderUserCache({
82
+ tenant,
83
+ id: user.id
84
+ }, user);
85
+ return Result.ok(user);
86
+ } catch (error) {
87
+ return Result.fail(new UserStorageError(error));
88
+ }
83
89
  }
84
- }
85
- async update(user) {
86
- try {
87
- await this.storageOperations.updateUser({
88
- user
89
- });
90
-
91
- // Update the cache
92
- const tenant = this.tenantContext.getTenant().id;
93
- await this.loaders.updateDataLoaderUserCache({
94
- tenant,
95
- id: user.id
96
- }, user);
97
- return Result.ok(user);
98
- } catch (error) {
99
- return Result.fail(new UserStorageError(error));
90
+ async delete(user) {
91
+ try {
92
+ await this.storageOperations.deleteUser({
93
+ user
94
+ });
95
+ const tenant = this.tenantContext.getTenant().id;
96
+ this.clearCache([
97
+ {
98
+ tenant,
99
+ id: user.id
100
+ }
101
+ ]);
102
+ return Result.ok();
103
+ } catch (error) {
104
+ return Result.fail(new UserStorageError(error));
105
+ }
100
106
  }
101
- }
102
- async delete(user) {
103
- try {
104
- await this.storageOperations.deleteUser({
105
- user
106
- });
107
-
108
- // Clear from cache
109
- const tenant = this.tenantContext.getTenant().id;
110
- this.clearCache([{
111
- tenant,
112
- id: user.id
113
- }]);
114
- return Result.ok();
115
- } catch (error) {
116
- return Result.fail(new UserStorageError(error));
107
+ clearCache(keys) {
108
+ this.loaders.clearLoadersCache(keys);
117
109
  }
118
- }
119
- clearCache(keys) {
120
- this.loaders.clearLoadersCache(keys);
121
- }
122
110
  }
123
- export const AdminUsersRepository = createImplementation({
124
- abstraction: RepositoryAbstraction,
125
- implementation: AdminUsersRepositoryImpl,
126
- dependencies: [TenantContext, AdminUsersStorageOperations]
111
+ const AdminUsersRepository_AdminUsersRepository = createImplementation({
112
+ abstraction: AdminUsersRepository,
113
+ implementation: AdminUsersRepositoryImpl,
114
+ dependencies: [
115
+ TenantContext,
116
+ AdminUsersStorageOperations
117
+ ]
127
118
  });
119
+ export { AdminUsersRepository_AdminUsersRepository as AdminUsersRepository };
128
120
 
129
121
  //# sourceMappingURL=AdminUsersRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createImplementation","Result","TenantContext","AdminUsersRepository","RepositoryAbstraction","AdminUsersStorageOperations","createUserLoaders","UserNotFoundError","UserStorageError","AdminUsersRepositoryImpl","constructor","tenantContext","storageOperations","loaders","getTenant","id","get","params","tenant","user","getUser","load","fail","ok","email","where","error","list","users","listUsers","sort","create","result","createUser","key","clear","prime","update","updateUser","updateDataLoaderUserCache","delete","deleteUser","clearCache","keys","clearLoadersCache","abstraction","implementation","dependencies"],"sources":["AdminUsersRepository.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport { TenantContext } from \"~/features/tenancy/TenantContext/index.js\";\nimport { AdminUsersRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { AdminUsersStorageOperations } from \"./storageAbstractions.js\";\nimport { createUserLoaders } from \"./loaders.js\";\nimport { UserNotFoundError, UserStorageError } from \"./errors.js\";\nimport type { AdminUser } from \"./types.js\";\nimport type { GetUserInput, ListUsersInput } from \"./types.js\";\n\nclass AdminUsersRepositoryImpl implements RepositoryAbstraction.Interface {\n private loaders: ReturnType<typeof createUserLoaders>;\n\n constructor(\n private tenantContext: TenantContext.Interface,\n private storageOperations: AdminUsersStorageOperations.Interface\n ) {\n // Initialize DataLoaders using existing implementation\n this.loaders = createUserLoaders({\n getTenant: () => this.tenantContext.getTenant().id,\n storageOperations: this.storageOperations\n });\n }\n\n async get(params: GetUserInput): Promise<Result<AdminUser, RepositoryAbstraction.Error>> {\n try {\n const tenant = this.tenantContext.getTenant().id;\n\n // Use DataLoader for ID-based queries (majority of queries)\n if (params.id) {\n const user = await this.loaders.getUser.load({\n tenant,\n id: params.id\n });\n\n if (!user) {\n return Result.fail(new UserNotFoundError(params.id));\n }\n\n return Result.ok(user);\n }\n\n // Direct query for email-based lookups (rare)\n if (params.email) {\n const user = await this.storageOperations.getUser({\n where: { tenant, email: params.email }\n });\n\n if (!user) {\n return Result.fail(new UserNotFoundError(params.email));\n }\n\n return Result.ok(user);\n }\n\n return Result.fail(new UserNotFoundError(\"unknown\"));\n } catch (error) {\n return Result.fail(new UserStorageError(error as Error));\n }\n }\n\n async list(params: ListUsersInput): Promise<Result<AdminUser[], RepositoryAbstraction.Error>> {\n try {\n const tenant = this.tenantContext.getTenant().id;\n const users = await this.storageOperations.listUsers({\n where: { tenant, ...params.where },\n sort: params.sort || [\"createdOn_ASC\"]\n });\n\n return Result.ok(users);\n } catch (error) {\n return Result.fail(new UserStorageError(error as Error));\n }\n }\n\n async create(user: AdminUser): Promise<Result<AdminUser, RepositoryAbstraction.Error>> {\n try {\n const result = await this.storageOperations.createUser({ user });\n\n // Prime the cache with the new user\n const tenant = this.tenantContext.getTenant().id;\n const key = { tenant, id: result.id };\n this.loaders.getUser.clear(key).prime(key, result);\n\n return Result.ok(result);\n } catch (error) {\n return Result.fail(new UserStorageError(error as Error));\n }\n }\n\n async update(user: AdminUser): Promise<Result<AdminUser, RepositoryAbstraction.Error>> {\n try {\n await this.storageOperations.updateUser({ user });\n\n // Update the cache\n const tenant = this.tenantContext.getTenant().id;\n await this.loaders.updateDataLoaderUserCache({ tenant, id: user.id }, user);\n\n return Result.ok(user);\n } catch (error) {\n return Result.fail(new UserStorageError(error as Error));\n }\n }\n\n async delete(user: AdminUser): Promise<Result<void, RepositoryAbstraction.Error>> {\n try {\n await this.storageOperations.deleteUser({ user });\n\n // Clear from cache\n const tenant = this.tenantContext.getTenant().id;\n this.clearCache([{ tenant, id: user.id }]);\n\n return Result.ok();\n } catch (error) {\n return Result.fail(new UserStorageError(error as Error));\n }\n }\n\n clearCache(keys: Array<{ tenant: string; id: string }>): void {\n this.loaders.clearLoadersCache(keys);\n }\n}\n\nexport const AdminUsersRepository = createImplementation({\n abstraction: RepositoryAbstraction,\n implementation: AdminUsersRepositoryImpl,\n dependencies: [TenantContext, AdminUsersStorageOperations]\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"features/users/shared/AdminUsersRepository.js","sources":["../../../../src/features/users/shared/AdminUsersRepository.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport { TenantContext } from \"~/features/tenancy/TenantContext/index.js\";\nimport { AdminUsersRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { AdminUsersStorageOperations } from \"./storageAbstractions.js\";\nimport { createUserLoaders } from \"./loaders.js\";\nimport { UserNotFoundError, UserStorageError } from \"./errors.js\";\nimport type { AdminUser } from \"./types.js\";\nimport type { GetUserInput, ListUsersInput } from \"./types.js\";\n\nclass AdminUsersRepositoryImpl implements RepositoryAbstraction.Interface {\n private loaders: ReturnType<typeof createUserLoaders>;\n\n constructor(\n private tenantContext: TenantContext.Interface,\n private storageOperations: AdminUsersStorageOperations.Interface\n ) {\n // Initialize DataLoaders using existing implementation\n this.loaders = createUserLoaders({\n getTenant: () => this.tenantContext.getTenant().id,\n storageOperations: this.storageOperations\n });\n }\n\n async get(params: GetUserInput): Promise<Result<AdminUser, RepositoryAbstraction.Error>> {\n try {\n const tenant = this.tenantContext.getTenant().id;\n\n // Use DataLoader for ID-based queries (majority of queries)\n if (params.id) {\n const user = await this.loaders.getUser.load({\n tenant,\n id: params.id\n });\n\n if (!user) {\n return Result.fail(new UserNotFoundError(params.id));\n }\n\n return Result.ok(user);\n }\n\n // Direct query for email-based lookups (rare)\n if (params.email) {\n const user = await this.storageOperations.getUser({\n where: { tenant, email: params.email }\n });\n\n if (!user) {\n return Result.fail(new UserNotFoundError(params.email));\n }\n\n return Result.ok(user);\n }\n\n return Result.fail(new UserNotFoundError(\"unknown\"));\n } catch (error) {\n return Result.fail(new UserStorageError(error as Error));\n }\n }\n\n async list(params: ListUsersInput): Promise<Result<AdminUser[], RepositoryAbstraction.Error>> {\n try {\n const tenant = this.tenantContext.getTenant().id;\n const users = await this.storageOperations.listUsers({\n where: { tenant, ...params.where },\n sort: params.sort || [\"createdOn_ASC\"]\n });\n\n return Result.ok(users);\n } catch (error) {\n return Result.fail(new UserStorageError(error as Error));\n }\n }\n\n async create(user: AdminUser): Promise<Result<AdminUser, RepositoryAbstraction.Error>> {\n try {\n const result = await this.storageOperations.createUser({ user });\n\n // Prime the cache with the new user\n const tenant = this.tenantContext.getTenant().id;\n const key = { tenant, id: result.id };\n this.loaders.getUser.clear(key).prime(key, result);\n\n return Result.ok(result);\n } catch (error) {\n return Result.fail(new UserStorageError(error as Error));\n }\n }\n\n async update(user: AdminUser): Promise<Result<AdminUser, RepositoryAbstraction.Error>> {\n try {\n await this.storageOperations.updateUser({ user });\n\n // Update the cache\n const tenant = this.tenantContext.getTenant().id;\n await this.loaders.updateDataLoaderUserCache({ tenant, id: user.id }, user);\n\n return Result.ok(user);\n } catch (error) {\n return Result.fail(new UserStorageError(error as Error));\n }\n }\n\n async delete(user: AdminUser): Promise<Result<void, RepositoryAbstraction.Error>> {\n try {\n await this.storageOperations.deleteUser({ user });\n\n // Clear from cache\n const tenant = this.tenantContext.getTenant().id;\n this.clearCache([{ tenant, id: user.id }]);\n\n return Result.ok();\n } catch (error) {\n return Result.fail(new UserStorageError(error as Error));\n }\n }\n\n clearCache(keys: Array<{ tenant: string; id: string }>): void {\n this.loaders.clearLoadersCache(keys);\n }\n}\n\nexport const AdminUsersRepository = createImplementation({\n abstraction: RepositoryAbstraction,\n implementation: AdminUsersRepositoryImpl,\n dependencies: [TenantContext, AdminUsersStorageOperations]\n});\n"],"names":["AdminUsersRepositoryImpl","tenantContext","storageOperations","createUserLoaders","params","tenant","user","Result","UserNotFoundError","error","UserStorageError","users","result","key","keys","AdminUsersRepository","createImplementation","RepositoryAbstraction","TenantContext","AdminUsersStorageOperations"],"mappings":"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"}
@@ -1,12 +1,5 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
-
3
- // Repository error interface
4
-
5
- // Repository interface
6
-
7
- /** Persist and retrieve admin users. */
8
- export const AdminUsersRepository = createAbstraction("AdminUsersRepository");
9
-
10
- // Namespace exports
2
+ const AdminUsersRepository = createAbstraction("AdminUsersRepository");
3
+ export { AdminUsersRepository };
11
4
 
12
5
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","AdminUsersRepository"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport type { AdminUser } from \"~/types/users.js\";\nimport type { GetUserInput, ListUsersInput } from \"./types.js\";\nimport { UserNotFoundError, UserStorageError } from \"./errors.js\";\n\n// Repository error interface\nexport interface IAdminUsersRepositoryErrors {\n base: UserNotFoundError | UserStorageError;\n}\n\nexport type RepositoryError = IAdminUsersRepositoryErrors[keyof IAdminUsersRepositoryErrors];\n\n// Repository interface\nexport interface IAdminUsersRepository {\n get(params: GetUserInput): Promise<Result<AdminUser, RepositoryError>>;\n list(params: ListUsersInput): Promise<Result<AdminUser[], RepositoryError>>;\n create(user: AdminUser): Promise<Result<AdminUser, RepositoryError>>;\n update(user: AdminUser): Promise<Result<AdminUser, RepositoryError>>;\n delete(user: AdminUser): Promise<Result<void, RepositoryError>>;\n clearCache(keys: Array<{ tenant: string; id: string }>): void;\n}\n\n/** Persist and retrieve admin users. */\nexport const AdminUsersRepository =\n createAbstraction<IAdminUsersRepository>(\"AdminUsersRepository\");\n\n// Namespace exports\nexport namespace AdminUsersRepository {\n export type Interface = IAdminUsersRepository;\n export type Error = RepositoryError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAMvD;;AAOA;;AAUA;AACA,OAAO,MAAMC,oBAAoB,GAC7BD,iBAAiB,CAAwB,sBAAsB,CAAC;;AAEpE","ignoreList":[]}
1
+ {"version":3,"file":"features/users/shared/abstractions.js","sources":["../../../../src/features/users/shared/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport type { AdminUser } from \"~/types/users.js\";\nimport type { GetUserInput, ListUsersInput } from \"./types.js\";\nimport { UserNotFoundError, UserStorageError } from \"./errors.js\";\n\n// Repository error interface\nexport interface IAdminUsersRepositoryErrors {\n base: UserNotFoundError | UserStorageError;\n}\n\nexport type RepositoryError = IAdminUsersRepositoryErrors[keyof IAdminUsersRepositoryErrors];\n\n// Repository interface\nexport interface IAdminUsersRepository {\n get(params: GetUserInput): Promise<Result<AdminUser, RepositoryError>>;\n list(params: ListUsersInput): Promise<Result<AdminUser[], RepositoryError>>;\n create(user: AdminUser): Promise<Result<AdminUser, RepositoryError>>;\n update(user: AdminUser): Promise<Result<AdminUser, RepositoryError>>;\n delete(user: AdminUser): Promise<Result<void, RepositoryError>>;\n clearCache(keys: Array<{ tenant: string; id: string }>): void;\n}\n\n/** Persist and retrieve admin users. */\nexport const AdminUsersRepository =\n createAbstraction<IAdminUsersRepository>(\"AdminUsersRepository\");\n\n// Namespace exports\nexport namespace AdminUsersRepository {\n export type Interface = IAdminUsersRepository;\n export type Error = RepositoryError;\n}\n"],"names":["AdminUsersRepository","createAbstraction"],"mappings":";AAwBO,MAAMA,uBACTC,kBAAyC"}
@@ -1,54 +1,48 @@
1
1
  import { BaseError } from "@webiny/feature/api";
2
- export class UserStorageError extends BaseError {
3
- code = "AdminUser/Persistence";
4
- constructor(error) {
5
- super({
6
- message: error.message
7
- });
8
- }
2
+ class UserStorageError extends BaseError {
3
+ constructor(error){
4
+ super({
5
+ message: error.message
6
+ }), this.code = "AdminUser/Persistence";
7
+ }
9
8
  }
10
- export class UserNotFoundError extends BaseError {
11
- code = "AdminUser/NotFound";
12
- constructor(id) {
13
- super({
14
- message: `User "${id}" was not found!`,
15
- data: {
16
- id
17
- }
18
- });
19
- }
9
+ class UserNotFoundError extends BaseError {
10
+ constructor(id){
11
+ super({
12
+ message: `User "${id}" was not found!`,
13
+ data: {
14
+ id
15
+ }
16
+ }), this.code = "AdminUser/NotFound";
17
+ }
20
18
  }
21
- export class EmailTakenError extends BaseError {
22
- code = "AdminUser/EmailTaken";
23
- constructor(email) {
24
- super({
25
- message: `User with email "${email}" already exists.`,
26
- data: {
27
- email
28
- }
29
- });
30
- }
19
+ class EmailTakenError extends BaseError {
20
+ constructor(email){
21
+ super({
22
+ message: `User with email "${email}" already exists.`,
23
+ data: {
24
+ email
25
+ }
26
+ }), this.code = "AdminUser/EmailTaken";
27
+ }
31
28
  }
32
- export class UserValidationError extends BaseError {
33
- code = "AdminUser/Validation";
34
- constructor(message) {
35
- super({
36
- message,
37
- data: {
38
- message
39
- }
40
- });
41
- }
29
+ class UserValidationError extends BaseError {
30
+ constructor(message){
31
+ super({
32
+ message,
33
+ data: {
34
+ message
35
+ }
36
+ }), this.code = "AdminUser/Validation";
37
+ }
42
38
  }
43
-
44
- // Authorization error
45
- export class NotAuthorizedError extends BaseError {
46
- code = "AdminUser/NotAuthorized";
47
- constructor(message) {
48
- super({
49
- message: message || "Not authorized!"
50
- });
51
- }
39
+ class NotAuthorizedError extends BaseError {
40
+ constructor(message){
41
+ super({
42
+ message: message || "Not authorized!"
43
+ }), this.code = "AdminUser/NotAuthorized";
44
+ }
52
45
  }
46
+ export { EmailTakenError, NotAuthorizedError, UserNotFoundError, UserStorageError, UserValidationError };
53
47
 
54
48
  //# sourceMappingURL=errors.js.map