@rakun-kit/core 1.1.1 → 1.2.0

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 (387) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/bootstrapState.js.map +1 -1
  3. package/dist/cjs/client.js +3 -2
  4. package/dist/cjs/client.js.map +1 -1
  5. package/dist/cjs/index.js +0 -14
  6. package/dist/cjs/index.js.map +1 -1
  7. package/dist/cjs/lib/ContentType.js +106 -74
  8. package/dist/cjs/lib/ContentType.js.map +1 -1
  9. package/dist/cjs/lib/Logger.js +56 -0
  10. package/dist/cjs/lib/Logger.js.map +1 -1
  11. package/dist/cjs/lib/Registry.js +35 -22
  12. package/dist/cjs/lib/Registry.js.map +1 -1
  13. package/dist/cjs/lib/fields/Boolean.js +14 -9
  14. package/dist/cjs/lib/fields/Boolean.js.map +1 -1
  15. package/dist/cjs/lib/fields/ContentReference.js +29 -17
  16. package/dist/cjs/lib/fields/ContentReference.js.map +1 -1
  17. package/dist/cjs/lib/fields/Date.js +26 -22
  18. package/dist/cjs/lib/fields/Date.js.map +1 -1
  19. package/dist/cjs/lib/fields/Field.js +79 -59
  20. package/dist/cjs/lib/fields/Field.js.map +1 -1
  21. package/dist/cjs/lib/fields/Fields.js +32 -0
  22. package/dist/cjs/lib/fields/Fields.js.map +1 -0
  23. package/dist/cjs/lib/fields/File.js +60 -85
  24. package/dist/cjs/lib/fields/File.js.map +1 -1
  25. package/dist/cjs/lib/fields/Iterator.js +8 -10
  26. package/dist/cjs/lib/fields/Iterator.js.map +1 -1
  27. package/dist/cjs/lib/fields/Link.js +20 -15
  28. package/dist/cjs/lib/fields/Link.js.map +1 -1
  29. package/dist/cjs/lib/fields/List.js +47 -16
  30. package/dist/cjs/lib/fields/List.js.map +1 -1
  31. package/dist/cjs/lib/fields/Number.js +35 -17
  32. package/dist/cjs/lib/fields/Number.js.map +1 -1
  33. package/dist/cjs/lib/fields/Relation.js +73 -66
  34. package/dist/cjs/lib/fields/Relation.js.map +1 -1
  35. package/dist/cjs/lib/fields/Select.js +28 -17
  36. package/dist/cjs/lib/fields/Select.js.map +1 -1
  37. package/dist/cjs/lib/fields/SelfRelation.js +30 -21
  38. package/dist/cjs/lib/fields/SelfRelation.js.map +1 -1
  39. package/dist/cjs/lib/fields/SimpleList.js +38 -21
  40. package/dist/cjs/lib/fields/SimpleList.js.map +1 -1
  41. package/dist/cjs/lib/fields/String.js +54 -40
  42. package/dist/cjs/lib/fields/String.js.map +1 -1
  43. package/dist/cjs/lib/fields/index.js +29 -37
  44. package/dist/cjs/lib/fields/index.js.map +1 -1
  45. package/dist/cjs/orm/operations/findDependencies.js +4 -2
  46. package/dist/cjs/orm/operations/findDependencies.js.map +1 -1
  47. package/dist/esm/api/context.d.ts +1 -1
  48. package/dist/esm/api/context.js +2 -2
  49. package/dist/esm/api/operations/custom.d.ts +1 -1
  50. package/dist/esm/api/operations/custom.js +1 -1
  51. package/dist/esm/api/operations/index.d.ts +56 -57
  52. package/dist/esm/api/operations/index.d.ts.map +1 -1
  53. package/dist/esm/api/operations/index.js +7 -7
  54. package/dist/esm/api/operations/manager-contract.d.ts +37 -36
  55. package/dist/esm/api/operations/manager-contract.d.ts.map +1 -1
  56. package/dist/esm/api/operations/manager-contract.js +4 -4
  57. package/dist/esm/api/operations/manager.d.ts +38 -37
  58. package/dist/esm/api/operations/manager.d.ts.map +1 -1
  59. package/dist/esm/api/operations/manager.js +35 -35
  60. package/dist/esm/api/operations/types.d.ts +1 -1
  61. package/dist/esm/api/operations/web-contract.d.ts +11 -13
  62. package/dist/esm/api/operations/web-contract.d.ts.map +1 -1
  63. package/dist/esm/api/operations/web-contract.js +3 -3
  64. package/dist/esm/api/operations/web.d.ts +12 -14
  65. package/dist/esm/api/operations/web.d.ts.map +1 -1
  66. package/dist/esm/api/operations/web.js +5 -5
  67. package/dist/esm/api/proxies/context.d.ts +2 -2
  68. package/dist/esm/api/proxies/index.d.ts +9 -5
  69. package/dist/esm/api/proxies/index.d.ts.map +1 -1
  70. package/dist/esm/api/proxies/index.js +1 -1
  71. package/dist/esm/api/routes/manager/auth/accountInfo.d.ts +2 -2
  72. package/dist/esm/api/routes/manager/auth/accountInfo.js +3 -3
  73. package/dist/esm/api/routes/manager/auth/deleteSession.d.ts +2 -2
  74. package/dist/esm/api/routes/manager/auth/deleteSession.js +3 -3
  75. package/dist/esm/api/routes/manager/auth/login.d.ts +1 -1
  76. package/dist/esm/api/routes/manager/auth/login.js +4 -4
  77. package/dist/esm/api/routes/manager/auth/logout.d.ts +1 -1
  78. package/dist/esm/api/routes/manager/auth/logout.js +3 -3
  79. package/dist/esm/api/routes/manager/auth/totp/confirmTotp.d.ts +2 -2
  80. package/dist/esm/api/routes/manager/auth/totp/confirmTotp.js +2 -2
  81. package/dist/esm/api/routes/manager/auth/totp/enrollTotp.d.ts +1 -1
  82. package/dist/esm/api/routes/manager/auth/totp/enrollTotp.js +3 -3
  83. package/dist/esm/api/routes/manager/auth/totp/verifyTotp.d.ts +1 -1
  84. package/dist/esm/api/routes/manager/auth/totp/verifyTotp.js +3 -3
  85. package/dist/esm/api/routes/manager/auth/updatePassword.d.ts +2 -2
  86. package/dist/esm/api/routes/manager/auth/updatePassword.js +3 -3
  87. package/dist/esm/api/routes/manager/auth/webauthn/webauthnAuthOptions.js +4 -4
  88. package/dist/esm/api/routes/manager/auth/webauthn/webauthnAuthVerify.js +4 -4
  89. package/dist/esm/api/routes/manager/auth/webauthn/webauthnRegisterOptions.d.ts +2 -2
  90. package/dist/esm/api/routes/manager/auth/webauthn/webauthnRegisterOptions.js +3 -3
  91. package/dist/esm/api/routes/manager/auth/webauthn/webauthnRegisterVerify.d.ts +1 -1
  92. package/dist/esm/api/routes/manager/auth/webauthn/webauthnRegisterVerify.js +4 -4
  93. package/dist/esm/api/routes/manager/create.d.ts +2 -2
  94. package/dist/esm/api/routes/manager/create.js +8 -8
  95. package/dist/esm/api/routes/manager/delete.d.ts +2 -2
  96. package/dist/esm/api/routes/manager/delete.js +8 -8
  97. package/dist/esm/api/routes/manager/get.d.ts +2 -2
  98. package/dist/esm/api/routes/manager/get.js +6 -6
  99. package/dist/esm/api/routes/manager/list.d.ts +2 -2
  100. package/dist/esm/api/routes/manager/list.js +8 -8
  101. package/dist/esm/api/routes/manager/literals/list.d.ts +2 -2
  102. package/dist/esm/api/routes/manager/literals/list.js +5 -5
  103. package/dist/esm/api/routes/manager/literals/upsert.d.ts +2 -2
  104. package/dist/esm/api/routes/manager/literals/upsert.js +6 -6
  105. package/dist/esm/api/routes/manager/media/createFolder.d.ts +2 -2
  106. package/dist/esm/api/routes/manager/media/createFolder.js +7 -7
  107. package/dist/esm/api/routes/manager/media/finalizeUpload.d.ts +2 -2
  108. package/dist/esm/api/routes/manager/media/finalizeUpload.js +9 -9
  109. package/dist/esm/api/routes/manager/media/getMediaUrl.d.ts +2 -2
  110. package/dist/esm/api/routes/manager/media/getMediaUrl.js +3 -3
  111. package/dist/esm/api/routes/manager/media/listFolders.d.ts +2 -2
  112. package/dist/esm/api/routes/manager/media/listFolders.js +4 -4
  113. package/dist/esm/api/routes/manager/media/prepareUpload.d.ts +2 -2
  114. package/dist/esm/api/routes/manager/media/prepareUpload.js +4 -4
  115. package/dist/esm/api/routes/manager/media/uploadBinary.d.ts +1 -1
  116. package/dist/esm/api/routes/manager/media/uploadBinary.js +6 -6
  117. package/dist/esm/api/routes/manager/setDefaultLanguage.d.ts +2 -2
  118. package/dist/esm/api/routes/manager/setDefaultLanguage.js +4 -4
  119. package/dist/esm/api/routes/manager/update.d.ts +2 -2
  120. package/dist/esm/api/routes/manager/update.js +8 -8
  121. package/dist/esm/api/routes/web/page.d.ts +1 -1
  122. package/dist/esm/api/routes/web/page.js +13 -13
  123. package/dist/esm/api/sessionCookie.d.ts +1 -1
  124. package/dist/esm/api/utils/checkFailureCase.d.ts +1 -1
  125. package/dist/esm/api/utils/checkFailureCase.js +1 -1
  126. package/dist/esm/api/utils/checkOwnership.d.ts +2 -2
  127. package/dist/esm/api/utils/checkOwnership.js +3 -3
  128. package/dist/esm/api/utils/checkPermissions.d.ts +2 -2
  129. package/dist/esm/api/utils/checkPermissions.js +2 -2
  130. package/dist/esm/api/utils/getLanguages.d.ts +2 -6
  131. package/dist/esm/api/utils/getLanguages.d.ts.map +1 -1
  132. package/dist/esm/api/utils/getLanguages.js +2 -2
  133. package/dist/esm/api/utils/getLink.d.ts +2 -2
  134. package/dist/esm/api/utils/getLink.js +4 -4
  135. package/dist/esm/api/utils/getUser.d.ts +7 -3
  136. package/dist/esm/api/utils/getUser.d.ts.map +1 -1
  137. package/dist/esm/api/utils/getUser.js +4 -4
  138. package/dist/esm/api/utils/parseId.d.ts +1 -1
  139. package/dist/esm/api/utils/parseId.js +1 -1
  140. package/dist/esm/api/utils/passwords.js +1 -1
  141. package/dist/esm/api/utils/populates/populateLinks.d.ts +2 -2
  142. package/dist/esm/api/utils/populates/populateLinks.js +4 -4
  143. package/dist/esm/api/utils/populates/populateRelations.d.ts +2 -2
  144. package/dist/esm/api/utils/populates/populateRelations.js +6 -6
  145. package/dist/esm/api/utils/redirects/resolveRedirect.js +2 -2
  146. package/dist/esm/api/utils/routes/revalidatePath.js +5 -5
  147. package/dist/esm/api/utils/routes/routeDefinitions.d.ts +1 -1
  148. package/dist/esm/api/utils/routes/routeMapHelpers.d.ts +3 -3
  149. package/dist/esm/api/utils/routes/routeMapHelpers.js +6 -6
  150. package/dist/esm/api/utils/routes/syncConfiguredRoutes.d.ts +2 -2
  151. package/dist/esm/api/utils/routes/syncConfiguredRoutes.js +5 -5
  152. package/dist/esm/api/utils/routes/updateRoutesMap.d.ts +2 -2
  153. package/dist/esm/api/utils/routes/updateRoutesMap.js +4 -4
  154. package/dist/esm/api/utils/transformObjectIdsToStrings.js +1 -1
  155. package/dist/esm/api/utils/transformStringToObjectIds.js +1 -1
  156. package/dist/esm/api/utils/translate.d.ts +1 -1
  157. package/dist/esm/api/utils/translate.js +3 -3
  158. package/dist/esm/api/utils/validateModule.d.ts +1 -1
  159. package/dist/esm/api/utils/validateModule.js +2 -2
  160. package/dist/esm/bootstrapState.d.ts +11 -10
  161. package/dist/esm/bootstrapState.d.ts.map +1 -1
  162. package/dist/esm/bootstrapState.js.map +1 -1
  163. package/dist/esm/client.d.ts +34 -34
  164. package/dist/esm/client.d.ts.map +1 -1
  165. package/dist/esm/client.js +25 -25
  166. package/dist/esm/client.js.map +1 -1
  167. package/dist/esm/contracts.d.ts +26 -26
  168. package/dist/esm/contracts.js +26 -26
  169. package/dist/esm/index.d.ts +29 -43
  170. package/dist/esm/index.d.ts.map +1 -1
  171. package/dist/esm/index.js +25 -39
  172. package/dist/esm/index.js.map +1 -1
  173. package/dist/esm/internal-content-types/HelloWorld.d.ts +55 -3
  174. package/dist/esm/internal-content-types/HelloWorld.d.ts.map +1 -1
  175. package/dist/esm/internal-content-types/HelloWorld.js +2 -2
  176. package/dist/esm/internal-content-types/Language.d.ts +70 -6
  177. package/dist/esm/internal-content-types/Language.d.ts.map +1 -1
  178. package/dist/esm/internal-content-types/Language.js +2 -2
  179. package/dist/esm/internal-content-types/LiteralTranslation.d.ts +109 -5
  180. package/dist/esm/internal-content-types/LiteralTranslation.d.ts.map +1 -1
  181. package/dist/esm/internal-content-types/LiteralTranslation.js +2 -2
  182. package/dist/esm/internal-content-types/ManagerRole.d.ts +56 -4
  183. package/dist/esm/internal-content-types/ManagerRole.d.ts.map +1 -1
  184. package/dist/esm/internal-content-types/ManagerRole.js +3 -3
  185. package/dist/esm/internal-content-types/ManagerUser.d.ts +350 -21
  186. package/dist/esm/internal-content-types/ManagerUser.d.ts.map +1 -1
  187. package/dist/esm/internal-content-types/ManagerUser.js +3 -3
  188. package/dist/esm/internal-content-types/Media.d.ts +472 -55
  189. package/dist/esm/internal-content-types/Media.d.ts.map +1 -1
  190. package/dist/esm/internal-content-types/Media.js +3 -3
  191. package/dist/esm/internal-content-types/MediaFolder.d.ts +163 -7
  192. package/dist/esm/internal-content-types/MediaFolder.d.ts.map +1 -1
  193. package/dist/esm/internal-content-types/MediaFolder.js +2 -2
  194. package/dist/esm/internal-content-types/MfaChallenge.d.ts +963 -55
  195. package/dist/esm/internal-content-types/MfaChallenge.d.ts.map +1 -1
  196. package/dist/esm/internal-content-types/MfaChallenge.js +3 -3
  197. package/dist/esm/internal-content-types/Page.d.ts +243 -27
  198. package/dist/esm/internal-content-types/Page.d.ts.map +1 -1
  199. package/dist/esm/internal-content-types/Page.js +3 -3
  200. package/dist/esm/internal-content-types/Redirect.d.ts +272 -14
  201. package/dist/esm/internal-content-types/Redirect.d.ts.map +1 -1
  202. package/dist/esm/internal-content-types/Redirect.js +2 -2
  203. package/dist/esm/internal-content-types/Route.d.ts +282 -11
  204. package/dist/esm/internal-content-types/Route.d.ts.map +1 -1
  205. package/dist/esm/internal-content-types/Route.js +2 -2
  206. package/dist/esm/internal-content-types/RouteLayoutModule.d.ts +308 -9
  207. package/dist/esm/internal-content-types/RouteLayoutModule.d.ts.map +1 -1
  208. package/dist/esm/internal-content-types/RouteLayoutModule.js +2 -2
  209. package/dist/esm/internal-content-types/RouteLayoutModuleOverride.d.ts +268 -8
  210. package/dist/esm/internal-content-types/RouteLayoutModuleOverride.d.ts.map +1 -1
  211. package/dist/esm/internal-content-types/RouteLayoutModuleOverride.js +2 -2
  212. package/dist/esm/internal-content-types/RouteMap.d.ts +267 -7
  213. package/dist/esm/internal-content-types/RouteMap.d.ts.map +1 -1
  214. package/dist/esm/internal-content-types/RouteMap.js +2 -2
  215. package/dist/esm/internal-content-types/RouteSettings.d.ts +299 -79
  216. package/dist/esm/internal-content-types/RouteSettings.d.ts.map +1 -1
  217. package/dist/esm/internal-content-types/RouteSettings.js +3 -3
  218. package/dist/esm/internal-content-types/Seo.d.ts +56 -4
  219. package/dist/esm/internal-content-types/Seo.d.ts.map +1 -1
  220. package/dist/esm/internal-content-types/Seo.js +2 -2
  221. package/dist/esm/internal-content-types/Session.d.ts +894 -51
  222. package/dist/esm/internal-content-types/Session.d.ts.map +1 -1
  223. package/dist/esm/internal-content-types/Session.js +3 -3
  224. package/dist/esm/internal-content-types/UserMfa.d.ts +831 -54
  225. package/dist/esm/internal-content-types/UserMfa.d.ts.map +1 -1
  226. package/dist/esm/internal-content-types/UserMfa.js +3 -3
  227. package/dist/esm/internal-content-types/WebAuthnCredential.d.ts +1066 -54
  228. package/dist/esm/internal-content-types/WebAuthnCredential.d.ts.map +1 -1
  229. package/dist/esm/internal-content-types/WebAuthnCredential.js +3 -3
  230. package/dist/esm/internal-content-types/WebAuthnRegChallenge.d.ts +948 -53
  231. package/dist/esm/internal-content-types/WebAuthnRegChallenge.d.ts.map +1 -1
  232. package/dist/esm/internal-content-types/WebAuthnRegChallenge.js +3 -3
  233. package/dist/esm/internal-content-types/index.d.ts +20 -20
  234. package/dist/esm/internal-content-types/index.js +20 -20
  235. package/dist/esm/lib/ContentType.d.ts +87 -49
  236. package/dist/esm/lib/ContentType.d.ts.map +1 -1
  237. package/dist/esm/lib/ContentType.js +94 -65
  238. package/dist/esm/lib/ContentType.js.map +1 -1
  239. package/dist/esm/lib/Logger.d.ts.map +1 -1
  240. package/dist/esm/lib/Logger.js +56 -0
  241. package/dist/esm/lib/Logger.js.map +1 -1
  242. package/dist/esm/lib/Permissions.d.ts +1 -1
  243. package/dist/esm/lib/Registry.d.ts +29 -7
  244. package/dist/esm/lib/Registry.d.ts.map +1 -1
  245. package/dist/esm/lib/Registry.js +35 -22
  246. package/dist/esm/lib/Registry.js.map +1 -1
  247. package/dist/esm/lib/errors/AppError.d.ts +1 -1
  248. package/dist/esm/lib/errors/AppError.js +1 -1
  249. package/dist/esm/lib/errors/index.d.ts +4 -4
  250. package/dist/esm/lib/errors/index.js +3 -3
  251. package/dist/esm/lib/errors/throwAppError.d.ts +1 -1
  252. package/dist/esm/lib/errors/throwAppError.js +3 -3
  253. package/dist/esm/lib/fields/Boolean.d.ts +8 -10
  254. package/dist/esm/lib/fields/Boolean.d.ts.map +1 -1
  255. package/dist/esm/lib/fields/Boolean.js +14 -8
  256. package/dist/esm/lib/fields/Boolean.js.map +1 -1
  257. package/dist/esm/lib/fields/ContentReference.d.ts +15 -15
  258. package/dist/esm/lib/fields/ContentReference.d.ts.map +1 -1
  259. package/dist/esm/lib/fields/ContentReference.js +30 -17
  260. package/dist/esm/lib/fields/ContentReference.js.map +1 -1
  261. package/dist/esm/lib/fields/Date.d.ts +14 -17
  262. package/dist/esm/lib/fields/Date.d.ts.map +1 -1
  263. package/dist/esm/lib/fields/Date.js +25 -21
  264. package/dist/esm/lib/fields/Date.js.map +1 -1
  265. package/dist/esm/lib/fields/Field.d.ts +122 -59
  266. package/dist/esm/lib/fields/Field.d.ts.map +1 -1
  267. package/dist/esm/lib/fields/Field.js +70 -55
  268. package/dist/esm/lib/fields/Field.js.map +1 -1
  269. package/dist/esm/lib/fields/Fields.d.ts +29 -0
  270. package/dist/esm/lib/fields/Fields.d.ts.map +1 -0
  271. package/dist/esm/lib/fields/Fields.js +29 -0
  272. package/dist/esm/lib/fields/Fields.js.map +1 -0
  273. package/dist/esm/lib/fields/File.d.ts +26 -51
  274. package/dist/esm/lib/fields/File.d.ts.map +1 -1
  275. package/dist/esm/lib/fields/File.js +60 -85
  276. package/dist/esm/lib/fields/File.js.map +1 -1
  277. package/dist/esm/lib/fields/Iterator.d.ts +13 -25
  278. package/dist/esm/lib/fields/Iterator.d.ts.map +1 -1
  279. package/dist/esm/lib/fields/Iterator.js +9 -10
  280. package/dist/esm/lib/fields/Iterator.js.map +1 -1
  281. package/dist/esm/lib/fields/Link.d.ts +13 -15
  282. package/dist/esm/lib/fields/Link.d.ts.map +1 -1
  283. package/dist/esm/lib/fields/Link.js +21 -15
  284. package/dist/esm/lib/fields/Link.js.map +1 -1
  285. package/dist/esm/lib/fields/List.d.ts +34 -34
  286. package/dist/esm/lib/fields/List.d.ts.map +1 -1
  287. package/dist/esm/lib/fields/List.js +46 -15
  288. package/dist/esm/lib/fields/List.js.map +1 -1
  289. package/dist/esm/lib/fields/Number.d.ts +12 -12
  290. package/dist/esm/lib/fields/Number.d.ts.map +1 -1
  291. package/dist/esm/lib/fields/Number.js +35 -16
  292. package/dist/esm/lib/fields/Number.js.map +1 -1
  293. package/dist/esm/lib/fields/Relation.d.ts +45 -39
  294. package/dist/esm/lib/fields/Relation.d.ts.map +1 -1
  295. package/dist/esm/lib/fields/Relation.js +75 -67
  296. package/dist/esm/lib/fields/Relation.js.map +1 -1
  297. package/dist/esm/lib/fields/Select.d.ts +14 -13
  298. package/dist/esm/lib/fields/Select.d.ts.map +1 -1
  299. package/dist/esm/lib/fields/Select.js +28 -16
  300. package/dist/esm/lib/fields/Select.js.map +1 -1
  301. package/dist/esm/lib/fields/SelfRelation.d.ts +19 -18
  302. package/dist/esm/lib/fields/SelfRelation.d.ts.map +1 -1
  303. package/dist/esm/lib/fields/SelfRelation.js +31 -21
  304. package/dist/esm/lib/fields/SelfRelation.js.map +1 -1
  305. package/dist/esm/lib/fields/SimpleList.d.ts +16 -20
  306. package/dist/esm/lib/fields/SimpleList.d.ts.map +1 -1
  307. package/dist/esm/lib/fields/SimpleList.js +38 -20
  308. package/dist/esm/lib/fields/SimpleList.js.map +1 -1
  309. package/dist/esm/lib/fields/String.d.ts +18 -25
  310. package/dist/esm/lib/fields/String.d.ts.map +1 -1
  311. package/dist/esm/lib/fields/String.js +55 -41
  312. package/dist/esm/lib/fields/String.js.map +1 -1
  313. package/dist/esm/lib/fields/index.d.ts +15 -83
  314. package/dist/esm/lib/fields/index.d.ts.map +1 -1
  315. package/dist/esm/lib/fields/index.js +15 -36
  316. package/dist/esm/lib/fields/index.js.map +1 -1
  317. package/dist/esm/lib/types/index.d.ts +8 -4
  318. package/dist/esm/lib/types/index.d.ts.map +1 -1
  319. package/dist/esm/lib/utils/getListField.d.ts +1 -1
  320. package/dist/esm/lib/utils/getSchemas.d.ts +1 -1
  321. package/dist/esm/lib/utils/getTranslation.d.ts +2 -2
  322. package/dist/esm/lib/utils/getTranslation.js +1 -1
  323. package/dist/esm/lib/utils/isTranslatableObject.d.ts +1 -1
  324. package/dist/esm/lib/utils/translateObject.d.ts +2 -2
  325. package/dist/esm/lib/utils/translateObject.js +3 -3
  326. package/dist/esm/literals/definitions.d.ts +1 -1
  327. package/dist/esm/literals/definitions.js +1 -1
  328. package/dist/esm/literals/index.d.ts +3 -3
  329. package/dist/esm/literals/index.js +3 -3
  330. package/dist/esm/literals/manager.d.ts +1 -1
  331. package/dist/esm/literals/manager.js +1 -1
  332. package/dist/esm/manager.d.ts +152 -148
  333. package/dist/esm/manager.d.ts.map +1 -1
  334. package/dist/esm/manager.js +2 -2
  335. package/dist/esm/media/imageOptimization.d.ts +1 -1
  336. package/dist/esm/media/imageOptimization.js +2 -2
  337. package/dist/esm/media/index.d.ts +4 -4
  338. package/dist/esm/media/index.js +3 -3
  339. package/dist/esm/media/mediaService.d.ts +1 -1
  340. package/dist/esm/orm/createIndexes.js +1 -1
  341. package/dist/esm/orm/database.js +3 -3
  342. package/dist/esm/orm/dbService.d.ts +3 -3
  343. package/dist/esm/orm/index.d.ts +2 -2
  344. package/dist/esm/orm/index.js +12 -12
  345. package/dist/esm/orm/mongodbPeer.js +1 -1
  346. package/dist/esm/orm/operations/clear.d.ts +1 -1
  347. package/dist/esm/orm/operations/clear.js +1 -1
  348. package/dist/esm/orm/operations/create.d.ts +2 -2
  349. package/dist/esm/orm/operations/create.js +4 -4
  350. package/dist/esm/orm/operations/delete.d.ts +2 -2
  351. package/dist/esm/orm/operations/delete.js +2 -2
  352. package/dist/esm/orm/operations/find.d.ts +2 -2
  353. package/dist/esm/orm/operations/find.js +3 -3
  354. package/dist/esm/orm/operations/findDependencies.d.ts +2 -2
  355. package/dist/esm/orm/operations/findDependencies.d.ts.map +1 -1
  356. package/dist/esm/orm/operations/findDependencies.js +8 -6
  357. package/dist/esm/orm/operations/findDependencies.js.map +1 -1
  358. package/dist/esm/orm/operations/get.d.ts +3 -3
  359. package/dist/esm/orm/operations/get.js +3 -3
  360. package/dist/esm/orm/operations/getAll.d.ts +2 -2
  361. package/dist/esm/orm/operations/getAll.js +2 -2
  362. package/dist/esm/orm/operations/list.d.ts +2 -2
  363. package/dist/esm/orm/operations/list.js +3 -3
  364. package/dist/esm/orm/operations/update.d.ts +3 -3
  365. package/dist/esm/orm/operations/update.js +5 -5
  366. package/dist/esm/orm/operations/updateMany.d.ts +2 -2
  367. package/dist/esm/orm/operations/updateMany.js +3 -3
  368. package/dist/esm/orm/operations/upsert.d.ts +2 -2
  369. package/dist/esm/orm/operations/upsert.js +4 -4
  370. package/dist/esm/orm/utils/deepDeleteNulls.js +1 -1
  371. package/dist/esm/orm/utils/parseId.d.ts +2 -2
  372. package/dist/esm/orm/utils/parseId.d.ts.map +1 -1
  373. package/dist/esm/orm/utils/parseId.js +1 -1
  374. package/dist/esm/orm/utils/transformObjectIdsToStrings.js +1 -1
  375. package/dist/esm/orm/utils/transformStringToObjectIds.js +1 -1
  376. package/dist/esm/schemas/manager/literals/upsert.js +1 -1
  377. package/dist/esm/schemas/manager/media/finalizeUpload.js +1 -1
  378. package/dist/esm/schemas/manager/media/getMediaUrl.js +1 -1
  379. package/dist/esm/schemas/manager/media/listFolders.js +1 -1
  380. package/dist/esm/schemas/web/page.d.ts +66 -18
  381. package/dist/esm/schemas/web/page.d.ts.map +1 -1
  382. package/dist/esm/schemas/web/page.js +1 -1
  383. package/dist/esm/web/index.d.ts +1 -1
  384. package/dist/esm/web/index.js +1 -1
  385. package/dist/esm/web/page.d.ts +1 -1
  386. package/dist/tsconfig.build.tsbuildinfo +1 -1
  387. package/package.json +4 -3
@@ -1,21 +1,40 @@
1
1
  import z from "zod";
2
- import { Field } from "./Field.js";
3
- export class NumberField extends Field {
4
- constructor() {
5
- super({
6
- config: { ui: "Number", type: "Number" },
7
- schema: z.number(),
8
- });
9
- }
10
- min(value, message) {
11
- this.minValue = value;
12
- this.schema = this.schema.min(value, message);
13
- return this;
2
+ import { createField, defaultFieldState, sameSchemas, withFieldModifiers, } from "./Field";
3
+ export function numberField() {
4
+ return makeNumberField({}, defaultFieldState);
5
+ }
6
+ function makeNumberField(options, state) {
7
+ const field = {
8
+ ...createField({
9
+ meta: {
10
+ type: "Number",
11
+ ui: "Number",
12
+ minValue: options.minValue,
13
+ maxValue: options.maxValue,
14
+ },
15
+ state,
16
+ schemas: sameSchemas(() => buildNumberSchema(options)),
17
+ }),
18
+ min: function (value, message) {
19
+ return makeNumberField({ ...options, minValue: value, minMessage: message }, this.state);
20
+ },
21
+ max: function (value, message) {
22
+ return makeNumberField({ ...options, maxValue: value, maxMessage: message }, this.state);
23
+ },
24
+ };
25
+ return withFieldModifiers({
26
+ field,
27
+ rebuild: (nextState) => makeNumberField(options, nextState),
28
+ });
29
+ }
30
+ function buildNumberSchema(options) {
31
+ let schema = z.number();
32
+ if (options.minValue !== undefined) {
33
+ schema = schema.min(options.minValue, options.minMessage);
14
34
  }
15
- max(value, message) {
16
- this.maxValue = value;
17
- this.schema = this.schema.max(value, message);
18
- return this;
35
+ if (options.maxValue !== undefined) {
36
+ schema = schema.max(options.maxValue, options.maxMessage);
19
37
  }
38
+ return schema;
20
39
  }
21
40
  //# sourceMappingURL=Number.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Number.js","sourceRoot":"","sources":["../../../../src/lib/fields/Number.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAGpB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAOhC,MAAM,OAAO,WAIX,SAAQ,KAOT;IAGC;QACE,KAAK,CAAC;YACJ,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;SACnB,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,KAAa,EAAE,OAAgB;QACjC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,KAAa,EAAE,OAAgB;QACjC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"Number.js","sourceRoot":"","sources":["../../../../src/lib/fields/Number.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,EACL,WAAW,EACX,iBAAiB,EAEjB,WAAW,EAOX,kBAAkB,GACnB,MAAM,SAAS,CAAC;AA8CjB,MAAM,UAAU,WAAW;IACzB,OAAO,eAAe,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,eAAe,CACtB,OAAsB,EACtB,KAAY;IAEZ,MAAM,KAAK,GAA2B;QACpC,GAAG,WAAW,CAAC;YACb,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,EAAE,EAAE,QAAQ;gBACZ,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC3B;YACD,KAAK;YACL,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;SACvD,CAAC;QACF,GAAG,EAAE,UAEH,KAAa,EACb,OAAgB;YAEhB,OAAO,eAAe,CACpB,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,EACpD,IAAI,CAAC,KAA4B,CAClC,CAAC;QACJ,CAAC;QACD,GAAG,EAAE,UAEH,KAAa,EACb,OAAgB;YAEhB,OAAO,eAAe,CACpB,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,EACpD,IAAI,CAAC,KAA4B,CAClC,CAAC;QACJ,CAAC;KACF,CAAC;IAEF,OAAO,kBAAkB,CAAC;QACxB,KAAK;QACL,OAAO,EAAE,CAA+B,SAAoB,EAAE,EAAE,CAC9D,eAAe,CAAC,OAAO,EAAE,SAAS,CAGjC;KACJ,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAsB;IAC/C,IAAI,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;IAExB,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,48 +1,54 @@
1
1
  import z from "zod";
2
- import type { EncodedField } from "./Field.js";
3
- import { Field } from "./Field.js";
4
- import { SimpleListField } from "./SimpleList.js";
5
- import type ContentType from "../ContentType.js";
6
- import type { FieldHKT, If, getInputTypeWithModifiers, getTypeWithModifiers, getOutputTypeWithModifiers } from "../types/index.js";
7
- import type { EncodedContentType } from "../ContentType.js";
2
+ import { type EncodedField, type DefaultFieldState, type FieldLike, type FieldState, type FieldStateOf, type FieldWithModifiers, type PopulatableFieldLike, type SetRequired } from "./Field";
3
+ import type { EncodedContentType } from "../ContentType";
4
+ import { type SimpleListField } from "./SimpleList";
8
5
  export type OnlyType = "existing" | "new" | undefined;
9
- type isNew<X extends OnlyType> = X extends "new" ? true : false;
10
- interface RelationFieldHKT<CT extends ContentType, X extends OnlyType, S extends ReturnType<CT["getInputSchema"]>, Sout extends ReturnType<CT["getOutputSchema"]>> extends FieldHKT {
11
- type: RelationField<CT, X, S, Sout, this["args"][1], this["args"][2], this["args"][3]>;
12
- }
13
- type NewType<S extends z.ZodTypeAny> = z.ZodObject<{
14
- type: z.ZodLiteral<"new">;
15
- data: S;
16
- }, z.core.$strip>;
17
- type ExistingType = z.ZodObject<{
18
- type: z.ZodLiteral<"existing">;
19
- _id: z.ZodString;
20
- contentType: z.ZodLiteral<string>;
21
- }, z.core.$strip>;
22
- type SchemaType<X extends OnlyType, S extends z.ZodTypeAny> = If<isNew<X>, NewType<S>, ExistingType>;
23
- export declare class RelationField<CT extends ContentType = ContentType, X extends OnlyType = OnlyType, S extends ReturnType<CT["getInputSchema"]> = ReturnType<CT["getInputSchema"]>, Sout extends ReturnType<CT["getOutputSchemaWithoutIterators"]> = ReturnType<CT["getOutputSchemaWithoutIterators"]>, TRequired extends boolean = false, TTranslatable extends boolean = false, TVisibility extends "api" | "manager" | "all" = "all"> extends Field<RelationFieldHKT<CT, X, S, Sout>, SchemaType<X, S>, Sout, TRequired, TTranslatable, TVisibility> {
24
- contentType: CT;
25
- private only?;
26
- constructor(contentType: CT, only?: X);
27
- setSelfRelateds(): void;
28
- private getSchemaType;
29
- protected getBaseInputSchema(): getInputTypeWithModifiers<SchemaType<X, S>, TRequired, TTranslatable>;
30
- protected getBaseSchema(): getTypeWithModifiers<SchemaType<X, S>, TRequired, TTranslatable>;
31
- protected getBaseOutputSchema(): getOutputTypeWithModifiers<Sout, TRequired>;
32
- getPopulatedSchema(): getOutputTypeWithModifiers<Sout, TRequired>;
33
- multiple(): SimpleListField<RelationField<CT, X, ReturnType<CT["getInputSchema"]>, ReturnType<CT["getOutputSchemaWithoutIterators"]>, true, false, "all">, z.ZodArray<If<isNew<X>, NewType<ReturnType<CT["getInputSchema"]>>, ExistingType>>, z.ZodArray<ReturnType<RelationField<CT, X, ReturnType<CT["getInputSchema"]>, ReturnType<CT["getOutputSchemaWithoutIterators"]>, true, false, "all"> extends infer T ? T extends RelationField<CT, X, ReturnType<CT["getInputSchema"]>, ReturnType<CT["getOutputSchemaWithoutIterators"]>, true, false, "all"> ? T extends {
34
- getPopulatedSchema: () => z.ZodTypeAny;
35
- } ? T["getPopulatedSchema"] : T["getSchema"] : never : never>>, false, false, "all">;
36
- }
6
+ export type ContentTypeLike<Name extends string = string> = {
7
+ name: Name;
8
+ getInputSchema: () => z.ZodTypeAny;
9
+ getOutputSchema: () => z.ZodTypeAny;
10
+ getOutputSchemaWithoutIterators?: () => z.ZodTypeAny;
11
+ getPopulatedSchema?: () => z.ZodTypeAny;
12
+ };
13
+ type ContentTypeInput<CT extends ContentTypeLike> = z.infer<ReturnType<CT["getInputSchema"]>>;
14
+ type ContentTypeOutputSchema<CT extends ContentTypeLike> = CT extends {
15
+ getOutputSchemaWithoutIterators: () => infer Schema extends z.ZodTypeAny;
16
+ } ? Schema : ReturnType<CT["getOutputSchema"]>;
17
+ type ContentTypePopulatedSchema<CT extends ContentTypeLike> = CT extends {
18
+ getPopulatedSchema: () => infer Schema extends z.ZodTypeAny;
19
+ } ? Schema : ContentTypeOutputSchema<CT>;
20
+ type ContentTypeOutput<CT extends ContentTypeLike> = z.infer<ContentTypeOutputSchema<CT>>;
21
+ type ContentTypePopulated<CT extends ContentTypeLike> = z.infer<ContentTypePopulatedSchema<CT>>;
22
+ export type RelationExisting<Name extends string = string> = {
23
+ type: "existing";
24
+ _id: string;
25
+ contentType: Name;
26
+ };
27
+ export type RelationNew<Data = unknown> = {
28
+ type: "new";
29
+ data: Data;
30
+ };
31
+ export type RelationFieldValue = RelationExisting | RelationNew<unknown>;
32
+ export type RelationExistingDefaltData = RelationExisting;
33
+ export type RelationNewDefaultData<S> = RelationNew<S>;
34
+ type RelationValue<CT extends ContentTypeLike, Only extends OnlyType> = Only extends "new" ? RelationNew<ContentTypeInput<CT>> : RelationExisting<CT["name"]>;
35
+ export type RelationMeta<Name extends string = string, Only extends OnlyType = OnlyType> = {
36
+ type: "Relation";
37
+ ui: "ContentType";
38
+ contentType: Name;
39
+ only?: Only;
40
+ };
37
41
  export type EncodedRelationField = EncodedField & {
38
42
  contentType: EncodedContentType;
39
43
  only?: OnlyType;
40
44
  };
41
- export type RelationFieldValue = z.infer<ExistingType | NewType<z.ZodTypeAny>>;
42
- export type RelationExistingDefaltData = z.infer<ExistingType>;
43
- export type RelationNewDefaultData<S> = {
44
- type: "new";
45
- data: S;
45
+ export type RelationField<CT extends ContentTypeLike = ContentTypeLike, Only extends OnlyType = undefined, State extends FieldState = DefaultFieldState> = FieldWithModifiers<RelationFieldCore<CT, Only, State>>;
46
+ type RelationFieldCore<CT extends ContentTypeLike, Only extends OnlyType, State extends FieldState> = RelationFieldBase<CT, Only, State> & PopulatableFieldLike<ContentTypePopulated<CT>, State> & {
47
+ contentType: CT;
48
+ only?: Only;
49
+ multiple: <TThis extends RelationFieldBase<CT, Only, FieldState>>(this: TThis) => SimpleListField<RelationField<CT, Only, SetRequired<DefaultFieldState>>, FieldStateOf<TThis>>;
46
50
  };
51
+ type RelationFieldBase<CT extends ContentTypeLike, Only extends OnlyType, State extends FieldState> = FieldLike<RelationValue<CT, Only>, RelationValue<CT, Only>, ContentTypeOutput<CT>, RelationMeta<CT["name"], Only>, State>;
52
+ export declare function relationField<CT extends ContentTypeLike, const Only extends OnlyType = undefined>(contentType: CT, only?: Only): RelationField<CT, Only>;
47
53
  export {};
48
54
  //# sourceMappingURL=Relation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Relation.d.ts","sourceRoot":"","sources":["../../../../src/lib/fields/Relation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Relation.d.ts","sourceRoot":"","sources":["../../../../src/lib/fields/Relation.ts"],"names":[],"mappings":"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"}
@@ -1,73 +1,81 @@
1
1
  import z from "zod";
2
- import { Field } from "./Field.js";
3
- import { SimpleListField } from "./SimpleList.js";
4
- import { SelfRelationField } from "./SelfRelation.js";
5
- import { getDefaultInputSchema, getDefaultOutputSchema, getDefaultSchema, } from "../utils/getSchemas.js";
6
- import { Id } from "../utils/id.js";
7
- export class RelationField extends Field {
8
- constructor(contentType, only) {
9
- super({
10
- config: { ui: "ContentType", type: "Relation" },
11
- schema: contentType.getInputSchema(),
12
- });
13
- this.contentType = contentType;
14
- this.only = only;
15
- }
16
- setSelfRelateds() {
17
- Object.values(this.contentType.fields).forEach((field) => {
18
- if (field instanceof SelfRelationField) {
19
- field.setContentType(this.contentType);
2
+ import { createField, defaultFieldState, withFieldModifiers, } from "./Field";
3
+ import { simpleListField } from "./SimpleList";
4
+ import { Id } from "../utils/id";
5
+ export function relationField(contentType, only) {
6
+ return makeRelationField({ contentType, only }, defaultFieldState);
7
+ }
8
+ function makeRelationField(options, state) {
9
+ const field = {
10
+ ...createField({
11
+ meta: {
12
+ type: "Relation",
13
+ ui: "ContentType",
14
+ contentType: options.contentType.name,
15
+ only: options.only,
16
+ },
17
+ state,
18
+ schemas: {
19
+ input: () => buildRelationSchema(options),
20
+ db: () => buildRelationSchema(options),
21
+ output: () => getContentTypeOutputSchema(options.contentType),
22
+ },
23
+ }),
24
+ getPopulatedSchema: () => applyRelationOutputPresence(getContentTypePopulatedSchema(options.contentType), state),
25
+ contentType: options.contentType,
26
+ only: options.only,
27
+ multiple: function () {
28
+ const relation = makeRelationField(options, defaultFieldState).required();
29
+ let list = simpleListField(relation);
30
+ if (this.state.required) {
31
+ list = list.required();
20
32
  }
21
- });
22
- }
23
- getSchemaType() {
24
- const newSchema = z.object({
25
- type: z.literal("new"),
26
- data: this.schema,
27
- });
28
- const existingSchema = z.object({
29
- type: z.literal("existing"),
30
- _id: Id,
31
- contentType: z.literal(this.contentType.name),
32
- });
33
- const bothSchema = z.discriminatedUnion("type", [
34
- newSchema,
35
- existingSchema,
36
- ]);
37
- return (this.only === "new"
38
- ? newSchema
39
- : this.only === "existing"
40
- ? existingSchema
41
- : bothSchema);
42
- }
43
- getBaseInputSchema() {
44
- return getDefaultInputSchema(this.getSchemaType(), this.isRequired, this.isTranslatable);
45
- }
46
- getBaseSchema() {
47
- return getDefaultSchema(this.getSchemaType(), this.isRequired, this.isTranslatable);
48
- }
49
- getBaseOutputSchema() {
50
- return getDefaultOutputSchema(this.contentType.getOutputSchemaWithoutIterators(), this.isRequired);
51
- }
52
- getPopulatedSchema() {
53
- return getDefaultOutputSchema(this.schema, this.isRequired);
33
+ if (this.state.translatable) {
34
+ list = list.translatable();
35
+ }
36
+ if (this.state.visibility === "api") {
37
+ list = list.apiOnly();
38
+ }
39
+ if (this.state.visibility === "manager") {
40
+ list = list.managerOnly();
41
+ }
42
+ return list;
43
+ },
44
+ };
45
+ return withFieldModifiers({
46
+ field,
47
+ rebuild: (nextState) => makeRelationField(options, nextState),
48
+ });
49
+ }
50
+ function buildRelationSchema(options) {
51
+ const newSchema = z.object({
52
+ type: z.literal("new"),
53
+ data: options.contentType.getInputSchema(),
54
+ });
55
+ const existingSchema = z.object({
56
+ type: z.literal("existing"),
57
+ _id: Id,
58
+ contentType: z.literal(options.contentType.name),
59
+ });
60
+ if (options.only === "new") {
61
+ return newSchema;
54
62
  }
55
- multiple() {
56
- const relation = new RelationField(this.contentType, this.only).required();
57
- const list = new SimpleListField(relation);
58
- if (this.isRequired) {
59
- list.required();
60
- }
61
- if (this.isTranslatable) {
62
- list.translatable();
63
- }
64
- if (this.visibility === "api") {
65
- list.apiOnly();
66
- }
67
- if (this.visibility === "manager") {
68
- list.managerOnly();
69
- }
70
- return list;
63
+ if (options.only === "existing") {
64
+ return existingSchema;
71
65
  }
66
+ return z.discriminatedUnion("type", [
67
+ newSchema,
68
+ existingSchema,
69
+ ]);
70
+ }
71
+ function getContentTypeOutputSchema(contentType) {
72
+ return (contentType.getOutputSchemaWithoutIterators?.() ??
73
+ contentType.getOutputSchema());
74
+ }
75
+ function getContentTypePopulatedSchema(contentType) {
76
+ return (contentType.getPopulatedSchema?.() ?? getContentTypeOutputSchema(contentType));
77
+ }
78
+ function applyRelationOutputPresence(schema, state) {
79
+ return state.required ? schema : schema.optional();
72
80
  }
73
81
  //# sourceMappingURL=Relation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Relation.js","sourceRoot":"","sources":["../../../../src/lib/fields/Relation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Relation.js","sourceRoot":"","sources":["../../../../src/lib/fields/Relation.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,20 @@
1
- import z from "zod";
2
- import type { EncodedField } from "./Field.js";
3
- import { Field } from "./Field.js";
4
- import type { FieldHKT, If, Visibility } from "../types/index.js";
5
- interface SelectFieldHKT<L extends string[], M extends boolean> extends FieldHKT {
6
- type: SelectField<L, M, If<M, z.ZodArray<z.ZodLiteral<L[number]>>, z.ZodLiteral<L[number]>>, this["args"][1], this["args"][2], this["args"][3]>;
7
- }
8
- export declare class SelectField<const L extends string[] = string[], M extends boolean = false, S extends If<M, z.ZodArray<z.ZodLiteral<L[number]>>, z.ZodLiteral<L[number]>> = If<M, z.ZodArray<z.ZodLiteral<L[number]>>, z.ZodLiteral<L[number]>>, TRequired extends boolean = false, TTranslatable extends boolean = false, TVisibility extends Visibility = "all"> extends Field<SelectFieldHKT<L, M>, S, S, TRequired, TTranslatable, TVisibility> {
9
- options: L;
10
- isMultiple: M;
11
- constructor(options: L);
12
- multiple(): SelectField<L, true, z.ZodArray<z.ZodLiteral<L[number]>>, TRequired, TTranslatable, TVisibility>;
13
- }
1
+ import { type EncodedField, type DefaultFieldState, type FieldLike, type FieldState, type FieldStateOf, type FieldWithModifiers } from "./Field";
2
+ type SelectValue<Options extends readonly string[], Multiple extends boolean> = Multiple extends true ? Options[number][] : Options[number];
3
+ export type SelectMeta<Options extends readonly string[] = readonly string[], Multiple extends boolean = boolean> = {
4
+ type: "Select";
5
+ ui: Multiple extends true ? "MultiSelect" : "Select";
6
+ options: Options;
7
+ isMultiple: Multiple;
8
+ };
14
9
  export type EncodedSelectField = EncodedField & {
15
10
  options: string[];
16
11
  isMultiple: boolean;
17
12
  };
13
+ export type SelectField<Options extends readonly string[] = readonly string[], Multiple extends boolean = false, State extends FieldState = DefaultFieldState> = FieldWithModifiers<SelectFieldCore<Options, Multiple, State>>;
14
+ type SelectFieldCore<Options extends readonly string[], Multiple extends boolean, State extends FieldState> = SelectFieldBase<Options, Multiple, State> & {
15
+ multiple: <TThis extends SelectFieldBase<Options, Multiple, FieldState>>(this: TThis) => SelectField<Options, true, FieldStateOf<TThis>>;
16
+ };
17
+ type SelectFieldBase<Options extends readonly string[], Multiple extends boolean, State extends FieldState> = FieldLike<SelectValue<Options, Multiple>, SelectValue<Options, Multiple>, SelectValue<Options, Multiple>, SelectMeta<Options, Multiple>, State>;
18
+ export declare function selectField<const Options extends readonly string[]>(options: Options): SelectField<Options>;
18
19
  export {};
19
20
  //# sourceMappingURL=Select.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/lib/fields/Select.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEzD,UAAU,cAAc,CACtB,CAAC,SAAS,MAAM,EAAE,EAClB,CAAC,SAAS,OAAO,CACjB,SAAQ,QAAQ;IAChB,IAAI,EAAE,WAAW,CACf,CAAC,EACD,CAAC,EACD,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EACnE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EACf,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EACf,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAChB,CAAC;CACH;AAED,qBAAa,WAAW,CACtB,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,EACnC,CAAC,SAAS,OAAO,GAAG,KAAK,EACzB,CAAC,SAAS,EAAE,CACV,CAAC,EACD,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EACnC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CACxB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EACvE,SAAS,SAAS,OAAO,GAAG,KAAK,EACjC,aAAa,SAAS,OAAO,GAAG,KAAK,EACrC,WAAW,SAAS,UAAU,GAAG,KAAK,CACtC,SAAQ,KAAK,CACb,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,CAAC,EACD,CAAC,EACD,SAAS,EACT,aAAa,EACb,WAAW,CACZ;IACC,OAAO,EAAE,CAAC,CAAC;IACX,UAAU,EAAE,CAAC,CAAc;gBACf,OAAO,EAAE,CAAC;IAQtB,QAAQ,IAIS,WAAW,CACxB,CAAC,EACD,IAAI,EACJ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EACnC,SAAS,EACT,aAAa,EACb,WAAW,CACZ;CAEJ;AAED,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG;IAC9C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC"}
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/lib/fields/Select.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,YAAY,EAEjB,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,kBAAkB,EAGxB,MAAM,SAAS,CAAC;AAEjB,KAAK,WAAW,CACd,OAAO,SAAS,SAAS,MAAM,EAAE,EACjC,QAAQ,SAAS,OAAO,IACtB,QAAQ,SAAS,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAEhE,MAAM,MAAM,UAAU,CACpB,OAAO,SAAS,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,EACrD,QAAQ,SAAS,OAAO,GAAG,OAAO,IAChC;IACF,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,QAAQ,SAAS,IAAI,GAAG,aAAa,GAAG,QAAQ,CAAC;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,QAAQ,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG;IAC9C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAUF,MAAM,MAAM,WAAW,CACrB,OAAO,SAAS,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,EACrD,QAAQ,SAAS,OAAO,GAAG,KAAK,EAChC,KAAK,SAAS,UAAU,GAAG,iBAAiB,IAC1C,kBAAkB,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AAElE,KAAK,eAAe,CAClB,OAAO,SAAS,SAAS,MAAM,EAAE,EACjC,QAAQ,SAAS,OAAO,EACxB,KAAK,SAAS,UAAU,IACtB,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG;IAC9C,QAAQ,EAAE,CACR,KAAK,SAAS,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,EAE5D,IAAI,EAAE,KAAK,KACR,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;CACtD,CAAC;AAEF,KAAK,eAAe,CAClB,OAAO,SAAS,SAAS,MAAM,EAAE,EACjC,QAAQ,SAAS,OAAO,EACxB,KAAK,SAAS,UAAU,IACtB,SAAS,CACX,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,EAC9B,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,EAC9B,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,EAC9B,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,EAC7B,KAAK,CACN,CAAC;AAEF,wBAAgB,WAAW,CAAC,KAAK,CAAC,OAAO,SAAS,SAAS,MAAM,EAAE,EACjE,OAAO,EAAE,OAAO,GACf,WAAW,CAAC,OAAO,CAAC,CAEtB"}
@@ -1,19 +1,31 @@
1
1
  import z from "zod";
2
- import { Field } from "./Field.js";
3
- export class SelectField extends Field {
4
- constructor(options) {
5
- super({
6
- config: { ui: "Select", type: "Select" },
7
- schema: z.literal(options.length ? options : [""]),
8
- });
9
- this.isMultiple = false;
10
- this.options = options;
11
- }
12
- multiple() {
13
- this.schema = z.array(z.literal(this.options));
14
- this.config.ui = "MultiSelect";
15
- this.isMultiple = true;
16
- return this;
17
- }
2
+ import { createField, defaultFieldState, sameSchemas, withFieldModifiers, } from "./Field";
3
+ export function selectField(options) {
4
+ return makeSelectField({ options, multiple: false }, defaultFieldState);
5
+ }
6
+ function makeSelectField(options, state) {
7
+ const field = {
8
+ ...createField({
9
+ meta: {
10
+ type: "Select",
11
+ ui: (options.multiple ? "MultiSelect" : "Select"),
12
+ options: options.options,
13
+ isMultiple: options.multiple,
14
+ },
15
+ state,
16
+ schemas: sameSchemas(() => buildSelectSchema(options)),
17
+ }),
18
+ multiple: function () {
19
+ return makeSelectField({ ...options, multiple: true }, this.state);
20
+ },
21
+ };
22
+ return withFieldModifiers({
23
+ field,
24
+ rebuild: (nextState) => makeSelectField(options, nextState),
25
+ });
26
+ }
27
+ function buildSelectSchema(options) {
28
+ const literal = z.literal(options.options.length ? options.options : [""]);
29
+ return (options.multiple ? z.array(literal) : literal);
18
30
  }
19
31
  //# sourceMappingURL=Select.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sourceRoot":"","sources":["../../../../src/lib/fields/Select.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAGpB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAiBhC,MAAM,OAAO,WAWX,SAAQ,KAOT;IAGC,YAAY,OAAU;QACpB,KAAK,CAAC;YACJ,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAM;SACxD,CAAC,CAAC;QALL,eAAU,GAAM,KAAU,CAAC;QAMzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAM,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,aAAa,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,IAAS,CAAC;QAC5B,OAAO,IAON,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"Select.js","sourceRoot":"","sources":["../../../../src/lib/fields/Select.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,EACL,WAAW,EACX,iBAAiB,EAEjB,WAAW,EAOX,kBAAkB,GACnB,MAAM,SAAS,CAAC;AA4DjB,MAAM,UAAU,WAAW,CACzB,OAAgB;IAEhB,OAAO,eAAe,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,iBAAiB,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,eAAe,CAKtB,OAAyC,EACzC,KAAY;IAEZ,MAAM,KAAK,GAA8C;QACvD,GAAG,WAAW,CAAC;YACb,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAGzC;gBACP,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,UAAU,EAAE,OAAO,CAAC,QAAQ;aAC7B;YACD,KAAK;YACL,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;SACvD,CAAC;QACF,QAAQ,EAAE;YAGR,OAAO,eAAe,CACpB,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAC9B,IAAI,CAAC,KAA4B,CAClC,CAAC;QACJ,CAAC;KACF,CAAC;IAEF,OAAO,kBAAkB,CAAC;QACxB,KAAK;QACL,OAAO,EAAE,CAA+B,SAAoB,EAAE,EAAE,CAC9D,eAAe,CAAC,OAAO,EAAE,SAAS,CAGjC;KACJ,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAGxB,OAAyC;IACzC,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CACvB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAClB,CAAC;IAEhC,OAAO,CACL,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CACD,CAAC;AACjD,CAAC"}
@@ -1,21 +1,22 @@
1
- import z from "zod";
2
- import type { EncodedField } from "./Field.js";
3
- import { Field } from "./Field.js";
4
- import type ContentType from "../ContentType.js";
5
- import type { FieldHKT, Visibility } from "../types/index.js";
6
- declare const SelfRelationSchema: z.ZodObject<{
7
- type: z.ZodLiteral<"self">;
8
- _id: z.ZodString;
9
- contentType: z.ZodString;
10
- }, z.core.$strip>;
11
- type SelfRelationSchema = typeof SelfRelationSchema;
12
- interface SelfRelationFieldHKT extends FieldHKT {
13
- type: SelfRelationField<this["args"][1], this["args"][2], this["args"][3]>;
14
- }
15
- export declare class SelfRelationField<TRequired extends boolean = false, TTranslatable extends boolean = false, TVisibility extends Visibility = "all"> extends Field<SelfRelationFieldHKT, SelfRelationSchema, SelfRelationSchema, TRequired, TTranslatable, TVisibility> {
16
- constructor();
17
- setContentType(contentType: ContentType): void;
18
- }
1
+ import { type EncodedField, type DefaultFieldState, type FieldLike, type FieldState, type FieldStateOf, type FieldWithModifiers } from "./Field";
2
+ export type SelfRelationValue<Name extends string = string> = {
3
+ type: "self";
4
+ _id: string;
5
+ contentType: Name;
6
+ };
7
+ export type SelfRelationMeta<Name extends string = string> = {
8
+ type: "Relation";
9
+ ui: "SelfRelation";
10
+ contentType?: Name;
11
+ };
12
+ export type SelfRelationField<Name extends string = string, State extends FieldState = DefaultFieldState> = FieldWithModifiers<SelfRelationFieldCore<Name, State>>;
13
+ type SelfRelationFieldCore<Name extends string, State extends FieldState> = SelfRelationFieldBase<Name, State> & {
14
+ setContentType: <TThis extends SelfRelationFieldBase<Name, FieldState>, NextName extends string>(this: TThis, contentType: {
15
+ name: NextName;
16
+ }) => SelfRelationField<NextName, FieldStateOf<TThis>>;
17
+ };
18
+ type SelfRelationFieldBase<Name extends string, State extends FieldState> = FieldLike<SelfRelationValue<Name>, SelfRelationValue<Name>, SelfRelationValue<Name>, SelfRelationMeta<Name>, State>;
19
+ export declare function selfRelationField(): SelfRelationField;
19
20
  export type EncodedSelfRelationField = EncodedField;
20
21
  export {};
21
22
  //# sourceMappingURL=SelfRelation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelfRelation.d.ts","sourceRoot":"","sources":["../../../../src/lib/fields/SelfRelation.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,KAAK,WAAW,MAAM,gBAAgB,CAAC;AAE9C,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAErD,QAAA,MAAM,kBAAkB;;;;iBAItB,CAAC;AAEH,KAAK,kBAAkB,GAAG,OAAO,kBAAkB,CAAC;AAEpD,UAAU,oBAAqB,SAAQ,QAAQ;IAC7C,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5E;AAED,qBAAa,iBAAiB,CAC5B,SAAS,SAAS,OAAO,GAAG,KAAK,EACjC,aAAa,SAAS,OAAO,GAAG,KAAK,EACrC,WAAW,SAAS,UAAU,GAAG,KAAK,CACtC,SAAQ,KAAK,CACb,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACT,aAAa,EACb,WAAW,CACZ;;IAQC,cAAc,CAAC,WAAW,EAAE,WAAW;CAOxC;AAED,MAAM,MAAM,wBAAwB,GAAG,YAAY,CAAC"}
1
+ {"version":3,"file":"SelfRelation.d.ts","sourceRoot":"","sources":["../../../../src/lib/fields/SelfRelation.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,YAAY,EAEjB,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,kBAAkB,EAGxB,MAAM,SAAS,CAAC;AAGjB,MAAM,MAAM,iBAAiB,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,IAAI;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,IAAI,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,IAAI;IAC3D,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,cAAc,CAAC;IACnB,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAC3B,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,KAAK,SAAS,UAAU,GAAG,iBAAiB,IAC1C,kBAAkB,CAAC,qBAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAE3D,KAAK,qBAAqB,CACxB,IAAI,SAAS,MAAM,EACnB,KAAK,SAAS,UAAU,IACtB,qBAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG;IACvC,cAAc,EAAE,CACd,KAAK,SAAS,qBAAqB,CAAC,IAAI,EAAE,UAAU,CAAC,EACrD,QAAQ,SAAS,MAAM,EAEvB,IAAI,EAAE,KAAK,EACX,WAAW,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,KAC5B,iBAAiB,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;CACvD,CAAC;AAEF,KAAK,qBAAqB,CACxB,IAAI,SAAS,MAAM,EACnB,KAAK,SAAS,UAAU,IACtB,SAAS,CACX,iBAAiB,CAAC,IAAI,CAAC,EACvB,iBAAiB,CAAC,IAAI,CAAC,EACvB,iBAAiB,CAAC,IAAI,CAAC,EACvB,gBAAgB,CAAC,IAAI,CAAC,EACtB,KAAK,CACN,CAAC;AAEF,wBAAgB,iBAAiB,IAAI,iBAAiB,CAErD;AAED,MAAM,MAAM,wBAAwB,GAAG,YAAY,CAAC"}
@@ -1,24 +1,34 @@
1
1
  import z from "zod";
2
- import { Field } from "./Field.js";
3
- import { Id } from "../utils/id.js";
4
- const SelfRelationSchema = z.object({
5
- type: z.literal("self"),
6
- _id: Id,
7
- contentType: z.string(),
8
- });
9
- export class SelfRelationField extends Field {
10
- constructor() {
11
- super({
12
- config: { ui: "SelfRelation", type: "Relation" },
13
- schema: SelfRelationSchema,
14
- });
15
- }
16
- setContentType(contentType) {
17
- this.schema = z.object({
18
- type: z.literal("self"),
19
- _id: Id,
20
- contentType: z.literal(contentType.name),
21
- });
22
- }
2
+ import { createField, defaultFieldState, sameSchemas, withFieldModifiers, } from "./Field";
3
+ import { Id } from "../utils/id";
4
+ export function selfRelationField() {
5
+ return makeSelfRelationField({}, defaultFieldState);
6
+ }
7
+ function makeSelfRelationField(options, state) {
8
+ const field = {
9
+ ...createField({
10
+ meta: {
11
+ type: "Relation",
12
+ ui: "SelfRelation",
13
+ contentType: options.contentType,
14
+ },
15
+ state,
16
+ schemas: sameSchemas(() => buildSelfRelationSchema(options.contentType)),
17
+ }),
18
+ setContentType: function (contentType) {
19
+ return makeSelfRelationField({ contentType: contentType.name }, this.state);
20
+ },
21
+ };
22
+ return withFieldModifiers({
23
+ field,
24
+ rebuild: (nextState) => makeSelfRelationField(options, nextState),
25
+ });
26
+ }
27
+ function buildSelfRelationSchema(contentType) {
28
+ return z.object({
29
+ type: z.literal("self"),
30
+ _id: Id,
31
+ contentType: contentType ? z.literal(contentType) : z.string(),
32
+ });
23
33
  }
24
34
  //# sourceMappingURL=SelfRelation.js.map