payload 3.0.0-beta.8 → 3.0.0-beta.80

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 (1209) hide show
  1. package/bin.js +33 -7
  2. package/dist/admin/LanguageOptions.d.ts +6 -0
  3. package/dist/admin/LanguageOptions.d.ts.map +1 -0
  4. package/dist/admin/LanguageOptions.js +3 -0
  5. package/dist/admin/LanguageOptions.js.map +1 -0
  6. package/dist/admin/RichText.d.ts +155 -36
  7. package/dist/admin/RichText.d.ts.map +1 -1
  8. package/dist/admin/RichText.js.map +1 -1
  9. package/dist/admin/elements/Cell.d.ts +11 -30
  10. package/dist/admin/elements/Cell.d.ts.map +1 -1
  11. package/dist/admin/elements/Cell.js.map +1 -1
  12. package/dist/admin/elements/DatePicker.d.ts +7 -7
  13. package/dist/admin/elements/DatePicker.d.ts.map +1 -1
  14. package/dist/admin/elements/DatePicker.js.map +1 -1
  15. package/dist/admin/elements/PreviewButton.js.map +1 -1
  16. package/dist/admin/elements/PublishButton.js.map +1 -1
  17. package/dist/admin/elements/SaveButton.js.map +1 -1
  18. package/dist/admin/elements/SaveDraftButton.js.map +1 -1
  19. package/dist/admin/elements/Tab.d.ts +18 -14
  20. package/dist/admin/elements/Tab.d.ts.map +1 -1
  21. package/dist/admin/elements/Tab.js.map +1 -1
  22. package/dist/admin/elements/Upload.d.ts +3 -0
  23. package/dist/admin/elements/Upload.d.ts.map +1 -0
  24. package/dist/admin/elements/Upload.js +3 -0
  25. package/dist/admin/elements/Upload.js.map +1 -0
  26. package/dist/admin/elements/WithServerSideProps.d.ts +6 -2
  27. package/dist/admin/elements/WithServerSideProps.d.ts.map +1 -1
  28. package/dist/admin/elements/WithServerSideProps.js.map +1 -1
  29. package/dist/admin/fields/Array.d.ts +14 -0
  30. package/dist/admin/fields/Array.d.ts.map +1 -0
  31. package/dist/admin/fields/Array.js +3 -0
  32. package/dist/admin/fields/Array.js.map +1 -0
  33. package/dist/admin/fields/Blocks.d.ts +13 -0
  34. package/dist/admin/fields/Blocks.d.ts.map +1 -0
  35. package/dist/admin/fields/Blocks.js +3 -0
  36. package/dist/admin/fields/Blocks.js.map +1 -0
  37. package/dist/admin/fields/Checkbox.d.ts +18 -0
  38. package/dist/admin/fields/Checkbox.d.ts.map +1 -0
  39. package/dist/admin/fields/Checkbox.js +3 -0
  40. package/dist/admin/fields/Checkbox.js.map +1 -0
  41. package/dist/admin/fields/Code.d.ts +14 -0
  42. package/dist/admin/fields/Code.d.ts.map +1 -0
  43. package/dist/admin/fields/Code.js +3 -0
  44. package/dist/admin/fields/Code.js.map +1 -0
  45. package/dist/admin/fields/Collapsible.d.ts +11 -0
  46. package/dist/admin/fields/Collapsible.d.ts.map +1 -0
  47. package/dist/admin/fields/Collapsible.js +3 -0
  48. package/dist/admin/fields/Collapsible.js.map +1 -0
  49. package/dist/admin/fields/Date.d.ts +13 -0
  50. package/dist/admin/fields/Date.d.ts.map +1 -0
  51. package/dist/admin/fields/Date.js +3 -0
  52. package/dist/admin/fields/Date.js.map +1 -0
  53. package/dist/admin/fields/Email.d.ts +14 -0
  54. package/dist/admin/fields/Email.d.ts.map +1 -0
  55. package/dist/admin/fields/Email.js +3 -0
  56. package/dist/admin/fields/Email.js.map +1 -0
  57. package/dist/admin/fields/Group.d.ts +11 -0
  58. package/dist/admin/fields/Group.d.ts.map +1 -0
  59. package/dist/admin/fields/Group.js +3 -0
  60. package/dist/admin/fields/Group.js.map +1 -0
  61. package/dist/admin/fields/Hidden.d.ts +15 -0
  62. package/dist/admin/fields/Hidden.d.ts.map +1 -0
  63. package/dist/admin/fields/Hidden.js +3 -0
  64. package/dist/admin/fields/Hidden.js.map +1 -0
  65. package/dist/admin/fields/JSON.d.ts +13 -0
  66. package/dist/admin/fields/JSON.d.ts.map +1 -0
  67. package/dist/admin/fields/JSON.js +3 -0
  68. package/dist/admin/fields/JSON.js.map +1 -0
  69. package/dist/admin/fields/Number.d.ts +14 -0
  70. package/dist/admin/fields/Number.d.ts.map +1 -0
  71. package/dist/admin/fields/Number.js +3 -0
  72. package/dist/admin/fields/Number.js.map +1 -0
  73. package/dist/admin/fields/Point.d.ts +13 -0
  74. package/dist/admin/fields/Point.d.ts.map +1 -0
  75. package/dist/admin/fields/Point.js +3 -0
  76. package/dist/admin/fields/Point.js.map +1 -0
  77. package/dist/admin/fields/Radio.d.ts +16 -0
  78. package/dist/admin/fields/Radio.d.ts.map +1 -0
  79. package/dist/admin/fields/Radio.js +3 -0
  80. package/dist/admin/fields/Radio.js.map +1 -0
  81. package/dist/admin/fields/Relationship.d.ts +13 -0
  82. package/dist/admin/fields/Relationship.d.ts.map +1 -0
  83. package/dist/admin/fields/Relationship.js +3 -0
  84. package/dist/admin/fields/Relationship.js.map +1 -0
  85. package/dist/admin/fields/RichText.d.ts +13 -0
  86. package/dist/admin/fields/RichText.d.ts.map +1 -0
  87. package/dist/admin/fields/RichText.js +3 -0
  88. package/dist/admin/fields/RichText.js.map +1 -0
  89. package/dist/admin/fields/Row.d.ts +13 -0
  90. package/dist/admin/fields/Row.d.ts.map +1 -0
  91. package/dist/admin/fields/Row.js +3 -0
  92. package/dist/admin/fields/Row.js.map +1 -0
  93. package/dist/admin/fields/Select.d.ts +15 -0
  94. package/dist/admin/fields/Select.d.ts.map +1 -0
  95. package/dist/admin/fields/Select.js +3 -0
  96. package/dist/admin/fields/Select.js.map +1 -0
  97. package/dist/admin/fields/Tabs.d.ts +16 -0
  98. package/dist/admin/fields/Tabs.d.ts.map +1 -0
  99. package/dist/admin/fields/Tabs.js +3 -0
  100. package/dist/admin/fields/Tabs.js.map +1 -0
  101. package/dist/admin/fields/Text.d.ts +16 -0
  102. package/dist/admin/fields/Text.d.ts.map +1 -0
  103. package/dist/admin/fields/Text.js +3 -0
  104. package/dist/admin/fields/Text.js.map +1 -0
  105. package/dist/admin/fields/Textarea.d.ts +16 -0
  106. package/dist/admin/fields/Textarea.d.ts.map +1 -0
  107. package/dist/admin/fields/Textarea.js +3 -0
  108. package/dist/admin/fields/Textarea.js.map +1 -0
  109. package/dist/admin/fields/Upload.d.ts +13 -0
  110. package/dist/admin/fields/Upload.d.ts.map +1 -0
  111. package/dist/admin/fields/Upload.js +3 -0
  112. package/dist/admin/fields/Upload.js.map +1 -0
  113. package/dist/admin/forms/Error.d.ts +13 -6
  114. package/dist/admin/forms/Error.d.ts.map +1 -1
  115. package/dist/admin/forms/Error.js.map +1 -1
  116. package/dist/admin/forms/Field.d.ts +25 -0
  117. package/dist/admin/forms/Field.d.ts.map +1 -0
  118. package/dist/admin/forms/Field.js +4 -0
  119. package/dist/admin/forms/Field.js.map +1 -0
  120. package/dist/admin/forms/FieldDescription.d.ts +14 -11
  121. package/dist/admin/forms/FieldDescription.d.ts.map +1 -1
  122. package/dist/admin/forms/FieldDescription.js.map +1 -1
  123. package/dist/admin/forms/Form.d.ts +2 -2
  124. package/dist/admin/forms/Form.d.ts.map +1 -1
  125. package/dist/admin/forms/Form.js.map +1 -1
  126. package/dist/admin/forms/Label.d.ts +15 -8
  127. package/dist/admin/forms/Label.d.ts.map +1 -1
  128. package/dist/admin/forms/Label.js.map +1 -1
  129. package/dist/admin/forms/RowLabel.d.ts +1 -1
  130. package/dist/admin/forms/RowLabel.d.ts.map +1 -1
  131. package/dist/admin/forms/RowLabel.js.map +1 -1
  132. package/dist/admin/types.d.ts +54 -6
  133. package/dist/admin/types.d.ts.map +1 -1
  134. package/dist/admin/types.js.map +1 -1
  135. package/dist/admin/views/types.d.ts +26 -16
  136. package/dist/admin/views/types.d.ts.map +1 -1
  137. package/dist/admin/views/types.js.map +1 -1
  138. package/dist/assets/assets.d.js.map +1 -1
  139. package/dist/auth/baseFields/accountLock.d.ts +1 -2
  140. package/dist/auth/baseFields/accountLock.d.ts.map +1 -1
  141. package/dist/auth/baseFields/accountLock.js +1 -1
  142. package/dist/auth/baseFields/accountLock.js.map +1 -1
  143. package/dist/auth/baseFields/apiKey.d.ts +1 -2
  144. package/dist/auth/baseFields/apiKey.d.ts.map +1 -1
  145. package/dist/auth/baseFields/apiKey.js +9 -8
  146. package/dist/auth/baseFields/apiKey.js.map +1 -1
  147. package/dist/auth/baseFields/auth.d.ts +1 -2
  148. package/dist/auth/baseFields/auth.d.ts.map +1 -1
  149. package/dist/auth/baseFields/auth.js +1 -16
  150. package/dist/auth/baseFields/auth.js.map +1 -1
  151. package/dist/auth/baseFields/email.d.ts +3 -0
  152. package/dist/auth/baseFields/email.d.ts.map +1 -0
  153. package/dist/auth/baseFields/email.js +25 -0
  154. package/dist/auth/baseFields/email.js.map +1 -0
  155. package/dist/auth/baseFields/username.d.ts +3 -0
  156. package/dist/auth/baseFields/username.d.ts.map +1 -0
  157. package/dist/auth/baseFields/username.js +25 -0
  158. package/dist/auth/baseFields/username.js.map +1 -0
  159. package/dist/auth/baseFields/verification.d.ts +1 -2
  160. package/dist/auth/baseFields/verification.d.ts.map +1 -1
  161. package/dist/auth/baseFields/verification.js +2 -2
  162. package/dist/auth/baseFields/verification.js.map +1 -1
  163. package/dist/auth/cookies.d.ts +17 -5
  164. package/dist/auth/cookies.d.ts.map +1 -1
  165. package/dist/auth/cookies.js +45 -14
  166. package/dist/auth/cookies.js.map +1 -1
  167. package/dist/auth/crypto.js.map +1 -1
  168. package/dist/auth/defaultAccess.js.map +1 -1
  169. package/dist/auth/defaultUser.js.map +1 -1
  170. package/dist/auth/ensureUsernameOrEmail.d.ts +17 -0
  171. package/dist/auth/ensureUsernameOrEmail.d.ts.map +1 -0
  172. package/dist/auth/ensureUsernameOrEmail.js +43 -0
  173. package/dist/auth/ensureUsernameOrEmail.js.map +1 -0
  174. package/dist/auth/executeAccess.d.ts.map +1 -1
  175. package/dist/auth/executeAccess.js.map +1 -1
  176. package/dist/auth/executeAuthStrategies.d.ts +2 -3
  177. package/dist/auth/executeAuthStrategies.d.ts.map +1 -1
  178. package/dist/auth/executeAuthStrategies.js +6 -4
  179. package/dist/auth/executeAuthStrategies.js.map +1 -1
  180. package/dist/auth/extractJWT.d.ts +1 -1
  181. package/dist/auth/extractJWT.d.ts.map +1 -1
  182. package/dist/auth/extractJWT.js.map +1 -1
  183. package/dist/auth/getAccessResults.d.ts.map +1 -1
  184. package/dist/auth/getAccessResults.js +3 -8
  185. package/dist/auth/getAccessResults.js.map +1 -1
  186. package/dist/auth/getAuthFields.d.ts +4 -0
  187. package/dist/auth/getAuthFields.d.ts.map +1 -0
  188. package/dist/auth/getAuthFields.js +43 -0
  189. package/dist/auth/getAuthFields.js.map +1 -0
  190. package/dist/auth/getFieldsToSign.d.ts +1 -1
  191. package/dist/auth/getFieldsToSign.d.ts.map +1 -1
  192. package/dist/auth/getFieldsToSign.js +1 -1
  193. package/dist/auth/getFieldsToSign.js.map +1 -1
  194. package/dist/auth/index.d.ts +2 -2
  195. package/dist/auth/index.d.ts.map +1 -1
  196. package/dist/auth/index.js +2 -2
  197. package/dist/auth/index.js.map +1 -1
  198. package/dist/auth/isLocked.d.ts.map +1 -1
  199. package/dist/auth/isLocked.js +4 -1
  200. package/dist/auth/isLocked.js.map +1 -1
  201. package/dist/auth/operations/access.d.ts.map +1 -1
  202. package/dist/auth/operations/access.js +1 -6
  203. package/dist/auth/operations/access.js.map +1 -1
  204. package/dist/auth/operations/auth.d.ts +3 -3
  205. package/dist/auth/operations/auth.d.ts.map +1 -1
  206. package/dist/auth/operations/auth.js +3 -5
  207. package/dist/auth/operations/auth.js.map +1 -1
  208. package/dist/auth/operations/forgotPassword.d.ts +5 -5
  209. package/dist/auth/operations/forgotPassword.d.ts.map +1 -1
  210. package/dist/auth/operations/forgotPassword.js +34 -20
  211. package/dist/auth/operations/forgotPassword.js.map +1 -1
  212. package/dist/auth/operations/init.d.ts.map +1 -1
  213. package/dist/auth/operations/init.js.map +1 -1
  214. package/dist/auth/operations/local/auth.d.ts.map +1 -1
  215. package/dist/auth/operations/local/auth.js.map +1 -1
  216. package/dist/auth/operations/local/forgotPassword.d.ts +3 -3
  217. package/dist/auth/operations/local/forgotPassword.d.ts.map +1 -1
  218. package/dist/auth/operations/local/forgotPassword.js.map +1 -1
  219. package/dist/auth/operations/local/index.js.map +1 -1
  220. package/dist/auth/operations/local/login.d.ts +6 -10
  221. package/dist/auth/operations/local/login.d.ts.map +1 -1
  222. package/dist/auth/operations/local/login.js.map +1 -1
  223. package/dist/auth/operations/local/resetPassword.d.ts +3 -4
  224. package/dist/auth/operations/local/resetPassword.d.ts.map +1 -1
  225. package/dist/auth/operations/local/resetPassword.js.map +1 -1
  226. package/dist/auth/operations/local/unlock.d.ts +5 -8
  227. package/dist/auth/operations/local/unlock.d.ts.map +1 -1
  228. package/dist/auth/operations/local/unlock.js.map +1 -1
  229. package/dist/auth/operations/local/verifyEmail.d.ts +3 -4
  230. package/dist/auth/operations/local/verifyEmail.d.ts.map +1 -1
  231. package/dist/auth/operations/local/verifyEmail.js.map +1 -1
  232. package/dist/auth/operations/login.d.ts +7 -10
  233. package/dist/auth/operations/login.d.ts.map +1 -1
  234. package/dist/auth/operations/login.js +108 -11
  235. package/dist/auth/operations/login.js.map +1 -1
  236. package/dist/auth/operations/logout.d.ts.map +1 -1
  237. package/dist/auth/operations/logout.js.map +1 -1
  238. package/dist/auth/operations/me.d.ts +2 -1
  239. package/dist/auth/operations/me.d.ts.map +1 -1
  240. package/dist/auth/operations/me.js +25 -9
  241. package/dist/auth/operations/me.js.map +1 -1
  242. package/dist/auth/operations/refresh.d.ts +3 -3
  243. package/dist/auth/operations/refresh.d.ts.map +1 -1
  244. package/dist/auth/operations/refresh.js +35 -17
  245. package/dist/auth/operations/refresh.js.map +1 -1
  246. package/dist/auth/operations/registerFirstUser.d.ts +7 -13
  247. package/dist/auth/operations/registerFirstUser.d.ts.map +1 -1
  248. package/dist/auth/operations/registerFirstUser.js +8 -0
  249. package/dist/auth/operations/registerFirstUser.js.map +1 -1
  250. package/dist/auth/operations/resetPassword.d.ts +0 -1
  251. package/dist/auth/operations/resetPassword.d.ts.map +1 -1
  252. package/dist/auth/operations/resetPassword.js +4 -3
  253. package/dist/auth/operations/resetPassword.js.map +1 -1
  254. package/dist/auth/operations/unlock.d.ts +5 -7
  255. package/dist/auth/operations/unlock.d.ts.map +1 -1
  256. package/dist/auth/operations/unlock.js +22 -15
  257. package/dist/auth/operations/unlock.js.map +1 -1
  258. package/dist/auth/operations/verifyEmail.d.ts.map +1 -1
  259. package/dist/auth/operations/verifyEmail.js.map +1 -1
  260. package/dist/auth/sendVerificationEmail.d.ts +5 -6
  261. package/dist/auth/sendVerificationEmail.d.ts.map +1 -1
  262. package/dist/auth/sendVerificationEmail.js +7 -8
  263. package/dist/auth/sendVerificationEmail.js.map +1 -1
  264. package/dist/auth/strategies/apiKey.d.ts.map +1 -1
  265. package/dist/auth/strategies/apiKey.js +9 -3
  266. package/dist/auth/strategies/apiKey.js.map +1 -1
  267. package/dist/auth/strategies/jwt.d.ts.map +1 -1
  268. package/dist/auth/strategies/jwt.js +71 -3
  269. package/dist/auth/strategies/jwt.js.map +1 -1
  270. package/dist/auth/strategies/local/authenticate.d.ts +1 -1
  271. package/dist/auth/strategies/local/authenticate.d.ts.map +1 -1
  272. package/dist/auth/strategies/local/authenticate.js.map +1 -1
  273. package/dist/auth/strategies/local/generatePasswordSaltHash.d.ts +5 -1
  274. package/dist/auth/strategies/local/generatePasswordSaltHash.d.ts.map +1 -1
  275. package/dist/auth/strategies/local/generatePasswordSaltHash.js +23 -14
  276. package/dist/auth/strategies/local/generatePasswordSaltHash.js.map +1 -1
  277. package/dist/auth/strategies/local/incrementLoginAttempts.d.ts +1 -1
  278. package/dist/auth/strategies/local/incrementLoginAttempts.d.ts.map +1 -1
  279. package/dist/auth/strategies/local/incrementLoginAttempts.js +1 -1
  280. package/dist/auth/strategies/local/incrementLoginAttempts.js.map +1 -1
  281. package/dist/auth/strategies/local/register.d.ts +2 -2
  282. package/dist/auth/strategies/local/register.d.ts.map +1 -1
  283. package/dist/auth/strategies/local/register.js +43 -12
  284. package/dist/auth/strategies/local/register.js.map +1 -1
  285. package/dist/auth/strategies/local/resetLoginAttempts.d.ts +1 -1
  286. package/dist/auth/strategies/local/resetLoginAttempts.d.ts.map +1 -1
  287. package/dist/auth/strategies/local/resetLoginAttempts.js.map +1 -1
  288. package/dist/auth/types.d.ts +28 -13
  289. package/dist/auth/types.d.ts.map +1 -1
  290. package/dist/auth/types.js.map +1 -1
  291. package/dist/bin/generateImportMap/index.d.ts +47 -0
  292. package/dist/bin/generateImportMap/index.d.ts.map +1 -0
  293. package/dist/bin/generateImportMap/index.js +129 -0
  294. package/dist/bin/generateImportMap/index.js.map +1 -0
  295. package/dist/bin/generateImportMap/iterateCollections.d.ts +12 -0
  296. package/dist/bin/generateImportMap/iterateCollections.d.ts.map +1 -0
  297. package/dist/bin/generateImportMap/iterateCollections.js +41 -0
  298. package/dist/bin/generateImportMap/iterateCollections.js.map +1 -0
  299. package/dist/bin/generateImportMap/iterateConfig.d.ts +10 -0
  300. package/dist/bin/generateImportMap/iterateConfig.d.ts.map +1 -0
  301. package/dist/bin/generateImportMap/iterateConfig.js +75 -0
  302. package/dist/bin/generateImportMap/iterateConfig.js.map +1 -0
  303. package/dist/bin/generateImportMap/iterateFields.d.ts +12 -0
  304. package/dist/bin/generateImportMap/iterateFields.d.ts.map +1 -0
  305. package/dist/bin/generateImportMap/iterateFields.js +56 -0
  306. package/dist/bin/generateImportMap/iterateFields.js.map +1 -0
  307. package/dist/bin/generateImportMap/iterateGlobals.d.ts +12 -0
  308. package/dist/bin/generateImportMap/iterateGlobals.d.ts.map +1 -0
  309. package/dist/bin/generateImportMap/iterateGlobals.js +34 -0
  310. package/dist/bin/generateImportMap/iterateGlobals.js.map +1 -0
  311. package/dist/bin/generateImportMap/parsePayloadComponent.d.ts +6 -0
  312. package/dist/bin/generateImportMap/parsePayloadComponent.d.ts.map +1 -0
  313. package/dist/bin/generateImportMap/parsePayloadComponent.js +19 -0
  314. package/dist/bin/generateImportMap/parsePayloadComponent.js.map +1 -0
  315. package/dist/bin/generateTypes.d.ts +3 -1
  316. package/dist/bin/generateTypes.d.ts.map +1 -1
  317. package/dist/bin/generateTypes.js +25 -11
  318. package/dist/bin/generateTypes.js.map +1 -1
  319. package/dist/bin/index.d.ts.map +1 -1
  320. package/dist/bin/index.js +35 -4
  321. package/dist/bin/index.js.map +1 -1
  322. package/dist/bin/loadEnv.d.ts +2 -2
  323. package/dist/bin/loadEnv.d.ts.map +1 -1
  324. package/dist/bin/loadEnv.js +18 -17
  325. package/dist/bin/loadEnv.js.map +1 -1
  326. package/dist/bin/migrate.d.ts.map +1 -1
  327. package/dist/bin/migrate.js.map +1 -1
  328. package/dist/collections/config/build.js.map +1 -1
  329. package/dist/collections/config/client.d.ts +33 -310
  330. package/dist/collections/config/client.d.ts.map +1 -1
  331. package/dist/collections/config/client.js +1 -70
  332. package/dist/collections/config/client.js.map +1 -1
  333. package/dist/collections/config/defaults.d.ts +5 -64
  334. package/dist/collections/config/defaults.d.ts.map +1 -1
  335. package/dist/collections/config/defaults.js +10 -1
  336. package/dist/collections/config/defaults.js.map +1 -1
  337. package/dist/collections/config/reservedFieldNames.d.ts +15 -0
  338. package/dist/collections/config/reservedFieldNames.d.ts.map +1 -0
  339. package/dist/collections/config/reservedFieldNames.js +104 -0
  340. package/dist/collections/config/reservedFieldNames.js.map +1 -0
  341. package/dist/collections/config/reservedFieldNames.spec.js +148 -0
  342. package/dist/collections/config/reservedFieldNames.spec.js.map +1 -0
  343. package/dist/collections/config/sanitize.d.ts +2 -3
  344. package/dist/collections/config/sanitize.d.ts.map +1 -1
  345. package/dist/collections/config/sanitize.js +52 -40
  346. package/dist/collections/config/sanitize.js.map +1 -1
  347. package/dist/collections/config/types.d.ts +79 -25
  348. package/dist/collections/config/types.d.ts.map +1 -1
  349. package/dist/collections/config/types.js.map +1 -1
  350. package/dist/collections/dataloader.d.ts +14 -0
  351. package/dist/collections/dataloader.d.ts.map +1 -1
  352. package/dist/collections/dataloader.js +27 -12
  353. package/dist/collections/dataloader.js.map +1 -1
  354. package/dist/collections/operations/count.d.ts +14 -0
  355. package/dist/collections/operations/count.d.ts.map +1 -0
  356. package/dist/collections/operations/count.js +71 -0
  357. package/dist/collections/operations/count.js.map +1 -0
  358. package/dist/collections/operations/create.d.ts +5 -9
  359. package/dist/collections/operations/create.d.ts.map +1 -1
  360. package/dist/collections/operations/create.js +16 -17
  361. package/dist/collections/operations/create.js.map +1 -1
  362. package/dist/collections/operations/delete.d.ts +5 -5
  363. package/dist/collections/operations/delete.d.ts.map +1 -1
  364. package/dist/collections/operations/delete.js +2 -1
  365. package/dist/collections/operations/delete.js.map +1 -1
  366. package/dist/collections/operations/deleteByID.d.ts +4 -3
  367. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  368. package/dist/collections/operations/deleteByID.js +1 -0
  369. package/dist/collections/operations/deleteByID.js.map +1 -1
  370. package/dist/collections/operations/docAccess.d.ts.map +1 -1
  371. package/dist/collections/operations/docAccess.js +0 -4
  372. package/dist/collections/operations/docAccess.js.map +1 -1
  373. package/dist/collections/operations/duplicate.d.ts +3 -3
  374. package/dist/collections/operations/duplicate.d.ts.map +1 -1
  375. package/dist/collections/operations/duplicate.js +3 -1
  376. package/dist/collections/operations/duplicate.js.map +1 -1
  377. package/dist/collections/operations/find.d.ts +3 -2
  378. package/dist/collections/operations/find.d.ts.map +1 -1
  379. package/dist/collections/operations/find.js +1 -4
  380. package/dist/collections/operations/find.js.map +1 -1
  381. package/dist/collections/operations/findByID.d.ts +3 -2
  382. package/dist/collections/operations/findByID.d.ts.map +1 -1
  383. package/dist/collections/operations/findByID.js +4 -8
  384. package/dist/collections/operations/findByID.js.map +1 -1
  385. package/dist/collections/operations/findVersionByID.d.ts +1 -1
  386. package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
  387. package/dist/collections/operations/findVersionByID.js +2 -5
  388. package/dist/collections/operations/findVersionByID.js.map +1 -1
  389. package/dist/collections/operations/findVersions.d.ts +1 -1
  390. package/dist/collections/operations/findVersions.d.ts.map +1 -1
  391. package/dist/collections/operations/findVersions.js +1 -4
  392. package/dist/collections/operations/findVersions.js.map +1 -1
  393. package/dist/collections/operations/local/count.d.ts +20 -0
  394. package/dist/collections/operations/local/count.d.ts.map +1 -0
  395. package/dist/collections/operations/local/count.js +19 -0
  396. package/dist/collections/operations/local/count.js.map +1 -0
  397. package/dist/collections/operations/local/create.d.ts +7 -8
  398. package/dist/collections/operations/local/create.d.ts.map +1 -1
  399. package/dist/collections/operations/local/create.js.map +1 -1
  400. package/dist/collections/operations/local/delete.d.ts +15 -17
  401. package/dist/collections/operations/local/delete.d.ts.map +1 -1
  402. package/dist/collections/operations/local/delete.js.map +1 -1
  403. package/dist/collections/operations/local/duplicate.d.ts +6 -5
  404. package/dist/collections/operations/local/duplicate.d.ts.map +1 -1
  405. package/dist/collections/operations/local/duplicate.js.map +1 -1
  406. package/dist/collections/operations/local/find.d.ts +7 -6
  407. package/dist/collections/operations/local/find.d.ts.map +1 -1
  408. package/dist/collections/operations/local/find.js +1 -1
  409. package/dist/collections/operations/local/find.js.map +1 -1
  410. package/dist/collections/operations/local/findByID.d.ts +7 -6
  411. package/dist/collections/operations/local/findByID.d.ts.map +1 -1
  412. package/dist/collections/operations/local/findByID.js.map +1 -1
  413. package/dist/collections/operations/local/findVersionByID.d.ts +7 -6
  414. package/dist/collections/operations/local/findVersionByID.d.ts.map +1 -1
  415. package/dist/collections/operations/local/findVersionByID.js.map +1 -1
  416. package/dist/collections/operations/local/findVersions.d.ts +7 -6
  417. package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
  418. package/dist/collections/operations/local/findVersions.js.map +1 -1
  419. package/dist/collections/operations/local/index.d.ts +4 -2
  420. package/dist/collections/operations/local/index.d.ts.map +1 -1
  421. package/dist/collections/operations/local/index.js +4 -2
  422. package/dist/collections/operations/local/index.js.map +1 -1
  423. package/dist/collections/operations/local/restoreVersion.d.ts +7 -6
  424. package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
  425. package/dist/collections/operations/local/restoreVersion.js.map +1 -1
  426. package/dist/collections/operations/local/update.d.ts +14 -14
  427. package/dist/collections/operations/local/update.d.ts.map +1 -1
  428. package/dist/collections/operations/local/update.js.map +1 -1
  429. package/dist/collections/operations/restoreVersion.d.ts +2 -1
  430. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  431. package/dist/collections/operations/restoreVersion.js +8 -7
  432. package/dist/collections/operations/restoreVersion.js.map +1 -1
  433. package/dist/collections/operations/update.d.ts +5 -6
  434. package/dist/collections/operations/update.d.ts.map +1 -1
  435. package/dist/collections/operations/update.js +17 -3
  436. package/dist/collections/operations/update.js.map +1 -1
  437. package/dist/collections/operations/updateByID.d.ts +5 -7
  438. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  439. package/dist/collections/operations/updateByID.js +19 -3
  440. package/dist/collections/operations/updateByID.js.map +1 -1
  441. package/dist/collections/operations/utils.d.ts +42 -33
  442. package/dist/collections/operations/utils.d.ts.map +1 -1
  443. package/dist/collections/operations/utils.js +0 -1
  444. package/dist/collections/operations/utils.js.map +1 -1
  445. package/dist/config/build.d.ts.map +1 -1
  446. package/dist/config/build.js +3 -4
  447. package/dist/config/build.js.map +1 -1
  448. package/dist/config/client.d.ts +17 -10
  449. package/dist/config/client.d.ts.map +1 -1
  450. package/dist/config/client.js +17 -63
  451. package/dist/config/client.js.map +1 -1
  452. package/dist/config/defaults.d.ts.map +1 -1
  453. package/dist/config/defaults.js +21 -4
  454. package/dist/config/defaults.js.map +1 -1
  455. package/dist/config/find.d.ts.map +1 -1
  456. package/dist/config/find.js +20 -23
  457. package/dist/config/find.js.map +1 -1
  458. package/dist/config/sanitize.d.ts +1 -1
  459. package/dist/config/sanitize.d.ts.map +1 -1
  460. package/dist/config/sanitize.js +79 -15
  461. package/dist/config/sanitize.js.map +1 -1
  462. package/dist/config/types.d.ts +289 -139
  463. package/dist/config/types.d.ts.map +1 -1
  464. package/dist/config/types.js +7 -13
  465. package/dist/config/types.js.map +1 -1
  466. package/dist/database/combineQueries.js.map +1 -1
  467. package/dist/database/createDatabaseAdapter.d.ts.map +1 -1
  468. package/dist/database/createDatabaseAdapter.js +1 -1
  469. package/dist/database/createDatabaseAdapter.js.map +1 -1
  470. package/dist/database/flattenWhereToOperators.js.map +1 -1
  471. package/dist/database/getLocalizedPaths.d.ts.map +1 -1
  472. package/dist/database/getLocalizedPaths.js +2 -3
  473. package/dist/database/getLocalizedPaths.js.map +1 -1
  474. package/dist/database/migrations/createMigration.d.ts.map +1 -1
  475. package/dist/database/migrations/createMigration.js +6 -2
  476. package/dist/database/migrations/createMigration.js.map +1 -1
  477. package/dist/database/migrations/getMigrations.js.map +1 -1
  478. package/dist/database/migrations/getPredefinedMigration.d.ts +12 -0
  479. package/dist/database/migrations/getPredefinedMigration.d.ts.map +1 -0
  480. package/dist/database/migrations/getPredefinedMigration.js +41 -0
  481. package/dist/database/migrations/getPredefinedMigration.js.map +1 -0
  482. package/dist/database/migrations/migrate.d.ts +1 -1
  483. package/dist/database/migrations/migrate.d.ts.map +1 -1
  484. package/dist/database/migrations/migrate.js +5 -5
  485. package/dist/database/migrations/migrate.js.map +1 -1
  486. package/dist/database/migrations/migrateDown.d.ts.map +1 -1
  487. package/dist/database/migrations/migrateDown.js +1 -1
  488. package/dist/database/migrations/migrateDown.js.map +1 -1
  489. package/dist/database/migrations/migrateRefresh.d.ts.map +1 -1
  490. package/dist/database/migrations/migrateRefresh.js +1 -1
  491. package/dist/database/migrations/migrateRefresh.js.map +1 -1
  492. package/dist/database/migrations/migrateReset.d.ts.map +1 -1
  493. package/dist/database/migrations/migrateReset.js +1 -1
  494. package/dist/database/migrations/migrateReset.js.map +1 -1
  495. package/dist/database/migrations/migrateStatus.js +0 -1
  496. package/dist/database/migrations/migrateStatus.js.map +1 -1
  497. package/dist/database/migrations/migrationTemplate.js.map +1 -1
  498. package/dist/database/migrations/migrationsCollection.js.map +1 -1
  499. package/dist/database/migrations/readMigrationFiles.d.ts.map +1 -1
  500. package/dist/database/migrations/readMigrationFiles.js +1 -1
  501. package/dist/database/migrations/readMigrationFiles.js.map +1 -1
  502. package/dist/database/migrations/writeMigrationIndex.d.ts +4 -0
  503. package/dist/database/migrations/writeMigrationIndex.d.ts.map +1 -0
  504. package/dist/database/migrations/writeMigrationIndex.js +32 -0
  505. package/dist/database/migrations/writeMigrationIndex.js.map +1 -0
  506. package/dist/database/queryValidation/types.js.map +1 -1
  507. package/dist/database/queryValidation/validateQueryPaths.d.ts.map +1 -1
  508. package/dist/database/queryValidation/validateQueryPaths.js +4 -4
  509. package/dist/database/queryValidation/validateQueryPaths.js.map +1 -1
  510. package/dist/database/queryValidation/validateSearchParams.d.ts.map +1 -1
  511. package/dist/database/queryValidation/validateSearchParams.js +0 -3
  512. package/dist/database/queryValidation/validateSearchParams.js.map +1 -1
  513. package/dist/database/types.d.ts +34 -24
  514. package/dist/database/types.d.ts.map +1 -1
  515. package/dist/database/types.js.map +1 -1
  516. package/dist/email/consoleEmailAdapter.d.ts +3 -0
  517. package/dist/email/consoleEmailAdapter.d.ts.map +1 -0
  518. package/dist/email/consoleEmailAdapter.js +17 -0
  519. package/dist/email/consoleEmailAdapter.js.map +1 -0
  520. package/dist/email/defaults.d.ts +2 -2
  521. package/dist/email/defaults.d.ts.map +1 -1
  522. package/dist/email/defaults.js +3 -3
  523. package/dist/email/defaults.js.map +1 -1
  524. package/dist/email/getStringifiedToAddress.d.ts +3 -0
  525. package/dist/email/getStringifiedToAddress.d.ts.map +1 -0
  526. package/dist/email/getStringifiedToAddress.js +20 -0
  527. package/dist/email/getStringifiedToAddress.js.map +1 -0
  528. package/dist/email/sendEmail.d.ts +3 -2
  529. package/dist/email/sendEmail.d.ts.map +1 -1
  530. package/dist/email/sendEmail.js +8 -4
  531. package/dist/email/sendEmail.js.map +1 -1
  532. package/dist/email/types.d.ts +26 -18
  533. package/dist/email/types.d.ts.map +1 -1
  534. package/dist/email/types.js +5 -1
  535. package/dist/email/types.js.map +1 -1
  536. package/dist/errors/APIError.d.ts +3 -2
  537. package/dist/errors/APIError.d.ts.map +1 -1
  538. package/dist/errors/APIError.js +9 -4
  539. package/dist/errors/APIError.js.map +1 -1
  540. package/dist/errors/AuthenticationError.d.ts +3 -4
  541. package/dist/errors/AuthenticationError.d.ts.map +1 -1
  542. package/dist/errors/AuthenticationError.js +4 -5
  543. package/dist/errors/AuthenticationError.js.map +1 -1
  544. package/dist/errors/DuplicateCollection.d.ts +2 -3
  545. package/dist/errors/DuplicateCollection.d.ts.map +1 -1
  546. package/dist/errors/DuplicateCollection.js +2 -3
  547. package/dist/errors/DuplicateCollection.js.map +1 -1
  548. package/dist/errors/DuplicateFieldName.d.ts +2 -3
  549. package/dist/errors/DuplicateFieldName.d.ts.map +1 -1
  550. package/dist/errors/DuplicateFieldName.js +2 -3
  551. package/dist/errors/DuplicateFieldName.js.map +1 -1
  552. package/dist/errors/DuplicateGlobal.d.ts +2 -3
  553. package/dist/errors/DuplicateGlobal.d.ts.map +1 -1
  554. package/dist/errors/DuplicateGlobal.js +2 -3
  555. package/dist/errors/DuplicateGlobal.js.map +1 -1
  556. package/dist/errors/ErrorDeletingFile.d.ts +2 -3
  557. package/dist/errors/ErrorDeletingFile.d.ts.map +1 -1
  558. package/dist/errors/ErrorDeletingFile.js +2 -3
  559. package/dist/errors/ErrorDeletingFile.js.map +1 -1
  560. package/dist/errors/FileRetrievalError.d.ts +6 -0
  561. package/dist/errors/FileRetrievalError.d.ts.map +1 -0
  562. package/dist/errors/FileRetrievalError.js +13 -0
  563. package/dist/errors/FileRetrievalError.js.map +1 -0
  564. package/dist/errors/FileUploadError.d.ts +2 -3
  565. package/dist/errors/FileUploadError.d.ts.map +1 -1
  566. package/dist/errors/FileUploadError.js +2 -3
  567. package/dist/errors/FileUploadError.js.map +1 -1
  568. package/dist/errors/Forbidden.d.ts +2 -3
  569. package/dist/errors/Forbidden.d.ts.map +1 -1
  570. package/dist/errors/Forbidden.js +2 -3
  571. package/dist/errors/Forbidden.js.map +1 -1
  572. package/dist/errors/InvalidConfiguration.d.ts +2 -3
  573. package/dist/errors/InvalidConfiguration.d.ts.map +1 -1
  574. package/dist/errors/InvalidConfiguration.js +2 -3
  575. package/dist/errors/InvalidConfiguration.js.map +1 -1
  576. package/dist/errors/InvalidFieldName.d.ts +2 -3
  577. package/dist/errors/InvalidFieldName.d.ts.map +1 -1
  578. package/dist/errors/InvalidFieldName.js +2 -3
  579. package/dist/errors/InvalidFieldName.js.map +1 -1
  580. package/dist/errors/InvalidFieldRelationship.d.ts +2 -3
  581. package/dist/errors/InvalidFieldRelationship.d.ts.map +1 -1
  582. package/dist/errors/InvalidFieldRelationship.js +2 -3
  583. package/dist/errors/InvalidFieldRelationship.js.map +1 -1
  584. package/dist/errors/InvalidSchema.d.ts +2 -3
  585. package/dist/errors/InvalidSchema.d.ts.map +1 -1
  586. package/dist/errors/InvalidSchema.js +2 -3
  587. package/dist/errors/InvalidSchema.js.map +1 -1
  588. package/dist/errors/LockedAuth.d.ts +2 -3
  589. package/dist/errors/LockedAuth.d.ts.map +1 -1
  590. package/dist/errors/LockedAuth.js +2 -3
  591. package/dist/errors/LockedAuth.js.map +1 -1
  592. package/dist/errors/MissingCollectionLabel.d.ts +2 -3
  593. package/dist/errors/MissingCollectionLabel.d.ts.map +1 -1
  594. package/dist/errors/MissingCollectionLabel.js +2 -3
  595. package/dist/errors/MissingCollectionLabel.js.map +1 -1
  596. package/dist/errors/MissingEditorProp.d.ts +2 -3
  597. package/dist/errors/MissingEditorProp.d.ts.map +1 -1
  598. package/dist/errors/MissingEditorProp.js +3 -4
  599. package/dist/errors/MissingEditorProp.js.map +1 -1
  600. package/dist/errors/MissingFieldInputOptions.d.ts +2 -3
  601. package/dist/errors/MissingFieldInputOptions.d.ts.map +1 -1
  602. package/dist/errors/MissingFieldInputOptions.js +2 -3
  603. package/dist/errors/MissingFieldInputOptions.js.map +1 -1
  604. package/dist/errors/MissingFieldType.d.ts +2 -3
  605. package/dist/errors/MissingFieldType.d.ts.map +1 -1
  606. package/dist/errors/MissingFieldType.js +2 -3
  607. package/dist/errors/MissingFieldType.js.map +1 -1
  608. package/dist/errors/MissingFile.d.ts +2 -3
  609. package/dist/errors/MissingFile.d.ts.map +1 -1
  610. package/dist/errors/MissingFile.js +2 -3
  611. package/dist/errors/MissingFile.js.map +1 -1
  612. package/dist/errors/NotFound.d.ts +2 -3
  613. package/dist/errors/NotFound.d.ts.map +1 -1
  614. package/dist/errors/NotFound.js +2 -3
  615. package/dist/errors/NotFound.js.map +1 -1
  616. package/dist/errors/QueryError.d.ts +2 -3
  617. package/dist/errors/QueryError.d.ts.map +1 -1
  618. package/dist/errors/QueryError.js +2 -3
  619. package/dist/errors/QueryError.js.map +1 -1
  620. package/dist/errors/ReservedFieldName.d.ts +6 -0
  621. package/dist/errors/ReservedFieldName.d.ts.map +1 -0
  622. package/dist/errors/ReservedFieldName.js +8 -0
  623. package/dist/errors/ReservedFieldName.js.map +1 -0
  624. package/dist/errors/TimestampsRequired.d.ts +2 -3
  625. package/dist/errors/TimestampsRequired.d.ts.map +1 -1
  626. package/dist/errors/TimestampsRequired.js +2 -3
  627. package/dist/errors/TimestampsRequired.js.map +1 -1
  628. package/dist/errors/UnathorizedError.d.ts +2 -3
  629. package/dist/errors/UnathorizedError.d.ts.map +1 -1
  630. package/dist/errors/UnathorizedError.js +2 -3
  631. package/dist/errors/UnathorizedError.js.map +1 -1
  632. package/dist/errors/ValidationError.d.ts +13 -7
  633. package/dist/errors/ValidationError.d.ts.map +1 -1
  634. package/dist/errors/ValidationError.js +8 -6
  635. package/dist/errors/ValidationError.js.map +1 -1
  636. package/dist/errors/index.d.ts +23 -19
  637. package/dist/errors/index.d.ts.map +1 -1
  638. package/dist/errors/index.js +22 -19
  639. package/dist/errors/index.js.map +1 -1
  640. package/dist/errors/types.js.map +1 -1
  641. package/dist/exports/components/utilities.js.map +1 -1
  642. package/dist/exports/i18n/ar.js.map +1 -1
  643. package/dist/exports/i18n/az.js.map +1 -1
  644. package/dist/exports/i18n/bg.js.map +1 -1
  645. package/dist/exports/i18n/cs.js.map +1 -1
  646. package/dist/exports/i18n/de.js.map +1 -1
  647. package/dist/exports/i18n/en.js.map +1 -1
  648. package/dist/exports/i18n/es.js.map +1 -1
  649. package/dist/exports/i18n/fa.js.map +1 -1
  650. package/dist/exports/i18n/fr.js.map +1 -1
  651. package/dist/exports/i18n/he.d.ts +2 -0
  652. package/dist/exports/i18n/he.d.ts.map +1 -0
  653. package/dist/exports/i18n/he.js +3 -0
  654. package/dist/exports/i18n/he.js.map +1 -0
  655. package/dist/exports/i18n/hr.js.map +1 -1
  656. package/dist/exports/i18n/hu.js.map +1 -1
  657. package/dist/exports/i18n/it.js.map +1 -1
  658. package/dist/exports/i18n/ja.js.map +1 -1
  659. package/dist/exports/i18n/ko.js.map +1 -1
  660. package/dist/exports/i18n/my.js.map +1 -1
  661. package/dist/exports/i18n/nb.js.map +1 -1
  662. package/dist/exports/i18n/nl.js.map +1 -1
  663. package/dist/exports/i18n/pl.js.map +1 -1
  664. package/dist/exports/i18n/pt.js.map +1 -1
  665. package/dist/exports/i18n/ro.js.map +1 -1
  666. package/dist/exports/i18n/rs.js.map +1 -1
  667. package/dist/exports/i18n/rsLatin.js.map +1 -1
  668. package/dist/exports/i18n/ru.js.map +1 -1
  669. package/dist/exports/i18n/sv.js.map +1 -1
  670. package/dist/exports/i18n/th.js.map +1 -1
  671. package/dist/exports/i18n/tr.js.map +1 -1
  672. package/dist/exports/i18n/uk.js.map +1 -1
  673. package/dist/exports/i18n/vi.js.map +1 -1
  674. package/dist/exports/i18n/zh.js.map +1 -1
  675. package/dist/exports/i18n/zhTw.js.map +1 -1
  676. package/dist/exports/node.d.ts +5 -1
  677. package/dist/exports/node.d.ts.map +1 -1
  678. package/dist/exports/node.js +5 -2
  679. package/dist/exports/node.js.map +1 -1
  680. package/dist/exports/shared.d.ts +24 -0
  681. package/dist/exports/shared.d.ts.map +1 -0
  682. package/dist/exports/shared.js +25 -0
  683. package/dist/exports/shared.js.map +1 -0
  684. package/dist/fields/baseFields/baseBlockFields.js.map +1 -1
  685. package/dist/fields/baseFields/baseIDField.js.map +1 -1
  686. package/dist/fields/config/client.d.ts +4 -1288
  687. package/dist/fields/config/client.d.ts.map +1 -1
  688. package/dist/fields/config/client.js +1 -77
  689. package/dist/fields/config/client.js.map +1 -1
  690. package/dist/fields/config/sanitize.d.ts +9 -2
  691. package/dist/fields/config/sanitize.d.ts.map +1 -1
  692. package/dist/fields/config/sanitize.js +69 -47
  693. package/dist/fields/config/sanitize.js.map +1 -1
  694. package/dist/fields/config/sanitize.spec.js +130 -139
  695. package/dist/fields/config/sanitize.spec.js.map +1 -1
  696. package/dist/fields/config/types.d.ts +669 -207
  697. package/dist/fields/config/types.d.ts.map +1 -1
  698. package/dist/fields/config/types.js +4 -1
  699. package/dist/fields/config/types.js.map +1 -1
  700. package/dist/fields/getDefaultValue.d.ts +5 -5
  701. package/dist/fields/getDefaultValue.d.ts.map +1 -1
  702. package/dist/fields/getDefaultValue.js +4 -6
  703. package/dist/fields/getDefaultValue.js.map +1 -1
  704. package/dist/fields/getFieldPaths.d.ts +10 -0
  705. package/dist/fields/getFieldPaths.d.ts.map +1 -0
  706. package/dist/fields/getFieldPaths.js +45 -0
  707. package/dist/fields/getFieldPaths.js.map +1 -0
  708. package/dist/fields/hooks/afterChange/index.d.ts +12 -6
  709. package/dist/fields/hooks/afterChange/index.d.ts.map +1 -1
  710. package/dist/fields/hooks/afterChange/index.js +4 -2
  711. package/dist/fields/hooks/afterChange/index.js.map +1 -1
  712. package/dist/fields/hooks/afterChange/promise.d.ts +16 -8
  713. package/dist/fields/hooks/afterChange/promise.d.ts.map +1 -1
  714. package/dist/fields/hooks/afterChange/promise.js +67 -3
  715. package/dist/fields/hooks/afterChange/promise.js.map +1 -1
  716. package/dist/fields/hooks/afterChange/traverseFields.d.ts +10 -8
  717. package/dist/fields/hooks/afterChange/traverseFields.d.ts.map +1 -1
  718. package/dist/fields/hooks/afterChange/traverseFields.js +3 -1
  719. package/dist/fields/hooks/afterChange/traverseFields.js.map +1 -1
  720. package/dist/fields/hooks/afterRead/index.d.ts +6 -5
  721. package/dist/fields/hooks/afterRead/index.d.ts.map +1 -1
  722. package/dist/fields/hooks/afterRead/index.js +7 -4
  723. package/dist/fields/hooks/afterRead/index.js.map +1 -1
  724. package/dist/fields/hooks/afterRead/promise.d.ts +16 -4
  725. package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
  726. package/dist/fields/hooks/afterRead/promise.js +152 -37
  727. package/dist/fields/hooks/afterRead/promise.js.map +1 -1
  728. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts +2 -1
  729. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts.map +1 -1
  730. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js +26 -20
  731. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js.map +1 -1
  732. package/dist/fields/hooks/afterRead/traverseFields.d.ts +10 -4
  733. package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -1
  734. package/dist/fields/hooks/afterRead/traverseFields.js +4 -1
  735. package/dist/fields/hooks/afterRead/traverseFields.js.map +1 -1
  736. package/dist/fields/hooks/beforeChange/beforeDuplicate.js.map +1 -1
  737. package/dist/fields/hooks/beforeChange/cloneDataFromOriginalDoc.d.ts +2 -1
  738. package/dist/fields/hooks/beforeChange/cloneDataFromOriginalDoc.d.ts.map +1 -1
  739. package/dist/fields/hooks/beforeChange/cloneDataFromOriginalDoc.js.map +1 -1
  740. package/dist/fields/hooks/beforeChange/getExistingRowDoc.d.ts +2 -1
  741. package/dist/fields/hooks/beforeChange/getExistingRowDoc.d.ts.map +1 -1
  742. package/dist/fields/hooks/beforeChange/getExistingRowDoc.js.map +1 -1
  743. package/dist/fields/hooks/beforeChange/index.d.ts +7 -7
  744. package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
  745. package/dist/fields/hooks/beforeChange/index.js +10 -5
  746. package/dist/fields/hooks/beforeChange/index.js.map +1 -1
  747. package/dist/fields/hooks/beforeChange/promise.d.ts +16 -9
  748. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  749. package/dist/fields/hooks/beforeChange/promise.js +86 -19
  750. package/dist/fields/hooks/beforeChange/promise.js.map +1 -1
  751. package/dist/fields/hooks/beforeChange/traverseFields.d.ts +23 -10
  752. package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
  753. package/dist/fields/hooks/beforeChange/traverseFields.js +4 -3
  754. package/dist/fields/hooks/beforeChange/traverseFields.js.map +1 -1
  755. package/dist/fields/hooks/beforeValidate/index.d.ts +5 -5
  756. package/dist/fields/hooks/beforeValidate/index.d.ts.map +1 -1
  757. package/dist/fields/hooks/beforeValidate/index.js +4 -2
  758. package/dist/fields/hooks/beforeValidate/index.js.map +1 -1
  759. package/dist/fields/hooks/beforeValidate/promise.d.ts +12 -4
  760. package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
  761. package/dist/fields/hooks/beforeValidate/promise.js +73 -6
  762. package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
  763. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts +12 -4
  764. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
  765. package/dist/fields/hooks/beforeValidate/traverseFields.js +3 -1
  766. package/dist/fields/hooks/beforeValidate/traverseFields.js.map +1 -1
  767. package/dist/fields/mergeBaseFields.d.ts.map +1 -1
  768. package/dist/fields/mergeBaseFields.js +2 -2
  769. package/dist/fields/mergeBaseFields.js.map +1 -1
  770. package/dist/fields/setDefaultBeforeDuplicate.js.map +1 -1
  771. package/dist/fields/sortableFieldTypes.js.map +1 -1
  772. package/dist/fields/validations.d.ts +66 -62
  773. package/dist/fields/validations.d.ts.map +1 -1
  774. package/dist/fields/validations.js +108 -11
  775. package/dist/fields/validations.js.map +1 -1
  776. package/dist/fields/validations.spec.js +16 -15
  777. package/dist/fields/validations.spec.js.map +1 -1
  778. package/dist/globals/config/client.d.ts +30 -18
  779. package/dist/globals/config/client.d.ts.map +1 -1
  780. package/dist/globals/config/client.js +1 -46
  781. package/dist/globals/config/client.js.map +1 -1
  782. package/dist/globals/config/sanitize.d.ts +2 -3
  783. package/dist/globals/config/sanitize.d.ts.map +1 -1
  784. package/dist/globals/config/sanitize.js +48 -41
  785. package/dist/globals/config/sanitize.js.map +1 -1
  786. package/dist/globals/config/types.d.ts +15 -10
  787. package/dist/globals/config/types.d.ts.map +1 -1
  788. package/dist/globals/config/types.js.map +1 -1
  789. package/dist/globals/operations/docAccess.d.ts.map +1 -1
  790. package/dist/globals/operations/docAccess.js.map +1 -1
  791. package/dist/globals/operations/findOne.d.ts.map +1 -1
  792. package/dist/globals/operations/findOne.js +1 -7
  793. package/dist/globals/operations/findOne.js.map +1 -1
  794. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  795. package/dist/globals/operations/findVersionByID.js +4 -9
  796. package/dist/globals/operations/findVersionByID.js.map +1 -1
  797. package/dist/globals/operations/findVersions.d.ts +1 -0
  798. package/dist/globals/operations/findVersions.d.ts.map +1 -1
  799. package/dist/globals/operations/findVersions.js +3 -5
  800. package/dist/globals/operations/findVersions.js.map +1 -1
  801. package/dist/globals/operations/local/findOne.d.ts +7 -6
  802. package/dist/globals/operations/local/findOne.d.ts.map +1 -1
  803. package/dist/globals/operations/local/findOne.js.map +1 -1
  804. package/dist/globals/operations/local/findVersionByID.d.ts +7 -6
  805. package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
  806. package/dist/globals/operations/local/findVersionByID.js.map +1 -1
  807. package/dist/globals/operations/local/findVersions.d.ts +7 -6
  808. package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
  809. package/dist/globals/operations/local/findVersions.js.map +1 -1
  810. package/dist/globals/operations/local/index.js.map +1 -1
  811. package/dist/globals/operations/local/restoreVersion.d.ts +7 -6
  812. package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
  813. package/dist/globals/operations/local/restoreVersion.js.map +1 -1
  814. package/dist/globals/operations/local/update.d.ts +7 -6
  815. package/dist/globals/operations/local/update.d.ts.map +1 -1
  816. package/dist/globals/operations/local/update.js.map +1 -1
  817. package/dist/globals/operations/restoreVersion.d.ts +1 -0
  818. package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
  819. package/dist/globals/operations/restoreVersion.js +16 -1
  820. package/dist/globals/operations/restoreVersion.js.map +1 -1
  821. package/dist/globals/operations/update.d.ts +5 -7
  822. package/dist/globals/operations/update.d.ts.map +1 -1
  823. package/dist/globals/operations/update.js +5 -2
  824. package/dist/globals/operations/update.js.map +1 -1
  825. package/dist/index.d.ts +227 -54
  826. package/dist/index.d.ts.map +1 -1
  827. package/dist/index.js +221 -23
  828. package/dist/index.js.map +1 -1
  829. package/dist/preferences/deleteUserPreferences.js.map +1 -1
  830. package/dist/preferences/operations/delete.js +2 -2
  831. package/dist/preferences/operations/delete.js.map +1 -1
  832. package/dist/preferences/operations/findOne.d.ts +2 -2
  833. package/dist/preferences/operations/findOne.d.ts.map +1 -1
  834. package/dist/preferences/operations/findOne.js.map +1 -1
  835. package/dist/preferences/operations/update.js +1 -1
  836. package/dist/preferences/operations/update.js.map +1 -1
  837. package/dist/preferences/preferencesCollection.js.map +1 -1
  838. package/dist/preferences/requestHandlers/delete.d.ts.map +1 -1
  839. package/dist/preferences/requestHandlers/delete.js +18 -5
  840. package/dist/preferences/requestHandlers/delete.js.map +1 -1
  841. package/dist/preferences/requestHandlers/findOne.d.ts.map +1 -1
  842. package/dist/preferences/requestHandlers/findOne.js +18 -5
  843. package/dist/preferences/requestHandlers/findOne.js.map +1 -1
  844. package/dist/preferences/requestHandlers/update.d.ts.map +1 -1
  845. package/dist/preferences/requestHandlers/update.js +19 -7
  846. package/dist/preferences/requestHandlers/update.js.map +1 -1
  847. package/dist/preferences/types.d.ts +2 -2
  848. package/dist/preferences/types.d.ts.map +1 -1
  849. package/dist/preferences/types.js.map +1 -1
  850. package/dist/translations/getLocalI18n.d.ts +1 -1
  851. package/dist/translations/getLocalI18n.d.ts.map +1 -1
  852. package/dist/translations/getLocalI18n.js +1 -1
  853. package/dist/translations/getLocalI18n.js.map +1 -1
  854. package/dist/types/constants.js.map +1 -1
  855. package/dist/types/index.d.ts +42 -33
  856. package/dist/types/index.d.ts.map +1 -1
  857. package/dist/types/index.js.map +1 -1
  858. package/dist/uploads/canResizeImage.d.ts +1 -1
  859. package/dist/uploads/canResizeImage.d.ts.map +1 -1
  860. package/dist/uploads/canResizeImage.js +1 -1
  861. package/dist/uploads/canResizeImage.js.map +1 -1
  862. package/dist/uploads/cropImage.d.ts +22 -6
  863. package/dist/uploads/cropImage.d.ts.map +1 -1
  864. package/dist/uploads/cropImage.js +18 -5
  865. package/dist/uploads/cropImage.js.map +1 -1
  866. package/dist/uploads/deleteAssociatedFiles.d.ts.map +1 -1
  867. package/dist/uploads/deleteAssociatedFiles.js +0 -2
  868. package/dist/uploads/deleteAssociatedFiles.js.map +1 -1
  869. package/dist/uploads/docWithFilenameExists.d.ts.map +1 -1
  870. package/dist/uploads/docWithFilenameExists.js.map +1 -1
  871. package/dist/uploads/fileExists.d.ts.map +1 -1
  872. package/dist/uploads/fileExists.js.map +1 -1
  873. package/dist/uploads/formatFilesize.js.map +1 -1
  874. package/dist/uploads/generateFileData.d.ts +3 -1
  875. package/dist/uploads/generateFileData.d.ts.map +1 -1
  876. package/dist/uploads/generateFileData.js +97 -36
  877. package/dist/uploads/generateFileData.js.map +1 -1
  878. package/dist/uploads/getBaseFields.d.ts.map +1 -1
  879. package/dist/uploads/getBaseFields.js +28 -6
  880. package/dist/uploads/getBaseFields.js.map +1 -1
  881. package/dist/uploads/getExternalFile.d.ts +4 -3
  882. package/dist/uploads/getExternalFile.d.ts.map +1 -1
  883. package/dist/uploads/getExternalFile.js +10 -6
  884. package/dist/uploads/getExternalFile.js.map +1 -1
  885. package/dist/uploads/getFileByPath.d.ts +2 -2
  886. package/dist/uploads/getFileByPath.d.ts.map +1 -1
  887. package/dist/uploads/getFileByPath.js +2 -3
  888. package/dist/uploads/getFileByPath.js.map +1 -1
  889. package/dist/uploads/getImageSize.d.ts +1 -1
  890. package/dist/uploads/getImageSize.d.ts.map +1 -1
  891. package/dist/uploads/getImageSize.js +19 -5
  892. package/dist/uploads/getImageSize.js.map +1 -1
  893. package/dist/uploads/getSafeFilename.d.ts +2 -2
  894. package/dist/uploads/getSafeFilename.d.ts.map +1 -1
  895. package/dist/uploads/getSafeFilename.js +1 -3
  896. package/dist/uploads/getSafeFilename.js.map +1 -1
  897. package/dist/uploads/imageResizer.d.ts +11 -11
  898. package/dist/uploads/imageResizer.d.ts.map +1 -1
  899. package/dist/uploads/imageResizer.js +190 -120
  900. package/dist/uploads/imageResizer.js.map +1 -1
  901. package/dist/uploads/isImage.d.ts +1 -1
  902. package/dist/uploads/isImage.d.ts.map +1 -1
  903. package/dist/uploads/isImage.js +1 -1
  904. package/dist/uploads/isImage.js.map +1 -1
  905. package/dist/uploads/mimeTypeValidator.js.map +1 -1
  906. package/dist/uploads/mimeTypeValidator.spec.js.map +1 -1
  907. package/dist/uploads/optionallyAppendMetadata.d.ts +12 -0
  908. package/dist/uploads/optionallyAppendMetadata.d.ts.map +1 -0
  909. package/dist/uploads/optionallyAppendMetadata.js +15 -0
  910. package/dist/uploads/optionallyAppendMetadata.js.map +1 -0
  911. package/dist/uploads/saveBufferToFile.d.ts +0 -1
  912. package/dist/uploads/saveBufferToFile.d.ts.map +1 -1
  913. package/dist/uploads/saveBufferToFile.js.map +1 -1
  914. package/dist/uploads/tempFile.d.ts +7 -0
  915. package/dist/uploads/tempFile.d.ts.map +1 -0
  916. package/dist/uploads/tempFile.js +39 -0
  917. package/dist/uploads/tempFile.js.map +1 -0
  918. package/dist/uploads/types.d.ts +141 -12
  919. package/dist/uploads/types.d.ts.map +1 -1
  920. package/dist/uploads/types.js.map +1 -1
  921. package/dist/uploads/unlinkTempFiles.js.map +1 -1
  922. package/dist/uploads/uploadFiles.d.ts.map +1 -1
  923. package/dist/uploads/uploadFiles.js.map +1 -1
  924. package/dist/utilities/checkDuplicateCollections.js +1 -1
  925. package/dist/utilities/checkDuplicateCollections.js.map +1 -1
  926. package/dist/utilities/commitTransaction.js.map +1 -1
  927. package/dist/utilities/configToJSONSchema.d.ts +1 -0
  928. package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
  929. package/dist/utilities/configToJSONSchema.js +242 -5
  930. package/dist/utilities/configToJSONSchema.js.map +1 -1
  931. package/dist/utilities/configToJSONSchema.spec.js +165 -11
  932. package/dist/utilities/configToJSONSchema.spec.js.map +1 -1
  933. package/dist/utilities/createArrayFromCommaDelineated.js.map +1 -1
  934. package/dist/utilities/createLocalReq.d.ts.map +1 -1
  935. package/dist/utilities/createLocalReq.js +10 -6
  936. package/dist/utilities/createLocalReq.js.map +1 -1
  937. package/dist/utilities/deepCopyObject.d.ts +18 -1
  938. package/dist/utilities/deepCopyObject.d.ts.map +1 -1
  939. package/dist/utilities/deepCopyObject.js +147 -16
  940. package/dist/utilities/deepCopyObject.js.map +1 -1
  941. package/dist/utilities/deepMerge.d.ts +18 -1
  942. package/dist/utilities/deepMerge.d.ts.map +1 -1
  943. package/dist/utilities/deepMerge.js +38 -13
  944. package/dist/utilities/deepMerge.js.map +1 -1
  945. package/dist/utilities/dependencies/getDependencies.d.ts +9 -0
  946. package/dist/utilities/dependencies/getDependencies.d.ts.map +1 -0
  947. package/dist/utilities/dependencies/getDependencies.js +71 -0
  948. package/dist/utilities/dependencies/getDependencies.js.map +1 -0
  949. package/dist/utilities/dependencies/isError.d.ts +5 -0
  950. package/dist/utilities/dependencies/isError.d.ts.map +1 -0
  951. package/dist/utilities/dependencies/isError.js +19 -0
  952. package/dist/utilities/dependencies/isError.js.map +1 -0
  953. package/dist/utilities/dependencies/realPath.d.ts +3 -0
  954. package/dist/utilities/dependencies/realPath.d.ts.map +1 -0
  955. package/dist/utilities/dependencies/realPath.js +23 -0
  956. package/dist/utilities/dependencies/realPath.js.map +1 -0
  957. package/dist/utilities/dependencies/resolveFrom.d.ts +2 -0
  958. package/dist/utilities/dependencies/resolveFrom.d.ts.map +1 -0
  959. package/dist/utilities/dependencies/resolveFrom.js +58 -0
  960. package/dist/utilities/dependencies/resolveFrom.js.map +1 -0
  961. package/dist/utilities/fieldSchemaToJSON.d.ts +4 -4
  962. package/dist/utilities/fieldSchemaToJSON.d.ts.map +1 -1
  963. package/dist/utilities/fieldSchemaToJSON.js +0 -10
  964. package/dist/utilities/fieldSchemaToJSON.js.map +1 -1
  965. package/dist/utilities/flattenTopLevelFields.d.ts +4 -3
  966. package/dist/utilities/flattenTopLevelFields.d.ts.map +1 -1
  967. package/dist/utilities/flattenTopLevelFields.js +12 -7
  968. package/dist/utilities/flattenTopLevelFields.js.map +1 -1
  969. package/dist/utilities/formatLabels.js.map +1 -1
  970. package/dist/utilities/formatLabels.spec.js.map +1 -1
  971. package/dist/utilities/getCollectionIDFieldTypes.js.map +1 -1
  972. package/dist/utilities/getDataByPath.d.ts +3 -0
  973. package/dist/utilities/getDataByPath.d.ts.map +1 -0
  974. package/dist/utilities/getDataByPath.js +18 -0
  975. package/dist/utilities/getDataByPath.js.map +1 -0
  976. package/dist/utilities/getEntityPolicies.d.ts.map +1 -1
  977. package/dist/utilities/getEntityPolicies.js +12 -6
  978. package/dist/utilities/getEntityPolicies.js.map +1 -1
  979. package/dist/utilities/getObjectDotNotation.d.ts.map +1 -1
  980. package/dist/utilities/getObjectDotNotation.js.map +1 -1
  981. package/dist/utilities/getSiblingData.d.ts +3 -0
  982. package/dist/utilities/getSiblingData.d.ts.map +1 -0
  983. package/dist/utilities/getSiblingData.js +33 -0
  984. package/dist/utilities/getSiblingData.js.map +1 -0
  985. package/dist/utilities/getUniqueListBy.d.ts +1 -1
  986. package/dist/utilities/getUniqueListBy.d.ts.map +1 -1
  987. package/dist/utilities/getUniqueListBy.js +1 -1
  988. package/dist/utilities/getUniqueListBy.js.map +1 -1
  989. package/dist/utilities/initTransaction.d.ts.map +1 -1
  990. package/dist/utilities/initTransaction.js +9 -9
  991. package/dist/utilities/initTransaction.js.map +1 -1
  992. package/dist/utilities/isEntityHidden.d.ts +3 -3
  993. package/dist/utilities/isEntityHidden.d.ts.map +1 -1
  994. package/dist/utilities/isEntityHidden.js.map +1 -1
  995. package/dist/utilities/isNumber.js.map +1 -1
  996. package/dist/utilities/isPlainObject.d.ts +1 -1
  997. package/dist/utilities/isPlainObject.d.ts.map +1 -1
  998. package/dist/utilities/isPlainObject.js +4 -18
  999. package/dist/utilities/isPlainObject.js.map +1 -1
  1000. package/dist/utilities/isReactComponent.d.ts +2 -3
  1001. package/dist/utilities/isReactComponent.d.ts.map +1 -1
  1002. package/dist/utilities/isReactComponent.js +17 -11
  1003. package/dist/utilities/isReactComponent.js.map +1 -1
  1004. package/dist/utilities/isValidID.d.ts +1 -1
  1005. package/dist/utilities/isValidID.js.map +1 -1
  1006. package/dist/utilities/isolateObjectProperty.d.ts +1 -1
  1007. package/dist/utilities/isolateObjectProperty.d.ts.map +1 -1
  1008. package/dist/utilities/isolateObjectProperty.js +14 -5
  1009. package/dist/utilities/isolateObjectProperty.js.map +1 -1
  1010. package/dist/utilities/killTransaction.d.ts.map +1 -1
  1011. package/dist/utilities/killTransaction.js +6 -2
  1012. package/dist/utilities/killTransaction.js.map +1 -1
  1013. package/dist/utilities/logger.d.ts +5 -7
  1014. package/dist/utilities/logger.d.ts.map +1 -1
  1015. package/dist/utilities/logger.js +4 -7
  1016. package/dist/utilities/logger.js.map +1 -1
  1017. package/dist/utilities/mapAsync.js.map +1 -1
  1018. package/dist/utilities/mergeListSearchAndWhere.js.map +1 -1
  1019. package/dist/utilities/parseCookies.d.ts +1 -1
  1020. package/dist/utilities/parseCookies.d.ts.map +1 -1
  1021. package/dist/utilities/parseCookies.js +1 -1
  1022. package/dist/utilities/parseCookies.js.map +1 -1
  1023. package/dist/utilities/reduceFieldsToValues.d.ts +10 -0
  1024. package/dist/utilities/reduceFieldsToValues.d.ts.map +1 -0
  1025. package/dist/utilities/reduceFieldsToValues.js +22 -0
  1026. package/dist/utilities/reduceFieldsToValues.js.map +1 -0
  1027. package/dist/utilities/sanitizeInternalFields.d.ts.map +1 -1
  1028. package/dist/utilities/sanitizeInternalFields.js.map +1 -1
  1029. package/dist/utilities/setsAreEqual.d.ts.map +1 -1
  1030. package/dist/utilities/setsAreEqual.js.map +1 -1
  1031. package/dist/utilities/telemetry/conf/envPaths.d.ts +23 -0
  1032. package/dist/utilities/telemetry/conf/envPaths.d.ts.map +1 -0
  1033. package/dist/utilities/telemetry/conf/envPaths.js +70 -0
  1034. package/dist/utilities/telemetry/conf/envPaths.js.map +1 -0
  1035. package/dist/utilities/telemetry/conf/index.d.ts +84 -0
  1036. package/dist/utilities/telemetry/conf/index.d.ts.map +1 -0
  1037. package/dist/utilities/telemetry/conf/index.js +144 -0
  1038. package/dist/utilities/telemetry/conf/index.js.map +1 -0
  1039. package/dist/utilities/telemetry/events/adminInit.d.ts.map +1 -1
  1040. package/dist/utilities/telemetry/events/adminInit.js.map +1 -1
  1041. package/dist/utilities/telemetry/events/serverInit.d.ts.map +1 -1
  1042. package/dist/utilities/telemetry/events/serverInit.js.map +1 -1
  1043. package/dist/utilities/telemetry/index.d.ts +9 -0
  1044. package/dist/utilities/telemetry/index.d.ts.map +1 -1
  1045. package/dist/utilities/telemetry/index.js +64 -17
  1046. package/dist/utilities/telemetry/index.js.map +1 -1
  1047. package/dist/utilities/telemetry/oneWayHash.d.ts +0 -1
  1048. package/dist/utilities/telemetry/oneWayHash.d.ts.map +1 -1
  1049. package/dist/utilities/telemetry/oneWayHash.js.map +1 -1
  1050. package/dist/utilities/timestamp.js.map +1 -1
  1051. package/dist/utilities/toKebabCase.js.map +1 -1
  1052. package/dist/utilities/unflatten.d.ts +9 -0
  1053. package/dist/utilities/unflatten.d.ts.map +1 -0
  1054. package/dist/utilities/unflatten.js +64 -0
  1055. package/dist/utilities/unflatten.js.map +1 -0
  1056. package/dist/utilities/wait.js.map +1 -1
  1057. package/dist/utilities/wordBoundariesRegex.js.map +1 -1
  1058. package/dist/versions/baseFields.d.ts.map +1 -1
  1059. package/dist/versions/baseFields.js +2 -1
  1060. package/dist/versions/baseFields.js.map +1 -1
  1061. package/dist/versions/buildCollectionFields.js.map +1 -1
  1062. package/dist/versions/buildGlobalFields.js.map +1 -1
  1063. package/dist/versions/defaults.d.ts +4 -0
  1064. package/dist/versions/defaults.d.ts.map +1 -0
  1065. package/dist/versions/defaults.js +5 -0
  1066. package/dist/versions/defaults.js.map +1 -0
  1067. package/dist/versions/deleteCollectionVersions.d.ts.map +1 -1
  1068. package/dist/versions/deleteCollectionVersions.js.map +1 -1
  1069. package/dist/versions/drafts/appendVersionToQueryKey.js.map +1 -1
  1070. package/dist/versions/drafts/getQueryDraftsSort.js.map +1 -1
  1071. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts.map +1 -1
  1072. package/dist/versions/drafts/replaceWithDraftIfAvailable.js +2 -1
  1073. package/dist/versions/drafts/replaceWithDraftIfAvailable.js.map +1 -1
  1074. package/dist/versions/enforceMaxVersions.d.ts.map +1 -1
  1075. package/dist/versions/enforceMaxVersions.js +3 -1
  1076. package/dist/versions/enforceMaxVersions.js.map +1 -1
  1077. package/dist/versions/getLatestCollectionVersion.d.ts.map +1 -1
  1078. package/dist/versions/getLatestCollectionVersion.js.map +1 -1
  1079. package/dist/versions/getLatestGlobalVersion.d.ts.map +1 -1
  1080. package/dist/versions/getLatestGlobalVersion.js +0 -1
  1081. package/dist/versions/getLatestGlobalVersion.js.map +1 -1
  1082. package/dist/versions/saveVersion.d.ts.map +1 -1
  1083. package/dist/versions/saveVersion.js +4 -3
  1084. package/dist/versions/saveVersion.js.map +1 -1
  1085. package/dist/versions/types.d.ts +2 -0
  1086. package/dist/versions/types.d.ts.map +1 -1
  1087. package/dist/versions/types.js.map +1 -1
  1088. package/package.json +88 -121
  1089. package/dist/admin/forms/FieldTypes.d.ts +0 -27
  1090. package/dist/admin/forms/FieldTypes.d.ts.map +0 -1
  1091. package/dist/admin/forms/FieldTypes.js +0 -3
  1092. package/dist/admin/forms/FieldTypes.js.map +0 -1
  1093. package/dist/bin/loader/clientExtensions.d.ts +0 -2
  1094. package/dist/bin/loader/clientExtensions.d.ts.map +0 -1
  1095. package/dist/bin/loader/clientExtensions.js +0 -13
  1096. package/dist/bin/loader/clientExtensions.js.map +0 -1
  1097. package/dist/bin/loader/compile.d.ts +0 -5
  1098. package/dist/bin/loader/compile.d.ts.map +0 -1
  1099. package/dist/bin/loader/compile.js +0 -27
  1100. package/dist/bin/loader/compile.js.map +0 -1
  1101. package/dist/bin/loader/index.d.ts +0 -34
  1102. package/dist/bin/loader/index.d.ts.map +0 -1
  1103. package/dist/bin/loader/index.js +0 -117
  1104. package/dist/bin/loader/index.js.map +0 -1
  1105. package/dist/bin/loader/read-default-tsconfig.d.ts +0 -4
  1106. package/dist/bin/loader/read-default-tsconfig.d.ts.map +0 -1
  1107. package/dist/bin/loader/read-default-tsconfig.js +0 -92
  1108. package/dist/bin/loader/read-default-tsconfig.js.map +0 -1
  1109. package/dist/collections/config/schema.d.ts +0 -4
  1110. package/dist/collections/config/schema.d.ts.map +0 -1
  1111. package/dist/collections/config/schema.js +0 -176
  1112. package/dist/collections/config/schema.js.map +0 -1
  1113. package/dist/config/schema.d.ts +0 -5
  1114. package/dist/config/schema.d.ts.map +0 -1
  1115. package/dist/config/schema.js +0 -146
  1116. package/dist/config/schema.js.map +0 -1
  1117. package/dist/config/shared/adminViewSchema.d.ts +0 -3
  1118. package/dist/config/shared/adminViewSchema.d.ts.map +0 -1
  1119. package/dist/config/shared/adminViewSchema.js +0 -11
  1120. package/dist/config/shared/adminViewSchema.js.map +0 -1
  1121. package/dist/config/shared/componentSchema.d.ts +0 -16
  1122. package/dist/config/shared/componentSchema.d.ts.map +0 -1
  1123. package/dist/config/shared/componentSchema.js +0 -27
  1124. package/dist/config/shared/componentSchema.js.map +0 -1
  1125. package/dist/config/validate.d.ts +0 -4
  1126. package/dist/config/validate.d.ts.map +0 -1
  1127. package/dist/config/validate.js +0 -89
  1128. package/dist/config/validate.js.map +0 -1
  1129. package/dist/email/build.d.ts +0 -5
  1130. package/dist/email/build.d.ts.map +0 -1
  1131. package/dist/email/build.js +0 -63
  1132. package/dist/email/build.js.map +0 -1
  1133. package/dist/email/mockHandler.d.ts +0 -5
  1134. package/dist/email/mockHandler.d.ts.map +0 -1
  1135. package/dist/email/mockHandler.js +0 -24
  1136. package/dist/email/mockHandler.js.map +0 -1
  1137. package/dist/exports/auth.d.ts +0 -6
  1138. package/dist/exports/auth.d.ts.map +0 -1
  1139. package/dist/exports/auth.js +0 -6
  1140. package/dist/exports/auth.js.map +0 -1
  1141. package/dist/exports/config.d.ts +0 -14
  1142. package/dist/exports/config.d.ts.map +0 -1
  1143. package/dist/exports/config.js +0 -14
  1144. package/dist/exports/config.js.map +0 -1
  1145. package/dist/exports/database.d.ts +0 -23
  1146. package/dist/exports/database.d.ts.map +0 -1
  1147. package/dist/exports/database.js +0 -22
  1148. package/dist/exports/database.js.map +0 -1
  1149. package/dist/exports/errors.d.ts +0 -2
  1150. package/dist/exports/errors.d.ts.map +0 -1
  1151. package/dist/exports/errors.js +0 -3
  1152. package/dist/exports/errors.js.map +0 -1
  1153. package/dist/exports/fields/index.d.ts +0 -3
  1154. package/dist/exports/fields/index.d.ts.map +0 -1
  1155. package/dist/exports/fields/index.js +0 -4
  1156. package/dist/exports/fields/index.js.map +0 -1
  1157. package/dist/exports/fields/validations.d.ts +0 -2
  1158. package/dist/exports/fields/validations.d.ts.map +0 -1
  1159. package/dist/exports/fields/validations.js +0 -3
  1160. package/dist/exports/fields/validations.js.map +0 -1
  1161. package/dist/exports/operations.d.ts +0 -30
  1162. package/dist/exports/operations.d.ts.map +0 -1
  1163. package/dist/exports/operations.js +0 -31
  1164. package/dist/exports/operations.js.map +0 -1
  1165. package/dist/exports/types.d.ts +0 -17
  1166. package/dist/exports/types.d.ts.map +0 -1
  1167. package/dist/exports/types.js +0 -5
  1168. package/dist/exports/types.js.map +0 -1
  1169. package/dist/exports/uploads.d.ts +0 -2
  1170. package/dist/exports/uploads.d.ts.map +0 -1
  1171. package/dist/exports/uploads.js +0 -3
  1172. package/dist/exports/uploads.js.map +0 -1
  1173. package/dist/exports/utilities.d.ts +0 -31
  1174. package/dist/exports/utilities.d.ts.map +0 -1
  1175. package/dist/exports/utilities.js +0 -32
  1176. package/dist/exports/utilities.js.map +0 -1
  1177. package/dist/exports/versions.d.ts +0 -9
  1178. package/dist/exports/versions.d.ts.map +0 -1
  1179. package/dist/exports/versions.js +0 -9
  1180. package/dist/exports/versions.js.map +0 -1
  1181. package/dist/fields/config/schema.d.ts +0 -29
  1182. package/dist/fields/config/schema.d.ts.map +0 -1
  1183. package/dist/fields/config/schema.js +0 -477
  1184. package/dist/fields/config/schema.js.map +0 -1
  1185. package/dist/globals/config/schema.d.ts +0 -4
  1186. package/dist/globals/config/schema.d.ts.map +0 -1
  1187. package/dist/globals/config/schema.js +0 -69
  1188. package/dist/globals/config/schema.js.map +0 -1
  1189. package/dist/utilities/combineMerge.d.ts +0 -2
  1190. package/dist/utilities/combineMerge.d.ts.map +0 -1
  1191. package/dist/utilities/combineMerge.js +0 -16
  1192. package/dist/utilities/combineMerge.js.map +0 -1
  1193. package/dist/utilities/convertData.d.ts +0 -5
  1194. package/dist/utilities/convertData.d.ts.map +0 -1
  1195. package/dist/utilities/convertData.js +0 -16
  1196. package/dist/utilities/convertData.js.map +0 -1
  1197. package/dist/utilities/getCSSVariable.d.ts +0 -3
  1198. package/dist/utilities/getCSSVariable.d.ts.map +0 -1
  1199. package/dist/utilities/getCSSVariable.js +0 -3
  1200. package/dist/utilities/getCSSVariable.js.map +0 -1
  1201. package/dist/utilities/importWithoutClientFiles.d.ts +0 -7
  1202. package/dist/utilities/importWithoutClientFiles.d.ts.map +0 -1
  1203. package/dist/utilities/importWithoutClientFiles.js +0 -41
  1204. package/dist/utilities/importWithoutClientFiles.js.map +0 -1
  1205. package/dist/utilities/overwriteMerge.d.ts +0 -3
  1206. package/dist/utilities/overwriteMerge.d.ts.map +0 -1
  1207. package/dist/utilities/overwriteMerge.js +0 -4
  1208. package/dist/utilities/overwriteMerge.js.map +0 -1
  1209. package/src/index.ts +0 -499
@@ -1,3 +1,6 @@
1
+ import Ajv from 'ajv';
2
+ import ObjectIdImport from 'bson-objectid';
3
+ const ObjectId = ObjectIdImport.default || ObjectIdImport;
1
4
  import { isNumber } from '../utilities/isNumber.js';
2
5
  import { isValidID } from '../utilities/isValidID.js';
3
6
  export const text = (value, { hasMany, maxLength: fieldMaxLength, maxRows, minLength, minRows, req: { payload: { config }, t }, required })=>{
@@ -23,14 +26,14 @@ export const text = (value, { hasMany, maxLength: fieldMaxLength, maxRows, minLe
23
26
  const length = stringValue?.length || 0;
24
27
  if (typeof maxLength === 'number' && length > maxLength) {
25
28
  return t('validation:shorterThanMax', {
26
- label: t('value'),
29
+ label: t('general:value'),
27
30
  maxLength,
28
31
  stringValue
29
32
  });
30
33
  }
31
34
  if (typeof minLength === 'number' && length < minLength) {
32
35
  return t('validation:longerThanMin', {
33
- label: t('value'),
36
+ label: t('general:value'),
34
37
  minLength,
35
38
  stringValue
36
39
  });
@@ -43,7 +46,7 @@ export const text = (value, { hasMany, maxLength: fieldMaxLength, maxRows, minLe
43
46
  }
44
47
  return true;
45
48
  };
46
- export const password = (value, { maxLength: fieldMaxLength, minLength, req: { payload: { config }, t }, required })=>{
49
+ export const password = (value, { maxLength: fieldMaxLength, minLength = 3, req: { payload: { config }, t }, required })=>{
47
50
  let maxLength;
48
51
  if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength;
49
52
  if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength;
@@ -62,12 +65,50 @@ export const password = (value, { maxLength: fieldMaxLength, minLength, req: { p
62
65
  }
63
66
  return true;
64
67
  };
65
- export const email = (value, { req: { t }, required })=>{
68
+ export const confirmPassword = (value, { req: { t }, required, siblingData })=>{
69
+ if (required && !value) {
70
+ return t('validation:required');
71
+ }
72
+ if (value && value !== siblingData.password) {
73
+ return t('fields:passwordsDoNotMatch');
74
+ }
75
+ return true;
76
+ };
77
+ export const email = (value, { collectionSlug, req: { payload: { config }, t }, required, siblingData })=>{
78
+ if (collectionSlug) {
79
+ const collection = config.collections.find(({ slug })=>slug === collectionSlug);
80
+ if (collection.auth.loginWithUsername && !collection.auth.loginWithUsername?.requireUsername && !collection.auth.loginWithUsername?.requireEmail) {
81
+ if (!value && !siblingData?.username) {
82
+ return t('validation:required');
83
+ }
84
+ }
85
+ }
66
86
  if (value && !/\S[^\s@]*@\S+\.\S+/.test(value) || !value && required) {
67
87
  return t('validation:emailAddress');
68
88
  }
69
89
  return true;
70
90
  };
91
+ export const username = (value, { collectionSlug, req: { payload: { config }, t }, required, siblingData })=>{
92
+ let maxLength;
93
+ if (collectionSlug) {
94
+ const collection = config.collections.find(({ slug })=>slug === collectionSlug);
95
+ if (collection.auth.loginWithUsername && !collection.auth.loginWithUsername?.requireUsername && !collection.auth.loginWithUsername?.requireEmail) {
96
+ if (!value && !siblingData?.email) {
97
+ return t('validation:required');
98
+ }
99
+ }
100
+ }
101
+ if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength;
102
+ if (value && maxLength && value.length > maxLength) {
103
+ return t('validation:shorterThanMax', {
104
+ maxLength
105
+ });
106
+ }
107
+ if (value && !/^[\w.-]+$/.test(value) || !value && required) {
108
+ return t('validation:username');
109
+ }
110
+ return true;
111
+ };
71
112
  export const textarea = (value, { maxLength: fieldMaxLength, minLength, req: { payload: { config }, t }, required })=>{
72
113
  let maxLength;
73
114
  if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength;
@@ -93,13 +134,55 @@ export const code = (value, { req: { t }, required })=>{
93
134
  }
94
135
  return true;
95
136
  };
96
- export const json = (value, { jsonError, req: { t }, required })=>{
137
+ export const json = async (value, { jsonError, jsonSchema, req: { t }, required })=>{
138
+ const isNotEmpty = (value)=>{
139
+ if (value === undefined || value === null) {
140
+ return false;
141
+ }
142
+ if (Array.isArray(value) && value.length === 0) {
143
+ return false;
144
+ }
145
+ if (typeof value === 'object' && Object.keys(value).length === 0) {
146
+ return false;
147
+ }
148
+ return true;
149
+ };
150
+ const fetchSchema = ({ schema, uri })=>{
151
+ if (uri && schema) return schema;
152
+ // @ts-expect-error
153
+ return fetch(uri).then((response)=>{
154
+ if (!response.ok) {
155
+ throw new Error('Network response was not ok');
156
+ }
157
+ return response.json();
158
+ }).then((json)=>{
159
+ const jsonSchemaSanitizations = {
160
+ id: undefined,
161
+ $id: json.id,
162
+ $schema: 'http://json-schema.org/draft-07/schema#'
163
+ };
164
+ return Object.assign(json, jsonSchemaSanitizations);
165
+ });
166
+ };
97
167
  if (required && !value) {
98
168
  return t('validation:required');
99
169
  }
100
170
  if (jsonError !== undefined) {
101
171
  return t('validation:invalidInput');
102
172
  }
173
+ if (jsonSchema && isNotEmpty(value)) {
174
+ try {
175
+ jsonSchema.schema = await fetchSchema(jsonSchema);
176
+ const { schema } = jsonSchema;
177
+ // @ts-expect-error
178
+ const ajv = new Ajv();
179
+ if (!ajv.validate(schema, value)) {
180
+ return t(ajv.errorsText());
181
+ }
182
+ } catch (error) {
183
+ return t(error.message);
184
+ }
185
+ }
103
186
  return true;
104
187
  };
105
188
  export const checkbox = (value, { req: { t }, required })=>{
@@ -110,7 +193,7 @@ export const checkbox = (value, { req: { t }, required })=>{
110
193
  };
111
194
  export const date = (value, { req: { t }, required })=>{
112
195
  if (value && !isNaN(Date.parse(value.toString()))) {
113
- /* eslint-disable-line */ return true;
196
+ return true;
114
197
  }
115
198
  if (value) {
116
199
  return t('validation:notValidDate', {
@@ -123,6 +206,12 @@ export const date = (value, { req: { t }, required })=>{
123
206
  return true;
124
207
  };
125
208
  export const richText = async (value, options)=>{
209
+ if (!options?.editor) {
210
+ throw new Error('richText field has no editor property.');
211
+ }
212
+ if (typeof options?.editor === 'function') {
213
+ throw new Error('Attempted to access unsanitized rich text editor.');
214
+ }
126
215
  const editor = options?.editor;
127
216
  return editor.validate(value, options);
128
217
  };
@@ -208,7 +297,7 @@ const validateFilterOptions = async (value, { id, data, filterOptions, relationT
208
297
  if (typeof filterOptions !== 'undefined' && value) {
209
298
  const options = {};
210
299
  const falseCollections = [];
211
- const collections = typeof relationTo === 'string' ? [
300
+ const collections = !Array.isArray(relationTo) ? [
212
301
  relationTo
213
302
  ] : relationTo;
214
303
  const values = Array.isArray(value) ? value : [
@@ -228,8 +317,12 @@ const validateFilterOptions = async (value, { id, data, filterOptions, relationT
228
317
  }
229
318
  const valueIDs = [];
230
319
  values.forEach((val)=>{
231
- if (typeof val === 'object' && val?.value) {
232
- valueIDs.push(val.value);
320
+ if (typeof val === 'object') {
321
+ if (val?.value) {
322
+ valueIDs.push(val.value);
323
+ } else if (ObjectId.isValid(val)) {
324
+ valueIDs.push(new ObjectId(val).toHexString());
325
+ }
233
326
  }
234
327
  if (typeof val === 'string' || typeof val === 'number') {
235
328
  valueIDs.push(val);
@@ -277,6 +370,9 @@ const validateFilterOptions = async (value, { id, data, filterOptions, relationT
277
370
  if (typeof val === 'string' || typeof val === 'number') {
278
371
  requestedID = val;
279
372
  }
373
+ if (typeof val === 'object' && ObjectId.isValid(val)) {
374
+ requestedID = new ObjectId(val).toHexString();
375
+ }
280
376
  }
281
377
  if (Array.isArray(relationTo) && typeof val === 'object' && val?.relationTo) {
282
378
  collection = val.relationTo;
@@ -311,7 +407,7 @@ export const upload = (value, options)=>{
311
407
  };
312
408
  export const relationship = async (value, options)=>{
313
409
  const { maxRows, minRows, relationTo, req: { payload, t }, required } = options;
314
- if ((!value || Array.isArray(value) && value.length === 0) && required) {
410
+ if ((!value && typeof value !== 'number' || Array.isArray(value) && value.length === 0) && required) {
315
411
  return t('validation:required');
316
412
  }
317
413
  if (Array.isArray(value) && value.length > 0) {
@@ -340,7 +436,7 @@ export const relationship = async (value, options)=>{
340
436
  if (typeof relationTo === 'string') {
341
437
  collectionSlug = relationTo;
342
438
  // custom id
343
- if (val) {
439
+ if (val || typeof val === 'number') {
344
440
  requestedID = val;
345
441
  }
346
442
  }
@@ -398,6 +494,7 @@ export default {
398
494
  blocks,
399
495
  checkbox,
400
496
  code,
497
+ confirmPassword,
401
498
  date,
402
499
  email,
403
500
  json,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/fields/validations.ts"],"sourcesContent":["import type { RichTextAdapter } from '../admin/types.js'\nimport type { Where } from '../types/index.js'\nimport type {\n ArrayField,\n BlockField,\n CheckboxField,\n CodeField,\n DateField,\n EmailField,\n JSONField,\n NumberField,\n PointField,\n RadioField,\n RelationshipField,\n RelationshipValue,\n RichTextField,\n SelectField,\n TextField,\n TextareaField,\n UploadField,\n Validate,\n} from './config/types.js'\n\nimport { isNumber } from '../utilities/isNumber.js'\nimport { isValidID } from '../utilities/isValidID.js'\n\nexport const text: Validate<string | string[], unknown, unknown, TextField> = (\n value,\n {\n hasMany,\n maxLength: fieldMaxLength,\n maxRows,\n minLength,\n minRows,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (!required) {\n if (!value) return true\n }\n\n if (hasMany === true) {\n const lengthValidationResult = validateArrayLength(value, { maxRows, minRows, required, t })\n if (typeof lengthValidationResult === 'string') return lengthValidationResult\n }\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength\n\n const stringsToValidate: string[] = Array.isArray(value) ? value : [value]\n\n for (const stringValue of stringsToValidate) {\n const length = stringValue?.length || 0\n\n if (typeof maxLength === 'number' && length > maxLength) {\n return t('validation:shorterThanMax', { label: t('value'), maxLength, stringValue })\n }\n\n if (typeof minLength === 'number' && length < minLength) {\n return t('validation:longerThanMin', { label: t('value'), minLength, stringValue })\n }\n }\n\n if (required) {\n if (!(typeof value === 'string' || Array.isArray(value)) || value?.length === 0) {\n return t('validation:required')\n }\n }\n\n return true\n}\n\nexport const password: Validate<string, unknown, unknown, TextField> = (\n value,\n {\n maxLength: fieldMaxLength,\n minLength,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength\n\n if (value && maxLength && value.length > maxLength) {\n return t('validation:shorterThanMax', { maxLength })\n }\n\n if (value && minLength && value.length < minLength) {\n return t('validation:longerThanMin', { minLength })\n }\n\n if (required && !value) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const email: Validate<string, unknown, unknown, EmailField> = (\n value,\n { req: { t }, required },\n) => {\n if ((value && !/\\S[^\\s@]*@\\S+\\.\\S+/.test(value)) || (!value && required)) {\n return t('validation:emailAddress')\n }\n\n return true\n}\n\nexport const textarea: Validate<string, unknown, unknown, TextareaField> = (\n value,\n {\n maxLength: fieldMaxLength,\n minLength,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength\n if (value && maxLength && value.length > maxLength) {\n return t('validation:shorterThanMax', { maxLength })\n }\n\n if (value && minLength && value.length < minLength) {\n return t('validation:longerThanMin', { minLength })\n }\n\n if (required && !value) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const code: Validate<string, unknown, unknown, CodeField> = (\n value,\n { req: { t }, required },\n) => {\n if (required && value === undefined) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const json: Validate<string, unknown, unknown, JSONField & { jsonError?: string }> = (\n value,\n { jsonError, req: { t }, required },\n) => {\n if (required && !value) {\n return t('validation:required')\n }\n\n if (jsonError !== undefined) {\n return t('validation:invalidInput')\n }\n\n return true\n}\n\nexport const checkbox: Validate<boolean, unknown, unknown, CheckboxField> = (\n value,\n { req: { t }, required },\n) => {\n if ((value && typeof value !== 'boolean') || (required && typeof value !== 'boolean')) {\n return t('validation:trueOrFalse')\n }\n\n return true\n}\n\nexport const date: Validate<Date, unknown, unknown, DateField> = (\n value,\n { req: { t }, required },\n) => {\n if (value && !isNaN(Date.parse(value.toString()))) {\n /* eslint-disable-line */\n return true\n }\n\n if (value) {\n return t('validation:notValidDate', { value })\n }\n\n if (required) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const richText: Validate<object, unknown, unknown, RichTextField> = async (\n value,\n options,\n) => {\n const editor: RichTextAdapter = options?.editor\n\n return editor.validate(value, options)\n}\n\nconst validateArrayLength = (\n value,\n options: {\n maxRows?: number\n minRows?: number\n required?: boolean\n t: (key: string, options?: { [key: string]: number | string }) => string\n },\n) => {\n const { maxRows, minRows, required, t } = options\n\n const arrayLength = Array.isArray(value) ? value.length : value || 0\n\n if (!required && arrayLength === 0) return true\n\n if (minRows && arrayLength < minRows) {\n return t('validation:requiresAtLeast', { count: minRows, label: t('general:rows') })\n }\n\n if (maxRows && arrayLength > maxRows) {\n return t('validation:requiresNoMoreThan', { count: maxRows, label: t('general:rows') })\n }\n\n if (required && !arrayLength) {\n return t('validation:requiresAtLeast', { count: 1, label: t('general:row') })\n }\n\n return true\n}\n\nexport const number: Validate<number | number[], unknown, unknown, NumberField> = (\n value,\n { hasMany, max, maxRows, min, minRows, req: { t }, required },\n) => {\n if (hasMany === true) {\n const lengthValidationResult = validateArrayLength(value, { maxRows, minRows, required, t })\n if (typeof lengthValidationResult === 'string') return lengthValidationResult\n }\n\n if (!value && !isNumber(value)) {\n // if no value is present, validate based on required\n if (required) return t('validation:required')\n if (!required) return true\n }\n\n const numbersToValidate: number[] = Array.isArray(value) ? value : [value]\n\n for (const number of numbersToValidate) {\n if (!isNumber(number)) return t('validation:enterNumber')\n\n const numberValue = parseFloat(number as unknown as string)\n\n if (typeof max === 'number' && numberValue > max) {\n return t('validation:greaterThanMax', { label: t('general:value'), max, value })\n }\n\n if (typeof min === 'number' && numberValue < min) {\n return t('validation:lessThanMin', { label: t('general:value'), min, value })\n }\n }\n\n return true\n}\n\nexport const array: Validate<unknown[], unknown, unknown, ArrayField> = (\n value,\n { maxRows, minRows, req: { t }, required },\n) => {\n return validateArrayLength(value, { maxRows, minRows, required, t })\n}\n\nexport const blocks: Validate<unknown, unknown, unknown, BlockField> = (\n value,\n { maxRows, minRows, req: { t }, required },\n) => {\n return validateArrayLength(value, { maxRows, minRows, required, t })\n}\n\nconst validateFilterOptions: Validate<\n unknown,\n unknown,\n unknown,\n RelationshipField | UploadField\n> = async (\n value,\n { id, data, filterOptions, relationTo, req, req: { payload, t, user }, siblingData },\n) => {\n if (typeof filterOptions !== 'undefined' && value) {\n const options: {\n [collection: string]: (number | string)[]\n } = {}\n\n const falseCollections: string[] = []\n const collections = typeof relationTo === 'string' ? [relationTo] : relationTo\n const values = Array.isArray(value) ? value : [value]\n\n for (const collection of collections) {\n try {\n let optionFilter =\n typeof filterOptions === 'function'\n ? await filterOptions({\n id,\n data,\n relationTo: collection,\n siblingData,\n user,\n })\n : filterOptions\n\n if (optionFilter === true) {\n optionFilter = null\n }\n\n const valueIDs: (number | string)[] = []\n\n values.forEach((val) => {\n if (typeof val === 'object' && val?.value) {\n valueIDs.push(val.value)\n }\n\n if (typeof val === 'string' || typeof val === 'number') {\n valueIDs.push(val)\n }\n })\n\n if (valueIDs.length > 0) {\n const findWhere: Where = {\n and: [{ id: { in: valueIDs } }],\n }\n\n if (optionFilter && optionFilter !== true) findWhere.and.push(optionFilter)\n\n if (optionFilter === false) {\n falseCollections.push(collection)\n }\n\n const result = await payload.find({\n collection,\n depth: 0,\n limit: 0,\n pagination: false,\n req,\n where: findWhere,\n })\n\n options[collection] = result.docs.map((doc) => doc.id)\n } else {\n options[collection] = []\n }\n } catch (err) {\n req.payload.logger.error({\n err,\n msg: `Error validating filter options for collection ${collection}`,\n })\n options[collection] = []\n }\n }\n\n const invalidRelationships = values.filter((val) => {\n let collection: string\n let requestedID: number | string\n\n if (typeof relationTo === 'string') {\n collection = relationTo\n\n if (typeof val === 'string' || typeof val === 'number') {\n requestedID = val\n }\n }\n\n if (Array.isArray(relationTo) && typeof val === 'object' && val?.relationTo) {\n collection = val.relationTo\n requestedID = val.value\n }\n\n if (falseCollections.find((slug) => relationTo === slug)) {\n return true\n }\n\n if (!options[collection]) return true\n\n return options[collection].indexOf(requestedID) === -1\n })\n\n if (invalidRelationships.length > 0) {\n return invalidRelationships.reduce((err, invalid, i) => {\n return `${err} ${JSON.stringify(invalid)}${\n invalidRelationships.length === i + 1 ? ',' : ''\n } `\n }, t('validation:invalidSelections')) as string\n }\n\n return true\n }\n\n return true\n}\n\nexport const upload: Validate<unknown, unknown, unknown, UploadField> = (\n value: string,\n options,\n) => {\n if (!value && options.required) {\n return options?.req?.t('validation:required')\n }\n\n if (typeof value !== 'undefined' && value !== null) {\n const idType =\n options?.req?.payload?.collections[options.relationTo]?.customIDType ||\n options?.req?.payload?.db?.defaultIDType\n\n if (!isValidID(value, idType)) {\n return options.req?.t('validation:validUploadID')\n }\n }\n\n return validateFilterOptions(value, options)\n}\n\nexport const relationship: Validate<\n RelationshipValue,\n unknown,\n unknown,\n RelationshipField\n> = async (value, options) => {\n const {\n maxRows,\n minRows,\n relationTo,\n req: { payload, t },\n required,\n } = options\n\n if ((!value || (Array.isArray(value) && value.length === 0)) && required) {\n return t('validation:required')\n }\n\n if (Array.isArray(value) && value.length > 0) {\n if (minRows && value.length < minRows) {\n return t('validation:lessThanMin', {\n label: t('general:rows'),\n min: minRows,\n value: value.length,\n })\n }\n\n if (maxRows && value.length > maxRows) {\n return t('validation:greaterThanMax', {\n label: t('general:rows'),\n max: maxRows,\n value: value.length,\n })\n }\n }\n\n if (typeof value !== 'undefined' && value !== null) {\n const values = Array.isArray(value) ? value : [value]\n\n const invalidRelationships = values.filter((val) => {\n let collectionSlug: string\n let requestedID\n\n if (typeof relationTo === 'string') {\n collectionSlug = relationTo\n\n // custom id\n if (val) {\n requestedID = val\n }\n }\n\n if (Array.isArray(relationTo) && typeof val === 'object' && val?.relationTo) {\n collectionSlug = val.relationTo\n requestedID = val.value\n }\n\n if (requestedID === null) return false\n\n const idType =\n payload.collections[collectionSlug]?.customIDType || payload?.db?.defaultIDType || 'text'\n\n return !isValidID(requestedID, idType)\n })\n\n if (invalidRelationships.length > 0) {\n return `This relationship field has the following invalid relationships: ${invalidRelationships\n .map((err, invalid) => {\n return `${err} ${JSON.stringify(invalid)}`\n })\n .join(', ')}`\n }\n }\n\n return validateFilterOptions(value, options)\n}\n\nexport const select: Validate<unknown, unknown, unknown, SelectField> = (\n value,\n { hasMany, options, req: { t }, required },\n) => {\n if (\n Array.isArray(value) &&\n value.some(\n (input) =>\n !options.some(\n (option) => option === input || (typeof option !== 'string' && option?.value === input),\n ),\n )\n ) {\n return t('validation:invalidSelection')\n }\n\n if (\n typeof value === 'string' &&\n !options.some(\n (option) => option === value || (typeof option !== 'string' && option.value === value),\n )\n ) {\n return t('validation:invalidSelection')\n }\n\n if (\n required &&\n (typeof value === 'undefined' ||\n value === null ||\n (hasMany && Array.isArray(value) && (value as [])?.length === 0))\n ) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const radio: Validate<unknown, unknown, unknown, RadioField> = (\n value,\n { options, req: { t }, required },\n) => {\n if (value) {\n const valueMatchesOption = options.some(\n (option) => option === value || (typeof option !== 'string' && option.value === value),\n )\n return valueMatchesOption || t('validation:invalidSelection')\n }\n\n return required ? t('validation:required') : true\n}\n\nexport const point: Validate<[number | string, number | string], unknown, unknown, PointField> = (\n value = ['', ''],\n { req: { t }, required },\n) => {\n const lng = parseFloat(String(value[0]))\n const lat = parseFloat(String(value[1]))\n if (\n required &&\n ((value[0] && value[1] && typeof lng !== 'number' && typeof lat !== 'number') ||\n Number.isNaN(lng) ||\n Number.isNaN(lat) ||\n (Array.isArray(value) && value.length !== 2))\n ) {\n return t('validation:requiresTwoNumbers')\n }\n\n if ((value[1] && Number.isNaN(lng)) || (value[0] && Number.isNaN(lat))) {\n return t('validation:invalidInput')\n }\n\n return true\n}\n\nexport default {\n array,\n blocks,\n checkbox,\n code,\n date,\n email,\n json,\n number,\n password,\n point,\n radio,\n relationship,\n richText,\n select,\n text,\n textarea,\n upload,\n}\n"],"names":["isNumber","isValidID","text","value","hasMany","maxLength","fieldMaxLength","maxRows","minLength","minRows","req","payload","config","t","required","lengthValidationResult","validateArrayLength","defaultMaxTextLength","stringsToValidate","Array","isArray","stringValue","length","label","password","email","test","textarea","code","undefined","json","jsonError","checkbox","date","isNaN","Date","parse","toString","richText","options","editor","validate","arrayLength","count","number","max","min","numbersToValidate","numberValue","parseFloat","array","blocks","validateFilterOptions","id","data","filterOptions","relationTo","user","siblingData","falseCollections","collections","values","collection","optionFilter","valueIDs","forEach","val","push","findWhere","and","in","result","find","depth","limit","pagination","where","docs","map","doc","err","logger","error","msg","invalidRelationships","filter","requestedID","slug","indexOf","reduce","invalid","i","JSON","stringify","upload","idType","customIDType","db","defaultIDType","relationship","collectionSlug","join","select","some","input","option","radio","valueMatchesOption","point","lng","String","lat","Number"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../src/fields/validations.ts"],"sourcesContent":["import Ajv from 'ajv'\nimport ObjectIdImport from 'bson-objectid'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\nimport type { RichTextAdapter } from '../admin/types.js'\nimport type { CollectionSlug } from '../index.js'\nimport type { Where } from '../types/index.js'\nimport type {\n ArrayField,\n BlockField,\n CheckboxField,\n CodeField,\n DateField,\n EmailField,\n JSONField,\n NumberField,\n PointField,\n RadioField,\n RelationshipField,\n RelationshipValue,\n RichTextField,\n SelectField,\n TextField,\n TextareaField,\n UploadField,\n Validate,\n} from './config/types.js'\n\nimport { isNumber } from '../utilities/isNumber.js'\nimport { isValidID } from '../utilities/isValidID.js'\n\nexport type TextFieldValidation = Validate<string, unknown, unknown, TextField>\nexport const text: TextFieldValidation = (\n value,\n {\n hasMany,\n maxLength: fieldMaxLength,\n maxRows,\n minLength,\n minRows,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (!required) {\n if (!value) return true\n }\n\n if (hasMany === true) {\n const lengthValidationResult = validateArrayLength(value, { maxRows, minRows, required, t })\n if (typeof lengthValidationResult === 'string') return lengthValidationResult\n }\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength\n\n const stringsToValidate: string[] = Array.isArray(value) ? value : [value]\n\n for (const stringValue of stringsToValidate) {\n const length = stringValue?.length || 0\n\n if (typeof maxLength === 'number' && length > maxLength) {\n return t('validation:shorterThanMax', { label: t('general:value'), maxLength, stringValue })\n }\n\n if (typeof minLength === 'number' && length < minLength) {\n return t('validation:longerThanMin', { label: t('general:value'), minLength, stringValue })\n }\n }\n\n if (required) {\n if (!(typeof value === 'string' || Array.isArray(value)) || value?.length === 0) {\n return t('validation:required')\n }\n }\n\n return true\n}\n\nexport type PasswordFieldValidation = Validate<string, unknown, unknown, TextField>\nexport const password: PasswordFieldValidation = (\n value,\n {\n maxLength: fieldMaxLength,\n minLength = 3,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength\n\n if (value && maxLength && value.length > maxLength) {\n return t('validation:shorterThanMax', { maxLength })\n }\n\n if (value && minLength && value.length < minLength) {\n return t('validation:longerThanMin', { minLength })\n }\n\n if (required && !value) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport type ConfirmPasswordFieldValidation = Validate<\n string,\n unknown,\n { password: string },\n TextField\n>\nexport const confirmPassword: ConfirmPasswordFieldValidation = (\n value,\n { req: { t }, required, siblingData },\n) => {\n if (required && !value) {\n return t('validation:required')\n }\n\n if (value && value !== siblingData.password) {\n return t('fields:passwordsDoNotMatch')\n }\n\n return true\n}\n\nexport type EmailFieldValidation = Validate<string, unknown, { username?: string }, EmailField>\nexport const email: EmailFieldValidation = (\n value,\n {\n collectionSlug,\n req: {\n payload: { config },\n t,\n },\n required,\n siblingData,\n },\n) => {\n if (collectionSlug) {\n const collection = config.collections.find(({ slug }) => slug === collectionSlug)\n\n if (\n collection.auth.loginWithUsername &&\n !collection.auth.loginWithUsername?.requireUsername &&\n !collection.auth.loginWithUsername?.requireEmail\n ) {\n if (!value && !siblingData?.username) {\n return t('validation:required')\n }\n }\n }\n\n if ((value && !/\\S[^\\s@]*@\\S+\\.\\S+/.test(value)) || (!value && required)) {\n return t('validation:emailAddress')\n }\n\n return true\n}\n\nexport type UsernameFieldValidation = Validate<string, unknown, { email?: string }, TextField>\nexport const username: UsernameFieldValidation = (\n value,\n {\n collectionSlug,\n req: {\n payload: { config },\n t,\n },\n required,\n siblingData,\n },\n) => {\n let maxLength: number\n\n if (collectionSlug) {\n const collection = config.collections.find(({ slug }) => slug === collectionSlug)\n\n if (\n collection.auth.loginWithUsername &&\n !collection.auth.loginWithUsername?.requireUsername &&\n !collection.auth.loginWithUsername?.requireEmail\n ) {\n if (!value && !siblingData?.email) {\n return t('validation:required')\n }\n }\n }\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n\n if (value && maxLength && value.length > maxLength) {\n return t('validation:shorterThanMax', { maxLength })\n }\n\n if ((value && !/^[\\w.-]+$/.test(value)) || (!value && required)) {\n return t('validation:username')\n }\n\n return true\n}\n\nexport type TextareaFieldValidation = Validate<string, unknown, unknown, TextareaField>\nexport const textarea: TextareaFieldValidation = (\n value,\n {\n maxLength: fieldMaxLength,\n minLength,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength\n if (value && maxLength && value.length > maxLength) {\n return t('validation:shorterThanMax', { maxLength })\n }\n\n if (value && minLength && value.length < minLength) {\n return t('validation:longerThanMin', { minLength })\n }\n\n if (required && !value) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport type CodeFieldValidation = Validate<string, unknown, unknown, CodeField>\nexport const code: CodeFieldValidation = (value, { req: { t }, required }) => {\n if (required && value === undefined) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport type JSONFieldValidation = Validate<\n string,\n unknown,\n unknown,\n { jsonError?: string } & JSONField\n>\nexport const json: JSONFieldValidation = async (\n value,\n { jsonError, jsonSchema, req: { t }, required },\n) => {\n const isNotEmpty = (value) => {\n if (value === undefined || value === null) {\n return false\n }\n\n if (Array.isArray(value) && value.length === 0) {\n return false\n }\n\n if (typeof value === 'object' && Object.keys(value).length === 0) {\n return false\n }\n\n return true\n }\n\n const fetchSchema = ({ schema, uri }: Record<string, unknown>) => {\n if (uri && schema) return schema\n // @ts-expect-error\n return fetch(uri)\n .then((response) => {\n if (!response.ok) {\n throw new Error('Network response was not ok')\n }\n return response.json()\n })\n .then((json) => {\n const jsonSchemaSanitizations = {\n id: undefined,\n $id: json.id,\n $schema: 'http://json-schema.org/draft-07/schema#',\n }\n\n return Object.assign(json, jsonSchemaSanitizations)\n })\n }\n\n if (required && !value) {\n return t('validation:required')\n }\n\n if (jsonError !== undefined) {\n return t('validation:invalidInput')\n }\n\n if (jsonSchema && isNotEmpty(value)) {\n try {\n jsonSchema.schema = await fetchSchema(jsonSchema)\n const { schema } = jsonSchema\n // @ts-expect-error\n const ajv = new Ajv()\n\n if (!ajv.validate(schema, value)) {\n return t(ajv.errorsText())\n }\n } catch (error) {\n return t(error.message)\n }\n }\n return true\n}\n\nexport type CheckboxFieldValidation = Validate<boolean, unknown, unknown, CheckboxField>\nexport const checkbox: CheckboxFieldValidation = (value, { req: { t }, required }) => {\n if ((value && typeof value !== 'boolean') || (required && typeof value !== 'boolean')) {\n return t('validation:trueOrFalse')\n }\n\n return true\n}\n\nexport type DateFieldValidation = Validate<Date, unknown, unknown, DateField>\nexport const date: DateFieldValidation = (value, { req: { t }, required }) => {\n if (value && !isNaN(Date.parse(value.toString()))) {\n return true\n }\n\n if (value) {\n return t('validation:notValidDate', { value })\n }\n\n if (required) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport type RichTextFieldValidation = Validate<object, unknown, unknown, RichTextField>\nexport const richText: RichTextFieldValidation = async (value, options) => {\n if (!options?.editor) {\n throw new Error('richText field has no editor property.')\n }\n if (typeof options?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n const editor: RichTextAdapter = options?.editor\n\n return editor.validate(value, options)\n}\n\nconst validateArrayLength = (\n value,\n options: {\n maxRows?: number\n minRows?: number\n required?: boolean\n t: (key: string, options?: { [key: string]: number | string }) => string\n },\n) => {\n const { maxRows, minRows, required, t } = options\n\n const arrayLength = Array.isArray(value) ? value.length : value || 0\n\n if (!required && arrayLength === 0) return true\n\n if (minRows && arrayLength < minRows) {\n return t('validation:requiresAtLeast', { count: minRows, label: t('general:rows') })\n }\n\n if (maxRows && arrayLength > maxRows) {\n return t('validation:requiresNoMoreThan', { count: maxRows, label: t('general:rows') })\n }\n\n if (required && !arrayLength) {\n return t('validation:requiresAtLeast', { count: 1, label: t('general:row') })\n }\n\n return true\n}\n\nexport type NumberFieldValidation = Validate<number | number[], unknown, unknown, NumberField>\nexport const number: NumberFieldValidation = (\n value,\n { hasMany, max, maxRows, min, minRows, req: { t }, required },\n) => {\n if (hasMany === true) {\n const lengthValidationResult = validateArrayLength(value, { maxRows, minRows, required, t })\n if (typeof lengthValidationResult === 'string') return lengthValidationResult\n }\n\n if (!value && !isNumber(value)) {\n // if no value is present, validate based on required\n if (required) return t('validation:required')\n if (!required) return true\n }\n\n const numbersToValidate: number[] = Array.isArray(value) ? value : [value]\n\n for (const number of numbersToValidate) {\n if (!isNumber(number)) return t('validation:enterNumber')\n\n const numberValue = parseFloat(number as unknown as string)\n\n if (typeof max === 'number' && numberValue > max) {\n return t('validation:greaterThanMax', { label: t('general:value'), max, value })\n }\n\n if (typeof min === 'number' && numberValue < min) {\n return t('validation:lessThanMin', { label: t('general:value'), min, value })\n }\n }\n\n return true\n}\n\nexport type ArrayFieldValidation = Validate<unknown[], unknown, unknown, ArrayField>\nexport const array: ArrayFieldValidation = (value, { maxRows, minRows, req: { t }, required }) => {\n return validateArrayLength(value, { maxRows, minRows, required, t })\n}\n\nexport type BlockFieldValidation = Validate<unknown, unknown, unknown, BlockField>\nexport const blocks: BlockFieldValidation = (value, { maxRows, minRows, req: { t }, required }) => {\n return validateArrayLength(value, { maxRows, minRows, required, t })\n}\n\nconst validateFilterOptions: Validate<\n unknown,\n unknown,\n unknown,\n RelationshipField | UploadField\n> = async (\n value,\n { id, data, filterOptions, relationTo, req, req: { payload, t, user }, siblingData },\n) => {\n if (typeof filterOptions !== 'undefined' && value) {\n const options: {\n [collection: string]: (number | string)[]\n } = {}\n\n const falseCollections: CollectionSlug[] = []\n const collections = !Array.isArray(relationTo) ? [relationTo] : relationTo\n const values = Array.isArray(value) ? value : [value]\n\n for (const collection of collections) {\n try {\n let optionFilter =\n typeof filterOptions === 'function'\n ? await filterOptions({\n id,\n data,\n relationTo: collection,\n siblingData,\n user,\n })\n : filterOptions\n\n if (optionFilter === true) {\n optionFilter = null\n }\n\n const valueIDs: (number | string)[] = []\n\n values.forEach((val) => {\n if (typeof val === 'object') {\n if (val?.value) {\n valueIDs.push(val.value)\n } else if (ObjectId.isValid(val)) {\n valueIDs.push(new ObjectId(val).toHexString())\n }\n }\n\n if (typeof val === 'string' || typeof val === 'number') {\n valueIDs.push(val)\n }\n })\n\n if (valueIDs.length > 0) {\n const findWhere: Where = {\n and: [{ id: { in: valueIDs } }],\n }\n\n if (optionFilter && optionFilter !== true) findWhere.and.push(optionFilter)\n\n if (optionFilter === false) {\n falseCollections.push(collection)\n }\n\n const result = await payload.find({\n collection,\n depth: 0,\n limit: 0,\n pagination: false,\n req,\n where: findWhere,\n })\n\n options[collection] = result.docs.map((doc) => doc.id)\n } else {\n options[collection] = []\n }\n } catch (err) {\n req.payload.logger.error({\n err,\n msg: `Error validating filter options for collection ${collection}`,\n })\n options[collection] = []\n }\n }\n\n const invalidRelationships = values.filter((val) => {\n let collection: string\n let requestedID: number | string\n\n if (typeof relationTo === 'string') {\n collection = relationTo\n\n if (typeof val === 'string' || typeof val === 'number') {\n requestedID = val\n }\n\n if (typeof val === 'object' && ObjectId.isValid(val)) {\n requestedID = new ObjectId(val).toHexString()\n }\n }\n\n if (Array.isArray(relationTo) && typeof val === 'object' && val?.relationTo) {\n collection = val.relationTo\n requestedID = val.value\n }\n\n if (falseCollections.find((slug) => relationTo === slug)) {\n return true\n }\n\n if (!options[collection]) return true\n\n return options[collection].indexOf(requestedID) === -1\n })\n\n if (invalidRelationships.length > 0) {\n return invalidRelationships.reduce((err, invalid, i) => {\n return `${err} ${JSON.stringify(invalid)}${\n invalidRelationships.length === i + 1 ? ',' : ''\n } `\n }, t('validation:invalidSelections')) as string\n }\n\n return true\n }\n\n return true\n}\n\nexport type UploadFieldValidation = Validate<unknown, unknown, unknown, UploadField>\nexport const upload: UploadFieldValidation = (value: string, options) => {\n if (!value && options.required) {\n return options?.req?.t('validation:required')\n }\n\n if (typeof value !== 'undefined' && value !== null) {\n const idType =\n options?.req?.payload?.collections[options.relationTo]?.customIDType ||\n options?.req?.payload?.db?.defaultIDType\n\n if (!isValidID(value, idType)) {\n return options.req?.t('validation:validUploadID')\n }\n }\n\n return validateFilterOptions(value, options)\n}\n\nexport type RelationshipFieldValidation = Validate<\n RelationshipValue,\n unknown,\n unknown,\n RelationshipField\n>\nexport const relationship: RelationshipFieldValidation = async (value, options) => {\n const {\n maxRows,\n minRows,\n relationTo,\n req: { payload, t },\n required,\n } = options\n\n if (\n ((!value && typeof value !== 'number') || (Array.isArray(value) && value.length === 0)) &&\n required\n ) {\n return t('validation:required')\n }\n\n if (Array.isArray(value) && value.length > 0) {\n if (minRows && value.length < minRows) {\n return t('validation:lessThanMin', {\n label: t('general:rows'),\n min: minRows,\n value: value.length,\n })\n }\n\n if (maxRows && value.length > maxRows) {\n return t('validation:greaterThanMax', {\n label: t('general:rows'),\n max: maxRows,\n value: value.length,\n })\n }\n }\n\n if (typeof value !== 'undefined' && value !== null) {\n const values = Array.isArray(value) ? value : [value]\n\n const invalidRelationships = values.filter((val) => {\n let collectionSlug: string\n let requestedID\n\n if (typeof relationTo === 'string') {\n collectionSlug = relationTo\n\n // custom id\n if (val || typeof val === 'number') {\n requestedID = val\n }\n }\n\n if (Array.isArray(relationTo) && typeof val === 'object' && val?.relationTo) {\n collectionSlug = val.relationTo\n requestedID = val.value\n }\n\n if (requestedID === null) return false\n\n const idType =\n payload.collections[collectionSlug]?.customIDType || payload?.db?.defaultIDType || 'text'\n\n return !isValidID(requestedID, idType)\n })\n\n if (invalidRelationships.length > 0) {\n return `This relationship field has the following invalid relationships: ${invalidRelationships\n .map((err, invalid) => {\n return `${err} ${JSON.stringify(invalid)}`\n })\n .join(', ')}`\n }\n }\n\n return validateFilterOptions(value, options)\n}\n\nexport type SelectFieldValidation = Validate<string | string[], unknown, unknown, SelectField>\nexport const select: SelectFieldValidation = (\n value,\n { hasMany, options, req: { t }, required },\n) => {\n if (\n Array.isArray(value) &&\n value.some(\n (input) =>\n !options.some(\n (option) => option === input || (typeof option !== 'string' && option?.value === input),\n ),\n )\n ) {\n return t('validation:invalidSelection')\n }\n\n if (\n typeof value === 'string' &&\n !options.some(\n (option) => option === value || (typeof option !== 'string' && option.value === value),\n )\n ) {\n return t('validation:invalidSelection')\n }\n\n if (\n required &&\n (typeof value === 'undefined' ||\n value === null ||\n (hasMany && Array.isArray(value) && (value as [])?.length === 0))\n ) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport type RadioFieldValidation = Validate<unknown, unknown, unknown, RadioField>\nexport const radio: RadioFieldValidation = (value, { options, req: { t }, required }) => {\n if (value) {\n const valueMatchesOption = options.some(\n (option) => option === value || (typeof option !== 'string' && option.value === value),\n )\n return valueMatchesOption || t('validation:invalidSelection')\n }\n\n return required ? t('validation:required') : true\n}\n\nexport type PointFieldValidation = Validate<\n [number | string, number | string],\n unknown,\n unknown,\n PointField\n>\nexport const point: PointFieldValidation = (value = ['', ''], { req: { t }, required }) => {\n const lng = parseFloat(String(value[0]))\n const lat = parseFloat(String(value[1]))\n if (\n required &&\n ((value[0] && value[1] && typeof lng !== 'number' && typeof lat !== 'number') ||\n Number.isNaN(lng) ||\n Number.isNaN(lat) ||\n (Array.isArray(value) && value.length !== 2))\n ) {\n return t('validation:requiresTwoNumbers')\n }\n\n if ((value[1] && Number.isNaN(lng)) || (value[0] && Number.isNaN(lat))) {\n return t('validation:invalidInput')\n }\n\n return true\n}\n\nexport default {\n array,\n blocks,\n checkbox,\n code,\n confirmPassword,\n date,\n email,\n json,\n number,\n password,\n point,\n radio,\n relationship,\n richText,\n select,\n text,\n textarea,\n upload,\n}\n"],"names":["Ajv","ObjectIdImport","ObjectId","default","isNumber","isValidID","text","value","hasMany","maxLength","fieldMaxLength","maxRows","minLength","minRows","req","payload","config","t","required","lengthValidationResult","validateArrayLength","defaultMaxTextLength","stringsToValidate","Array","isArray","stringValue","length","label","password","confirmPassword","siblingData","email","collectionSlug","collection","collections","find","slug","auth","loginWithUsername","requireUsername","requireEmail","username","test","textarea","code","undefined","json","jsonError","jsonSchema","isNotEmpty","Object","keys","fetchSchema","schema","uri","fetch","then","response","ok","Error","jsonSchemaSanitizations","id","$id","$schema","assign","ajv","validate","errorsText","error","message","checkbox","date","isNaN","Date","parse","toString","richText","options","editor","arrayLength","count","number","max","min","numbersToValidate","numberValue","parseFloat","array","blocks","validateFilterOptions","data","filterOptions","relationTo","user","falseCollections","values","optionFilter","valueIDs","forEach","val","push","isValid","toHexString","findWhere","and","in","result","depth","limit","pagination","where","docs","map","doc","err","logger","msg","invalidRelationships","filter","requestedID","indexOf","reduce","invalid","i","JSON","stringify","upload","idType","customIDType","db","defaultIDType","relationship","join","select","some","input","option","radio","valueMatchesOption","point","lng","String","lat","Number"],"mappings":"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"}
@@ -1,11 +1,10 @@
1
+ import { jest } from '@jest/globals';
1
2
  import { number, password, point, relationship, select, text, textarea } from './validations.js';
2
3
  const t = jest.fn((string)=>string);
3
4
  let options = {
4
5
  data: undefined,
5
6
  operation: 'create',
6
- siblingData: undefined,
7
7
  req: {
8
- t,
9
8
  context: {},
10
9
  payload: {
11
10
  config: {
@@ -14,8 +13,10 @@ let options = {
14
13
  init: ()=>null
15
14
  }
16
15
  }
17
- }
18
- }
16
+ },
17
+ t
18
+ },
19
+ siblingData: undefined
19
20
  };
20
21
  describe('Field Validations', ()=>{
21
22
  describe('text', ()=>{
@@ -292,33 +293,33 @@ describe('Field Validations', ()=>{
292
293
  });
293
294
  describe('relationship', ()=>{
294
295
  const relationCollection = {
296
+ slug: 'relation',
295
297
  fields: [
296
298
  {
297
299
  name: 'id',
298
300
  type: 'text'
299
301
  }
300
- ],
301
- slug: 'relation'
302
+ ]
302
303
  };
303
304
  const relationshipOptions = {
304
305
  ...options,
306
+ relationTo: 'relation',
305
307
  req: {
306
308
  ...options.req,
307
309
  payload: {
308
310
  ...options.req.payload,
309
- config: {
310
- collections: [
311
- relationCollection
312
- ]
313
- },
314
311
  collections: {
315
312
  relation: {
316
313
  config: relationCollection
317
314
  }
315
+ },
316
+ config: {
317
+ collections: [
318
+ relationCollection
319
+ ]
318
320
  }
319
321
  }
320
- },
321
- relationTo: 'relation'
322
+ }
322
323
  };
323
324
  it('should handle required', async ()=>{
324
325
  const val = undefined;
@@ -377,12 +378,12 @@ describe('Field Validations', ()=>{
377
378
  describe('select', ()=>{
378
379
  const selectOptions = {
379
380
  ...options,
381
+ type: 'select',
380
382
  options: [
381
383
  'one',
382
384
  'two',
383
385
  'three'
384
- ],
385
- type: 'select'
386
+ ]
386
387
  };
387
388
  const optionsRequired = {
388
389
  ...selectOptions,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/fields/validations.spec.ts"],"sourcesContent":["import type { ValidateOptions } from './config/types.js'\n\nimport { number, password, point, relationship, select, text, textarea } from './validations.js'\n\nconst t = jest.fn((string) => string)\n\nlet options: ValidateOptions<any, any> = {\n data: undefined,\n operation: 'create',\n siblingData: undefined,\n req: {\n t,\n context: {},\n payload: {\n config: {\n db: {\n defaultIDType: 'text',\n init: () => null,\n },\n },\n },\n },\n}\n\ndescribe('Field Validations', () => {\n describe('text', () => {\n it('should validate', () => {\n const val = 'test'\n const result = text(val, options)\n expect(result).toBe(true)\n })\n it('should show required message', () => {\n const val = undefined\n const result = text(val, { ...options, required: true })\n expect(result).toBe('validation:required')\n })\n it('should handle undefined', () => {\n const val = undefined\n const result = text(val, options)\n expect(result).toBe(true)\n })\n it('should validate maxLength', () => {\n const val = 'toolong'\n const result = text(val, { ...options, maxLength: 5 })\n expect(result).toBe('validation:shorterThanMax')\n })\n it('should validate minLength', () => {\n const val = 'short'\n const result = text(val, { ...options, minLength: 10 })\n expect(result).toBe('validation:longerThanMin')\n })\n it('should validate maxLength with no value', () => {\n const val = undefined\n const result = text(val, { ...options, maxLength: 5 })\n expect(result).toBe(true)\n })\n it('should validate minLength with no value', () => {\n const val = undefined\n const result = text(val, { ...options, minLength: 10 })\n expect(result).toBe(true)\n })\n it('should validate an array of texts', async () => {\n const val = ['test']\n const result = text(val, { ...options, hasMany: true })\n expect(result).toBe(true)\n })\n it('should handle required array of texts', async () => {\n const val = ['test']\n const result = text(val, { ...options, hasMany: true, required: true })\n expect(result).toBe(true)\n })\n })\n\n describe('textarea', () => {\n options = { ...options, field: { name: 'test', type: 'textarea' } }\n it('should validate', () => {\n const val = 'test'\n const result = textarea(val, options)\n expect(result).toBe(true)\n })\n it('should show required message', () => {\n const val = undefined\n const result = textarea(val, { ...options, required: true })\n expect(result).toBe('validation:required')\n })\n\n it('should handle undefined', () => {\n const val = undefined\n const result = textarea(val, options)\n expect(result).toBe(true)\n })\n it('should validate maxLength', () => {\n const val = 'toolong'\n const result = textarea(val, { ...options, maxLength: 5 })\n expect(result).toBe('validation:shorterThanMax')\n })\n\n it('should validate minLength', () => {\n const val = 'short'\n const result = textarea(val, { ...options, minLength: 10 })\n expect(result).toBe('validation:longerThanMin')\n })\n it('should validate maxLength with no value', () => {\n const val = undefined\n const result = textarea(val, { ...options, maxLength: 5 })\n expect(result).toBe(true)\n })\n it('should validate minLength with no value', () => {\n const val = undefined\n const result = textarea(val, { ...options, minLength: 10 })\n expect(result).toBe(true)\n })\n })\n\n describe('password', () => {\n const passwordOptions = {\n ...options,\n name: 'test',\n type: 'password',\n }\n it('should validate', () => {\n const val = 'test'\n const result = password(val, passwordOptions)\n expect(result).toBe(true)\n })\n it('should show required message', () => {\n const val = undefined\n const result = password(val, { ...passwordOptions, required: true })\n expect(result).toBe('validation:required')\n })\n it('should handle undefined', () => {\n const val = undefined\n const result = password(val, passwordOptions)\n expect(result).toBe(true)\n })\n it('should validate maxLength', () => {\n const val = 'toolong'\n const result = password(val, { ...passwordOptions, maxLength: 5 })\n expect(result).toBe('validation:shorterThanMax')\n })\n it('should validate minLength', () => {\n const val = 'short'\n const result = password(val, { ...passwordOptions, minLength: 10 })\n expect(result).toBe('validation:longerThanMin')\n })\n it('should validate maxLength with no value', () => {\n const val = undefined\n const result = password(val, { ...passwordOptions, maxLength: 5 })\n expect(result).toBe(true)\n })\n it('should validate minLength with no value', () => {\n const val = undefined\n const result = password(val, { ...passwordOptions, minLength: 10 })\n expect(result).toBe(true)\n })\n })\n\n describe('point', () => {\n const pointOptions = {\n ...options,\n name: 'point',\n type: 'point',\n }\n it('should validate numbers', () => {\n const val = ['0.1', '0.2']\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should validate strings that could be numbers', () => {\n const val = ['0.1', '0.2']\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should show required message when undefined', () => {\n const val = undefined\n const result = point(val, { ...pointOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should show required message when array', () => {\n const val = []\n const result = point(val, { ...pointOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should show required message when array of undefined', () => {\n const val = [undefined, undefined]\n const result = point(val, { ...pointOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should handle undefined not required', () => {\n const val = undefined\n const result = password(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should handle empty array not required', () => {\n const val = []\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should handle array of undefined not required', () => {\n const val = [undefined, undefined]\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should prevent text input', () => {\n const val = ['bad', 'input']\n const result = point(val, pointOptions)\n expect(result).not.toBe(true)\n })\n it('should prevent missing value', () => {\n const val = [0.1]\n const result = point(val, pointOptions)\n expect(result).not.toBe(true)\n })\n })\n\n describe('relationship', () => {\n const relationCollection = {\n fields: [\n {\n name: 'id',\n type: 'text',\n },\n ],\n slug: 'relation',\n }\n\n const relationshipOptions = {\n ...options,\n req: {\n ...options.req,\n payload: {\n ...options.req.payload,\n config: {\n collections: [relationCollection],\n },\n collections: {\n relation: {\n config: relationCollection,\n },\n },\n },\n },\n relationTo: 'relation',\n }\n it('should handle required', async () => {\n const val = undefined\n const result = await relationship(val, { ...relationshipOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should handle required with hasMany', async () => {\n const val = []\n const result = await relationship(val, {\n ...relationshipOptions,\n hasMany: true,\n required: true,\n })\n expect(result).not.toBe(true)\n })\n it('should enforce hasMany min', async () => {\n const minOptions = {\n ...relationshipOptions,\n hasMany: true,\n minRows: 2,\n }\n\n const val = ['a']\n\n const result = await relationship(val, minOptions)\n expect(result).not.toBe(true)\n\n const allowed = await relationship(['a', 'b'], minOptions)\n expect(allowed).toStrictEqual(true)\n })\n it('should enforce hasMany max', async () => {\n const maxOptions = {\n ...relationshipOptions,\n hasMany: true,\n maxRows: 2,\n }\n let val = ['a', 'b', 'c']\n\n const result = await relationship(val, maxOptions)\n expect(result).not.toBe(true)\n\n val = ['a']\n const allowed = await relationship(val, maxOptions)\n expect(allowed).toStrictEqual(true)\n })\n })\n\n describe('select', () => {\n const selectOptions = {\n ...options,\n options: ['one', 'two', 'three'],\n type: 'select',\n }\n const optionsRequired = {\n ...selectOptions,\n options: [\n {\n label: 'One',\n value: 'one',\n },\n {\n label: 'two',\n value: 'two',\n },\n {\n label: 'three',\n value: 'three',\n },\n ],\n required: true,\n }\n const optionsWithEmptyString = {\n ...selectOptions,\n options: [\n {\n label: 'None',\n value: '',\n },\n {\n label: 'Option',\n value: 'option',\n },\n ],\n }\n it('should allow valid input', () => {\n const val = 'one'\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input', () => {\n const val = 'bad'\n const result = select(val, selectOptions)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow null input', () => {\n const val = null\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should allow undefined input', () => {\n let val\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should prevent empty string input', () => {\n const val = ''\n const result = select(val, selectOptions)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent undefined input with required', () => {\n let val\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent empty string input with required', () => {\n const result = select('', optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent undefined input with required and hasMany', () => {\n let val\n options.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent empty array input with required and hasMany', () => {\n optionsRequired.hasMany = true\n const result = select([], optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent empty string array input with required and hasMany', () => {\n options.hasMany = true\n const result = select([''], optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent null input with required and hasMany', () => {\n const val = null\n options.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow valid input with option objects', () => {\n const val = 'one'\n options.hasMany = false\n const result = select(val, optionsRequired)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input with option objects', () => {\n const val = 'bad'\n options.hasMany = false\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow empty string input with option object', () => {\n const val = ''\n const result = select(val, optionsWithEmptyString)\n expect(result).toStrictEqual(true)\n })\n it('should allow empty string input with option object and required', () => {\n const val = ''\n optionsWithEmptyString.required = true\n const result = select(val, optionsWithEmptyString)\n expect(result).toStrictEqual(true)\n })\n it('should allow valid input with hasMany', () => {\n const val = ['one', 'two']\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input with hasMany', () => {\n const val = ['one', 'bad']\n const result = select(val, selectOptions)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow valid input with hasMany option objects', () => {\n const val = ['one', 'three']\n optionsRequired.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input with hasMany option objects', () => {\n const val = ['three', 'bad']\n optionsRequired.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n })\n describe('number', () => {\n const numberOptions = {\n ...options,\n name: 'test',\n type: 'number',\n }\n it('should validate', () => {\n const val = 1\n const result = number(val, numberOptions)\n expect(result).toBe(true)\n })\n it('should validate 0', () => {\n const val = 0\n const result = number(val, { ...numberOptions, required: true })\n expect(result).toBe(true)\n })\n it('should validate 2', () => {\n const val = 1.5\n const result = number(val, numberOptions)\n expect(result).toBe(true)\n })\n it('should show invalid number message', () => {\n const val = 'test'\n const result = number(val, { ...numberOptions })\n expect(result).toBe('validation:enterNumber')\n })\n it('should handle empty value', () => {\n const val = ''\n const result = number(val, { ...numberOptions })\n expect(result).toBe(true)\n })\n it('should handle required value', () => {\n const val = ''\n const result = number(val, { ...numberOptions, required: true })\n expect(result).toBe('validation:required')\n })\n it('should validate minValue', () => {\n const val = 2.4\n const result = number(val, { ...numberOptions, min: 2.5 })\n expect(result).toBe('validation:lessThanMin')\n })\n it('should validate maxValue', () => {\n const val = 1.25\n const result = number(val, { ...numberOptions, max: 1 })\n expect(result).toBe('validation:greaterThanMax')\n })\n it('should validate an array of numbers', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true })\n expect(result).toBe(true)\n })\n it('should validate an array of numbers using min', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true, min: 3 })\n expect(result).toBe('validation:lessThanMin')\n })\n it('should validate an array of numbers using max', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true, max: 1 })\n expect(result).toBe('validation:greaterThanMax')\n })\n it('should validate an array of numbers using minRows', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true, minRows: 4 })\n expect(result).toBe('validation:requiresAtLeast')\n })\n it('should validate an array of numbers using maxRows', async () => {\n const val = [1.25, 2.5, 3.5]\n const result = number(val, { ...numberOptions, hasMany: true, maxRows: 2 })\n expect(result).toBe('validation:requiresNoMoreThan')\n })\n })\n})\n"],"names":["number","password","point","relationship","select","text","textarea","t","jest","fn","string","options","data","undefined","operation","siblingData","req","context","payload","config","db","defaultIDType","init","describe","it","val","result","expect","toBe","required","maxLength","minLength","hasMany","field","name","type","passwordOptions","pointOptions","not","relationCollection","fields","slug","relationshipOptions","collections","relation","relationTo","minOptions","minRows","allowed","toStrictEqual","maxOptions","maxRows","selectOptions","optionsRequired","label","value","optionsWithEmptyString","numberOptions","min","max"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../src/fields/validations.spec.ts"],"sourcesContent":["import { jest } from '@jest/globals'\n\nimport type { ValidateOptions } from './config/types.js'\n\nimport { number, password, point, relationship, select, text, textarea } from './validations.js'\n\nconst t = jest.fn((string) => string)\n\nlet options: ValidateOptions<any, any, any> = {\n data: undefined,\n operation: 'create',\n req: {\n context: {},\n payload: {\n config: {\n db: {\n defaultIDType: 'text',\n init: () => null,\n },\n },\n },\n t,\n },\n siblingData: undefined,\n}\n\ndescribe('Field Validations', () => {\n describe('text', () => {\n it('should validate', () => {\n const val = 'test'\n const result = text(val, options)\n expect(result).toBe(true)\n })\n it('should show required message', () => {\n const val = undefined\n const result = text(val, { ...options, required: true })\n expect(result).toBe('validation:required')\n })\n it('should handle undefined', () => {\n const val = undefined\n const result = text(val, options)\n expect(result).toBe(true)\n })\n it('should validate maxLength', () => {\n const val = 'toolong'\n const result = text(val, { ...options, maxLength: 5 })\n expect(result).toBe('validation:shorterThanMax')\n })\n it('should validate minLength', () => {\n const val = 'short'\n const result = text(val, { ...options, minLength: 10 })\n expect(result).toBe('validation:longerThanMin')\n })\n it('should validate maxLength with no value', () => {\n const val = undefined\n const result = text(val, { ...options, maxLength: 5 })\n expect(result).toBe(true)\n })\n it('should validate minLength with no value', () => {\n const val = undefined\n const result = text(val, { ...options, minLength: 10 })\n expect(result).toBe(true)\n })\n it('should validate an array of texts', async () => {\n const val = ['test']\n const result = text(val, { ...options, hasMany: true })\n expect(result).toBe(true)\n })\n it('should handle required array of texts', async () => {\n const val = ['test']\n const result = text(val, { ...options, hasMany: true, required: true })\n expect(result).toBe(true)\n })\n })\n\n describe('textarea', () => {\n options = { ...options, field: { name: 'test', type: 'textarea' } }\n it('should validate', () => {\n const val = 'test'\n const result = textarea(val, options)\n expect(result).toBe(true)\n })\n it('should show required message', () => {\n const val = undefined\n const result = textarea(val, { ...options, required: true })\n expect(result).toBe('validation:required')\n })\n\n it('should handle undefined', () => {\n const val = undefined\n const result = textarea(val, options)\n expect(result).toBe(true)\n })\n it('should validate maxLength', () => {\n const val = 'toolong'\n const result = textarea(val, { ...options, maxLength: 5 })\n expect(result).toBe('validation:shorterThanMax')\n })\n\n it('should validate minLength', () => {\n const val = 'short'\n const result = textarea(val, { ...options, minLength: 10 })\n expect(result).toBe('validation:longerThanMin')\n })\n it('should validate maxLength with no value', () => {\n const val = undefined\n const result = textarea(val, { ...options, maxLength: 5 })\n expect(result).toBe(true)\n })\n it('should validate minLength with no value', () => {\n const val = undefined\n const result = textarea(val, { ...options, minLength: 10 })\n expect(result).toBe(true)\n })\n })\n\n describe('password', () => {\n const passwordOptions = {\n ...options,\n name: 'test',\n type: 'password',\n }\n it('should validate', () => {\n const val = 'test'\n const result = password(val, passwordOptions)\n expect(result).toBe(true)\n })\n it('should show required message', () => {\n const val = undefined\n const result = password(val, { ...passwordOptions, required: true })\n expect(result).toBe('validation:required')\n })\n it('should handle undefined', () => {\n const val = undefined\n const result = password(val, passwordOptions)\n expect(result).toBe(true)\n })\n it('should validate maxLength', () => {\n const val = 'toolong'\n const result = password(val, { ...passwordOptions, maxLength: 5 })\n expect(result).toBe('validation:shorterThanMax')\n })\n it('should validate minLength', () => {\n const val = 'short'\n const result = password(val, { ...passwordOptions, minLength: 10 })\n expect(result).toBe('validation:longerThanMin')\n })\n it('should validate maxLength with no value', () => {\n const val = undefined\n const result = password(val, { ...passwordOptions, maxLength: 5 })\n expect(result).toBe(true)\n })\n it('should validate minLength with no value', () => {\n const val = undefined\n const result = password(val, { ...passwordOptions, minLength: 10 })\n expect(result).toBe(true)\n })\n })\n\n describe('point', () => {\n const pointOptions = {\n ...options,\n name: 'point',\n type: 'point',\n }\n it('should validate numbers', () => {\n const val = ['0.1', '0.2']\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should validate strings that could be numbers', () => {\n const val = ['0.1', '0.2']\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should show required message when undefined', () => {\n const val = undefined\n const result = point(val, { ...pointOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should show required message when array', () => {\n const val = []\n const result = point(val, { ...pointOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should show required message when array of undefined', () => {\n const val = [undefined, undefined]\n const result = point(val, { ...pointOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should handle undefined not required', () => {\n const val = undefined\n const result = password(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should handle empty array not required', () => {\n const val = []\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should handle array of undefined not required', () => {\n const val = [undefined, undefined]\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should prevent text input', () => {\n const val = ['bad', 'input']\n const result = point(val, pointOptions)\n expect(result).not.toBe(true)\n })\n it('should prevent missing value', () => {\n const val = [0.1]\n const result = point(val, pointOptions)\n expect(result).not.toBe(true)\n })\n })\n\n describe('relationship', () => {\n const relationCollection = {\n slug: 'relation',\n fields: [\n {\n name: 'id',\n type: 'text',\n },\n ],\n }\n\n const relationshipOptions = {\n ...options,\n relationTo: 'relation',\n req: {\n ...options.req,\n payload: {\n ...options.req.payload,\n collections: {\n relation: {\n config: relationCollection,\n },\n },\n config: {\n collections: [relationCollection],\n },\n },\n },\n }\n it('should handle required', async () => {\n const val = undefined\n const result = await relationship(val, { ...relationshipOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should handle required with hasMany', async () => {\n const val = []\n const result = await relationship(val, {\n ...relationshipOptions,\n hasMany: true,\n required: true,\n })\n expect(result).not.toBe(true)\n })\n it('should enforce hasMany min', async () => {\n const minOptions = {\n ...relationshipOptions,\n hasMany: true,\n minRows: 2,\n }\n\n const val = ['a']\n\n const result = await relationship(val, minOptions)\n expect(result).not.toBe(true)\n\n const allowed = await relationship(['a', 'b'], minOptions)\n expect(allowed).toStrictEqual(true)\n })\n it('should enforce hasMany max', async () => {\n const maxOptions = {\n ...relationshipOptions,\n hasMany: true,\n maxRows: 2,\n }\n let val = ['a', 'b', 'c']\n\n const result = await relationship(val, maxOptions)\n expect(result).not.toBe(true)\n\n val = ['a']\n const allowed = await relationship(val, maxOptions)\n expect(allowed).toStrictEqual(true)\n })\n })\n\n describe('select', () => {\n const selectOptions = {\n ...options,\n type: 'select',\n options: ['one', 'two', 'three'],\n }\n const optionsRequired = {\n ...selectOptions,\n options: [\n {\n label: 'One',\n value: 'one',\n },\n {\n label: 'two',\n value: 'two',\n },\n {\n label: 'three',\n value: 'three',\n },\n ],\n required: true,\n }\n const optionsWithEmptyString = {\n ...selectOptions,\n options: [\n {\n label: 'None',\n value: '',\n },\n {\n label: 'Option',\n value: 'option',\n },\n ],\n }\n it('should allow valid input', () => {\n const val = 'one'\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input', () => {\n const val = 'bad'\n const result = select(val, selectOptions)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow null input', () => {\n const val = null\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should allow undefined input', () => {\n let val\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should prevent empty string input', () => {\n const val = ''\n const result = select(val, selectOptions)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent undefined input with required', () => {\n let val\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent empty string input with required', () => {\n const result = select('', optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent undefined input with required and hasMany', () => {\n let val\n options.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent empty array input with required and hasMany', () => {\n optionsRequired.hasMany = true\n const result = select([], optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent empty string array input with required and hasMany', () => {\n options.hasMany = true\n const result = select([''], optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent null input with required and hasMany', () => {\n const val = null\n options.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow valid input with option objects', () => {\n const val = 'one'\n options.hasMany = false\n const result = select(val, optionsRequired)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input with option objects', () => {\n const val = 'bad'\n options.hasMany = false\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow empty string input with option object', () => {\n const val = ''\n const result = select(val, optionsWithEmptyString)\n expect(result).toStrictEqual(true)\n })\n it('should allow empty string input with option object and required', () => {\n const val = ''\n optionsWithEmptyString.required = true\n const result = select(val, optionsWithEmptyString)\n expect(result).toStrictEqual(true)\n })\n it('should allow valid input with hasMany', () => {\n const val = ['one', 'two']\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input with hasMany', () => {\n const val = ['one', 'bad']\n const result = select(val, selectOptions)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow valid input with hasMany option objects', () => {\n const val = ['one', 'three']\n optionsRequired.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input with hasMany option objects', () => {\n const val = ['three', 'bad']\n optionsRequired.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n })\n describe('number', () => {\n const numberOptions = {\n ...options,\n name: 'test',\n type: 'number',\n }\n it('should validate', () => {\n const val = 1\n const result = number(val, numberOptions)\n expect(result).toBe(true)\n })\n it('should validate 0', () => {\n const val = 0\n const result = number(val, { ...numberOptions, required: true })\n expect(result).toBe(true)\n })\n it('should validate 2', () => {\n const val = 1.5\n const result = number(val, numberOptions)\n expect(result).toBe(true)\n })\n it('should show invalid number message', () => {\n const val = 'test'\n const result = number(val, { ...numberOptions })\n expect(result).toBe('validation:enterNumber')\n })\n it('should handle empty value', () => {\n const val = ''\n const result = number(val, { ...numberOptions })\n expect(result).toBe(true)\n })\n it('should handle required value', () => {\n const val = ''\n const result = number(val, { ...numberOptions, required: true })\n expect(result).toBe('validation:required')\n })\n it('should validate minValue', () => {\n const val = 2.4\n const result = number(val, { ...numberOptions, min: 2.5 })\n expect(result).toBe('validation:lessThanMin')\n })\n it('should validate maxValue', () => {\n const val = 1.25\n const result = number(val, { ...numberOptions, max: 1 })\n expect(result).toBe('validation:greaterThanMax')\n })\n it('should validate an array of numbers', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true })\n expect(result).toBe(true)\n })\n it('should validate an array of numbers using min', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true, min: 3 })\n expect(result).toBe('validation:lessThanMin')\n })\n it('should validate an array of numbers using max', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true, max: 1 })\n expect(result).toBe('validation:greaterThanMax')\n })\n it('should validate an array of numbers using minRows', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true, minRows: 4 })\n expect(result).toBe('validation:requiresAtLeast')\n })\n it('should validate an array of numbers using maxRows', async () => {\n const val = [1.25, 2.5, 3.5]\n const result = number(val, { ...numberOptions, hasMany: true, maxRows: 2 })\n expect(result).toBe('validation:requiresNoMoreThan')\n })\n })\n})\n"],"names":["jest","number","password","point","relationship","select","text","textarea","t","fn","string","options","data","undefined","operation","req","context","payload","config","db","defaultIDType","init","siblingData","describe","it","val","result","expect","toBe","required","maxLength","minLength","hasMany","field","name","type","passwordOptions","pointOptions","not","relationCollection","slug","fields","relationshipOptions","relationTo","collections","relation","minOptions","minRows","allowed","toStrictEqual","maxOptions","maxRows","selectOptions","optionsRequired","label","value","optionsWithEmptyString","numberOptions","min","max"],"mappings":"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"}