@webiny/api-core 0.0.0-unstable.e2758ee1cf → 0.0.0-unstable.e6f0dc8ca7

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 (487) hide show
  1. package/ApiCoreFeature.d.ts +5 -1
  2. package/ApiCoreFeature.js +6 -0
  3. package/ApiCoreFeature.js.map +1 -1
  4. package/createApiCore.d.ts +1 -1
  5. package/createApiCore.js +2 -3
  6. package/createApiCore.js.map +1 -1
  7. package/domain/security/ApiToken.d.ts +1 -0
  8. package/domain/security/ApiToken.js +1 -0
  9. package/domain/security/ApiToken.js.map +1 -1
  10. package/exports/api/build-params.d.ts +1 -0
  11. package/exports/api/build-params.js +1 -0
  12. package/exports/api/build-params.js.map +1 -1
  13. package/exports/api/event-publisher.d.ts +1 -0
  14. package/exports/api/event-publisher.js +1 -0
  15. package/exports/api/event-publisher.js.map +1 -1
  16. package/exports/api/key-value-store.d.ts +1 -0
  17. package/exports/api/key-value-store.js +1 -0
  18. package/exports/api/key-value-store.js.map +1 -1
  19. package/exports/api/logger.d.ts +1 -0
  20. package/exports/api/logger.js +1 -0
  21. package/exports/api/logger.js.map +1 -1
  22. package/exports/api/security/api-key.d.ts +3 -3
  23. package/exports/api/security/api-key.js +3 -3
  24. package/exports/api/security/api-key.js.map +1 -1
  25. package/exports/api/security/authentication.d.ts +1 -1
  26. package/exports/api/security/authentication.js +1 -1
  27. package/exports/api/security/authentication.js.map +1 -1
  28. package/exports/api/security/role.d.ts +3 -3
  29. package/exports/api/security/role.js +3 -3
  30. package/exports/api/security/role.js.map +1 -1
  31. package/exports/api/security/user.d.ts +3 -3
  32. package/exports/api/security/user.js +3 -3
  33. package/exports/api/security/user.js.map +1 -1
  34. package/exports/api/security.d.ts +6 -0
  35. package/exports/api/security.js +5 -0
  36. package/exports/api/security.js.map +1 -1
  37. package/exports/api/system.d.ts +1 -1
  38. package/exports/api/system.js +1 -1
  39. package/exports/api/system.js.map +1 -1
  40. package/exports/api/tenancy.d.ts +4 -4
  41. package/exports/api/tenancy.js +4 -4
  42. package/exports/api/tenancy.js.map +1 -1
  43. package/exports/api.d.ts +7 -0
  44. package/exports/api.js +8 -0
  45. package/exports/api.js.map +1 -0
  46. package/features/ai/Ai.d.ts +26 -0
  47. package/features/ai/Ai.js +133 -0
  48. package/features/ai/Ai.js.map +1 -0
  49. package/features/ai/AiSdkTools.d.ts +11 -0
  50. package/features/ai/AiSdkTools.js +25 -0
  51. package/features/ai/AiSdkTools.js.map +1 -0
  52. package/features/ai/AnthropicSdkFactory.d.ts +10 -0
  53. package/features/ai/AnthropicSdkFactory.js +71 -0
  54. package/features/ai/AnthropicSdkFactory.js.map +1 -0
  55. package/features/ai/OpenAiSdkFactory.d.ts +10 -0
  56. package/features/ai/OpenAiSdkFactory.js +187 -0
  57. package/features/ai/OpenAiSdkFactory.js.map +1 -0
  58. package/features/ai/abstractions.d.ts +92 -0
  59. package/features/ai/abstractions.js +35 -0
  60. package/features/ai/abstractions.js.map +1 -0
  61. package/features/ai/feature.d.ts +4 -0
  62. package/features/ai/feature.js +16 -0
  63. package/features/ai/feature.js.map +1 -0
  64. package/features/ai/index.d.ts +3 -0
  65. package/features/ai/index.js +4 -0
  66. package/features/ai/index.js.map +1 -0
  67. package/features/buildParams/abstractions.d.ts +2 -0
  68. package/features/buildParams/abstractions.js +2 -0
  69. package/features/buildParams/abstractions.js.map +1 -1
  70. package/features/buildParams/feature.d.ts +5 -1
  71. package/features/encryption/EncryptionService.d.ts +10 -0
  72. package/features/encryption/EncryptionService.js +58 -0
  73. package/features/encryption/EncryptionService.js.map +1 -0
  74. package/features/encryption/abstractions.d.ts +9 -0
  75. package/features/encryption/abstractions.js +5 -0
  76. package/features/encryption/abstractions.js.map +1 -0
  77. package/features/encryption/feature.d.ts +4 -0
  78. package/features/encryption/feature.js +10 -0
  79. package/features/encryption/feature.js.map +1 -0
  80. package/features/encryption/index.d.ts +1 -0
  81. package/features/encryption/index.js +3 -0
  82. package/features/encryption/index.js.map +1 -0
  83. package/features/eventPublisher/abstractions.d.ts +2 -0
  84. package/features/eventPublisher/abstractions.js +3 -0
  85. package/features/eventPublisher/abstractions.js.map +1 -1
  86. package/features/eventPublisher/feature.d.ts +5 -1
  87. package/features/featureFlags/feature.d.ts +5 -1
  88. package/features/keyValueStore/GlobalKeyValueStore.js +3 -1
  89. package/features/keyValueStore/GlobalKeyValueStore.js.map +1 -1
  90. package/features/keyValueStore/KeyValueStoreRepository.d.ts +2 -2
  91. package/features/keyValueStore/KeyValueStoreRepository.js +2 -2
  92. package/features/keyValueStore/KeyValueStoreRepository.js.map +1 -1
  93. package/features/keyValueStore/abstractions.d.ts +10 -2
  94. package/features/keyValueStore/abstractions.js +4 -0
  95. package/features/keyValueStore/abstractions.js.map +1 -1
  96. package/features/keyValueStore/feature.d.ts +4 -1
  97. package/features/keyValueStore/feature.js.map +1 -1
  98. package/features/logger/abstractions.d.ts +1 -0
  99. package/features/logger/abstractions.js +1 -0
  100. package/features/logger/abstractions.js.map +1 -1
  101. package/features/logger/feature.d.ts +4 -1
  102. package/features/masker/Masker.d.ts +8 -0
  103. package/features/masker/Masker.js +21 -0
  104. package/features/masker/Masker.js.map +1 -0
  105. package/features/masker/abstractions.d.ts +11 -0
  106. package/features/masker/abstractions.js +4 -0
  107. package/features/masker/abstractions.js.map +1 -0
  108. package/features/masker/feature.d.ts +4 -0
  109. package/features/masker/feature.js +10 -0
  110. package/features/masker/feature.js.map +1 -0
  111. package/features/masker/index.d.ts +1 -0
  112. package/features/masker/index.js +3 -0
  113. package/features/masker/index.js.map +1 -0
  114. package/features/security/IdentityContext/abstractions.d.ts +1 -0
  115. package/features/security/IdentityContext/abstractions.js +1 -0
  116. package/features/security/IdentityContext/abstractions.js.map +1 -1
  117. package/features/security/IdentityContext/feature.d.ts +4 -1
  118. package/features/security/SecurityFeature.d.ts +5 -1
  119. package/features/security/apiKeys/CreateApiKey/CreateApiKeyUseCase.js +1 -1
  120. package/features/security/apiKeys/CreateApiKey/CreateApiKeyUseCase.js.map +1 -1
  121. package/features/security/apiKeys/CreateApiKey/abstractions.d.ts +1 -0
  122. package/features/security/apiKeys/CreateApiKey/abstractions.js +1 -0
  123. package/features/security/apiKeys/CreateApiKey/abstractions.js.map +1 -1
  124. package/features/security/apiKeys/CreateApiKey/events.d.ts +6 -4
  125. package/features/security/apiKeys/CreateApiKey/events.js +8 -4
  126. package/features/security/apiKeys/CreateApiKey/events.js.map +1 -1
  127. package/features/security/apiKeys/CreateApiKey/feature.d.ts +4 -1
  128. package/features/security/apiKeys/DeleteApiKey/abstractions.d.ts +1 -0
  129. package/features/security/apiKeys/DeleteApiKey/abstractions.js +1 -0
  130. package/features/security/apiKeys/DeleteApiKey/abstractions.js.map +1 -1
  131. package/features/security/apiKeys/DeleteApiKey/events.d.ts +6 -4
  132. package/features/security/apiKeys/DeleteApiKey/events.js +8 -4
  133. package/features/security/apiKeys/DeleteApiKey/events.js.map +1 -1
  134. package/features/security/apiKeys/DeleteApiKey/feature.d.ts +4 -1
  135. package/features/security/apiKeys/GetApiKey/abstractions.d.ts +1 -0
  136. package/features/security/apiKeys/GetApiKey/abstractions.js +1 -0
  137. package/features/security/apiKeys/GetApiKey/abstractions.js.map +1 -1
  138. package/features/security/apiKeys/GetApiKey/feature.d.ts +4 -1
  139. package/features/security/apiKeys/GetApiKeyBySlug/abstractions.d.ts +1 -0
  140. package/features/security/apiKeys/GetApiKeyBySlug/abstractions.js +1 -0
  141. package/features/security/apiKeys/GetApiKeyBySlug/abstractions.js.map +1 -1
  142. package/features/security/apiKeys/GetApiKeyBySlug/feature.d.ts +4 -1
  143. package/features/security/apiKeys/GetApiKeyByToken/abstractions.d.ts +1 -0
  144. package/features/security/apiKeys/GetApiKeyByToken/abstractions.js +1 -0
  145. package/features/security/apiKeys/GetApiKeyByToken/abstractions.js.map +1 -1
  146. package/features/security/apiKeys/GetApiKeyByToken/feature.d.ts +4 -1
  147. package/features/security/apiKeys/ListApiKeys/ListApiKeysUseCase.js +1 -1
  148. package/features/security/apiKeys/ListApiKeys/ListApiKeysUseCase.js.map +1 -1
  149. package/features/security/apiKeys/ListApiKeys/abstractions.d.ts +1 -0
  150. package/features/security/apiKeys/ListApiKeys/abstractions.js +1 -0
  151. package/features/security/apiKeys/ListApiKeys/abstractions.js.map +1 -1
  152. package/features/security/apiKeys/ListApiKeys/feature.d.ts +4 -1
  153. package/features/security/apiKeys/UpdateApiKey/UpdateApiKeyUseCase.js +1 -1
  154. package/features/security/apiKeys/UpdateApiKey/UpdateApiKeyUseCase.js.map +1 -1
  155. package/features/security/apiKeys/UpdateApiKey/abstractions.d.ts +1 -0
  156. package/features/security/apiKeys/UpdateApiKey/abstractions.js +1 -0
  157. package/features/security/apiKeys/UpdateApiKey/abstractions.js.map +1 -1
  158. package/features/security/apiKeys/UpdateApiKey/events.d.ts +6 -4
  159. package/features/security/apiKeys/UpdateApiKey/events.js +8 -4
  160. package/features/security/apiKeys/UpdateApiKey/events.js.map +1 -1
  161. package/features/security/apiKeys/UpdateApiKey/feature.d.ts +4 -1
  162. package/features/security/apiKeys/feature.d.ts +4 -1
  163. package/features/security/apiKeys/shared/abstractions.d.ts +5 -2
  164. package/features/security/apiKeys/shared/abstractions.js +3 -0
  165. package/features/security/apiKeys/shared/abstractions.js.map +1 -1
  166. package/features/security/apiKeys/shared/schemas.d.ts +10 -71
  167. package/features/security/apiKeys/shared/schemas.js +4 -4
  168. package/features/security/apiKeys/shared/schemas.js.map +1 -1
  169. package/features/security/authentication/AuthenticationContext/SetIdTokenCookie.d.ts +2 -2
  170. package/features/security/authentication/AuthenticationContext/SetIdTokenCookie.js +2 -2
  171. package/features/security/authentication/AuthenticationContext/SetIdTokenCookie.js.map +1 -1
  172. package/features/security/authentication/AuthenticationContext/abstractions.d.ts +1 -0
  173. package/features/security/authentication/AuthenticationContext/abstractions.js +1 -0
  174. package/features/security/authentication/AuthenticationContext/abstractions.js.map +1 -1
  175. package/features/security/authentication/AuthenticationContext/events.d.ts +6 -4
  176. package/features/security/authentication/AuthenticationContext/events.js +8 -4
  177. package/features/security/authentication/AuthenticationContext/events.js.map +1 -1
  178. package/features/security/authentication/AuthenticationContext/feature.d.ts +4 -1
  179. package/features/security/authentication/Authenticator/abstractions.d.ts +1 -0
  180. package/features/security/authentication/Authenticator/abstractions.js +1 -0
  181. package/features/security/authentication/Authenticator/abstractions.js.map +1 -1
  182. package/features/security/authorization/AuthorizationContext/AuthorizationContext.d.ts +1 -0
  183. package/features/security/authorization/AuthorizationContext/AuthorizationContext.js +14 -2
  184. package/features/security/authorization/AuthorizationContext/AuthorizationContext.js.map +1 -1
  185. package/features/security/authorization/AuthorizationContext/abstractions.d.ts +2 -0
  186. package/features/security/authorization/AuthorizationContext/abstractions.js +2 -0
  187. package/features/security/authorization/AuthorizationContext/abstractions.js.map +1 -1
  188. package/features/security/authorization/AuthorizationContext/feature.d.ts +4 -1
  189. package/features/security/authorization/Authorizer/abstractions.d.ts +1 -0
  190. package/features/security/authorization/Authorizer/abstractions.js +1 -0
  191. package/features/security/authorization/Authorizer/abstractions.js.map +1 -1
  192. package/features/security/authorization/GroupsTeamsAuthorizer/feature.d.ts +4 -1
  193. package/features/security/login/abstractions.d.ts +3 -2
  194. package/features/security/login/abstractions.js +4 -2
  195. package/features/security/login/abstractions.js.map +1 -1
  196. package/features/security/permissions/createPermissionSchema.d.ts +2 -0
  197. package/features/security/permissions/createPermissionSchema.js +8 -0
  198. package/features/security/permissions/createPermissionSchema.js.map +1 -0
  199. package/features/security/permissions/createPermissions.d.ts +5 -5
  200. package/features/security/permissions/createPermissions.js +198 -188
  201. package/features/security/permissions/createPermissions.js.map +1 -1
  202. package/features/security/permissions/index.d.ts +2 -1
  203. package/features/security/permissions/index.js +2 -1
  204. package/features/security/permissions/index.js.map +1 -1
  205. package/features/security/roles/CreateRole/CreateRoleUseCase.d.ts +1 -3
  206. package/features/security/roles/CreateRole/CreateRoleUseCase.js +3 -7
  207. package/features/security/roles/CreateRole/CreateRoleUseCase.js.map +1 -1
  208. package/features/security/roles/CreateRole/abstractions.d.ts +1 -0
  209. package/features/security/roles/CreateRole/abstractions.js +1 -0
  210. package/features/security/roles/CreateRole/abstractions.js.map +1 -1
  211. package/features/security/roles/CreateRole/events.d.ts +6 -4
  212. package/features/security/roles/CreateRole/events.js +8 -4
  213. package/features/security/roles/CreateRole/events.js.map +1 -1
  214. package/features/security/roles/CreateRole/feature.d.ts +4 -1
  215. package/features/security/roles/CreateRole/schema.d.ts +2 -20
  216. package/features/security/roles/CreateRole/schema.js +2 -2
  217. package/features/security/roles/CreateRole/schema.js.map +1 -1
  218. package/features/security/roles/DeleteRole/abstractions.d.ts +1 -0
  219. package/features/security/roles/DeleteRole/abstractions.js +1 -0
  220. package/features/security/roles/DeleteRole/abstractions.js.map +1 -1
  221. package/features/security/roles/DeleteRole/events.d.ts +6 -4
  222. package/features/security/roles/DeleteRole/events.js +8 -4
  223. package/features/security/roles/DeleteRole/events.js.map +1 -1
  224. package/features/security/roles/DeleteRole/feature.d.ts +4 -1
  225. package/features/security/roles/GetRole/abstractions.d.ts +1 -0
  226. package/features/security/roles/GetRole/abstractions.js +1 -0
  227. package/features/security/roles/GetRole/abstractions.js.map +1 -1
  228. package/features/security/roles/GetRole/feature.d.ts +4 -1
  229. package/features/security/roles/ListRoles/abstractions.d.ts +1 -0
  230. package/features/security/roles/ListRoles/abstractions.js +1 -0
  231. package/features/security/roles/ListRoles/abstractions.js.map +1 -1
  232. package/features/security/roles/ListRoles/feature.d.ts +4 -1
  233. package/features/security/roles/UpdateRole/UpdateRoleUseCase.js +1 -1
  234. package/features/security/roles/UpdateRole/UpdateRoleUseCase.js.map +1 -1
  235. package/features/security/roles/UpdateRole/abstractions.d.ts +1 -0
  236. package/features/security/roles/UpdateRole/abstractions.js +1 -0
  237. package/features/security/roles/UpdateRole/abstractions.js.map +1 -1
  238. package/features/security/roles/UpdateRole/events.d.ts +6 -4
  239. package/features/security/roles/UpdateRole/events.js +8 -4
  240. package/features/security/roles/UpdateRole/events.js.map +1 -1
  241. package/features/security/roles/UpdateRole/feature.d.ts +4 -1
  242. package/features/security/roles/UpdateRole/schema.d.ts +2 -18
  243. package/features/security/roles/UpdateRole/schema.js +2 -2
  244. package/features/security/roles/UpdateRole/schema.js.map +1 -1
  245. package/features/security/roles/feature.d.ts +4 -1
  246. package/features/security/roles/feature.js +2 -0
  247. package/features/security/roles/feature.js.map +1 -1
  248. package/features/security/roles/shared/RoleProvider.d.ts +13 -0
  249. package/features/security/roles/shared/RoleProvider.js +29 -0
  250. package/features/security/roles/shared/RoleProvider.js.map +1 -0
  251. package/features/security/roles/shared/RolesRepository.d.ts +3 -1
  252. package/features/security/roles/shared/RolesRepository.js +19 -18
  253. package/features/security/roles/shared/RolesRepository.js.map +1 -1
  254. package/features/security/roles/shared/abstractions.d.ts +19 -0
  255. package/features/security/roles/shared/abstractions.js +3 -0
  256. package/features/security/roles/shared/abstractions.js.map +1 -1
  257. package/features/security/shared/abstractions.d.ts +5 -14
  258. package/features/security/shared/abstractions.js +3 -16
  259. package/features/security/shared/abstractions.js.map +1 -1
  260. package/features/security/teams/CreateTeam/CreateTeamUseCase.d.ts +1 -3
  261. package/features/security/teams/CreateTeam/CreateTeamUseCase.js +3 -7
  262. package/features/security/teams/CreateTeam/CreateTeamUseCase.js.map +1 -1
  263. package/features/security/teams/CreateTeam/abstractions.d.ts +1 -0
  264. package/features/security/teams/CreateTeam/abstractions.js +1 -0
  265. package/features/security/teams/CreateTeam/abstractions.js.map +1 -1
  266. package/features/security/teams/CreateTeam/events.d.ts +6 -4
  267. package/features/security/teams/CreateTeam/events.js +8 -4
  268. package/features/security/teams/CreateTeam/events.js.map +1 -1
  269. package/features/security/teams/CreateTeam/feature.d.ts +4 -1
  270. package/features/security/teams/CreateTeam/index.d.ts +1 -1
  271. package/features/security/teams/CreateTeam/index.js +1 -1
  272. package/features/security/teams/CreateTeam/index.js.map +1 -1
  273. package/features/security/teams/CreateTeam/schema.d.ts +2 -12
  274. package/features/security/teams/DeleteTeam/abstractions.d.ts +1 -0
  275. package/features/security/teams/DeleteTeam/abstractions.js +1 -0
  276. package/features/security/teams/DeleteTeam/abstractions.js.map +1 -1
  277. package/features/security/teams/DeleteTeam/events.d.ts +6 -4
  278. package/features/security/teams/DeleteTeam/events.js +8 -4
  279. package/features/security/teams/DeleteTeam/events.js.map +1 -1
  280. package/features/security/teams/DeleteTeam/feature.d.ts +4 -1
  281. package/features/security/teams/GetTeam/abstractions.d.ts +1 -0
  282. package/features/security/teams/GetTeam/abstractions.js +1 -0
  283. package/features/security/teams/GetTeam/abstractions.js.map +1 -1
  284. package/features/security/teams/GetTeam/feature.d.ts +4 -1
  285. package/features/security/teams/ListTeams/abstractions.d.ts +1 -0
  286. package/features/security/teams/ListTeams/abstractions.js +1 -0
  287. package/features/security/teams/ListTeams/abstractions.js.map +1 -1
  288. package/features/security/teams/ListTeams/feature.d.ts +4 -1
  289. package/features/security/teams/UpdateTeam/UpdateTeamUseCase.js +1 -1
  290. package/features/security/teams/UpdateTeam/UpdateTeamUseCase.js.map +1 -1
  291. package/features/security/teams/UpdateTeam/abstractions.d.ts +1 -0
  292. package/features/security/teams/UpdateTeam/abstractions.js +1 -0
  293. package/features/security/teams/UpdateTeam/abstractions.js.map +1 -1
  294. package/features/security/teams/UpdateTeam/events.d.ts +6 -4
  295. package/features/security/teams/UpdateTeam/events.js +8 -4
  296. package/features/security/teams/UpdateTeam/events.js.map +1 -1
  297. package/features/security/teams/UpdateTeam/feature.d.ts +4 -1
  298. package/features/security/teams/UpdateTeam/schema.d.ts +2 -10
  299. package/features/security/teams/feature.d.ts +4 -1
  300. package/features/security/teams/feature.js +6 -0
  301. package/features/security/teams/feature.js.map +1 -1
  302. package/features/security/teams/shared/TeamProvider.d.ts +13 -0
  303. package/features/security/teams/shared/TeamProvider.js +29 -0
  304. package/features/security/teams/shared/TeamProvider.js.map +1 -0
  305. package/features/security/teams/shared/TeamsRepository.js +20 -18
  306. package/features/security/teams/shared/TeamsRepository.js.map +1 -1
  307. package/features/security/teams/shared/abstractions.d.ts +18 -0
  308. package/features/security/teams/shared/abstractions.js +3 -0
  309. package/features/security/teams/shared/abstractions.js.map +1 -1
  310. package/features/security/teams/shared/decorators/TeamsRepositoryCachingDecorator.d.ts +17 -0
  311. package/features/security/teams/shared/decorators/TeamsRepositoryCachingDecorator.js +76 -0
  312. package/features/security/teams/shared/decorators/TeamsRepositoryCachingDecorator.js.map +1 -0
  313. package/features/security/utils/verifyJwtUsingJwk.d.ts +2 -4
  314. package/features/security/utils/verifyJwtUsingJwk.js +1 -1
  315. package/features/security/utils/verifyJwtUsingJwk.js.map +1 -1
  316. package/features/system/InstallSystem/abstractions.d.ts +4 -5
  317. package/features/system/InstallSystem/abstractions.js +3 -4
  318. package/features/system/InstallSystem/abstractions.js.map +1 -1
  319. package/features/system/InstallSystem/events.js +2 -2
  320. package/features/system/InstallSystem/events.js.map +1 -1
  321. package/features/system/InstallSystem/feature.d.ts +5 -1
  322. package/features/system/InstallSystem/index.d.ts +1 -1
  323. package/features/system/InstallSystem/index.js +1 -1
  324. package/features/system/InstallSystem/index.js.map +1 -1
  325. package/features/system/SystemFeature.d.ts +4 -1
  326. package/features/task/TaskController/abstractions.d.ts +1 -0
  327. package/features/task/TaskController/abstractions.js +1 -0
  328. package/features/task/TaskController/abstractions.js.map +1 -1
  329. package/features/task/TaskDefinition/abstractions.d.ts +7 -1
  330. package/features/task/TaskDefinition/abstractions.js +1 -0
  331. package/features/task/TaskDefinition/abstractions.js.map +1 -1
  332. package/features/task/TaskService/abstractions.d.ts +1 -0
  333. package/features/task/TaskService/abstractions.js +1 -0
  334. package/features/task/TaskService/abstractions.js.map +1 -1
  335. package/features/tenancy/CreateTenant/abstractions.d.ts +9 -7
  336. package/features/tenancy/CreateTenant/abstractions.js +7 -5
  337. package/features/tenancy/CreateTenant/abstractions.js.map +1 -1
  338. package/features/tenancy/CreateTenant/events.js +3 -3
  339. package/features/tenancy/CreateTenant/events.js.map +1 -1
  340. package/features/tenancy/CreateTenant/feature.d.ts +5 -1
  341. package/features/tenancy/CreateTenant/index.d.ts +1 -1
  342. package/features/tenancy/CreateTenant/index.js +1 -1
  343. package/features/tenancy/CreateTenant/index.js.map +1 -1
  344. package/features/tenancy/DeleteTenant/abstractions.d.ts +9 -4
  345. package/features/tenancy/DeleteTenant/abstractions.js +7 -2
  346. package/features/tenancy/DeleteTenant/abstractions.js.map +1 -1
  347. package/features/tenancy/DeleteTenant/events.js +3 -3
  348. package/features/tenancy/DeleteTenant/events.js.map +1 -1
  349. package/features/tenancy/DeleteTenant/feature.d.ts +5 -1
  350. package/features/tenancy/DeleteTenant/index.d.ts +1 -1
  351. package/features/tenancy/DeleteTenant/index.js +1 -1
  352. package/features/tenancy/DeleteTenant/index.js.map +1 -1
  353. package/features/tenancy/GetRootTenant/feature.d.ts +5 -1
  354. package/features/tenancy/GetTenantById/abstractions.d.ts +3 -0
  355. package/features/tenancy/GetTenantById/abstractions.js +3 -9
  356. package/features/tenancy/GetTenantById/abstractions.js.map +1 -1
  357. package/features/tenancy/GetTenantById/feature.d.ts +5 -1
  358. package/features/tenancy/InstallTenant/abstractions.d.ts +5 -11
  359. package/features/tenancy/InstallTenant/abstractions.js +4 -13
  360. package/features/tenancy/InstallTenant/abstractions.js.map +1 -1
  361. package/features/tenancy/InstallTenant/events.js +2 -2
  362. package/features/tenancy/InstallTenant/events.js.map +1 -1
  363. package/features/tenancy/InstallTenant/feature.d.ts +5 -1
  364. package/features/tenancy/InstallTenant/index.d.ts +1 -1
  365. package/features/tenancy/InstallTenant/index.js +1 -1
  366. package/features/tenancy/InstallTenant/index.js.map +1 -1
  367. package/features/tenancy/ListTenants/feature.d.ts +5 -1
  368. package/features/tenancy/TenancyFeature.d.ts +4 -1
  369. package/features/tenancy/TenancyFeature.js.map +1 -1
  370. package/features/tenancy/TenantContext/abstractions.d.ts +1 -0
  371. package/features/tenancy/TenantContext/abstractions.js +1 -0
  372. package/features/tenancy/TenantContext/abstractions.js.map +1 -1
  373. package/features/tenancy/TenantContext/feature.d.ts +4 -1
  374. package/features/tenancy/UpdateTenant/abstractions.d.ts +9 -4
  375. package/features/tenancy/UpdateTenant/abstractions.js +7 -2
  376. package/features/tenancy/UpdateTenant/abstractions.js.map +1 -1
  377. package/features/tenancy/UpdateTenant/events.js +3 -3
  378. package/features/tenancy/UpdateTenant/events.js.map +1 -1
  379. package/features/tenancy/UpdateTenant/feature.d.ts +5 -1
  380. package/features/tenancy/UpdateTenant/index.d.ts +1 -1
  381. package/features/tenancy/UpdateTenant/index.js +1 -1
  382. package/features/tenancy/UpdateTenant/index.js.map +1 -1
  383. package/features/users/AdminUsersFeature.d.ts +4 -1
  384. package/features/users/AdminUsersFeature.js.map +1 -1
  385. package/features/users/CreateUser/CreateUserUseCase.js +1 -1
  386. package/features/users/CreateUser/CreateUserUseCase.js.map +1 -1
  387. package/features/users/CreateUser/abstractions.d.ts +1 -0
  388. package/features/users/CreateUser/abstractions.js +1 -1
  389. package/features/users/CreateUser/abstractions.js.map +1 -1
  390. package/features/users/CreateUser/events.d.ts +6 -4
  391. package/features/users/CreateUser/events.js +8 -4
  392. package/features/users/CreateUser/events.js.map +1 -1
  393. package/features/users/CreateUser/feature.d.ts +4 -1
  394. package/features/users/CreateUser/schema.d.ts +4 -36
  395. package/features/users/DeleteUser/abstractions.d.ts +1 -0
  396. package/features/users/DeleteUser/abstractions.js +1 -1
  397. package/features/users/DeleteUser/abstractions.js.map +1 -1
  398. package/features/users/DeleteUser/events.d.ts +6 -4
  399. package/features/users/DeleteUser/events.js +8 -4
  400. package/features/users/DeleteUser/events.js.map +1 -1
  401. package/features/users/DeleteUser/feature.d.ts +4 -1
  402. package/features/users/ExternalIdpUserSync/ExternalIdpUserSyncHandler.d.ts +3 -3
  403. package/features/users/ExternalIdpUserSync/ExternalIdpUserSyncHandler.js +2 -2
  404. package/features/users/ExternalIdpUserSync/ExternalIdpUserSyncHandler.js.map +1 -1
  405. package/features/users/ExternalIdpUserSync/feature.d.ts +4 -1
  406. package/features/users/GetIdentityProfile/feature.d.ts +4 -1
  407. package/features/users/GetUser/abstractions.d.ts +1 -0
  408. package/features/users/GetUser/abstractions.js +1 -1
  409. package/features/users/GetUser/abstractions.js.map +1 -1
  410. package/features/users/GetUser/feature.d.ts +4 -1
  411. package/features/users/ListUserTeams/abstractions.d.ts +1 -0
  412. package/features/users/ListUserTeams/abstractions.js +1 -1
  413. package/features/users/ListUserTeams/abstractions.js.map +1 -1
  414. package/features/users/ListUserTeams/feature.d.ts +4 -1
  415. package/features/users/ListUsers/abstractions.d.ts +1 -0
  416. package/features/users/ListUsers/abstractions.js +1 -1
  417. package/features/users/ListUsers/abstractions.js.map +1 -1
  418. package/features/users/ListUsers/feature.d.ts +4 -1
  419. package/features/users/UpdateUser/UpdateUserUseCase.js +1 -1
  420. package/features/users/UpdateUser/UpdateUserUseCase.js.map +1 -1
  421. package/features/users/UpdateUser/abstractions.d.ts +1 -0
  422. package/features/users/UpdateUser/abstractions.js +1 -1
  423. package/features/users/UpdateUser/abstractions.js.map +1 -1
  424. package/features/users/UpdateUser/events.d.ts +6 -4
  425. package/features/users/UpdateUser/events.js +8 -4
  426. package/features/users/UpdateUser/events.js.map +1 -1
  427. package/features/users/UpdateUser/feature.d.ts +4 -1
  428. package/features/users/UpdateUser/schema.d.ts +4 -30
  429. package/features/users/shared/abstractions.d.ts +1 -0
  430. package/features/users/shared/abstractions.js +1 -1
  431. package/features/users/shared/abstractions.js.map +1 -1
  432. package/features/wcp/WcpContext/WcpContext.d.ts +3 -0
  433. package/features/wcp/WcpContext/WcpContext.js +9 -0
  434. package/features/wcp/WcpContext/WcpContext.js.map +1 -1
  435. package/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.d.ts +15 -0
  436. package/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.js +24 -3
  437. package/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.js.map +1 -1
  438. package/features/wcp/WcpContext/feature.d.ts +5 -1
  439. package/features/wcp/WcpFeature.d.ts +4 -1
  440. package/features/wcp/WcpFeature.js.map +1 -1
  441. package/graphql/security/NotAuthorizedResponse.d.ts +1 -0
  442. package/graphql/security/NotAuthorizedResponse.js +1 -0
  443. package/graphql/security/NotAuthorizedResponse.js.map +1 -1
  444. package/graphql/wcp/graphql.js +1 -0
  445. package/graphql/wcp/graphql.js.map +1 -1
  446. package/idp/abstractions.d.ts +4 -0
  447. package/idp/abstractions.js +4 -0
  448. package/idp/abstractions.js.map +1 -1
  449. package/idp/feature.d.ts +4 -1
  450. package/legacy/security/createSecurityContext.js +0 -11
  451. package/legacy/security/createSecurityContext.js.map +1 -1
  452. package/legacy/security/plugins/authenticateUsingHttpHeader.d.ts +1 -1
  453. package/legacy/wcp/LegacyWcpContext.d.ts +3 -0
  454. package/legacy/wcp/LegacyWcpContext.js +9 -0
  455. package/legacy/wcp/LegacyWcpContext.js.map +1 -1
  456. package/legacy/wcp/context.d.ts +1 -3
  457. package/legacy/wcp/context.js +4 -2
  458. package/legacy/wcp/context.js.map +1 -1
  459. package/models/base/BaseModel.js +2 -2
  460. package/models/base/BaseModel.js.map +1 -1
  461. package/models/base/ModelBuilder.d.ts +2 -2
  462. package/models/base/ModelBuilder.js +21 -2
  463. package/models/base/ModelBuilder.js.map +1 -1
  464. package/models/cms/FieldBuilder.d.ts +3 -2
  465. package/models/cms/FieldBuilder.js +12 -17
  466. package/models/cms/FieldBuilder.js.map +1 -1
  467. package/models/cms/FieldBuilderRegistry.d.ts +1 -1
  468. package/models/cms/FieldBuilderRegistry.js.map +1 -1
  469. package/models/cms/FieldDefinitionsBuilder.d.ts +1 -0
  470. package/models/cms/FieldDefinitionsBuilder.js +15 -17
  471. package/models/cms/FieldDefinitionsBuilder.js.map +1 -1
  472. package/models/cms/PrivateCmsModelBuilder.js +1 -1
  473. package/models/cms/PrivateCmsModelBuilder.js.map +1 -1
  474. package/models/cms/abstractions.d.ts +1 -1
  475. package/models/cms/abstractions.js.map +1 -1
  476. package/models/cms/fieldsBuilder.md +4 -2
  477. package/models/simple/Page/abstractions.d.ts +1 -11
  478. package/package.json +27 -68
  479. package/types/security.d.ts +13 -10
  480. package/types/security.js.map +1 -1
  481. package/features/security/shared/abstractions.ts.bak +0 -52
  482. package/legacy/security/plugins/SecurityRolePlugin.d.ts +0 -16
  483. package/legacy/security/plugins/SecurityRolePlugin.js +0 -33
  484. package/legacy/security/plugins/SecurityRolePlugin.js.map +0 -1
  485. package/legacy/security/plugins/SecurityTeamPlugin.d.ts +0 -16
  486. package/legacy/security/plugins/SecurityTeamPlugin.js +0 -33
  487. package/legacy/security/plugins/SecurityTeamPlugin.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  export { DeleteTenantFeature } from "./feature.js";
2
- export { DeleteTenantUseCase, DeleteTenantRepository, DeleteTenantGateway, TenantBeforeDeleteHandler, TenantAfterDeleteHandler } from "./abstractions.js";
2
+ export { DeleteTenantUseCase, DeleteTenantRepository, DeleteTenantGateway, TenantBeforeDeleteEventHandler, TenantAfterDeleteEventHandler } from "./abstractions.js";
3
3
  export { TenantBeforeDeleteEvent, TenantAfterDeleteEvent } from "./events.js";
4
4
 
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DeleteTenantFeature","DeleteTenantUseCase","DeleteTenantRepository","DeleteTenantGateway","TenantBeforeDeleteHandler","TenantAfterDeleteHandler","TenantBeforeDeleteEvent","TenantAfterDeleteEvent"],"sources":["index.ts"],"sourcesContent":["export { DeleteTenantFeature } from \"./feature.js\";\nexport {\n DeleteTenantUseCase,\n DeleteTenantRepository,\n DeleteTenantGateway,\n TenantBeforeDeleteHandler,\n TenantAfterDeleteHandler\n} from \"./abstractions.js\";\nexport { TenantBeforeDeleteEvent, TenantAfterDeleteEvent } from \"./events.js\";\n"],"mappings":"AAAA,SAASA,mBAAmB;AAC5B,SACIC,mBAAmB,EACnBC,sBAAsB,EACtBC,mBAAmB,EACnBC,yBAAyB,EACzBC,wBAAwB;AAE5B,SAASC,uBAAuB,EAAEC,sBAAsB","ignoreList":[]}
1
+ {"version":3,"names":["DeleteTenantFeature","DeleteTenantUseCase","DeleteTenantRepository","DeleteTenantGateway","TenantBeforeDeleteEventHandler","TenantAfterDeleteEventHandler","TenantBeforeDeleteEvent","TenantAfterDeleteEvent"],"sources":["index.ts"],"sourcesContent":["export { DeleteTenantFeature } from \"./feature.js\";\nexport {\n DeleteTenantUseCase,\n DeleteTenantRepository,\n DeleteTenantGateway,\n TenantBeforeDeleteEventHandler,\n TenantAfterDeleteEventHandler\n} from \"./abstractions.js\";\nexport { TenantBeforeDeleteEvent, TenantAfterDeleteEvent } from \"./events.js\";\n"],"mappings":"AAAA,SAASA,mBAAmB;AAC5B,SACIC,mBAAmB,EACnBC,sBAAsB,EACtBC,mBAAmB,EACnBC,8BAA8B,EAC9BC,6BAA6B;AAEjC,SAASC,uBAAuB,EAAEC,sBAAsB","ignoreList":[]}
@@ -1 +1,5 @@
1
- export declare const GetRootTenantFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ import type { Container } from "@webiny/di";
2
+ export declare const GetRootTenantFeature: {
3
+ name: string;
4
+ register(container: Container): void;
5
+ };
@@ -9,6 +9,7 @@ export type GetTenantByIdError = {
9
9
  export interface IGetTenantByIdUseCase {
10
10
  execute(id: string): Promise<Result<Tenant, GetTenantByIdError>>;
11
11
  }
12
+ /** Retrieve a tenant by its ID. */
12
13
  export declare const GetTenantByIdUseCase: import("@webiny/di").Abstraction<IGetTenantByIdUseCase>;
13
14
  export declare namespace GetTenantByIdUseCase {
14
15
  type Interface = IGetTenantByIdUseCase;
@@ -18,6 +19,7 @@ export declare namespace GetTenantByIdUseCase {
18
19
  export interface IGetTenantByIdRepository {
19
20
  getById(id: string): Promise<Tenant | null>;
20
21
  }
22
+ /** Fetch a tenant by ID from storage. */
21
23
  export declare const GetTenantByIdRepository: import("@webiny/di").Abstraction<IGetTenantByIdRepository>;
22
24
  export declare namespace GetTenantByIdRepository {
23
25
  type Interface = IGetTenantByIdRepository;
@@ -25,6 +27,7 @@ export declare namespace GetTenantByIdRepository {
25
27
  export interface IGetTenantByIdGateway {
26
28
  getTenantById(id: string): Promise<Tenant | null>;
27
29
  }
30
+ /** Storage gateway for tenant retrieval by ID. */
28
31
  export declare const GetTenantByIdGateway: import("@webiny/di").Abstraction<IGetTenantByIdGateway>;
29
32
  export declare namespace GetTenantByIdGateway {
30
33
  type Interface = IGetTenantByIdGateway;
@@ -1,15 +1,9 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
-
3
- // Use Case Abstraction
4
-
2
+ /** Retrieve a tenant by its ID. */
5
3
  export const GetTenantByIdUseCase = createAbstraction("Tenancy/GetTenantByIdUseCase");
6
-
7
- // Repository Abstraction
8
-
4
+ /** Fetch a tenant by ID from storage. */
9
5
  export const GetTenantByIdRepository = createAbstraction("Tenancy/GetTenantByIdRepository");
10
-
11
- // Gateway Abstraction
12
-
6
+ /** Storage gateway for tenant retrieval by ID. */
13
7
  export const GetTenantByIdGateway = createAbstraction("Tenancy/GetTenantByIdGateway");
14
8
 
15
9
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","GetTenantByIdUseCase","GetTenantByIdRepository","GetTenantByIdGateway"],"sources":["abstractions.ts"],"sourcesContent":["import { type Result, createAbstraction } from \"@webiny/feature/api\";\nimport type { Tenant } from \"~/types/tenancy.js\";\n\nexport type GetTenantByIdError = { type: \"NOT_FOUND\" } | { type: \"UNKNOWN\"; cause: Error };\n\n// Use Case Abstraction\nexport interface IGetTenantByIdUseCase {\n execute(id: string): Promise<Result<Tenant, GetTenantByIdError>>;\n}\n\nexport const GetTenantByIdUseCase = createAbstraction<IGetTenantByIdUseCase>(\n \"Tenancy/GetTenantByIdUseCase\"\n);\n\nexport namespace GetTenantByIdUseCase {\n export type Interface = IGetTenantByIdUseCase;\n export type Error = GetTenantByIdError;\n export type Result = ReturnType<IGetTenantByIdUseCase[\"execute\"]>;\n}\n\n// Repository Abstraction\nexport interface IGetTenantByIdRepository {\n getById(id: string): Promise<Tenant | null>;\n}\n\nexport const GetTenantByIdRepository = createAbstraction<IGetTenantByIdRepository>(\n \"Tenancy/GetTenantByIdRepository\"\n);\n\nexport namespace GetTenantByIdRepository {\n export type Interface = IGetTenantByIdRepository;\n}\n\n// Gateway Abstraction\nexport interface IGetTenantByIdGateway {\n getTenantById(id: string): Promise<Tenant | null>;\n}\n\nexport const GetTenantByIdGateway = createAbstraction<IGetTenantByIdGateway>(\n \"Tenancy/GetTenantByIdGateway\"\n);\n\nexport namespace GetTenantByIdGateway {\n export type Interface = IGetTenantByIdGateway;\n}\n"],"mappings":"AAAA,SAAsBA,iBAAiB,QAAQ,qBAAqB;;AAKpE;;AAKA,OAAO,MAAMC,oBAAoB,GAAGD,iBAAiB,CACjD,8BACJ,CAAC;;AAQD;;AAKA,OAAO,MAAME,uBAAuB,GAAGF,iBAAiB,CACpD,iCACJ,CAAC;;AAMD;;AAKA,OAAO,MAAMG,oBAAoB,GAAGH,iBAAiB,CACjD,8BACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","GetTenantByIdUseCase","GetTenantByIdRepository","GetTenantByIdGateway"],"sources":["abstractions.ts"],"sourcesContent":["import { type Result, createAbstraction } from \"@webiny/feature/api\";\nimport type { Tenant } from \"~/types/tenancy.js\";\n\nexport type GetTenantByIdError = { type: \"NOT_FOUND\" } | { type: \"UNKNOWN\"; cause: Error };\n\nexport interface IGetTenantByIdUseCase {\n execute(id: string): Promise<Result<Tenant, GetTenantByIdError>>;\n}\n\n/** Retrieve a tenant by its ID. */\nexport const GetTenantByIdUseCase = createAbstraction<IGetTenantByIdUseCase>(\n \"Tenancy/GetTenantByIdUseCase\"\n);\n\nexport namespace GetTenantByIdUseCase {\n export type Interface = IGetTenantByIdUseCase;\n export type Error = GetTenantByIdError;\n export type Result = ReturnType<IGetTenantByIdUseCase[\"execute\"]>;\n}\n\nexport interface IGetTenantByIdRepository {\n getById(id: string): Promise<Tenant | null>;\n}\n\n/** Fetch a tenant by ID from storage. */\nexport const GetTenantByIdRepository = createAbstraction<IGetTenantByIdRepository>(\n \"Tenancy/GetTenantByIdRepository\"\n);\n\nexport namespace GetTenantByIdRepository {\n export type Interface = IGetTenantByIdRepository;\n}\n\nexport interface IGetTenantByIdGateway {\n getTenantById(id: string): Promise<Tenant | null>;\n}\n\n/** Storage gateway for tenant retrieval by ID. */\nexport const GetTenantByIdGateway = createAbstraction<IGetTenantByIdGateway>(\n \"Tenancy/GetTenantByIdGateway\"\n);\n\nexport namespace GetTenantByIdGateway {\n export type Interface = IGetTenantByIdGateway;\n}\n"],"mappings":"AAAA,SAAsBA,iBAAiB,QAAQ,qBAAqB;AASpE;AACA,OAAO,MAAMC,oBAAoB,GAAGD,iBAAiB,CACjD,8BACJ,CAAC;AAYD;AACA,OAAO,MAAME,uBAAuB,GAAGF,iBAAiB,CACpD,iCACJ,CAAC;AAUD;AACA,OAAO,MAAMG,oBAAoB,GAAGH,iBAAiB,CACjD,8BACJ,CAAC","ignoreList":[]}
@@ -1 +1,5 @@
1
- export declare const GetTenantByIdFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ import type { Container } from "@webiny/di";
2
+ export declare const GetTenantByIdFeature: {
3
+ name: string;
4
+ register(container: Container): void;
5
+ };
@@ -22,9 +22,6 @@ export interface TenantInstallationInput {
22
22
  tenant: Tenant;
23
23
  installationInput: AppInstallationData[];
24
24
  }
25
- /**
26
- * App Installer Abstraction
27
- */
28
25
  export interface IAppInstaller<TData = Record<string, any>> {
29
26
  readonly alwaysRun?: boolean;
30
27
  readonly appName: string;
@@ -40,27 +37,24 @@ export interface IAppInstaller<TData = Record<string, any>> {
40
37
  */
41
38
  uninstall(tenant: Tenant): Promise<void>;
42
39
  }
40
+ /** Install an application on a tenant with rollback support. */
43
41
  export declare const AppInstaller: import("@webiny/di").Abstraction<IAppInstaller<Record<string, any>>>;
44
42
  export declare namespace AppInstaller {
45
43
  type Interface<T = any> = IAppInstaller<T>;
46
44
  }
47
- /**
48
- * Use Case Abstraction
49
- */
50
45
  export interface IInstallTenantUseCase {
51
46
  execute(input: TenantInstallationInput): Promise<Result<void, IInstallTenantErrors[keyof IInstallTenantErrors]>>;
52
47
  }
48
+ /** Run all app installers for a tenant. */
53
49
  export declare const InstallTenantUseCase: import("@webiny/di").Abstraction<IInstallTenantUseCase>;
54
50
  export declare namespace InstallTenantUseCase {
55
51
  type Interface = IInstallTenantUseCase;
56
52
  type Input = TenantInstallationInput;
57
53
  type Errors = IInstallTenantErrors[keyof IInstallTenantErrors];
58
54
  }
59
- /**
60
- * Event Handler Abstraction
61
- */
62
- export declare const TenantInstalledHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<TenantInstalledPayload>>>;
63
- export declare namespace TenantInstalledHandler {
55
+ /** Hook into tenant lifecycle after a tenant is installed. */
56
+ export declare const TenantInstalledEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<TenantInstalledPayload>>>;
57
+ export declare namespace TenantInstalledEventHandler {
64
58
  type Interface = IEventHandler<DomainEvent<TenantInstalledPayload>>;
65
59
  type Event = DomainEvent<TenantInstalledPayload>;
66
60
  }
@@ -8,20 +8,11 @@ import { createAbstraction } from "@webiny/feature/api";
8
8
  * Types
9
9
  */
10
10
 
11
- /**
12
- * App Installer Abstraction
13
- */
14
-
11
+ /** Install an application on a tenant with rollback support. */
15
12
  export const AppInstaller = createAbstraction("AppInstaller");
16
-
17
- /**
18
- * Use Case Abstraction
19
- */
20
-
13
+ /** Run all app installers for a tenant. */
21
14
  export const InstallTenantUseCase = createAbstraction("InstallTenantUseCase");
22
- /**
23
- * Event Handler Abstraction
24
- */
25
- export const TenantInstalledHandler = createAbstraction("TenantInstalledHandler");
15
+ /** Hook into tenant lifecycle after a tenant is installed. */
16
+ export const TenantInstalledEventHandler = createAbstraction("TenantInstalledEventHandler");
26
17
 
27
18
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","AppInstaller","InstallTenantUseCase","TenantInstalledHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport type { IEventHandler, DomainEvent } from \"~/features/eventPublisher/index.js\";\nimport type { Tenant } from \"~/types/tenancy.js\";\nimport type { TenantInstalledPayload } from \"./events.js\";\nimport { InstallTenantError, InstallationDependencyError } from \"./errors.js\";\n\nexport type { Tenant };\n\n/**\n * Errors\n */\nexport interface IInstallTenantErrors {\n base: InstallTenantError;\n dependency: InstallationDependencyError;\n}\n\n/**\n * Types\n */\nexport interface AppInstallationData {\n app: string;\n data: Record<string, any>;\n}\n\nexport interface TenantInstallationInput {\n tenant: Tenant;\n installationInput: AppInstallationData[];\n}\n\n/**\n * App Installer Abstraction\n */\nexport interface IAppInstaller<TData = Record<string, any>> {\n readonly alwaysRun?: boolean;\n readonly appName: string;\n readonly dependsOn: string[];\n\n /**\n * Perform the installation\n * If this succeeds, uninstall() MUST be able to revert it\n */\n install(tenant: Tenant, data: TData): Promise<void>;\n\n /**\n * Revert the installation\n * Called if any subsequent installer fails\n */\n uninstall(tenant: Tenant): Promise<void>;\n}\n\nexport const AppInstaller = createAbstraction<IAppInstaller>(\"AppInstaller\");\n\nexport namespace AppInstaller {\n export type Interface<T = any> = IAppInstaller<T>;\n}\n\n/**\n * Use Case Abstraction\n */\nexport interface IInstallTenantUseCase {\n execute(\n input: TenantInstallationInput\n ): Promise<Result<void, IInstallTenantErrors[keyof IInstallTenantErrors]>>;\n}\n\nexport const InstallTenantUseCase =\n createAbstraction<IInstallTenantUseCase>(\"InstallTenantUseCase\");\n\nexport namespace InstallTenantUseCase {\n export type Interface = IInstallTenantUseCase;\n export type Input = TenantInstallationInput;\n export type Errors = IInstallTenantErrors[keyof IInstallTenantErrors];\n}\n\n/**\n * Event Handler Abstraction\n */\nexport const TenantInstalledHandler =\n createAbstraction<IEventHandler<DomainEvent<TenantInstalledPayload>>>(\"TenantInstalledHandler\");\n\nexport namespace TenantInstalledHandler {\n export type Interface = IEventHandler<DomainEvent<TenantInstalledPayload>>;\n export type Event = DomainEvent<TenantInstalledPayload>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAgB,qBAAqB;;AAQ/D;AACA;AACA;;AAMA;AACA;AACA;;AAWA;AACA;AACA;;AAmBA,OAAO,MAAMC,YAAY,GAAGD,iBAAiB,CAAgB,cAAc,CAAC;;AAM5E;AACA;AACA;;AAOA,OAAO,MAAME,oBAAoB,GAC7BF,iBAAiB,CAAwB,sBAAsB,CAAC;AAQpE;AACA;AACA;AACA,OAAO,MAAMG,sBAAsB,GAC/BH,iBAAiB,CAAqD,wBAAwB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","AppInstaller","InstallTenantUseCase","TenantInstalledEventHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport type { IEventHandler, DomainEvent } from \"~/features/eventPublisher/index.js\";\nimport type { Tenant } from \"~/types/tenancy.js\";\nimport type { TenantInstalledPayload } from \"./events.js\";\nimport { InstallTenantError, InstallationDependencyError } from \"./errors.js\";\n\nexport type { Tenant };\n\n/**\n * Errors\n */\nexport interface IInstallTenantErrors {\n base: InstallTenantError;\n dependency: InstallationDependencyError;\n}\n\n/**\n * Types\n */\nexport interface AppInstallationData {\n app: string;\n data: Record<string, any>;\n}\n\nexport interface TenantInstallationInput {\n tenant: Tenant;\n installationInput: AppInstallationData[];\n}\n\nexport interface IAppInstaller<TData = Record<string, any>> {\n readonly alwaysRun?: boolean;\n readonly appName: string;\n readonly dependsOn: string[];\n\n /**\n * Perform the installation\n * If this succeeds, uninstall() MUST be able to revert it\n */\n install(tenant: Tenant, data: TData): Promise<void>;\n\n /**\n * Revert the installation\n * Called if any subsequent installer fails\n */\n uninstall(tenant: Tenant): Promise<void>;\n}\n\n/** Install an application on a tenant with rollback support. */\nexport const AppInstaller = createAbstraction<IAppInstaller>(\"AppInstaller\");\n\nexport namespace AppInstaller {\n export type Interface<T = any> = IAppInstaller<T>;\n}\n\nexport interface IInstallTenantUseCase {\n execute(\n input: TenantInstallationInput\n ): Promise<Result<void, IInstallTenantErrors[keyof IInstallTenantErrors]>>;\n}\n\n/** Run all app installers for a tenant. */\nexport const InstallTenantUseCase =\n createAbstraction<IInstallTenantUseCase>(\"InstallTenantUseCase\");\n\nexport namespace InstallTenantUseCase {\n export type Interface = IInstallTenantUseCase;\n export type Input = TenantInstallationInput;\n export type Errors = IInstallTenantErrors[keyof IInstallTenantErrors];\n}\n\n/** Hook into tenant lifecycle after a tenant is installed. */\nexport const TenantInstalledEventHandler = createAbstraction<\n IEventHandler<DomainEvent<TenantInstalledPayload>>\n>(\"TenantInstalledEventHandler\");\n\nexport namespace TenantInstalledEventHandler {\n export type Interface = IEventHandler<DomainEvent<TenantInstalledPayload>>;\n export type Event = DomainEvent<TenantInstalledPayload>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAgB,qBAAqB;;AAQ/D;AACA;AACA;;AAMA;AACA;AACA;;AA6BA;AACA,OAAO,MAAMC,YAAY,GAAGD,iBAAiB,CAAgB,cAAc,CAAC;AAY5E;AACA,OAAO,MAAME,oBAAoB,GAC7BF,iBAAiB,CAAwB,sBAAsB,CAAC;AAQpE;AACA,OAAO,MAAMG,2BAA2B,GAAGH,iBAAiB,CAE1D,6BAA6B,CAAC","ignoreList":[]}
@@ -1,9 +1,9 @@
1
1
  import { DomainEvent } from "../../eventPublisher/index.js";
2
- import { TenantInstalledHandler } from "./abstractions.js";
2
+ import { TenantInstalledEventHandler } from "./abstractions.js";
3
3
  export class TenantInstalledEvent extends DomainEvent {
4
4
  eventType = "tenant.installed";
5
5
  getHandlerAbstraction() {
6
- return TenantInstalledHandler;
6
+ return TenantInstalledEventHandler;
7
7
  }
8
8
  }
9
9
 
@@ -1 +1 @@
1
- {"version":3,"names":["DomainEvent","TenantInstalledHandler","TenantInstalledEvent","eventType","getHandlerAbstraction"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"~/features/eventPublisher/index.js\";\nimport type { Tenant } from \"~/types/tenancy.js\";\nimport { TenantInstalledHandler } from \"./abstractions.js\";\n\nexport interface TenantInstalledPayload {\n tenant: Tenant;\n installedApps: string[];\n}\n\nexport class TenantInstalledEvent extends DomainEvent<TenantInstalledPayload> {\n eventType = \"tenant.installed\" as const;\n\n getHandlerAbstraction() {\n return TenantInstalledHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW;AAEpB,SAASC,sBAAsB;AAO/B,OAAO,MAAMC,oBAAoB,SAASF,WAAW,CAAyB;EAC1EG,SAAS,GAAG,kBAAkB;EAE9BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,sBAAsB;EACjC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["DomainEvent","TenantInstalledEventHandler","TenantInstalledEvent","eventType","getHandlerAbstraction"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"~/features/eventPublisher/index.js\";\nimport type { Tenant } from \"~/types/tenancy.js\";\nimport { TenantInstalledEventHandler } from \"./abstractions.js\";\n\nexport interface TenantInstalledPayload {\n tenant: Tenant;\n installedApps: string[];\n}\n\nexport class TenantInstalledEvent extends DomainEvent<TenantInstalledPayload> {\n eventType = \"tenant.installed\" as const;\n\n getHandlerAbstraction() {\n return TenantInstalledEventHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW;AAEpB,SAASC,2BAA2B;AAOpC,OAAO,MAAMC,oBAAoB,SAASF,WAAW,CAAyB;EAC1EG,SAAS,GAAG,kBAAkB;EAE9BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,2BAA2B;EACtC;AACJ","ignoreList":[]}
@@ -1 +1,5 @@
1
- export declare const InstallTenantFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ import type { Container } from "@webiny/di";
2
+ export declare const InstallTenantFeature: {
3
+ name: string;
4
+ register(container: Container): void;
5
+ };
@@ -1,5 +1,5 @@
1
1
  export { InstallTenantFeature } from "./feature.js";
2
- export { InstallTenantUseCase, AppInstaller, TenantInstalledHandler, type AppInstallationData, type TenantInstallationInput } from "./abstractions.js";
2
+ export { InstallTenantUseCase, AppInstaller, TenantInstalledEventHandler, type AppInstallationData, type TenantInstallationInput } from "./abstractions.js";
3
3
  export { DependencyResolver } from "./DependencyResolver.js";
4
4
  export { InstallTenantError, InstallationDependencyError } from "./errors.js";
5
5
  export { TenantInstalledEvent, type TenantInstalledPayload } from "./events.js";
@@ -1,5 +1,5 @@
1
1
  export { InstallTenantFeature } from "./feature.js";
2
- export { InstallTenantUseCase, AppInstaller, TenantInstalledHandler } from "./abstractions.js";
2
+ export { InstallTenantUseCase, AppInstaller, TenantInstalledEventHandler } from "./abstractions.js";
3
3
  export { DependencyResolver } from "./DependencyResolver.js";
4
4
  export { InstallTenantError, InstallationDependencyError } from "./errors.js";
5
5
  export { TenantInstalledEvent } from "./events.js";
@@ -1 +1 @@
1
- {"version":3,"names":["InstallTenantFeature","InstallTenantUseCase","AppInstaller","TenantInstalledHandler","DependencyResolver","InstallTenantError","InstallationDependencyError","TenantInstalledEvent"],"sources":["index.ts"],"sourcesContent":["export { InstallTenantFeature } from \"./feature.js\";\nexport {\n InstallTenantUseCase,\n AppInstaller,\n TenantInstalledHandler,\n type AppInstallationData,\n type TenantInstallationInput\n} from \"./abstractions.js\";\nexport { DependencyResolver } from \"./DependencyResolver.js\";\nexport { InstallTenantError, InstallationDependencyError } from \"./errors.js\";\nexport { TenantInstalledEvent, type TenantInstalledPayload } from \"./events.js\";\n"],"mappings":"AAAA,SAASA,oBAAoB;AAC7B,SACIC,oBAAoB,EACpBC,YAAY,EACZC,sBAAsB;AAI1B,SAASC,kBAAkB;AAC3B,SAASC,kBAAkB,EAAEC,2BAA2B;AACxD,SAASC,oBAAoB","ignoreList":[]}
1
+ {"version":3,"names":["InstallTenantFeature","InstallTenantUseCase","AppInstaller","TenantInstalledEventHandler","DependencyResolver","InstallTenantError","InstallationDependencyError","TenantInstalledEvent"],"sources":["index.ts"],"sourcesContent":["export { InstallTenantFeature } from \"./feature.js\";\nexport {\n InstallTenantUseCase,\n AppInstaller,\n TenantInstalledEventHandler,\n type AppInstallationData,\n type TenantInstallationInput\n} from \"./abstractions.js\";\nexport { DependencyResolver } from \"./DependencyResolver.js\";\nexport { InstallTenantError, InstallationDependencyError } from \"./errors.js\";\nexport { TenantInstalledEvent, type TenantInstalledPayload } from \"./events.js\";\n"],"mappings":"AAAA,SAASA,oBAAoB;AAC7B,SACIC,oBAAoB,EACpBC,YAAY,EACZC,2BAA2B;AAI/B,SAASC,kBAAkB;AAC3B,SAASC,kBAAkB,EAAEC,2BAA2B;AACxD,SAASC,oBAAoB","ignoreList":[]}
@@ -1 +1,5 @@
1
- export declare const ListTenantsFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ import type { Container } from "@webiny/di";
2
+ export declare const ListTenantsFeature: {
3
+ name: string;
4
+ register(container: Container): void;
5
+ };
@@ -1,2 +1,5 @@
1
1
  import type { TenancyStorageOperations as ITenancyStorageOperations } from "../../types/tenancy.js";
2
- export declare const TenancyFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<ITenancyStorageOperations>;
2
+ export declare const TenancyFeature: {
3
+ name: string;
4
+ register(container: import("@webiny/di").Container, context: ITenancyStorageOperations): void;
5
+ };
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","TenantCache","TenantCacheImpl","TenancyStorageOperations","GetRootTenantFeature","ListTenantsFeature","CreateTenantFeature","UpdateTenantFeature","DeleteTenantFeature","GetTenantByIdFeature","TenantContextFeature","InstallTenantFeature","TenancyFeature","name","register","container","storageOperations","registerInstance","ids","length","tenants","getTenantsByIds","map","_","index"],"sources":["TenancyFeature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport type { TenancyStorageOperations as ITenancyStorageOperations } from \"~/types/tenancy.js\";\nimport { TenantCache } from \"./shared/abstractions.js\";\nimport { TenantCache as TenantCacheImpl } from \"./shared/TenantCache.js\";\nimport { TenancyStorageOperations } from \"./shared/storageOperations.js\";\nimport { GetRootTenantFeature } from \"./GetRootTenant/feature.js\";\nimport { ListTenantsFeature } from \"./ListTenants/feature.js\";\nimport { CreateTenantFeature } from \"./CreateTenant/feature.js\";\nimport { UpdateTenantFeature } from \"./UpdateTenant/feature.js\";\nimport { DeleteTenantFeature } from \"./DeleteTenant/feature.js\";\nimport { GetTenantByIdFeature } from \"./GetTenantById/feature.js\";\nimport { TenantContextFeature } from \"./TenantContext/feature.js\";\nimport { InstallTenantFeature } from \"./InstallTenant/index.js\";\n\nexport const TenancyFeature = createFeature({\n name: \"TenancyFeature\",\n register: (container, storageOperations: ITenancyStorageOperations) => {\n // Register storage operations abstraction (singleton)\n container.registerInstance(TenancyStorageOperations, storageOperations);\n\n // Register shared cache (singleton) - batch loader provided here\n container.registerInstance(\n TenantCache,\n new TenantCacheImpl(async (ids: readonly string[]) => {\n if (ids.length === 0) {\n return [];\n }\n const tenants = await storageOperations.getTenantsByIds(ids);\n return ids.map((_, index) => tenants[index]);\n })\n );\n\n // Register all features - they will auto-wire their dependencies from the container\n CreateTenantFeature.register(container);\n DeleteTenantFeature.register(container);\n GetRootTenantFeature.register(container);\n GetTenantByIdFeature.register(container);\n ListTenantsFeature.register(container);\n UpdateTenantFeature.register(container);\n TenantContextFeature.register(container);\n InstallTenantFeature.register(container);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AAEnD,SAASC,WAAW;AACpB,SAASA,WAAW,IAAIC,eAAe;AACvC,SAASC,wBAAwB;AACjC,SAASC,oBAAoB;AAC7B,SAASC,kBAAkB;AAC3B,SAASC,mBAAmB;AAC5B,SAASC,mBAAmB;AAC5B,SAASC,mBAAmB;AAC5B,SAASC,oBAAoB;AAC7B,SAASC,oBAAoB;AAC7B,SAASC,oBAAoB;AAE7B,OAAO,MAAMC,cAAc,GAAGZ,aAAa,CAAC;EACxCa,IAAI,EAAE,gBAAgB;EACtBC,QAAQ,EAAEA,CAACC,SAAS,EAAEC,iBAA4C,KAAK;IACnE;IACAD,SAAS,CAACE,gBAAgB,CAACd,wBAAwB,EAAEa,iBAAiB,CAAC;;IAEvE;IACAD,SAAS,CAACE,gBAAgB,CACtBhB,WAAW,EACX,IAAIC,eAAe,CAAC,MAAOgB,GAAsB,IAAK;MAClD,IAAIA,GAAG,CAACC,MAAM,KAAK,CAAC,EAAE;QAClB,OAAO,EAAE;MACb;MACA,MAAMC,OAAO,GAAG,MAAMJ,iBAAiB,CAACK,eAAe,CAACH,GAAG,CAAC;MAC5D,OAAOA,GAAG,CAACI,GAAG,CAAC,CAACC,CAAC,EAAEC,KAAK,KAAKJ,OAAO,CAACI,KAAK,CAAC,CAAC;IAChD,CAAC,CACL,CAAC;;IAED;IACAlB,mBAAmB,CAACQ,QAAQ,CAACC,SAAS,CAAC;IACvCP,mBAAmB,CAACM,QAAQ,CAACC,SAAS,CAAC;IACvCX,oBAAoB,CAACU,QAAQ,CAACC,SAAS,CAAC;IACxCN,oBAAoB,CAACK,QAAQ,CAACC,SAAS,CAAC;IACxCV,kBAAkB,CAACS,QAAQ,CAACC,SAAS,CAAC;IACtCR,mBAAmB,CAACO,QAAQ,CAACC,SAAS,CAAC;IACvCL,oBAAoB,CAACI,QAAQ,CAACC,SAAS,CAAC;IACxCJ,oBAAoB,CAACG,QAAQ,CAACC,SAAS,CAAC;EAC5C;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createFeature","TenantCache","TenantCacheImpl","TenancyStorageOperations","GetRootTenantFeature","ListTenantsFeature","CreateTenantFeature","UpdateTenantFeature","DeleteTenantFeature","GetTenantByIdFeature","TenantContextFeature","InstallTenantFeature","TenancyFeature","name","register","container","storageOperations","registerInstance","ids","length","tenants","getTenantsByIds","map","_","index"],"sources":["TenancyFeature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport type { TenancyStorageOperations as ITenancyStorageOperations } from \"~/types/tenancy.js\";\nimport { TenantCache } from \"./shared/abstractions.js\";\nimport { TenantCache as TenantCacheImpl } from \"./shared/TenantCache.js\";\nimport { TenancyStorageOperations } from \"./shared/storageOperations.js\";\nimport { GetRootTenantFeature } from \"./GetRootTenant/feature.js\";\nimport { ListTenantsFeature } from \"./ListTenants/feature.js\";\nimport { CreateTenantFeature } from \"./CreateTenant/feature.js\";\nimport { UpdateTenantFeature } from \"./UpdateTenant/feature.js\";\nimport { DeleteTenantFeature } from \"./DeleteTenant/feature.js\";\nimport { GetTenantByIdFeature } from \"./GetTenantById/feature.js\";\nimport { TenantContextFeature } from \"./TenantContext/feature.js\";\nimport { InstallTenantFeature } from \"./InstallTenant/index.js\";\n\nexport const TenancyFeature = createFeature<ITenancyStorageOperations>({\n name: \"TenancyFeature\",\n register: (container, storageOperations) => {\n // Register storage operations abstraction (singleton)\n container.registerInstance(TenancyStorageOperations, storageOperations);\n\n // Register shared cache (singleton) - batch loader provided here\n container.registerInstance(\n TenantCache,\n new TenantCacheImpl(async (ids: readonly string[]) => {\n if (ids.length === 0) {\n return [];\n }\n const tenants = await storageOperations.getTenantsByIds(ids);\n return ids.map((_, index) => tenants[index]);\n })\n );\n\n // Register all features - they will auto-wire their dependencies from the container\n CreateTenantFeature.register(container);\n DeleteTenantFeature.register(container);\n GetRootTenantFeature.register(container);\n GetTenantByIdFeature.register(container);\n ListTenantsFeature.register(container);\n UpdateTenantFeature.register(container);\n TenantContextFeature.register(container);\n InstallTenantFeature.register(container);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AAEnD,SAASC,WAAW;AACpB,SAASA,WAAW,IAAIC,eAAe;AACvC,SAASC,wBAAwB;AACjC,SAASC,oBAAoB;AAC7B,SAASC,kBAAkB;AAC3B,SAASC,mBAAmB;AAC5B,SAASC,mBAAmB;AAC5B,SAASC,mBAAmB;AAC5B,SAASC,oBAAoB;AAC7B,SAASC,oBAAoB;AAC7B,SAASC,oBAAoB;AAE7B,OAAO,MAAMC,cAAc,GAAGZ,aAAa,CAA4B;EACnEa,IAAI,EAAE,gBAAgB;EACtBC,QAAQ,EAAEA,CAACC,SAAS,EAAEC,iBAAiB,KAAK;IACxC;IACAD,SAAS,CAACE,gBAAgB,CAACd,wBAAwB,EAAEa,iBAAiB,CAAC;;IAEvE;IACAD,SAAS,CAACE,gBAAgB,CACtBhB,WAAW,EACX,IAAIC,eAAe,CAAC,MAAOgB,GAAsB,IAAK;MAClD,IAAIA,GAAG,CAACC,MAAM,KAAK,CAAC,EAAE;QAClB,OAAO,EAAE;MACb;MACA,MAAMC,OAAO,GAAG,MAAMJ,iBAAiB,CAACK,eAAe,CAACH,GAAG,CAAC;MAC5D,OAAOA,GAAG,CAACI,GAAG,CAAC,CAACC,CAAC,EAAEC,KAAK,KAAKJ,OAAO,CAACI,KAAK,CAAC,CAAC;IAChD,CAAC,CACL,CAAC;;IAED;IACAlB,mBAAmB,CAACQ,QAAQ,CAACC,SAAS,CAAC;IACvCP,mBAAmB,CAACM,QAAQ,CAACC,SAAS,CAAC;IACvCX,oBAAoB,CAACU,QAAQ,CAACC,SAAS,CAAC;IACxCN,oBAAoB,CAACK,QAAQ,CAACC,SAAS,CAAC;IACxCV,kBAAkB,CAACS,QAAQ,CAACC,SAAS,CAAC;IACtCR,mBAAmB,CAACO,QAAQ,CAACC,SAAS,CAAC;IACvCL,oBAAoB,CAACI,QAAQ,CAACC,SAAS,CAAC;IACxCJ,oBAAoB,CAACG,QAAQ,CAACC,SAAS,CAAC;EAC5C;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -6,6 +6,7 @@ export interface ITenantContext {
6
6
  withEachTenant<TReturn>(tenants: Tenant[], cb: (tenant: Tenant) => Promise<TReturn>): Promise<TReturn[]>;
7
7
  withTenant<TReturn>(tenant: Tenant, cb: (tenant: Tenant) => Promise<TReturn>): Promise<TReturn>;
8
8
  }
9
+ /** Provides access to the current tenant and tenant-scoped execution. */
9
10
  export declare const TenantContext: import("@webiny/di").Abstraction<ITenantContext>;
10
11
  export declare namespace TenantContext {
11
12
  type Interface = ITenantContext;
@@ -1,4 +1,5 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
+ /** Provides access to the current tenant and tenant-scoped execution. */
2
3
  export const TenantContext = createAbstraction("TenantContext");
3
4
 
4
5
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","TenantContext"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Tenant } from \"~/types/tenancy.js\";\n\nexport interface ITenantContext {\n setTenant(tenant: Tenant): void;\n getTenant(): Tenant;\n withRootTenant<T>(cb: () => T): Promise<T>;\n withEachTenant<TReturn>(\n tenants: Tenant[],\n cb: (tenant: Tenant) => Promise<TReturn>\n ): Promise<TReturn[]>;\n withTenant<TReturn>(tenant: Tenant, cb: (tenant: Tenant) => Promise<TReturn>): Promise<TReturn>;\n}\n\nexport const TenantContext = createAbstraction<ITenantContext>(\"TenantContext\");\n\nexport namespace TenantContext {\n export type Interface = ITenantContext;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAcvD,OAAO,MAAMC,aAAa,GAAGD,iBAAiB,CAAiB,eAAe,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","TenantContext"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Tenant } from \"~/types/tenancy.js\";\n\nexport interface ITenantContext {\n setTenant(tenant: Tenant): void;\n getTenant(): Tenant;\n withRootTenant<T>(cb: () => T): Promise<T>;\n withEachTenant<TReturn>(\n tenants: Tenant[],\n cb: (tenant: Tenant) => Promise<TReturn>\n ): Promise<TReturn[]>;\n withTenant<TReturn>(tenant: Tenant, cb: (tenant: Tenant) => Promise<TReturn>): Promise<TReturn>;\n}\n\n/** Provides access to the current tenant and tenant-scoped execution. */\nexport const TenantContext = createAbstraction<ITenantContext>(\"TenantContext\");\n\nexport namespace TenantContext {\n export type Interface = ITenantContext;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAcvD;AACA,OAAO,MAAMC,aAAa,GAAGD,iBAAiB,CAAiB,eAAe,CAAC","ignoreList":[]}
@@ -1 +1,4 @@
1
- export declare const TenantContextFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const TenantContextFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -11,6 +11,7 @@ export type UpdateTenantError = {
11
11
  export interface IUpdateTenantUseCase {
12
12
  execute(id: string, data: Partial<Tenant>): Promise<Result<Tenant, UpdateTenantError>>;
13
13
  }
14
+ /** Update an existing tenant. */
14
15
  export declare const UpdateTenantUseCase: import("@webiny/di").Abstraction<IUpdateTenantUseCase>;
15
16
  export declare namespace UpdateTenantUseCase {
16
17
  type Interface = IUpdateTenantUseCase;
@@ -18,6 +19,7 @@ export declare namespace UpdateTenantUseCase {
18
19
  export interface IUpdateTenantRepository {
19
20
  update(tenant: Tenant): Promise<Tenant>;
20
21
  }
22
+ /** Persist tenant updates. */
21
23
  export declare const UpdateTenantRepository: import("@webiny/di").Abstraction<IUpdateTenantRepository>;
22
24
  export declare namespace UpdateTenantRepository {
23
25
  type Interface = IUpdateTenantRepository;
@@ -25,17 +27,20 @@ export declare namespace UpdateTenantRepository {
25
27
  export interface IUpdateTenantGateway {
26
28
  updateTenant(data: Tenant): Promise<Tenant>;
27
29
  }
30
+ /** Storage gateway for tenant updates. */
28
31
  export declare const UpdateTenantGateway: import("@webiny/di").Abstraction<IUpdateTenantGateway>;
29
32
  export declare namespace UpdateTenantGateway {
30
33
  type Interface = IUpdateTenantGateway;
31
34
  }
32
- export declare const TenantBeforeUpdateHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<TenantBeforeUpdatePayload>>>;
33
- export declare namespace TenantBeforeUpdateHandler {
35
+ /** Hook into tenant lifecycle before a tenant is updated. */
36
+ export declare const TenantBeforeUpdateEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<TenantBeforeUpdatePayload>>>;
37
+ export declare namespace TenantBeforeUpdateEventHandler {
34
38
  type Interface = IEventHandler<DomainEvent<TenantBeforeUpdatePayload>>;
35
39
  type Event = DomainEvent<TenantBeforeUpdatePayload>;
36
40
  }
37
- export declare const TenantAfterUpdateHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<TenantAfterUpdatePayload>>>;
38
- export declare namespace TenantAfterUpdateHandler {
41
+ /** Hook into tenant lifecycle after a tenant is updated. */
42
+ export declare const TenantAfterUpdateEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<TenantAfterUpdatePayload>>>;
43
+ export declare namespace TenantAfterUpdateEventHandler {
39
44
  type Interface = IEventHandler<DomainEvent<TenantAfterUpdatePayload>>;
40
45
  type Event = DomainEvent<TenantAfterUpdatePayload>;
41
46
  }
@@ -1,8 +1,13 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
+ /** Update an existing tenant. */
2
3
  export const UpdateTenantUseCase = createAbstraction("UpdateTenantUseCase");
4
+ /** Persist tenant updates. */
3
5
  export const UpdateTenantRepository = createAbstraction("UpdateTenantRepository");
6
+ /** Storage gateway for tenant updates. */
4
7
  export const UpdateTenantGateway = createAbstraction("UpdateTenantGateway");
5
- export const TenantBeforeUpdateHandler = createAbstraction("TenantBeforeUpdateHandler");
6
- export const TenantAfterUpdateHandler = createAbstraction("TenantAfterUpdateHandler");
8
+ /** Hook into tenant lifecycle before a tenant is updated. */
9
+ export const TenantBeforeUpdateEventHandler = createAbstraction("TenantBeforeUpdateEventHandler");
10
+ /** Hook into tenant lifecycle after a tenant is updated. */
11
+ export const TenantAfterUpdateEventHandler = createAbstraction("TenantAfterUpdateEventHandler");
7
12
 
8
13
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","UpdateTenantUseCase","UpdateTenantRepository","UpdateTenantGateway","TenantBeforeUpdateHandler","TenantAfterUpdateHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IEventHandler, DomainEvent } from \"~/features/eventPublisher/index.js\";\nimport type { Tenant } from \"~/types/tenancy.js\";\nimport type { TenantBeforeUpdatePayload, TenantAfterUpdatePayload } from \"./events.js\";\n\nexport type UpdateTenantError = { type: \"NOT_FOUND\" } | { type: \"UNKNOWN\"; cause: Error };\n\nexport interface IUpdateTenantUseCase {\n execute(id: string, data: Partial<Tenant>): Promise<Result<Tenant, UpdateTenantError>>;\n}\n\nexport const UpdateTenantUseCase = createAbstraction<IUpdateTenantUseCase>(\"UpdateTenantUseCase\");\n\nexport namespace UpdateTenantUseCase {\n export type Interface = IUpdateTenantUseCase;\n}\n\nexport interface IUpdateTenantRepository {\n update(tenant: Tenant): Promise<Tenant>;\n}\n\nexport const UpdateTenantRepository =\n createAbstraction<IUpdateTenantRepository>(\"UpdateTenantRepository\");\n\nexport namespace UpdateTenantRepository {\n export type Interface = IUpdateTenantRepository;\n}\n\nexport interface IUpdateTenantGateway {\n updateTenant(data: Tenant): Promise<Tenant>;\n}\n\nexport const UpdateTenantGateway = createAbstraction<IUpdateTenantGateway>(\"UpdateTenantGateway\");\n\nexport namespace UpdateTenantGateway {\n export type Interface = IUpdateTenantGateway;\n}\n\nexport const TenantBeforeUpdateHandler = createAbstraction<\n IEventHandler<DomainEvent<TenantBeforeUpdatePayload>>\n>(\"TenantBeforeUpdateHandler\");\n\nexport namespace TenantBeforeUpdateHandler {\n export type Interface = IEventHandler<DomainEvent<TenantBeforeUpdatePayload>>;\n export type Event = DomainEvent<TenantBeforeUpdatePayload>;\n}\n\nexport const TenantAfterUpdateHandler = createAbstraction<\n IEventHandler<DomainEvent<TenantAfterUpdatePayload>>\n>(\"TenantAfterUpdateHandler\");\n\nexport namespace TenantAfterUpdateHandler {\n export type Interface = IEventHandler<DomainEvent<TenantAfterUpdatePayload>>;\n export type Event = DomainEvent<TenantAfterUpdatePayload>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;AAWpE,OAAO,MAAMC,mBAAmB,GAAGD,iBAAiB,CAAuB,qBAAqB,CAAC;AAUjG,OAAO,MAAME,sBAAsB,GAC/BF,iBAAiB,CAA0B,wBAAwB,CAAC;AAUxE,OAAO,MAAMG,mBAAmB,GAAGH,iBAAiB,CAAuB,qBAAqB,CAAC;AAMjG,OAAO,MAAMI,yBAAyB,GAAGJ,iBAAiB,CAExD,2BAA2B,CAAC;AAO9B,OAAO,MAAMK,wBAAwB,GAAGL,iBAAiB,CAEvD,0BAA0B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","UpdateTenantUseCase","UpdateTenantRepository","UpdateTenantGateway","TenantBeforeUpdateEventHandler","TenantAfterUpdateEventHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IEventHandler, DomainEvent } from \"~/features/eventPublisher/index.js\";\nimport type { Tenant } from \"~/types/tenancy.js\";\nimport type { TenantBeforeUpdatePayload, TenantAfterUpdatePayload } from \"./events.js\";\n\nexport type UpdateTenantError = { type: \"NOT_FOUND\" } | { type: \"UNKNOWN\"; cause: Error };\n\nexport interface IUpdateTenantUseCase {\n execute(id: string, data: Partial<Tenant>): Promise<Result<Tenant, UpdateTenantError>>;\n}\n\n/** Update an existing tenant. */\nexport const UpdateTenantUseCase = createAbstraction<IUpdateTenantUseCase>(\"UpdateTenantUseCase\");\n\nexport namespace UpdateTenantUseCase {\n export type Interface = IUpdateTenantUseCase;\n}\n\nexport interface IUpdateTenantRepository {\n update(tenant: Tenant): Promise<Tenant>;\n}\n\n/** Persist tenant updates. */\nexport const UpdateTenantRepository =\n createAbstraction<IUpdateTenantRepository>(\"UpdateTenantRepository\");\n\nexport namespace UpdateTenantRepository {\n export type Interface = IUpdateTenantRepository;\n}\n\nexport interface IUpdateTenantGateway {\n updateTenant(data: Tenant): Promise<Tenant>;\n}\n\n/** Storage gateway for tenant updates. */\nexport const UpdateTenantGateway = createAbstraction<IUpdateTenantGateway>(\"UpdateTenantGateway\");\n\nexport namespace UpdateTenantGateway {\n export type Interface = IUpdateTenantGateway;\n}\n\n/** Hook into tenant lifecycle before a tenant is updated. */\nexport const TenantBeforeUpdateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<TenantBeforeUpdatePayload>>\n>(\"TenantBeforeUpdateEventHandler\");\n\nexport namespace TenantBeforeUpdateEventHandler {\n export type Interface = IEventHandler<DomainEvent<TenantBeforeUpdatePayload>>;\n export type Event = DomainEvent<TenantBeforeUpdatePayload>;\n}\n\n/** Hook into tenant lifecycle after a tenant is updated. */\nexport const TenantAfterUpdateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<TenantAfterUpdatePayload>>\n>(\"TenantAfterUpdateEventHandler\");\n\nexport namespace TenantAfterUpdateEventHandler {\n export type Interface = IEventHandler<DomainEvent<TenantAfterUpdatePayload>>;\n export type Event = DomainEvent<TenantAfterUpdatePayload>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;AAWpE;AACA,OAAO,MAAMC,mBAAmB,GAAGD,iBAAiB,CAAuB,qBAAqB,CAAC;AAUjG;AACA,OAAO,MAAME,sBAAsB,GAC/BF,iBAAiB,CAA0B,wBAAwB,CAAC;AAUxE;AACA,OAAO,MAAMG,mBAAmB,GAAGH,iBAAiB,CAAuB,qBAAqB,CAAC;AAMjG;AACA,OAAO,MAAMI,8BAA8B,GAAGJ,iBAAiB,CAE7D,gCAAgC,CAAC;AAOnC;AACA,OAAO,MAAMK,6BAA6B,GAAGL,iBAAiB,CAE5D,+BAA+B,CAAC","ignoreList":[]}
@@ -1,15 +1,15 @@
1
1
  import { DomainEvent } from "../../eventPublisher/index.js";
2
- import { TenantBeforeUpdateHandler, TenantAfterUpdateHandler } from "./abstractions.js";
2
+ import { TenantBeforeUpdateEventHandler, TenantAfterUpdateEventHandler } from "./abstractions.js";
3
3
  export class TenantBeforeUpdateEvent extends DomainEvent {
4
4
  eventType = "tenant.beforeUpdate";
5
5
  getHandlerAbstraction() {
6
- return TenantBeforeUpdateHandler;
6
+ return TenantBeforeUpdateEventHandler;
7
7
  }
8
8
  }
9
9
  export class TenantAfterUpdateEvent extends DomainEvent {
10
10
  eventType = "tenant.afterUpdate";
11
11
  getHandlerAbstraction() {
12
- return TenantAfterUpdateHandler;
12
+ return TenantAfterUpdateEventHandler;
13
13
  }
14
14
  }
15
15
 
@@ -1 +1 @@
1
- {"version":3,"names":["DomainEvent","TenantBeforeUpdateHandler","TenantAfterUpdateHandler","TenantBeforeUpdateEvent","eventType","getHandlerAbstraction","TenantAfterUpdateEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"~/features/eventPublisher/index.js\";\nimport type { Tenant } from \"~/types/tenancy.js\";\nimport { TenantBeforeUpdateHandler, TenantAfterUpdateHandler } from \"./abstractions.js\";\n\nexport interface TenantBeforeUpdatePayload {\n tenant: Tenant;\n inputData: Record<string, any>;\n updateData: Partial<Tenant>;\n}\n\nexport interface TenantAfterUpdatePayload {\n tenant: Tenant;\n inputData: Record<string, any>;\n}\n\nexport class TenantBeforeUpdateEvent extends DomainEvent<TenantBeforeUpdatePayload> {\n eventType = \"tenant.beforeUpdate\" as const;\n\n getHandlerAbstraction() {\n return TenantBeforeUpdateHandler;\n }\n}\n\nexport class TenantAfterUpdateEvent extends DomainEvent<TenantAfterUpdatePayload> {\n eventType = \"tenant.afterUpdate\" as const;\n\n getHandlerAbstraction() {\n return TenantAfterUpdateHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW;AAEpB,SAASC,yBAAyB,EAAEC,wBAAwB;AAa5D,OAAO,MAAMC,uBAAuB,SAASH,WAAW,CAA4B;EAChFI,SAAS,GAAG,qBAAqB;EAEjCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,yBAAyB;EACpC;AACJ;AAEA,OAAO,MAAMK,sBAAsB,SAASN,WAAW,CAA2B;EAC9EI,SAAS,GAAG,oBAAoB;EAEhCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,wBAAwB;EACnC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["DomainEvent","TenantBeforeUpdateEventHandler","TenantAfterUpdateEventHandler","TenantBeforeUpdateEvent","eventType","getHandlerAbstraction","TenantAfterUpdateEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"~/features/eventPublisher/index.js\";\nimport type { Tenant } from \"~/types/tenancy.js\";\nimport { TenantBeforeUpdateEventHandler, TenantAfterUpdateEventHandler } from \"./abstractions.js\";\n\nexport interface TenantBeforeUpdatePayload {\n tenant: Tenant;\n inputData: Record<string, any>;\n updateData: Partial<Tenant>;\n}\n\nexport interface TenantAfterUpdatePayload {\n tenant: Tenant;\n inputData: Record<string, any>;\n}\n\nexport class TenantBeforeUpdateEvent extends DomainEvent<TenantBeforeUpdatePayload> {\n eventType = \"tenant.beforeUpdate\" as const;\n\n getHandlerAbstraction() {\n return TenantBeforeUpdateEventHandler;\n }\n}\n\nexport class TenantAfterUpdateEvent extends DomainEvent<TenantAfterUpdatePayload> {\n eventType = \"tenant.afterUpdate\" as const;\n\n getHandlerAbstraction() {\n return TenantAfterUpdateEventHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW;AAEpB,SAASC,8BAA8B,EAAEC,6BAA6B;AAatE,OAAO,MAAMC,uBAAuB,SAASH,WAAW,CAA4B;EAChFI,SAAS,GAAG,qBAAqB;EAEjCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,8BAA8B;EACzC;AACJ;AAEA,OAAO,MAAMK,sBAAsB,SAASN,WAAW,CAA2B;EAC9EI,SAAS,GAAG,oBAAoB;EAEhCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,6BAA6B;EACxC;AACJ","ignoreList":[]}
@@ -1 +1,5 @@
1
- export declare const UpdateTenantFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ import type { Container } from "@webiny/di";
2
+ export declare const UpdateTenantFeature: {
3
+ name: string;
4
+ register(container: Container): void;
5
+ };
@@ -1,3 +1,3 @@
1
1
  export { UpdateTenantFeature } from "./feature.js";
2
- export { UpdateTenantUseCase, UpdateTenantRepository, UpdateTenantGateway, TenantBeforeUpdateHandler, TenantAfterUpdateHandler } from "./abstractions.js";
2
+ export { UpdateTenantUseCase, UpdateTenantRepository, UpdateTenantGateway, TenantBeforeUpdateEventHandler, TenantAfterUpdateEventHandler } from "./abstractions.js";
3
3
  export { TenantBeforeUpdateEvent, TenantAfterUpdateEvent } from "./events.js";
@@ -1,5 +1,5 @@
1
1
  export { UpdateTenantFeature } from "./feature.js";
2
- export { UpdateTenantUseCase, UpdateTenantRepository, UpdateTenantGateway, TenantBeforeUpdateHandler, TenantAfterUpdateHandler } from "./abstractions.js";
2
+ export { UpdateTenantUseCase, UpdateTenantRepository, UpdateTenantGateway, TenantBeforeUpdateEventHandler, TenantAfterUpdateEventHandler } from "./abstractions.js";
3
3
  export { TenantBeforeUpdateEvent, TenantAfterUpdateEvent } from "./events.js";
4
4
 
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["UpdateTenantFeature","UpdateTenantUseCase","UpdateTenantRepository","UpdateTenantGateway","TenantBeforeUpdateHandler","TenantAfterUpdateHandler","TenantBeforeUpdateEvent","TenantAfterUpdateEvent"],"sources":["index.ts"],"sourcesContent":["export { UpdateTenantFeature } from \"./feature.js\";\nexport {\n UpdateTenantUseCase,\n UpdateTenantRepository,\n UpdateTenantGateway,\n TenantBeforeUpdateHandler,\n TenantAfterUpdateHandler\n} from \"./abstractions.js\";\nexport { TenantBeforeUpdateEvent, TenantAfterUpdateEvent } from \"./events.js\";\n"],"mappings":"AAAA,SAASA,mBAAmB;AAC5B,SACIC,mBAAmB,EACnBC,sBAAsB,EACtBC,mBAAmB,EACnBC,yBAAyB,EACzBC,wBAAwB;AAE5B,SAASC,uBAAuB,EAAEC,sBAAsB","ignoreList":[]}
1
+ {"version":3,"names":["UpdateTenantFeature","UpdateTenantUseCase","UpdateTenantRepository","UpdateTenantGateway","TenantBeforeUpdateEventHandler","TenantAfterUpdateEventHandler","TenantBeforeUpdateEvent","TenantAfterUpdateEvent"],"sources":["index.ts"],"sourcesContent":["export { UpdateTenantFeature } from \"./feature.js\";\nexport {\n UpdateTenantUseCase,\n UpdateTenantRepository,\n UpdateTenantGateway,\n TenantBeforeUpdateEventHandler,\n TenantAfterUpdateEventHandler\n} from \"./abstractions.js\";\nexport { TenantBeforeUpdateEvent, TenantAfterUpdateEvent } from \"./events.js\";\n"],"mappings":"AAAA,SAASA,mBAAmB;AAC5B,SACIC,mBAAmB,EACnBC,sBAAsB,EACtBC,mBAAmB,EACnBC,8BAA8B,EAC9BC,6BAA6B;AAEjC,SAASC,uBAAuB,EAAEC,sBAAsB","ignoreList":[]}
@@ -1 +1,4 @@
1
- export declare const AdminUsersFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<import("../../types/users.js").AdminUsersStorageOperations>;
1
+ export declare const AdminUsersFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container, context: import("../../types/users.js").AdminUsersStorageOperations): void;
4
+ };
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","AdminUsersRepository","GetUserFeature","GetIdentityProfileFeature","ListUsersFeature","CreateUserFeature","UpdateUserFeature","DeleteUserFeature","ListUserTeamsFeature","AdminUsersStorageOperations","ExternalIdpUserSyncFeature","AdminUsersFeature","name","register","container","storageOperations","inSingletonScope","registerInstance"],"sources":["AdminUsersFeature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { AdminUsersRepository } from \"./shared/AdminUsersRepository.js\";\nimport { GetUserFeature } from \"./GetUser/feature.js\";\nimport { GetIdentityProfileFeature } from \"./GetIdentityProfile/feature.js\";\nimport { ListUsersFeature } from \"./ListUsers/feature.js\";\nimport { CreateUserFeature } from \"./CreateUser/feature.js\";\nimport { UpdateUserFeature } from \"./UpdateUser/feature.js\";\nimport { DeleteUserFeature } from \"./DeleteUser/feature.js\";\nimport { ListUserTeamsFeature } from \"./ListUserTeams/feature.js\";\nimport { AdminUsersStorageOperations } from \"./shared/storageAbstractions.js\";\nimport { ExternalIdpUserSyncFeature } from \"./ExternalIdpUserSync/index.js\";\n\nexport const AdminUsersFeature = createFeature({\n name: \"AdminUsers\",\n register(container, storageOperations: AdminUsersStorageOperations.Interface) {\n // Register repository in singleton scope\n container.register(AdminUsersRepository).inSingletonScope();\n\n // Register all use cases\n GetUserFeature.register(container);\n GetIdentityProfileFeature.register(container);\n ListUsersFeature.register(container);\n ListUserTeamsFeature.register(container);\n CreateUserFeature.register(container);\n UpdateUserFeature.register(container);\n DeleteUserFeature.register(container);\n ExternalIdpUserSyncFeature.register(container);\n\n // Legacy storage ops\n container.registerInstance(AdminUsersStorageOperations, storageOperations);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,oBAAoB;AAC7B,SAASC,cAAc;AACvB,SAASC,yBAAyB;AAClC,SAASC,gBAAgB;AACzB,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;AAC1B,SAASC,oBAAoB;AAC7B,SAASC,2BAA2B;AACpC,SAASC,0BAA0B;AAEnC,OAAO,MAAMC,iBAAiB,GAAGX,aAAa,CAAC;EAC3CY,IAAI,EAAE,YAAY;EAClBC,QAAQA,CAACC,SAAS,EAAEC,iBAAwD,EAAE;IAC1E;IACAD,SAAS,CAACD,QAAQ,CAACZ,oBAAoB,CAAC,CAACe,gBAAgB,CAAC,CAAC;;IAE3D;IACAd,cAAc,CAACW,QAAQ,CAACC,SAAS,CAAC;IAClCX,yBAAyB,CAACU,QAAQ,CAACC,SAAS,CAAC;IAC7CV,gBAAgB,CAACS,QAAQ,CAACC,SAAS,CAAC;IACpCN,oBAAoB,CAACK,QAAQ,CAACC,SAAS,CAAC;IACxCT,iBAAiB,CAACQ,QAAQ,CAACC,SAAS,CAAC;IACrCR,iBAAiB,CAACO,QAAQ,CAACC,SAAS,CAAC;IACrCP,iBAAiB,CAACM,QAAQ,CAACC,SAAS,CAAC;IACrCJ,0BAA0B,CAACG,QAAQ,CAACC,SAAS,CAAC;;IAE9C;IACAA,SAAS,CAACG,gBAAgB,CAACR,2BAA2B,EAAEM,iBAAiB,CAAC;EAC9E;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createFeature","AdminUsersRepository","GetUserFeature","GetIdentityProfileFeature","ListUsersFeature","CreateUserFeature","UpdateUserFeature","DeleteUserFeature","ListUserTeamsFeature","AdminUsersStorageOperations","ExternalIdpUserSyncFeature","AdminUsersFeature","name","register","container","storageOperations","inSingletonScope","registerInstance"],"sources":["AdminUsersFeature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { AdminUsersRepository } from \"./shared/AdminUsersRepository.js\";\nimport { GetUserFeature } from \"./GetUser/feature.js\";\nimport { GetIdentityProfileFeature } from \"./GetIdentityProfile/feature.js\";\nimport { ListUsersFeature } from \"./ListUsers/feature.js\";\nimport { CreateUserFeature } from \"./CreateUser/feature.js\";\nimport { UpdateUserFeature } from \"./UpdateUser/feature.js\";\nimport { DeleteUserFeature } from \"./DeleteUser/feature.js\";\nimport { ListUserTeamsFeature } from \"./ListUserTeams/feature.js\";\nimport { AdminUsersStorageOperations } from \"./shared/storageAbstractions.js\";\nimport { ExternalIdpUserSyncFeature } from \"./ExternalIdpUserSync/index.js\";\n\nexport const AdminUsersFeature = createFeature<AdminUsersStorageOperations.Interface>({\n name: \"AdminUsers\",\n register(container, storageOperations) {\n // Register repository in singleton scope\n container.register(AdminUsersRepository).inSingletonScope();\n\n // Register all use cases\n GetUserFeature.register(container);\n GetIdentityProfileFeature.register(container);\n ListUsersFeature.register(container);\n ListUserTeamsFeature.register(container);\n CreateUserFeature.register(container);\n UpdateUserFeature.register(container);\n DeleteUserFeature.register(container);\n ExternalIdpUserSyncFeature.register(container);\n\n // Legacy storage ops\n container.registerInstance(AdminUsersStorageOperations, storageOperations);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,oBAAoB;AAC7B,SAASC,cAAc;AACvB,SAASC,yBAAyB;AAClC,SAASC,gBAAgB;AACzB,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;AAC1B,SAASC,oBAAoB;AAC7B,SAASC,2BAA2B;AACpC,SAASC,0BAA0B;AAEnC,OAAO,MAAMC,iBAAiB,GAAGX,aAAa,CAAwC;EAClFY,IAAI,EAAE,YAAY;EAClBC,QAAQA,CAACC,SAAS,EAAEC,iBAAiB,EAAE;IACnC;IACAD,SAAS,CAACD,QAAQ,CAACZ,oBAAoB,CAAC,CAACe,gBAAgB,CAAC,CAAC;;IAE3D;IACAd,cAAc,CAACW,QAAQ,CAACC,SAAS,CAAC;IAClCX,yBAAyB,CAACU,QAAQ,CAACC,SAAS,CAAC;IAC7CV,gBAAgB,CAACS,QAAQ,CAACC,SAAS,CAAC;IACpCN,oBAAoB,CAACK,QAAQ,CAACC,SAAS,CAAC;IACxCT,iBAAiB,CAACQ,QAAQ,CAACC,SAAS,CAAC;IACrCR,iBAAiB,CAACO,QAAQ,CAACC,SAAS,CAAC;IACrCP,iBAAiB,CAACM,QAAQ,CAACC,SAAS,CAAC;IACrCJ,0BAA0B,CAACG,QAAQ,CAACC,SAAS,CAAC;;IAE9C;IACAA,SAAS,CAACG,gBAAgB,CAACR,2BAA2B,EAAEM,iBAAiB,CAAC;EAC9E;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -26,7 +26,7 @@ class CreateUserUseCaseImpl {
26
26
  // 2. Validate input
27
27
  const validation = createUserValidation.safeParse(input);
28
28
  if (!validation.success) {
29
- return Result.fail(new UserValidationError(validation.error.errors[0].message));
29
+ return Result.fail(new UserValidationError(validation.error.issues[0].message));
30
30
  }
31
31
  const data = validation.data;
32
32
 
@@ -1 +1 @@
1
- {"version":3,"names":["mdbid","createImplementation","Result","TenantContext","IdentityContext","EventPublisher","CreateUserUseCase","UseCaseAbstraction","AdminUsersRepository","createUserValidation","NotAuthorizedError","EmailTakenError","UserValidationError","UserBeforeCreateEvent","UserAfterCreateEvent","CreateUserUseCaseImpl","constructor","tenantContext","identityContext","eventPublisher","repository","execute","input","permission","getPermission","fail","validation","safeParse","success","error","errors","message","data","existingUserResult","get","email","isOk","code","id","displayName","getDisplayName","tenant","getTenant","identity","getIdentity","createdBy","type","user","createdOn","Date","toISOString","publish","result","create","isFail","value","ok","firstName","lastName","trim","abstraction","implementation","dependencies"],"sources":["CreateUserUseCase.ts"],"sourcesContent":["import { mdbid } from \"@webiny/utils\";\nimport { createImplementation } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport { TenantContext } from \"~/features/tenancy/TenantContext/index.js\";\nimport { IdentityContext } from \"~/features/security/IdentityContext/index.js\";\nimport { EventPublisher } from \"~/features/eventPublisher/index.js\";\nimport { CreateUserUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { AdminUsersRepository } from \"~/features/users/shared/abstractions.js\";\nimport { createUserValidation } from \"./schema.js\";\nimport {\n NotAuthorizedError,\n EmailTakenError,\n UserValidationError\n} from \"~/features/users/shared/errors.js\";\nimport { UserBeforeCreateEvent, UserAfterCreateEvent } from \"./events.js\";\nimport type { AdminUser } from \"~/features/users/shared/types.js\";\nimport type { CreateUserInput } from \"~/features/users/shared/types.js\";\nimport type { CreatedBy } from \"~/types/users.js\";\n\nclass CreateUserUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private tenantContext: TenantContext.Interface,\n private identityContext: IdentityContext.Interface,\n private eventPublisher: EventPublisher.Interface,\n private repository: AdminUsersRepository.Interface\n ) {}\n\n async execute(input: CreateUserInput): 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 = createUserValidation.safeParse(input);\n if (!validation.success) {\n return Result.fail(new UserValidationError(validation.error.errors[0].message));\n }\n\n const data = validation.data;\n\n // 3. Check email uniqueness\n const existingUserResult = await this.repository.get({ email: data.email });\n if (existingUserResult.isOk()) {\n // This means the email is taken!\n return Result.fail(new EmailTakenError(data.email));\n }\n\n if (existingUserResult.error.code !== \"AdminUser/NotFound\") {\n return Result.fail(existingUserResult.error);\n }\n\n // 4. Generate ID if not provided\n const id = data.id || mdbid();\n\n // 5. Generate display name\n const displayName = this.getDisplayName(data);\n\n // 6. Get tenant and identity\n const tenant = this.tenantContext.getTenant().id;\n const identity = this.identityContext.getIdentity();\n\n let createdBy: CreatedBy | null = null;\n if (identity) {\n createdBy = {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n };\n }\n\n // 7. Create user entity\n const user: AdminUser = {\n ...data,\n id,\n email: data.email,\n displayName,\n createdOn: new Date().toISOString(),\n createdBy,\n tenant\n };\n\n // 8. Publish before event\n await this.eventPublisher.publish(new UserBeforeCreateEvent({ user, input: data }));\n\n // 10. Create user via repository\n const result = await this.repository.create(user);\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n // 11. Publish after event\n await this.eventPublisher.publish(\n new UserAfterCreateEvent({ user: result.value, input: data })\n );\n\n return Result.ok(result.value);\n }\n\n private getDisplayName(data: CreateUserInput): string {\n // If display name is not set, try to get it from the first name and last name.\n // If first name and last name are not set, use the e-mail address.\n if (data.displayName) {\n return data.displayName;\n }\n\n if (data.firstName || data.lastName) {\n return `${data.firstName || \"\"} ${data.lastName || \"\"}`.trim();\n }\n\n if (data.email) {\n return data.email;\n }\n\n return \"Missing display name\";\n }\n}\n\nexport const CreateUserUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: CreateUserUseCaseImpl,\n dependencies: [TenantContext, IdentityContext, EventPublisher, AdminUsersRepository]\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["mdbid","createImplementation","Result","TenantContext","IdentityContext","EventPublisher","CreateUserUseCase","UseCaseAbstraction","AdminUsersRepository","createUserValidation","NotAuthorizedError","EmailTakenError","UserValidationError","UserBeforeCreateEvent","UserAfterCreateEvent","CreateUserUseCaseImpl","constructor","tenantContext","identityContext","eventPublisher","repository","execute","input","permission","getPermission","fail","validation","safeParse","success","error","issues","message","data","existingUserResult","get","email","isOk","code","id","displayName","getDisplayName","tenant","getTenant","identity","getIdentity","createdBy","type","user","createdOn","Date","toISOString","publish","result","create","isFail","value","ok","firstName","lastName","trim","abstraction","implementation","dependencies"],"sources":["CreateUserUseCase.ts"],"sourcesContent":["import { mdbid } from \"@webiny/utils\";\nimport { createImplementation } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport { TenantContext } from \"~/features/tenancy/TenantContext/index.js\";\nimport { IdentityContext } from \"~/features/security/IdentityContext/index.js\";\nimport { EventPublisher } from \"~/features/eventPublisher/index.js\";\nimport { CreateUserUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { AdminUsersRepository } from \"~/features/users/shared/abstractions.js\";\nimport { createUserValidation } from \"./schema.js\";\nimport {\n NotAuthorizedError,\n EmailTakenError,\n UserValidationError\n} from \"~/features/users/shared/errors.js\";\nimport { UserBeforeCreateEvent, UserAfterCreateEvent } from \"./events.js\";\nimport type { AdminUser } from \"~/features/users/shared/types.js\";\nimport type { CreateUserInput } from \"~/features/users/shared/types.js\";\nimport type { CreatedBy } from \"~/types/users.js\";\n\nclass CreateUserUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private tenantContext: TenantContext.Interface,\n private identityContext: IdentityContext.Interface,\n private eventPublisher: EventPublisher.Interface,\n private repository: AdminUsersRepository.Interface\n ) {}\n\n async execute(input: CreateUserInput): 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 = createUserValidation.safeParse(input);\n if (!validation.success) {\n return Result.fail(new UserValidationError(validation.error.issues[0].message));\n }\n\n const data = validation.data;\n\n // 3. Check email uniqueness\n const existingUserResult = await this.repository.get({ email: data.email });\n if (existingUserResult.isOk()) {\n // This means the email is taken!\n return Result.fail(new EmailTakenError(data.email));\n }\n\n if (existingUserResult.error.code !== \"AdminUser/NotFound\") {\n return Result.fail(existingUserResult.error);\n }\n\n // 4. Generate ID if not provided\n const id = data.id || mdbid();\n\n // 5. Generate display name\n const displayName = this.getDisplayName(data);\n\n // 6. Get tenant and identity\n const tenant = this.tenantContext.getTenant().id;\n const identity = this.identityContext.getIdentity();\n\n let createdBy: CreatedBy | null = null;\n if (identity) {\n createdBy = {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n };\n }\n\n // 7. Create user entity\n const user: AdminUser = {\n ...data,\n id,\n email: data.email,\n displayName,\n createdOn: new Date().toISOString(),\n createdBy,\n tenant\n };\n\n // 8. Publish before event\n await this.eventPublisher.publish(new UserBeforeCreateEvent({ user, input: data }));\n\n // 10. Create user via repository\n const result = await this.repository.create(user);\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n // 11. Publish after event\n await this.eventPublisher.publish(\n new UserAfterCreateEvent({ user: result.value, input: data })\n );\n\n return Result.ok(result.value);\n }\n\n private getDisplayName(data: CreateUserInput): string {\n // If display name is not set, try to get it from the first name and last name.\n // If first name and last name are not set, use the e-mail address.\n if (data.displayName) {\n return data.displayName;\n }\n\n if (data.firstName || data.lastName) {\n return `${data.firstName || \"\"} ${data.lastName || \"\"}`.trim();\n }\n\n if (data.email) {\n return data.email;\n }\n\n return \"Missing display name\";\n }\n}\n\nexport const CreateUserUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: CreateUserUseCaseImpl,\n dependencies: [TenantContext, IdentityContext, EventPublisher, AdminUsersRepository]\n});\n"],"mappings":"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","ignoreList":[]}
@@ -12,6 +12,7 @@ type CreateUserError = ICreateUserErrors[keyof ICreateUserErrors] | AdminUsersRe
12
12
  export interface ICreateUser {
13
13
  execute(input: CreateUserInput): Promise<Result<AdminUser, CreateUserError>>;
14
14
  }
15
+ /** Create a new admin user. */
15
16
  export declare const CreateUserUseCase: import("@webiny/di").Abstraction<ICreateUser>;
16
17
  export declare namespace CreateUserUseCase {
17
18
  type Interface = ICreateUser;
@@ -6,7 +6,7 @@ import { createAbstraction } from "@webiny/feature/api";
6
6
 
7
7
  // Use case interface
8
8
 
9
- // Abstraction constant
9
+ /** Create a new admin user. */
10
10
  export const CreateUserUseCase = createAbstraction("CreateUserUseCase");
11
11
 
12
12
  // Namespace exports
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","CreateUserUseCase"],"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 { CreateUserInput } 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 ICreateUserErrors {\n notAuthorized: NotAuthorizedError;\n userExists: EmailTakenError;\n validation: UserValidationError;\n}\n\n// Combined error type (use case errors + repository errors)\ntype CreateUserError = ICreateUserErrors[keyof ICreateUserErrors] | AdminUsersRepository.Error;\n\n// Use case interface\nexport interface ICreateUser {\n execute(input: CreateUserInput): Promise<Result<AdminUser, CreateUserError>>;\n}\n\n// Abstraction constant\nexport const CreateUserUseCase = createAbstraction<ICreateUser>(\"CreateUserUseCase\");\n\n// Namespace exports\nexport namespace CreateUserUseCase {\n export type Interface = ICreateUser;\n export type Input = CreateUserInput;\n export type Error = CreateUserError;\n}\n\n// Event payload types\nexport interface UserBeforeCreatePayload {\n user: AdminUser;\n input: CreateUserInput;\n}\n\nexport interface UserAfterCreatePayload {\n user: AdminUser;\n input: CreateUserInput;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAWvD;;AAOA;;AAGA;;AAKA;AACA,OAAO,MAAMC,iBAAiB,GAAGD,iBAAiB,CAAc,mBAAmB,CAAC;;AAEpF;;AAOA","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","CreateUserUseCase"],"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 { CreateUserInput } 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 ICreateUserErrors {\n notAuthorized: NotAuthorizedError;\n userExists: EmailTakenError;\n validation: UserValidationError;\n}\n\n// Combined error type (use case errors + repository errors)\ntype CreateUserError = ICreateUserErrors[keyof ICreateUserErrors] | AdminUsersRepository.Error;\n\n// Use case interface\nexport interface ICreateUser {\n execute(input: CreateUserInput): Promise<Result<AdminUser, CreateUserError>>;\n}\n\n/** Create a new admin user. */\nexport const CreateUserUseCase = createAbstraction<ICreateUser>(\"CreateUserUseCase\");\n\n// Namespace exports\nexport namespace CreateUserUseCase {\n export type Interface = ICreateUser;\n export type Input = CreateUserInput;\n export type Error = CreateUserError;\n}\n\n// Event payload types\nexport interface UserBeforeCreatePayload {\n user: AdminUser;\n input: CreateUserInput;\n}\n\nexport interface UserAfterCreatePayload {\n user: AdminUser;\n input: CreateUserInput;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAWvD;;AAOA;;AAGA;;AAKA;AACA,OAAO,MAAMC,iBAAiB,GAAGD,iBAAiB,CAAc,mBAAmB,CAAC;;AAEpF;;AAOA","ignoreList":[]}
@@ -5,8 +5,9 @@ export declare class UserBeforeCreateEvent extends DomainEvent<UserBeforeCreateP
5
5
  eventType: "user.beforeCreate";
6
6
  getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<UserBeforeCreateEvent>>;
7
7
  }
8
- export declare const UserBeforeCreateHandler: import("@webiny/di").Abstraction<IEventHandler<UserBeforeCreateEvent>>;
9
- export declare namespace UserBeforeCreateHandler {
8
+ /** Hook into user lifecycle before a user is created. */
9
+ export declare const UserBeforeCreateEventHandler: import("@webiny/di").Abstraction<IEventHandler<UserBeforeCreateEvent>>;
10
+ export declare namespace UserBeforeCreateEventHandler {
10
11
  type Interface = IEventHandler<UserBeforeCreateEvent>;
11
12
  type Event = UserBeforeCreateEvent;
12
13
  }
@@ -14,8 +15,9 @@ export declare class UserAfterCreateEvent extends DomainEvent<UserAfterCreatePay
14
15
  eventType: "user.afterCreate";
15
16
  getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<UserAfterCreateEvent>>;
16
17
  }
17
- export declare const UserAfterCreateHandler: import("@webiny/di").Abstraction<IEventHandler<UserAfterCreateEvent>>;
18
- export declare namespace UserAfterCreateHandler {
18
+ /** Hook into user lifecycle after a user is created. */
19
+ export declare const UserAfterCreateEventHandler: import("@webiny/di").Abstraction<IEventHandler<UserAfterCreateEvent>>;
20
+ export declare namespace UserAfterCreateEventHandler {
19
21
  type Interface = IEventHandler<UserAfterCreateEvent>;
20
22
  type Event = UserAfterCreateEvent;
21
23
  }