@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
@@ -8,8 +8,9 @@ export declare class AfterLoginEvent extends DomainEvent<AfterLoginPayload> {
8
8
  eventType: "login.afterLogin";
9
9
  getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<AfterLoginEvent>>;
10
10
  }
11
- export declare const AfterLoginHandler: import("@webiny/di").Abstraction<IEventHandler<AfterLoginEvent>>;
12
- export declare namespace AfterLoginHandler {
11
+ /** Hook into login lifecycle after a user logs in. */
12
+ export declare const AfterLoginEventHandler: import("@webiny/di").Abstraction<IEventHandler<AfterLoginEvent>>;
13
+ export declare namespace AfterLoginEventHandler {
13
14
  type Interface = IEventHandler<AfterLoginEvent>;
14
15
  type Event = AfterLoginEvent;
15
16
  }
@@ -1,11 +1,14 @@
1
1
  import { DomainEvent } from "../../eventPublisher/index.js";
2
2
  import { createAbstraction } from "@webiny/feature/api";
3
- export class AfterLoginEvent extends DomainEvent {
4
- eventType = "login.afterLogin";
5
- getHandlerAbstraction() {
6
- return AfterLoginHandler;
7
- }
3
+ class AfterLoginEvent extends DomainEvent {
4
+ getHandlerAbstraction() {
5
+ return AfterLoginEventHandler;
6
+ }
7
+ constructor(...args){
8
+ super(...args), this.eventType = "login.afterLogin";
9
+ }
8
10
  }
9
- export const AfterLoginHandler = createAbstraction("AfterLoginHandler");
11
+ const AfterLoginEventHandler = createAbstraction("AfterLoginEventHandler");
12
+ export { AfterLoginEvent, AfterLoginEventHandler };
10
13
 
11
14
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DomainEvent","createAbstraction","AfterLoginEvent","eventType","getHandlerAbstraction","AfterLoginHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { DomainEvent } from \"~/features/eventPublisher/index.js\";\nimport type { IEventHandler } from \"~/features/eventPublisher/index.js\";\nimport { createAbstraction } from \"@webiny/feature/api\";\nimport { Identity } from \"~/features/security/IdentityContext/index.js\";\n\nexport interface AfterLoginPayload {\n identity: Identity;\n}\n\nexport class AfterLoginEvent extends DomainEvent<AfterLoginPayload> {\n eventType = \"login.afterLogin\" as const;\n\n getHandlerAbstraction() {\n return AfterLoginHandler;\n }\n}\n\nexport const AfterLoginHandler =\n createAbstraction<IEventHandler<AfterLoginEvent>>(\"AfterLoginHandler\");\n\nexport namespace AfterLoginHandler {\n export type Interface = IEventHandler<AfterLoginEvent>;\n export type Event = AfterLoginEvent;\n}\n"],"mappings":"AAAA,SAASA,WAAW;AAEpB,SAASC,iBAAiB,QAAQ,qBAAqB;AAOvD,OAAO,MAAMC,eAAe,SAASF,WAAW,CAAoB;EAChEG,SAAS,GAAG,kBAAkB;EAE9BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOC,iBAAiB;EAC5B;AACJ;AAEA,OAAO,MAAMA,iBAAiB,GAC1BJ,iBAAiB,CAAiC,mBAAmB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/security/login/abstractions.js","sources":["../../../../src/features/security/login/abstractions.ts"],"sourcesContent":["import { DomainEvent } from \"~/features/eventPublisher/index.js\";\nimport type { IEventHandler } from \"~/features/eventPublisher/index.js\";\nimport { createAbstraction } from \"@webiny/feature/api\";\nimport { Identity } from \"~/features/security/IdentityContext/index.js\";\n\nexport interface AfterLoginPayload {\n identity: Identity;\n}\n\nexport class AfterLoginEvent extends DomainEvent<AfterLoginPayload> {\n eventType = \"login.afterLogin\" as const;\n\n getHandlerAbstraction() {\n return AfterLoginEventHandler;\n }\n}\n\n/** Hook into login lifecycle after a user logs in. */\nexport const AfterLoginEventHandler =\n createAbstraction<IEventHandler<AfterLoginEvent>>(\"AfterLoginEventHandler\");\n\nexport namespace AfterLoginEventHandler {\n export type Interface = IEventHandler<AfterLoginEvent>;\n export type Event = AfterLoginEvent;\n}\n"],"names":["AfterLoginEvent","DomainEvent","AfterLoginEventHandler","createAbstraction"],"mappings":";;AASO,MAAMA,wBAAwBC;IAGjC,wBAAwB;QACpB,OAAOC;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB;AAGO,MAAMA,yBACTC,kBAAkD"}
@@ -1,3 +1 @@
1
1
  export * from "./abstractions.js";
2
-
3
- //# sourceMappingURL=index.js.map
@@ -0,0 +1,2 @@
1
+ import type { PermissionSchemaConfig } from "./types.js";
2
+ export declare function createPermissionSchema<const T extends PermissionSchemaConfig>(config: T): T;
@@ -0,0 +1,9 @@
1
+ function createPermissionSchema(config) {
2
+ return {
3
+ ...config,
4
+ entities: config.entities ?? []
5
+ };
6
+ }
7
+ export { createPermissionSchema };
8
+
9
+ //# sourceMappingURL=createPermissionSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/security/permissions/createPermissionSchema.js","sources":["../../../../src/features/security/permissions/createPermissionSchema.ts"],"sourcesContent":["import type { PermissionSchemaConfig } from \"./types.js\";\n\nexport function createPermissionSchema<const T extends PermissionSchemaConfig>(config: T): T {\n return {\n ...config,\n entities: config.entities ?? []\n };\n}\n"],"names":["createPermissionSchema","config"],"mappings":"AAEO,SAASA,uBAA+DC,MAAS;IACpF,OAAO;QACH,GAAGA,MAAM;QACT,UAAUA,OAAO,QAAQ,IAAI,EAAE;IACnC;AACJ"}
@@ -1,8 +1,8 @@
1
+ import type { Abstraction } from "@webiny/di";
1
2
  import type { PermissionSchemaConfig } from "./types.js";
2
3
  import type { Permissions } from "./types.js";
3
- export declare function createPermissions<const S extends PermissionSchemaConfig>(schema: S): {
4
- Abstraction: import("@webiny/di").Abstraction<Permissions<S>>;
5
- Implementation: import("@webiny/di").Constructor<Permissions<S>> & {
6
- __abstraction: import("@webiny/di").Abstraction<Permissions<S>>;
7
- };
4
+ export declare function createPermissionsAbstraction<const S extends PermissionSchemaConfig>(schema: S): Abstraction<Permissions<S>>;
5
+ export declare function createPermissionsFeature<const S extends PermissionSchemaConfig>(schema: S, abstraction: Abstraction<Permissions<S>>): {
6
+ name: string;
7
+ register(container: import("@webiny/di").Container): void;
8
8
  };
@@ -1,240 +1,162 @@
1
- import { createAbstraction } from "@webiny/feature/api";
1
+ import { createAbstraction, createFeature } from "@webiny/feature/api";
2
2
  import { IdentityContext } from "../IdentityContext/index.js";
3
3
  function buildEntityMap(schema) {
4
- const map = new Map();
5
- for (const entity of schema.entities ?? []) {
6
- const actions = new Set();
7
- for (const action of entity.actions ?? []) {
8
- actions.add(action.name);
4
+ const map = new Map();
5
+ for (const entity of schema.entities ?? []){
6
+ const actions = new Set();
7
+ for (const action of entity.actions ?? [])actions.add(action.name);
8
+ map.set(entity.id, {
9
+ permission: entity.permission,
10
+ actions,
11
+ hasOwn: entity.scopes.includes("own")
12
+ });
9
13
  }
10
- map.set(entity.id, {
11
- permission: entity.permission,
12
- actions,
13
- hasOwn: entity.scopes.includes("own")
14
- });
15
- }
16
- return map;
14
+ return map;
17
15
  }
18
16
  function getEntity(entityMap, entityId) {
19
- const entity = entityMap.get(entityId);
20
- if (!entity) {
21
- throw new Error(`Unknown entity "${entityId}" in permission schema.`);
22
- }
23
- return entity;
17
+ const entity = entityMap.get(entityId);
18
+ if (!entity) throw new Error(`Unknown entity "${entityId}" in permission schema.`);
19
+ return entity;
24
20
  }
25
- export function createPermissions(schema) {
26
- const entityMap = buildEntityMap(schema);
27
- const fullAccessName = `${schema.prefix}.*`;
28
- class SchemaPermissions {
29
- constructor(identityContext) {
30
- this.identityContext = identityContext;
21
+ class SchemaPermissions {
22
+ constructor(schema, identityContext){
23
+ this.entityMap = buildEntityMap(schema);
24
+ this.fullAccessName = `${schema.prefix}.*`;
25
+ this.identityContext = identityContext;
31
26
  }
32
27
  async canAccess(entityId, item) {
33
- if (await this.identityContext.hasFullAccess()) {
34
- return true;
35
- }
36
- if (await this.hasFullSchemaAccess()) {
37
- return true;
38
- }
39
- const entity = getEntity(entityMap, entityId);
40
- const permissions = await this.getEntityPermissions(entity.permission);
41
- if (!permissions.length) {
42
- return false;
43
- }
44
- // No item — just check entity-level access.
45
- if (item === undefined) {
46
- return true;
47
- }
48
- // Item provided — if all permissions require own, verify ownership.
49
- const ownOnly = !permissions.some(p => !p.own);
50
- if (!ownOnly) {
51
- return true;
52
- }
53
- const identity = this.identityContext.getIdentity();
54
- return item.createdBy?.id === identity.id;
28
+ if (await this.identityContext.hasFullAccess()) return true;
29
+ if (await this.hasFullSchemaAccess()) return true;
30
+ const entity = getEntity(this.entityMap, entityId);
31
+ const permissions = await this.getEntityPermissions(entity.permission);
32
+ if (!permissions.length) return false;
33
+ if (void 0 === item) return true;
34
+ const ownOnly = !permissions.some((p)=>!p.own);
35
+ if (!ownOnly) return true;
36
+ const identity = this.identityContext.getIdentity();
37
+ return item.createdBy?.id === identity.id;
55
38
  }
56
39
  async onlyOwnRecords(entityId) {
57
- if (await this.identityContext.hasFullAccess()) {
58
- return false;
59
- }
60
- if (await this.hasFullSchemaAccess()) {
61
- return false;
62
- }
63
- const entity = getEntity(entityMap, entityId);
64
- const permissions = await this.getEntityPermissions(entity.permission);
65
- if (!permissions.length) {
66
- return false;
67
- }
68
- return !permissions.some(p => !p.own);
40
+ if (await this.identityContext.hasFullAccess()) return false;
41
+ if (await this.hasFullSchemaAccess()) return false;
42
+ const entity = getEntity(this.entityMap, entityId);
43
+ const permissions = await this.getEntityPermissions(entity.permission);
44
+ if (!permissions.length) return false;
45
+ return !permissions.some((p)=>!p.own);
69
46
  }
70
47
  async canRead(entityId) {
71
- if (await this.identityContext.hasFullAccess()) {
72
- return true;
73
- }
74
- if (await this.hasFullSchemaAccess()) {
75
- return true;
76
- }
77
- const entity = getEntity(entityMap, entityId);
78
- const permissions = await this.getEntityPermissions(entity.permission);
79
- if (!permissions.length) {
80
- return false;
81
- }
82
- return permissions.some(permission => {
83
- if (typeof permission.rwd !== "string") {
84
- return true;
85
- }
86
- return permission.rwd.includes("r");
87
- });
48
+ if (await this.identityContext.hasFullAccess()) return true;
49
+ if (await this.hasFullSchemaAccess()) return true;
50
+ const entity = getEntity(this.entityMap, entityId);
51
+ const permissions = await this.getEntityPermissions(entity.permission);
52
+ if (!permissions.length) return false;
53
+ return permissions.some((permission)=>{
54
+ if ("string" != typeof permission.rwd) return true;
55
+ return permission.rwd.includes("r");
56
+ });
88
57
  }
89
58
  async canCreate(entityId) {
90
- if (await this.identityContext.hasFullAccess()) {
91
- return true;
92
- }
93
- if (await this.hasFullSchemaAccess()) {
94
- return true;
95
- }
96
- const entity = getEntity(entityMap, entityId);
97
- const permissions = await this.getEntityPermissions(entity.permission);
98
- if (!permissions.length) {
99
- return false;
100
- }
101
- return permissions.some(permission => {
102
- if (typeof permission.rwd !== "string") {
103
- return true;
104
- }
105
- return permission.rwd.includes("w");
106
- });
59
+ if (await this.identityContext.hasFullAccess()) return true;
60
+ if (await this.hasFullSchemaAccess()) return true;
61
+ const entity = getEntity(this.entityMap, entityId);
62
+ const permissions = await this.getEntityPermissions(entity.permission);
63
+ if (!permissions.length) return false;
64
+ return permissions.some((permission)=>{
65
+ if ("string" != typeof permission.rwd) return true;
66
+ return permission.rwd.includes("w");
67
+ });
107
68
  }
108
69
  async canEdit(entityId, item) {
109
- if (await this.identityContext.hasFullAccess()) {
110
- return true;
111
- }
112
- if (await this.hasFullSchemaAccess()) {
113
- return true;
114
- }
115
- const entity = getEntity(entityMap, entityId);
116
- const permissions = await this.getEntityPermissions(entity.permission);
117
- if (!permissions.length) {
118
- return false;
119
- }
120
- const identity = this.identityContext.getIdentity();
121
- return permissions.some(permission => {
122
- if (permission.own) {
123
- // No item provided (new/unsaved) — allow access.
124
- if (!item?.createdBy) {
125
- return true;
126
- }
127
- return item.createdBy.id === identity.id;
128
- }
129
- if (typeof permission.rwd !== "string") {
130
- return true;
131
- }
132
- return permission.rwd.includes("w");
133
- });
70
+ if (await this.identityContext.hasFullAccess()) return true;
71
+ if (await this.hasFullSchemaAccess()) return true;
72
+ const entity = getEntity(this.entityMap, entityId);
73
+ const permissions = await this.getEntityPermissions(entity.permission);
74
+ if (!permissions.length) return false;
75
+ const identity = this.identityContext.getIdentity();
76
+ return permissions.some((permission)=>{
77
+ if (permission.own) {
78
+ if (!item?.createdBy) return true;
79
+ return item.createdBy.id === identity.id;
80
+ }
81
+ if ("string" != typeof permission.rwd) return true;
82
+ return permission.rwd.includes("w");
83
+ });
134
84
  }
135
85
  async canDelete(entityId, item) {
136
- if (await this.identityContext.hasFullAccess()) {
137
- return true;
138
- }
139
- if (await this.hasFullSchemaAccess()) {
140
- return true;
141
- }
142
- const entity = getEntity(entityMap, entityId);
143
- const permissions = await this.getEntityPermissions(entity.permission);
144
- if (!permissions.length) {
145
- return false;
146
- }
147
- const identity = this.identityContext.getIdentity();
148
- return permissions.some(permission => {
149
- if (permission.own) {
150
- return item?.createdBy?.id === identity.id;
151
- }
152
- if (typeof permission.rwd !== "string") {
153
- return true;
154
- }
155
- return permission.rwd.includes("d");
156
- });
86
+ if (await this.identityContext.hasFullAccess()) return true;
87
+ if (await this.hasFullSchemaAccess()) return true;
88
+ const entity = getEntity(this.entityMap, entityId);
89
+ const permissions = await this.getEntityPermissions(entity.permission);
90
+ if (!permissions.length) return false;
91
+ const identity = this.identityContext.getIdentity();
92
+ return permissions.some((permission)=>{
93
+ if (permission.own) return item?.createdBy?.id === identity.id;
94
+ if ("string" != typeof permission.rwd) return true;
95
+ return permission.rwd.includes("d");
96
+ });
157
97
  }
158
98
  async canPublish(entityId) {
159
- if (await this.identityContext.hasFullAccess()) {
160
- return true;
161
- }
162
- if (await this.hasFullSchemaAccess()) {
163
- return true;
164
- }
165
- const entity = getEntity(entityMap, entityId);
166
- const permissions = await this.getEntityPermissions(entity.permission);
167
- if (!permissions.length) {
168
- return false;
169
- }
170
- return permissions.some(permission => {
171
- return permission.pw?.includes("p");
172
- });
99
+ if (await this.identityContext.hasFullAccess()) return true;
100
+ if (await this.hasFullSchemaAccess()) return true;
101
+ const entity = getEntity(this.entityMap, entityId);
102
+ const permissions = await this.getEntityPermissions(entity.permission);
103
+ if (!permissions.length) return false;
104
+ return permissions.some((permission)=>permission.pw?.includes("p"));
173
105
  }
174
106
  async canUnpublish(entityId) {
175
- if (await this.identityContext.hasFullAccess()) {
176
- return true;
177
- }
178
- if (await this.hasFullSchemaAccess()) {
179
- return true;
180
- }
181
- const entity = getEntity(entityMap, entityId);
182
- const permissions = await this.getEntityPermissions(entity.permission);
183
- if (!permissions.length) {
184
- return false;
185
- }
186
- return permissions.some(permission => {
187
- return permission.pw?.includes("u");
188
- });
107
+ if (await this.identityContext.hasFullAccess()) return true;
108
+ if (await this.hasFullSchemaAccess()) return true;
109
+ const entity = getEntity(this.entityMap, entityId);
110
+ const permissions = await this.getEntityPermissions(entity.permission);
111
+ if (!permissions.length) return false;
112
+ return permissions.some((permission)=>permission.pw?.includes("u"));
189
113
  }
190
114
  async canAction(action, entityId) {
191
- if (await this.identityContext.hasFullAccess()) {
192
- return true;
193
- }
194
- if (await this.hasFullSchemaAccess()) {
195
- return true;
196
- }
197
- const entity = getEntity(entityMap, entityId);
198
- const permissions = await this.getEntityPermissions(entity.permission);
199
- if (!permissions.length) {
200
- return false;
201
- }
202
- return permissions.some(permission => {
203
- return permission[action] === true;
204
- });
115
+ if (await this.identityContext.hasFullAccess()) return true;
116
+ if (await this.hasFullSchemaAccess()) return true;
117
+ const entity = getEntity(this.entityMap, entityId);
118
+ const permissions = await this.getEntityPermissions(entity.permission);
119
+ if (!permissions.length) return false;
120
+ return permissions.some((permission)=>true === permission[action]);
205
121
  }
206
122
  async getEntityPermissions(entityPermission) {
207
- const permissions = await this.identityContext.getPermissions(entityPermission);
208
- if (permissions.length) {
209
- return permissions;
210
- }
211
- // Fall back to the schema wildcard (e.g. "test.*") — its flags apply to all entities.
212
- const wildcard = await this.identityContext.getPermission(fullAccessName);
213
- return wildcard ? [wildcard] : [];
123
+ const permissions = await this.identityContext.getPermissions(entityPermission);
124
+ if (permissions.length) return permissions;
125
+ const wildcard = await this.identityContext.getPermission(this.fullAccessName);
126
+ return wildcard ? [
127
+ wildcard
128
+ ] : [];
214
129
  }
215
130
  async hasFullSchemaAccess() {
216
- const permission = await this.identityContext.getPermission(fullAccessName);
217
- if (!permission) {
218
- return false;
219
- }
220
- // Only treat as full access if the permission has no `rwd` flag.
221
- // A permission like { name: "wb.*", rwd: "r" } should NOT grant full access.
222
- const keys = Object.keys(permission).filter(k => k !== "name");
223
- const hasRwd = keys.includes("rwd");
224
-
225
- // It's full-access only if there's no `rwd` flag.
226
- return !hasRwd;
131
+ const permission = await this.identityContext.getPermission(this.fullAccessName);
132
+ if (!permission) return false;
133
+ const keys = Object.keys(permission).filter((k)=>"name" !== k);
134
+ const hasRwd = keys.includes("rwd");
135
+ return !hasRwd;
227
136
  }
228
- }
229
- const Abstraction = createAbstraction(`${schema.prefix}:Permissions`);
230
- const Implementation = Abstraction.createImplementation({
231
- implementation: SchemaPermissions,
232
- dependencies: [IdentityContext]
233
- });
234
- return {
235
- Abstraction,
236
- Implementation
237
- };
238
137
  }
138
+ function createPermissionsAbstraction(schema) {
139
+ return createAbstraction(`${schema.prefix}:Permissions`);
140
+ }
141
+ function createPermissionsFeature(schema, abstraction) {
142
+ class PermissionsImpl extends SchemaPermissions {
143
+ constructor(identityContext){
144
+ super(schema, identityContext);
145
+ }
146
+ }
147
+ const Implementation = abstraction.createImplementation({
148
+ implementation: PermissionsImpl,
149
+ dependencies: [
150
+ IdentityContext
151
+ ]
152
+ });
153
+ return createFeature({
154
+ name: `${schema.prefix}:Permissions`,
155
+ register (container) {
156
+ container.register(Implementation);
157
+ }
158
+ });
159
+ }
160
+ export { createPermissionsAbstraction, createPermissionsFeature };
239
161
 
240
162
  //# sourceMappingURL=createPermissions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","IdentityContext","buildEntityMap","schema","map","Map","entity","entities","actions","Set","action","add","name","set","id","permission","hasOwn","scopes","includes","getEntity","entityMap","entityId","get","Error","createPermissions","fullAccessName","prefix","SchemaPermissions","constructor","identityContext","canAccess","item","hasFullAccess","hasFullSchemaAccess","permissions","getEntityPermissions","length","undefined","ownOnly","some","p","own","identity","getIdentity","createdBy","onlyOwnRecords","canRead","rwd","canCreate","canEdit","canDelete","canPublish","pw","canUnpublish","canAction","entityPermission","getPermissions","wildcard","getPermission","keys","Object","filter","k","hasRwd","Abstraction","Implementation","createImplementation","implementation","dependencies"],"sources":["createPermissions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"~/features/security/IdentityContext/index.js\";\nimport type { PermissionSchemaConfig } from \"./types.js\";\nimport type { OwnableItem } from \"./types.js\";\nimport type { Permissions } from \"./types.js\";\n\ninterface EntityLookup {\n permission: string;\n actions: Set<string>;\n hasOwn: boolean;\n}\n\nfunction buildEntityMap(schema: PermissionSchemaConfig): Map<string, EntityLookup> {\n const map = new Map<string, EntityLookup>();\n for (const entity of schema.entities ?? []) {\n const actions = new Set<string>();\n for (const action of entity.actions ?? []) {\n actions.add(action.name);\n }\n map.set(entity.id, {\n permission: entity.permission,\n actions,\n hasOwn: entity.scopes.includes(\"own\")\n });\n }\n return map;\n}\n\nfunction getEntity(entityMap: Map<string, EntityLookup>, entityId: string): EntityLookup {\n const entity = entityMap.get(entityId);\n if (!entity) {\n throw new Error(`Unknown entity \"${entityId}\" in permission schema.`);\n }\n return entity;\n}\n\nexport function createPermissions<const S extends PermissionSchemaConfig>(schema: S) {\n const entityMap = buildEntityMap(schema);\n const fullAccessName = `${schema.prefix}.*`;\n\n class SchemaPermissions {\n constructor(private identityContext: IdentityContext.Interface) {}\n\n async canAccess(entityId: string, item?: OwnableItem): Promise<boolean> {\n if (await this.identityContext.hasFullAccess()) {\n return true;\n }\n if (await this.hasFullSchemaAccess()) {\n return true;\n }\n const entity = getEntity(entityMap, entityId);\n const permissions = await this.getEntityPermissions(entity.permission);\n if (!permissions.length) {\n return false;\n }\n // No item — just check entity-level access.\n if (item === undefined) {\n return true;\n }\n // Item provided — if all permissions require own, verify ownership.\n const ownOnly = !permissions.some(p => !p.own);\n if (!ownOnly) {\n return true;\n }\n const identity = this.identityContext.getIdentity();\n return item.createdBy?.id === identity.id;\n }\n\n async onlyOwnRecords(entityId: string): Promise<boolean> {\n if (await this.identityContext.hasFullAccess()) {\n return false;\n }\n if (await this.hasFullSchemaAccess()) {\n return false;\n }\n const entity = getEntity(entityMap, entityId);\n const permissions = await this.getEntityPermissions(entity.permission);\n if (!permissions.length) {\n return false;\n }\n return !permissions.some(p => !p.own);\n }\n\n async canRead(entityId: string): Promise<boolean> {\n if (await this.identityContext.hasFullAccess()) {\n return true;\n }\n if (await this.hasFullSchemaAccess()) {\n return true;\n }\n const entity = getEntity(entityMap, entityId);\n const permissions = await this.getEntityPermissions(entity.permission);\n if (!permissions.length) {\n return false;\n }\n return permissions.some(permission => {\n if (typeof permission.rwd !== \"string\") {\n return true;\n }\n return permission.rwd.includes(\"r\");\n });\n }\n\n async canCreate(entityId: string): Promise<boolean> {\n if (await this.identityContext.hasFullAccess()) {\n return true;\n }\n if (await this.hasFullSchemaAccess()) {\n return true;\n }\n const entity = getEntity(entityMap, entityId);\n const permissions = await this.getEntityPermissions(entity.permission);\n if (!permissions.length) {\n return false;\n }\n return permissions.some(permission => {\n if (typeof permission.rwd !== \"string\") {\n return true;\n }\n return permission.rwd.includes(\"w\");\n });\n }\n\n async canEdit(entityId: string, item?: OwnableItem): Promise<boolean> {\n if (await this.identityContext.hasFullAccess()) {\n return true;\n }\n if (await this.hasFullSchemaAccess()) {\n return true;\n }\n const entity = getEntity(entityMap, entityId);\n const permissions = await this.getEntityPermissions(entity.permission);\n if (!permissions.length) {\n return false;\n }\n const identity = this.identityContext.getIdentity();\n return permissions.some(permission => {\n if (permission.own) {\n // No item provided (new/unsaved) — allow access.\n if (!item?.createdBy) {\n return true;\n }\n return item.createdBy.id === identity.id;\n }\n if (typeof permission.rwd !== \"string\") {\n return true;\n }\n return permission.rwd.includes(\"w\");\n });\n }\n\n async canDelete(entityId: string, item?: OwnableItem): Promise<boolean> {\n if (await this.identityContext.hasFullAccess()) {\n return true;\n }\n if (await this.hasFullSchemaAccess()) {\n return true;\n }\n const entity = getEntity(entityMap, entityId);\n const permissions = await this.getEntityPermissions(entity.permission);\n if (!permissions.length) {\n return false;\n }\n const identity = this.identityContext.getIdentity();\n return permissions.some(permission => {\n if (permission.own) {\n return item?.createdBy?.id === identity.id;\n }\n if (typeof permission.rwd !== \"string\") {\n return true;\n }\n return permission.rwd.includes(\"d\");\n });\n }\n\n async canPublish(entityId: string): Promise<boolean> {\n if (await this.identityContext.hasFullAccess()) {\n return true;\n }\n if (await this.hasFullSchemaAccess()) {\n return true;\n }\n const entity = getEntity(entityMap, entityId);\n const permissions = await this.getEntityPermissions(entity.permission);\n if (!permissions.length) {\n return false;\n }\n return permissions.some(permission => {\n return permission.pw?.includes(\"p\");\n });\n }\n\n async canUnpublish(entityId: string): Promise<boolean> {\n if (await this.identityContext.hasFullAccess()) {\n return true;\n }\n if (await this.hasFullSchemaAccess()) {\n return true;\n }\n const entity = getEntity(entityMap, entityId);\n const permissions = await this.getEntityPermissions(entity.permission);\n if (!permissions.length) {\n return false;\n }\n return permissions.some(permission => {\n return permission.pw?.includes(\"u\");\n });\n }\n\n async canAction(action: string, entityId: string): Promise<boolean> {\n if (await this.identityContext.hasFullAccess()) {\n return true;\n }\n if (await this.hasFullSchemaAccess()) {\n return true;\n }\n const entity = getEntity(entityMap, entityId);\n const permissions = await this.getEntityPermissions(entity.permission);\n if (!permissions.length) {\n return false;\n }\n return permissions.some(permission => {\n return permission[action] === true;\n });\n }\n\n private async getEntityPermissions(entityPermission: string): Promise<any[]> {\n const permissions = await this.identityContext.getPermissions(entityPermission);\n if (permissions.length) {\n return permissions;\n }\n // Fall back to the schema wildcard (e.g. \"test.*\") — its flags apply to all entities.\n const wildcard = await this.identityContext.getPermission(fullAccessName);\n return wildcard ? [wildcard] : [];\n }\n\n private async hasFullSchemaAccess(): Promise<boolean> {\n const permission = await this.identityContext.getPermission(fullAccessName);\n if (!permission) {\n return false;\n }\n // Only treat as full access if the permission has no `rwd` flag.\n // A permission like { name: \"wb.*\", rwd: \"r\" } should NOT grant full access.\n const keys = Object.keys(permission).filter(k => k !== \"name\");\n\n const hasRwd = keys.includes(\"rwd\");\n\n // It's full-access only if there's no `rwd` flag.\n return !hasRwd;\n }\n }\n\n const Abstraction = createAbstraction<Permissions<S>>(`${schema.prefix}:Permissions`);\n\n const Implementation = Abstraction.createImplementation({\n implementation: SchemaPermissions,\n dependencies: [IdentityContext]\n } as any);\n\n return { Abstraction, Implementation };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"features/security/permissions/createPermissions.js","sources":["../../../../src/features/security/permissions/createPermissions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { createFeature } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"~/features/security/IdentityContext/index.js\";\nimport type { Abstraction } from \"@webiny/di\";\nimport type { PermissionSchemaConfig } from \"./types.js\";\nimport type { OwnableItem } from \"./types.js\";\nimport type { Permissions } from \"./types.js\";\n\ninterface EntityLookup {\n permission: string;\n actions: Set<string>;\n hasOwn: boolean;\n}\n\nfunction buildEntityMap(schema: PermissionSchemaConfig): Map<string, EntityLookup> {\n const map = new Map<string, EntityLookup>();\n for (const entity of schema.entities ?? []) {\n const actions = new Set<string>();\n for (const action of entity.actions ?? []) {\n actions.add(action.name);\n }\n map.set(entity.id, {\n permission: entity.permission,\n actions,\n hasOwn: entity.scopes.includes(\"own\")\n });\n }\n return map;\n}\n\nfunction getEntity(entityMap: Map<string, EntityLookup>, entityId: string): EntityLookup {\n const entity = entityMap.get(entityId);\n if (!entity) {\n throw new Error(`Unknown entity \"${entityId}\" in permission schema.`);\n }\n return entity;\n}\n\nclass SchemaPermissions<S extends PermissionSchemaConfig> {\n private readonly entityMap: Map<string, EntityLookup>;\n private readonly fullAccessName: string;\n private readonly identityContext: IdentityContext.Interface;\n\n constructor(schema: S, identityContext: IdentityContext.Interface) {\n this.entityMap = buildEntityMap(schema);\n this.fullAccessName = `${schema.prefix}.*`;\n this.identityContext = identityContext;\n }\n\n async canAccess(entityId: string, item?: OwnableItem): Promise<boolean> {\n if (await this.identityContext.hasFullAccess()) {\n return true;\n }\n if (await this.hasFullSchemaAccess()) {\n return true;\n }\n const entity = getEntity(this.entityMap, entityId);\n const permissions = await this.getEntityPermissions(entity.permission);\n if (!permissions.length) {\n return false;\n }\n // No item — just check entity-level access.\n if (item === undefined) {\n return true;\n }\n // Item provided — if all permissions require own, verify ownership.\n const ownOnly = !permissions.some(p => !p.own);\n if (!ownOnly) {\n return true;\n }\n const identity = this.identityContext.getIdentity();\n return item.createdBy?.id === identity.id;\n }\n\n async onlyOwnRecords(entityId: string): Promise<boolean> {\n if (await this.identityContext.hasFullAccess()) {\n return false;\n }\n if (await this.hasFullSchemaAccess()) {\n return false;\n }\n const entity = getEntity(this.entityMap, entityId);\n const permissions = await this.getEntityPermissions(entity.permission);\n if (!permissions.length) {\n return false;\n }\n return !permissions.some(p => !p.own);\n }\n\n async canRead(entityId: string): Promise<boolean> {\n if (await this.identityContext.hasFullAccess()) {\n return true;\n }\n if (await this.hasFullSchemaAccess()) {\n return true;\n }\n const entity = getEntity(this.entityMap, entityId);\n const permissions = await this.getEntityPermissions(entity.permission);\n if (!permissions.length) {\n return false;\n }\n return permissions.some(permission => {\n if (typeof permission.rwd !== \"string\") {\n return true;\n }\n return permission.rwd.includes(\"r\");\n });\n }\n\n async canCreate(entityId: string): Promise<boolean> {\n if (await this.identityContext.hasFullAccess()) {\n return true;\n }\n if (await this.hasFullSchemaAccess()) {\n return true;\n }\n const entity = getEntity(this.entityMap, entityId);\n const permissions = await this.getEntityPermissions(entity.permission);\n if (!permissions.length) {\n return false;\n }\n return permissions.some(permission => {\n if (typeof permission.rwd !== \"string\") {\n return true;\n }\n return permission.rwd.includes(\"w\");\n });\n }\n\n async canEdit(entityId: string, item?: OwnableItem): Promise<boolean> {\n if (await this.identityContext.hasFullAccess()) {\n return true;\n }\n if (await this.hasFullSchemaAccess()) {\n return true;\n }\n const entity = getEntity(this.entityMap, entityId);\n const permissions = await this.getEntityPermissions(entity.permission);\n if (!permissions.length) {\n return false;\n }\n const identity = this.identityContext.getIdentity();\n return permissions.some(permission => {\n if (permission.own) {\n // No item provided (new/unsaved) — allow access.\n if (!item?.createdBy) {\n return true;\n }\n return item.createdBy.id === identity.id;\n }\n if (typeof permission.rwd !== \"string\") {\n return true;\n }\n return permission.rwd.includes(\"w\");\n });\n }\n\n async canDelete(entityId: string, item?: OwnableItem): Promise<boolean> {\n if (await this.identityContext.hasFullAccess()) {\n return true;\n }\n if (await this.hasFullSchemaAccess()) {\n return true;\n }\n const entity = getEntity(this.entityMap, entityId);\n const permissions = await this.getEntityPermissions(entity.permission);\n if (!permissions.length) {\n return false;\n }\n const identity = this.identityContext.getIdentity();\n return permissions.some(permission => {\n if (permission.own) {\n return item?.createdBy?.id === identity.id;\n }\n if (typeof permission.rwd !== \"string\") {\n return true;\n }\n return permission.rwd.includes(\"d\");\n });\n }\n\n async canPublish(entityId: string): Promise<boolean> {\n if (await this.identityContext.hasFullAccess()) {\n return true;\n }\n if (await this.hasFullSchemaAccess()) {\n return true;\n }\n const entity = getEntity(this.entityMap, entityId);\n const permissions = await this.getEntityPermissions(entity.permission);\n if (!permissions.length) {\n return false;\n }\n return permissions.some(permission => {\n return permission.pw?.includes(\"p\");\n });\n }\n\n async canUnpublish(entityId: string): Promise<boolean> {\n if (await this.identityContext.hasFullAccess()) {\n return true;\n }\n if (await this.hasFullSchemaAccess()) {\n return true;\n }\n const entity = getEntity(this.entityMap, entityId);\n const permissions = await this.getEntityPermissions(entity.permission);\n if (!permissions.length) {\n return false;\n }\n return permissions.some(permission => {\n return permission.pw?.includes(\"u\");\n });\n }\n\n async canAction(action: string, entityId: string): Promise<boolean> {\n if (await this.identityContext.hasFullAccess()) {\n return true;\n }\n if (await this.hasFullSchemaAccess()) {\n return true;\n }\n const entity = getEntity(this.entityMap, entityId);\n const permissions = await this.getEntityPermissions(entity.permission);\n if (!permissions.length) {\n return false;\n }\n return permissions.some(permission => {\n return permission[action] === true;\n });\n }\n\n private async getEntityPermissions(entityPermission: string): Promise<any[]> {\n const permissions = await this.identityContext.getPermissions(entityPermission);\n if (permissions.length) {\n return permissions;\n }\n // Fall back to the schema wildcard (e.g. \"test.*\") — its flags apply to all entities.\n const wildcard = await this.identityContext.getPermission(this.fullAccessName);\n return wildcard ? [wildcard] : [];\n }\n\n private async hasFullSchemaAccess(): Promise<boolean> {\n const permission = await this.identityContext.getPermission(this.fullAccessName);\n if (!permission) {\n return false;\n }\n // Only treat as full access if the permission has no `rwd` flag.\n // A permission like { name: \"wb.*\", rwd: \"r\" } should NOT grant full access.\n const keys = Object.keys(permission).filter(k => k !== \"name\");\n\n const hasRwd = keys.includes(\"rwd\");\n\n // It's full-access only if there's no `rwd` flag.\n return !hasRwd;\n }\n}\n\nexport function createPermissionsAbstraction<const S extends PermissionSchemaConfig>(schema: S) {\n return createAbstraction<Permissions<S>>(`${schema.prefix}:Permissions`);\n}\n\nexport function createPermissionsFeature<const S extends PermissionSchemaConfig>(\n schema: S,\n abstraction: Abstraction<Permissions<S>>\n) {\n class PermissionsImpl extends SchemaPermissions<S> {\n constructor(identityContext: IdentityContext.Interface) {\n super(schema, identityContext);\n }\n }\n\n const Implementation = abstraction.createImplementation({\n implementation: PermissionsImpl,\n dependencies: [IdentityContext]\n } as any);\n\n return createFeature({\n name: `${schema.prefix}:Permissions`,\n register(container) {\n container.register(Implementation);\n }\n });\n}\n"],"names":["buildEntityMap","schema","map","Map","entity","actions","Set","action","getEntity","entityMap","entityId","Error","SchemaPermissions","identityContext","item","permissions","undefined","ownOnly","p","identity","permission","entityPermission","wildcard","keys","Object","k","hasRwd","createPermissionsAbstraction","createAbstraction","createPermissionsFeature","abstraction","PermissionsImpl","Implementation","IdentityContext","createFeature","container"],"mappings":"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"}
@@ -1,2 +1,3 @@
1
- export { createPermissions } from "./createPermissions.js";
1
+ export { createPermissionSchema } from "./createPermissionSchema.js";
2
+ export { createPermissionsAbstraction, createPermissionsFeature } from "./createPermissions.js";
2
3
  export type { ActionDefinition, EntityDefinition, PermissionSchemaConfig, OwnableItem, Permissions, AllEntityIds, RwdEntityId, PwEntityId, CustomActionNames } from "./types.js";
@@ -1,3 +1,2 @@
1
- export { createPermissions } from "./createPermissions.js";
2
-
3
- //# sourceMappingURL=index.js.map
1
+ export { createPermissionSchema } from "./createPermissionSchema.js";
2
+ export { createPermissionsAbstraction, createPermissionsFeature } from "./createPermissions.js";
@@ -1,3 +0,0 @@
1
- export {};
2
-
3
- //# sourceMappingURL=types.js.map
@@ -1,16 +1,14 @@
1
1
  import { Result } from "@webiny/feature/api";
2
- import { TenantContext } from "../../../../features/tenancy/TenantContext/index.js";
3
2
  import { EventPublisher } from "../../../../features/eventPublisher/index.js";
4
3
  import { CreateRoleUseCase as UseCaseAbstraction } from "./abstractions.js";
5
4
  import { RolesRepository } from "../shared/abstractions.js";
6
5
  import { IdentityContext } from "../../IdentityContext/abstractions.js";
7
6
  import type { Role, CreateRoleInput } from "../shared/types.js";
8
7
  declare class CreateRoleUseCaseImpl implements UseCaseAbstraction.Interface {
9
- private tenantContext;
10
8
  private identityContext;
11
9
  private eventPublisher;
12
10
  private repository;
13
- constructor(tenantContext: TenantContext.Interface, identityContext: IdentityContext.Interface, eventPublisher: EventPublisher.Interface, repository: RolesRepository.Interface);
11
+ constructor(identityContext: IdentityContext.Interface, eventPublisher: EventPublisher.Interface, repository: RolesRepository.Interface);
14
12
  execute(input: CreateRoleInput): Promise<Result<Role, UseCaseAbstraction.Error>>;
15
13
  }
16
14
  export declare const CreateRoleUseCase: import("@webiny/di").Implementation<typeof CreateRoleUseCaseImpl>;