payload 3.0.0-beta.2 → 3.0.0-beta.21

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 (696) hide show
  1. package/dist/admin/RichText.d.ts +18 -10
  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/Tab.d.ts +3 -0
  17. package/dist/admin/elements/Tab.d.ts.map +1 -1
  18. package/dist/admin/elements/Tab.js.map +1 -1
  19. package/dist/admin/elements/WithServerSideProps.d.ts +5 -0
  20. package/dist/admin/elements/WithServerSideProps.d.ts.map +1 -0
  21. package/dist/admin/elements/WithServerSideProps.js +3 -0
  22. package/dist/admin/elements/WithServerSideProps.js.map +1 -0
  23. package/dist/admin/forms/FieldDescription.d.ts +4 -2
  24. package/dist/admin/forms/FieldDescription.d.ts.map +1 -1
  25. package/dist/admin/forms/FieldDescription.js.map +1 -1
  26. package/dist/admin/forms/RowLabel.d.ts +2 -1
  27. package/dist/admin/forms/RowLabel.d.ts.map +1 -1
  28. package/dist/admin/forms/RowLabel.js.map +1 -1
  29. package/dist/admin/types.d.ts +2 -1
  30. package/dist/admin/types.d.ts.map +1 -1
  31. package/dist/admin/types.js.map +1 -1
  32. package/dist/admin/views/types.d.ts +2 -2
  33. package/dist/admin/views/types.d.ts.map +1 -1
  34. package/dist/admin/views/types.js.map +1 -1
  35. package/dist/auth/baseFields/apiKey.d.ts.map +1 -1
  36. package/dist/auth/baseFields/apiKey.js +6 -4
  37. package/dist/auth/baseFields/apiKey.js.map +1 -1
  38. package/dist/auth/cookies.d.ts +16 -4
  39. package/dist/auth/cookies.d.ts.map +1 -1
  40. package/dist/auth/cookies.js +45 -14
  41. package/dist/auth/cookies.js.map +1 -1
  42. package/dist/auth/defaultAccess.d.ts +2 -2
  43. package/dist/auth/defaultAccess.d.ts.map +1 -1
  44. package/dist/auth/defaultAccess.js.map +1 -1
  45. package/dist/auth/executeAccess.d.ts +2 -2
  46. package/dist/auth/executeAccess.d.ts.map +1 -1
  47. package/dist/auth/executeAccess.js.map +1 -1
  48. package/dist/auth/executeAuthStrategies.d.ts +3 -2
  49. package/dist/auth/executeAuthStrategies.d.ts.map +1 -1
  50. package/dist/auth/executeAuthStrategies.js.map +1 -1
  51. package/dist/auth/getAccessResults.d.ts +2 -2
  52. package/dist/auth/getAccessResults.d.ts.map +1 -1
  53. package/dist/auth/getAccessResults.js +1 -1
  54. package/dist/auth/getAccessResults.js.map +1 -1
  55. package/dist/auth/getFieldsToSign.d.ts +2 -2
  56. package/dist/auth/getFieldsToSign.d.ts.map +1 -1
  57. package/dist/auth/getFieldsToSign.js.map +1 -1
  58. package/dist/auth/operations/access.d.ts +2 -2
  59. package/dist/auth/operations/access.d.ts.map +1 -1
  60. package/dist/auth/operations/access.js.map +1 -1
  61. package/dist/auth/operations/auth.d.ts +5 -4
  62. package/dist/auth/operations/auth.d.ts.map +1 -1
  63. package/dist/auth/operations/auth.js.map +1 -1
  64. package/dist/auth/operations/forgotPassword.d.ts +2 -2
  65. package/dist/auth/operations/forgotPassword.d.ts.map +1 -1
  66. package/dist/auth/operations/forgotPassword.js +6 -5
  67. package/dist/auth/operations/forgotPassword.js.map +1 -1
  68. package/dist/auth/operations/init.d.ts +2 -2
  69. package/dist/auth/operations/init.d.ts.map +1 -1
  70. package/dist/auth/operations/init.js.map +1 -1
  71. package/dist/auth/operations/local/auth.js.map +1 -1
  72. package/dist/auth/operations/local/forgotPassword.d.ts +2 -2
  73. package/dist/auth/operations/local/forgotPassword.d.ts.map +1 -1
  74. package/dist/auth/operations/local/forgotPassword.js.map +1 -1
  75. package/dist/auth/operations/local/login.d.ts +2 -2
  76. package/dist/auth/operations/local/login.d.ts.map +1 -1
  77. package/dist/auth/operations/local/login.js.map +1 -1
  78. package/dist/auth/operations/local/resetPassword.d.ts +2 -2
  79. package/dist/auth/operations/local/resetPassword.d.ts.map +1 -1
  80. package/dist/auth/operations/local/resetPassword.js.map +1 -1
  81. package/dist/auth/operations/local/unlock.d.ts +2 -2
  82. package/dist/auth/operations/local/unlock.d.ts.map +1 -1
  83. package/dist/auth/operations/local/unlock.js.map +1 -1
  84. package/dist/auth/operations/local/verifyEmail.d.ts +2 -2
  85. package/dist/auth/operations/local/verifyEmail.d.ts.map +1 -1
  86. package/dist/auth/operations/local/verifyEmail.js.map +1 -1
  87. package/dist/auth/operations/login.d.ts +2 -2
  88. package/dist/auth/operations/login.d.ts.map +1 -1
  89. package/dist/auth/operations/login.js +17 -1
  90. package/dist/auth/operations/login.js.map +1 -1
  91. package/dist/auth/operations/logout.d.ts +2 -2
  92. package/dist/auth/operations/logout.d.ts.map +1 -1
  93. package/dist/auth/operations/logout.js.map +1 -1
  94. package/dist/auth/operations/me.d.ts +2 -2
  95. package/dist/auth/operations/me.d.ts.map +1 -1
  96. package/dist/auth/operations/me.js.map +1 -1
  97. package/dist/auth/operations/refresh.d.ts +2 -2
  98. package/dist/auth/operations/refresh.d.ts.map +1 -1
  99. package/dist/auth/operations/refresh.js.map +1 -1
  100. package/dist/auth/operations/registerFirstUser.d.ts +2 -2
  101. package/dist/auth/operations/registerFirstUser.d.ts.map +1 -1
  102. package/dist/auth/operations/registerFirstUser.js.map +1 -1
  103. package/dist/auth/operations/resetPassword.d.ts +2 -2
  104. package/dist/auth/operations/resetPassword.d.ts.map +1 -1
  105. package/dist/auth/operations/resetPassword.js.map +1 -1
  106. package/dist/auth/operations/unlock.d.ts +2 -2
  107. package/dist/auth/operations/unlock.d.ts.map +1 -1
  108. package/dist/auth/operations/unlock.js.map +1 -1
  109. package/dist/auth/operations/verifyEmail.d.ts +2 -2
  110. package/dist/auth/operations/verifyEmail.d.ts.map +1 -1
  111. package/dist/auth/operations/verifyEmail.js.map +1 -1
  112. package/dist/auth/sendVerificationEmail.d.ts +7 -8
  113. package/dist/auth/sendVerificationEmail.d.ts.map +1 -1
  114. package/dist/auth/sendVerificationEmail.js +7 -7
  115. package/dist/auth/sendVerificationEmail.js.map +1 -1
  116. package/dist/auth/strategies/local/incrementLoginAttempts.d.ts +2 -2
  117. package/dist/auth/strategies/local/incrementLoginAttempts.d.ts.map +1 -1
  118. package/dist/auth/strategies/local/incrementLoginAttempts.js.map +1 -1
  119. package/dist/auth/strategies/local/register.d.ts +2 -2
  120. package/dist/auth/strategies/local/register.d.ts.map +1 -1
  121. package/dist/auth/strategies/local/register.js.map +1 -1
  122. package/dist/auth/strategies/local/resetLoginAttempts.d.ts +2 -2
  123. package/dist/auth/strategies/local/resetLoginAttempts.d.ts.map +1 -1
  124. package/dist/auth/strategies/local/resetLoginAttempts.js.map +1 -1
  125. package/dist/auth/types.d.ts +5 -5
  126. package/dist/auth/types.d.ts.map +1 -1
  127. package/dist/auth/types.js.map +1 -1
  128. package/dist/bin/loader/index.d.ts.map +1 -1
  129. package/dist/bin/loader/index.js +6 -1
  130. package/dist/bin/loader/index.js.map +1 -1
  131. package/dist/bin/loader/resolveOriginalPath.d.ts +10 -0
  132. package/dist/bin/loader/resolveOriginalPath.d.ts.map +1 -0
  133. package/dist/bin/loader/resolveOriginalPath.js +32 -0
  134. package/dist/bin/loader/resolveOriginalPath.js.map +1 -0
  135. package/dist/collections/config/client.d.ts +17 -13
  136. package/dist/collections/config/client.d.ts.map +1 -1
  137. package/dist/collections/config/client.js +3 -1
  138. package/dist/collections/config/client.js.map +1 -1
  139. package/dist/collections/config/defaults.d.ts +6 -5
  140. package/dist/collections/config/defaults.d.ts.map +1 -1
  141. package/dist/collections/config/defaults.js +1 -0
  142. package/dist/collections/config/defaults.js.map +1 -1
  143. package/dist/collections/config/sanitize.d.ts +2 -3
  144. package/dist/collections/config/sanitize.d.ts.map +1 -1
  145. package/dist/collections/config/sanitize.js +7 -4
  146. package/dist/collections/config/sanitize.js.map +1 -1
  147. package/dist/collections/config/schema.d.ts.map +1 -1
  148. package/dist/collections/config/schema.js +3 -0
  149. package/dist/collections/config/schema.js.map +1 -1
  150. package/dist/collections/config/types.d.ts +33 -23
  151. package/dist/collections/config/types.d.ts.map +1 -1
  152. package/dist/collections/config/types.js.map +1 -1
  153. package/dist/collections/dataloader.d.ts.map +1 -1
  154. package/dist/collections/dataloader.js +4 -6
  155. package/dist/collections/dataloader.js.map +1 -1
  156. package/dist/collections/operations/count.d.ts +13 -0
  157. package/dist/collections/operations/count.d.ts.map +1 -0
  158. package/dist/collections/operations/count.js +75 -0
  159. package/dist/collections/operations/count.js.map +1 -0
  160. package/dist/collections/operations/create.d.ts +2 -2
  161. package/dist/collections/operations/create.d.ts.map +1 -1
  162. package/dist/collections/operations/create.js +4 -8
  163. package/dist/collections/operations/create.js.map +1 -1
  164. package/dist/collections/operations/delete.d.ts +2 -2
  165. package/dist/collections/operations/delete.d.ts.map +1 -1
  166. package/dist/collections/operations/delete.js.map +1 -1
  167. package/dist/collections/operations/deleteByID.d.ts +2 -2
  168. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  169. package/dist/collections/operations/deleteByID.js.map +1 -1
  170. package/dist/collections/operations/docAccess.d.ts +2 -2
  171. package/dist/collections/operations/docAccess.d.ts.map +1 -1
  172. package/dist/collections/operations/docAccess.js.map +1 -1
  173. package/dist/collections/operations/duplicate.d.ts +2 -2
  174. package/dist/collections/operations/duplicate.d.ts.map +1 -1
  175. package/dist/collections/operations/duplicate.js.map +1 -1
  176. package/dist/collections/operations/find.d.ts +2 -2
  177. package/dist/collections/operations/find.d.ts.map +1 -1
  178. package/dist/collections/operations/find.js.map +1 -1
  179. package/dist/collections/operations/findByID.d.ts +2 -2
  180. package/dist/collections/operations/findByID.d.ts.map +1 -1
  181. package/dist/collections/operations/findByID.js.map +1 -1
  182. package/dist/collections/operations/findVersionByID.d.ts +2 -2
  183. package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
  184. package/dist/collections/operations/findVersionByID.js.map +1 -1
  185. package/dist/collections/operations/findVersions.d.ts +2 -2
  186. package/dist/collections/operations/findVersions.d.ts.map +1 -1
  187. package/dist/collections/operations/findVersions.js.map +1 -1
  188. package/dist/collections/operations/local/count.d.ts +20 -0
  189. package/dist/collections/operations/local/count.d.ts.map +1 -0
  190. package/dist/collections/operations/local/count.js +19 -0
  191. package/dist/collections/operations/local/count.js.map +1 -0
  192. package/dist/collections/operations/local/create.d.ts +4 -4
  193. package/dist/collections/operations/local/create.d.ts.map +1 -1
  194. package/dist/collections/operations/local/create.js.map +1 -1
  195. package/dist/collections/operations/local/delete.d.ts +4 -4
  196. package/dist/collections/operations/local/delete.d.ts.map +1 -1
  197. package/dist/collections/operations/local/delete.js.map +1 -1
  198. package/dist/collections/operations/local/duplicate.d.ts +4 -4
  199. package/dist/collections/operations/local/duplicate.d.ts.map +1 -1
  200. package/dist/collections/operations/local/duplicate.js.map +1 -1
  201. package/dist/collections/operations/local/find.d.ts +4 -4
  202. package/dist/collections/operations/local/find.d.ts.map +1 -1
  203. package/dist/collections/operations/local/find.js.map +1 -1
  204. package/dist/collections/operations/local/findByID.d.ts +4 -4
  205. package/dist/collections/operations/local/findByID.d.ts.map +1 -1
  206. package/dist/collections/operations/local/findByID.js.map +1 -1
  207. package/dist/collections/operations/local/findVersionByID.d.ts +4 -4
  208. package/dist/collections/operations/local/findVersionByID.d.ts.map +1 -1
  209. package/dist/collections/operations/local/findVersionByID.js.map +1 -1
  210. package/dist/collections/operations/local/findVersions.d.ts +4 -4
  211. package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
  212. package/dist/collections/operations/local/findVersions.js.map +1 -1
  213. package/dist/collections/operations/local/index.d.ts +2 -0
  214. package/dist/collections/operations/local/index.d.ts.map +1 -1
  215. package/dist/collections/operations/local/index.js +2 -0
  216. package/dist/collections/operations/local/index.js.map +1 -1
  217. package/dist/collections/operations/local/restoreVersion.d.ts +4 -4
  218. package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
  219. package/dist/collections/operations/local/restoreVersion.js.map +1 -1
  220. package/dist/collections/operations/local/update.d.ts +4 -4
  221. package/dist/collections/operations/local/update.d.ts.map +1 -1
  222. package/dist/collections/operations/local/update.js.map +1 -1
  223. package/dist/collections/operations/restoreVersion.d.ts +2 -2
  224. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  225. package/dist/collections/operations/restoreVersion.js.map +1 -1
  226. package/dist/collections/operations/update.d.ts +2 -2
  227. package/dist/collections/operations/update.d.ts.map +1 -1
  228. package/dist/collections/operations/update.js +3 -3
  229. package/dist/collections/operations/update.js.map +1 -1
  230. package/dist/collections/operations/updateByID.d.ts +2 -2
  231. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  232. package/dist/collections/operations/updateByID.js +2 -2
  233. package/dist/collections/operations/updateByID.js.map +1 -1
  234. package/dist/collections/operations/utils.d.ts +8 -2
  235. package/dist/collections/operations/utils.d.ts.map +1 -1
  236. package/dist/collections/operations/utils.js.map +1 -1
  237. package/dist/config/build.d.ts.map +1 -1
  238. package/dist/config/build.js +3 -4
  239. package/dist/config/build.js.map +1 -1
  240. package/dist/config/client.d.ts +2 -1
  241. package/dist/config/client.d.ts.map +1 -1
  242. package/dist/config/client.js +2 -1
  243. package/dist/config/client.js.map +1 -1
  244. package/dist/config/defaults.d.ts.map +1 -1
  245. package/dist/config/defaults.js +1 -0
  246. package/dist/config/defaults.js.map +1 -1
  247. package/dist/config/find.d.ts.map +1 -1
  248. package/dist/config/find.js +20 -9
  249. package/dist/config/find.js.map +1 -1
  250. package/dist/config/sanitize.d.ts +1 -1
  251. package/dist/config/sanitize.d.ts.map +1 -1
  252. package/dist/config/sanitize.js +28 -7
  253. package/dist/config/sanitize.js.map +1 -1
  254. package/dist/config/schema.d.ts.map +1 -1
  255. package/dist/config/schema.js +2 -1
  256. package/dist/config/schema.js.map +1 -1
  257. package/dist/config/types.d.ts +40 -54
  258. package/dist/config/types.d.ts.map +1 -1
  259. package/dist/config/types.js +3 -12
  260. package/dist/config/types.js.map +1 -1
  261. package/dist/database/migrations/migrate.js.map +1 -1
  262. package/dist/database/migrations/migrateDown.js.map +1 -1
  263. package/dist/database/migrations/migrateRefresh.js.map +1 -1
  264. package/dist/database/migrations/migrateReset.js.map +1 -1
  265. package/dist/database/queryValidation/validateQueryPaths.d.ts +2 -2
  266. package/dist/database/queryValidation/validateQueryPaths.d.ts.map +1 -1
  267. package/dist/database/queryValidation/validateQueryPaths.js +1 -1
  268. package/dist/database/queryValidation/validateQueryPaths.js.map +1 -1
  269. package/dist/database/queryValidation/validateSearchParams.d.ts +2 -2
  270. package/dist/database/queryValidation/validateSearchParams.d.ts.map +1 -1
  271. package/dist/database/queryValidation/validateSearchParams.js.map +1 -1
  272. package/dist/database/types.d.ts +29 -19
  273. package/dist/database/types.d.ts.map +1 -1
  274. package/dist/database/types.js.map +1 -1
  275. package/dist/email/consoleEmailAdapter.d.ts +3 -0
  276. package/dist/email/consoleEmailAdapter.d.ts.map +1 -0
  277. package/dist/email/consoleEmailAdapter.js +17 -0
  278. package/dist/email/consoleEmailAdapter.js.map +1 -0
  279. package/dist/email/defaults.d.ts +2 -2
  280. package/dist/email/defaults.d.ts.map +1 -1
  281. package/dist/email/defaults.js +3 -3
  282. package/dist/email/defaults.js.map +1 -1
  283. package/dist/email/getStringifiedToAddress.d.ts +3 -0
  284. package/dist/email/getStringifiedToAddress.d.ts.map +1 -0
  285. package/dist/email/getStringifiedToAddress.js +20 -0
  286. package/dist/email/getStringifiedToAddress.js.map +1 -0
  287. package/dist/email/sendEmail.d.ts +3 -2
  288. package/dist/email/sendEmail.d.ts.map +1 -1
  289. package/dist/email/sendEmail.js +8 -4
  290. package/dist/email/sendEmail.js.map +1 -1
  291. package/dist/email/types.d.ts +26 -18
  292. package/dist/email/types.d.ts.map +1 -1
  293. package/dist/email/types.js +5 -1
  294. package/dist/email/types.js.map +1 -1
  295. package/dist/errors/APIError.d.ts +2 -2
  296. package/dist/errors/APIError.d.ts.map +1 -1
  297. package/dist/errors/APIError.js +1 -2
  298. package/dist/errors/APIError.js.map +1 -1
  299. package/dist/errors/AuthenticationError.d.ts +2 -3
  300. package/dist/errors/AuthenticationError.d.ts.map +1 -1
  301. package/dist/errors/AuthenticationError.js +2 -3
  302. package/dist/errors/AuthenticationError.js.map +1 -1
  303. package/dist/errors/DuplicateCollection.d.ts +2 -3
  304. package/dist/errors/DuplicateCollection.d.ts.map +1 -1
  305. package/dist/errors/DuplicateCollection.js +2 -3
  306. package/dist/errors/DuplicateCollection.js.map +1 -1
  307. package/dist/errors/DuplicateFieldName.d.ts +2 -3
  308. package/dist/errors/DuplicateFieldName.d.ts.map +1 -1
  309. package/dist/errors/DuplicateFieldName.js +2 -3
  310. package/dist/errors/DuplicateFieldName.js.map +1 -1
  311. package/dist/errors/DuplicateGlobal.d.ts +2 -3
  312. package/dist/errors/DuplicateGlobal.d.ts.map +1 -1
  313. package/dist/errors/DuplicateGlobal.js +2 -3
  314. package/dist/errors/DuplicateGlobal.js.map +1 -1
  315. package/dist/errors/ErrorDeletingFile.d.ts +2 -3
  316. package/dist/errors/ErrorDeletingFile.d.ts.map +1 -1
  317. package/dist/errors/ErrorDeletingFile.js +2 -3
  318. package/dist/errors/ErrorDeletingFile.js.map +1 -1
  319. package/dist/errors/FileRetrievalError.d.ts +6 -0
  320. package/dist/errors/FileRetrievalError.d.ts.map +1 -0
  321. package/dist/errors/FileRetrievalError.js +13 -0
  322. package/dist/errors/FileRetrievalError.js.map +1 -0
  323. package/dist/errors/FileUploadError.d.ts +2 -3
  324. package/dist/errors/FileUploadError.d.ts.map +1 -1
  325. package/dist/errors/FileUploadError.js +2 -3
  326. package/dist/errors/FileUploadError.js.map +1 -1
  327. package/dist/errors/Forbidden.d.ts +2 -3
  328. package/dist/errors/Forbidden.d.ts.map +1 -1
  329. package/dist/errors/Forbidden.js +2 -3
  330. package/dist/errors/Forbidden.js.map +1 -1
  331. package/dist/errors/InvalidConfiguration.d.ts +2 -3
  332. package/dist/errors/InvalidConfiguration.d.ts.map +1 -1
  333. package/dist/errors/InvalidConfiguration.js +2 -3
  334. package/dist/errors/InvalidConfiguration.js.map +1 -1
  335. package/dist/errors/InvalidFieldName.d.ts +2 -3
  336. package/dist/errors/InvalidFieldName.d.ts.map +1 -1
  337. package/dist/errors/InvalidFieldName.js +2 -3
  338. package/dist/errors/InvalidFieldName.js.map +1 -1
  339. package/dist/errors/InvalidFieldRelationship.d.ts +2 -3
  340. package/dist/errors/InvalidFieldRelationship.d.ts.map +1 -1
  341. package/dist/errors/InvalidFieldRelationship.js +2 -3
  342. package/dist/errors/InvalidFieldRelationship.js.map +1 -1
  343. package/dist/errors/InvalidSchema.d.ts +2 -3
  344. package/dist/errors/InvalidSchema.d.ts.map +1 -1
  345. package/dist/errors/InvalidSchema.js +2 -3
  346. package/dist/errors/InvalidSchema.js.map +1 -1
  347. package/dist/errors/LockedAuth.d.ts +2 -3
  348. package/dist/errors/LockedAuth.d.ts.map +1 -1
  349. package/dist/errors/LockedAuth.js +2 -3
  350. package/dist/errors/LockedAuth.js.map +1 -1
  351. package/dist/errors/MissingCollectionLabel.d.ts +2 -3
  352. package/dist/errors/MissingCollectionLabel.d.ts.map +1 -1
  353. package/dist/errors/MissingCollectionLabel.js +2 -3
  354. package/dist/errors/MissingCollectionLabel.js.map +1 -1
  355. package/dist/errors/MissingEditorProp.d.ts +2 -3
  356. package/dist/errors/MissingEditorProp.d.ts.map +1 -1
  357. package/dist/errors/MissingEditorProp.js +2 -3
  358. package/dist/errors/MissingEditorProp.js.map +1 -1
  359. package/dist/errors/MissingFieldInputOptions.d.ts +2 -3
  360. package/dist/errors/MissingFieldInputOptions.d.ts.map +1 -1
  361. package/dist/errors/MissingFieldInputOptions.js +2 -3
  362. package/dist/errors/MissingFieldInputOptions.js.map +1 -1
  363. package/dist/errors/MissingFieldType.d.ts +2 -3
  364. package/dist/errors/MissingFieldType.d.ts.map +1 -1
  365. package/dist/errors/MissingFieldType.js +2 -3
  366. package/dist/errors/MissingFieldType.js.map +1 -1
  367. package/dist/errors/MissingFile.d.ts +2 -3
  368. package/dist/errors/MissingFile.d.ts.map +1 -1
  369. package/dist/errors/MissingFile.js +2 -3
  370. package/dist/errors/MissingFile.js.map +1 -1
  371. package/dist/errors/NotFound.d.ts +2 -3
  372. package/dist/errors/NotFound.d.ts.map +1 -1
  373. package/dist/errors/NotFound.js +2 -3
  374. package/dist/errors/NotFound.js.map +1 -1
  375. package/dist/errors/QueryError.d.ts +2 -3
  376. package/dist/errors/QueryError.d.ts.map +1 -1
  377. package/dist/errors/QueryError.js +2 -3
  378. package/dist/errors/QueryError.js.map +1 -1
  379. package/dist/errors/TimestampsRequired.d.ts +2 -3
  380. package/dist/errors/TimestampsRequired.d.ts.map +1 -1
  381. package/dist/errors/TimestampsRequired.js +2 -3
  382. package/dist/errors/TimestampsRequired.js.map +1 -1
  383. package/dist/errors/UnathorizedError.d.ts +2 -3
  384. package/dist/errors/UnathorizedError.d.ts.map +1 -1
  385. package/dist/errors/UnathorizedError.js +2 -3
  386. package/dist/errors/UnathorizedError.js.map +1 -1
  387. package/dist/errors/ValidationError.d.ts +2 -3
  388. package/dist/errors/ValidationError.d.ts.map +1 -1
  389. package/dist/errors/ValidationError.js +2 -3
  390. package/dist/errors/ValidationError.js.map +1 -1
  391. package/dist/errors/index.d.ts +20 -19
  392. package/dist/errors/index.d.ts.map +1 -1
  393. package/dist/errors/index.js +20 -19
  394. package/dist/errors/index.js.map +1 -1
  395. package/dist/exports/auth.d.ts +1 -0
  396. package/dist/exports/auth.d.ts.map +1 -1
  397. package/dist/exports/auth.js +1 -0
  398. package/dist/exports/auth.js.map +1 -1
  399. package/dist/exports/database.d.ts +1 -1
  400. package/dist/exports/database.d.ts.map +1 -1
  401. package/dist/exports/database.js.map +1 -1
  402. package/dist/exports/i18n.d.ts +2 -0
  403. package/dist/exports/i18n.d.ts.map +1 -0
  404. package/dist/exports/i18n.js +3 -0
  405. package/dist/exports/i18n.js.map +1 -0
  406. package/dist/exports/node.d.ts +3 -0
  407. package/dist/exports/node.d.ts.map +1 -1
  408. package/dist/exports/node.js +3 -1
  409. package/dist/exports/node.js.map +1 -1
  410. package/dist/exports/operations.d.ts +1 -0
  411. package/dist/exports/operations.d.ts.map +1 -1
  412. package/dist/exports/operations.js +1 -0
  413. package/dist/exports/operations.js.map +1 -1
  414. package/dist/exports/types.d.ts +1 -0
  415. package/dist/exports/types.d.ts.map +1 -1
  416. package/dist/exports/types.js.map +1 -1
  417. package/dist/exports/utilities.d.ts +7 -2
  418. package/dist/exports/utilities.d.ts.map +1 -1
  419. package/dist/exports/utilities.js +7 -3
  420. package/dist/exports/utilities.js.map +1 -1
  421. package/dist/fields/config/client.d.ts +129 -104
  422. package/dist/fields/config/client.d.ts.map +1 -1
  423. package/dist/fields/config/client.js +2 -1
  424. package/dist/fields/config/client.js.map +1 -1
  425. package/dist/fields/config/sanitize.d.ts +7 -2
  426. package/dist/fields/config/sanitize.d.ts.map +1 -1
  427. package/dist/fields/config/sanitize.js +61 -33
  428. package/dist/fields/config/sanitize.js.map +1 -1
  429. package/dist/fields/config/sanitize.spec.js +76 -82
  430. package/dist/fields/config/sanitize.spec.js.map +1 -1
  431. package/dist/fields/config/schema.d.ts.map +1 -1
  432. package/dist/fields/config/schema.js +7 -1
  433. package/dist/fields/config/schema.js.map +1 -1
  434. package/dist/fields/config/types.d.ts +69 -57
  435. package/dist/fields/config/types.d.ts.map +1 -1
  436. package/dist/fields/config/types.js.map +1 -1
  437. package/dist/fields/getDefaultValue.d.ts +2 -2
  438. package/dist/fields/getDefaultValue.d.ts.map +1 -1
  439. package/dist/fields/getDefaultValue.js.map +1 -1
  440. package/dist/fields/hooks/afterChange/index.d.ts +2 -2
  441. package/dist/fields/hooks/afterChange/index.d.ts.map +1 -1
  442. package/dist/fields/hooks/afterChange/index.js.map +1 -1
  443. package/dist/fields/hooks/afterChange/promise.d.ts +2 -2
  444. package/dist/fields/hooks/afterChange/promise.d.ts.map +1 -1
  445. package/dist/fields/hooks/afterChange/promise.js.map +1 -1
  446. package/dist/fields/hooks/afterChange/traverseFields.d.ts +2 -2
  447. package/dist/fields/hooks/afterChange/traverseFields.d.ts.map +1 -1
  448. package/dist/fields/hooks/afterChange/traverseFields.js.map +1 -1
  449. package/dist/fields/hooks/afterRead/index.d.ts +2 -2
  450. package/dist/fields/hooks/afterRead/index.d.ts.map +1 -1
  451. package/dist/fields/hooks/afterRead/index.js.map +1 -1
  452. package/dist/fields/hooks/afterRead/promise.d.ts +5 -2
  453. package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
  454. package/dist/fields/hooks/afterRead/promise.js +7 -16
  455. package/dist/fields/hooks/afterRead/promise.js.map +1 -1
  456. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts +2 -2
  457. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts.map +1 -1
  458. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js.map +1 -1
  459. package/dist/fields/hooks/afterRead/traverseFields.d.ts +5 -2
  460. package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -1
  461. package/dist/fields/hooks/afterRead/traverseFields.js.map +1 -1
  462. package/dist/fields/hooks/beforeChange/index.d.ts +2 -2
  463. package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
  464. package/dist/fields/hooks/beforeChange/index.js.map +1 -1
  465. package/dist/fields/hooks/beforeChange/promise.d.ts +2 -2
  466. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  467. package/dist/fields/hooks/beforeChange/promise.js +3 -1
  468. package/dist/fields/hooks/beforeChange/promise.js.map +1 -1
  469. package/dist/fields/hooks/beforeChange/traverseFields.d.ts +14 -2
  470. package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
  471. package/dist/fields/hooks/beforeChange/traverseFields.js.map +1 -1
  472. package/dist/fields/hooks/beforeValidate/index.d.ts +2 -2
  473. package/dist/fields/hooks/beforeValidate/index.d.ts.map +1 -1
  474. package/dist/fields/hooks/beforeValidate/index.js.map +1 -1
  475. package/dist/fields/hooks/beforeValidate/promise.d.ts +8 -2
  476. package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
  477. package/dist/fields/hooks/beforeValidate/promise.js +2 -0
  478. package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
  479. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts +8 -2
  480. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
  481. package/dist/fields/hooks/beforeValidate/traverseFields.js.map +1 -1
  482. package/dist/fields/validations.d.ts +6 -4
  483. package/dist/fields/validations.d.ts.map +1 -1
  484. package/dist/fields/validations.js +52 -10
  485. package/dist/fields/validations.js.map +1 -1
  486. package/dist/fields/validations.spec.js +6 -1
  487. package/dist/fields/validations.spec.js.map +1 -1
  488. package/dist/globals/config/client.d.ts +1 -1
  489. package/dist/globals/config/client.d.ts.map +1 -1
  490. package/dist/globals/config/client.js +2 -1
  491. package/dist/globals/config/client.js.map +1 -1
  492. package/dist/globals/config/sanitize.d.ts +2 -3
  493. package/dist/globals/config/sanitize.d.ts.map +1 -1
  494. package/dist/globals/config/sanitize.js +36 -35
  495. package/dist/globals/config/sanitize.js.map +1 -1
  496. package/dist/globals/config/schema.d.ts.map +1 -1
  497. package/dist/globals/config/schema.js +1 -0
  498. package/dist/globals/config/schema.js.map +1 -1
  499. package/dist/globals/config/types.d.ts +10 -9
  500. package/dist/globals/config/types.d.ts.map +1 -1
  501. package/dist/globals/config/types.js.map +1 -1
  502. package/dist/globals/operations/docAccess.d.ts +2 -2
  503. package/dist/globals/operations/docAccess.d.ts.map +1 -1
  504. package/dist/globals/operations/docAccess.js.map +1 -1
  505. package/dist/globals/operations/findOne.d.ts +2 -3
  506. package/dist/globals/operations/findOne.d.ts.map +1 -1
  507. package/dist/globals/operations/findOne.js.map +1 -1
  508. package/dist/globals/operations/findVersionByID.d.ts +2 -2
  509. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  510. package/dist/globals/operations/findVersionByID.js.map +1 -1
  511. package/dist/globals/operations/findVersions.d.ts +2 -2
  512. package/dist/globals/operations/findVersions.d.ts.map +1 -1
  513. package/dist/globals/operations/findVersions.js.map +1 -1
  514. package/dist/globals/operations/local/findOne.d.ts +4 -4
  515. package/dist/globals/operations/local/findOne.d.ts.map +1 -1
  516. package/dist/globals/operations/local/findOne.js.map +1 -1
  517. package/dist/globals/operations/local/findVersionByID.d.ts +4 -4
  518. package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
  519. package/dist/globals/operations/local/findVersionByID.js.map +1 -1
  520. package/dist/globals/operations/local/findVersions.d.ts +4 -4
  521. package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
  522. package/dist/globals/operations/local/findVersions.js.map +1 -1
  523. package/dist/globals/operations/local/restoreVersion.d.ts +4 -4
  524. package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
  525. package/dist/globals/operations/local/restoreVersion.js.map +1 -1
  526. package/dist/globals/operations/local/update.d.ts +4 -4
  527. package/dist/globals/operations/local/update.d.ts.map +1 -1
  528. package/dist/globals/operations/local/update.js.map +1 -1
  529. package/dist/globals/operations/restoreVersion.d.ts +2 -2
  530. package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
  531. package/dist/globals/operations/restoreVersion.js.map +1 -1
  532. package/dist/globals/operations/update.d.ts +2 -2
  533. package/dist/globals/operations/update.d.ts.map +1 -1
  534. package/dist/globals/operations/update.js.map +1 -1
  535. package/dist/index.d.ts +17 -6
  536. package/dist/index.d.ts.map +1 -1
  537. package/dist/index.js +32 -14
  538. package/dist/index.js.map +1 -1
  539. package/dist/preferences/deleteUserPreferences.d.ts +2 -2
  540. package/dist/preferences/deleteUserPreferences.d.ts.map +1 -1
  541. package/dist/preferences/deleteUserPreferences.js.map +1 -1
  542. package/dist/preferences/operations/delete.js +2 -2
  543. package/dist/preferences/operations/delete.js.map +1 -1
  544. package/dist/preferences/operations/update.d.ts +1 -1
  545. package/dist/preferences/operations/update.js +1 -1
  546. package/dist/preferences/operations/update.js.map +1 -1
  547. package/dist/preferences/requestHandlers/delete.d.ts.map +1 -1
  548. package/dist/preferences/requestHandlers/delete.js +18 -5
  549. package/dist/preferences/requestHandlers/delete.js.map +1 -1
  550. package/dist/preferences/requestHandlers/findOne.d.ts.map +1 -1
  551. package/dist/preferences/requestHandlers/findOne.js +18 -5
  552. package/dist/preferences/requestHandlers/findOne.js.map +1 -1
  553. package/dist/preferences/requestHandlers/update.d.ts.map +1 -1
  554. package/dist/preferences/requestHandlers/update.js +19 -7
  555. package/dist/preferences/requestHandlers/update.js.map +1 -1
  556. package/dist/preferences/types.d.ts +3 -4
  557. package/dist/preferences/types.d.ts.map +1 -1
  558. package/dist/preferences/types.js.map +1 -1
  559. package/dist/types/index.d.ts +21 -17
  560. package/dist/types/index.d.ts.map +1 -1
  561. package/dist/types/index.js.map +1 -1
  562. package/dist/uploads/deleteAssociatedFiles.d.ts +2 -2
  563. package/dist/uploads/deleteAssociatedFiles.d.ts.map +1 -1
  564. package/dist/uploads/deleteAssociatedFiles.js.map +1 -1
  565. package/dist/uploads/docWithFilenameExists.d.ts +2 -2
  566. package/dist/uploads/docWithFilenameExists.d.ts.map +1 -1
  567. package/dist/uploads/docWithFilenameExists.js.map +1 -1
  568. package/dist/uploads/generateFileData.d.ts +2 -2
  569. package/dist/uploads/generateFileData.d.ts.map +1 -1
  570. package/dist/uploads/generateFileData.js +5 -4
  571. package/dist/uploads/generateFileData.js.map +1 -1
  572. package/dist/uploads/getExternalFile.d.ts +5 -4
  573. package/dist/uploads/getExternalFile.d.ts.map +1 -1
  574. package/dist/uploads/getExternalFile.js +10 -6
  575. package/dist/uploads/getExternalFile.js.map +1 -1
  576. package/dist/uploads/getFileByPath.d.ts +2 -2
  577. package/dist/uploads/getFileByPath.d.ts.map +1 -1
  578. package/dist/uploads/getFileByPath.js.map +1 -1
  579. package/dist/uploads/getImageSize.d.ts +2 -2
  580. package/dist/uploads/getImageSize.d.ts.map +1 -1
  581. package/dist/uploads/getImageSize.js +19 -5
  582. package/dist/uploads/getImageSize.js.map +1 -1
  583. package/dist/uploads/getSafeFilename.d.ts +2 -2
  584. package/dist/uploads/getSafeFilename.d.ts.map +1 -1
  585. package/dist/uploads/getSafeFilename.js.map +1 -1
  586. package/dist/uploads/imageResizer.d.ts +3 -3
  587. package/dist/uploads/imageResizer.d.ts.map +1 -1
  588. package/dist/uploads/imageResizer.js.map +1 -1
  589. package/dist/uploads/tempFile.d.ts +7 -0
  590. package/dist/uploads/tempFile.d.ts.map +1 -0
  591. package/dist/uploads/tempFile.js +39 -0
  592. package/dist/uploads/tempFile.js.map +1 -0
  593. package/dist/uploads/types.d.ts +12 -2
  594. package/dist/uploads/types.d.ts.map +1 -1
  595. package/dist/uploads/types.js.map +1 -1
  596. package/dist/uploads/unlinkTempFiles.d.ts +2 -2
  597. package/dist/uploads/unlinkTempFiles.d.ts.map +1 -1
  598. package/dist/uploads/unlinkTempFiles.js.map +1 -1
  599. package/dist/uploads/uploadFiles.d.ts +2 -2
  600. package/dist/uploads/uploadFiles.d.ts.map +1 -1
  601. package/dist/uploads/uploadFiles.js.map +1 -1
  602. package/dist/utilities/checkDuplicateCollections.js +1 -1
  603. package/dist/utilities/checkDuplicateCollections.js.map +1 -1
  604. package/dist/utilities/commitTransaction.d.ts +2 -2
  605. package/dist/utilities/commitTransaction.d.ts.map +1 -1
  606. package/dist/utilities/commitTransaction.js.map +1 -1
  607. package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
  608. package/dist/utilities/configToJSONSchema.js +56 -1
  609. package/dist/utilities/configToJSONSchema.js.map +1 -1
  610. package/dist/utilities/configToJSONSchema.spec.js +2 -2
  611. package/dist/utilities/configToJSONSchema.spec.js.map +1 -1
  612. package/dist/utilities/createLocalReq.d.ts +3 -3
  613. package/dist/utilities/createLocalReq.d.ts.map +1 -1
  614. package/dist/utilities/createLocalReq.js +4 -2
  615. package/dist/utilities/createLocalReq.js.map +1 -1
  616. package/dist/utilities/getEntityPolicies.d.ts +2 -2
  617. package/dist/utilities/getEntityPolicies.d.ts.map +1 -1
  618. package/dist/utilities/getEntityPolicies.js.map +1 -1
  619. package/dist/utilities/importWithoutClientFiles.d.ts.map +1 -1
  620. package/dist/utilities/importWithoutClientFiles.js +7 -4
  621. package/dist/utilities/importWithoutClientFiles.js.map +1 -1
  622. package/dist/utilities/initTransaction.d.ts +2 -2
  623. package/dist/utilities/initTransaction.d.ts.map +1 -1
  624. package/dist/utilities/initTransaction.js.map +1 -1
  625. package/dist/utilities/isEntityHidden.d.ts +2 -2
  626. package/dist/utilities/isEntityHidden.d.ts.map +1 -1
  627. package/dist/utilities/isEntityHidden.js.map +1 -1
  628. package/dist/utilities/isReactComponent.d.ts +2 -0
  629. package/dist/utilities/isReactComponent.d.ts.map +1 -1
  630. package/dist/utilities/isReactComponent.js +8 -2
  631. package/dist/utilities/isReactComponent.js.map +1 -1
  632. package/dist/utilities/killTransaction.d.ts +2 -2
  633. package/dist/utilities/killTransaction.d.ts.map +1 -1
  634. package/dist/utilities/killTransaction.js.map +1 -1
  635. package/dist/utilities/parseCookies.js +1 -1
  636. package/dist/utilities/parseCookies.js.map +1 -1
  637. package/dist/utilities/telemetry/events/adminInit.d.ts +2 -2
  638. package/dist/utilities/telemetry/events/adminInit.d.ts.map +1 -1
  639. package/dist/utilities/telemetry/events/adminInit.js.map +1 -1
  640. package/dist/utilities/telemetry/index.d.ts +9 -0
  641. package/dist/utilities/telemetry/index.d.ts.map +1 -1
  642. package/dist/utilities/telemetry/index.js +62 -14
  643. package/dist/utilities/telemetry/index.js.map +1 -1
  644. package/dist/versions/deleteCollectionVersions.d.ts +2 -2
  645. package/dist/versions/deleteCollectionVersions.d.ts.map +1 -1
  646. package/dist/versions/deleteCollectionVersions.js.map +1 -1
  647. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts +2 -2
  648. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts.map +1 -1
  649. package/dist/versions/drafts/replaceWithDraftIfAvailable.js.map +1 -1
  650. package/dist/versions/enforceMaxVersions.d.ts +2 -2
  651. package/dist/versions/enforceMaxVersions.d.ts.map +1 -1
  652. package/dist/versions/enforceMaxVersions.js.map +1 -1
  653. package/dist/versions/getLatestCollectionVersion.d.ts +2 -2
  654. package/dist/versions/getLatestCollectionVersion.d.ts.map +1 -1
  655. package/dist/versions/getLatestCollectionVersion.js.map +1 -1
  656. package/dist/versions/getLatestGlobalVersion.d.ts +2 -2
  657. package/dist/versions/getLatestGlobalVersion.d.ts.map +1 -1
  658. package/dist/versions/getLatestGlobalVersion.js.map +1 -1
  659. package/dist/versions/saveVersion.d.ts +2 -2
  660. package/dist/versions/saveVersion.d.ts.map +1 -1
  661. package/dist/versions/saveVersion.js +1 -1
  662. package/dist/versions/saveVersion.js.map +1 -1
  663. package/package.json +71 -65
  664. package/auth.d.ts +0 -6
  665. package/auth.js +0 -6
  666. package/config.d.ts +0 -14
  667. package/config.js +0 -14
  668. package/database.d.ts +0 -23
  669. package/database.js +0 -22
  670. package/dist/email/build.d.ts +0 -5
  671. package/dist/email/build.d.ts.map +0 -1
  672. package/dist/email/build.js +0 -63
  673. package/dist/email/build.js.map +0 -1
  674. package/dist/email/mockHandler.d.ts +0 -5
  675. package/dist/email/mockHandler.d.ts.map +0 -1
  676. package/dist/email/mockHandler.js +0 -24
  677. package/dist/email/mockHandler.js.map +0 -1
  678. package/dist/utilities/getIDType.d.ts +0 -4
  679. package/dist/utilities/getIDType.d.ts.map +0 -1
  680. package/dist/utilities/getIDType.js +0 -8
  681. package/dist/utilities/getIDType.js.map +0 -1
  682. package/errors.d.ts +0 -2
  683. package/errors.js +0 -3
  684. package/node.d.ts +0 -3
  685. package/node.js +0 -4
  686. package/operations.d.ts +0 -30
  687. package/operations.js +0 -31
  688. package/src/index.ts +0 -486
  689. package/types.d.ts +0 -17
  690. package/types.js +0 -5
  691. package/uploads.d.ts +0 -2
  692. package/uploads.js +0 -3
  693. package/utilities.d.ts +0 -32
  694. package/utilities.js +0 -33
  695. package/versions.d.ts +0 -9
  696. package/versions.js +0 -9
@@ -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 { Config } from '../../config/types.js'\nimport { InvalidFieldName, InvalidFieldRelationship, MissingFieldType } from '../../errors/index.js'\nimport { sanitizeFields } from './sanitize.js'\nimport type {\n ArrayField,\n Block,\n BlockField,\n CheckboxField,\n Field,\n NumberField,\n TextField,\n} from './types.js'\n\ndescribe('sanitizeFields', () => {\n const config = {} as Config\n it('should throw on missing type field', async () => {\n const fields: Field[] = [\n // @ts-expect-error\n {\n label: 'some-collection',\n name: 'Some Collection',\n },\n ]\n await expect(async () => {\n await sanitizeFields({\n config,\n fields,\n validRelationships: [],\n })\n }).rejects.toThrow(MissingFieldType)\n })\n it('should throw on invalid field name', async () => {\n const fields: Field[] = [\n {\n label: 'some.collection',\n name: 'some.collection',\n type: 'text',\n },\n ]\n await expect(async () => {\n await sanitizeFields({\n config,\n fields,\n validRelationships: [],\n })\n }).rejects.toThrow(InvalidFieldName)\n })\n\n describe('auto-labeling', () => {\n it('should populate label if missing', async () => {\n const fields: Field[] = [\n {\n name: 'someField',\n type: 'text',\n },\n ]\n const sanitizedField = (\n await sanitizeFields({\n config,\n fields,\n validRelationships: [],\n })\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', async () => {\n const fields: Field[] = [\n {\n label: 'Do not label',\n name: 'someField',\n type: 'text',\n },\n ]\n const sanitizedField = (\n await sanitizeFields({\n config,\n fields,\n validRelationships: [],\n })\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', async () => {\n const fields: Field[] = [\n {\n label: false,\n name: 'someField',\n type: 'text',\n },\n ]\n const sanitizedField = (\n await sanitizeFields({\n config,\n fields,\n validRelationships: [],\n })\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', async () => {\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 = (\n await sanitizeFields({\n config,\n fields: [arrayField],\n validRelationships: [],\n })\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', async () => {\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 = (\n await sanitizeFields({\n config,\n fields,\n validRelationships: [],\n })\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', async () => {\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 = (\n await sanitizeFields({\n config,\n fields,\n validRelationships: [],\n })\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', async () => {\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 = (\n await sanitizeFields({\n config,\n fields,\n validRelationships: [],\n })\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', async () => {\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 await expect(async () => {\n await sanitizeFields({ config, fields, validRelationships })\n }).not.toThrow()\n })\n\n it('should not throw on valid relationship - multiple', async () => {\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 await expect(async () => {\n await sanitizeFields({ config, fields, validRelationships })\n }).not.toThrow()\n })\n\n it('should not throw on valid relationship inside blocks', async () => {\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 await expect(async () => {\n await sanitizeFields({ config, fields, validRelationships })\n }).not.toThrow()\n })\n\n it('should throw on invalid relationship', async () => {\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 await expect(async () => {\n await sanitizeFields({ config, fields, validRelationships })\n }).rejects.toThrow(InvalidFieldRelationship)\n })\n\n it('should throw on invalid relationship - multiple', async () => {\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 await expect(async () => {\n await sanitizeFields({ config, fields, validRelationships })\n }).rejects.toThrow(InvalidFieldRelationship)\n })\n\n it('should throw on invalid relationship inside blocks', async () => {\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 await expect(async () => {\n await sanitizeFields({ config, fields, validRelationships })\n }).rejects.toThrow(InvalidFieldRelationship)\n })\n\n it('should defaultValue of checkbox to false if required and undefined', async () => {\n const fields: Field[] = [\n {\n name: 'My Checkbox',\n required: true,\n type: 'checkbox',\n },\n ]\n\n const sanitizedField = (\n await sanitizeFields({\n config,\n fields,\n validRelationships: [],\n })\n )[0] as CheckboxField\n expect(sanitizedField.defaultValue).toStrictEqual(false)\n })\n\n it('should return empty field array if no fields', async () => {\n const sanitizedFields = await sanitizeFields({\n config,\n fields: [],\n validRelationships: [],\n })\n expect(sanitizedFields).toStrictEqual([])\n })\n })\n})\n"],"names":["InvalidFieldName","InvalidFieldRelationship","MissingFieldType","sanitizeFields","describe","config","it","fields","label","name","expect","validRelationships","rejects","toThrow","type","sanitizedField","toStrictEqual","arrayField","labels","toBeUndefined","blocks","slug","toMatchObject","plural","singular","relationTo","not","relationshipBlock","required","defaultValue","sanitizedFields"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,gBAAgB,EAAEC,wBAAwB,EAAEC,gBAAgB,QAAQ,wBAAuB;AACpG,SAASC,cAAc,QAAQ,gBAAe;AAW9CC,SAAS,kBAAkB;IACzB,MAAMC,SAAS,CAAC;IAChBC,GAAG,sCAAsC;QACvC,MAAMC,SAAkB;YACtB,mBAAmB;YACnB;gBACEC,OAAO;gBACPC,MAAM;YACR;SACD;QACD,MAAMC,OAAO;YACX,MAAMP,eAAe;gBACnBE;gBACAE;gBACAI,oBAAoB,EAAE;YACxB;QACF,GAAGC,OAAO,CAACC,OAAO,CAACX;IACrB;IACAI,GAAG,sCAAsC;QACvC,MAAMC,SAAkB;YACtB;gBACEC,OAAO;gBACPC,MAAM;gBACNK,MAAM;YACR;SACD;QACD,MAAMJ,OAAO;YACX,MAAMP,eAAe;gBACnBE;gBACAE;gBACAI,oBAAoB,EAAE;YACxB;QACF,GAAGC,OAAO,CAACC,OAAO,CAACb;IACrB;IAEAI,SAAS,iBAAiB;QACxBE,GAAG,oCAAoC;YACrC,MAAMC,SAAkB;gBACtB;oBACEE,MAAM;oBACNK,MAAM;gBACR;aACD;YACD,MAAMC,iBAAiB,AACrB,CAAA,MAAMZ,eAAe;gBACnBE;gBACAE;gBACAI,oBAAoB,EAAE;YACxB,EAAC,CACF,CAAC,EAAE;YACJD,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,iBAAiB,AACrB,CAAA,MAAMZ,eAAe;gBACnBE;gBACAE;gBACAI,oBAAoB,EAAE;YACxB,EAAC,CACF,CAAC,EAAE;YACJD,OAAOK,eAAeN,IAAI,EAAEO,aAAa,CAAC;YAC1CN,OAAOK,eAAeP,KAAK,EAAEQ,aAAa,CAAC;YAC3CN,OAAOK,eAAeD,IAAI,EAAEE,aAAa,CAAC;QAC5C;QAEAZ,SAAS,WAAW;YAClBE,GAAG,8BAA8B;gBAC/B,MAAMC,SAAkB;oBACtB;wBACEC,OAAO;wBACPC,MAAM;wBACNK,MAAM;oBACR;iBACD;gBACD,MAAMC,iBAAiB,AACrB,CAAA,MAAMZ,eAAe;oBACnBE;oBACAE;oBACAI,oBAAoB,EAAE;gBACxB,EAAC,CACF,CAAC,EAAE;gBACJD,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,iBAAiB,AACrB,CAAA,MAAMZ,eAAe;oBACnBE;oBACAE,QAAQ;wBAACU;qBAAW;oBACpBN,oBAAoB,EAAE;gBACxB,EAAC,CACF,CAAC,EAAE;gBACJD,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,iBAAiB,AACrB,CAAA,MAAMZ,eAAe;oBACnBE;oBACAE;oBACAI,oBAAoB,EAAE;gBACxB,EAAC,CACF,CAAC,EAAE;gBACJD,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,iBAAiB,AACrB,CAAA,MAAMZ,eAAe;gBACnBE;gBACAE;gBACAI,oBAAoB,EAAE;YACxB,EAAC,CACF,CAAC,EAAE;YACJD,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,iBAAiB,AACrB,CAAA,MAAMZ,eAAe;gBACnBE;gBACAE;gBACAI,oBAAoB,EAAE;YACxB,EAAC,CACF,CAAC,EAAE;YACJD,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;IAEAZ,SAAS,iBAAiB;QACxBE,GAAG,0CAA0C;YAC3C,MAAMK,qBAAqB;gBAAC;aAAkB;YAC9C,MAAMJ,SAAkB;gBACtB;oBACEC,OAAO;oBACPC,MAAM;oBACNgB,YAAY;oBACZX,MAAM;gBACR;aACD;YACD,MAAMJ,OAAO;gBACX,MAAMP,eAAe;oBAAEE;oBAAQE;oBAAQI;gBAAmB;YAC5D,GAAGe,GAAG,CAACb,OAAO;QAChB;QAEAP,GAAG,qDAAqD;YACtD,MAAMK,qBAAqB;gBAAC;gBAAmB;aAAqB;YACpE,MAAMJ,SAAkB;gBACtB;oBACEC,OAAO;oBACPC,MAAM;oBACNgB,YAAY;wBAAC;wBAAmB;qBAAqB;oBACrDX,MAAM;gBACR;aACD;YACD,MAAMJ,OAAO;gBACX,MAAMP,eAAe;oBAAEE;oBAAQE;oBAAQI;gBAAmB;YAC5D,GAAGe,GAAG,CAACb,OAAO;QAChB;QAEAP,GAAG,wDAAwD;YACzD,MAAMK,qBAAqB;gBAAC;aAAkB;YAC9C,MAAMgB,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;YACD,MAAMJ,OAAO;gBACX,MAAMP,eAAe;oBAAEE;oBAAQE;oBAAQI;gBAAmB;YAC5D,GAAGe,GAAG,CAACb,OAAO;QAChB;QAEAP,GAAG,wCAAwC;YACzC,MAAMK,qBAAqB;gBAAC;aAAkB;YAC9C,MAAMJ,SAAkB;gBACtB;oBACEC,OAAO;oBACPC,MAAM;oBACNgB,YAAY;oBACZX,MAAM;gBACR;aACD;YACD,MAAMJ,OAAO;gBACX,MAAMP,eAAe;oBAAEE;oBAAQE;oBAAQI;gBAAmB;YAC5D,GAAGC,OAAO,CAACC,OAAO,CAACZ;QACrB;QAEAK,GAAG,mDAAmD;YACpD,MAAMK,qBAAqB;gBAAC;gBAAmB;aAAqB;YACpE,MAAMJ,SAAkB;gBACtB;oBACEC,OAAO;oBACPC,MAAM;oBACNgB,YAAY;wBAAC;wBAAmB;qBAAY;oBAC5CX,MAAM;gBACR;aACD;YACD,MAAMJ,OAAO;gBACX,MAAMP,eAAe;oBAAEE;oBAAQE;oBAAQI;gBAAmB;YAC5D,GAAGC,OAAO,CAACC,OAAO,CAACZ;QACrB;QAEAK,GAAG,sDAAsD;YACvD,MAAMK,qBAAqB;gBAAC;aAAkB;YAC9C,MAAMgB,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;YACD,MAAMJ,OAAO;gBACX,MAAMP,eAAe;oBAAEE;oBAAQE;oBAAQI;gBAAmB;YAC5D,GAAGC,OAAO,CAACC,OAAO,CAACZ;QACrB;QAEAK,GAAG,sEAAsE;YACvE,MAAMC,SAAkB;gBACtB;oBACEE,MAAM;oBACNmB,UAAU;oBACVd,MAAM;gBACR;aACD;YAED,MAAMC,iBAAiB,AACrB,CAAA,MAAMZ,eAAe;gBACnBE;gBACAE;gBACAI,oBAAoB,EAAE;YACxB,EAAC,CACF,CAAC,EAAE;YACJD,OAAOK,eAAec,YAAY,EAAEb,aAAa,CAAC;QACpD;QAEAV,GAAG,gDAAgD;YACjD,MAAMwB,kBAAkB,MAAM3B,eAAe;gBAC3CE;gBACAE,QAAQ,EAAE;gBACVI,oBAAoB,EAAE;YACxB;YACAD,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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"}
@@ -1,13 +1,14 @@
1
1
  import type { EditorProps } from '@monaco-editor/react';
2
2
  import type { CSSProperties } from 'react';
3
3
  import type React from 'react';
4
- import type { ConditionalDateProps, Description, ErrorProps, LabelProps, RichTextAdapter, RowLabel } from '../../admin/types.js';
5
- import type { User } from '../../auth/index.js';
4
+ import type { RichTextAdapter, RichTextAdapterProvider } from '../../admin/RichText.js';
5
+ import type { ConditionalDateProps, Description, ErrorProps, LabelProps, RowLabel } from '../../admin/types.js';
6
6
  import type { SanitizedCollectionConfig, TypeWithID } from '../../collections/config/types.js';
7
- import type { LabelFunction } from '../../config/types.js';
7
+ import type { CustomComponent, LabelFunction } from '../../config/types.js';
8
8
  import type { DBIdentifierName } from '../../database/types.js';
9
9
  import type { SanitizedGlobalConfig } from '../../globals/config/types.js';
10
- import type { Operation, PayloadRequest, RequestContext, Where } from '../../types/index.js';
10
+ import type { DocumentPreferences } from '../../preferences/types.js';
11
+ import type { Operation, PayloadRequestWithData, RequestContext, Where } from '../../types/index.js';
11
12
  import type { ClientFieldConfig } from './client.js';
12
13
  export type FieldHookArgs<T extends TypeWithID = any, P = any, S = any> = {
13
14
  /** The collection which the field belongs to. If the field belongs to a global, this will be null. */
@@ -25,14 +26,15 @@ export type FieldHookArgs<T extends TypeWithID = any, P = any, S = any> = {
25
26
  operation?: 'create' | 'delete' | 'read' | 'update';
26
27
  /** The full original document in `update` operations. In the `afterChange` hook, this is the resulting document of the operation. */
27
28
  originalDoc?: T;
29
+ overrideAccess?: boolean;
28
30
  /** The document before changes were applied, only in `afterChange` hooks. */
29
31
  previousDoc?: T;
30
32
  /** The sibling data of the document before changes being applied, only in `beforeChange` and `afterChange` hook. */
31
33
  previousSiblingDoc?: T;
32
- /** The previous value of the field, before changes, only in `beforeChange` and `afterChange` hooks. */
34
+ /** The previous value of the field, before changes, only in `beforeChange`, `afterChange` and `beforeValidate` hooks. */
33
35
  previousValue?: P;
34
36
  /** The Express request object. It is mocked for Local API operations. */
35
- req: PayloadRequest;
37
+ req: PayloadRequestWithData;
36
38
  /** The sibling data passed to a field that the hook is running against. */
37
39
  siblingData: Partial<S>;
38
40
  /** The value of the field. */
@@ -53,14 +55,14 @@ export type FieldAccess<T extends TypeWithID = any, P = any, U = any> = (args: {
53
55
  */
54
56
  id?: number | string;
55
57
  /** The `payload` object to interface with the payload API */
56
- req: PayloadRequest<U>;
58
+ req: PayloadRequestWithData<U>;
57
59
  /**
58
60
  * Immediately adjacent data to this field. For example, if this is a `group` field, then `siblingData` will be the other fields within the group.
59
61
  */
60
62
  siblingData?: Partial<P>;
61
63
  }) => Promise<boolean> | boolean;
62
64
  export type Condition<T extends TypeWithID = any, P = any> = (data: Partial<T>, siblingData: Partial<P>, { user }: {
63
- user: User;
65
+ user: PayloadRequestWithData['user'];
64
66
  }) => boolean;
65
67
  export type FilterOptionsProps<T = any> = {
66
68
  /**
@@ -82,14 +84,14 @@ export type FilterOptionsProps<T = any> = {
82
84
  /**
83
85
  * An object containing the currently authenticated user.
84
86
  */
85
- user: Partial<User>;
87
+ user: Partial<PayloadRequestWithData['user']>;
86
88
  };
87
89
  export type FilterOptions<T = any> = ((options: FilterOptionsProps<T>) => Promise<Where | boolean> | Where | boolean) | Where | null;
88
90
  type Admin = {
89
91
  className?: string;
90
92
  components?: {
91
- Cell?: React.ComponentType<any>;
92
- Field?: React.ComponentType<any>;
93
+ Cell?: CustomComponent;
94
+ Field?: CustomComponent;
93
95
  Filter?: React.ComponentType<any>;
94
96
  };
95
97
  /**
@@ -97,6 +99,8 @@ type Admin = {
97
99
  * This is also run on the server, to determine if the field should be validated.
98
100
  */
99
101
  condition?: Condition;
102
+ /** Extension point to add your custom data. Available in server and client. */
103
+ custom?: Record<string, any>;
100
104
  description?: Description;
101
105
  disableBulkEdit?: boolean;
102
106
  disabled?: boolean;
@@ -114,7 +118,8 @@ export type BaseValidateOptions<TData, TSiblingData> = {
114
118
  data: Partial<TData>;
115
119
  id?: number | string;
116
120
  operation?: Operation;
117
- req: PayloadRequest;
121
+ preferences: DocumentPreferences;
122
+ req: PayloadRequestWithData;
118
123
  siblingData: Partial<TSiblingData>;
119
124
  };
120
125
  export type ValidateOptions<TData, TSiblingData, TFieldConfig extends object> = BaseValidateOptions<TData, TSiblingData> & TFieldConfig;
@@ -132,7 +137,7 @@ export interface FieldBase {
132
137
  update?: FieldAccess;
133
138
  };
134
139
  admin?: Admin;
135
- /** Extension point to add your custom data. */
140
+ /** Extension point to add your custom data. Server only. */
136
141
  custom?: Record<string, any>;
137
142
  defaultValue?: any;
138
143
  hidden?: boolean;
@@ -160,10 +165,10 @@ export type NumberField = FieldBase & {
160
165
  /** Set this property to a string that will be used for browser autocomplete. */
161
166
  autoComplete?: string;
162
167
  components?: {
163
- Error?: React.ComponentType<ErrorProps>;
164
- Label?: React.ComponentType<LabelProps>;
165
- afterInput?: React.ComponentType<any>[];
166
- beforeInput?: React.ComponentType<any>[];
168
+ Error?: CustomComponent<ErrorProps>;
169
+ Label?: CustomComponent<LabelProps>;
170
+ afterInput?: CustomComponent[];
171
+ beforeInput?: CustomComponent[];
167
172
  };
168
173
  /** Set this property to define a placeholder string for the field. */
169
174
  placeholder?: Record<string, string> | string;
@@ -194,10 +199,10 @@ export type TextField = FieldBase & {
194
199
  admin?: Admin & {
195
200
  autoComplete?: string;
196
201
  components?: {
197
- Error?: React.ComponentType<ErrorProps>;
198
- Label?: React.ComponentType<LabelProps>;
199
- afterInput?: React.ComponentType<any>[];
200
- beforeInput?: React.ComponentType<any>[];
202
+ Error?: CustomComponent<ErrorProps>;
203
+ Label?: CustomComponent<LabelProps>;
204
+ afterInput?: CustomComponent[];
205
+ beforeInput?: CustomComponent[];
201
206
  };
202
207
  placeholder?: Record<string, string> | string;
203
208
  rtl?: boolean;
@@ -224,10 +229,10 @@ export type EmailField = FieldBase & {
224
229
  admin?: Admin & {
225
230
  autoComplete?: string;
226
231
  components?: {
227
- Error?: React.ComponentType<ErrorProps>;
228
- Label?: React.ComponentType<LabelProps>;
229
- afterInput?: React.ComponentType<any>[];
230
- beforeInput?: React.ComponentType<any>[];
232
+ Error?: CustomComponent<ErrorProps>;
233
+ Label?: CustomComponent<LabelProps>;
234
+ afterInput?: CustomComponent[];
235
+ beforeInput?: CustomComponent[];
231
236
  };
232
237
  placeholder?: Record<string, string> | string;
233
238
  };
@@ -236,10 +241,10 @@ export type EmailField = FieldBase & {
236
241
  export type TextareaField = FieldBase & {
237
242
  admin?: Admin & {
238
243
  components?: {
239
- Error?: React.ComponentType<ErrorProps>;
240
- Label?: React.ComponentType<LabelProps>;
241
- afterInput?: React.ComponentType<any>[];
242
- beforeInput?: React.ComponentType<any>[];
244
+ Error?: CustomComponent<ErrorProps>;
245
+ Label?: CustomComponent<LabelProps>;
246
+ afterInput?: CustomComponent[];
247
+ beforeInput?: CustomComponent[];
243
248
  };
244
249
  placeholder?: Record<string, string> | string;
245
250
  rows?: number;
@@ -252,10 +257,10 @@ export type TextareaField = FieldBase & {
252
257
  export type CheckboxField = FieldBase & {
253
258
  admin?: Admin & {
254
259
  components?: {
255
- Error?: React.ComponentType<ErrorProps>;
256
- Label?: React.ComponentType<LabelProps>;
257
- afterInput?: React.ComponentType<any>[];
258
- beforeInput?: React.ComponentType<any>[];
260
+ Error?: CustomComponent<ErrorProps>;
261
+ Label?: CustomComponent<LabelProps>;
262
+ afterInput?: CustomComponent[];
263
+ beforeInput?: CustomComponent[];
259
264
  };
260
265
  };
261
266
  type: 'checkbox';
@@ -263,10 +268,10 @@ export type CheckboxField = FieldBase & {
263
268
  export type DateField = FieldBase & {
264
269
  admin?: Admin & {
265
270
  components?: {
266
- Error?: React.ComponentType<ErrorProps>;
267
- Label?: React.ComponentType<LabelProps>;
268
- afterInput?: React.ComponentType<any>[];
269
- beforeInput?: React.ComponentType<any>[];
271
+ Error?: CustomComponent<ErrorProps>;
272
+ Label?: CustomComponent<LabelProps>;
273
+ afterInput?: CustomComponent[];
274
+ beforeInput?: CustomComponent[];
270
275
  };
271
276
  date?: ConditionalDateProps;
272
277
  placeholder?: Record<string, string> | string;
@@ -342,16 +347,18 @@ export type TabAsField = Tab & {
342
347
  export type UIField = {
343
348
  admin: {
344
349
  components?: {
345
- Cell?: React.ComponentType<any>;
346
- Field: React.ComponentType<any>;
350
+ Cell?: CustomComponent;
351
+ Field: CustomComponent;
347
352
  Filter?: React.ComponentType<any>;
348
353
  };
349
354
  condition?: Condition;
355
+ /** Extension point to add your custom data. Available in server and client. */
356
+ custom?: Record<string, any>;
350
357
  disableBulkEdit?: boolean;
351
358
  position?: string;
352
359
  width?: string;
353
360
  };
354
- /** Extension point to add your custom data. */
361
+ /** Extension point to add your custom data. Server only. */
355
362
  custom?: Record<string, any>;
356
363
  label?: Record<string, string> | string;
357
364
  name: string;
@@ -360,8 +367,8 @@ export type UIField = {
360
367
  export type UploadField = FieldBase & {
361
368
  admin?: {
362
369
  components?: {
363
- Error?: React.ComponentType<ErrorProps>;
364
- Label?: React.ComponentType<LabelProps>;
370
+ Error?: CustomComponent<ErrorProps>;
371
+ Label?: CustomComponent<LabelProps>;
365
372
  };
366
373
  };
367
374
  filterOptions?: FilterOptions;
@@ -371,8 +378,8 @@ export type UploadField = FieldBase & {
371
378
  };
372
379
  type CodeAdmin = Admin & {
373
380
  components?: {
374
- Error?: React.ComponentType<ErrorProps>;
375
- Label?: React.ComponentType<LabelProps>;
381
+ Error?: CustomComponent<ErrorProps>;
382
+ Label?: CustomComponent<LabelProps>;
376
383
  };
377
384
  editorOptions?: EditorProps['options'];
378
385
  language?: string;
@@ -385,20 +392,21 @@ export type CodeField = Omit<FieldBase, 'admin'> & {
385
392
  };
386
393
  type JSONAdmin = Admin & {
387
394
  components?: {
388
- Error?: React.ComponentType<ErrorProps>;
389
- Label?: React.ComponentType<LabelProps>;
395
+ Error?: CustomComponent<ErrorProps>;
396
+ Label?: CustomComponent<LabelProps>;
390
397
  };
391
398
  editorOptions?: EditorProps['options'];
392
399
  };
393
400
  export type JSONField = Omit<FieldBase, 'admin'> & {
394
401
  admin?: JSONAdmin;
402
+ jsonSchema?: Record<string, unknown>;
395
403
  type: 'json';
396
404
  };
397
405
  export type SelectField = FieldBase & {
398
406
  admin?: Admin & {
399
407
  components?: {
400
- Error?: React.ComponentType<ErrorProps>;
401
- Label?: React.ComponentType<LabelProps>;
408
+ Error?: CustomComponent<ErrorProps>;
409
+ Label?: CustomComponent<LabelProps>;
402
410
  };
403
411
  isClearable?: boolean;
404
412
  isSortable?: boolean;
@@ -448,8 +456,8 @@ type SharedRelationshipProperties = FieldBase & {
448
456
  type RelationshipAdmin = Admin & {
449
457
  allowCreate?: boolean;
450
458
  components?: {
451
- Error?: React.ComponentType<ErrorProps>;
452
- Label?: React.ComponentType<LabelProps>;
459
+ Error?: CustomComponent<ErrorProps>;
460
+ Label?: CustomComponent<LabelProps>;
453
461
  };
454
462
  isSortable?: boolean;
455
463
  };
@@ -477,15 +485,15 @@ export type RelationshipValue = (number | string)[] | ValueWithRelation | ValueW
477
485
  export type RichTextField<Value extends object = any, AdapterProps = any, ExtraProperties = object> = FieldBase & {
478
486
  admin?: Admin & {
479
487
  components?: {
480
- Error?: React.ComponentType<ErrorProps>;
481
- Label?: React.ComponentType<LabelProps>;
488
+ Error?: CustomComponent<ErrorProps>;
489
+ Label?: CustomComponent<LabelProps>;
482
490
  };
483
491
  };
484
- editor?: RichTextAdapter<Value, AdapterProps, AdapterProps>;
492
+ editor?: RichTextAdapter<Value, AdapterProps, AdapterProps> | RichTextAdapterProvider<Value, AdapterProps, AdapterProps>;
485
493
  type: 'richText';
486
494
  } & ExtraProperties;
487
495
  export type RichTextFieldRequiredEditor<Value extends object = any, AdapterProps = any, ExtraProperties = object> = Omit<RichTextField<Value, AdapterProps, ExtraProperties>, 'editor'> & {
488
- editor: RichTextAdapter<Value, AdapterProps, ExtraProperties>;
496
+ editor: RichTextAdapter<Value, AdapterProps, AdapterProps> | RichTextAdapterProvider<Value, AdapterProps, AdapterProps>;
489
497
  };
490
498
  export type ArrayField = FieldBase & {
491
499
  admin?: Admin & {
@@ -514,8 +522,8 @@ export type ArrayField = FieldBase & {
514
522
  export type RadioField = FieldBase & {
515
523
  admin?: Admin & {
516
524
  components?: {
517
- Error?: React.ComponentType<ErrorProps>;
518
- Label?: React.ComponentType<LabelProps>;
525
+ Error?: CustomComponent<ErrorProps>;
526
+ Label?: CustomComponent<LabelProps>;
519
527
  };
520
528
  layout?: 'horizontal' | 'vertical';
521
529
  };
@@ -531,7 +539,11 @@ export type RadioField = FieldBase & {
531
539
  type: 'radio';
532
540
  };
533
541
  export type Block = {
534
- /** Extension point to add your custom data. */
542
+ admin?: {
543
+ /** Extension point to add your custom data. Available in server and client. */
544
+ custom?: Record<string, any>;
545
+ };
546
+ /** Extension point to add your custom data. Server only. */
535
547
  custom?: Record<string, any>;
536
548
  /**
537
549
  * Customize the SQL table name