@webiny/api-core 6.4.11 → 6.6.0-alpha.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 (341) hide show
  1. package/ApiCoreFeature.d.ts +2 -2
  2. package/ApiCoreFeature.js +29 -5
  3. package/ApiCoreFeature.js.map +1 -1
  4. package/exports/api/security/api-key.d.ts +1 -0
  5. package/exports/api/security/api-key.js +1 -0
  6. package/exports/api.d.ts +3 -1
  7. package/exports/api.js +2 -1
  8. package/features/ai/Ai.d.ts +3 -3
  9. package/features/ai/Ai.js +60 -23
  10. package/features/ai/Ai.js.map +1 -1
  11. package/features/ai/AnthropicSdkFactory.js +12 -0
  12. package/features/ai/AnthropicSdkFactory.js.map +1 -1
  13. package/features/ai/OpenAiSdkFactory.js +16 -0
  14. package/features/ai/OpenAiSdkFactory.js.map +1 -1
  15. package/features/ai/TextExtractor/DefaultTextExtractor.d.ts +9 -0
  16. package/features/ai/TextExtractor/DefaultTextExtractor.js +28 -0
  17. package/features/ai/TextExtractor/DefaultTextExtractor.js.map +1 -0
  18. package/features/ai/TextExtractor/abstractions.d.ts +12 -0
  19. package/features/ai/TextExtractor/abstractions.js +5 -0
  20. package/features/ai/TextExtractor/abstractions.js.map +1 -0
  21. package/features/ai/TextExtractor/index.d.ts +3 -0
  22. package/features/ai/TextExtractor/index.js +2 -0
  23. package/features/ai/TextExtractor/parsers/docxParser.d.ts +1 -0
  24. package/features/ai/TextExtractor/parsers/docxParser.js +111 -0
  25. package/features/ai/TextExtractor/parsers/docxParser.js.map +1 -0
  26. package/features/ai/abstractions.d.ts +18 -7
  27. package/features/ai/abstractions.js +1 -2
  28. package/features/ai/abstractions.js.map +1 -1
  29. package/features/ai/events.d.ts +59 -0
  30. package/features/ai/events.js +41 -0
  31. package/features/ai/events.js.map +1 -0
  32. package/features/ai/feature.js +6 -2
  33. package/features/ai/feature.js.map +1 -1
  34. package/features/ai/index.d.ts +8 -2
  35. package/features/ai/index.js +4 -1
  36. package/features/ai/toolPipeline/AiOutputToolRegistry.d.ts +11 -0
  37. package/features/ai/toolPipeline/AiOutputToolRegistry.js +31 -0
  38. package/features/ai/toolPipeline/AiOutputToolRegistry.js.map +1 -0
  39. package/features/ai/toolPipeline/AiToolPipelineRunner.d.ts +10 -0
  40. package/features/ai/toolPipeline/AiToolPipelineRunner.js +36 -0
  41. package/features/ai/toolPipeline/AiToolPipelineRunner.js.map +1 -0
  42. package/features/ai/toolPipeline/abstractions.d.ts +23 -0
  43. package/features/ai/toolPipeline/abstractions.js +7 -0
  44. package/features/ai/toolPipeline/abstractions.js.map +1 -0
  45. package/features/ai/toolPipeline/index.d.ts +2 -0
  46. package/features/ai/toolPipeline/index.js +1 -0
  47. package/features/dateFormatter/DefaultDateFormatter.d.ts +15 -0
  48. package/features/dateFormatter/DefaultDateFormatter.js +20 -0
  49. package/features/dateFormatter/DefaultDateFormatter.js.map +1 -0
  50. package/features/dateFormatter/abstractions.d.ts +13 -0
  51. package/features/dateFormatter/abstractions.js +5 -0
  52. package/features/dateFormatter/abstractions.js.map +1 -0
  53. package/features/dateFormatter/feature.d.ts +4 -0
  54. package/features/dateFormatter/feature.js +11 -0
  55. package/features/dateFormatter/feature.js.map +1 -0
  56. package/features/dateFormatter/index.d.ts +3 -0
  57. package/features/dateFormatter/index.js +2 -0
  58. package/features/featureFlags/decorators/FeatureFlagsWithLicenseDecorator.d.ts +13 -0
  59. package/features/featureFlags/decorators/FeatureFlagsWithLicenseDecorator.js +49 -0
  60. package/features/featureFlags/decorators/FeatureFlagsWithLicenseDecorator.js.map +1 -0
  61. package/features/hashing/ScryptHasher.d.ts +11 -0
  62. package/features/hashing/ScryptHasher.js +74 -0
  63. package/features/hashing/ScryptHasher.js.map +1 -0
  64. package/features/hashing/abstractions.d.ts +18 -0
  65. package/features/hashing/abstractions.js +5 -0
  66. package/features/hashing/abstractions.js.map +1 -0
  67. package/features/hashing/feature.d.ts +4 -0
  68. package/features/hashing/feature.js +11 -0
  69. package/features/hashing/feature.js.map +1 -0
  70. package/features/hashing/index.d.ts +2 -0
  71. package/features/hashing/index.js +1 -0
  72. package/features/requestContext/RawAuthToken.d.ts +14 -0
  73. package/features/requestContext/RawAuthToken.js +19 -0
  74. package/features/requestContext/RawAuthToken.js.map +1 -0
  75. package/features/requestContext/RawTenantId.d.ts +14 -0
  76. package/features/requestContext/RawTenantId.js +19 -0
  77. package/features/requestContext/RawTenantId.js.map +1 -0
  78. package/features/requestContext/RequestIdentityLoader.d.ts +19 -0
  79. package/features/requestContext/RequestIdentityLoader.js +26 -0
  80. package/features/requestContext/RequestIdentityLoader.js.map +1 -0
  81. package/features/requestContext/RequestTenantLoader.d.ts +18 -0
  82. package/features/requestContext/RequestTenantLoader.js +52 -0
  83. package/features/requestContext/RequestTenantLoader.js.map +1 -0
  84. package/features/requestContext/abstractions.d.ts +53 -0
  85. package/features/requestContext/abstractions.js +8 -0
  86. package/features/requestContext/abstractions.js.map +1 -0
  87. package/features/requestContext/feature.d.ts +11 -0
  88. package/features/requestContext/feature.js +17 -0
  89. package/features/requestContext/feature.js.map +1 -0
  90. package/features/requestContext/index.d.ts +2 -0
  91. package/features/requestContext/index.js +2 -0
  92. package/features/security/IdentityContext/IdentityContext.d.ts +3 -3
  93. package/features/security/IdentityContext/IdentityContext.js +6 -6
  94. package/features/security/IdentityContext/IdentityContext.js.map +1 -1
  95. package/features/security/apiKeys/ApiKeyAuthenticator.d.ts +14 -0
  96. package/features/security/apiKeys/ApiKeyAuthenticator.js +36 -0
  97. package/features/security/apiKeys/ApiKeyAuthenticator.js.map +1 -0
  98. package/features/security/apiKeys/ApiKeyAuthorizer.d.ts +10 -0
  99. package/features/security/apiKeys/ApiKeyAuthorizer.js +15 -0
  100. package/features/security/apiKeys/ApiKeyAuthorizer.js.map +1 -0
  101. package/features/security/apiKeys/CreateApiKey/CreateApiKeyUseCase.js +11 -6
  102. package/features/security/apiKeys/CreateApiKey/CreateApiKeyUseCase.js.map +1 -1
  103. package/features/security/apiKeys/GetApiKey/GetApiKeyUseCase.d.ts +1 -1
  104. package/features/security/apiKeys/GetApiKey/GetApiKeyUseCase.js.map +1 -1
  105. package/features/security/apiKeys/GetApiKeyBySlug/GetApiKeyBySlugUseCase.d.ts +1 -3
  106. package/features/security/apiKeys/GetApiKeyBySlug/GetApiKeyBySlugUseCase.js.map +1 -1
  107. package/features/security/apiKeys/GetApiKeyBySlug/abstractions.d.ts +1 -1
  108. package/features/security/apiKeys/GetApiKeyBySlug/abstractions.js.map +1 -1
  109. package/features/security/apiKeys/GetApiKeyByToken/GetApiKeyByTokenUseCase.d.ts +1 -3
  110. package/features/security/apiKeys/GetApiKeyByToken/GetApiKeyByTokenUseCase.js.map +1 -1
  111. package/features/security/apiKeys/GetApiKeyByToken/abstractions.d.ts +1 -1
  112. package/features/security/apiKeys/GetApiKeyByToken/abstractions.js.map +1 -1
  113. package/features/security/apiKeys/UpdateApiKey/UpdateApiKeyUseCase.js +9 -3
  114. package/features/security/apiKeys/UpdateApiKey/UpdateApiKeyUseCase.js.map +1 -1
  115. package/features/security/apiKeys/feature.js +11 -2
  116. package/features/security/apiKeys/feature.js.map +1 -1
  117. package/features/security/apiKeys/shared/ApiKeyProvider.d.ts +3 -5
  118. package/features/security/apiKeys/shared/ApiKeyProvider.js +6 -21
  119. package/features/security/apiKeys/shared/ApiKeyProvider.js.map +1 -1
  120. package/features/security/apiKeys/shared/ApiKeysRepository.d.ts +1 -0
  121. package/features/security/apiKeys/shared/ApiKeysRepository.js +19 -4
  122. package/features/security/apiKeys/shared/ApiKeysRepository.js.map +1 -1
  123. package/features/security/apiKeys/shared/generateToken.d.ts +1 -1
  124. package/features/security/apiKeys/shared/generateToken.js.map +1 -1
  125. package/features/security/apiKeys/shared/schemas.d.ts +2 -2
  126. package/features/security/apiKeys/shared/schemas.js +2 -2
  127. package/features/security/apiKeys/shared/schemas.js.map +1 -1
  128. package/features/security/apiKeys/shared/types.d.ts +1 -1
  129. package/features/security/authorization/GroupsTeamsAuthorizer/GetPermissionsFromIdentity.d.ts +4 -4
  130. package/features/security/authorization/GroupsTeamsAuthorizer/GetPermissionsFromIdentity.js +5 -5
  131. package/features/security/authorization/GroupsTeamsAuthorizer/GetPermissionsFromIdentity.js.map +1 -1
  132. package/features/security/roles/CreateRole/CreateRoleUseCase.js +11 -6
  133. package/features/security/roles/CreateRole/CreateRoleUseCase.js.map +1 -1
  134. package/features/security/roles/CreateRole/schema.d.ts +1 -1
  135. package/features/security/roles/CreateRole/schema.js +1 -1
  136. package/features/security/roles/CreateRole/schema.js.map +1 -1
  137. package/features/security/roles/Installer/RolesInstaller.js +0 -1
  138. package/features/security/roles/Installer/RolesInstaller.js.map +1 -1
  139. package/features/security/roles/UpdateRole/UpdateRoleUseCase.js +9 -3
  140. package/features/security/roles/UpdateRole/UpdateRoleUseCase.js.map +1 -1
  141. package/features/security/roles/UpdateRole/schema.d.ts +1 -1
  142. package/features/security/roles/UpdateRole/schema.js +1 -1
  143. package/features/security/roles/UpdateRole/schema.js.map +1 -1
  144. package/features/security/shared/description.d.ts +4 -0
  145. package/features/security/shared/description.js +7 -0
  146. package/features/security/shared/description.js.map +1 -0
  147. package/features/security/shared/index.d.ts +1 -0
  148. package/features/security/shared/index.js +1 -0
  149. package/features/security/teams/CreateTeam/CreateTeamUseCase.d.ts +3 -1
  150. package/features/security/teams/CreateTeam/CreateTeamUseCase.js +20 -8
  151. package/features/security/teams/CreateTeam/CreateTeamUseCase.js.map +1 -1
  152. package/features/security/teams/CreateTeam/schema.d.ts +1 -1
  153. package/features/security/teams/CreateTeam/schema.js +1 -1
  154. package/features/security/teams/CreateTeam/schema.js.map +1 -1
  155. package/features/security/teams/UpdateTeam/UpdateTeamUseCase.d.ts +3 -1
  156. package/features/security/teams/UpdateTeam/UpdateTeamUseCase.js +20 -5
  157. package/features/security/teams/UpdateTeam/UpdateTeamUseCase.js.map +1 -1
  158. package/features/security/teams/UpdateTeam/schema.d.ts +1 -1
  159. package/features/security/teams/UpdateTeam/schema.js +1 -1
  160. package/features/security/teams/UpdateTeam/schema.js.map +1 -1
  161. package/features/security/teams/shared/resolveRoleIdentifiers.d.ts +17 -0
  162. package/features/security/teams/shared/resolveRoleIdentifiers.js +32 -0
  163. package/features/security/teams/shared/resolveRoleIdentifiers.js.map +1 -0
  164. package/features/security/utils/getPermissionsFromRoles.d.ts +1 -1
  165. package/features/serviceDiscovery/ServiceDiscovery.d.ts +17 -0
  166. package/features/serviceDiscovery/ServiceDiscovery.js +22 -0
  167. package/features/serviceDiscovery/ServiceDiscovery.js.map +1 -0
  168. package/features/serviceDiscovery/__tests__/ServiceDiscovery.test.d.ts +1 -0
  169. package/features/serviceDiscovery/__tests__/ServiceDiscovery.test.js +111 -0
  170. package/features/serviceDiscovery/__tests__/ServiceDiscovery.test.js.map +1 -0
  171. package/features/serviceDiscovery/index.d.ts +3 -0
  172. package/features/serviceDiscovery/index.js +1 -0
  173. package/features/slugify/DefaultSlugify.d.ts +8 -0
  174. package/features/slugify/DefaultSlugify.js +20 -0
  175. package/features/slugify/DefaultSlugify.js.map +1 -0
  176. package/features/slugify/abstractions.d.ts +12 -0
  177. package/features/slugify/abstractions.js +5 -0
  178. package/features/slugify/abstractions.js.map +1 -0
  179. package/features/slugify/feature.d.ts +4 -0
  180. package/features/slugify/feature.js +11 -0
  181. package/features/slugify/feature.js.map +1 -0
  182. package/features/slugify/index.d.ts +3 -0
  183. package/features/slugify/index.js +2 -0
  184. package/features/storageOperations/abstractions.d.ts +21 -0
  185. package/features/storageOperations/abstractions.js +10 -0
  186. package/features/storageOperations/abstractions.js.map +1 -0
  187. package/features/stringFormatter/DefaultStringFormatter.d.ts +17 -0
  188. package/features/stringFormatter/DefaultStringFormatter.js +19 -0
  189. package/features/stringFormatter/DefaultStringFormatter.js.map +1 -0
  190. package/features/stringFormatter/abstractions.d.ts +11 -0
  191. package/features/stringFormatter/abstractions.js +5 -0
  192. package/features/stringFormatter/abstractions.js.map +1 -0
  193. package/features/stringFormatter/feature.d.ts +4 -0
  194. package/features/stringFormatter/feature.js +13 -0
  195. package/features/stringFormatter/feature.js.map +1 -0
  196. package/features/stringFormatter/index.d.ts +3 -0
  197. package/features/stringFormatter/index.js +2 -0
  198. package/features/task/TaskDefinition/abstractions.d.ts +76 -4
  199. package/features/task/TaskDefinition/abstractions.js +2 -1
  200. package/features/task/TaskDefinition/abstractions.js.map +1 -1
  201. package/features/tenancy/CreateTenant/CreateTenantUseCase.d.ts +1 -1
  202. package/features/tenancy/InstallTenant/InstallTenantUseCase.d.ts +1 -1
  203. package/features/tenancy/UpdateTenant/UpdateTenantUseCase.d.ts +2 -2
  204. package/features/users/CreateUser/decorators/CreateUserWithWcpIncrement.d.ts +1 -1
  205. package/features/wcp/WcpContext/WcpContext.d.ts +10 -5
  206. package/features/wcp/WcpContext/WcpContext.js +23 -2
  207. package/features/wcp/WcpContext/WcpContext.js.map +1 -1
  208. package/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.d.ts +25 -7
  209. package/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.js +57 -25
  210. package/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.js.map +1 -1
  211. package/features/wcp/WcpContext/feature.d.ts +1 -2
  212. package/features/wcp/WcpContext/feature.js +2 -2
  213. package/features/wcp/WcpContext/feature.js.map +1 -1
  214. package/features/wcp/WcpContext/index.d.ts +0 -1
  215. package/features/wcp/WcpContext/types.d.ts +0 -4
  216. package/features/wcp/WcpFeature.d.ts +1 -1
  217. package/features/wcp/WcpFeature.js +7 -2
  218. package/features/wcp/WcpFeature.js.map +1 -1
  219. package/features/wcp/WcpLicenseLoader.d.ts +25 -0
  220. package/features/wcp/WcpLicenseLoader.js +58 -0
  221. package/features/wcp/WcpLicenseLoader.js.map +1 -0
  222. package/features/wcp/WcpLicenseProvider.d.ts +21 -0
  223. package/features/wcp/WcpLicenseProvider.js +14 -0
  224. package/features/wcp/WcpLicenseProvider.js.map +1 -0
  225. package/features/wcp/resolveWcpProjectEnvironment.d.ts +9 -0
  226. package/features/wcp/resolveWcpProjectEnvironment.js +23 -0
  227. package/features/wcp/resolveWcpProjectEnvironment.js.map +1 -0
  228. package/graphql/ApiCoreSchemaFactory.d.ts +15 -0
  229. package/graphql/ApiCoreSchemaFactory.js +52 -0
  230. package/graphql/ApiCoreSchemaFactory.js.map +1 -0
  231. package/graphql/featureFlags/FeatureFlagsSchemaFactory.d.ts +9 -0
  232. package/graphql/featureFlags/FeatureFlagsSchemaFactory.js +49 -0
  233. package/graphql/featureFlags/FeatureFlagsSchemaFactory.js.map +1 -0
  234. package/graphql/security/NotAuthorizedResponse.d.ts +1 -1
  235. package/graphql/security/NotAuthorizedResponse.js +1 -1
  236. package/graphql/security/NotAuthorizedResponse.js.map +1 -1
  237. package/graphql/security/SecuritySchemaFactory.d.ts +14 -0
  238. package/graphql/security/SecuritySchemaFactory.js +23 -0
  239. package/graphql/security/SecuritySchemaFactory.js.map +1 -0
  240. package/graphql/security/addApiKeySchema.d.ts +2 -0
  241. package/graphql/security/{apiKey.gql.js → addApiKeySchema.js} +45 -27
  242. package/graphql/security/addApiKeySchema.js.map +1 -0
  243. package/graphql/security/addIdentitySchema.d.ts +2 -0
  244. package/graphql/security/{identity.gql.js → addIdentitySchema.js} +52 -35
  245. package/graphql/security/addIdentitySchema.js.map +1 -0
  246. package/graphql/security/addRoleSchema.d.ts +2 -0
  247. package/graphql/security/addRoleSchema.js +137 -0
  248. package/graphql/security/addRoleSchema.js.map +1 -0
  249. package/graphql/security/addSecurityBaseSchema.d.ts +2 -0
  250. package/graphql/security/{base.gql.js → addSecurityBaseSchema.js} +14 -16
  251. package/graphql/security/addSecurityBaseSchema.js.map +1 -0
  252. package/graphql/security/addTeamSchema.d.ts +2 -0
  253. package/graphql/security/addTeamSchema.js +157 -0
  254. package/graphql/security/addTeamSchema.js.map +1 -0
  255. package/graphql/system/SystemSchemaFactory.d.ts +9 -0
  256. package/graphql/system/SystemSchemaFactory.js +66 -0
  257. package/graphql/system/SystemSchemaFactory.js.map +1 -0
  258. package/graphql/users/UsersSchemaFactory.d.ts +9 -0
  259. package/graphql/users/UsersSchemaFactory.js +191 -0
  260. package/graphql/users/UsersSchemaFactory.js.map +1 -0
  261. package/graphql/wcp/WcpSchemaFactory.d.ts +9 -0
  262. package/graphql/wcp/{graphql.js → WcpSchemaFactory.js} +28 -18
  263. package/graphql/wcp/WcpSchemaFactory.js.map +1 -0
  264. package/index.d.ts +3 -1
  265. package/index.js +3 -1
  266. package/package.json +21 -24
  267. package/testing/environment.d.ts +14 -0
  268. package/testing/environment.js +18 -0
  269. package/testing/environment.js.map +1 -0
  270. package/types/core.d.ts +17 -5
  271. package/types/security.d.ts +1 -7
  272. package/types/tenancy.d.ts +0 -17
  273. package/types/users.d.ts +0 -13
  274. package/createApiCore.d.ts +0 -7
  275. package/createApiCore.js +0 -22
  276. package/createApiCore.js.map +0 -1
  277. package/features/ai/AiModelRegistry.d.ts +0 -12
  278. package/features/ai/AiModelRegistry.js +0 -28
  279. package/features/ai/AiModelRegistry.js.map +0 -1
  280. package/graphql/security/apiKey.gql.d.ts +0 -4
  281. package/graphql/security/apiKey.gql.js.map +0 -1
  282. package/graphql/security/base.gql.d.ts +0 -4
  283. package/graphql/security/base.gql.js.map +0 -1
  284. package/graphql/security/identity.gql.d.ts +0 -4
  285. package/graphql/security/identity.gql.js.map +0 -1
  286. package/graphql/security/index.d.ts +0 -1
  287. package/graphql/security/index.js +0 -15
  288. package/graphql/security/index.js.map +0 -1
  289. package/graphql/security/role.gql.d.ts +0 -4
  290. package/graphql/security/role.gql.js +0 -106
  291. package/graphql/security/role.gql.js.map +0 -1
  292. package/graphql/security/team.gql.d.ts +0 -4
  293. package/graphql/security/team.gql.js +0 -119
  294. package/graphql/security/team.gql.js.map +0 -1
  295. package/graphql/system/createSystemGraphQL.d.ts +0 -2
  296. package/graphql/system/createSystemGraphQL.js +0 -54
  297. package/graphql/system/createSystemGraphQL.js.map +0 -1
  298. package/graphql/users/user.gql.d.ts +0 -3
  299. package/graphql/users/user.gql.js +0 -167
  300. package/graphql/users/user.gql.js.map +0 -1
  301. package/graphql/wcp/graphql.d.ts +0 -2
  302. package/graphql/wcp/graphql.js.map +0 -1
  303. package/legacy/security/LegacyContext.d.ts +0 -36
  304. package/legacy/security/LegacyContext.js +0 -152
  305. package/legacy/security/LegacyContext.js.map +0 -1
  306. package/legacy/security/createSecurityContext.d.ts +0 -3
  307. package/legacy/security/createSecurityContext.js +0 -10
  308. package/legacy/security/createSecurityContext.js.map +0 -1
  309. package/legacy/security/plugins/apiKeyAuthentication.d.ts +0 -7
  310. package/legacy/security/plugins/apiKeyAuthentication.js +0 -20
  311. package/legacy/security/plugins/apiKeyAuthentication.js.map +0 -1
  312. package/legacy/security/plugins/apiKeyAuthorization.d.ts +0 -6
  313. package/legacy/security/plugins/apiKeyAuthorization.js +0 -13
  314. package/legacy/security/plugins/apiKeyAuthorization.js.map +0 -1
  315. package/legacy/security/plugins/authenticateUsingCookie.d.ts +0 -5
  316. package/legacy/security/plugins/authenticateUsingCookie.js +0 -23
  317. package/legacy/security/plugins/authenticateUsingCookie.js.map +0 -1
  318. package/legacy/security/plugins/authenticateUsingHttpHeader.d.ts +0 -5
  319. package/legacy/security/plugins/authenticateUsingHttpHeader.js +0 -20
  320. package/legacy/security/plugins/authenticateUsingHttpHeader.js.map +0 -1
  321. package/legacy/security/plugins/secureHeaders.d.ts +0 -1
  322. package/legacy/security/plugins/secureHeaders.js +0 -30
  323. package/legacy/security/plugins/secureHeaders.js.map +0 -1
  324. package/legacy/tenancy/LegacyContext.d.ts +0 -15
  325. package/legacy/tenancy/LegacyContext.js +0 -57
  326. package/legacy/tenancy/LegacyContext.js.map +0 -1
  327. package/legacy/tenancy/createTenancyContext.d.ts +0 -3
  328. package/legacy/tenancy/createTenancyContext.js +0 -31
  329. package/legacy/tenancy/createTenancyContext.js.map +0 -1
  330. package/legacy/users/LegacyContext.d.ts +0 -13
  331. package/legacy/users/LegacyContext.js +0 -55
  332. package/legacy/users/LegacyContext.js.map +0 -1
  333. package/legacy/users/createAdminUsersContext.d.ts +0 -3
  334. package/legacy/users/createAdminUsersContext.js +0 -12
  335. package/legacy/users/createAdminUsersContext.js.map +0 -1
  336. package/legacy/wcp/LegacyWcpContext.d.ts +0 -33
  337. package/legacy/wcp/LegacyWcpContext.js +0 -84
  338. package/legacy/wcp/LegacyWcpContext.js.map +0 -1
  339. package/legacy/wcp/context.d.ts +0 -5
  340. package/legacy/wcp/context.js +0 -46
  341. package/legacy/wcp/context.js.map +0 -1
@@ -0,0 +1,49 @@
1
+ import { CoreGraphQLSchemaFactory } from "@webiny/api-graphql/graphql/abstractions.js";
2
+ import { ErrorResponse, Response } from "@webiny/api-graphql/responses.js";
3
+ import { FeatureFlags } from "../../features/featureFlags/abstractions.js";
4
+ class FeatureFlagsSchemaFactoryImpl {
5
+ async execute(builder) {
6
+ builder.addTypeDefs(`
7
+ type FeatureFlagsError {
8
+ code: String
9
+ message: String
10
+ data: JSON
11
+ }
12
+
13
+ type FeatureFlagsResponse {
14
+ data: JSON
15
+ error: FeatureFlagsError
16
+ }
17
+
18
+ extend type Query {
19
+ featureFlags: FeatureFlagsResponse
20
+ }
21
+ `);
22
+ builder.addResolver({
23
+ path: "Query.featureFlags",
24
+ dependencies: [
25
+ FeatureFlags
26
+ ],
27
+ resolver: (featureFlags)=>async ()=>{
28
+ try {
29
+ return new Response(featureFlags.get().toDto());
30
+ } catch (e) {
31
+ return new ErrorResponse({
32
+ code: "COULD_NOT_GET_FEATURE_FLAGS",
33
+ message: e.message,
34
+ data: null,
35
+ stack: e.stack
36
+ });
37
+ }
38
+ }
39
+ });
40
+ return builder;
41
+ }
42
+ }
43
+ const FeatureFlagsSchemaFactory = CoreGraphQLSchemaFactory.createImplementation({
44
+ implementation: FeatureFlagsSchemaFactoryImpl,
45
+ dependencies: []
46
+ });
47
+ export { FeatureFlagsSchemaFactory };
48
+
49
+ //# sourceMappingURL=FeatureFlagsSchemaFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql/featureFlags/FeatureFlagsSchemaFactory.js","sources":["../../../src/graphql/featureFlags/FeatureFlagsSchemaFactory.ts"],"sourcesContent":["import { CoreGraphQLSchemaFactory } from \"@webiny/api-graphql/graphql/abstractions.js\";\nimport type { IGraphQLSchemaBuilder } from \"@webiny/api-graphql/features/GraphQLSchemaBuilder/abstractions.js\";\nimport { ErrorResponse, Response } from \"@webiny/api-graphql/responses.js\";\nimport { FeatureFlags } from \"~/features/featureFlags/abstractions.js\";\n\nclass FeatureFlagsSchemaFactoryImpl implements CoreGraphQLSchemaFactory.Interface {\n async execute(builder: IGraphQLSchemaBuilder): Promise<IGraphQLSchemaBuilder> {\n builder.addTypeDefs(/* GraphQL */ `\n type FeatureFlagsError {\n code: String\n message: String\n data: JSON\n }\n\n type FeatureFlagsResponse {\n data: JSON\n error: FeatureFlagsError\n }\n\n extend type Query {\n featureFlags: FeatureFlagsResponse\n }\n `);\n\n builder.addResolver({\n path: \"Query.featureFlags\",\n dependencies: [FeatureFlags],\n resolver: (featureFlags: FeatureFlags.Interface) => async () => {\n try {\n return new Response(featureFlags.get().toDto());\n } catch (e) {\n return new ErrorResponse({\n code: \"COULD_NOT_GET_FEATURE_FLAGS\",\n message: e.message,\n data: null,\n stack: e.stack\n });\n }\n }\n });\n\n return builder;\n }\n}\n\nexport const FeatureFlagsSchemaFactory = CoreGraphQLSchemaFactory.createImplementation({\n implementation: FeatureFlagsSchemaFactoryImpl,\n dependencies: []\n});\n"],"names":["FeatureFlagsSchemaFactoryImpl","builder","FeatureFlags","featureFlags","Response","e","ErrorResponse","FeatureFlagsSchemaFactory","CoreGraphQLSchemaFactory"],"mappings":";;;AAKA,MAAMA;IACF,MAAM,QAAQC,OAA8B,EAAkC;QAC1EA,QAAQ,WAAW,CAAe,CAAC;;;;;;;;;;;;;;;QAenC,CAAC;QAEDA,QAAQ,WAAW,CAAC;YAChB,MAAM;YACN,cAAc;gBAACC;aAAa;YAC5B,UAAU,CAACC,eAAyC;oBAChD,IAAI;wBACA,OAAO,IAAIC,SAASD,aAAa,GAAG,GAAG,KAAK;oBAChD,EAAE,OAAOE,GAAG;wBACR,OAAO,IAAIC,cAAc;4BACrB,MAAM;4BACN,SAASD,EAAE,OAAO;4BAClB,MAAM;4BACN,OAAOA,EAAE,KAAK;wBAClB;oBACJ;gBACJ;QACJ;QAEA,OAAOJ;IACX;AACJ;AAEO,MAAMM,4BAA4BC,yBAAyB,oBAAoB,CAAC;IACnF,gBAAgBR;IAChB,cAAc,EAAE;AACpB"}
@@ -1,4 +1,4 @@
1
- import { ErrorResponse } from "@webiny/handler-graphql/responses.js";
1
+ import { ErrorResponse } from "@webiny/api-graphql/responses.js";
2
2
  interface NotAuthorizedResponseArgsType {
3
3
  message: string;
4
4
  code: string | null;
@@ -1,4 +1,4 @@
1
- import { ErrorResponse } from "@webiny/handler-graphql/responses.js";
1
+ import { ErrorResponse } from "@webiny/api-graphql/responses.js";
2
2
  class NotAuthorizedResponse extends ErrorResponse {
3
3
  constructor({ message, code, data } = {}){
4
4
  super({
@@ -1 +1 @@
1
- {"version":3,"file":"graphql/security/NotAuthorizedResponse.js","sources":["../../../src/graphql/security/NotAuthorizedResponse.ts"],"sourcesContent":["import { ErrorResponse } from \"@webiny/handler-graphql/responses.js\";\n\ninterface NotAuthorizedResponseArgsType {\n message: string;\n code: string | null;\n data: any | null;\n}\n\n/** GraphQL not-authorized response helper. */\nexport class NotAuthorizedResponse extends ErrorResponse {\n constructor({ message, code, data }: Partial<NotAuthorizedResponseArgsType> = {}) {\n super({\n message: message || \"Not authorized!\",\n code: code || \"SECURITY_NOT_AUTHORIZED\",\n data\n });\n }\n}\n\nexport default NotAuthorizedResponse;\n"],"names":["NotAuthorizedResponse","ErrorResponse","message","code","data"],"mappings":";AASO,MAAMA,8BAA8BC;IACvC,YAAY,EAAEC,OAAO,EAAEC,IAAI,EAAEC,IAAI,EAA0C,GAAG,CAAC,CAAC,CAAE;QAC9E,KAAK,CAAC;YACF,SAASF,WAAW;YACpB,MAAMC,QAAQ;YACdC;QACJ;IACJ;AACJ;AAEA,uCAAeJ"}
1
+ {"version":3,"file":"graphql/security/NotAuthorizedResponse.js","sources":["../../../src/graphql/security/NotAuthorizedResponse.ts"],"sourcesContent":["import { ErrorResponse } from \"@webiny/api-graphql/responses.js\";\n\ninterface NotAuthorizedResponseArgsType {\n message: string;\n code: string | null;\n data: any | null;\n}\n\n/** GraphQL not-authorized response helper. */\nexport class NotAuthorizedResponse extends ErrorResponse {\n constructor({ message, code, data }: Partial<NotAuthorizedResponseArgsType> = {}) {\n super({\n message: message || \"Not authorized!\",\n code: code || \"SECURITY_NOT_AUTHORIZED\",\n data\n });\n }\n}\n\nexport default NotAuthorizedResponse;\n"],"names":["NotAuthorizedResponse","ErrorResponse","message","code","data"],"mappings":";AASO,MAAMA,8BAA8BC;IACvC,YAAY,EAAEC,OAAO,EAAEC,IAAI,EAAEC,IAAI,EAA0C,GAAG,CAAC,CAAC,CAAE;QAC9E,KAAK,CAAC;YACF,SAASF,WAAW;YACpB,MAAMC,QAAQ;YACdC;QACJ;IACJ;AACJ;AAEA,uCAAeJ"}
@@ -0,0 +1,14 @@
1
+ import { CoreGraphQLSchemaFactory } from "@webiny/api-graphql/graphql/abstractions.js";
2
+ import type { IGraphQLSchemaBuilder } from "@webiny/api-graphql/features/GraphQLSchemaBuilder/abstractions.js";
3
+ /**
4
+ * The security schema is one cohesive domain (it shares the SecurityQuery / SecurityMutation /
5
+ * SecurityError / SecurityBooleanResponse base types), composed of five internal parts:
6
+ * base, team, apiKey, role, identity.
7
+ */
8
+ declare class SecuritySchemaFactoryImpl implements CoreGraphQLSchemaFactory.Interface {
9
+ execute(builder: IGraphQLSchemaBuilder): Promise<IGraphQLSchemaBuilder>;
10
+ }
11
+ export declare const SecuritySchemaFactory: typeof SecuritySchemaFactoryImpl & {
12
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-graphql/graphql/abstractions.core.js").ICoreGraphQLSchemaFactory>;
13
+ };
14
+ export {};
@@ -0,0 +1,23 @@
1
+ import { CoreGraphQLSchemaFactory } from "@webiny/api-graphql/graphql/abstractions.js";
2
+ import { addSecurityBaseSchema } from "./addSecurityBaseSchema.js";
3
+ import { addApiKeySchema } from "./addApiKeySchema.js";
4
+ import { addRoleSchema } from "./addRoleSchema.js";
5
+ import { addTeamSchema } from "./addTeamSchema.js";
6
+ import { addIdentitySchema } from "./addIdentitySchema.js";
7
+ class SecuritySchemaFactoryImpl {
8
+ async execute(builder) {
9
+ addSecurityBaseSchema(builder);
10
+ addTeamSchema(builder);
11
+ addApiKeySchema(builder);
12
+ addRoleSchema(builder);
13
+ addIdentitySchema(builder);
14
+ return builder;
15
+ }
16
+ }
17
+ const SecuritySchemaFactory = CoreGraphQLSchemaFactory.createImplementation({
18
+ implementation: SecuritySchemaFactoryImpl,
19
+ dependencies: []
20
+ });
21
+ export { SecuritySchemaFactory };
22
+
23
+ //# sourceMappingURL=SecuritySchemaFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql/security/SecuritySchemaFactory.js","sources":["../../../src/graphql/security/SecuritySchemaFactory.ts"],"sourcesContent":["import { CoreGraphQLSchemaFactory } from \"@webiny/api-graphql/graphql/abstractions.js\";\nimport type { IGraphQLSchemaBuilder } from \"@webiny/api-graphql/features/GraphQLSchemaBuilder/abstractions.js\";\nimport { addSecurityBaseSchema } from \"./addSecurityBaseSchema.js\";\nimport { addApiKeySchema } from \"./addApiKeySchema.js\";\nimport { addRoleSchema } from \"./addRoleSchema.js\";\nimport { addTeamSchema } from \"./addTeamSchema.js\";\nimport { addIdentitySchema } from \"./addIdentitySchema.js\";\n\n/**\n * The security schema is one cohesive domain (it shares the SecurityQuery / SecurityMutation /\n * SecurityError / SecurityBooleanResponse base types), composed of five internal parts:\n * base, team, apiKey, role, identity.\n */\nclass SecuritySchemaFactoryImpl implements CoreGraphQLSchemaFactory.Interface {\n async execute(builder: IGraphQLSchemaBuilder): Promise<IGraphQLSchemaBuilder> {\n addSecurityBaseSchema(builder);\n addTeamSchema(builder);\n addApiKeySchema(builder);\n addRoleSchema(builder);\n addIdentitySchema(builder);\n\n return builder;\n }\n}\n\nexport const SecuritySchemaFactory = CoreGraphQLSchemaFactory.createImplementation({\n implementation: SecuritySchemaFactoryImpl,\n dependencies: []\n});\n"],"names":["SecuritySchemaFactoryImpl","builder","addSecurityBaseSchema","addTeamSchema","addApiKeySchema","addRoleSchema","addIdentitySchema","SecuritySchemaFactory","CoreGraphQLSchemaFactory"],"mappings":";;;;;;AAaA,MAAMA;IACF,MAAM,QAAQC,OAA8B,EAAkC;QAC1EC,sBAAsBD;QACtBE,cAAcF;QACdG,gBAAgBH;QAChBI,cAAcJ;QACdK,kBAAkBL;QAElB,OAAOA;IACX;AACJ;AAEO,MAAMM,wBAAwBC,yBAAyB,oBAAoB,CAAC;IAC/E,gBAAgBR;IAChB,cAAc,EAAE;AACpB"}
@@ -0,0 +1,2 @@
1
+ import type { IGraphQLSchemaBuilder } from "@webiny/api-graphql/features/GraphQLSchemaBuilder/abstractions.js";
2
+ export declare const addApiKeySchema: (builder: IGraphQLSchemaBuilder) => void;
@@ -1,12 +1,11 @@
1
- import { ErrorResponse, Response } from "@webiny/handler-graphql/responses.js";
2
- import { GraphQLSchemaPlugin } from "@webiny/handler-graphql/plugins/GraphQLSchemaPlugin.js";
1
+ import { ErrorResponse, Response } from "@webiny/api-graphql/responses.js";
3
2
  import { CreateApiKeyUseCase } from "../../features/security/apiKeys/CreateApiKey/index.js";
4
3
  import { UpdateApiKeyUseCase } from "../../features/security/apiKeys/UpdateApiKey/index.js";
5
4
  import { DeleteApiKeyUseCase } from "../../features/security/apiKeys/DeleteApiKey/index.js";
6
5
  import { ListApiKeysUseCase } from "../../features/security/apiKeys/ListApiKeys/index.js";
7
6
  import { GetApiKeyUseCase } from "../../features/security/apiKeys/GetApiKey/index.js";
8
- const apiKey_gql = new GraphQLSchemaPlugin({
9
- typeDefs: `
7
+ const addApiKeySchema = (builder)=>{
8
+ builder.addTypeDefs(`
10
9
  type SecurityApiKey {
11
10
  id: ID
12
11
  name: String
@@ -47,44 +46,63 @@ const apiKey_gql = new GraphQLSchemaPlugin({
47
46
  updateApiKey(id: ID!, data: SecurityApiKeyInput!): SecurityApiKeyResponse
48
47
  deleteApiKey(id: ID!): SecurityBooleanResponse
49
48
  }
50
- `,
51
- resolvers: {
52
- SecurityQuery: {
53
- async listApiKeys (_, __, context) {
54
- const list = context.container.resolve(ListApiKeysUseCase);
49
+ `);
50
+ builder.addResolver({
51
+ path: "SecurityQuery.listApiKeys",
52
+ dependencies: [
53
+ ListApiKeysUseCase
54
+ ],
55
+ resolver: (list)=>async ()=>{
55
56
  const result = await list.execute();
56
57
  if (result.isOk()) return new Response(result.value);
57
58
  return new ErrorResponse(result.error);
58
- },
59
- async getApiKey (_, args, context) {
60
- const getById = context.container.resolve(GetApiKeyUseCase);
59
+ }
60
+ });
61
+ builder.addResolver({
62
+ path: "SecurityQuery.getApiKey",
63
+ dependencies: [
64
+ GetApiKeyUseCase
65
+ ],
66
+ resolver: (getById)=>async ({ args })=>{
61
67
  const result = await getById.execute(args.id);
62
68
  if (result.isOk()) return new Response(result.value);
63
69
  return new ErrorResponse(result.error);
64
70
  }
65
- },
66
- SecurityMutation: {
67
- async createApiKey (_, args, context) {
68
- const createApiKey = context.container.resolve(CreateApiKeyUseCase);
71
+ });
72
+ builder.addResolver({
73
+ path: "SecurityMutation.createApiKey",
74
+ dependencies: [
75
+ CreateApiKeyUseCase
76
+ ],
77
+ resolver: (createApiKey)=>async ({ args })=>{
69
78
  const result = await createApiKey.execute(args.data);
70
79
  if (result.isOk()) return new Response(result.value);
71
80
  return new ErrorResponse(result.error);
72
- },
73
- async updateApiKey (_, args, context) {
74
- const updateApiKey = context.container.resolve(UpdateApiKeyUseCase);
81
+ }
82
+ });
83
+ builder.addResolver({
84
+ path: "SecurityMutation.updateApiKey",
85
+ dependencies: [
86
+ UpdateApiKeyUseCase
87
+ ],
88
+ resolver: (updateApiKey)=>async ({ args })=>{
75
89
  const result = await updateApiKey.execute(args.id, args.data);
76
90
  if (result.isOk()) return new Response(result.value);
77
91
  return new ErrorResponse(result.error);
78
- },
79
- async deleteApiKey (_, args, context) {
80
- const deleteApiKey = context.container.resolve(DeleteApiKeyUseCase);
92
+ }
93
+ });
94
+ builder.addResolver({
95
+ path: "SecurityMutation.deleteApiKey",
96
+ dependencies: [
97
+ DeleteApiKeyUseCase
98
+ ],
99
+ resolver: (deleteApiKey)=>async ({ args })=>{
81
100
  const result = await deleteApiKey.execute(args.id);
82
101
  if (result.isOk()) return new Response(true);
83
102
  return new ErrorResponse(result.error);
84
103
  }
85
- }
86
- }
87
- });
88
- export default apiKey_gql;
104
+ });
105
+ };
106
+ export { addApiKeySchema };
89
107
 
90
- //# sourceMappingURL=apiKey.gql.js.map
108
+ //# sourceMappingURL=addApiKeySchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql/security/addApiKeySchema.js","sources":["../../../src/graphql/security/addApiKeySchema.ts"],"sourcesContent":["import { Response, ErrorResponse } from \"@webiny/api-graphql/responses.js\";\nimport type { IGraphQLSchemaBuilder } from \"@webiny/api-graphql/features/GraphQLSchemaBuilder/abstractions.js\";\nimport { CreateApiKeyUseCase } from \"~/features/security/apiKeys/CreateApiKey/index.js\";\nimport { UpdateApiKeyUseCase } from \"~/features/security/apiKeys/UpdateApiKey/index.js\";\nimport { DeleteApiKeyUseCase } from \"~/features/security/apiKeys/DeleteApiKey/index.js\";\nimport { ListApiKeysUseCase } from \"~/features/security/apiKeys/ListApiKeys/index.js\";\nimport { GetApiKeyUseCase } from \"~/features/security/apiKeys/GetApiKey/index.js\";\n\nexport const addApiKeySchema = (builder: IGraphQLSchemaBuilder): void => {\n builder.addTypeDefs(/* GraphQL */ `\n type SecurityApiKey {\n id: ID\n name: String\n slug: String\n description: String\n token: String\n permissions: [JSON]\n createdOn: DateTime\n createdBy: SecurityCreatedBy\n }\n\n input SecurityApiKeyInput {\n id: ID\n name: String!\n slug: String\n description: String\n token: String\n permissions: [JSON]!\n }\n\n type SecurityApiKeyResponse {\n data: SecurityApiKey\n error: SecurityError\n }\n\n type SecurityApiKeyListResponse {\n data: [SecurityApiKey!]\n error: SecurityError\n }\n\n extend type SecurityQuery {\n listApiKeys: SecurityApiKeyListResponse\n getApiKey(id: ID!): SecurityApiKeyResponse\n }\n\n extend type SecurityMutation {\n createApiKey(data: SecurityApiKeyInput!): SecurityApiKeyResponse\n updateApiKey(id: ID!, data: SecurityApiKeyInput!): SecurityApiKeyResponse\n deleteApiKey(id: ID!): SecurityBooleanResponse\n }\n `);\n\n builder.addResolver({\n path: \"SecurityQuery.listApiKeys\",\n dependencies: [ListApiKeysUseCase],\n resolver: (list: ListApiKeysUseCase.Interface) => async () => {\n const result = await list.execute();\n\n if (result.isOk()) {\n return new Response(result.value);\n }\n return new ErrorResponse(result.error);\n }\n });\n\n builder.addResolver<{ id: string }>({\n path: \"SecurityQuery.getApiKey\",\n dependencies: [GetApiKeyUseCase],\n resolver:\n (getById: GetApiKeyUseCase.Interface) =>\n async ({ args }) => {\n const result = await getById.execute(args.id);\n\n if (result.isOk()) {\n return new Response(result.value);\n }\n return new ErrorResponse(result.error);\n }\n });\n\n builder.addResolver<{ data: any }>({\n path: \"SecurityMutation.createApiKey\",\n dependencies: [CreateApiKeyUseCase],\n resolver:\n (createApiKey: CreateApiKeyUseCase.Interface) =>\n async ({ args }) => {\n const result = await createApiKey.execute(args.data);\n\n if (result.isOk()) {\n return new Response(result.value);\n }\n return new ErrorResponse(result.error);\n }\n });\n\n builder.addResolver<{ id: string; data: any }>({\n path: \"SecurityMutation.updateApiKey\",\n dependencies: [UpdateApiKeyUseCase],\n resolver:\n (updateApiKey: UpdateApiKeyUseCase.Interface) =>\n async ({ args }) => {\n const result = await updateApiKey.execute(args.id, args.data);\n\n if (result.isOk()) {\n return new Response(result.value);\n }\n return new ErrorResponse(result.error);\n }\n });\n\n builder.addResolver<{ id: string }>({\n path: \"SecurityMutation.deleteApiKey\",\n dependencies: [DeleteApiKeyUseCase],\n resolver:\n (deleteApiKey: DeleteApiKeyUseCase.Interface) =>\n async ({ args }) => {\n const result = await deleteApiKey.execute(args.id);\n\n if (result.isOk()) {\n return new Response(true);\n }\n return new ErrorResponse(result.error);\n }\n });\n};\n"],"names":["addApiKeySchema","builder","ListApiKeysUseCase","list","result","Response","ErrorResponse","GetApiKeyUseCase","getById","args","CreateApiKeyUseCase","createApiKey","UpdateApiKeyUseCase","updateApiKey","DeleteApiKeyUseCase","deleteApiKey"],"mappings":";;;;;;AAQO,MAAMA,kBAAkB,CAACC;IAC5BA,QAAQ,WAAW,CAAe,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAyCnC,CAAC;IAEDA,QAAQ,WAAW,CAAC;QAChB,MAAM;QACN,cAAc;YAACC;SAAmB;QAClC,UAAU,CAACC,OAAuC;gBAC9C,MAAMC,SAAS,MAAMD,KAAK,OAAO;gBAEjC,IAAIC,OAAO,IAAI,IACX,OAAO,IAAIC,SAASD,OAAO,KAAK;gBAEpC,OAAO,IAAIE,cAAcF,OAAO,KAAK;YACzC;IACJ;IAEAH,QAAQ,WAAW,CAAiB;QAChC,MAAM;QACN,cAAc;YAACM;SAAiB;QAChC,UACI,CAACC,UACD,OAAO,EAAEC,IAAI,EAAE;gBACX,MAAML,SAAS,MAAMI,QAAQ,OAAO,CAACC,KAAK,EAAE;gBAE5C,IAAIL,OAAO,IAAI,IACX,OAAO,IAAIC,SAASD,OAAO,KAAK;gBAEpC,OAAO,IAAIE,cAAcF,OAAO,KAAK;YACzC;IACR;IAEAH,QAAQ,WAAW,CAAgB;QAC/B,MAAM;QACN,cAAc;YAACS;SAAoB;QACnC,UACI,CAACC,eACD,OAAO,EAAEF,IAAI,EAAE;gBACX,MAAML,SAAS,MAAMO,aAAa,OAAO,CAACF,KAAK,IAAI;gBAEnD,IAAIL,OAAO,IAAI,IACX,OAAO,IAAIC,SAASD,OAAO,KAAK;gBAEpC,OAAO,IAAIE,cAAcF,OAAO,KAAK;YACzC;IACR;IAEAH,QAAQ,WAAW,CAA4B;QAC3C,MAAM;QACN,cAAc;YAACW;SAAoB;QACnC,UACI,CAACC,eACD,OAAO,EAAEJ,IAAI,EAAE;gBACX,MAAML,SAAS,MAAMS,aAAa,OAAO,CAACJ,KAAK,EAAE,EAAEA,KAAK,IAAI;gBAE5D,IAAIL,OAAO,IAAI,IACX,OAAO,IAAIC,SAASD,OAAO,KAAK;gBAEpC,OAAO,IAAIE,cAAcF,OAAO,KAAK;YACzC;IACR;IAEAH,QAAQ,WAAW,CAAiB;QAChC,MAAM;QACN,cAAc;YAACa;SAAoB;QACnC,UACI,CAACC,eACD,OAAO,EAAEN,IAAI,EAAE;gBACX,MAAML,SAAS,MAAMW,aAAa,OAAO,CAACN,KAAK,EAAE;gBAEjD,IAAIL,OAAO,IAAI,IACX,OAAO,IAAIC,SAAS;gBAExB,OAAO,IAAIC,cAAcF,OAAO,KAAK;YACzC;IACR;AACJ"}
@@ -0,0 +1,2 @@
1
+ import type { IGraphQLSchemaBuilder } from "@webiny/api-graphql/features/GraphQLSchemaBuilder/abstractions.js";
2
+ export declare const addIdentitySchema: (builder: IGraphQLSchemaBuilder) => void;
@@ -1,21 +1,25 @@
1
- import { GraphQLSchemaPlugin } from "@webiny/handler-graphql/plugins/GraphQLSchemaPlugin.js";
2
- import { ErrorResponse, Response } from "@webiny/handler-graphql";
1
+ import { ErrorResponse, Response } from "@webiny/api-graphql";
3
2
  import { EventPublisher } from "../../features/eventPublisher/index.js";
4
3
  import { AfterLoginEvent } from "../../features/security/login/index.js";
5
4
  import { GetIdentityProfileUseCase } from "../../features/users/GetIdentityProfile/index.js";
6
5
  import { TeamsRepository } from "../../features/security/teams/shared/abstractions.js";
7
6
  import { RolesRepository } from "../../features/security/roles/shared/abstractions.js";
8
7
  import { IdentityContext } from "../../features/security/IdentityContext/index.js";
8
+ import { TenantContext } from "../../features/tenancy/TenantContext/index.js";
9
+ import { GetTenantByIdUseCase } from "../../features/tenancy/GetTenantById/index.js";
10
+ import { GetRootTenantUseCase } from "../../features/tenancy/GetRootTenant/index.js";
9
11
  import { ProfileMapper } from "./ProfileMapper.js";
10
- const getDefaultTenant = async (context)=>{
11
- const identity = context.security.getIdentity();
12
+ const getDefaultTenant = async (identityContext, getTenantById, getRootTenant)=>{
13
+ const identity = identityContext.getIdentity();
12
14
  const defaultTenantId = identity.context.defaultTenantId ?? "root";
13
- const defaultTenant = await context.tenancy.getTenantById(defaultTenantId);
14
- if (defaultTenant) return defaultTenant;
15
- return context.tenancy.getRootTenant();
15
+ const tenantResult = await getTenantById.execute(defaultTenantId);
16
+ if (tenantResult.isOk()) return tenantResult.value;
17
+ const rootResult = await getRootTenant.execute();
18
+ if (rootResult.isFail()) throw rootResult.error;
19
+ return rootResult.value;
16
20
  };
17
- const identity_gql = new GraphQLSchemaPlugin({
18
- typeDefs: `
21
+ const addIdentitySchema = (builder)=>{
22
+ builder.addTypeDefs(`
19
23
  type SecurityIdentityTenant {
20
24
  id: ID!
21
25
  name: String!
@@ -62,28 +66,30 @@ const identity_gql = new GraphQLSchemaPlugin({
62
66
  "Login using idToken obtained from a 3rd party identity provider"
63
67
  login: SecurityIdentityLoginResponse
64
68
  }
65
- `,
66
- resolvers: {
67
- SecurityMutation: {
68
- login: async (_, __, context)=>{
69
- const identityContext = context.container.resolve(IdentityContext);
69
+ `);
70
+ builder.addResolver({
71
+ path: "SecurityMutation.login",
72
+ dependencies: [
73
+ IdentityContext,
74
+ EventPublisher,
75
+ RolesRepository,
76
+ TeamsRepository,
77
+ GetIdentityProfileUseCase
78
+ ],
79
+ resolver: (identityContext, eventPublisher, rolesRepo, teamsRepo, getProfile)=>async ()=>{
70
80
  const identity = identityContext.getIdentity();
71
81
  if (identity.isAnonymous()) return new ErrorResponse({
72
82
  code: "Security/Identity/NotAuthenticated",
73
83
  message: "Unauthenticated!"
74
84
  });
75
85
  try {
76
- const eventPublisher = context.container.resolve(EventPublisher);
77
86
  await eventPublisher.publish(new AfterLoginEvent({
78
87
  identity
79
88
  }));
80
89
  } catch (err) {
81
90
  return new ErrorResponse(err);
82
91
  }
83
- const rolesRepo = context.container.resolve(RolesRepository);
84
- const teamsRepo = context.container.resolve(TeamsRepository);
85
- const getProfile = context.container.resolve(GetIdentityProfileUseCase);
86
- const result = await context.security.withoutAuthorization(async ()=>getProfile.execute(identity.id));
92
+ const result = await identityContext.withoutAuthorization(async ()=>getProfile.execute(identity.id));
87
93
  if (result.isFail()) return new ErrorResponse({
88
94
  code: "Security/Identity/NotAuthorized",
89
95
  message: "Missing user profile!"
@@ -102,20 +108,31 @@ const identity_gql = new GraphQLSchemaPlugin({
102
108
  teams
103
109
  });
104
110
  }
105
- },
106
- SecurityIdentity: {
107
- defaultTenant (_, __, context) {
108
- return getDefaultTenant(context);
109
- },
110
- currentTenant (_, __, context) {
111
- return context.tenancy.getCurrentTenant();
112
- },
113
- permissions (_, __, context) {
114
- return context.security.listPermissions();
115
- }
116
- }
117
- }
118
- });
111
+ });
112
+ builder.addResolver({
113
+ path: "SecurityIdentity.defaultTenant",
114
+ dependencies: [
115
+ IdentityContext,
116
+ GetTenantByIdUseCase,
117
+ GetRootTenantUseCase
118
+ ],
119
+ resolver: (identityContext, getTenantById, getRootTenant)=>()=>getDefaultTenant(identityContext, getTenantById, getRootTenant)
120
+ });
121
+ builder.addResolver({
122
+ path: "SecurityIdentity.currentTenant",
123
+ dependencies: [
124
+ TenantContext
125
+ ],
126
+ resolver: (tenantContext)=>()=>tenantContext.getTenant()
127
+ });
128
+ builder.addResolver({
129
+ path: "SecurityIdentity.permissions",
130
+ dependencies: [
131
+ IdentityContext
132
+ ],
133
+ resolver: (identityContext)=>()=>identityContext.listPermissions()
134
+ });
135
+ };
119
136
  const getRoles = async (user, rolesRepo)=>{
120
137
  const roleIds = user.roles ?? [];
121
138
  if (roleIds.length > 0) {
@@ -148,6 +165,6 @@ const getTeams = async (user, teamsRepo)=>{
148
165
  }
149
166
  return [];
150
167
  };
151
- export default identity_gql;
168
+ export { addIdentitySchema };
152
169
 
153
- //# sourceMappingURL=identity.gql.js.map
170
+ //# sourceMappingURL=addIdentitySchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql/security/addIdentitySchema.js","sources":["../../../src/graphql/security/addIdentitySchema.ts"],"sourcesContent":["import type { IGraphQLSchemaBuilder } from \"@webiny/api-graphql/features/GraphQLSchemaBuilder/abstractions.js\";\nimport { ErrorResponse, Response } from \"@webiny/api-graphql\";\nimport { EventPublisher } from \"~/features/eventPublisher/index.js\";\nimport { AfterLoginEvent } from \"~/features/security/login/index.js\";\nimport { GetIdentityProfileUseCase } from \"~/features/users/GetIdentityProfile/index.js\";\nimport type { AdminUser } from \"~/types/users.js\";\nimport { TeamsRepository } from \"~/features/security/teams/shared/abstractions.js\";\nimport { RolesRepository } from \"~/features/security/roles/shared/abstractions.js\";\nimport { IdentityContext } from \"~/features/security/IdentityContext/index.js\";\nimport { TenantContext } from \"~/features/tenancy/TenantContext/index.js\";\nimport { GetTenantByIdUseCase } from \"~/features/tenancy/GetTenantById/index.js\";\nimport { GetRootTenantUseCase } from \"~/features/tenancy/GetRootTenant/index.js\";\nimport { ProfileMapper } from \"./ProfileMapper.js\";\n\nconst getDefaultTenant = async (\n identityContext: IdentityContext.Interface,\n getTenantById: GetTenantByIdUseCase.Interface,\n getRootTenant: GetRootTenantUseCase.Interface\n) => {\n const identity = identityContext.getIdentity();\n const defaultTenantId = identity.context.defaultTenantId ?? \"root\";\n\n const tenantResult = await getTenantById.execute(defaultTenantId);\n if (tenantResult.isOk()) {\n return tenantResult.value;\n }\n\n const rootResult = await getRootTenant.execute();\n if (rootResult.isFail()) {\n throw rootResult.error;\n }\n return rootResult.value;\n};\n\nexport const addIdentitySchema = (builder: IGraphQLSchemaBuilder): void => {\n builder.addTypeDefs(/* GraphQL */ `\n type SecurityIdentityTenant {\n id: ID!\n name: String!\n }\n type SecurityIdentityProfileRole {\n id: String!\n slug: String!\n name: String!\n }\n\n type SecurityIdentityProfileTeam {\n id: String!\n slug: String!\n name: String!\n }\n\n type SecurityIdentityProfile {\n firstName: String\n lastName: String\n email: String\n avatar: JSON\n external: Boolean!\n createdOn: DateTime!\n }\n\n type SecurityIdentity {\n id: ID!\n type: String!\n displayName: String!\n roles: [SecurityIdentityProfileRole!]!\n teams: [SecurityIdentityProfileTeam!]!\n permissions: [JSON!]!\n profile: SecurityIdentityProfile!\n currentTenant: SecurityIdentityTenant!\n defaultTenant: SecurityIdentityTenant!\n }\n\n type SecurityIdentityLoginResponse {\n data: SecurityIdentity\n error: SecurityError\n }\n\n extend type SecurityMutation {\n \"Login using idToken obtained from a 3rd party identity provider\"\n login: SecurityIdentityLoginResponse\n }\n `);\n\n builder.addResolver({\n path: \"SecurityMutation.login\",\n dependencies: [\n IdentityContext,\n EventPublisher,\n RolesRepository,\n TeamsRepository,\n GetIdentityProfileUseCase\n ],\n resolver:\n (\n identityContext: IdentityContext.Interface,\n eventPublisher: EventPublisher.Interface,\n rolesRepo: RolesRepository.Interface,\n teamsRepo: TeamsRepository.Interface,\n getProfile: GetIdentityProfileUseCase.Interface\n ) =>\n async () => {\n const identity = identityContext.getIdentity();\n if (identity.isAnonymous()) {\n return new ErrorResponse({\n code: \"Security/Identity/NotAuthenticated\",\n message: \"Unauthenticated!\"\n });\n }\n\n try {\n await eventPublisher.publish(new AfterLoginEvent({ identity }));\n } catch (err) {\n return new ErrorResponse(err);\n }\n\n const result = await identityContext.withoutAuthorization(async () => {\n return getProfile.execute(identity.id);\n });\n\n if (result.isFail()) {\n return new ErrorResponse({\n code: \"Security/Identity/NotAuthorized\",\n message: \"Missing user profile!\"\n });\n }\n\n const user = result.value;\n\n const [roles, teams] = await Promise.all([\n getRoles(user, rolesRepo),\n getTeams(user, teamsRepo)\n ]);\n\n const profileMapper = new ProfileMapper();\n const profile = await profileMapper.toDTO(user);\n\n return new Response({\n ...identity.toJson(),\n profile,\n roles,\n teams\n });\n }\n });\n\n builder.addResolver({\n path: \"SecurityIdentity.defaultTenant\",\n dependencies: [IdentityContext, GetTenantByIdUseCase, GetRootTenantUseCase],\n resolver:\n (\n identityContext: IdentityContext.Interface,\n getTenantById: GetTenantByIdUseCase.Interface,\n getRootTenant: GetRootTenantUseCase.Interface\n ) =>\n () =>\n getDefaultTenant(identityContext, getTenantById, getRootTenant)\n });\n\n builder.addResolver({\n path: \"SecurityIdentity.currentTenant\",\n dependencies: [TenantContext],\n resolver: (tenantContext: TenantContext.Interface) => () => tenantContext.getTenant()\n });\n\n builder.addResolver({\n path: \"SecurityIdentity.permissions\",\n dependencies: [IdentityContext],\n resolver: (identityContext: IdentityContext.Interface) => () =>\n identityContext.listPermissions()\n });\n};\n\nconst getRoles = async (user: AdminUser, rolesRepo: RolesRepository.Interface) => {\n const roleIds = user.roles ?? [];\n if (roleIds.length > 0) {\n const result = await rolesRepo.list({\n where: { id_in: roleIds }\n });\n\n if (result.isOk()) {\n return result.value.map(role => ({\n id: role.id,\n slug: role.slug,\n name: role.name\n }));\n }\n }\n\n return [];\n};\n\nconst getTeams = async (user: AdminUser, teamsRepo: TeamsRepository.Interface) => {\n const teamIds = user.teams ?? [];\n if (teamIds.length > 0) {\n const result = await teamsRepo.list({\n where: { id_in: teamIds }\n });\n if (result.isOk()) {\n return result.value.map(team => ({\n id: team.id,\n slug: team.slug,\n name: team.name\n }));\n }\n }\n return [];\n};\n"],"names":["getDefaultTenant","identityContext","getTenantById","getRootTenant","identity","defaultTenantId","tenantResult","rootResult","addIdentitySchema","builder","IdentityContext","EventPublisher","RolesRepository","TeamsRepository","GetIdentityProfileUseCase","eventPublisher","rolesRepo","teamsRepo","getProfile","ErrorResponse","AfterLoginEvent","err","result","user","roles","teams","Promise","getRoles","getTeams","profileMapper","ProfileMapper","profile","Response","GetTenantByIdUseCase","GetRootTenantUseCase","TenantContext","tenantContext","roleIds","role","teamIds","team"],"mappings":";;;;;;;;;;;AAcA,MAAMA,mBAAmB,OACrBC,iBACAC,eACAC;IAEA,MAAMC,WAAWH,gBAAgB,WAAW;IAC5C,MAAMI,kBAAkBD,SAAS,OAAO,CAAC,eAAe,IAAI;IAE5D,MAAME,eAAe,MAAMJ,cAAc,OAAO,CAACG;IACjD,IAAIC,aAAa,IAAI,IACjB,OAAOA,aAAa,KAAK;IAG7B,MAAMC,aAAa,MAAMJ,cAAc,OAAO;IAC9C,IAAII,WAAW,MAAM,IACjB,MAAMA,WAAW,KAAK;IAE1B,OAAOA,WAAW,KAAK;AAC3B;AAEO,MAAMC,oBAAoB,CAACC;IAC9BA,QAAQ,WAAW,CAAe,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+CnC,CAAC;IAEDA,QAAQ,WAAW,CAAC;QAChB,MAAM;QACN,cAAc;YACVC;YACAC;YACAC;YACAC;YACAC;SACH;QACD,UACI,CACIb,iBACAc,gBACAC,WACAC,WACAC,aAEJ;gBACI,MAAMd,WAAWH,gBAAgB,WAAW;gBAC5C,IAAIG,SAAS,WAAW,IACpB,OAAO,IAAIe,cAAc;oBACrB,MAAM;oBACN,SAAS;gBACb;gBAGJ,IAAI;oBACA,MAAMJ,eAAe,OAAO,CAAC,IAAIK,gBAAgB;wBAAEhB;oBAAS;gBAChE,EAAE,OAAOiB,KAAK;oBACV,OAAO,IAAIF,cAAcE;gBAC7B;gBAEA,MAAMC,SAAS,MAAMrB,gBAAgB,oBAAoB,CAAC,UAC/CiB,WAAW,OAAO,CAACd,SAAS,EAAE;gBAGzC,IAAIkB,OAAO,MAAM,IACb,OAAO,IAAIH,cAAc;oBACrB,MAAM;oBACN,SAAS;gBACb;gBAGJ,MAAMI,OAAOD,OAAO,KAAK;gBAEzB,MAAM,CAACE,OAAOC,MAAM,GAAG,MAAMC,QAAQ,GAAG,CAAC;oBACrCC,SAASJ,MAAMP;oBACfY,SAASL,MAAMN;iBAClB;gBAED,MAAMY,gBAAgB,IAAIC;gBAC1B,MAAMC,UAAU,MAAMF,cAAc,KAAK,CAACN;gBAE1C,OAAO,IAAIS,SAAS;oBAChB,GAAG5B,SAAS,MAAM,EAAE;oBACpB2B;oBACAP;oBACAC;gBACJ;YACJ;IACR;IAEAhB,QAAQ,WAAW,CAAC;QAChB,MAAM;QACN,cAAc;YAACC;YAAiBuB;YAAsBC;SAAqB;QAC3E,UACI,CACIjC,iBACAC,eACAC,gBAEJ,IACIH,iBAAiBC,iBAAiBC,eAAeC;IAC7D;IAEAM,QAAQ,WAAW,CAAC;QAChB,MAAM;QACN,cAAc;YAAC0B;SAAc;QAC7B,UAAU,CAACC,gBAA2C,IAAMA,cAAc,SAAS;IACvF;IAEA3B,QAAQ,WAAW,CAAC;QAChB,MAAM;QACN,cAAc;YAACC;SAAgB;QAC/B,UAAU,CAACT,kBAA+C,IACtDA,gBAAgB,eAAe;IACvC;AACJ;AAEA,MAAM0B,WAAW,OAAOJ,MAAiBP;IACrC,MAAMqB,UAAUd,KAAK,KAAK,IAAI,EAAE;IAChC,IAAIc,QAAQ,MAAM,GAAG,GAAG;QACpB,MAAMf,SAAS,MAAMN,UAAU,IAAI,CAAC;YAChC,OAAO;gBAAE,OAAOqB;YAAQ;QAC5B;QAEA,IAAIf,OAAO,IAAI,IACX,OAAOA,OAAO,KAAK,CAAC,GAAG,CAACgB,CAAAA,OAAS;gBAC7B,IAAIA,KAAK,EAAE;gBACX,MAAMA,KAAK,IAAI;gBACf,MAAMA,KAAK,IAAI;YACnB;IAER;IAEA,OAAO,EAAE;AACb;AAEA,MAAMV,WAAW,OAAOL,MAAiBN;IACrC,MAAMsB,UAAUhB,KAAK,KAAK,IAAI,EAAE;IAChC,IAAIgB,QAAQ,MAAM,GAAG,GAAG;QACpB,MAAMjB,SAAS,MAAML,UAAU,IAAI,CAAC;YAChC,OAAO;gBAAE,OAAOsB;YAAQ;QAC5B;QACA,IAAIjB,OAAO,IAAI,IACX,OAAOA,OAAO,KAAK,CAAC,GAAG,CAACkB,CAAAA,OAAS;gBAC7B,IAAIA,KAAK,EAAE;gBACX,MAAMA,KAAK,IAAI;gBACf,MAAMA,KAAK,IAAI;YACnB;IAER;IACA,OAAO,EAAE;AACb"}
@@ -0,0 +1,2 @@
1
+ import type { IGraphQLSchemaBuilder } from "@webiny/api-graphql/features/GraphQLSchemaBuilder/abstractions.js";
2
+ export declare const addRoleSchema: (builder: IGraphQLSchemaBuilder) => void;
@@ -0,0 +1,137 @@
1
+ import { ErrorResponse, ListErrorResponse, ListResponse, Response } from "@webiny/api-graphql/responses.js";
2
+ import { GetRoleUseCase } from "../../features/security/roles/GetRole/index.js";
3
+ import { ListRolesUseCase } from "../../features/security/roles/ListRoles/index.js";
4
+ import { CreateRoleUseCase } from "../../features/security/roles/CreateRole/index.js";
5
+ import { UpdateRoleUseCase } from "../../features/security/roles/UpdateRole/index.js";
6
+ import { DeleteRoleUseCase } from "../../features/security/roles/DeleteRole/index.js";
7
+ const addRoleSchema = (builder)=>{
8
+ builder.addTypeDefs(`
9
+ type SecurityRole {
10
+ id: ID
11
+ name: String
12
+ slug: String
13
+ createdOn: DateTime
14
+ description: String
15
+ permissions: [JSON]
16
+ system: Boolean!
17
+ plugin: Boolean
18
+ }
19
+
20
+ input SecurityRoleCreateInput {
21
+ name: String!
22
+ slug: String!
23
+ description: String
24
+ permissions: [JSON!]!
25
+ }
26
+
27
+ input SecurityRoleUpdateInput {
28
+ name: String
29
+ description: String
30
+ permissions: [JSON!]
31
+ }
32
+
33
+ type SecurityRoleResponse {
34
+ data: SecurityRole
35
+ error: SecurityError
36
+ }
37
+
38
+ type SecurityRoleListResponse {
39
+ data: [SecurityRole]
40
+ error: SecurityError
41
+ }
42
+
43
+ input GetRoleWhereInput {
44
+ id: ID
45
+ slug: String
46
+ }
47
+
48
+ extend type SecurityQuery {
49
+ getRole(where: GetRoleWhereInput!): SecurityRoleResponse
50
+ listRoles: SecurityRoleListResponse
51
+ }
52
+
53
+ extend type SecurityMutation {
54
+ createRole(data: SecurityRoleCreateInput!): SecurityRoleResponse
55
+ updateRole(id: ID!, data: SecurityRoleUpdateInput!): SecurityRoleResponse
56
+ deleteRole(id: ID!): SecurityBooleanResponse
57
+ }
58
+ `);
59
+ builder.addResolver({
60
+ path: "SecurityQuery.getRole",
61
+ dependencies: [
62
+ GetRoleUseCase
63
+ ],
64
+ resolver: (useCase)=>async ({ args })=>{
65
+ try {
66
+ const result = await useCase.execute(args.where);
67
+ if (result.isFail()) throw result.error;
68
+ return new Response(result.value);
69
+ } catch (e) {
70
+ return new ErrorResponse(e);
71
+ }
72
+ }
73
+ });
74
+ builder.addResolver({
75
+ path: "SecurityQuery.listRoles",
76
+ dependencies: [
77
+ ListRolesUseCase
78
+ ],
79
+ resolver: (useCase)=>async ()=>{
80
+ try {
81
+ const result = await useCase.execute();
82
+ if (result.isFail()) throw result.error;
83
+ return new ListResponse(result.value);
84
+ } catch (e) {
85
+ return new ListErrorResponse(e);
86
+ }
87
+ }
88
+ });
89
+ builder.addResolver({
90
+ path: "SecurityMutation.createRole",
91
+ dependencies: [
92
+ CreateRoleUseCase
93
+ ],
94
+ resolver: (useCase)=>async ({ args })=>{
95
+ try {
96
+ const result = await useCase.execute(args.data);
97
+ if (result.isFail()) throw result.error;
98
+ return new Response(result.value);
99
+ } catch (e) {
100
+ return new ErrorResponse(e);
101
+ }
102
+ }
103
+ });
104
+ builder.addResolver({
105
+ path: "SecurityMutation.updateRole",
106
+ dependencies: [
107
+ UpdateRoleUseCase
108
+ ],
109
+ resolver: (useCase)=>async ({ args })=>{
110
+ try {
111
+ const result = await useCase.execute(args.id, args.data);
112
+ if (result.isFail()) throw result.error;
113
+ return new Response(result.value);
114
+ } catch (e) {
115
+ return new ErrorResponse(e);
116
+ }
117
+ }
118
+ });
119
+ builder.addResolver({
120
+ path: "SecurityMutation.deleteRole",
121
+ dependencies: [
122
+ DeleteRoleUseCase
123
+ ],
124
+ resolver: (useCase)=>async ({ args })=>{
125
+ try {
126
+ const result = await useCase.execute(args.id);
127
+ if (result.isFail()) throw result.error;
128
+ return new Response(true);
129
+ } catch (e) {
130
+ return new ErrorResponse(e);
131
+ }
132
+ }
133
+ });
134
+ };
135
+ export { addRoleSchema };
136
+
137
+ //# sourceMappingURL=addRoleSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql/security/addRoleSchema.js","sources":["../../../src/graphql/security/addRoleSchema.ts"],"sourcesContent":["import {\n ErrorResponse,\n ListErrorResponse,\n ListResponse,\n Response\n} from \"@webiny/api-graphql/responses.js\";\nimport type { IGraphQLSchemaBuilder } from \"@webiny/api-graphql/features/GraphQLSchemaBuilder/abstractions.js\";\nimport { GetRoleUseCase } from \"~/features/security/roles/GetRole/index.js\";\nimport { ListRolesUseCase } from \"~/features/security/roles/ListRoles/index.js\";\nimport { CreateRoleUseCase } from \"~/features/security/roles/CreateRole/index.js\";\nimport { UpdateRoleUseCase } from \"~/features/security/roles/UpdateRole/index.js\";\nimport { DeleteRoleUseCase } from \"~/features/security/roles/DeleteRole/index.js\";\n\nexport const addRoleSchema = (builder: IGraphQLSchemaBuilder): void => {\n builder.addTypeDefs(/* GraphQL */ `\n type SecurityRole {\n id: ID\n name: String\n slug: String\n createdOn: DateTime\n description: String\n permissions: [JSON]\n system: Boolean!\n plugin: Boolean\n }\n\n input SecurityRoleCreateInput {\n name: String!\n slug: String!\n description: String\n permissions: [JSON!]!\n }\n\n input SecurityRoleUpdateInput {\n name: String\n description: String\n permissions: [JSON!]\n }\n\n type SecurityRoleResponse {\n data: SecurityRole\n error: SecurityError\n }\n\n type SecurityRoleListResponse {\n data: [SecurityRole]\n error: SecurityError\n }\n\n input GetRoleWhereInput {\n id: ID\n slug: String\n }\n\n extend type SecurityQuery {\n getRole(where: GetRoleWhereInput!): SecurityRoleResponse\n listRoles: SecurityRoleListResponse\n }\n\n extend type SecurityMutation {\n createRole(data: SecurityRoleCreateInput!): SecurityRoleResponse\n updateRole(id: ID!, data: SecurityRoleUpdateInput!): SecurityRoleResponse\n deleteRole(id: ID!): SecurityBooleanResponse\n }\n `);\n\n builder.addResolver<{ where: any }>({\n path: \"SecurityQuery.getRole\",\n dependencies: [GetRoleUseCase],\n resolver:\n (useCase: GetRoleUseCase.Interface) =>\n async ({ args }) => {\n try {\n const result = await useCase.execute(args.where);\n if (result.isFail()) {\n throw result.error;\n }\n return new Response(result.value);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n });\n\n builder.addResolver({\n path: \"SecurityQuery.listRoles\",\n dependencies: [ListRolesUseCase],\n resolver: (useCase: ListRolesUseCase.Interface) => async () => {\n try {\n const result = await useCase.execute();\n if (result.isFail()) {\n throw result.error;\n }\n return new ListResponse(result.value);\n } catch (e) {\n return new ListErrorResponse(e);\n }\n }\n });\n\n builder.addResolver<{ data: any }>({\n path: \"SecurityMutation.createRole\",\n dependencies: [CreateRoleUseCase],\n resolver:\n (useCase: CreateRoleUseCase.Interface) =>\n async ({ args }) => {\n try {\n const result = await useCase.execute(args.data);\n if (result.isFail()) {\n throw result.error;\n }\n return new Response(result.value);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n });\n\n builder.addResolver<{ id: string; data: any }>({\n path: \"SecurityMutation.updateRole\",\n dependencies: [UpdateRoleUseCase],\n resolver:\n (useCase: UpdateRoleUseCase.Interface) =>\n async ({ args }) => {\n try {\n const result = await useCase.execute(args.id, args.data);\n if (result.isFail()) {\n throw result.error;\n }\n return new Response(result.value);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n });\n\n builder.addResolver<{ id: string }>({\n path: \"SecurityMutation.deleteRole\",\n dependencies: [DeleteRoleUseCase],\n resolver:\n (useCase: DeleteRoleUseCase.Interface) =>\n async ({ args }) => {\n try {\n const result = await useCase.execute(args.id);\n if (result.isFail()) {\n throw result.error;\n }\n return new Response(true);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n });\n};\n"],"names":["addRoleSchema","builder","GetRoleUseCase","useCase","args","result","Response","e","ErrorResponse","ListRolesUseCase","ListResponse","ListErrorResponse","CreateRoleUseCase","UpdateRoleUseCase","DeleteRoleUseCase"],"mappings":";;;;;;AAaO,MAAMA,gBAAgB,CAACC;IAC1BA,QAAQ,WAAW,CAAe,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkDnC,CAAC;IAEDA,QAAQ,WAAW,CAAiB;QAChC,MAAM;QACN,cAAc;YAACC;SAAe;QAC9B,UACI,CAACC,UACD,OAAO,EAAEC,IAAI,EAAE;gBACX,IAAI;oBACA,MAAMC,SAAS,MAAMF,QAAQ,OAAO,CAACC,KAAK,KAAK;oBAC/C,IAAIC,OAAO,MAAM,IACb,MAAMA,OAAO,KAAK;oBAEtB,OAAO,IAAIC,SAASD,OAAO,KAAK;gBACpC,EAAE,OAAOE,GAAG;oBACR,OAAO,IAAIC,cAAcD;gBAC7B;YACJ;IACR;IAEAN,QAAQ,WAAW,CAAC;QAChB,MAAM;QACN,cAAc;YAACQ;SAAiB;QAChC,UAAU,CAACN,UAAwC;gBAC/C,IAAI;oBACA,MAAME,SAAS,MAAMF,QAAQ,OAAO;oBACpC,IAAIE,OAAO,MAAM,IACb,MAAMA,OAAO,KAAK;oBAEtB,OAAO,IAAIK,aAAaL,OAAO,KAAK;gBACxC,EAAE,OAAOE,GAAG;oBACR,OAAO,IAAII,kBAAkBJ;gBACjC;YACJ;IACJ;IAEAN,QAAQ,WAAW,CAAgB;QAC/B,MAAM;QACN,cAAc;YAACW;SAAkB;QACjC,UACI,CAACT,UACD,OAAO,EAAEC,IAAI,EAAE;gBACX,IAAI;oBACA,MAAMC,SAAS,MAAMF,QAAQ,OAAO,CAACC,KAAK,IAAI;oBAC9C,IAAIC,OAAO,MAAM,IACb,MAAMA,OAAO,KAAK;oBAEtB,OAAO,IAAIC,SAASD,OAAO,KAAK;gBACpC,EAAE,OAAOE,GAAG;oBACR,OAAO,IAAIC,cAAcD;gBAC7B;YACJ;IACR;IAEAN,QAAQ,WAAW,CAA4B;QAC3C,MAAM;QACN,cAAc;YAACY;SAAkB;QACjC,UACI,CAACV,UACD,OAAO,EAAEC,IAAI,EAAE;gBACX,IAAI;oBACA,MAAMC,SAAS,MAAMF,QAAQ,OAAO,CAACC,KAAK,EAAE,EAAEA,KAAK,IAAI;oBACvD,IAAIC,OAAO,MAAM,IACb,MAAMA,OAAO,KAAK;oBAEtB,OAAO,IAAIC,SAASD,OAAO,KAAK;gBACpC,EAAE,OAAOE,GAAG;oBACR,OAAO,IAAIC,cAAcD;gBAC7B;YACJ;IACR;IAEAN,QAAQ,WAAW,CAAiB;QAChC,MAAM;QACN,cAAc;YAACa;SAAkB;QACjC,UACI,CAACX,UACD,OAAO,EAAEC,IAAI,EAAE;gBACX,IAAI;oBACA,MAAMC,SAAS,MAAMF,QAAQ,OAAO,CAACC,KAAK,EAAE;oBAC5C,IAAIC,OAAO,MAAM,IACb,MAAMA,OAAO,KAAK;oBAEtB,OAAO,IAAIC,SAAS;gBACxB,EAAE,OAAOC,GAAG;oBACR,OAAO,IAAIC,cAAcD;gBAC7B;YACJ;IACR;AACJ"}
@@ -0,0 +1,2 @@
1
+ import type { IGraphQLSchemaBuilder } from "@webiny/api-graphql/features/GraphQLSchemaBuilder/abstractions.js";
2
+ export declare const addSecurityBaseSchema: (builder: IGraphQLSchemaBuilder) => void;
@@ -1,7 +1,5 @@
1
- import { GraphQLSchemaPlugin } from "@webiny/handler-graphql";
2
- const emptyResolver = ()=>({});
3
- const base_gql = new GraphQLSchemaPlugin({
4
- typeDefs: `
1
+ const addSecurityBaseSchema = (builder)=>{
2
+ builder.addTypeDefs(`
5
3
  type SecurityMutation {
6
4
  _empty: String
7
5
  }
@@ -34,16 +32,16 @@ const base_gql = new GraphQLSchemaPlugin({
34
32
  data: Boolean
35
33
  error: SecurityError
36
34
  }
37
- `,
38
- resolvers: {
39
- Query: {
40
- security: emptyResolver
41
- },
42
- Mutation: {
43
- security: emptyResolver
44
- }
45
- }
46
- });
47
- export default base_gql;
35
+ `);
36
+ builder.addResolver({
37
+ path: "Query.security",
38
+ resolver: ()=>async ()=>({})
39
+ });
40
+ builder.addResolver({
41
+ path: "Mutation.security",
42
+ resolver: ()=>async ()=>({})
43
+ });
44
+ };
45
+ export { addSecurityBaseSchema };
48
46
 
49
- //# sourceMappingURL=base.gql.js.map
47
+ //# sourceMappingURL=addSecurityBaseSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql/security/addSecurityBaseSchema.js","sources":["../../../src/graphql/security/addSecurityBaseSchema.ts"],"sourcesContent":["import type { IGraphQLSchemaBuilder } from \"@webiny/api-graphql/features/GraphQLSchemaBuilder/abstractions.js\";\n\nexport const addSecurityBaseSchema = (builder: IGraphQLSchemaBuilder): void => {\n builder.addTypeDefs(/* GraphQL */ `\n type SecurityMutation {\n _empty: String\n }\n\n type SecurityQuery {\n _empty: String\n }\n\n extend type Query {\n security: SecurityQuery\n }\n\n extend type Mutation {\n security: SecurityMutation\n }\n\n type SecurityCreatedBy {\n id: ID\n displayName: String\n }\n\n type SecurityError {\n code: String\n message: String\n data: JSON\n stack: String\n }\n\n type SecurityBooleanResponse {\n data: Boolean\n error: SecurityError\n }\n `);\n\n builder.addResolver({\n path: \"Query.security\",\n resolver: () => async () => ({})\n });\n\n builder.addResolver({\n path: \"Mutation.security\",\n resolver: () => async () => ({})\n });\n};\n"],"names":["addSecurityBaseSchema","builder"],"mappings":"AAEO,MAAMA,wBAAwB,CAACC;IAClCA,QAAQ,WAAW,CAAe,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiCnC,CAAC;IAEDA,QAAQ,WAAW,CAAC;QAChB,MAAM;QACN,UAAU,IAAM,UAAa,EAAC;IAClC;IAEAA,QAAQ,WAAW,CAAC;QAChB,MAAM;QACN,UAAU,IAAM,UAAa,EAAC;IAClC;AACJ"}
@@ -0,0 +1,2 @@
1
+ import type { IGraphQLSchemaBuilder } from "@webiny/api-graphql/features/GraphQLSchemaBuilder/abstractions.js";
2
+ export declare const addTeamSchema: (builder: IGraphQLSchemaBuilder) => void;