payload 3.0.0-alpha.61 → 3.0.0-alpha.62

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 (439) hide show
  1. package/dist/admin/RichText.d.ts +2 -0
  2. package/dist/admin/RichText.d.ts.map +1 -1
  3. package/dist/admin/RichText.js.map +1 -1
  4. package/dist/admin/elements/PreviewButton.d.ts +2 -1
  5. package/dist/admin/elements/PreviewButton.d.ts.map +1 -1
  6. package/dist/admin/elements/PreviewButton.js.map +1 -1
  7. package/dist/admin/elements/PublishButton.d.ts +2 -1
  8. package/dist/admin/elements/PublishButton.d.ts.map +1 -1
  9. package/dist/admin/elements/PublishButton.js.map +1 -1
  10. package/dist/admin/elements/SaveButton.d.ts +2 -1
  11. package/dist/admin/elements/SaveButton.d.ts.map +1 -1
  12. package/dist/admin/elements/SaveButton.js.map +1 -1
  13. package/dist/admin/elements/SaveDraftButton.d.ts +2 -1
  14. package/dist/admin/elements/SaveDraftButton.d.ts.map +1 -1
  15. package/dist/admin/elements/SaveDraftButton.js.map +1 -1
  16. package/dist/admin/elements/WithServerSideProps.d.ts +5 -0
  17. package/dist/admin/elements/WithServerSideProps.d.ts.map +1 -0
  18. package/dist/admin/elements/WithServerSideProps.js +3 -0
  19. package/dist/admin/elements/WithServerSideProps.js.map +1 -0
  20. package/dist/admin/forms/FieldDescription.d.ts +4 -2
  21. package/dist/admin/forms/FieldDescription.d.ts.map +1 -1
  22. package/dist/admin/forms/FieldDescription.js.map +1 -1
  23. package/dist/admin/forms/RowLabel.d.ts +2 -1
  24. package/dist/admin/forms/RowLabel.d.ts.map +1 -1
  25. package/dist/admin/forms/RowLabel.js.map +1 -1
  26. package/dist/admin/types.d.ts +1 -0
  27. package/dist/admin/types.d.ts.map +1 -1
  28. package/dist/admin/types.js.map +1 -1
  29. package/dist/auth/cookies.d.ts +16 -4
  30. package/dist/auth/cookies.d.ts.map +1 -1
  31. package/dist/auth/cookies.js +45 -14
  32. package/dist/auth/cookies.js.map +1 -1
  33. package/dist/auth/executeAuthStrategies.d.ts +3 -2
  34. package/dist/auth/executeAuthStrategies.d.ts.map +1 -1
  35. package/dist/auth/executeAuthStrategies.js.map +1 -1
  36. package/dist/auth/getFieldsToSign.d.ts +2 -2
  37. package/dist/auth/getFieldsToSign.d.ts.map +1 -1
  38. package/dist/auth/getFieldsToSign.js.map +1 -1
  39. package/dist/auth/operations/auth.d.ts +5 -4
  40. package/dist/auth/operations/auth.d.ts.map +1 -1
  41. package/dist/auth/operations/auth.js.map +1 -1
  42. package/dist/auth/operations/forgotPassword.js +3 -3
  43. package/dist/auth/operations/forgotPassword.js.map +1 -1
  44. package/dist/auth/operations/login.d.ts.map +1 -1
  45. package/dist/auth/operations/login.js +17 -1
  46. package/dist/auth/operations/login.js.map +1 -1
  47. package/dist/auth/sendVerificationEmail.d.ts +5 -6
  48. package/dist/auth/sendVerificationEmail.d.ts.map +1 -1
  49. package/dist/auth/sendVerificationEmail.js +4 -5
  50. package/dist/auth/sendVerificationEmail.js.map +1 -1
  51. package/dist/bin/loader/index.d.ts.map +1 -1
  52. package/dist/bin/loader/index.js +4 -0
  53. package/dist/bin/loader/index.js.map +1 -1
  54. package/dist/collections/config/client.d.ts +15 -12
  55. package/dist/collections/config/client.d.ts.map +1 -1
  56. package/dist/collections/config/client.js +3 -1
  57. package/dist/collections/config/client.js.map +1 -1
  58. package/dist/collections/config/defaults.d.ts +1 -0
  59. package/dist/collections/config/defaults.d.ts.map +1 -1
  60. package/dist/collections/config/defaults.js +1 -0
  61. package/dist/collections/config/defaults.js.map +1 -1
  62. package/dist/collections/config/schema.d.ts.map +1 -1
  63. package/dist/collections/config/schema.js +2 -0
  64. package/dist/collections/config/schema.js.map +1 -1
  65. package/dist/collections/config/types.d.ts +12 -8
  66. package/dist/collections/config/types.d.ts.map +1 -1
  67. package/dist/collections/config/types.js.map +1 -1
  68. package/dist/collections/dataloader.d.ts.map +1 -1
  69. package/dist/collections/dataloader.js +3 -5
  70. package/dist/collections/dataloader.js.map +1 -1
  71. package/dist/collections/operations/count.d.ts +13 -0
  72. package/dist/collections/operations/count.d.ts.map +1 -0
  73. package/dist/collections/operations/count.js +75 -0
  74. package/dist/collections/operations/count.js.map +1 -0
  75. package/dist/collections/operations/create.d.ts.map +1 -1
  76. package/dist/collections/operations/create.js +4 -8
  77. package/dist/collections/operations/create.js.map +1 -1
  78. package/dist/collections/operations/local/count.d.ts +20 -0
  79. package/dist/collections/operations/local/count.d.ts.map +1 -0
  80. package/dist/collections/operations/local/count.js +19 -0
  81. package/dist/collections/operations/local/count.js.map +1 -0
  82. package/dist/collections/operations/local/create.d.ts +2 -2
  83. package/dist/collections/operations/local/create.d.ts.map +1 -1
  84. package/dist/collections/operations/local/create.js.map +1 -1
  85. package/dist/collections/operations/local/delete.d.ts +2 -2
  86. package/dist/collections/operations/local/delete.d.ts.map +1 -1
  87. package/dist/collections/operations/local/delete.js.map +1 -1
  88. package/dist/collections/operations/local/duplicate.d.ts +2 -2
  89. package/dist/collections/operations/local/duplicate.d.ts.map +1 -1
  90. package/dist/collections/operations/local/duplicate.js.map +1 -1
  91. package/dist/collections/operations/local/find.d.ts +2 -2
  92. package/dist/collections/operations/local/find.d.ts.map +1 -1
  93. package/dist/collections/operations/local/find.js.map +1 -1
  94. package/dist/collections/operations/local/findByID.d.ts +2 -2
  95. package/dist/collections/operations/local/findByID.d.ts.map +1 -1
  96. package/dist/collections/operations/local/findByID.js.map +1 -1
  97. package/dist/collections/operations/local/findVersionByID.d.ts +2 -2
  98. package/dist/collections/operations/local/findVersionByID.d.ts.map +1 -1
  99. package/dist/collections/operations/local/findVersionByID.js.map +1 -1
  100. package/dist/collections/operations/local/findVersions.d.ts +2 -2
  101. package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
  102. package/dist/collections/operations/local/findVersions.js.map +1 -1
  103. package/dist/collections/operations/local/index.d.ts +2 -0
  104. package/dist/collections/operations/local/index.d.ts.map +1 -1
  105. package/dist/collections/operations/local/index.js +2 -0
  106. package/dist/collections/operations/local/index.js.map +1 -1
  107. package/dist/collections/operations/local/restoreVersion.d.ts +2 -2
  108. package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
  109. package/dist/collections/operations/local/restoreVersion.js.map +1 -1
  110. package/dist/collections/operations/local/update.d.ts +2 -2
  111. package/dist/collections/operations/local/update.d.ts.map +1 -1
  112. package/dist/collections/operations/local/update.js.map +1 -1
  113. package/dist/collections/operations/update.d.ts.map +1 -1
  114. package/dist/collections/operations/update.js +2 -2
  115. package/dist/collections/operations/update.js.map +1 -1
  116. package/dist/collections/operations/updateByID.js +1 -1
  117. package/dist/collections/operations/updateByID.js.map +1 -1
  118. package/dist/collections/operations/utils.d.ts +6 -0
  119. package/dist/collections/operations/utils.d.ts.map +1 -1
  120. package/dist/collections/operations/utils.js.map +1 -1
  121. package/dist/config/client.d.ts +2 -1
  122. package/dist/config/client.d.ts.map +1 -1
  123. package/dist/config/client.js +2 -1
  124. package/dist/config/client.js.map +1 -1
  125. package/dist/config/defaults.d.ts.map +1 -1
  126. package/dist/config/defaults.js +1 -0
  127. package/dist/config/defaults.js.map +1 -1
  128. package/dist/config/find.d.ts.map +1 -1
  129. package/dist/config/find.js +20 -9
  130. package/dist/config/find.js.map +1 -1
  131. package/dist/config/schema.d.ts.map +1 -1
  132. package/dist/config/schema.js +1 -0
  133. package/dist/config/schema.js.map +1 -1
  134. package/dist/config/types.d.ts +27 -50
  135. package/dist/config/types.d.ts.map +1 -1
  136. package/dist/config/types.js +3 -12
  137. package/dist/config/types.js.map +1 -1
  138. package/dist/database/types.d.ts +10 -0
  139. package/dist/database/types.d.ts.map +1 -1
  140. package/dist/database/types.js.map +1 -1
  141. package/dist/email/consoleEmailAdapter.d.ts +3 -0
  142. package/dist/email/consoleEmailAdapter.d.ts.map +1 -0
  143. package/dist/email/consoleEmailAdapter.js +16 -0
  144. package/dist/email/consoleEmailAdapter.js.map +1 -0
  145. package/dist/email/defaults.d.ts +2 -2
  146. package/dist/email/defaults.d.ts.map +1 -1
  147. package/dist/email/defaults.js +3 -3
  148. package/dist/email/defaults.js.map +1 -1
  149. package/dist/email/getStringifiedToAddress.d.ts +3 -0
  150. package/dist/email/getStringifiedToAddress.d.ts.map +1 -0
  151. package/dist/email/getStringifiedToAddress.js +20 -0
  152. package/dist/email/getStringifiedToAddress.js.map +1 -0
  153. package/dist/email/sendEmail.d.ts +3 -2
  154. package/dist/email/sendEmail.d.ts.map +1 -1
  155. package/dist/email/sendEmail.js +8 -4
  156. package/dist/email/sendEmail.js.map +1 -1
  157. package/dist/email/types.d.ts +25 -18
  158. package/dist/email/types.d.ts.map +1 -1
  159. package/dist/email/types.js +5 -1
  160. package/dist/email/types.js.map +1 -1
  161. package/dist/exports/auth.d.ts +1 -0
  162. package/dist/exports/auth.d.ts.map +1 -1
  163. package/dist/exports/auth.js +1 -0
  164. package/dist/exports/auth.js.map +1 -1
  165. package/dist/exports/database.d.ts +1 -1
  166. package/dist/exports/database.d.ts.map +1 -1
  167. package/dist/exports/database.js.map +1 -1
  168. package/dist/exports/i18n/ar.d.ts +2 -0
  169. package/dist/exports/i18n/ar.d.ts.map +1 -0
  170. package/dist/exports/i18n/ar.js +3 -0
  171. package/dist/exports/i18n/ar.js.map +1 -0
  172. package/dist/exports/i18n/az.d.ts +2 -0
  173. package/dist/exports/i18n/az.d.ts.map +1 -0
  174. package/dist/exports/i18n/az.js +3 -0
  175. package/dist/exports/i18n/az.js.map +1 -0
  176. package/dist/exports/i18n/bg.d.ts +2 -0
  177. package/dist/exports/i18n/bg.d.ts.map +1 -0
  178. package/dist/exports/i18n/bg.js +3 -0
  179. package/dist/exports/i18n/bg.js.map +1 -0
  180. package/dist/exports/i18n/cs.d.ts +2 -0
  181. package/dist/exports/i18n/cs.d.ts.map +1 -0
  182. package/dist/exports/i18n/cs.js +3 -0
  183. package/dist/exports/i18n/cs.js.map +1 -0
  184. package/dist/exports/i18n/de.d.ts +2 -0
  185. package/dist/exports/i18n/de.d.ts.map +1 -0
  186. package/dist/exports/i18n/de.js +3 -0
  187. package/dist/exports/i18n/de.js.map +1 -0
  188. package/dist/exports/i18n/en.d.ts +2 -0
  189. package/dist/exports/i18n/en.d.ts.map +1 -0
  190. package/dist/exports/i18n/en.js +3 -0
  191. package/dist/exports/i18n/en.js.map +1 -0
  192. package/dist/exports/i18n/es.d.ts +2 -0
  193. package/dist/exports/i18n/es.d.ts.map +1 -0
  194. package/dist/exports/i18n/es.js +3 -0
  195. package/dist/exports/i18n/es.js.map +1 -0
  196. package/dist/exports/i18n/fa.d.ts +2 -0
  197. package/dist/exports/i18n/fa.d.ts.map +1 -0
  198. package/dist/exports/i18n/fa.js +3 -0
  199. package/dist/exports/i18n/fa.js.map +1 -0
  200. package/dist/exports/i18n/fr.d.ts +2 -0
  201. package/dist/exports/i18n/fr.d.ts.map +1 -0
  202. package/dist/exports/i18n/fr.js +3 -0
  203. package/dist/exports/i18n/fr.js.map +1 -0
  204. package/dist/exports/i18n/hr.d.ts +2 -0
  205. package/dist/exports/i18n/hr.d.ts.map +1 -0
  206. package/dist/exports/i18n/hr.js +3 -0
  207. package/dist/exports/i18n/hr.js.map +1 -0
  208. package/dist/exports/i18n/hu.d.ts +2 -0
  209. package/dist/exports/i18n/hu.d.ts.map +1 -0
  210. package/dist/exports/i18n/hu.js +3 -0
  211. package/dist/exports/i18n/hu.js.map +1 -0
  212. package/dist/exports/i18n/it.d.ts +2 -0
  213. package/dist/exports/i18n/it.d.ts.map +1 -0
  214. package/dist/exports/i18n/it.js +3 -0
  215. package/dist/exports/i18n/it.js.map +1 -0
  216. package/dist/exports/i18n/ja.d.ts +2 -0
  217. package/dist/exports/i18n/ja.d.ts.map +1 -0
  218. package/dist/exports/i18n/ja.js +3 -0
  219. package/dist/exports/i18n/ja.js.map +1 -0
  220. package/dist/exports/i18n/ko.d.ts +2 -0
  221. package/dist/exports/i18n/ko.d.ts.map +1 -0
  222. package/dist/exports/i18n/ko.js +3 -0
  223. package/dist/exports/i18n/ko.js.map +1 -0
  224. package/dist/exports/i18n/my.d.ts +2 -0
  225. package/dist/exports/i18n/my.d.ts.map +1 -0
  226. package/dist/exports/i18n/my.js +3 -0
  227. package/dist/exports/i18n/my.js.map +1 -0
  228. package/dist/exports/i18n/nb.d.ts +2 -0
  229. package/dist/exports/i18n/nb.d.ts.map +1 -0
  230. package/dist/exports/i18n/nb.js +3 -0
  231. package/dist/exports/i18n/nb.js.map +1 -0
  232. package/dist/exports/i18n/nl.d.ts +2 -0
  233. package/dist/exports/i18n/nl.d.ts.map +1 -0
  234. package/dist/exports/i18n/nl.js +3 -0
  235. package/dist/exports/i18n/nl.js.map +1 -0
  236. package/dist/exports/i18n/pl.d.ts +2 -0
  237. package/dist/exports/i18n/pl.d.ts.map +1 -0
  238. package/dist/exports/i18n/pl.js +3 -0
  239. package/dist/exports/i18n/pl.js.map +1 -0
  240. package/dist/exports/i18n/pt.d.ts +2 -0
  241. package/dist/exports/i18n/pt.d.ts.map +1 -0
  242. package/dist/exports/i18n/pt.js +3 -0
  243. package/dist/exports/i18n/pt.js.map +1 -0
  244. package/dist/exports/i18n/ro.d.ts +2 -0
  245. package/dist/exports/i18n/ro.d.ts.map +1 -0
  246. package/dist/exports/i18n/ro.js +3 -0
  247. package/dist/exports/i18n/ro.js.map +1 -0
  248. package/dist/exports/i18n/rs.d.ts +2 -0
  249. package/dist/exports/i18n/rs.d.ts.map +1 -0
  250. package/dist/exports/i18n/rs.js +3 -0
  251. package/dist/exports/i18n/rs.js.map +1 -0
  252. package/dist/exports/i18n/rsLatin.d.ts +2 -0
  253. package/dist/exports/i18n/rsLatin.d.ts.map +1 -0
  254. package/dist/exports/i18n/rsLatin.js +3 -0
  255. package/dist/exports/i18n/rsLatin.js.map +1 -0
  256. package/dist/exports/i18n/ru.d.ts +2 -0
  257. package/dist/exports/i18n/ru.d.ts.map +1 -0
  258. package/dist/exports/i18n/ru.js +3 -0
  259. package/dist/exports/i18n/ru.js.map +1 -0
  260. package/dist/exports/i18n/sv.d.ts +2 -0
  261. package/dist/exports/i18n/sv.d.ts.map +1 -0
  262. package/dist/exports/i18n/sv.js +3 -0
  263. package/dist/exports/i18n/sv.js.map +1 -0
  264. package/dist/exports/i18n/th.d.ts +2 -0
  265. package/dist/exports/i18n/th.d.ts.map +1 -0
  266. package/dist/exports/i18n/th.js +3 -0
  267. package/dist/exports/i18n/th.js.map +1 -0
  268. package/dist/exports/i18n/tr.d.ts +2 -0
  269. package/dist/exports/i18n/tr.d.ts.map +1 -0
  270. package/dist/exports/i18n/tr.js +3 -0
  271. package/dist/exports/i18n/tr.js.map +1 -0
  272. package/dist/exports/i18n/uk.d.ts +2 -0
  273. package/dist/exports/i18n/uk.d.ts.map +1 -0
  274. package/dist/exports/i18n/uk.js +3 -0
  275. package/dist/exports/i18n/uk.js.map +1 -0
  276. package/dist/exports/i18n/vi.d.ts +2 -0
  277. package/dist/exports/i18n/vi.d.ts.map +1 -0
  278. package/dist/exports/i18n/vi.js +3 -0
  279. package/dist/exports/i18n/vi.js.map +1 -0
  280. package/dist/exports/i18n/zh.d.ts +2 -0
  281. package/dist/exports/i18n/zh.d.ts.map +1 -0
  282. package/dist/exports/i18n/zh.js +3 -0
  283. package/dist/exports/i18n/zh.js.map +1 -0
  284. package/dist/exports/i18n/zhTw.d.ts +2 -0
  285. package/dist/exports/i18n/zhTw.d.ts.map +1 -0
  286. package/dist/exports/i18n/zhTw.js +3 -0
  287. package/dist/exports/i18n/zhTw.js.map +1 -0
  288. package/dist/exports/node.d.ts +3 -0
  289. package/dist/exports/node.d.ts.map +1 -1
  290. package/dist/exports/node.js +3 -1
  291. package/dist/exports/node.js.map +1 -1
  292. package/dist/exports/operations.d.ts +1 -0
  293. package/dist/exports/operations.d.ts.map +1 -1
  294. package/dist/exports/operations.js +1 -0
  295. package/dist/exports/operations.js.map +1 -1
  296. package/dist/exports/types.d.ts +1 -0
  297. package/dist/exports/types.d.ts.map +1 -1
  298. package/dist/exports/types.js.map +1 -1
  299. package/dist/exports/utilities.d.ts +4 -2
  300. package/dist/exports/utilities.d.ts.map +1 -1
  301. package/dist/exports/utilities.js +4 -3
  302. package/dist/exports/utilities.js.map +1 -1
  303. package/dist/fields/baseFields/baseBlockFields.d.ts +2 -2
  304. package/dist/fields/baseFields/baseBlockFields.d.ts.map +1 -1
  305. package/dist/fields/baseFields/baseBlockFields.js.map +1 -1
  306. package/dist/fields/config/client.d.ts +128 -103
  307. package/dist/fields/config/client.d.ts.map +1 -1
  308. package/dist/fields/config/client.js +2 -1
  309. package/dist/fields/config/client.js.map +1 -1
  310. package/dist/fields/config/sanitize.spec.js +4 -1
  311. package/dist/fields/config/sanitize.spec.js.map +1 -1
  312. package/dist/fields/config/schema.d.ts.map +1 -1
  313. package/dist/fields/config/schema.js +7 -1
  314. package/dist/fields/config/schema.js.map +1 -1
  315. package/dist/fields/config/types.d.ts +57 -49
  316. package/dist/fields/config/types.d.ts.map +1 -1
  317. package/dist/fields/config/types.js.map +1 -1
  318. package/dist/fields/getDefaultValue.d.ts +2 -2
  319. package/dist/fields/getDefaultValue.d.ts.map +1 -1
  320. package/dist/fields/getDefaultValue.js.map +1 -1
  321. package/dist/fields/validations.d.ts +6 -4
  322. package/dist/fields/validations.d.ts.map +1 -1
  323. package/dist/fields/validations.js +49 -10
  324. package/dist/fields/validations.js.map +1 -1
  325. package/dist/fields/validations.spec.js +6 -1
  326. package/dist/fields/validations.spec.js.map +1 -1
  327. package/dist/globals/config/client.d.ts +1 -1
  328. package/dist/globals/config/client.d.ts.map +1 -1
  329. package/dist/globals/config/client.js +2 -1
  330. package/dist/globals/config/client.js.map +1 -1
  331. package/dist/globals/config/schema.d.ts.map +1 -1
  332. package/dist/globals/config/schema.js +1 -0
  333. package/dist/globals/config/schema.js.map +1 -1
  334. package/dist/globals/config/types.d.ts +4 -3
  335. package/dist/globals/config/types.d.ts.map +1 -1
  336. package/dist/globals/config/types.js.map +1 -1
  337. package/dist/globals/operations/findOne.d.ts +0 -1
  338. package/dist/globals/operations/findOne.d.ts.map +1 -1
  339. package/dist/globals/operations/findOne.js.map +1 -1
  340. package/dist/globals/operations/local/findOne.d.ts +2 -2
  341. package/dist/globals/operations/local/findOne.d.ts.map +1 -1
  342. package/dist/globals/operations/local/findOne.js.map +1 -1
  343. package/dist/globals/operations/local/findVersionByID.d.ts +2 -2
  344. package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
  345. package/dist/globals/operations/local/findVersionByID.js.map +1 -1
  346. package/dist/globals/operations/local/findVersions.d.ts +2 -2
  347. package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
  348. package/dist/globals/operations/local/findVersions.js.map +1 -1
  349. package/dist/globals/operations/local/restoreVersion.d.ts +2 -2
  350. package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
  351. package/dist/globals/operations/local/restoreVersion.js.map +1 -1
  352. package/dist/globals/operations/local/update.d.ts +2 -2
  353. package/dist/globals/operations/local/update.d.ts.map +1 -1
  354. package/dist/globals/operations/local/update.js.map +1 -1
  355. package/dist/index.d.ts +17 -6
  356. package/dist/index.d.ts.map +1 -1
  357. package/dist/index.js +32 -14
  358. package/dist/index.js.map +1 -1
  359. package/dist/preferences/operations/update.d.ts +1 -1
  360. package/dist/preferences/types.d.ts +1 -2
  361. package/dist/preferences/types.d.ts.map +1 -1
  362. package/dist/preferences/types.js.map +1 -1
  363. package/dist/types/index.d.ts +5 -5
  364. package/dist/types/index.d.ts.map +1 -1
  365. package/dist/types/index.js.map +1 -1
  366. package/dist/uploads/generateFileData.d.ts.map +1 -1
  367. package/dist/uploads/generateFileData.js +3 -2
  368. package/dist/uploads/generateFileData.js.map +1 -1
  369. package/dist/uploads/getExternalFile.d.ts +3 -2
  370. package/dist/uploads/getExternalFile.d.ts.map +1 -1
  371. package/dist/uploads/getExternalFile.js +5 -4
  372. package/dist/uploads/getExternalFile.js.map +1 -1
  373. package/dist/uploads/getImageSize.d.ts +1 -1
  374. package/dist/uploads/getImageSize.d.ts.map +1 -1
  375. package/dist/uploads/getImageSize.js +19 -5
  376. package/dist/uploads/getImageSize.js.map +1 -1
  377. package/dist/uploads/tempFile.d.ts +7 -0
  378. package/dist/uploads/tempFile.d.ts.map +1 -0
  379. package/dist/uploads/tempFile.js +39 -0
  380. package/dist/uploads/tempFile.js.map +1 -0
  381. package/dist/uploads/types.d.ts +6 -0
  382. package/dist/uploads/types.d.ts.map +1 -1
  383. package/dist/uploads/types.js.map +1 -1
  384. package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
  385. package/dist/utilities/configToJSONSchema.js +53 -1
  386. package/dist/utilities/configToJSONSchema.js.map +1 -1
  387. package/dist/utilities/importWithoutClientFiles.d.ts.map +1 -1
  388. package/dist/utilities/importWithoutClientFiles.js +8 -5
  389. package/dist/utilities/importWithoutClientFiles.js.map +1 -1
  390. package/dist/utilities/isEntityHidden.d.ts +2 -2
  391. package/dist/utilities/isEntityHidden.d.ts.map +1 -1
  392. package/dist/utilities/isEntityHidden.js.map +1 -1
  393. package/dist/utilities/isReactComponent.d.ts +2 -0
  394. package/dist/utilities/isReactComponent.d.ts.map +1 -1
  395. package/dist/utilities/isReactComponent.js +8 -2
  396. package/dist/utilities/isReactComponent.js.map +1 -1
  397. package/dist/utilities/telemetry/events/adminInit.d.ts +2 -2
  398. package/dist/utilities/telemetry/events/adminInit.d.ts.map +1 -1
  399. package/dist/utilities/telemetry/events/adminInit.js.map +1 -1
  400. package/dist/utilities/telemetry/index.d.ts +3 -0
  401. package/dist/utilities/telemetry/index.d.ts.map +1 -1
  402. package/dist/utilities/telemetry/index.js +32 -6
  403. package/dist/utilities/telemetry/index.js.map +1 -1
  404. package/dist/versions/saveVersion.js +1 -1
  405. package/dist/versions/saveVersion.js.map +1 -1
  406. package/package.json +15 -6
  407. package/src/index.ts +42 -18
  408. package/auth.d.ts +0 -6
  409. package/auth.js +0 -6
  410. package/config.d.ts +0 -14
  411. package/config.js +0 -14
  412. package/database.d.ts +0 -23
  413. package/database.js +0 -22
  414. package/dist/email/build.d.ts +0 -5
  415. package/dist/email/build.d.ts.map +0 -1
  416. package/dist/email/build.js +0 -63
  417. package/dist/email/build.js.map +0 -1
  418. package/dist/email/mockHandler.d.ts +0 -5
  419. package/dist/email/mockHandler.d.ts.map +0 -1
  420. package/dist/email/mockHandler.js +0 -24
  421. package/dist/email/mockHandler.js.map +0 -1
  422. package/dist/utilities/getIDType.d.ts +0 -4
  423. package/dist/utilities/getIDType.d.ts.map +0 -1
  424. package/dist/utilities/getIDType.js +0 -8
  425. package/dist/utilities/getIDType.js.map +0 -1
  426. package/errors.d.ts +0 -2
  427. package/errors.js +0 -3
  428. package/node.d.ts +0 -3
  429. package/node.js +0 -4
  430. package/operations.d.ts +0 -30
  431. package/operations.js +0 -31
  432. package/types.d.ts +0 -17
  433. package/types.js +0 -5
  434. package/uploads.d.ts +0 -2
  435. package/uploads.js +0 -3
  436. package/utilities.d.ts +0 -32
  437. package/utilities.js +0 -33
  438. package/versions.d.ts +0 -9
  439. package/versions.js +0 -9
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/config/client.ts"],"sourcesContent":["import type { TFunction } from '@payloadcms/translations'\n\nimport type { Field, FieldBase } from '../../fields/config/types.js'\n\nexport type ClientFieldConfig = Omit<Field, 'access' | 'defaultValue' | 'hooks' | 'validate'>\n\nexport type ServerOnlyFieldProperties =\n | 'editor' // This is a `richText` only property\n | 'filterOptions' // This is a `relationship` and `upload` only property\n | 'label'\n | keyof Pick<FieldBase, 'access' | 'defaultValue' | 'hooks' | 'validate'>\n\nexport type ServerOnlyFieldAdminProperties = keyof Pick<\n FieldBase['admin'],\n 'components' | 'condition' | 'description'\n>\n\nexport const createClientFieldConfig = ({\n field: incomingField,\n t,\n}: {\n field: Field\n t: TFunction\n}) => {\n const field = { ...incomingField }\n\n const serverOnlyFieldProperties: Partial<ServerOnlyFieldProperties>[] = [\n 'hooks',\n 'access',\n 'validate',\n 'defaultValue',\n 'label',\n 'filterOptions', // This is a `relationship` and `upload` only property\n 'editor', // This is a `richText` only property\n // `fields`\n // `blocks`\n // `tabs`\n // `admin`\n // are all handled separately\n ]\n\n serverOnlyFieldProperties.forEach((key) => {\n if (key in field) {\n delete field[key]\n }\n })\n\n if ('options' in field && Array.isArray(field.options)) {\n field.options = field.options.map((option) => {\n if (typeof option === 'object' && typeof option.label === 'function') {\n return {\n label: option.label({ t }),\n value: option.value,\n }\n }\n\n return option\n })\n }\n\n if ('fields' in field) {\n field.fields = createClientFieldConfigs({ fields: field.fields, t })\n }\n\n if ('blocks' in field) {\n field.blocks = field.blocks.map((block) => {\n const sanitized = { ...block }\n sanitized.fields = createClientFieldConfigs({ fields: sanitized.fields, t })\n return sanitized\n })\n }\n\n if ('tabs' in field) {\n // @ts-expect-error\n field.tabs = field.tabs.map((tab) => createClientFieldConfig({ field: tab, t }))\n }\n\n if ('admin' in field) {\n field.admin = { ...field.admin }\n\n const serverOnlyFieldAdminProperties: Partial<ServerOnlyFieldAdminProperties>[] = [\n 'components',\n 'condition',\n 'description',\n ]\n\n serverOnlyFieldAdminProperties.forEach((key) => {\n if (key in field.admin) {\n delete field.admin[key]\n }\n })\n }\n\n return field\n}\n\nexport const createClientFieldConfigs = ({\n fields,\n t,\n}: {\n fields: Field[]\n t: TFunction\n}): Field[] => fields.map((field) => createClientFieldConfig({ field, t }))\n"],"names":["createClientFieldConfig","field","incomingField","t","serverOnlyFieldProperties","forEach","key","Array","isArray","options","map","option","label","value","fields","createClientFieldConfigs","blocks","block","sanitized","tabs","tab","admin","serverOnlyFieldAdminProperties"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAiBA,OAAO,MAAMA,0BAA0B,CAAC,EACtCC,OAAOC,aAAa,EACpBC,CAAC,EAIF;IACC,MAAMF,QAAQ;QAAE,GAAGC,aAAa;IAAC;IAEjC,MAAME,4BAAkE;QACtE;QACA;QACA;QACA;QACA;QACA;QACA;KAMD;IAEDA,0BAA0BC,OAAO,CAAC,CAACC;QACjC,IAAIA,OAAOL,OAAO;YAChB,OAAOA,KAAK,CAACK,IAAI;QACnB;IACF;IAEA,IAAI,aAAaL,SAASM,MAAMC,OAAO,CAACP,MAAMQ,OAAO,GAAG;QACtDR,MAAMQ,OAAO,GAAGR,MAAMQ,OAAO,CAACC,GAAG,CAAC,CAACC;YACjC,IAAI,OAAOA,WAAW,YAAY,OAAOA,OAAOC,KAAK,KAAK,YAAY;gBACpE,OAAO;oBACLA,OAAOD,OAAOC,KAAK,CAAC;wBAAET;oBAAE;oBACxBU,OAAOF,OAAOE,KAAK;gBACrB;YACF;YAEA,OAAOF;QACT;IACF;IAEA,IAAI,YAAYV,OAAO;QACrBA,MAAMa,MAAM,GAAGC,yBAAyB;YAAED,QAAQb,MAAMa,MAAM;YAAEX;QAAE;IACpE;IAEA,IAAI,YAAYF,OAAO;QACrBA,MAAMe,MAAM,GAAGf,MAAMe,MAAM,CAACN,GAAG,CAAC,CAACO;YAC/B,MAAMC,YAAY;gBAAE,GAAGD,KAAK;YAAC;YAC7BC,UAAUJ,MAAM,GAAGC,yBAAyB;gBAAED,QAAQI,UAAUJ,MAAM;gBAAEX;YAAE;YAC1E,OAAOe;QACT;IACF;IAEA,IAAI,UAAUjB,OAAO;QACnB,mBAAmB;QACnBA,MAAMkB,IAAI,GAAGlB,MAAMkB,IAAI,CAACT,GAAG,CAAC,CAACU,MAAQpB,wBAAwB;gBAAEC,OAAOmB;gBAAKjB;YAAE;IAC/E;IAEA,IAAI,WAAWF,OAAO;QACpBA,MAAMoB,KAAK,GAAG;YAAE,GAAGpB,MAAMoB,KAAK;QAAC;QAE/B,MAAMC,iCAA4E;YAChF;YACA;YACA;SACD;QAEDA,+BAA+BjB,OAAO,CAAC,CAACC;YACtC,IAAIA,OAAOL,MAAMoB,KAAK,EAAE;gBACtB,OAAOpB,MAAMoB,KAAK,CAACf,IAAI;YACzB;QACF;IACF;IAEA,OAAOL;AACT,EAAC;AAED,OAAO,MAAMc,2BAA2B,CAAC,EACvCD,MAAM,EACNX,CAAC,EAIF,GAAcW,OAAOJ,GAAG,CAAC,CAACT,QAAUD,wBAAwB;YAAEC;YAAOE;QAAE,IAAG"}
1
+ {"version":3,"sources":["../../../src/fields/config/client.ts"],"sourcesContent":["import type { TFunction } from '@payloadcms/translations'\n\nimport type { Field, FieldBase } from '../../fields/config/types.js'\n\nexport type ClientFieldConfig = Omit<Field, 'access' | 'defaultValue' | 'hooks' | 'validate'>\n\nexport type ServerOnlyFieldProperties =\n | 'editor' // This is a `richText` only property\n | 'filterOptions' // This is a `relationship` and `upload` only property\n | 'label'\n | keyof Pick<FieldBase, 'access' | 'custom' | 'defaultValue' | 'hooks' | 'validate'>\n\nexport type ServerOnlyFieldAdminProperties = keyof Pick<\n FieldBase['admin'],\n 'components' | 'condition' | 'description'\n>\n\nexport const createClientFieldConfig = ({\n field: incomingField,\n t,\n}: {\n field: Field\n t: TFunction\n}) => {\n const field = { ...incomingField }\n\n const serverOnlyFieldProperties: Partial<ServerOnlyFieldProperties>[] = [\n 'hooks',\n 'access',\n 'validate',\n 'defaultValue',\n 'label',\n 'filterOptions', // This is a `relationship` and `upload` only property\n 'editor', // This is a `richText` only property\n 'custom',\n // `fields`\n // `blocks`\n // `tabs`\n // `admin`\n // are all handled separately\n ]\n\n serverOnlyFieldProperties.forEach((key) => {\n if (key in field) {\n delete field[key]\n }\n })\n\n if ('options' in field && Array.isArray(field.options)) {\n field.options = field.options.map((option) => {\n if (typeof option === 'object' && typeof option.label === 'function') {\n return {\n label: option.label({ t }),\n value: option.value,\n }\n }\n\n return option\n })\n }\n\n if ('fields' in field) {\n field.fields = createClientFieldConfigs({ fields: field.fields, t })\n }\n\n if ('blocks' in field) {\n field.blocks = field.blocks.map((block) => {\n const sanitized = { ...block }\n sanitized.fields = createClientFieldConfigs({ fields: sanitized.fields, t })\n return sanitized\n })\n }\n\n if ('tabs' in field) {\n // @ts-expect-error\n field.tabs = field.tabs.map((tab) => createClientFieldConfig({ field: tab, t }))\n }\n\n if ('admin' in field) {\n field.admin = { ...field.admin }\n\n const serverOnlyFieldAdminProperties: Partial<ServerOnlyFieldAdminProperties>[] = [\n 'components',\n 'condition',\n 'description',\n ]\n\n serverOnlyFieldAdminProperties.forEach((key) => {\n if (key in field.admin) {\n delete field.admin[key]\n }\n })\n }\n\n return field\n}\n\nexport const createClientFieldConfigs = ({\n fields,\n t,\n}: {\n fields: Field[]\n t: TFunction\n}): Field[] => fields.map((field) => createClientFieldConfig({ field, t }))\n"],"names":["createClientFieldConfig","field","incomingField","t","serverOnlyFieldProperties","forEach","key","Array","isArray","options","map","option","label","value","fields","createClientFieldConfigs","blocks","block","sanitized","tabs","tab","admin","serverOnlyFieldAdminProperties"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAiBA,OAAO,MAAMA,0BAA0B,CAAC,EACtCC,OAAOC,aAAa,EACpBC,CAAC,EAIF;IACC,MAAMF,QAAQ;QAAE,GAAGC,aAAa;IAAC;IAEjC,MAAME,4BAAkE;QACtE;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KAMD;IAEDA,0BAA0BC,OAAO,CAAC,CAACC;QACjC,IAAIA,OAAOL,OAAO;YAChB,OAAOA,KAAK,CAACK,IAAI;QACnB;IACF;IAEA,IAAI,aAAaL,SAASM,MAAMC,OAAO,CAACP,MAAMQ,OAAO,GAAG;QACtDR,MAAMQ,OAAO,GAAGR,MAAMQ,OAAO,CAACC,GAAG,CAAC,CAACC;YACjC,IAAI,OAAOA,WAAW,YAAY,OAAOA,OAAOC,KAAK,KAAK,YAAY;gBACpE,OAAO;oBACLA,OAAOD,OAAOC,KAAK,CAAC;wBAAET;oBAAE;oBACxBU,OAAOF,OAAOE,KAAK;gBACrB;YACF;YAEA,OAAOF;QACT;IACF;IAEA,IAAI,YAAYV,OAAO;QACrBA,MAAMa,MAAM,GAAGC,yBAAyB;YAAED,QAAQb,MAAMa,MAAM;YAAEX;QAAE;IACpE;IAEA,IAAI,YAAYF,OAAO;QACrBA,MAAMe,MAAM,GAAGf,MAAMe,MAAM,CAACN,GAAG,CAAC,CAACO;YAC/B,MAAMC,YAAY;gBAAE,GAAGD,KAAK;YAAC;YAC7BC,UAAUJ,MAAM,GAAGC,yBAAyB;gBAAED,QAAQI,UAAUJ,MAAM;gBAAEX;YAAE;YAC1E,OAAOe;QACT;IACF;IAEA,IAAI,UAAUjB,OAAO;QACnB,mBAAmB;QACnBA,MAAMkB,IAAI,GAAGlB,MAAMkB,IAAI,CAACT,GAAG,CAAC,CAACU,MAAQpB,wBAAwB;gBAAEC,OAAOmB;gBAAKjB;YAAE;IAC/E;IAEA,IAAI,WAAWF,OAAO;QACpBA,MAAMoB,KAAK,GAAG;YAAE,GAAGpB,MAAMoB,KAAK;QAAC;QAE/B,MAAMC,iCAA4E;YAChF;YACA;YACA;SACD;QAEDA,+BAA+BjB,OAAO,CAAC,CAACC;YACtC,IAAIA,OAAOL,MAAMoB,KAAK,EAAE;gBACtB,OAAOpB,MAAMoB,KAAK,CAACf,IAAI;YACzB;QACF;IACF;IAEA,OAAOL;AACT,EAAC;AAED,OAAO,MAAMc,2BAA2B,CAAC,EACvCD,MAAM,EACNX,CAAC,EAIF,GAAcW,OAAOJ,GAAG,CAAC,CAACT,QAAUD,wBAAwB;YAAEC;YAAOE;QAAE,IAAG"}
@@ -2,7 +2,10 @@ import { InvalidFieldName, InvalidFieldRelationship, MissingFieldType } from '..
2
2
  import { sanitizeFields } from './sanitize';
3
3
  const dummyConfig = {
4
4
  collections: [],
5
- db: ()=>({})
5
+ db: {
6
+ defaultIDType: 'text',
7
+ init: ()=>({})
8
+ }
6
9
  };
7
10
  describe('sanitizeFields', ()=>{
8
11
  it('should throw on missing type field', ()=>{
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/config/sanitize.spec.ts"],"sourcesContent":["import type {\n ArrayField,\n Block,\n BlockField,\n CheckboxField,\n Field,\n NumberField,\n TextField,\n} from './types'\nimport { Config } from '../../config/types'\nimport { InvalidFieldName, InvalidFieldRelationship, MissingFieldType } from '../../errors'\nimport { sanitizeFields } from './sanitize'\nimport type { BaseDatabaseAdapter } from '../../database/types.js'\n\nconst dummyConfig: Config = {\n collections: [],\n db: () => ({}) as BaseDatabaseAdapter,\n}\n\ndescribe('sanitizeFields', () => {\n it('should throw on missing type field', () => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const fields: Field[] = [\n {\n label: 'some-collection',\n name: 'Some Collection',\n },\n ]\n expect(() => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n sanitizeFields({\n config: dummyConfig,\n fields,\n validRelationships: [],\n })\n }).toThrow(MissingFieldType)\n })\n it('should throw on invalid field name', () => {\n const fields: Field[] = [\n {\n label: 'some.collection',\n name: 'some.collection',\n type: 'text',\n },\n ]\n expect(() => {\n sanitizeFields({\n config: dummyConfig,\n fields,\n validRelationships: [],\n })\n }).toThrow(InvalidFieldName)\n })\n\n describe('auto-labeling', () => {\n it('should populate label if missing', () => {\n const fields: Field[] = [\n {\n name: 'someField',\n type: 'text',\n },\n ]\n const sanitizedField = sanitizeFields({\n config: dummyConfig,\n fields,\n validRelationships: [],\n })[0] as TextField\n expect(sanitizedField.name).toStrictEqual('someField')\n expect(sanitizedField.label).toStrictEqual('Some Field')\n expect(sanitizedField.type).toStrictEqual('text')\n })\n it('should allow auto-label override', () => {\n const fields: Field[] = [\n {\n label: 'Do not label',\n name: 'someField',\n type: 'text',\n },\n ]\n const sanitizedField = sanitizeFields({\n config: dummyConfig,\n fields,\n validRelationships: [],\n })[0] as TextField\n expect(sanitizedField.name).toStrictEqual('someField')\n expect(sanitizedField.label).toStrictEqual('Do not label')\n expect(sanitizedField.type).toStrictEqual('text')\n })\n\n describe('opt-out', () => {\n it('should allow label opt-out', () => {\n const fields: Field[] = [\n {\n label: false,\n name: 'someField',\n type: 'text',\n },\n ]\n const sanitizedField = sanitizeFields({\n config: dummyConfig,\n fields,\n validRelationships: [],\n })[0] as TextField\n expect(sanitizedField.name).toStrictEqual('someField')\n expect(sanitizedField.label).toStrictEqual(false)\n expect(sanitizedField.type).toStrictEqual('text')\n })\n\n it('should allow label opt-out for arrays', () => {\n const arrayField: ArrayField = {\n fields: [\n {\n name: 'itemName',\n type: 'text',\n },\n ],\n label: false,\n name: 'items',\n type: 'array',\n }\n const sanitizedField = sanitizeFields({\n config: dummyConfig,\n fields: [arrayField],\n validRelationships: [],\n })[0] as ArrayField\n expect(sanitizedField.name).toStrictEqual('items')\n expect(sanitizedField.label).toStrictEqual(false)\n expect(sanitizedField.type).toStrictEqual('array')\n expect(sanitizedField.labels).toBeUndefined()\n })\n it('should allow label opt-out for blocks', () => {\n const fields: Field[] = [\n {\n blocks: [\n {\n fields: [\n {\n name: 'testNumber',\n type: 'number',\n },\n ],\n slug: 'number',\n },\n ],\n label: false,\n name: 'noLabelBlock',\n type: 'blocks',\n },\n ]\n const sanitizedField = sanitizeFields({\n config: dummyConfig,\n fields,\n validRelationships: [],\n })[0] as BlockField\n expect(sanitizedField.name).toStrictEqual('noLabelBlock')\n expect(sanitizedField.label).toStrictEqual(false)\n expect(sanitizedField.type).toStrictEqual('blocks')\n expect(sanitizedField.labels).toBeUndefined()\n })\n })\n\n it('should label arrays with plural and singular', () => {\n const fields: Field[] = [\n {\n fields: [\n {\n name: 'itemName',\n type: 'text',\n },\n ],\n name: 'items',\n type: 'array',\n },\n ]\n const sanitizedField = sanitizeFields({\n config: dummyConfig,\n fields,\n validRelationships: [],\n })[0] as ArrayField\n expect(sanitizedField.name).toStrictEqual('items')\n expect(sanitizedField.label).toStrictEqual('Items')\n expect(sanitizedField.type).toStrictEqual('array')\n expect(sanitizedField.labels).toMatchObject({ plural: 'Items', singular: 'Item' })\n })\n\n it('should label blocks with plural and singular', () => {\n const fields: Field[] = [\n {\n blocks: [\n {\n fields: [{ name: 'testNumber', type: 'number' }],\n slug: 'number',\n },\n ],\n name: 'specialBlock',\n type: 'blocks',\n },\n ]\n const sanitizedField = sanitizeFields({\n config: dummyConfig,\n fields,\n validRelationships: [],\n })[0] as BlockField\n expect(sanitizedField.name).toStrictEqual('specialBlock')\n expect(sanitizedField.label).toStrictEqual('Special Block')\n expect(sanitizedField.type).toStrictEqual('blocks')\n expect(sanitizedField.labels).toMatchObject({\n plural: 'Special Blocks',\n singular: 'Special Block',\n })\n expect((sanitizedField.blocks[0].fields[0] as NumberField).label).toStrictEqual('Test Number')\n })\n })\n\n describe('relationships', () => {\n it('should not throw on valid relationship', () => {\n const validRelationships = ['some-collection']\n const fields: Field[] = [\n {\n label: 'my-relationship',\n name: 'My Relationship',\n relationTo: 'some-collection',\n type: 'relationship',\n },\n ]\n expect(() => {\n sanitizeFields({ config: dummyConfig, fields, validRelationships })\n }).not.toThrow()\n })\n\n it('should not throw on valid relationship - multiple', () => {\n const validRelationships = ['some-collection', 'another-collection']\n const fields: Field[] = [\n {\n label: 'my-relationship',\n name: 'My Relationship',\n relationTo: ['some-collection', 'another-collection'],\n type: 'relationship',\n },\n ]\n expect(() => {\n sanitizeFields({ config: dummyConfig, fields, validRelationships })\n }).not.toThrow()\n })\n\n it('should not throw on valid relationship inside blocks', () => {\n const validRelationships = ['some-collection']\n const relationshipBlock: Block = {\n fields: [\n {\n label: 'my-relationship',\n name: 'My Relationship',\n relationTo: 'some-collection',\n type: 'relationship',\n },\n ],\n slug: 'relationshipBlock',\n }\n const fields: Field[] = [\n {\n blocks: [relationshipBlock],\n label: 'Layout Blocks',\n name: 'layout',\n type: 'blocks',\n },\n ]\n expect(() => {\n sanitizeFields({ config: dummyConfig, fields, validRelationships })\n }).not.toThrow()\n })\n\n it('should throw on invalid relationship', () => {\n const validRelationships = ['some-collection']\n const fields: Field[] = [\n {\n label: 'my-relationship',\n name: 'My Relationship',\n relationTo: 'not-valid',\n type: 'relationship',\n },\n ]\n expect(() => {\n sanitizeFields({ config: dummyConfig, fields, validRelationships })\n }).toThrow(InvalidFieldRelationship)\n })\n\n it('should throw on invalid relationship - multiple', () => {\n const validRelationships = ['some-collection', 'another-collection']\n const fields: Field[] = [\n {\n label: 'my-relationship',\n name: 'My Relationship',\n relationTo: ['some-collection', 'not-valid'],\n type: 'relationship',\n },\n ]\n expect(() => {\n sanitizeFields({ config: dummyConfig, fields, validRelationships })\n }).toThrow(InvalidFieldRelationship)\n })\n\n it('should throw on invalid relationship inside blocks', () => {\n const validRelationships = ['some-collection']\n const relationshipBlock: Block = {\n fields: [\n {\n label: 'my-relationship',\n name: 'My Relationship',\n relationTo: 'not-valid',\n type: 'relationship',\n },\n ],\n slug: 'relationshipBlock',\n }\n const fields: Field[] = [\n {\n blocks: [relationshipBlock],\n label: 'Layout Blocks',\n name: 'layout',\n type: 'blocks',\n },\n ]\n expect(() => {\n sanitizeFields({ config: dummyConfig, fields, validRelationships })\n }).toThrow(InvalidFieldRelationship)\n })\n\n it('should defaultValue of checkbox to false if required and undefined', () => {\n const fields: Field[] = [\n {\n name: 'My Checkbox',\n required: true,\n type: 'checkbox',\n },\n ]\n\n const sanitizedField = sanitizeFields({\n config: dummyConfig,\n fields,\n validRelationships: [],\n })[0] as CheckboxField\n expect(sanitizedField.defaultValue).toStrictEqual(false)\n })\n\n it('should return empty field array if no fields', () => {\n const sanitizedFields = sanitizeFields({\n config: dummyConfig,\n fields: [],\n validRelationships: [],\n })\n expect(sanitizedFields).toStrictEqual([])\n })\n })\n})\n"],"names":["InvalidFieldName","InvalidFieldRelationship","MissingFieldType","sanitizeFields","dummyConfig","collections","db","describe","it","fields","label","name","expect","config","validRelationships","toThrow","type","sanitizedField","toStrictEqual","arrayField","labels","toBeUndefined","blocks","slug","toMatchObject","plural","singular","relationTo","not","relationshipBlock","required","defaultValue","sanitizedFields"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/fields/config/sanitize.spec.ts"],"sourcesContent":["import type {\n ArrayField,\n Block,\n BlockField,\n CheckboxField,\n Field,\n NumberField,\n TextField,\n} from './types'\nimport { Config } from '../../config/types'\nimport { InvalidFieldName, InvalidFieldRelationship, MissingFieldType } from '../../errors'\nimport { sanitizeFields } from './sanitize'\nimport type { BaseDatabaseAdapter } from '../../database/types.js'\n\nconst dummyConfig: Config = {\n collections: [],\n db: {\n defaultIDType: 'text',\n init: () => ({}) as BaseDatabaseAdapter['init'],\n } as BaseDatabaseAdapter,\n}\n\ndescribe('sanitizeFields', () => {\n it('should throw on missing type field', () => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const fields: Field[] = [\n {\n label: 'some-collection',\n name: 'Some Collection',\n },\n ]\n expect(() => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n sanitizeFields({\n config: dummyConfig,\n fields,\n validRelationships: [],\n })\n }).toThrow(MissingFieldType)\n })\n it('should throw on invalid field name', () => {\n const fields: Field[] = [\n {\n label: 'some.collection',\n name: 'some.collection',\n type: 'text',\n },\n ]\n expect(() => {\n sanitizeFields({\n config: dummyConfig,\n fields,\n validRelationships: [],\n })\n }).toThrow(InvalidFieldName)\n })\n\n describe('auto-labeling', () => {\n it('should populate label if missing', () => {\n const fields: Field[] = [\n {\n name: 'someField',\n type: 'text',\n },\n ]\n const sanitizedField = sanitizeFields({\n config: dummyConfig,\n fields,\n validRelationships: [],\n })[0] as TextField\n expect(sanitizedField.name).toStrictEqual('someField')\n expect(sanitizedField.label).toStrictEqual('Some Field')\n expect(sanitizedField.type).toStrictEqual('text')\n })\n it('should allow auto-label override', () => {\n const fields: Field[] = [\n {\n label: 'Do not label',\n name: 'someField',\n type: 'text',\n },\n ]\n const sanitizedField = sanitizeFields({\n config: dummyConfig,\n fields,\n validRelationships: [],\n })[0] as TextField\n expect(sanitizedField.name).toStrictEqual('someField')\n expect(sanitizedField.label).toStrictEqual('Do not label')\n expect(sanitizedField.type).toStrictEqual('text')\n })\n\n describe('opt-out', () => {\n it('should allow label opt-out', () => {\n const fields: Field[] = [\n {\n label: false,\n name: 'someField',\n type: 'text',\n },\n ]\n const sanitizedField = sanitizeFields({\n config: dummyConfig,\n fields,\n validRelationships: [],\n })[0] as TextField\n expect(sanitizedField.name).toStrictEqual('someField')\n expect(sanitizedField.label).toStrictEqual(false)\n expect(sanitizedField.type).toStrictEqual('text')\n })\n\n it('should allow label opt-out for arrays', () => {\n const arrayField: ArrayField = {\n fields: [\n {\n name: 'itemName',\n type: 'text',\n },\n ],\n label: false,\n name: 'items',\n type: 'array',\n }\n const sanitizedField = sanitizeFields({\n config: dummyConfig,\n fields: [arrayField],\n validRelationships: [],\n })[0] as ArrayField\n expect(sanitizedField.name).toStrictEqual('items')\n expect(sanitizedField.label).toStrictEqual(false)\n expect(sanitizedField.type).toStrictEqual('array')\n expect(sanitizedField.labels).toBeUndefined()\n })\n it('should allow label opt-out for blocks', () => {\n const fields: Field[] = [\n {\n blocks: [\n {\n fields: [\n {\n name: 'testNumber',\n type: 'number',\n },\n ],\n slug: 'number',\n },\n ],\n label: false,\n name: 'noLabelBlock',\n type: 'blocks',\n },\n ]\n const sanitizedField = sanitizeFields({\n config: dummyConfig,\n fields,\n validRelationships: [],\n })[0] as BlockField\n expect(sanitizedField.name).toStrictEqual('noLabelBlock')\n expect(sanitizedField.label).toStrictEqual(false)\n expect(sanitizedField.type).toStrictEqual('blocks')\n expect(sanitizedField.labels).toBeUndefined()\n })\n })\n\n it('should label arrays with plural and singular', () => {\n const fields: Field[] = [\n {\n fields: [\n {\n name: 'itemName',\n type: 'text',\n },\n ],\n name: 'items',\n type: 'array',\n },\n ]\n const sanitizedField = sanitizeFields({\n config: dummyConfig,\n fields,\n validRelationships: [],\n })[0] as ArrayField\n expect(sanitizedField.name).toStrictEqual('items')\n expect(sanitizedField.label).toStrictEqual('Items')\n expect(sanitizedField.type).toStrictEqual('array')\n expect(sanitizedField.labels).toMatchObject({ plural: 'Items', singular: 'Item' })\n })\n\n it('should label blocks with plural and singular', () => {\n const fields: Field[] = [\n {\n blocks: [\n {\n fields: [{ name: 'testNumber', type: 'number' }],\n slug: 'number',\n },\n ],\n name: 'specialBlock',\n type: 'blocks',\n },\n ]\n const sanitizedField = sanitizeFields({\n config: dummyConfig,\n fields,\n validRelationships: [],\n })[0] as BlockField\n expect(sanitizedField.name).toStrictEqual('specialBlock')\n expect(sanitizedField.label).toStrictEqual('Special Block')\n expect(sanitizedField.type).toStrictEqual('blocks')\n expect(sanitizedField.labels).toMatchObject({\n plural: 'Special Blocks',\n singular: 'Special Block',\n })\n expect((sanitizedField.blocks[0].fields[0] as NumberField).label).toStrictEqual('Test Number')\n })\n })\n\n describe('relationships', () => {\n it('should not throw on valid relationship', () => {\n const validRelationships = ['some-collection']\n const fields: Field[] = [\n {\n label: 'my-relationship',\n name: 'My Relationship',\n relationTo: 'some-collection',\n type: 'relationship',\n },\n ]\n expect(() => {\n sanitizeFields({ config: dummyConfig, fields, validRelationships })\n }).not.toThrow()\n })\n\n it('should not throw on valid relationship - multiple', () => {\n const validRelationships = ['some-collection', 'another-collection']\n const fields: Field[] = [\n {\n label: 'my-relationship',\n name: 'My Relationship',\n relationTo: ['some-collection', 'another-collection'],\n type: 'relationship',\n },\n ]\n expect(() => {\n sanitizeFields({ config: dummyConfig, fields, validRelationships })\n }).not.toThrow()\n })\n\n it('should not throw on valid relationship inside blocks', () => {\n const validRelationships = ['some-collection']\n const relationshipBlock: Block = {\n fields: [\n {\n label: 'my-relationship',\n name: 'My Relationship',\n relationTo: 'some-collection',\n type: 'relationship',\n },\n ],\n slug: 'relationshipBlock',\n }\n const fields: Field[] = [\n {\n blocks: [relationshipBlock],\n label: 'Layout Blocks',\n name: 'layout',\n type: 'blocks',\n },\n ]\n expect(() => {\n sanitizeFields({ config: dummyConfig, fields, validRelationships })\n }).not.toThrow()\n })\n\n it('should throw on invalid relationship', () => {\n const validRelationships = ['some-collection']\n const fields: Field[] = [\n {\n label: 'my-relationship',\n name: 'My Relationship',\n relationTo: 'not-valid',\n type: 'relationship',\n },\n ]\n expect(() => {\n sanitizeFields({ config: dummyConfig, fields, validRelationships })\n }).toThrow(InvalidFieldRelationship)\n })\n\n it('should throw on invalid relationship - multiple', () => {\n const validRelationships = ['some-collection', 'another-collection']\n const fields: Field[] = [\n {\n label: 'my-relationship',\n name: 'My Relationship',\n relationTo: ['some-collection', 'not-valid'],\n type: 'relationship',\n },\n ]\n expect(() => {\n sanitizeFields({ config: dummyConfig, fields, validRelationships })\n }).toThrow(InvalidFieldRelationship)\n })\n\n it('should throw on invalid relationship inside blocks', () => {\n const validRelationships = ['some-collection']\n const relationshipBlock: Block = {\n fields: [\n {\n label: 'my-relationship',\n name: 'My Relationship',\n relationTo: 'not-valid',\n type: 'relationship',\n },\n ],\n slug: 'relationshipBlock',\n }\n const fields: Field[] = [\n {\n blocks: [relationshipBlock],\n label: 'Layout Blocks',\n name: 'layout',\n type: 'blocks',\n },\n ]\n expect(() => {\n sanitizeFields({ config: dummyConfig, fields, validRelationships })\n }).toThrow(InvalidFieldRelationship)\n })\n\n it('should defaultValue of checkbox to false if required and undefined', () => {\n const fields: Field[] = [\n {\n name: 'My Checkbox',\n required: true,\n type: 'checkbox',\n },\n ]\n\n const sanitizedField = sanitizeFields({\n config: dummyConfig,\n fields,\n validRelationships: [],\n })[0] as CheckboxField\n expect(sanitizedField.defaultValue).toStrictEqual(false)\n })\n\n it('should return empty field array if no fields', () => {\n const sanitizedFields = sanitizeFields({\n config: dummyConfig,\n fields: [],\n validRelationships: [],\n })\n expect(sanitizedFields).toStrictEqual([])\n })\n })\n})\n"],"names":["InvalidFieldName","InvalidFieldRelationship","MissingFieldType","sanitizeFields","dummyConfig","collections","db","defaultIDType","init","describe","it","fields","label","name","expect","config","validRelationships","toThrow","type","sanitizedField","toStrictEqual","arrayField","labels","toBeUndefined","blocks","slug","toMatchObject","plural","singular","relationTo","not","relationshipBlock","required","defaultValue","sanitizedFields"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAUA,SAASA,gBAAgB,EAAEC,wBAAwB,EAAEC,gBAAgB,QAAQ,eAAc;AAC3F,SAASC,cAAc,QAAQ,aAAY;AAG3C,MAAMC,cAAsB;IAC1BC,aAAa,EAAE;IACfC,IAAI;QACFC,eAAe;QACfC,MAAM,IAAO,CAAA,CAAC,CAAA;IAChB;AACF;AAEAC,SAAS,kBAAkB;IACzBC,GAAG,sCAAsC;QACvC,6DAA6D;QAC7D,aAAa;QACb,MAAMC,SAAkB;YACtB;gBACEC,OAAO;gBACPC,MAAM;YACR;SACD;QACDC,OAAO;YACL,6DAA6D;YAC7D,aAAa;YACbX,eAAe;gBACbY,QAAQX;gBACRO;gBACAK,oBAAoB,EAAE;YACxB;QACF,GAAGC,OAAO,CAACf;IACb;IACAQ,GAAG,sCAAsC;QACvC,MAAMC,SAAkB;YACtB;gBACEC,OAAO;gBACPC,MAAM;gBACNK,MAAM;YACR;SACD;QACDJ,OAAO;YACLX,eAAe;gBACbY,QAAQX;gBACRO;gBACAK,oBAAoB,EAAE;YACxB;QACF,GAAGC,OAAO,CAACjB;IACb;IAEAS,SAAS,iBAAiB;QACxBC,GAAG,oCAAoC;YACrC,MAAMC,SAAkB;gBACtB;oBACEE,MAAM;oBACNK,MAAM;gBACR;aACD;YACD,MAAMC,iBAAiBhB,eAAe;gBACpCY,QAAQX;gBACRO;gBACAK,oBAAoB,EAAE;YACxB,EAAE,CAAC,EAAE;YACLF,OAAOK,eAAeN,IAAI,EAAEO,aAAa,CAAC;YAC1CN,OAAOK,eAAeP,KAAK,EAAEQ,aAAa,CAAC;YAC3CN,OAAOK,eAAeD,IAAI,EAAEE,aAAa,CAAC;QAC5C;QACAV,GAAG,oCAAoC;YACrC,MAAMC,SAAkB;gBACtB;oBACEC,OAAO;oBACPC,MAAM;oBACNK,MAAM;gBACR;aACD;YACD,MAAMC,iBAAiBhB,eAAe;gBACpCY,QAAQX;gBACRO;gBACAK,oBAAoB,EAAE;YACxB,EAAE,CAAC,EAAE;YACLF,OAAOK,eAAeN,IAAI,EAAEO,aAAa,CAAC;YAC1CN,OAAOK,eAAeP,KAAK,EAAEQ,aAAa,CAAC;YAC3CN,OAAOK,eAAeD,IAAI,EAAEE,aAAa,CAAC;QAC5C;QAEAX,SAAS,WAAW;YAClBC,GAAG,8BAA8B;gBAC/B,MAAMC,SAAkB;oBACtB;wBACEC,OAAO;wBACPC,MAAM;wBACNK,MAAM;oBACR;iBACD;gBACD,MAAMC,iBAAiBhB,eAAe;oBACpCY,QAAQX;oBACRO;oBACAK,oBAAoB,EAAE;gBACxB,EAAE,CAAC,EAAE;gBACLF,OAAOK,eAAeN,IAAI,EAAEO,aAAa,CAAC;gBAC1CN,OAAOK,eAAeP,KAAK,EAAEQ,aAAa,CAAC;gBAC3CN,OAAOK,eAAeD,IAAI,EAAEE,aAAa,CAAC;YAC5C;YAEAV,GAAG,yCAAyC;gBAC1C,MAAMW,aAAyB;oBAC7BV,QAAQ;wBACN;4BACEE,MAAM;4BACNK,MAAM;wBACR;qBACD;oBACDN,OAAO;oBACPC,MAAM;oBACNK,MAAM;gBACR;gBACA,MAAMC,iBAAiBhB,eAAe;oBACpCY,QAAQX;oBACRO,QAAQ;wBAACU;qBAAW;oBACpBL,oBAAoB,EAAE;gBACxB,EAAE,CAAC,EAAE;gBACLF,OAAOK,eAAeN,IAAI,EAAEO,aAAa,CAAC;gBAC1CN,OAAOK,eAAeP,KAAK,EAAEQ,aAAa,CAAC;gBAC3CN,OAAOK,eAAeD,IAAI,EAAEE,aAAa,CAAC;gBAC1CN,OAAOK,eAAeG,MAAM,EAAEC,aAAa;YAC7C;YACAb,GAAG,yCAAyC;gBAC1C,MAAMC,SAAkB;oBACtB;wBACEa,QAAQ;4BACN;gCACEb,QAAQ;oCACN;wCACEE,MAAM;wCACNK,MAAM;oCACR;iCACD;gCACDO,MAAM;4BACR;yBACD;wBACDb,OAAO;wBACPC,MAAM;wBACNK,MAAM;oBACR;iBACD;gBACD,MAAMC,iBAAiBhB,eAAe;oBACpCY,QAAQX;oBACRO;oBACAK,oBAAoB,EAAE;gBACxB,EAAE,CAAC,EAAE;gBACLF,OAAOK,eAAeN,IAAI,EAAEO,aAAa,CAAC;gBAC1CN,OAAOK,eAAeP,KAAK,EAAEQ,aAAa,CAAC;gBAC3CN,OAAOK,eAAeD,IAAI,EAAEE,aAAa,CAAC;gBAC1CN,OAAOK,eAAeG,MAAM,EAAEC,aAAa;YAC7C;QACF;QAEAb,GAAG,gDAAgD;YACjD,MAAMC,SAAkB;gBACtB;oBACEA,QAAQ;wBACN;4BACEE,MAAM;4BACNK,MAAM;wBACR;qBACD;oBACDL,MAAM;oBACNK,MAAM;gBACR;aACD;YACD,MAAMC,iBAAiBhB,eAAe;gBACpCY,QAAQX;gBACRO;gBACAK,oBAAoB,EAAE;YACxB,EAAE,CAAC,EAAE;YACLF,OAAOK,eAAeN,IAAI,EAAEO,aAAa,CAAC;YAC1CN,OAAOK,eAAeP,KAAK,EAAEQ,aAAa,CAAC;YAC3CN,OAAOK,eAAeD,IAAI,EAAEE,aAAa,CAAC;YAC1CN,OAAOK,eAAeG,MAAM,EAAEI,aAAa,CAAC;gBAAEC,QAAQ;gBAASC,UAAU;YAAO;QAClF;QAEAlB,GAAG,gDAAgD;YACjD,MAAMC,SAAkB;gBACtB;oBACEa,QAAQ;wBACN;4BACEb,QAAQ;gCAAC;oCAAEE,MAAM;oCAAcK,MAAM;gCAAS;6BAAE;4BAChDO,MAAM;wBACR;qBACD;oBACDZ,MAAM;oBACNK,MAAM;gBACR;aACD;YACD,MAAMC,iBAAiBhB,eAAe;gBACpCY,QAAQX;gBACRO;gBACAK,oBAAoB,EAAE;YACxB,EAAE,CAAC,EAAE;YACLF,OAAOK,eAAeN,IAAI,EAAEO,aAAa,CAAC;YAC1CN,OAAOK,eAAeP,KAAK,EAAEQ,aAAa,CAAC;YAC3CN,OAAOK,eAAeD,IAAI,EAAEE,aAAa,CAAC;YAC1CN,OAAOK,eAAeG,MAAM,EAAEI,aAAa,CAAC;gBAC1CC,QAAQ;gBACRC,UAAU;YACZ;YACAd,OAAO,AAACK,eAAeK,MAAM,CAAC,EAAE,CAACb,MAAM,CAAC,EAAE,CAAiBC,KAAK,EAAEQ,aAAa,CAAC;QAClF;IACF;IAEAX,SAAS,iBAAiB;QACxBC,GAAG,0CAA0C;YAC3C,MAAMM,qBAAqB;gBAAC;aAAkB;YAC9C,MAAML,SAAkB;gBACtB;oBACEC,OAAO;oBACPC,MAAM;oBACNgB,YAAY;oBACZX,MAAM;gBACR;aACD;YACDJ,OAAO;gBACLX,eAAe;oBAAEY,QAAQX;oBAAaO;oBAAQK;gBAAmB;YACnE,GAAGc,GAAG,CAACb,OAAO;QAChB;QAEAP,GAAG,qDAAqD;YACtD,MAAMM,qBAAqB;gBAAC;gBAAmB;aAAqB;YACpE,MAAML,SAAkB;gBACtB;oBACEC,OAAO;oBACPC,MAAM;oBACNgB,YAAY;wBAAC;wBAAmB;qBAAqB;oBACrDX,MAAM;gBACR;aACD;YACDJ,OAAO;gBACLX,eAAe;oBAAEY,QAAQX;oBAAaO;oBAAQK;gBAAmB;YACnE,GAAGc,GAAG,CAACb,OAAO;QAChB;QAEAP,GAAG,wDAAwD;YACzD,MAAMM,qBAAqB;gBAAC;aAAkB;YAC9C,MAAMe,oBAA2B;gBAC/BpB,QAAQ;oBACN;wBACEC,OAAO;wBACPC,MAAM;wBACNgB,YAAY;wBACZX,MAAM;oBACR;iBACD;gBACDO,MAAM;YACR;YACA,MAAMd,SAAkB;gBACtB;oBACEa,QAAQ;wBAACO;qBAAkB;oBAC3BnB,OAAO;oBACPC,MAAM;oBACNK,MAAM;gBACR;aACD;YACDJ,OAAO;gBACLX,eAAe;oBAAEY,QAAQX;oBAAaO;oBAAQK;gBAAmB;YACnE,GAAGc,GAAG,CAACb,OAAO;QAChB;QAEAP,GAAG,wCAAwC;YACzC,MAAMM,qBAAqB;gBAAC;aAAkB;YAC9C,MAAML,SAAkB;gBACtB;oBACEC,OAAO;oBACPC,MAAM;oBACNgB,YAAY;oBACZX,MAAM;gBACR;aACD;YACDJ,OAAO;gBACLX,eAAe;oBAAEY,QAAQX;oBAAaO;oBAAQK;gBAAmB;YACnE,GAAGC,OAAO,CAAChB;QACb;QAEAS,GAAG,mDAAmD;YACpD,MAAMM,qBAAqB;gBAAC;gBAAmB;aAAqB;YACpE,MAAML,SAAkB;gBACtB;oBACEC,OAAO;oBACPC,MAAM;oBACNgB,YAAY;wBAAC;wBAAmB;qBAAY;oBAC5CX,MAAM;gBACR;aACD;YACDJ,OAAO;gBACLX,eAAe;oBAAEY,QAAQX;oBAAaO;oBAAQK;gBAAmB;YACnE,GAAGC,OAAO,CAAChB;QACb;QAEAS,GAAG,sDAAsD;YACvD,MAAMM,qBAAqB;gBAAC;aAAkB;YAC9C,MAAMe,oBAA2B;gBAC/BpB,QAAQ;oBACN;wBACEC,OAAO;wBACPC,MAAM;wBACNgB,YAAY;wBACZX,MAAM;oBACR;iBACD;gBACDO,MAAM;YACR;YACA,MAAMd,SAAkB;gBACtB;oBACEa,QAAQ;wBAACO;qBAAkB;oBAC3BnB,OAAO;oBACPC,MAAM;oBACNK,MAAM;gBACR;aACD;YACDJ,OAAO;gBACLX,eAAe;oBAAEY,QAAQX;oBAAaO;oBAAQK;gBAAmB;YACnE,GAAGC,OAAO,CAAChB;QACb;QAEAS,GAAG,sEAAsE;YACvE,MAAMC,SAAkB;gBACtB;oBACEE,MAAM;oBACNmB,UAAU;oBACVd,MAAM;gBACR;aACD;YAED,MAAMC,iBAAiBhB,eAAe;gBACpCY,QAAQX;gBACRO;gBACAK,oBAAoB,EAAE;YACxB,EAAE,CAAC,EAAE;YACLF,OAAOK,eAAec,YAAY,EAAEb,aAAa,CAAC;QACpD;QAEAV,GAAG,gDAAgD;YACjD,MAAMwB,kBAAkB/B,eAAe;gBACrCY,QAAQX;gBACRO,QAAQ,EAAE;gBACVK,oBAAoB,EAAE;YACxB;YACAF,OAAOoB,iBAAiBd,aAAa,CAAC,EAAE;QAC1C;IACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/fields/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AAIrB,eAAO,MAAM,wBAAwB,uBAOvB,CAAA;AAEd,eAAO,MAAM,eAAe,uBAe1B,CAAA;AAEF,eAAO,MAAM,SAAS,uBAoCV,CAAA;AAEZ,eAAO,MAAM,OAAO,uBAKlB,CAAA;AAEF,eAAO,MAAM,IAAI,uBAsBf,CAAA;AAEF,eAAO,MAAM,MAAM,uBAgCjB,CAAA;AAEF,eAAO,MAAM,QAAQ,uBAiBnB,CAAA;AAEF,eAAO,MAAM,KAAK,uBAgBhB,CAAA;AAEF,eAAO,MAAM,IAAI,uBAYf,CAAA;AAEF,eAAO,MAAM,IAAI,uBAWf,CAAA;AAEF,eAAO,MAAM,MAAM,uBAgCjB,CAAA;AAEF,eAAO,MAAM,KAAK,uBA4BhB,CAAA;AAEF,eAAO,MAAM,GAAG,uBAId,CAAA;AAEF,eAAO,MAAM,WAAW,uBAKtB,CAAA;AAeF,eAAO,MAAM,IAAI,uBAQf,CAAA;AAEF,eAAO,MAAM,KAAK,uBAShB,CAAA;AAEF,eAAO,MAAM,KAAK,uBA0BhB,CAAA;AAEF,eAAO,MAAM,MAAM,uBAajB,CAAA;AAEF,eAAO,MAAM,QAAQ,uBAYnB,CAAA;AAEF,eAAO,MAAM,KAAK,uBAYhB,CAAA;AAEF,eAAO,MAAM,YAAY,uBA+BvB,CAAA;AAEF,eAAO,MAAM,MAAM,uBAuCjB,CAAA;AAEF,eAAO,MAAM,QAAQ,uBAqBnB,CAAA;AAEF,eAAO,MAAM,IAAI,uBAyBf,CAAA;AAEF,eAAO,MAAM,EAAE,uBAoBb,CAAA;AAEF,QAAA,MAAM,WAAW,6BAyBH,CAAA;AAEd,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/fields/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AAIrB,eAAO,MAAM,wBAAwB,uBAOvB,CAAA;AAEd,eAAO,MAAM,eAAe,uBAgB1B,CAAA;AAEF,eAAO,MAAM,SAAS,uBAoCV,CAAA;AAEZ,eAAO,MAAM,OAAO,uBAKlB,CAAA;AAEF,eAAO,MAAM,IAAI,uBAsBf,CAAA;AAEF,eAAO,MAAM,MAAM,uBAgCjB,CAAA;AAEF,eAAO,MAAM,QAAQ,uBAiBnB,CAAA;AAEF,eAAO,MAAM,KAAK,uBAgBhB,CAAA;AAEF,eAAO,MAAM,IAAI,uBAYf,CAAA;AAEF,eAAO,MAAM,IAAI,uBAYf,CAAA;AAEF,eAAO,MAAM,MAAM,uBAgCjB,CAAA;AAEF,eAAO,MAAM,KAAK,uBA4BhB,CAAA;AAEF,eAAO,MAAM,GAAG,uBAId,CAAA;AAEF,eAAO,MAAM,WAAW,uBAKtB,CAAA;AAeF,eAAO,MAAM,IAAI,uBAQf,CAAA;AAEF,eAAO,MAAM,KAAK,uBAShB,CAAA;AAEF,eAAO,MAAM,KAAK,uBA0BhB,CAAA;AAEF,eAAO,MAAM,MAAM,uBAajB,CAAA;AAEF,eAAO,MAAM,QAAQ,uBAYnB,CAAA;AAEF,eAAO,MAAM,KAAK,uBAYhB,CAAA;AAEF,eAAO,MAAM,YAAY,uBA+BvB,CAAA;AAEF,eAAO,MAAM,MAAM,uBA0CjB,CAAA;AAEF,eAAO,MAAM,QAAQ,uBAqBnB,CAAA;AAEF,eAAO,MAAM,IAAI,uBAyBf,CAAA;AAEF,eAAO,MAAM,EAAE,uBAqBb,CAAA;AAEF,QAAA,MAAM,WAAW,6BAyBH,CAAA;AAEd,eAAe,WAAW,CAAA"}
@@ -9,6 +9,7 @@ export const baseAdminFields = joi.object().keys({
9
9
  className: joi.string(),
10
10
  components: baseAdminComponentFields,
11
11
  condition: joi.func(),
12
+ custom: joi.object().pattern(joi.string(), joi.any()),
12
13
  description: joi.alternatives().try(joi.string(), joi.object().pattern(joi.string(), [
13
14
  joi.string()
14
15
  ]), componentSchema),
@@ -176,7 +177,8 @@ export const json = baseField.keys({
176
177
  }),
177
178
  editorOptions: joi.object().unknown()
178
179
  }),
179
- defaultValue: joi.alternatives().try(joi.array(), joi.object())
180
+ defaultValue: joi.alternatives().try(joi.array(), joi.object()),
181
+ jsonSchema: joi.object().unknown()
180
182
  });
181
183
  export const select = baseField.keys({
182
184
  name: joi.string().required(),
@@ -379,6 +381,9 @@ export const blocks = baseField.keys({
379
381
  type: joi.string().valid('blocks').required(),
380
382
  blocks: joi.array().items(joi.object({
381
383
  slug: joi.string().required(),
384
+ admin: joi.object().keys({
385
+ custom: joi.object().pattern(joi.string(), joi.any())
386
+ }),
382
387
  custom: joi.object().pattern(joi.string(), joi.any()),
383
388
  dbName: joi.alternatives().try(joi.string(), joi.func()),
384
389
  fields: joi.array().items(joi.link('#field')),
@@ -463,6 +468,7 @@ export const ui = joi.object().keys({
463
468
  Field: componentSchema
464
469
  }).default({}),
465
470
  condition: joi.func(),
471
+ custom: joi.object().pattern(joi.string(), joi.any()),
466
472
  position: joi.string().valid('sidebar'),
467
473
  width: joi.string()
468
474
  }).default(),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/config/schema.ts"],"sourcesContent":["import joi from 'joi'\n\nimport { componentSchema } from '../../config/shared/componentSchema.js'\n\nexport const baseAdminComponentFields = joi\n .object()\n .keys({\n Cell: componentSchema,\n Field: componentSchema,\n Filter: componentSchema,\n })\n .default({})\n\nexport const baseAdminFields = joi.object().keys({\n className: joi.string(),\n components: baseAdminComponentFields,\n condition: joi.func(),\n description: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()]), componentSchema),\n disableBulkEdit: joi.boolean().default(false),\n disabled: joi.boolean().default(false),\n hidden: joi.boolean().default(false),\n initCollapsed: joi.boolean().default(false),\n position: joi.string().valid('sidebar'),\n readOnly: joi.boolean().default(false),\n style: joi.object().unknown(),\n width: joi.string(),\n})\n\nexport const baseField = joi\n .object()\n .keys({\n access: joi.object().keys({\n create: joi.func(),\n read: joi.func(),\n update: joi.func(),\n }),\n admin: baseAdminFields.default(),\n custom: joi.object().pattern(joi.string(), joi.any()),\n hidden: joi.boolean().default(false),\n hooks: joi\n .object()\n .keys({\n afterChange: joi.array().items(joi.func()).default([]),\n afterRead: joi.array().items(joi.func()).default([]),\n beforeChange: joi.array().items(joi.func()).default([]),\n beforeDuplicate: joi.array().items(joi.func()).default([]),\n beforeValidate: joi.array().items(joi.func()).default([]),\n })\n .default(),\n index: joi.boolean().default(false),\n label: joi\n .alternatives()\n .try(\n joi.func(),\n joi.object().pattern(joi.string(), [joi.string()]),\n joi.string(),\n joi.valid(false),\n ),\n localized: joi.boolean().default(false),\n required: joi.boolean().default(false),\n saveToJWT: joi.alternatives().try(joi.boolean(), joi.string()).default(false),\n unique: joi.boolean().default(false),\n validate: joi.func(),\n })\n .default()\n\nexport const idField = baseField.keys({\n name: joi.string().valid('id'),\n type: joi.string().valid('text', 'number'),\n localized: joi.invalid(true),\n required: joi.not(false, 0).default(true),\n})\n\nexport const text = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('text').required(),\n admin: baseAdminFields.keys({\n autoComplete: joi.string(),\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi.array().items(componentSchema),\n beforeInput: joi.array().items(componentSchema),\n }),\n placeholder: joi\n .alternatives()\n .try(joi.object().pattern(joi.string(), [joi.string()]), joi.string()),\n rtl: joi.boolean(),\n }),\n defaultValue: joi.alternatives().try(joi.string(), joi.func()),\n hasMany: joi.boolean().default(false),\n maxLength: joi.number(),\n maxRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }),\n minLength: joi.number(),\n minRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }),\n})\n\nexport const number = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('number').required(),\n admin: baseAdminFields.keys({\n autoComplete: joi.string(),\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi\n .array()\n .items(componentSchema)\n .when('hasMany', { not: true, otherwise: joi.forbidden() }),\n beforeInput: joi\n .array()\n .items(componentSchema)\n .when('hasMany', { not: true, otherwise: joi.forbidden() }),\n }),\n placeholder: joi.string(),\n step: joi.number(),\n }),\n defaultValue: joi\n .alternatives()\n .try(\n joi.number(),\n joi.func(),\n joi.array().when('hasMany', { not: true, then: joi.forbidden() }),\n ),\n hasMany: joi.boolean().default(false),\n max: joi.number(),\n maxRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }),\n min: joi.number(),\n minRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }),\n})\n\nexport const textarea = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('textarea').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi.array().items(componentSchema),\n beforeInput: joi.array().items(componentSchema),\n }),\n placeholder: joi.string(),\n rows: joi.number(),\n rtl: joi.boolean(),\n }),\n defaultValue: joi.alternatives().try(joi.string(), joi.func()),\n maxLength: joi.number(),\n minLength: joi.number(),\n})\n\nexport const email = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('email').required(),\n admin: baseAdminFields.keys({\n autoComplete: joi.string(),\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi.array().items(componentSchema),\n beforeInput: joi.array().items(componentSchema),\n }),\n placeholder: joi.string(),\n }),\n defaultValue: joi.alternatives().try(joi.string(), joi.func()),\n maxLength: joi.number(),\n minLength: joi.number(),\n})\n\nexport const code = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('code').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n editorOptions: joi.object().unknown(), // Editor['options'] @monaco-editor/react\n language: joi.string(),\n }),\n defaultValue: joi.alternatives().try(joi.string(), joi.func()),\n})\n\nexport const json = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('json').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n editorOptions: joi.object().unknown(), // Editor['options'] @monaco-editor/react\n }),\n defaultValue: joi.alternatives().try(joi.array(), joi.object()),\n})\n\nexport const select = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('select').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n isClearable: joi.boolean().default(false),\n isSortable: joi.boolean().default(false),\n }),\n dbName: joi.alternatives().try(joi.string(), joi.func()),\n defaultValue: joi\n .alternatives()\n .try(joi.string().allow(''), joi.array().items(joi.string().allow('')), joi.func()),\n enumName: joi.alternatives().try(joi.string(), joi.func()),\n hasMany: joi.boolean().default(false),\n options: joi\n .array()\n .min(1)\n .items(\n joi.alternatives().try(\n joi.string(),\n joi.object({\n label: joi\n .alternatives()\n .try(joi.func(), joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n value: joi.string().required().allow(''),\n }),\n ),\n )\n .required(),\n})\n\nexport const radio = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('radio').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n layout: joi.string().valid('vertical', 'horizontal'),\n }),\n defaultValue: joi.alternatives().try(joi.string().allow(''), joi.func()),\n enumName: joi.alternatives().try(joi.string(), joi.func()),\n options: joi\n .array()\n .min(1)\n .items(\n joi.alternatives().try(\n joi.string(),\n joi.object({\n label: joi\n .alternatives()\n .try(joi.func(), joi.string(), joi.object().pattern(joi.string(), [joi.string()]))\n .required(),\n value: joi.string().required().allow(''),\n }),\n ),\n )\n .required(),\n})\n\nexport const row = baseField.keys({\n type: joi.string().valid('row').required(),\n admin: baseAdminFields.default(),\n fields: joi.array().items(joi.link('#field')),\n})\n\nexport const collapsible = baseField.keys({\n type: joi.string().valid('collapsible').required(),\n admin: baseAdminFields.default(),\n fields: joi.array().items(joi.link('#field')),\n label: joi.alternatives().try(joi.string(), componentSchema),\n})\n\nconst tab = baseField.keys({\n name: joi.string().when('localized', { is: joi.exist(), then: joi.required() }),\n description: joi.alternatives().try(joi.string(), componentSchema),\n fields: joi.array().items(joi.link('#field')).required(),\n interfaceName: joi.string().when('name', { not: joi.exist(), then: joi.forbidden() }),\n label: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()]))\n .when('name', { is: joi.not(), then: joi.required() }),\n localized: joi.boolean(),\n saveToJWT: joi.alternatives().try(joi.boolean(), joi.string()),\n})\n\nexport const tabs = baseField.keys({\n type: joi.string().valid('tabs').required(),\n admin: baseAdminFields.keys({\n description: joi.forbidden(),\n }),\n fields: joi.forbidden(),\n localized: joi.forbidden(),\n tabs: joi.array().items(tab).required(),\n})\n\nexport const group = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('group').required(),\n admin: baseAdminFields.keys({\n hideGutter: joi.boolean().default(true),\n }),\n defaultValue: joi.alternatives().try(joi.object(), joi.func()),\n fields: joi.array().items(joi.link('#field')),\n interfaceName: joi.string(),\n})\n\nexport const array = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('array').required(),\n admin: baseAdminFields\n .keys({\n components: baseAdminComponentFields\n .keys({\n RowLabel: componentSchema,\n })\n .default({}),\n })\n .default({}),\n dbName: joi.alternatives().try(joi.string(), joi.func()),\n defaultValue: joi.alternatives().try(joi.array().items(joi.object()), joi.func()),\n fields: joi.array().items(joi.link('#field')).required(),\n interfaceName: joi.string(),\n labels: joi.object({\n plural: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n singular: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n }),\n maxRows: joi.number(),\n minRows: joi.number(),\n})\n\nexport const upload = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('upload').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n }),\n defaultValue: joi.alternatives().try(joi.object(), joi.func()),\n filterOptions: joi.alternatives().try(joi.object(), joi.func()),\n maxDepth: joi.number(),\n relationTo: joi.string().required(),\n})\n\nexport const checkbox = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('checkbox').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi.array().items(componentSchema),\n beforeInput: joi.array().items(componentSchema),\n }),\n }),\n defaultValue: joi.alternatives().try(joi.boolean(), joi.func()),\n})\n\nexport const point = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('point').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi.array().items(componentSchema),\n beforeInput: joi.array().items(componentSchema),\n }),\n }),\n defaultValue: joi.alternatives().try(joi.array().items(joi.number()).max(2).min(2), joi.func()),\n})\n\nexport const relationship = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('relationship').required(),\n admin: baseAdminFields.keys({\n allowCreate: joi.boolean().default(true),\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n isSortable: joi.boolean().default(false),\n sortOptions: joi.alternatives().conditional(joi.ref('...relationTo'), {\n is: joi.string(),\n otherwise: joi.object().pattern(joi.string(), joi.string()),\n then: joi.string(),\n }),\n }),\n defaultValue: joi.alternatives().try(joi.func()),\n filterOptions: joi.alternatives().try(joi.object(), joi.func()),\n hasMany: joi.boolean().default(false),\n max: joi\n .number()\n .when('hasMany', { is: joi.not(true), then: joi.forbidden() })\n .warning('deprecated', { message: 'Use maxRows instead.' }),\n maxDepth: joi.number(),\n maxRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }),\n min: joi\n .number()\n .when('hasMany', { is: joi.not(true), then: joi.forbidden() })\n .warning('deprecated', { message: 'Use minRows instead.' }),\n minRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }),\n relationTo: joi.alternatives().try(joi.string().required(), joi.array().items(joi.string())),\n})\n\nexport const blocks = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('blocks').required(),\n blocks: joi\n .array()\n .items(\n joi.object({\n slug: joi.string().required(),\n custom: joi.object().pattern(joi.string(), joi.any()),\n dbName: joi.alternatives().try(joi.string(), joi.func()),\n fields: joi.array().items(joi.link('#field')),\n graphQL: joi.object().keys({\n singularName: joi.string(),\n }),\n imageAltText: joi.string(),\n imageURL: joi.string(),\n interfaceName: joi.string(),\n labels: joi.object({\n plural: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n singular: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n }),\n }),\n )\n .required(),\n defaultValue: joi.alternatives().try(joi.array().items(joi.object()), joi.func()),\n labels: joi.object({\n plural: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n singular: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n }),\n maxRows: joi.number(),\n minRows: joi.number(),\n})\n\nexport const richText = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('richText').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n }),\n defaultValue: joi.alternatives().try(joi.array().items(joi.object()), joi.func(), joi.object()),\n editor: joi\n .object()\n .keys({\n CellComponent: componentSchema.optional(),\n FieldComponent: componentSchema.optional(),\n afterReadPromise: joi.func().optional(),\n outputSchema: joi.func().optional(),\n populationPromise: joi.func().optional(),\n validate: joi.func().required(),\n })\n .unknown(),\n})\n\nexport const date = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('date').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi.array().items(componentSchema),\n beforeInput: joi.array().items(componentSchema),\n }),\n date: joi.object({\n displayFormat: joi.string(),\n maxDate: joi.date(),\n maxTime: joi.date(),\n minDate: joi.date(),\n minTime: joi.date(),\n monthsToShow: joi.number(),\n overrides: joi.object().unknown(),\n pickerAppearance: joi.string(),\n timeFormat: joi.string(),\n timeIntervals: joi.number(),\n }),\n placeholder: joi.string(),\n }),\n defaultValue: joi.alternatives().try(joi.string(), joi.func()),\n})\n\nexport const ui = joi.object().keys({\n name: joi.string().required(),\n type: joi.string().valid('ui').required(),\n admin: joi\n .object()\n .keys({\n components: joi\n .object()\n .keys({\n Cell: componentSchema,\n Field: componentSchema,\n })\n .default({}),\n condition: joi.func(),\n position: joi.string().valid('sidebar'),\n width: joi.string(),\n })\n .default(),\n custom: joi.object().pattern(joi.string(), joi.any()),\n label: joi.alternatives().try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n})\n\nconst fieldSchema = joi\n .alternatives()\n .try(\n text,\n number,\n textarea,\n email,\n code,\n json,\n select,\n group,\n array,\n row,\n collapsible,\n tabs,\n radio,\n relationship,\n checkbox,\n upload,\n richText,\n blocks,\n date,\n point,\n ui,\n )\n .id('field')\n\nexport default fieldSchema\n"],"names":["joi","componentSchema","baseAdminComponentFields","object","keys","Cell","Field","Filter","default","baseAdminFields","className","string","components","condition","func","description","alternatives","try","pattern","disableBulkEdit","boolean","disabled","hidden","initCollapsed","position","valid","readOnly","style","unknown","width","baseField","access","create","read","update","admin","custom","any","hooks","afterChange","array","items","afterRead","beforeChange","beforeDuplicate","beforeValidate","index","label","localized","required","saveToJWT","unique","validate","idField","name","type","invalid","not","text","autoComplete","Error","Label","afterInput","beforeInput","placeholder","rtl","defaultValue","hasMany","maxLength","number","maxRows","when","is","then","forbidden","minLength","minRows","otherwise","step","max","min","textarea","rows","email","code","editorOptions","language","json","select","isClearable","isSortable","dbName","allow","enumName","options","value","radio","layout","row","fields","link","collapsible","tab","exist","interfaceName","tabs","group","hideGutter","RowLabel","labels","plural","singular","upload","filterOptions","maxDepth","relationTo","checkbox","point","relationship","allowCreate","sortOptions","conditional","ref","warning","message","blocks","slug","graphQL","singularName","imageAltText","imageURL","richText","editor","CellComponent","optional","FieldComponent","afterReadPromise","outputSchema","populationPromise","date","displayFormat","maxDate","maxTime","minDate","minTime","monthsToShow","overrides","pickerAppearance","timeFormat","timeIntervals","ui","fieldSchema","id"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/fields/config/schema.ts"],"sourcesContent":["import joi from 'joi'\n\nimport { componentSchema } from '../../config/shared/componentSchema.js'\n\nexport const baseAdminComponentFields = joi\n .object()\n .keys({\n Cell: componentSchema,\n Field: componentSchema,\n Filter: componentSchema,\n })\n .default({})\n\nexport const baseAdminFields = joi.object().keys({\n className: joi.string(),\n components: baseAdminComponentFields,\n condition: joi.func(),\n custom: joi.object().pattern(joi.string(), joi.any()),\n description: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()]), componentSchema),\n disableBulkEdit: joi.boolean().default(false),\n disabled: joi.boolean().default(false),\n hidden: joi.boolean().default(false),\n initCollapsed: joi.boolean().default(false),\n position: joi.string().valid('sidebar'),\n readOnly: joi.boolean().default(false),\n style: joi.object().unknown(),\n width: joi.string(),\n})\n\nexport const baseField = joi\n .object()\n .keys({\n access: joi.object().keys({\n create: joi.func(),\n read: joi.func(),\n update: joi.func(),\n }),\n admin: baseAdminFields.default(),\n custom: joi.object().pattern(joi.string(), joi.any()),\n hidden: joi.boolean().default(false),\n hooks: joi\n .object()\n .keys({\n afterChange: joi.array().items(joi.func()).default([]),\n afterRead: joi.array().items(joi.func()).default([]),\n beforeChange: joi.array().items(joi.func()).default([]),\n beforeDuplicate: joi.array().items(joi.func()).default([]),\n beforeValidate: joi.array().items(joi.func()).default([]),\n })\n .default(),\n index: joi.boolean().default(false),\n label: joi\n .alternatives()\n .try(\n joi.func(),\n joi.object().pattern(joi.string(), [joi.string()]),\n joi.string(),\n joi.valid(false),\n ),\n localized: joi.boolean().default(false),\n required: joi.boolean().default(false),\n saveToJWT: joi.alternatives().try(joi.boolean(), joi.string()).default(false),\n unique: joi.boolean().default(false),\n validate: joi.func(),\n })\n .default()\n\nexport const idField = baseField.keys({\n name: joi.string().valid('id'),\n type: joi.string().valid('text', 'number'),\n localized: joi.invalid(true),\n required: joi.not(false, 0).default(true),\n})\n\nexport const text = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('text').required(),\n admin: baseAdminFields.keys({\n autoComplete: joi.string(),\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi.array().items(componentSchema),\n beforeInput: joi.array().items(componentSchema),\n }),\n placeholder: joi\n .alternatives()\n .try(joi.object().pattern(joi.string(), [joi.string()]), joi.string()),\n rtl: joi.boolean(),\n }),\n defaultValue: joi.alternatives().try(joi.string(), joi.func()),\n hasMany: joi.boolean().default(false),\n maxLength: joi.number(),\n maxRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }),\n minLength: joi.number(),\n minRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }),\n})\n\nexport const number = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('number').required(),\n admin: baseAdminFields.keys({\n autoComplete: joi.string(),\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi\n .array()\n .items(componentSchema)\n .when('hasMany', { not: true, otherwise: joi.forbidden() }),\n beforeInput: joi\n .array()\n .items(componentSchema)\n .when('hasMany', { not: true, otherwise: joi.forbidden() }),\n }),\n placeholder: joi.string(),\n step: joi.number(),\n }),\n defaultValue: joi\n .alternatives()\n .try(\n joi.number(),\n joi.func(),\n joi.array().when('hasMany', { not: true, then: joi.forbidden() }),\n ),\n hasMany: joi.boolean().default(false),\n max: joi.number(),\n maxRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }),\n min: joi.number(),\n minRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }),\n})\n\nexport const textarea = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('textarea').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi.array().items(componentSchema),\n beforeInput: joi.array().items(componentSchema),\n }),\n placeholder: joi.string(),\n rows: joi.number(),\n rtl: joi.boolean(),\n }),\n defaultValue: joi.alternatives().try(joi.string(), joi.func()),\n maxLength: joi.number(),\n minLength: joi.number(),\n})\n\nexport const email = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('email').required(),\n admin: baseAdminFields.keys({\n autoComplete: joi.string(),\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi.array().items(componentSchema),\n beforeInput: joi.array().items(componentSchema),\n }),\n placeholder: joi.string(),\n }),\n defaultValue: joi.alternatives().try(joi.string(), joi.func()),\n maxLength: joi.number(),\n minLength: joi.number(),\n})\n\nexport const code = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('code').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n editorOptions: joi.object().unknown(), // Editor['options'] @monaco-editor/react\n language: joi.string(),\n }),\n defaultValue: joi.alternatives().try(joi.string(), joi.func()),\n})\n\nexport const json = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('json').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n editorOptions: joi.object().unknown(), // Editor['options'] @monaco-editor/react\n }),\n defaultValue: joi.alternatives().try(joi.array(), joi.object()),\n jsonSchema: joi.object().unknown(),\n})\n\nexport const select = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('select').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n isClearable: joi.boolean().default(false),\n isSortable: joi.boolean().default(false),\n }),\n dbName: joi.alternatives().try(joi.string(), joi.func()),\n defaultValue: joi\n .alternatives()\n .try(joi.string().allow(''), joi.array().items(joi.string().allow('')), joi.func()),\n enumName: joi.alternatives().try(joi.string(), joi.func()),\n hasMany: joi.boolean().default(false),\n options: joi\n .array()\n .min(1)\n .items(\n joi.alternatives().try(\n joi.string(),\n joi.object({\n label: joi\n .alternatives()\n .try(joi.func(), joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n value: joi.string().required().allow(''),\n }),\n ),\n )\n .required(),\n})\n\nexport const radio = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('radio').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n layout: joi.string().valid('vertical', 'horizontal'),\n }),\n defaultValue: joi.alternatives().try(joi.string().allow(''), joi.func()),\n enumName: joi.alternatives().try(joi.string(), joi.func()),\n options: joi\n .array()\n .min(1)\n .items(\n joi.alternatives().try(\n joi.string(),\n joi.object({\n label: joi\n .alternatives()\n .try(joi.func(), joi.string(), joi.object().pattern(joi.string(), [joi.string()]))\n .required(),\n value: joi.string().required().allow(''),\n }),\n ),\n )\n .required(),\n})\n\nexport const row = baseField.keys({\n type: joi.string().valid('row').required(),\n admin: baseAdminFields.default(),\n fields: joi.array().items(joi.link('#field')),\n})\n\nexport const collapsible = baseField.keys({\n type: joi.string().valid('collapsible').required(),\n admin: baseAdminFields.default(),\n fields: joi.array().items(joi.link('#field')),\n label: joi.alternatives().try(joi.string(), componentSchema),\n})\n\nconst tab = baseField.keys({\n name: joi.string().when('localized', { is: joi.exist(), then: joi.required() }),\n description: joi.alternatives().try(joi.string(), componentSchema),\n fields: joi.array().items(joi.link('#field')).required(),\n interfaceName: joi.string().when('name', { not: joi.exist(), then: joi.forbidden() }),\n label: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()]))\n .when('name', { is: joi.not(), then: joi.required() }),\n localized: joi.boolean(),\n saveToJWT: joi.alternatives().try(joi.boolean(), joi.string()),\n})\n\nexport const tabs = baseField.keys({\n type: joi.string().valid('tabs').required(),\n admin: baseAdminFields.keys({\n description: joi.forbidden(),\n }),\n fields: joi.forbidden(),\n localized: joi.forbidden(),\n tabs: joi.array().items(tab).required(),\n})\n\nexport const group = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('group').required(),\n admin: baseAdminFields.keys({\n hideGutter: joi.boolean().default(true),\n }),\n defaultValue: joi.alternatives().try(joi.object(), joi.func()),\n fields: joi.array().items(joi.link('#field')),\n interfaceName: joi.string(),\n})\n\nexport const array = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('array').required(),\n admin: baseAdminFields\n .keys({\n components: baseAdminComponentFields\n .keys({\n RowLabel: componentSchema,\n })\n .default({}),\n })\n .default({}),\n dbName: joi.alternatives().try(joi.string(), joi.func()),\n defaultValue: joi.alternatives().try(joi.array().items(joi.object()), joi.func()),\n fields: joi.array().items(joi.link('#field')).required(),\n interfaceName: joi.string(),\n labels: joi.object({\n plural: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n singular: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n }),\n maxRows: joi.number(),\n minRows: joi.number(),\n})\n\nexport const upload = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('upload').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n }),\n defaultValue: joi.alternatives().try(joi.object(), joi.func()),\n filterOptions: joi.alternatives().try(joi.object(), joi.func()),\n maxDepth: joi.number(),\n relationTo: joi.string().required(),\n})\n\nexport const checkbox = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('checkbox').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi.array().items(componentSchema),\n beforeInput: joi.array().items(componentSchema),\n }),\n }),\n defaultValue: joi.alternatives().try(joi.boolean(), joi.func()),\n})\n\nexport const point = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('point').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi.array().items(componentSchema),\n beforeInput: joi.array().items(componentSchema),\n }),\n }),\n defaultValue: joi.alternatives().try(joi.array().items(joi.number()).max(2).min(2), joi.func()),\n})\n\nexport const relationship = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('relationship').required(),\n admin: baseAdminFields.keys({\n allowCreate: joi.boolean().default(true),\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n isSortable: joi.boolean().default(false),\n sortOptions: joi.alternatives().conditional(joi.ref('...relationTo'), {\n is: joi.string(),\n otherwise: joi.object().pattern(joi.string(), joi.string()),\n then: joi.string(),\n }),\n }),\n defaultValue: joi.alternatives().try(joi.func()),\n filterOptions: joi.alternatives().try(joi.object(), joi.func()),\n hasMany: joi.boolean().default(false),\n max: joi\n .number()\n .when('hasMany', { is: joi.not(true), then: joi.forbidden() })\n .warning('deprecated', { message: 'Use maxRows instead.' }),\n maxDepth: joi.number(),\n maxRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }),\n min: joi\n .number()\n .when('hasMany', { is: joi.not(true), then: joi.forbidden() })\n .warning('deprecated', { message: 'Use minRows instead.' }),\n minRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }),\n relationTo: joi.alternatives().try(joi.string().required(), joi.array().items(joi.string())),\n})\n\nexport const blocks = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('blocks').required(),\n blocks: joi\n .array()\n .items(\n joi.object({\n slug: joi.string().required(),\n admin: joi.object().keys({\n custom: joi.object().pattern(joi.string(), joi.any()),\n }),\n custom: joi.object().pattern(joi.string(), joi.any()),\n dbName: joi.alternatives().try(joi.string(), joi.func()),\n fields: joi.array().items(joi.link('#field')),\n graphQL: joi.object().keys({\n singularName: joi.string(),\n }),\n imageAltText: joi.string(),\n imageURL: joi.string(),\n interfaceName: joi.string(),\n labels: joi.object({\n plural: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n singular: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n }),\n }),\n )\n .required(),\n defaultValue: joi.alternatives().try(joi.array().items(joi.object()), joi.func()),\n labels: joi.object({\n plural: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n singular: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n }),\n maxRows: joi.number(),\n minRows: joi.number(),\n})\n\nexport const richText = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('richText').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n }),\n defaultValue: joi.alternatives().try(joi.array().items(joi.object()), joi.func(), joi.object()),\n editor: joi\n .object()\n .keys({\n CellComponent: componentSchema.optional(),\n FieldComponent: componentSchema.optional(),\n afterReadPromise: joi.func().optional(),\n outputSchema: joi.func().optional(),\n populationPromise: joi.func().optional(),\n validate: joi.func().required(),\n })\n .unknown(),\n})\n\nexport const date = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('date').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi.array().items(componentSchema),\n beforeInput: joi.array().items(componentSchema),\n }),\n date: joi.object({\n displayFormat: joi.string(),\n maxDate: joi.date(),\n maxTime: joi.date(),\n minDate: joi.date(),\n minTime: joi.date(),\n monthsToShow: joi.number(),\n overrides: joi.object().unknown(),\n pickerAppearance: joi.string(),\n timeFormat: joi.string(),\n timeIntervals: joi.number(),\n }),\n placeholder: joi.string(),\n }),\n defaultValue: joi.alternatives().try(joi.string(), joi.func()),\n})\n\nexport const ui = joi.object().keys({\n name: joi.string().required(),\n type: joi.string().valid('ui').required(),\n admin: joi\n .object()\n .keys({\n components: joi\n .object()\n .keys({\n Cell: componentSchema,\n Field: componentSchema,\n })\n .default({}),\n condition: joi.func(),\n custom: joi.object().pattern(joi.string(), joi.any()),\n position: joi.string().valid('sidebar'),\n width: joi.string(),\n })\n .default(),\n custom: joi.object().pattern(joi.string(), joi.any()),\n label: joi.alternatives().try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n})\n\nconst fieldSchema = joi\n .alternatives()\n .try(\n text,\n number,\n textarea,\n email,\n code,\n json,\n select,\n group,\n array,\n row,\n collapsible,\n tabs,\n radio,\n relationship,\n checkbox,\n upload,\n richText,\n blocks,\n date,\n point,\n ui,\n )\n .id('field')\n\nexport default fieldSchema\n"],"names":["joi","componentSchema","baseAdminComponentFields","object","keys","Cell","Field","Filter","default","baseAdminFields","className","string","components","condition","func","custom","pattern","any","description","alternatives","try","disableBulkEdit","boolean","disabled","hidden","initCollapsed","position","valid","readOnly","style","unknown","width","baseField","access","create","read","update","admin","hooks","afterChange","array","items","afterRead","beforeChange","beforeDuplicate","beforeValidate","index","label","localized","required","saveToJWT","unique","validate","idField","name","type","invalid","not","text","autoComplete","Error","Label","afterInput","beforeInput","placeholder","rtl","defaultValue","hasMany","maxLength","number","maxRows","when","is","then","forbidden","minLength","minRows","otherwise","step","max","min","textarea","rows","email","code","editorOptions","language","json","jsonSchema","select","isClearable","isSortable","dbName","allow","enumName","options","value","radio","layout","row","fields","link","collapsible","tab","exist","interfaceName","tabs","group","hideGutter","RowLabel","labels","plural","singular","upload","filterOptions","maxDepth","relationTo","checkbox","point","relationship","allowCreate","sortOptions","conditional","ref","warning","message","blocks","slug","graphQL","singularName","imageAltText","imageURL","richText","editor","CellComponent","optional","FieldComponent","afterReadPromise","outputSchema","populationPromise","date","displayFormat","maxDate","maxTime","minDate","minTime","monthsToShow","overrides","pickerAppearance","timeFormat","timeIntervals","ui","fieldSchema","id"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -2,9 +2,8 @@ import type { EditorProps } from '@monaco-editor/react';
2
2
  import type { CSSProperties } from 'react';
3
3
  import type React from 'react';
4
4
  import type { ConditionalDateProps, Description, ErrorProps, LabelProps, RichTextAdapter, RowLabel } from '../../admin/types.js';
5
- import type { User } from '../../auth/index.js';
6
5
  import type { SanitizedCollectionConfig, TypeWithID } from '../../collections/config/types.js';
7
- import type { LabelFunction } from '../../config/types.js';
6
+ import type { CustomComponent, LabelFunction } from '../../config/types.js';
8
7
  import type { DBIdentifierName } from '../../database/types.js';
9
8
  import type { SanitizedGlobalConfig } from '../../globals/config/types.js';
10
9
  import type { Operation, PayloadRequest, RequestContext, Where } from '../../types/index.js';
@@ -60,7 +59,7 @@ export type FieldAccess<T extends TypeWithID = any, P = any, U = any> = (args: {
60
59
  siblingData?: Partial<P>;
61
60
  }) => Promise<boolean> | boolean;
62
61
  export type Condition<T extends TypeWithID = any, P = any> = (data: Partial<T>, siblingData: Partial<P>, { user }: {
63
- user: User;
62
+ user: PayloadRequest['user'];
64
63
  }) => boolean;
65
64
  export type FilterOptionsProps<T = any> = {
66
65
  /**
@@ -82,14 +81,14 @@ export type FilterOptionsProps<T = any> = {
82
81
  /**
83
82
  * An object containing the currently authenticated user.
84
83
  */
85
- user: Partial<User>;
84
+ user: Partial<PayloadRequest['user']>;
86
85
  };
87
86
  export type FilterOptions<T = any> = ((options: FilterOptionsProps<T>) => Promise<Where | boolean> | Where | boolean) | Where | null;
88
87
  type Admin = {
89
88
  className?: string;
90
89
  components?: {
91
- Cell?: React.ComponentType<any>;
92
- Field?: React.ComponentType<any>;
90
+ Cell?: CustomComponent;
91
+ Field?: CustomComponent;
93
92
  Filter?: React.ComponentType<any>;
94
93
  };
95
94
  /**
@@ -97,6 +96,8 @@ type Admin = {
97
96
  * This is also run on the server, to determine if the field should be validated.
98
97
  */
99
98
  condition?: Condition;
99
+ /** Extension point to add your custom data. Available in server and client. */
100
+ custom?: Record<string, any>;
100
101
  description?: Description;
101
102
  disableBulkEdit?: boolean;
102
103
  disabled?: boolean;
@@ -132,7 +133,7 @@ export interface FieldBase {
132
133
  update?: FieldAccess;
133
134
  };
134
135
  admin?: Admin;
135
- /** Extension point to add your custom data. */
136
+ /** Extension point to add your custom data. Server only. */
136
137
  custom?: Record<string, any>;
137
138
  defaultValue?: any;
138
139
  hidden?: boolean;
@@ -160,10 +161,10 @@ export type NumberField = FieldBase & {
160
161
  /** Set this property to a string that will be used for browser autocomplete. */
161
162
  autoComplete?: string;
162
163
  components?: {
163
- Error?: React.ComponentType<ErrorProps>;
164
- Label?: React.ComponentType<LabelProps>;
165
- afterInput?: React.ComponentType<any>[];
166
- beforeInput?: React.ComponentType<any>[];
164
+ Error?: CustomComponent<ErrorProps>;
165
+ Label?: CustomComponent<LabelProps>;
166
+ afterInput?: CustomComponent[];
167
+ beforeInput?: CustomComponent[];
167
168
  };
168
169
  /** Set this property to define a placeholder string for the field. */
169
170
  placeholder?: Record<string, string> | string;
@@ -194,10 +195,10 @@ export type TextField = FieldBase & {
194
195
  admin?: Admin & {
195
196
  autoComplete?: string;
196
197
  components?: {
197
- Error?: React.ComponentType<ErrorProps>;
198
- Label?: React.ComponentType<LabelProps>;
199
- afterInput?: React.ComponentType<any>[];
200
- beforeInput?: React.ComponentType<any>[];
198
+ Error?: CustomComponent<ErrorProps>;
199
+ Label?: CustomComponent<LabelProps>;
200
+ afterInput?: CustomComponent[];
201
+ beforeInput?: CustomComponent[];
201
202
  };
202
203
  placeholder?: Record<string, string> | string;
203
204
  rtl?: boolean;
@@ -224,10 +225,10 @@ export type EmailField = FieldBase & {
224
225
  admin?: Admin & {
225
226
  autoComplete?: string;
226
227
  components?: {
227
- Error?: React.ComponentType<ErrorProps>;
228
- Label?: React.ComponentType<LabelProps>;
229
- afterInput?: React.ComponentType<any>[];
230
- beforeInput?: React.ComponentType<any>[];
228
+ Error?: CustomComponent<ErrorProps>;
229
+ Label?: CustomComponent<LabelProps>;
230
+ afterInput?: CustomComponent[];
231
+ beforeInput?: CustomComponent[];
231
232
  };
232
233
  placeholder?: Record<string, string> | string;
233
234
  };
@@ -236,10 +237,10 @@ export type EmailField = FieldBase & {
236
237
  export type TextareaField = FieldBase & {
237
238
  admin?: Admin & {
238
239
  components?: {
239
- Error?: React.ComponentType<ErrorProps>;
240
- Label?: React.ComponentType<LabelProps>;
241
- afterInput?: React.ComponentType<any>[];
242
- beforeInput?: React.ComponentType<any>[];
240
+ Error?: CustomComponent<ErrorProps>;
241
+ Label?: CustomComponent<LabelProps>;
242
+ afterInput?: CustomComponent[];
243
+ beforeInput?: CustomComponent[];
243
244
  };
244
245
  placeholder?: Record<string, string> | string;
245
246
  rows?: number;
@@ -252,10 +253,10 @@ export type TextareaField = FieldBase & {
252
253
  export type CheckboxField = FieldBase & {
253
254
  admin?: Admin & {
254
255
  components?: {
255
- Error?: React.ComponentType<ErrorProps>;
256
- Label?: React.ComponentType<LabelProps>;
257
- afterInput?: React.ComponentType<any>[];
258
- beforeInput?: React.ComponentType<any>[];
256
+ Error?: CustomComponent<ErrorProps>;
257
+ Label?: CustomComponent<LabelProps>;
258
+ afterInput?: CustomComponent[];
259
+ beforeInput?: CustomComponent[];
259
260
  };
260
261
  };
261
262
  type: 'checkbox';
@@ -263,10 +264,10 @@ export type CheckboxField = FieldBase & {
263
264
  export type DateField = FieldBase & {
264
265
  admin?: Admin & {
265
266
  components?: {
266
- Error?: React.ComponentType<ErrorProps>;
267
- Label?: React.ComponentType<LabelProps>;
268
- afterInput?: React.ComponentType<any>[];
269
- beforeInput?: React.ComponentType<any>[];
267
+ Error?: CustomComponent<ErrorProps>;
268
+ Label?: CustomComponent<LabelProps>;
269
+ afterInput?: CustomComponent[];
270
+ beforeInput?: CustomComponent[];
270
271
  };
271
272
  date?: ConditionalDateProps;
272
273
  placeholder?: Record<string, string> | string;
@@ -342,16 +343,18 @@ export type TabAsField = Tab & {
342
343
  export type UIField = {
343
344
  admin: {
344
345
  components?: {
345
- Cell?: React.ComponentType<any>;
346
- Field: React.ComponentType<any>;
346
+ Cell?: CustomComponent;
347
+ Field: CustomComponent;
347
348
  Filter?: React.ComponentType<any>;
348
349
  };
349
350
  condition?: Condition;
351
+ /** Extension point to add your custom data. Available in server and client. */
352
+ custom?: Record<string, any>;
350
353
  disableBulkEdit?: boolean;
351
354
  position?: string;
352
355
  width?: string;
353
356
  };
354
- /** Extension point to add your custom data. */
357
+ /** Extension point to add your custom data. Server only. */
355
358
  custom?: Record<string, any>;
356
359
  label?: Record<string, string> | string;
357
360
  name: string;
@@ -360,8 +363,8 @@ export type UIField = {
360
363
  export type UploadField = FieldBase & {
361
364
  admin?: {
362
365
  components?: {
363
- Error?: React.ComponentType<ErrorProps>;
364
- Label?: React.ComponentType<LabelProps>;
366
+ Error?: CustomComponent<ErrorProps>;
367
+ Label?: CustomComponent<LabelProps>;
365
368
  };
366
369
  };
367
370
  filterOptions?: FilterOptions;
@@ -371,8 +374,8 @@ export type UploadField = FieldBase & {
371
374
  };
372
375
  type CodeAdmin = Admin & {
373
376
  components?: {
374
- Error?: React.ComponentType<ErrorProps>;
375
- Label?: React.ComponentType<LabelProps>;
377
+ Error?: CustomComponent<ErrorProps>;
378
+ Label?: CustomComponent<LabelProps>;
376
379
  };
377
380
  editorOptions?: EditorProps['options'];
378
381
  language?: string;
@@ -385,20 +388,21 @@ export type CodeField = Omit<FieldBase, 'admin'> & {
385
388
  };
386
389
  type JSONAdmin = Admin & {
387
390
  components?: {
388
- Error?: React.ComponentType<ErrorProps>;
389
- Label?: React.ComponentType<LabelProps>;
391
+ Error?: CustomComponent<ErrorProps>;
392
+ Label?: CustomComponent<LabelProps>;
390
393
  };
391
394
  editorOptions?: EditorProps['options'];
392
395
  };
393
396
  export type JSONField = Omit<FieldBase, 'admin'> & {
394
397
  admin?: JSONAdmin;
398
+ jsonSchema?: Record<string, unknown>;
395
399
  type: 'json';
396
400
  };
397
401
  export type SelectField = FieldBase & {
398
402
  admin?: Admin & {
399
403
  components?: {
400
- Error?: React.ComponentType<ErrorProps>;
401
- Label?: React.ComponentType<LabelProps>;
404
+ Error?: CustomComponent<ErrorProps>;
405
+ Label?: CustomComponent<LabelProps>;
402
406
  };
403
407
  isClearable?: boolean;
404
408
  isSortable?: boolean;
@@ -448,8 +452,8 @@ type SharedRelationshipProperties = FieldBase & {
448
452
  type RelationshipAdmin = Admin & {
449
453
  allowCreate?: boolean;
450
454
  components?: {
451
- Error?: React.ComponentType<ErrorProps>;
452
- Label?: React.ComponentType<LabelProps>;
455
+ Error?: CustomComponent<ErrorProps>;
456
+ Label?: CustomComponent<LabelProps>;
453
457
  };
454
458
  isSortable?: boolean;
455
459
  };
@@ -477,8 +481,8 @@ export type RelationshipValue = (number | string)[] | ValueWithRelation | ValueW
477
481
  export type RichTextField<Value extends object = any, AdapterProps = any, ExtraProperties = object> = FieldBase & {
478
482
  admin?: Admin & {
479
483
  components?: {
480
- Error?: React.ComponentType<ErrorProps>;
481
- Label?: React.ComponentType<LabelProps>;
484
+ Error?: CustomComponent<ErrorProps>;
485
+ Label?: CustomComponent<LabelProps>;
482
486
  };
483
487
  };
484
488
  editor?: RichTextAdapter<Value, AdapterProps, AdapterProps>;
@@ -514,8 +518,8 @@ export type ArrayField = FieldBase & {
514
518
  export type RadioField = FieldBase & {
515
519
  admin?: Admin & {
516
520
  components?: {
517
- Error?: React.ComponentType<ErrorProps>;
518
- Label?: React.ComponentType<LabelProps>;
521
+ Error?: CustomComponent<ErrorProps>;
522
+ Label?: CustomComponent<LabelProps>;
519
523
  };
520
524
  layout?: 'horizontal' | 'vertical';
521
525
  };
@@ -531,7 +535,11 @@ export type RadioField = FieldBase & {
531
535
  type: 'radio';
532
536
  };
533
537
  export type Block = {
534
- /** Extension point to add your custom data. */
538
+ admin?: {
539
+ /** Extension point to add your custom data. Available in server and client. */
540
+ custom?: Record<string, any>;
541
+ };
542
+ /** Extension point to add your custom data. Server only. */
535
543
  custom?: Record<string, any>;
536
544
  /**
537
545
  * Customize the SQL table name