payload 3.0.0-alpha.7 → 3.0.0-alpha.70

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