@webiny/api-core 0.0.0-unstable.6844005670 → 0.0.0-unstable.7be00a75a9

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 (1000) hide show
  1. package/ApiCoreFeature.d.ts +5 -1
  2. package/ApiCoreFeature.js +25 -15
  3. package/ApiCoreFeature.js.map +1 -1
  4. package/createApiCore.d.ts +1 -1
  5. package/createApiCore.js +14 -9
  6. package/createApiCore.js.map +1 -1
  7. package/domain/identity/SystemIdentityValue.js +9 -8
  8. package/domain/identity/SystemIdentityValue.js.map +1 -1
  9. package/domain/security/ApiToken.d.ts +1 -0
  10. package/domain/security/ApiToken.js +5 -10
  11. package/domain/security/ApiToken.js.map +1 -1
  12. package/domain/tenancy/RootTenantValue.js +9 -8
  13. package/domain/tenancy/RootTenantValue.js.map +1 -1
  14. package/domain/tenancy/errors.js +0 -3
  15. package/exports/api/build-params.d.ts +1 -0
  16. package/exports/api/build-params.js +0 -2
  17. package/exports/api/event-publisher.d.ts +1 -0
  18. package/exports/api/event-publisher.js +0 -2
  19. package/exports/api/graphql.js +0 -2
  20. package/exports/api/key-value-store.d.ts +1 -0
  21. package/exports/api/key-value-store.js +0 -2
  22. package/exports/api/logger.d.ts +1 -0
  23. package/exports/api/logger.js +0 -2
  24. package/exports/api/security/api-key.d.ts +3 -3
  25. package/exports/api/security/api-key.js +3 -5
  26. package/exports/api/security/authentication.d.ts +1 -1
  27. package/exports/api/security/authentication.js +1 -3
  28. package/exports/api/security/role.d.ts +3 -3
  29. package/exports/api/security/role.js +3 -5
  30. package/exports/api/security/user.d.ts +3 -3
  31. package/exports/api/security/user.js +3 -5
  32. package/exports/api/security.d.ts +6 -0
  33. package/exports/api/security.js +5 -4
  34. package/exports/api/system.d.ts +1 -1
  35. package/exports/api/system.js +1 -3
  36. package/exports/api/tasks.js +0 -2
  37. package/exports/api/tenancy.d.ts +4 -4
  38. package/exports/api/tenancy.js +4 -6
  39. package/exports/api/webhooks.d.ts +1 -0
  40. package/exports/api/webhooks.js +1 -0
  41. package/exports/api.d.ts +7 -0
  42. package/exports/api.js +6 -0
  43. package/features/ai/Ai.d.ts +26 -0
  44. package/features/ai/Ai.js +116 -0
  45. package/features/ai/Ai.js.map +1 -0
  46. package/features/ai/AiSdkTools.d.ts +11 -0
  47. package/features/ai/AiSdkTools.js +29 -0
  48. package/features/ai/AiSdkTools.js.map +1 -0
  49. package/features/ai/AnthropicSdkFactory.d.ts +10 -0
  50. package/features/ai/AnthropicSdkFactory.js +88 -0
  51. package/features/ai/AnthropicSdkFactory.js.map +1 -0
  52. package/features/ai/OpenAiSdkFactory.d.ts +10 -0
  53. package/features/ai/OpenAiSdkFactory.js +240 -0
  54. package/features/ai/OpenAiSdkFactory.js.map +1 -0
  55. package/features/ai/abstractions.d.ts +92 -0
  56. package/features/ai/abstractions.js +10 -0
  57. package/features/ai/abstractions.js.map +1 -0
  58. package/features/ai/feature.d.ts +4 -0
  59. package/features/ai/feature.js +17 -0
  60. package/features/ai/feature.js.map +1 -0
  61. package/features/ai/index.d.ts +3 -0
  62. package/features/ai/index.js +2 -0
  63. package/features/buildParams/BuildParams.js +20 -14
  64. package/features/buildParams/BuildParams.js.map +1 -1
  65. package/features/buildParams/abstractions.d.ts +2 -0
  66. package/features/buildParams/abstractions.js +3 -2
  67. package/features/buildParams/abstractions.js.map +1 -1
  68. package/features/buildParams/feature.d.ts +5 -1
  69. package/features/buildParams/feature.js +6 -5
  70. package/features/buildParams/feature.js.map +1 -1
  71. package/features/buildParams/index.js +0 -2
  72. package/features/encryption/EncryptionService.d.ts +10 -0
  73. package/features/encryption/EncryptionService.js +62 -0
  74. package/features/encryption/EncryptionService.js.map +1 -0
  75. package/features/encryption/abstractions.d.ts +9 -0
  76. package/features/encryption/abstractions.js +5 -0
  77. package/features/encryption/abstractions.js.map +1 -0
  78. package/features/encryption/feature.d.ts +4 -0
  79. package/features/encryption/feature.js +11 -0
  80. package/features/encryption/feature.js.map +1 -0
  81. package/features/encryption/index.d.ts +1 -0
  82. package/features/encryption/index.js +1 -0
  83. package/features/eventPublisher/EventPublisher.js +9 -15
  84. package/features/eventPublisher/EventPublisher.js.map +1 -1
  85. package/features/eventPublisher/__tests__/EventPublisher.test.js +385 -419
  86. package/features/eventPublisher/__tests__/EventPublisher.test.js.map +1 -1
  87. package/features/eventPublisher/abstractions.d.ts +2 -0
  88. package/features/eventPublisher/abstractions.js +7 -9
  89. package/features/eventPublisher/abstractions.js.map +1 -1
  90. package/features/eventPublisher/feature.d.ts +5 -1
  91. package/features/eventPublisher/feature.js +8 -7
  92. package/features/eventPublisher/feature.js.map +1 -1
  93. package/features/eventPublisher/index.js +0 -2
  94. package/features/featureFlags/FeatureFlags.js +15 -12
  95. package/features/featureFlags/FeatureFlags.js.map +1 -1
  96. package/features/featureFlags/abstractions.js +2 -1
  97. package/features/featureFlags/abstractions.js.map +1 -1
  98. package/features/featureFlags/feature.d.ts +5 -1
  99. package/features/featureFlags/feature.js +6 -5
  100. package/features/featureFlags/feature.js.map +1 -1
  101. package/features/keyValueStore/GlobalKeyValueStore.js +28 -23
  102. package/features/keyValueStore/GlobalKeyValueStore.js.map +1 -1
  103. package/features/keyValueStore/KeyValueStore.js +30 -27
  104. package/features/keyValueStore/KeyValueStore.js.map +1 -1
  105. package/features/keyValueStore/KeyValueStoreRepository.d.ts +2 -2
  106. package/features/keyValueStore/KeyValueStoreRepository.js +34 -41
  107. package/features/keyValueStore/KeyValueStoreRepository.js.map +1 -1
  108. package/features/keyValueStore/abstractions.d.ts +10 -2
  109. package/features/keyValueStore/abstractions.js +5 -16
  110. package/features/keyValueStore/abstractions.js.map +1 -1
  111. package/features/keyValueStore/errors.js +16 -17
  112. package/features/keyValueStore/errors.js.map +1 -1
  113. package/features/keyValueStore/feature.d.ts +4 -1
  114. package/features/keyValueStore/feature.js +9 -9
  115. package/features/keyValueStore/feature.js.map +1 -1
  116. package/features/keyValueStore/index.js +1 -3
  117. package/features/logger/LoggerService.js +41 -45
  118. package/features/logger/LoggerService.js.map +1 -1
  119. package/features/logger/abstractions.d.ts +1 -0
  120. package/features/logger/abstractions.js +2 -1
  121. package/features/logger/abstractions.js.map +1 -1
  122. package/features/logger/feature.d.ts +4 -1
  123. package/features/logger/feature.js +6 -5
  124. package/features/logger/feature.js.map +1 -1
  125. package/features/logger/index.js +0 -2
  126. package/features/masker/Masker.d.ts +8 -0
  127. package/features/masker/Masker.js +18 -0
  128. package/features/masker/Masker.js.map +1 -0
  129. package/features/masker/abstractions.d.ts +11 -0
  130. package/features/masker/abstractions.js +5 -0
  131. package/features/masker/abstractions.js.map +1 -0
  132. package/features/masker/feature.d.ts +4 -0
  133. package/features/masker/feature.js +11 -0
  134. package/features/masker/feature.js.map +1 -0
  135. package/features/masker/index.d.ts +1 -0
  136. package/features/masker/index.js +1 -0
  137. package/features/security/IdentityContext/AnonymousIdentity.js +12 -16
  138. package/features/security/IdentityContext/AnonymousIdentity.js.map +1 -1
  139. package/features/security/IdentityContext/AuthenticatedIdentity.js +5 -8
  140. package/features/security/IdentityContext/AuthenticatedIdentity.js.map +1 -1
  141. package/features/security/IdentityContext/Identity.js +63 -71
  142. package/features/security/IdentityContext/Identity.js.map +1 -1
  143. package/features/security/IdentityContext/IdentityContext.js +69 -106
  144. package/features/security/IdentityContext/IdentityContext.js.map +1 -1
  145. package/features/security/IdentityContext/abstractions.d.ts +1 -0
  146. package/features/security/IdentityContext/abstractions.js +2 -1
  147. package/features/security/IdentityContext/abstractions.js.map +1 -1
  148. package/features/security/IdentityContext/feature.d.ts +4 -1
  149. package/features/security/IdentityContext/feature.js +6 -5
  150. package/features/security/IdentityContext/feature.js.map +1 -1
  151. package/features/security/IdentityContext/index.js +0 -3
  152. package/features/security/SecurityFeature.d.ts +5 -1
  153. package/features/security/SecurityFeature.js +13 -21
  154. package/features/security/SecurityFeature.js.map +1 -1
  155. package/features/security/apiKeys/CreateApiKey/CreateApiKeyUseCase.js +48 -49
  156. package/features/security/apiKeys/CreateApiKey/CreateApiKeyUseCase.js.map +1 -1
  157. package/features/security/apiKeys/CreateApiKey/abstractions.d.ts +1 -0
  158. package/features/security/apiKeys/CreateApiKey/abstractions.js +2 -1
  159. package/features/security/apiKeys/CreateApiKey/abstractions.js.map +1 -1
  160. package/features/security/apiKeys/CreateApiKey/events.d.ts +6 -4
  161. package/features/security/apiKeys/CreateApiKey/events.js +17 -12
  162. package/features/security/apiKeys/CreateApiKey/events.js.map +1 -1
  163. package/features/security/apiKeys/CreateApiKey/feature.d.ts +4 -1
  164. package/features/security/apiKeys/CreateApiKey/feature.js +6 -5
  165. package/features/security/apiKeys/CreateApiKey/feature.js.map +1 -1
  166. package/features/security/apiKeys/CreateApiKey/index.js +0 -2
  167. package/features/security/apiKeys/DeleteApiKey/DeleteApiKeyUseCase.js +29 -30
  168. package/features/security/apiKeys/DeleteApiKey/DeleteApiKeyUseCase.js.map +1 -1
  169. package/features/security/apiKeys/DeleteApiKey/abstractions.d.ts +1 -0
  170. package/features/security/apiKeys/DeleteApiKey/abstractions.js +2 -1
  171. package/features/security/apiKeys/DeleteApiKey/abstractions.js.map +1 -1
  172. package/features/security/apiKeys/DeleteApiKey/events.d.ts +6 -4
  173. package/features/security/apiKeys/DeleteApiKey/events.js +17 -12
  174. package/features/security/apiKeys/DeleteApiKey/events.js.map +1 -1
  175. package/features/security/apiKeys/DeleteApiKey/feature.d.ts +4 -1
  176. package/features/security/apiKeys/DeleteApiKey/feature.js +6 -5
  177. package/features/security/apiKeys/DeleteApiKey/feature.js.map +1 -1
  178. package/features/security/apiKeys/DeleteApiKey/index.js +0 -2
  179. package/features/security/apiKeys/GetApiKey/GetApiKeyUseCase.js +16 -14
  180. package/features/security/apiKeys/GetApiKey/GetApiKeyUseCase.js.map +1 -1
  181. package/features/security/apiKeys/GetApiKey/abstractions.d.ts +1 -0
  182. package/features/security/apiKeys/GetApiKey/abstractions.js +2 -1
  183. package/features/security/apiKeys/GetApiKey/abstractions.js.map +1 -1
  184. package/features/security/apiKeys/GetApiKey/feature.d.ts +4 -1
  185. package/features/security/apiKeys/GetApiKey/feature.js +6 -5
  186. package/features/security/apiKeys/GetApiKey/feature.js.map +1 -1
  187. package/features/security/apiKeys/GetApiKey/index.js +0 -2
  188. package/features/security/apiKeys/GetApiKeyBySlug/GetApiKeyBySlugUseCase.js +13 -10
  189. package/features/security/apiKeys/GetApiKeyBySlug/GetApiKeyBySlugUseCase.js.map +1 -1
  190. package/features/security/apiKeys/GetApiKeyBySlug/abstractions.d.ts +1 -0
  191. package/features/security/apiKeys/GetApiKeyBySlug/abstractions.js +2 -1
  192. package/features/security/apiKeys/GetApiKeyBySlug/abstractions.js.map +1 -1
  193. package/features/security/apiKeys/GetApiKeyBySlug/feature.d.ts +4 -1
  194. package/features/security/apiKeys/GetApiKeyBySlug/feature.js +6 -5
  195. package/features/security/apiKeys/GetApiKeyBySlug/feature.js.map +1 -1
  196. package/features/security/apiKeys/GetApiKeyBySlug/index.js +0 -2
  197. package/features/security/apiKeys/GetApiKeyByToken/GetApiKeyByTokenUseCase.js +13 -10
  198. package/features/security/apiKeys/GetApiKeyByToken/GetApiKeyByTokenUseCase.js.map +1 -1
  199. package/features/security/apiKeys/GetApiKeyByToken/abstractions.d.ts +1 -0
  200. package/features/security/apiKeys/GetApiKeyByToken/abstractions.js +2 -1
  201. package/features/security/apiKeys/GetApiKeyByToken/abstractions.js.map +1 -1
  202. package/features/security/apiKeys/GetApiKeyByToken/feature.d.ts +4 -1
  203. package/features/security/apiKeys/GetApiKeyByToken/feature.js +6 -5
  204. package/features/security/apiKeys/GetApiKeyByToken/feature.js.map +1 -1
  205. package/features/security/apiKeys/GetApiKeyByToken/index.js +0 -2
  206. package/features/security/apiKeys/ListApiKeys/ListApiKeysUseCase.js +17 -17
  207. package/features/security/apiKeys/ListApiKeys/ListApiKeysUseCase.js.map +1 -1
  208. package/features/security/apiKeys/ListApiKeys/abstractions.d.ts +1 -0
  209. package/features/security/apiKeys/ListApiKeys/abstractions.js +2 -1
  210. package/features/security/apiKeys/ListApiKeys/abstractions.js.map +1 -1
  211. package/features/security/apiKeys/ListApiKeys/feature.d.ts +4 -1
  212. package/features/security/apiKeys/ListApiKeys/feature.js +6 -5
  213. package/features/security/apiKeys/ListApiKeys/feature.js.map +1 -1
  214. package/features/security/apiKeys/ListApiKeys/index.js +0 -2
  215. package/features/security/apiKeys/UpdateApiKey/UpdateApiKeyUseCase.js +39 -42
  216. package/features/security/apiKeys/UpdateApiKey/UpdateApiKeyUseCase.js.map +1 -1
  217. package/features/security/apiKeys/UpdateApiKey/abstractions.d.ts +1 -0
  218. package/features/security/apiKeys/UpdateApiKey/abstractions.js +2 -1
  219. package/features/security/apiKeys/UpdateApiKey/abstractions.js.map +1 -1
  220. package/features/security/apiKeys/UpdateApiKey/events.d.ts +6 -4
  221. package/features/security/apiKeys/UpdateApiKey/events.js +17 -12
  222. package/features/security/apiKeys/UpdateApiKey/events.js.map +1 -1
  223. package/features/security/apiKeys/UpdateApiKey/feature.d.ts +4 -1
  224. package/features/security/apiKeys/UpdateApiKey/feature.js +6 -5
  225. package/features/security/apiKeys/UpdateApiKey/feature.js.map +1 -1
  226. package/features/security/apiKeys/UpdateApiKey/index.js +0 -2
  227. package/features/security/apiKeys/feature.d.ts +4 -1
  228. package/features/security/apiKeys/feature.js +14 -16
  229. package/features/security/apiKeys/feature.js.map +1 -1
  230. package/features/security/apiKeys/shared/ApiKeyProvider.js +42 -42
  231. package/features/security/apiKeys/shared/ApiKeyProvider.js.map +1 -1
  232. package/features/security/apiKeys/shared/ApiKeysRepository.js +108 -135
  233. package/features/security/apiKeys/shared/ApiKeysRepository.js.map +1 -1
  234. package/features/security/apiKeys/shared/abstractions.d.ts +5 -2
  235. package/features/security/apiKeys/shared/abstractions.js +4 -3
  236. package/features/security/apiKeys/shared/abstractions.js.map +1 -1
  237. package/features/security/apiKeys/shared/errors.js +29 -32
  238. package/features/security/apiKeys/shared/errors.js.map +1 -1
  239. package/features/security/apiKeys/shared/generateToken.js +6 -16
  240. package/features/security/apiKeys/shared/generateToken.js.map +1 -1
  241. package/features/security/apiKeys/shared/schemas.d.ts +10 -71
  242. package/features/security/apiKeys/shared/schemas.js +27 -23
  243. package/features/security/apiKeys/shared/schemas.js.map +1 -1
  244. package/features/security/apiKeys/shared/types.js +0 -3
  245. package/features/security/authentication/AuthenticationContext/AuthenticationContext.js +44 -38
  246. package/features/security/authentication/AuthenticationContext/AuthenticationContext.js.map +1 -1
  247. package/features/security/authentication/AuthenticationContext/SetIdTokenCookie.d.ts +2 -2
  248. package/features/security/authentication/AuthenticationContext/SetIdTokenCookie.js +33 -43
  249. package/features/security/authentication/AuthenticationContext/SetIdTokenCookie.js.map +1 -1
  250. package/features/security/authentication/AuthenticationContext/abstractions.d.ts +1 -0
  251. package/features/security/authentication/AuthenticationContext/abstractions.js +2 -1
  252. package/features/security/authentication/AuthenticationContext/abstractions.js.map +1 -1
  253. package/features/security/authentication/AuthenticationContext/errors.js +51 -116
  254. package/features/security/authentication/AuthenticationContext/errors.js.map +1 -1
  255. package/features/security/authentication/AuthenticationContext/events.d.ts +6 -4
  256. package/features/security/authentication/AuthenticationContext/events.js +17 -12
  257. package/features/security/authentication/AuthenticationContext/events.js.map +1 -1
  258. package/features/security/authentication/AuthenticationContext/feature.d.ts +4 -1
  259. package/features/security/authentication/AuthenticationContext/feature.js +6 -5
  260. package/features/security/authentication/AuthenticationContext/feature.js.map +1 -1
  261. package/features/security/authentication/AuthenticationContext/index.js +2 -4
  262. package/features/security/authentication/Authenticator/abstractions.d.ts +1 -0
  263. package/features/security/authentication/Authenticator/abstractions.js +2 -1
  264. package/features/security/authentication/Authenticator/abstractions.js.map +1 -1
  265. package/features/security/authentication/Authenticator/index.js +0 -2
  266. package/features/security/authorization/AuthorizationContext/AuthorizationContext.d.ts +1 -0
  267. package/features/security/authorization/AuthorizationContext/AuthorizationContext.js +46 -47
  268. package/features/security/authorization/AuthorizationContext/AuthorizationContext.js.map +1 -1
  269. package/features/security/authorization/AuthorizationContext/abstractions.d.ts +2 -0
  270. package/features/security/authorization/AuthorizationContext/abstractions.js +3 -2
  271. package/features/security/authorization/AuthorizationContext/abstractions.js.map +1 -1
  272. package/features/security/authorization/AuthorizationContext/feature.d.ts +4 -1
  273. package/features/security/authorization/AuthorizationContext/feature.js +10 -9
  274. package/features/security/authorization/AuthorizationContext/feature.js.map +1 -1
  275. package/features/security/authorization/AuthorizationContext/index.js +1 -4
  276. package/features/security/authorization/Authorizer/abstractions.d.ts +1 -0
  277. package/features/security/authorization/Authorizer/abstractions.js +2 -1
  278. package/features/security/authorization/Authorizer/abstractions.js.map +1 -1
  279. package/features/security/authorization/Authorizer/index.js +0 -2
  280. package/features/security/authorization/GroupsTeamsAuthorizer/GetPermissionsFromIdentity.js +60 -64
  281. package/features/security/authorization/GroupsTeamsAuthorizer/GetPermissionsFromIdentity.js.map +1 -1
  282. package/features/security/authorization/GroupsTeamsAuthorizer/RolesTeamsAuthorizer.js +26 -40
  283. package/features/security/authorization/GroupsTeamsAuthorizer/RolesTeamsAuthorizer.js.map +1 -1
  284. package/features/security/authorization/GroupsTeamsAuthorizer/abstractions.js +2 -1
  285. package/features/security/authorization/GroupsTeamsAuthorizer/abstractions.js.map +1 -1
  286. package/features/security/authorization/GroupsTeamsAuthorizer/feature.d.ts +4 -1
  287. package/features/security/authorization/GroupsTeamsAuthorizer/feature.js +7 -6
  288. package/features/security/authorization/GroupsTeamsAuthorizer/feature.js.map +1 -1
  289. package/features/security/login/abstractions.d.ts +3 -2
  290. package/features/security/login/abstractions.js +9 -6
  291. package/features/security/login/abstractions.js.map +1 -1
  292. package/features/security/login/index.js +0 -2
  293. package/features/security/permissions/createPermissionSchema.d.ts +2 -0
  294. package/features/security/permissions/createPermissionSchema.js +9 -0
  295. package/features/security/permissions/createPermissionSchema.js.map +1 -0
  296. package/features/security/permissions/createPermissions.d.ts +5 -5
  297. package/features/security/permissions/createPermissions.js +130 -208
  298. package/features/security/permissions/createPermissions.js.map +1 -1
  299. package/features/security/permissions/index.d.ts +2 -1
  300. package/features/security/permissions/index.js +2 -3
  301. package/features/security/permissions/types.js +0 -3
  302. package/features/security/roles/CreateRole/CreateRoleUseCase.d.ts +1 -3
  303. package/features/security/roles/CreateRole/CreateRoleUseCase.js +53 -63
  304. package/features/security/roles/CreateRole/CreateRoleUseCase.js.map +1 -1
  305. package/features/security/roles/CreateRole/abstractions.d.ts +1 -0
  306. package/features/security/roles/CreateRole/abstractions.js +2 -1
  307. package/features/security/roles/CreateRole/abstractions.js.map +1 -1
  308. package/features/security/roles/CreateRole/events.d.ts +6 -4
  309. package/features/security/roles/CreateRole/events.js +17 -12
  310. package/features/security/roles/CreateRole/events.js.map +1 -1
  311. package/features/security/roles/CreateRole/feature.d.ts +4 -1
  312. package/features/security/roles/CreateRole/feature.js +6 -5
  313. package/features/security/roles/CreateRole/feature.js.map +1 -1
  314. package/features/security/roles/CreateRole/index.js +0 -2
  315. package/features/security/roles/CreateRole/schema.d.ts +2 -20
  316. package/features/security/roles/CreateRole/schema.js +8 -7
  317. package/features/security/roles/CreateRole/schema.js.map +1 -1
  318. package/features/security/roles/DeleteRole/DeleteRoleUseCase.js +35 -41
  319. package/features/security/roles/DeleteRole/DeleteRoleUseCase.js.map +1 -1
  320. package/features/security/roles/DeleteRole/abstractions.d.ts +1 -0
  321. package/features/security/roles/DeleteRole/abstractions.js +2 -1
  322. package/features/security/roles/DeleteRole/abstractions.js.map +1 -1
  323. package/features/security/roles/DeleteRole/events.d.ts +6 -4
  324. package/features/security/roles/DeleteRole/events.js +17 -12
  325. package/features/security/roles/DeleteRole/events.js.map +1 -1
  326. package/features/security/roles/DeleteRole/feature.d.ts +4 -1
  327. package/features/security/roles/DeleteRole/feature.js +6 -5
  328. package/features/security/roles/DeleteRole/feature.js.map +1 -1
  329. package/features/security/roles/DeleteRole/index.js +0 -2
  330. package/features/security/roles/GetRole/GetRoleUseCase.js +19 -18
  331. package/features/security/roles/GetRole/GetRoleUseCase.js.map +1 -1
  332. package/features/security/roles/GetRole/abstractions.d.ts +1 -0
  333. package/features/security/roles/GetRole/abstractions.js +2 -1
  334. package/features/security/roles/GetRole/abstractions.js.map +1 -1
  335. package/features/security/roles/GetRole/feature.d.ts +4 -1
  336. package/features/security/roles/GetRole/feature.js +6 -5
  337. package/features/security/roles/GetRole/feature.js.map +1 -1
  338. package/features/security/roles/GetRole/index.js +0 -2
  339. package/features/security/roles/Installer/RolesInstaller.js +38 -35
  340. package/features/security/roles/Installer/RolesInstaller.js.map +1 -1
  341. package/features/security/roles/ListRoles/ListRolesUseCase.js +18 -17
  342. package/features/security/roles/ListRoles/ListRolesUseCase.js.map +1 -1
  343. package/features/security/roles/ListRoles/abstractions.d.ts +1 -0
  344. package/features/security/roles/ListRoles/abstractions.js +2 -1
  345. package/features/security/roles/ListRoles/abstractions.js.map +1 -1
  346. package/features/security/roles/ListRoles/feature.d.ts +4 -1
  347. package/features/security/roles/ListRoles/feature.js +6 -5
  348. package/features/security/roles/ListRoles/feature.js.map +1 -1
  349. package/features/security/roles/ListRoles/index.js +0 -2
  350. package/features/security/roles/UpdateRole/UpdateRoleUseCase.js +43 -50
  351. package/features/security/roles/UpdateRole/UpdateRoleUseCase.js.map +1 -1
  352. package/features/security/roles/UpdateRole/abstractions.d.ts +1 -0
  353. package/features/security/roles/UpdateRole/abstractions.js +2 -1
  354. package/features/security/roles/UpdateRole/abstractions.js.map +1 -1
  355. package/features/security/roles/UpdateRole/events.d.ts +6 -4
  356. package/features/security/roles/UpdateRole/events.js +17 -12
  357. package/features/security/roles/UpdateRole/events.js.map +1 -1
  358. package/features/security/roles/UpdateRole/feature.d.ts +4 -1
  359. package/features/security/roles/UpdateRole/feature.js +6 -5
  360. package/features/security/roles/UpdateRole/feature.js.map +1 -1
  361. package/features/security/roles/UpdateRole/index.js +0 -2
  362. package/features/security/roles/UpdateRole/schema.d.ts +2 -18
  363. package/features/security/roles/UpdateRole/schema.js +7 -6
  364. package/features/security/roles/UpdateRole/schema.js.map +1 -1
  365. package/features/security/roles/feature.d.ts +4 -1
  366. package/features/security/roles/feature.js +15 -17
  367. package/features/security/roles/feature.js.map +1 -1
  368. package/features/security/roles/shared/RoleProvider.d.ts +13 -0
  369. package/features/security/roles/shared/RoleProvider.js +35 -0
  370. package/features/security/roles/shared/RoleProvider.js.map +1 -0
  371. package/features/security/roles/shared/RolesRepository.d.ts +3 -1
  372. package/features/security/roles/shared/RolesRepository.js +99 -115
  373. package/features/security/roles/shared/RolesRepository.js.map +1 -1
  374. package/features/security/roles/shared/abstractions.d.ts +19 -0
  375. package/features/security/roles/shared/abstractions.js +3 -1
  376. package/features/security/roles/shared/abstractions.js.map +1 -1
  377. package/features/security/roles/shared/decorators/ListCache.js +23 -22
  378. package/features/security/roles/shared/decorators/ListCache.js.map +1 -1
  379. package/features/security/roles/shared/decorators/RolesRepositoryCachingDecorator.js +40 -62
  380. package/features/security/roles/shared/decorators/RolesRepositoryCachingDecorator.js.map +1 -1
  381. package/features/security/roles/shared/errors.js +50 -56
  382. package/features/security/roles/shared/errors.js.map +1 -1
  383. package/features/security/roles/shared/types.js +0 -3
  384. package/features/security/shared/abstractions.d.ts +5 -14
  385. package/features/security/shared/abstractions.js +4 -19
  386. package/features/security/shared/abstractions.js.map +1 -1
  387. package/features/security/shared/errors.js +8 -8
  388. package/features/security/shared/errors.js.map +1 -1
  389. package/features/security/shared/index.js +0 -2
  390. package/features/security/teams/CreateTeam/CreateTeamUseCase.d.ts +1 -3
  391. package/features/security/teams/CreateTeam/CreateTeamUseCase.js +53 -63
  392. package/features/security/teams/CreateTeam/CreateTeamUseCase.js.map +1 -1
  393. package/features/security/teams/CreateTeam/abstractions.d.ts +1 -0
  394. package/features/security/teams/CreateTeam/abstractions.js +2 -1
  395. package/features/security/teams/CreateTeam/abstractions.js.map +1 -1
  396. package/features/security/teams/CreateTeam/events.d.ts +6 -4
  397. package/features/security/teams/CreateTeam/events.js +17 -12
  398. package/features/security/teams/CreateTeam/events.js.map +1 -1
  399. package/features/security/teams/CreateTeam/feature.d.ts +4 -1
  400. package/features/security/teams/CreateTeam/feature.js +6 -5
  401. package/features/security/teams/CreateTeam/feature.js.map +1 -1
  402. package/features/security/teams/CreateTeam/index.d.ts +1 -1
  403. package/features/security/teams/CreateTeam/index.js +1 -3
  404. package/features/security/teams/CreateTeam/schema.d.ts +2 -12
  405. package/features/security/teams/CreateTeam/schema.js +6 -5
  406. package/features/security/teams/CreateTeam/schema.js.map +1 -1
  407. package/features/security/teams/DeleteTeam/DeleteTeamUseCase.js +36 -46
  408. package/features/security/teams/DeleteTeam/DeleteTeamUseCase.js.map +1 -1
  409. package/features/security/teams/DeleteTeam/abstractions.d.ts +1 -0
  410. package/features/security/teams/DeleteTeam/abstractions.js +2 -1
  411. package/features/security/teams/DeleteTeam/abstractions.js.map +1 -1
  412. package/features/security/teams/DeleteTeam/events.d.ts +6 -4
  413. package/features/security/teams/DeleteTeam/events.js +17 -12
  414. package/features/security/teams/DeleteTeam/events.js.map +1 -1
  415. package/features/security/teams/DeleteTeam/feature.d.ts +4 -1
  416. package/features/security/teams/DeleteTeam/feature.js +6 -5
  417. package/features/security/teams/DeleteTeam/feature.js.map +1 -1
  418. package/features/security/teams/DeleteTeam/index.js +0 -2
  419. package/features/security/teams/GetTeam/GetTeamUseCase.js +17 -17
  420. package/features/security/teams/GetTeam/GetTeamUseCase.js.map +1 -1
  421. package/features/security/teams/GetTeam/abstractions.d.ts +1 -0
  422. package/features/security/teams/GetTeam/abstractions.js +2 -1
  423. package/features/security/teams/GetTeam/abstractions.js.map +1 -1
  424. package/features/security/teams/GetTeam/feature.d.ts +4 -1
  425. package/features/security/teams/GetTeam/feature.js +6 -5
  426. package/features/security/teams/GetTeam/feature.js.map +1 -1
  427. package/features/security/teams/GetTeam/index.js +0 -2
  428. package/features/security/teams/ListTeams/ListTeamsUseCase.js +20 -21
  429. package/features/security/teams/ListTeams/ListTeamsUseCase.js.map +1 -1
  430. package/features/security/teams/ListTeams/abstractions.d.ts +1 -0
  431. package/features/security/teams/ListTeams/abstractions.js +2 -1
  432. package/features/security/teams/ListTeams/abstractions.js.map +1 -1
  433. package/features/security/teams/ListTeams/feature.d.ts +4 -1
  434. package/features/security/teams/ListTeams/feature.js +6 -5
  435. package/features/security/teams/ListTeams/feature.js.map +1 -1
  436. package/features/security/teams/ListTeams/index.js +0 -2
  437. package/features/security/teams/UpdateTeam/UpdateTeamUseCase.js +46 -58
  438. package/features/security/teams/UpdateTeam/UpdateTeamUseCase.js.map +1 -1
  439. package/features/security/teams/UpdateTeam/abstractions.d.ts +1 -0
  440. package/features/security/teams/UpdateTeam/abstractions.js +2 -1
  441. package/features/security/teams/UpdateTeam/abstractions.js.map +1 -1
  442. package/features/security/teams/UpdateTeam/events.d.ts +6 -4
  443. package/features/security/teams/UpdateTeam/events.js +17 -12
  444. package/features/security/teams/UpdateTeam/events.js.map +1 -1
  445. package/features/security/teams/UpdateTeam/feature.d.ts +4 -1
  446. package/features/security/teams/UpdateTeam/feature.js +6 -5
  447. package/features/security/teams/UpdateTeam/feature.js.map +1 -1
  448. package/features/security/teams/UpdateTeam/index.js +0 -2
  449. package/features/security/teams/UpdateTeam/schema.d.ts +2 -10
  450. package/features/security/teams/UpdateTeam/schema.js +5 -4
  451. package/features/security/teams/UpdateTeam/schema.js.map +1 -1
  452. package/features/security/teams/feature.d.ts +4 -1
  453. package/features/security/teams/feature.js +15 -13
  454. package/features/security/teams/feature.js.map +1 -1
  455. package/features/security/teams/shared/TeamProvider.d.ts +13 -0
  456. package/features/security/teams/shared/TeamProvider.js +35 -0
  457. package/features/security/teams/shared/TeamProvider.js.map +1 -0
  458. package/features/security/teams/shared/TeamsRepository.js +102 -118
  459. package/features/security/teams/shared/TeamsRepository.js.map +1 -1
  460. package/features/security/teams/shared/abstractions.d.ts +18 -0
  461. package/features/security/teams/shared/abstractions.js +3 -1
  462. package/features/security/teams/shared/abstractions.js.map +1 -1
  463. package/features/security/teams/shared/decorators/TeamsRepositoryCachingDecorator.d.ts +17 -0
  464. package/features/security/teams/shared/decorators/TeamsRepositoryCachingDecorator.js +54 -0
  465. package/features/security/teams/shared/decorators/TeamsRepositoryCachingDecorator.js.map +1 -0
  466. package/features/security/teams/shared/errors.js +62 -70
  467. package/features/security/teams/shared/errors.js.map +1 -1
  468. package/features/security/teams/shared/types.js +0 -3
  469. package/features/security/utils/AppPermissions.js +50 -89
  470. package/features/security/utils/AppPermissions.js.map +1 -1
  471. package/features/security/utils/IdentityValue.js +19 -22
  472. package/features/security/utils/IdentityValue.js.map +1 -1
  473. package/features/security/utils/filterOutCustomWbyAppsPermissions.js +24 -27
  474. package/features/security/utils/filterOutCustomWbyAppsPermissions.js.map +1 -1
  475. package/features/security/utils/getPermissionsFromRoles.js +5 -10
  476. package/features/security/utils/getPermissionsFromRoles.js.map +1 -1
  477. package/features/security/utils/isJwt.js +2 -1
  478. package/features/security/utils/isJwt.js.map +1 -1
  479. package/features/security/utils/verifyJwtUsingJwk.d.ts +2 -4
  480. package/features/security/utils/verifyJwtUsingJwk.js +7 -8
  481. package/features/security/utils/verifyJwtUsingJwk.js.map +1 -1
  482. package/features/system/InstallSystem/InstallSystemUseCase.js +45 -44
  483. package/features/system/InstallSystem/InstallSystemUseCase.js.map +1 -1
  484. package/features/system/InstallSystem/abstractions.d.ts +4 -5
  485. package/features/system/InstallSystem/abstractions.js +3 -18
  486. package/features/system/InstallSystem/abstractions.js.map +1 -1
  487. package/features/system/InstallSystem/errors.js +15 -16
  488. package/features/system/InstallSystem/errors.js.map +1 -1
  489. package/features/system/InstallSystem/events.js +9 -6
  490. package/features/system/InstallSystem/events.js.map +1 -1
  491. package/features/system/InstallSystem/feature.d.ts +5 -1
  492. package/features/system/InstallSystem/feature.js +6 -7
  493. package/features/system/InstallSystem/feature.js.map +1 -1
  494. package/features/system/InstallSystem/index.d.ts +1 -1
  495. package/features/system/InstallSystem/index.js +2 -6
  496. package/features/system/SystemFeature.d.ts +4 -1
  497. package/features/system/SystemFeature.js +6 -5
  498. package/features/system/SystemFeature.js.map +1 -1
  499. package/features/task/TaskController/abstractions.d.ts +1 -0
  500. package/features/task/TaskController/abstractions.js +2 -9
  501. package/features/task/TaskController/abstractions.js.map +1 -1
  502. package/features/task/TaskController/index.js +0 -2
  503. package/features/task/TaskDefinition/abstractions.d.ts +7 -1
  504. package/features/task/TaskDefinition/abstractions.js +8 -39
  505. package/features/task/TaskDefinition/abstractions.js.map +1 -1
  506. package/features/task/TaskDefinition/index.js +0 -2
  507. package/features/task/TaskService/abstractions.d.ts +1 -0
  508. package/features/task/TaskService/abstractions.js +9 -12
  509. package/features/task/TaskService/abstractions.js.map +1 -1
  510. package/features/task/TaskService/index.js +0 -2
  511. package/features/tenancy/CreateTenant/CreateTenantGateway.js +14 -11
  512. package/features/tenancy/CreateTenant/CreateTenantGateway.js.map +1 -1
  513. package/features/tenancy/CreateTenant/CreateTenantRepository.js +18 -15
  514. package/features/tenancy/CreateTenant/CreateTenantRepository.js.map +1 -1
  515. package/features/tenancy/CreateTenant/CreateTenantUseCase.js +44 -41
  516. package/features/tenancy/CreateTenant/CreateTenantUseCase.js.map +1 -1
  517. package/features/tenancy/CreateTenant/abstractions.d.ts +9 -7
  518. package/features/tenancy/CreateTenant/abstractions.js +6 -27
  519. package/features/tenancy/CreateTenant/abstractions.js.map +1 -1
  520. package/features/tenancy/CreateTenant/decorators/CreateTenantWithWcpIncrement.js +16 -15
  521. package/features/tenancy/CreateTenant/decorators/CreateTenantWithWcpIncrement.js.map +1 -1
  522. package/features/tenancy/CreateTenant/errors.js +8 -8
  523. package/features/tenancy/CreateTenant/errors.js.map +1 -1
  524. package/features/tenancy/CreateTenant/events.js +16 -11
  525. package/features/tenancy/CreateTenant/events.js.map +1 -1
  526. package/features/tenancy/CreateTenant/feature.d.ts +5 -1
  527. package/features/tenancy/CreateTenant/feature.js +9 -8
  528. package/features/tenancy/CreateTenant/feature.js.map +1 -1
  529. package/features/tenancy/CreateTenant/index.d.ts +1 -1
  530. package/features/tenancy/CreateTenant/index.js +2 -4
  531. package/features/tenancy/DeleteTenant/DeleteTenantGateway.js +15 -12
  532. package/features/tenancy/DeleteTenant/DeleteTenantGateway.js.map +1 -1
  533. package/features/tenancy/DeleteTenant/DeleteTenantRepository.js +22 -19
  534. package/features/tenancy/DeleteTenant/DeleteTenantRepository.js.map +1 -1
  535. package/features/tenancy/DeleteTenant/DeleteTenantUseCase.js +29 -27
  536. package/features/tenancy/DeleteTenant/DeleteTenantUseCase.js.map +1 -1
  537. package/features/tenancy/DeleteTenant/abstractions.d.ts +9 -4
  538. package/features/tenancy/DeleteTenant/abstractions.js +6 -5
  539. package/features/tenancy/DeleteTenant/abstractions.js.map +1 -1
  540. package/features/tenancy/DeleteTenant/decorators/DeleteTenantWithWcpDecrement.js +16 -13
  541. package/features/tenancy/DeleteTenant/decorators/DeleteTenantWithWcpDecrement.js.map +1 -1
  542. package/features/tenancy/DeleteTenant/events.js +16 -11
  543. package/features/tenancy/DeleteTenant/events.js.map +1 -1
  544. package/features/tenancy/DeleteTenant/feature.d.ts +5 -1
  545. package/features/tenancy/DeleteTenant/feature.js +9 -8
  546. package/features/tenancy/DeleteTenant/feature.js.map +1 -1
  547. package/features/tenancy/DeleteTenant/index.d.ts +1 -1
  548. package/features/tenancy/DeleteTenant/index.js +2 -4
  549. package/features/tenancy/GetRootTenant/GetRootTenantUseCase.js +15 -12
  550. package/features/tenancy/GetRootTenant/GetRootTenantUseCase.js.map +1 -1
  551. package/features/tenancy/GetRootTenant/abstractions.js +2 -4
  552. package/features/tenancy/GetRootTenant/abstractions.js.map +1 -1
  553. package/features/tenancy/GetRootTenant/feature.d.ts +5 -1
  554. package/features/tenancy/GetRootTenant/feature.js +6 -5
  555. package/features/tenancy/GetRootTenant/feature.js.map +1 -1
  556. package/features/tenancy/GetRootTenant/index.js +0 -2
  557. package/features/tenancy/GetTenantById/GetTenantByIdGateway.js +17 -12
  558. package/features/tenancy/GetTenantById/GetTenantByIdGateway.js.map +1 -1
  559. package/features/tenancy/GetTenantById/GetTenantByIdRepository.js +18 -19
  560. package/features/tenancy/GetTenantById/GetTenantByIdRepository.js.map +1 -1
  561. package/features/tenancy/GetTenantById/GetTenantByIdUseCase.js +17 -17
  562. package/features/tenancy/GetTenantById/GetTenantByIdUseCase.js.map +1 -1
  563. package/features/tenancy/GetTenantById/abstractions.d.ts +3 -0
  564. package/features/tenancy/GetTenantById/abstractions.js +4 -12
  565. package/features/tenancy/GetTenantById/abstractions.js.map +1 -1
  566. package/features/tenancy/GetTenantById/feature.d.ts +5 -1
  567. package/features/tenancy/GetTenantById/feature.js +8 -12
  568. package/features/tenancy/GetTenantById/feature.js.map +1 -1
  569. package/features/tenancy/GetTenantById/index.js +1 -3
  570. package/features/tenancy/InstallTenant/DependencyResolver.js +53 -65
  571. package/features/tenancy/InstallTenant/DependencyResolver.js.map +1 -1
  572. package/features/tenancy/InstallTenant/InstallTenantUseCase.js +95 -113
  573. package/features/tenancy/InstallTenant/InstallTenantUseCase.js.map +1 -1
  574. package/features/tenancy/InstallTenant/abstractions.d.ts +5 -11
  575. package/features/tenancy/InstallTenant/abstractions.js +4 -24
  576. package/features/tenancy/InstallTenant/abstractions.js.map +1 -1
  577. package/features/tenancy/InstallTenant/errors.js +15 -16
  578. package/features/tenancy/InstallTenant/errors.js.map +1 -1
  579. package/features/tenancy/InstallTenant/events.js +9 -6
  580. package/features/tenancy/InstallTenant/events.js.map +1 -1
  581. package/features/tenancy/InstallTenant/feature.d.ts +5 -1
  582. package/features/tenancy/InstallTenant/feature.js +6 -5
  583. package/features/tenancy/InstallTenant/feature.js.map +1 -1
  584. package/features/tenancy/InstallTenant/index.d.ts +1 -1
  585. package/features/tenancy/InstallTenant/index.js +1 -3
  586. package/features/tenancy/ListTenants/ListTenantsGateway.js +14 -11
  587. package/features/tenancy/ListTenants/ListTenantsGateway.js.map +1 -1
  588. package/features/tenancy/ListTenants/ListTenantsRepository.js +14 -12
  589. package/features/tenancy/ListTenants/ListTenantsRepository.js.map +1 -1
  590. package/features/tenancy/ListTenants/ListTenantsUseCase.js +16 -14
  591. package/features/tenancy/ListTenants/ListTenantsUseCase.js.map +1 -1
  592. package/features/tenancy/ListTenants/abstractions.js +4 -12
  593. package/features/tenancy/ListTenants/abstractions.js.map +1 -1
  594. package/features/tenancy/ListTenants/feature.d.ts +5 -1
  595. package/features/tenancy/ListTenants/feature.js +8 -7
  596. package/features/tenancy/ListTenants/feature.js.map +1 -1
  597. package/features/tenancy/ListTenants/index.js +1 -3
  598. package/features/tenancy/TenancyFeature.d.ts +4 -1
  599. package/features/tenancy/TenancyFeature.js +20 -26
  600. package/features/tenancy/TenancyFeature.js.map +1 -1
  601. package/features/tenancy/TenantContext/TenantContext.js +46 -48
  602. package/features/tenancy/TenantContext/TenantContext.js.map +1 -1
  603. package/features/tenancy/TenantContext/abstractions.d.ts +1 -0
  604. package/features/tenancy/TenantContext/abstractions.js +2 -1
  605. package/features/tenancy/TenantContext/abstractions.js.map +1 -1
  606. package/features/tenancy/TenantContext/errors.js +7 -7
  607. package/features/tenancy/TenantContext/errors.js.map +1 -1
  608. package/features/tenancy/TenantContext/feature.d.ts +4 -1
  609. package/features/tenancy/TenantContext/feature.js +6 -5
  610. package/features/tenancy/TenantContext/feature.js.map +1 -1
  611. package/features/tenancy/TenantContext/index.js +0 -2
  612. package/features/tenancy/UpdateTenant/UpdateTenantGateway.js +14 -11
  613. package/features/tenancy/UpdateTenant/UpdateTenantGateway.js.map +1 -1
  614. package/features/tenancy/UpdateTenant/UpdateTenantRepository.js +19 -16
  615. package/features/tenancy/UpdateTenant/UpdateTenantRepository.js.map +1 -1
  616. package/features/tenancy/UpdateTenant/UpdateTenantUseCase.js +37 -36
  617. package/features/tenancy/UpdateTenant/UpdateTenantUseCase.js.map +1 -1
  618. package/features/tenancy/UpdateTenant/abstractions.d.ts +9 -4
  619. package/features/tenancy/UpdateTenant/abstractions.js +6 -5
  620. package/features/tenancy/UpdateTenant/abstractions.js.map +1 -1
  621. package/features/tenancy/UpdateTenant/events.js +16 -11
  622. package/features/tenancy/UpdateTenant/events.js.map +1 -1
  623. package/features/tenancy/UpdateTenant/feature.d.ts +5 -1
  624. package/features/tenancy/UpdateTenant/feature.js +8 -7
  625. package/features/tenancy/UpdateTenant/feature.js.map +1 -1
  626. package/features/tenancy/UpdateTenant/index.d.ts +1 -1
  627. package/features/tenancy/UpdateTenant/index.js +2 -4
  628. package/features/tenancy/shared/TenantCache.js +18 -17
  629. package/features/tenancy/shared/TenantCache.js.map +1 -1
  630. package/features/tenancy/shared/abstractions.js +2 -1
  631. package/features/tenancy/shared/abstractions.js.map +1 -1
  632. package/features/tenancy/shared/storageOperations.js +2 -5
  633. package/features/tenancy/shared/storageOperations.js.map +1 -1
  634. package/features/users/AdminUsersFeature.d.ts +4 -1
  635. package/features/users/AdminUsersFeature.js +15 -19
  636. package/features/users/AdminUsersFeature.js.map +1 -1
  637. package/features/users/CreateUser/CreateUserUseCase.js +65 -100
  638. package/features/users/CreateUser/CreateUserUseCase.js.map +1 -1
  639. package/features/users/CreateUser/abstractions.d.ts +1 -0
  640. package/features/users/CreateUser/abstractions.js +2 -13
  641. package/features/users/CreateUser/abstractions.js.map +1 -1
  642. package/features/users/CreateUser/decorators/CreateUserWithWcpIncrement.js +16 -15
  643. package/features/users/CreateUser/decorators/CreateUserWithWcpIncrement.js.map +1 -1
  644. package/features/users/CreateUser/events.d.ts +6 -4
  645. package/features/users/CreateUser/events.js +17 -14
  646. package/features/users/CreateUser/events.js.map +1 -1
  647. package/features/users/CreateUser/feature.d.ts +4 -1
  648. package/features/users/CreateUser/feature.js +7 -6
  649. package/features/users/CreateUser/feature.js.map +1 -1
  650. package/features/users/CreateUser/index.js +0 -2
  651. package/features/users/CreateUser/schema.d.ts +4 -36
  652. package/features/users/CreateUser/schema.js +14 -18
  653. package/features/users/CreateUser/schema.js.map +1 -1
  654. package/features/users/DeleteUser/DeleteUserUseCase.js +35 -50
  655. package/features/users/DeleteUser/DeleteUserUseCase.js.map +1 -1
  656. package/features/users/DeleteUser/abstractions.d.ts +1 -0
  657. package/features/users/DeleteUser/abstractions.js +2 -13
  658. package/features/users/DeleteUser/abstractions.js.map +1 -1
  659. package/features/users/DeleteUser/decorators/DeleteUserWithWcpDecrement.js +15 -16
  660. package/features/users/DeleteUser/decorators/DeleteUserWithWcpDecrement.js.map +1 -1
  661. package/features/users/DeleteUser/errors.js +7 -7
  662. package/features/users/DeleteUser/errors.js.map +1 -1
  663. package/features/users/DeleteUser/events.d.ts +6 -4
  664. package/features/users/DeleteUser/events.js +17 -14
  665. package/features/users/DeleteUser/events.js.map +1 -1
  666. package/features/users/DeleteUser/feature.d.ts +4 -1
  667. package/features/users/DeleteUser/feature.js +7 -6
  668. package/features/users/DeleteUser/feature.js.map +1 -1
  669. package/features/users/DeleteUser/index.js +0 -2
  670. package/features/users/ExternalIdpUserSync/ExternalIdpUserSyncHandler.d.ts +3 -3
  671. package/features/users/ExternalIdpUserSync/ExternalIdpUserSyncHandler.js +61 -75
  672. package/features/users/ExternalIdpUserSync/ExternalIdpUserSyncHandler.js.map +1 -1
  673. package/features/users/ExternalIdpUserSync/feature.d.ts +4 -1
  674. package/features/users/ExternalIdpUserSync/feature.js +6 -5
  675. package/features/users/ExternalIdpUserSync/feature.js.map +1 -1
  676. package/features/users/ExternalIdpUserSync/index.js +0 -2
  677. package/features/users/GetIdentityProfile/GetIdentityProfileUseCase.js +29 -39
  678. package/features/users/GetIdentityProfile/GetIdentityProfileUseCase.js.map +1 -1
  679. package/features/users/GetIdentityProfile/abstractions.js +2 -11
  680. package/features/users/GetIdentityProfile/abstractions.js.map +1 -1
  681. package/features/users/GetIdentityProfile/feature.d.ts +4 -1
  682. package/features/users/GetIdentityProfile/feature.js +6 -5
  683. package/features/users/GetIdentityProfile/feature.js.map +1 -1
  684. package/features/users/GetIdentityProfile/index.js +0 -2
  685. package/features/users/GetIdentityProfile/types.js +0 -3
  686. package/features/users/GetUser/GetUserUseCase.js +19 -23
  687. package/features/users/GetUser/GetUserUseCase.js.map +1 -1
  688. package/features/users/GetUser/abstractions.d.ts +1 -0
  689. package/features/users/GetUser/abstractions.js +2 -11
  690. package/features/users/GetUser/abstractions.js.map +1 -1
  691. package/features/users/GetUser/feature.d.ts +4 -1
  692. package/features/users/GetUser/feature.js +6 -5
  693. package/features/users/GetUser/feature.js.map +1 -1
  694. package/features/users/GetUser/index.js +0 -2
  695. package/features/users/ListUserTeams/ListUserTeamsUseCase.js +33 -42
  696. package/features/users/ListUserTeams/ListUserTeamsUseCase.js.map +1 -1
  697. package/features/users/ListUserTeams/abstractions.d.ts +1 -0
  698. package/features/users/ListUserTeams/abstractions.js +2 -11
  699. package/features/users/ListUserTeams/abstractions.js.map +1 -1
  700. package/features/users/ListUserTeams/feature.d.ts +4 -1
  701. package/features/users/ListUserTeams/feature.js +6 -5
  702. package/features/users/ListUserTeams/feature.js.map +1 -1
  703. package/features/users/ListUserTeams/index.js +0 -2
  704. package/features/users/ListUsers/ListUsersUseCase.js +19 -23
  705. package/features/users/ListUsers/ListUsersUseCase.js.map +1 -1
  706. package/features/users/ListUsers/abstractions.d.ts +1 -0
  707. package/features/users/ListUsers/abstractions.js +2 -11
  708. package/features/users/ListUsers/abstractions.js.map +1 -1
  709. package/features/users/ListUsers/feature.d.ts +4 -1
  710. package/features/users/ListUsers/feature.js +6 -5
  711. package/features/users/ListUsers/feature.js.map +1 -1
  712. package/features/users/ListUsers/index.js +0 -2
  713. package/features/users/UpdateUser/UpdateUserUseCase.js +52 -74
  714. package/features/users/UpdateUser/UpdateUserUseCase.js.map +1 -1
  715. package/features/users/UpdateUser/abstractions.d.ts +1 -0
  716. package/features/users/UpdateUser/abstractions.js +2 -13
  717. package/features/users/UpdateUser/abstractions.js.map +1 -1
  718. package/features/users/UpdateUser/events.d.ts +6 -4
  719. package/features/users/UpdateUser/events.js +17 -14
  720. package/features/users/UpdateUser/events.js.map +1 -1
  721. package/features/users/UpdateUser/feature.d.ts +4 -1
  722. package/features/users/UpdateUser/feature.js +6 -5
  723. package/features/users/UpdateUser/feature.js.map +1 -1
  724. package/features/users/UpdateUser/index.js +0 -2
  725. package/features/users/UpdateUser/schema.d.ts +4 -30
  726. package/features/users/UpdateUser/schema.js +11 -10
  727. package/features/users/UpdateUser/schema.js.map +1 -1
  728. package/features/users/shared/AdminUsersRepository.js +104 -112
  729. package/features/users/shared/AdminUsersRepository.js.map +1 -1
  730. package/features/users/shared/abstractions.d.ts +1 -0
  731. package/features/users/shared/abstractions.js +2 -9
  732. package/features/users/shared/abstractions.js.map +1 -1
  733. package/features/users/shared/errors.js +40 -46
  734. package/features/users/shared/errors.js.map +1 -1
  735. package/features/users/shared/loaders.js +52 -66
  736. package/features/users/shared/loaders.js.map +1 -1
  737. package/features/users/shared/storageAbstractions.js +2 -2
  738. package/features/users/shared/storageAbstractions.js.map +1 -1
  739. package/features/users/shared/types.js +0 -3
  740. package/features/wcp/WcpContext/WcpContext.d.ts +3 -0
  741. package/features/wcp/WcpContext/WcpContext.js +138 -133
  742. package/features/wcp/WcpContext/WcpContext.js.map +1 -1
  743. package/features/wcp/WcpContext/abstractions.js +2 -6
  744. package/features/wcp/WcpContext/abstractions.js.map +1 -1
  745. package/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.d.ts +15 -0
  746. package/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.js +135 -113
  747. package/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.js.map +1 -1
  748. package/features/wcp/WcpContext/feature.d.ts +5 -1
  749. package/features/wcp/WcpContext/feature.js +6 -5
  750. package/features/wcp/WcpContext/feature.js.map +1 -1
  751. package/features/wcp/WcpContext/index.js +0 -2
  752. package/features/wcp/WcpContext/types.js +0 -3
  753. package/features/wcp/WcpContext/utils.js +35 -53
  754. package/features/wcp/WcpContext/utils.js.map +1 -1
  755. package/features/wcp/WcpFeature.d.ts +4 -1
  756. package/features/wcp/WcpFeature.js +7 -6
  757. package/features/wcp/WcpFeature.js.map +1 -1
  758. package/features/webhooks/Webhook/WebhookProvider.d.ts +12 -0
  759. package/features/webhooks/Webhook/WebhookProvider.js +28 -0
  760. package/features/webhooks/Webhook/WebhookProvider.js.map +1 -0
  761. package/features/webhooks/Webhook/abstractions/WebhookFactory.d.ts +16 -0
  762. package/features/webhooks/Webhook/abstractions/WebhookFactory.js +5 -0
  763. package/features/webhooks/Webhook/abstractions/WebhookFactory.js.map +1 -0
  764. package/features/webhooks/Webhook/abstractions/WebhookProvider.d.ts +9 -0
  765. package/features/webhooks/Webhook/abstractions/WebhookProvider.js +5 -0
  766. package/features/webhooks/Webhook/abstractions/WebhookProvider.js.map +1 -0
  767. package/features/webhooks/Webhook/feature.d.ts +4 -0
  768. package/features/webhooks/Webhook/feature.js +11 -0
  769. package/features/webhooks/Webhook/feature.js.map +1 -0
  770. package/features/webhooks/Webhook/index.d.ts +2 -0
  771. package/features/webhooks/Webhook/index.js +2 -0
  772. package/features/webhooks/WebhookDispatcher/NullWebhookDispatcher.d.ts +8 -0
  773. package/features/webhooks/WebhookDispatcher/NullWebhookDispatcher.js +11 -0
  774. package/features/webhooks/WebhookDispatcher/NullWebhookDispatcher.js.map +1 -0
  775. package/features/webhooks/WebhookDispatcher/abstractions.d.ts +12 -0
  776. package/features/webhooks/WebhookDispatcher/abstractions.js +5 -0
  777. package/features/webhooks/WebhookDispatcher/abstractions.js.map +1 -0
  778. package/features/webhooks/WebhookSignPayload/abstractions.d.ts +14 -0
  779. package/features/webhooks/WebhookSignPayload/abstractions.js +5 -0
  780. package/features/webhooks/WebhookSignPayload/abstractions.js.map +1 -0
  781. package/features/webhooks/WebhookVerifyPayload/abstractions.d.ts +11 -0
  782. package/features/webhooks/WebhookVerifyPayload/abstractions.js +5 -0
  783. package/features/webhooks/WebhookVerifyPayload/abstractions.js.map +1 -0
  784. package/features/webhooks/index.d.ts +5 -0
  785. package/features/webhooks/index.js +5 -0
  786. package/graphql/security/NotAuthorizedResponse.d.ts +1 -0
  787. package/graphql/security/NotAuthorizedResponse.js +11 -13
  788. package/graphql/security/NotAuthorizedResponse.js.map +1 -1
  789. package/graphql/security/ProfileMapper.js +12 -11
  790. package/graphql/security/ProfileMapper.js.map +1 -1
  791. package/graphql/security/apiKey.gql.js +38 -47
  792. package/graphql/security/apiKey.gql.js.map +1 -1
  793. package/graphql/security/base.gql.js +11 -10
  794. package/graphql/security/base.gql.js.map +1 -1
  795. package/graphql/security/identity.gql.js +87 -97
  796. package/graphql/security/identity.gql.js.map +1 -1
  797. package/graphql/security/index.js +13 -8
  798. package/graphql/security/index.js.map +1 -1
  799. package/graphql/security/role.gql.js +49 -57
  800. package/graphql/security/role.gql.js.map +1 -1
  801. package/graphql/security/team.gql.js +61 -69
  802. package/graphql/security/team.gql.js.map +1 -1
  803. package/graphql/system/createSystemGraphQL.js +31 -34
  804. package/graphql/system/createSystemGraphQL.js.map +1 -1
  805. package/graphql/users/user.gql.js +87 -105
  806. package/graphql/users/user.gql.js.map +1 -1
  807. package/graphql/wcp/graphql.js +26 -28
  808. package/graphql/wcp/graphql.js.map +1 -1
  809. package/idp/JwksCache.js +22 -28
  810. package/idp/JwksCache.js.map +1 -1
  811. package/idp/JwtAuthenticator.js +34 -46
  812. package/idp/JwtAuthenticator.js.map +1 -1
  813. package/idp/OidcJwtIdentityProvider.js +55 -82
  814. package/idp/OidcJwtIdentityProvider.js.map +1 -1
  815. package/idp/abstractions.d.ts +4 -0
  816. package/idp/abstractions.js +5 -10
  817. package/idp/abstractions.js.map +1 -1
  818. package/idp/feature.d.ts +4 -1
  819. package/idp/feature.js +8 -7
  820. package/idp/feature.js.map +1 -1
  821. package/idp/index.js +1 -3
  822. package/idp/types.js +0 -3
  823. package/index.js +0 -2
  824. package/legacy/security/LegacyContext.js +133 -186
  825. package/legacy/security/LegacyContext.js.map +1 -1
  826. package/legacy/security/createSecurityContext.js +4 -19
  827. package/legacy/security/createSecurityContext.js.map +1 -1
  828. package/legacy/security/plugins/apiKeyAuthentication.js +15 -24
  829. package/legacy/security/plugins/apiKeyAuthentication.js.map +1 -1
  830. package/legacy/security/plugins/apiKeyAuthorization.js +9 -18
  831. package/legacy/security/plugins/apiKeyAuthorization.js.map +1 -1
  832. package/legacy/security/plugins/authenticateUsingCookie.js +18 -22
  833. package/legacy/security/plugins/authenticateUsingCookie.js.map +1 -1
  834. package/legacy/security/plugins/authenticateUsingHttpHeader.d.ts +1 -1
  835. package/legacy/security/plugins/authenticateUsingHttpHeader.js +15 -18
  836. package/legacy/security/plugins/authenticateUsingHttpHeader.js.map +1 -1
  837. package/legacy/security/plugins/secureHeaders.js +28 -21
  838. package/legacy/security/plugins/secureHeaders.js.map +1 -1
  839. package/legacy/tenancy/LegacyContext.js +45 -52
  840. package/legacy/tenancy/LegacyContext.js.map +1 -1
  841. package/legacy/tenancy/createTenancyContext.js +22 -42
  842. package/legacy/tenancy/createTenancyContext.js.map +1 -1
  843. package/legacy/users/LegacyContext.js +39 -54
  844. package/legacy/users/LegacyContext.js.map +1 -1
  845. package/legacy/users/createAdminUsersContext.js +7 -7
  846. package/legacy/users/createAdminUsersContext.js.map +1 -1
  847. package/legacy/wcp/LegacyWcpContext.d.ts +3 -0
  848. package/legacy/wcp/LegacyWcpContext.js +80 -70
  849. package/legacy/wcp/LegacyWcpContext.js.map +1 -1
  850. package/legacy/wcp/context.d.ts +1 -3
  851. package/legacy/wcp/context.js +33 -37
  852. package/legacy/wcp/context.js.map +1 -1
  853. package/models/base/BaseModel.js +51 -56
  854. package/models/base/BaseModel.js.map +1 -1
  855. package/models/base/ModelBuilder.d.ts +2 -2
  856. package/models/base/ModelBuilder.js +66 -60
  857. package/models/base/ModelBuilder.js.map +1 -1
  858. package/models/base/ModelFactory.js +0 -3
  859. package/models/base/__tests__/ModelBuilder.test.js +437 -454
  860. package/models/base/__tests__/ModelBuilder.test.js.map +1 -1
  861. package/models/base/abstractions.js +0 -3
  862. package/models/cms/FieldBuilder.d.ts +3 -2
  863. package/models/cms/FieldBuilder.js +112 -126
  864. package/models/cms/FieldBuilder.js.map +1 -1
  865. package/models/cms/FieldBuilderRegistry.d.ts +1 -1
  866. package/models/cms/FieldBuilderRegistry.js +13 -12
  867. package/models/cms/FieldBuilderRegistry.js.map +1 -1
  868. package/models/cms/FieldDefinitionsBuilder.d.ts +1 -0
  869. package/models/cms/FieldDefinitionsBuilder.js +37 -56
  870. package/models/cms/FieldDefinitionsBuilder.js.map +1 -1
  871. package/models/cms/PrivateCmsModelBuilder.js +84 -89
  872. package/models/cms/PrivateCmsModelBuilder.js.map +1 -1
  873. package/models/cms/PrivatePage/Page.fields.js +7 -6
  874. package/models/cms/PrivatePage/Page.fields.js.map +1 -1
  875. package/models/cms/PrivatePage/PageModelBuilder.js +18 -15
  876. package/models/cms/PrivatePage/PageModelBuilder.js.map +1 -1
  877. package/models/cms/PrivatePage/PageModelFactory.js +20 -25
  878. package/models/cms/PrivatePage/PageModelFactory.js.map +1 -1
  879. package/models/cms/PrivatePage/__tests__/PageModelFactory.test.js +218 -234
  880. package/models/cms/PrivatePage/__tests__/PageModelFactory.test.js.map +1 -1
  881. package/models/cms/PrivatePage/__tests__/PagePublishingDecorator.js +33 -36
  882. package/models/cms/PrivatePage/__tests__/PagePublishingDecorator.js.map +1 -1
  883. package/models/cms/PrivatePage/__tests__/PageSeoDecorator.js +25 -26
  884. package/models/cms/PrivatePage/__tests__/PageSeoDecorator.js.map +1 -1
  885. package/models/cms/PrivatePage/abstractions.js +3 -9
  886. package/models/cms/PrivatePage/abstractions.js.map +1 -1
  887. package/models/cms/__tests__/PrivateCmsModelBuilder.test.js +173 -185
  888. package/models/cms/__tests__/PrivateCmsModelBuilder.test.js.map +1 -1
  889. package/models/cms/abstractions.d.ts +1 -1
  890. package/models/cms/abstractions.js +3 -20
  891. package/models/cms/abstractions.js.map +1 -1
  892. package/models/cms/fieldsBuilder.md +4 -2
  893. package/models/cms/types.js +0 -3
  894. package/models/simple/Page/PageModelBuilder.js +15 -14
  895. package/models/simple/Page/PageModelBuilder.js.map +1 -1
  896. package/models/simple/Page/PageModelFactory.js +16 -15
  897. package/models/simple/Page/PageModelFactory.js.map +1 -1
  898. package/models/simple/Page/__tests__/PageModelBuilderDecorator.js +21 -20
  899. package/models/simple/Page/__tests__/PageModelBuilderDecorator.js.map +1 -1
  900. package/models/simple/Page/__tests__/PageModelBuilderDecorator2.js +17 -16
  901. package/models/simple/Page/__tests__/PageModelBuilderDecorator2.js.map +1 -1
  902. package/models/simple/Page/__tests__/PageModelFactory.test.js +28 -28
  903. package/models/simple/Page/__tests__/PageModelFactory.test.js.map +1 -1
  904. package/models/simple/Page/abstractions.d.ts +1 -11
  905. package/models/simple/Page/abstractions.js +9 -8
  906. package/models/simple/Page/abstractions.js.map +1 -1
  907. package/package.json +31 -71
  908. package/types/core.js +0 -3
  909. package/types/security.d.ts +13 -10
  910. package/types/security.js +0 -3
  911. package/types/tenancy.js +0 -3
  912. package/types/users.js +0 -3
  913. package/domain/tenancy/errors.js.map +0 -1
  914. package/exports/api/build-params.js.map +0 -1
  915. package/exports/api/event-publisher.js.map +0 -1
  916. package/exports/api/graphql.js.map +0 -1
  917. package/exports/api/key-value-store.js.map +0 -1
  918. package/exports/api/logger.js.map +0 -1
  919. package/exports/api/security/api-key.js.map +0 -1
  920. package/exports/api/security/authentication.js.map +0 -1
  921. package/exports/api/security/role.js.map +0 -1
  922. package/exports/api/security/user.js.map +0 -1
  923. package/exports/api/security.js.map +0 -1
  924. package/exports/api/system.js.map +0 -1
  925. package/exports/api/tasks.js.map +0 -1
  926. package/exports/api/tenancy.js.map +0 -1
  927. package/features/buildParams/index.js.map +0 -1
  928. package/features/eventPublisher/index.js.map +0 -1
  929. package/features/keyValueStore/index.js.map +0 -1
  930. package/features/logger/index.js.map +0 -1
  931. package/features/security/IdentityContext/index.js.map +0 -1
  932. package/features/security/apiKeys/CreateApiKey/index.js.map +0 -1
  933. package/features/security/apiKeys/DeleteApiKey/index.js.map +0 -1
  934. package/features/security/apiKeys/GetApiKey/index.js.map +0 -1
  935. package/features/security/apiKeys/GetApiKeyBySlug/index.js.map +0 -1
  936. package/features/security/apiKeys/GetApiKeyByToken/index.js.map +0 -1
  937. package/features/security/apiKeys/ListApiKeys/index.js.map +0 -1
  938. package/features/security/apiKeys/UpdateApiKey/index.js.map +0 -1
  939. package/features/security/apiKeys/shared/types.js.map +0 -1
  940. package/features/security/authentication/AuthenticationContext/index.js.map +0 -1
  941. package/features/security/authentication/Authenticator/index.js.map +0 -1
  942. package/features/security/authorization/AuthorizationContext/index.js.map +0 -1
  943. package/features/security/authorization/Authorizer/index.js.map +0 -1
  944. package/features/security/login/index.js.map +0 -1
  945. package/features/security/permissions/index.js.map +0 -1
  946. package/features/security/permissions/types.js.map +0 -1
  947. package/features/security/roles/CreateRole/index.js.map +0 -1
  948. package/features/security/roles/DeleteRole/index.js.map +0 -1
  949. package/features/security/roles/GetRole/index.js.map +0 -1
  950. package/features/security/roles/ListRoles/index.js.map +0 -1
  951. package/features/security/roles/UpdateRole/index.js.map +0 -1
  952. package/features/security/roles/shared/types.js.map +0 -1
  953. package/features/security/shared/abstractions.ts.bak +0 -52
  954. package/features/security/shared/index.js.map +0 -1
  955. package/features/security/teams/CreateTeam/index.js.map +0 -1
  956. package/features/security/teams/DeleteTeam/index.js.map +0 -1
  957. package/features/security/teams/GetTeam/index.js.map +0 -1
  958. package/features/security/teams/ListTeams/index.js.map +0 -1
  959. package/features/security/teams/UpdateTeam/index.js.map +0 -1
  960. package/features/security/teams/shared/types.js.map +0 -1
  961. package/features/system/InstallSystem/index.js.map +0 -1
  962. package/features/task/TaskController/index.js.map +0 -1
  963. package/features/task/TaskDefinition/index.js.map +0 -1
  964. package/features/task/TaskService/index.js.map +0 -1
  965. package/features/tenancy/CreateTenant/index.js.map +0 -1
  966. package/features/tenancy/DeleteTenant/index.js.map +0 -1
  967. package/features/tenancy/GetRootTenant/index.js.map +0 -1
  968. package/features/tenancy/GetTenantById/index.js.map +0 -1
  969. package/features/tenancy/InstallTenant/index.js.map +0 -1
  970. package/features/tenancy/ListTenants/index.js.map +0 -1
  971. package/features/tenancy/TenantContext/index.js.map +0 -1
  972. package/features/tenancy/UpdateTenant/index.js.map +0 -1
  973. package/features/users/CreateUser/index.js.map +0 -1
  974. package/features/users/DeleteUser/index.js.map +0 -1
  975. package/features/users/ExternalIdpUserSync/index.js.map +0 -1
  976. package/features/users/GetIdentityProfile/index.js.map +0 -1
  977. package/features/users/GetIdentityProfile/types.js.map +0 -1
  978. package/features/users/GetUser/index.js.map +0 -1
  979. package/features/users/ListUserTeams/index.js.map +0 -1
  980. package/features/users/ListUsers/index.js.map +0 -1
  981. package/features/users/UpdateUser/index.js.map +0 -1
  982. package/features/users/shared/types.js.map +0 -1
  983. package/features/wcp/WcpContext/index.js.map +0 -1
  984. package/features/wcp/WcpContext/types.js.map +0 -1
  985. package/idp/index.js.map +0 -1
  986. package/idp/types.js.map +0 -1
  987. package/index.js.map +0 -1
  988. package/legacy/security/plugins/SecurityRolePlugin.d.ts +0 -16
  989. package/legacy/security/plugins/SecurityRolePlugin.js +0 -33
  990. package/legacy/security/plugins/SecurityRolePlugin.js.map +0 -1
  991. package/legacy/security/plugins/SecurityTeamPlugin.d.ts +0 -16
  992. package/legacy/security/plugins/SecurityTeamPlugin.js +0 -33
  993. package/legacy/security/plugins/SecurityTeamPlugin.js.map +0 -1
  994. package/models/base/ModelFactory.js.map +0 -1
  995. package/models/base/abstractions.js.map +0 -1
  996. package/models/cms/types.js.map +0 -1
  997. package/types/core.js.map +0 -1
  998. package/types/security.js.map +0 -1
  999. package/types/tenancy.js.map +0 -1
  1000. package/types/users.js.map +0 -1
@@ -2,18 +2,14 @@ import { createFeature } from "@webiny/feature/api";
2
2
  import { GetTenantByIdUseCase } from "./GetTenantByIdUseCase.js";
3
3
  import { GetTenantByIdRepository } from "./GetTenantByIdRepository.js";
4
4
  import { GetTenantByIdGateway } from "./GetTenantByIdGateway.js";
5
- export const GetTenantByIdFeature = createFeature({
6
- name: "GetTenantById",
7
- register(container) {
8
- // Register gateway (singleton) - auto-wired with DI (depends on TenancyStorageOperations)
9
- container.register(GetTenantByIdGateway).inSingletonScope();
10
-
11
- // Register repository (singleton) - auto-wired with DI
12
- container.register(GetTenantByIdRepository).inSingletonScope();
13
-
14
- // Register use case (transient) - auto-wired with DI
15
- container.register(GetTenantByIdUseCase);
16
- }
5
+ const GetTenantByIdFeature = createFeature({
6
+ name: "GetTenantById",
7
+ register (container) {
8
+ container.register(GetTenantByIdGateway).inSingletonScope();
9
+ container.register(GetTenantByIdRepository).inSingletonScope();
10
+ container.register(GetTenantByIdUseCase);
11
+ }
17
12
  });
13
+ export { GetTenantByIdFeature };
18
14
 
19
15
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","GetTenantByIdUseCase","GetTenantByIdRepository","GetTenantByIdGateway","GetTenantByIdFeature","name","register","container","inSingletonScope"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport type { Container } from \"@webiny/di\";\nimport { GetTenantByIdUseCase } from \"./GetTenantByIdUseCase.js\";\nimport { GetTenantByIdRepository } from \"./GetTenantByIdRepository.js\";\nimport { GetTenantByIdGateway } from \"./GetTenantByIdGateway.js\";\n\nexport const GetTenantByIdFeature = createFeature({\n name: \"GetTenantById\",\n register(container: Container) {\n // Register gateway (singleton) - auto-wired with DI (depends on TenancyStorageOperations)\n container.register(GetTenantByIdGateway).inSingletonScope();\n\n // Register repository (singleton) - auto-wired with DI\n container.register(GetTenantByIdRepository).inSingletonScope();\n\n // Register use case (transient) - auto-wired with DI\n container.register(GetTenantByIdUseCase);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AAEnD,SAASC,oBAAoB;AAC7B,SAASC,uBAAuB;AAChC,SAASC,oBAAoB;AAE7B,OAAO,MAAMC,oBAAoB,GAAGJ,aAAa,CAAC;EAC9CK,IAAI,EAAE,eAAe;EACrBC,QAAQA,CAACC,SAAoB,EAAE;IAC3B;IACAA,SAAS,CAACD,QAAQ,CAACH,oBAAoB,CAAC,CAACK,gBAAgB,CAAC,CAAC;;IAE3D;IACAD,SAAS,CAACD,QAAQ,CAACJ,uBAAuB,CAAC,CAACM,gBAAgB,CAAC,CAAC;;IAE9D;IACAD,SAAS,CAACD,QAAQ,CAACL,oBAAoB,CAAC;EAC5C;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/tenancy/GetTenantById/feature.js","sources":["../../../../src/features/tenancy/GetTenantById/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport type { Container } from \"@webiny/di\";\nimport { GetTenantByIdUseCase } from \"./GetTenantByIdUseCase.js\";\nimport { GetTenantByIdRepository } from \"./GetTenantByIdRepository.js\";\nimport { GetTenantByIdGateway } from \"./GetTenantByIdGateway.js\";\n\nexport const GetTenantByIdFeature = createFeature({\n name: \"GetTenantById\",\n register(container: Container) {\n // Register gateway (singleton) - auto-wired with DI (depends on TenancyStorageOperations)\n container.register(GetTenantByIdGateway).inSingletonScope();\n\n // Register repository (singleton) - auto-wired with DI\n container.register(GetTenantByIdRepository).inSingletonScope();\n\n // Register use case (transient) - auto-wired with DI\n container.register(GetTenantByIdUseCase);\n }\n});\n"],"names":["GetTenantByIdFeature","createFeature","container","GetTenantByIdGateway","GetTenantByIdRepository","GetTenantByIdUseCase"],"mappings":";;;;AAMO,MAAMA,uBAAuBC,cAAc;IAC9C,MAAM;IACN,UAASC,SAAoB;QAEzBA,UAAU,QAAQ,CAACC,sBAAsB,gBAAgB;QAGzDD,UAAU,QAAQ,CAACE,yBAAyB,gBAAgB;QAG5DF,UAAU,QAAQ,CAACG;IACvB;AACJ"}
@@ -1,3 +1 @@
1
- export { GetTenantByIdUseCase, GetTenantByIdRepository, GetTenantByIdGateway } from "./abstractions.js";
2
-
3
- //# sourceMappingURL=index.js.map
1
+ export { GetTenantByIdGateway, GetTenantByIdRepository, GetTenantByIdUseCase } from "./abstractions.js";
@@ -1,73 +1,61 @@
1
1
  import { InstallationDependencyError } from "./errors.js";
2
- export class DependencyResolver {
3
- resolve(installers, requestedInstalls) {
4
- const nodes = new Map();
5
- const installerMap = new Map(installers.map(i => [i.appName, i]));
6
-
7
- // First, add all requested installers
8
- for (const install of requestedInstalls) {
9
- const installer = installerMap.get(install.app);
10
- if (!installer) {
11
- throw new InstallationDependencyError({
12
- reason: `No installer found for app: ${install.app}`
13
- });
14
- }
15
- nodes.set(install.app, installer);
16
- }
17
-
18
- // Then, add all installers with alwaysRun === true that aren't already included
19
- for (const installer of installers) {
20
- if (installer.alwaysRun && !nodes.has(installer.appName)) {
21
- nodes.set(installer.appName, installer);
22
- }
23
- }
24
- this.validateDependencies(nodes, installerMap);
25
- return this.topologicalSort(nodes);
26
- }
27
- validateDependencies(nodes, installerMap) {
28
- for (const [appName, node] of nodes) {
29
- for (const dep of node.dependsOn) {
30
- if (!installerMap.has(dep)) {
31
- throw new InstallationDependencyError({
32
- reason: `App "${appName}" depends on "${dep}", but no installer exists for "${dep}"`
33
- });
2
+ class DependencyResolver {
3
+ resolve(installers, requestedInstalls) {
4
+ const nodes = new Map();
5
+ const installerMap = new Map(installers.map((i)=>[
6
+ i.appName,
7
+ i
8
+ ]));
9
+ for (const install of requestedInstalls){
10
+ const installer = installerMap.get(install.app);
11
+ if (!installer) throw new InstallationDependencyError({
12
+ reason: `No installer found for app: ${install.app}`
13
+ });
14
+ nodes.set(install.app, installer);
34
15
  }
35
- if (!nodes.has(dep)) {
36
- throw new InstallationDependencyError({
37
- reason: `App "${appName}" depends on "${dep}", but "${dep}" is not included in the installation request. ` + `Please include "${dep}" in your installation data.`
38
- });
16
+ for (const installer of installers)if (installer.alwaysRun && !nodes.has(installer.appName)) nodes.set(installer.appName, installer);
17
+ this.validateDependencies(nodes, installerMap);
18
+ return this.topologicalSort(nodes);
19
+ }
20
+ validateDependencies(nodes, installerMap) {
21
+ for (const [appName, node] of nodes)for (const dep of node.dependsOn){
22
+ if (!installerMap.has(dep)) throw new InstallationDependencyError({
23
+ reason: `App "${appName}" depends on "${dep}", but no installer exists for "${dep}"`
24
+ });
25
+ if (!nodes.has(dep)) throw new InstallationDependencyError({
26
+ reason: `App "${appName}" depends on "${dep}", but "${dep}" is not included in the installation request. Please include "${dep}" in your installation data.`
27
+ });
39
28
  }
40
- }
41
29
  }
42
- }
43
- topologicalSort(nodes) {
44
- const sorted = [];
45
- const visited = new Set();
46
- const visiting = new Set();
47
- const visit = (appName, path = []) => {
48
- if (visited.has(appName)) {
49
- return;
50
- }
51
- if (visiting.has(appName)) {
52
- const cycle = [...path, appName].join(" -> ");
53
- throw new InstallationDependencyError({
54
- reason: `Circular dependency detected: ${cycle}`
55
- });
56
- }
57
- visiting.add(appName);
58
- const node = nodes.get(appName);
59
- for (const dep of node.dependsOn) {
60
- visit(dep, [...path, appName]);
61
- }
62
- visiting.delete(appName);
63
- visited.add(appName);
64
- sorted.push(appName);
65
- };
66
- for (const appName of nodes.keys()) {
67
- visit(appName);
30
+ topologicalSort(nodes) {
31
+ const sorted = [];
32
+ const visited = new Set();
33
+ const visiting = new Set();
34
+ const visit = (appName, path = [])=>{
35
+ if (visited.has(appName)) return;
36
+ if (visiting.has(appName)) {
37
+ const cycle = [
38
+ ...path,
39
+ appName
40
+ ].join(" -> ");
41
+ throw new InstallationDependencyError({
42
+ reason: `Circular dependency detected: ${cycle}`
43
+ });
44
+ }
45
+ visiting.add(appName);
46
+ const node = nodes.get(appName);
47
+ for (const dep of node.dependsOn)visit(dep, [
48
+ ...path,
49
+ appName
50
+ ]);
51
+ visiting.delete(appName);
52
+ visited.add(appName);
53
+ sorted.push(appName);
54
+ };
55
+ for (const appName of nodes.keys())visit(appName);
56
+ return sorted;
68
57
  }
69
- return sorted;
70
- }
71
58
  }
59
+ export { DependencyResolver };
72
60
 
73
61
  //# sourceMappingURL=DependencyResolver.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["InstallationDependencyError","DependencyResolver","resolve","installers","requestedInstalls","nodes","Map","installerMap","map","i","appName","install","installer","get","app","reason","set","alwaysRun","has","validateDependencies","topologicalSort","node","dep","dependsOn","sorted","visited","Set","visiting","visit","path","cycle","join","add","delete","push","keys"],"sources":["DependencyResolver.ts"],"sourcesContent":["import { InstallationDependencyError } from \"./errors.js\";\nimport { type AppInstallationData, AppInstaller } from \"./abstractions.js\";\n\nexport class DependencyResolver {\n resolve(\n installers: AppInstaller.Interface[],\n requestedInstalls: AppInstallationData[]\n ): string[] {\n const nodes = new Map<string, AppInstaller.Interface>();\n const installerMap = new Map(installers.map(i => [i.appName, i]));\n\n // First, add all requested installers\n for (const install of requestedInstalls) {\n const installer = installerMap.get(install.app);\n if (!installer) {\n throw new InstallationDependencyError({\n reason: `No installer found for app: ${install.app}`\n });\n }\n\n nodes.set(install.app, installer);\n }\n\n // Then, add all installers with alwaysRun === true that aren't already included\n for (const installer of installers) {\n if (installer.alwaysRun && !nodes.has(installer.appName)) {\n nodes.set(installer.appName, installer);\n }\n }\n\n this.validateDependencies(nodes, installerMap);\n return this.topologicalSort(nodes);\n }\n\n private validateDependencies(\n nodes: Map<string, AppInstaller.Interface>,\n installerMap: Map<string, AppInstaller.Interface>\n ): void {\n for (const [appName, node] of nodes) {\n for (const dep of node.dependsOn) {\n if (!installerMap.has(dep)) {\n throw new InstallationDependencyError({\n reason: `App \"${appName}\" depends on \"${dep}\", but no installer exists for \"${dep}\"`\n });\n }\n\n if (!nodes.has(dep)) {\n throw new InstallationDependencyError({\n reason:\n `App \"${appName}\" depends on \"${dep}\", but \"${dep}\" is not included in the installation request. ` +\n `Please include \"${dep}\" in your installation data.`\n });\n }\n }\n }\n }\n\n private topologicalSort(nodes: Map<string, AppInstaller.Interface>): string[] {\n const sorted: string[] = [];\n const visited = new Set<string>();\n const visiting = new Set<string>();\n\n const visit = (appName: string, path: string[] = []): void => {\n if (visited.has(appName)) {\n return;\n }\n\n if (visiting.has(appName)) {\n const cycle = [...path, appName].join(\" -> \");\n throw new InstallationDependencyError({\n reason: `Circular dependency detected: ${cycle}`\n });\n }\n\n visiting.add(appName);\n const node = nodes.get(appName)!;\n\n for (const dep of node.dependsOn) {\n visit(dep, [...path, appName]);\n }\n\n visiting.delete(appName);\n visited.add(appName);\n sorted.push(appName);\n };\n\n for (const appName of nodes.keys()) {\n visit(appName);\n }\n\n return sorted;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"features/tenancy/InstallTenant/DependencyResolver.js","sources":["../../../../src/features/tenancy/InstallTenant/DependencyResolver.ts"],"sourcesContent":["import { InstallationDependencyError } from \"./errors.js\";\nimport { type AppInstallationData, AppInstaller } from \"./abstractions.js\";\n\nexport class DependencyResolver {\n resolve(\n installers: AppInstaller.Interface[],\n requestedInstalls: AppInstallationData[]\n ): string[] {\n const nodes = new Map<string, AppInstaller.Interface>();\n const installerMap = new Map(installers.map(i => [i.appName, i]));\n\n // First, add all requested installers\n for (const install of requestedInstalls) {\n const installer = installerMap.get(install.app);\n if (!installer) {\n throw new InstallationDependencyError({\n reason: `No installer found for app: ${install.app}`\n });\n }\n\n nodes.set(install.app, installer);\n }\n\n // Then, add all installers with alwaysRun === true that aren't already included\n for (const installer of installers) {\n if (installer.alwaysRun && !nodes.has(installer.appName)) {\n nodes.set(installer.appName, installer);\n }\n }\n\n this.validateDependencies(nodes, installerMap);\n return this.topologicalSort(nodes);\n }\n\n private validateDependencies(\n nodes: Map<string, AppInstaller.Interface>,\n installerMap: Map<string, AppInstaller.Interface>\n ): void {\n for (const [appName, node] of nodes) {\n for (const dep of node.dependsOn) {\n if (!installerMap.has(dep)) {\n throw new InstallationDependencyError({\n reason: `App \"${appName}\" depends on \"${dep}\", but no installer exists for \"${dep}\"`\n });\n }\n\n if (!nodes.has(dep)) {\n throw new InstallationDependencyError({\n reason:\n `App \"${appName}\" depends on \"${dep}\", but \"${dep}\" is not included in the installation request. ` +\n `Please include \"${dep}\" in your installation data.`\n });\n }\n }\n }\n }\n\n private topologicalSort(nodes: Map<string, AppInstaller.Interface>): string[] {\n const sorted: string[] = [];\n const visited = new Set<string>();\n const visiting = new Set<string>();\n\n const visit = (appName: string, path: string[] = []): void => {\n if (visited.has(appName)) {\n return;\n }\n\n if (visiting.has(appName)) {\n const cycle = [...path, appName].join(\" -> \");\n throw new InstallationDependencyError({\n reason: `Circular dependency detected: ${cycle}`\n });\n }\n\n visiting.add(appName);\n const node = nodes.get(appName)!;\n\n for (const dep of node.dependsOn) {\n visit(dep, [...path, appName]);\n }\n\n visiting.delete(appName);\n visited.add(appName);\n sorted.push(appName);\n };\n\n for (const appName of nodes.keys()) {\n visit(appName);\n }\n\n return sorted;\n }\n}\n"],"names":["DependencyResolver","installers","requestedInstalls","nodes","Map","installerMap","i","install","installer","InstallationDependencyError","appName","node","dep","sorted","visited","Set","visiting","visit","path","cycle"],"mappings":";AAGO,MAAMA;IACT,QACIC,UAAoC,EACpCC,iBAAwC,EAChC;QACR,MAAMC,QAAQ,IAAIC;QAClB,MAAMC,eAAe,IAAID,IAAIH,WAAW,GAAG,CAACK,CAAAA,IAAK;gBAACA,EAAE,OAAO;gBAAEA;aAAE;QAG/D,KAAK,MAAMC,WAAWL,kBAAmB;YACrC,MAAMM,YAAYH,aAAa,GAAG,CAACE,QAAQ,GAAG;YAC9C,IAAI,CAACC,WACD,MAAM,IAAIC,4BAA4B;gBAClC,QAAQ,CAAC,4BAA4B,EAAEF,QAAQ,GAAG,EAAE;YACxD;YAGJJ,MAAM,GAAG,CAACI,QAAQ,GAAG,EAAEC;QAC3B;QAGA,KAAK,MAAMA,aAAaP,WACpB,IAAIO,UAAU,SAAS,IAAI,CAACL,MAAM,GAAG,CAACK,UAAU,OAAO,GACnDL,MAAM,GAAG,CAACK,UAAU,OAAO,EAAEA;QAIrC,IAAI,CAAC,oBAAoB,CAACL,OAAOE;QACjC,OAAO,IAAI,CAAC,eAAe,CAACF;IAChC;IAEQ,qBACJA,KAA0C,EAC1CE,YAAiD,EAC7C;QACJ,KAAK,MAAM,CAACK,SAASC,KAAK,IAAIR,MAC1B,KAAK,MAAMS,OAAOD,KAAK,SAAS,CAAE;YAC9B,IAAI,CAACN,aAAa,GAAG,CAACO,MAClB,MAAM,IAAIH,4BAA4B;gBAClC,QAAQ,CAAC,KAAK,EAAEC,QAAQ,cAAc,EAAEE,IAAI,gCAAgC,EAAEA,IAAI,CAAC,CAAC;YACxF;YAGJ,IAAI,CAACT,MAAM,GAAG,CAACS,MACX,MAAM,IAAIH,4BAA4B;gBAClC,QACI,CAAC,KAAK,EAAEC,QAAQ,cAAc,EAAEE,IAAI,QAAQ,EAAEA,IAC7C,+DAAgB,EAAEA,IAAI,4BAA4B,CAD+C;YAE1G;QAER;IAER;IAEQ,gBAAgBT,KAA0C,EAAY;QAC1E,MAAMU,SAAmB,EAAE;QAC3B,MAAMC,UAAU,IAAIC;QACpB,MAAMC,WAAW,IAAID;QAErB,MAAME,QAAQ,CAACP,SAAiBQ,OAAiB,EAAE;YAC/C,IAAIJ,QAAQ,GAAG,CAACJ,UACZ;YAGJ,IAAIM,SAAS,GAAG,CAACN,UAAU;gBACvB,MAAMS,QAAQ;uBAAID;oBAAMR;iBAAQ,CAAC,IAAI,CAAC;gBACtC,MAAM,IAAID,4BAA4B;oBAClC,QAAQ,CAAC,8BAA8B,EAAEU,OAAO;gBACpD;YACJ;YAEAH,SAAS,GAAG,CAACN;YACb,MAAMC,OAAOR,MAAM,GAAG,CAACO;YAEvB,KAAK,MAAME,OAAOD,KAAK,SAAS,CAC5BM,MAAML,KAAK;mBAAIM;gBAAMR;aAAQ;YAGjCM,SAAS,MAAM,CAACN;YAChBI,QAAQ,GAAG,CAACJ;YACZG,OAAO,IAAI,CAACH;QAChB;QAEA,KAAK,MAAMA,WAAWP,MAAM,IAAI,GAC5Bc,MAAMP;QAGV,OAAOG;IACX;AACJ"}
@@ -1,133 +1,115 @@
1
1
  import { Result, createImplementation } from "@webiny/feature/api";
2
2
  import { EventPublisher } from "../../eventPublisher/index.js";
3
- import { InstallTenantUseCase as UseCaseAbstraction } from "./abstractions.js";
4
- import { AppInstaller } from "./abstractions.js";
3
+ import { AppInstaller, InstallTenantUseCase } from "./abstractions.js";
5
4
  import { InstallTenantError, InstallationDependencyError } from "./errors.js";
6
5
  import { TenantInstalledEvent } from "./events.js";
7
6
  import { DependencyResolver } from "./DependencyResolver.js";
8
7
  import { UpdateTenantUseCase } from "../UpdateTenant/index.js";
9
8
  import { TenantContext } from "../../../exports/api/tenancy.js";
10
9
  class InstallTenantUseCaseImpl {
11
- constructor(tenantContext, eventPublisher, appInstallers, updateTenantUseCase) {
12
- this.tenantContext = tenantContext;
13
- this.eventPublisher = eventPublisher;
14
- this.appInstallers = appInstallers;
15
- this.updateTenantUseCase = updateTenantUseCase;
16
- this.resolver = new DependencyResolver();
17
- }
18
- async execute({
19
- tenant,
20
- installationInput
21
- }) {
22
- const installerMap = new Map(this.appInstallers.map(installer => [installer.appName, installer]));
23
- const dataMap = new Map(installationInput.map(install => [install.app, install.data]));
24
-
25
- // Resolve installation order
26
- let installationOrder;
27
- try {
28
- installationOrder = this.resolver.resolve(this.appInstallers, installationInput);
29
- } catch (error) {
30
- if (error instanceof InstallationDependencyError) {
31
- return Result.fail(error);
32
- }
33
- return Result.fail(new InstallationDependencyError({
34
- reason: error instanceof Error ? error.message : String(error)
35
- }));
10
+ constructor(tenantContext, eventPublisher, appInstallers, updateTenantUseCase){
11
+ this.tenantContext = tenantContext;
12
+ this.eventPublisher = eventPublisher;
13
+ this.appInstallers = appInstallers;
14
+ this.updateTenantUseCase = updateTenantUseCase;
15
+ this.resolver = new DependencyResolver();
36
16
  }
37
- const installedApps = [];
38
- try {
39
- /**
40
- * We must run installers in the context of the tenant being installed!
41
- */
42
- const result = await this.tenantContext.withTenant(tenant, async () => {
43
- // Execute installations in order
44
- for (const appName of installationOrder) {
45
- const installer = installerMap.get(appName);
46
- const data = dataMap.get(appName);
47
- try {
48
- await installer.install(tenant, data);
49
- installedApps.push({
50
- appName,
51
- installer
17
+ async execute({ tenant, installationInput }) {
18
+ const installerMap = new Map(this.appInstallers.map((installer)=>[
19
+ installer.appName,
20
+ installer
21
+ ]));
22
+ const dataMap = new Map(installationInput.map((install)=>[
23
+ install.app,
24
+ install.data
25
+ ]));
26
+ let installationOrder;
27
+ try {
28
+ installationOrder = this.resolver.resolve(this.appInstallers, installationInput);
29
+ } catch (error) {
30
+ if (error instanceof InstallationDependencyError) return Result.fail(error);
31
+ return Result.fail(new InstallationDependencyError({
32
+ reason: error instanceof Error ? error.message : String(error)
33
+ }));
34
+ }
35
+ const installedApps = [];
36
+ try {
37
+ const result = await this.tenantContext.withTenant(tenant, async ()=>{
38
+ for (const appName of installationOrder){
39
+ const installer = installerMap.get(appName);
40
+ const data = dataMap.get(appName);
41
+ try {
42
+ await installer.install(tenant, data);
43
+ installedApps.push({
44
+ appName,
45
+ installer
46
+ });
47
+ } catch (error) {
48
+ console.error(`✗ ${appName} installation failed:`, error);
49
+ await this.rollback(tenant, installedApps);
50
+ return Result.fail(new InstallTenantError({
51
+ reason: error instanceof Error ? error.message : String(error),
52
+ failedApp: appName,
53
+ installedApps: installedApps.map((i)=>i.appName),
54
+ cause: error instanceof Error ? error : void 0
55
+ }));
56
+ }
57
+ }
58
+ return Result.ok();
52
59
  });
53
- } catch (error) {
54
- // Installation failed - rollback everything
55
- console.error(`✗ ${appName} installation failed:`, error);
60
+ if (result.isFail()) return result;
61
+ await this.updateTenantUseCase.execute(tenant.id, {
62
+ isInstalled: true,
63
+ status: "enabled"
64
+ });
65
+ await this.eventPublisher.publish(new TenantInstalledEvent({
66
+ tenant: tenant,
67
+ installedApps: installationOrder
68
+ }));
69
+ return Result.ok();
70
+ } catch (error) {
56
71
  await this.rollback(tenant, installedApps);
57
72
  return Result.fail(new InstallTenantError({
58
- reason: error instanceof Error ? error.message : String(error),
59
- failedApp: appName,
60
- installedApps: installedApps.map(i => i.appName),
61
- cause: error instanceof Error ? error : undefined
73
+ reason: error instanceof Error ? error.message : String(error),
74
+ failedApp: "unknown",
75
+ installedApps: installedApps.map((i)=>i.appName),
76
+ cause: error instanceof Error ? error : void 0
62
77
  }));
63
- }
64
78
  }
65
- return Result.ok();
66
- });
67
- if (result.isFail()) {
68
- return result;
69
- }
70
-
71
- /**
72
- * Back to root tenant context.
73
- */
74
-
75
- // Mark the tenant as installed
76
- await this.updateTenantUseCase.execute(tenant.id, {
77
- isInstalled: true,
78
- status: "enabled"
79
- });
80
-
81
- // Publish the installed event
82
- await this.eventPublisher.publish(new TenantInstalledEvent({
83
- tenant: tenant,
84
- installedApps: installationOrder
85
- }));
86
- return Result.ok();
87
- } catch (error) {
88
- // Unexpected error during installation loop
89
- await this.rollback(tenant, installedApps);
90
- return Result.fail(new InstallTenantError({
91
- reason: error instanceof Error ? error.message : String(error),
92
- failedApp: "unknown",
93
- installedApps: installedApps.map(i => i.appName),
94
- cause: error instanceof Error ? error : undefined
95
- }));
96
- }
97
- }
98
- async rollback(tenant, installedApps) {
99
- if (installedApps.length === 0) {
100
- return;
101
79
  }
102
-
103
- // Rollback in REVERSE order (last installed first)
104
- const errors = [];
105
- for (let i = installedApps.length - 1; i >= 0; i--) {
106
- const {
107
- appName,
108
- installer
109
- } = installedApps[i];
110
- try {
111
- await installer.uninstall(tenant);
112
- } catch (error) {
113
- console.error(`✗ Failed to rollback ${appName}:`, error);
114
- errors.push({
115
- appName,
116
- error: error
117
- });
118
- }
119
- }
120
- if (errors.length > 0) {
121
- console.error(`Warning: ${errors.length} rollback(s) failed:`, errors.map(e => `${e.appName}: ${e.error.message}`).join(", "));
80
+ async rollback(tenant, installedApps) {
81
+ if (0 === installedApps.length) return;
82
+ const errors = [];
83
+ for(let i = installedApps.length - 1; i >= 0; i--){
84
+ const { appName, installer } = installedApps[i];
85
+ try {
86
+ await installer.uninstall(tenant);
87
+ } catch (error) {
88
+ console.error(`✗ Failed to rollback ${appName}:`, error);
89
+ errors.push({
90
+ appName,
91
+ error: error
92
+ });
93
+ }
94
+ }
95
+ if (errors.length > 0) console.error(`Warning: ${errors.length} rollback(s) failed:`, errors.map((e)=>`${e.appName}: ${e.error.message}`).join(", "));
122
96
  }
123
- }
124
97
  }
125
- export const InstallTenantUseCase = createImplementation({
126
- abstraction: UseCaseAbstraction,
127
- implementation: InstallTenantUseCaseImpl,
128
- dependencies: [TenantContext, EventPublisher, [AppInstaller, {
129
- multiple: true
130
- }], UpdateTenantUseCase]
98
+ const InstallTenantUseCase_InstallTenantUseCase = createImplementation({
99
+ abstraction: InstallTenantUseCase,
100
+ implementation: InstallTenantUseCaseImpl,
101
+ dependencies: [
102
+ TenantContext,
103
+ EventPublisher,
104
+ [
105
+ AppInstaller,
106
+ {
107
+ multiple: true
108
+ }
109
+ ],
110
+ UpdateTenantUseCase
111
+ ]
131
112
  });
113
+ export { InstallTenantUseCase_InstallTenantUseCase as InstallTenantUseCase };
132
114
 
133
115
  //# sourceMappingURL=InstallTenantUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Result","createImplementation","EventPublisher","InstallTenantUseCase","UseCaseAbstraction","AppInstaller","InstallTenantError","InstallationDependencyError","TenantInstalledEvent","DependencyResolver","UpdateTenantUseCase","TenantContext","InstallTenantUseCaseImpl","constructor","tenantContext","eventPublisher","appInstallers","updateTenantUseCase","resolver","execute","tenant","installationInput","installerMap","Map","map","installer","appName","dataMap","install","app","data","installationOrder","resolve","error","fail","reason","Error","message","String","installedApps","result","withTenant","get","push","console","rollback","failedApp","i","cause","undefined","ok","isFail","id","isInstalled","status","publish","length","errors","uninstall","e","join","abstraction","implementation","dependencies","multiple"],"sources":["InstallTenantUseCase.ts"],"sourcesContent":["import { Result, createImplementation } from \"@webiny/feature/api\";\nimport { EventPublisher } from \"~/features/eventPublisher/index.js\";\nimport { InstallTenantUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { AppInstaller } from \"./abstractions.js\";\nimport { InstallTenantError, InstallationDependencyError } from \"./errors.js\";\nimport { TenantInstalledEvent } from \"./events.js\";\nimport { DependencyResolver } from \"./DependencyResolver.js\";\nimport type { TenantInstallationInput } from \"./abstractions.js\";\nimport { UpdateTenantUseCase } from \"~/features/tenancy/UpdateTenant/index.js\";\nimport { TenantContext } from \"~/exports/api/tenancy.js\";\n\nclass InstallTenantUseCaseImpl implements UseCaseAbstraction.Interface {\n private resolver: DependencyResolver;\n\n constructor(\n private tenantContext: TenantContext.Interface,\n private eventPublisher: EventPublisher.Interface,\n private appInstallers: AppInstaller.Interface[],\n private updateTenantUseCase: UpdateTenantUseCase.Interface\n ) {\n this.resolver = new DependencyResolver();\n }\n\n async execute({ tenant, installationInput }: TenantInstallationInput) {\n const installerMap = new Map(\n this.appInstallers.map(installer => [installer.appName, installer])\n );\n\n const dataMap = new Map(installationInput.map(install => [install.app, install.data]));\n\n // Resolve installation order\n let installationOrder: string[];\n try {\n installationOrder = this.resolver.resolve(this.appInstallers, installationInput);\n } catch (error) {\n if (error instanceof InstallationDependencyError) {\n return Result.fail(error);\n }\n return Result.fail(\n new InstallationDependencyError({\n reason: error instanceof Error ? error.message : String(error)\n })\n );\n }\n\n const installedApps: Array<{ appName: string; installer: AppInstaller.Interface }> = [];\n\n try {\n /**\n * We must run installers in the context of the tenant being installed!\n */\n const result = await this.tenantContext.withTenant(tenant, async () => {\n // Execute installations in order\n for (const appName of installationOrder) {\n const installer = installerMap.get(appName)!;\n const data = dataMap.get(appName)!;\n\n try {\n await installer.install(tenant, data);\n installedApps.push({ appName, installer });\n } catch (error) {\n // Installation failed - rollback everything\n console.error(`✗ ${appName} installation failed:`, error);\n await this.rollback(tenant, installedApps);\n\n return Result.fail(\n new InstallTenantError({\n reason: error instanceof Error ? error.message : String(error),\n failedApp: appName,\n installedApps: installedApps.map(i => i.appName),\n cause: error instanceof Error ? error : undefined\n })\n );\n }\n }\n return Result.ok();\n });\n\n if (result.isFail()) {\n return result;\n }\n\n /**\n * Back to root tenant context.\n */\n\n // Mark the tenant as installed\n await this.updateTenantUseCase.execute(tenant.id, {\n isInstalled: true,\n status: \"enabled\"\n });\n\n // Publish the installed event\n await this.eventPublisher.publish(\n new TenantInstalledEvent({\n tenant: tenant,\n installedApps: installationOrder\n })\n );\n\n return Result.ok();\n } catch (error) {\n // Unexpected error during installation loop\n await this.rollback(tenant, installedApps);\n\n return Result.fail(\n new InstallTenantError({\n reason: error instanceof Error ? error.message : String(error),\n failedApp: \"unknown\",\n installedApps: installedApps.map(i => i.appName),\n cause: error instanceof Error ? error : undefined\n })\n );\n }\n }\n\n private async rollback(\n tenant: TenantInstallationInput[\"tenant\"],\n installedApps: Array<{ appName: string; installer: AppInstaller.Interface }>\n ): Promise<void> {\n if (installedApps.length === 0) {\n return;\n }\n\n // Rollback in REVERSE order (last installed first)\n const errors: Array<{ appName: string; error: Error }> = [];\n\n for (let i = installedApps.length - 1; i >= 0; i--) {\n const { appName, installer } = installedApps[i];\n\n try {\n await installer.uninstall(tenant);\n } catch (error) {\n console.error(`✗ Failed to rollback ${appName}:`, error);\n errors.push({\n appName,\n error: error as Error\n });\n }\n }\n\n if (errors.length > 0) {\n console.error(\n `Warning: ${errors.length} rollback(s) failed:`,\n errors.map(e => `${e.appName}: ${e.error.message}`).join(\", \")\n );\n }\n }\n}\n\nexport const InstallTenantUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: InstallTenantUseCaseImpl,\n dependencies: [\n TenantContext,\n EventPublisher,\n [AppInstaller, { multiple: true }],\n UpdateTenantUseCase\n ]\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"features/tenancy/InstallTenant/InstallTenantUseCase.js","sources":["../../../../src/features/tenancy/InstallTenant/InstallTenantUseCase.ts"],"sourcesContent":["import { Result, createImplementation } from \"@webiny/feature/api\";\nimport { EventPublisher } from \"~/features/eventPublisher/index.js\";\nimport { InstallTenantUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { AppInstaller } from \"./abstractions.js\";\nimport { InstallTenantError, InstallationDependencyError } from \"./errors.js\";\nimport { TenantInstalledEvent } from \"./events.js\";\nimport { DependencyResolver } from \"./DependencyResolver.js\";\nimport type { TenantInstallationInput } from \"./abstractions.js\";\nimport { UpdateTenantUseCase } from \"~/features/tenancy/UpdateTenant/index.js\";\nimport { TenantContext } from \"~/exports/api/tenancy.js\";\n\nclass InstallTenantUseCaseImpl implements UseCaseAbstraction.Interface {\n private resolver: DependencyResolver;\n\n constructor(\n private tenantContext: TenantContext.Interface,\n private eventPublisher: EventPublisher.Interface,\n private appInstallers: AppInstaller.Interface[],\n private updateTenantUseCase: UpdateTenantUseCase.Interface\n ) {\n this.resolver = new DependencyResolver();\n }\n\n async execute({ tenant, installationInput }: TenantInstallationInput) {\n const installerMap = new Map(\n this.appInstallers.map(installer => [installer.appName, installer])\n );\n\n const dataMap = new Map(installationInput.map(install => [install.app, install.data]));\n\n // Resolve installation order\n let installationOrder: string[];\n try {\n installationOrder = this.resolver.resolve(this.appInstallers, installationInput);\n } catch (error) {\n if (error instanceof InstallationDependencyError) {\n return Result.fail(error);\n }\n return Result.fail(\n new InstallationDependencyError({\n reason: error instanceof Error ? error.message : String(error)\n })\n );\n }\n\n const installedApps: Array<{ appName: string; installer: AppInstaller.Interface }> = [];\n\n try {\n /**\n * We must run installers in the context of the tenant being installed!\n */\n const result = await this.tenantContext.withTenant(tenant, async () => {\n // Execute installations in order\n for (const appName of installationOrder) {\n const installer = installerMap.get(appName)!;\n const data = dataMap.get(appName)!;\n\n try {\n await installer.install(tenant, data);\n installedApps.push({ appName, installer });\n } catch (error) {\n // Installation failed - rollback everything\n console.error(`✗ ${appName} installation failed:`, error);\n await this.rollback(tenant, installedApps);\n\n return Result.fail(\n new InstallTenantError({\n reason: error instanceof Error ? error.message : String(error),\n failedApp: appName,\n installedApps: installedApps.map(i => i.appName),\n cause: error instanceof Error ? error : undefined\n })\n );\n }\n }\n return Result.ok();\n });\n\n if (result.isFail()) {\n return result;\n }\n\n /**\n * Back to root tenant context.\n */\n\n // Mark the tenant as installed\n await this.updateTenantUseCase.execute(tenant.id, {\n isInstalled: true,\n status: \"enabled\"\n });\n\n // Publish the installed event\n await this.eventPublisher.publish(\n new TenantInstalledEvent({\n tenant: tenant,\n installedApps: installationOrder\n })\n );\n\n return Result.ok();\n } catch (error) {\n // Unexpected error during installation loop\n await this.rollback(tenant, installedApps);\n\n return Result.fail(\n new InstallTenantError({\n reason: error instanceof Error ? error.message : String(error),\n failedApp: \"unknown\",\n installedApps: installedApps.map(i => i.appName),\n cause: error instanceof Error ? error : undefined\n })\n );\n }\n }\n\n private async rollback(\n tenant: TenantInstallationInput[\"tenant\"],\n installedApps: Array<{ appName: string; installer: AppInstaller.Interface }>\n ): Promise<void> {\n if (installedApps.length === 0) {\n return;\n }\n\n // Rollback in REVERSE order (last installed first)\n const errors: Array<{ appName: string; error: Error }> = [];\n\n for (let i = installedApps.length - 1; i >= 0; i--) {\n const { appName, installer } = installedApps[i];\n\n try {\n await installer.uninstall(tenant);\n } catch (error) {\n console.error(`✗ Failed to rollback ${appName}:`, error);\n errors.push({\n appName,\n error: error as Error\n });\n }\n }\n\n if (errors.length > 0) {\n console.error(\n `Warning: ${errors.length} rollback(s) failed:`,\n errors.map(e => `${e.appName}: ${e.error.message}`).join(\", \")\n );\n }\n }\n}\n\nexport const InstallTenantUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: InstallTenantUseCaseImpl,\n dependencies: [\n TenantContext,\n EventPublisher,\n [AppInstaller, { multiple: true }],\n UpdateTenantUseCase\n ]\n});\n"],"names":["InstallTenantUseCaseImpl","tenantContext","eventPublisher","appInstallers","updateTenantUseCase","DependencyResolver","tenant","installationInput","installerMap","Map","installer","dataMap","install","installationOrder","error","InstallationDependencyError","Result","Error","String","installedApps","result","appName","data","console","InstallTenantError","i","undefined","TenantInstalledEvent","errors","e","InstallTenantUseCase","createImplementation","UseCaseAbstraction","TenantContext","EventPublisher","AppInstaller","UpdateTenantUseCase"],"mappings":"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"}
@@ -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
  }
@@ -1,27 +1,7 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
-
3
- /**
4
- * Errors
5
- */
6
-
7
- /**
8
- * Types
9
- */
10
-
11
- /**
12
- * App Installer Abstraction
13
- */
14
-
15
- export const AppInstaller = createAbstraction("AppInstaller");
16
-
17
- /**
18
- * Use Case Abstraction
19
- */
20
-
21
- export const InstallTenantUseCase = createAbstraction("InstallTenantUseCase");
22
- /**
23
- * Event Handler Abstraction
24
- */
25
- export const TenantInstalledHandler = createAbstraction("TenantInstalledHandler");
2
+ const AppInstaller = createAbstraction("AppInstaller");
3
+ const InstallTenantUseCase = createAbstraction("InstallTenantUseCase");
4
+ const TenantInstalledEventHandler = createAbstraction("TenantInstalledEventHandler");
5
+ export { AppInstaller, InstallTenantUseCase, TenantInstalledEventHandler };
26
6
 
27
7
  //# 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,"file":"features/tenancy/InstallTenant/abstractions.js","sources":["../../../../src/features/tenancy/InstallTenant/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"],"names":["AppInstaller","createAbstraction","InstallTenantUseCase","TenantInstalledEventHandler"],"mappings":";AAgDO,MAAMA,eAAeC,kBAAiC;AAatD,MAAMC,uBACTD,kBAAyC;AAStC,MAAME,8BAA8BF,kBAEzC"}
@@ -1,21 +1,20 @@
1
1
  import { BaseError } from "@webiny/feature/api";
2
- export class InstallTenantError extends BaseError {
3
- code = "INSTALL_TENANT";
4
- constructor(data) {
5
- super({
6
- message: "Installation failed",
7
- data
8
- });
9
- }
2
+ class InstallTenantError extends BaseError {
3
+ constructor(data){
4
+ super({
5
+ message: "Installation failed",
6
+ data
7
+ }), this.code = "INSTALL_TENANT";
8
+ }
10
9
  }
11
- export class InstallationDependencyError extends BaseError {
12
- code = "INSTALLATION_DEPENDENCY";
13
- constructor(data) {
14
- super({
15
- message: `Installation dependency error: ${data.reason}`,
16
- data
17
- });
18
- }
10
+ class InstallationDependencyError extends BaseError {
11
+ constructor(data){
12
+ super({
13
+ message: `Installation dependency error: ${data.reason}`,
14
+ data
15
+ }), this.code = "INSTALLATION_DEPENDENCY";
16
+ }
19
17
  }
18
+ export { InstallTenantError, InstallationDependencyError };
20
19
 
21
20
  //# sourceMappingURL=errors.js.map