@webiny/api-core 0.0.0-unstable.e622468070 → 0.0.0-unstable.e6f0dc8ca7

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 (628) hide show
  1. package/ApiCoreFeature.d.ts +5 -1
  2. package/ApiCoreFeature.js +8 -0
  3. package/ApiCoreFeature.js.map +1 -1
  4. package/createApiCore.d.ts +1 -1
  5. package/createApiCore.js +2 -3
  6. package/createApiCore.js.map +1 -1
  7. package/domain/security/ApiToken.d.ts +1 -0
  8. package/domain/security/ApiToken.js +1 -0
  9. package/domain/security/ApiToken.js.map +1 -1
  10. package/exports/api/{buildParams.d.ts → build-params.d.ts} +1 -0
  11. package/exports/api/build-params.js +4 -0
  12. package/exports/api/build-params.js.map +1 -0
  13. package/exports/api/{eventPublisher.js → event-publisher.d.ts} +1 -2
  14. package/exports/api/event-publisher.js +4 -0
  15. package/exports/api/event-publisher.js.map +1 -0
  16. package/exports/api/{keyValueStore.d.ts → key-value-store.d.ts} +1 -0
  17. package/exports/api/key-value-store.js +4 -0
  18. package/exports/api/key-value-store.js.map +1 -0
  19. package/exports/api/logger.d.ts +1 -0
  20. package/exports/api/logger.js +1 -0
  21. package/exports/api/logger.js.map +1 -1
  22. package/exports/api/security/api-key.d.ts +7 -0
  23. package/exports/api/security/api-key.js +9 -0
  24. package/exports/api/security/api-key.js.map +1 -0
  25. package/exports/api/security/authentication.d.ts +1 -1
  26. package/exports/api/security/authentication.js +1 -1
  27. package/exports/api/security/authentication.js.map +1 -1
  28. package/exports/api/security/role.d.ts +3 -3
  29. package/exports/api/security/role.js +3 -3
  30. package/exports/api/security/role.js.map +1 -1
  31. package/exports/api/security/user.d.ts +3 -3
  32. package/exports/api/security/user.js +3 -3
  33. package/exports/api/security/user.js.map +1 -1
  34. package/exports/api/security.d.ts +6 -0
  35. package/exports/api/security.js +5 -0
  36. package/exports/api/security.js.map +1 -1
  37. package/exports/api/system.d.ts +1 -1
  38. package/exports/api/system.js +1 -1
  39. package/exports/api/system.js.map +1 -1
  40. package/exports/api/tenancy.d.ts +4 -4
  41. package/exports/api/tenancy.js +4 -4
  42. package/exports/api/tenancy.js.map +1 -1
  43. package/exports/api.d.ts +7 -0
  44. package/exports/api.js +8 -0
  45. package/exports/api.js.map +1 -0
  46. package/features/ai/Ai.d.ts +26 -0
  47. package/features/ai/Ai.js +133 -0
  48. package/features/ai/Ai.js.map +1 -0
  49. package/features/ai/AiSdkTools.d.ts +11 -0
  50. package/features/ai/AiSdkTools.js +25 -0
  51. package/features/ai/AiSdkTools.js.map +1 -0
  52. package/features/ai/AnthropicSdkFactory.d.ts +10 -0
  53. package/features/ai/AnthropicSdkFactory.js +71 -0
  54. package/features/ai/AnthropicSdkFactory.js.map +1 -0
  55. package/features/ai/OpenAiSdkFactory.d.ts +10 -0
  56. package/features/ai/OpenAiSdkFactory.js +187 -0
  57. package/features/ai/OpenAiSdkFactory.js.map +1 -0
  58. package/features/ai/abstractions.d.ts +92 -0
  59. package/features/ai/abstractions.js +35 -0
  60. package/features/ai/abstractions.js.map +1 -0
  61. package/features/ai/feature.d.ts +4 -0
  62. package/features/ai/feature.js +16 -0
  63. package/features/ai/feature.js.map +1 -0
  64. package/features/ai/index.d.ts +3 -0
  65. package/features/ai/index.js +4 -0
  66. package/features/ai/index.js.map +1 -0
  67. package/features/buildParams/abstractions.d.ts +2 -0
  68. package/features/buildParams/abstractions.js +2 -0
  69. package/features/buildParams/abstractions.js.map +1 -1
  70. package/features/buildParams/feature.d.ts +5 -1
  71. package/features/encryption/EncryptionService.d.ts +10 -0
  72. package/features/encryption/EncryptionService.js +58 -0
  73. package/features/encryption/EncryptionService.js.map +1 -0
  74. package/features/encryption/abstractions.d.ts +9 -0
  75. package/features/encryption/abstractions.js +5 -0
  76. package/features/encryption/abstractions.js.map +1 -0
  77. package/features/encryption/feature.d.ts +4 -0
  78. package/features/encryption/feature.js +10 -0
  79. package/features/encryption/feature.js.map +1 -0
  80. package/features/encryption/index.d.ts +1 -0
  81. package/features/encryption/index.js +3 -0
  82. package/features/encryption/index.js.map +1 -0
  83. package/features/eventPublisher/abstractions.d.ts +2 -0
  84. package/features/eventPublisher/abstractions.js +3 -0
  85. package/features/eventPublisher/abstractions.js.map +1 -1
  86. package/features/eventPublisher/feature.d.ts +5 -1
  87. package/features/featureFlags/FeatureFlags.d.ts +12 -0
  88. package/features/featureFlags/FeatureFlags.js +18 -0
  89. package/features/featureFlags/FeatureFlags.js.map +1 -0
  90. package/features/featureFlags/abstractions.d.ts +8 -0
  91. package/features/featureFlags/abstractions.js +4 -0
  92. package/features/featureFlags/abstractions.js.map +1 -0
  93. package/features/featureFlags/feature.d.ts +5 -0
  94. package/features/featureFlags/feature.js +10 -0
  95. package/features/featureFlags/feature.js.map +1 -0
  96. package/features/keyValueStore/GlobalKeyValueStore.js +3 -1
  97. package/features/keyValueStore/GlobalKeyValueStore.js.map +1 -1
  98. package/features/keyValueStore/KeyValueStoreRepository.d.ts +2 -2
  99. package/features/keyValueStore/KeyValueStoreRepository.js +2 -2
  100. package/features/keyValueStore/KeyValueStoreRepository.js.map +1 -1
  101. package/features/keyValueStore/abstractions.d.ts +10 -2
  102. package/features/keyValueStore/abstractions.js +4 -0
  103. package/features/keyValueStore/abstractions.js.map +1 -1
  104. package/features/keyValueStore/feature.d.ts +4 -1
  105. package/features/keyValueStore/feature.js.map +1 -1
  106. package/features/logger/abstractions.d.ts +1 -0
  107. package/features/logger/abstractions.js +1 -0
  108. package/features/logger/abstractions.js.map +1 -1
  109. package/features/logger/feature.d.ts +4 -1
  110. package/features/masker/Masker.d.ts +8 -0
  111. package/features/masker/Masker.js +21 -0
  112. package/features/masker/Masker.js.map +1 -0
  113. package/features/masker/abstractions.d.ts +11 -0
  114. package/features/masker/abstractions.js +4 -0
  115. package/features/masker/abstractions.js.map +1 -0
  116. package/features/masker/feature.d.ts +4 -0
  117. package/features/masker/feature.js +10 -0
  118. package/features/masker/feature.js.map +1 -0
  119. package/features/masker/index.d.ts +1 -0
  120. package/features/masker/index.js +3 -0
  121. package/features/masker/index.js.map +1 -0
  122. package/features/security/IdentityContext/IdentityContext.js +1 -1
  123. package/features/security/IdentityContext/IdentityContext.js.map +1 -1
  124. package/features/security/IdentityContext/abstractions.d.ts +1 -0
  125. package/features/security/IdentityContext/abstractions.js +1 -0
  126. package/features/security/IdentityContext/abstractions.js.map +1 -1
  127. package/features/security/IdentityContext/feature.d.ts +4 -1
  128. package/features/security/SecurityFeature.d.ts +5 -1
  129. package/features/security/apiKeys/CreateApiKey/CreateApiKeyUseCase.js +1 -1
  130. package/features/security/apiKeys/CreateApiKey/CreateApiKeyUseCase.js.map +1 -1
  131. package/features/security/apiKeys/CreateApiKey/abstractions.d.ts +1 -0
  132. package/features/security/apiKeys/CreateApiKey/abstractions.js +1 -0
  133. package/features/security/apiKeys/CreateApiKey/abstractions.js.map +1 -1
  134. package/features/security/apiKeys/CreateApiKey/events.d.ts +6 -4
  135. package/features/security/apiKeys/CreateApiKey/events.js +8 -4
  136. package/features/security/apiKeys/CreateApiKey/events.js.map +1 -1
  137. package/features/security/apiKeys/CreateApiKey/feature.d.ts +4 -1
  138. package/features/security/apiKeys/DeleteApiKey/abstractions.d.ts +1 -0
  139. package/features/security/apiKeys/DeleteApiKey/abstractions.js +1 -0
  140. package/features/security/apiKeys/DeleteApiKey/abstractions.js.map +1 -1
  141. package/features/security/apiKeys/DeleteApiKey/events.d.ts +6 -4
  142. package/features/security/apiKeys/DeleteApiKey/events.js +8 -4
  143. package/features/security/apiKeys/DeleteApiKey/events.js.map +1 -1
  144. package/features/security/apiKeys/DeleteApiKey/feature.d.ts +4 -1
  145. package/features/security/apiKeys/GetApiKey/abstractions.d.ts +1 -0
  146. package/features/security/apiKeys/GetApiKey/abstractions.js +1 -0
  147. package/features/security/apiKeys/GetApiKey/abstractions.js.map +1 -1
  148. package/features/security/apiKeys/GetApiKey/feature.d.ts +4 -1
  149. package/features/security/apiKeys/GetApiKeyBySlug/abstractions.d.ts +1 -0
  150. package/features/security/apiKeys/GetApiKeyBySlug/abstractions.js +1 -0
  151. package/features/security/apiKeys/GetApiKeyBySlug/abstractions.js.map +1 -1
  152. package/features/security/apiKeys/GetApiKeyBySlug/feature.d.ts +4 -1
  153. package/features/security/apiKeys/GetApiKeyByToken/abstractions.d.ts +1 -0
  154. package/features/security/apiKeys/GetApiKeyByToken/abstractions.js +1 -0
  155. package/features/security/apiKeys/GetApiKeyByToken/abstractions.js.map +1 -1
  156. package/features/security/apiKeys/GetApiKeyByToken/feature.d.ts +4 -1
  157. package/features/security/apiKeys/ListApiKeys/ListApiKeysUseCase.js +1 -1
  158. package/features/security/apiKeys/ListApiKeys/ListApiKeysUseCase.js.map +1 -1
  159. package/features/security/apiKeys/ListApiKeys/abstractions.d.ts +1 -0
  160. package/features/security/apiKeys/ListApiKeys/abstractions.js +1 -0
  161. package/features/security/apiKeys/ListApiKeys/abstractions.js.map +1 -1
  162. package/features/security/apiKeys/ListApiKeys/feature.d.ts +4 -1
  163. package/features/security/apiKeys/UpdateApiKey/UpdateApiKeyUseCase.js +1 -1
  164. package/features/security/apiKeys/UpdateApiKey/UpdateApiKeyUseCase.js.map +1 -1
  165. package/features/security/apiKeys/UpdateApiKey/abstractions.d.ts +1 -0
  166. package/features/security/apiKeys/UpdateApiKey/abstractions.js +1 -0
  167. package/features/security/apiKeys/UpdateApiKey/abstractions.js.map +1 -1
  168. package/features/security/apiKeys/UpdateApiKey/events.d.ts +6 -4
  169. package/features/security/apiKeys/UpdateApiKey/events.js +8 -4
  170. package/features/security/apiKeys/UpdateApiKey/events.js.map +1 -1
  171. package/features/security/apiKeys/UpdateApiKey/feature.d.ts +4 -1
  172. package/features/security/apiKeys/feature.d.ts +4 -1
  173. package/features/security/apiKeys/shared/abstractions.d.ts +5 -2
  174. package/features/security/apiKeys/shared/abstractions.js +3 -0
  175. package/features/security/apiKeys/shared/abstractions.js.map +1 -1
  176. package/features/security/apiKeys/shared/schemas.d.ts +10 -71
  177. package/features/security/apiKeys/shared/schemas.js +4 -4
  178. package/features/security/apiKeys/shared/schemas.js.map +1 -1
  179. package/features/security/authentication/AuthenticationContext/SetIdTokenCookie.d.ts +2 -2
  180. package/features/security/authentication/AuthenticationContext/SetIdTokenCookie.js +2 -2
  181. package/features/security/authentication/AuthenticationContext/SetIdTokenCookie.js.map +1 -1
  182. package/features/security/authentication/AuthenticationContext/abstractions.d.ts +1 -0
  183. package/features/security/authentication/AuthenticationContext/abstractions.js +1 -0
  184. package/features/security/authentication/AuthenticationContext/abstractions.js.map +1 -1
  185. package/features/security/authentication/AuthenticationContext/events.d.ts +6 -4
  186. package/features/security/authentication/AuthenticationContext/events.js +8 -4
  187. package/features/security/authentication/AuthenticationContext/events.js.map +1 -1
  188. package/features/security/authentication/AuthenticationContext/feature.d.ts +4 -1
  189. package/features/security/authentication/Authenticator/abstractions.d.ts +1 -0
  190. package/features/security/authentication/Authenticator/abstractions.js +1 -0
  191. package/features/security/authentication/Authenticator/abstractions.js.map +1 -1
  192. package/features/security/authorization/AuthorizationContext/AuthorizationContext.d.ts +1 -0
  193. package/features/security/authorization/AuthorizationContext/AuthorizationContext.js +14 -2
  194. package/features/security/authorization/AuthorizationContext/AuthorizationContext.js.map +1 -1
  195. package/features/security/authorization/AuthorizationContext/abstractions.d.ts +2 -0
  196. package/features/security/authorization/AuthorizationContext/abstractions.js +2 -0
  197. package/features/security/authorization/AuthorizationContext/abstractions.js.map +1 -1
  198. package/features/security/authorization/AuthorizationContext/feature.d.ts +4 -1
  199. package/features/security/authorization/Authorizer/abstractions.d.ts +1 -0
  200. package/features/security/authorization/Authorizer/abstractions.js +1 -0
  201. package/features/security/authorization/Authorizer/abstractions.js.map +1 -1
  202. package/features/security/authorization/GroupsTeamsAuthorizer/feature.d.ts +4 -1
  203. package/features/security/login/abstractions.d.ts +3 -2
  204. package/features/security/login/abstractions.js +4 -2
  205. package/features/security/login/abstractions.js.map +1 -1
  206. package/features/security/permissions/createPermissionSchema.d.ts +2 -0
  207. package/features/security/permissions/createPermissionSchema.js +8 -0
  208. package/features/security/permissions/createPermissionSchema.js.map +1 -0
  209. package/features/security/permissions/createPermissions.d.ts +8 -0
  210. package/features/security/permissions/createPermissions.js +250 -0
  211. package/features/security/permissions/createPermissions.js.map +1 -0
  212. package/features/security/permissions/index.d.ts +3 -0
  213. package/features/security/permissions/index.js +4 -0
  214. package/features/security/permissions/index.js.map +1 -0
  215. package/features/security/permissions/types.d.ts +137 -0
  216. package/features/security/permissions/types.js +3 -0
  217. package/features/security/permissions/types.js.map +1 -0
  218. package/features/security/roles/CreateRole/CreateRoleUseCase.d.ts +1 -3
  219. package/features/security/roles/CreateRole/CreateRoleUseCase.js +3 -7
  220. package/features/security/roles/CreateRole/CreateRoleUseCase.js.map +1 -1
  221. package/features/security/roles/CreateRole/abstractions.d.ts +1 -0
  222. package/features/security/roles/CreateRole/abstractions.js +1 -0
  223. package/features/security/roles/CreateRole/abstractions.js.map +1 -1
  224. package/features/security/roles/CreateRole/events.d.ts +6 -4
  225. package/features/security/roles/CreateRole/events.js +8 -4
  226. package/features/security/roles/CreateRole/events.js.map +1 -1
  227. package/features/security/roles/CreateRole/feature.d.ts +4 -1
  228. package/features/security/roles/CreateRole/schema.d.ts +2 -20
  229. package/features/security/roles/CreateRole/schema.js +2 -2
  230. package/features/security/roles/CreateRole/schema.js.map +1 -1
  231. package/features/security/roles/DeleteRole/abstractions.d.ts +1 -0
  232. package/features/security/roles/DeleteRole/abstractions.js +1 -0
  233. package/features/security/roles/DeleteRole/abstractions.js.map +1 -1
  234. package/features/security/roles/DeleteRole/events.d.ts +6 -4
  235. package/features/security/roles/DeleteRole/events.js +8 -4
  236. package/features/security/roles/DeleteRole/events.js.map +1 -1
  237. package/features/security/roles/DeleteRole/feature.d.ts +4 -1
  238. package/features/security/roles/GetRole/abstractions.d.ts +1 -0
  239. package/features/security/roles/GetRole/abstractions.js +1 -0
  240. package/features/security/roles/GetRole/abstractions.js.map +1 -1
  241. package/features/security/roles/GetRole/feature.d.ts +4 -1
  242. package/features/security/roles/ListRoles/abstractions.d.ts +1 -0
  243. package/features/security/roles/ListRoles/abstractions.js +1 -0
  244. package/features/security/roles/ListRoles/abstractions.js.map +1 -1
  245. package/features/security/roles/ListRoles/feature.d.ts +4 -1
  246. package/features/security/roles/UpdateRole/UpdateRoleUseCase.js +1 -1
  247. package/features/security/roles/UpdateRole/UpdateRoleUseCase.js.map +1 -1
  248. package/features/security/roles/UpdateRole/abstractions.d.ts +1 -0
  249. package/features/security/roles/UpdateRole/abstractions.js +1 -0
  250. package/features/security/roles/UpdateRole/abstractions.js.map +1 -1
  251. package/features/security/roles/UpdateRole/events.d.ts +6 -4
  252. package/features/security/roles/UpdateRole/events.js +8 -4
  253. package/features/security/roles/UpdateRole/events.js.map +1 -1
  254. package/features/security/roles/UpdateRole/feature.d.ts +4 -1
  255. package/features/security/roles/UpdateRole/schema.d.ts +2 -18
  256. package/features/security/roles/UpdateRole/schema.js +2 -2
  257. package/features/security/roles/UpdateRole/schema.js.map +1 -1
  258. package/features/security/roles/feature.d.ts +4 -1
  259. package/features/security/roles/feature.js +2 -0
  260. package/features/security/roles/feature.js.map +1 -1
  261. package/features/security/roles/shared/RoleProvider.d.ts +13 -0
  262. package/features/security/roles/shared/RoleProvider.js +29 -0
  263. package/features/security/roles/shared/RoleProvider.js.map +1 -0
  264. package/features/security/roles/shared/RolesRepository.d.ts +3 -1
  265. package/features/security/roles/shared/RolesRepository.js +19 -18
  266. package/features/security/roles/shared/RolesRepository.js.map +1 -1
  267. package/features/security/roles/shared/abstractions.d.ts +19 -0
  268. package/features/security/roles/shared/abstractions.js +3 -0
  269. package/features/security/roles/shared/abstractions.js.map +1 -1
  270. package/features/security/shared/abstractions.d.ts +5 -14
  271. package/features/security/shared/abstractions.js +3 -16
  272. package/features/security/shared/abstractions.js.map +1 -1
  273. package/features/security/teams/CreateTeam/CreateTeamUseCase.d.ts +1 -3
  274. package/features/security/teams/CreateTeam/CreateTeamUseCase.js +3 -7
  275. package/features/security/teams/CreateTeam/CreateTeamUseCase.js.map +1 -1
  276. package/features/security/teams/CreateTeam/abstractions.d.ts +1 -0
  277. package/features/security/teams/CreateTeam/abstractions.js +1 -0
  278. package/features/security/teams/CreateTeam/abstractions.js.map +1 -1
  279. package/features/security/teams/CreateTeam/events.d.ts +6 -4
  280. package/features/security/teams/CreateTeam/events.js +8 -4
  281. package/features/security/teams/CreateTeam/events.js.map +1 -1
  282. package/features/security/teams/CreateTeam/feature.d.ts +4 -1
  283. package/features/security/teams/CreateTeam/index.d.ts +1 -1
  284. package/features/security/teams/CreateTeam/index.js +1 -1
  285. package/features/security/teams/CreateTeam/index.js.map +1 -1
  286. package/features/security/teams/CreateTeam/schema.d.ts +2 -12
  287. package/features/security/teams/DeleteTeam/abstractions.d.ts +1 -0
  288. package/features/security/teams/DeleteTeam/abstractions.js +1 -0
  289. package/features/security/teams/DeleteTeam/abstractions.js.map +1 -1
  290. package/features/security/teams/DeleteTeam/events.d.ts +6 -4
  291. package/features/security/teams/DeleteTeam/events.js +8 -4
  292. package/features/security/teams/DeleteTeam/events.js.map +1 -1
  293. package/features/security/teams/DeleteTeam/feature.d.ts +4 -1
  294. package/features/security/teams/GetTeam/abstractions.d.ts +1 -0
  295. package/features/security/teams/GetTeam/abstractions.js +1 -0
  296. package/features/security/teams/GetTeam/abstractions.js.map +1 -1
  297. package/features/security/teams/GetTeam/feature.d.ts +4 -1
  298. package/features/security/teams/ListTeams/abstractions.d.ts +1 -0
  299. package/features/security/teams/ListTeams/abstractions.js +1 -0
  300. package/features/security/teams/ListTeams/abstractions.js.map +1 -1
  301. package/features/security/teams/ListTeams/feature.d.ts +4 -1
  302. package/features/security/teams/UpdateTeam/UpdateTeamUseCase.js +1 -1
  303. package/features/security/teams/UpdateTeam/UpdateTeamUseCase.js.map +1 -1
  304. package/features/security/teams/UpdateTeam/abstractions.d.ts +1 -0
  305. package/features/security/teams/UpdateTeam/abstractions.js +1 -0
  306. package/features/security/teams/UpdateTeam/abstractions.js.map +1 -1
  307. package/features/security/teams/UpdateTeam/events.d.ts +6 -4
  308. package/features/security/teams/UpdateTeam/events.js +8 -4
  309. package/features/security/teams/UpdateTeam/events.js.map +1 -1
  310. package/features/security/teams/UpdateTeam/feature.d.ts +4 -1
  311. package/features/security/teams/UpdateTeam/schema.d.ts +2 -10
  312. package/features/security/teams/feature.d.ts +4 -1
  313. package/features/security/teams/feature.js +6 -0
  314. package/features/security/teams/feature.js.map +1 -1
  315. package/features/security/teams/shared/TeamProvider.d.ts +13 -0
  316. package/features/security/teams/shared/TeamProvider.js +29 -0
  317. package/features/security/teams/shared/TeamProvider.js.map +1 -0
  318. package/features/security/teams/shared/TeamsRepository.js +20 -18
  319. package/features/security/teams/shared/TeamsRepository.js.map +1 -1
  320. package/features/security/teams/shared/abstractions.d.ts +18 -0
  321. package/features/security/teams/shared/abstractions.js +3 -0
  322. package/features/security/teams/shared/abstractions.js.map +1 -1
  323. package/features/security/teams/shared/decorators/TeamsRepositoryCachingDecorator.d.ts +17 -0
  324. package/features/security/teams/shared/decorators/TeamsRepositoryCachingDecorator.js +76 -0
  325. package/features/security/teams/shared/decorators/TeamsRepositoryCachingDecorator.js.map +1 -0
  326. package/features/security/utils/verifyJwtUsingJwk.d.ts +2 -4
  327. package/features/security/utils/verifyJwtUsingJwk.js +1 -1
  328. package/features/security/utils/verifyJwtUsingJwk.js.map +1 -1
  329. package/features/system/InstallSystem/abstractions.d.ts +4 -5
  330. package/features/system/InstallSystem/abstractions.js +3 -4
  331. package/features/system/InstallSystem/abstractions.js.map +1 -1
  332. package/features/system/InstallSystem/events.js +2 -2
  333. package/features/system/InstallSystem/events.js.map +1 -1
  334. package/features/system/InstallSystem/feature.d.ts +5 -1
  335. package/features/system/InstallSystem/index.d.ts +1 -1
  336. package/features/system/InstallSystem/index.js +1 -1
  337. package/features/system/InstallSystem/index.js.map +1 -1
  338. package/features/system/SystemFeature.d.ts +4 -1
  339. package/features/task/TaskController/abstractions.d.ts +1 -0
  340. package/features/task/TaskController/abstractions.js +1 -0
  341. package/features/task/TaskController/abstractions.js.map +1 -1
  342. package/features/task/TaskDefinition/abstractions.d.ts +7 -1
  343. package/features/task/TaskDefinition/abstractions.js +1 -0
  344. package/features/task/TaskDefinition/abstractions.js.map +1 -1
  345. package/features/task/TaskService/abstractions.d.ts +1 -0
  346. package/features/task/TaskService/abstractions.js +1 -0
  347. package/features/task/TaskService/abstractions.js.map +1 -1
  348. package/features/tenancy/CreateTenant/abstractions.d.ts +9 -7
  349. package/features/tenancy/CreateTenant/abstractions.js +7 -5
  350. package/features/tenancy/CreateTenant/abstractions.js.map +1 -1
  351. package/features/tenancy/CreateTenant/events.js +3 -3
  352. package/features/tenancy/CreateTenant/events.js.map +1 -1
  353. package/features/tenancy/CreateTenant/feature.d.ts +5 -1
  354. package/features/tenancy/CreateTenant/index.d.ts +1 -1
  355. package/features/tenancy/CreateTenant/index.js +1 -1
  356. package/features/tenancy/CreateTenant/index.js.map +1 -1
  357. package/features/tenancy/DeleteTenant/abstractions.d.ts +9 -4
  358. package/features/tenancy/DeleteTenant/abstractions.js +7 -2
  359. package/features/tenancy/DeleteTenant/abstractions.js.map +1 -1
  360. package/features/tenancy/DeleteTenant/events.js +3 -3
  361. package/features/tenancy/DeleteTenant/events.js.map +1 -1
  362. package/features/tenancy/DeleteTenant/feature.d.ts +5 -1
  363. package/features/tenancy/DeleteTenant/index.d.ts +1 -1
  364. package/features/tenancy/DeleteTenant/index.js +1 -1
  365. package/features/tenancy/DeleteTenant/index.js.map +1 -1
  366. package/features/tenancy/GetRootTenant/feature.d.ts +5 -1
  367. package/features/tenancy/GetTenantById/abstractions.d.ts +3 -0
  368. package/features/tenancy/GetTenantById/abstractions.js +3 -9
  369. package/features/tenancy/GetTenantById/abstractions.js.map +1 -1
  370. package/features/tenancy/GetTenantById/feature.d.ts +5 -1
  371. package/features/tenancy/InstallTenant/abstractions.d.ts +5 -11
  372. package/features/tenancy/InstallTenant/abstractions.js +4 -13
  373. package/features/tenancy/InstallTenant/abstractions.js.map +1 -1
  374. package/features/tenancy/InstallTenant/events.js +2 -2
  375. package/features/tenancy/InstallTenant/events.js.map +1 -1
  376. package/features/tenancy/InstallTenant/feature.d.ts +5 -1
  377. package/features/tenancy/InstallTenant/index.d.ts +1 -1
  378. package/features/tenancy/InstallTenant/index.js +1 -1
  379. package/features/tenancy/InstallTenant/index.js.map +1 -1
  380. package/features/tenancy/ListTenants/feature.d.ts +5 -1
  381. package/features/tenancy/TenancyFeature.d.ts +4 -1
  382. package/features/tenancy/TenancyFeature.js.map +1 -1
  383. package/features/tenancy/TenantContext/abstractions.d.ts +1 -0
  384. package/features/tenancy/TenantContext/abstractions.js +1 -0
  385. package/features/tenancy/TenantContext/abstractions.js.map +1 -1
  386. package/features/tenancy/TenantContext/feature.d.ts +4 -1
  387. package/features/tenancy/UpdateTenant/abstractions.d.ts +9 -4
  388. package/features/tenancy/UpdateTenant/abstractions.js +7 -2
  389. package/features/tenancy/UpdateTenant/abstractions.js.map +1 -1
  390. package/features/tenancy/UpdateTenant/events.js +3 -3
  391. package/features/tenancy/UpdateTenant/events.js.map +1 -1
  392. package/features/tenancy/UpdateTenant/feature.d.ts +5 -1
  393. package/features/tenancy/UpdateTenant/index.d.ts +1 -1
  394. package/features/tenancy/UpdateTenant/index.js +1 -1
  395. package/features/tenancy/UpdateTenant/index.js.map +1 -1
  396. package/features/users/AdminUsersFeature.d.ts +4 -1
  397. package/features/users/AdminUsersFeature.js.map +1 -1
  398. package/features/users/CreateUser/CreateUserUseCase.js +1 -1
  399. package/features/users/CreateUser/CreateUserUseCase.js.map +1 -1
  400. package/features/users/CreateUser/abstractions.d.ts +1 -0
  401. package/features/users/CreateUser/abstractions.js +1 -1
  402. package/features/users/CreateUser/abstractions.js.map +1 -1
  403. package/features/users/CreateUser/events.d.ts +6 -4
  404. package/features/users/CreateUser/events.js +8 -4
  405. package/features/users/CreateUser/events.js.map +1 -1
  406. package/features/users/CreateUser/feature.d.ts +4 -1
  407. package/features/users/CreateUser/schema.d.ts +4 -36
  408. package/features/users/DeleteUser/abstractions.d.ts +1 -0
  409. package/features/users/DeleteUser/abstractions.js +1 -1
  410. package/features/users/DeleteUser/abstractions.js.map +1 -1
  411. package/features/users/DeleteUser/events.d.ts +6 -4
  412. package/features/users/DeleteUser/events.js +8 -4
  413. package/features/users/DeleteUser/events.js.map +1 -1
  414. package/features/users/DeleteUser/feature.d.ts +4 -1
  415. package/features/users/ExternalIdpUserSync/ExternalIdpUserSyncHandler.d.ts +3 -3
  416. package/features/users/ExternalIdpUserSync/ExternalIdpUserSyncHandler.js +2 -2
  417. package/features/users/ExternalIdpUserSync/ExternalIdpUserSyncHandler.js.map +1 -1
  418. package/features/users/ExternalIdpUserSync/feature.d.ts +4 -1
  419. package/features/users/GetIdentityProfile/feature.d.ts +4 -1
  420. package/features/users/GetUser/abstractions.d.ts +1 -0
  421. package/features/users/GetUser/abstractions.js +1 -1
  422. package/features/users/GetUser/abstractions.js.map +1 -1
  423. package/features/users/GetUser/feature.d.ts +4 -1
  424. package/features/users/ListUserTeams/abstractions.d.ts +1 -0
  425. package/features/users/ListUserTeams/abstractions.js +1 -1
  426. package/features/users/ListUserTeams/abstractions.js.map +1 -1
  427. package/features/users/ListUserTeams/feature.d.ts +4 -1
  428. package/features/users/ListUsers/abstractions.d.ts +1 -0
  429. package/features/users/ListUsers/abstractions.js +1 -1
  430. package/features/users/ListUsers/abstractions.js.map +1 -1
  431. package/features/users/ListUsers/feature.d.ts +4 -1
  432. package/features/users/UpdateUser/UpdateUserUseCase.js +1 -1
  433. package/features/users/UpdateUser/UpdateUserUseCase.js.map +1 -1
  434. package/features/users/UpdateUser/abstractions.d.ts +1 -0
  435. package/features/users/UpdateUser/abstractions.js +1 -1
  436. package/features/users/UpdateUser/abstractions.js.map +1 -1
  437. package/features/users/UpdateUser/events.d.ts +6 -4
  438. package/features/users/UpdateUser/events.js +8 -4
  439. package/features/users/UpdateUser/events.js.map +1 -1
  440. package/features/users/UpdateUser/feature.d.ts +4 -1
  441. package/features/users/UpdateUser/schema.d.ts +4 -30
  442. package/features/users/shared/abstractions.d.ts +1 -0
  443. package/features/users/shared/abstractions.js +1 -1
  444. package/features/users/shared/abstractions.js.map +1 -1
  445. package/features/wcp/WcpContext/WcpContext.d.ts +5 -0
  446. package/features/wcp/WcpContext/WcpContext.js +15 -0
  447. package/features/wcp/WcpContext/WcpContext.js.map +1 -1
  448. package/features/wcp/WcpContext/abstractions.d.ts +1 -0
  449. package/features/wcp/WcpContext/abstractions.js.map +1 -1
  450. package/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.d.ts +94 -0
  451. package/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.js +142 -0
  452. package/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.js.map +1 -0
  453. package/features/wcp/WcpContext/feature.d.ts +5 -1
  454. package/features/wcp/WcpFeature.d.ts +4 -1
  455. package/features/wcp/WcpFeature.js +2 -0
  456. package/features/wcp/WcpFeature.js.map +1 -1
  457. package/graphql/security/NotAuthorizedResponse.d.ts +1 -0
  458. package/graphql/security/NotAuthorizedResponse.js +1 -0
  459. package/graphql/security/NotAuthorizedResponse.js.map +1 -1
  460. package/graphql/wcp/graphql.js +2 -1
  461. package/graphql/wcp/graphql.js.map +1 -1
  462. package/idp/abstractions.d.ts +4 -0
  463. package/idp/abstractions.js +4 -0
  464. package/idp/abstractions.js.map +1 -1
  465. package/idp/feature.d.ts +4 -1
  466. package/legacy/security/createSecurityContext.js +0 -11
  467. package/legacy/security/createSecurityContext.js.map +1 -1
  468. package/legacy/security/plugins/authenticateUsingHttpHeader.d.ts +1 -1
  469. package/legacy/wcp/LegacyWcpContext.d.ts +5 -0
  470. package/legacy/wcp/LegacyWcpContext.js +15 -0
  471. package/legacy/wcp/LegacyWcpContext.js.map +1 -1
  472. package/legacy/wcp/context.d.ts +1 -3
  473. package/legacy/wcp/context.js +4 -2
  474. package/legacy/wcp/context.js.map +1 -1
  475. package/models/base/BaseModel.js +2 -2
  476. package/models/base/BaseModel.js.map +1 -1
  477. package/models/base/ModelBuilder.d.ts +2 -2
  478. package/models/base/ModelBuilder.js +21 -2
  479. package/models/base/ModelBuilder.js.map +1 -1
  480. package/models/cms/FieldBuilder.d.ts +4 -3
  481. package/models/cms/FieldBuilder.js +17 -22
  482. package/models/cms/FieldBuilder.js.map +1 -1
  483. package/models/cms/FieldBuilderRegistry.d.ts +1 -1
  484. package/models/cms/FieldBuilderRegistry.js.map +1 -1
  485. package/models/cms/FieldDefinitionsBuilder.d.ts +1 -0
  486. package/models/cms/FieldDefinitionsBuilder.js +15 -17
  487. package/models/cms/FieldDefinitionsBuilder.js.map +1 -1
  488. package/models/cms/PrivateCmsModelBuilder.js +1 -1
  489. package/models/cms/PrivateCmsModelBuilder.js.map +1 -1
  490. package/models/cms/abstractions.d.ts +1 -1
  491. package/models/cms/abstractions.js.map +1 -1
  492. package/models/cms/fieldsBuilder.md +6 -4
  493. package/models/cms/types.d.ts +2 -2
  494. package/models/cms/types.js.map +1 -1
  495. package/models/simple/Page/abstractions.d.ts +1 -11
  496. package/package.json +28 -70
  497. package/types/security.d.ts +13 -10
  498. package/types/security.js.map +1 -1
  499. package/exports/api/buildParams.js +0 -3
  500. package/exports/api/buildParams.js.map +0 -1
  501. package/exports/api/eventPublisher.d.ts +0 -1
  502. package/exports/api/eventPublisher.js.map +0 -1
  503. package/exports/api/keyValueStore.js +0 -3
  504. package/exports/api/keyValueStore.js.map +0 -1
  505. package/exports/api/security/apiKey.d.ts +0 -7
  506. package/exports/api/security/apiKey.js +0 -9
  507. package/exports/api/security/apiKey.js.map +0 -1
  508. package/extensions/BuildParam.d.ts +0 -11
  509. package/extensions/BuildParam.js +0 -119
  510. package/extensions/BuildParam.js.map +0 -1
  511. package/extensions/GenericExtension.d.ts +0 -10
  512. package/extensions/GenericExtension.js +0 -7
  513. package/extensions/GenericExtension.js.map +0 -1
  514. package/extensions/eventHandlers/AfterAuthentication.d.ts +0 -10
  515. package/extensions/eventHandlers/AfterAuthentication.js +0 -9
  516. package/extensions/eventHandlers/AfterAuthentication.js.map +0 -1
  517. package/extensions/eventHandlers/ApiKeyAfterCreate.d.ts +0 -10
  518. package/extensions/eventHandlers/ApiKeyAfterCreate.js +0 -9
  519. package/extensions/eventHandlers/ApiKeyAfterCreate.js.map +0 -1
  520. package/extensions/eventHandlers/ApiKeyAfterDelete.d.ts +0 -10
  521. package/extensions/eventHandlers/ApiKeyAfterDelete.js +0 -9
  522. package/extensions/eventHandlers/ApiKeyAfterDelete.js.map +0 -1
  523. package/extensions/eventHandlers/ApiKeyAfterUpdate.d.ts +0 -10
  524. package/extensions/eventHandlers/ApiKeyAfterUpdate.js +0 -9
  525. package/extensions/eventHandlers/ApiKeyAfterUpdate.js.map +0 -1
  526. package/extensions/eventHandlers/ApiKeyBeforeCreate.d.ts +0 -10
  527. package/extensions/eventHandlers/ApiKeyBeforeCreate.js +0 -9
  528. package/extensions/eventHandlers/ApiKeyBeforeCreate.js.map +0 -1
  529. package/extensions/eventHandlers/ApiKeyBeforeDelete.d.ts +0 -10
  530. package/extensions/eventHandlers/ApiKeyBeforeDelete.js +0 -9
  531. package/extensions/eventHandlers/ApiKeyBeforeDelete.js.map +0 -1
  532. package/extensions/eventHandlers/ApiKeyBeforeUpdate.d.ts +0 -10
  533. package/extensions/eventHandlers/ApiKeyBeforeUpdate.js +0 -9
  534. package/extensions/eventHandlers/ApiKeyBeforeUpdate.js.map +0 -1
  535. package/extensions/eventHandlers/BeforeAuthentication.d.ts +0 -10
  536. package/extensions/eventHandlers/BeforeAuthentication.js +0 -9
  537. package/extensions/eventHandlers/BeforeAuthentication.js.map +0 -1
  538. package/extensions/eventHandlers/RoleAfterCreate.d.ts +0 -10
  539. package/extensions/eventHandlers/RoleAfterCreate.js +0 -9
  540. package/extensions/eventHandlers/RoleAfterCreate.js.map +0 -1
  541. package/extensions/eventHandlers/RoleAfterDelete.d.ts +0 -10
  542. package/extensions/eventHandlers/RoleAfterDelete.js +0 -9
  543. package/extensions/eventHandlers/RoleAfterDelete.js.map +0 -1
  544. package/extensions/eventHandlers/RoleAfterUpdate.d.ts +0 -10
  545. package/extensions/eventHandlers/RoleAfterUpdate.js +0 -9
  546. package/extensions/eventHandlers/RoleAfterUpdate.js.map +0 -1
  547. package/extensions/eventHandlers/RoleBeforeCreate.d.ts +0 -10
  548. package/extensions/eventHandlers/RoleBeforeCreate.js +0 -9
  549. package/extensions/eventHandlers/RoleBeforeCreate.js.map +0 -1
  550. package/extensions/eventHandlers/RoleBeforeDelete.d.ts +0 -10
  551. package/extensions/eventHandlers/RoleBeforeDelete.js +0 -9
  552. package/extensions/eventHandlers/RoleBeforeDelete.js.map +0 -1
  553. package/extensions/eventHandlers/RoleBeforeUpdate.d.ts +0 -10
  554. package/extensions/eventHandlers/RoleBeforeUpdate.js +0 -9
  555. package/extensions/eventHandlers/RoleBeforeUpdate.js.map +0 -1
  556. package/extensions/eventHandlers/SystemInstalled.d.ts +0 -10
  557. package/extensions/eventHandlers/SystemInstalled.js +0 -9
  558. package/extensions/eventHandlers/SystemInstalled.js.map +0 -1
  559. package/extensions/eventHandlers/TeamAfterCreate.d.ts +0 -10
  560. package/extensions/eventHandlers/TeamAfterCreate.js +0 -9
  561. package/extensions/eventHandlers/TeamAfterCreate.js.map +0 -1
  562. package/extensions/eventHandlers/TeamAfterDelete.d.ts +0 -10
  563. package/extensions/eventHandlers/TeamAfterDelete.js +0 -9
  564. package/extensions/eventHandlers/TeamAfterDelete.js.map +0 -1
  565. package/extensions/eventHandlers/TeamAfterUpdate.d.ts +0 -10
  566. package/extensions/eventHandlers/TeamAfterUpdate.js +0 -9
  567. package/extensions/eventHandlers/TeamAfterUpdate.js.map +0 -1
  568. package/extensions/eventHandlers/TeamBeforeCreate.d.ts +0 -10
  569. package/extensions/eventHandlers/TeamBeforeCreate.js +0 -9
  570. package/extensions/eventHandlers/TeamBeforeCreate.js.map +0 -1
  571. package/extensions/eventHandlers/TeamBeforeDelete.d.ts +0 -10
  572. package/extensions/eventHandlers/TeamBeforeDelete.js +0 -9
  573. package/extensions/eventHandlers/TeamBeforeDelete.js.map +0 -1
  574. package/extensions/eventHandlers/TeamBeforeUpdate.d.ts +0 -10
  575. package/extensions/eventHandlers/TeamBeforeUpdate.js +0 -9
  576. package/extensions/eventHandlers/TeamBeforeUpdate.js.map +0 -1
  577. package/extensions/eventHandlers/TenantAfterCreate.d.ts +0 -10
  578. package/extensions/eventHandlers/TenantAfterCreate.js +0 -9
  579. package/extensions/eventHandlers/TenantAfterCreate.js.map +0 -1
  580. package/extensions/eventHandlers/TenantAfterDelete.d.ts +0 -10
  581. package/extensions/eventHandlers/TenantAfterDelete.js +0 -9
  582. package/extensions/eventHandlers/TenantAfterDelete.js.map +0 -1
  583. package/extensions/eventHandlers/TenantAfterUpdate.d.ts +0 -10
  584. package/extensions/eventHandlers/TenantAfterUpdate.js +0 -9
  585. package/extensions/eventHandlers/TenantAfterUpdate.js.map +0 -1
  586. package/extensions/eventHandlers/TenantBeforeCreate.d.ts +0 -10
  587. package/extensions/eventHandlers/TenantBeforeCreate.js +0 -9
  588. package/extensions/eventHandlers/TenantBeforeCreate.js.map +0 -1
  589. package/extensions/eventHandlers/TenantBeforeDelete.d.ts +0 -10
  590. package/extensions/eventHandlers/TenantBeforeDelete.js +0 -9
  591. package/extensions/eventHandlers/TenantBeforeDelete.js.map +0 -1
  592. package/extensions/eventHandlers/TenantBeforeUpdate.d.ts +0 -10
  593. package/extensions/eventHandlers/TenantBeforeUpdate.js +0 -9
  594. package/extensions/eventHandlers/TenantBeforeUpdate.js.map +0 -1
  595. package/extensions/eventHandlers/TenantInstalled.d.ts +0 -10
  596. package/extensions/eventHandlers/TenantInstalled.js +0 -9
  597. package/extensions/eventHandlers/TenantInstalled.js.map +0 -1
  598. package/extensions/eventHandlers/UserAfterCreate.d.ts +0 -10
  599. package/extensions/eventHandlers/UserAfterCreate.js +0 -9
  600. package/extensions/eventHandlers/UserAfterCreate.js.map +0 -1
  601. package/extensions/eventHandlers/UserAfterDelete.d.ts +0 -10
  602. package/extensions/eventHandlers/UserAfterDelete.js +0 -9
  603. package/extensions/eventHandlers/UserAfterDelete.js.map +0 -1
  604. package/extensions/eventHandlers/UserAfterUpdate.d.ts +0 -10
  605. package/extensions/eventHandlers/UserAfterUpdate.js +0 -9
  606. package/extensions/eventHandlers/UserAfterUpdate.js.map +0 -1
  607. package/extensions/eventHandlers/UserBeforeCreate.d.ts +0 -10
  608. package/extensions/eventHandlers/UserBeforeCreate.js +0 -9
  609. package/extensions/eventHandlers/UserBeforeCreate.js.map +0 -1
  610. package/extensions/eventHandlers/UserBeforeDelete.d.ts +0 -10
  611. package/extensions/eventHandlers/UserBeforeDelete.js +0 -9
  612. package/extensions/eventHandlers/UserBeforeDelete.js.map +0 -1
  613. package/extensions/eventHandlers/UserBeforeUpdate.d.ts +0 -10
  614. package/extensions/eventHandlers/UserBeforeUpdate.js +0 -9
  615. package/extensions/eventHandlers/UserBeforeUpdate.js.map +0 -1
  616. package/extensions/eventHandlers/index.d.ts +0 -34
  617. package/extensions/eventHandlers/index.js +0 -49
  618. package/extensions/eventHandlers/index.js.map +0 -1
  619. package/extensions/index.d.ts +0 -58
  620. package/extensions/index.js +0 -49
  621. package/extensions/index.js.map +0 -1
  622. package/features/security/shared/abstractions.ts.bak +0 -52
  623. package/legacy/security/plugins/SecurityRolePlugin.d.ts +0 -16
  624. package/legacy/security/plugins/SecurityRolePlugin.js +0 -33
  625. package/legacy/security/plugins/SecurityRolePlugin.js.map +0 -1
  626. package/legacy/security/plugins/SecurityTeamPlugin.d.ts +0 -16
  627. package/legacy/security/plugins/SecurityTeamPlugin.js +0 -33
  628. package/legacy/security/plugins/SecurityTeamPlugin.js.map +0 -1
@@ -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,10 @@ export declare class LegacyWcpContext implements WcpContextObject {
19
20
  canUseRecordLocking(): boolean;
20
21
  canUseFileManagerThreatDetection(): boolean;
21
22
  canUseWorkflows(): boolean;
23
+ canUseHcmsFieldPermissions(): boolean;
24
+ canUseAiImageEnrichment(): boolean;
25
+ canUseAiPageGeneration(): boolean;
26
+ canUseAiLexicalGeneration(): boolean;
22
27
  ensureCanUseFeature(featureId: keyof typeof WCP_FEATURE_LABEL): void;
23
28
  incrementSeats(): Promise<void>;
24
29
  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,18 @@ export class LegacyWcpContext {
45
48
  canUseWorkflows() {
46
49
  return this.getWcpContext().canUseWorkflows();
47
50
  }
51
+ canUseHcmsFieldPermissions() {
52
+ return this.getWcpContext().canUseHcmsFieldPermissions();
53
+ }
54
+ canUseAiImageEnrichment() {
55
+ return this.getWcpContext().canUseAiImageEnrichment();
56
+ }
57
+ canUseAiPageGeneration() {
58
+ return this.getWcpContext().canUseAiPageGeneration();
59
+ }
60
+ canUseAiLexicalGeneration() {
61
+ return this.getWcpContext().canUseAiLexicalGeneration();
62
+ }
48
63
  ensureCanUseFeature(featureId) {
49
64
  this.getWcpContext().ensureCanUseFeature(featureId);
50
65
  }
@@ -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","canUseAiImageEnrichment","canUseAiPageGeneration","canUseAiLexicalGeneration","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 canUseAiImageEnrichment(): boolean {\n return this.getWcpContext().canUseAiImageEnrichment();\n }\n\n canUseAiPageGeneration(): boolean {\n return this.getWcpContext().canUseAiPageGeneration();\n }\n\n canUseAiLexicalGeneration(): boolean {\n return this.getWcpContext().canUseAiLexicalGeneration();\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":[]}
@@ -1,7 +1,5 @@
1
- import { ContextPlugin } from "@webiny/api";
2
1
  import type { DecryptedWcpProjectLicense } from "@webiny/wcp/types.js";
3
- import type { WcpContext } from "../../features/wcp/WcpContext/types.js";
4
2
  export interface CreateWcpContextParams {
5
3
  testProjectLicense?: DecryptedWcpProjectLicense;
6
4
  }
7
- export declare const createWcpContext: (params?: CreateWcpContextParams) => ContextPlugin<WcpContext>;
5
+ export declare const createWcpContext: (params?: CreateWcpContextParams) => import("@webiny/handler/index.js").RegisterExtensionPlugin<import("@webiny/handler/types.js").Context>;
@@ -1,6 +1,6 @@
1
- import { ContextPlugin } from "@webiny/api";
2
1
  import { getWcpProjectLicense, getWcpProjectEnvironment, NullLicense } from "@webiny/wcp";
3
2
  import { License } from "@webiny/wcp";
3
+ import { createRegisterExtensionPlugin } from "@webiny/handler/plugins/RegisterExtensionPlugin.js";
4
4
  import { getWcpProjectLicenseCacheKey } from "../../features/wcp/WcpContext/utils.js";
5
5
  import { WcpFeature } from "../../features/wcp/WcpFeature.js";
6
6
  import { LegacyWcpContext } from "./LegacyWcpContext.js";
@@ -37,9 +37,11 @@ async function loadLicense(testProjectLicense) {
37
37
  return cachedLicense.license;
38
38
  }
39
39
  export const createWcpContext = (params = {}) => {
40
- const plugin = new ContextPlugin(async context => {
40
+ const plugin = createRegisterExtensionPlugin(async context => {
41
41
  const license = await loadLicense(params.testProjectLicense);
42
42
  WcpFeature.register(context.container, license);
43
+
44
+ // @ts-expect-error This is a legacy property
43
45
  context.wcp = new LegacyWcpContext(context.container);
44
46
  context.plugins.register(createWcpGraphQL());
45
47
  });
@@ -1 +1 @@
1
- {"version":3,"names":["ContextPlugin","getWcpProjectLicense","getWcpProjectEnvironment","NullLicense","License","getWcpProjectLicenseCacheKey","WcpFeature","LegacyWcpContext","createWcpGraphQL","wcpProjectEnvironment","cachedLicense","cacheKey","project","license","loadLicense","testProjectLicense","fromLicenseDto","currentCacheKey","decryptedLicenseDto","orgId","org","id","projectId","projectEnvironmentApiKey","apiKey","package","createWcpContext","params","plugin","context","register","container","wcp","plugins","name"],"sources":["context.ts"],"sourcesContent":["import { ContextPlugin } from \"@webiny/api\";\nimport { getWcpProjectLicense, getWcpProjectEnvironment, NullLicense } from \"@webiny/wcp\";\nimport type { DecryptedWcpProjectLicense, ILicense } from \"@webiny/wcp/types.js\";\nimport { License } from \"@webiny/wcp\";\nimport type { CachedWcpProjectLicense, WcpContext } from \"~/features/wcp/WcpContext/types.js\";\nimport { getWcpProjectLicenseCacheKey } from \"~/features/wcp/WcpContext/utils.js\";\nimport { WcpFeature } from \"~/features/wcp/WcpFeature.js\";\nimport { LegacyWcpContext } from \"./LegacyWcpContext.js\";\nimport { createWcpGraphQL } from \"~/graphql/wcp/graphql.js\";\n\nconst wcpProjectEnvironment = getWcpProjectEnvironment();\n\nconst cachedLicense: CachedWcpProjectLicense = {\n cacheKey: null,\n project: null,\n license: new NullLicense()\n};\n\nasync function loadLicense(testProjectLicense?: DecryptedWcpProjectLicense): Promise<ILicense> {\n if (testProjectLicense) {\n cachedLicense.license = License.fromLicenseDto(testProjectLicense);\n } else if (wcpProjectEnvironment) {\n const currentCacheKey = getWcpProjectLicenseCacheKey();\n if (cachedLicense.cacheKey !== currentCacheKey) {\n cachedLicense.cacheKey = currentCacheKey;\n // Pull the project license from the WCP API.\n const decryptedLicenseDto = await getWcpProjectLicense({\n orgId: wcpProjectEnvironment.org.id,\n projectId: wcpProjectEnvironment.project.id,\n projectEnvironmentApiKey: wcpProjectEnvironment.apiKey\n });\n\n if (decryptedLicenseDto) {\n cachedLicense.project = {\n orgId: decryptedLicenseDto.orgId,\n projectId: decryptedLicenseDto.projectId,\n package: decryptedLicenseDto.package\n };\n }\n\n cachedLicense.license = License.fromLicenseDto(decryptedLicenseDto);\n }\n }\n\n return cachedLicense.license;\n}\n\nexport interface CreateWcpContextParams {\n testProjectLicense?: DecryptedWcpProjectLicense;\n}\n\nexport const createWcpContext = (params: CreateWcpContextParams = {}) => {\n const plugin = new ContextPlugin<WcpContext>(async context => {\n const license = await loadLicense(params.testProjectLicense);\n\n WcpFeature.register(context.container, license);\n\n context.wcp = new LegacyWcpContext(context.container);\n\n context.plugins.register(createWcpGraphQL());\n });\n\n plugin.name = \"wcp.context.create\";\n\n return plugin;\n};\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,aAAa;AAC3C,SAASC,oBAAoB,EAAEC,wBAAwB,EAAEC,WAAW,QAAQ,aAAa;AAEzF,SAASC,OAAO,QAAQ,aAAa;AAErC,SAASC,4BAA4B;AACrC,SAASC,UAAU;AACnB,SAASC,gBAAgB;AACzB,SAASC,gBAAgB;AAEzB,MAAMC,qBAAqB,GAAGP,wBAAwB,CAAC,CAAC;AAExD,MAAMQ,aAAsC,GAAG;EAC3CC,QAAQ,EAAE,IAAI;EACdC,OAAO,EAAE,IAAI;EACbC,OAAO,EAAE,IAAIV,WAAW,CAAC;AAC7B,CAAC;AAED,eAAeW,WAAWA,CAACC,kBAA+C,EAAqB;EAC3F,IAAIA,kBAAkB,EAAE;IACpBL,aAAa,CAACG,OAAO,GAAGT,OAAO,CAACY,cAAc,CAACD,kBAAkB,CAAC;EACtE,CAAC,MAAM,IAAIN,qBAAqB,EAAE;IAC9B,MAAMQ,eAAe,GAAGZ,4BAA4B,CAAC,CAAC;IACtD,IAAIK,aAAa,CAACC,QAAQ,KAAKM,eAAe,EAAE;MAC5CP,aAAa,CAACC,QAAQ,GAAGM,eAAe;MACxC;MACA,MAAMC,mBAAmB,GAAG,MAAMjB,oBAAoB,CAAC;QACnDkB,KAAK,EAAEV,qBAAqB,CAACW,GAAG,CAACC,EAAE;QACnCC,SAAS,EAAEb,qBAAqB,CAACG,OAAO,CAACS,EAAE;QAC3CE,wBAAwB,EAAEd,qBAAqB,CAACe;MACpD,CAAC,CAAC;MAEF,IAAIN,mBAAmB,EAAE;QACrBR,aAAa,CAACE,OAAO,GAAG;UACpBO,KAAK,EAAED,mBAAmB,CAACC,KAAK;UAChCG,SAAS,EAAEJ,mBAAmB,CAACI,SAAS;UACxCG,OAAO,EAAEP,mBAAmB,CAACO;QACjC,CAAC;MACL;MAEAf,aAAa,CAACG,OAAO,GAAGT,OAAO,CAACY,cAAc,CAACE,mBAAmB,CAAC;IACvE;EACJ;EAEA,OAAOR,aAAa,CAACG,OAAO;AAChC;AAMA,OAAO,MAAMa,gBAAgB,GAAGA,CAACC,MAA8B,GAAG,CAAC,CAAC,KAAK;EACrE,MAAMC,MAAM,GAAG,IAAI5B,aAAa,CAAa,MAAM6B,OAAO,IAAI;IAC1D,MAAMhB,OAAO,GAAG,MAAMC,WAAW,CAACa,MAAM,CAACZ,kBAAkB,CAAC;IAE5DT,UAAU,CAACwB,QAAQ,CAACD,OAAO,CAACE,SAAS,EAAElB,OAAO,CAAC;IAE/CgB,OAAO,CAACG,GAAG,GAAG,IAAIzB,gBAAgB,CAACsB,OAAO,CAACE,SAAS,CAAC;IAErDF,OAAO,CAACI,OAAO,CAACH,QAAQ,CAACtB,gBAAgB,CAAC,CAAC,CAAC;EAChD,CAAC,CAAC;EAEFoB,MAAM,CAACM,IAAI,GAAG,oBAAoB;EAElC,OAAON,MAAM;AACjB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["getWcpProjectLicense","getWcpProjectEnvironment","NullLicense","License","createRegisterExtensionPlugin","getWcpProjectLicenseCacheKey","WcpFeature","LegacyWcpContext","createWcpGraphQL","wcpProjectEnvironment","cachedLicense","cacheKey","project","license","loadLicense","testProjectLicense","fromLicenseDto","currentCacheKey","decryptedLicenseDto","orgId","org","id","projectId","projectEnvironmentApiKey","apiKey","package","createWcpContext","params","plugin","context","register","container","wcp","plugins","name"],"sources":["context.ts"],"sourcesContent":["import { getWcpProjectLicense, getWcpProjectEnvironment, NullLicense } from \"@webiny/wcp\";\nimport type { DecryptedWcpProjectLicense, ILicense } from \"@webiny/wcp/types.js\";\nimport { License } from \"@webiny/wcp\";\nimport { createRegisterExtensionPlugin } from \"@webiny/handler/plugins/RegisterExtensionPlugin.js\";\nimport type { CachedWcpProjectLicense } from \"~/features/wcp/WcpContext/types.js\";\nimport { getWcpProjectLicenseCacheKey } from \"~/features/wcp/WcpContext/utils.js\";\nimport { WcpFeature } from \"~/features/wcp/WcpFeature.js\";\nimport { LegacyWcpContext } from \"./LegacyWcpContext.js\";\nimport { createWcpGraphQL } from \"~/graphql/wcp/graphql.js\";\n\nconst wcpProjectEnvironment = getWcpProjectEnvironment();\n\nconst cachedLicense: CachedWcpProjectLicense = {\n cacheKey: null,\n project: null,\n license: new NullLicense()\n};\n\nasync function loadLicense(testProjectLicense?: DecryptedWcpProjectLicense): Promise<ILicense> {\n if (testProjectLicense) {\n cachedLicense.license = License.fromLicenseDto(testProjectLicense);\n } else if (wcpProjectEnvironment) {\n const currentCacheKey = getWcpProjectLicenseCacheKey();\n if (cachedLicense.cacheKey !== currentCacheKey) {\n cachedLicense.cacheKey = currentCacheKey;\n // Pull the project license from the WCP API.\n const decryptedLicenseDto = await getWcpProjectLicense({\n orgId: wcpProjectEnvironment.org.id,\n projectId: wcpProjectEnvironment.project.id,\n projectEnvironmentApiKey: wcpProjectEnvironment.apiKey\n });\n\n if (decryptedLicenseDto) {\n cachedLicense.project = {\n orgId: decryptedLicenseDto.orgId,\n projectId: decryptedLicenseDto.projectId,\n package: decryptedLicenseDto.package\n };\n }\n\n cachedLicense.license = License.fromLicenseDto(decryptedLicenseDto);\n }\n }\n\n return cachedLicense.license;\n}\n\nexport interface CreateWcpContextParams {\n testProjectLicense?: DecryptedWcpProjectLicense;\n}\n\nexport const createWcpContext = (params: CreateWcpContextParams = {}) => {\n const plugin = createRegisterExtensionPlugin(async context => {\n const license = await loadLicense(params.testProjectLicense);\n\n WcpFeature.register(context.container, license);\n\n // @ts-expect-error This is a legacy property\n context.wcp = new LegacyWcpContext(context.container);\n\n context.plugins.register(createWcpGraphQL());\n });\n\n plugin.name = \"wcp.context.create\";\n\n return plugin;\n};\n"],"mappings":"AAAA,SAASA,oBAAoB,EAAEC,wBAAwB,EAAEC,WAAW,QAAQ,aAAa;AAEzF,SAASC,OAAO,QAAQ,aAAa;AACrC,SAASC,6BAA6B,QAAQ,oDAAoD;AAElG,SAASC,4BAA4B;AACrC,SAASC,UAAU;AACnB,SAASC,gBAAgB;AACzB,SAASC,gBAAgB;AAEzB,MAAMC,qBAAqB,GAAGR,wBAAwB,CAAC,CAAC;AAExD,MAAMS,aAAsC,GAAG;EAC3CC,QAAQ,EAAE,IAAI;EACdC,OAAO,EAAE,IAAI;EACbC,OAAO,EAAE,IAAIX,WAAW,CAAC;AAC7B,CAAC;AAED,eAAeY,WAAWA,CAACC,kBAA+C,EAAqB;EAC3F,IAAIA,kBAAkB,EAAE;IACpBL,aAAa,CAACG,OAAO,GAAGV,OAAO,CAACa,cAAc,CAACD,kBAAkB,CAAC;EACtE,CAAC,MAAM,IAAIN,qBAAqB,EAAE;IAC9B,MAAMQ,eAAe,GAAGZ,4BAA4B,CAAC,CAAC;IACtD,IAAIK,aAAa,CAACC,QAAQ,KAAKM,eAAe,EAAE;MAC5CP,aAAa,CAACC,QAAQ,GAAGM,eAAe;MACxC;MACA,MAAMC,mBAAmB,GAAG,MAAMlB,oBAAoB,CAAC;QACnDmB,KAAK,EAAEV,qBAAqB,CAACW,GAAG,CAACC,EAAE;QACnCC,SAAS,EAAEb,qBAAqB,CAACG,OAAO,CAACS,EAAE;QAC3CE,wBAAwB,EAAEd,qBAAqB,CAACe;MACpD,CAAC,CAAC;MAEF,IAAIN,mBAAmB,EAAE;QACrBR,aAAa,CAACE,OAAO,GAAG;UACpBO,KAAK,EAAED,mBAAmB,CAACC,KAAK;UAChCG,SAAS,EAAEJ,mBAAmB,CAACI,SAAS;UACxCG,OAAO,EAAEP,mBAAmB,CAACO;QACjC,CAAC;MACL;MAEAf,aAAa,CAACG,OAAO,GAAGV,OAAO,CAACa,cAAc,CAACE,mBAAmB,CAAC;IACvE;EACJ;EAEA,OAAOR,aAAa,CAACG,OAAO;AAChC;AAMA,OAAO,MAAMa,gBAAgB,GAAGA,CAACC,MAA8B,GAAG,CAAC,CAAC,KAAK;EACrE,MAAMC,MAAM,GAAGxB,6BAA6B,CAAC,MAAMyB,OAAO,IAAI;IAC1D,MAAMhB,OAAO,GAAG,MAAMC,WAAW,CAACa,MAAM,CAACZ,kBAAkB,CAAC;IAE5DT,UAAU,CAACwB,QAAQ,CAACD,OAAO,CAACE,SAAS,EAAElB,OAAO,CAAC;;IAE/C;IACAgB,OAAO,CAACG,GAAG,GAAG,IAAIzB,gBAAgB,CAACsB,OAAO,CAACE,SAAS,CAAC;IAErDF,OAAO,CAACI,OAAO,CAACH,QAAQ,CAACtB,gBAAgB,CAAC,CAAC,CAAC;EAChD,CAAC,CAAC;EAEFoB,MAAM,CAACM,IAAI,GAAG,oBAAoB;EAElC,OAAON,MAAM;AACjB,CAAC","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 // oxlint-disable-next-line typescript/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>;
@@ -1,10 +1,29 @@
1
1
  import { z } from "zod";
2
2
  import { BaseModel } from "./BaseModel.js";
3
+
4
+ /**
5
+ * Custom type to compare Zod types and extract the inner type if it's wrapped in ZodOptional, ZodNullable, or ZodDefault.
6
+ */
7
+
3
8
  export const createModelSchema = factory => {
4
9
  return z.object({
5
10
  ...factory(z)
6
11
  });
7
12
  };
13
+ const shouldAssign = inner => {
14
+ if (!inner) {
15
+ return false;
16
+ } else if (!("def" in inner)) {
17
+ return false;
18
+ } else if (inner.def.type === "optional") {
19
+ return true;
20
+ } else if (inner.def.type === "nullable") {
21
+ return true;
22
+ } else if (inner.def.type === "default") {
23
+ return true;
24
+ }
25
+ return false;
26
+ };
8
27
  export class ModelBuilder {
9
28
  methods = {};
10
29
  constructor(name, schema) {
@@ -20,8 +39,8 @@ export class ModelBuilder {
20
39
  baseExtensionsObject = baseExtensions;
21
40
  } else if (baseExtensions) {
22
41
  let inner = baseExtensions;
23
- while (inner && "_def" in inner && ["ZodOptional", "ZodNullable", "ZodDefault"].includes(inner._def.typeName)) {
24
- inner = inner._def.innerType;
42
+ while (shouldAssign(inner)) {
43
+ inner = inner.def.innerType;
25
44
  }
26
45
  baseExtensionsObject = inner instanceof z.ZodObject ? inner : z.object({});
27
46
  } else {
@@ -1 +1 @@
1
- {"version":3,"names":["z","BaseModel","createModelSchema","factory","object","ModelBuilder","methods","constructor","name","schema","extendSchema","extensionFn","shape","baseExtensions","extensions","baseExtensionsObject","ZodObject","inner","includes","_def","typeName","innerType","newExtensions","extend","withMethods","Object","assign","getSchema","build","Model","__schema","create","data","clone","Constructor","toData","prototype","defineProperty","Symbol","toStringTag","value"],"sources":["ModelBuilder.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { BaseModel, type IModelData as ExtractModelData } from \"./BaseModel.js\";\n\nexport type ModelClass<TModel extends BaseModel<any>> = {\n __schema: TModel[\"__schema\"];\n new (data: ExtractModelData<TModel>): TModel;\n create(data: ExtractModelData<TModel>): TModel;\n};\n\nexport const createModelSchema = <TReturn extends z.ZodRawShape>(\n factory: (zod: typeof z) => TReturn\n) => {\n return z.object({ ...factory(z) });\n};\n\nexport class ModelBuilder<TModel extends BaseModel<any>> {\n private methods: Partial<Record<keyof TModel, any>> = {};\n\n constructor(\n private name: string,\n private schema: TModel[\"__schema\"]\n ) {\n this.methods = {};\n }\n\n extendSchema<TExt extends z.ZodRawShape>(extensionFn: (zod: typeof z) => TExt): this {\n const shape = extensionFn(z);\n const baseExtensions = (this.schema.shape as any).extensions;\n\n let baseExtensionsObject: z.ZodObject<any>;\n if (baseExtensions instanceof z.ZodObject) {\n baseExtensionsObject = baseExtensions;\n } else if (baseExtensions) {\n let inner = baseExtensions as any;\n while (\n inner &&\n \"_def\" in inner &&\n [\"ZodOptional\", \"ZodNullable\", \"ZodDefault\"].includes(inner._def.typeName)\n ) {\n inner = inner._def.innerType;\n }\n baseExtensionsObject = inner instanceof z.ZodObject ? inner : z.object({});\n } else {\n baseExtensionsObject = z.object({});\n }\n\n const newExtensions = baseExtensionsObject.extend(shape);\n this.schema = this.schema.extend({\n extensions: newExtensions\n }) as TModel[\"__schema\"];\n\n return this;\n }\n\n withMethods<TExtMethods extends object>(\n methods: TExtMethods & ThisType<TModel & TExtMethods>\n ): ModelBuilder<TModel & TExtMethods> {\n Object.assign(this.methods, methods);\n return this as unknown as ModelBuilder<TModel & TExtMethods>;\n }\n\n getSchema() {\n return this.schema;\n }\n\n build(): ModelClass<TModel> {\n const schema = this.schema;\n const methods = this.methods;\n const name = this.name;\n\n type ModelData = ExtractModelData<TModel>;\n\n class Model extends BaseModel<TModel[\"__schema\"]> {\n public override get __schema() {\n return schema;\n }\n\n static __schema = schema;\n\n static create(data: ModelData) {\n return new this(data) as unknown as TModel;\n }\n\n override clone(): this {\n const Constructor = this.constructor as new (data: ModelData) => this;\n return new Constructor(this.toData());\n }\n }\n\n Object.assign(Model.prototype, methods);\n\n Object.defineProperty(Model.prototype, Symbol.toStringTag, {\n value: name\n });\n\n return Model as unknown as ModelClass<TModel>;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["z","BaseModel","createModelSchema","factory","object","shouldAssign","inner","def","type","ModelBuilder","methods","constructor","name","schema","extendSchema","extensionFn","shape","baseExtensions","extensions","baseExtensionsObject","ZodObject","innerType","newExtensions","extend","withMethods","Object","assign","getSchema","build","Model","__schema","create","data","clone","Constructor","toData","prototype","defineProperty","Symbol","toStringTag","value"],"sources":["ModelBuilder.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { BaseModel, type IModelData as ExtractModelData } from \"./BaseModel.js\";\nimport type { $ZodTypeDef } from \"zod/v4/core\";\n\nexport type ModelClass<TModel extends BaseModel<any>> = {\n __schema: TModel[\"__schema\"];\n new (data: ExtractModelData<TModel>): TModel;\n create(data: ExtractModelData<TModel>): TModel;\n};\n\n/**\n * Custom type to compare Zod types and extract the inner type if it's wrapped in ZodOptional, ZodNullable, or ZodDefault.\n */\ntype InnerType = z.ZodTypeAny & {\n def: $ZodTypeDef & {\n innerType?: z.ZodObject<any>;\n };\n};\n\nexport const createModelSchema = <TReturn extends z.ZodRawShape>(\n factory: (zod: typeof z) => TReturn\n) => {\n return z.object({ ...factory(z) });\n};\n\nconst shouldAssign = (inner: InnerType): boolean => {\n if (!inner) {\n return false;\n } else if (!(\"def\" in inner)) {\n return false;\n } else if (inner.def.type === \"optional\") {\n return true;\n } else if (inner.def.type === \"nullable\") {\n return true;\n } else if (inner.def.type === \"default\") {\n return true;\n }\n return false;\n};\n\nexport class ModelBuilder<TModel extends BaseModel<any>> {\n private readonly methods: Partial<Record<keyof TModel, any>> = {};\n\n constructor(\n private name: string,\n private schema: TModel[\"__schema\"]\n ) {\n this.methods = {};\n }\n\n extendSchema<TExt extends z.ZodRawShape>(extensionFn: (zod: typeof z) => TExt): this {\n const shape = extensionFn(z);\n const baseExtensions = this.schema.shape.extensions;\n\n let baseExtensionsObject: z.ZodObject<any>;\n if (baseExtensions instanceof z.ZodObject) {\n baseExtensionsObject = baseExtensions;\n } else if (baseExtensions) {\n let inner = baseExtensions as InnerType;\n\n while (shouldAssign(inner)) {\n inner = inner.def.innerType!;\n }\n baseExtensionsObject = inner instanceof z.ZodObject ? inner : z.object({});\n } else {\n baseExtensionsObject = z.object({});\n }\n\n const newExtensions = baseExtensionsObject.extend(shape);\n this.schema = this.schema.extend({\n extensions: newExtensions\n }) as TModel[\"__schema\"];\n\n return this;\n }\n\n withMethods<TExtMethods extends object>(\n methods: TExtMethods & ThisType<TModel & TExtMethods>\n ): ModelBuilder<TModel & TExtMethods> {\n Object.assign(this.methods, methods);\n return this as unknown as ModelBuilder<TModel & TExtMethods>;\n }\n\n getSchema() {\n return this.schema;\n }\n\n build(): ModelClass<TModel> {\n const schema = this.schema;\n const methods = this.methods;\n const name = this.name;\n\n type ModelData = ExtractModelData<TModel>;\n\n class Model extends BaseModel<TModel[\"__schema\"]> {\n public override get __schema() {\n return schema;\n }\n\n static __schema = schema;\n\n static create(data: ModelData) {\n return new this(data) as unknown as TModel;\n }\n\n override clone(): this {\n const Constructor = this.constructor as new (data: ModelData) => this;\n return new Constructor(this.toData());\n }\n }\n\n Object.assign(Model.prototype, methods);\n\n Object.defineProperty(Model.prototype, Symbol.toStringTag, {\n value: name\n });\n\n return Model as unknown as ModelClass<TModel>;\n }\n}\n"],"mappings":"AAAA,SAASA,CAAC,QAAQ,KAAK;AACvB,SAASC,SAAS;;AASlB;AACA;AACA;;AAOA,OAAO,MAAMC,iBAAiB,GAC1BC,OAAmC,IAClC;EACD,OAAOH,CAAC,CAACI,MAAM,CAAC;IAAE,GAAGD,OAAO,CAACH,CAAC;EAAE,CAAC,CAAC;AACtC,CAAC;AAED,MAAMK,YAAY,GAAIC,KAAgB,IAAc;EAChD,IAAI,CAACA,KAAK,EAAE;IACR,OAAO,KAAK;EAChB,CAAC,MAAM,IAAI,EAAE,KAAK,IAAIA,KAAK,CAAC,EAAE;IAC1B,OAAO,KAAK;EAChB,CAAC,MAAM,IAAIA,KAAK,CAACC,GAAG,CAACC,IAAI,KAAK,UAAU,EAAE;IACtC,OAAO,IAAI;EACf,CAAC,MAAM,IAAIF,KAAK,CAACC,GAAG,CAACC,IAAI,KAAK,UAAU,EAAE;IACtC,OAAO,IAAI;EACf,CAAC,MAAM,IAAIF,KAAK,CAACC,GAAG,CAACC,IAAI,KAAK,SAAS,EAAE;IACrC,OAAO,IAAI;EACf;EACA,OAAO,KAAK;AAChB,CAAC;AAED,OAAO,MAAMC,YAAY,CAAgC;EACpCC,OAAO,GAAuC,CAAC,CAAC;EAEjEC,WAAWA,CACCC,IAAY,EACZC,MAA0B,EACpC;IAAA,KAFUD,IAAY,GAAZA,IAAY;IAAA,KACZC,MAA0B,GAA1BA,MAA0B;IAElC,IAAI,CAACH,OAAO,GAAG,CAAC,CAAC;EACrB;EAEAI,YAAYA,CAA6BC,WAAoC,EAAQ;IACjF,MAAMC,KAAK,GAAGD,WAAW,CAACf,CAAC,CAAC;IAC5B,MAAMiB,cAAc,GAAG,IAAI,CAACJ,MAAM,CAACG,KAAK,CAACE,UAAU;IAEnD,IAAIC,oBAAsC;IAC1C,IAAIF,cAAc,YAAYjB,CAAC,CAACoB,SAAS,EAAE;MACvCD,oBAAoB,GAAGF,cAAc;IACzC,CAAC,MAAM,IAAIA,cAAc,EAAE;MACvB,IAAIX,KAAK,GAAGW,cAA2B;MAEvC,OAAOZ,YAAY,CAACC,KAAK,CAAC,EAAE;QACxBA,KAAK,GAAGA,KAAK,CAACC,GAAG,CAACc,SAAU;MAChC;MACAF,oBAAoB,GAAGb,KAAK,YAAYN,CAAC,CAACoB,SAAS,GAAGd,KAAK,GAAGN,CAAC,CAACI,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC,MAAM;MACHe,oBAAoB,GAAGnB,CAAC,CAACI,MAAM,CAAC,CAAC,CAAC,CAAC;IACvC;IAEA,MAAMkB,aAAa,GAAGH,oBAAoB,CAACI,MAAM,CAACP,KAAK,CAAC;IACxD,IAAI,CAACH,MAAM,GAAG,IAAI,CAACA,MAAM,CAACU,MAAM,CAAC;MAC7BL,UAAU,EAAEI;IAChB,CAAC,CAAuB;IAExB,OAAO,IAAI;EACf;EAEAE,WAAWA,CACPd,OAAqD,EACnB;IAClCe,MAAM,CAACC,MAAM,CAAC,IAAI,CAAChB,OAAO,EAAEA,OAAO,CAAC;IACpC,OAAO,IAAI;EACf;EAEAiB,SAASA,CAAA,EAAG;IACR,OAAO,IAAI,CAACd,MAAM;EACtB;EAEAe,KAAKA,CAAA,EAAuB;IACxB,MAAMf,MAAM,GAAG,IAAI,CAACA,MAAM;IAC1B,MAAMH,OAAO,GAAG,IAAI,CAACA,OAAO;IAC5B,MAAME,IAAI,GAAG,IAAI,CAACA,IAAI;IAItB,MAAMiB,KAAK,SAAS5B,SAAS,CAAqB;MAC9C,IAAoB6B,QAAQA,CAAA,EAAG;QAC3B,OAAOjB,MAAM;MACjB;MAEA,OAAOiB,QAAQ,GAAGjB,MAAM;MAExB,OAAOkB,MAAMA,CAACC,IAAe,EAAE;QAC3B,OAAO,IAAI,IAAI,CAACA,IAAI,CAAC;MACzB;MAESC,KAAKA,CAAA,EAAS;QACnB,MAAMC,WAAW,GAAG,IAAI,CAACvB,WAA4C;QACrE,OAAO,IAAIuB,WAAW,CAAC,IAAI,CAACC,MAAM,CAAC,CAAC,CAAC;MACzC;IACJ;IAEAV,MAAM,CAACC,MAAM,CAACG,KAAK,CAACO,SAAS,EAAE1B,OAAO,CAAC;IAEvCe,MAAM,CAACY,cAAc,CAACR,KAAK,CAACO,SAAS,EAAEE,MAAM,CAACC,WAAW,EAAE;MACvDC,KAAK,EAAE5B;IACX,CAAC,CAAC;IAEF,OAAOiB,KAAK;EAChB;AACJ","ignoreList":[]}
@@ -6,7 +6,7 @@ export declare abstract class FieldBuilder<TZod extends z.ZodTypeAny> {
6
6
  protected zodSchema: TZod;
7
7
  constructor(type: string, initialSchema: TZod);
8
8
  label(text: string): this;
9
- helpText(text: string): this;
9
+ help(text: string): this;
10
10
  placeholder(text: string): this;
11
11
  toConfig(): FieldConfig;
12
12
  getZodSchema(): TZod;
@@ -19,12 +19,13 @@ export declare class TextFieldBuilder<TZod extends z.ZodString = z.ZodString> ex
19
19
  slug(): this;
20
20
  email(): this;
21
21
  url(): this;
22
+ private addStringValidator;
22
23
  unique(): this;
23
24
  }
24
25
  export declare class ObjectFieldBuilder<TShape extends z.ZodRawShape> extends FieldBuilder<z.ZodObject<TShape>> {
25
- private nestedFields;
26
+ private readonly nestedFields;
26
27
  constructor(fields: (registry: IFieldBuilderRegistry) => {
27
- [K in keyof TShape]: FieldBuilder<TShape[K]>;
28
+ [K in keyof TShape]: FieldBuilder<TShape[K] & z.ZodTypeAny>;
28
29
  }, registry: IFieldBuilderRegistry);
29
30
  optional(): ObjectFieldBuilder<TShape> & {
30
31
  getZodSchema(): z.ZodOptional<z.ZodObject<TShape>>;
@@ -12,12 +12,12 @@ export class FieldBuilder {
12
12
  this.config.label = text;
13
13
  return this;
14
14
  }
15
- helpText(text) {
16
- this.config.helpText = text;
15
+ help(text) {
16
+ this.config.help = text;
17
17
  return this;
18
18
  }
19
19
  placeholder(text) {
20
- this.config.placeholderText = text;
20
+ this.config.placeholder = text;
21
21
  return this;
22
22
  }
23
23
  toConfig() {
@@ -25,8 +25,8 @@ export class FieldBuilder {
25
25
  fieldId: "",
26
26
  type: this.config.type,
27
27
  label: this.config.label,
28
- helpText: this.config.helpText,
29
- placeholderText: this.config.placeholderText,
28
+ help: this.config.help,
29
+ placeholder: this.config.placeholder,
30
30
  validation: this.config.validation || [],
31
31
  settings: this.config.settings || {},
32
32
  zodSchema: this.zodSchema
@@ -61,28 +61,19 @@ export class TextFieldBuilder extends FieldBuilder {
61
61
  return this;
62
62
  }
63
63
  slug() {
64
- this.zodSchema = this.zodSchema.regex(/^[a-z0-9-]+$/, "Must be a valid slug (lowercase letters, numbers, and hyphens only)");
65
- this.config.validation?.push({
66
- name: "slug",
67
- message: "Must be a valid slug",
68
- settings: {}
69
- });
70
- return this;
64
+ return this.addStringValidator(this.zodSchema.regex(/^[a-z0-9-]+$/, "Must be a valid slug (lowercase letters, numbers, and hyphens only)"), "slug", "Must be a valid slug");
71
65
  }
72
66
  email() {
73
- this.zodSchema = this.zodSchema.email("Must be a valid email");
74
- this.config.validation?.push({
75
- name: "email",
76
- message: "Must be a valid email",
77
- settings: {}
78
- });
79
- return this;
67
+ return this.addStringValidator(this.zodSchema.email("Must be a valid email"), "email", "Must be a valid email");
80
68
  }
81
69
  url() {
82
- this.zodSchema = this.zodSchema.url("Must be a valid URL");
70
+ return this.addStringValidator(this.zodSchema.url("Must be a valid URL"), "url", "Must be a valid URL");
71
+ }
72
+ addStringValidator(schema, name, message) {
73
+ this.zodSchema = schema;
83
74
  this.config.validation?.push({
84
- name: "url",
85
- message: "Must be a valid URL",
75
+ name,
76
+ message,
86
77
  settings: {}
87
78
  });
88
79
  return this;
@@ -115,11 +106,15 @@ export class ObjectFieldBuilder extends FieldBuilder {
115
106
  this.config.fields = nestedConfigs;
116
107
  }
117
108
  optional() {
109
+ // @ts-expect-error
118
110
  this.zodSchema = this.zodSchema.optional();
111
+ // @ts-expect-error
119
112
  return this;
120
113
  }
121
114
  nullable() {
115
+ // @ts-expect-error
122
116
  this.zodSchema = this.zodSchema.nullable();
117
+ // @ts-expect-error
123
118
  return this;
124
119
  }
125
120
  toConfig() {
@@ -1 +1 @@
1
- {"version":3,"names":["z","FieldBuilder","config","validation","constructor","type","initialSchema","zodSchema","label","text","helpText","placeholder","placeholderText","toConfig","fieldId","settings","getZodSchema","TextFieldBuilder","schema","string","required","message","newSchema","min","push","name","minLength","length","maxLength","max","slug","regex","email","url","unique","ObjectFieldBuilder","nestedFields","fields","registry","fieldBuilders","shape","nestedConfigs","builder","Object","entries","object","optional","nullable"],"sources":["FieldBuilder.ts"],"sourcesContent":["import { z } from \"zod\";\nimport type { FieldConfig } from \"./types.js\";\nimport type { IFieldBuilderRegistry } from \"./abstractions.js\";\n\n// Make FieldBuilder return the Zod type it produces\nexport abstract class FieldBuilder<TZod extends z.ZodTypeAny> {\n protected config: Partial<FieldConfig> = {\n validation: []\n };\n protected zodSchema: TZod;\n\n constructor(type: string, initialSchema: TZod) {\n this.config.type = type;\n this.zodSchema = initialSchema;\n }\n\n label(text: string): this {\n this.config.label = text;\n return this;\n }\n\n helpText(text: string): this {\n this.config.helpText = text;\n return this;\n }\n\n placeholder(text: string): this {\n this.config.placeholderText = text;\n return this;\n }\n\n toConfig(): FieldConfig {\n return {\n fieldId: \"\",\n type: this.config.type!,\n label: this.config.label,\n helpText: this.config.helpText,\n placeholderText: this.config.placeholderText,\n validation: this.config.validation || [],\n settings: this.config.settings || {},\n zodSchema: this.zodSchema\n };\n }\n\n getZodSchema(): TZod {\n return this.zodSchema;\n }\n}\n\n// Text Field Builder - properly track type transformations\nexport class TextFieldBuilder<TZod extends z.ZodString = z.ZodString> extends FieldBuilder<TZod> {\n constructor(schema?: TZod) {\n super(\"text\", (schema || z.string()) as TZod);\n }\n\n required(message?: string): TextFieldBuilder<z.ZodString> {\n const newSchema = (this.zodSchema as z.ZodString).min(1, message || \"Field is required\");\n this.zodSchema = newSchema as any;\n this.config.validation?.push({\n name: \"required\",\n message: message || \"Field is required\",\n settings: {}\n });\n return this as any;\n }\n\n minLength(length: number, message?: string): this {\n this.zodSchema = (this.zodSchema as z.ZodString).min(length, message) as TZod;\n return this;\n }\n\n maxLength(length: number, message?: string): this {\n this.zodSchema = (this.zodSchema as z.ZodString).max(length, message) as TZod;\n return this;\n }\n\n slug(): this {\n this.zodSchema = (this.zodSchema as z.ZodString).regex(\n /^[a-z0-9-]+$/,\n \"Must be a valid slug (lowercase letters, numbers, and hyphens only)\"\n ) as TZod;\n this.config.validation?.push({\n name: \"slug\",\n message: \"Must be a valid slug\",\n settings: {}\n });\n return this;\n }\n\n email(): this {\n this.zodSchema = (this.zodSchema as z.ZodString).email(\"Must be a valid email\") as TZod;\n this.config.validation?.push({\n name: \"email\",\n message: \"Must be a valid email\",\n settings: {}\n });\n return this;\n }\n\n url(): this {\n this.zodSchema = (this.zodSchema as z.ZodString).url(\"Must be a valid URL\") as TZod;\n this.config.validation?.push({\n name: \"url\",\n message: \"Must be a valid URL\",\n settings: {}\n });\n return this;\n }\n\n unique(): this {\n this.config.validation?.push({\n name: \"unique\",\n message: \"Value must be unique\",\n settings: {}\n });\n return this;\n }\n}\n\n// Object Field Builder - track the shape type\nexport class ObjectFieldBuilder<TShape extends z.ZodRawShape> extends FieldBuilder<\n z.ZodObject<TShape>\n> {\n private nestedFields: FieldConfig[] = [];\n\n constructor(\n fields: (registry: IFieldBuilderRegistry) => {\n [K in keyof TShape]: FieldBuilder<TShape[K]>;\n },\n registry: IFieldBuilderRegistry\n ) {\n const fieldBuilders = fields(registry);\n const shape = {} as TShape;\n const nestedConfigs: FieldConfig[] = [];\n\n for (const [fieldId, builder] of Object.entries(fieldBuilders) as Array<\n [keyof TShape, FieldBuilder<any>]\n >) {\n const config = builder.toConfig();\n config.fieldId = fieldId as string;\n nestedConfigs.push(config);\n shape[fieldId] = builder.getZodSchema() as TShape[keyof TShape];\n }\n\n super(\"object\", z.object(shape));\n this.nestedFields = nestedConfigs;\n this.config.fields = nestedConfigs;\n }\n\n optional(): ObjectFieldBuilder<TShape> & {\n getZodSchema(): z.ZodOptional<z.ZodObject<TShape>>;\n } {\n this.zodSchema = this.zodSchema.optional() as any;\n return this as any;\n }\n\n nullable(): ObjectFieldBuilder<TShape> & {\n getZodSchema(): z.ZodNullable<z.ZodObject<TShape>>;\n } {\n this.zodSchema = this.zodSchema.nullable() as any;\n return this as any;\n }\n\n override toConfig(): FieldConfig {\n const config = super.toConfig();\n config.fields = this.nestedFields;\n return config;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["z","FieldBuilder","config","validation","constructor","type","initialSchema","zodSchema","label","text","help","placeholder","toConfig","fieldId","settings","getZodSchema","TextFieldBuilder","schema","string","required","message","newSchema","min","push","name","minLength","length","maxLength","max","slug","addStringValidator","regex","email","url","unique","ObjectFieldBuilder","nestedFields","fields","registry","fieldBuilders","shape","nestedConfigs","builder","Object","entries","object","optional","nullable"],"sources":["FieldBuilder.ts"],"sourcesContent":["import { z } from \"zod\";\nimport type { FieldConfig } from \"./types.js\";\nimport type { IFieldBuilderRegistry } from \"./abstractions.js\";\n\n// Make FieldBuilder return the Zod type it produces\nexport abstract class FieldBuilder<TZod extends z.ZodTypeAny> {\n protected config: Partial<FieldConfig> = {\n validation: []\n };\n protected zodSchema: TZod;\n\n constructor(type: string, initialSchema: TZod) {\n this.config.type = type;\n this.zodSchema = initialSchema;\n }\n\n label(text: string): this {\n this.config.label = text;\n return this;\n }\n\n help(text: string): this {\n this.config.help = text;\n return this;\n }\n\n placeholder(text: string): this {\n this.config.placeholder = text;\n return this;\n }\n\n toConfig(): FieldConfig {\n return {\n fieldId: \"\",\n type: this.config.type!,\n label: this.config.label,\n help: this.config.help,\n placeholder: this.config.placeholder,\n validation: this.config.validation || [],\n settings: this.config.settings || {},\n zodSchema: this.zodSchema\n };\n }\n\n getZodSchema(): TZod {\n return this.zodSchema;\n }\n}\n\n// Text Field Builder - properly track type transformations\nexport class TextFieldBuilder<TZod extends z.ZodString = z.ZodString> extends FieldBuilder<TZod> {\n constructor(schema?: TZod) {\n super(\"text\", (schema || z.string()) as TZod);\n }\n\n required(message?: string): TextFieldBuilder<z.ZodString> {\n const newSchema = this.zodSchema.min(1, message || \"Field is required\");\n this.zodSchema = newSchema;\n this.config.validation?.push({\n name: \"required\",\n message: message || \"Field is required\",\n settings: {}\n });\n return this;\n }\n\n minLength(length: number, message?: string): this {\n this.zodSchema = this.zodSchema.min(length, message) as TZod;\n return this;\n }\n\n maxLength(length: number, message?: string): this {\n this.zodSchema = this.zodSchema.max(length, message) as TZod;\n return this;\n }\n\n slug(): this {\n return this.addStringValidator(\n this.zodSchema.regex(\n /^[a-z0-9-]+$/,\n \"Must be a valid slug (lowercase letters, numbers, and hyphens only)\"\n ),\n \"slug\",\n \"Must be a valid slug\"\n );\n }\n\n email(): this {\n return this.addStringValidator(\n this.zodSchema.email(\"Must be a valid email\"),\n \"email\",\n \"Must be a valid email\"\n );\n }\n\n url(): this {\n return this.addStringValidator(\n this.zodSchema.url(\"Must be a valid URL\"),\n \"url\",\n \"Must be a valid URL\"\n );\n }\n\n private addStringValidator(schema: z.ZodString, name: string, message: string): this {\n this.zodSchema = schema as TZod;\n this.config.validation?.push({ name, message, settings: {} });\n return this;\n }\n\n unique(): this {\n this.config.validation?.push({\n name: \"unique\",\n message: \"Value must be unique\",\n settings: {}\n });\n return this;\n }\n}\n\n// Object Field Builder - track the shape type\nexport class ObjectFieldBuilder<TShape extends z.ZodRawShape> extends FieldBuilder<\n z.ZodObject<TShape>\n> {\n private readonly nestedFields: FieldConfig[] = [];\n\n constructor(\n fields: (registry: IFieldBuilderRegistry) => {\n [K in keyof TShape]: FieldBuilder<TShape[K] & z.ZodTypeAny>;\n },\n registry: IFieldBuilderRegistry\n ) {\n const fieldBuilders = fields(registry);\n const shape = {} as TShape;\n const nestedConfigs: FieldConfig[] = [];\n\n for (const [fieldId, builder] of Object.entries(fieldBuilders) as Array<\n [keyof TShape, FieldBuilder<any>]\n >) {\n const config = builder.toConfig();\n config.fieldId = fieldId as string;\n nestedConfigs.push(config);\n shape[fieldId] = builder.getZodSchema() as TShape[keyof TShape];\n }\n\n super(\"object\", z.object(shape));\n this.nestedFields = nestedConfigs;\n this.config.fields = nestedConfigs;\n }\n\n optional(): ObjectFieldBuilder<TShape> & {\n getZodSchema(): z.ZodOptional<z.ZodObject<TShape>>;\n } {\n // @ts-expect-error\n this.zodSchema = this.zodSchema.optional();\n // @ts-expect-error\n return this;\n }\n\n nullable(): ObjectFieldBuilder<TShape> & {\n getZodSchema(): z.ZodNullable<z.ZodObject<TShape>>;\n } {\n // @ts-expect-error\n this.zodSchema = this.zodSchema.nullable();\n // @ts-expect-error\n return this;\n }\n\n override toConfig(): FieldConfig {\n const config = super.toConfig();\n config.fields = this.nestedFields;\n return config;\n }\n}\n"],"mappings":"AAAA,SAASA,CAAC,QAAQ,KAAK;AAIvB;AACA,OAAO,MAAeC,YAAY,CAA4B;EAChDC,MAAM,GAAyB;IACrCC,UAAU,EAAE;EAChB,CAAC;EAGDC,WAAWA,CAACC,IAAY,EAAEC,aAAmB,EAAE;IAC3C,IAAI,CAACJ,MAAM,CAACG,IAAI,GAAGA,IAAI;IACvB,IAAI,CAACE,SAAS,GAAGD,aAAa;EAClC;EAEAE,KAAKA,CAACC,IAAY,EAAQ;IACtB,IAAI,CAACP,MAAM,CAACM,KAAK,GAAGC,IAAI;IACxB,OAAO,IAAI;EACf;EAEAC,IAAIA,CAACD,IAAY,EAAQ;IACrB,IAAI,CAACP,MAAM,CAACQ,IAAI,GAAGD,IAAI;IACvB,OAAO,IAAI;EACf;EAEAE,WAAWA,CAACF,IAAY,EAAQ;IAC5B,IAAI,CAACP,MAAM,CAACS,WAAW,GAAGF,IAAI;IAC9B,OAAO,IAAI;EACf;EAEAG,QAAQA,CAAA,EAAgB;IACpB,OAAO;MACHC,OAAO,EAAE,EAAE;MACXR,IAAI,EAAE,IAAI,CAACH,MAAM,CAACG,IAAK;MACvBG,KAAK,EAAE,IAAI,CAACN,MAAM,CAACM,KAAK;MACxBE,IAAI,EAAE,IAAI,CAACR,MAAM,CAACQ,IAAI;MACtBC,WAAW,EAAE,IAAI,CAACT,MAAM,CAACS,WAAW;MACpCR,UAAU,EAAE,IAAI,CAACD,MAAM,CAACC,UAAU,IAAI,EAAE;MACxCW,QAAQ,EAAE,IAAI,CAACZ,MAAM,CAACY,QAAQ,IAAI,CAAC,CAAC;MACpCP,SAAS,EAAE,IAAI,CAACA;IACpB,CAAC;EACL;EAEAQ,YAAYA,CAAA,EAAS;IACjB,OAAO,IAAI,CAACR,SAAS;EACzB;AACJ;;AAEA;AACA,OAAO,MAAMS,gBAAgB,SAAiDf,YAAY,CAAO;EAC7FG,WAAWA,CAACa,MAAa,EAAE;IACvB,KAAK,CAAC,MAAM,EAAGA,MAAM,IAAIjB,CAAC,CAACkB,MAAM,CAAC,CAAU,CAAC;EACjD;EAEAC,QAAQA,CAACC,OAAgB,EAAiC;IACtD,MAAMC,SAAS,GAAG,IAAI,CAACd,SAAS,CAACe,GAAG,CAAC,CAAC,EAAEF,OAAO,IAAI,mBAAmB,CAAC;IACvE,IAAI,CAACb,SAAS,GAAGc,SAAS;IAC1B,IAAI,CAACnB,MAAM,CAACC,UAAU,EAAEoB,IAAI,CAAC;MACzBC,IAAI,EAAE,UAAU;MAChBJ,OAAO,EAAEA,OAAO,IAAI,mBAAmB;MACvCN,QAAQ,EAAE,CAAC;IACf,CAAC,CAAC;IACF,OAAO,IAAI;EACf;EAEAW,SAASA,CAACC,MAAc,EAAEN,OAAgB,EAAQ;IAC9C,IAAI,CAACb,SAAS,GAAG,IAAI,CAACA,SAAS,CAACe,GAAG,CAACI,MAAM,EAAEN,OAAO,CAAS;IAC5D,OAAO,IAAI;EACf;EAEAO,SAASA,CAACD,MAAc,EAAEN,OAAgB,EAAQ;IAC9C,IAAI,CAACb,SAAS,GAAG,IAAI,CAACA,SAAS,CAACqB,GAAG,CAACF,MAAM,EAAEN,OAAO,CAAS;IAC5D,OAAO,IAAI;EACf;EAEAS,IAAIA,CAAA,EAAS;IACT,OAAO,IAAI,CAACC,kBAAkB,CAC1B,IAAI,CAACvB,SAAS,CAACwB,KAAK,CAChB,cAAc,EACd,qEACJ,CAAC,EACD,MAAM,EACN,sBACJ,CAAC;EACL;EAEAC,KAAKA,CAAA,EAAS;IACV,OAAO,IAAI,CAACF,kBAAkB,CAC1B,IAAI,CAACvB,SAAS,CAACyB,KAAK,CAAC,uBAAuB,CAAC,EAC7C,OAAO,EACP,uBACJ,CAAC;EACL;EAEAC,GAAGA,CAAA,EAAS;IACR,OAAO,IAAI,CAACH,kBAAkB,CAC1B,IAAI,CAACvB,SAAS,CAAC0B,GAAG,CAAC,qBAAqB,CAAC,EACzC,KAAK,EACL,qBACJ,CAAC;EACL;EAEQH,kBAAkBA,CAACb,MAAmB,EAAEO,IAAY,EAAEJ,OAAe,EAAQ;IACjF,IAAI,CAACb,SAAS,GAAGU,MAAc;IAC/B,IAAI,CAACf,MAAM,CAACC,UAAU,EAAEoB,IAAI,CAAC;MAAEC,IAAI;MAAEJ,OAAO;MAAEN,QAAQ,EAAE,CAAC;IAAE,CAAC,CAAC;IAC7D,OAAO,IAAI;EACf;EAEAoB,MAAMA,CAAA,EAAS;IACX,IAAI,CAAChC,MAAM,CAACC,UAAU,EAAEoB,IAAI,CAAC;MACzBC,IAAI,EAAE,QAAQ;MACdJ,OAAO,EAAE,sBAAsB;MAC/BN,QAAQ,EAAE,CAAC;IACf,CAAC,CAAC;IACF,OAAO,IAAI;EACf;AACJ;;AAEA;AACA,OAAO,MAAMqB,kBAAkB,SAAuClC,YAAY,CAEhF;EACmBmC,YAAY,GAAkB,EAAE;EAEjDhC,WAAWA,CACPiC,MAEC,EACDC,QAA+B,EACjC;IACE,MAAMC,aAAa,GAAGF,MAAM,CAACC,QAAQ,CAAC;IACtC,MAAME,KAAK,GAAG,CAAC,CAAW;IAC1B,MAAMC,aAA4B,GAAG,EAAE;IAEvC,KAAK,MAAM,CAAC5B,OAAO,EAAE6B,OAAO,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACL,aAAa,CAAC,EAE3D;MACC,MAAMrC,MAAM,GAAGwC,OAAO,CAAC9B,QAAQ,CAAC,CAAC;MACjCV,MAAM,CAACW,OAAO,GAAGA,OAAiB;MAClC4B,aAAa,CAAClB,IAAI,CAACrB,MAAM,CAAC;MAC1BsC,KAAK,CAAC3B,OAAO,CAAC,GAAG6B,OAAO,CAAC3B,YAAY,CAAC,CAAyB;IACnE;IAEA,KAAK,CAAC,QAAQ,EAAEf,CAAC,CAAC6C,MAAM,CAACL,KAAK,CAAC,CAAC;IAChC,IAAI,CAACJ,YAAY,GAAGK,aAAa;IACjC,IAAI,CAACvC,MAAM,CAACmC,MAAM,GAAGI,aAAa;EACtC;EAEAK,QAAQA,CAAA,EAEN;IACE;IACA,IAAI,CAACvC,SAAS,GAAG,IAAI,CAACA,SAAS,CAACuC,QAAQ,CAAC,CAAC;IAC1C;IACA,OAAO,IAAI;EACf;EAEAC,QAAQA,CAAA,EAEN;IACE;IACA,IAAI,CAACxC,SAAS,GAAG,IAAI,CAACA,SAAS,CAACwC,QAAQ,CAAC,CAAC;IAC1C;IACA,OAAO,IAAI;EACf;EAESnC,QAAQA,CAAA,EAAgB;IAC7B,MAAMV,MAAM,GAAG,KAAK,CAACU,QAAQ,CAAC,CAAC;IAC/BV,MAAM,CAACmC,MAAM,GAAG,IAAI,CAACD,YAAY;IACjC,OAAOlC,MAAM;EACjB;AACJ","ignoreList":[]}
@@ -3,7 +3,7 @@ import { TextFieldBuilder, ObjectFieldBuilder, type FieldBuilder } from "./Field
3
3
  import { type IFieldBuilderRegistry } from "./abstractions.js";
4
4
  declare class FieldBuilderRegistryImpl implements IFieldBuilderRegistry {
5
5
  text(): TextFieldBuilder<z.ZodString>;
6
- object<TShape extends z.ZodRawShape>(fields: (registry: IFieldBuilderRegistry) => {
6
+ object<TShape extends Record<string, z.ZodTypeAny>>(fields: (registry: IFieldBuilderRegistry) => {
7
7
  [K in keyof TShape]: FieldBuilder<TShape[K]>;
8
8
  }): ObjectFieldBuilder<TShape>;
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"names":["createImplementation","TextFieldBuilder","ObjectFieldBuilder","FieldBuilderRegistry","RegistryAbstraction","FieldBuilderRegistryImpl","text","object","fields","abstraction","implementation","dependencies"],"sources":["FieldBuilderRegistry.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { createImplementation } from \"@webiny/di\";\nimport { TextFieldBuilder, ObjectFieldBuilder, type FieldBuilder } from \"./FieldBuilder.js\";\nimport {\n FieldBuilderRegistry as RegistryAbstraction,\n type IFieldBuilderRegistry\n} from \"./abstractions.js\";\n\nclass FieldBuilderRegistryImpl implements IFieldBuilderRegistry {\n text(): TextFieldBuilder<z.ZodString> {\n return new TextFieldBuilder();\n }\n\n object<TShape extends z.ZodRawShape>(\n fields: (registry: IFieldBuilderRegistry) => {\n [K in keyof TShape]: FieldBuilder<TShape[K]>;\n }\n ): ObjectFieldBuilder<TShape> {\n return new ObjectFieldBuilder(fields, this);\n }\n}\n\nexport const FieldBuilderRegistry = createImplementation({\n abstraction: RegistryAbstraction,\n implementation: FieldBuilderRegistryImpl,\n dependencies: []\n});\n"],"mappings":"AACA,SAASA,oBAAoB,QAAQ,YAAY;AACjD,SAASC,gBAAgB,EAAEC,kBAAkB;AAC7C,SACIC,oBAAoB,IAAIC,mBAAmB;AAI/C,MAAMC,wBAAwB,CAAkC;EAC5DC,IAAIA,CAAA,EAAkC;IAClC,OAAO,IAAIL,gBAAgB,CAAC,CAAC;EACjC;EAEAM,MAAMA,CACFC,MAEC,EACyB;IAC1B,OAAO,IAAIN,kBAAkB,CAACM,MAAM,EAAE,IAAI,CAAC;EAC/C;AACJ;AAEA,OAAO,MAAML,oBAAoB,GAAGH,oBAAoB,CAAC;EACrDS,WAAW,EAAEL,mBAAmB;EAChCM,cAAc,EAAEL,wBAAwB;EACxCM,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createImplementation","TextFieldBuilder","ObjectFieldBuilder","FieldBuilderRegistry","RegistryAbstraction","FieldBuilderRegistryImpl","text","object","fields","abstraction","implementation","dependencies"],"sources":["FieldBuilderRegistry.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { createImplementation } from \"@webiny/di\";\nimport { TextFieldBuilder, ObjectFieldBuilder, type FieldBuilder } from \"./FieldBuilder.js\";\nimport {\n FieldBuilderRegistry as RegistryAbstraction,\n type IFieldBuilderRegistry\n} from \"./abstractions.js\";\n\nclass FieldBuilderRegistryImpl implements IFieldBuilderRegistry {\n text(): TextFieldBuilder<z.ZodString> {\n return new TextFieldBuilder();\n }\n\n object<TShape extends Record<string, z.ZodTypeAny>>(\n fields: (registry: IFieldBuilderRegistry) => {\n [K in keyof TShape]: FieldBuilder<TShape[K]>;\n }\n ): ObjectFieldBuilder<TShape> {\n return new ObjectFieldBuilder(fields, this);\n }\n}\n\nexport const FieldBuilderRegistry = createImplementation({\n abstraction: RegistryAbstraction,\n implementation: FieldBuilderRegistryImpl,\n dependencies: []\n});\n"],"mappings":"AACA,SAASA,oBAAoB,QAAQ,YAAY;AACjD,SAASC,gBAAgB,EAAEC,kBAAkB;AAC7C,SACIC,oBAAoB,IAAIC,mBAAmB;AAI/C,MAAMC,wBAAwB,CAAkC;EAC5DC,IAAIA,CAAA,EAAkC;IAClC,OAAO,IAAIL,gBAAgB,CAAC,CAAC;EACjC;EAEAM,MAAMA,CACFC,MAEC,EACyB;IAC1B,OAAO,IAAIN,kBAAkB,CAACM,MAAM,EAAE,IAAI,CAAC;EAC/C;AACJ;AAEA,OAAO,MAAML,oBAAoB,GAAGH,oBAAoB,CAAC;EACrDS,WAAW,EAAEL,mBAAmB;EAChCM,cAAc,EAAEL,wBAAwB;EACxCM,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
@@ -10,6 +10,7 @@ export declare class FieldDefinitionsBuilder<TFields extends z.ZodRawShape = {}>
10
10
  __fromObject<TShape extends Record<string, FieldBuilder<any>>>(shape: TShape): FieldDefinitionsBuilder<{
11
11
  [K in keyof TShape]: ReturnType<TShape[K]["getZodSchema"]>;
12
12
  }>;
13
+ private registerField;
13
14
  __toZodSchema(): z.ZodObject<TFields>;
14
15
  __getFields(): FieldConfig[];
15
16
  __getFieldsMap(): Map<string, FieldBuilderConfig>;
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- // eslint-disable-next-line
2
+ // oxlint-disable-next-line
3
3
  export class FieldDefinitionsBuilder {
4
4
  fields = new Map();
5
5
  constructor(registry) {
@@ -8,30 +8,28 @@ export class FieldDefinitionsBuilder {
8
8
 
9
9
  // Keep the old .field() method for internal use
10
10
  field(name, configure) {
11
- const fieldBuilder = configure(this.registry);
12
- const config = fieldBuilder.toConfig();
13
- config.fieldId = name;
14
- this.fields.set(name, {
15
- fieldId: name,
16
- config,
17
- zodSchema: fieldBuilder.getZodSchema()
18
- });
11
+ this.registerField(name, configure(this.registry));
12
+ // @ts-expect-error
19
13
  return this;
20
14
  }
21
15
 
22
16
  // Internal method to build from object
23
17
  __fromObject(shape) {
24
18
  for (const [fieldId, fieldBuilder] of Object.entries(shape)) {
25
- const config = fieldBuilder.toConfig();
26
- config.fieldId = fieldId;
27
- this.fields.set(fieldId, {
28
- fieldId,
29
- config,
30
- zodSchema: fieldBuilder.getZodSchema()
31
- });
19
+ this.registerField(fieldId, fieldBuilder);
32
20
  }
21
+ // @ts-expect-error
33
22
  return this;
34
23
  }
24
+ registerField(fieldId, fieldBuilder) {
25
+ const config = fieldBuilder.toConfig();
26
+ config.fieldId = fieldId;
27
+ this.fields.set(fieldId, {
28
+ fieldId,
29
+ config,
30
+ zodSchema: fieldBuilder.getZodSchema()
31
+ });
32
+ }
35
33
  __toZodSchema() {
36
34
  const schemaShape = {};
37
35
  for (const [fieldId, {
@@ -58,6 +56,6 @@ export function createFieldDefinitions(factory) {
58
56
  }
59
57
 
60
58
  // TODO: check the unused generic
61
- // eslint-disable-next-line
59
+ // oxlint-disable-next-line
62
60
 
63
61
  //# sourceMappingURL=FieldDefinitionsBuilder.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["z","FieldDefinitionsBuilder","fields","Map","constructor","registry","field","name","configure","fieldBuilder","config","toConfig","fieldId","set","zodSchema","getZodSchema","__fromObject","shape","Object","entries","__toZodSchema","schemaShape","object","__getFields","Array","from","values","map","f","__getFieldsMap","createFieldDefinitions","factory","__type"],"sources":["FieldDefinitionsBuilder.ts"],"sourcesContent":["import { z } from \"zod\";\nimport type { FieldBuilder } from \"./FieldBuilder.js\";\nimport type { IFieldBuilderRegistry } from \"./abstractions.js\";\nimport type { FieldConfig, FieldBuilderConfig } from \"./types.js\";\n\n// eslint-disable-next-line\nexport class FieldDefinitionsBuilder<TFields extends z.ZodRawShape = {}> {\n private fields = new Map<string, FieldBuilderConfig>();\n\n constructor(private registry: IFieldBuilderRegistry) {}\n\n // Keep the old .field() method for internal use\n field<K extends string, TZod extends z.ZodTypeAny>(\n name: K,\n configure: (field: IFieldBuilderRegistry) => FieldBuilder<TZod>\n ): FieldDefinitionsBuilder<TFields & Record<K, TZod>> {\n const fieldBuilder = configure(this.registry);\n const config = fieldBuilder.toConfig();\n config.fieldId = name;\n\n this.fields.set(name, {\n fieldId: name,\n config,\n zodSchema: fieldBuilder.getZodSchema()\n });\n\n return this as any;\n }\n\n // Internal method to build from object\n __fromObject<TShape extends Record<string, FieldBuilder<any>>>(\n shape: TShape\n ): FieldDefinitionsBuilder<{ [K in keyof TShape]: ReturnType<TShape[K][\"getZodSchema\"]> }> {\n for (const [fieldId, fieldBuilder] of Object.entries(shape)) {\n const config = fieldBuilder.toConfig();\n config.fieldId = fieldId;\n\n this.fields.set(fieldId, {\n fieldId,\n config,\n zodSchema: fieldBuilder.getZodSchema()\n });\n }\n\n return this as any;\n }\n\n __toZodSchema(): z.ZodObject<TFields> {\n const schemaShape = {} as TFields;\n\n for (const [fieldId, { zodSchema }] of this.fields) {\n schemaShape[fieldId as keyof TFields] = zodSchema as TFields[keyof TFields];\n }\n\n return z.object(schemaShape);\n }\n\n __getFields(): FieldConfig[] {\n return Array.from(this.fields.values()).map(f => f.config);\n }\n\n __getFieldsMap(): Map<string, FieldBuilderConfig> {\n return new Map(this.fields);\n }\n}\n\n// Updated factory function - now takes an object!\nexport function createFieldDefinitions<TShape extends Record<string, FieldBuilder<any>>>(\n factory: (fields: IFieldBuilderRegistry) => TShape\n): FieldDefinitionsFactory<{ [K in keyof TShape]: ReturnType<TShape[K][\"getZodSchema\"]> }> {\n return {\n __type: \"FieldDefinitionsFactory\" as const,\n factory\n };\n}\n\n// TODO: check the unused generic\n// eslint-disable-next-line\nexport interface FieldDefinitionsFactory<TFields extends z.ZodRawShape> {\n __type: \"FieldDefinitionsFactory\";\n factory: (fields: IFieldBuilderRegistry) => Record<string, FieldBuilder<any>>;\n}\n\nexport type InferFieldSchema<T> =\n T extends FieldDefinitionsFactory<infer TFields> ? z.ZodObject<TFields> : never;\n"],"mappings":"AAAA,SAASA,CAAC,QAAQ,KAAK;AAKvB;AACA,OAAO,MAAMC,uBAAuB,CAAqC;EAC7DC,MAAM,GAAG,IAAIC,GAAG,CAA6B,CAAC;EAEtDC,WAAWA,CAASC,QAA+B,EAAE;IAAA,KAAjCA,QAA+B,GAA/BA,QAA+B;EAAG;;EAEtD;EACAC,KAAKA,CACDC,IAAO,EACPC,SAA+D,EACb;IAClD,MAAMC,YAAY,GAAGD,SAAS,CAAC,IAAI,CAACH,QAAQ,CAAC;IAC7C,MAAMK,MAAM,GAAGD,YAAY,CAACE,QAAQ,CAAC,CAAC;IACtCD,MAAM,CAACE,OAAO,GAAGL,IAAI;IAErB,IAAI,CAACL,MAAM,CAACW,GAAG,CAACN,IAAI,EAAE;MAClBK,OAAO,EAAEL,IAAI;MACbG,MAAM;MACNI,SAAS,EAAEL,YAAY,CAACM,YAAY,CAAC;IACzC,CAAC,CAAC;IAEF,OAAO,IAAI;EACf;;EAEA;EACAC,YAAYA,CACRC,KAAa,EAC0E;IACvF,KAAK,MAAM,CAACL,OAAO,EAAEH,YAAY,CAAC,IAAIS,MAAM,CAACC,OAAO,CAACF,KAAK,CAAC,EAAE;MACzD,MAAMP,MAAM,GAAGD,YAAY,CAACE,QAAQ,CAAC,CAAC;MACtCD,MAAM,CAACE,OAAO,GAAGA,OAAO;MAExB,IAAI,CAACV,MAAM,CAACW,GAAG,CAACD,OAAO,EAAE;QACrBA,OAAO;QACPF,MAAM;QACNI,SAAS,EAAEL,YAAY,CAACM,YAAY,CAAC;MACzC,CAAC,CAAC;IACN;IAEA,OAAO,IAAI;EACf;EAEAK,aAAaA,CAAA,EAAyB;IAClC,MAAMC,WAAW,GAAG,CAAC,CAAY;IAEjC,KAAK,MAAM,CAACT,OAAO,EAAE;MAAEE;IAAU,CAAC,CAAC,IAAI,IAAI,CAACZ,MAAM,EAAE;MAChDmB,WAAW,CAACT,OAAO,CAAkB,GAAGE,SAAmC;IAC/E;IAEA,OAAOd,CAAC,CAACsB,MAAM,CAACD,WAAW,CAAC;EAChC;EAEAE,WAAWA,CAAA,EAAkB;IACzB,OAAOC,KAAK,CAACC,IAAI,CAAC,IAAI,CAACvB,MAAM,CAACwB,MAAM,CAAC,CAAC,CAAC,CAACC,GAAG,CAACC,CAAC,IAAIA,CAAC,CAAClB,MAAM,CAAC;EAC9D;EAEAmB,cAAcA,CAAA,EAAoC;IAC9C,OAAO,IAAI1B,GAAG,CAAC,IAAI,CAACD,MAAM,CAAC;EAC/B;AACJ;;AAEA;AACA,OAAO,SAAS4B,sBAAsBA,CAClCC,OAAkD,EACqC;EACvF,OAAO;IACHC,MAAM,EAAE,yBAAkC;IAC1CD;EACJ,CAAC;AACL;;AAEA;AACA","ignoreList":[]}
1
+ {"version":3,"names":["z","FieldDefinitionsBuilder","fields","Map","constructor","registry","field","name","configure","registerField","__fromObject","shape","fieldId","fieldBuilder","Object","entries","config","toConfig","set","zodSchema","getZodSchema","__toZodSchema","schemaShape","object","__getFields","Array","from","values","map","f","__getFieldsMap","createFieldDefinitions","factory","__type"],"sources":["FieldDefinitionsBuilder.ts"],"sourcesContent":["import { z } from \"zod\";\nimport type { FieldBuilder } from \"./FieldBuilder.js\";\nimport type { IFieldBuilderRegistry } from \"./abstractions.js\";\nimport type { FieldConfig, FieldBuilderConfig } from \"./types.js\";\n\n// oxlint-disable-next-line\nexport class FieldDefinitionsBuilder<TFields extends z.ZodRawShape = {}> {\n private fields = new Map<string, FieldBuilderConfig>();\n\n constructor(private registry: IFieldBuilderRegistry) {}\n\n // Keep the old .field() method for internal use\n field<K extends string, TZod extends z.ZodTypeAny>(\n name: K,\n configure: (field: IFieldBuilderRegistry) => FieldBuilder<TZod>\n ): FieldDefinitionsBuilder<TFields & Record<K, TZod>> {\n this.registerField(name, configure(this.registry));\n // @ts-expect-error\n return this;\n }\n\n // Internal method to build from object\n __fromObject<TShape extends Record<string, FieldBuilder<any>>>(\n shape: TShape\n ): FieldDefinitionsBuilder<{ [K in keyof TShape]: ReturnType<TShape[K][\"getZodSchema\"]> }> {\n for (const [fieldId, fieldBuilder] of Object.entries(shape)) {\n this.registerField(fieldId, fieldBuilder);\n }\n // @ts-expect-error\n return this;\n }\n\n private registerField(fieldId: string, fieldBuilder: FieldBuilder<any>): void {\n const config = fieldBuilder.toConfig();\n config.fieldId = fieldId;\n this.fields.set(fieldId, { fieldId, config, zodSchema: fieldBuilder.getZodSchema() });\n }\n\n __toZodSchema(): z.ZodObject<TFields> {\n const schemaShape = {} as TFields;\n\n for (const [fieldId, { zodSchema }] of this.fields) {\n schemaShape[fieldId as keyof TFields] = zodSchema as unknown as TFields[keyof TFields];\n }\n\n return z.object(schemaShape);\n }\n\n __getFields(): FieldConfig[] {\n return Array.from(this.fields.values()).map(f => f.config);\n }\n\n __getFieldsMap(): Map<string, FieldBuilderConfig> {\n return new Map(this.fields);\n }\n}\n\n// Updated factory function - now takes an object!\nexport function createFieldDefinitions<TShape extends Record<string, FieldBuilder<any>>>(\n factory: (fields: IFieldBuilderRegistry) => TShape\n): FieldDefinitionsFactory<{ [K in keyof TShape]: ReturnType<TShape[K][\"getZodSchema\"]> }> {\n return {\n __type: \"FieldDefinitionsFactory\" as const,\n factory\n };\n}\n\n// TODO: check the unused generic\n// oxlint-disable-next-line\nexport interface FieldDefinitionsFactory<TFields extends z.ZodRawShape> {\n __type: \"FieldDefinitionsFactory\";\n factory: (fields: IFieldBuilderRegistry) => Record<string, FieldBuilder<any>>;\n}\n\nexport type InferFieldSchema<T> =\n T extends FieldDefinitionsFactory<infer TFields> ? z.ZodObject<TFields> : never;\n"],"mappings":"AAAA,SAASA,CAAC,QAAQ,KAAK;AAKvB;AACA,OAAO,MAAMC,uBAAuB,CAAqC;EAC7DC,MAAM,GAAG,IAAIC,GAAG,CAA6B,CAAC;EAEtDC,WAAWA,CAASC,QAA+B,EAAE;IAAA,KAAjCA,QAA+B,GAA/BA,QAA+B;EAAG;;EAEtD;EACAC,KAAKA,CACDC,IAAO,EACPC,SAA+D,EACb;IAClD,IAAI,CAACC,aAAa,CAACF,IAAI,EAAEC,SAAS,CAAC,IAAI,CAACH,QAAQ,CAAC,CAAC;IAClD;IACA,OAAO,IAAI;EACf;;EAEA;EACAK,YAAYA,CACRC,KAAa,EAC0E;IACvF,KAAK,MAAM,CAACC,OAAO,EAAEC,YAAY,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACJ,KAAK,CAAC,EAAE;MACzD,IAAI,CAACF,aAAa,CAACG,OAAO,EAAEC,YAAY,CAAC;IAC7C;IACA;IACA,OAAO,IAAI;EACf;EAEQJ,aAAaA,CAACG,OAAe,EAAEC,YAA+B,EAAQ;IAC1E,MAAMG,MAAM,GAAGH,YAAY,CAACI,QAAQ,CAAC,CAAC;IACtCD,MAAM,CAACJ,OAAO,GAAGA,OAAO;IACxB,IAAI,CAACV,MAAM,CAACgB,GAAG,CAACN,OAAO,EAAE;MAAEA,OAAO;MAAEI,MAAM;MAAEG,SAAS,EAAEN,YAAY,CAACO,YAAY,CAAC;IAAE,CAAC,CAAC;EACzF;EAEAC,aAAaA,CAAA,EAAyB;IAClC,MAAMC,WAAW,GAAG,CAAC,CAAY;IAEjC,KAAK,MAAM,CAACV,OAAO,EAAE;MAAEO;IAAU,CAAC,CAAC,IAAI,IAAI,CAACjB,MAAM,EAAE;MAChDoB,WAAW,CAACV,OAAO,CAAkB,GAAGO,SAA8C;IAC1F;IAEA,OAAOnB,CAAC,CAACuB,MAAM,CAACD,WAAW,CAAC;EAChC;EAEAE,WAAWA,CAAA,EAAkB;IACzB,OAAOC,KAAK,CAACC,IAAI,CAAC,IAAI,CAACxB,MAAM,CAACyB,MAAM,CAAC,CAAC,CAAC,CAACC,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACb,MAAM,CAAC;EAC9D;EAEAc,cAAcA,CAAA,EAAoC;IAC9C,OAAO,IAAI3B,GAAG,CAAC,IAAI,CAACD,MAAM,CAAC;EAC/B;AACJ;;AAEA;AACA,OAAO,SAAS6B,sBAAsBA,CAClCC,OAAkD,EACqC;EACvF,OAAO;IACHC,MAAM,EAAE,yBAAkC;IAC1CD;EACJ,CAAC;AACL;;AAEA;AACA","ignoreList":[]}
@@ -19,7 +19,7 @@ class PrivateCmsModelBuilderImpl {
19
19
  }
20
20
  class PrivateCmsModelConfiguration {
21
21
  metadata = {};
22
- // eslint-disable-next-line
22
+ // oxlint-disable-next-line
23
23
  modelMethods = {};
24
24
  extensionFields = new Map();
25
25
  constructor(modelId, fieldBuilderRegistry, fieldDefinitionsBuilder) {