@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
@@ -24,45 +24,59 @@ class WcpContextWithFeatureFlagsDecoratorImpl {
24
24
  multiTenancy: project.package.features.multiTenancy,
25
25
  advancedPublishingWorkflow: {
26
26
  ...project.package.features.advancedPublishingWorkflow,
27
- enabled: flags.isWorkflowsEnabled() ? project.package.features.advancedPublishingWorkflow.enabled : false
27
+ enabled: flags.isEnabled("advancedPublishingWorkflow") ? project.package.features.advancedPublishingWorkflow.enabled : false
28
28
  },
29
29
  advancedAccessControlLayer: {
30
30
  ...project.package.features.advancedAccessControlLayer,
31
- enabled: flags.isAaclEnabled() ? project.package.features.advancedAccessControlLayer.enabled : false,
31
+ enabled: flags.isEnabled("advancedAccessControlLayer") ? project.package.features.advancedAccessControlLayer.enabled : false,
32
32
  options: {
33
- teams: flags.isTeamsEnabled() ? project.package.features.advancedAccessControlLayer.options.teams : false,
34
- privateFiles: flags.isPrivateFilesEnabled() ? project.package.features.advancedAccessControlLayer.options.privateFiles : false,
35
- folderLevelPermissions: flags.isFolderLevelPermissionsEnabled() ? project.package.features.advancedAccessControlLayer.options.folderLevelPermissions : false,
36
- hcmsFieldPermissions: flags.isHcmsFieldPermissionsEnabled() ? project.package.features.advancedAccessControlLayer.options.hcmsFieldPermissions : false
33
+ teams: flags.isEnabled("advancedAccessControlLayer.teams") ? project.package.features.advancedAccessControlLayer.options.teams : false,
34
+ privateFiles: flags.isEnabled("advancedAccessControlLayer.privateFiles") ? project.package.features.advancedAccessControlLayer.options.privateFiles : false,
35
+ folderLevelPermissions: flags.isEnabled("advancedAccessControlLayer.folderLevelPermissions") ? project.package.features.advancedAccessControlLayer.options.folderLevelPermissions : false,
36
+ hcmsFieldPermissions: flags.isEnabled("advancedAccessControlLayer.hcmsFieldPermissions") ? project.package.features.advancedAccessControlLayer.options.hcmsFieldPermissions : false
37
37
  }
38
38
  },
39
39
  auditLogs: {
40
40
  ...project.package.features.auditLogs,
41
- enabled: flags.isAuditLogsEnabled() ? project.package.features.auditLogs.enabled : false
41
+ enabled: flags.isEnabled("auditLogs") ? project.package.features.auditLogs.enabled : false
42
42
  },
43
43
  recordLocking: {
44
44
  ...project.package.features.recordLocking,
45
- enabled: flags.isRecordLockingEnabled() ? project.package.features.recordLocking.enabled : false
45
+ enabled: flags.isEnabled("recordLocking") ? project.package.features.recordLocking.enabled : false
46
46
  },
47
47
  fileManager: {
48
48
  ...project.package.features.fileManager,
49
49
  enabled: project.package.features.fileManager.enabled,
50
50
  options: {
51
- threatDetection: flags.isFileManagerThreatDetectionEnabled() ? project.package.features.fileManager.options.threatDetection : false
51
+ threatDetection: flags.isEnabled("fileManager.threatDetection") ? project.package.features.fileManager.options.threatDetection : false
52
52
  }
53
53
  },
54
54
  aiPowerups: {
55
55
  ...project.package.features.aiPowerups,
56
- enabled: flags.isAiPowerupsEnabled() ? project.package.features.aiPowerups?.enabled : false,
56
+ enabled: flags.isEnabled("aiPowerups") ? project.package.features.aiPowerups?.enabled : false,
57
57
  options: {
58
58
  websiteBuilder: {
59
- pageGeneration: flags.isAiPageGenerationEnabled() ? project.package.features.aiPowerups?.options?.websiteBuilder?.pageGeneration : false
59
+ pageGeneration: flags.isEnabled("aiPowerups.websiteBuilder.pageGeneration") ? project.package.features.aiPowerups?.options?.websiteBuilder?.pageGeneration : false,
60
+ pageTranslation: flags.isEnabled("aiPowerups.websiteBuilder.pageTranslation") ? project.package.features.aiPowerups?.options?.websiteBuilder?.pageTranslation : false
60
61
  },
61
62
  fileManager: {
62
- imageEnrichment: flags.isAiImageEnrichmentEnabled() ? project.package.features.aiPowerups?.options?.fileManager?.imageEnrichment : false
63
+ imageEnrichment: flags.isEnabled("aiPowerups.fileManager.imageEnrichment") ? project.package.features.aiPowerups?.options?.fileManager?.imageEnrichment : false
63
64
  },
64
- lexicalGeneration: flags.isAiLexicalGenerationEnabled() ? project.package.features.aiPowerups?.options?.lexicalGeneration : false
65
+ lexicalGeneration: flags.isEnabled("aiPowerups.lexicalGeneration") ? project.package.features.aiPowerups?.options?.lexicalGeneration : false,
66
+ cms: {
67
+ entryGeneration: flags.isEnabled("aiPowerups.cms.entryGeneration") ? project.package.features.aiPowerups?.options?.cms?.entryGeneration : false,
68
+ entryComparison: flags.isEnabled("aiPowerups.cms.entryComparison") ? project.package.features.aiPowerups?.options?.cms?.entryComparison : false,
69
+ entryTranslation: flags.isEnabled("aiPowerups.cms.entryTranslation") ? project.package.features.aiPowerups?.options?.cms?.entryTranslation : false
70
+ }
65
71
  }
72
+ },
73
+ abTesting: {
74
+ ...project.package.features.abTesting,
75
+ enabled: flags.isEnabled("abTesting") ? project.package.features.abTesting?.enabled : false
76
+ },
77
+ remoteComponents: {
78
+ ...project.package.features.remoteComponents,
79
+ enabled: flags.isEnabled("remoteComponents") ? project.package.features.remoteComponents?.enabled : false
66
80
  }
67
81
  }
68
82
  }
@@ -78,40 +92,58 @@ class WcpContextWithFeatureFlagsDecoratorImpl {
78
92
  return this.decoratee.canUseFeature(wcpFeatureId);
79
93
  }
80
94
  canUseAacl() {
81
- return this.decoratee.canUseAacl() && this.featureFlags.get().isAaclEnabled();
95
+ return this.decoratee.canUseAacl() && this.featureFlags.get().isEnabled("advancedAccessControlLayer");
82
96
  }
83
97
  canUseTeams() {
84
- return this.decoratee.canUseTeams() && this.featureFlags.get().isTeamsEnabled();
98
+ return this.decoratee.canUseTeams() && this.featureFlags.get().isEnabled("advancedAccessControlLayer.teams");
85
99
  }
86
100
  canUseFolderLevelPermissions() {
87
- return this.decoratee.canUseFolderLevelPermissions() && this.featureFlags.get().isFolderLevelPermissionsEnabled();
101
+ return this.decoratee.canUseFolderLevelPermissions() && this.featureFlags.get().isEnabled("advancedAccessControlLayer.folderLevelPermissions");
88
102
  }
89
103
  canUsePrivateFiles() {
90
- return this.decoratee.canUsePrivateFiles() && this.featureFlags.get().isPrivateFilesEnabled();
104
+ return this.decoratee.canUsePrivateFiles() && this.featureFlags.get().isEnabled("advancedAccessControlLayer.privateFiles");
91
105
  }
92
106
  canUseAuditLogs() {
93
- return this.decoratee.canUseAuditLogs() && this.featureFlags.get().isAuditLogsEnabled();
107
+ return this.decoratee.canUseAuditLogs() && this.featureFlags.get().isEnabled("auditLogs");
94
108
  }
95
109
  canUseRecordLocking() {
96
- return this.decoratee.canUseRecordLocking() && this.featureFlags.get().isRecordLockingEnabled();
110
+ return this.decoratee.canUseRecordLocking() && this.featureFlags.get().isEnabled("recordLocking");
97
111
  }
98
112
  canUseFileManagerThreatDetection() {
99
- return this.decoratee.canUseFileManagerThreatDetection() && this.featureFlags.get().isFileManagerThreatDetectionEnabled();
113
+ return this.decoratee.canUseFileManagerThreatDetection() && this.featureFlags.get().isEnabled("fileManager.threatDetection");
100
114
  }
101
115
  canUseWorkflows() {
102
- return this.decoratee.canUseWorkflows() && this.featureFlags.get().isWorkflowsEnabled();
116
+ return this.decoratee.canUseWorkflows() && this.featureFlags.get().isEnabled("advancedPublishingWorkflow");
103
117
  }
104
118
  canUseHcmsFieldPermissions() {
105
- return this.decoratee.canUseHcmsFieldPermissions() && this.featureFlags.get().isHcmsFieldPermissionsEnabled();
119
+ return this.decoratee.canUseHcmsFieldPermissions() && this.featureFlags.get().isEnabled("advancedAccessControlLayer.hcmsFieldPermissions");
106
120
  }
107
121
  canUseAiImageEnrichment() {
108
- return this.decoratee.canUseAiImageEnrichment() && this.featureFlags.get().isAiImageEnrichmentEnabled();
122
+ return this.decoratee.canUseAiImageEnrichment() && this.featureFlags.get().isEnabled("aiPowerups.fileManager.imageEnrichment");
109
123
  }
110
124
  canUseAiPageGeneration() {
111
- return this.decoratee.canUseAiPageGeneration() && this.featureFlags.get().isAiPageGenerationEnabled();
125
+ return this.decoratee.canUseAiPageGeneration() && this.featureFlags.get().isEnabled("aiPowerups.websiteBuilder.pageGeneration");
126
+ }
127
+ canUseAiPageTranslation() {
128
+ return this.decoratee.canUseAiPageTranslation() && this.featureFlags.get().isEnabled("aiPowerups.websiteBuilder.pageTranslation");
112
129
  }
113
130
  canUseAiLexicalGeneration() {
114
- return this.decoratee.canUseAiLexicalGeneration() && this.featureFlags.get().isAiLexicalGenerationEnabled();
131
+ return this.decoratee.canUseAiLexicalGeneration() && this.featureFlags.get().isEnabled("aiPowerups.lexicalGeneration");
132
+ }
133
+ canUseAiEntryGeneration() {
134
+ return this.decoratee.canUseAiEntryGeneration() && this.featureFlags.get().isEnabled("aiPowerups.cms.entryGeneration");
135
+ }
136
+ canUseAiEntryComparison() {
137
+ return this.decoratee.canUseAiEntryComparison() && this.featureFlags.get().isEnabled("aiPowerups.cms.entryComparison");
138
+ }
139
+ canUseAiEntryTranslation() {
140
+ return this.decoratee.canUseAiEntryTranslation() && this.featureFlags.get().isEnabled("aiPowerups.cms.entryTranslation");
141
+ }
142
+ canUseAbTesting() {
143
+ return this.decoratee.canUseAbTesting() && this.featureFlags.get().isEnabled("abTesting");
144
+ }
145
+ canUseRemoteComponents() {
146
+ return this.decoratee.canUseRemoteComponents() && this.featureFlags.get().isEnabled("remoteComponents");
115
147
  }
116
148
  ensureCanUseFeature(featureId) {
117
149
  return this.decoratee.ensureCanUseFeature(featureId);
@@ -1 +1 @@
1
- {"version":3,"file":"features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.js","sources":["../../../../../src/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.ts"],"sourcesContent":["import type { WCP_FEATURE_LABEL } from \"@webiny/wcp\";\nimport { WcpContext } from \"../abstractions.js\";\nimport { FeatureFlags } from \"../../../featureFlags/abstractions.js\";\n\nclass WcpContextWithFeatureFlagsDecoratorImpl implements WcpContext.Interface {\n constructor(\n private featureFlags: FeatureFlags.Interface,\n private decoratee: WcpContext.Interface\n ) {}\n\n getRawLicense() {\n return this.decoratee.getRawLicense();\n }\n\n getProject() {\n return this.decoratee.getProject();\n }\n\n getProjectWithFeatureFlags() {\n const project = this.decoratee.getProjectWithFeatureFlags();\n if (!project) {\n return null;\n }\n\n const flags = this.featureFlags.get();\n\n return {\n ...project,\n package: {\n ...project.package,\n features: {\n ...project.package.features,\n multiTenancy: project.package.features.multiTenancy,\n advancedPublishingWorkflow: {\n ...project.package.features.advancedPublishingWorkflow,\n enabled: flags.isWorkflowsEnabled()\n ? project.package.features.advancedPublishingWorkflow.enabled\n : false\n },\n advancedAccessControlLayer: {\n ...project.package.features.advancedAccessControlLayer,\n enabled: flags.isAaclEnabled()\n ? project.package.features.advancedAccessControlLayer.enabled\n : false,\n options: {\n teams: flags.isTeamsEnabled()\n ? project.package.features.advancedAccessControlLayer.options.teams\n : false,\n privateFiles: flags.isPrivateFilesEnabled()\n ? project.package.features.advancedAccessControlLayer.options\n .privateFiles\n : false,\n folderLevelPermissions: flags.isFolderLevelPermissionsEnabled()\n ? project.package.features.advancedAccessControlLayer.options\n .folderLevelPermissions\n : false,\n hcmsFieldPermissions: flags.isHcmsFieldPermissionsEnabled()\n ? project.package.features.advancedAccessControlLayer.options\n .hcmsFieldPermissions\n : false\n }\n },\n auditLogs: {\n ...project.package.features.auditLogs,\n enabled: flags.isAuditLogsEnabled()\n ? project.package.features.auditLogs.enabled\n : false\n },\n recordLocking: {\n ...project.package.features.recordLocking,\n enabled: flags.isRecordLockingEnabled()\n ? project.package.features.recordLocking.enabled\n : false\n },\n fileManager: {\n ...project.package.features.fileManager,\n enabled: project.package.features.fileManager.enabled,\n options: {\n threatDetection: flags.isFileManagerThreatDetectionEnabled()\n ? project.package.features.fileManager.options.threatDetection\n : false\n }\n },\n aiPowerups: {\n ...project.package.features.aiPowerups,\n enabled: flags.isAiPowerupsEnabled()\n ? project.package.features.aiPowerups?.enabled\n : false,\n options: {\n websiteBuilder: {\n pageGeneration: flags.isAiPageGenerationEnabled()\n ? project.package.features.aiPowerups?.options?.websiteBuilder\n ?.pageGeneration\n : false\n },\n fileManager: {\n imageEnrichment: flags.isAiImageEnrichmentEnabled()\n ? project.package.features.aiPowerups?.options?.fileManager\n ?.imageEnrichment\n : false\n },\n lexicalGeneration: flags.isAiLexicalGenerationEnabled()\n ? project.package.features.aiPowerups?.options?.lexicalGeneration\n : false\n }\n }\n }\n }\n };\n }\n\n getProjectEnvironment() {\n return this.decoratee.getProjectEnvironment();\n }\n\n getProjectLicense() {\n return this.decoratee.getProjectLicense();\n }\n\n canUseFeature(wcpFeatureId: keyof typeof WCP_FEATURE_LABEL) {\n return this.decoratee.canUseFeature(wcpFeatureId);\n }\n\n canUseAacl() {\n return this.decoratee.canUseAacl() && this.featureFlags.get().isAaclEnabled();\n }\n\n canUseTeams() {\n return this.decoratee.canUseTeams() && this.featureFlags.get().isTeamsEnabled();\n }\n\n canUseFolderLevelPermissions() {\n return (\n this.decoratee.canUseFolderLevelPermissions() &&\n this.featureFlags.get().isFolderLevelPermissionsEnabled()\n );\n }\n\n canUsePrivateFiles() {\n return (\n this.decoratee.canUsePrivateFiles() && this.featureFlags.get().isPrivateFilesEnabled()\n );\n }\n\n canUseAuditLogs() {\n return this.decoratee.canUseAuditLogs() && this.featureFlags.get().isAuditLogsEnabled();\n }\n\n canUseRecordLocking() {\n return (\n this.decoratee.canUseRecordLocking() && this.featureFlags.get().isRecordLockingEnabled()\n );\n }\n\n canUseFileManagerThreatDetection() {\n return (\n this.decoratee.canUseFileManagerThreatDetection() &&\n this.featureFlags.get().isFileManagerThreatDetectionEnabled()\n );\n }\n\n canUseWorkflows() {\n return this.decoratee.canUseWorkflows() && this.featureFlags.get().isWorkflowsEnabled();\n }\n\n canUseHcmsFieldPermissions() {\n return (\n this.decoratee.canUseHcmsFieldPermissions() &&\n this.featureFlags.get().isHcmsFieldPermissionsEnabled()\n );\n }\n\n canUseAiImageEnrichment() {\n return (\n this.decoratee.canUseAiImageEnrichment() &&\n this.featureFlags.get().isAiImageEnrichmentEnabled()\n );\n }\n\n canUseAiPageGeneration() {\n return (\n this.decoratee.canUseAiPageGeneration() &&\n this.featureFlags.get().isAiPageGenerationEnabled()\n );\n }\n\n canUseAiLexicalGeneration() {\n return (\n this.decoratee.canUseAiLexicalGeneration() &&\n this.featureFlags.get().isAiLexicalGenerationEnabled()\n );\n }\n\n ensureCanUseFeature(featureId: keyof typeof WCP_FEATURE_LABEL) {\n return this.decoratee.ensureCanUseFeature(featureId);\n }\n\n async incrementSeats() {\n return this.decoratee.incrementSeats();\n }\n\n async decrementSeats() {\n return this.decoratee.decrementSeats();\n }\n\n async incrementTenants() {\n return this.decoratee.incrementTenants();\n }\n\n async decrementTenants() {\n return this.decoratee.decrementTenants();\n }\n\n toDto() {\n return this.decoratee.toDto();\n }\n}\n\nexport const WcpContextWithFeatureFlagsDecorator = WcpContext.createDecorator({\n decorator: WcpContextWithFeatureFlagsDecoratorImpl,\n dependencies: [FeatureFlags]\n});\n"],"names":["WcpContextWithFeatureFlagsDecoratorImpl","featureFlags","decoratee","project","flags","wcpFeatureId","featureId","WcpContextWithFeatureFlagsDecorator","WcpContext","FeatureFlags"],"mappings":"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"}
1
+ {"version":3,"file":"features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.js","sources":["../../../../../src/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.ts"],"sourcesContent":["import type { WCP_FEATURE_LABEL } from \"@webiny/wcp\";\nimport { WcpContext } from \"../abstractions.js\";\nimport { FeatureFlags } from \"../../../featureFlags/abstractions.js\";\n\nclass WcpContextWithFeatureFlagsDecoratorImpl implements WcpContext.Interface {\n constructor(\n private featureFlags: FeatureFlags.Interface,\n private decoratee: WcpContext.Interface\n ) {}\n\n getRawLicense() {\n return this.decoratee.getRawLicense();\n }\n\n getProject() {\n return this.decoratee.getProject();\n }\n\n getProjectWithFeatureFlags() {\n const project = this.decoratee.getProjectWithFeatureFlags();\n if (!project) {\n return null;\n }\n\n const flags = this.featureFlags.get();\n\n return {\n ...project,\n package: {\n ...project.package,\n features: {\n ...project.package.features,\n multiTenancy: project.package.features.multiTenancy,\n advancedPublishingWorkflow: {\n ...project.package.features.advancedPublishingWorkflow,\n enabled: flags.isEnabled(\"advancedPublishingWorkflow\")\n ? project.package.features.advancedPublishingWorkflow.enabled\n : false\n },\n advancedAccessControlLayer: {\n ...project.package.features.advancedAccessControlLayer,\n enabled: flags.isEnabled(\"advancedAccessControlLayer\")\n ? project.package.features.advancedAccessControlLayer.enabled\n : false,\n options: {\n teams: flags.isEnabled(\"advancedAccessControlLayer.teams\")\n ? project.package.features.advancedAccessControlLayer.options.teams\n : false,\n privateFiles: flags.isEnabled(\"advancedAccessControlLayer.privateFiles\")\n ? project.package.features.advancedAccessControlLayer.options\n .privateFiles\n : false,\n folderLevelPermissions: flags.isEnabled(\n \"advancedAccessControlLayer.folderLevelPermissions\"\n )\n ? project.package.features.advancedAccessControlLayer.options\n .folderLevelPermissions\n : false,\n hcmsFieldPermissions: flags.isEnabled(\n \"advancedAccessControlLayer.hcmsFieldPermissions\"\n )\n ? project.package.features.advancedAccessControlLayer.options\n .hcmsFieldPermissions\n : false\n }\n },\n auditLogs: {\n ...project.package.features.auditLogs,\n enabled: flags.isEnabled(\"auditLogs\")\n ? project.package.features.auditLogs.enabled\n : false\n },\n recordLocking: {\n ...project.package.features.recordLocking,\n enabled: flags.isEnabled(\"recordLocking\")\n ? project.package.features.recordLocking.enabled\n : false\n },\n fileManager: {\n ...project.package.features.fileManager,\n enabled: project.package.features.fileManager.enabled,\n options: {\n threatDetection: flags.isEnabled(\"fileManager.threatDetection\")\n ? project.package.features.fileManager.options.threatDetection\n : false\n }\n },\n aiPowerups: {\n ...project.package.features.aiPowerups,\n enabled: flags.isEnabled(\"aiPowerups\")\n ? project.package.features.aiPowerups?.enabled\n : false,\n options: {\n websiteBuilder: {\n pageGeneration: flags.isEnabled(\n \"aiPowerups.websiteBuilder.pageGeneration\"\n )\n ? project.package.features.aiPowerups?.options?.websiteBuilder\n ?.pageGeneration\n : false,\n pageTranslation: flags.isEnabled(\n \"aiPowerups.websiteBuilder.pageTranslation\"\n )\n ? project.package.features.aiPowerups?.options?.websiteBuilder\n ?.pageTranslation\n : false\n },\n fileManager: {\n imageEnrichment: flags.isEnabled(\n \"aiPowerups.fileManager.imageEnrichment\"\n )\n ? project.package.features.aiPowerups?.options?.fileManager\n ?.imageEnrichment\n : false\n },\n lexicalGeneration: flags.isEnabled(\"aiPowerups.lexicalGeneration\")\n ? project.package.features.aiPowerups?.options?.lexicalGeneration\n : false,\n cms: {\n entryGeneration: flags.isEnabled(\"aiPowerups.cms.entryGeneration\")\n ? project.package.features.aiPowerups?.options?.cms\n ?.entryGeneration\n : false,\n entryComparison: flags.isEnabled(\"aiPowerups.cms.entryComparison\")\n ? project.package.features.aiPowerups?.options?.cms\n ?.entryComparison\n : false,\n entryTranslation: flags.isEnabled(\"aiPowerups.cms.entryTranslation\")\n ? project.package.features.aiPowerups?.options?.cms\n ?.entryTranslation\n : false\n }\n }\n },\n abTesting: {\n ...project.package.features.abTesting,\n enabled: flags.isEnabled(\"abTesting\")\n ? project.package.features.abTesting?.enabled\n : false\n },\n remoteComponents: {\n ...project.package.features.remoteComponents,\n enabled: flags.isEnabled(\"remoteComponents\")\n ? project.package.features.remoteComponents?.enabled\n : false\n }\n }\n }\n };\n }\n\n getProjectEnvironment() {\n return this.decoratee.getProjectEnvironment();\n }\n\n getProjectLicense() {\n return this.decoratee.getProjectLicense();\n }\n\n canUseFeature(wcpFeatureId: keyof typeof WCP_FEATURE_LABEL) {\n return this.decoratee.canUseFeature(wcpFeatureId);\n }\n\n canUseAacl() {\n return (\n this.decoratee.canUseAacl() &&\n this.featureFlags.get().isEnabled(\"advancedAccessControlLayer\")\n );\n }\n\n canUseTeams() {\n return (\n this.decoratee.canUseTeams() &&\n this.featureFlags.get().isEnabled(\"advancedAccessControlLayer.teams\")\n );\n }\n\n canUseFolderLevelPermissions() {\n return (\n this.decoratee.canUseFolderLevelPermissions() &&\n this.featureFlags.get().isEnabled(\"advancedAccessControlLayer.folderLevelPermissions\")\n );\n }\n\n canUsePrivateFiles() {\n return (\n this.decoratee.canUsePrivateFiles() &&\n this.featureFlags.get().isEnabled(\"advancedAccessControlLayer.privateFiles\")\n );\n }\n\n canUseAuditLogs() {\n return this.decoratee.canUseAuditLogs() && this.featureFlags.get().isEnabled(\"auditLogs\");\n }\n\n canUseRecordLocking() {\n return (\n this.decoratee.canUseRecordLocking() &&\n this.featureFlags.get().isEnabled(\"recordLocking\")\n );\n }\n\n canUseFileManagerThreatDetection() {\n return (\n this.decoratee.canUseFileManagerThreatDetection() &&\n this.featureFlags.get().isEnabled(\"fileManager.threatDetection\")\n );\n }\n\n canUseWorkflows() {\n return (\n this.decoratee.canUseWorkflows() &&\n this.featureFlags.get().isEnabled(\"advancedPublishingWorkflow\")\n );\n }\n\n canUseHcmsFieldPermissions() {\n return (\n this.decoratee.canUseHcmsFieldPermissions() &&\n this.featureFlags.get().isEnabled(\"advancedAccessControlLayer.hcmsFieldPermissions\")\n );\n }\n\n canUseAiImageEnrichment() {\n return (\n this.decoratee.canUseAiImageEnrichment() &&\n this.featureFlags.get().isEnabled(\"aiPowerups.fileManager.imageEnrichment\")\n );\n }\n\n canUseAiPageGeneration() {\n return (\n this.decoratee.canUseAiPageGeneration() &&\n this.featureFlags.get().isEnabled(\"aiPowerups.websiteBuilder.pageGeneration\")\n );\n }\n\n canUseAiPageTranslation() {\n return (\n this.decoratee.canUseAiPageTranslation() &&\n this.featureFlags.get().isEnabled(\"aiPowerups.websiteBuilder.pageTranslation\")\n );\n }\n\n canUseAiLexicalGeneration() {\n return (\n this.decoratee.canUseAiLexicalGeneration() &&\n this.featureFlags.get().isEnabled(\"aiPowerups.lexicalGeneration\")\n );\n }\n\n canUseAiEntryGeneration() {\n return (\n this.decoratee.canUseAiEntryGeneration() &&\n this.featureFlags.get().isEnabled(\"aiPowerups.cms.entryGeneration\")\n );\n }\n\n canUseAiEntryComparison() {\n return (\n this.decoratee.canUseAiEntryComparison() &&\n this.featureFlags.get().isEnabled(\"aiPowerups.cms.entryComparison\")\n );\n }\n\n canUseAiEntryTranslation() {\n return (\n this.decoratee.canUseAiEntryTranslation() &&\n this.featureFlags.get().isEnabled(\"aiPowerups.cms.entryTranslation\")\n );\n }\n\n canUseAbTesting() {\n return this.decoratee.canUseAbTesting() && this.featureFlags.get().isEnabled(\"abTesting\");\n }\n\n canUseRemoteComponents() {\n return (\n this.decoratee.canUseRemoteComponents() &&\n this.featureFlags.get().isEnabled(\"remoteComponents\")\n );\n }\n\n ensureCanUseFeature(featureId: keyof typeof WCP_FEATURE_LABEL) {\n return this.decoratee.ensureCanUseFeature(featureId);\n }\n\n async incrementSeats() {\n return this.decoratee.incrementSeats();\n }\n\n async decrementSeats() {\n return this.decoratee.decrementSeats();\n }\n\n async incrementTenants() {\n return this.decoratee.incrementTenants();\n }\n\n async decrementTenants() {\n return this.decoratee.decrementTenants();\n }\n\n toDto() {\n return this.decoratee.toDto();\n }\n}\n\nexport const WcpContextWithFeatureFlagsDecorator = WcpContext.createDecorator({\n decorator: WcpContextWithFeatureFlagsDecoratorImpl,\n dependencies: [FeatureFlags]\n});\n"],"names":["WcpContextWithFeatureFlagsDecoratorImpl","featureFlags","decoratee","project","flags","wcpFeatureId","featureId","WcpContextWithFeatureFlagsDecorator","WcpContext","FeatureFlags"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import type { Container } from "@webiny/di";
2
- import type { ILicense } from "@webiny/wcp/types.js";
3
2
  export declare const WcpContextFeature: {
4
3
  name: string;
5
- register(container: Container, context: ILicense): void;
4
+ register(container: Container, context: import("../WcpLicenseProvider.js").IWcpLicenseProvider): void;
6
5
  };
@@ -3,8 +3,8 @@ import { WcpContextImpl } from "./WcpContext.js";
3
3
  import { WcpContext } from "./abstractions.js";
4
4
  const WcpContextFeature = createFeature({
5
5
  name: "WcpContext",
6
- register (container, license) {
7
- container.registerInstance(WcpContext, new WcpContextImpl(license));
6
+ register (container, provider) {
7
+ container.registerInstance(WcpContext, new WcpContextImpl(provider));
8
8
  }
9
9
  });
10
10
  export { WcpContextFeature };
@@ -1 +1 @@
1
- {"version":3,"file":"features/wcp/WcpContext/feature.js","sources":["../../../../src/features/wcp/WcpContext/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport type { Container } from \"@webiny/di\";\nimport { WcpContextImpl } from \"./WcpContext.js\";\nimport { WcpContext } from \"./abstractions.js\";\nimport type { ILicense } from \"@webiny/wcp/types.js\";\n\nexport const WcpContextFeature = createFeature({\n name: \"WcpContext\",\n register(container: Container, license: ILicense) {\n container.registerInstance(WcpContext, new WcpContextImpl(license));\n }\n});\n"],"names":["WcpContextFeature","createFeature","container","license","WcpContext","WcpContextImpl"],"mappings":";;;AAMO,MAAMA,oBAAoBC,cAAc;IAC3C,MAAM;IACN,UAASC,SAAoB,EAAEC,OAAiB;QAC5CD,UAAU,gBAAgB,CAACE,YAAY,IAAIC,eAAeF;IAC9D;AACJ"}
1
+ {"version":3,"file":"features/wcp/WcpContext/feature.js","sources":["../../../../src/features/wcp/WcpContext/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport type { Container } from \"@webiny/di\";\nimport { WcpContextImpl } from \"./WcpContext.js\";\nimport { WcpContext } from \"./abstractions.js\";\nimport type { WcpLicenseProvider } from \"../WcpLicenseProvider.js\";\n\nexport const WcpContextFeature = createFeature({\n name: \"WcpContext\",\n register(container: Container, provider: WcpLicenseProvider.Interface) {\n container.registerInstance(WcpContext, new WcpContextImpl(provider));\n }\n});\n"],"names":["WcpContextFeature","createFeature","container","provider","WcpContext","WcpContextImpl"],"mappings":";;;AAMO,MAAMA,oBAAoBC,cAAc;IAC3C,MAAM;IACN,UAASC,SAAoB,EAAEC,QAAsC;QACjED,UAAU,gBAAgB,CAACE,YAAY,IAAIC,eAAeF;IAC9D;AACJ"}
@@ -1,4 +1,3 @@
1
1
  export { WcpContext } from "./abstractions.js";
2
2
  export type { IWcpContext } from "./abstractions.js";
3
- export type { CreateWcpContextParams } from "./WcpContext.js";
4
3
  export { WcpContextFeature } from "./feature.js";
@@ -1,9 +1,5 @@
1
- import type { Context } from "@webiny/api/types.js";
2
1
  import type { ILicense, WcpProject } from "@webiny/wcp/types.js";
3
2
  import { IWcpContext } from "./abstractions.js";
4
- export interface WcpContext extends Context {
5
- wcp: IWcpContext;
6
- }
7
3
  export type WcpContextObject = IWcpContext;
8
4
  export interface CachedWcpProjectLicense {
9
5
  cacheKey: string | null;
@@ -1,5 +1,5 @@
1
1
  import type { ILicense } from "@webiny/wcp/types.js";
2
2
  export declare const WcpFeature: {
3
3
  name: string;
4
- register(container: import("@webiny/di").Container, context: ILicense): void;
4
+ register(container: import("@webiny/di").Container, context?: ILicense | undefined): void;
5
5
  };
@@ -1,11 +1,16 @@
1
1
  import { createFeature } from "@webiny/feature/api";
2
2
  import { WcpContextFeature } from "./WcpContext/feature.js";
3
3
  import { WcpContextWithFeatureFlagsDecorator } from "./WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.js";
4
+ import { FeatureFlagsWithLicenseDecorator } from "../featureFlags/decorators/FeatureFlagsWithLicenseDecorator.js";
5
+ import { WcpLicenseProvider, WcpLicenseProviderImpl } from "./WcpLicenseProvider.js";
4
6
  const WcpFeature = createFeature({
5
7
  name: "WebinyControlPanel",
6
- register (container, license) {
7
- WcpContextFeature.register(container, license);
8
+ register (container, initialLicense) {
9
+ const provider = new WcpLicenseProviderImpl(initialLicense);
10
+ container.registerInstance(WcpLicenseProvider, provider);
11
+ WcpContextFeature.register(container, provider);
8
12
  container.registerDecorator(WcpContextWithFeatureFlagsDecorator);
13
+ container.registerDecorator(FeatureFlagsWithLicenseDecorator);
9
14
  }
10
15
  });
11
16
  export { WcpFeature };
@@ -1 +1 @@
1
- {"version":3,"file":"features/wcp/WcpFeature.js","sources":["../../../src/features/wcp/WcpFeature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { WcpContextFeature } from \"./WcpContext/feature.js\";\nimport { WcpContextWithFeatureFlagsDecorator } from \"./WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.js\";\nimport type { ILicense } from \"@webiny/wcp/types.js\";\n\nexport const WcpFeature = createFeature<ILicense>({\n name: \"WebinyControlPanel\",\n register(container, license) {\n WcpContextFeature.register(container, license);\n container.registerDecorator(WcpContextWithFeatureFlagsDecorator);\n }\n});\n"],"names":["WcpFeature","createFeature","container","license","WcpContextFeature","WcpContextWithFeatureFlagsDecorator"],"mappings":";;;AAKO,MAAMA,aAAaC,cAAwB;IAC9C,MAAM;IACN,UAASC,SAAS,EAAEC,OAAO;QACvBC,kBAAkB,QAAQ,CAACF,WAAWC;QACtCD,UAAU,iBAAiB,CAACG;IAChC;AACJ"}
1
+ {"version":3,"file":"features/wcp/WcpFeature.js","sources":["../../../src/features/wcp/WcpFeature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { WcpContextFeature } from \"./WcpContext/feature.js\";\nimport { WcpContextWithFeatureFlagsDecorator } from \"./WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.js\";\nimport { FeatureFlagsWithLicenseDecorator } from \"../featureFlags/decorators/FeatureFlagsWithLicenseDecorator.js\";\nimport { WcpLicenseProvider, WcpLicenseProviderImpl } from \"./WcpLicenseProvider.js\";\nimport type { ILicense } from \"@webiny/wcp/types.js\";\n\nexport const WcpFeature = createFeature<ILicense | undefined>({\n name: \"WebinyControlPanel\",\n register(container, initialLicense?) {\n const provider = new WcpLicenseProviderImpl(initialLicense);\n container.registerInstance(WcpLicenseProvider, provider);\n WcpContextFeature.register(container, provider);\n container.registerDecorator(WcpContextWithFeatureFlagsDecorator);\n container.registerDecorator(FeatureFlagsWithLicenseDecorator);\n // The per-request license refresh is loaded pre-register by api-event-handler-core's\n // registerApiRequestStack, keeping the domain layer free of the transport lifecycle contract.\n }\n});\n"],"names":["WcpFeature","createFeature","container","initialLicense","provider","WcpLicenseProviderImpl","WcpLicenseProvider","WcpContextFeature","WcpContextWithFeatureFlagsDecorator","FeatureFlagsWithLicenseDecorator"],"mappings":";;;;;AAOO,MAAMA,aAAaC,cAAoC;IAC1D,MAAM;IACN,UAASC,SAAS,EAAEC,cAAe;QAC/B,MAAMC,WAAW,IAAIC,uBAAuBF;QAC5CD,UAAU,gBAAgB,CAACI,oBAAoBF;QAC/CG,kBAAkB,QAAQ,CAACL,WAAWE;QACtCF,UAAU,iBAAiB,CAACM;QAC5BN,UAAU,iBAAiB,CAACO;IAGhC;AACJ"}
@@ -0,0 +1,25 @@
1
+ import type { DecryptedWcpProjectLicense, ILicense } from "@webiny/wcp/types.js";
2
+ /**
3
+ * Loads and process-caches the WCP project license. Static because the cache is process-global (one
4
+ * license per deployment): the pre-register refresh in `registerApiRequestStack` calls `load()` to
5
+ * populate it, and `WcpLicenseProvider` / register-time feature-flag gates read it synchronously via
6
+ * `getCached()`. Not DI — it must be usable before any container exists (before register).
7
+ */
8
+ export declare class WcpLicenseLoader {
9
+ private static readonly wcpProjectEnvironment;
10
+ private static cached;
11
+ private static inflight;
12
+ /**
13
+ * Synchronously read the currently cached license. `load()` must have been awaited at least once
14
+ * this request (the pre-register refresh does this), so this reflects the live license — letting
15
+ * register()-time feature-flag checks read it synchronously.
16
+ */
17
+ static getCached(): ILicense;
18
+ /**
19
+ * Seed the cache with an already-resolved license (tests pass a pre-built one). Marks it fresh so
20
+ * a subsequent `load()` returns it without a fetch. This is how `WcpLicenseProviderImpl` installs
21
+ * an initial license.
22
+ */
23
+ static seed(license: ILicense): void;
24
+ static load(testProjectLicense?: DecryptedWcpProjectLicense): Promise<ILicense>;
25
+ }
@@ -0,0 +1,58 @@
1
+ import { License, NullLicense, getWcpProjectLicense } from "@webiny/wcp";
2
+ import { getWcpProjectLicenseCacheKey } from "./WcpContext/utils.js";
3
+ import { resolveWcpProjectEnvironment } from "./resolveWcpProjectEnvironment.js";
4
+ class WcpLicenseLoader {
5
+ static{
6
+ this.wcpProjectEnvironment = resolveWcpProjectEnvironment();
7
+ }
8
+ static{
9
+ this.cached = {
10
+ cacheKey: null,
11
+ project: null,
12
+ license: new NullLicense()
13
+ };
14
+ }
15
+ static{
16
+ this.inflight = null;
17
+ }
18
+ static getCached() {
19
+ return WcpLicenseLoader.cached.license;
20
+ }
21
+ static seed(license) {
22
+ WcpLicenseLoader.cached.license = license;
23
+ WcpLicenseLoader.cached.cacheKey = getWcpProjectLicenseCacheKey();
24
+ }
25
+ static async load(testProjectLicense) {
26
+ const cached = WcpLicenseLoader.cached;
27
+ if (testProjectLicense) {
28
+ cached.license = License.fromLicenseDto(testProjectLicense);
29
+ return cached.license;
30
+ }
31
+ const env = WcpLicenseLoader.wcpProjectEnvironment;
32
+ if (!env) return cached.license;
33
+ const currentCacheKey = getWcpProjectLicenseCacheKey();
34
+ if (cached.cacheKey === currentCacheKey) return cached.license;
35
+ if (WcpLicenseLoader.inflight) return WcpLicenseLoader.inflight;
36
+ WcpLicenseLoader.inflight = (async ()=>{
37
+ const decryptedLicenseDto = await getWcpProjectLicense({
38
+ orgId: env.org.id,
39
+ projectId: env.project.id,
40
+ projectEnvironmentApiKey: env.apiKey
41
+ });
42
+ if (decryptedLicenseDto) cached.project = {
43
+ orgId: decryptedLicenseDto.orgId,
44
+ projectId: decryptedLicenseDto.projectId,
45
+ package: decryptedLicenseDto.package
46
+ };
47
+ cached.license = License.fromLicenseDto(decryptedLicenseDto);
48
+ cached.cacheKey = currentCacheKey;
49
+ return cached.license;
50
+ })().finally(()=>{
51
+ WcpLicenseLoader.inflight = null;
52
+ });
53
+ return WcpLicenseLoader.inflight;
54
+ }
55
+ }
56
+ export { WcpLicenseLoader };
57
+
58
+ //# sourceMappingURL=WcpLicenseLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/wcp/WcpLicenseLoader.js","sources":["../../../src/features/wcp/WcpLicenseLoader.ts"],"sourcesContent":["import { getWcpProjectLicense, NullLicense, License } from \"@webiny/wcp\";\nimport type { DecryptedWcpProjectLicense, ILicense } from \"@webiny/wcp/types.js\";\nimport type { CachedWcpProjectLicense } from \"~/features/wcp/WcpContext/types.js\";\nimport { getWcpProjectLicenseCacheKey } from \"~/features/wcp/WcpContext/utils.js\";\nimport { resolveWcpProjectEnvironment } from \"~/features/wcp/resolveWcpProjectEnvironment.js\";\n\n/**\n * Loads and process-caches the WCP project license. Static because the cache is process-global (one\n * license per deployment): the pre-register refresh in `registerApiRequestStack` calls `load()` to\n * populate it, and `WcpLicenseProvider` / register-time feature-flag gates read it synchronously via\n * `getCached()`. Not DI — it must be usable before any container exists (before register).\n */\nexport class WcpLicenseLoader {\n private static readonly wcpProjectEnvironment = resolveWcpProjectEnvironment();\n\n private static cached: CachedWcpProjectLicense = {\n cacheKey: null,\n project: null,\n license: new NullLicense()\n };\n\n // In-flight fetch, memoized so concurrent cache-miss callers coalesce onto a single WCP request\n // (self-hosted runs many requests in one process; we never want two license fetches at once).\n private static inflight: Promise<ILicense> | null = null;\n\n /**\n * Synchronously read the currently cached license. `load()` must have been awaited at least once\n * this request (the pre-register refresh does this), so this reflects the live license — letting\n * register()-time feature-flag checks read it synchronously.\n */\n static getCached(): ILicense {\n return WcpLicenseLoader.cached.license;\n }\n\n /**\n * Seed the cache with an already-resolved license (tests pass a pre-built one). Marks it fresh so\n * a subsequent `load()` returns it without a fetch. This is how `WcpLicenseProviderImpl` installs\n * an initial license.\n */\n static seed(license: ILicense): void {\n WcpLicenseLoader.cached.license = license;\n WcpLicenseLoader.cached.cacheKey = getWcpProjectLicenseCacheKey();\n }\n\n static async load(testProjectLicense?: DecryptedWcpProjectLicense): Promise<ILicense> {\n const cached = WcpLicenseLoader.cached;\n\n if (testProjectLicense) {\n cached.license = License.fromLicenseDto(testProjectLicense);\n return cached.license;\n }\n\n const env = WcpLicenseLoader.wcpProjectEnvironment;\n if (!env) {\n return cached.license;\n }\n\n const currentCacheKey = getWcpProjectLicenseCacheKey();\n if (cached.cacheKey === currentCacheKey) {\n return cached.license;\n }\n\n // Cache miss (first load or the ~5-min key rotated). Coalesce concurrent callers onto one fetch.\n if (WcpLicenseLoader.inflight) {\n return WcpLicenseLoader.inflight;\n }\n\n WcpLicenseLoader.inflight = (async () => {\n // Pull the project license from the WCP API.\n const decryptedLicenseDto = await getWcpProjectLicense({\n orgId: env.org.id,\n projectId: env.project.id,\n projectEnvironmentApiKey: env.apiKey\n });\n\n if (decryptedLicenseDto) {\n cached.project = {\n orgId: decryptedLicenseDto.orgId,\n projectId: decryptedLicenseDto.projectId,\n package: decryptedLicenseDto.package\n };\n }\n\n cached.license = License.fromLicenseDto(decryptedLicenseDto);\n // Mark fresh only after a successful fetch — a throw leaves the key unset so the next call retries.\n cached.cacheKey = currentCacheKey;\n return cached.license;\n })().finally(() => {\n WcpLicenseLoader.inflight = null;\n });\n\n return WcpLicenseLoader.inflight;\n }\n}\n"],"names":["WcpLicenseLoader","resolveWcpProjectEnvironment","NullLicense","license","getWcpProjectLicenseCacheKey","testProjectLicense","cached","License","env","currentCacheKey","decryptedLicenseDto","getWcpProjectLicense"],"mappings":";;;AAYO,MAAMA;;aACe,qBAAqB,GAAGC;;;aAEjC,MAAM,GAA4B;YAC7C,UAAU;YACV,SAAS;YACT,SAAS,IAAIC;QACjB;;;aAIe,QAAQ,GAA6B;;IAOpD,OAAO,YAAsB;QACzB,OAAOF,iBAAiB,MAAM,CAAC,OAAO;IAC1C;IAOA,OAAO,KAAKG,OAAiB,EAAQ;QACjCH,iBAAiB,MAAM,CAAC,OAAO,GAAGG;QAClCH,iBAAiB,MAAM,CAAC,QAAQ,GAAGI;IACvC;IAEA,aAAa,KAAKC,kBAA+C,EAAqB;QAClF,MAAMC,SAASN,iBAAiB,MAAM;QAEtC,IAAIK,oBAAoB;YACpBC,OAAO,OAAO,GAAGC,QAAQ,cAAc,CAACF;YACxC,OAAOC,OAAO,OAAO;QACzB;QAEA,MAAME,MAAMR,iBAAiB,qBAAqB;QAClD,IAAI,CAACQ,KACD,OAAOF,OAAO,OAAO;QAGzB,MAAMG,kBAAkBL;QACxB,IAAIE,OAAO,QAAQ,KAAKG,iBACpB,OAAOH,OAAO,OAAO;QAIzB,IAAIN,iBAAiB,QAAQ,EACzB,OAAOA,iBAAiB,QAAQ;QAGpCA,iBAAiB,QAAQ,GAAI;YAEzB,MAAMU,sBAAsB,MAAMC,qBAAqB;gBACnD,OAAOH,IAAI,GAAG,CAAC,EAAE;gBACjB,WAAWA,IAAI,OAAO,CAAC,EAAE;gBACzB,0BAA0BA,IAAI,MAAM;YACxC;YAEA,IAAIE,qBACAJ,OAAO,OAAO,GAAG;gBACb,OAAOI,oBAAoB,KAAK;gBAChC,WAAWA,oBAAoB,SAAS;gBACxC,SAASA,oBAAoB,OAAO;YACxC;YAGJJ,OAAO,OAAO,GAAGC,QAAQ,cAAc,CAACG;YAExCJ,OAAO,QAAQ,GAAGG;YAClB,OAAOH,OAAO,OAAO;QACzB,KAAK,OAAO,CAAC;YACTN,iBAAiB,QAAQ,GAAG;QAChC;QAEA,OAAOA,iBAAiB,QAAQ;IACpC;AACJ"}
@@ -0,0 +1,21 @@
1
+ import type { ILicense } from "@webiny/wcp/types.js";
2
+ export interface IWcpLicenseProvider {
3
+ get(): ILicense;
4
+ }
5
+ export declare const WcpLicenseProvider: import("@webiny/di").Abstraction<IWcpLicenseProvider>;
6
+ export declare namespace WcpLicenseProvider {
7
+ type Interface = IWcpLicenseProvider;
8
+ }
9
+ /**
10
+ * Synchronous read-through to the process-cached WCP license. `get()` stays sync so the canUse*
11
+ * consumers (WcpContext, IdentityContext, the WCP GraphQL query) do too. The license is refreshed
12
+ * once per request BEFORE any feature registers — `registerApiRequestStack` awaits
13
+ * `WcpLicenseLoader.load()` (process-cached, ~5-min TTL, single-flighted) — so `get()` reflects the
14
+ * live license at both register() time (feature-flag gates) and resolver time.
15
+ *
16
+ * An optional initial license can be supplied (tests pass a pre-resolved one); it seeds the cache.
17
+ */
18
+ export declare class WcpLicenseProviderImpl implements IWcpLicenseProvider {
19
+ constructor(initialLicense?: ILicense);
20
+ get(): ILicense;
21
+ }
@@ -0,0 +1,14 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ import { WcpLicenseLoader } from "./WcpLicenseLoader.js";
3
+ const WcpLicenseProvider = createAbstraction("WcpLicenseProvider");
4
+ class WcpLicenseProviderImpl {
5
+ constructor(initialLicense){
6
+ if (initialLicense) WcpLicenseLoader.seed(initialLicense);
7
+ }
8
+ get() {
9
+ return WcpLicenseLoader.getCached();
10
+ }
11
+ }
12
+ export { WcpLicenseProvider, WcpLicenseProviderImpl };
13
+
14
+ //# sourceMappingURL=WcpLicenseProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/wcp/WcpLicenseProvider.js","sources":["../../../src/features/wcp/WcpLicenseProvider.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { ILicense } from \"@webiny/wcp/types.js\";\nimport { WcpLicenseLoader } from \"~/features/wcp/WcpLicenseLoader.js\";\n\nexport interface IWcpLicenseProvider {\n get(): ILicense;\n}\n\nexport const WcpLicenseProvider = createAbstraction<IWcpLicenseProvider>(\"WcpLicenseProvider\");\n\nexport namespace WcpLicenseProvider {\n export type Interface = IWcpLicenseProvider;\n}\n\n/**\n * Synchronous read-through to the process-cached WCP license. `get()` stays sync so the canUse*\n * consumers (WcpContext, IdentityContext, the WCP GraphQL query) do too. The license is refreshed\n * once per request BEFORE any feature registers — `registerApiRequestStack` awaits\n * `WcpLicenseLoader.load()` (process-cached, ~5-min TTL, single-flighted) — so `get()` reflects the\n * live license at both register() time (feature-flag gates) and resolver time.\n *\n * An optional initial license can be supplied (tests pass a pre-resolved one); it seeds the cache.\n */\nexport class WcpLicenseProviderImpl implements IWcpLicenseProvider {\n constructor(initialLicense?: ILicense) {\n if (initialLicense) {\n WcpLicenseLoader.seed(initialLicense);\n }\n }\n\n get(): ILicense {\n return WcpLicenseLoader.getCached();\n }\n}\n"],"names":["WcpLicenseProvider","createAbstraction","WcpLicenseProviderImpl","initialLicense","WcpLicenseLoader"],"mappings":";;AAQO,MAAMA,qBAAqBC,kBAAuC;AAelE,MAAMC;IACT,YAAYC,cAAyB,CAAE;QACnC,IAAIA,gBACAC,iBAAiB,IAAI,CAACD;IAE9B;IAEA,MAAgB;QACZ,OAAOC,iBAAiB,SAAS;IACrC;AACJ"}
@@ -0,0 +1,9 @@
1
+ import type { WcpProjectEnvironment } from "@webiny/wcp/types.js";
2
+ /**
3
+ * Resolve the WCP project environment used to fetch the license. Prefer the CLI-computed
4
+ * WCP_PROJECT_ENVIRONMENT blob (set by `applyWcpEnvVars` during `webiny serve` and the AWS deploy).
5
+ * When it's absent — a CLI-less self-hosted deploy that boots the built handler directly (e.g.
6
+ * `node start.mjs`) — derive the same org, project and api key straight from the runtime env, so a
7
+ * fresh license can still be fetched.
8
+ */
9
+ export declare function resolveWcpProjectEnvironment(): WcpProjectEnvironment | null;
@@ -0,0 +1,23 @@
1
+ import { getWcpProjectEnvironment } from "@webiny/wcp";
2
+ function resolveWcpProjectEnvironment() {
3
+ const fromBlob = getWcpProjectEnvironment();
4
+ if (fromBlob) return fromBlob;
5
+ const projectId = process.env.WEBINY_PROJECT_ID || process.env.WCP_PROJECT_ID;
6
+ const apiKey = process.env.WEBINY_PROJECT_API_KEY || process.env.WCP_PROJECT_ENVIRONMENT_API_KEY;
7
+ if (!projectId || !apiKey) return null;
8
+ const [orgId, project] = projectId.split("/");
9
+ if (!orgId || !project) return null;
10
+ return {
11
+ id: "",
12
+ apiKey,
13
+ org: {
14
+ id: orgId
15
+ },
16
+ project: {
17
+ id: project
18
+ }
19
+ };
20
+ }
21
+ export { resolveWcpProjectEnvironment };
22
+
23
+ //# sourceMappingURL=resolveWcpProjectEnvironment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/wcp/resolveWcpProjectEnvironment.js","sources":["../../../src/features/wcp/resolveWcpProjectEnvironment.ts"],"sourcesContent":["import { getWcpProjectEnvironment } from \"@webiny/wcp\";\nimport type { WcpProjectEnvironment } from \"@webiny/wcp/types.js\";\n\n/**\n * Resolve the WCP project environment used to fetch the license. Prefer the CLI-computed\n * WCP_PROJECT_ENVIRONMENT blob (set by `applyWcpEnvVars` during `webiny serve` and the AWS deploy).\n * When it's absent — a CLI-less self-hosted deploy that boots the built handler directly (e.g.\n * `node start.mjs`) — derive the same org, project and api key straight from the runtime env, so a\n * fresh license can still be fetched.\n */\nexport function resolveWcpProjectEnvironment(): WcpProjectEnvironment | null {\n const fromBlob = getWcpProjectEnvironment();\n if (fromBlob) {\n return fromBlob;\n }\n\n const projectId = process.env.WEBINY_PROJECT_ID || process.env.WCP_PROJECT_ID;\n const apiKey =\n process.env.WEBINY_PROJECT_API_KEY || process.env.WCP_PROJECT_ENVIRONMENT_API_KEY;\n if (!projectId || !apiKey) {\n return null;\n }\n\n // WEBINY_PROJECT_ID has an \"orgId/projectId\" shape.\n const [orgId, project] = projectId.split(\"/\");\n if (!orgId || !project) {\n return null;\n }\n\n // `id` is intentionally empty. The WCP backend identifies the specific project environment\n // from the api key (sent as the request's authorization header); the license fetch only uses\n // org/project (URL path) + apiKey (auth), never the environment id. So there's nothing to fill.\n return { id: \"\", apiKey, org: { id: orgId }, project: { id: project } };\n}\n"],"names":["resolveWcpProjectEnvironment","fromBlob","getWcpProjectEnvironment","projectId","process","apiKey","orgId","project"],"mappings":";AAUO,SAASA;IACZ,MAAMC,WAAWC;IACjB,IAAID,UACA,OAAOA;IAGX,MAAME,YAAYC,QAAQ,GAAG,CAAC,iBAAiB,IAAIA,QAAQ,GAAG,CAAC,cAAc;IAC7E,MAAMC,SACFD,QAAQ,GAAG,CAAC,sBAAsB,IAAIA,QAAQ,GAAG,CAAC,+BAA+B;IACrF,IAAI,CAACD,aAAa,CAACE,QACf,OAAO;IAIX,MAAM,CAACC,OAAOC,QAAQ,GAAGJ,UAAU,KAAK,CAAC;IACzC,IAAI,CAACG,SAAS,CAACC,SACX,OAAO;IAMX,OAAO;QAAE,IAAI;QAAIF;QAAQ,KAAK;YAAE,IAAIC;QAAM;QAAG,SAAS;YAAE,IAAIC;QAAQ;IAAE;AAC1E"}
@@ -0,0 +1,15 @@
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 base of the core API schema: the root Query/Mutation, shared scalars and their
5
+ * implementations, and the shared Error/BooleanResponse types. The actual domains (security,
6
+ * users, system, wcp) are their own CoreGraphQLSchemaFactory implementations — order between
7
+ * core factories does not matter, the engine merges all typeDefs in a single pass.
8
+ */
9
+ declare class ApiCoreSchemaFactoryImpl implements CoreGraphQLSchemaFactory.Interface {
10
+ execute(builder: IGraphQLSchemaBuilder): Promise<IGraphQLSchemaBuilder>;
11
+ }
12
+ export declare const ApiCoreSchemaFactory: typeof ApiCoreSchemaFactoryImpl & {
13
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-graphql/graphql/abstractions.core").ICoreGraphQLSchemaFactory>;
14
+ };
15
+ export {};
@@ -0,0 +1,52 @@
1
+ import { CoreGraphQLSchemaFactory } from "@webiny/api-graphql/graphql/abstractions.js";
2
+ import { AnyScalar, DateScalar, DateTimeScalar, IconScalar, JsonScalar, LongScalar, NumberScalar, RefInputScalar, TimeScalar } from "@webiny/api-graphql/builtInTypes/index.js";
3
+ const BASE_TYPES = `
4
+ type Query
5
+ type Mutation
6
+ scalar JSON
7
+ scalar Long
8
+ scalar Icon
9
+ scalar RefInput
10
+ scalar Number
11
+ scalar Any
12
+ scalar Date
13
+ scalar DateTime
14
+ scalar Time
15
+
16
+ type Error {
17
+ code: String
18
+ message: String
19
+ data: JSON
20
+ stack: String
21
+ }
22
+
23
+ type BooleanResponse {
24
+ data: Boolean
25
+ error: Error
26
+ }
27
+ `;
28
+ const SCALAR_RESOLVERS = {
29
+ JSON: JsonScalar,
30
+ Long: LongScalar,
31
+ Icon: IconScalar,
32
+ RefInput: RefInputScalar,
33
+ Number: NumberScalar,
34
+ Any: AnyScalar,
35
+ DateTime: DateTimeScalar,
36
+ Date: DateScalar,
37
+ Time: TimeScalar
38
+ };
39
+ class ApiCoreSchemaFactoryImpl {
40
+ async execute(builder) {
41
+ builder.addTypeDefs(BASE_TYPES);
42
+ builder.addLegacyResolvers(SCALAR_RESOLVERS);
43
+ return builder;
44
+ }
45
+ }
46
+ const ApiCoreSchemaFactory = CoreGraphQLSchemaFactory.createImplementation({
47
+ implementation: ApiCoreSchemaFactoryImpl,
48
+ dependencies: []
49
+ });
50
+ export { ApiCoreSchemaFactory };
51
+
52
+ //# sourceMappingURL=ApiCoreSchemaFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql/ApiCoreSchemaFactory.js","sources":["../../src/graphql/ApiCoreSchemaFactory.ts"],"sourcesContent":["import { CoreGraphQLSchemaFactory } from \"@webiny/api-graphql/graphql/abstractions.js\";\nimport type { IGraphQLSchemaBuilder } from \"@webiny/api-graphql/features/GraphQLSchemaBuilder/abstractions.js\";\nimport {\n JsonScalar,\n LongScalar,\n IconScalar,\n RefInputScalar,\n NumberScalar,\n AnyScalar,\n DateTimeScalar,\n DateScalar,\n TimeScalar\n} from \"@webiny/api-graphql/builtInTypes/index.js\";\n\nconst BASE_TYPES = `\n type Query\n type Mutation\n scalar JSON\n scalar Long\n scalar Icon\n scalar RefInput\n scalar Number\n scalar Any\n scalar Date\n scalar DateTime\n scalar Time\n\n type Error {\n code: String\n message: String\n data: JSON\n stack: String\n }\n\n type BooleanResponse {\n data: Boolean\n error: Error\n }\n`;\n\nconst SCALAR_RESOLVERS: Record<string, any> = {\n JSON: JsonScalar,\n Long: LongScalar,\n Icon: IconScalar,\n RefInput: RefInputScalar,\n Number: NumberScalar,\n Any: AnyScalar,\n DateTime: DateTimeScalar,\n Date: DateScalar,\n Time: TimeScalar\n};\n\n/**\n * The base of the core API schema: the root Query/Mutation, shared scalars and their\n * implementations, and the shared Error/BooleanResponse types. The actual domains (security,\n * users, system, wcp) are their own CoreGraphQLSchemaFactory implementations — order between\n * core factories does not matter, the engine merges all typeDefs in a single pass.\n */\nclass ApiCoreSchemaFactoryImpl implements CoreGraphQLSchemaFactory.Interface {\n async execute(builder: IGraphQLSchemaBuilder): Promise<IGraphQLSchemaBuilder> {\n builder.addTypeDefs(BASE_TYPES);\n\n // Scalar implementations (scalar type objects, not container-resolving resolvers).\n builder.addLegacyResolvers(SCALAR_RESOLVERS);\n\n return builder;\n }\n}\n\nexport const ApiCoreSchemaFactory = CoreGraphQLSchemaFactory.createImplementation({\n implementation: ApiCoreSchemaFactoryImpl,\n dependencies: []\n});\n"],"names":["BASE_TYPES","SCALAR_RESOLVERS","JsonScalar","LongScalar","IconScalar","RefInputScalar","NumberScalar","AnyScalar","DateTimeScalar","DateScalar","TimeScalar","ApiCoreSchemaFactoryImpl","builder","ApiCoreSchemaFactory","CoreGraphQLSchemaFactory"],"mappings":";;AAcA,MAAMA,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AAwBpB,CAAC;AAED,MAAMC,mBAAwC;IAC1C,MAAMC;IACN,MAAMC;IACN,MAAMC;IACN,UAAUC;IACV,QAAQC;IACR,KAAKC;IACL,UAAUC;IACV,MAAMC;IACN,MAAMC;AACV;AAQA,MAAMC;IACF,MAAM,QAAQC,OAA8B,EAAkC;QAC1EA,QAAQ,WAAW,CAACZ;QAGpBY,QAAQ,kBAAkB,CAACX;QAE3B,OAAOW;IACX;AACJ;AAEO,MAAMC,uBAAuBC,yBAAyB,oBAAoB,CAAC;IAC9E,gBAAgBH;IAChB,cAAc,EAAE;AACpB"}
@@ -0,0 +1,9 @@
1
+ import { CoreGraphQLSchemaFactory } from "@webiny/api-graphql/graphql/abstractions.js";
2
+ import type { IGraphQLSchemaBuilder } from "@webiny/api-graphql/features/GraphQLSchemaBuilder/abstractions.js";
3
+ declare class FeatureFlagsSchemaFactoryImpl implements CoreGraphQLSchemaFactory.Interface {
4
+ execute(builder: IGraphQLSchemaBuilder): Promise<IGraphQLSchemaBuilder>;
5
+ }
6
+ export declare const FeatureFlagsSchemaFactory: typeof FeatureFlagsSchemaFactoryImpl & {
7
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-graphql/graphql/abstractions.core").ICoreGraphQLSchemaFactory>;
8
+ };
9
+ export {};