@webiny/api-core 0.0.0-unstable.ac6ebf63c6 → 0.0.0-unstable.c27f4d8a31

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 (325) hide show
  1. package/ApiCoreFeature.js +2 -0
  2. package/ApiCoreFeature.js.map +1 -1
  3. package/exports/api/{buildParams.js → build-params.js} +1 -1
  4. package/exports/api/build-params.js.map +1 -0
  5. package/exports/api/{eventPublisher.js → event-publisher.js} +1 -1
  6. package/exports/api/event-publisher.js.map +1 -0
  7. package/exports/api/{keyValueStore.js → key-value-store.js} +1 -1
  8. package/exports/api/key-value-store.js.map +1 -0
  9. package/exports/api/security/api-key.d.ts +7 -0
  10. package/exports/api/security/api-key.js +9 -0
  11. package/exports/api/security/api-key.js.map +1 -0
  12. package/exports/api/security/authentication.d.ts +1 -1
  13. package/exports/api/security/authentication.js +1 -1
  14. package/exports/api/security/authentication.js.map +1 -1
  15. package/exports/api/security/role.d.ts +3 -3
  16. package/exports/api/security/role.js +3 -3
  17. package/exports/api/security/role.js.map +1 -1
  18. package/exports/api/security/user.d.ts +3 -3
  19. package/exports/api/security/user.js +3 -3
  20. package/exports/api/security/user.js.map +1 -1
  21. package/exports/api/system.d.ts +1 -1
  22. package/exports/api/system.js +1 -1
  23. package/exports/api/system.js.map +1 -1
  24. package/exports/api/tenancy.d.ts +4 -4
  25. package/exports/api/tenancy.js +4 -4
  26. package/exports/api/tenancy.js.map +1 -1
  27. package/features/featureFlags/FeatureFlags.d.ts +12 -0
  28. package/features/featureFlags/FeatureFlags.js +18 -0
  29. package/features/featureFlags/FeatureFlags.js.map +1 -0
  30. package/features/featureFlags/abstractions.d.ts +8 -0
  31. package/features/featureFlags/abstractions.js +4 -0
  32. package/features/featureFlags/abstractions.js.map +1 -0
  33. package/features/featureFlags/feature.d.ts +1 -0
  34. package/features/featureFlags/feature.js +10 -0
  35. package/features/featureFlags/feature.js.map +1 -0
  36. package/features/security/IdentityContext/IdentityContext.js +1 -1
  37. package/features/security/IdentityContext/IdentityContext.js.map +1 -1
  38. package/features/security/apiKeys/CreateApiKey/CreateApiKeyUseCase.js +1 -1
  39. package/features/security/apiKeys/CreateApiKey/CreateApiKeyUseCase.js.map +1 -1
  40. package/features/security/apiKeys/CreateApiKey/events.d.ts +4 -4
  41. package/features/security/apiKeys/CreateApiKey/events.js +4 -4
  42. package/features/security/apiKeys/CreateApiKey/events.js.map +1 -1
  43. package/features/security/apiKeys/DeleteApiKey/events.d.ts +4 -4
  44. package/features/security/apiKeys/DeleteApiKey/events.js +4 -4
  45. package/features/security/apiKeys/DeleteApiKey/events.js.map +1 -1
  46. package/features/security/apiKeys/ListApiKeys/ListApiKeysUseCase.js +1 -1
  47. package/features/security/apiKeys/ListApiKeys/ListApiKeysUseCase.js.map +1 -1
  48. package/features/security/apiKeys/UpdateApiKey/UpdateApiKeyUseCase.js +1 -1
  49. package/features/security/apiKeys/UpdateApiKey/UpdateApiKeyUseCase.js.map +1 -1
  50. package/features/security/apiKeys/UpdateApiKey/events.d.ts +4 -4
  51. package/features/security/apiKeys/UpdateApiKey/events.js +4 -4
  52. package/features/security/apiKeys/UpdateApiKey/events.js.map +1 -1
  53. package/features/security/apiKeys/shared/schemas.d.ts +10 -71
  54. package/features/security/apiKeys/shared/schemas.js +4 -4
  55. package/features/security/apiKeys/shared/schemas.js.map +1 -1
  56. package/features/security/authentication/AuthenticationContext/SetIdTokenCookie.d.ts +2 -2
  57. package/features/security/authentication/AuthenticationContext/SetIdTokenCookie.js +2 -2
  58. package/features/security/authentication/AuthenticationContext/SetIdTokenCookie.js.map +1 -1
  59. package/features/security/authentication/AuthenticationContext/events.d.ts +4 -4
  60. package/features/security/authentication/AuthenticationContext/events.js +4 -4
  61. package/features/security/authentication/AuthenticationContext/events.js.map +1 -1
  62. package/features/security/login/abstractions.d.ts +2 -2
  63. package/features/security/login/abstractions.js +2 -2
  64. package/features/security/login/abstractions.js.map +1 -1
  65. package/features/security/permissions/createPermissions.d.ts +8 -0
  66. package/features/security/permissions/createPermissions.js +240 -0
  67. package/features/security/permissions/createPermissions.js.map +1 -0
  68. package/features/security/permissions/index.d.ts +2 -0
  69. package/features/security/permissions/index.js +3 -0
  70. package/features/security/permissions/index.js.map +1 -0
  71. package/features/security/permissions/types.d.ts +137 -0
  72. package/features/security/permissions/types.js +3 -0
  73. package/features/security/permissions/types.js.map +1 -0
  74. package/features/security/roles/CreateRole/CreateRoleUseCase.js +1 -1
  75. package/features/security/roles/CreateRole/CreateRoleUseCase.js.map +1 -1
  76. package/features/security/roles/CreateRole/events.d.ts +4 -4
  77. package/features/security/roles/CreateRole/events.js +4 -4
  78. package/features/security/roles/CreateRole/events.js.map +1 -1
  79. package/features/security/roles/CreateRole/schema.d.ts +2 -20
  80. package/features/security/roles/CreateRole/schema.js +2 -2
  81. package/features/security/roles/CreateRole/schema.js.map +1 -1
  82. package/features/security/roles/DeleteRole/events.d.ts +4 -4
  83. package/features/security/roles/DeleteRole/events.js +4 -4
  84. package/features/security/roles/DeleteRole/events.js.map +1 -1
  85. package/features/security/roles/UpdateRole/UpdateRoleUseCase.js +1 -1
  86. package/features/security/roles/UpdateRole/UpdateRoleUseCase.js.map +1 -1
  87. package/features/security/roles/UpdateRole/events.d.ts +4 -4
  88. package/features/security/roles/UpdateRole/events.js +4 -4
  89. package/features/security/roles/UpdateRole/events.js.map +1 -1
  90. package/features/security/roles/UpdateRole/schema.d.ts +2 -18
  91. package/features/security/roles/UpdateRole/schema.js +2 -2
  92. package/features/security/roles/UpdateRole/schema.js.map +1 -1
  93. package/features/security/teams/CreateTeam/CreateTeamUseCase.js +1 -1
  94. package/features/security/teams/CreateTeam/CreateTeamUseCase.js.map +1 -1
  95. package/features/security/teams/CreateTeam/events.d.ts +4 -4
  96. package/features/security/teams/CreateTeam/events.js +4 -4
  97. package/features/security/teams/CreateTeam/events.js.map +1 -1
  98. package/features/security/teams/CreateTeam/index.d.ts +1 -1
  99. package/features/security/teams/CreateTeam/index.js +1 -1
  100. package/features/security/teams/CreateTeam/index.js.map +1 -1
  101. package/features/security/teams/CreateTeam/schema.d.ts +2 -12
  102. package/features/security/teams/DeleteTeam/events.d.ts +4 -4
  103. package/features/security/teams/DeleteTeam/events.js +4 -4
  104. package/features/security/teams/DeleteTeam/events.js.map +1 -1
  105. package/features/security/teams/UpdateTeam/UpdateTeamUseCase.js +1 -1
  106. package/features/security/teams/UpdateTeam/UpdateTeamUseCase.js.map +1 -1
  107. package/features/security/teams/UpdateTeam/events.d.ts +4 -4
  108. package/features/security/teams/UpdateTeam/events.js +4 -4
  109. package/features/security/teams/UpdateTeam/events.js.map +1 -1
  110. package/features/security/teams/UpdateTeam/schema.d.ts +2 -10
  111. package/features/system/InstallSystem/abstractions.d.ts +2 -2
  112. package/features/system/InstallSystem/abstractions.js +1 -1
  113. package/features/system/InstallSystem/abstractions.js.map +1 -1
  114. package/features/system/InstallSystem/events.js +2 -2
  115. package/features/system/InstallSystem/events.js.map +1 -1
  116. package/features/system/InstallSystem/index.d.ts +1 -1
  117. package/features/system/InstallSystem/index.js +1 -1
  118. package/features/system/InstallSystem/index.js.map +1 -1
  119. package/features/tenancy/CreateTenant/abstractions.d.ts +4 -4
  120. package/features/tenancy/CreateTenant/abstractions.js +2 -2
  121. package/features/tenancy/CreateTenant/abstractions.js.map +1 -1
  122. package/features/tenancy/CreateTenant/events.js +3 -3
  123. package/features/tenancy/CreateTenant/events.js.map +1 -1
  124. package/features/tenancy/CreateTenant/index.d.ts +1 -1
  125. package/features/tenancy/CreateTenant/index.js +1 -1
  126. package/features/tenancy/CreateTenant/index.js.map +1 -1
  127. package/features/tenancy/DeleteTenant/abstractions.d.ts +4 -4
  128. package/features/tenancy/DeleteTenant/abstractions.js +2 -2
  129. package/features/tenancy/DeleteTenant/abstractions.js.map +1 -1
  130. package/features/tenancy/DeleteTenant/events.js +3 -3
  131. package/features/tenancy/DeleteTenant/events.js.map +1 -1
  132. package/features/tenancy/DeleteTenant/index.d.ts +1 -1
  133. package/features/tenancy/DeleteTenant/index.js +1 -1
  134. package/features/tenancy/DeleteTenant/index.js.map +1 -1
  135. package/features/tenancy/InstallTenant/abstractions.d.ts +2 -2
  136. package/features/tenancy/InstallTenant/abstractions.js +1 -1
  137. package/features/tenancy/InstallTenant/abstractions.js.map +1 -1
  138. package/features/tenancy/InstallTenant/events.js +2 -2
  139. package/features/tenancy/InstallTenant/events.js.map +1 -1
  140. package/features/tenancy/InstallTenant/index.d.ts +1 -1
  141. package/features/tenancy/InstallTenant/index.js +1 -1
  142. package/features/tenancy/InstallTenant/index.js.map +1 -1
  143. package/features/tenancy/UpdateTenant/abstractions.d.ts +4 -4
  144. package/features/tenancy/UpdateTenant/abstractions.js +2 -2
  145. package/features/tenancy/UpdateTenant/abstractions.js.map +1 -1
  146. package/features/tenancy/UpdateTenant/events.js +3 -3
  147. package/features/tenancy/UpdateTenant/events.js.map +1 -1
  148. package/features/tenancy/UpdateTenant/index.d.ts +1 -1
  149. package/features/tenancy/UpdateTenant/index.js +1 -1
  150. package/features/tenancy/UpdateTenant/index.js.map +1 -1
  151. package/features/users/CreateUser/CreateUserUseCase.js +1 -1
  152. package/features/users/CreateUser/CreateUserUseCase.js.map +1 -1
  153. package/features/users/CreateUser/events.d.ts +4 -4
  154. package/features/users/CreateUser/events.js +4 -4
  155. package/features/users/CreateUser/events.js.map +1 -1
  156. package/features/users/CreateUser/schema.d.ts +4 -36
  157. package/features/users/DeleteUser/events.d.ts +4 -4
  158. package/features/users/DeleteUser/events.js +4 -4
  159. package/features/users/DeleteUser/events.js.map +1 -1
  160. package/features/users/ExternalIdpUserSync/ExternalIdpUserSyncHandler.d.ts +3 -3
  161. package/features/users/ExternalIdpUserSync/ExternalIdpUserSyncHandler.js +2 -2
  162. package/features/users/ExternalIdpUserSync/ExternalIdpUserSyncHandler.js.map +1 -1
  163. package/features/users/UpdateUser/UpdateUserUseCase.js +1 -1
  164. package/features/users/UpdateUser/UpdateUserUseCase.js.map +1 -1
  165. package/features/users/UpdateUser/events.d.ts +4 -4
  166. package/features/users/UpdateUser/events.js +4 -4
  167. package/features/users/UpdateUser/events.js.map +1 -1
  168. package/features/users/UpdateUser/schema.d.ts +4 -30
  169. package/features/wcp/WcpContext/WcpContext.d.ts +2 -0
  170. package/features/wcp/WcpContext/WcpContext.js +6 -0
  171. package/features/wcp/WcpContext/WcpContext.js.map +1 -1
  172. package/features/wcp/WcpContext/abstractions.d.ts +1 -0
  173. package/features/wcp/WcpContext/abstractions.js.map +1 -1
  174. package/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.d.ts +79 -0
  175. package/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.js +120 -0
  176. package/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.js.map +1 -0
  177. package/features/wcp/WcpFeature.js +2 -0
  178. package/features/wcp/WcpFeature.js.map +1 -1
  179. package/graphql/wcp/graphql.js +1 -1
  180. package/graphql/wcp/graphql.js.map +1 -1
  181. package/legacy/wcp/LegacyWcpContext.d.ts +2 -0
  182. package/legacy/wcp/LegacyWcpContext.js +6 -0
  183. package/legacy/wcp/LegacyWcpContext.js.map +1 -1
  184. package/models/base/BaseModel.js +2 -2
  185. package/models/base/BaseModel.js.map +1 -1
  186. package/models/base/ModelBuilder.d.ts +2 -2
  187. package/models/base/ModelBuilder.js +21 -2
  188. package/models/base/ModelBuilder.js.map +1 -1
  189. package/models/cms/FieldBuilder.d.ts +3 -2
  190. package/models/cms/FieldBuilder.js +12 -17
  191. package/models/cms/FieldBuilder.js.map +1 -1
  192. package/models/cms/FieldBuilderRegistry.d.ts +1 -1
  193. package/models/cms/FieldBuilderRegistry.js.map +1 -1
  194. package/models/cms/FieldDefinitionsBuilder.d.ts +1 -0
  195. package/models/cms/FieldDefinitionsBuilder.js +13 -15
  196. package/models/cms/FieldDefinitionsBuilder.js.map +1 -1
  197. package/models/cms/PrivateCmsModelBuilder.js.map +1 -1
  198. package/models/cms/abstractions.d.ts +1 -1
  199. package/models/cms/abstractions.js.map +1 -1
  200. package/models/cms/fieldsBuilder.md +1 -1
  201. package/models/simple/Page/abstractions.d.ts +1 -11
  202. package/package.json +19 -20
  203. package/exports/api/buildParams.js.map +0 -1
  204. package/exports/api/eventPublisher.js.map +0 -1
  205. package/exports/api/keyValueStore.js.map +0 -1
  206. package/exports/api/security/apiKey.d.ts +0 -7
  207. package/exports/api/security/apiKey.js +0 -9
  208. package/exports/api/security/apiKey.js.map +0 -1
  209. package/extensions/BuildParam.d.ts +0 -11
  210. package/extensions/BuildParam.js +0 -119
  211. package/extensions/BuildParam.js.map +0 -1
  212. package/extensions/GenericExtension.d.ts +0 -10
  213. package/extensions/GenericExtension.js +0 -7
  214. package/extensions/GenericExtension.js.map +0 -1
  215. package/extensions/eventHandlers/AfterAuthentication.d.ts +0 -10
  216. package/extensions/eventHandlers/AfterAuthentication.js +0 -9
  217. package/extensions/eventHandlers/AfterAuthentication.js.map +0 -1
  218. package/extensions/eventHandlers/ApiKeyAfterCreate.d.ts +0 -10
  219. package/extensions/eventHandlers/ApiKeyAfterCreate.js +0 -9
  220. package/extensions/eventHandlers/ApiKeyAfterCreate.js.map +0 -1
  221. package/extensions/eventHandlers/ApiKeyAfterDelete.d.ts +0 -10
  222. package/extensions/eventHandlers/ApiKeyAfterDelete.js +0 -9
  223. package/extensions/eventHandlers/ApiKeyAfterDelete.js.map +0 -1
  224. package/extensions/eventHandlers/ApiKeyAfterUpdate.d.ts +0 -10
  225. package/extensions/eventHandlers/ApiKeyAfterUpdate.js +0 -9
  226. package/extensions/eventHandlers/ApiKeyAfterUpdate.js.map +0 -1
  227. package/extensions/eventHandlers/ApiKeyBeforeCreate.d.ts +0 -10
  228. package/extensions/eventHandlers/ApiKeyBeforeCreate.js +0 -9
  229. package/extensions/eventHandlers/ApiKeyBeforeCreate.js.map +0 -1
  230. package/extensions/eventHandlers/ApiKeyBeforeDelete.d.ts +0 -10
  231. package/extensions/eventHandlers/ApiKeyBeforeDelete.js +0 -9
  232. package/extensions/eventHandlers/ApiKeyBeforeDelete.js.map +0 -1
  233. package/extensions/eventHandlers/ApiKeyBeforeUpdate.d.ts +0 -10
  234. package/extensions/eventHandlers/ApiKeyBeforeUpdate.js +0 -9
  235. package/extensions/eventHandlers/ApiKeyBeforeUpdate.js.map +0 -1
  236. package/extensions/eventHandlers/BeforeAuthentication.d.ts +0 -10
  237. package/extensions/eventHandlers/BeforeAuthentication.js +0 -9
  238. package/extensions/eventHandlers/BeforeAuthentication.js.map +0 -1
  239. package/extensions/eventHandlers/RoleAfterCreate.d.ts +0 -10
  240. package/extensions/eventHandlers/RoleAfterCreate.js +0 -9
  241. package/extensions/eventHandlers/RoleAfterCreate.js.map +0 -1
  242. package/extensions/eventHandlers/RoleAfterDelete.d.ts +0 -10
  243. package/extensions/eventHandlers/RoleAfterDelete.js +0 -9
  244. package/extensions/eventHandlers/RoleAfterDelete.js.map +0 -1
  245. package/extensions/eventHandlers/RoleAfterUpdate.d.ts +0 -10
  246. package/extensions/eventHandlers/RoleAfterUpdate.js +0 -9
  247. package/extensions/eventHandlers/RoleAfterUpdate.js.map +0 -1
  248. package/extensions/eventHandlers/RoleBeforeCreate.d.ts +0 -10
  249. package/extensions/eventHandlers/RoleBeforeCreate.js +0 -9
  250. package/extensions/eventHandlers/RoleBeforeCreate.js.map +0 -1
  251. package/extensions/eventHandlers/RoleBeforeDelete.d.ts +0 -10
  252. package/extensions/eventHandlers/RoleBeforeDelete.js +0 -9
  253. package/extensions/eventHandlers/RoleBeforeDelete.js.map +0 -1
  254. package/extensions/eventHandlers/RoleBeforeUpdate.d.ts +0 -10
  255. package/extensions/eventHandlers/RoleBeforeUpdate.js +0 -9
  256. package/extensions/eventHandlers/RoleBeforeUpdate.js.map +0 -1
  257. package/extensions/eventHandlers/SystemInstalled.d.ts +0 -10
  258. package/extensions/eventHandlers/SystemInstalled.js +0 -9
  259. package/extensions/eventHandlers/SystemInstalled.js.map +0 -1
  260. package/extensions/eventHandlers/TeamAfterCreate.d.ts +0 -10
  261. package/extensions/eventHandlers/TeamAfterCreate.js +0 -9
  262. package/extensions/eventHandlers/TeamAfterCreate.js.map +0 -1
  263. package/extensions/eventHandlers/TeamAfterDelete.d.ts +0 -10
  264. package/extensions/eventHandlers/TeamAfterDelete.js +0 -9
  265. package/extensions/eventHandlers/TeamAfterDelete.js.map +0 -1
  266. package/extensions/eventHandlers/TeamAfterUpdate.d.ts +0 -10
  267. package/extensions/eventHandlers/TeamAfterUpdate.js +0 -9
  268. package/extensions/eventHandlers/TeamAfterUpdate.js.map +0 -1
  269. package/extensions/eventHandlers/TeamBeforeCreate.d.ts +0 -10
  270. package/extensions/eventHandlers/TeamBeforeCreate.js +0 -9
  271. package/extensions/eventHandlers/TeamBeforeCreate.js.map +0 -1
  272. package/extensions/eventHandlers/TeamBeforeDelete.d.ts +0 -10
  273. package/extensions/eventHandlers/TeamBeforeDelete.js +0 -9
  274. package/extensions/eventHandlers/TeamBeforeDelete.js.map +0 -1
  275. package/extensions/eventHandlers/TeamBeforeUpdate.d.ts +0 -10
  276. package/extensions/eventHandlers/TeamBeforeUpdate.js +0 -9
  277. package/extensions/eventHandlers/TeamBeforeUpdate.js.map +0 -1
  278. package/extensions/eventHandlers/TenantAfterCreate.d.ts +0 -10
  279. package/extensions/eventHandlers/TenantAfterCreate.js +0 -9
  280. package/extensions/eventHandlers/TenantAfterCreate.js.map +0 -1
  281. package/extensions/eventHandlers/TenantAfterDelete.d.ts +0 -10
  282. package/extensions/eventHandlers/TenantAfterDelete.js +0 -9
  283. package/extensions/eventHandlers/TenantAfterDelete.js.map +0 -1
  284. package/extensions/eventHandlers/TenantAfterUpdate.d.ts +0 -10
  285. package/extensions/eventHandlers/TenantAfterUpdate.js +0 -9
  286. package/extensions/eventHandlers/TenantAfterUpdate.js.map +0 -1
  287. package/extensions/eventHandlers/TenantBeforeCreate.d.ts +0 -10
  288. package/extensions/eventHandlers/TenantBeforeCreate.js +0 -9
  289. package/extensions/eventHandlers/TenantBeforeCreate.js.map +0 -1
  290. package/extensions/eventHandlers/TenantBeforeDelete.d.ts +0 -10
  291. package/extensions/eventHandlers/TenantBeforeDelete.js +0 -9
  292. package/extensions/eventHandlers/TenantBeforeDelete.js.map +0 -1
  293. package/extensions/eventHandlers/TenantBeforeUpdate.d.ts +0 -10
  294. package/extensions/eventHandlers/TenantBeforeUpdate.js +0 -9
  295. package/extensions/eventHandlers/TenantBeforeUpdate.js.map +0 -1
  296. package/extensions/eventHandlers/TenantInstalled.d.ts +0 -10
  297. package/extensions/eventHandlers/TenantInstalled.js +0 -9
  298. package/extensions/eventHandlers/TenantInstalled.js.map +0 -1
  299. package/extensions/eventHandlers/UserAfterCreate.d.ts +0 -10
  300. package/extensions/eventHandlers/UserAfterCreate.js +0 -9
  301. package/extensions/eventHandlers/UserAfterCreate.js.map +0 -1
  302. package/extensions/eventHandlers/UserAfterDelete.d.ts +0 -10
  303. package/extensions/eventHandlers/UserAfterDelete.js +0 -9
  304. package/extensions/eventHandlers/UserAfterDelete.js.map +0 -1
  305. package/extensions/eventHandlers/UserAfterUpdate.d.ts +0 -10
  306. package/extensions/eventHandlers/UserAfterUpdate.js +0 -9
  307. package/extensions/eventHandlers/UserAfterUpdate.js.map +0 -1
  308. package/extensions/eventHandlers/UserBeforeCreate.d.ts +0 -10
  309. package/extensions/eventHandlers/UserBeforeCreate.js +0 -9
  310. package/extensions/eventHandlers/UserBeforeCreate.js.map +0 -1
  311. package/extensions/eventHandlers/UserBeforeDelete.d.ts +0 -10
  312. package/extensions/eventHandlers/UserBeforeDelete.js +0 -9
  313. package/extensions/eventHandlers/UserBeforeDelete.js.map +0 -1
  314. package/extensions/eventHandlers/UserBeforeUpdate.d.ts +0 -10
  315. package/extensions/eventHandlers/UserBeforeUpdate.js +0 -9
  316. package/extensions/eventHandlers/UserBeforeUpdate.js.map +0 -1
  317. package/extensions/eventHandlers/index.d.ts +0 -34
  318. package/extensions/eventHandlers/index.js +0 -49
  319. package/extensions/eventHandlers/index.js.map +0 -1
  320. package/extensions/index.d.ts +0 -58
  321. package/extensions/index.js +0 -49
  322. package/extensions/index.js.map +0 -1
  323. /package/exports/api/{buildParams.d.ts → build-params.d.ts} +0 -0
  324. /package/exports/api/{eventPublisher.d.ts → event-publisher.d.ts} +0 -0
  325. /package/exports/api/{keyValueStore.d.ts → key-value-store.d.ts} +0 -0
@@ -4,17 +4,17 @@ import { DomainEvent } from "../../eventPublisher/index.js";
4
4
  export class UserBeforeUpdateEvent extends DomainEvent {
5
5
  eventType = "user.beforeUpdate";
6
6
  getHandlerAbstraction() {
7
- return UserBeforeUpdateHandler;
7
+ return UserBeforeUpdateEventHandler;
8
8
  }
9
9
  }
10
- export const UserBeforeUpdateHandler = createAbstraction("UserBeforeUpdateHandler");
10
+ export const UserBeforeUpdateEventHandler = createAbstraction("UserBeforeUpdateEventHandler");
11
11
  // After Update Event
12
12
  export class UserAfterUpdateEvent extends DomainEvent {
13
13
  eventType = "user.afterUpdate";
14
14
  getHandlerAbstraction() {
15
- return UserAfterUpdateHandler;
15
+ return UserAfterUpdateEventHandler;
16
16
  }
17
17
  }
18
- export const UserAfterUpdateHandler = createAbstraction("UserAfterUpdateHandler");
18
+ export const UserAfterUpdateEventHandler = createAbstraction("UserAfterUpdateEventHandler");
19
19
 
20
20
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","DomainEvent","UserBeforeUpdateEvent","eventType","getHandlerAbstraction","UserBeforeUpdateHandler","UserAfterUpdateEvent","UserAfterUpdateHandler"],"sources":["events.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { DomainEvent } from \"~/features/eventPublisher/index.js\";\nimport type { IEventHandler } from \"~/features/eventPublisher/index.js\";\nimport type { UserBeforeUpdatePayload, UserAfterUpdatePayload } from \"./abstractions.js\";\n\n// Before Update Event\nexport class UserBeforeUpdateEvent extends DomainEvent<UserBeforeUpdatePayload> {\n eventType = \"user.beforeUpdate\" as const;\n\n getHandlerAbstraction() {\n return UserBeforeUpdateHandler;\n }\n}\n\nexport const UserBeforeUpdateHandler =\n createAbstraction<IEventHandler<UserBeforeUpdateEvent>>(\"UserBeforeUpdateHandler\");\n\nexport namespace UserBeforeUpdateHandler {\n export type Interface = IEventHandler<UserBeforeUpdateEvent>;\n export type Event = UserBeforeUpdateEvent;\n}\n\n// After Update Event\nexport class UserAfterUpdateEvent extends DomainEvent<UserAfterUpdatePayload> {\n eventType = \"user.afterUpdate\" as const;\n\n getHandlerAbstraction() {\n return UserAfterUpdateHandler;\n }\n}\n\nexport const UserAfterUpdateHandler =\n createAbstraction<IEventHandler<UserAfterUpdateEvent>>(\"UserAfterUpdateHandler\");\n\nexport namespace UserAfterUpdateHandler {\n export type Interface = IEventHandler<UserAfterUpdateEvent>;\n export type Event = UserAfterUpdateEvent;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,WAAW;AAIpB;AACA,OAAO,MAAMC,qBAAqB,SAASD,WAAW,CAA0B;EAC5EE,SAAS,GAAG,mBAAmB;EAE/BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOC,uBAAuB;EAClC;AACJ;AAEA,OAAO,MAAMA,uBAAuB,GAChCL,iBAAiB,CAAuC,yBAAyB,CAAC;AAOtF;AACA,OAAO,MAAMM,oBAAoB,SAASL,WAAW,CAAyB;EAC1EE,SAAS,GAAG,kBAAkB;EAE9BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOG,sBAAsB;EACjC;AACJ;AAEA,OAAO,MAAMA,sBAAsB,GAC/BP,iBAAiB,CAAsC,wBAAwB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","DomainEvent","UserBeforeUpdateEvent","eventType","getHandlerAbstraction","UserBeforeUpdateEventHandler","UserAfterUpdateEvent","UserAfterUpdateEventHandler"],"sources":["events.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { DomainEvent } from \"~/features/eventPublisher/index.js\";\nimport type { IEventHandler } from \"~/features/eventPublisher/index.js\";\nimport type { UserBeforeUpdatePayload, UserAfterUpdatePayload } from \"./abstractions.js\";\n\n// Before Update Event\nexport class UserBeforeUpdateEvent extends DomainEvent<UserBeforeUpdatePayload> {\n eventType = \"user.beforeUpdate\" as const;\n\n getHandlerAbstraction() {\n return UserBeforeUpdateEventHandler;\n }\n}\n\nexport const UserBeforeUpdateEventHandler = createAbstraction<IEventHandler<UserBeforeUpdateEvent>>(\n \"UserBeforeUpdateEventHandler\"\n);\n\nexport namespace UserBeforeUpdateEventHandler {\n export type Interface = IEventHandler<UserBeforeUpdateEvent>;\n export type Event = UserBeforeUpdateEvent;\n}\n\n// After Update Event\nexport class UserAfterUpdateEvent extends DomainEvent<UserAfterUpdatePayload> {\n eventType = \"user.afterUpdate\" as const;\n\n getHandlerAbstraction() {\n return UserAfterUpdateEventHandler;\n }\n}\n\nexport const UserAfterUpdateEventHandler = createAbstraction<IEventHandler<UserAfterUpdateEvent>>(\n \"UserAfterUpdateEventHandler\"\n);\n\nexport namespace UserAfterUpdateEventHandler {\n export type Interface = IEventHandler<UserAfterUpdateEvent>;\n export type Event = UserAfterUpdateEvent;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,WAAW;AAIpB;AACA,OAAO,MAAMC,qBAAqB,SAASD,WAAW,CAA0B;EAC5EE,SAAS,GAAG,mBAAmB;EAE/BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOC,4BAA4B;EACvC;AACJ;AAEA,OAAO,MAAMA,4BAA4B,GAAGL,iBAAiB,CACzD,8BACJ,CAAC;AAOD;AACA,OAAO,MAAMM,oBAAoB,SAASL,WAAW,CAAyB;EAC1EE,SAAS,GAAG,kBAAkB;EAE9BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOG,2BAA2B;EACtC;AACJ;AAEA,OAAO,MAAMA,2BAA2B,GAAGP,iBAAiB,CACxD,6BACJ,CAAC","ignoreList":[]}
@@ -6,33 +6,7 @@ export declare const updateUserValidation: z.ZodObject<{
6
6
  avatar: z.ZodNullable<z.ZodOptional<z.ZodObject<{
7
7
  id: z.ZodString;
8
8
  src: z.ZodString;
9
- }, "strip", z.ZodTypeAny, {
10
- id: string;
11
- src: string;
12
- }, {
13
- id: string;
14
- src: string;
15
- }>>>;
16
- roles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
17
- teams: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
18
- }, "strip", z.ZodTypeAny, {
19
- firstName?: string | undefined;
20
- lastName?: string | undefined;
21
- displayName?: string | undefined;
22
- roles?: string[] | undefined;
23
- teams?: string[] | undefined;
24
- avatar?: {
25
- id: string;
26
- src: string;
27
- } | null | undefined;
28
- }, {
29
- firstName?: string | undefined;
30
- lastName?: string | undefined;
31
- displayName?: string | undefined;
32
- roles?: string[] | undefined;
33
- teams?: string[] | undefined;
34
- avatar?: {
35
- id: string;
36
- src: string;
37
- } | null | undefined;
38
- }>;
9
+ }, z.core.$strip>>>;
10
+ roles: z.ZodOptional<z.ZodArray<z.ZodString>>;
11
+ teams: z.ZodOptional<z.ZodArray<z.ZodString>>;
12
+ }, z.core.$strip>;
@@ -12,6 +12,7 @@ export declare class WcpContextImpl implements WcpContext.Interface {
12
12
  private updateTenants;
13
13
  getRawLicense(): DecryptedWcpProjectLicense | null;
14
14
  getProject(): WcpProject | null;
15
+ getProjectWithFeatureFlags(): WcpProject | null;
15
16
  getProjectEnvironment(): WcpProjectEnvironment | null;
16
17
  getProjectLicense(): ILicense;
17
18
  canUseFeature(wcpFeatureId: keyof typeof WCP_FEATURE_LABEL): boolean;
@@ -23,6 +24,7 @@ export declare class WcpContextImpl implements WcpContext.Interface {
23
24
  canUseRecordLocking(): boolean;
24
25
  canUseFileManagerThreatDetection(): boolean;
25
26
  canUseWorkflows(): boolean;
27
+ canUseHcmsFieldPermissions(): boolean;
26
28
  ensureCanUseFeature(wcpFeatureId: keyof typeof WCP_FEATURE_LABEL): void;
27
29
  incrementSeats(): Promise<void>;
28
30
  decrementSeats(): Promise<void>;
@@ -63,6 +63,9 @@ export class WcpContextImpl {
63
63
  getProject() {
64
64
  return this.license.getProject();
65
65
  }
66
+ getProjectWithFeatureFlags() {
67
+ return this.getProject();
68
+ }
66
69
  getProjectEnvironment() {
67
70
  return wcpProjectEnvironment;
68
71
  }
@@ -96,6 +99,9 @@ export class WcpContextImpl {
96
99
  canUseWorkflows() {
97
100
  return this.license.canUseWorkflows();
98
101
  }
102
+ canUseHcmsFieldPermissions() {
103
+ return this.license.canUseHcmsFieldPermissions();
104
+ }
99
105
  ensureCanUseFeature(wcpFeatureId) {
100
106
  if (this.license.canUseFeature(wcpFeatureId)) {
101
107
  return;
@@ -1 +1 @@
1
- {"version":3,"names":["getWcpApiUrl","getWcpAppUrl","getWcpProjectEnvironment","WError","wcpFetch","wcpProjectEnvironment","WcpContextImpl","constructor","license","getWcpProjectUrl","path","orgId","org","id","projectId","project","url","filter","Boolean","join","updateSeats","operation","updateSeatsUrl","response","authorization","apiKey","body","meta","action","error","message","console","status","statusText","updateTenants","updateTenantsUrl","getRawLicense","getProject","getProjectEnvironment","getProjectLicense","canUseFeature","wcpFeatureId","canUseAacl","canUseTeams","canUseFolderLevelPermissions","canUsePrivateFiles","canUseAuditLogs","canUseRecordLocking","canUseFileManagerThreatDetection","canUseWorkflows","ensureCanUseFeature","upgradeProjectLicenseLink","incrementSeats","decrementSeats","incrementTenants","decrementTenants","toDto"],"sources":["WcpContext.ts"],"sourcesContent":["import type { WCP_FEATURE_LABEL } from \"@webiny/wcp\";\nimport { getWcpApiUrl, getWcpAppUrl, getWcpProjectEnvironment } from \"@webiny/wcp\";\nimport WError from \"@webiny/error\";\nimport type {\n DecryptedWcpProjectLicense,\n ILicense,\n WcpProjectEnvironment,\n WcpProject\n} from \"@webiny/wcp/types.js\";\nimport { WcpContext } from \"./abstractions.js\";\nimport { wcpFetch } from \"./utils.js\";\n\nconst wcpProjectEnvironment = getWcpProjectEnvironment();\n\nexport interface CreateWcpContextParams {\n testProjectLicense?: DecryptedWcpProjectLicense;\n}\n\nexport class WcpContextImpl implements WcpContext.Interface {\n constructor(private license: ILicense) {}\n\n private getWcpProjectUrl(path = \"\"): string | null {\n if (!wcpProjectEnvironment) {\n return null;\n }\n\n const orgId = wcpProjectEnvironment.org.id;\n const projectId = wcpProjectEnvironment.project.id;\n const url = [\"/orgs\", orgId, \"projects\", projectId, path].filter(Boolean).join(\"/\");\n return getWcpApiUrl(url);\n }\n\n private async updateSeats(operation: \"increment\" | \"decrement\"): Promise<void> {\n if (!wcpProjectEnvironment) {\n return;\n }\n\n const updateSeatsUrl = this.getWcpProjectUrl(\"package/seats\");\n\n const response = await wcpFetch({\n url: updateSeatsUrl!,\n authorization: wcpProjectEnvironment.apiKey,\n body: { operation },\n meta: {\n action: operation + \"Seats\"\n }\n });\n\n if (response.error) {\n const message = response.message || `Failed to ${operation} user seats.`;\n console.error(message, response.status, response.statusText);\n throw new WError(message, \"WCP_CANNOT_UPDATE_USER_TENANTS\");\n }\n }\n\n private async updateTenants(operation: \"increment\" | \"decrement\"): Promise<void> {\n if (!wcpProjectEnvironment) {\n return;\n }\n\n const updateTenantsUrl = this.getWcpProjectUrl(\"package/tenants\");\n\n const response = await wcpFetch({\n url: updateTenantsUrl!,\n authorization: wcpProjectEnvironment.apiKey,\n body: { operation },\n meta: {\n action: operation + \"Tenants\"\n }\n });\n\n if (response.error) {\n const message = response.message || `Failed to ${operation} tenants.`;\n console.error(message, response.status, response.statusText);\n throw new WError(message, \"WCP_CANNOT_UPDATE_USER_TENANTS\");\n }\n }\n\n getRawLicense(): DecryptedWcpProjectLicense | null {\n return this.license.getRawLicense();\n }\n\n getProject(): WcpProject | null {\n return this.license.getProject();\n }\n\n getProjectEnvironment(): WcpProjectEnvironment | null {\n return wcpProjectEnvironment;\n }\n\n getProjectLicense(): ILicense {\n return this.license;\n }\n\n canUseFeature(wcpFeatureId: keyof typeof WCP_FEATURE_LABEL): boolean {\n return this.license.canUseFeature(wcpFeatureId);\n }\n\n canUseAacl(): boolean {\n return this.license.canUseAacl();\n }\n\n canUseTeams(): boolean {\n return this.license.canUseTeams();\n }\n\n canUseFolderLevelPermissions(): boolean {\n return this.license.canUseFolderLevelPermissions();\n }\n\n canUsePrivateFiles(): boolean {\n return this.license.canUsePrivateFiles();\n }\n\n canUseAuditLogs(): boolean {\n return this.license.canUseAuditLogs();\n }\n\n canUseRecordLocking(): boolean {\n return this.license.canUseRecordLocking();\n }\n\n canUseFileManagerThreatDetection(): boolean {\n return this.license.canUseFileManagerThreatDetection();\n }\n\n canUseWorkflows(): boolean {\n return this.license.canUseWorkflows();\n }\n\n ensureCanUseFeature(wcpFeatureId: keyof typeof WCP_FEATURE_LABEL): void {\n if (this.license.canUseFeature(wcpFeatureId)) {\n return;\n }\n\n let message = `The ${wcpFeatureId} Webiny Control Panel feature cannot be used because your project license does not permit it.`;\n if (wcpProjectEnvironment) {\n const { org, project } = wcpProjectEnvironment;\n const upgradeProjectLicenseLink = getWcpAppUrl(`/${org.id}/${project.id}/settings`);\n message += ` To upgrade your project license, please use the following link: ${upgradeProjectLicenseLink}.`;\n }\n\n throw new WError(message, \"WCP_CANNOT_USE_FEATURE\", { wcpFeatureId });\n }\n\n async incrementSeats(): Promise<void> {\n await this.updateSeats(\"increment\");\n }\n\n async decrementSeats(): Promise<void> {\n await this.updateSeats(\"decrement\");\n }\n\n async incrementTenants(): Promise<void> {\n await this.updateTenants(\"increment\");\n }\n\n async decrementTenants(): Promise<void> {\n await this.updateTenants(\"decrement\");\n }\n\n toDto() {\n return this.getRawLicense();\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getWcpApiUrl","getWcpAppUrl","getWcpProjectEnvironment","WError","wcpFetch","wcpProjectEnvironment","WcpContextImpl","constructor","license","getWcpProjectUrl","path","orgId","org","id","projectId","project","url","filter","Boolean","join","updateSeats","operation","updateSeatsUrl","response","authorization","apiKey","body","meta","action","error","message","console","status","statusText","updateTenants","updateTenantsUrl","getRawLicense","getProject","getProjectWithFeatureFlags","getProjectEnvironment","getProjectLicense","canUseFeature","wcpFeatureId","canUseAacl","canUseTeams","canUseFolderLevelPermissions","canUsePrivateFiles","canUseAuditLogs","canUseRecordLocking","canUseFileManagerThreatDetection","canUseWorkflows","canUseHcmsFieldPermissions","ensureCanUseFeature","upgradeProjectLicenseLink","incrementSeats","decrementSeats","incrementTenants","decrementTenants","toDto"],"sources":["WcpContext.ts"],"sourcesContent":["import type { WCP_FEATURE_LABEL } from \"@webiny/wcp\";\nimport { getWcpApiUrl, getWcpAppUrl, getWcpProjectEnvironment } from \"@webiny/wcp\";\nimport WError from \"@webiny/error\";\nimport type {\n DecryptedWcpProjectLicense,\n ILicense,\n WcpProjectEnvironment,\n WcpProject\n} from \"@webiny/wcp/types.js\";\nimport { WcpContext } from \"./abstractions.js\";\nimport { wcpFetch } from \"./utils.js\";\n\nconst wcpProjectEnvironment = getWcpProjectEnvironment();\n\nexport interface CreateWcpContextParams {\n testProjectLicense?: DecryptedWcpProjectLicense;\n}\n\nexport class WcpContextImpl implements WcpContext.Interface {\n constructor(private license: ILicense) {}\n\n private getWcpProjectUrl(path = \"\"): string | null {\n if (!wcpProjectEnvironment) {\n return null;\n }\n\n const orgId = wcpProjectEnvironment.org.id;\n const projectId = wcpProjectEnvironment.project.id;\n const url = [\"/orgs\", orgId, \"projects\", projectId, path].filter(Boolean).join(\"/\");\n return getWcpApiUrl(url);\n }\n\n private async updateSeats(operation: \"increment\" | \"decrement\"): Promise<void> {\n if (!wcpProjectEnvironment) {\n return;\n }\n\n const updateSeatsUrl = this.getWcpProjectUrl(\"package/seats\");\n\n const response = await wcpFetch({\n url: updateSeatsUrl!,\n authorization: wcpProjectEnvironment.apiKey,\n body: { operation },\n meta: {\n action: operation + \"Seats\"\n }\n });\n\n if (response.error) {\n const message = response.message || `Failed to ${operation} user seats.`;\n console.error(message, response.status, response.statusText);\n throw new WError(message, \"WCP_CANNOT_UPDATE_USER_TENANTS\");\n }\n }\n\n private async updateTenants(operation: \"increment\" | \"decrement\"): Promise<void> {\n if (!wcpProjectEnvironment) {\n return;\n }\n\n const updateTenantsUrl = this.getWcpProjectUrl(\"package/tenants\");\n\n const response = await wcpFetch({\n url: updateTenantsUrl!,\n authorization: wcpProjectEnvironment.apiKey,\n body: { operation },\n meta: {\n action: operation + \"Tenants\"\n }\n });\n\n if (response.error) {\n const message = response.message || `Failed to ${operation} tenants.`;\n console.error(message, response.status, response.statusText);\n throw new WError(message, \"WCP_CANNOT_UPDATE_USER_TENANTS\");\n }\n }\n\n getRawLicense(): DecryptedWcpProjectLicense | null {\n return this.license.getRawLicense();\n }\n\n getProject(): WcpProject | null {\n return this.license.getProject();\n }\n\n getProjectWithFeatureFlags(): WcpProject | null {\n return this.getProject();\n }\n\n getProjectEnvironment(): WcpProjectEnvironment | null {\n return wcpProjectEnvironment;\n }\n\n getProjectLicense(): ILicense {\n return this.license;\n }\n\n canUseFeature(wcpFeatureId: keyof typeof WCP_FEATURE_LABEL): boolean {\n return this.license.canUseFeature(wcpFeatureId);\n }\n\n canUseAacl(): boolean {\n return this.license.canUseAacl();\n }\n\n canUseTeams(): boolean {\n return this.license.canUseTeams();\n }\n\n canUseFolderLevelPermissions(): boolean {\n return this.license.canUseFolderLevelPermissions();\n }\n\n canUsePrivateFiles(): boolean {\n return this.license.canUsePrivateFiles();\n }\n\n canUseAuditLogs(): boolean {\n return this.license.canUseAuditLogs();\n }\n\n canUseRecordLocking(): boolean {\n return this.license.canUseRecordLocking();\n }\n\n canUseFileManagerThreatDetection(): boolean {\n return this.license.canUseFileManagerThreatDetection();\n }\n\n canUseWorkflows(): boolean {\n return this.license.canUseWorkflows();\n }\n\n canUseHcmsFieldPermissions(): boolean {\n return this.license.canUseHcmsFieldPermissions();\n }\n\n ensureCanUseFeature(wcpFeatureId: keyof typeof WCP_FEATURE_LABEL): void {\n if (this.license.canUseFeature(wcpFeatureId)) {\n return;\n }\n\n let message = `The ${wcpFeatureId} Webiny Control Panel feature cannot be used because your project license does not permit it.`;\n if (wcpProjectEnvironment) {\n const { org, project } = wcpProjectEnvironment;\n const upgradeProjectLicenseLink = getWcpAppUrl(`/${org.id}/${project.id}/settings`);\n message += ` To upgrade your project license, please use the following link: ${upgradeProjectLicenseLink}.`;\n }\n\n throw new WError(message, \"WCP_CANNOT_USE_FEATURE\", { wcpFeatureId });\n }\n\n async incrementSeats(): Promise<void> {\n await this.updateSeats(\"increment\");\n }\n\n async decrementSeats(): Promise<void> {\n await this.updateSeats(\"decrement\");\n }\n\n async incrementTenants(): Promise<void> {\n await this.updateTenants(\"increment\");\n }\n\n async decrementTenants(): Promise<void> {\n await this.updateTenants(\"decrement\");\n }\n\n toDto() {\n return this.getRawLicense();\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -5,6 +5,7 @@ import type { WCP_FEATURE_LABEL } from "@webiny/wcp";
5
5
  */
6
6
  export interface IWcpContext extends ILicense {
7
7
  getProject(): WcpProject | null;
8
+ getProjectWithFeatureFlags(): WcpProject | null;
8
9
  getProjectLicense(): ILicense;
9
10
  getProjectEnvironment(): WcpProjectEnvironment | null;
10
11
  ensureCanUseFeature(featureId: keyof typeof WCP_FEATURE_LABEL): void;
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","WcpContext"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { ILicense, WcpProject, WcpProjectEnvironment } from \"@webiny/wcp/types.js\";\nimport type { WCP_FEATURE_LABEL } from \"@webiny/wcp\";\n\n/**\n * WcpContext Abstraction\n */\nexport interface IWcpContext extends ILicense {\n getProject(): WcpProject | null;\n getProjectLicense(): ILicense;\n getProjectEnvironment(): WcpProjectEnvironment | null;\n ensureCanUseFeature(featureId: keyof typeof WCP_FEATURE_LABEL): void;\n incrementSeats(): Promise<void>;\n decrementSeats(): Promise<void>;\n incrementTenants(): Promise<void>;\n decrementTenants(): Promise<void>;\n}\n\nexport const WcpContext = createAbstraction<IWcpContext>(\"WcpContext\");\n\nexport namespace WcpContext {\n export type Interface = IWcpContext;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAIvD;AACA;AACA;;AAYA,OAAO,MAAMC,UAAU,GAAGD,iBAAiB,CAAc,YAAY,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","WcpContext"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { ILicense, WcpProject, WcpProjectEnvironment } from \"@webiny/wcp/types.js\";\nimport type { WCP_FEATURE_LABEL } from \"@webiny/wcp\";\n\n/**\n * WcpContext Abstraction\n */\nexport interface IWcpContext extends ILicense {\n getProject(): WcpProject | null;\n getProjectWithFeatureFlags(): WcpProject | null;\n getProjectLicense(): ILicense;\n getProjectEnvironment(): WcpProjectEnvironment | null;\n ensureCanUseFeature(featureId: keyof typeof WCP_FEATURE_LABEL): void;\n incrementSeats(): Promise<void>;\n decrementSeats(): Promise<void>;\n incrementTenants(): Promise<void>;\n decrementTenants(): Promise<void>;\n}\n\nexport const WcpContext = createAbstraction<IWcpContext>(\"WcpContext\");\n\nexport namespace WcpContext {\n export type Interface = IWcpContext;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAIvD;AACA;AACA;;AAaA,OAAO,MAAMC,UAAU,GAAGD,iBAAiB,CAAc,YAAY,CAAC","ignoreList":[]}
@@ -0,0 +1,79 @@
1
+ import type { WCP_FEATURE_LABEL } from "@webiny/wcp";
2
+ import { WcpContext } from "../abstractions.js";
3
+ import { FeatureFlags } from "../../../featureFlags/abstractions.js";
4
+ declare class WcpContextWithFeatureFlagsDecoratorImpl implements WcpContext.Interface {
5
+ private featureFlags;
6
+ private decoratee;
7
+ constructor(featureFlags: FeatureFlags.Interface, decoratee: WcpContext.Interface);
8
+ getRawLicense(): import("@webiny/wcp/types.js").DecryptedWcpProjectLicense | null;
9
+ getProject(): import("@webiny/wcp/types.js").WcpProject | null;
10
+ getProjectWithFeatureFlags(): {
11
+ package: {
12
+ features: {
13
+ multiTenancy: {
14
+ enabled: true;
15
+ options: {
16
+ maxCount: {
17
+ type: import("@webiny/wcp/types.js").MT_OPTIONS_MAX_COUNT_TYPE;
18
+ count?: number;
19
+ };
20
+ };
21
+ };
22
+ advancedPublishingWorkflow: {
23
+ enabled: boolean;
24
+ };
25
+ advancedAccessControlLayer: {
26
+ enabled: boolean;
27
+ options: {
28
+ teams: boolean;
29
+ privateFiles: boolean;
30
+ folderLevelPermissions: boolean;
31
+ hcmsFieldPermissions: boolean;
32
+ };
33
+ };
34
+ auditLogs: {
35
+ enabled: boolean;
36
+ };
37
+ recordLocking: {
38
+ enabled: boolean;
39
+ };
40
+ fileManager: {
41
+ enabled: boolean;
42
+ options: {
43
+ threatDetection: boolean;
44
+ };
45
+ };
46
+ seats: {
47
+ enabled: true;
48
+ options: {
49
+ maxCount: number;
50
+ };
51
+ };
52
+ };
53
+ };
54
+ orgId: string;
55
+ projectId: string;
56
+ } | null;
57
+ getProjectEnvironment(): import("@webiny/wcp/types.js").WcpProjectEnvironment | null;
58
+ getProjectLicense(): import("@webiny/wcp/types.js").ILicense;
59
+ canUseFeature(wcpFeatureId: keyof typeof WCP_FEATURE_LABEL): boolean;
60
+ canUseAacl(): boolean;
61
+ canUseTeams(): boolean;
62
+ canUseFolderLevelPermissions(): boolean;
63
+ canUsePrivateFiles(): boolean;
64
+ canUseAuditLogs(): boolean;
65
+ canUseRecordLocking(): boolean;
66
+ canUseFileManagerThreatDetection(): boolean;
67
+ canUseWorkflows(): boolean;
68
+ canUseHcmsFieldPermissions(): boolean;
69
+ ensureCanUseFeature(featureId: keyof typeof WCP_FEATURE_LABEL): void;
70
+ incrementSeats(): Promise<void>;
71
+ decrementSeats(): Promise<void>;
72
+ incrementTenants(): Promise<void>;
73
+ decrementTenants(): Promise<void>;
74
+ toDto(): import("@webiny/wcp/types.js").DecryptedWcpProjectLicense | null;
75
+ }
76
+ export declare const WcpContextWithFeatureFlagsDecorator: typeof WcpContextWithFeatureFlagsDecoratorImpl & {
77
+ __abstraction: import("@webiny/di").Abstraction<import("../abstractions.js").IWcpContext>;
78
+ };
79
+ export {};
@@ -0,0 +1,120 @@
1
+ import { WcpContext } from "../abstractions.js";
2
+ import { FeatureFlags } from "../../../featureFlags/abstractions.js";
3
+ class WcpContextWithFeatureFlagsDecoratorImpl {
4
+ constructor(featureFlags, decoratee) {
5
+ this.featureFlags = featureFlags;
6
+ this.decoratee = decoratee;
7
+ }
8
+ getRawLicense() {
9
+ return this.decoratee.getRawLicense();
10
+ }
11
+ getProject() {
12
+ return this.decoratee.getProject();
13
+ }
14
+ getProjectWithFeatureFlags() {
15
+ const project = this.decoratee.getProjectWithFeatureFlags();
16
+ if (!project) {
17
+ return null;
18
+ }
19
+ const flags = this.featureFlags.get();
20
+ return {
21
+ ...project,
22
+ package: {
23
+ ...project.package,
24
+ features: {
25
+ ...project.package.features,
26
+ multiTenancy: project.package.features.multiTenancy,
27
+ advancedPublishingWorkflow: {
28
+ ...project.package.features.advancedPublishingWorkflow,
29
+ enabled: flags.isWorkflowsEnabled() ? project.package.features.advancedPublishingWorkflow.enabled : false
30
+ },
31
+ advancedAccessControlLayer: {
32
+ ...project.package.features.advancedAccessControlLayer,
33
+ enabled: flags.isAaclEnabled() ? project.package.features.advancedAccessControlLayer.enabled : false,
34
+ options: {
35
+ teams: flags.isTeamsEnabled() ? project.package.features.advancedAccessControlLayer.options.teams : false,
36
+ privateFiles: flags.isPrivateFilesEnabled() ? project.package.features.advancedAccessControlLayer.options.privateFiles : false,
37
+ folderLevelPermissions: flags.isFolderLevelPermissionsEnabled() ? project.package.features.advancedAccessControlLayer.options.folderLevelPermissions : false,
38
+ hcmsFieldPermissions: project.package.features.advancedAccessControlLayer.options.hcmsFieldPermissions
39
+ }
40
+ },
41
+ auditLogs: {
42
+ ...project.package.features.auditLogs,
43
+ enabled: flags.isAuditLogsEnabled() ? project.package.features.auditLogs.enabled : false
44
+ },
45
+ recordLocking: {
46
+ ...project.package.features.recordLocking,
47
+ enabled: flags.isRecordLockingEnabled() ? project.package.features.recordLocking.enabled : false
48
+ },
49
+ fileManager: {
50
+ ...project.package.features.fileManager,
51
+ enabled: project.package.features.fileManager.enabled,
52
+ options: {
53
+ threatDetection: flags.isFileManagerThreatDetectionEnabled() ? project.package.features.fileManager.options.threatDetection : false
54
+ }
55
+ }
56
+ }
57
+ }
58
+ };
59
+ }
60
+ getProjectEnvironment() {
61
+ return this.decoratee.getProjectEnvironment();
62
+ }
63
+ getProjectLicense() {
64
+ return this.decoratee.getProjectLicense();
65
+ }
66
+ canUseFeature(wcpFeatureId) {
67
+ return this.decoratee.canUseFeature(wcpFeatureId);
68
+ }
69
+ canUseAacl() {
70
+ return this.decoratee.canUseAacl() && this.featureFlags.get().isAaclEnabled();
71
+ }
72
+ canUseTeams() {
73
+ return this.decoratee.canUseTeams() && this.featureFlags.get().isTeamsEnabled();
74
+ }
75
+ canUseFolderLevelPermissions() {
76
+ return this.decoratee.canUseFolderLevelPermissions() && this.featureFlags.get().isFolderLevelPermissionsEnabled();
77
+ }
78
+ canUsePrivateFiles() {
79
+ return this.decoratee.canUsePrivateFiles() && this.featureFlags.get().isPrivateFilesEnabled();
80
+ }
81
+ canUseAuditLogs() {
82
+ return this.decoratee.canUseAuditLogs() && this.featureFlags.get().isAuditLogsEnabled();
83
+ }
84
+ canUseRecordLocking() {
85
+ return this.decoratee.canUseRecordLocking() && this.featureFlags.get().isRecordLockingEnabled();
86
+ }
87
+ canUseFileManagerThreatDetection() {
88
+ return this.decoratee.canUseFileManagerThreatDetection() && this.featureFlags.get().isFileManagerThreatDetectionEnabled();
89
+ }
90
+ canUseWorkflows() {
91
+ return this.decoratee.canUseWorkflows() && this.featureFlags.get().isWorkflowsEnabled();
92
+ }
93
+ canUseHcmsFieldPermissions() {
94
+ return this.decoratee.canUseHcmsFieldPermissions();
95
+ }
96
+ ensureCanUseFeature(featureId) {
97
+ return this.decoratee.ensureCanUseFeature(featureId);
98
+ }
99
+ async incrementSeats() {
100
+ return this.decoratee.incrementSeats();
101
+ }
102
+ async decrementSeats() {
103
+ return this.decoratee.decrementSeats();
104
+ }
105
+ async incrementTenants() {
106
+ return this.decoratee.incrementTenants();
107
+ }
108
+ async decrementTenants() {
109
+ return this.decoratee.decrementTenants();
110
+ }
111
+ toDto() {
112
+ return this.decoratee.toDto();
113
+ }
114
+ }
115
+ export const WcpContextWithFeatureFlagsDecorator = WcpContext.createDecorator({
116
+ decorator: WcpContextWithFeatureFlagsDecoratorImpl,
117
+ dependencies: [FeatureFlags]
118
+ });
119
+
120
+ //# sourceMappingURL=WcpContextWithFeatureFlagsDecorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["WcpContext","FeatureFlags","WcpContextWithFeatureFlagsDecoratorImpl","constructor","featureFlags","decoratee","getRawLicense","getProject","getProjectWithFeatureFlags","project","flags","get","package","features","multiTenancy","advancedPublishingWorkflow","enabled","isWorkflowsEnabled","advancedAccessControlLayer","isAaclEnabled","options","teams","isTeamsEnabled","privateFiles","isPrivateFilesEnabled","folderLevelPermissions","isFolderLevelPermissionsEnabled","hcmsFieldPermissions","auditLogs","isAuditLogsEnabled","recordLocking","isRecordLockingEnabled","fileManager","threatDetection","isFileManagerThreatDetectionEnabled","getProjectEnvironment","getProjectLicense","canUseFeature","wcpFeatureId","canUseAacl","canUseTeams","canUseFolderLevelPermissions","canUsePrivateFiles","canUseAuditLogs","canUseRecordLocking","canUseFileManagerThreatDetection","canUseWorkflows","canUseHcmsFieldPermissions","ensureCanUseFeature","featureId","incrementSeats","decrementSeats","incrementTenants","decrementTenants","toDto","WcpContextWithFeatureFlagsDecorator","createDecorator","decorator","dependencies"],"sources":["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:\n project.package.features.advancedAccessControlLayer.options\n .hcmsFieldPermissions\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 }\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 this.decoratee.canUseHcmsFieldPermissions();\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"],"mappings":"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","ignoreList":[]}
@@ -1,9 +1,11 @@
1
1
  import { createFeature } from "@webiny/feature/api";
2
2
  import { WcpContextFeature } from "./WcpContext/feature.js";
3
+ import { WcpContextWithFeatureFlagsDecorator } from "./WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.js";
3
4
  export const WcpFeature = createFeature({
4
5
  name: "WebinyControlPanel",
5
6
  register(container, license) {
6
7
  WcpContextFeature.register(container, license);
8
+ container.registerDecorator(WcpContextWithFeatureFlagsDecorator);
7
9
  }
8
10
  });
9
11
 
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","WcpContextFeature","WcpFeature","name","register","container","license"],"sources":["WcpFeature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { WcpContextFeature } from \"./WcpContext/feature.js\";\nimport type { ILicense } from \"@webiny/wcp/types.js\";\n\nexport const WcpFeature = createFeature({\n name: \"WebinyControlPanel\",\n register(container, license: ILicense) {\n WcpContextFeature.register(container, license);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,iBAAiB;AAG1B,OAAO,MAAMC,UAAU,GAAGF,aAAa,CAAC;EACpCG,IAAI,EAAE,oBAAoB;EAC1BC,QAAQA,CAACC,SAAS,EAAEC,OAAiB,EAAE;IACnCL,iBAAiB,CAACG,QAAQ,CAACC,SAAS,EAAEC,OAAO,CAAC;EAClD;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createFeature","WcpContextFeature","WcpContextWithFeatureFlagsDecorator","WcpFeature","name","register","container","license","registerDecorator"],"sources":["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({\n name: \"WebinyControlPanel\",\n register(container, license: ILicense) {\n WcpContextFeature.register(container, license);\n container.registerDecorator(WcpContextWithFeatureFlagsDecorator);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,iBAAiB;AAC1B,SAASC,mCAAmC;AAG5C,OAAO,MAAMC,UAAU,GAAGH,aAAa,CAAC;EACpCI,IAAI,EAAE,oBAAoB;EAC1BC,QAAQA,CAACC,SAAS,EAAEC,OAAiB,EAAE;IACnCN,iBAAiB,CAACI,QAAQ,CAACC,SAAS,EAAEC,OAAO,CAAC;IAC9CD,SAAS,CAACE,iBAAiB,CAACN,mCAAmC,CAAC;EACpE;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -66,7 +66,7 @@ export const createWcpGraphQL = () => {
66
66
  getProject: async (_, __, context) => {
67
67
  try {
68
68
  const wcpContext = context.container.resolve(WcpContext);
69
- const project = wcpContext.getProject();
69
+ const project = wcpContext.getProjectWithFeatureFlags();
70
70
  if (!project) {
71
71
  throw Error(`Could not get project!`);
72
72
  }
@@ -1 +1 @@
1
- {"version":3,"names":["GraphQLSchemaPlugin","ErrorResponse","Response","WcpContext","emptyResolver","createWcpGraphQL","typeDefs","resolvers","Query","wcp","WcpQuery","getProject","_","__","context","wcpContext","container","resolve","project","Error","e","code","message","data","stack"],"sources":["graphql.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/index.js\";\nimport { ErrorResponse, Response } from \"@webiny/handler-graphql/responses.js\";\nimport { WcpContext } from \"~/features/wcp/WcpContext/index.js\";\n\nconst emptyResolver = () => ({});\n\nexport const createWcpGraphQL = () => {\n return new GraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n type WcpProjectPackageFeaturesFeature {\n enabled: Boolean\n options: JSON\n }\n\n type WcpProjectPackageFeatures {\n seats: WcpProjectPackageFeaturesFeature\n multiTenancy: WcpProjectPackageFeaturesFeature\n advancedPublishingWorkflow: WcpProjectPackageFeaturesFeature\n advancedAccessControlLayer: WcpProjectPackageFeaturesFeature\n auditLogs: WcpProjectPackageFeaturesFeature\n recordLocking: WcpProjectPackageFeaturesFeature\n fileManager: WcpProjectPackageFeaturesFeature\n }\n\n type WcpProjectPackage {\n features: WcpProjectPackageFeatures\n }\n\n type WcpProject {\n orgId: ID\n projectId: ID\n package: WcpProjectPackage\n }\n\n type WcpError {\n code: String\n message: String\n data: JSON\n stack: String\n }\n\n type WcpProjectResponse {\n data: WcpProject\n error: WcpError\n }\n\n type WcpQuery {\n getProject: WcpProjectResponse\n }\n\n type WcpMutation {\n updateProject: WcpProjectResponse\n }\n\n extend type Query {\n wcp: WcpQuery\n }\n\n extend type Mutation {\n wcp: WcpMutation\n }\n `,\n resolvers: {\n Query: {\n wcp: emptyResolver\n },\n WcpQuery: {\n getProject: async (_, __, context) => {\n try {\n const wcpContext = context.container.resolve(WcpContext);\n const project = wcpContext.getProject();\n\n if (!project) {\n throw Error(`Could not get project!`);\n }\n\n return new Response(project);\n } catch (e) {\n return new ErrorResponse({\n code: \"COULD_NOT_GET_PROJECT\",\n message: e.message,\n data: null,\n stack: e.stack\n });\n }\n }\n }\n }\n });\n};\n"],"mappings":"AAAA,SAASA,mBAAmB,QAAQ,0CAA0C;AAC9E,SAASC,aAAa,EAAEC,QAAQ,QAAQ,sCAAsC;AAC9E,SAASC,UAAU;AAEnB,MAAMC,aAAa,GAAGA,CAAA,MAAO,CAAC,CAAC,CAAC;AAEhC,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;EAClC,OAAO,IAAIL,mBAAmB,CAAC;IAC3BM,QAAQ,EAAE,aAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;IACDC,SAAS,EAAE;MACPC,KAAK,EAAE;QACHC,GAAG,EAAEL;MACT,CAAC;MACDM,QAAQ,EAAE;QACNC,UAAU,EAAE,MAAAA,CAAOC,CAAC,EAAEC,EAAE,EAAEC,OAAO,KAAK;UAClC,IAAI;YACA,MAAMC,UAAU,GAAGD,OAAO,CAACE,SAAS,CAACC,OAAO,CAACd,UAAU,CAAC;YACxD,MAAMe,OAAO,GAAGH,UAAU,CAACJ,UAAU,CAAC,CAAC;YAEvC,IAAI,CAACO,OAAO,EAAE;cACV,MAAMC,KAAK,CAAC,wBAAwB,CAAC;YACzC;YAEA,OAAO,IAAIjB,QAAQ,CAACgB,OAAO,CAAC;UAChC,CAAC,CAAC,OAAOE,CAAC,EAAE;YACR,OAAO,IAAInB,aAAa,CAAC;cACrBoB,IAAI,EAAE,uBAAuB;cAC7BC,OAAO,EAAEF,CAAC,CAACE,OAAO;cAClBC,IAAI,EAAE,IAAI;cACVC,KAAK,EAAEJ,CAAC,CAACI;YACb,CAAC,CAAC;UACN;QACJ;MACJ;IACJ;EACJ,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["GraphQLSchemaPlugin","ErrorResponse","Response","WcpContext","emptyResolver","createWcpGraphQL","typeDefs","resolvers","Query","wcp","WcpQuery","getProject","_","__","context","wcpContext","container","resolve","project","getProjectWithFeatureFlags","Error","e","code","message","data","stack"],"sources":["graphql.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/index.js\";\nimport { ErrorResponse, Response } from \"@webiny/handler-graphql/responses.js\";\nimport { WcpContext } from \"~/features/wcp/WcpContext/index.js\";\n\nconst emptyResolver = () => ({});\n\nexport const createWcpGraphQL = () => {\n return new GraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n type WcpProjectPackageFeaturesFeature {\n enabled: Boolean\n options: JSON\n }\n\n type WcpProjectPackageFeatures {\n seats: WcpProjectPackageFeaturesFeature\n multiTenancy: WcpProjectPackageFeaturesFeature\n advancedPublishingWorkflow: WcpProjectPackageFeaturesFeature\n advancedAccessControlLayer: WcpProjectPackageFeaturesFeature\n auditLogs: WcpProjectPackageFeaturesFeature\n recordLocking: WcpProjectPackageFeaturesFeature\n fileManager: WcpProjectPackageFeaturesFeature\n }\n\n type WcpProjectPackage {\n features: WcpProjectPackageFeatures\n }\n\n type WcpProject {\n orgId: ID\n projectId: ID\n package: WcpProjectPackage\n }\n\n type WcpError {\n code: String\n message: String\n data: JSON\n stack: String\n }\n\n type WcpProjectResponse {\n data: WcpProject\n error: WcpError\n }\n\n type WcpQuery {\n getProject: WcpProjectResponse\n }\n\n type WcpMutation {\n updateProject: WcpProjectResponse\n }\n\n extend type Query {\n wcp: WcpQuery\n }\n\n extend type Mutation {\n wcp: WcpMutation\n }\n `,\n resolvers: {\n Query: {\n wcp: emptyResolver\n },\n WcpQuery: {\n getProject: async (_, __, context) => {\n try {\n const wcpContext = context.container.resolve(WcpContext);\n const project = wcpContext.getProjectWithFeatureFlags();\n\n if (!project) {\n throw Error(`Could not get project!`);\n }\n\n return new Response(project);\n } catch (e) {\n return new ErrorResponse({\n code: \"COULD_NOT_GET_PROJECT\",\n message: e.message,\n data: null,\n stack: e.stack\n });\n }\n }\n }\n }\n });\n};\n"],"mappings":"AAAA,SAASA,mBAAmB,QAAQ,0CAA0C;AAC9E,SAASC,aAAa,EAAEC,QAAQ,QAAQ,sCAAsC;AAC9E,SAASC,UAAU;AAEnB,MAAMC,aAAa,GAAGA,CAAA,MAAO,CAAC,CAAC,CAAC;AAEhC,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;EAClC,OAAO,IAAIL,mBAAmB,CAAC;IAC3BM,QAAQ,EAAE,aAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;IACDC,SAAS,EAAE;MACPC,KAAK,EAAE;QACHC,GAAG,EAAEL;MACT,CAAC;MACDM,QAAQ,EAAE;QACNC,UAAU,EAAE,MAAAA,CAAOC,CAAC,EAAEC,EAAE,EAAEC,OAAO,KAAK;UAClC,IAAI;YACA,MAAMC,UAAU,GAAGD,OAAO,CAACE,SAAS,CAACC,OAAO,CAACd,UAAU,CAAC;YACxD,MAAMe,OAAO,GAAGH,UAAU,CAACI,0BAA0B,CAAC,CAAC;YAEvD,IAAI,CAACD,OAAO,EAAE;cACV,MAAME,KAAK,CAAC,wBAAwB,CAAC;YACzC;YAEA,OAAO,IAAIlB,QAAQ,CAACgB,OAAO,CAAC;UAChC,CAAC,CAAC,OAAOG,CAAC,EAAE;YACR,OAAO,IAAIpB,aAAa,CAAC;cACrBqB,IAAI,EAAE,uBAAuB;cAC7BC,OAAO,EAAEF,CAAC,CAACE,OAAO;cAClBC,IAAI,EAAE,IAAI;cACVC,KAAK,EAAEJ,CAAC,CAACI;YACb,CAAC,CAAC;UACN;QACJ;MACJ;IACJ;EACJ,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
@@ -8,6 +8,7 @@ export declare class LegacyWcpContext implements WcpContextObject {
8
8
  private getWcpContext;
9
9
  getRawLicense(): DecryptedWcpProjectLicense | null;
10
10
  getProject(): WcpProject | null;
11
+ getProjectWithFeatureFlags(): WcpProject | null;
11
12
  getProjectLicense(): ILicense;
12
13
  getProjectEnvironment(): WcpProjectEnvironment | null;
13
14
  canUseFeature(wcpFeatureId: keyof typeof WCP_FEATURE_LABEL): boolean;
@@ -19,6 +20,7 @@ export declare class LegacyWcpContext implements WcpContextObject {
19
20
  canUseRecordLocking(): boolean;
20
21
  canUseFileManagerThreatDetection(): boolean;
21
22
  canUseWorkflows(): boolean;
23
+ canUseHcmsFieldPermissions(): boolean;
22
24
  ensureCanUseFeature(featureId: keyof typeof WCP_FEATURE_LABEL): void;
23
25
  incrementSeats(): Promise<void>;
24
26
  decrementSeats(): Promise<void>;
@@ -12,6 +12,9 @@ export class LegacyWcpContext {
12
12
  getProject() {
13
13
  return this.getWcpContext().getProject();
14
14
  }
15
+ getProjectWithFeatureFlags() {
16
+ return this.getWcpContext().getProjectWithFeatureFlags();
17
+ }
15
18
  getProjectLicense() {
16
19
  return this.getWcpContext().getProjectLicense();
17
20
  }
@@ -45,6 +48,9 @@ export class LegacyWcpContext {
45
48
  canUseWorkflows() {
46
49
  return this.getWcpContext().canUseWorkflows();
47
50
  }
51
+ canUseHcmsFieldPermissions() {
52
+ return this.getWcpContext().canUseHcmsFieldPermissions();
53
+ }
48
54
  ensureCanUseFeature(featureId) {
49
55
  this.getWcpContext().ensureCanUseFeature(featureId);
50
56
  }
@@ -1 +1 @@
1
- {"version":3,"names":["WcpContext","LegacyWcpContext","constructor","container","getWcpContext","resolve","getRawLicense","getProject","getProjectLicense","getProjectEnvironment","canUseFeature","wcpFeatureId","canUseAacl","canUseTeams","canUseFolderLevelPermissions","canUsePrivateFiles","canUseAuditLogs","canUseRecordLocking","canUseFileManagerThreatDetection","canUseWorkflows","ensureCanUseFeature","featureId","incrementSeats","decrementSeats","incrementTenants","decrementTenants","toDto"],"sources":["LegacyWcpContext.ts"],"sourcesContent":["import { Container } from \"@webiny/di\";\nimport type { WCP_FEATURE_LABEL } from \"@webiny/wcp\";\nimport type {\n DecryptedWcpProjectLicense,\n ILicense,\n WcpProject,\n WcpProjectEnvironment\n} from \"@webiny/wcp/types.js\";\nimport { WcpContextObject } from \"~/features/wcp/WcpContext/types.js\";\nimport { WcpContext } from \"~/features/wcp/WcpContext/index.js\";\n\nexport class LegacyWcpContext implements WcpContextObject {\n constructor(private container: Container) {}\n\n private getWcpContext(): WcpContext.Interface {\n return this.container.resolve(WcpContext);\n }\n\n getRawLicense(): DecryptedWcpProjectLicense | null {\n return this.getWcpContext().getRawLicense();\n }\n\n getProject(): WcpProject | null {\n return this.getWcpContext().getProject();\n }\n\n getProjectLicense(): ILicense {\n return this.getWcpContext().getProjectLicense();\n }\n\n getProjectEnvironment(): WcpProjectEnvironment | null {\n return this.getWcpContext().getProjectEnvironment();\n }\n\n canUseFeature(wcpFeatureId: keyof typeof WCP_FEATURE_LABEL): boolean {\n return this.getWcpContext().canUseFeature(wcpFeatureId);\n }\n\n canUseAacl(): boolean {\n return this.getWcpContext().canUseAacl();\n }\n\n canUseTeams(): boolean {\n return this.getWcpContext().canUseTeams();\n }\n\n canUseFolderLevelPermissions(): boolean {\n return this.getWcpContext().canUseFolderLevelPermissions();\n }\n\n canUsePrivateFiles(): boolean {\n return this.getWcpContext().canUsePrivateFiles();\n }\n\n canUseAuditLogs(): boolean {\n return this.getWcpContext().canUseAuditLogs();\n }\n\n canUseRecordLocking(): boolean {\n return this.getWcpContext().canUseRecordLocking();\n }\n\n canUseFileManagerThreatDetection(): boolean {\n return this.getWcpContext().canUseFileManagerThreatDetection();\n }\n\n canUseWorkflows(): boolean {\n return this.getWcpContext().canUseWorkflows();\n }\n\n ensureCanUseFeature(featureId: keyof typeof WCP_FEATURE_LABEL): void {\n this.getWcpContext().ensureCanUseFeature(featureId);\n }\n\n async incrementSeats(): Promise<void> {\n await this.getWcpContext().incrementSeats();\n }\n\n async decrementSeats(): Promise<void> {\n await this.getWcpContext().decrementSeats();\n }\n\n async incrementTenants(): Promise<void> {\n await this.getWcpContext().incrementTenants();\n }\n\n async decrementTenants(): Promise<void> {\n await this.getWcpContext().decrementTenants();\n }\n\n toDto(): DecryptedWcpProjectLicense | null {\n return this.getWcpContext().toDto();\n }\n}\n"],"mappings":"AASA,SAASA,UAAU;AAEnB,OAAO,MAAMC,gBAAgB,CAA6B;EACtDC,WAAWA,CAASC,SAAoB,EAAE;IAAA,KAAtBA,SAAoB,GAApBA,SAAoB;EAAG;EAEnCC,aAAaA,CAAA,EAAyB;IAC1C,OAAO,IAAI,CAACD,SAAS,CAACE,OAAO,CAACL,UAAU,CAAC;EAC7C;EAEAM,aAAaA,CAAA,EAAsC;IAC/C,OAAO,IAAI,CAACF,aAAa,CAAC,CAAC,CAACE,aAAa,CAAC,CAAC;EAC/C;EAEAC,UAAUA,CAAA,EAAsB;IAC5B,OAAO,IAAI,CAACH,aAAa,CAAC,CAAC,CAACG,UAAU,CAAC,CAAC;EAC5C;EAEAC,iBAAiBA,CAAA,EAAa;IAC1B,OAAO,IAAI,CAACJ,aAAa,CAAC,CAAC,CAACI,iBAAiB,CAAC,CAAC;EACnD;EAEAC,qBAAqBA,CAAA,EAAiC;IAClD,OAAO,IAAI,CAACL,aAAa,CAAC,CAAC,CAACK,qBAAqB,CAAC,CAAC;EACvD;EAEAC,aAAaA,CAACC,YAA4C,EAAW;IACjE,OAAO,IAAI,CAACP,aAAa,CAAC,CAAC,CAACM,aAAa,CAACC,YAAY,CAAC;EAC3D;EAEAC,UAAUA,CAAA,EAAY;IAClB,OAAO,IAAI,CAACR,aAAa,CAAC,CAAC,CAACQ,UAAU,CAAC,CAAC;EAC5C;EAEAC,WAAWA,CAAA,EAAY;IACnB,OAAO,IAAI,CAACT,aAAa,CAAC,CAAC,CAACS,WAAW,CAAC,CAAC;EAC7C;EAEAC,4BAA4BA,CAAA,EAAY;IACpC,OAAO,IAAI,CAACV,aAAa,CAAC,CAAC,CAACU,4BAA4B,CAAC,CAAC;EAC9D;EAEAC,kBAAkBA,CAAA,EAAY;IAC1B,OAAO,IAAI,CAACX,aAAa,CAAC,CAAC,CAACW,kBAAkB,CAAC,CAAC;EACpD;EAEAC,eAAeA,CAAA,EAAY;IACvB,OAAO,IAAI,CAACZ,aAAa,CAAC,CAAC,CAACY,eAAe,CAAC,CAAC;EACjD;EAEAC,mBAAmBA,CAAA,EAAY;IAC3B,OAAO,IAAI,CAACb,aAAa,CAAC,CAAC,CAACa,mBAAmB,CAAC,CAAC;EACrD;EAEAC,gCAAgCA,CAAA,EAAY;IACxC,OAAO,IAAI,CAACd,aAAa,CAAC,CAAC,CAACc,gCAAgC,CAAC,CAAC;EAClE;EAEAC,eAAeA,CAAA,EAAY;IACvB,OAAO,IAAI,CAACf,aAAa,CAAC,CAAC,CAACe,eAAe,CAAC,CAAC;EACjD;EAEAC,mBAAmBA,CAACC,SAAyC,EAAQ;IACjE,IAAI,CAACjB,aAAa,CAAC,CAAC,CAACgB,mBAAmB,CAACC,SAAS,CAAC;EACvD;EAEA,MAAMC,cAAcA,CAAA,EAAkB;IAClC,MAAM,IAAI,CAAClB,aAAa,CAAC,CAAC,CAACkB,cAAc,CAAC,CAAC;EAC/C;EAEA,MAAMC,cAAcA,CAAA,EAAkB;IAClC,MAAM,IAAI,CAACnB,aAAa,CAAC,CAAC,CAACmB,cAAc,CAAC,CAAC;EAC/C;EAEA,MAAMC,gBAAgBA,CAAA,EAAkB;IACpC,MAAM,IAAI,CAACpB,aAAa,CAAC,CAAC,CAACoB,gBAAgB,CAAC,CAAC;EACjD;EAEA,MAAMC,gBAAgBA,CAAA,EAAkB;IACpC,MAAM,IAAI,CAACrB,aAAa,CAAC,CAAC,CAACqB,gBAAgB,CAAC,CAAC;EACjD;EAEAC,KAAKA,CAAA,EAAsC;IACvC,OAAO,IAAI,CAACtB,aAAa,CAAC,CAAC,CAACsB,KAAK,CAAC,CAAC;EACvC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["WcpContext","LegacyWcpContext","constructor","container","getWcpContext","resolve","getRawLicense","getProject","getProjectWithFeatureFlags","getProjectLicense","getProjectEnvironment","canUseFeature","wcpFeatureId","canUseAacl","canUseTeams","canUseFolderLevelPermissions","canUsePrivateFiles","canUseAuditLogs","canUseRecordLocking","canUseFileManagerThreatDetection","canUseWorkflows","canUseHcmsFieldPermissions","ensureCanUseFeature","featureId","incrementSeats","decrementSeats","incrementTenants","decrementTenants","toDto"],"sources":["LegacyWcpContext.ts"],"sourcesContent":["import { Container } from \"@webiny/di\";\nimport type { WCP_FEATURE_LABEL } from \"@webiny/wcp\";\nimport type {\n DecryptedWcpProjectLicense,\n ILicense,\n WcpProject,\n WcpProjectEnvironment\n} from \"@webiny/wcp/types.js\";\nimport { WcpContextObject } from \"~/features/wcp/WcpContext/types.js\";\nimport { WcpContext } from \"~/features/wcp/WcpContext/index.js\";\n\nexport class LegacyWcpContext implements WcpContextObject {\n constructor(private container: Container) {}\n\n private getWcpContext(): WcpContext.Interface {\n return this.container.resolve(WcpContext);\n }\n\n getRawLicense(): DecryptedWcpProjectLicense | null {\n return this.getWcpContext().getRawLicense();\n }\n\n getProject(): WcpProject | null {\n return this.getWcpContext().getProject();\n }\n\n getProjectWithFeatureFlags(): WcpProject | null {\n return this.getWcpContext().getProjectWithFeatureFlags();\n }\n\n getProjectLicense(): ILicense {\n return this.getWcpContext().getProjectLicense();\n }\n\n getProjectEnvironment(): WcpProjectEnvironment | null {\n return this.getWcpContext().getProjectEnvironment();\n }\n\n canUseFeature(wcpFeatureId: keyof typeof WCP_FEATURE_LABEL): boolean {\n return this.getWcpContext().canUseFeature(wcpFeatureId);\n }\n\n canUseAacl(): boolean {\n return this.getWcpContext().canUseAacl();\n }\n\n canUseTeams(): boolean {\n return this.getWcpContext().canUseTeams();\n }\n\n canUseFolderLevelPermissions(): boolean {\n return this.getWcpContext().canUseFolderLevelPermissions();\n }\n\n canUsePrivateFiles(): boolean {\n return this.getWcpContext().canUsePrivateFiles();\n }\n\n canUseAuditLogs(): boolean {\n return this.getWcpContext().canUseAuditLogs();\n }\n\n canUseRecordLocking(): boolean {\n return this.getWcpContext().canUseRecordLocking();\n }\n\n canUseFileManagerThreatDetection(): boolean {\n return this.getWcpContext().canUseFileManagerThreatDetection();\n }\n\n canUseWorkflows(): boolean {\n return this.getWcpContext().canUseWorkflows();\n }\n\n canUseHcmsFieldPermissions(): boolean {\n return this.getWcpContext().canUseHcmsFieldPermissions();\n }\n\n ensureCanUseFeature(featureId: keyof typeof WCP_FEATURE_LABEL): void {\n this.getWcpContext().ensureCanUseFeature(featureId);\n }\n\n async incrementSeats(): Promise<void> {\n await this.getWcpContext().incrementSeats();\n }\n\n async decrementSeats(): Promise<void> {\n await this.getWcpContext().decrementSeats();\n }\n\n async incrementTenants(): Promise<void> {\n await this.getWcpContext().incrementTenants();\n }\n\n async decrementTenants(): Promise<void> {\n await this.getWcpContext().decrementTenants();\n }\n\n toDto(): DecryptedWcpProjectLicense | null {\n return this.getWcpContext().toDto();\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -27,7 +27,7 @@ export class BaseModel {
27
27
  return new Constructor(this.toData());
28
28
  }
29
29
  toData() {
30
- if (this.__schema && this.__schema._def?.typeName === "ZodObject") {
30
+ if (this.__schema && this.__schema.def?.type === "object") {
31
31
  const result = {};
32
32
  const shape = this.__schema.shape;
33
33
  for (const key in shape) {
@@ -55,7 +55,7 @@ export class BaseModel {
55
55
  throw new WebinyError({
56
56
  message: "Validation error",
57
57
  code: "DOMAIN_MODEL_VALIDATION_ERROR",
58
- data: result.error.errors
58
+ data: result.error.issues
59
59
  });
60
60
  }
61
61
  }
@@ -1 +1 @@
1
- {"version":3,"names":["Result","WebinyError","BaseModel","__schema","Error","constructor","data","validateData","populate","Object","assign","validate","toData","ok","error","fail","validateOrThrow","clone","Constructor","_def","typeName","result","shape","key","structuredClone","updateWith","partial","updated","safeParse","success","message","code","errors"],"sources":["BaseModel.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { WebinyError } from \"@webiny/error\";\nimport z from \"zod\";\n\ntype DataProperties<T> = Omit<T, \"__schema\">;\n\nexport type IModelData<T> = {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n [K in keyof DataProperties<T> as T[K] extends Function ? never : K]: T[K];\n};\n\nexport type IModelInput<T> = IModelData<T>;\n\nexport abstract class BaseModel<TModel extends z.ZodObject<any> = any> {\n get __schema(): TModel {\n throw new Error(\"Schema getter is not implemented!\");\n }\n\n constructor(data: IModelData<TModel>) {\n this.validateData(data);\n this.populate(data);\n }\n\n populate(data: IModelData<TModel>): void {\n Object.assign(this, data);\n }\n\n validate(): Result<true, WebinyError> {\n try {\n this.validateData(this.toData());\n return Result.ok(true);\n } catch (error) {\n return Result.fail(error);\n }\n }\n\n validateOrThrow(): void {\n this.validateData(this.toData());\n }\n\n clone(): this {\n const Constructor = this.constructor as new (data: IModelData<TModel>) => this;\n return new Constructor(this.toData());\n }\n\n toData(): IModelData<TModel> {\n if (this.__schema && this.__schema._def?.typeName === \"ZodObject\") {\n const result = {} as IModelData<TModel>;\n const shape = this.__schema.shape;\n for (const key in shape) {\n // always use structuredClone for safety.\n // @ts-expect-error allow index.\n result[key] = structuredClone(this[key]);\n }\n return result;\n }\n\n return { ...(this as any) } as IModelData<TModel>;\n }\n\n updateWith(partial: Partial<IModelData<this>>): void {\n const updated = { ...this.toData(), ...partial };\n this.validateData(updated);\n this.populate(updated);\n }\n\n protected validateData(data: IModelData<TModel>): void {\n const result = this.__schema.safeParse(data);\n if (!result.success) {\n throw new WebinyError({\n message: \"Validation error\",\n code: \"DOMAIN_MODEL_VALIDATION_ERROR\",\n data: result.error.errors\n });\n }\n }\n}\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,WAAW,QAAQ,eAAe;AAY3C,OAAO,MAAeC,SAAS,CAAwC;EACnE,IAAIC,QAAQA,CAAA,EAAW;IACnB,MAAM,IAAIC,KAAK,CAAC,mCAAmC,CAAC;EACxD;EAEAC,WAAWA,CAACC,IAAwB,EAAE;IAClC,IAAI,CAACC,YAAY,CAACD,IAAI,CAAC;IACvB,IAAI,CAACE,QAAQ,CAACF,IAAI,CAAC;EACvB;EAEAE,QAAQA,CAACF,IAAwB,EAAQ;IACrCG,MAAM,CAACC,MAAM,CAAC,IAAI,EAAEJ,IAAI,CAAC;EAC7B;EAEAK,QAAQA,CAAA,EAA8B;IAClC,IAAI;MACA,IAAI,CAACJ,YAAY,CAAC,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC;MAChC,OAAOZ,MAAM,CAACa,EAAE,CAAC,IAAI,CAAC;IAC1B,CAAC,CAAC,OAAOC,KAAK,EAAE;MACZ,OAAOd,MAAM,CAACe,IAAI,CAACD,KAAK,CAAC;IAC7B;EACJ;EAEAE,eAAeA,CAAA,EAAS;IACpB,IAAI,CAACT,YAAY,CAAC,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC;EACpC;EAEAK,KAAKA,CAAA,EAAS;IACV,MAAMC,WAAW,GAAG,IAAI,CAACb,WAAqD;IAC9E,OAAO,IAAIa,WAAW,CAAC,IAAI,CAACN,MAAM,CAAC,CAAC,CAAC;EACzC;EAEAA,MAAMA,CAAA,EAAuB;IACzB,IAAI,IAAI,CAACT,QAAQ,IAAI,IAAI,CAACA,QAAQ,CAACgB,IAAI,EAAEC,QAAQ,KAAK,WAAW,EAAE;MAC/D,MAAMC,MAAM,GAAG,CAAC,CAAuB;MACvC,MAAMC,KAAK,GAAG,IAAI,CAACnB,QAAQ,CAACmB,KAAK;MACjC,KAAK,MAAMC,GAAG,IAAID,KAAK,EAAE;QACrB;QACA;QACAD,MAAM,CAACE,GAAG,CAAC,GAAGC,eAAe,CAAC,IAAI,CAACD,GAAG,CAAC,CAAC;MAC5C;MACA,OAAOF,MAAM;IACjB;IAEA,OAAO;MAAE,GAAI;IAAa,CAAC;EAC/B;EAEAI,UAAUA,CAACC,OAAkC,EAAQ;IACjD,MAAMC,OAAO,GAAG;MAAE,GAAG,IAAI,CAACf,MAAM,CAAC,CAAC;MAAE,GAAGc;IAAQ,CAAC;IAChD,IAAI,CAACnB,YAAY,CAACoB,OAAO,CAAC;IAC1B,IAAI,CAACnB,QAAQ,CAACmB,OAAO,CAAC;EAC1B;EAEUpB,YAAYA,CAACD,IAAwB,EAAQ;IACnD,MAAMe,MAAM,GAAG,IAAI,CAAClB,QAAQ,CAACyB,SAAS,CAACtB,IAAI,CAAC;IAC5C,IAAI,CAACe,MAAM,CAACQ,OAAO,EAAE;MACjB,MAAM,IAAI5B,WAAW,CAAC;QAClB6B,OAAO,EAAE,kBAAkB;QAC3BC,IAAI,EAAE,+BAA+B;QACrCzB,IAAI,EAAEe,MAAM,CAACP,KAAK,CAACkB;MACvB,CAAC,CAAC;IACN;EACJ;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["Result","WebinyError","BaseModel","__schema","Error","constructor","data","validateData","populate","Object","assign","validate","toData","ok","error","fail","validateOrThrow","clone","Constructor","def","type","result","shape","key","structuredClone","updateWith","partial","updated","safeParse","success","message","code","issues"],"sources":["BaseModel.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { WebinyError } from \"@webiny/error\";\nimport z from \"zod\";\n\ntype DataProperties<T> = Omit<T, \"__schema\">;\n\nexport type IModelData<T> = {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n [K in keyof DataProperties<T> as T[K] extends Function ? never : K]: T[K];\n};\n\nexport type IModelInput<T> = IModelData<T>;\n\nexport abstract class BaseModel<TModel extends z.ZodObject<any> = any> {\n get __schema(): TModel {\n throw new Error(\"Schema getter is not implemented!\");\n }\n\n constructor(data: IModelData<TModel>) {\n this.validateData(data);\n this.populate(data);\n }\n\n populate(data: IModelData<TModel>): void {\n Object.assign(this, data);\n }\n\n validate(): Result<true, WebinyError> {\n try {\n this.validateData(this.toData());\n return Result.ok(true);\n } catch (error) {\n return Result.fail(error);\n }\n }\n\n validateOrThrow(): void {\n this.validateData(this.toData());\n }\n\n clone(): this {\n const Constructor = this.constructor as new (data: IModelData<TModel>) => this;\n return new Constructor(this.toData());\n }\n\n toData(): IModelData<TModel> {\n if (this.__schema && this.__schema.def?.type === \"object\") {\n const result = {} as IModelData<TModel>;\n const shape = this.__schema.shape;\n for (const key in shape) {\n // always use structuredClone for safety.\n // @ts-expect-error allow index.\n result[key] = structuredClone(this[key]);\n }\n return result;\n }\n\n return { ...(this as any) } as IModelData<TModel>;\n }\n\n updateWith(partial: Partial<IModelData<this>>): void {\n const updated = { ...this.toData(), ...partial };\n this.validateData(updated);\n this.populate(updated);\n }\n\n protected validateData(data: IModelData<TModel>): void {\n const result = this.__schema.safeParse(data);\n if (!result.success) {\n throw new WebinyError({\n message: \"Validation error\",\n code: \"DOMAIN_MODEL_VALIDATION_ERROR\",\n data: result.error.issues\n });\n }\n }\n}\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,WAAW,QAAQ,eAAe;AAY3C,OAAO,MAAeC,SAAS,CAAwC;EACnE,IAAIC,QAAQA,CAAA,EAAW;IACnB,MAAM,IAAIC,KAAK,CAAC,mCAAmC,CAAC;EACxD;EAEAC,WAAWA,CAACC,IAAwB,EAAE;IAClC,IAAI,CAACC,YAAY,CAACD,IAAI,CAAC;IACvB,IAAI,CAACE,QAAQ,CAACF,IAAI,CAAC;EACvB;EAEAE,QAAQA,CAACF,IAAwB,EAAQ;IACrCG,MAAM,CAACC,MAAM,CAAC,IAAI,EAAEJ,IAAI,CAAC;EAC7B;EAEAK,QAAQA,CAAA,EAA8B;IAClC,IAAI;MACA,IAAI,CAACJ,YAAY,CAAC,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC;MAChC,OAAOZ,MAAM,CAACa,EAAE,CAAC,IAAI,CAAC;IAC1B,CAAC,CAAC,OAAOC,KAAK,EAAE;MACZ,OAAOd,MAAM,CAACe,IAAI,CAACD,KAAK,CAAC;IAC7B;EACJ;EAEAE,eAAeA,CAAA,EAAS;IACpB,IAAI,CAACT,YAAY,CAAC,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC;EACpC;EAEAK,KAAKA,CAAA,EAAS;IACV,MAAMC,WAAW,GAAG,IAAI,CAACb,WAAqD;IAC9E,OAAO,IAAIa,WAAW,CAAC,IAAI,CAACN,MAAM,CAAC,CAAC,CAAC;EACzC;EAEAA,MAAMA,CAAA,EAAuB;IACzB,IAAI,IAAI,CAACT,QAAQ,IAAI,IAAI,CAACA,QAAQ,CAACgB,GAAG,EAAEC,IAAI,KAAK,QAAQ,EAAE;MACvD,MAAMC,MAAM,GAAG,CAAC,CAAuB;MACvC,MAAMC,KAAK,GAAG,IAAI,CAACnB,QAAQ,CAACmB,KAAK;MACjC,KAAK,MAAMC,GAAG,IAAID,KAAK,EAAE;QACrB;QACA;QACAD,MAAM,CAACE,GAAG,CAAC,GAAGC,eAAe,CAAC,IAAI,CAACD,GAAG,CAAC,CAAC;MAC5C;MACA,OAAOF,MAAM;IACjB;IAEA,OAAO;MAAE,GAAI;IAAa,CAAC;EAC/B;EAEAI,UAAUA,CAACC,OAAkC,EAAQ;IACjD,MAAMC,OAAO,GAAG;MAAE,GAAG,IAAI,CAACf,MAAM,CAAC,CAAC;MAAE,GAAGc;IAAQ,CAAC;IAChD,IAAI,CAACnB,YAAY,CAACoB,OAAO,CAAC;IAC1B,IAAI,CAACnB,QAAQ,CAACmB,OAAO,CAAC;EAC1B;EAEUpB,YAAYA,CAACD,IAAwB,EAAQ;IACnD,MAAMe,MAAM,GAAG,IAAI,CAAClB,QAAQ,CAACyB,SAAS,CAACtB,IAAI,CAAC;IAC5C,IAAI,CAACe,MAAM,CAACQ,OAAO,EAAE;MACjB,MAAM,IAAI5B,WAAW,CAAC;QAClB6B,OAAO,EAAE,kBAAkB;QAC3BC,IAAI,EAAE,+BAA+B;QACrCzB,IAAI,EAAEe,MAAM,CAACP,KAAK,CAACkB;MACvB,CAAC,CAAC;IACN;EACJ;AACJ","ignoreList":[]}
@@ -5,11 +5,11 @@ export type ModelClass<TModel extends BaseModel<any>> = {
5
5
  new (data: ExtractModelData<TModel>): TModel;
6
6
  create(data: ExtractModelData<TModel>): TModel;
7
7
  };
8
- export declare const createModelSchema: <TReturn extends z.ZodRawShape>(factory: (zod: typeof z) => TReturn) => z.ZodObject<TReturn, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<TReturn>, any> extends infer T ? { [k in keyof T]: T[k]; } : never, z.baseObjectInputType<TReturn> extends infer T_1 ? { [k_1 in keyof T_1]: T_1[k_1]; } : never>;
8
+ export declare const createModelSchema: <TReturn extends z.ZodRawShape>(factory: (zod: typeof z) => TReturn) => z.ZodObject<{ -readonly [P in keyof TReturn]: TReturn[P]; }, z.core.$strip>;
9
9
  export declare class ModelBuilder<TModel extends BaseModel<any>> {
10
10
  private name;
11
11
  private schema;
12
- private methods;
12
+ private readonly methods;
13
13
  constructor(name: string, schema: TModel["__schema"]);
14
14
  extendSchema<TExt extends z.ZodRawShape>(extensionFn: (zod: typeof z) => TExt): this;
15
15
  withMethods<TExtMethods extends object>(methods: TExtMethods & ThisType<TModel & TExtMethods>): ModelBuilder<TModel & TExtMethods>;