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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (816) hide show
  1. package/ApiCoreFeature.js +22 -18
  2. package/ApiCoreFeature.js.map +1 -1
  3. package/createApiCore.d.ts +1 -1
  4. package/createApiCore.js +14 -9
  5. package/createApiCore.js.map +1 -1
  6. package/domain/identity/SystemIdentityValue.js +9 -8
  7. package/domain/identity/SystemIdentityValue.js.map +1 -1
  8. package/domain/security/ApiToken.js +5 -11
  9. package/domain/security/ApiToken.js.map +1 -1
  10. package/domain/tenancy/RootTenantValue.js +9 -8
  11. package/domain/tenancy/RootTenantValue.js.map +1 -1
  12. package/domain/tenancy/errors.js +0 -3
  13. package/exports/api/build-params.js +0 -3
  14. package/exports/api/event-publisher.js +0 -3
  15. package/exports/api/graphql.js +0 -2
  16. package/exports/api/key-value-store.js +0 -3
  17. package/exports/api/logger.js +0 -3
  18. package/exports/api/security/api-key.js +0 -2
  19. package/exports/api/security/authentication.js +0 -2
  20. package/exports/api/security/role.js +1 -3
  21. package/exports/api/security/user.js +0 -2
  22. package/exports/api/security.js +3 -7
  23. package/exports/api/system.js +0 -2
  24. package/exports/api/tasks.js +0 -2
  25. package/exports/api/tenancy.js +4 -6
  26. package/exports/api/webhooks.d.ts +1 -0
  27. package/exports/api/webhooks.js +1 -0
  28. package/exports/api.js +1 -3
  29. package/features/ai/Ai.js +100 -117
  30. package/features/ai/Ai.js.map +1 -1
  31. package/features/ai/AiSdkTools.js +23 -19
  32. package/features/ai/AiSdkTools.js.map +1 -1
  33. package/features/ai/AnthropicSdkFactory.js +82 -65
  34. package/features/ai/AnthropicSdkFactory.js.map +1 -1
  35. package/features/ai/OpenAiSdkFactory.js +234 -181
  36. package/features/ai/OpenAiSdkFactory.js.map +1 -1
  37. package/features/ai/abstractions.js +7 -32
  38. package/features/ai/abstractions.js.map +1 -1
  39. package/features/ai/feature.js +9 -8
  40. package/features/ai/feature.js.map +1 -1
  41. package/features/ai/index.js +1 -3
  42. package/features/buildParams/BuildParams.js +20 -14
  43. package/features/buildParams/BuildParams.js.map +1 -1
  44. package/features/buildParams/abstractions.js +3 -4
  45. package/features/buildParams/abstractions.js.map +1 -1
  46. package/features/buildParams/feature.js +6 -5
  47. package/features/buildParams/feature.js.map +1 -1
  48. package/features/buildParams/index.js +0 -2
  49. package/features/encryption/EncryptionService.js +50 -46
  50. package/features/encryption/EncryptionService.js.map +1 -1
  51. package/features/encryption/abstractions.js +2 -2
  52. package/features/encryption/abstractions.js.map +1 -1
  53. package/features/encryption/feature.js +6 -5
  54. package/features/encryption/feature.js.map +1 -1
  55. package/features/encryption/index.js +0 -2
  56. package/features/eventPublisher/EventPublisher.js +9 -15
  57. package/features/eventPublisher/EventPublisher.js.map +1 -1
  58. package/features/eventPublisher/__tests__/EventPublisher.test.js +385 -419
  59. package/features/eventPublisher/__tests__/EventPublisher.test.js.map +1 -1
  60. package/features/eventPublisher/abstractions.js +7 -12
  61. package/features/eventPublisher/abstractions.js.map +1 -1
  62. package/features/eventPublisher/feature.js +8 -7
  63. package/features/eventPublisher/feature.js.map +1 -1
  64. package/features/eventPublisher/index.js +0 -2
  65. package/features/featureFlags/FeatureFlags.js +15 -12
  66. package/features/featureFlags/FeatureFlags.js.map +1 -1
  67. package/features/featureFlags/abstractions.js +2 -1
  68. package/features/featureFlags/abstractions.js.map +1 -1
  69. package/features/featureFlags/feature.js +6 -5
  70. package/features/featureFlags/feature.js.map +1 -1
  71. package/features/keyValueStore/GlobalKeyValueStore.js +28 -23
  72. package/features/keyValueStore/GlobalKeyValueStore.js.map +1 -1
  73. package/features/keyValueStore/KeyValueStore.js +30 -27
  74. package/features/keyValueStore/KeyValueStore.js.map +1 -1
  75. package/features/keyValueStore/KeyValueStoreRepository.d.ts +2 -2
  76. package/features/keyValueStore/KeyValueStoreRepository.js +34 -41
  77. package/features/keyValueStore/KeyValueStoreRepository.js.map +1 -1
  78. package/features/keyValueStore/abstractions.d.ts +6 -2
  79. package/features/keyValueStore/abstractions.js +5 -20
  80. package/features/keyValueStore/abstractions.js.map +1 -1
  81. package/features/keyValueStore/errors.js +16 -17
  82. package/features/keyValueStore/errors.js.map +1 -1
  83. package/features/keyValueStore/feature.js +9 -9
  84. package/features/keyValueStore/feature.js.map +1 -1
  85. package/features/keyValueStore/index.js +1 -3
  86. package/features/logger/LoggerService.js +41 -45
  87. package/features/logger/LoggerService.js.map +1 -1
  88. package/features/logger/abstractions.js +2 -2
  89. package/features/logger/abstractions.js.map +1 -1
  90. package/features/logger/feature.js +6 -5
  91. package/features/logger/feature.js.map +1 -1
  92. package/features/logger/index.js +0 -2
  93. package/features/masker/Masker.js +11 -14
  94. package/features/masker/Masker.js.map +1 -1
  95. package/features/masker/abstractions.js +2 -1
  96. package/features/masker/abstractions.js.map +1 -1
  97. package/features/masker/feature.js +7 -6
  98. package/features/masker/feature.js.map +1 -1
  99. package/features/masker/index.js +0 -2
  100. package/features/security/IdentityContext/AnonymousIdentity.js +12 -16
  101. package/features/security/IdentityContext/AnonymousIdentity.js.map +1 -1
  102. package/features/security/IdentityContext/AuthenticatedIdentity.js +5 -8
  103. package/features/security/IdentityContext/AuthenticatedIdentity.js.map +1 -1
  104. package/features/security/IdentityContext/Identity.js +63 -71
  105. package/features/security/IdentityContext/Identity.js.map +1 -1
  106. package/features/security/IdentityContext/IdentityContext.js +69 -106
  107. package/features/security/IdentityContext/IdentityContext.js.map +1 -1
  108. package/features/security/IdentityContext/abstractions.js +2 -2
  109. package/features/security/IdentityContext/abstractions.js.map +1 -1
  110. package/features/security/IdentityContext/feature.js +6 -5
  111. package/features/security/IdentityContext/feature.js.map +1 -1
  112. package/features/security/IdentityContext/index.js +0 -3
  113. package/features/security/SecurityFeature.js +13 -21
  114. package/features/security/SecurityFeature.js.map +1 -1
  115. package/features/security/apiKeys/CreateApiKey/CreateApiKeyUseCase.js +48 -49
  116. package/features/security/apiKeys/CreateApiKey/CreateApiKeyUseCase.js.map +1 -1
  117. package/features/security/apiKeys/CreateApiKey/abstractions.js +2 -2
  118. package/features/security/apiKeys/CreateApiKey/abstractions.js.map +1 -1
  119. package/features/security/apiKeys/CreateApiKey/events.js +17 -16
  120. package/features/security/apiKeys/CreateApiKey/events.js.map +1 -1
  121. package/features/security/apiKeys/CreateApiKey/feature.js +6 -5
  122. package/features/security/apiKeys/CreateApiKey/feature.js.map +1 -1
  123. package/features/security/apiKeys/CreateApiKey/index.js +0 -2
  124. package/features/security/apiKeys/DeleteApiKey/DeleteApiKeyUseCase.js +29 -30
  125. package/features/security/apiKeys/DeleteApiKey/DeleteApiKeyUseCase.js.map +1 -1
  126. package/features/security/apiKeys/DeleteApiKey/abstractions.js +2 -2
  127. package/features/security/apiKeys/DeleteApiKey/abstractions.js.map +1 -1
  128. package/features/security/apiKeys/DeleteApiKey/events.js +17 -16
  129. package/features/security/apiKeys/DeleteApiKey/events.js.map +1 -1
  130. package/features/security/apiKeys/DeleteApiKey/feature.js +6 -5
  131. package/features/security/apiKeys/DeleteApiKey/feature.js.map +1 -1
  132. package/features/security/apiKeys/DeleteApiKey/index.js +0 -2
  133. package/features/security/apiKeys/GetApiKey/GetApiKeyUseCase.js +16 -14
  134. package/features/security/apiKeys/GetApiKey/GetApiKeyUseCase.js.map +1 -1
  135. package/features/security/apiKeys/GetApiKey/abstractions.js +2 -2
  136. package/features/security/apiKeys/GetApiKey/abstractions.js.map +1 -1
  137. package/features/security/apiKeys/GetApiKey/feature.js +6 -5
  138. package/features/security/apiKeys/GetApiKey/feature.js.map +1 -1
  139. package/features/security/apiKeys/GetApiKey/index.js +0 -2
  140. package/features/security/apiKeys/GetApiKeyBySlug/GetApiKeyBySlugUseCase.js +13 -10
  141. package/features/security/apiKeys/GetApiKeyBySlug/GetApiKeyBySlugUseCase.js.map +1 -1
  142. package/features/security/apiKeys/GetApiKeyBySlug/abstractions.js +2 -2
  143. package/features/security/apiKeys/GetApiKeyBySlug/abstractions.js.map +1 -1
  144. package/features/security/apiKeys/GetApiKeyBySlug/feature.js +6 -5
  145. package/features/security/apiKeys/GetApiKeyBySlug/feature.js.map +1 -1
  146. package/features/security/apiKeys/GetApiKeyBySlug/index.js +0 -2
  147. package/features/security/apiKeys/GetApiKeyByToken/GetApiKeyByTokenUseCase.js +13 -10
  148. package/features/security/apiKeys/GetApiKeyByToken/GetApiKeyByTokenUseCase.js.map +1 -1
  149. package/features/security/apiKeys/GetApiKeyByToken/abstractions.js +2 -2
  150. package/features/security/apiKeys/GetApiKeyByToken/abstractions.js.map +1 -1
  151. package/features/security/apiKeys/GetApiKeyByToken/feature.js +6 -5
  152. package/features/security/apiKeys/GetApiKeyByToken/feature.js.map +1 -1
  153. package/features/security/apiKeys/GetApiKeyByToken/index.js +0 -2
  154. package/features/security/apiKeys/ListApiKeys/ListApiKeysUseCase.js +17 -17
  155. package/features/security/apiKeys/ListApiKeys/ListApiKeysUseCase.js.map +1 -1
  156. package/features/security/apiKeys/ListApiKeys/abstractions.js +2 -2
  157. package/features/security/apiKeys/ListApiKeys/abstractions.js.map +1 -1
  158. package/features/security/apiKeys/ListApiKeys/feature.js +6 -5
  159. package/features/security/apiKeys/ListApiKeys/feature.js.map +1 -1
  160. package/features/security/apiKeys/ListApiKeys/index.js +0 -2
  161. package/features/security/apiKeys/UpdateApiKey/UpdateApiKeyUseCase.js +39 -42
  162. package/features/security/apiKeys/UpdateApiKey/UpdateApiKeyUseCase.js.map +1 -1
  163. package/features/security/apiKeys/UpdateApiKey/abstractions.js +2 -2
  164. package/features/security/apiKeys/UpdateApiKey/abstractions.js.map +1 -1
  165. package/features/security/apiKeys/UpdateApiKey/events.js +17 -16
  166. package/features/security/apiKeys/UpdateApiKey/events.js.map +1 -1
  167. package/features/security/apiKeys/UpdateApiKey/feature.js +6 -5
  168. package/features/security/apiKeys/UpdateApiKey/feature.js.map +1 -1
  169. package/features/security/apiKeys/UpdateApiKey/index.js +0 -2
  170. package/features/security/apiKeys/feature.js +14 -16
  171. package/features/security/apiKeys/feature.js.map +1 -1
  172. package/features/security/apiKeys/shared/ApiKeyProvider.js +42 -42
  173. package/features/security/apiKeys/shared/ApiKeyProvider.js.map +1 -1
  174. package/features/security/apiKeys/shared/ApiKeysRepository.js +108 -135
  175. package/features/security/apiKeys/shared/ApiKeysRepository.js.map +1 -1
  176. package/features/security/apiKeys/shared/abstractions.js +4 -6
  177. package/features/security/apiKeys/shared/abstractions.js.map +1 -1
  178. package/features/security/apiKeys/shared/errors.js +29 -32
  179. package/features/security/apiKeys/shared/errors.js.map +1 -1
  180. package/features/security/apiKeys/shared/generateToken.js +6 -16
  181. package/features/security/apiKeys/shared/generateToken.js.map +1 -1
  182. package/features/security/apiKeys/shared/schemas.js +27 -23
  183. package/features/security/apiKeys/shared/schemas.js.map +1 -1
  184. package/features/security/apiKeys/shared/types.js +0 -3
  185. package/features/security/authentication/AuthenticationContext/AuthenticationContext.js +44 -38
  186. package/features/security/authentication/AuthenticationContext/AuthenticationContext.js.map +1 -1
  187. package/features/security/authentication/AuthenticationContext/SetIdTokenCookie.js +33 -43
  188. package/features/security/authentication/AuthenticationContext/SetIdTokenCookie.js.map +1 -1
  189. package/features/security/authentication/AuthenticationContext/abstractions.js +2 -2
  190. package/features/security/authentication/AuthenticationContext/abstractions.js.map +1 -1
  191. package/features/security/authentication/AuthenticationContext/errors.js +51 -116
  192. package/features/security/authentication/AuthenticationContext/errors.js.map +1 -1
  193. package/features/security/authentication/AuthenticationContext/events.js +17 -16
  194. package/features/security/authentication/AuthenticationContext/events.js.map +1 -1
  195. package/features/security/authentication/AuthenticationContext/feature.js +6 -5
  196. package/features/security/authentication/AuthenticationContext/feature.js.map +1 -1
  197. package/features/security/authentication/AuthenticationContext/index.js +2 -4
  198. package/features/security/authentication/Authenticator/abstractions.js +2 -2
  199. package/features/security/authentication/Authenticator/abstractions.js.map +1 -1
  200. package/features/security/authentication/Authenticator/index.js +0 -2
  201. package/features/security/authorization/AuthorizationContext/AuthorizationContext.js +46 -59
  202. package/features/security/authorization/AuthorizationContext/AuthorizationContext.js.map +1 -1
  203. package/features/security/authorization/AuthorizationContext/abstractions.js +3 -4
  204. package/features/security/authorization/AuthorizationContext/abstractions.js.map +1 -1
  205. package/features/security/authorization/AuthorizationContext/feature.js +10 -9
  206. package/features/security/authorization/AuthorizationContext/feature.js.map +1 -1
  207. package/features/security/authorization/AuthorizationContext/index.js +1 -4
  208. package/features/security/authorization/Authorizer/abstractions.js +2 -2
  209. package/features/security/authorization/Authorizer/abstractions.js.map +1 -1
  210. package/features/security/authorization/Authorizer/index.js +0 -2
  211. package/features/security/authorization/GroupsTeamsAuthorizer/GetPermissionsFromIdentity.js +60 -64
  212. package/features/security/authorization/GroupsTeamsAuthorizer/GetPermissionsFromIdentity.js.map +1 -1
  213. package/features/security/authorization/GroupsTeamsAuthorizer/RolesTeamsAuthorizer.js +26 -40
  214. package/features/security/authorization/GroupsTeamsAuthorizer/RolesTeamsAuthorizer.js.map +1 -1
  215. package/features/security/authorization/GroupsTeamsAuthorizer/abstractions.js +2 -1
  216. package/features/security/authorization/GroupsTeamsAuthorizer/abstractions.js.map +1 -1
  217. package/features/security/authorization/GroupsTeamsAuthorizer/feature.js +7 -6
  218. package/features/security/authorization/GroupsTeamsAuthorizer/feature.js.map +1 -1
  219. package/features/security/login/abstractions.js +9 -8
  220. package/features/security/login/abstractions.js.map +1 -1
  221. package/features/security/login/index.js +0 -2
  222. package/features/security/permissions/createPermissionSchema.js +6 -5
  223. package/features/security/permissions/createPermissionSchema.js.map +1 -1
  224. package/features/security/permissions/createPermissions.js +148 -236
  225. package/features/security/permissions/createPermissions.js.map +1 -1
  226. package/features/security/permissions/index.js +0 -2
  227. package/features/security/permissions/types.js +0 -3
  228. package/features/security/roles/CreateRole/CreateRoleUseCase.js +53 -59
  229. package/features/security/roles/CreateRole/CreateRoleUseCase.js.map +1 -1
  230. package/features/security/roles/CreateRole/abstractions.js +2 -2
  231. package/features/security/roles/CreateRole/abstractions.js.map +1 -1
  232. package/features/security/roles/CreateRole/events.js +17 -16
  233. package/features/security/roles/CreateRole/events.js.map +1 -1
  234. package/features/security/roles/CreateRole/feature.js +6 -5
  235. package/features/security/roles/CreateRole/feature.js.map +1 -1
  236. package/features/security/roles/CreateRole/index.js +0 -2
  237. package/features/security/roles/CreateRole/schema.js +8 -7
  238. package/features/security/roles/CreateRole/schema.js.map +1 -1
  239. package/features/security/roles/DeleteRole/DeleteRoleUseCase.js +35 -41
  240. package/features/security/roles/DeleteRole/DeleteRoleUseCase.js.map +1 -1
  241. package/features/security/roles/DeleteRole/abstractions.js +2 -2
  242. package/features/security/roles/DeleteRole/abstractions.js.map +1 -1
  243. package/features/security/roles/DeleteRole/events.js +17 -16
  244. package/features/security/roles/DeleteRole/events.js.map +1 -1
  245. package/features/security/roles/DeleteRole/feature.js +6 -5
  246. package/features/security/roles/DeleteRole/feature.js.map +1 -1
  247. package/features/security/roles/DeleteRole/index.js +0 -2
  248. package/features/security/roles/GetRole/GetRoleUseCase.js +19 -18
  249. package/features/security/roles/GetRole/GetRoleUseCase.js.map +1 -1
  250. package/features/security/roles/GetRole/abstractions.js +2 -2
  251. package/features/security/roles/GetRole/abstractions.js.map +1 -1
  252. package/features/security/roles/GetRole/feature.js +6 -5
  253. package/features/security/roles/GetRole/feature.js.map +1 -1
  254. package/features/security/roles/GetRole/index.js +0 -2
  255. package/features/security/roles/Installer/RolesInstaller.js +38 -35
  256. package/features/security/roles/Installer/RolesInstaller.js.map +1 -1
  257. package/features/security/roles/ListRoles/ListRolesUseCase.js +18 -17
  258. package/features/security/roles/ListRoles/ListRolesUseCase.js.map +1 -1
  259. package/features/security/roles/ListRoles/abstractions.js +2 -2
  260. package/features/security/roles/ListRoles/abstractions.js.map +1 -1
  261. package/features/security/roles/ListRoles/feature.js +6 -5
  262. package/features/security/roles/ListRoles/feature.js.map +1 -1
  263. package/features/security/roles/ListRoles/index.js +0 -2
  264. package/features/security/roles/UpdateRole/UpdateRoleUseCase.js +43 -50
  265. package/features/security/roles/UpdateRole/UpdateRoleUseCase.js.map +1 -1
  266. package/features/security/roles/UpdateRole/abstractions.js +2 -2
  267. package/features/security/roles/UpdateRole/abstractions.js.map +1 -1
  268. package/features/security/roles/UpdateRole/events.js +17 -16
  269. package/features/security/roles/UpdateRole/events.js.map +1 -1
  270. package/features/security/roles/UpdateRole/feature.js +6 -5
  271. package/features/security/roles/UpdateRole/feature.js.map +1 -1
  272. package/features/security/roles/UpdateRole/index.js +0 -2
  273. package/features/security/roles/UpdateRole/schema.js +7 -6
  274. package/features/security/roles/UpdateRole/schema.js.map +1 -1
  275. package/features/security/roles/feature.js +14 -18
  276. package/features/security/roles/feature.js.map +1 -1
  277. package/features/security/roles/shared/RoleProvider.js +27 -21
  278. package/features/security/roles/shared/RoleProvider.js.map +1 -1
  279. package/features/security/roles/shared/RolesRepository.js +96 -113
  280. package/features/security/roles/shared/RolesRepository.js.map +1 -1
  281. package/features/security/roles/shared/abstractions.js +3 -4
  282. package/features/security/roles/shared/abstractions.js.map +1 -1
  283. package/features/security/roles/shared/decorators/ListCache.js +23 -22
  284. package/features/security/roles/shared/decorators/ListCache.js.map +1 -1
  285. package/features/security/roles/shared/decorators/RolesRepositoryCachingDecorator.js +40 -62
  286. package/features/security/roles/shared/decorators/RolesRepositoryCachingDecorator.js.map +1 -1
  287. package/features/security/roles/shared/errors.js +50 -56
  288. package/features/security/roles/shared/errors.js.map +1 -1
  289. package/features/security/roles/shared/types.js +0 -3
  290. package/features/security/shared/abstractions.js +4 -6
  291. package/features/security/shared/abstractions.js.map +1 -1
  292. package/features/security/shared/errors.js +8 -8
  293. package/features/security/shared/errors.js.map +1 -1
  294. package/features/security/shared/index.js +0 -2
  295. package/features/security/teams/CreateTeam/CreateTeamUseCase.js +53 -59
  296. package/features/security/teams/CreateTeam/CreateTeamUseCase.js.map +1 -1
  297. package/features/security/teams/CreateTeam/abstractions.js +2 -2
  298. package/features/security/teams/CreateTeam/abstractions.js.map +1 -1
  299. package/features/security/teams/CreateTeam/events.js +17 -16
  300. package/features/security/teams/CreateTeam/events.js.map +1 -1
  301. package/features/security/teams/CreateTeam/feature.js +6 -5
  302. package/features/security/teams/CreateTeam/feature.js.map +1 -1
  303. package/features/security/teams/CreateTeam/index.js +0 -2
  304. package/features/security/teams/CreateTeam/schema.js +6 -5
  305. package/features/security/teams/CreateTeam/schema.js.map +1 -1
  306. package/features/security/teams/DeleteTeam/DeleteTeamUseCase.js +36 -46
  307. package/features/security/teams/DeleteTeam/DeleteTeamUseCase.js.map +1 -1
  308. package/features/security/teams/DeleteTeam/abstractions.js +2 -2
  309. package/features/security/teams/DeleteTeam/abstractions.js.map +1 -1
  310. package/features/security/teams/DeleteTeam/events.js +17 -16
  311. package/features/security/teams/DeleteTeam/events.js.map +1 -1
  312. package/features/security/teams/DeleteTeam/feature.js +6 -5
  313. package/features/security/teams/DeleteTeam/feature.js.map +1 -1
  314. package/features/security/teams/DeleteTeam/index.js +0 -2
  315. package/features/security/teams/GetTeam/GetTeamUseCase.js +17 -17
  316. package/features/security/teams/GetTeam/GetTeamUseCase.js.map +1 -1
  317. package/features/security/teams/GetTeam/abstractions.js +2 -2
  318. package/features/security/teams/GetTeam/abstractions.js.map +1 -1
  319. package/features/security/teams/GetTeam/feature.js +6 -5
  320. package/features/security/teams/GetTeam/feature.js.map +1 -1
  321. package/features/security/teams/GetTeam/index.js +0 -2
  322. package/features/security/teams/ListTeams/ListTeamsUseCase.js +20 -21
  323. package/features/security/teams/ListTeams/ListTeamsUseCase.js.map +1 -1
  324. package/features/security/teams/ListTeams/abstractions.js +2 -2
  325. package/features/security/teams/ListTeams/abstractions.js.map +1 -1
  326. package/features/security/teams/ListTeams/feature.js +6 -5
  327. package/features/security/teams/ListTeams/feature.js.map +1 -1
  328. package/features/security/teams/ListTeams/index.js +0 -2
  329. package/features/security/teams/UpdateTeam/UpdateTeamUseCase.js +46 -58
  330. package/features/security/teams/UpdateTeam/UpdateTeamUseCase.js.map +1 -1
  331. package/features/security/teams/UpdateTeam/abstractions.js +2 -2
  332. package/features/security/teams/UpdateTeam/abstractions.js.map +1 -1
  333. package/features/security/teams/UpdateTeam/events.js +17 -16
  334. package/features/security/teams/UpdateTeam/events.js.map +1 -1
  335. package/features/security/teams/UpdateTeam/feature.js +6 -5
  336. package/features/security/teams/UpdateTeam/feature.js.map +1 -1
  337. package/features/security/teams/UpdateTeam/index.js +0 -2
  338. package/features/security/teams/UpdateTeam/schema.js +5 -4
  339. package/features/security/teams/UpdateTeam/schema.js.map +1 -1
  340. package/features/security/teams/feature.js +13 -17
  341. package/features/security/teams/feature.js.map +1 -1
  342. package/features/security/teams/shared/TeamProvider.js +27 -21
  343. package/features/security/teams/shared/TeamProvider.js.map +1 -1
  344. package/features/security/teams/shared/TeamsRepository.js +100 -118
  345. package/features/security/teams/shared/TeamsRepository.js.map +1 -1
  346. package/features/security/teams/shared/abstractions.js +3 -4
  347. package/features/security/teams/shared/abstractions.js.map +1 -1
  348. package/features/security/teams/shared/decorators/TeamsRepositoryCachingDecorator.js +40 -62
  349. package/features/security/teams/shared/decorators/TeamsRepositoryCachingDecorator.js.map +1 -1
  350. package/features/security/teams/shared/errors.js +62 -70
  351. package/features/security/teams/shared/errors.js.map +1 -1
  352. package/features/security/teams/shared/types.js +0 -3
  353. package/features/security/utils/AppPermissions.js +50 -89
  354. package/features/security/utils/AppPermissions.js.map +1 -1
  355. package/features/security/utils/IdentityValue.js +19 -22
  356. package/features/security/utils/IdentityValue.js.map +1 -1
  357. package/features/security/utils/filterOutCustomWbyAppsPermissions.js +24 -27
  358. package/features/security/utils/filterOutCustomWbyAppsPermissions.js.map +1 -1
  359. package/features/security/utils/getPermissionsFromRoles.js +5 -10
  360. package/features/security/utils/getPermissionsFromRoles.js.map +1 -1
  361. package/features/security/utils/isJwt.js +2 -1
  362. package/features/security/utils/isJwt.js.map +1 -1
  363. package/features/security/utils/verifyJwtUsingJwk.js +6 -7
  364. package/features/security/utils/verifyJwtUsingJwk.js.map +1 -1
  365. package/features/system/InstallSystem/InstallSystemUseCase.js +45 -44
  366. package/features/system/InstallSystem/InstallSystemUseCase.js.map +1 -1
  367. package/features/system/InstallSystem/abstractions.js +3 -17
  368. package/features/system/InstallSystem/abstractions.js.map +1 -1
  369. package/features/system/InstallSystem/errors.js +15 -16
  370. package/features/system/InstallSystem/errors.js.map +1 -1
  371. package/features/system/InstallSystem/events.js +8 -5
  372. package/features/system/InstallSystem/events.js.map +1 -1
  373. package/features/system/InstallSystem/feature.js +6 -7
  374. package/features/system/InstallSystem/feature.js.map +1 -1
  375. package/features/system/InstallSystem/index.js +2 -6
  376. package/features/system/SystemFeature.js +6 -5
  377. package/features/system/SystemFeature.js.map +1 -1
  378. package/features/task/TaskController/abstractions.js +2 -10
  379. package/features/task/TaskController/abstractions.js.map +1 -1
  380. package/features/task/TaskController/index.js +0 -2
  381. package/features/task/TaskDefinition/abstractions.js +8 -40
  382. package/features/task/TaskDefinition/abstractions.js.map +1 -1
  383. package/features/task/TaskDefinition/index.js +0 -2
  384. package/features/task/TaskService/abstractions.js +9 -13
  385. package/features/task/TaskService/abstractions.js.map +1 -1
  386. package/features/task/TaskService/index.js +0 -2
  387. package/features/tenancy/CreateTenant/CreateTenantGateway.js +14 -11
  388. package/features/tenancy/CreateTenant/CreateTenantGateway.js.map +1 -1
  389. package/features/tenancy/CreateTenant/CreateTenantRepository.js +18 -15
  390. package/features/tenancy/CreateTenant/CreateTenantRepository.js.map +1 -1
  391. package/features/tenancy/CreateTenant/CreateTenantUseCase.js +44 -41
  392. package/features/tenancy/CreateTenant/CreateTenantUseCase.js.map +1 -1
  393. package/features/tenancy/CreateTenant/abstractions.js +6 -29
  394. package/features/tenancy/CreateTenant/abstractions.js.map +1 -1
  395. package/features/tenancy/CreateTenant/decorators/CreateTenantWithWcpIncrement.js +16 -15
  396. package/features/tenancy/CreateTenant/decorators/CreateTenantWithWcpIncrement.js.map +1 -1
  397. package/features/tenancy/CreateTenant/errors.js +8 -8
  398. package/features/tenancy/CreateTenant/errors.js.map +1 -1
  399. package/features/tenancy/CreateTenant/events.js +16 -11
  400. package/features/tenancy/CreateTenant/events.js.map +1 -1
  401. package/features/tenancy/CreateTenant/feature.js +9 -8
  402. package/features/tenancy/CreateTenant/feature.js.map +1 -1
  403. package/features/tenancy/CreateTenant/index.js +2 -4
  404. package/features/tenancy/DeleteTenant/DeleteTenantGateway.js +15 -12
  405. package/features/tenancy/DeleteTenant/DeleteTenantGateway.js.map +1 -1
  406. package/features/tenancy/DeleteTenant/DeleteTenantRepository.js +22 -19
  407. package/features/tenancy/DeleteTenant/DeleteTenantRepository.js.map +1 -1
  408. package/features/tenancy/DeleteTenant/DeleteTenantUseCase.js +29 -27
  409. package/features/tenancy/DeleteTenant/DeleteTenantUseCase.js.map +1 -1
  410. package/features/tenancy/DeleteTenant/abstractions.js +6 -10
  411. package/features/tenancy/DeleteTenant/abstractions.js.map +1 -1
  412. package/features/tenancy/DeleteTenant/decorators/DeleteTenantWithWcpDecrement.js +16 -13
  413. package/features/tenancy/DeleteTenant/decorators/DeleteTenantWithWcpDecrement.js.map +1 -1
  414. package/features/tenancy/DeleteTenant/events.js +16 -11
  415. package/features/tenancy/DeleteTenant/events.js.map +1 -1
  416. package/features/tenancy/DeleteTenant/feature.js +9 -8
  417. package/features/tenancy/DeleteTenant/feature.js.map +1 -1
  418. package/features/tenancy/DeleteTenant/index.js +2 -4
  419. package/features/tenancy/GetRootTenant/GetRootTenantUseCase.js +15 -12
  420. package/features/tenancy/GetRootTenant/GetRootTenantUseCase.js.map +1 -1
  421. package/features/tenancy/GetRootTenant/abstractions.js +2 -4
  422. package/features/tenancy/GetRootTenant/abstractions.js.map +1 -1
  423. package/features/tenancy/GetRootTenant/feature.js +6 -5
  424. package/features/tenancy/GetRootTenant/feature.js.map +1 -1
  425. package/features/tenancy/GetRootTenant/index.js +0 -2
  426. package/features/tenancy/GetTenantById/GetTenantByIdGateway.js +17 -12
  427. package/features/tenancy/GetTenantById/GetTenantByIdGateway.js.map +1 -1
  428. package/features/tenancy/GetTenantById/GetTenantByIdRepository.js +18 -19
  429. package/features/tenancy/GetTenantById/GetTenantByIdRepository.js.map +1 -1
  430. package/features/tenancy/GetTenantById/GetTenantByIdUseCase.js +17 -17
  431. package/features/tenancy/GetTenantById/GetTenantByIdUseCase.js.map +1 -1
  432. package/features/tenancy/GetTenantById/abstractions.js +4 -6
  433. package/features/tenancy/GetTenantById/abstractions.js.map +1 -1
  434. package/features/tenancy/GetTenantById/feature.js +8 -12
  435. package/features/tenancy/GetTenantById/feature.js.map +1 -1
  436. package/features/tenancy/GetTenantById/index.js +1 -3
  437. package/features/tenancy/InstallTenant/DependencyResolver.js +53 -65
  438. package/features/tenancy/InstallTenant/DependencyResolver.js.map +1 -1
  439. package/features/tenancy/InstallTenant/InstallTenantUseCase.js +95 -113
  440. package/features/tenancy/InstallTenant/InstallTenantUseCase.js.map +1 -1
  441. package/features/tenancy/InstallTenant/abstractions.js +4 -15
  442. package/features/tenancy/InstallTenant/abstractions.js.map +1 -1
  443. package/features/tenancy/InstallTenant/errors.js +15 -16
  444. package/features/tenancy/InstallTenant/errors.js.map +1 -1
  445. package/features/tenancy/InstallTenant/events.js +8 -5
  446. package/features/tenancy/InstallTenant/events.js.map +1 -1
  447. package/features/tenancy/InstallTenant/feature.js +6 -5
  448. package/features/tenancy/InstallTenant/feature.js.map +1 -1
  449. package/features/tenancy/InstallTenant/index.js +1 -3
  450. package/features/tenancy/ListTenants/ListTenantsGateway.js +14 -11
  451. package/features/tenancy/ListTenants/ListTenantsGateway.js.map +1 -1
  452. package/features/tenancy/ListTenants/ListTenantsRepository.js +14 -12
  453. package/features/tenancy/ListTenants/ListTenantsRepository.js.map +1 -1
  454. package/features/tenancy/ListTenants/ListTenantsUseCase.js +16 -14
  455. package/features/tenancy/ListTenants/ListTenantsUseCase.js.map +1 -1
  456. package/features/tenancy/ListTenants/abstractions.js +4 -12
  457. package/features/tenancy/ListTenants/abstractions.js.map +1 -1
  458. package/features/tenancy/ListTenants/feature.js +8 -7
  459. package/features/tenancy/ListTenants/feature.js.map +1 -1
  460. package/features/tenancy/ListTenants/index.js +1 -3
  461. package/features/tenancy/TenancyFeature.js +20 -26
  462. package/features/tenancy/TenancyFeature.js.map +1 -1
  463. package/features/tenancy/TenantContext/TenantContext.js +46 -48
  464. package/features/tenancy/TenantContext/TenantContext.js.map +1 -1
  465. package/features/tenancy/TenantContext/abstractions.js +2 -2
  466. package/features/tenancy/TenantContext/abstractions.js.map +1 -1
  467. package/features/tenancy/TenantContext/errors.js +7 -7
  468. package/features/tenancy/TenantContext/errors.js.map +1 -1
  469. package/features/tenancy/TenantContext/feature.js +6 -5
  470. package/features/tenancy/TenantContext/feature.js.map +1 -1
  471. package/features/tenancy/TenantContext/index.js +0 -2
  472. package/features/tenancy/UpdateTenant/UpdateTenantGateway.js +14 -11
  473. package/features/tenancy/UpdateTenant/UpdateTenantGateway.js.map +1 -1
  474. package/features/tenancy/UpdateTenant/UpdateTenantRepository.js +19 -16
  475. package/features/tenancy/UpdateTenant/UpdateTenantRepository.js.map +1 -1
  476. package/features/tenancy/UpdateTenant/UpdateTenantUseCase.js +37 -36
  477. package/features/tenancy/UpdateTenant/UpdateTenantUseCase.js.map +1 -1
  478. package/features/tenancy/UpdateTenant/abstractions.js +6 -10
  479. package/features/tenancy/UpdateTenant/abstractions.js.map +1 -1
  480. package/features/tenancy/UpdateTenant/events.js +16 -11
  481. package/features/tenancy/UpdateTenant/events.js.map +1 -1
  482. package/features/tenancy/UpdateTenant/feature.js +8 -7
  483. package/features/tenancy/UpdateTenant/feature.js.map +1 -1
  484. package/features/tenancy/UpdateTenant/index.js +2 -4
  485. package/features/tenancy/shared/TenantCache.js +18 -17
  486. package/features/tenancy/shared/TenantCache.js.map +1 -1
  487. package/features/tenancy/shared/abstractions.js +2 -1
  488. package/features/tenancy/shared/abstractions.js.map +1 -1
  489. package/features/tenancy/shared/storageOperations.js +2 -5
  490. package/features/tenancy/shared/storageOperations.js.map +1 -1
  491. package/features/users/AdminUsersFeature.js +15 -19
  492. package/features/users/AdminUsersFeature.js.map +1 -1
  493. package/features/users/CreateUser/CreateUserUseCase.js +65 -100
  494. package/features/users/CreateUser/CreateUserUseCase.js.map +1 -1
  495. package/features/users/CreateUser/abstractions.js +2 -13
  496. package/features/users/CreateUser/abstractions.js.map +1 -1
  497. package/features/users/CreateUser/decorators/CreateUserWithWcpIncrement.js +16 -15
  498. package/features/users/CreateUser/decorators/CreateUserWithWcpIncrement.js.map +1 -1
  499. package/features/users/CreateUser/events.js +17 -18
  500. package/features/users/CreateUser/events.js.map +1 -1
  501. package/features/users/CreateUser/feature.js +7 -6
  502. package/features/users/CreateUser/feature.js.map +1 -1
  503. package/features/users/CreateUser/index.js +0 -2
  504. package/features/users/CreateUser/schema.js +14 -18
  505. package/features/users/CreateUser/schema.js.map +1 -1
  506. package/features/users/DeleteUser/DeleteUserUseCase.js +35 -50
  507. package/features/users/DeleteUser/DeleteUserUseCase.js.map +1 -1
  508. package/features/users/DeleteUser/abstractions.js +2 -13
  509. package/features/users/DeleteUser/abstractions.js.map +1 -1
  510. package/features/users/DeleteUser/decorators/DeleteUserWithWcpDecrement.js +15 -16
  511. package/features/users/DeleteUser/decorators/DeleteUserWithWcpDecrement.js.map +1 -1
  512. package/features/users/DeleteUser/errors.js +7 -7
  513. package/features/users/DeleteUser/errors.js.map +1 -1
  514. package/features/users/DeleteUser/events.js +17 -18
  515. package/features/users/DeleteUser/events.js.map +1 -1
  516. package/features/users/DeleteUser/feature.js +7 -6
  517. package/features/users/DeleteUser/feature.js.map +1 -1
  518. package/features/users/DeleteUser/index.js +0 -2
  519. package/features/users/ExternalIdpUserSync/ExternalIdpUserSyncHandler.js +60 -74
  520. package/features/users/ExternalIdpUserSync/ExternalIdpUserSyncHandler.js.map +1 -1
  521. package/features/users/ExternalIdpUserSync/feature.js +6 -5
  522. package/features/users/ExternalIdpUserSync/feature.js.map +1 -1
  523. package/features/users/ExternalIdpUserSync/index.js +0 -2
  524. package/features/users/GetIdentityProfile/GetIdentityProfileUseCase.js +29 -39
  525. package/features/users/GetIdentityProfile/GetIdentityProfileUseCase.js.map +1 -1
  526. package/features/users/GetIdentityProfile/abstractions.js +2 -11
  527. package/features/users/GetIdentityProfile/abstractions.js.map +1 -1
  528. package/features/users/GetIdentityProfile/feature.js +6 -5
  529. package/features/users/GetIdentityProfile/feature.js.map +1 -1
  530. package/features/users/GetIdentityProfile/index.js +0 -2
  531. package/features/users/GetIdentityProfile/types.js +0 -3
  532. package/features/users/GetUser/GetUserUseCase.js +19 -23
  533. package/features/users/GetUser/GetUserUseCase.js.map +1 -1
  534. package/features/users/GetUser/abstractions.js +2 -11
  535. package/features/users/GetUser/abstractions.js.map +1 -1
  536. package/features/users/GetUser/feature.js +6 -5
  537. package/features/users/GetUser/feature.js.map +1 -1
  538. package/features/users/GetUser/index.js +0 -2
  539. package/features/users/ListUserTeams/ListUserTeamsUseCase.js +33 -42
  540. package/features/users/ListUserTeams/ListUserTeamsUseCase.js.map +1 -1
  541. package/features/users/ListUserTeams/abstractions.js +2 -11
  542. package/features/users/ListUserTeams/abstractions.js.map +1 -1
  543. package/features/users/ListUserTeams/feature.js +6 -5
  544. package/features/users/ListUserTeams/feature.js.map +1 -1
  545. package/features/users/ListUserTeams/index.js +0 -2
  546. package/features/users/ListUsers/ListUsersUseCase.js +19 -23
  547. package/features/users/ListUsers/ListUsersUseCase.js.map +1 -1
  548. package/features/users/ListUsers/abstractions.js +2 -11
  549. package/features/users/ListUsers/abstractions.js.map +1 -1
  550. package/features/users/ListUsers/feature.js +6 -5
  551. package/features/users/ListUsers/feature.js.map +1 -1
  552. package/features/users/ListUsers/index.js +0 -2
  553. package/features/users/UpdateUser/UpdateUserUseCase.js +52 -74
  554. package/features/users/UpdateUser/UpdateUserUseCase.js.map +1 -1
  555. package/features/users/UpdateUser/abstractions.js +2 -13
  556. package/features/users/UpdateUser/abstractions.js.map +1 -1
  557. package/features/users/UpdateUser/events.js +17 -18
  558. package/features/users/UpdateUser/events.js.map +1 -1
  559. package/features/users/UpdateUser/feature.js +6 -5
  560. package/features/users/UpdateUser/feature.js.map +1 -1
  561. package/features/users/UpdateUser/index.js +0 -2
  562. package/features/users/UpdateUser/schema.js +11 -10
  563. package/features/users/UpdateUser/schema.js.map +1 -1
  564. package/features/users/shared/AdminUsersRepository.js +104 -112
  565. package/features/users/shared/AdminUsersRepository.js.map +1 -1
  566. package/features/users/shared/abstractions.js +2 -9
  567. package/features/users/shared/abstractions.js.map +1 -1
  568. package/features/users/shared/errors.js +40 -46
  569. package/features/users/shared/errors.js.map +1 -1
  570. package/features/users/shared/loaders.js +52 -66
  571. package/features/users/shared/loaders.js.map +1 -1
  572. package/features/users/shared/storageAbstractions.js +2 -2
  573. package/features/users/shared/storageAbstractions.js.map +1 -1
  574. package/features/users/shared/types.js +0 -3
  575. package/features/wcp/WcpContext/WcpContext.js +138 -142
  576. package/features/wcp/WcpContext/WcpContext.js.map +1 -1
  577. package/features/wcp/WcpContext/abstractions.js +2 -6
  578. package/features/wcp/WcpContext/abstractions.js.map +1 -1
  579. package/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.js +135 -134
  580. package/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.js.map +1 -1
  581. package/features/wcp/WcpContext/feature.js +6 -5
  582. package/features/wcp/WcpContext/feature.js.map +1 -1
  583. package/features/wcp/WcpContext/index.js +0 -2
  584. package/features/wcp/WcpContext/types.js +0 -3
  585. package/features/wcp/WcpContext/utils.js +35 -53
  586. package/features/wcp/WcpContext/utils.js.map +1 -1
  587. package/features/wcp/WcpFeature.js +7 -6
  588. package/features/wcp/WcpFeature.js.map +1 -1
  589. package/features/webhooks/Webhook/WebhookProvider.d.ts +12 -0
  590. package/features/webhooks/Webhook/WebhookProvider.js +28 -0
  591. package/features/webhooks/Webhook/WebhookProvider.js.map +1 -0
  592. package/features/webhooks/Webhook/abstractions/WebhookFactory.d.ts +14 -0
  593. package/features/webhooks/Webhook/abstractions/WebhookFactory.js +5 -0
  594. package/features/webhooks/Webhook/abstractions/WebhookFactory.js.map +1 -0
  595. package/features/webhooks/Webhook/abstractions/WebhookProvider.d.ts +9 -0
  596. package/features/webhooks/Webhook/abstractions/WebhookProvider.js +5 -0
  597. package/features/webhooks/Webhook/abstractions/WebhookProvider.js.map +1 -0
  598. package/features/webhooks/Webhook/feature.d.ts +4 -0
  599. package/features/webhooks/Webhook/feature.js +11 -0
  600. package/features/webhooks/Webhook/feature.js.map +1 -0
  601. package/features/webhooks/Webhook/index.d.ts +2 -0
  602. package/features/webhooks/Webhook/index.js +2 -0
  603. package/features/webhooks/WebhookDispatcher/NullWebhookDispatcher.d.ts +8 -0
  604. package/features/webhooks/WebhookDispatcher/NullWebhookDispatcher.js +11 -0
  605. package/features/webhooks/WebhookDispatcher/NullWebhookDispatcher.js.map +1 -0
  606. package/features/webhooks/WebhookDispatcher/abstractions.d.ts +12 -0
  607. package/features/webhooks/WebhookDispatcher/abstractions.js +5 -0
  608. package/features/webhooks/WebhookDispatcher/abstractions.js.map +1 -0
  609. package/features/webhooks/WebhookSignPayload/abstractions.d.ts +14 -0
  610. package/features/webhooks/WebhookSignPayload/abstractions.js +5 -0
  611. package/features/webhooks/WebhookSignPayload/abstractions.js.map +1 -0
  612. package/features/webhooks/WebhookVerifyPayload/abstractions.d.ts +11 -0
  613. package/features/webhooks/WebhookVerifyPayload/abstractions.js +5 -0
  614. package/features/webhooks/WebhookVerifyPayload/abstractions.js.map +1 -0
  615. package/features/webhooks/index.d.ts +5 -0
  616. package/features/webhooks/index.js +5 -0
  617. package/graphql/security/NotAuthorizedResponse.js +11 -14
  618. package/graphql/security/NotAuthorizedResponse.js.map +1 -1
  619. package/graphql/security/ProfileMapper.js +12 -11
  620. package/graphql/security/ProfileMapper.js.map +1 -1
  621. package/graphql/security/apiKey.gql.js +38 -47
  622. package/graphql/security/apiKey.gql.js.map +1 -1
  623. package/graphql/security/base.gql.js +11 -10
  624. package/graphql/security/base.gql.js.map +1 -1
  625. package/graphql/security/identity.gql.js +87 -97
  626. package/graphql/security/identity.gql.js.map +1 -1
  627. package/graphql/security/index.js +13 -8
  628. package/graphql/security/index.js.map +1 -1
  629. package/graphql/security/role.gql.js +49 -57
  630. package/graphql/security/role.gql.js.map +1 -1
  631. package/graphql/security/team.gql.js +61 -69
  632. package/graphql/security/team.gql.js.map +1 -1
  633. package/graphql/system/createSystemGraphQL.js +31 -34
  634. package/graphql/system/createSystemGraphQL.js.map +1 -1
  635. package/graphql/users/user.gql.js +87 -105
  636. package/graphql/users/user.gql.js.map +1 -1
  637. package/graphql/wcp/graphql.js +25 -28
  638. package/graphql/wcp/graphql.js.map +1 -1
  639. package/idp/JwksCache.js +22 -28
  640. package/idp/JwksCache.js.map +1 -1
  641. package/idp/JwtAuthenticator.js +34 -46
  642. package/idp/JwtAuthenticator.js.map +1 -1
  643. package/idp/OidcJwtIdentityProvider.js +55 -82
  644. package/idp/OidcJwtIdentityProvider.js.map +1 -1
  645. package/idp/abstractions.js +5 -14
  646. package/idp/abstractions.js.map +1 -1
  647. package/idp/feature.js +8 -7
  648. package/idp/feature.js.map +1 -1
  649. package/idp/index.js +1 -3
  650. package/idp/types.js +0 -3
  651. package/index.js +0 -2
  652. package/legacy/security/LegacyContext.js +133 -186
  653. package/legacy/security/LegacyContext.js.map +1 -1
  654. package/legacy/security/createSecurityContext.js +5 -9
  655. package/legacy/security/createSecurityContext.js.map +1 -1
  656. package/legacy/security/plugins/apiKeyAuthentication.js +15 -24
  657. package/legacy/security/plugins/apiKeyAuthentication.js.map +1 -1
  658. package/legacy/security/plugins/apiKeyAuthorization.js +9 -18
  659. package/legacy/security/plugins/apiKeyAuthorization.js.map +1 -1
  660. package/legacy/security/plugins/authenticateUsingCookie.js +18 -22
  661. package/legacy/security/plugins/authenticateUsingCookie.js.map +1 -1
  662. package/legacy/security/plugins/authenticateUsingHttpHeader.d.ts +1 -1
  663. package/legacy/security/plugins/authenticateUsingHttpHeader.js +15 -18
  664. package/legacy/security/plugins/authenticateUsingHttpHeader.js.map +1 -1
  665. package/legacy/security/plugins/secureHeaders.js +28 -21
  666. package/legacy/security/plugins/secureHeaders.js.map +1 -1
  667. package/legacy/tenancy/LegacyContext.js +45 -52
  668. package/legacy/tenancy/LegacyContext.js.map +1 -1
  669. package/legacy/tenancy/createTenancyContext.js +22 -42
  670. package/legacy/tenancy/createTenancyContext.js.map +1 -1
  671. package/legacy/users/LegacyContext.js +39 -54
  672. package/legacy/users/LegacyContext.js.map +1 -1
  673. package/legacy/users/createAdminUsersContext.js +7 -7
  674. package/legacy/users/createAdminUsersContext.js.map +1 -1
  675. package/legacy/wcp/LegacyWcpContext.js +80 -79
  676. package/legacy/wcp/LegacyWcpContext.js.map +1 -1
  677. package/legacy/wcp/context.d.ts +1 -3
  678. package/legacy/wcp/context.js +33 -37
  679. package/legacy/wcp/context.js.map +1 -1
  680. package/models/base/BaseModel.js +51 -56
  681. package/models/base/BaseModel.js.map +1 -1
  682. package/models/base/ModelBuilder.js +65 -78
  683. package/models/base/ModelBuilder.js.map +1 -1
  684. package/models/base/ModelFactory.js +0 -3
  685. package/models/base/__tests__/ModelBuilder.test.js +437 -454
  686. package/models/base/__tests__/ModelBuilder.test.js.map +1 -1
  687. package/models/base/abstractions.js +0 -3
  688. package/models/cms/FieldBuilder.js +112 -121
  689. package/models/cms/FieldBuilder.js.map +1 -1
  690. package/models/cms/FieldBuilderRegistry.js +13 -12
  691. package/models/cms/FieldBuilderRegistry.js.map +1 -1
  692. package/models/cms/FieldDefinitionsBuilder.js +37 -54
  693. package/models/cms/FieldDefinitionsBuilder.js.map +1 -1
  694. package/models/cms/PrivateCmsModelBuilder.js +84 -89
  695. package/models/cms/PrivateCmsModelBuilder.js.map +1 -1
  696. package/models/cms/PrivatePage/Page.fields.js +7 -6
  697. package/models/cms/PrivatePage/Page.fields.js.map +1 -1
  698. package/models/cms/PrivatePage/PageModelBuilder.js +18 -15
  699. package/models/cms/PrivatePage/PageModelBuilder.js.map +1 -1
  700. package/models/cms/PrivatePage/PageModelFactory.js +20 -25
  701. package/models/cms/PrivatePage/PageModelFactory.js.map +1 -1
  702. package/models/cms/PrivatePage/__tests__/PageModelFactory.test.js +218 -234
  703. package/models/cms/PrivatePage/__tests__/PageModelFactory.test.js.map +1 -1
  704. package/models/cms/PrivatePage/__tests__/PagePublishingDecorator.js +33 -36
  705. package/models/cms/PrivatePage/__tests__/PagePublishingDecorator.js.map +1 -1
  706. package/models/cms/PrivatePage/__tests__/PageSeoDecorator.js +25 -26
  707. package/models/cms/PrivatePage/__tests__/PageSeoDecorator.js.map +1 -1
  708. package/models/cms/PrivatePage/abstractions.js +3 -9
  709. package/models/cms/PrivatePage/abstractions.js.map +1 -1
  710. package/models/cms/__tests__/PrivateCmsModelBuilder.test.js +173 -185
  711. package/models/cms/__tests__/PrivateCmsModelBuilder.test.js.map +1 -1
  712. package/models/cms/abstractions.js +3 -20
  713. package/models/cms/abstractions.js.map +1 -1
  714. package/models/cms/types.js +0 -3
  715. package/models/simple/Page/PageModelBuilder.js +15 -14
  716. package/models/simple/Page/PageModelBuilder.js.map +1 -1
  717. package/models/simple/Page/PageModelFactory.js +16 -15
  718. package/models/simple/Page/PageModelFactory.js.map +1 -1
  719. package/models/simple/Page/__tests__/PageModelBuilderDecorator.js +21 -20
  720. package/models/simple/Page/__tests__/PageModelBuilderDecorator.js.map +1 -1
  721. package/models/simple/Page/__tests__/PageModelBuilderDecorator2.js +17 -16
  722. package/models/simple/Page/__tests__/PageModelBuilderDecorator2.js.map +1 -1
  723. package/models/simple/Page/__tests__/PageModelFactory.test.js +28 -28
  724. package/models/simple/Page/__tests__/PageModelFactory.test.js.map +1 -1
  725. package/models/simple/Page/abstractions.js +9 -8
  726. package/models/simple/Page/abstractions.js.map +1 -1
  727. package/package.json +22 -22
  728. package/types/core.js +0 -3
  729. package/types/security.js +0 -3
  730. package/types/tenancy.js +0 -3
  731. package/types/users.js +0 -3
  732. package/domain/tenancy/errors.js.map +0 -1
  733. package/exports/api/build-params.js.map +0 -1
  734. package/exports/api/event-publisher.js.map +0 -1
  735. package/exports/api/graphql.js.map +0 -1
  736. package/exports/api/key-value-store.js.map +0 -1
  737. package/exports/api/logger.js.map +0 -1
  738. package/exports/api/security/api-key.js.map +0 -1
  739. package/exports/api/security/authentication.js.map +0 -1
  740. package/exports/api/security/role.js.map +0 -1
  741. package/exports/api/security/user.js.map +0 -1
  742. package/exports/api/security.js.map +0 -1
  743. package/exports/api/system.js.map +0 -1
  744. package/exports/api/tasks.js.map +0 -1
  745. package/exports/api/tenancy.js.map +0 -1
  746. package/exports/api.js.map +0 -1
  747. package/features/ai/index.js.map +0 -1
  748. package/features/buildParams/index.js.map +0 -1
  749. package/features/encryption/index.js.map +0 -1
  750. package/features/eventPublisher/index.js.map +0 -1
  751. package/features/keyValueStore/index.js.map +0 -1
  752. package/features/logger/index.js.map +0 -1
  753. package/features/masker/index.js.map +0 -1
  754. package/features/security/IdentityContext/index.js.map +0 -1
  755. package/features/security/apiKeys/CreateApiKey/index.js.map +0 -1
  756. package/features/security/apiKeys/DeleteApiKey/index.js.map +0 -1
  757. package/features/security/apiKeys/GetApiKey/index.js.map +0 -1
  758. package/features/security/apiKeys/GetApiKeyBySlug/index.js.map +0 -1
  759. package/features/security/apiKeys/GetApiKeyByToken/index.js.map +0 -1
  760. package/features/security/apiKeys/ListApiKeys/index.js.map +0 -1
  761. package/features/security/apiKeys/UpdateApiKey/index.js.map +0 -1
  762. package/features/security/apiKeys/shared/types.js.map +0 -1
  763. package/features/security/authentication/AuthenticationContext/index.js.map +0 -1
  764. package/features/security/authentication/Authenticator/index.js.map +0 -1
  765. package/features/security/authorization/AuthorizationContext/index.js.map +0 -1
  766. package/features/security/authorization/Authorizer/index.js.map +0 -1
  767. package/features/security/login/index.js.map +0 -1
  768. package/features/security/permissions/index.js.map +0 -1
  769. package/features/security/permissions/types.js.map +0 -1
  770. package/features/security/roles/CreateRole/index.js.map +0 -1
  771. package/features/security/roles/DeleteRole/index.js.map +0 -1
  772. package/features/security/roles/GetRole/index.js.map +0 -1
  773. package/features/security/roles/ListRoles/index.js.map +0 -1
  774. package/features/security/roles/UpdateRole/index.js.map +0 -1
  775. package/features/security/roles/shared/types.js.map +0 -1
  776. package/features/security/shared/index.js.map +0 -1
  777. package/features/security/teams/CreateTeam/index.js.map +0 -1
  778. package/features/security/teams/DeleteTeam/index.js.map +0 -1
  779. package/features/security/teams/GetTeam/index.js.map +0 -1
  780. package/features/security/teams/ListTeams/index.js.map +0 -1
  781. package/features/security/teams/UpdateTeam/index.js.map +0 -1
  782. package/features/security/teams/shared/types.js.map +0 -1
  783. package/features/system/InstallSystem/index.js.map +0 -1
  784. package/features/task/TaskController/index.js.map +0 -1
  785. package/features/task/TaskDefinition/index.js.map +0 -1
  786. package/features/task/TaskService/index.js.map +0 -1
  787. package/features/tenancy/CreateTenant/index.js.map +0 -1
  788. package/features/tenancy/DeleteTenant/index.js.map +0 -1
  789. package/features/tenancy/GetRootTenant/index.js.map +0 -1
  790. package/features/tenancy/GetTenantById/index.js.map +0 -1
  791. package/features/tenancy/InstallTenant/index.js.map +0 -1
  792. package/features/tenancy/ListTenants/index.js.map +0 -1
  793. package/features/tenancy/TenantContext/index.js.map +0 -1
  794. package/features/tenancy/UpdateTenant/index.js.map +0 -1
  795. package/features/users/CreateUser/index.js.map +0 -1
  796. package/features/users/DeleteUser/index.js.map +0 -1
  797. package/features/users/ExternalIdpUserSync/index.js.map +0 -1
  798. package/features/users/GetIdentityProfile/index.js.map +0 -1
  799. package/features/users/GetIdentityProfile/types.js.map +0 -1
  800. package/features/users/GetUser/index.js.map +0 -1
  801. package/features/users/ListUserTeams/index.js.map +0 -1
  802. package/features/users/ListUsers/index.js.map +0 -1
  803. package/features/users/UpdateUser/index.js.map +0 -1
  804. package/features/users/shared/types.js.map +0 -1
  805. package/features/wcp/WcpContext/index.js.map +0 -1
  806. package/features/wcp/WcpContext/types.js.map +0 -1
  807. package/idp/index.js.map +0 -1
  808. package/idp/types.js.map +0 -1
  809. package/index.js.map +0 -1
  810. package/models/base/ModelFactory.js.map +0 -1
  811. package/models/base/abstractions.js.map +0 -1
  812. package/models/cms/types.js.map +0 -1
  813. package/types/core.js.map +0 -1
  814. package/types/security.js.map +0 -1
  815. package/types/tenancy.js.map +0 -1
  816. package/types/users.js.map +0 -1
@@ -2,10 +2,9 @@ import { GraphQLSchemaPlugin } from "@webiny/handler-graphql/plugins/index.js";
2
2
  import { ErrorResponse, Response } from "@webiny/handler-graphql";
3
3
  import { GetRootTenantUseCase } from "../../features/tenancy/GetRootTenant/index.js";
4
4
  import { InstallSystemUseCase } from "../../features/system/InstallSystem/index.js";
5
- const emptyResolver = () => ({});
6
- export const createSystemGraphQL = () => {
7
- return new GraphQLSchemaPlugin({
8
- typeDefs: /* GraphQL */`
5
+ const emptyResolver = ()=>({});
6
+ const createSystemGraphQL = ()=>new GraphQLSchemaPlugin({
7
+ typeDefs: `
9
8
  type SystemQuery {
10
9
  isSystemInstalled: BooleanResponse
11
10
  }
@@ -22,36 +21,34 @@ export const createSystemGraphQL = () => {
22
21
  system: SystemMutation
23
22
  }
24
23
  `,
25
- resolvers: {
26
- Query: {
27
- system: emptyResolver
28
- },
29
- Mutation: {
30
- system: emptyResolver
31
- },
32
- SystemQuery: {
33
- isSystemInstalled: async (_, __, context) => {
34
- const getRootTenant = context.container.resolve(GetRootTenantUseCase);
35
- const result = await getRootTenant.execute();
36
- return new Response(result.isOk());
37
- }
38
- },
39
- SystemMutation: {
40
- installSystem: async (_, args, context) => {
41
- const installSystem = context.container.resolve(InstallSystemUseCase);
42
- const result = await installSystem.execute(args.installationInput);
43
- if (result.isOk()) {
44
- return new Response(true);
45
- }
46
- return new ErrorResponse({
47
- code: result.error.code,
48
- message: result.error.message,
49
- data: result.error.data
50
- });
24
+ resolvers: {
25
+ Query: {
26
+ system: emptyResolver
27
+ },
28
+ Mutation: {
29
+ system: emptyResolver
30
+ },
31
+ SystemQuery: {
32
+ isSystemInstalled: async (_, __, context)=>{
33
+ const getRootTenant = context.container.resolve(GetRootTenantUseCase);
34
+ const result = await getRootTenant.execute();
35
+ return new Response(result.isOk());
36
+ }
37
+ },
38
+ SystemMutation: {
39
+ installSystem: async (_, args, context)=>{
40
+ const installSystem = context.container.resolve(InstallSystemUseCase);
41
+ const result = await installSystem.execute(args.installationInput);
42
+ if (result.isOk()) return new Response(true);
43
+ return new ErrorResponse({
44
+ code: result.error.code,
45
+ message: result.error.message,
46
+ data: result.error.data
47
+ });
48
+ }
49
+ }
51
50
  }
52
- }
53
- }
54
- });
55
- };
51
+ });
52
+ export { createSystemGraphQL };
56
53
 
57
54
  //# sourceMappingURL=createSystemGraphQL.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["GraphQLSchemaPlugin","ErrorResponse","Response","GetRootTenantUseCase","InstallSystemUseCase","emptyResolver","createSystemGraphQL","typeDefs","resolvers","Query","system","Mutation","SystemQuery","isSystemInstalled","_","__","context","getRootTenant","container","resolve","result","execute","isOk","SystemMutation","installSystem","args","installationInput","code","error","message","data"],"sources":["createSystemGraphQL.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/index.js\";\nimport { ErrorResponse, Response } from \"@webiny/handler-graphql\";\nimport { type AppInstallationData } from \"~/features/tenancy/InstallTenant/index.js\";\nimport { GetRootTenantUseCase } from \"~/features/tenancy/GetRootTenant/index.js\";\nimport { InstallSystemUseCase } from \"~/features/system/InstallSystem/index.js\";\n\nconst emptyResolver = () => ({});\n\ninterface InstallTenantArgs {\n installationInput: AppInstallationData[];\n}\n\nexport const createSystemGraphQL = () => {\n return new GraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n type SystemQuery {\n isSystemInstalled: BooleanResponse\n }\n\n type SystemMutation {\n installSystem(installationInput: JSON!): BooleanResponse\n }\n\n extend type Query {\n system: SystemQuery\n }\n\n extend type Mutation {\n system: SystemMutation\n }\n `,\n resolvers: {\n Query: {\n system: emptyResolver\n },\n Mutation: {\n system: emptyResolver\n },\n SystemQuery: {\n isSystemInstalled: async (_, __, context) => {\n const getRootTenant = context.container.resolve(GetRootTenantUseCase);\n const result = await getRootTenant.execute();\n\n return new Response(result.isOk());\n }\n },\n SystemMutation: {\n installSystem: async (_, args: InstallTenantArgs, context) => {\n const installSystem = context.container.resolve(InstallSystemUseCase);\n\n const result = await installSystem.execute(args.installationInput);\n\n if (result.isOk()) {\n return new Response(true);\n }\n\n return new ErrorResponse({\n code: result.error.code,\n message: result.error.message,\n data: result.error.data\n });\n }\n }\n }\n });\n};\n"],"mappings":"AAAA,SAASA,mBAAmB,QAAQ,0CAA0C;AAC9E,SAASC,aAAa,EAAEC,QAAQ,QAAQ,yBAAyB;AAEjE,SAASC,oBAAoB;AAC7B,SAASC,oBAAoB;AAE7B,MAAMC,aAAa,GAAGA,CAAA,MAAO,CAAC,CAAC,CAAC;AAMhC,OAAO,MAAMC,mBAAmB,GAAGA,CAAA,KAAM;EACrC,OAAO,IAAIN,mBAAmB,CAAC;IAC3BO,QAAQ,EAAE,aAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;IACDC,SAAS,EAAE;MACPC,KAAK,EAAE;QACHC,MAAM,EAAEL;MACZ,CAAC;MACDM,QAAQ,EAAE;QACND,MAAM,EAAEL;MACZ,CAAC;MACDO,WAAW,EAAE;QACTC,iBAAiB,EAAE,MAAAA,CAAOC,CAAC,EAAEC,EAAE,EAAEC,OAAO,KAAK;UACzC,MAAMC,aAAa,GAAGD,OAAO,CAACE,SAAS,CAACC,OAAO,CAAChB,oBAAoB,CAAC;UACrE,MAAMiB,MAAM,GAAG,MAAMH,aAAa,CAACI,OAAO,CAAC,CAAC;UAE5C,OAAO,IAAInB,QAAQ,CAACkB,MAAM,CAACE,IAAI,CAAC,CAAC,CAAC;QACtC;MACJ,CAAC;MACDC,cAAc,EAAE;QACZC,aAAa,EAAE,MAAAA,CAAOV,CAAC,EAAEW,IAAuB,EAAET,OAAO,KAAK;UAC1D,MAAMQ,aAAa,GAAGR,OAAO,CAACE,SAAS,CAACC,OAAO,CAACf,oBAAoB,CAAC;UAErE,MAAMgB,MAAM,GAAG,MAAMI,aAAa,CAACH,OAAO,CAACI,IAAI,CAACC,iBAAiB,CAAC;UAElE,IAAIN,MAAM,CAACE,IAAI,CAAC,CAAC,EAAE;YACf,OAAO,IAAIpB,QAAQ,CAAC,IAAI,CAAC;UAC7B;UAEA,OAAO,IAAID,aAAa,CAAC;YACrB0B,IAAI,EAAEP,MAAM,CAACQ,KAAK,CAACD,IAAI;YACvBE,OAAO,EAAET,MAAM,CAACQ,KAAK,CAACC,OAAO;YAC7BC,IAAI,EAAEV,MAAM,CAACQ,KAAK,CAACE;UACvB,CAAC,CAAC;QACN;MACJ;IACJ;EACJ,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"graphql/system/createSystemGraphQL.js","sources":["../../../src/graphql/system/createSystemGraphQL.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/index.js\";\nimport { ErrorResponse, Response } from \"@webiny/handler-graphql\";\nimport { type AppInstallationData } from \"~/features/tenancy/InstallTenant/index.js\";\nimport { GetRootTenantUseCase } from \"~/features/tenancy/GetRootTenant/index.js\";\nimport { InstallSystemUseCase } from \"~/features/system/InstallSystem/index.js\";\n\nconst emptyResolver = () => ({});\n\ninterface InstallTenantArgs {\n installationInput: AppInstallationData[];\n}\n\nexport const createSystemGraphQL = () => {\n return new GraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n type SystemQuery {\n isSystemInstalled: BooleanResponse\n }\n\n type SystemMutation {\n installSystem(installationInput: JSON!): BooleanResponse\n }\n\n extend type Query {\n system: SystemQuery\n }\n\n extend type Mutation {\n system: SystemMutation\n }\n `,\n resolvers: {\n Query: {\n system: emptyResolver\n },\n Mutation: {\n system: emptyResolver\n },\n SystemQuery: {\n isSystemInstalled: async (_, __, context) => {\n const getRootTenant = context.container.resolve(GetRootTenantUseCase);\n const result = await getRootTenant.execute();\n\n return new Response(result.isOk());\n }\n },\n SystemMutation: {\n installSystem: async (_, args: InstallTenantArgs, context) => {\n const installSystem = context.container.resolve(InstallSystemUseCase);\n\n const result = await installSystem.execute(args.installationInput);\n\n if (result.isOk()) {\n return new Response(true);\n }\n\n return new ErrorResponse({\n code: result.error.code,\n message: result.error.message,\n data: result.error.data\n });\n }\n }\n }\n });\n};\n"],"names":["emptyResolver","createSystemGraphQL","GraphQLSchemaPlugin","_","__","context","getRootTenant","GetRootTenantUseCase","result","Response","args","installSystem","InstallSystemUseCase","ErrorResponse"],"mappings":";;;;AAMA,MAAMA,gBAAgB,IAAO,EAAC;AAMvB,MAAMC,sBAAsB,IACxB,IAAIC,oBAAoB;QAC3B,UAAwB,CAAC;;;;;;;;;;;;;;;;QAgBzB,CAAC;QACD,WAAW;YACP,OAAO;gBACH,QAAQF;YACZ;YACA,UAAU;gBACN,QAAQA;YACZ;YACA,aAAa;gBACT,mBAAmB,OAAOG,GAAGC,IAAIC;oBAC7B,MAAMC,gBAAgBD,QAAQ,SAAS,CAAC,OAAO,CAACE;oBAChD,MAAMC,SAAS,MAAMF,cAAc,OAAO;oBAE1C,OAAO,IAAIG,SAASD,OAAO,IAAI;gBACnC;YACJ;YACA,gBAAgB;gBACZ,eAAe,OAAOL,GAAGO,MAAyBL;oBAC9C,MAAMM,gBAAgBN,QAAQ,SAAS,CAAC,OAAO,CAACO;oBAEhD,MAAMJ,SAAS,MAAMG,cAAc,OAAO,CAACD,KAAK,iBAAiB;oBAEjE,IAAIF,OAAO,IAAI,IACX,OAAO,IAAIC,SAAS;oBAGxB,OAAO,IAAII,cAAc;wBACrB,MAAML,OAAO,KAAK,CAAC,IAAI;wBACvB,SAASA,OAAO,KAAK,CAAC,OAAO;wBAC7B,MAAMA,OAAO,KAAK,CAAC,IAAI;oBAC3B;gBACJ;YACJ;QACJ;IACJ"}
@@ -3,10 +3,10 @@ import { GraphQLSchemaPlugin } from "@webiny/handler-graphql/plugins/GraphQLSche
3
3
  import { GetUserUseCase } from "../../features/users/GetUser/index.js";
4
4
  import NotAuthorizedResponse from "../security/NotAuthorizedResponse.js";
5
5
  import { ListUsersUseCase } from "../../features/users/ListUsers/index.js";
6
- const emptyResolver = () => ({});
7
- export const createUsersGraphQL = () => {
8
- return [new GraphQLSchemaPlugin({
9
- typeDefs: /* GraphQL */`
6
+ const emptyResolver = ()=>({});
7
+ const createUsersGraphQL = ()=>[
8
+ new GraphQLSchemaPlugin({
9
+ typeDefs: `
10
10
  type AdminUsersQuery {
11
11
  _empty: String
12
12
  }
@@ -40,16 +40,17 @@ export const createUsersGraphQL = () => {
40
40
  error: AdminUsersError
41
41
  }
42
42
  `,
43
- resolvers: {
44
- Query: {
45
- adminUsers: emptyResolver
46
- },
47
- Mutation: {
48
- adminUsers: emptyResolver
49
- }
50
- }
51
- }), new GraphQLSchemaPlugin({
52
- typeDefs: /* GraphQL */`
43
+ resolvers: {
44
+ Query: {
45
+ adminUsers: emptyResolver
46
+ },
47
+ Mutation: {
48
+ adminUsers: emptyResolver
49
+ }
50
+ }
51
+ }),
52
+ new GraphQLSchemaPlugin({
53
+ typeDefs: `
53
54
  type AdminUser {
54
55
  id: ID!
55
56
  displayName: String!
@@ -84,102 +85,83 @@ export const createUsersGraphQL = () => {
84
85
  listUsers: AdminUsersListResponse
85
86
  }
86
87
  `,
87
- resolvers: {
88
- AdminUser: {
89
- roles(user, _, context) {
90
- if (!user.roles) {
91
- return null;
92
- }
93
- return context.security.listRoles({
94
- where: {
95
- id_in: user.roles
96
- }
97
- });
98
- }
99
- },
100
- AdminUsersQuery: {
101
- getUser: async (_, {
102
- where
103
- }, context) => {
104
- const getUser = context.container.resolve(GetUserUseCase);
105
- const userResult = await getUser.execute({
106
- id: where.id,
107
- email: where.email
108
- });
109
- if (userResult.isFail()) {
110
- const error = userResult.error;
111
- if (error.code === "AdminUser/NotFound") {
112
- return new NotFoundResponse(`User "${JSON.stringify(where)}" was not found!`);
113
- }
114
- return new ErrorResponse({
115
- message: error.message,
116
- code: error.code,
117
- data: error.data
118
- });
119
- }
120
- return new Response(userResult.value);
121
- },
122
- getCurrentUser: async (_, __, context) => {
123
- const identity = context.security.getIdentity();
124
- if (!identity.isAdmin()) {
125
- throw new NotAuthorizedResponse();
126
- }
127
-
128
- // Current user might not have permissions to execute `getUser` (this method can load any user in the system),
129
- // but loading your own user record should be allowed. For that reason, let's temporarily disable authorization.
130
-
131
- const getUser = context.container.resolve(GetUserUseCase);
132
- const userResponse = await context.security.withoutAuthorization(async () => {
133
- // Get user record using the identity ID.
134
- return await getUser.execute({
135
- id: identity.id
136
- });
137
- });
138
- if (userResponse.isFail()) {
139
- const error = userResponse.error;
140
- if (error.code === "AdminUser/NotFound") {
141
- return new NotFoundResponse(`User with ID ${identity.id} was not found!`);
88
+ resolvers: {
89
+ AdminUser: {
90
+ roles (user, _, context) {
91
+ if (!user.roles) return null;
92
+ return context.security.listRoles({
93
+ where: {
94
+ id_in: user.roles
95
+ }
96
+ });
97
+ }
98
+ },
99
+ AdminUsersQuery: {
100
+ getUser: async (_, { where }, context)=>{
101
+ const getUser = context.container.resolve(GetUserUseCase);
102
+ const userResult = await getUser.execute({
103
+ id: where.id,
104
+ email: where.email
105
+ });
106
+ if (userResult.isFail()) {
107
+ const error = userResult.error;
108
+ if ("AdminUser/NotFound" === error.code) return new NotFoundResponse(`User "${JSON.stringify(where)}" was not found!`);
109
+ return new ErrorResponse({
110
+ message: error.message,
111
+ code: error.code,
112
+ data: error.data
113
+ });
114
+ }
115
+ return new Response(userResult.value);
116
+ },
117
+ getCurrentUser: async (_, __, context)=>{
118
+ const identity = context.security.getIdentity();
119
+ if (!identity.isAdmin()) throw new NotAuthorizedResponse();
120
+ const getUser = context.container.resolve(GetUserUseCase);
121
+ const userResponse = await context.security.withoutAuthorization(async ()=>await getUser.execute({
122
+ id: identity.id
123
+ }));
124
+ if (userResponse.isFail()) {
125
+ const error = userResponse.error;
126
+ if ("AdminUser/NotFound" === error.code) return new NotFoundResponse(`User with ID ${identity.id} was not found!`);
127
+ return new ErrorResponse({
128
+ message: error.message,
129
+ code: error.code,
130
+ data: error.data
131
+ });
132
+ }
133
+ return new Response(userResponse.value);
134
+ },
135
+ listUsers: async (_, __, context)=>{
136
+ const listUsers = context.container.resolve(ListUsersUseCase);
137
+ const users = await listUsers.execute();
138
+ if (users.isFail()) return new ListErrorResponse(users.error);
139
+ return new ListResponse(users.value);
140
+ }
141
+ }
142
142
  }
143
- return new ErrorResponse({
144
- message: error.message,
145
- code: error.code,
146
- data: error.data
147
- });
148
- }
149
- return new Response(userResponse.value);
150
- },
151
- listUsers: async (_, __, context) => {
152
- const listUsers = context.container.resolve(ListUsersUseCase);
153
- const users = await listUsers.execute();
154
- if (users.isFail()) {
155
- return new ListErrorResponse(users.error);
156
- }
157
- return new ListResponse(users.value);
158
- }
159
- }
160
- }
161
- }), new GraphQLSchemaPlugin({
162
- typeDefs: /* GraphQL */`
143
+ }),
144
+ new GraphQLSchemaPlugin({
145
+ typeDefs: `
163
146
  extend type AdminUser {
164
147
  teams: [SecurityTeam]
165
148
  }
166
149
  `,
167
- resolvers: {
168
- AdminUser: {
169
- teams(user, _, context) {
170
- const hasTeams = Array.isArray(user.teams) && user.teams.length > 0;
171
- if (!hasTeams) {
172
- return [];
173
- }
174
- return context.security.listTeams({
175
- where: {
176
- id_in: user.teams
150
+ resolvers: {
151
+ AdminUser: {
152
+ teams (user, _, context) {
153
+ const hasTeams = Array.isArray(user.teams) && user.teams.length > 0;
154
+ if (!hasTeams) return [];
155
+ return context.security.listTeams({
156
+ where: {
157
+ id_in: user.teams
158
+ }
159
+ });
160
+ }
161
+ }
177
162
  }
178
- });
179
- }
180
- }
181
- }
182
- })].filter(Boolean);
183
- };
163
+ })
164
+ ].filter(Boolean);
165
+ export { createUsersGraphQL };
184
166
 
185
167
  //# sourceMappingURL=user.gql.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ErrorResponse","ListErrorResponse","ListResponse","NotFoundResponse","Response","GraphQLSchemaPlugin","GetUserUseCase","NotAuthorizedResponse","ListUsersUseCase","emptyResolver","createUsersGraphQL","typeDefs","resolvers","Query","adminUsers","Mutation","AdminUser","roles","user","_","context","security","listRoles","where","id_in","AdminUsersQuery","getUser","container","resolve","userResult","execute","id","email","isFail","error","code","JSON","stringify","message","data","value","getCurrentUser","__","identity","getIdentity","isAdmin","userResponse","withoutAuthorization","listUsers","users","teams","hasTeams","Array","isArray","length","listTeams","filter","Boolean"],"sources":["user.gql.ts"],"sourcesContent":["import {\n ErrorResponse,\n ListErrorResponse,\n ListResponse,\n NotFoundResponse,\n Response\n} from \"@webiny/handler-graphql/responses.js\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin.js\";\nimport type { ApiCoreContext } from \"~/types/core.js\";\nimport { AdminUser } from \"~/types/users.js\";\nimport { GetUserUseCase } from \"~/features/users/GetUser/index.js\";\nimport NotAuthorizedResponse from \"~/graphql/security/NotAuthorizedResponse.js\";\nimport { ListUsersUseCase } from \"~/features/users/ListUsers/index.js\";\n\nconst emptyResolver = () => ({});\n\nexport const createUsersGraphQL = () => {\n return [\n new GraphQLSchemaPlugin<ApiCoreContext>({\n typeDefs: /* GraphQL */ `\n type AdminUsersQuery {\n _empty: String\n }\n\n type AdminUsersMutation {\n _empty: String\n }\n\n extend type Query {\n adminUsers: AdminUsersQuery\n }\n\n extend type Mutation {\n adminUsers: AdminUsersMutation\n }\n\n type AdminUsersCreatedBy {\n id: ID\n displayName: String\n }\n\n type AdminUsersError {\n code: String\n message: String\n data: JSON\n stack: String\n }\n\n type AdminUsersBooleanResponse {\n data: Boolean\n error: AdminUsersError\n }\n `,\n resolvers: {\n Query: {\n adminUsers: emptyResolver\n },\n Mutation: {\n adminUsers: emptyResolver\n }\n }\n }),\n new GraphQLSchemaPlugin<ApiCoreContext>({\n typeDefs: /* GraphQL */ `\n type AdminUser {\n id: ID!\n displayName: String!\n email: String!\n\n roles: [SecurityRole]\n firstName: String\n lastName: String\n avatar: JSON\n external: Boolean\n createdOn: DateTime\n }\n\n type AdminUsersResponse {\n data: AdminUser\n error: AdminUsersError\n }\n\n type AdminUsersListResponse {\n data: [AdminUser]\n error: AdminUsersError\n }\n\n input AdminUsersGetUserWhereInput {\n id: ID\n email: String\n }\n\n extend type AdminUsersQuery {\n getUser(where: AdminUsersGetUserWhereInput): AdminUsersResponse\n getCurrentUser: AdminUsersResponse\n listUsers: AdminUsersListResponse\n }\n `,\n resolvers: {\n AdminUser: {\n roles(user: AdminUser, _, context) {\n if (!user.roles) {\n return null;\n }\n\n return context.security.listRoles({ where: { id_in: user.roles } });\n }\n },\n AdminUsersQuery: {\n getUser: async (_, { where }: any, context) => {\n const getUser = context.container.resolve(GetUserUseCase);\n\n const userResult = await getUser.execute({\n id: where.id,\n email: where.email\n });\n\n if (userResult.isFail()) {\n const error = userResult.error;\n if (error.code === \"AdminUser/NotFound\") {\n return new NotFoundResponse(\n `User \"${JSON.stringify(where)}\" was not found!`\n );\n }\n\n return new ErrorResponse({\n message: error.message,\n code: error.code,\n data: error.data\n });\n }\n\n return new Response(userResult.value);\n },\n getCurrentUser: async (_, __, context) => {\n const identity = context.security.getIdentity();\n\n if (!identity.isAdmin()) {\n throw new NotAuthorizedResponse();\n }\n\n // Current user might not have permissions to execute `getUser` (this method can load any user in the system),\n // but loading your own user record should be allowed. For that reason, let's temporarily disable authorization.\n\n const getUser = context.container.resolve(GetUserUseCase);\n\n const userResponse = await context.security.withoutAuthorization(\n async () => {\n // Get user record using the identity ID.\n return await getUser.execute({ id: identity.id });\n }\n );\n\n if (userResponse.isFail()) {\n const error = userResponse.error;\n if (error.code === \"AdminUser/NotFound\") {\n return new NotFoundResponse(\n `User with ID ${identity.id} was not found!`\n );\n }\n\n return new ErrorResponse({\n message: error.message,\n code: error.code,\n data: error.data\n });\n }\n\n return new Response(userResponse.value);\n },\n listUsers: async (_, __, context) => {\n const listUsers = context.container.resolve(ListUsersUseCase);\n const users = await listUsers.execute();\n\n if (users.isFail()) {\n return new ListErrorResponse(users.error);\n }\n\n return new ListResponse(users.value);\n }\n }\n }\n }),\n new GraphQLSchemaPlugin<ApiCoreContext>({\n typeDefs: /* GraphQL */ `\n extend type AdminUser {\n teams: [SecurityTeam]\n }\n `,\n resolvers: {\n AdminUser: {\n teams(user: AdminUser, _, context) {\n const hasTeams = Array.isArray(user.teams) && user.teams.length > 0;\n if (!hasTeams) {\n return [];\n }\n\n return context.security.listTeams({ where: { id_in: user.teams } });\n }\n }\n }\n })\n ].filter(Boolean);\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"graphql/users/user.gql.js","sources":["../../../src/graphql/users/user.gql.ts"],"sourcesContent":["import {\n ErrorResponse,\n ListErrorResponse,\n ListResponse,\n NotFoundResponse,\n Response\n} from \"@webiny/handler-graphql/responses.js\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin.js\";\nimport type { ApiCoreContext } from \"~/types/core.js\";\nimport { AdminUser } from \"~/types/users.js\";\nimport { GetUserUseCase } from \"~/features/users/GetUser/index.js\";\nimport NotAuthorizedResponse from \"~/graphql/security/NotAuthorizedResponse.js\";\nimport { ListUsersUseCase } from \"~/features/users/ListUsers/index.js\";\n\nconst emptyResolver = () => ({});\n\nexport const createUsersGraphQL = () => {\n return [\n new GraphQLSchemaPlugin<ApiCoreContext>({\n typeDefs: /* GraphQL */ `\n type AdminUsersQuery {\n _empty: String\n }\n\n type AdminUsersMutation {\n _empty: String\n }\n\n extend type Query {\n adminUsers: AdminUsersQuery\n }\n\n extend type Mutation {\n adminUsers: AdminUsersMutation\n }\n\n type AdminUsersCreatedBy {\n id: ID\n displayName: String\n }\n\n type AdminUsersError {\n code: String\n message: String\n data: JSON\n stack: String\n }\n\n type AdminUsersBooleanResponse {\n data: Boolean\n error: AdminUsersError\n }\n `,\n resolvers: {\n Query: {\n adminUsers: emptyResolver\n },\n Mutation: {\n adminUsers: emptyResolver\n }\n }\n }),\n new GraphQLSchemaPlugin<ApiCoreContext>({\n typeDefs: /* GraphQL */ `\n type AdminUser {\n id: ID!\n displayName: String!\n email: String!\n\n roles: [SecurityRole]\n firstName: String\n lastName: String\n avatar: JSON\n external: Boolean\n createdOn: DateTime\n }\n\n type AdminUsersResponse {\n data: AdminUser\n error: AdminUsersError\n }\n\n type AdminUsersListResponse {\n data: [AdminUser]\n error: AdminUsersError\n }\n\n input AdminUsersGetUserWhereInput {\n id: ID\n email: String\n }\n\n extend type AdminUsersQuery {\n getUser(where: AdminUsersGetUserWhereInput): AdminUsersResponse\n getCurrentUser: AdminUsersResponse\n listUsers: AdminUsersListResponse\n }\n `,\n resolvers: {\n AdminUser: {\n roles(user: AdminUser, _, context) {\n if (!user.roles) {\n return null;\n }\n\n return context.security.listRoles({ where: { id_in: user.roles } });\n }\n },\n AdminUsersQuery: {\n getUser: async (_, { where }: any, context) => {\n const getUser = context.container.resolve(GetUserUseCase);\n\n const userResult = await getUser.execute({\n id: where.id,\n email: where.email\n });\n\n if (userResult.isFail()) {\n const error = userResult.error;\n if (error.code === \"AdminUser/NotFound\") {\n return new NotFoundResponse(\n `User \"${JSON.stringify(where)}\" was not found!`\n );\n }\n\n return new ErrorResponse({\n message: error.message,\n code: error.code,\n data: error.data\n });\n }\n\n return new Response(userResult.value);\n },\n getCurrentUser: async (_, __, context) => {\n const identity = context.security.getIdentity();\n\n if (!identity.isAdmin()) {\n throw new NotAuthorizedResponse();\n }\n\n // Current user might not have permissions to execute `getUser` (this method can load any user in the system),\n // but loading your own user record should be allowed. For that reason, let's temporarily disable authorization.\n\n const getUser = context.container.resolve(GetUserUseCase);\n\n const userResponse = await context.security.withoutAuthorization(\n async () => {\n // Get user record using the identity ID.\n return await getUser.execute({ id: identity.id });\n }\n );\n\n if (userResponse.isFail()) {\n const error = userResponse.error;\n if (error.code === \"AdminUser/NotFound\") {\n return new NotFoundResponse(\n `User with ID ${identity.id} was not found!`\n );\n }\n\n return new ErrorResponse({\n message: error.message,\n code: error.code,\n data: error.data\n });\n }\n\n return new Response(userResponse.value);\n },\n listUsers: async (_, __, context) => {\n const listUsers = context.container.resolve(ListUsersUseCase);\n const users = await listUsers.execute();\n\n if (users.isFail()) {\n return new ListErrorResponse(users.error);\n }\n\n return new ListResponse(users.value);\n }\n }\n }\n }),\n new GraphQLSchemaPlugin<ApiCoreContext>({\n typeDefs: /* GraphQL */ `\n extend type AdminUser {\n teams: [SecurityTeam]\n }\n `,\n resolvers: {\n AdminUser: {\n teams(user: AdminUser, _, context) {\n const hasTeams = Array.isArray(user.teams) && user.teams.length > 0;\n if (!hasTeams) {\n return [];\n }\n\n return context.security.listTeams({ where: { id_in: user.teams } });\n }\n }\n }\n })\n ].filter(Boolean);\n};\n"],"names":["emptyResolver","createUsersGraphQL","GraphQLSchemaPlugin","user","_","context","where","getUser","GetUserUseCase","userResult","error","NotFoundResponse","JSON","ErrorResponse","Response","__","identity","NotAuthorizedResponse","userResponse","listUsers","ListUsersUseCase","users","ListErrorResponse","ListResponse","hasTeams","Array","Boolean"],"mappings":"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"}
@@ -1,10 +1,9 @@
1
1
  import { GraphQLSchemaPlugin } from "@webiny/handler-graphql/plugins/index.js";
2
2
  import { ErrorResponse, Response } from "@webiny/handler-graphql/responses.js";
3
3
  import { WcpContext } from "../../features/wcp/WcpContext/index.js";
4
- const emptyResolver = () => ({});
5
- export const createWcpGraphQL = () => {
6
- return new GraphQLSchemaPlugin({
7
- typeDefs: /* GraphQL */`
4
+ const emptyResolver = ()=>({});
5
+ const createWcpGraphQL = ()=>new GraphQLSchemaPlugin({
6
+ typeDefs: `
8
7
  type WcpProjectPackageFeaturesFeature {
9
8
  enabled: Boolean
10
9
  options: JSON
@@ -59,31 +58,29 @@ export const createWcpGraphQL = () => {
59
58
  wcp: WcpMutation
60
59
  }
61
60
  `,
62
- resolvers: {
63
- Query: {
64
- wcp: emptyResolver
65
- },
66
- WcpQuery: {
67
- getProject: async (_, __, context) => {
68
- try {
69
- const wcpContext = context.container.resolve(WcpContext);
70
- const project = wcpContext.getProjectWithFeatureFlags();
71
- if (!project) {
72
- throw Error(`Could not get project!`);
61
+ resolvers: {
62
+ Query: {
63
+ wcp: emptyResolver
64
+ },
65
+ WcpQuery: {
66
+ getProject: async (_, __, context)=>{
67
+ try {
68
+ const wcpContext = context.container.resolve(WcpContext);
69
+ const project = wcpContext.getProjectWithFeatureFlags();
70
+ if (!project) throw Error("Could not get project!");
71
+ return new Response(project);
72
+ } catch (e) {
73
+ return new ErrorResponse({
74
+ code: "COULD_NOT_GET_PROJECT",
75
+ message: e.message,
76
+ data: null,
77
+ stack: e.stack
78
+ });
79
+ }
80
+ }
73
81
  }
74
- return new Response(project);
75
- } catch (e) {
76
- return new ErrorResponse({
77
- code: "COULD_NOT_GET_PROJECT",
78
- message: e.message,
79
- data: null,
80
- stack: e.stack
81
- });
82
- }
83
82
  }
84
- }
85
- }
86
- });
87
- };
83
+ });
84
+ export { createWcpGraphQL };
88
85
 
89
86
  //# sourceMappingURL=graphql.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["GraphQLSchemaPlugin","ErrorResponse","Response","WcpContext","emptyResolver","createWcpGraphQL","typeDefs","resolvers","Query","wcp","WcpQuery","getProject","_","__","context","wcpContext","container","resolve","project","getProjectWithFeatureFlags","Error","e","code","message","data","stack"],"sources":["graphql.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/index.js\";\nimport { ErrorResponse, Response } from \"@webiny/handler-graphql/responses.js\";\nimport { WcpContext } from \"~/features/wcp/WcpContext/index.js\";\n\nconst emptyResolver = () => ({});\n\nexport const createWcpGraphQL = () => {\n return new GraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n type WcpProjectPackageFeaturesFeature {\n enabled: Boolean\n options: JSON\n }\n\n type WcpProjectPackageFeatures {\n seats: WcpProjectPackageFeaturesFeature\n multiTenancy: WcpProjectPackageFeaturesFeature\n advancedPublishingWorkflow: WcpProjectPackageFeaturesFeature\n advancedAccessControlLayer: WcpProjectPackageFeaturesFeature\n auditLogs: WcpProjectPackageFeaturesFeature\n recordLocking: WcpProjectPackageFeaturesFeature\n fileManager: WcpProjectPackageFeaturesFeature\n aiPowerups: WcpProjectPackageFeaturesFeature\n }\n\n type WcpProjectPackage {\n features: WcpProjectPackageFeatures\n }\n\n type WcpProject {\n orgId: ID\n projectId: ID\n package: WcpProjectPackage\n }\n\n type WcpError {\n code: String\n message: String\n data: JSON\n stack: String\n }\n\n type WcpProjectResponse {\n data: WcpProject\n error: WcpError\n }\n\n type WcpQuery {\n getProject: WcpProjectResponse\n }\n\n type WcpMutation {\n updateProject: WcpProjectResponse\n }\n\n extend type Query {\n wcp: WcpQuery\n }\n\n extend type Mutation {\n wcp: WcpMutation\n }\n `,\n resolvers: {\n Query: {\n wcp: emptyResolver\n },\n WcpQuery: {\n getProject: async (_, __, context) => {\n try {\n const wcpContext = context.container.resolve(WcpContext);\n const project = wcpContext.getProjectWithFeatureFlags();\n\n if (!project) {\n throw Error(`Could not get project!`);\n }\n\n return new Response(project);\n } catch (e) {\n return new ErrorResponse({\n code: \"COULD_NOT_GET_PROJECT\",\n message: e.message,\n data: null,\n stack: e.stack\n });\n }\n }\n }\n }\n });\n};\n"],"mappings":"AAAA,SAASA,mBAAmB,QAAQ,0CAA0C;AAC9E,SAASC,aAAa,EAAEC,QAAQ,QAAQ,sCAAsC;AAC9E,SAASC,UAAU;AAEnB,MAAMC,aAAa,GAAGA,CAAA,MAAO,CAAC,CAAC,CAAC;AAEhC,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;EAClC,OAAO,IAAIL,mBAAmB,CAAC;IAC3BM,QAAQ,EAAE,aAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;IACDC,SAAS,EAAE;MACPC,KAAK,EAAE;QACHC,GAAG,EAAEL;MACT,CAAC;MACDM,QAAQ,EAAE;QACNC,UAAU,EAAE,MAAAA,CAAOC,CAAC,EAAEC,EAAE,EAAEC,OAAO,KAAK;UAClC,IAAI;YACA,MAAMC,UAAU,GAAGD,OAAO,CAACE,SAAS,CAACC,OAAO,CAACd,UAAU,CAAC;YACxD,MAAMe,OAAO,GAAGH,UAAU,CAACI,0BAA0B,CAAC,CAAC;YAEvD,IAAI,CAACD,OAAO,EAAE;cACV,MAAME,KAAK,CAAC,wBAAwB,CAAC;YACzC;YAEA,OAAO,IAAIlB,QAAQ,CAACgB,OAAO,CAAC;UAChC,CAAC,CAAC,OAAOG,CAAC,EAAE;YACR,OAAO,IAAIpB,aAAa,CAAC;cACrBqB,IAAI,EAAE,uBAAuB;cAC7BC,OAAO,EAAEF,CAAC,CAACE,OAAO;cAClBC,IAAI,EAAE,IAAI;cACVC,KAAK,EAAEJ,CAAC,CAACI;YACb,CAAC,CAAC;UACN;QACJ;MACJ;IACJ;EACJ,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"graphql/wcp/graphql.js","sources":["../../../src/graphql/wcp/graphql.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/index.js\";\nimport { ErrorResponse, Response } from \"@webiny/handler-graphql/responses.js\";\nimport { WcpContext } from \"~/features/wcp/WcpContext/index.js\";\n\nconst emptyResolver = () => ({});\n\nexport const createWcpGraphQL = () => {\n return new GraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n type WcpProjectPackageFeaturesFeature {\n enabled: Boolean\n options: JSON\n }\n\n type WcpProjectPackageFeatures {\n seats: WcpProjectPackageFeaturesFeature\n multiTenancy: WcpProjectPackageFeaturesFeature\n advancedPublishingWorkflow: WcpProjectPackageFeaturesFeature\n advancedAccessControlLayer: WcpProjectPackageFeaturesFeature\n auditLogs: WcpProjectPackageFeaturesFeature\n recordLocking: WcpProjectPackageFeaturesFeature\n fileManager: WcpProjectPackageFeaturesFeature\n aiPowerups: WcpProjectPackageFeaturesFeature\n }\n\n type WcpProjectPackage {\n features: WcpProjectPackageFeatures\n }\n\n type WcpProject {\n orgId: ID\n projectId: ID\n package: WcpProjectPackage\n }\n\n type WcpError {\n code: String\n message: String\n data: JSON\n stack: String\n }\n\n type WcpProjectResponse {\n data: WcpProject\n error: WcpError\n }\n\n type WcpQuery {\n getProject: WcpProjectResponse\n }\n\n type WcpMutation {\n updateProject: WcpProjectResponse\n }\n\n extend type Query {\n wcp: WcpQuery\n }\n\n extend type Mutation {\n wcp: WcpMutation\n }\n `,\n resolvers: {\n Query: {\n wcp: emptyResolver\n },\n WcpQuery: {\n getProject: async (_, __, context) => {\n try {\n const wcpContext = context.container.resolve(WcpContext);\n const project = wcpContext.getProjectWithFeatureFlags();\n\n if (!project) {\n throw Error(`Could not get project!`);\n }\n\n return new Response(project);\n } catch (e) {\n return new ErrorResponse({\n code: \"COULD_NOT_GET_PROJECT\",\n message: e.message,\n data: null,\n stack: e.stack\n });\n }\n }\n }\n }\n });\n};\n"],"names":["emptyResolver","createWcpGraphQL","GraphQLSchemaPlugin","_","__","context","wcpContext","WcpContext","project","Error","Response","e","ErrorResponse"],"mappings":";;;AAIA,MAAMA,gBAAgB,IAAO,EAAC;AAEvB,MAAMC,mBAAmB,IACrB,IAAIC,oBAAoB;QAC3B,UAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAsDzB,CAAC;QACD,WAAW;YACP,OAAO;gBACH,KAAKF;YACT;YACA,UAAU;gBACN,YAAY,OAAOG,GAAGC,IAAIC;oBACtB,IAAI;wBACA,MAAMC,aAAaD,QAAQ,SAAS,CAAC,OAAO,CAACE;wBAC7C,MAAMC,UAAUF,WAAW,0BAA0B;wBAErD,IAAI,CAACE,SACD,MAAMC,MAAM;wBAGhB,OAAO,IAAIC,SAASF;oBACxB,EAAE,OAAOG,GAAG;wBACR,OAAO,IAAIC,cAAc;4BACrB,MAAM;4BACN,SAASD,EAAE,OAAO;4BAClB,MAAM;4BACN,OAAOA,EAAE,KAAK;wBAClB;oBACJ;gBACJ;YACJ;QACJ;IACJ"}
package/idp/JwksCache.js CHANGED
@@ -1,32 +1,26 @@
1
- export class JwksCache {
2
- cache = new Map();
3
- async getKeys(issuer) {
4
- // Check cache first
5
- const cached = this.cache.get(issuer);
6
- if (cached) {
7
- return cached.jwks;
1
+ class JwksCache {
2
+ async getKeys(issuer) {
3
+ const cached = this.cache.get(issuer);
4
+ if (cached) return cached.jwks;
5
+ const openidUrl = new URL(issuer);
6
+ const pathname = openidUrl.pathname + "/.well-known/openid-configuration";
7
+ openidUrl.pathname = pathname.replace(/\/+/g, "/");
8
+ const oidcConfig = await fetch(openidUrl.toString()).then((res)=>res.json());
9
+ const jwksResponse = await fetch(oidcConfig.jwks_uri).then((res)=>res.json());
10
+ const jwks = jwksResponse.keys;
11
+ this.cache.set(issuer, {
12
+ oidcConfig,
13
+ jwks
14
+ });
15
+ return jwks;
16
+ }
17
+ clearCache() {
18
+ this.cache.clear();
19
+ }
20
+ constructor(){
21
+ this.cache = new Map();
8
22
  }
9
-
10
- // Fetch OIDC configuration
11
- const openidUrl = new URL(issuer);
12
- const pathname = openidUrl.pathname + "/.well-known/openid-configuration";
13
- openidUrl.pathname = pathname.replace(/\/+/g, "/");
14
- const oidcConfig = await fetch(openidUrl.toString()).then(res => res.json());
15
-
16
- // Fetch JWKs from jwks_uri
17
- const jwksResponse = await fetch(oidcConfig.jwks_uri).then(res => res.json());
18
- const jwks = jwksResponse.keys;
19
-
20
- // Cache both config and JWKs
21
- this.cache.set(issuer, {
22
- oidcConfig,
23
- jwks
24
- });
25
- return jwks;
26
- }
27
- clearCache() {
28
- this.cache.clear();
29
- }
30
23
  }
24
+ export { JwksCache };
31
25
 
32
26
  //# sourceMappingURL=JwksCache.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["JwksCache","cache","Map","getKeys","issuer","cached","get","jwks","openidUrl","URL","pathname","replace","oidcConfig","fetch","toString","then","res","json","jwksResponse","jwks_uri","keys","set","clearCache","clear"],"sources":["JwksCache.ts"],"sourcesContent":["import type { Jwk } from \"~/features/security/utils/verifyJwtUsingJwk.js\";\nimport { JwkCache } from \"./abstractions.js\";\n\ninterface OidcConfiguration {\n jwks_uri: string;\n [key: string]: any;\n}\n\ninterface CacheEntry {\n oidcConfig: OidcConfiguration;\n jwks: Jwk[];\n}\n\nexport class JwksCache implements JwkCache.Interface {\n private cache = new Map<string, CacheEntry>();\n\n async getKeys(issuer: string): Promise<Jwk[]> {\n // Check cache first\n const cached = this.cache.get(issuer);\n if (cached) {\n return cached.jwks;\n }\n\n // Fetch OIDC configuration\n const openidUrl = new URL(issuer);\n const pathname = openidUrl.pathname + \"/.well-known/openid-configuration\";\n openidUrl.pathname = pathname.replace(/\\/+/g, \"/\");\n\n const oidcConfig = await fetch(openidUrl.toString()).then(\n res => res.json() as Promise<OidcConfiguration>\n );\n\n // Fetch JWKs from jwks_uri\n const jwksResponse = await fetch(oidcConfig.jwks_uri).then(res => res.json());\n const jwks = jwksResponse.keys as Jwk[];\n\n // Cache both config and JWKs\n this.cache.set(issuer, {\n oidcConfig,\n jwks\n });\n\n return jwks;\n }\n\n clearCache(): void {\n this.cache.clear();\n }\n}\n"],"mappings":"AAaA,OAAO,MAAMA,SAAS,CAA+B;EACzCC,KAAK,GAAG,IAAIC,GAAG,CAAqB,CAAC;EAE7C,MAAMC,OAAOA,CAACC,MAAc,EAAkB;IAC1C;IACA,MAAMC,MAAM,GAAG,IAAI,CAACJ,KAAK,CAACK,GAAG,CAACF,MAAM,CAAC;IACrC,IAAIC,MAAM,EAAE;MACR,OAAOA,MAAM,CAACE,IAAI;IACtB;;IAEA;IACA,MAAMC,SAAS,GAAG,IAAIC,GAAG,CAACL,MAAM,CAAC;IACjC,MAAMM,QAAQ,GAAGF,SAAS,CAACE,QAAQ,GAAG,mCAAmC;IACzEF,SAAS,CAACE,QAAQ,GAAGA,QAAQ,CAACC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;IAElD,MAAMC,UAAU,GAAG,MAAMC,KAAK,CAACL,SAAS,CAACM,QAAQ,CAAC,CAAC,CAAC,CAACC,IAAI,CACrDC,GAAG,IAAIA,GAAG,CAACC,IAAI,CAAC,CACpB,CAAC;;IAED;IACA,MAAMC,YAAY,GAAG,MAAML,KAAK,CAACD,UAAU,CAACO,QAAQ,CAAC,CAACJ,IAAI,CAACC,GAAG,IAAIA,GAAG,CAACC,IAAI,CAAC,CAAC,CAAC;IAC7E,MAAMV,IAAI,GAAGW,YAAY,CAACE,IAAa;;IAEvC;IACA,IAAI,CAACnB,KAAK,CAACoB,GAAG,CAACjB,MAAM,EAAE;MACnBQ,UAAU;MACVL;IACJ,CAAC,CAAC;IAEF,OAAOA,IAAI;EACf;EAEAe,UAAUA,CAAA,EAAS;IACf,IAAI,CAACrB,KAAK,CAACsB,KAAK,CAAC,CAAC;EACtB;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"idp/JwksCache.js","sources":["../../src/idp/JwksCache.ts"],"sourcesContent":["import type { Jwk } from \"~/features/security/utils/verifyJwtUsingJwk.js\";\nimport { JwkCache } from \"./abstractions.js\";\n\ninterface OidcConfiguration {\n jwks_uri: string;\n [key: string]: any;\n}\n\ninterface CacheEntry {\n oidcConfig: OidcConfiguration;\n jwks: Jwk[];\n}\n\nexport class JwksCache implements JwkCache.Interface {\n private cache = new Map<string, CacheEntry>();\n\n async getKeys(issuer: string): Promise<Jwk[]> {\n // Check cache first\n const cached = this.cache.get(issuer);\n if (cached) {\n return cached.jwks;\n }\n\n // Fetch OIDC configuration\n const openidUrl = new URL(issuer);\n const pathname = openidUrl.pathname + \"/.well-known/openid-configuration\";\n openidUrl.pathname = pathname.replace(/\\/+/g, \"/\");\n\n const oidcConfig = await fetch(openidUrl.toString()).then(\n res => res.json() as Promise<OidcConfiguration>\n );\n\n // Fetch JWKs from jwks_uri\n const jwksResponse = await fetch(oidcConfig.jwks_uri).then(res => res.json());\n const jwks = jwksResponse.keys as Jwk[];\n\n // Cache both config and JWKs\n this.cache.set(issuer, {\n oidcConfig,\n jwks\n });\n\n return jwks;\n }\n\n clearCache(): void {\n this.cache.clear();\n }\n}\n"],"names":["JwksCache","issuer","cached","openidUrl","URL","pathname","oidcConfig","fetch","res","jwksResponse","jwks","Map"],"mappings":"AAaO,MAAMA;IAGT,MAAM,QAAQC,MAAc,EAAkB;QAE1C,MAAMC,SAAS,IAAI,CAAC,KAAK,CAAC,GAAG,CAACD;QAC9B,IAAIC,QACA,OAAOA,OAAO,IAAI;QAItB,MAAMC,YAAY,IAAIC,IAAIH;QAC1B,MAAMI,WAAWF,UAAU,QAAQ,GAAG;QACtCA,UAAU,QAAQ,GAAGE,SAAS,OAAO,CAAC,QAAQ;QAE9C,MAAMC,aAAa,MAAMC,MAAMJ,UAAU,QAAQ,IAAI,IAAI,CACrDK,CAAAA,MAAOA,IAAI,IAAI;QAInB,MAAMC,eAAe,MAAMF,MAAMD,WAAW,QAAQ,EAAE,IAAI,CAACE,CAAAA,MAAOA,IAAI,IAAI;QAC1E,MAAME,OAAOD,aAAa,IAAI;QAG9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAACR,QAAQ;YACnBK;YACAI;QACJ;QAEA,OAAOA;IACX;IAEA,aAAmB;QACf,IAAI,CAAC,KAAK,CAAC,KAAK;IACpB;;aAjCQ,KAAK,GAAG,IAAIC;;AAkCxB"}