@webiny/api-core 0.0.0-unstable.81ae05e56b → 0.0.0-unstable.a4f3e4ea8b

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 (956) hide show
  1. package/ApiCoreFeature.d.ts +5 -1
  2. package/ApiCoreFeature.js +25 -15
  3. package/ApiCoreFeature.js.map +1 -1
  4. package/createApiCore.d.ts +1 -1
  5. package/createApiCore.js +17 -8
  6. package/createApiCore.js.map +1 -1
  7. package/domain/identity/SystemIdentityValue.js +9 -8
  8. package/domain/identity/SystemIdentityValue.js.map +1 -1
  9. package/domain/security/ApiToken.js +5 -11
  10. package/domain/security/ApiToken.js.map +1 -1
  11. package/domain/tenancy/RootTenantValue.js +9 -8
  12. package/domain/tenancy/RootTenantValue.js.map +1 -1
  13. package/domain/tenancy/errors.js +0 -3
  14. package/exports/api/build-params.d.ts +1 -0
  15. package/exports/api/build-params.js +0 -2
  16. package/exports/api/event-publisher.d.ts +1 -0
  17. package/exports/api/event-publisher.js +0 -2
  18. package/exports/api/graphql.js +0 -2
  19. package/exports/api/key-value-store.d.ts +1 -0
  20. package/exports/api/key-value-store.js +0 -2
  21. package/exports/api/logger.d.ts +1 -0
  22. package/exports/api/logger.js +0 -2
  23. package/exports/api/security/api-key.d.ts +1 -0
  24. package/exports/api/security/api-key.js +1 -2
  25. package/exports/api/security/authentication.js +0 -2
  26. package/exports/api/security/role.js +1 -3
  27. package/exports/api/security/user.js +0 -2
  28. package/exports/api/security.d.ts +4 -0
  29. package/exports/api/security.js +3 -4
  30. package/exports/api/system.js +0 -2
  31. package/exports/api/tasks.js +0 -2
  32. package/exports/api/tenancy.js +4 -6
  33. package/exports/api/webhooks.d.ts +1 -0
  34. package/exports/api/webhooks.js +1 -0
  35. package/exports/api.d.ts +7 -0
  36. package/exports/api.js +6 -0
  37. package/features/ai/Ai.d.ts +30 -0
  38. package/features/ai/Ai.js +149 -0
  39. package/features/ai/Ai.js.map +1 -0
  40. package/features/ai/AiModelRegistry.d.ts +12 -0
  41. package/features/ai/AiModelRegistry.js +30 -0
  42. package/features/ai/AiModelRegistry.js.map +1 -0
  43. package/features/ai/AiSdkTools.d.ts +11 -0
  44. package/features/ai/AiSdkTools.js +29 -0
  45. package/features/ai/AiSdkTools.js.map +1 -0
  46. package/features/ai/AnthropicSdkFactory.d.ts +10 -0
  47. package/features/ai/AnthropicSdkFactory.js +72 -0
  48. package/features/ai/AnthropicSdkFactory.js.map +1 -0
  49. package/features/ai/DEVELOPERS.md +126 -0
  50. package/features/ai/GoogleSdkFactory.d.ts +10 -0
  51. package/features/ai/GoogleSdkFactory.js +65 -0
  52. package/features/ai/GoogleSdkFactory.js.map +1 -0
  53. package/features/ai/OpenAiSdkFactory.d.ts +10 -0
  54. package/features/ai/OpenAiSdkFactory.js +132 -0
  55. package/features/ai/OpenAiSdkFactory.js.map +1 -0
  56. package/features/ai/TextExtractor/DefaultTextExtractor.d.ts +9 -0
  57. package/features/ai/TextExtractor/DefaultTextExtractor.js +28 -0
  58. package/features/ai/TextExtractor/DefaultTextExtractor.js.map +1 -0
  59. package/features/ai/TextExtractor/abstractions.d.ts +12 -0
  60. package/features/ai/TextExtractor/abstractions.js +5 -0
  61. package/features/ai/TextExtractor/abstractions.js.map +1 -0
  62. package/features/ai/TextExtractor/index.d.ts +3 -0
  63. package/features/ai/TextExtractor/index.js +2 -0
  64. package/features/ai/TextExtractor/parsers/docxParser.d.ts +1 -0
  65. package/features/ai/TextExtractor/parsers/docxParser.js +111 -0
  66. package/features/ai/TextExtractor/parsers/docxParser.js.map +1 -0
  67. package/features/ai/abstractions.d.ts +104 -0
  68. package/features/ai/abstractions.js +11 -0
  69. package/features/ai/abstractions.js.map +1 -0
  70. package/features/ai/events.d.ts +59 -0
  71. package/features/ai/events.js +41 -0
  72. package/features/ai/events.js.map +1 -0
  73. package/features/ai/feature.d.ts +4 -0
  74. package/features/ai/feature.js +27 -0
  75. package/features/ai/feature.js.map +1 -0
  76. package/features/ai/index.d.ts +9 -0
  77. package/features/ai/index.js +5 -0
  78. package/features/ai/toolPipeline/AiOutputToolRegistry.d.ts +11 -0
  79. package/features/ai/toolPipeline/AiOutputToolRegistry.js +31 -0
  80. package/features/ai/toolPipeline/AiOutputToolRegistry.js.map +1 -0
  81. package/features/ai/toolPipeline/AiToolPipelineRunner.d.ts +10 -0
  82. package/features/ai/toolPipeline/AiToolPipelineRunner.js +36 -0
  83. package/features/ai/toolPipeline/AiToolPipelineRunner.js.map +1 -0
  84. package/features/ai/toolPipeline/abstractions.d.ts +23 -0
  85. package/features/ai/toolPipeline/abstractions.js +7 -0
  86. package/features/ai/toolPipeline/abstractions.js.map +1 -0
  87. package/features/ai/toolPipeline/index.d.ts +2 -0
  88. package/features/ai/toolPipeline/index.js +1 -0
  89. package/features/buildParams/BuildParams.js +20 -14
  90. package/features/buildParams/BuildParams.js.map +1 -1
  91. package/features/buildParams/abstractions.js +3 -4
  92. package/features/buildParams/abstractions.js.map +1 -1
  93. package/features/buildParams/feature.d.ts +5 -1
  94. package/features/buildParams/feature.js +6 -5
  95. package/features/buildParams/feature.js.map +1 -1
  96. package/features/buildParams/index.js +0 -2
  97. package/features/encryption/EncryptionService.d.ts +10 -0
  98. package/features/encryption/EncryptionService.js +62 -0
  99. package/features/encryption/EncryptionService.js.map +1 -0
  100. package/features/encryption/abstractions.d.ts +9 -0
  101. package/features/encryption/abstractions.js +5 -0
  102. package/features/encryption/abstractions.js.map +1 -0
  103. package/features/encryption/feature.d.ts +4 -0
  104. package/features/encryption/feature.js +11 -0
  105. package/features/encryption/feature.js.map +1 -0
  106. package/features/encryption/index.d.ts +1 -0
  107. package/features/encryption/index.js +1 -0
  108. package/features/eventPublisher/EventPublisher.js +9 -15
  109. package/features/eventPublisher/EventPublisher.js.map +1 -1
  110. package/features/eventPublisher/__tests__/EventPublisher.test.js +385 -419
  111. package/features/eventPublisher/__tests__/EventPublisher.test.js.map +1 -1
  112. package/features/eventPublisher/abstractions.js +7 -12
  113. package/features/eventPublisher/abstractions.js.map +1 -1
  114. package/features/eventPublisher/feature.d.ts +5 -1
  115. package/features/eventPublisher/feature.js +8 -7
  116. package/features/eventPublisher/feature.js.map +1 -1
  117. package/features/eventPublisher/index.js +0 -2
  118. package/features/featureFlags/FeatureFlags.js +15 -12
  119. package/features/featureFlags/FeatureFlags.js.map +1 -1
  120. package/features/featureFlags/abstractions.js +2 -1
  121. package/features/featureFlags/abstractions.js.map +1 -1
  122. package/features/featureFlags/feature.d.ts +5 -1
  123. package/features/featureFlags/feature.js +6 -5
  124. package/features/featureFlags/feature.js.map +1 -1
  125. package/features/keyValueStore/GlobalKeyValueStore.js +28 -23
  126. package/features/keyValueStore/GlobalKeyValueStore.js.map +1 -1
  127. package/features/keyValueStore/KeyValueStore.js +30 -27
  128. package/features/keyValueStore/KeyValueStore.js.map +1 -1
  129. package/features/keyValueStore/KeyValueStoreRepository.d.ts +2 -2
  130. package/features/keyValueStore/KeyValueStoreRepository.js +34 -41
  131. package/features/keyValueStore/KeyValueStoreRepository.js.map +1 -1
  132. package/features/keyValueStore/abstractions.d.ts +6 -2
  133. package/features/keyValueStore/abstractions.js +5 -20
  134. package/features/keyValueStore/abstractions.js.map +1 -1
  135. package/features/keyValueStore/errors.js +16 -17
  136. package/features/keyValueStore/errors.js.map +1 -1
  137. package/features/keyValueStore/feature.d.ts +4 -1
  138. package/features/keyValueStore/feature.js +9 -9
  139. package/features/keyValueStore/feature.js.map +1 -1
  140. package/features/keyValueStore/index.js +1 -3
  141. package/features/logger/LoggerService.js +41 -45
  142. package/features/logger/LoggerService.js.map +1 -1
  143. package/features/logger/abstractions.js +2 -2
  144. package/features/logger/abstractions.js.map +1 -1
  145. package/features/logger/feature.d.ts +4 -1
  146. package/features/logger/feature.js +6 -5
  147. package/features/logger/feature.js.map +1 -1
  148. package/features/logger/index.js +0 -2
  149. package/features/masker/Masker.d.ts +8 -0
  150. package/features/masker/Masker.js +18 -0
  151. package/features/masker/Masker.js.map +1 -0
  152. package/features/masker/abstractions.d.ts +11 -0
  153. package/features/masker/abstractions.js +5 -0
  154. package/features/masker/abstractions.js.map +1 -0
  155. package/features/masker/feature.d.ts +4 -0
  156. package/features/masker/feature.js +11 -0
  157. package/features/masker/feature.js.map +1 -0
  158. package/features/masker/index.d.ts +1 -0
  159. package/features/masker/index.js +1 -0
  160. package/features/security/IdentityContext/AnonymousIdentity.js +12 -16
  161. package/features/security/IdentityContext/AnonymousIdentity.js.map +1 -1
  162. package/features/security/IdentityContext/AuthenticatedIdentity.js +5 -8
  163. package/features/security/IdentityContext/AuthenticatedIdentity.js.map +1 -1
  164. package/features/security/IdentityContext/Identity.js +63 -71
  165. package/features/security/IdentityContext/Identity.js.map +1 -1
  166. package/features/security/IdentityContext/IdentityContext.js +69 -106
  167. package/features/security/IdentityContext/IdentityContext.js.map +1 -1
  168. package/features/security/IdentityContext/abstractions.js +2 -2
  169. package/features/security/IdentityContext/abstractions.js.map +1 -1
  170. package/features/security/IdentityContext/feature.d.ts +4 -1
  171. package/features/security/IdentityContext/feature.js +6 -5
  172. package/features/security/IdentityContext/feature.js.map +1 -1
  173. package/features/security/IdentityContext/index.js +0 -3
  174. package/features/security/SecurityFeature.d.ts +5 -1
  175. package/features/security/SecurityFeature.js +13 -21
  176. package/features/security/SecurityFeature.js.map +1 -1
  177. package/features/security/apiKeys/CreateApiKey/CreateApiKeyUseCase.js +48 -49
  178. package/features/security/apiKeys/CreateApiKey/CreateApiKeyUseCase.js.map +1 -1
  179. package/features/security/apiKeys/CreateApiKey/abstractions.js +2 -2
  180. package/features/security/apiKeys/CreateApiKey/abstractions.js.map +1 -1
  181. package/features/security/apiKeys/CreateApiKey/events.js +17 -16
  182. package/features/security/apiKeys/CreateApiKey/events.js.map +1 -1
  183. package/features/security/apiKeys/CreateApiKey/feature.d.ts +4 -1
  184. package/features/security/apiKeys/CreateApiKey/feature.js +6 -5
  185. package/features/security/apiKeys/CreateApiKey/feature.js.map +1 -1
  186. package/features/security/apiKeys/CreateApiKey/index.js +0 -2
  187. package/features/security/apiKeys/DeleteApiKey/DeleteApiKeyUseCase.js +29 -30
  188. package/features/security/apiKeys/DeleteApiKey/DeleteApiKeyUseCase.js.map +1 -1
  189. package/features/security/apiKeys/DeleteApiKey/abstractions.js +2 -2
  190. package/features/security/apiKeys/DeleteApiKey/abstractions.js.map +1 -1
  191. package/features/security/apiKeys/DeleteApiKey/events.js +17 -16
  192. package/features/security/apiKeys/DeleteApiKey/events.js.map +1 -1
  193. package/features/security/apiKeys/DeleteApiKey/feature.d.ts +4 -1
  194. package/features/security/apiKeys/DeleteApiKey/feature.js +6 -5
  195. package/features/security/apiKeys/DeleteApiKey/feature.js.map +1 -1
  196. package/features/security/apiKeys/DeleteApiKey/index.js +0 -2
  197. package/features/security/apiKeys/GetApiKey/GetApiKeyUseCase.d.ts +1 -1
  198. package/features/security/apiKeys/GetApiKey/GetApiKeyUseCase.js +16 -14
  199. package/features/security/apiKeys/GetApiKey/GetApiKeyUseCase.js.map +1 -1
  200. package/features/security/apiKeys/GetApiKey/abstractions.js +2 -2
  201. package/features/security/apiKeys/GetApiKey/abstractions.js.map +1 -1
  202. package/features/security/apiKeys/GetApiKey/feature.d.ts +4 -1
  203. package/features/security/apiKeys/GetApiKey/feature.js +6 -5
  204. package/features/security/apiKeys/GetApiKey/feature.js.map +1 -1
  205. package/features/security/apiKeys/GetApiKey/index.js +0 -2
  206. package/features/security/apiKeys/GetApiKeyBySlug/GetApiKeyBySlugUseCase.d.ts +1 -3
  207. package/features/security/apiKeys/GetApiKeyBySlug/GetApiKeyBySlugUseCase.js +13 -10
  208. package/features/security/apiKeys/GetApiKeyBySlug/GetApiKeyBySlugUseCase.js.map +1 -1
  209. package/features/security/apiKeys/GetApiKeyBySlug/abstractions.d.ts +1 -1
  210. package/features/security/apiKeys/GetApiKeyBySlug/abstractions.js +2 -2
  211. package/features/security/apiKeys/GetApiKeyBySlug/abstractions.js.map +1 -1
  212. package/features/security/apiKeys/GetApiKeyBySlug/feature.d.ts +4 -1
  213. package/features/security/apiKeys/GetApiKeyBySlug/feature.js +6 -5
  214. package/features/security/apiKeys/GetApiKeyBySlug/feature.js.map +1 -1
  215. package/features/security/apiKeys/GetApiKeyBySlug/index.js +0 -2
  216. package/features/security/apiKeys/GetApiKeyByToken/GetApiKeyByTokenUseCase.d.ts +1 -3
  217. package/features/security/apiKeys/GetApiKeyByToken/GetApiKeyByTokenUseCase.js +13 -10
  218. package/features/security/apiKeys/GetApiKeyByToken/GetApiKeyByTokenUseCase.js.map +1 -1
  219. package/features/security/apiKeys/GetApiKeyByToken/abstractions.d.ts +1 -1
  220. package/features/security/apiKeys/GetApiKeyByToken/abstractions.js +2 -2
  221. package/features/security/apiKeys/GetApiKeyByToken/abstractions.js.map +1 -1
  222. package/features/security/apiKeys/GetApiKeyByToken/feature.d.ts +4 -1
  223. package/features/security/apiKeys/GetApiKeyByToken/feature.js +6 -5
  224. package/features/security/apiKeys/GetApiKeyByToken/feature.js.map +1 -1
  225. package/features/security/apiKeys/GetApiKeyByToken/index.js +0 -2
  226. package/features/security/apiKeys/ListApiKeys/ListApiKeysUseCase.js +17 -17
  227. package/features/security/apiKeys/ListApiKeys/ListApiKeysUseCase.js.map +1 -1
  228. package/features/security/apiKeys/ListApiKeys/abstractions.js +2 -2
  229. package/features/security/apiKeys/ListApiKeys/abstractions.js.map +1 -1
  230. package/features/security/apiKeys/ListApiKeys/feature.d.ts +4 -1
  231. package/features/security/apiKeys/ListApiKeys/feature.js +6 -5
  232. package/features/security/apiKeys/ListApiKeys/feature.js.map +1 -1
  233. package/features/security/apiKeys/ListApiKeys/index.js +0 -2
  234. package/features/security/apiKeys/UpdateApiKey/UpdateApiKeyUseCase.js +39 -42
  235. package/features/security/apiKeys/UpdateApiKey/UpdateApiKeyUseCase.js.map +1 -1
  236. package/features/security/apiKeys/UpdateApiKey/abstractions.js +2 -2
  237. package/features/security/apiKeys/UpdateApiKey/abstractions.js.map +1 -1
  238. package/features/security/apiKeys/UpdateApiKey/events.js +17 -16
  239. package/features/security/apiKeys/UpdateApiKey/events.js.map +1 -1
  240. package/features/security/apiKeys/UpdateApiKey/feature.d.ts +4 -1
  241. package/features/security/apiKeys/UpdateApiKey/feature.js +6 -5
  242. package/features/security/apiKeys/UpdateApiKey/feature.js.map +1 -1
  243. package/features/security/apiKeys/UpdateApiKey/index.js +0 -2
  244. package/features/security/apiKeys/feature.d.ts +4 -1
  245. package/features/security/apiKeys/feature.js +20 -17
  246. package/features/security/apiKeys/feature.js.map +1 -1
  247. package/features/security/apiKeys/shared/ApiKeyProvider.d.ts +3 -5
  248. package/features/security/apiKeys/shared/ApiKeyProvider.js +31 -46
  249. package/features/security/apiKeys/shared/ApiKeyProvider.js.map +1 -1
  250. package/features/security/apiKeys/shared/ApiKeysRepository.d.ts +1 -0
  251. package/features/security/apiKeys/shared/ApiKeysRepository.js +123 -135
  252. package/features/security/apiKeys/shared/ApiKeysRepository.js.map +1 -1
  253. package/features/security/apiKeys/shared/abstractions.js +4 -6
  254. package/features/security/apiKeys/shared/abstractions.js.map +1 -1
  255. package/features/security/apiKeys/shared/errors.js +29 -32
  256. package/features/security/apiKeys/shared/errors.js.map +1 -1
  257. package/features/security/apiKeys/shared/generateToken.d.ts +1 -1
  258. package/features/security/apiKeys/shared/generateToken.js +6 -16
  259. package/features/security/apiKeys/shared/generateToken.js.map +1 -1
  260. package/features/security/apiKeys/shared/schemas.js +27 -23
  261. package/features/security/apiKeys/shared/schemas.js.map +1 -1
  262. package/features/security/apiKeys/shared/types.d.ts +1 -1
  263. package/features/security/apiKeys/shared/types.js +0 -3
  264. package/features/security/authentication/AuthenticationContext/AuthenticationContext.js +44 -38
  265. package/features/security/authentication/AuthenticationContext/AuthenticationContext.js.map +1 -1
  266. package/features/security/authentication/AuthenticationContext/SetIdTokenCookie.js +33 -43
  267. package/features/security/authentication/AuthenticationContext/SetIdTokenCookie.js.map +1 -1
  268. package/features/security/authentication/AuthenticationContext/abstractions.js +2 -2
  269. package/features/security/authentication/AuthenticationContext/abstractions.js.map +1 -1
  270. package/features/security/authentication/AuthenticationContext/errors.js +51 -116
  271. package/features/security/authentication/AuthenticationContext/errors.js.map +1 -1
  272. package/features/security/authentication/AuthenticationContext/events.js +17 -16
  273. package/features/security/authentication/AuthenticationContext/events.js.map +1 -1
  274. package/features/security/authentication/AuthenticationContext/feature.d.ts +4 -1
  275. package/features/security/authentication/AuthenticationContext/feature.js +6 -5
  276. package/features/security/authentication/AuthenticationContext/feature.js.map +1 -1
  277. package/features/security/authentication/AuthenticationContext/index.js +2 -4
  278. package/features/security/authentication/Authenticator/abstractions.js +2 -2
  279. package/features/security/authentication/Authenticator/abstractions.js.map +1 -1
  280. package/features/security/authentication/Authenticator/index.js +0 -2
  281. package/features/security/authorization/AuthorizationContext/AuthorizationContext.d.ts +1 -0
  282. package/features/security/authorization/AuthorizationContext/AuthorizationContext.js +46 -47
  283. package/features/security/authorization/AuthorizationContext/AuthorizationContext.js.map +1 -1
  284. package/features/security/authorization/AuthorizationContext/abstractions.js +3 -4
  285. package/features/security/authorization/AuthorizationContext/abstractions.js.map +1 -1
  286. package/features/security/authorization/AuthorizationContext/feature.d.ts +4 -1
  287. package/features/security/authorization/AuthorizationContext/feature.js +10 -9
  288. package/features/security/authorization/AuthorizationContext/feature.js.map +1 -1
  289. package/features/security/authorization/AuthorizationContext/index.js +1 -4
  290. package/features/security/authorization/Authorizer/abstractions.js +2 -2
  291. package/features/security/authorization/Authorizer/abstractions.js.map +1 -1
  292. package/features/security/authorization/Authorizer/index.js +0 -2
  293. package/features/security/authorization/GroupsTeamsAuthorizer/GetPermissionsFromIdentity.d.ts +1 -1
  294. package/features/security/authorization/GroupsTeamsAuthorizer/GetPermissionsFromIdentity.js +60 -64
  295. package/features/security/authorization/GroupsTeamsAuthorizer/GetPermissionsFromIdentity.js.map +1 -1
  296. package/features/security/authorization/GroupsTeamsAuthorizer/RolesTeamsAuthorizer.js +26 -40
  297. package/features/security/authorization/GroupsTeamsAuthorizer/RolesTeamsAuthorizer.js.map +1 -1
  298. package/features/security/authorization/GroupsTeamsAuthorizer/abstractions.js +2 -1
  299. package/features/security/authorization/GroupsTeamsAuthorizer/abstractions.js.map +1 -1
  300. package/features/security/authorization/GroupsTeamsAuthorizer/feature.d.ts +4 -1
  301. package/features/security/authorization/GroupsTeamsAuthorizer/feature.js +7 -6
  302. package/features/security/authorization/GroupsTeamsAuthorizer/feature.js.map +1 -1
  303. package/features/security/login/abstractions.js +9 -8
  304. package/features/security/login/abstractions.js.map +1 -1
  305. package/features/security/login/index.js +0 -2
  306. package/features/security/permissions/createPermissionSchema.d.ts +2 -0
  307. package/features/security/permissions/createPermissionSchema.js +9 -0
  308. package/features/security/permissions/createPermissionSchema.js.map +1 -0
  309. package/features/security/permissions/createPermissions.d.ts +5 -5
  310. package/features/security/permissions/createPermissions.js +130 -208
  311. package/features/security/permissions/createPermissions.js.map +1 -1
  312. package/features/security/permissions/index.d.ts +2 -1
  313. package/features/security/permissions/index.js +2 -3
  314. package/features/security/permissions/types.js +0 -3
  315. package/features/security/roles/CreateRole/CreateRoleUseCase.js +53 -59
  316. package/features/security/roles/CreateRole/CreateRoleUseCase.js.map +1 -1
  317. package/features/security/roles/CreateRole/abstractions.js +2 -2
  318. package/features/security/roles/CreateRole/abstractions.js.map +1 -1
  319. package/features/security/roles/CreateRole/events.js +17 -16
  320. package/features/security/roles/CreateRole/events.js.map +1 -1
  321. package/features/security/roles/CreateRole/feature.d.ts +4 -1
  322. package/features/security/roles/CreateRole/feature.js +6 -5
  323. package/features/security/roles/CreateRole/feature.js.map +1 -1
  324. package/features/security/roles/CreateRole/index.js +0 -2
  325. package/features/security/roles/CreateRole/schema.js +8 -7
  326. package/features/security/roles/CreateRole/schema.js.map +1 -1
  327. package/features/security/roles/DeleteRole/DeleteRoleUseCase.js +35 -41
  328. package/features/security/roles/DeleteRole/DeleteRoleUseCase.js.map +1 -1
  329. package/features/security/roles/DeleteRole/abstractions.js +2 -2
  330. package/features/security/roles/DeleteRole/abstractions.js.map +1 -1
  331. package/features/security/roles/DeleteRole/events.js +17 -16
  332. package/features/security/roles/DeleteRole/events.js.map +1 -1
  333. package/features/security/roles/DeleteRole/feature.d.ts +4 -1
  334. package/features/security/roles/DeleteRole/feature.js +6 -5
  335. package/features/security/roles/DeleteRole/feature.js.map +1 -1
  336. package/features/security/roles/DeleteRole/index.js +0 -2
  337. package/features/security/roles/GetRole/GetRoleUseCase.js +19 -18
  338. package/features/security/roles/GetRole/GetRoleUseCase.js.map +1 -1
  339. package/features/security/roles/GetRole/abstractions.js +2 -2
  340. package/features/security/roles/GetRole/abstractions.js.map +1 -1
  341. package/features/security/roles/GetRole/feature.d.ts +4 -1
  342. package/features/security/roles/GetRole/feature.js +6 -5
  343. package/features/security/roles/GetRole/feature.js.map +1 -1
  344. package/features/security/roles/GetRole/index.js +0 -2
  345. package/features/security/roles/Installer/RolesInstaller.js +39 -35
  346. package/features/security/roles/Installer/RolesInstaller.js.map +1 -1
  347. package/features/security/roles/ListRoles/ListRolesUseCase.js +18 -17
  348. package/features/security/roles/ListRoles/ListRolesUseCase.js.map +1 -1
  349. package/features/security/roles/ListRoles/abstractions.js +2 -2
  350. package/features/security/roles/ListRoles/abstractions.js.map +1 -1
  351. package/features/security/roles/ListRoles/feature.d.ts +4 -1
  352. package/features/security/roles/ListRoles/feature.js +6 -5
  353. package/features/security/roles/ListRoles/feature.js.map +1 -1
  354. package/features/security/roles/ListRoles/index.js +0 -2
  355. package/features/security/roles/UpdateRole/UpdateRoleUseCase.js +43 -50
  356. package/features/security/roles/UpdateRole/UpdateRoleUseCase.js.map +1 -1
  357. package/features/security/roles/UpdateRole/abstractions.js +2 -2
  358. package/features/security/roles/UpdateRole/abstractions.js.map +1 -1
  359. package/features/security/roles/UpdateRole/events.js +17 -16
  360. package/features/security/roles/UpdateRole/events.js.map +1 -1
  361. package/features/security/roles/UpdateRole/feature.d.ts +4 -1
  362. package/features/security/roles/UpdateRole/feature.js +6 -5
  363. package/features/security/roles/UpdateRole/feature.js.map +1 -1
  364. package/features/security/roles/UpdateRole/index.js +0 -2
  365. package/features/security/roles/UpdateRole/schema.js +7 -6
  366. package/features/security/roles/UpdateRole/schema.js.map +1 -1
  367. package/features/security/roles/feature.d.ts +4 -1
  368. package/features/security/roles/feature.js +14 -18
  369. package/features/security/roles/feature.js.map +1 -1
  370. package/features/security/roles/shared/RoleProvider.js +27 -21
  371. package/features/security/roles/shared/RoleProvider.js.map +1 -1
  372. package/features/security/roles/shared/RolesRepository.js +96 -113
  373. package/features/security/roles/shared/RolesRepository.js.map +1 -1
  374. package/features/security/roles/shared/abstractions.js +3 -4
  375. package/features/security/roles/shared/abstractions.js.map +1 -1
  376. package/features/security/roles/shared/decorators/ListCache.js +23 -22
  377. package/features/security/roles/shared/decorators/ListCache.js.map +1 -1
  378. package/features/security/roles/shared/decorators/RolesRepositoryCachingDecorator.js +40 -62
  379. package/features/security/roles/shared/decorators/RolesRepositoryCachingDecorator.js.map +1 -1
  380. package/features/security/roles/shared/errors.js +50 -56
  381. package/features/security/roles/shared/errors.js.map +1 -1
  382. package/features/security/roles/shared/types.js +0 -3
  383. package/features/security/shared/abstractions.js +4 -6
  384. package/features/security/shared/abstractions.js.map +1 -1
  385. package/features/security/shared/errors.js +8 -8
  386. package/features/security/shared/errors.js.map +1 -1
  387. package/features/security/shared/index.js +0 -2
  388. package/features/security/teams/CreateTeam/CreateTeamUseCase.js +53 -59
  389. package/features/security/teams/CreateTeam/CreateTeamUseCase.js.map +1 -1
  390. package/features/security/teams/CreateTeam/abstractions.js +2 -2
  391. package/features/security/teams/CreateTeam/abstractions.js.map +1 -1
  392. package/features/security/teams/CreateTeam/events.js +17 -16
  393. package/features/security/teams/CreateTeam/events.js.map +1 -1
  394. package/features/security/teams/CreateTeam/feature.d.ts +4 -1
  395. package/features/security/teams/CreateTeam/feature.js +6 -5
  396. package/features/security/teams/CreateTeam/feature.js.map +1 -1
  397. package/features/security/teams/CreateTeam/index.js +0 -2
  398. package/features/security/teams/CreateTeam/schema.js +6 -5
  399. package/features/security/teams/CreateTeam/schema.js.map +1 -1
  400. package/features/security/teams/DeleteTeam/DeleteTeamUseCase.js +36 -46
  401. package/features/security/teams/DeleteTeam/DeleteTeamUseCase.js.map +1 -1
  402. package/features/security/teams/DeleteTeam/abstractions.js +2 -2
  403. package/features/security/teams/DeleteTeam/abstractions.js.map +1 -1
  404. package/features/security/teams/DeleteTeam/events.js +17 -16
  405. package/features/security/teams/DeleteTeam/events.js.map +1 -1
  406. package/features/security/teams/DeleteTeam/feature.d.ts +4 -1
  407. package/features/security/teams/DeleteTeam/feature.js +6 -5
  408. package/features/security/teams/DeleteTeam/feature.js.map +1 -1
  409. package/features/security/teams/DeleteTeam/index.js +0 -2
  410. package/features/security/teams/GetTeam/GetTeamUseCase.js +17 -17
  411. package/features/security/teams/GetTeam/GetTeamUseCase.js.map +1 -1
  412. package/features/security/teams/GetTeam/abstractions.js +2 -2
  413. package/features/security/teams/GetTeam/abstractions.js.map +1 -1
  414. package/features/security/teams/GetTeam/feature.d.ts +4 -1
  415. package/features/security/teams/GetTeam/feature.js +6 -5
  416. package/features/security/teams/GetTeam/feature.js.map +1 -1
  417. package/features/security/teams/GetTeam/index.js +0 -2
  418. package/features/security/teams/ListTeams/ListTeamsUseCase.js +20 -21
  419. package/features/security/teams/ListTeams/ListTeamsUseCase.js.map +1 -1
  420. package/features/security/teams/ListTeams/abstractions.js +2 -2
  421. package/features/security/teams/ListTeams/abstractions.js.map +1 -1
  422. package/features/security/teams/ListTeams/feature.d.ts +4 -1
  423. package/features/security/teams/ListTeams/feature.js +6 -5
  424. package/features/security/teams/ListTeams/feature.js.map +1 -1
  425. package/features/security/teams/ListTeams/index.js +0 -2
  426. package/features/security/teams/UpdateTeam/UpdateTeamUseCase.js +46 -58
  427. package/features/security/teams/UpdateTeam/UpdateTeamUseCase.js.map +1 -1
  428. package/features/security/teams/UpdateTeam/abstractions.js +2 -2
  429. package/features/security/teams/UpdateTeam/abstractions.js.map +1 -1
  430. package/features/security/teams/UpdateTeam/events.js +17 -16
  431. package/features/security/teams/UpdateTeam/events.js.map +1 -1
  432. package/features/security/teams/UpdateTeam/feature.d.ts +4 -1
  433. package/features/security/teams/UpdateTeam/feature.js +6 -5
  434. package/features/security/teams/UpdateTeam/feature.js.map +1 -1
  435. package/features/security/teams/UpdateTeam/index.js +0 -2
  436. package/features/security/teams/UpdateTeam/schema.js +5 -4
  437. package/features/security/teams/UpdateTeam/schema.js.map +1 -1
  438. package/features/security/teams/feature.d.ts +4 -1
  439. package/features/security/teams/feature.js +13 -17
  440. package/features/security/teams/feature.js.map +1 -1
  441. package/features/security/teams/shared/TeamProvider.js +27 -21
  442. package/features/security/teams/shared/TeamProvider.js.map +1 -1
  443. package/features/security/teams/shared/TeamsRepository.js +100 -118
  444. package/features/security/teams/shared/TeamsRepository.js.map +1 -1
  445. package/features/security/teams/shared/abstractions.js +3 -4
  446. package/features/security/teams/shared/abstractions.js.map +1 -1
  447. package/features/security/teams/shared/decorators/TeamsRepositoryCachingDecorator.js +40 -62
  448. package/features/security/teams/shared/decorators/TeamsRepositoryCachingDecorator.js.map +1 -1
  449. package/features/security/teams/shared/errors.js +62 -70
  450. package/features/security/teams/shared/errors.js.map +1 -1
  451. package/features/security/teams/shared/types.js +0 -3
  452. package/features/security/utils/AppPermissions.js +50 -89
  453. package/features/security/utils/AppPermissions.js.map +1 -1
  454. package/features/security/utils/IdentityValue.js +19 -22
  455. package/features/security/utils/IdentityValue.js.map +1 -1
  456. package/features/security/utils/filterOutCustomWbyAppsPermissions.js +24 -27
  457. package/features/security/utils/filterOutCustomWbyAppsPermissions.js.map +1 -1
  458. package/features/security/utils/getPermissionsFromRoles.d.ts +1 -1
  459. package/features/security/utils/getPermissionsFromRoles.js +5 -10
  460. package/features/security/utils/getPermissionsFromRoles.js.map +1 -1
  461. package/features/security/utils/isJwt.js +2 -1
  462. package/features/security/utils/isJwt.js.map +1 -1
  463. package/features/security/utils/verifyJwtUsingJwk.js +6 -7
  464. package/features/security/utils/verifyJwtUsingJwk.js.map +1 -1
  465. package/features/serviceDiscovery/ServiceDiscovery.d.ts +17 -0
  466. package/features/serviceDiscovery/ServiceDiscovery.js +22 -0
  467. package/features/serviceDiscovery/ServiceDiscovery.js.map +1 -0
  468. package/features/serviceDiscovery/__tests__/ServiceDiscovery.test.d.ts +1 -0
  469. package/features/serviceDiscovery/__tests__/ServiceDiscovery.test.js +111 -0
  470. package/features/serviceDiscovery/__tests__/ServiceDiscovery.test.js.map +1 -0
  471. package/features/serviceDiscovery/index.d.ts +3 -0
  472. package/features/serviceDiscovery/index.js +1 -0
  473. package/features/system/InstallSystem/InstallSystemUseCase.js +45 -44
  474. package/features/system/InstallSystem/InstallSystemUseCase.js.map +1 -1
  475. package/features/system/InstallSystem/abstractions.js +3 -17
  476. package/features/system/InstallSystem/abstractions.js.map +1 -1
  477. package/features/system/InstallSystem/errors.js +15 -16
  478. package/features/system/InstallSystem/errors.js.map +1 -1
  479. package/features/system/InstallSystem/events.js +8 -5
  480. package/features/system/InstallSystem/events.js.map +1 -1
  481. package/features/system/InstallSystem/feature.d.ts +5 -1
  482. package/features/system/InstallSystem/feature.js +6 -7
  483. package/features/system/InstallSystem/feature.js.map +1 -1
  484. package/features/system/InstallSystem/index.js +2 -6
  485. package/features/system/SystemFeature.d.ts +4 -1
  486. package/features/system/SystemFeature.js +6 -5
  487. package/features/system/SystemFeature.js.map +1 -1
  488. package/features/task/TaskController/abstractions.js +2 -10
  489. package/features/task/TaskController/abstractions.js.map +1 -1
  490. package/features/task/TaskController/index.js +0 -2
  491. package/features/task/TaskDefinition/abstractions.d.ts +6 -1
  492. package/features/task/TaskDefinition/abstractions.js +8 -40
  493. package/features/task/TaskDefinition/abstractions.js.map +1 -1
  494. package/features/task/TaskDefinition/index.js +0 -2
  495. package/features/task/TaskService/abstractions.js +9 -13
  496. package/features/task/TaskService/abstractions.js.map +1 -1
  497. package/features/task/TaskService/index.js +0 -2
  498. package/features/tenancy/CreateTenant/CreateTenantGateway.js +14 -11
  499. package/features/tenancy/CreateTenant/CreateTenantGateway.js.map +1 -1
  500. package/features/tenancy/CreateTenant/CreateTenantRepository.js +18 -15
  501. package/features/tenancy/CreateTenant/CreateTenantRepository.js.map +1 -1
  502. package/features/tenancy/CreateTenant/CreateTenantUseCase.d.ts +1 -1
  503. package/features/tenancy/CreateTenant/CreateTenantUseCase.js +44 -41
  504. package/features/tenancy/CreateTenant/CreateTenantUseCase.js.map +1 -1
  505. package/features/tenancy/CreateTenant/abstractions.js +6 -29
  506. package/features/tenancy/CreateTenant/abstractions.js.map +1 -1
  507. package/features/tenancy/CreateTenant/decorators/CreateTenantWithWcpIncrement.js +16 -15
  508. package/features/tenancy/CreateTenant/decorators/CreateTenantWithWcpIncrement.js.map +1 -1
  509. package/features/tenancy/CreateTenant/errors.js +8 -8
  510. package/features/tenancy/CreateTenant/errors.js.map +1 -1
  511. package/features/tenancy/CreateTenant/events.js +16 -11
  512. package/features/tenancy/CreateTenant/events.js.map +1 -1
  513. package/features/tenancy/CreateTenant/feature.d.ts +5 -1
  514. package/features/tenancy/CreateTenant/feature.js +9 -8
  515. package/features/tenancy/CreateTenant/feature.js.map +1 -1
  516. package/features/tenancy/CreateTenant/index.js +2 -4
  517. package/features/tenancy/DeleteTenant/DeleteTenantGateway.js +15 -12
  518. package/features/tenancy/DeleteTenant/DeleteTenantGateway.js.map +1 -1
  519. package/features/tenancy/DeleteTenant/DeleteTenantRepository.js +22 -19
  520. package/features/tenancy/DeleteTenant/DeleteTenantRepository.js.map +1 -1
  521. package/features/tenancy/DeleteTenant/DeleteTenantUseCase.js +29 -27
  522. package/features/tenancy/DeleteTenant/DeleteTenantUseCase.js.map +1 -1
  523. package/features/tenancy/DeleteTenant/abstractions.js +6 -10
  524. package/features/tenancy/DeleteTenant/abstractions.js.map +1 -1
  525. package/features/tenancy/DeleteTenant/decorators/DeleteTenantWithWcpDecrement.js +16 -13
  526. package/features/tenancy/DeleteTenant/decorators/DeleteTenantWithWcpDecrement.js.map +1 -1
  527. package/features/tenancy/DeleteTenant/events.js +16 -11
  528. package/features/tenancy/DeleteTenant/events.js.map +1 -1
  529. package/features/tenancy/DeleteTenant/feature.d.ts +5 -1
  530. package/features/tenancy/DeleteTenant/feature.js +9 -8
  531. package/features/tenancy/DeleteTenant/feature.js.map +1 -1
  532. package/features/tenancy/DeleteTenant/index.js +2 -4
  533. package/features/tenancy/GetRootTenant/GetRootTenantUseCase.js +15 -12
  534. package/features/tenancy/GetRootTenant/GetRootTenantUseCase.js.map +1 -1
  535. package/features/tenancy/GetRootTenant/abstractions.js +2 -4
  536. package/features/tenancy/GetRootTenant/abstractions.js.map +1 -1
  537. package/features/tenancy/GetRootTenant/feature.d.ts +5 -1
  538. package/features/tenancy/GetRootTenant/feature.js +6 -5
  539. package/features/tenancy/GetRootTenant/feature.js.map +1 -1
  540. package/features/tenancy/GetRootTenant/index.js +0 -2
  541. package/features/tenancy/GetTenantById/GetTenantByIdGateway.js +17 -12
  542. package/features/tenancy/GetTenantById/GetTenantByIdGateway.js.map +1 -1
  543. package/features/tenancy/GetTenantById/GetTenantByIdRepository.js +18 -19
  544. package/features/tenancy/GetTenantById/GetTenantByIdRepository.js.map +1 -1
  545. package/features/tenancy/GetTenantById/GetTenantByIdUseCase.js +17 -17
  546. package/features/tenancy/GetTenantById/GetTenantByIdUseCase.js.map +1 -1
  547. package/features/tenancy/GetTenantById/abstractions.js +4 -6
  548. package/features/tenancy/GetTenantById/abstractions.js.map +1 -1
  549. package/features/tenancy/GetTenantById/feature.d.ts +5 -1
  550. package/features/tenancy/GetTenantById/feature.js +8 -12
  551. package/features/tenancy/GetTenantById/feature.js.map +1 -1
  552. package/features/tenancy/GetTenantById/index.js +1 -3
  553. package/features/tenancy/InstallTenant/DependencyResolver.js +53 -65
  554. package/features/tenancy/InstallTenant/DependencyResolver.js.map +1 -1
  555. package/features/tenancy/InstallTenant/InstallTenantUseCase.d.ts +1 -1
  556. package/features/tenancy/InstallTenant/InstallTenantUseCase.js +95 -113
  557. package/features/tenancy/InstallTenant/InstallTenantUseCase.js.map +1 -1
  558. package/features/tenancy/InstallTenant/abstractions.js +4 -15
  559. package/features/tenancy/InstallTenant/abstractions.js.map +1 -1
  560. package/features/tenancy/InstallTenant/errors.js +15 -16
  561. package/features/tenancy/InstallTenant/errors.js.map +1 -1
  562. package/features/tenancy/InstallTenant/events.js +8 -5
  563. package/features/tenancy/InstallTenant/events.js.map +1 -1
  564. package/features/tenancy/InstallTenant/feature.d.ts +5 -1
  565. package/features/tenancy/InstallTenant/feature.js +6 -5
  566. package/features/tenancy/InstallTenant/feature.js.map +1 -1
  567. package/features/tenancy/InstallTenant/index.js +1 -3
  568. package/features/tenancy/ListTenants/ListTenantsGateway.js +14 -11
  569. package/features/tenancy/ListTenants/ListTenantsGateway.js.map +1 -1
  570. package/features/tenancy/ListTenants/ListTenantsRepository.js +14 -12
  571. package/features/tenancy/ListTenants/ListTenantsRepository.js.map +1 -1
  572. package/features/tenancy/ListTenants/ListTenantsUseCase.js +16 -14
  573. package/features/tenancy/ListTenants/ListTenantsUseCase.js.map +1 -1
  574. package/features/tenancy/ListTenants/abstractions.js +4 -12
  575. package/features/tenancy/ListTenants/abstractions.js.map +1 -1
  576. package/features/tenancy/ListTenants/feature.d.ts +5 -1
  577. package/features/tenancy/ListTenants/feature.js +8 -7
  578. package/features/tenancy/ListTenants/feature.js.map +1 -1
  579. package/features/tenancy/ListTenants/index.js +1 -3
  580. package/features/tenancy/TenancyFeature.d.ts +4 -1
  581. package/features/tenancy/TenancyFeature.js +20 -26
  582. package/features/tenancy/TenancyFeature.js.map +1 -1
  583. package/features/tenancy/TenantContext/TenantContext.js +46 -48
  584. package/features/tenancy/TenantContext/TenantContext.js.map +1 -1
  585. package/features/tenancy/TenantContext/abstractions.js +2 -2
  586. package/features/tenancy/TenantContext/abstractions.js.map +1 -1
  587. package/features/tenancy/TenantContext/errors.js +7 -7
  588. package/features/tenancy/TenantContext/errors.js.map +1 -1
  589. package/features/tenancy/TenantContext/feature.d.ts +4 -1
  590. package/features/tenancy/TenantContext/feature.js +6 -5
  591. package/features/tenancy/TenantContext/feature.js.map +1 -1
  592. package/features/tenancy/TenantContext/index.js +0 -2
  593. package/features/tenancy/UpdateTenant/UpdateTenantGateway.js +14 -11
  594. package/features/tenancy/UpdateTenant/UpdateTenantGateway.js.map +1 -1
  595. package/features/tenancy/UpdateTenant/UpdateTenantRepository.js +19 -16
  596. package/features/tenancy/UpdateTenant/UpdateTenantRepository.js.map +1 -1
  597. package/features/tenancy/UpdateTenant/UpdateTenantUseCase.d.ts +2 -2
  598. package/features/tenancy/UpdateTenant/UpdateTenantUseCase.js +37 -36
  599. package/features/tenancy/UpdateTenant/UpdateTenantUseCase.js.map +1 -1
  600. package/features/tenancy/UpdateTenant/abstractions.js +6 -10
  601. package/features/tenancy/UpdateTenant/abstractions.js.map +1 -1
  602. package/features/tenancy/UpdateTenant/events.js +16 -11
  603. package/features/tenancy/UpdateTenant/events.js.map +1 -1
  604. package/features/tenancy/UpdateTenant/feature.d.ts +5 -1
  605. package/features/tenancy/UpdateTenant/feature.js +8 -7
  606. package/features/tenancy/UpdateTenant/feature.js.map +1 -1
  607. package/features/tenancy/UpdateTenant/index.js +2 -4
  608. package/features/tenancy/shared/TenantCache.js +18 -17
  609. package/features/tenancy/shared/TenantCache.js.map +1 -1
  610. package/features/tenancy/shared/abstractions.js +2 -1
  611. package/features/tenancy/shared/abstractions.js.map +1 -1
  612. package/features/tenancy/shared/storageOperations.js +2 -5
  613. package/features/tenancy/shared/storageOperations.js.map +1 -1
  614. package/features/users/AdminUsersFeature.d.ts +4 -1
  615. package/features/users/AdminUsersFeature.js +15 -19
  616. package/features/users/AdminUsersFeature.js.map +1 -1
  617. package/features/users/CreateUser/CreateUserUseCase.js +65 -100
  618. package/features/users/CreateUser/CreateUserUseCase.js.map +1 -1
  619. package/features/users/CreateUser/abstractions.js +2 -13
  620. package/features/users/CreateUser/abstractions.js.map +1 -1
  621. package/features/users/CreateUser/decorators/CreateUserWithWcpIncrement.d.ts +1 -1
  622. package/features/users/CreateUser/decorators/CreateUserWithWcpIncrement.js +16 -15
  623. package/features/users/CreateUser/decorators/CreateUserWithWcpIncrement.js.map +1 -1
  624. package/features/users/CreateUser/events.js +17 -18
  625. package/features/users/CreateUser/events.js.map +1 -1
  626. package/features/users/CreateUser/feature.d.ts +4 -1
  627. package/features/users/CreateUser/feature.js +7 -6
  628. package/features/users/CreateUser/feature.js.map +1 -1
  629. package/features/users/CreateUser/index.js +0 -2
  630. package/features/users/CreateUser/schema.js +14 -18
  631. package/features/users/CreateUser/schema.js.map +1 -1
  632. package/features/users/DeleteUser/DeleteUserUseCase.js +35 -50
  633. package/features/users/DeleteUser/DeleteUserUseCase.js.map +1 -1
  634. package/features/users/DeleteUser/abstractions.js +2 -13
  635. package/features/users/DeleteUser/abstractions.js.map +1 -1
  636. package/features/users/DeleteUser/decorators/DeleteUserWithWcpDecrement.js +15 -16
  637. package/features/users/DeleteUser/decorators/DeleteUserWithWcpDecrement.js.map +1 -1
  638. package/features/users/DeleteUser/errors.js +7 -7
  639. package/features/users/DeleteUser/errors.js.map +1 -1
  640. package/features/users/DeleteUser/events.js +17 -18
  641. package/features/users/DeleteUser/events.js.map +1 -1
  642. package/features/users/DeleteUser/feature.d.ts +4 -1
  643. package/features/users/DeleteUser/feature.js +7 -6
  644. package/features/users/DeleteUser/feature.js.map +1 -1
  645. package/features/users/DeleteUser/index.js +0 -2
  646. package/features/users/ExternalIdpUserSync/ExternalIdpUserSyncHandler.js +60 -74
  647. package/features/users/ExternalIdpUserSync/ExternalIdpUserSyncHandler.js.map +1 -1
  648. package/features/users/ExternalIdpUserSync/feature.d.ts +4 -1
  649. package/features/users/ExternalIdpUserSync/feature.js +6 -5
  650. package/features/users/ExternalIdpUserSync/feature.js.map +1 -1
  651. package/features/users/ExternalIdpUserSync/index.js +0 -2
  652. package/features/users/GetIdentityProfile/GetIdentityProfileUseCase.js +29 -39
  653. package/features/users/GetIdentityProfile/GetIdentityProfileUseCase.js.map +1 -1
  654. package/features/users/GetIdentityProfile/abstractions.js +2 -11
  655. package/features/users/GetIdentityProfile/abstractions.js.map +1 -1
  656. package/features/users/GetIdentityProfile/feature.d.ts +4 -1
  657. package/features/users/GetIdentityProfile/feature.js +6 -5
  658. package/features/users/GetIdentityProfile/feature.js.map +1 -1
  659. package/features/users/GetIdentityProfile/index.js +0 -2
  660. package/features/users/GetIdentityProfile/types.js +0 -3
  661. package/features/users/GetUser/GetUserUseCase.js +19 -23
  662. package/features/users/GetUser/GetUserUseCase.js.map +1 -1
  663. package/features/users/GetUser/abstractions.js +2 -11
  664. package/features/users/GetUser/abstractions.js.map +1 -1
  665. package/features/users/GetUser/feature.d.ts +4 -1
  666. package/features/users/GetUser/feature.js +6 -5
  667. package/features/users/GetUser/feature.js.map +1 -1
  668. package/features/users/GetUser/index.js +0 -2
  669. package/features/users/ListUserTeams/ListUserTeamsUseCase.js +33 -42
  670. package/features/users/ListUserTeams/ListUserTeamsUseCase.js.map +1 -1
  671. package/features/users/ListUserTeams/abstractions.js +2 -11
  672. package/features/users/ListUserTeams/abstractions.js.map +1 -1
  673. package/features/users/ListUserTeams/feature.d.ts +4 -1
  674. package/features/users/ListUserTeams/feature.js +6 -5
  675. package/features/users/ListUserTeams/feature.js.map +1 -1
  676. package/features/users/ListUserTeams/index.js +0 -2
  677. package/features/users/ListUsers/ListUsersUseCase.js +19 -23
  678. package/features/users/ListUsers/ListUsersUseCase.js.map +1 -1
  679. package/features/users/ListUsers/abstractions.js +2 -11
  680. package/features/users/ListUsers/abstractions.js.map +1 -1
  681. package/features/users/ListUsers/feature.d.ts +4 -1
  682. package/features/users/ListUsers/feature.js +6 -5
  683. package/features/users/ListUsers/feature.js.map +1 -1
  684. package/features/users/ListUsers/index.js +0 -2
  685. package/features/users/UpdateUser/UpdateUserUseCase.js +52 -74
  686. package/features/users/UpdateUser/UpdateUserUseCase.js.map +1 -1
  687. package/features/users/UpdateUser/abstractions.js +2 -13
  688. package/features/users/UpdateUser/abstractions.js.map +1 -1
  689. package/features/users/UpdateUser/events.js +17 -18
  690. package/features/users/UpdateUser/events.js.map +1 -1
  691. package/features/users/UpdateUser/feature.d.ts +4 -1
  692. package/features/users/UpdateUser/feature.js +6 -5
  693. package/features/users/UpdateUser/feature.js.map +1 -1
  694. package/features/users/UpdateUser/index.js +0 -2
  695. package/features/users/UpdateUser/schema.js +11 -10
  696. package/features/users/UpdateUser/schema.js.map +1 -1
  697. package/features/users/shared/AdminUsersRepository.js +104 -112
  698. package/features/users/shared/AdminUsersRepository.js.map +1 -1
  699. package/features/users/shared/abstractions.js +2 -9
  700. package/features/users/shared/abstractions.js.map +1 -1
  701. package/features/users/shared/errors.js +40 -46
  702. package/features/users/shared/errors.js.map +1 -1
  703. package/features/users/shared/loaders.js +52 -66
  704. package/features/users/shared/loaders.js.map +1 -1
  705. package/features/users/shared/storageAbstractions.js +2 -2
  706. package/features/users/shared/storageAbstractions.js.map +1 -1
  707. package/features/users/shared/types.js +0 -3
  708. package/features/wcp/WcpContext/WcpContext.d.ts +7 -0
  709. package/features/wcp/WcpContext/WcpContext.js +150 -133
  710. package/features/wcp/WcpContext/WcpContext.js.map +1 -1
  711. package/features/wcp/WcpContext/abstractions.js +2 -6
  712. package/features/wcp/WcpContext/abstractions.js.map +1 -1
  713. package/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.d.ts +30 -5
  714. package/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.js +153 -112
  715. package/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.js.map +1 -1
  716. package/features/wcp/WcpContext/feature.d.ts +5 -1
  717. package/features/wcp/WcpContext/feature.js +6 -5
  718. package/features/wcp/WcpContext/feature.js.map +1 -1
  719. package/features/wcp/WcpContext/index.js +0 -2
  720. package/features/wcp/WcpContext/types.js +0 -3
  721. package/features/wcp/WcpContext/utils.js +35 -53
  722. package/features/wcp/WcpContext/utils.js.map +1 -1
  723. package/features/wcp/WcpFeature.d.ts +4 -1
  724. package/features/wcp/WcpFeature.js +7 -6
  725. package/features/wcp/WcpFeature.js.map +1 -1
  726. package/features/webhooks/Webhook/WebhookProvider.d.ts +12 -0
  727. package/features/webhooks/Webhook/WebhookProvider.js +28 -0
  728. package/features/webhooks/Webhook/WebhookProvider.js.map +1 -0
  729. package/features/webhooks/Webhook/abstractions/WebhookFactory.d.ts +16 -0
  730. package/features/webhooks/Webhook/abstractions/WebhookFactory.js +5 -0
  731. package/features/webhooks/Webhook/abstractions/WebhookFactory.js.map +1 -0
  732. package/features/webhooks/Webhook/abstractions/WebhookProvider.d.ts +9 -0
  733. package/features/webhooks/Webhook/abstractions/WebhookProvider.js +5 -0
  734. package/features/webhooks/Webhook/abstractions/WebhookProvider.js.map +1 -0
  735. package/features/webhooks/Webhook/feature.d.ts +4 -0
  736. package/features/webhooks/Webhook/feature.js +11 -0
  737. package/features/webhooks/Webhook/feature.js.map +1 -0
  738. package/features/webhooks/Webhook/index.d.ts +2 -0
  739. package/features/webhooks/Webhook/index.js +2 -0
  740. package/features/webhooks/WebhookDispatcher/NullWebhookDispatcher.d.ts +8 -0
  741. package/features/webhooks/WebhookDispatcher/NullWebhookDispatcher.js +11 -0
  742. package/features/webhooks/WebhookDispatcher/NullWebhookDispatcher.js.map +1 -0
  743. package/features/webhooks/WebhookDispatcher/abstractions.d.ts +12 -0
  744. package/features/webhooks/WebhookDispatcher/abstractions.js +5 -0
  745. package/features/webhooks/WebhookDispatcher/abstractions.js.map +1 -0
  746. package/features/webhooks/WebhookSignPayload/abstractions.d.ts +14 -0
  747. package/features/webhooks/WebhookSignPayload/abstractions.js +5 -0
  748. package/features/webhooks/WebhookSignPayload/abstractions.js.map +1 -0
  749. package/features/webhooks/WebhookVerifyPayload/abstractions.d.ts +11 -0
  750. package/features/webhooks/WebhookVerifyPayload/abstractions.js +5 -0
  751. package/features/webhooks/WebhookVerifyPayload/abstractions.js.map +1 -0
  752. package/features/webhooks/index.d.ts +5 -0
  753. package/features/webhooks/index.js +5 -0
  754. package/graphql/security/NotAuthorizedResponse.js +11 -14
  755. package/graphql/security/NotAuthorizedResponse.js.map +1 -1
  756. package/graphql/security/ProfileMapper.js +12 -11
  757. package/graphql/security/ProfileMapper.js.map +1 -1
  758. package/graphql/security/apiKey.gql.js +38 -47
  759. package/graphql/security/apiKey.gql.js.map +1 -1
  760. package/graphql/security/base.gql.js +11 -10
  761. package/graphql/security/base.gql.js.map +1 -1
  762. package/graphql/security/identity.gql.js +87 -97
  763. package/graphql/security/identity.gql.js.map +1 -1
  764. package/graphql/security/index.js +13 -8
  765. package/graphql/security/index.js.map +1 -1
  766. package/graphql/security/role.gql.js +49 -57
  767. package/graphql/security/role.gql.js.map +1 -1
  768. package/graphql/security/team.gql.js +61 -69
  769. package/graphql/security/team.gql.js.map +1 -1
  770. package/graphql/system/createSystemGraphQL.js +31 -34
  771. package/graphql/system/createSystemGraphQL.js.map +1 -1
  772. package/graphql/users/user.gql.js +87 -105
  773. package/graphql/users/user.gql.js.map +1 -1
  774. package/graphql/wcp/graphql.js +26 -28
  775. package/graphql/wcp/graphql.js.map +1 -1
  776. package/idp/JwksCache.js +22 -28
  777. package/idp/JwksCache.js.map +1 -1
  778. package/idp/JwtAuthenticator.js +34 -46
  779. package/idp/JwtAuthenticator.js.map +1 -1
  780. package/idp/OidcJwtIdentityProvider.js +55 -82
  781. package/idp/OidcJwtIdentityProvider.js.map +1 -1
  782. package/idp/abstractions.js +5 -14
  783. package/idp/abstractions.js.map +1 -1
  784. package/idp/feature.d.ts +4 -1
  785. package/idp/feature.js +8 -7
  786. package/idp/feature.js.map +1 -1
  787. package/idp/index.js +1 -3
  788. package/idp/types.js +0 -3
  789. package/index.js +0 -2
  790. package/legacy/security/LegacyContext.js +133 -186
  791. package/legacy/security/LegacyContext.js.map +1 -1
  792. package/legacy/security/createSecurityContext.js +5 -9
  793. package/legacy/security/createSecurityContext.js.map +1 -1
  794. package/legacy/security/plugins/apiKeyAuthentication.d.ts +1 -1
  795. package/legacy/security/plugins/apiKeyAuthentication.js +15 -24
  796. package/legacy/security/plugins/apiKeyAuthentication.js.map +1 -1
  797. package/legacy/security/plugins/apiKeyAuthorization.d.ts +1 -1
  798. package/legacy/security/plugins/apiKeyAuthorization.js +9 -18
  799. package/legacy/security/plugins/apiKeyAuthorization.js.map +1 -1
  800. package/legacy/security/plugins/authenticateUsingCookie.d.ts +1 -1
  801. package/legacy/security/plugins/authenticateUsingCookie.js +18 -22
  802. package/legacy/security/plugins/authenticateUsingCookie.js.map +1 -1
  803. package/legacy/security/plugins/authenticateUsingHttpHeader.d.ts +1 -1
  804. package/legacy/security/plugins/authenticateUsingHttpHeader.js +15 -18
  805. package/legacy/security/plugins/authenticateUsingHttpHeader.js.map +1 -1
  806. package/legacy/security/plugins/secureHeaders.js +28 -21
  807. package/legacy/security/plugins/secureHeaders.js.map +1 -1
  808. package/legacy/tenancy/LegacyContext.js +45 -52
  809. package/legacy/tenancy/LegacyContext.js.map +1 -1
  810. package/legacy/tenancy/createTenancyContext.js +22 -42
  811. package/legacy/tenancy/createTenancyContext.js.map +1 -1
  812. package/legacy/users/LegacyContext.js +39 -54
  813. package/legacy/users/LegacyContext.js.map +1 -1
  814. package/legacy/users/createAdminUsersContext.js +7 -7
  815. package/legacy/users/createAdminUsersContext.js.map +1 -1
  816. package/legacy/wcp/LegacyWcpContext.d.ts +7 -0
  817. package/legacy/wcp/LegacyWcpContext.js +92 -70
  818. package/legacy/wcp/LegacyWcpContext.js.map +1 -1
  819. package/legacy/wcp/context.d.ts +1 -3
  820. package/legacy/wcp/context.js +33 -37
  821. package/legacy/wcp/context.js.map +1 -1
  822. package/models/base/BaseModel.js +51 -56
  823. package/models/base/BaseModel.js.map +1 -1
  824. package/models/base/ModelBuilder.js +65 -78
  825. package/models/base/ModelBuilder.js.map +1 -1
  826. package/models/base/ModelFactory.js +0 -3
  827. package/models/base/__tests__/ModelBuilder.test.js +437 -454
  828. package/models/base/__tests__/ModelBuilder.test.js.map +1 -1
  829. package/models/base/abstractions.js +0 -3
  830. package/models/cms/FieldBuilder.js +112 -121
  831. package/models/cms/FieldBuilder.js.map +1 -1
  832. package/models/cms/FieldBuilderRegistry.js +13 -12
  833. package/models/cms/FieldBuilderRegistry.js.map +1 -1
  834. package/models/cms/FieldDefinitionsBuilder.js +37 -54
  835. package/models/cms/FieldDefinitionsBuilder.js.map +1 -1
  836. package/models/cms/PrivateCmsModelBuilder.js +84 -89
  837. package/models/cms/PrivateCmsModelBuilder.js.map +1 -1
  838. package/models/cms/PrivatePage/Page.fields.js +7 -6
  839. package/models/cms/PrivatePage/Page.fields.js.map +1 -1
  840. package/models/cms/PrivatePage/PageModelBuilder.js +18 -15
  841. package/models/cms/PrivatePage/PageModelBuilder.js.map +1 -1
  842. package/models/cms/PrivatePage/PageModelFactory.js +20 -25
  843. package/models/cms/PrivatePage/PageModelFactory.js.map +1 -1
  844. package/models/cms/PrivatePage/__tests__/PageModelFactory.test.js +218 -234
  845. package/models/cms/PrivatePage/__tests__/PageModelFactory.test.js.map +1 -1
  846. package/models/cms/PrivatePage/__tests__/PagePublishingDecorator.js +33 -36
  847. package/models/cms/PrivatePage/__tests__/PagePublishingDecorator.js.map +1 -1
  848. package/models/cms/PrivatePage/__tests__/PageSeoDecorator.js +25 -26
  849. package/models/cms/PrivatePage/__tests__/PageSeoDecorator.js.map +1 -1
  850. package/models/cms/PrivatePage/abstractions.js +3 -9
  851. package/models/cms/PrivatePage/abstractions.js.map +1 -1
  852. package/models/cms/__tests__/PrivateCmsModelBuilder.test.js +173 -185
  853. package/models/cms/__tests__/PrivateCmsModelBuilder.test.js.map +1 -1
  854. package/models/cms/abstractions.js +3 -20
  855. package/models/cms/abstractions.js.map +1 -1
  856. package/models/cms/fieldsBuilder.md +4 -2
  857. package/models/cms/types.js +0 -3
  858. package/models/simple/Page/PageModelBuilder.js +15 -14
  859. package/models/simple/Page/PageModelBuilder.js.map +1 -1
  860. package/models/simple/Page/PageModelFactory.js +16 -15
  861. package/models/simple/Page/PageModelFactory.js.map +1 -1
  862. package/models/simple/Page/__tests__/PageModelBuilderDecorator.js +21 -20
  863. package/models/simple/Page/__tests__/PageModelBuilderDecorator.js.map +1 -1
  864. package/models/simple/Page/__tests__/PageModelBuilderDecorator2.js +17 -16
  865. package/models/simple/Page/__tests__/PageModelBuilderDecorator2.js.map +1 -1
  866. package/models/simple/Page/__tests__/PageModelFactory.test.js +28 -28
  867. package/models/simple/Page/__tests__/PageModelFactory.test.js.map +1 -1
  868. package/models/simple/Page/abstractions.js +9 -8
  869. package/models/simple/Page/abstractions.js.map +1 -1
  870. package/package.json +30 -71
  871. package/types/core.js +0 -3
  872. package/types/security.d.ts +1 -1
  873. package/types/security.js +0 -3
  874. package/types/tenancy.js +0 -3
  875. package/types/users.js +0 -3
  876. package/domain/tenancy/errors.js.map +0 -1
  877. package/exports/api/build-params.js.map +0 -1
  878. package/exports/api/event-publisher.js.map +0 -1
  879. package/exports/api/graphql.js.map +0 -1
  880. package/exports/api/key-value-store.js.map +0 -1
  881. package/exports/api/logger.js.map +0 -1
  882. package/exports/api/security/api-key.js.map +0 -1
  883. package/exports/api/security/authentication.js.map +0 -1
  884. package/exports/api/security/role.js.map +0 -1
  885. package/exports/api/security/user.js.map +0 -1
  886. package/exports/api/security.js.map +0 -1
  887. package/exports/api/system.js.map +0 -1
  888. package/exports/api/tasks.js.map +0 -1
  889. package/exports/api/tenancy.js.map +0 -1
  890. package/features/buildParams/index.js.map +0 -1
  891. package/features/eventPublisher/index.js.map +0 -1
  892. package/features/keyValueStore/index.js.map +0 -1
  893. package/features/logger/index.js.map +0 -1
  894. package/features/security/IdentityContext/index.js.map +0 -1
  895. package/features/security/apiKeys/CreateApiKey/index.js.map +0 -1
  896. package/features/security/apiKeys/DeleteApiKey/index.js.map +0 -1
  897. package/features/security/apiKeys/GetApiKey/index.js.map +0 -1
  898. package/features/security/apiKeys/GetApiKeyBySlug/index.js.map +0 -1
  899. package/features/security/apiKeys/GetApiKeyByToken/index.js.map +0 -1
  900. package/features/security/apiKeys/ListApiKeys/index.js.map +0 -1
  901. package/features/security/apiKeys/UpdateApiKey/index.js.map +0 -1
  902. package/features/security/apiKeys/shared/types.js.map +0 -1
  903. package/features/security/authentication/AuthenticationContext/index.js.map +0 -1
  904. package/features/security/authentication/Authenticator/index.js.map +0 -1
  905. package/features/security/authorization/AuthorizationContext/index.js.map +0 -1
  906. package/features/security/authorization/Authorizer/index.js.map +0 -1
  907. package/features/security/login/index.js.map +0 -1
  908. package/features/security/permissions/index.js.map +0 -1
  909. package/features/security/permissions/types.js.map +0 -1
  910. package/features/security/roles/CreateRole/index.js.map +0 -1
  911. package/features/security/roles/DeleteRole/index.js.map +0 -1
  912. package/features/security/roles/GetRole/index.js.map +0 -1
  913. package/features/security/roles/ListRoles/index.js.map +0 -1
  914. package/features/security/roles/UpdateRole/index.js.map +0 -1
  915. package/features/security/roles/shared/types.js.map +0 -1
  916. package/features/security/shared/index.js.map +0 -1
  917. package/features/security/teams/CreateTeam/index.js.map +0 -1
  918. package/features/security/teams/DeleteTeam/index.js.map +0 -1
  919. package/features/security/teams/GetTeam/index.js.map +0 -1
  920. package/features/security/teams/ListTeams/index.js.map +0 -1
  921. package/features/security/teams/UpdateTeam/index.js.map +0 -1
  922. package/features/security/teams/shared/types.js.map +0 -1
  923. package/features/system/InstallSystem/index.js.map +0 -1
  924. package/features/task/TaskController/index.js.map +0 -1
  925. package/features/task/TaskDefinition/index.js.map +0 -1
  926. package/features/task/TaskService/index.js.map +0 -1
  927. package/features/tenancy/CreateTenant/index.js.map +0 -1
  928. package/features/tenancy/DeleteTenant/index.js.map +0 -1
  929. package/features/tenancy/GetRootTenant/index.js.map +0 -1
  930. package/features/tenancy/GetTenantById/index.js.map +0 -1
  931. package/features/tenancy/InstallTenant/index.js.map +0 -1
  932. package/features/tenancy/ListTenants/index.js.map +0 -1
  933. package/features/tenancy/TenantContext/index.js.map +0 -1
  934. package/features/tenancy/UpdateTenant/index.js.map +0 -1
  935. package/features/users/CreateUser/index.js.map +0 -1
  936. package/features/users/DeleteUser/index.js.map +0 -1
  937. package/features/users/ExternalIdpUserSync/index.js.map +0 -1
  938. package/features/users/GetIdentityProfile/index.js.map +0 -1
  939. package/features/users/GetIdentityProfile/types.js.map +0 -1
  940. package/features/users/GetUser/index.js.map +0 -1
  941. package/features/users/ListUserTeams/index.js.map +0 -1
  942. package/features/users/ListUsers/index.js.map +0 -1
  943. package/features/users/UpdateUser/index.js.map +0 -1
  944. package/features/users/shared/types.js.map +0 -1
  945. package/features/wcp/WcpContext/index.js.map +0 -1
  946. package/features/wcp/WcpContext/types.js.map +0 -1
  947. package/idp/index.js.map +0 -1
  948. package/idp/types.js.map +0 -1
  949. package/index.js.map +0 -1
  950. package/models/base/ModelFactory.js.map +0 -1
  951. package/models/base/abstractions.js.map +0 -1
  952. package/models/cms/types.js.map +0 -1
  953. package/types/core.js.map +0 -1
  954. package/types/security.js.map +0 -1
  955. package/types/tenancy.js.map +0 -1
  956. package/types/users.js.map +0 -1
@@ -1,50 +1,41 @@
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 { IdentityContext } from "../../security/IdentityContext/index.js";
4
3
  import { ListTeamsUseCase } from "../../security/teams/ListTeams/index.js";
5
- import { ListUserTeamsUseCase as UseCaseAbstraction } from "./abstractions.js";
4
+ import { ListUserTeamsUseCase } from "./abstractions.js";
6
5
  import { AdminUsersRepository } from "../shared/abstractions.js";
7
6
  class ListUserTeamsUseCaseImpl {
8
- constructor(identityContext, repository, listTeamsUseCase) {
9
- this.identityContext = identityContext;
10
- this.repository = repository;
11
- this.listTeamsUseCase = listTeamsUseCase;
12
- }
13
- async execute(userId) {
14
- // No authorization check - runs without authorization as per original implementation
15
- return this.identityContext.withoutAuthorization(async () => {
16
- // 1. Get the user
17
- const getUserResult = await this.repository.get({
18
- id: userId
19
- });
20
- if (getUserResult.isFail()) {
21
- return Result.fail(getUserResult.error);
22
- }
23
- const adminUser = getUserResult.value;
24
-
25
- // 2. Check if user has teams
26
- if (!adminUser.teams || adminUser.teams.length === 0) {
27
- return Result.ok([]);
28
- }
29
-
30
- // 3. List teams using ListTeamsUseCase
31
- const listTeamsResult = await this.listTeamsUseCase.execute({
32
- where: {
33
- id_in: adminUser.teams
34
- }
35
- });
36
- if (listTeamsResult.isFail()) {
37
- // Return empty array on error (original behavior)
38
- return Result.ok([]);
39
- }
40
- return Result.ok(listTeamsResult.value);
41
- });
42
- }
7
+ constructor(identityContext, repository, listTeamsUseCase){
8
+ this.identityContext = identityContext;
9
+ this.repository = repository;
10
+ this.listTeamsUseCase = listTeamsUseCase;
11
+ }
12
+ async execute(userId) {
13
+ return this.identityContext.withoutAuthorization(async ()=>{
14
+ const getUserResult = await this.repository.get({
15
+ id: userId
16
+ });
17
+ if (getUserResult.isFail()) return Result.fail(getUserResult.error);
18
+ const adminUser = getUserResult.value;
19
+ if (!adminUser.teams || 0 === adminUser.teams.length) return Result.ok([]);
20
+ const listTeamsResult = await this.listTeamsUseCase.execute({
21
+ where: {
22
+ id_in: adminUser.teams
23
+ }
24
+ });
25
+ if (listTeamsResult.isFail()) return Result.ok([]);
26
+ return Result.ok(listTeamsResult.value);
27
+ });
28
+ }
43
29
  }
44
- export const ListUserTeamsUseCase = createImplementation({
45
- abstraction: UseCaseAbstraction,
46
- implementation: ListUserTeamsUseCaseImpl,
47
- dependencies: [IdentityContext, AdminUsersRepository, ListTeamsUseCase]
30
+ const ListUserTeamsUseCase_ListUserTeamsUseCase = createImplementation({
31
+ abstraction: ListUserTeamsUseCase,
32
+ implementation: ListUserTeamsUseCaseImpl,
33
+ dependencies: [
34
+ IdentityContext,
35
+ AdminUsersRepository,
36
+ ListTeamsUseCase
37
+ ]
48
38
  });
39
+ export { ListUserTeamsUseCase_ListUserTeamsUseCase as ListUserTeamsUseCase };
49
40
 
50
41
  //# sourceMappingURL=ListUserTeamsUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createImplementation","Result","IdentityContext","ListTeamsUseCase","ListUserTeamsUseCase","UseCaseAbstraction","AdminUsersRepository","ListUserTeamsUseCaseImpl","constructor","identityContext","repository","listTeamsUseCase","execute","userId","withoutAuthorization","getUserResult","get","id","isFail","fail","error","adminUser","value","teams","length","ok","listTeamsResult","where","id_in","abstraction","implementation","dependencies"],"sources":["ListUserTeamsUseCase.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"~/features/security/IdentityContext/index.js\";\nimport { ListTeamsUseCase } from \"~/features/security/teams/ListTeams/index.js\";\nimport { ListUserTeamsUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { AdminUsersRepository } from \"~/features/users/shared/abstractions.js\";\nimport type { Team } from \"~/types/security.js\";\n\nclass ListUserTeamsUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private repository: AdminUsersRepository.Interface,\n private listTeamsUseCase: ListTeamsUseCase.Interface\n ) {}\n\n async execute(userId: string): Promise<Result<Team[], UseCaseAbstraction.Error>> {\n // No authorization check - runs without authorization as per original implementation\n return this.identityContext.withoutAuthorization(async () => {\n // 1. Get the user\n const getUserResult = await this.repository.get({ id: userId });\n if (getUserResult.isFail()) {\n return Result.fail(getUserResult.error);\n }\n\n const adminUser = getUserResult.value;\n\n // 2. Check if user has teams\n if (!adminUser.teams || adminUser.teams.length === 0) {\n return Result.ok([]);\n }\n\n // 3. List teams using ListTeamsUseCase\n const listTeamsResult = await this.listTeamsUseCase.execute({\n where: {\n id_in: adminUser.teams\n }\n });\n\n if (listTeamsResult.isFail()) {\n // Return empty array on error (original behavior)\n return Result.ok([]);\n }\n\n return Result.ok(listTeamsResult.value);\n });\n }\n}\n\nexport const ListUserTeamsUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: ListUserTeamsUseCaseImpl,\n dependencies: [IdentityContext, AdminUsersRepository, ListTeamsUseCase]\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,qBAAqB;AAC1D,SAASC,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,eAAe;AACxB,SAASC,gBAAgB;AACzB,SAASC,oBAAoB,IAAIC,kBAAkB;AACnD,SAASC,oBAAoB;AAG7B,MAAMC,wBAAwB,CAAyC;EACnEC,WAAWA,CACCC,eAA0C,EAC1CC,UAA0C,EAC1CC,gBAA4C,EACtD;IAAA,KAHUF,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,UAA0C,GAA1CA,UAA0C;IAAA,KAC1CC,gBAA4C,GAA5CA,gBAA4C;EACrD;EAEH,MAAMC,OAAOA,CAACC,MAAc,EAAqD;IAC7E;IACA,OAAO,IAAI,CAACJ,eAAe,CAACK,oBAAoB,CAAC,YAAY;MACzD;MACA,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACL,UAAU,CAACM,GAAG,CAAC;QAAEC,EAAE,EAAEJ;MAAO,CAAC,CAAC;MAC/D,IAAIE,aAAa,CAACG,MAAM,CAAC,CAAC,EAAE;QACxB,OAAOjB,MAAM,CAACkB,IAAI,CAACJ,aAAa,CAACK,KAAK,CAAC;MAC3C;MAEA,MAAMC,SAAS,GAAGN,aAAa,CAACO,KAAK;;MAErC;MACA,IAAI,CAACD,SAAS,CAACE,KAAK,IAAIF,SAAS,CAACE,KAAK,CAACC,MAAM,KAAK,CAAC,EAAE;QAClD,OAAOvB,MAAM,CAACwB,EAAE,CAAC,EAAE,CAAC;MACxB;;MAEA;MACA,MAAMC,eAAe,GAAG,MAAM,IAAI,CAACf,gBAAgB,CAACC,OAAO,CAAC;QACxDe,KAAK,EAAE;UACHC,KAAK,EAAEP,SAAS,CAACE;QACrB;MACJ,CAAC,CAAC;MAEF,IAAIG,eAAe,CAACR,MAAM,CAAC,CAAC,EAAE;QAC1B;QACA,OAAOjB,MAAM,CAACwB,EAAE,CAAC,EAAE,CAAC;MACxB;MAEA,OAAOxB,MAAM,CAACwB,EAAE,CAACC,eAAe,CAACJ,KAAK,CAAC;IAC3C,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMlB,oBAAoB,GAAGJ,oBAAoB,CAAC;EACrD6B,WAAW,EAAExB,kBAAkB;EAC/ByB,cAAc,EAAEvB,wBAAwB;EACxCwB,YAAY,EAAE,CAAC7B,eAAe,EAAEI,oBAAoB,EAAEH,gBAAgB;AAC1E,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/users/ListUserTeams/ListUserTeamsUseCase.js","sources":["../../../../src/features/users/ListUserTeams/ListUserTeamsUseCase.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"~/features/security/IdentityContext/index.js\";\nimport { ListTeamsUseCase } from \"~/features/security/teams/ListTeams/index.js\";\nimport { ListUserTeamsUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { AdminUsersRepository } from \"~/features/users/shared/abstractions.js\";\nimport type { Team } from \"~/types/security.js\";\n\nclass ListUserTeamsUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private repository: AdminUsersRepository.Interface,\n private listTeamsUseCase: ListTeamsUseCase.Interface\n ) {}\n\n async execute(userId: string): Promise<Result<Team[], UseCaseAbstraction.Error>> {\n // No authorization check - runs without authorization as per original implementation\n return this.identityContext.withoutAuthorization(async () => {\n // 1. Get the user\n const getUserResult = await this.repository.get({ id: userId });\n if (getUserResult.isFail()) {\n return Result.fail(getUserResult.error);\n }\n\n const adminUser = getUserResult.value;\n\n // 2. Check if user has teams\n if (!adminUser.teams || adminUser.teams.length === 0) {\n return Result.ok([]);\n }\n\n // 3. List teams using ListTeamsUseCase\n const listTeamsResult = await this.listTeamsUseCase.execute({\n where: {\n id_in: adminUser.teams\n }\n });\n\n if (listTeamsResult.isFail()) {\n // Return empty array on error (original behavior)\n return Result.ok([]);\n }\n\n return Result.ok(listTeamsResult.value);\n });\n }\n}\n\nexport const ListUserTeamsUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: ListUserTeamsUseCaseImpl,\n dependencies: [IdentityContext, AdminUsersRepository, ListTeamsUseCase]\n});\n"],"names":["ListUserTeamsUseCaseImpl","identityContext","repository","listTeamsUseCase","userId","getUserResult","Result","adminUser","listTeamsResult","ListUserTeamsUseCase","createImplementation","UseCaseAbstraction","IdentityContext","AdminUsersRepository","ListTeamsUseCase"],"mappings":";;;;;AAQA,MAAMA;IACF,YACYC,eAA0C,EAC1CC,UAA0C,EAC1CC,gBAA4C,CACtD;aAHUF,eAAe,GAAfA;aACAC,UAAU,GAAVA;aACAC,gBAAgB,GAAhBA;IACT;IAEH,MAAM,QAAQC,MAAc,EAAqD;QAE7E,OAAO,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC;YAE7C,MAAMC,gBAAgB,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,IAAID;YAAO;YAC7D,IAAIC,cAAc,MAAM,IACpB,OAAOC,OAAO,IAAI,CAACD,cAAc,KAAK;YAG1C,MAAME,YAAYF,cAAc,KAAK;YAGrC,IAAI,CAACE,UAAU,KAAK,IAAIA,AAA2B,MAA3BA,UAAU,KAAK,CAAC,MAAM,EAC1C,OAAOD,OAAO,EAAE,CAAC,EAAE;YAIvB,MAAME,kBAAkB,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;gBACxD,OAAO;oBACH,OAAOD,UAAU,KAAK;gBAC1B;YACJ;YAEA,IAAIC,gBAAgB,MAAM,IAEtB,OAAOF,OAAO,EAAE,CAAC,EAAE;YAGvB,OAAOA,OAAO,EAAE,CAACE,gBAAgB,KAAK;QAC1C;IACJ;AACJ;AAEO,MAAMC,4CAAuBC,qBAAqB;IACrD,aAAaC;IACb,gBAAgBX;IAChB,cAAc;QAACY;QAAiBC;QAAsBC;KAAiB;AAC3E"}
@@ -1,14 +1,5 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
-
3
- // Use case specific errors - none for this use case
4
-
5
- // Combined error type (use case errors + repository errors)
6
-
7
- // Use case interface
8
-
9
- /** List teams assigned to a user. */
10
- export const ListUserTeamsUseCase = createAbstraction("ListUserTeamsUseCase");
11
-
12
- // Namespace exports
2
+ const ListUserTeamsUseCase = createAbstraction("ListUserTeamsUseCase");
3
+ export { ListUserTeamsUseCase };
13
4
 
14
5
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","ListUserTeamsUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport type { Team } from \"~/types/security.js\";\nimport { AdminUsersRepository } from \"~/features/users/shared/abstractions.js\";\n\n// Use case specific errors - none for this use case\nexport interface IListUserTeamsErrors {\n // No specific errors beyond repository errors\n}\n\n// Combined error type (use case errors + repository errors)\ntype ListUserTeamsError = AdminUsersRepository.Error;\n\n// Use case interface\nexport interface IListUserTeams {\n execute(userId: string): Promise<Result<Team[], ListUserTeamsError>>;\n}\n\n/** List teams assigned to a user. */\nexport const ListUserTeamsUseCase = createAbstraction<IListUserTeams>(\"ListUserTeamsUseCase\");\n\n// Namespace exports\nexport namespace ListUserTeamsUseCase {\n export type Interface = IListUserTeams;\n export type Error = ListUserTeamsError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAKvD;;AAKA;;AAGA;;AAKA;AACA,OAAO,MAAMC,oBAAoB,GAAGD,iBAAiB,CAAiB,sBAAsB,CAAC;;AAE7F","ignoreList":[]}
1
+ {"version":3,"file":"features/users/ListUserTeams/abstractions.js","sources":["../../../../src/features/users/ListUserTeams/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport type { Team } from \"~/types/security.js\";\nimport { AdminUsersRepository } from \"~/features/users/shared/abstractions.js\";\n\n// Use case specific errors - none for this use case\nexport interface IListUserTeamsErrors {\n // No specific errors beyond repository errors\n}\n\n// Combined error type (use case errors + repository errors)\ntype ListUserTeamsError = AdminUsersRepository.Error;\n\n// Use case interface\nexport interface IListUserTeams {\n execute(userId: string): Promise<Result<Team[], ListUserTeamsError>>;\n}\n\n/** List teams assigned to a user. */\nexport const ListUserTeamsUseCase = createAbstraction<IListUserTeams>(\"ListUserTeamsUseCase\");\n\n// Namespace exports\nexport namespace ListUserTeamsUseCase {\n export type Interface = IListUserTeams;\n export type Error = ListUserTeamsError;\n}\n"],"names":["ListUserTeamsUseCase","createAbstraction"],"mappings":";AAmBO,MAAMA,uBAAuBC,kBAAkC"}
@@ -1 +1,4 @@
1
- export declare const ListUserTeamsFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const ListUserTeamsFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1,10 +1,11 @@
1
1
  import { createFeature } from "@webiny/feature/api";
2
2
  import { ListUserTeamsUseCase } from "./ListUserTeamsUseCase.js";
3
- export const ListUserTeamsFeature = createFeature({
4
- name: "ListUserTeams",
5
- register(container) {
6
- container.register(ListUserTeamsUseCase);
7
- }
3
+ const ListUserTeamsFeature = createFeature({
4
+ name: "ListUserTeams",
5
+ register (container) {
6
+ container.register(ListUserTeamsUseCase);
7
+ }
8
8
  });
9
+ export { ListUserTeamsFeature };
9
10
 
10
11
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","ListUserTeamsUseCase","ListUserTeamsFeature","name","register","container"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListUserTeamsUseCase } from \"./ListUserTeamsUseCase.js\";\n\nexport const ListUserTeamsFeature = createFeature({\n name: \"ListUserTeams\",\n register(container) {\n container.register(ListUserTeamsUseCase);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,oBAAoB;AAE7B,OAAO,MAAMC,oBAAoB,GAAGF,aAAa,CAAC;EAC9CG,IAAI,EAAE,eAAe;EACrBC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACH,oBAAoB,CAAC;EAC5C;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/users/ListUserTeams/feature.js","sources":["../../../../src/features/users/ListUserTeams/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListUserTeamsUseCase } from \"./ListUserTeamsUseCase.js\";\n\nexport const ListUserTeamsFeature = createFeature({\n name: \"ListUserTeams\",\n register(container) {\n container.register(ListUserTeamsUseCase);\n }\n});\n"],"names":["ListUserTeamsFeature","createFeature","container","ListUserTeamsUseCase"],"mappings":";;AAGO,MAAMA,uBAAuBC,cAAc;IAC9C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
@@ -1,3 +1 @@
1
1
  export * from "./abstractions.js";
2
-
3
- //# sourceMappingURL=index.js.map
@@ -1,33 +1,29 @@
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 { IdentityContext } from "../../security/IdentityContext/index.js";
4
- import { ListUsersUseCase as UseCaseAbstraction } from "./abstractions.js";
3
+ import { ListUsersUseCase } from "./abstractions.js";
5
4
  import { AdminUsersRepository } from "../shared/abstractions.js";
6
5
  import { NotAuthorizedError } from "../shared/errors.js";
7
6
  class ListUsersUseCaseImpl {
8
- constructor(identityContext, repository) {
9
- this.identityContext = identityContext;
10
- this.repository = repository;
11
- }
12
- async execute(input = {}) {
13
- // 1. Check permission
14
- const permission = await this.identityContext.getPermission("adminUsers.user");
15
- if (!permission) {
16
- return Result.fail(new NotAuthorizedError());
7
+ constructor(identityContext, repository){
8
+ this.identityContext = identityContext;
9
+ this.repository = repository;
17
10
  }
18
-
19
- // 2. List users from repository
20
- const result = await this.repository.list(input);
21
- if (result.isFail()) {
22
- return Result.fail(result.error);
11
+ async execute(input = {}) {
12
+ const permission = await this.identityContext.getPermission("adminUsers.user");
13
+ if (!permission) return Result.fail(new NotAuthorizedError());
14
+ const result = await this.repository.list(input);
15
+ if (result.isFail()) return Result.fail(result.error);
16
+ return Result.ok(result.value);
23
17
  }
24
- return Result.ok(result.value);
25
- }
26
18
  }
27
- export const ListUsersUseCase = createImplementation({
28
- abstraction: UseCaseAbstraction,
29
- implementation: ListUsersUseCaseImpl,
30
- dependencies: [IdentityContext, AdminUsersRepository]
19
+ const ListUsersUseCase_ListUsersUseCase = createImplementation({
20
+ abstraction: ListUsersUseCase,
21
+ implementation: ListUsersUseCaseImpl,
22
+ dependencies: [
23
+ IdentityContext,
24
+ AdminUsersRepository
25
+ ]
31
26
  });
27
+ export { ListUsersUseCase_ListUsersUseCase as ListUsersUseCase };
32
28
 
33
29
  //# sourceMappingURL=ListUsersUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createImplementation","Result","IdentityContext","ListUsersUseCase","UseCaseAbstraction","AdminUsersRepository","NotAuthorizedError","ListUsersUseCaseImpl","constructor","identityContext","repository","execute","input","permission","getPermission","fail","result","list","isFail","error","ok","value","abstraction","implementation","dependencies"],"sources":["ListUsersUseCase.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"~/features/security/IdentityContext/index.js\";\nimport { ListUsersUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { AdminUsersRepository } from \"~/features/users/shared/abstractions.js\";\nimport { NotAuthorizedError } from \"~/features/users/shared/errors.js\";\nimport type { AdminUser } from \"~/features/users/shared/types.js\";\nimport type { ListUsersInput } from \"~/features/users/shared/types.js\";\n\nclass ListUsersUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private repository: AdminUsersRepository.Interface\n ) {}\n\n async execute(\n input: ListUsersInput = {}\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. List users from repository\n const result = await this.repository.list(input);\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n return Result.ok(result.value);\n }\n}\n\nexport const ListUsersUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: ListUsersUseCaseImpl,\n dependencies: [IdentityContext, AdminUsersRepository]\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,qBAAqB;AAC1D,SAASC,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,eAAe;AACxB,SAASC,gBAAgB,IAAIC,kBAAkB;AAC/C,SAASC,oBAAoB;AAC7B,SAASC,kBAAkB;AAI3B,MAAMC,oBAAoB,CAAyC;EAC/DC,WAAWA,CACCC,eAA0C,EAC1CC,UAA0C,EACpD;IAAA,KAFUD,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,UAA0C,GAA1CA,UAA0C;EACnD;EAEH,MAAMC,OAAOA,CACTC,KAAqB,GAAG,CAAC,CAAC,EAC4B;IACtD;IACA,MAAMC,UAAU,GAAG,MAAM,IAAI,CAACJ,eAAe,CAACK,aAAa,CAAC,iBAAiB,CAAC;IAC9E,IAAI,CAACD,UAAU,EAAE;MACb,OAAOZ,MAAM,CAACc,IAAI,CAAC,IAAIT,kBAAkB,CAAC,CAAC,CAAC;IAChD;;IAEA;IACA,MAAMU,MAAM,GAAG,MAAM,IAAI,CAACN,UAAU,CAACO,IAAI,CAACL,KAAK,CAAC;IAChD,IAAII,MAAM,CAACE,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOjB,MAAM,CAACc,IAAI,CAACC,MAAM,CAACG,KAAK,CAAC;IACpC;IAEA,OAAOlB,MAAM,CAACmB,EAAE,CAACJ,MAAM,CAACK,KAAK,CAAC;EAClC;AACJ;AAEA,OAAO,MAAMlB,gBAAgB,GAAGH,oBAAoB,CAAC;EACjDsB,WAAW,EAAElB,kBAAkB;EAC/BmB,cAAc,EAAEhB,oBAAoB;EACpCiB,YAAY,EAAE,CAACtB,eAAe,EAAEG,oBAAoB;AACxD,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/users/ListUsers/ListUsersUseCase.js","sources":["../../../../src/features/users/ListUsers/ListUsersUseCase.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"~/features/security/IdentityContext/index.js\";\nimport { ListUsersUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { AdminUsersRepository } from \"~/features/users/shared/abstractions.js\";\nimport { NotAuthorizedError } from \"~/features/users/shared/errors.js\";\nimport type { AdminUser } from \"~/features/users/shared/types.js\";\nimport type { ListUsersInput } from \"~/features/users/shared/types.js\";\n\nclass ListUsersUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private repository: AdminUsersRepository.Interface\n ) {}\n\n async execute(\n input: ListUsersInput = {}\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. List users from repository\n const result = await this.repository.list(input);\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n return Result.ok(result.value);\n }\n}\n\nexport const ListUsersUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: ListUsersUseCaseImpl,\n dependencies: [IdentityContext, AdminUsersRepository]\n});\n"],"names":["ListUsersUseCaseImpl","identityContext","repository","input","permission","Result","NotAuthorizedError","result","ListUsersUseCase","createImplementation","UseCaseAbstraction","IdentityContext","AdminUsersRepository"],"mappings":";;;;;AASA,MAAMA;IACF,YACYC,eAA0C,EAC1CC,UAA0C,CACpD;aAFUD,eAAe,GAAfA;aACAC,UAAU,GAAVA;IACT;IAEH,MAAM,QACFC,QAAwB,CAAC,CAAC,EAC4B;QAEtD,MAAMC,aAAa,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;QAC5D,IAAI,CAACA,YACD,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAI3B,MAAMC,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAACJ;QAC1C,IAAII,OAAO,MAAM,IACb,OAAOF,OAAO,IAAI,CAACE,OAAO,KAAK;QAGnC,OAAOF,OAAO,EAAE,CAACE,OAAO,KAAK;IACjC;AACJ;AAEO,MAAMC,oCAAmBC,qBAAqB;IACjD,aAAaC;IACb,gBAAgBV;IAChB,cAAc;QAACW;QAAiBC;KAAqB;AACzD"}
@@ -1,14 +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
- /** List all admin users. */
10
- export const ListUsersUseCase = createAbstraction("ListUsersUseCase");
11
-
12
- // Namespace exports
2
+ const ListUsersUseCase = createAbstraction("ListUsersUseCase");
3
+ export { ListUsersUseCase };
13
4
 
14
5
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","ListUsersUseCase"],"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 { ListUsersInput } from \"~/features/users/shared/types.js\";\nimport { AdminUsersRepository } from \"~/features/users/shared/abstractions.js\";\nimport { NotAuthorizedError } from \"~/features/users/shared/errors.js\";\n\n// Use case specific errors\nexport interface IListUsersErrors {\n notAuthorized: NotAuthorizedError;\n}\n\n// Combined error type (use case errors + repository errors)\ntype ListUsersError = IListUsersErrors[keyof IListUsersErrors] | AdminUsersRepository.Error;\n\n// Use case interface\nexport interface IListUsers {\n execute(input?: ListUsersInput): Promise<Result<AdminUser[], ListUsersError>>;\n}\n\n/** List all admin users. */\nexport const ListUsersUseCase = createAbstraction<IListUsers>(\"ListUsersUseCase\");\n\n// Namespace exports\nexport namespace ListUsersUseCase {\n export type Interface = IListUsers;\n export type Error = ListUsersError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAOvD;;AAKA;;AAGA;;AAKA;AACA,OAAO,MAAMC,gBAAgB,GAAGD,iBAAiB,CAAa,kBAAkB,CAAC;;AAEjF","ignoreList":[]}
1
+ {"version":3,"file":"features/users/ListUsers/abstractions.js","sources":["../../../../src/features/users/ListUsers/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 { ListUsersInput } from \"~/features/users/shared/types.js\";\nimport { AdminUsersRepository } from \"~/features/users/shared/abstractions.js\";\nimport { NotAuthorizedError } from \"~/features/users/shared/errors.js\";\n\n// Use case specific errors\nexport interface IListUsersErrors {\n notAuthorized: NotAuthorizedError;\n}\n\n// Combined error type (use case errors + repository errors)\ntype ListUsersError = IListUsersErrors[keyof IListUsersErrors] | AdminUsersRepository.Error;\n\n// Use case interface\nexport interface IListUsers {\n execute(input?: ListUsersInput): Promise<Result<AdminUser[], ListUsersError>>;\n}\n\n/** List all admin users. */\nexport const ListUsersUseCase = createAbstraction<IListUsers>(\"ListUsersUseCase\");\n\n// Namespace exports\nexport namespace ListUsersUseCase {\n export type Interface = IListUsers;\n export type Error = ListUsersError;\n}\n"],"names":["ListUsersUseCase","createAbstraction"],"mappings":";AAqBO,MAAMA,mBAAmBC,kBAA8B"}
@@ -1 +1,4 @@
1
- export declare const ListUsersFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const ListUsersFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1,10 +1,11 @@
1
1
  import { createFeature } from "@webiny/feature/api";
2
2
  import { ListUsersUseCase } from "./ListUsersUseCase.js";
3
- export const ListUsersFeature = createFeature({
4
- name: "ListUsers",
5
- register(container) {
6
- container.register(ListUsersUseCase);
7
- }
3
+ const ListUsersFeature = createFeature({
4
+ name: "ListUsers",
5
+ register (container) {
6
+ container.register(ListUsersUseCase);
7
+ }
8
8
  });
9
+ export { ListUsersFeature };
9
10
 
10
11
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","ListUsersUseCase","ListUsersFeature","name","register","container"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListUsersUseCase } from \"./ListUsersUseCase.js\";\n\nexport const ListUsersFeature = createFeature({\n name: \"ListUsers\",\n register(container) {\n container.register(ListUsersUseCase);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,gBAAgB;AAEzB,OAAO,MAAMC,gBAAgB,GAAGF,aAAa,CAAC;EAC1CG,IAAI,EAAE,WAAW;EACjBC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACH,gBAAgB,CAAC;EACxC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/users/ListUsers/feature.js","sources":["../../../../src/features/users/ListUsers/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListUsersUseCase } from \"./ListUsersUseCase.js\";\n\nexport const ListUsersFeature = createFeature({\n name: \"ListUsers\",\n register(container) {\n container.register(ListUsersUseCase);\n }\n});\n"],"names":["ListUsersFeature","createFeature","container","ListUsersUseCase"],"mappings":";;AAGO,MAAMA,mBAAmBC,cAAc;IAC1C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
@@ -1,3 +1 @@
1
1
  export * from "./abstractions.js";
2
-
3
- //# sourceMappingURL=index.js.map
@@ -1,86 +1,64 @@
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 { IdentityContext } from "../../security/IdentityContext/index.js";
4
3
  import { EventPublisher } from "../../eventPublisher/index.js";
5
- import { UpdateUserUseCase as UseCaseAbstraction } from "./abstractions.js";
4
+ import { UpdateUserUseCase } from "./abstractions.js";
6
5
  import { AdminUsersRepository } from "../shared/abstractions.js";
7
6
  import { updateUserValidation } from "./schema.js";
8
- import { NotAuthorizedError, EmailTakenError, UserValidationError } from "../shared/errors.js";
9
- import { UserBeforeUpdateEvent, UserAfterUpdateEvent } from "./events.js";
7
+ import { EmailTakenError, NotAuthorizedError, UserValidationError } from "../shared/errors.js";
8
+ import { UserAfterUpdateEvent, UserBeforeUpdateEvent } from "./events.js";
10
9
  class UpdateUserUseCaseImpl {
11
- constructor(identityContext, eventPublisher, repository) {
12
- this.identityContext = identityContext;
13
- this.eventPublisher = eventPublisher;
14
- this.repository = repository;
15
- }
16
- async execute(id, input) {
17
- // 1. Check permission
18
- const permission = await this.identityContext.getPermission("adminUsers.user");
19
- if (!permission) {
20
- return Result.fail(new NotAuthorizedError());
10
+ constructor(identityContext, eventPublisher, repository){
11
+ this.identityContext = identityContext;
12
+ this.eventPublisher = eventPublisher;
13
+ this.repository = repository;
21
14
  }
22
-
23
- // 2. Validate input
24
- const validation = updateUserValidation.safeParse(input);
25
- if (!validation.success) {
26
- return Result.fail(new UserValidationError(validation.error.issues[0].message));
27
- }
28
-
29
- // If the input contains email, check if it is free to use.
30
- if (input.email) {
31
- const existingUserResult = await this.repository.get({
32
- email: input.email
33
- });
34
- if (existingUserResult.isOk()) {
35
- if (existingUserResult.value.id !== id) {
36
- return Result.fail(new EmailTakenError(input.email));
15
+ async execute(id, input) {
16
+ const permission = await this.identityContext.getPermission("adminUsers.user");
17
+ if (!permission) return Result.fail(new NotAuthorizedError());
18
+ const validation = updateUserValidation.safeParse(input);
19
+ if (!validation.success) return Result.fail(new UserValidationError(validation.error.issues[0].message));
20
+ if (input.email) {
21
+ const existingUserResult = await this.repository.get({
22
+ email: input.email
23
+ });
24
+ if (existingUserResult.isOk()) {
25
+ if (existingUserResult.value.id !== id) return Result.fail(new EmailTakenError(input.email));
26
+ }
37
27
  }
38
- }
39
- }
40
- // 3. Get existing user
41
- const getUserResult = await this.repository.get({
42
- id
43
- });
44
- if (getUserResult.isFail()) {
45
- return Result.fail(getUserResult.error);
46
- }
47
- const originalUser = getUserResult.value;
48
-
49
- // 4. Clone update data for event modification
50
- const updateData = structuredClone(validation.data);
51
-
52
- // 5. Publish before event
53
- await this.eventPublisher.publish(new UserBeforeUpdateEvent({
54
- user: originalUser,
55
- updateData,
56
- input: validation.data
57
- }));
58
-
59
- // 6. Merge updates with existing user
60
- const updatedUser = {
61
- ...originalUser,
62
- ...updateData
63
- };
64
-
65
- // 7. Update user via repository
66
- const result = await this.repository.update(updatedUser);
67
- if (result.isFail()) {
68
- return Result.fail(result.error);
28
+ const getUserResult = await this.repository.get({
29
+ id
30
+ });
31
+ if (getUserResult.isFail()) return Result.fail(getUserResult.error);
32
+ const originalUser = getUserResult.value;
33
+ const updateData = structuredClone(validation.data);
34
+ await this.eventPublisher.publish(new UserBeforeUpdateEvent({
35
+ user: originalUser,
36
+ updateData,
37
+ input: validation.data
38
+ }));
39
+ const updatedUser = {
40
+ ...originalUser,
41
+ ...updateData
42
+ };
43
+ const result = await this.repository.update(updatedUser);
44
+ if (result.isFail()) return Result.fail(result.error);
45
+ await this.eventPublisher.publish(new UserAfterUpdateEvent({
46
+ originalUser,
47
+ updatedUser: result.value,
48
+ input: validation.data
49
+ }));
50
+ return Result.ok(result.value);
69
51
  }
70
-
71
- // 8. Publish after event
72
- await this.eventPublisher.publish(new UserAfterUpdateEvent({
73
- originalUser,
74
- updatedUser: result.value,
75
- input: validation.data
76
- }));
77
- return Result.ok(result.value);
78
- }
79
52
  }
80
- export const UpdateUserUseCase = createImplementation({
81
- abstraction: UseCaseAbstraction,
82
- implementation: UpdateUserUseCaseImpl,
83
- dependencies: [IdentityContext, EventPublisher, AdminUsersRepository]
53
+ const UpdateUserUseCase_UpdateUserUseCase = createImplementation({
54
+ abstraction: UpdateUserUseCase,
55
+ implementation: UpdateUserUseCaseImpl,
56
+ dependencies: [
57
+ IdentityContext,
58
+ EventPublisher,
59
+ AdminUsersRepository
60
+ ]
84
61
  });
62
+ export { UpdateUserUseCase_UpdateUserUseCase as UpdateUserUseCase };
85
63
 
86
64
  //# sourceMappingURL=UpdateUserUseCase.js.map
@@ -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":"AAAA,SAASA,oBAAoB,QAAQ,qBAAqB;AAC1D,SAASC,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,eAAe;AACxB,SAASC,cAAc;AACvB,SAASC,iBAAiB,IAAIC,kBAAkB;AAChD,SAASC,oBAAoB;AAC7B,SAASC,oBAAoB;AAC7B,SACIC,kBAAkB,EAClBC,eAAe,EACfC,mBAAmB;AAEvB,SAASC,qBAAqB,EAAEC,oBAAoB;AAIpD,MAAMC,qBAAqB,CAAyC;EAChEC,WAAWA,CACCC,eAA0C,EAC1CC,cAAwC,EACxCC,UAA0C,EACpD;IAAA,KAHUF,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,cAAwC,GAAxCA,cAAwC;IAAA,KACxCC,UAA0C,GAA1CA,UAA0C;EACnD;EAEH,MAAMC,OAAOA,CACTC,EAAU,EACVC,KAAsB,EAC8B;IACpD;IACA,MAAMC,UAAU,GAAG,MAAM,IAAI,CAACN,eAAe,CAACO,aAAa,CAAC,iBAAiB,CAAC;IAC9E,IAAI,CAACD,UAAU,EAAE;MACb,OAAOpB,MAAM,CAACsB,IAAI,CAAC,IAAIf,kBAAkB,CAAC,CAAC,CAAC;IAChD;;IAEA;IACA,MAAMgB,UAAU,GAAGjB,oBAAoB,CAACkB,SAAS,CAACL,KAAK,CAAC;IACxD,IAAI,CAACI,UAAU,CAACE,OAAO,EAAE;MACrB,OAAOzB,MAAM,CAACsB,IAAI,CAAC,IAAIb,mBAAmB,CAACc,UAAU,CAACG,KAAK,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;IACnF;;IAEA;IACA,IAAIT,KAAK,CAACU,KAAK,EAAE;MACb,MAAMC,kBAAkB,GAAG,MAAM,IAAI,CAACd,UAAU,CAACe,GAAG,CAAC;QAAEF,KAAK,EAAEV,KAAK,CAACU;MAAM,CAAC,CAAC;MAC5E,IAAIC,kBAAkB,CAACE,IAAI,CAAC,CAAC,EAAE;QAC3B,IAAIF,kBAAkB,CAACG,KAAK,CAACf,EAAE,KAAKA,EAAE,EAAE;UACpC,OAAOlB,MAAM,CAACsB,IAAI,CAAC,IAAId,eAAe,CAACW,KAAK,CAACU,KAAK,CAAC,CAAC;QACxD;MACJ;IACJ;IACA;IACA,MAAMK,aAAa,GAAG,MAAM,IAAI,CAAClB,UAAU,CAACe,GAAG,CAAC;MAAEb;IAAG,CAAC,CAAC;IACvD,IAAIgB,aAAa,CAACC,MAAM,CAAC,CAAC,EAAE;MACxB,OAAOnC,MAAM,CAACsB,IAAI,CAACY,aAAa,CAACR,KAAK,CAAC;IAC3C;IAEA,MAAMU,YAAY,GAAGF,aAAa,CAACD,KAAK;;IAExC;IACA,MAAMI,UAAU,GAAGC,eAAe,CAACf,UAAU,CAACgB,IAAI,CAAC;;IAEnD;IACA,MAAM,IAAI,CAACxB,cAAc,CAACyB,OAAO,CAC7B,IAAI9B,qBAAqB,CAAC;MAAE+B,IAAI,EAAEL,YAAY;MAAEC,UAAU;MAAElB,KAAK,EAAEI,UAAU,CAACgB;IAAK,CAAC,CACxF,CAAC;;IAED;IACA,MAAMG,WAAsB,GAAG;MAC3B,GAAGN,YAAY;MACf,GAAGC;IACP,CAAC;;IAED;IACA,MAAMM,MAAM,GAAG,MAAM,IAAI,CAAC3B,UAAU,CAAC4B,MAAM,CAACF,WAAW,CAAC;IACxD,IAAIC,MAAM,CAACR,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOnC,MAAM,CAACsB,IAAI,CAACqB,MAAM,CAACjB,KAAK,CAAC;IACpC;;IAEA;IACA,MAAM,IAAI,CAACX,cAAc,CAACyB,OAAO,CAC7B,IAAI7B,oBAAoB,CAAC;MACrByB,YAAY;MACZM,WAAW,EAAEC,MAAM,CAACV,KAAK;MACzBd,KAAK,EAAEI,UAAU,CAACgB;IACtB,CAAC,CACL,CAAC;IAED,OAAOvC,MAAM,CAAC6C,EAAE,CAACF,MAAM,CAACV,KAAK,CAAC;EAClC;AACJ;AAEA,OAAO,MAAM9B,iBAAiB,GAAGJ,oBAAoB,CAAC;EAClD+C,WAAW,EAAE1C,kBAAkB;EAC/B2C,cAAc,EAAEnC,qBAAqB;EACrCoC,YAAY,EAAE,CAAC/C,eAAe,EAAEC,cAAc,EAAEG,oBAAoB;AACxE,CAAC,CAAC","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 +1,4 @@
1
- export declare const UpdateUserFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const UpdateUserFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };