payload 3.0.0-beta.53 → 3.0.0-beta.55

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 (561) hide show
  1. package/dist/admin/LanguageOptions.js.map +1 -1
  2. package/dist/admin/RichText.js.map +1 -1
  3. package/dist/admin/elements/Cell.d.ts +0 -1
  4. package/dist/admin/elements/Cell.d.ts.map +1 -1
  5. package/dist/admin/elements/Cell.js.map +1 -1
  6. package/dist/admin/elements/DatePicker.js.map +1 -1
  7. package/dist/admin/elements/PreviewButton.js.map +1 -1
  8. package/dist/admin/elements/PublishButton.js.map +1 -1
  9. package/dist/admin/elements/SaveButton.js.map +1 -1
  10. package/dist/admin/elements/SaveDraftButton.js.map +1 -1
  11. package/dist/admin/elements/Tab.d.ts +0 -1
  12. package/dist/admin/elements/Tab.d.ts.map +1 -1
  13. package/dist/admin/elements/Tab.js.map +1 -1
  14. package/dist/admin/elements/Upload.d.ts +3 -0
  15. package/dist/admin/elements/Upload.d.ts.map +1 -0
  16. package/dist/admin/elements/Upload.js +3 -0
  17. package/dist/admin/elements/Upload.js.map +1 -0
  18. package/dist/admin/elements/WithServerSideProps.js.map +1 -1
  19. package/dist/admin/forms/Error.d.ts +0 -1
  20. package/dist/admin/forms/Error.d.ts.map +1 -1
  21. package/dist/admin/forms/Error.js.map +1 -1
  22. package/dist/admin/forms/FieldDescription.js.map +1 -1
  23. package/dist/admin/forms/FieldTypes.d.ts +0 -1
  24. package/dist/admin/forms/FieldTypes.d.ts.map +1 -1
  25. package/dist/admin/forms/FieldTypes.js.map +1 -1
  26. package/dist/admin/forms/Form.js.map +1 -1
  27. package/dist/admin/forms/Label.d.ts +0 -1
  28. package/dist/admin/forms/Label.d.ts.map +1 -1
  29. package/dist/admin/forms/Label.js.map +1 -1
  30. package/dist/admin/forms/RowLabel.js.map +1 -1
  31. package/dist/admin/types.d.ts +1 -0
  32. package/dist/admin/types.d.ts.map +1 -1
  33. package/dist/admin/types.js.map +1 -1
  34. package/dist/admin/views/types.d.ts +0 -1
  35. package/dist/admin/views/types.d.ts.map +1 -1
  36. package/dist/admin/views/types.js.map +1 -1
  37. package/dist/assets/assets.d.js.map +1 -1
  38. package/dist/auth/baseFields/accountLock.d.ts.map +1 -1
  39. package/dist/auth/baseFields/accountLock.js.map +1 -1
  40. package/dist/auth/baseFields/apiKey.d.ts.map +1 -1
  41. package/dist/auth/baseFields/apiKey.js.map +1 -1
  42. package/dist/auth/baseFields/auth.js.map +1 -1
  43. package/dist/auth/baseFields/verification.d.ts.map +1 -1
  44. package/dist/auth/baseFields/verification.js.map +1 -1
  45. package/dist/auth/cookies.d.ts +3 -3
  46. package/dist/auth/cookies.d.ts.map +1 -1
  47. package/dist/auth/cookies.js.map +1 -1
  48. package/dist/auth/crypto.js.map +1 -1
  49. package/dist/auth/defaultAccess.js.map +1 -1
  50. package/dist/auth/defaultUser.js.map +1 -1
  51. package/dist/auth/executeAccess.d.ts.map +1 -1
  52. package/dist/auth/executeAccess.js.map +1 -1
  53. package/dist/auth/executeAuthStrategies.d.ts +2 -2
  54. package/dist/auth/executeAuthStrategies.d.ts.map +1 -1
  55. package/dist/auth/executeAuthStrategies.js.map +1 -1
  56. package/dist/auth/extractJWT.d.ts +1 -1
  57. package/dist/auth/extractJWT.d.ts.map +1 -1
  58. package/dist/auth/extractJWT.js.map +1 -1
  59. package/dist/auth/getAccessResults.js.map +1 -1
  60. package/dist/auth/getFieldsToSign.d.ts +1 -1
  61. package/dist/auth/getFieldsToSign.d.ts.map +1 -1
  62. package/dist/auth/getFieldsToSign.js.map +1 -1
  63. package/dist/auth/index.js.map +1 -1
  64. package/dist/auth/isLocked.js.map +1 -1
  65. package/dist/auth/operations/access.d.ts.map +1 -1
  66. package/dist/auth/operations/access.js.map +1 -1
  67. package/dist/auth/operations/auth.d.ts +2 -3
  68. package/dist/auth/operations/auth.d.ts.map +1 -1
  69. package/dist/auth/operations/auth.js +0 -4
  70. package/dist/auth/operations/auth.js.map +1 -1
  71. package/dist/auth/operations/forgotPassword.d.ts.map +1 -1
  72. package/dist/auth/operations/forgotPassword.js.map +1 -1
  73. package/dist/auth/operations/init.d.ts.map +1 -1
  74. package/dist/auth/operations/init.js.map +1 -1
  75. package/dist/auth/operations/local/auth.d.ts.map +1 -1
  76. package/dist/auth/operations/local/auth.js.map +1 -1
  77. package/dist/auth/operations/local/forgotPassword.d.ts +3 -3
  78. package/dist/auth/operations/local/forgotPassword.d.ts.map +1 -1
  79. package/dist/auth/operations/local/forgotPassword.js.map +1 -1
  80. package/dist/auth/operations/local/index.js.map +1 -1
  81. package/dist/auth/operations/local/login.d.ts +4 -4
  82. package/dist/auth/operations/local/login.d.ts.map +1 -1
  83. package/dist/auth/operations/local/login.js.map +1 -1
  84. package/dist/auth/operations/local/resetPassword.d.ts +3 -3
  85. package/dist/auth/operations/local/resetPassword.d.ts.map +1 -1
  86. package/dist/auth/operations/local/resetPassword.js.map +1 -1
  87. package/dist/auth/operations/local/unlock.d.ts +3 -3
  88. package/dist/auth/operations/local/unlock.d.ts.map +1 -1
  89. package/dist/auth/operations/local/unlock.js.map +1 -1
  90. package/dist/auth/operations/local/verifyEmail.d.ts +3 -3
  91. package/dist/auth/operations/local/verifyEmail.d.ts.map +1 -1
  92. package/dist/auth/operations/local/verifyEmail.js.map +1 -1
  93. package/dist/auth/operations/login.d.ts +4 -4
  94. package/dist/auth/operations/login.d.ts.map +1 -1
  95. package/dist/auth/operations/login.js.map +1 -1
  96. package/dist/auth/operations/logout.d.ts.map +1 -1
  97. package/dist/auth/operations/logout.js.map +1 -1
  98. package/dist/auth/operations/me.d.ts +1 -0
  99. package/dist/auth/operations/me.d.ts.map +1 -1
  100. package/dist/auth/operations/me.js +1 -0
  101. package/dist/auth/operations/me.js.map +1 -1
  102. package/dist/auth/operations/refresh.d.ts +1 -0
  103. package/dist/auth/operations/refresh.d.ts.map +1 -1
  104. package/dist/auth/operations/refresh.js +1 -0
  105. package/dist/auth/operations/refresh.js.map +1 -1
  106. package/dist/auth/operations/registerFirstUser.d.ts +7 -10
  107. package/dist/auth/operations/registerFirstUser.d.ts.map +1 -1
  108. package/dist/auth/operations/registerFirstUser.js.map +1 -1
  109. package/dist/auth/operations/resetPassword.d.ts.map +1 -1
  110. package/dist/auth/operations/resetPassword.js.map +1 -1
  111. package/dist/auth/operations/unlock.d.ts.map +1 -1
  112. package/dist/auth/operations/unlock.js.map +1 -1
  113. package/dist/auth/operations/verifyEmail.d.ts.map +1 -1
  114. package/dist/auth/operations/verifyEmail.js.map +1 -1
  115. package/dist/auth/sendVerificationEmail.js.map +1 -1
  116. package/dist/auth/strategies/apiKey.js.map +1 -1
  117. package/dist/auth/strategies/jwt.js.map +1 -1
  118. package/dist/auth/strategies/local/authenticate.d.ts.map +1 -1
  119. package/dist/auth/strategies/local/authenticate.js.map +1 -1
  120. package/dist/auth/strategies/local/generatePasswordSaltHash.d.ts.map +1 -1
  121. package/dist/auth/strategies/local/generatePasswordSaltHash.js.map +1 -1
  122. package/dist/auth/strategies/local/incrementLoginAttempts.d.ts.map +1 -1
  123. package/dist/auth/strategies/local/incrementLoginAttempts.js.map +1 -1
  124. package/dist/auth/strategies/local/register.d.ts.map +1 -1
  125. package/dist/auth/strategies/local/register.js.map +1 -1
  126. package/dist/auth/strategies/local/resetLoginAttempts.d.ts.map +1 -1
  127. package/dist/auth/strategies/local/resetLoginAttempts.js.map +1 -1
  128. package/dist/auth/types.d.ts +1 -2
  129. package/dist/auth/types.d.ts.map +1 -1
  130. package/dist/auth/types.js.map +1 -1
  131. package/dist/bin/generateTypes.js.map +1 -1
  132. package/dist/bin/index.js.map +1 -1
  133. package/dist/bin/loadEnv.js.map +1 -1
  134. package/dist/bin/loader/clientExtensions.js.map +1 -1
  135. package/dist/bin/loader/compile.js.map +1 -1
  136. package/dist/bin/loader/ignores.js.map +1 -1
  137. package/dist/bin/loader/index.js.map +1 -1
  138. package/dist/bin/loader/read-default-tsconfig.js.map +1 -1
  139. package/dist/bin/loader/resolveOriginalPath.js.map +1 -1
  140. package/dist/bin/migrate.d.ts.map +1 -1
  141. package/dist/bin/migrate.js.map +1 -1
  142. package/dist/collections/config/build.js.map +1 -1
  143. package/dist/collections/config/client.d.ts +79 -109
  144. package/dist/collections/config/client.d.ts.map +1 -1
  145. package/dist/collections/config/client.js.map +1 -1
  146. package/dist/collections/config/defaults.js.map +1 -1
  147. package/dist/collections/config/sanitize.d.ts.map +1 -1
  148. package/dist/collections/config/sanitize.js.map +1 -1
  149. package/dist/collections/config/schema.d.ts.map +1 -1
  150. package/dist/collections/config/schema.js +3 -5
  151. package/dist/collections/config/schema.js.map +1 -1
  152. package/dist/collections/config/types.d.ts +17 -10
  153. package/dist/collections/config/types.d.ts.map +1 -1
  154. package/dist/collections/config/types.js.map +1 -1
  155. package/dist/collections/dataloader.js.map +1 -1
  156. package/dist/collections/operations/count.d.ts +3 -2
  157. package/dist/collections/operations/count.d.ts.map +1 -1
  158. package/dist/collections/operations/count.js.map +1 -1
  159. package/dist/collections/operations/create.d.ts +5 -9
  160. package/dist/collections/operations/create.d.ts.map +1 -1
  161. package/dist/collections/operations/create.js.map +1 -1
  162. package/dist/collections/operations/delete.d.ts +5 -5
  163. package/dist/collections/operations/delete.d.ts.map +1 -1
  164. package/dist/collections/operations/delete.js.map +1 -1
  165. package/dist/collections/operations/deleteByID.d.ts +4 -3
  166. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  167. package/dist/collections/operations/deleteByID.js.map +1 -1
  168. package/dist/collections/operations/docAccess.js.map +1 -1
  169. package/dist/collections/operations/duplicate.d.ts +3 -3
  170. package/dist/collections/operations/duplicate.d.ts.map +1 -1
  171. package/dist/collections/operations/duplicate.js.map +1 -1
  172. package/dist/collections/operations/find.d.ts +3 -2
  173. package/dist/collections/operations/find.d.ts.map +1 -1
  174. package/dist/collections/operations/find.js.map +1 -1
  175. package/dist/collections/operations/findByID.d.ts +3 -2
  176. package/dist/collections/operations/findByID.d.ts.map +1 -1
  177. package/dist/collections/operations/findByID.js +2 -3
  178. package/dist/collections/operations/findByID.js.map +1 -1
  179. package/dist/collections/operations/findVersionByID.d.ts +1 -1
  180. package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
  181. package/dist/collections/operations/findVersionByID.js.map +1 -1
  182. package/dist/collections/operations/findVersions.d.ts +1 -1
  183. package/dist/collections/operations/findVersions.d.ts.map +1 -1
  184. package/dist/collections/operations/findVersions.js.map +1 -1
  185. package/dist/collections/operations/local/count.d.ts +5 -5
  186. package/dist/collections/operations/local/count.d.ts.map +1 -1
  187. package/dist/collections/operations/local/count.js.map +1 -1
  188. package/dist/collections/operations/local/create.d.ts +7 -7
  189. package/dist/collections/operations/local/create.d.ts.map +1 -1
  190. package/dist/collections/operations/local/create.js.map +1 -1
  191. package/dist/collections/operations/local/delete.d.ts +12 -12
  192. package/dist/collections/operations/local/delete.d.ts.map +1 -1
  193. package/dist/collections/operations/local/delete.js.map +1 -1
  194. package/dist/collections/operations/local/duplicate.d.ts +6 -5
  195. package/dist/collections/operations/local/duplicate.d.ts.map +1 -1
  196. package/dist/collections/operations/local/duplicate.js.map +1 -1
  197. package/dist/collections/operations/local/find.d.ts +7 -6
  198. package/dist/collections/operations/local/find.d.ts.map +1 -1
  199. package/dist/collections/operations/local/find.js +1 -1
  200. package/dist/collections/operations/local/find.js.map +1 -1
  201. package/dist/collections/operations/local/findByID.d.ts +7 -6
  202. package/dist/collections/operations/local/findByID.d.ts.map +1 -1
  203. package/dist/collections/operations/local/findByID.js.map +1 -1
  204. package/dist/collections/operations/local/findVersionByID.d.ts +7 -6
  205. package/dist/collections/operations/local/findVersionByID.d.ts.map +1 -1
  206. package/dist/collections/operations/local/findVersionByID.js.map +1 -1
  207. package/dist/collections/operations/local/findVersions.d.ts +7 -6
  208. package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
  209. package/dist/collections/operations/local/findVersions.js.map +1 -1
  210. package/dist/collections/operations/local/index.d.ts +2 -2
  211. package/dist/collections/operations/local/index.d.ts.map +1 -1
  212. package/dist/collections/operations/local/index.js +2 -2
  213. package/dist/collections/operations/local/index.js.map +1 -1
  214. package/dist/collections/operations/local/restoreVersion.d.ts +7 -6
  215. package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
  216. package/dist/collections/operations/local/restoreVersion.js.map +1 -1
  217. package/dist/collections/operations/local/update.d.ts +12 -12
  218. package/dist/collections/operations/local/update.d.ts.map +1 -1
  219. package/dist/collections/operations/local/update.js.map +1 -1
  220. package/dist/collections/operations/restoreVersion.d.ts +1 -1
  221. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  222. package/dist/collections/operations/restoreVersion.js.map +1 -1
  223. package/dist/collections/operations/update.d.ts +5 -6
  224. package/dist/collections/operations/update.d.ts.map +1 -1
  225. package/dist/collections/operations/update.js.map +1 -1
  226. package/dist/collections/operations/updateByID.d.ts +5 -7
  227. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  228. package/dist/collections/operations/updateByID.js.map +1 -1
  229. package/dist/collections/operations/utils.d.ts +39 -36
  230. package/dist/collections/operations/utils.d.ts.map +1 -1
  231. package/dist/collections/operations/utils.js +0 -1
  232. package/dist/collections/operations/utils.js.map +1 -1
  233. package/dist/config/build.js.map +1 -1
  234. package/dist/config/client.d.ts.map +1 -1
  235. package/dist/config/client.js.map +1 -1
  236. package/dist/config/defaults.js.map +1 -1
  237. package/dist/config/find.js.map +1 -1
  238. package/dist/config/sanitize.d.ts.map +1 -1
  239. package/dist/config/sanitize.js.map +1 -1
  240. package/dist/config/schema.js.map +1 -1
  241. package/dist/config/shared/adminViewSchema.js.map +1 -1
  242. package/dist/config/shared/componentSchema.js.map +1 -1
  243. package/dist/config/shared/openGraphSchema.js.map +1 -1
  244. package/dist/config/types.d.ts +2 -3
  245. package/dist/config/types.d.ts.map +1 -1
  246. package/dist/config/types.js.map +1 -1
  247. package/dist/config/validate.js.map +1 -1
  248. package/dist/database/combineQueries.js.map +1 -1
  249. package/dist/database/createDatabaseAdapter.js.map +1 -1
  250. package/dist/database/flattenWhereToOperators.js.map +1 -1
  251. package/dist/database/getLocalizedPaths.js.map +1 -1
  252. package/dist/database/migrations/createMigration.js.map +1 -1
  253. package/dist/database/migrations/getMigrations.js.map +1 -1
  254. package/dist/database/migrations/getPredefinedMigration.d.ts.map +1 -1
  255. package/dist/database/migrations/getPredefinedMigration.js.map +1 -1
  256. package/dist/database/migrations/migrate.js.map +1 -1
  257. package/dist/database/migrations/migrateDown.js.map +1 -1
  258. package/dist/database/migrations/migrateRefresh.js.map +1 -1
  259. package/dist/database/migrations/migrateReset.js.map +1 -1
  260. package/dist/database/migrations/migrateStatus.js.map +1 -1
  261. package/dist/database/migrations/migrationTemplate.js.map +1 -1
  262. package/dist/database/migrations/migrationsCollection.js.map +1 -1
  263. package/dist/database/migrations/readMigrationFiles.d.ts.map +1 -1
  264. package/dist/database/migrations/readMigrationFiles.js.map +1 -1
  265. package/dist/database/queryValidation/types.js.map +1 -1
  266. package/dist/database/queryValidation/validateQueryPaths.js.map +1 -1
  267. package/dist/database/queryValidation/validateSearchParams.js.map +1 -1
  268. package/dist/database/types.d.ts +5 -6
  269. package/dist/database/types.d.ts.map +1 -1
  270. package/dist/database/types.js.map +1 -1
  271. package/dist/email/consoleEmailAdapter.js.map +1 -1
  272. package/dist/email/defaults.js.map +1 -1
  273. package/dist/email/getStringifiedToAddress.js.map +1 -1
  274. package/dist/email/sendEmail.js.map +1 -1
  275. package/dist/email/types.js.map +1 -1
  276. package/dist/errors/APIError.js.map +1 -1
  277. package/dist/errors/AuthenticationError.js.map +1 -1
  278. package/dist/errors/DuplicateCollection.js.map +1 -1
  279. package/dist/errors/DuplicateFieldName.js.map +1 -1
  280. package/dist/errors/DuplicateGlobal.js.map +1 -1
  281. package/dist/errors/ErrorDeletingFile.js.map +1 -1
  282. package/dist/errors/FileRetrievalError.js.map +1 -1
  283. package/dist/errors/FileUploadError.js.map +1 -1
  284. package/dist/errors/Forbidden.js.map +1 -1
  285. package/dist/errors/InvalidConfiguration.js.map +1 -1
  286. package/dist/errors/InvalidFieldName.js.map +1 -1
  287. package/dist/errors/InvalidFieldRelationship.js.map +1 -1
  288. package/dist/errors/InvalidSchema.js.map +1 -1
  289. package/dist/errors/LockedAuth.js.map +1 -1
  290. package/dist/errors/MissingCollectionLabel.js.map +1 -1
  291. package/dist/errors/MissingEditorProp.js.map +1 -1
  292. package/dist/errors/MissingFieldInputOptions.js.map +1 -1
  293. package/dist/errors/MissingFieldType.js.map +1 -1
  294. package/dist/errors/MissingFile.js.map +1 -1
  295. package/dist/errors/NotFound.js.map +1 -1
  296. package/dist/errors/QueryError.js.map +1 -1
  297. package/dist/errors/TimestampsRequired.js.map +1 -1
  298. package/dist/errors/UnathorizedError.js.map +1 -1
  299. package/dist/errors/ValidationError.js.map +1 -1
  300. package/dist/errors/index.js.map +1 -1
  301. package/dist/errors/types.js.map +1 -1
  302. package/dist/exports/i18n/ar.js.map +1 -1
  303. package/dist/exports/i18n/az.js.map +1 -1
  304. package/dist/exports/i18n/bg.js.map +1 -1
  305. package/dist/exports/i18n/cs.js.map +1 -1
  306. package/dist/exports/i18n/de.js.map +1 -1
  307. package/dist/exports/i18n/en.js.map +1 -1
  308. package/dist/exports/i18n/es.js.map +1 -1
  309. package/dist/exports/i18n/fa.js.map +1 -1
  310. package/dist/exports/i18n/fr.js.map +1 -1
  311. package/dist/exports/i18n/he.js.map +1 -1
  312. package/dist/exports/i18n/hr.js.map +1 -1
  313. package/dist/exports/i18n/hu.js.map +1 -1
  314. package/dist/exports/i18n/it.js.map +1 -1
  315. package/dist/exports/i18n/ja.js.map +1 -1
  316. package/dist/exports/i18n/ko.js.map +1 -1
  317. package/dist/exports/i18n/my.js.map +1 -1
  318. package/dist/exports/i18n/nb.js.map +1 -1
  319. package/dist/exports/i18n/nl.js.map +1 -1
  320. package/dist/exports/i18n/pl.js.map +1 -1
  321. package/dist/exports/i18n/pt.js.map +1 -1
  322. package/dist/exports/i18n/ro.js.map +1 -1
  323. package/dist/exports/i18n/rs.js.map +1 -1
  324. package/dist/exports/i18n/rsLatin.js.map +1 -1
  325. package/dist/exports/i18n/ru.js.map +1 -1
  326. package/dist/exports/i18n/sv.js.map +1 -1
  327. package/dist/exports/i18n/th.js.map +1 -1
  328. package/dist/exports/i18n/tr.js.map +1 -1
  329. package/dist/exports/i18n/uk.js.map +1 -1
  330. package/dist/exports/i18n/vi.js.map +1 -1
  331. package/dist/exports/i18n/zh.js.map +1 -1
  332. package/dist/exports/i18n/zhTw.js.map +1 -1
  333. package/dist/exports/node.js.map +1 -1
  334. package/dist/exports/shared.js.map +1 -1
  335. package/dist/fields/baseFields/baseBlockFields.js.map +1 -1
  336. package/dist/fields/baseFields/baseIDField.js.map +1 -1
  337. package/dist/fields/config/client.d.ts +333 -334
  338. package/dist/fields/config/client.d.ts.map +1 -1
  339. package/dist/fields/config/client.js.map +1 -1
  340. package/dist/fields/config/sanitize.d.ts.map +1 -1
  341. package/dist/fields/config/sanitize.js.map +1 -1
  342. package/dist/fields/config/sanitize.spec.js.map +1 -1
  343. package/dist/fields/config/schema.js +1 -1
  344. package/dist/fields/config/schema.js.map +1 -1
  345. package/dist/fields/config/types.d.ts +7 -6
  346. package/dist/fields/config/types.d.ts.map +1 -1
  347. package/dist/fields/config/types.js.map +1 -1
  348. package/dist/fields/getDefaultValue.js.map +1 -1
  349. package/dist/fields/getFieldPaths.js.map +1 -1
  350. package/dist/fields/hooks/afterChange/index.d.ts.map +1 -1
  351. package/dist/fields/hooks/afterChange/index.js.map +1 -1
  352. package/dist/fields/hooks/afterChange/promise.d.ts.map +1 -1
  353. package/dist/fields/hooks/afterChange/promise.js.map +1 -1
  354. package/dist/fields/hooks/afterChange/traverseFields.d.ts.map +1 -1
  355. package/dist/fields/hooks/afterChange/traverseFields.js.map +1 -1
  356. package/dist/fields/hooks/afterRead/index.js.map +1 -1
  357. package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
  358. package/dist/fields/hooks/afterRead/promise.js.map +1 -1
  359. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts.map +1 -1
  360. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js.map +1 -1
  361. package/dist/fields/hooks/afterRead/traverseFields.js.map +1 -1
  362. package/dist/fields/hooks/beforeChange/beforeDuplicate.js.map +1 -1
  363. package/dist/fields/hooks/beforeChange/cloneDataFromOriginalDoc.js.map +1 -1
  364. package/dist/fields/hooks/beforeChange/getExistingRowDoc.d.ts.map +1 -1
  365. package/dist/fields/hooks/beforeChange/getExistingRowDoc.js.map +1 -1
  366. package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
  367. package/dist/fields/hooks/beforeChange/index.js.map +1 -1
  368. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  369. package/dist/fields/hooks/beforeChange/promise.js.map +1 -1
  370. package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
  371. package/dist/fields/hooks/beforeChange/traverseFields.js.map +1 -1
  372. package/dist/fields/hooks/beforeValidate/index.d.ts.map +1 -1
  373. package/dist/fields/hooks/beforeValidate/index.js.map +1 -1
  374. package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
  375. package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
  376. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
  377. package/dist/fields/hooks/beforeValidate/traverseFields.js.map +1 -1
  378. package/dist/fields/mergeBaseFields.js.map +1 -1
  379. package/dist/fields/setDefaultBeforeDuplicate.js.map +1 -1
  380. package/dist/fields/sortableFieldTypes.js.map +1 -1
  381. package/dist/fields/validations.d.ts +6 -7
  382. package/dist/fields/validations.d.ts.map +1 -1
  383. package/dist/fields/validations.js +1 -1
  384. package/dist/fields/validations.js.map +1 -1
  385. package/dist/fields/validations.spec.js.map +1 -1
  386. package/dist/globals/config/client.d.ts +2 -2
  387. package/dist/globals/config/client.js.map +1 -1
  388. package/dist/globals/config/sanitize.d.ts.map +1 -1
  389. package/dist/globals/config/sanitize.js.map +1 -1
  390. package/dist/globals/config/schema.js.map +1 -1
  391. package/dist/globals/config/types.d.ts +2 -3
  392. package/dist/globals/config/types.d.ts.map +1 -1
  393. package/dist/globals/config/types.js.map +1 -1
  394. package/dist/globals/operations/docAccess.d.ts.map +1 -1
  395. package/dist/globals/operations/docAccess.js.map +1 -1
  396. package/dist/globals/operations/findOne.d.ts.map +1 -1
  397. package/dist/globals/operations/findOne.js.map +1 -1
  398. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  399. package/dist/globals/operations/findVersionByID.js.map +1 -1
  400. package/dist/globals/operations/findVersions.d.ts.map +1 -1
  401. package/dist/globals/operations/findVersions.js.map +1 -1
  402. package/dist/globals/operations/local/findOne.d.ts +7 -6
  403. package/dist/globals/operations/local/findOne.d.ts.map +1 -1
  404. package/dist/globals/operations/local/findOne.js.map +1 -1
  405. package/dist/globals/operations/local/findVersionByID.d.ts +7 -6
  406. package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
  407. package/dist/globals/operations/local/findVersionByID.js.map +1 -1
  408. package/dist/globals/operations/local/findVersions.d.ts +7 -6
  409. package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
  410. package/dist/globals/operations/local/findVersions.js.map +1 -1
  411. package/dist/globals/operations/local/index.js.map +1 -1
  412. package/dist/globals/operations/local/restoreVersion.d.ts +7 -6
  413. package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
  414. package/dist/globals/operations/local/restoreVersion.js.map +1 -1
  415. package/dist/globals/operations/local/update.d.ts +7 -6
  416. package/dist/globals/operations/local/update.d.ts.map +1 -1
  417. package/dist/globals/operations/local/update.js.map +1 -1
  418. package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
  419. package/dist/globals/operations/restoreVersion.js.map +1 -1
  420. package/dist/globals/operations/update.d.ts +5 -7
  421. package/dist/globals/operations/update.d.ts.map +1 -1
  422. package/dist/globals/operations/update.js.map +1 -1
  423. package/dist/index.d.ts +55 -44
  424. package/dist/index.d.ts.map +1 -1
  425. package/dist/index.js +2 -3
  426. package/dist/index.js.map +1 -1
  427. package/dist/preferences/deleteUserPreferences.js.map +1 -1
  428. package/dist/preferences/operations/delete.js.map +1 -1
  429. package/dist/preferences/operations/findOne.d.ts +2 -2
  430. package/dist/preferences/operations/findOne.d.ts.map +1 -1
  431. package/dist/preferences/operations/findOne.js.map +1 -1
  432. package/dist/preferences/operations/update.js.map +1 -1
  433. package/dist/preferences/preferencesCollection.js.map +1 -1
  434. package/dist/preferences/requestHandlers/delete.js.map +1 -1
  435. package/dist/preferences/requestHandlers/findOne.js.map +1 -1
  436. package/dist/preferences/requestHandlers/update.js.map +1 -1
  437. package/dist/preferences/types.js.map +1 -1
  438. package/dist/translations/getLocalI18n.js.map +1 -1
  439. package/dist/types/constants.js.map +1 -1
  440. package/dist/types/index.d.ts +3 -4
  441. package/dist/types/index.d.ts.map +1 -1
  442. package/dist/types/index.js.map +1 -1
  443. package/dist/uploads/canResizeImage.js.map +1 -1
  444. package/dist/uploads/cropImage.js +3 -3
  445. package/dist/uploads/cropImage.js.map +1 -1
  446. package/dist/uploads/deleteAssociatedFiles.js.map +1 -1
  447. package/dist/uploads/docWithFilenameExists.d.ts.map +1 -1
  448. package/dist/uploads/docWithFilenameExists.js.map +1 -1
  449. package/dist/uploads/fileExists.d.ts.map +1 -1
  450. package/dist/uploads/fileExists.js.map +1 -1
  451. package/dist/uploads/formatFilesize.js.map +1 -1
  452. package/dist/uploads/generateFileData.d.ts.map +1 -1
  453. package/dist/uploads/generateFileData.js.map +1 -1
  454. package/dist/uploads/getBaseFields.js.map +1 -1
  455. package/dist/uploads/getExternalFile.d.ts.map +1 -1
  456. package/dist/uploads/getExternalFile.js.map +1 -1
  457. package/dist/uploads/getFileByPath.d.ts +1 -1
  458. package/dist/uploads/getFileByPath.d.ts.map +1 -1
  459. package/dist/uploads/getFileByPath.js.map +1 -1
  460. package/dist/uploads/getImageSize.js.map +1 -1
  461. package/dist/uploads/getSafeFilename.js.map +1 -1
  462. package/dist/uploads/imageResizer.js.map +1 -1
  463. package/dist/uploads/isImage.js.map +1 -1
  464. package/dist/uploads/mimeTypeValidator.js.map +1 -1
  465. package/dist/uploads/mimeTypeValidator.spec.js.map +1 -1
  466. package/dist/uploads/saveBufferToFile.d.ts +0 -1
  467. package/dist/uploads/saveBufferToFile.d.ts.map +1 -1
  468. package/dist/uploads/saveBufferToFile.js.map +1 -1
  469. package/dist/uploads/tempFile.js.map +1 -1
  470. package/dist/uploads/types.d.ts +74 -7
  471. package/dist/uploads/types.d.ts.map +1 -1
  472. package/dist/uploads/types.js.map +1 -1
  473. package/dist/uploads/unlinkTempFiles.js.map +1 -1
  474. package/dist/uploads/uploadFiles.d.ts.map +1 -1
  475. package/dist/uploads/uploadFiles.js.map +1 -1
  476. package/dist/utilities/checkDuplicateCollections.js.map +1 -1
  477. package/dist/utilities/combineMerge.js.map +1 -1
  478. package/dist/utilities/commitTransaction.js.map +1 -1
  479. package/dist/utilities/configToJSONSchema.js.map +1 -1
  480. package/dist/utilities/configToJSONSchema.spec.js.map +1 -1
  481. package/dist/utilities/convertData.js.map +1 -1
  482. package/dist/utilities/createArrayFromCommaDelineated.js.map +1 -1
  483. package/dist/utilities/createLocalReq.js.map +1 -1
  484. package/dist/utilities/deepCopyObject.js.map +1 -1
  485. package/dist/utilities/deepMerge.js.map +1 -1
  486. package/dist/utilities/dependencies/getDependencies.d.ts.map +1 -1
  487. package/dist/utilities/dependencies/getDependencies.js +21 -4
  488. package/dist/utilities/dependencies/getDependencies.js.map +1 -1
  489. package/dist/utilities/dependencies/isError.js.map +1 -1
  490. package/dist/utilities/dependencies/realPath.d.ts +0 -1
  491. package/dist/utilities/dependencies/realPath.d.ts.map +1 -1
  492. package/dist/utilities/dependencies/realPath.js.map +1 -1
  493. package/dist/utilities/dependencies/resolveFrom.js.map +1 -1
  494. package/dist/utilities/fieldSchemaToJSON.d.ts.map +1 -1
  495. package/dist/utilities/fieldSchemaToJSON.js.map +1 -1
  496. package/dist/utilities/flattenTopLevelFields.js.map +1 -1
  497. package/dist/utilities/formatLabels.js.map +1 -1
  498. package/dist/utilities/formatLabels.spec.js.map +1 -1
  499. package/dist/utilities/getCSSVariable.js.map +1 -1
  500. package/dist/utilities/getCollectionIDFieldTypes.js.map +1 -1
  501. package/dist/utilities/getEntityPolicies.js.map +1 -1
  502. package/dist/utilities/getObjectDotNotation.d.ts.map +1 -1
  503. package/dist/utilities/getObjectDotNotation.js.map +1 -1
  504. package/dist/utilities/getUniqueListBy.js.map +1 -1
  505. package/dist/utilities/importWithoutClientFiles.d.ts.map +1 -1
  506. package/dist/utilities/importWithoutClientFiles.js.map +1 -1
  507. package/dist/utilities/initTransaction.js.map +1 -1
  508. package/dist/utilities/isEntityHidden.d.ts +2 -2
  509. package/dist/utilities/isEntityHidden.js.map +1 -1
  510. package/dist/utilities/isNumber.js.map +1 -1
  511. package/dist/utilities/isPlainObject.js.map +1 -1
  512. package/dist/utilities/isReactComponent.js.map +1 -1
  513. package/dist/utilities/isValidID.d.ts +1 -1
  514. package/dist/utilities/isValidID.js.map +1 -1
  515. package/dist/utilities/isolateObjectProperty.js.map +1 -1
  516. package/dist/utilities/killTransaction.js.map +1 -1
  517. package/dist/utilities/logger.d.ts.map +1 -1
  518. package/dist/utilities/logger.js.map +1 -1
  519. package/dist/utilities/mapAsync.js.map +1 -1
  520. package/dist/utilities/mergeListSearchAndWhere.js.map +1 -1
  521. package/dist/utilities/overwriteMerge.js.map +1 -1
  522. package/dist/utilities/parseCookies.d.ts +1 -1
  523. package/dist/utilities/parseCookies.d.ts.map +1 -1
  524. package/dist/utilities/parseCookies.js.map +1 -1
  525. package/dist/utilities/sanitizeInternalFields.d.ts.map +1 -1
  526. package/dist/utilities/sanitizeInternalFields.js.map +1 -1
  527. package/dist/utilities/setsAreEqual.d.ts.map +1 -1
  528. package/dist/utilities/setsAreEqual.js.map +1 -1
  529. package/dist/utilities/telemetry/events/adminInit.js.map +1 -1
  530. package/dist/utilities/telemetry/events/serverInit.d.ts.map +1 -1
  531. package/dist/utilities/telemetry/events/serverInit.js.map +1 -1
  532. package/dist/utilities/telemetry/index.d.ts +1 -1
  533. package/dist/utilities/telemetry/index.d.ts.map +1 -1
  534. package/dist/utilities/telemetry/index.js.map +1 -1
  535. package/dist/utilities/telemetry/oneWayHash.d.ts +0 -1
  536. package/dist/utilities/telemetry/oneWayHash.d.ts.map +1 -1
  537. package/dist/utilities/telemetry/oneWayHash.js.map +1 -1
  538. package/dist/utilities/timestamp.js.map +1 -1
  539. package/dist/utilities/toKebabCase.js.map +1 -1
  540. package/dist/utilities/wait.js.map +1 -1
  541. package/dist/utilities/wordBoundariesRegex.js.map +1 -1
  542. package/dist/versions/baseFields.js.map +1 -1
  543. package/dist/versions/buildCollectionFields.js.map +1 -1
  544. package/dist/versions/buildGlobalFields.js.map +1 -1
  545. package/dist/versions/defaults.js.map +1 -1
  546. package/dist/versions/deleteCollectionVersions.d.ts.map +1 -1
  547. package/dist/versions/deleteCollectionVersions.js.map +1 -1
  548. package/dist/versions/drafts/appendVersionToQueryKey.js.map +1 -1
  549. package/dist/versions/drafts/getQueryDraftsSort.js.map +1 -1
  550. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts.map +1 -1
  551. package/dist/versions/drafts/replaceWithDraftIfAvailable.js.map +1 -1
  552. package/dist/versions/enforceMaxVersions.d.ts.map +1 -1
  553. package/dist/versions/enforceMaxVersions.js.map +1 -1
  554. package/dist/versions/getLatestCollectionVersion.d.ts.map +1 -1
  555. package/dist/versions/getLatestCollectionVersion.js.map +1 -1
  556. package/dist/versions/getLatestGlobalVersion.d.ts.map +1 -1
  557. package/dist/versions/getLatestGlobalVersion.js.map +1 -1
  558. package/dist/versions/saveVersion.d.ts.map +1 -1
  559. package/dist/versions/saveVersion.js.map +1 -1
  560. package/dist/versions/types.js.map +1 -1
  561. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/fields/hooks/beforeChange/cloneDataFromOriginalDoc.ts"],"sourcesContent":["export const cloneDataFromOriginalDoc = (originalDocData: unknown): unknown => {\n if (Array.isArray(originalDocData)) {\n return originalDocData.map((row) => {\n if (typeof row === 'object' && row != null) {\n return {\n ...row,\n }\n }\n\n return row\n })\n }\n\n if (typeof originalDocData === 'object' && originalDocData !== null) {\n return { ...originalDocData }\n }\n\n return originalDocData\n}\n"],"names":["cloneDataFromOriginalDoc","originalDocData","Array","isArray","map","row"],"rangeMappings":";;;;;;;;;;;;;;;;;","mappings":"AAAA,OAAO,MAAMA,2BAA2B,CAACC;IACvC,IAAIC,MAAMC,OAAO,CAACF,kBAAkB;QAClC,OAAOA,gBAAgBG,GAAG,CAAC,CAACC;YAC1B,IAAI,OAAOA,QAAQ,YAAYA,OAAO,MAAM;gBAC1C,OAAO;oBACL,GAAGA,GAAG;gBACR;YACF;YAEA,OAAOA;QACT;IACF;IAEA,IAAI,OAAOJ,oBAAoB,YAAYA,oBAAoB,MAAM;QACnE,OAAO;YAAE,GAAGA,eAAe;QAAC;IAC9B;IAEA,OAAOA;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../../src/fields/hooks/beforeChange/cloneDataFromOriginalDoc.ts"],"sourcesContent":["export const cloneDataFromOriginalDoc = (originalDocData: unknown): unknown => {\n if (Array.isArray(originalDocData)) {\n return originalDocData.map((row) => {\n if (typeof row === 'object' && row != null) {\n return {\n ...row,\n }\n }\n\n return row\n })\n }\n\n if (typeof originalDocData === 'object' && originalDocData !== null) {\n return { ...originalDocData }\n }\n\n return originalDocData\n}\n"],"names":["cloneDataFromOriginalDoc","originalDocData","Array","isArray","map","row"],"mappings":"AAAA,OAAO,MAAMA,2BAA2B,CAACC;IACvC,IAAIC,MAAMC,OAAO,CAACF,kBAAkB;QAClC,OAAOA,gBAAgBG,GAAG,CAAC,CAACC;YAC1B,IAAI,OAAOA,QAAQ,YAAYA,OAAO,MAAM;gBAC1C,OAAO;oBACL,GAAGA,GAAG;gBACR;YACF;YAEA,OAAOA;QACT;IACF;IAEA,IAAI,OAAOJ,oBAAoB,YAAYA,oBAAoB,MAAM;QACnE,OAAO;YAAE,GAAGA,eAAe;QAAC;IAC9B;IAEA,OAAOA;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getExistingRowDoc.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/beforeChange/getExistingRowDoc.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,iBAAiB,gBACf,OAAO,MAAM,EAAE,OAAO,CAAC,iBACrB,OAAO,KACrB,OAAO,MAAM,EAAE,OAAO,CAcxB,CAAA"}
1
+ {"version":3,"file":"getExistingRowDoc.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/beforeChange/getExistingRowDoc.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,iBAAiB,gBACf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,iBACrB,OAAO,KACrB,MAAM,CAAC,MAAM,EAAE,OAAO,CAcxB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/fields/hooks/beforeChange/getExistingRowDoc.ts"],"sourcesContent":["/**\n * If there is an incoming row id,\n * and it matches the existing sibling doc id,\n * this is an existing row, so it should be merged.\n * Otherwise, return an empty object.\n */\n\nexport const getExistingRowDoc = (\n incomingRow: Record<string, unknown>,\n existingRows?: unknown,\n): Record<string, unknown> => {\n if (incomingRow.id && Array.isArray(existingRows)) {\n const matchedExistingRow = existingRows.find((existingRow) => {\n if (typeof existingRow === 'object' && 'id' in existingRow) {\n if (existingRow.id === incomingRow.id) return existingRow\n }\n\n return false\n })\n\n if (matchedExistingRow) return matchedExistingRow\n }\n\n return {}\n}\n"],"names":["getExistingRowDoc","incomingRow","existingRows","id","Array","isArray","matchedExistingRow","find","existingRow"],"rangeMappings":";;;;;;;;;;;;;;;;","mappings":"AAAA;;;;;CAKC,GAED,OAAO,MAAMA,oBAAoB,CAC/BC,aACAC;IAEA,IAAID,YAAYE,EAAE,IAAIC,MAAMC,OAAO,CAACH,eAAe;QACjD,MAAMI,qBAAqBJ,aAAaK,IAAI,CAAC,CAACC;YAC5C,IAAI,OAAOA,gBAAgB,YAAY,QAAQA,aAAa;gBAC1D,IAAIA,YAAYL,EAAE,KAAKF,YAAYE,EAAE,EAAE,OAAOK;YAChD;YAEA,OAAO;QACT;QAEA,IAAIF,oBAAoB,OAAOA;IACjC;IAEA,OAAO,CAAC;AACV,EAAC"}
1
+ {"version":3,"sources":["../../../../src/fields/hooks/beforeChange/getExistingRowDoc.ts"],"sourcesContent":["/**\n * If there is an incoming row id,\n * and it matches the existing sibling doc id,\n * this is an existing row, so it should be merged.\n * Otherwise, return an empty object.\n */\n\nexport const getExistingRowDoc = (\n incomingRow: Record<string, unknown>,\n existingRows?: unknown,\n): Record<string, unknown> => {\n if (incomingRow.id && Array.isArray(existingRows)) {\n const matchedExistingRow = existingRows.find((existingRow) => {\n if (typeof existingRow === 'object' && 'id' in existingRow) {\n if (existingRow.id === incomingRow.id) return existingRow\n }\n\n return false\n })\n\n if (matchedExistingRow) return matchedExistingRow\n }\n\n return {}\n}\n"],"names":["getExistingRowDoc","incomingRow","existingRows","id","Array","isArray","matchedExistingRow","find","existingRow"],"mappings":"AAAA;;;;;CAKC,GAED,OAAO,MAAMA,oBAAoB,CAC/BC,aACAC;IAEA,IAAID,YAAYE,EAAE,IAAIC,MAAMC,OAAO,CAACH,eAAe;QACjD,MAAMI,qBAAqBJ,aAAaK,IAAI,CAAC,CAACC;YAC5C,IAAI,OAAOA,gBAAgB,YAAY,QAAQA,aAAa;gBAC1D,IAAIA,YAAYL,EAAE,KAAKF,YAAYE,EAAE,EAAE,OAAOK;YAChD;YAEA,OAAO;QACT;QAEA,IAAIF,oBAAoB,OAAOA;IACjC;IAEA,OAAO,CAAC;AACV,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/beforeChange/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAMhG,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,UAAU,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;IACjC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;IAChC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,EAAE,SAAS,CAAA;IACpB,GAAG,EAAE,sBAAsB,CAAA;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,gKAYtB,KAAK,CAAC,CAAC,KAAG,QAAQ,CAAC,CAqCrB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/beforeChange/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAMhG,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,UAAU,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;IACjC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;IAChC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,EAAE,SAAS,CAAA;IACpB,GAAG,EAAE,sBAAsB,CAAA;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GAAU,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,4HAYjE,IAAI,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,CAqCrB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/fields/hooks/beforeChange/index.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../../../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../../globals/config/types.js'\nimport type { Operation, PayloadRequestWithData, RequestContext } from '../../../types/index.js'\n\nimport { ValidationError } from '../../../errors/index.js'\nimport { deepCopyObject } from '../../../utilities/deepCopyObject.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype Args<T> = {\n collection: SanitizedCollectionConfig | null\n context: RequestContext\n data: Record<string, unknown> | T\n doc: Record<string, unknown> | T\n docWithLocales: Record<string, unknown>\n duplicate?: boolean\n global: SanitizedGlobalConfig | null\n id?: number | string\n operation: Operation\n req: PayloadRequestWithData\n skipValidation?: boolean\n}\n\n/**\n * This function is responsible for the following actions, in order:\n * - Run condition\n * - Execute field hooks\n * - Validate data\n * - Transform data for storage\n * - beforeDuplicate hooks (if duplicate)\n * - Unflatten locales. The input `data` is the normal document for one locale. The output result will become the document with locales.\n */\nexport const beforeChange = async <T extends Record<string, unknown>>({\n id,\n collection,\n context,\n data: incomingData,\n doc,\n docWithLocales,\n duplicate = false,\n global,\n operation,\n req,\n skipValidation,\n}: Args<T>): Promise<T> => {\n const data = deepCopyObject(incomingData)\n const mergeLocaleActions = []\n const errors: { field: string; message: string }[] = []\n\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n fields: collection?.fields || global?.fields,\n global,\n mergeLocaleActions,\n operation,\n path: [],\n req,\n schemaPath: [],\n siblingData: data,\n siblingDoc: doc,\n siblingDocWithLocales: docWithLocales,\n skipValidation,\n })\n\n if (errors.length > 0) {\n throw new ValidationError(errors, req.t)\n }\n\n await mergeLocaleActions.reduce(async (priorAction, action) => {\n await priorAction\n await action()\n }, Promise.resolve())\n\n return data\n}\n"],"names":["ValidationError","deepCopyObject","traverseFields","beforeChange","id","collection","context","data","incomingData","doc","docWithLocales","duplicate","global","operation","req","skipValidation","mergeLocaleActions","errors","fields","path","schemaPath","siblingData","siblingDoc","siblingDocWithLocales","length","t","reduce","priorAction","action","Promise","resolve"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAIA,SAASA,eAAe,QAAQ,2BAA0B;AAC1D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,cAAc,QAAQ,sBAAqB;AAgBpD;;;;;;;;CAQC,GACD,OAAO,MAAMC,eAAe,OAA0C,EACpEC,EAAE,EACFC,UAAU,EACVC,OAAO,EACPC,MAAMC,YAAY,EAClBC,GAAG,EACHC,cAAc,EACdC,YAAY,KAAK,EACjBC,MAAM,EACNC,SAAS,EACTC,GAAG,EACHC,cAAc,EACN;IACR,MAAMR,OAAON,eAAeO;IAC5B,MAAMQ,qBAAqB,EAAE;IAC7B,MAAMC,SAA+C,EAAE;IAEvD,MAAMf,eAAe;QACnBE;QACAC;QACAC;QACAC;QACAE;QACAC;QACAC;QACAM;QACAC,QAAQb,YAAYa,UAAUN,QAAQM;QACtCN;QACAI;QACAH;QACAM,MAAM,EAAE;QACRL;QACAM,YAAY,EAAE;QACdC,aAAad;QACbe,YAAYb;QACZc,uBAAuBb;QACvBK;IACF;IAEA,IAAIE,OAAOO,MAAM,GAAG,GAAG;QACrB,MAAM,IAAIxB,gBAAgBiB,QAAQH,IAAIW,CAAC;IACzC;IAEA,MAAMT,mBAAmBU,MAAM,CAAC,OAAOC,aAAaC;QAClD,MAAMD;QACN,MAAMC;IACR,GAAGC,QAAQC,OAAO;IAElB,OAAOvB;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../../src/fields/hooks/beforeChange/index.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../../../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../../globals/config/types.js'\nimport type { Operation, PayloadRequestWithData, RequestContext } from '../../../types/index.js'\n\nimport { ValidationError } from '../../../errors/index.js'\nimport { deepCopyObject } from '../../../utilities/deepCopyObject.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype Args<T> = {\n collection: SanitizedCollectionConfig | null\n context: RequestContext\n data: Record<string, unknown> | T\n doc: Record<string, unknown> | T\n docWithLocales: Record<string, unknown>\n duplicate?: boolean\n global: SanitizedGlobalConfig | null\n id?: number | string\n operation: Operation\n req: PayloadRequestWithData\n skipValidation?: boolean\n}\n\n/**\n * This function is responsible for the following actions, in order:\n * - Run condition\n * - Execute field hooks\n * - Validate data\n * - Transform data for storage\n * - beforeDuplicate hooks (if duplicate)\n * - Unflatten locales. The input `data` is the normal document for one locale. The output result will become the document with locales.\n */\nexport const beforeChange = async <T extends Record<string, unknown>>({\n id,\n collection,\n context,\n data: incomingData,\n doc,\n docWithLocales,\n duplicate = false,\n global,\n operation,\n req,\n skipValidation,\n}: Args<T>): Promise<T> => {\n const data = deepCopyObject(incomingData)\n const mergeLocaleActions = []\n const errors: { field: string; message: string }[] = []\n\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n fields: collection?.fields || global?.fields,\n global,\n mergeLocaleActions,\n operation,\n path: [],\n req,\n schemaPath: [],\n siblingData: data,\n siblingDoc: doc,\n siblingDocWithLocales: docWithLocales,\n skipValidation,\n })\n\n if (errors.length > 0) {\n throw new ValidationError(errors, req.t)\n }\n\n await mergeLocaleActions.reduce(async (priorAction, action) => {\n await priorAction\n await action()\n }, Promise.resolve())\n\n return data\n}\n"],"names":["ValidationError","deepCopyObject","traverseFields","beforeChange","id","collection","context","data","incomingData","doc","docWithLocales","duplicate","global","operation","req","skipValidation","mergeLocaleActions","errors","fields","path","schemaPath","siblingData","siblingDoc","siblingDocWithLocales","length","t","reduce","priorAction","action","Promise","resolve"],"mappings":"AAIA,SAASA,eAAe,QAAQ,2BAA0B;AAC1D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,cAAc,QAAQ,sBAAqB;AAgBpD;;;;;;;;CAQC,GACD,OAAO,MAAMC,eAAe,OAA0C,EACpEC,EAAE,EACFC,UAAU,EACVC,OAAO,EACPC,MAAMC,YAAY,EAClBC,GAAG,EACHC,cAAc,EACdC,YAAY,KAAK,EACjBC,MAAM,EACNC,SAAS,EACTC,GAAG,EACHC,cAAc,EACN;IACR,MAAMR,OAAON,eAAeO;IAC5B,MAAMQ,qBAAqB,EAAE;IAC7B,MAAMC,SAA+C,EAAE;IAEvD,MAAMf,eAAe;QACnBE;QACAC;QACAC;QACAC;QACAE;QACAC;QACAC;QACAM;QACAC,QAAQb,YAAYa,UAAUN,QAAQM;QACtCN;QACAI;QACAH;QACAM,MAAM,EAAE;QACRL;QACAM,YAAY,EAAE;QACdC,aAAad;QACbe,YAAYb;QACZc,uBAAuBb;QACvBK;IACF;IAEA,IAAIE,OAAOO,MAAM,GAAG,GAAG;QACrB,MAAM,IAAIxB,gBAAgBiB,QAAQH,IAAIW,CAAC;IACzC;IAEA,MAAMT,mBAAmBU,MAAM,CAAC,OAAOC,aAAaC;QAClD,MAAMD;QACN,MAAMC;IACR,GAAGC,QAAQC,OAAO;IAElB,OAAOvB;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/beforeChange/promise.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAChG,OAAO,KAAK,EAAE,KAAK,EAAiB,UAAU,EAAmB,MAAM,uBAAuB,CAAA;AAS9F,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,SAAS,EAAE,OAAO,CAAA;IAClB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC5C,KAAK,EAAE,KAAK,GAAG,UAAU,CAAA;IACzB,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,kBAAkB,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAA;IAC3C,SAAS,EAAE,SAAS,CAAA;IACpB;;OAEG;IACH,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IAC/B;;OAEG;IACH,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,GAAG,EAAE,sBAAsB,CAAA;IAC3B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/C,cAAc,EAAE,OAAO,CAAA;CACxB,CAAA;AAUD,eAAO,MAAM,OAAO,gOAoBjB,IAAI,KAAG,QAAQ,IAAI,CAmarB,CAAA"}
1
+ {"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/beforeChange/promise.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAChG,OAAO,KAAK,EAAE,KAAK,EAAiB,UAAU,EAAmB,MAAM,uBAAuB,CAAA;AAS9F,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,SAAS,EAAE,OAAO,CAAA;IAClB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC5C,KAAK,EAAE,KAAK,GAAG,UAAU,CAAA;IACzB,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,kBAAkB,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAA;IAC3C,SAAS,EAAE,SAAS,CAAA;IACpB;;OAEG;IACH,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IAC/B;;OAEG;IACH,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,GAAG,EAAE,sBAAsB,CAAA;IAC3B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/C,cAAc,EAAE,OAAO,CAAA;CACxB,CAAA;AAUD,eAAO,MAAM,OAAO,gOAoBjB,IAAI,KAAG,OAAO,CAAC,IAAI,CAmarB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/fields/hooks/beforeChange/promise.ts"],"sourcesContent":["import merge from 'deepmerge'\n\nimport type { RichTextAdapter } from '../../../admin/RichText.js'\nimport type { SanitizedCollectionConfig } from '../../../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../../globals/config/types.js'\nimport type { Operation, PayloadRequestWithData, RequestContext } from '../../../types/index.js'\nimport type { Field, FieldHookArgs, TabAsField, ValidateOptions } from '../../config/types.js'\n\nimport { MissingEditorProp } from '../../../errors/index.js'\nimport { fieldAffectsData, tabHasName } from '../../config/types.js'\nimport { getFieldPaths } from '../../getFieldPaths.js'\nimport { beforeDuplicate } from './beforeDuplicate.js'\nimport { getExistingRowDoc } from './getExistingRowDoc.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype Args = {\n collection: SanitizedCollectionConfig | null\n context: RequestContext\n data: Record<string, unknown>\n doc: Record<string, unknown>\n docWithLocales: Record<string, unknown>\n duplicate: boolean\n errors: { field: string; message: string }[]\n field: Field | TabAsField\n global: SanitizedGlobalConfig | null\n id?: number | string\n mergeLocaleActions: (() => Promise<void>)[]\n operation: Operation\n /**\n * The parent's path.\n */\n parentPath: (number | string)[]\n /**\n * The parent's schemaPath (path without indexes).\n */\n parentSchemaPath: string[]\n req: PayloadRequestWithData\n siblingData: Record<string, unknown>\n siblingDoc: Record<string, unknown>\n siblingDocWithLocales?: Record<string, unknown>\n skipValidation: boolean\n}\n\n// This function is responsible for the following actions, in order:\n// - Run condition\n// - Execute field hooks\n// - Validate data\n// - Transform data for storage\n// - beforeDuplicate hooks (if duplicate)\n// - Unflatten locales\n\nexport const promise = async ({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n field,\n global,\n mergeLocaleActions,\n operation,\n parentPath,\n parentSchemaPath,\n req,\n siblingData,\n siblingDoc,\n siblingDocWithLocales,\n skipValidation,\n}: Args): Promise<void> => {\n const passesCondition = field.admin?.condition\n ? Boolean(field.admin.condition(data, siblingData, { user: req.user }))\n : true\n let skipValidationFromHere = skipValidation || !passesCondition\n const { localization } = req.payload.config\n const defaultLocale = localization ? localization?.defaultLocale : 'en'\n const operationLocale = req.locale || defaultLocale\n\n const { path: fieldPath, schemaPath: fieldSchemaPath } = getFieldPaths({\n field,\n parentPath,\n parentSchemaPath,\n })\n\n if (fieldAffectsData(field)) {\n // skip validation if the field is localized and the incoming data is null\n if (field.localized && operationLocale !== defaultLocale) {\n if (['array', 'blocks'].includes(field.type) && siblingData[field.name] === null) {\n skipValidationFromHere = true\n }\n }\n\n // Execute hooks\n if (field.hooks?.beforeChange) {\n await field.hooks.beforeChange.reduce(async (priorHook, currentHook) => {\n await priorHook\n\n const hookedValue = await currentHook({\n collection,\n context,\n data,\n field,\n global,\n operation,\n originalDoc: doc,\n path: fieldPath,\n previousSiblingDoc: siblingDoc,\n previousValue: siblingDoc[field.name],\n req,\n schemaPath: parentSchemaPath,\n siblingData,\n siblingDocWithLocales,\n value: siblingData[field.name],\n })\n\n if (hookedValue !== undefined) {\n siblingData[field.name] = hookedValue\n }\n }, Promise.resolve())\n }\n\n // Validate\n if (!skipValidationFromHere && field.validate) {\n const valueToValidate = siblingData[field.name]\n let jsonError: object\n\n if (field.type === 'json' && typeof siblingData[field.name] === 'string') {\n try {\n JSON.parse(siblingData[field.name] as string)\n } catch (e) {\n jsonError = e\n }\n }\n\n const validationResult = await field.validate(valueToValidate, {\n ...field,\n id,\n data: merge(doc, data, { arrayMerge: (_, source) => source }),\n jsonError,\n operation,\n preferences: { fields: {} },\n req,\n siblingData: merge(siblingDoc, siblingData, { arrayMerge: (_, source) => source }),\n } as ValidateOptions<any, any, { jsonError: object }>)\n\n if (typeof validationResult === 'string') {\n errors.push({\n field: fieldPath.join('.'),\n message: validationResult,\n })\n }\n }\n\n const beforeDuplicateArgs: FieldHookArgs = {\n collection,\n context,\n data,\n field,\n global: undefined,\n path: fieldPath,\n previousSiblingDoc: siblingDoc,\n previousValue: siblingDoc[field.name],\n req,\n schemaPath: parentSchemaPath,\n siblingData,\n siblingDocWithLocales,\n value: siblingData[field.name],\n }\n\n // Push merge locale action if applicable\n if (localization && field.localized) {\n mergeLocaleActions.push(async () => {\n const localeData = await localization.localeCodes.reduce(\n async (localizedValuesPromise: Promise<Record<string, unknown>>, locale) => {\n const localizedValues = await localizedValuesPromise\n let fieldValue =\n locale === req.locale\n ? siblingData[field.name]\n : siblingDocWithLocales?.[field.name]?.[locale]\n\n if (duplicate && field.hooks?.beforeDuplicate?.length) {\n beforeDuplicateArgs.value = fieldValue\n fieldValue = await beforeDuplicate(beforeDuplicateArgs)\n }\n\n // const result = await localizedValues\n // update locale value if it's not undefined\n if (typeof fieldValue !== 'undefined') {\n return {\n ...localizedValues,\n [locale]: fieldValue,\n }\n }\n\n return localizedValuesPromise\n },\n Promise.resolve({}),\n )\n\n // If there are locales with data, set the data\n if (Object.keys(localeData).length > 0) {\n siblingData[field.name] = localeData\n }\n })\n } else if (duplicate && field.hooks?.beforeDuplicate?.length) {\n mergeLocaleActions.push(async () => {\n siblingData[field.name] = await beforeDuplicate(beforeDuplicateArgs)\n })\n }\n }\n\n switch (field.type) {\n case 'point': {\n // Transform point data for storage\n if (\n Array.isArray(siblingData[field.name]) &&\n siblingData[field.name][0] !== null &&\n siblingData[field.name][1] !== null\n ) {\n siblingData[field.name] = {\n type: 'Point',\n coordinates: [\n parseFloat(siblingData[field.name][0]),\n parseFloat(siblingData[field.name][1]),\n ],\n }\n }\n\n break\n }\n\n case 'group': {\n if (typeof siblingData[field.name] !== 'object') siblingData[field.name] = {}\n if (typeof siblingDoc[field.name] !== 'object') siblingDoc[field.name] = {}\n if (typeof siblingDocWithLocales[field.name] !== 'object')\n siblingDocWithLocales[field.name] = {}\n\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n fields: field.fields,\n global,\n mergeLocaleActions,\n operation,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData: siblingData[field.name] as Record<string, unknown>,\n siblingDoc: siblingDoc[field.name] as Record<string, unknown>,\n siblingDocWithLocales: siblingDocWithLocales[field.name] as Record<string, unknown>,\n skipValidation: skipValidationFromHere,\n })\n\n break\n }\n\n case 'array': {\n const rows = siblingData[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n rows.forEach((row, i) => {\n promises.push(\n traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n fields: field.fields,\n global,\n mergeLocaleActions,\n operation,\n path: [...fieldPath, i],\n req,\n schemaPath: fieldSchemaPath,\n siblingData: row,\n siblingDoc: getExistingRowDoc(row, siblingDoc[field.name]),\n siblingDocWithLocales: getExistingRowDoc(row, siblingDocWithLocales[field.name]),\n skipValidation: skipValidationFromHere,\n }),\n )\n })\n\n await Promise.all(promises)\n }\n\n break\n }\n\n case 'blocks': {\n const rows = siblingData[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n rows.forEach((row, i) => {\n const rowSiblingDoc = getExistingRowDoc(row, siblingDoc[field.name])\n const rowSiblingDocWithLocales = getExistingRowDoc(row, siblingDocWithLocales[field.name])\n\n const blockTypeToMatch = row.blockType || rowSiblingDoc.blockType\n const block = field.blocks.find((blockType) => blockType.slug === blockTypeToMatch)\n\n if (block) {\n promises.push(\n traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n fields: block.fields,\n global,\n mergeLocaleActions,\n operation,\n path: [...fieldPath, i],\n req,\n schemaPath: fieldSchemaPath,\n siblingData: row,\n siblingDoc: rowSiblingDoc,\n siblingDocWithLocales: rowSiblingDocWithLocales,\n skipValidation: skipValidationFromHere,\n }),\n )\n }\n })\n\n await Promise.all(promises)\n }\n\n break\n }\n\n case 'row':\n case 'collapsible': {\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n fields: field.fields,\n global,\n mergeLocaleActions,\n operation,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData,\n siblingDoc,\n siblingDocWithLocales,\n skipValidation: skipValidationFromHere,\n })\n\n break\n }\n\n case 'tab': {\n let tabSiblingData = siblingData\n let tabSiblingDoc = siblingDoc\n let tabSiblingDocWithLocales = siblingDocWithLocales\n\n if (tabHasName(field)) {\n if (typeof siblingData[field.name] !== 'object') siblingData[field.name] = {}\n if (typeof siblingDoc[field.name] !== 'object') siblingDoc[field.name] = {}\n if (typeof siblingDocWithLocales[field.name] !== 'object')\n siblingDocWithLocales[field.name] = {}\n\n tabSiblingData = siblingData[field.name] as Record<string, unknown>\n tabSiblingDoc = siblingDoc[field.name] as Record<string, unknown>\n tabSiblingDocWithLocales = siblingDocWithLocales[field.name] as Record<string, unknown>\n }\n\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n fields: field.fields,\n global,\n mergeLocaleActions,\n operation,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData: tabSiblingData,\n siblingDoc: tabSiblingDoc,\n siblingDocWithLocales: tabSiblingDocWithLocales,\n skipValidation: skipValidationFromHere,\n })\n\n break\n }\n\n case 'tabs': {\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n global,\n mergeLocaleActions,\n operation,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData,\n siblingDoc,\n siblingDocWithLocales,\n skipValidation: skipValidationFromHere,\n })\n\n break\n }\n\n case 'richText': {\n if (!field?.editor) {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n if (typeof field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n const editor: RichTextAdapter = field?.editor\n\n if (editor?.hooks?.beforeChange?.length) {\n await editor.hooks.beforeChange.reduce(async (priorHook, currentHook) => {\n await priorHook\n\n const hookedValue = await currentHook({\n collection,\n context,\n data,\n docWithLocales,\n duplicate,\n errors,\n field,\n global,\n mergeLocaleActions,\n operation,\n originalDoc: doc,\n path: fieldPath,\n previousSiblingDoc: siblingDoc,\n previousValue: siblingDoc[field.name],\n req,\n schemaPath: parentSchemaPath,\n siblingData,\n siblingDocWithLocales,\n skipValidation,\n value: siblingData[field.name],\n })\n\n if (hookedValue !== undefined) {\n siblingData[field.name] = hookedValue\n }\n }, Promise.resolve())\n }\n\n break\n }\n\n default: {\n break\n }\n }\n}\n"],"names":["merge","MissingEditorProp","fieldAffectsData","tabHasName","getFieldPaths","beforeDuplicate","getExistingRowDoc","traverseFields","promise","id","collection","context","data","doc","docWithLocales","duplicate","errors","field","global","mergeLocaleActions","operation","parentPath","parentSchemaPath","req","siblingData","siblingDoc","siblingDocWithLocales","skipValidation","passesCondition","admin","condition","Boolean","user","skipValidationFromHere","localization","payload","config","defaultLocale","operationLocale","locale","path","fieldPath","schemaPath","fieldSchemaPath","localized","includes","type","name","hooks","beforeChange","reduce","priorHook","currentHook","hookedValue","originalDoc","previousSiblingDoc","previousValue","value","undefined","Promise","resolve","validate","valueToValidate","jsonError","JSON","parse","e","validationResult","arrayMerge","_","source","preferences","fields","push","join","message","beforeDuplicateArgs","localeData","localeCodes","localizedValuesPromise","localizedValues","fieldValue","length","Object","keys","Array","isArray","coordinates","parseFloat","rows","promises","forEach","row","i","all","rowSiblingDoc","rowSiblingDocWithLocales","blockTypeToMatch","blockType","block","blocks","find","slug","tabSiblingData","tabSiblingDoc","tabSiblingDocWithLocales","tabs","map","tab","editor","Error"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/fields/hooks/beforeChange/promise.ts"],"sourcesContent":["import merge from 'deepmerge'\n\nimport type { RichTextAdapter } from '../../../admin/RichText.js'\nimport type { SanitizedCollectionConfig } from '../../../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../../globals/config/types.js'\nimport type { Operation, PayloadRequestWithData, RequestContext } from '../../../types/index.js'\nimport type { Field, FieldHookArgs, TabAsField, ValidateOptions } from '../../config/types.js'\n\nimport { MissingEditorProp } from '../../../errors/index.js'\nimport { fieldAffectsData, tabHasName } from '../../config/types.js'\nimport { getFieldPaths } from '../../getFieldPaths.js'\nimport { beforeDuplicate } from './beforeDuplicate.js'\nimport { getExistingRowDoc } from './getExistingRowDoc.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype Args = {\n collection: SanitizedCollectionConfig | null\n context: RequestContext\n data: Record<string, unknown>\n doc: Record<string, unknown>\n docWithLocales: Record<string, unknown>\n duplicate: boolean\n errors: { field: string; message: string }[]\n field: Field | TabAsField\n global: SanitizedGlobalConfig | null\n id?: number | string\n mergeLocaleActions: (() => Promise<void>)[]\n operation: Operation\n /**\n * The parent's path.\n */\n parentPath: (number | string)[]\n /**\n * The parent's schemaPath (path without indexes).\n */\n parentSchemaPath: string[]\n req: PayloadRequestWithData\n siblingData: Record<string, unknown>\n siblingDoc: Record<string, unknown>\n siblingDocWithLocales?: Record<string, unknown>\n skipValidation: boolean\n}\n\n// This function is responsible for the following actions, in order:\n// - Run condition\n// - Execute field hooks\n// - Validate data\n// - Transform data for storage\n// - beforeDuplicate hooks (if duplicate)\n// - Unflatten locales\n\nexport const promise = async ({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n field,\n global,\n mergeLocaleActions,\n operation,\n parentPath,\n parentSchemaPath,\n req,\n siblingData,\n siblingDoc,\n siblingDocWithLocales,\n skipValidation,\n}: Args): Promise<void> => {\n const passesCondition = field.admin?.condition\n ? Boolean(field.admin.condition(data, siblingData, { user: req.user }))\n : true\n let skipValidationFromHere = skipValidation || !passesCondition\n const { localization } = req.payload.config\n const defaultLocale = localization ? localization?.defaultLocale : 'en'\n const operationLocale = req.locale || defaultLocale\n\n const { path: fieldPath, schemaPath: fieldSchemaPath } = getFieldPaths({\n field,\n parentPath,\n parentSchemaPath,\n })\n\n if (fieldAffectsData(field)) {\n // skip validation if the field is localized and the incoming data is null\n if (field.localized && operationLocale !== defaultLocale) {\n if (['array', 'blocks'].includes(field.type) && siblingData[field.name] === null) {\n skipValidationFromHere = true\n }\n }\n\n // Execute hooks\n if (field.hooks?.beforeChange) {\n await field.hooks.beforeChange.reduce(async (priorHook, currentHook) => {\n await priorHook\n\n const hookedValue = await currentHook({\n collection,\n context,\n data,\n field,\n global,\n operation,\n originalDoc: doc,\n path: fieldPath,\n previousSiblingDoc: siblingDoc,\n previousValue: siblingDoc[field.name],\n req,\n schemaPath: parentSchemaPath,\n siblingData,\n siblingDocWithLocales,\n value: siblingData[field.name],\n })\n\n if (hookedValue !== undefined) {\n siblingData[field.name] = hookedValue\n }\n }, Promise.resolve())\n }\n\n // Validate\n if (!skipValidationFromHere && field.validate) {\n const valueToValidate = siblingData[field.name]\n let jsonError: object\n\n if (field.type === 'json' && typeof siblingData[field.name] === 'string') {\n try {\n JSON.parse(siblingData[field.name] as string)\n } catch (e) {\n jsonError = e\n }\n }\n\n const validationResult = await field.validate(valueToValidate, {\n ...field,\n id,\n data: merge(doc, data, { arrayMerge: (_, source) => source }),\n jsonError,\n operation,\n preferences: { fields: {} },\n req,\n siblingData: merge(siblingDoc, siblingData, { arrayMerge: (_, source) => source }),\n } as ValidateOptions<any, any, { jsonError: object }>)\n\n if (typeof validationResult === 'string') {\n errors.push({\n field: fieldPath.join('.'),\n message: validationResult,\n })\n }\n }\n\n const beforeDuplicateArgs: FieldHookArgs = {\n collection,\n context,\n data,\n field,\n global: undefined,\n path: fieldPath,\n previousSiblingDoc: siblingDoc,\n previousValue: siblingDoc[field.name],\n req,\n schemaPath: parentSchemaPath,\n siblingData,\n siblingDocWithLocales,\n value: siblingData[field.name],\n }\n\n // Push merge locale action if applicable\n if (localization && field.localized) {\n mergeLocaleActions.push(async () => {\n const localeData = await localization.localeCodes.reduce(\n async (localizedValuesPromise: Promise<Record<string, unknown>>, locale) => {\n const localizedValues = await localizedValuesPromise\n let fieldValue =\n locale === req.locale\n ? siblingData[field.name]\n : siblingDocWithLocales?.[field.name]?.[locale]\n\n if (duplicate && field.hooks?.beforeDuplicate?.length) {\n beforeDuplicateArgs.value = fieldValue\n fieldValue = await beforeDuplicate(beforeDuplicateArgs)\n }\n\n // const result = await localizedValues\n // update locale value if it's not undefined\n if (typeof fieldValue !== 'undefined') {\n return {\n ...localizedValues,\n [locale]: fieldValue,\n }\n }\n\n return localizedValuesPromise\n },\n Promise.resolve({}),\n )\n\n // If there are locales with data, set the data\n if (Object.keys(localeData).length > 0) {\n siblingData[field.name] = localeData\n }\n })\n } else if (duplicate && field.hooks?.beforeDuplicate?.length) {\n mergeLocaleActions.push(async () => {\n siblingData[field.name] = await beforeDuplicate(beforeDuplicateArgs)\n })\n }\n }\n\n switch (field.type) {\n case 'point': {\n // Transform point data for storage\n if (\n Array.isArray(siblingData[field.name]) &&\n siblingData[field.name][0] !== null &&\n siblingData[field.name][1] !== null\n ) {\n siblingData[field.name] = {\n type: 'Point',\n coordinates: [\n parseFloat(siblingData[field.name][0]),\n parseFloat(siblingData[field.name][1]),\n ],\n }\n }\n\n break\n }\n\n case 'group': {\n if (typeof siblingData[field.name] !== 'object') siblingData[field.name] = {}\n if (typeof siblingDoc[field.name] !== 'object') siblingDoc[field.name] = {}\n if (typeof siblingDocWithLocales[field.name] !== 'object')\n siblingDocWithLocales[field.name] = {}\n\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n fields: field.fields,\n global,\n mergeLocaleActions,\n operation,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData: siblingData[field.name] as Record<string, unknown>,\n siblingDoc: siblingDoc[field.name] as Record<string, unknown>,\n siblingDocWithLocales: siblingDocWithLocales[field.name] as Record<string, unknown>,\n skipValidation: skipValidationFromHere,\n })\n\n break\n }\n\n case 'array': {\n const rows = siblingData[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n rows.forEach((row, i) => {\n promises.push(\n traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n fields: field.fields,\n global,\n mergeLocaleActions,\n operation,\n path: [...fieldPath, i],\n req,\n schemaPath: fieldSchemaPath,\n siblingData: row,\n siblingDoc: getExistingRowDoc(row, siblingDoc[field.name]),\n siblingDocWithLocales: getExistingRowDoc(row, siblingDocWithLocales[field.name]),\n skipValidation: skipValidationFromHere,\n }),\n )\n })\n\n await Promise.all(promises)\n }\n\n break\n }\n\n case 'blocks': {\n const rows = siblingData[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n rows.forEach((row, i) => {\n const rowSiblingDoc = getExistingRowDoc(row, siblingDoc[field.name])\n const rowSiblingDocWithLocales = getExistingRowDoc(row, siblingDocWithLocales[field.name])\n\n const blockTypeToMatch = row.blockType || rowSiblingDoc.blockType\n const block = field.blocks.find((blockType) => blockType.slug === blockTypeToMatch)\n\n if (block) {\n promises.push(\n traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n fields: block.fields,\n global,\n mergeLocaleActions,\n operation,\n path: [...fieldPath, i],\n req,\n schemaPath: fieldSchemaPath,\n siblingData: row,\n siblingDoc: rowSiblingDoc,\n siblingDocWithLocales: rowSiblingDocWithLocales,\n skipValidation: skipValidationFromHere,\n }),\n )\n }\n })\n\n await Promise.all(promises)\n }\n\n break\n }\n\n case 'row':\n case 'collapsible': {\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n fields: field.fields,\n global,\n mergeLocaleActions,\n operation,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData,\n siblingDoc,\n siblingDocWithLocales,\n skipValidation: skipValidationFromHere,\n })\n\n break\n }\n\n case 'tab': {\n let tabSiblingData = siblingData\n let tabSiblingDoc = siblingDoc\n let tabSiblingDocWithLocales = siblingDocWithLocales\n\n if (tabHasName(field)) {\n if (typeof siblingData[field.name] !== 'object') siblingData[field.name] = {}\n if (typeof siblingDoc[field.name] !== 'object') siblingDoc[field.name] = {}\n if (typeof siblingDocWithLocales[field.name] !== 'object')\n siblingDocWithLocales[field.name] = {}\n\n tabSiblingData = siblingData[field.name] as Record<string, unknown>\n tabSiblingDoc = siblingDoc[field.name] as Record<string, unknown>\n tabSiblingDocWithLocales = siblingDocWithLocales[field.name] as Record<string, unknown>\n }\n\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n fields: field.fields,\n global,\n mergeLocaleActions,\n operation,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData: tabSiblingData,\n siblingDoc: tabSiblingDoc,\n siblingDocWithLocales: tabSiblingDocWithLocales,\n skipValidation: skipValidationFromHere,\n })\n\n break\n }\n\n case 'tabs': {\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n global,\n mergeLocaleActions,\n operation,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData,\n siblingDoc,\n siblingDocWithLocales,\n skipValidation: skipValidationFromHere,\n })\n\n break\n }\n\n case 'richText': {\n if (!field?.editor) {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n if (typeof field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n const editor: RichTextAdapter = field?.editor\n\n if (editor?.hooks?.beforeChange?.length) {\n await editor.hooks.beforeChange.reduce(async (priorHook, currentHook) => {\n await priorHook\n\n const hookedValue = await currentHook({\n collection,\n context,\n data,\n docWithLocales,\n duplicate,\n errors,\n field,\n global,\n mergeLocaleActions,\n operation,\n originalDoc: doc,\n path: fieldPath,\n previousSiblingDoc: siblingDoc,\n previousValue: siblingDoc[field.name],\n req,\n schemaPath: parentSchemaPath,\n siblingData,\n siblingDocWithLocales,\n skipValidation,\n value: siblingData[field.name],\n })\n\n if (hookedValue !== undefined) {\n siblingData[field.name] = hookedValue\n }\n }, Promise.resolve())\n }\n\n break\n }\n\n default: {\n break\n }\n }\n}\n"],"names":["merge","MissingEditorProp","fieldAffectsData","tabHasName","getFieldPaths","beforeDuplicate","getExistingRowDoc","traverseFields","promise","id","collection","context","data","doc","docWithLocales","duplicate","errors","field","global","mergeLocaleActions","operation","parentPath","parentSchemaPath","req","siblingData","siblingDoc","siblingDocWithLocales","skipValidation","passesCondition","admin","condition","Boolean","user","skipValidationFromHere","localization","payload","config","defaultLocale","operationLocale","locale","path","fieldPath","schemaPath","fieldSchemaPath","localized","includes","type","name","hooks","beforeChange","reduce","priorHook","currentHook","hookedValue","originalDoc","previousSiblingDoc","previousValue","value","undefined","Promise","resolve","validate","valueToValidate","jsonError","JSON","parse","e","validationResult","arrayMerge","_","source","preferences","fields","push","join","message","beforeDuplicateArgs","localeData","localeCodes","localizedValuesPromise","localizedValues","fieldValue","length","Object","keys","Array","isArray","coordinates","parseFloat","rows","promises","forEach","row","i","all","rowSiblingDoc","rowSiblingDocWithLocales","blockTypeToMatch","blockType","block","blocks","find","slug","tabSiblingData","tabSiblingDoc","tabSiblingDocWithLocales","tabs","map","tab","editor","Error"],"mappings":"AAAA,OAAOA,WAAW,YAAW;AAQ7B,SAASC,iBAAiB,QAAQ,2BAA0B;AAC5D,SAASC,gBAAgB,EAAEC,UAAU,QAAQ,wBAAuB;AACpE,SAASC,aAAa,QAAQ,yBAAwB;AACtD,SAASC,eAAe,QAAQ,uBAAsB;AACtD,SAASC,iBAAiB,QAAQ,yBAAwB;AAC1D,SAASC,cAAc,QAAQ,sBAAqB;AA8BpD,oEAAoE;AACpE,kBAAkB;AAClB,wBAAwB;AACxB,kBAAkB;AAClB,+BAA+B;AAC/B,yCAAyC;AACzC,sBAAsB;AAEtB,OAAO,MAAMC,UAAU,OAAO,EAC5BC,EAAE,EACFC,UAAU,EACVC,OAAO,EACPC,IAAI,EACJC,GAAG,EACHC,cAAc,EACdC,SAAS,EACTC,MAAM,EACNC,KAAK,EACLC,MAAM,EACNC,kBAAkB,EAClBC,SAAS,EACTC,UAAU,EACVC,gBAAgB,EAChBC,GAAG,EACHC,WAAW,EACXC,UAAU,EACVC,qBAAqB,EACrBC,cAAc,EACT;IACL,MAAMC,kBAAkBX,MAAMY,KAAK,EAAEC,YACjCC,QAAQd,MAAMY,KAAK,CAACC,SAAS,CAAClB,MAAMY,aAAa;QAAEQ,MAAMT,IAAIS,IAAI;IAAC,MAClE;IACJ,IAAIC,yBAAyBN,kBAAkB,CAACC;IAChD,MAAM,EAAEM,YAAY,EAAE,GAAGX,IAAIY,OAAO,CAACC,MAAM;IAC3C,MAAMC,gBAAgBH,eAAeA,cAAcG,gBAAgB;IACnE,MAAMC,kBAAkBf,IAAIgB,MAAM,IAAIF;IAEtC,MAAM,EAAEG,MAAMC,SAAS,EAAEC,YAAYC,eAAe,EAAE,GAAGvC,cAAc;QACrEa;QACAI;QACAC;IACF;IAEA,IAAIpB,iBAAiBe,QAAQ;QAC3B,0EAA0E;QAC1E,IAAIA,MAAM2B,SAAS,IAAIN,oBAAoBD,eAAe;YACxD,IAAI;gBAAC;gBAAS;aAAS,CAACQ,QAAQ,CAAC5B,MAAM6B,IAAI,KAAKtB,WAAW,CAACP,MAAM8B,IAAI,CAAC,KAAK,MAAM;gBAChFd,yBAAyB;YAC3B;QACF;QAEA,gBAAgB;QAChB,IAAIhB,MAAM+B,KAAK,EAAEC,cAAc;YAC7B,MAAMhC,MAAM+B,KAAK,CAACC,YAAY,CAACC,MAAM,CAAC,OAAOC,WAAWC;gBACtD,MAAMD;gBAEN,MAAME,cAAc,MAAMD,YAAY;oBACpC1C;oBACAC;oBACAC;oBACAK;oBACAC;oBACAE;oBACAkC,aAAazC;oBACb2B,MAAMC;oBACNc,oBAAoB9B;oBACpB+B,eAAe/B,UAAU,CAACR,MAAM8B,IAAI,CAAC;oBACrCxB;oBACAmB,YAAYpB;oBACZE;oBACAE;oBACA+B,OAAOjC,WAAW,CAACP,MAAM8B,IAAI,CAAC;gBAChC;gBAEA,IAAIM,gBAAgBK,WAAW;oBAC7BlC,WAAW,CAACP,MAAM8B,IAAI,CAAC,GAAGM;gBAC5B;YACF,GAAGM,QAAQC,OAAO;QACpB;QAEA,WAAW;QACX,IAAI,CAAC3B,0BAA0BhB,MAAM4C,QAAQ,EAAE;YAC7C,MAAMC,kBAAkBtC,WAAW,CAACP,MAAM8B,IAAI,CAAC;YAC/C,IAAIgB;YAEJ,IAAI9C,MAAM6B,IAAI,KAAK,UAAU,OAAOtB,WAAW,CAACP,MAAM8B,IAAI,CAAC,KAAK,UAAU;gBACxE,IAAI;oBACFiB,KAAKC,KAAK,CAACzC,WAAW,CAACP,MAAM8B,IAAI,CAAC;gBACpC,EAAE,OAAOmB,GAAG;oBACVH,YAAYG;gBACd;YACF;YAEA,MAAMC,mBAAmB,MAAMlD,MAAM4C,QAAQ,CAACC,iBAAiB;gBAC7D,GAAG7C,KAAK;gBACRR;gBACAG,MAAMZ,MAAMa,KAAKD,MAAM;oBAAEwD,YAAY,CAACC,GAAGC,SAAWA;gBAAO;gBAC3DP;gBACA3C;gBACAmD,aAAa;oBAAEC,QAAQ,CAAC;gBAAE;gBAC1BjD;gBACAC,aAAaxB,MAAMyB,YAAYD,aAAa;oBAAE4C,YAAY,CAACC,GAAGC,SAAWA;gBAAO;YAClF;YAEA,IAAI,OAAOH,qBAAqB,UAAU;gBACxCnD,OAAOyD,IAAI,CAAC;oBACVxD,OAAOwB,UAAUiC,IAAI,CAAC;oBACtBC,SAASR;gBACX;YACF;QACF;QAEA,MAAMS,sBAAqC;YACzClE;YACAC;YACAC;YACAK;YACAC,QAAQwC;YACRlB,MAAMC;YACNc,oBAAoB9B;YACpB+B,eAAe/B,UAAU,CAACR,MAAM8B,IAAI,CAAC;YACrCxB;YACAmB,YAAYpB;YACZE;YACAE;YACA+B,OAAOjC,WAAW,CAACP,MAAM8B,IAAI,CAAC;QAChC;QAEA,yCAAyC;QACzC,IAAIb,gBAAgBjB,MAAM2B,SAAS,EAAE;YACnCzB,mBAAmBsD,IAAI,CAAC;gBACtB,MAAMI,aAAa,MAAM3C,aAAa4C,WAAW,CAAC5B,MAAM,CACtD,OAAO6B,wBAA0DxC;oBAC/D,MAAMyC,kBAAkB,MAAMD;oBAC9B,IAAIE,aACF1C,WAAWhB,IAAIgB,MAAM,GACjBf,WAAW,CAACP,MAAM8B,IAAI,CAAC,GACvBrB,uBAAuB,CAACT,MAAM8B,IAAI,CAAC,EAAE,CAACR,OAAO;oBAEnD,IAAIxB,aAAaE,MAAM+B,KAAK,EAAE3C,iBAAiB6E,QAAQ;wBACrDN,oBAAoBnB,KAAK,GAAGwB;wBAC5BA,aAAa,MAAM5E,gBAAgBuE;oBACrC;oBAEA,uCAAuC;oBACvC,4CAA4C;oBAC5C,IAAI,OAAOK,eAAe,aAAa;wBACrC,OAAO;4BACL,GAAGD,eAAe;4BAClB,CAACzC,OAAO,EAAE0C;wBACZ;oBACF;oBAEA,OAAOF;gBACT,GACApB,QAAQC,OAAO,CAAC,CAAC;gBAGnB,+CAA+C;gBAC/C,IAAIuB,OAAOC,IAAI,CAACP,YAAYK,MAAM,GAAG,GAAG;oBACtC1D,WAAW,CAACP,MAAM8B,IAAI,CAAC,GAAG8B;gBAC5B;YACF;QACF,OAAO,IAAI9D,aAAaE,MAAM+B,KAAK,EAAE3C,iBAAiB6E,QAAQ;YAC5D/D,mBAAmBsD,IAAI,CAAC;gBACtBjD,WAAW,CAACP,MAAM8B,IAAI,CAAC,GAAG,MAAM1C,gBAAgBuE;YAClD;QACF;IACF;IAEA,OAAQ3D,MAAM6B,IAAI;QAChB,KAAK;YAAS;gBACZ,mCAAmC;gBACnC,IACEuC,MAAMC,OAAO,CAAC9D,WAAW,CAACP,MAAM8B,IAAI,CAAC,KACrCvB,WAAW,CAACP,MAAM8B,IAAI,CAAC,CAAC,EAAE,KAAK,QAC/BvB,WAAW,CAACP,MAAM8B,IAAI,CAAC,CAAC,EAAE,KAAK,MAC/B;oBACAvB,WAAW,CAACP,MAAM8B,IAAI,CAAC,GAAG;wBACxBD,MAAM;wBACNyC,aAAa;4BACXC,WAAWhE,WAAW,CAACP,MAAM8B,IAAI,CAAC,CAAC,EAAE;4BACrCyC,WAAWhE,WAAW,CAACP,MAAM8B,IAAI,CAAC,CAAC,EAAE;yBACtC;oBACH;gBACF;gBAEA;YACF;QAEA,KAAK;YAAS;gBACZ,IAAI,OAAOvB,WAAW,CAACP,MAAM8B,IAAI,CAAC,KAAK,UAAUvB,WAAW,CAACP,MAAM8B,IAAI,CAAC,GAAG,CAAC;gBAC5E,IAAI,OAAOtB,UAAU,CAACR,MAAM8B,IAAI,CAAC,KAAK,UAAUtB,UAAU,CAACR,MAAM8B,IAAI,CAAC,GAAG,CAAC;gBAC1E,IAAI,OAAOrB,qBAAqB,CAACT,MAAM8B,IAAI,CAAC,KAAK,UAC/CrB,qBAAqB,CAACT,MAAM8B,IAAI,CAAC,GAAG,CAAC;gBAEvC,MAAMxC,eAAe;oBACnBE;oBACAC;oBACAC;oBACAC;oBACAC;oBACAC;oBACAC;oBACAC;oBACAwD,QAAQvD,MAAMuD,MAAM;oBACpBtD;oBACAC;oBACAC;oBACAoB,MAAMC;oBACNlB;oBACAmB,YAAYC;oBACZnB,aAAaA,WAAW,CAACP,MAAM8B,IAAI,CAAC;oBACpCtB,YAAYA,UAAU,CAACR,MAAM8B,IAAI,CAAC;oBAClCrB,uBAAuBA,qBAAqB,CAACT,MAAM8B,IAAI,CAAC;oBACxDpB,gBAAgBM;gBAClB;gBAEA;YACF;QAEA,KAAK;YAAS;gBACZ,MAAMwD,OAAOjE,WAAW,CAACP,MAAM8B,IAAI,CAAC;gBAEpC,IAAIsC,MAAMC,OAAO,CAACG,OAAO;oBACvB,MAAMC,WAAW,EAAE;oBACnBD,KAAKE,OAAO,CAAC,CAACC,KAAKC;wBACjBH,SAASjB,IAAI,CACXlE,eAAe;4BACbE;4BACAC;4BACAC;4BACAC;4BACAC;4BACAC;4BACAC;4BACAC;4BACAwD,QAAQvD,MAAMuD,MAAM;4BACpBtD;4BACAC;4BACAC;4BACAoB,MAAM;mCAAIC;gCAAWoD;6BAAE;4BACvBtE;4BACAmB,YAAYC;4BACZnB,aAAaoE;4BACbnE,YAAYnB,kBAAkBsF,KAAKnE,UAAU,CAACR,MAAM8B,IAAI,CAAC;4BACzDrB,uBAAuBpB,kBAAkBsF,KAAKlE,qBAAqB,CAACT,MAAM8B,IAAI,CAAC;4BAC/EpB,gBAAgBM;wBAClB;oBAEJ;oBAEA,MAAM0B,QAAQmC,GAAG,CAACJ;gBACpB;gBAEA;YACF;QAEA,KAAK;YAAU;gBACb,MAAMD,OAAOjE,WAAW,CAACP,MAAM8B,IAAI,CAAC;gBAEpC,IAAIsC,MAAMC,OAAO,CAACG,OAAO;oBACvB,MAAMC,WAAW,EAAE;oBACnBD,KAAKE,OAAO,CAAC,CAACC,KAAKC;wBACjB,MAAME,gBAAgBzF,kBAAkBsF,KAAKnE,UAAU,CAACR,MAAM8B,IAAI,CAAC;wBACnE,MAAMiD,2BAA2B1F,kBAAkBsF,KAAKlE,qBAAqB,CAACT,MAAM8B,IAAI,CAAC;wBAEzF,MAAMkD,mBAAmBL,IAAIM,SAAS,IAAIH,cAAcG,SAAS;wBACjE,MAAMC,QAAQlF,MAAMmF,MAAM,CAACC,IAAI,CAAC,CAACH,YAAcA,UAAUI,IAAI,KAAKL;wBAElE,IAAIE,OAAO;4BACTT,SAASjB,IAAI,CACXlE,eAAe;gCACbE;gCACAC;gCACAC;gCACAC;gCACAC;gCACAC;gCACAC;gCACAC;gCACAwD,QAAQ2B,MAAM3B,MAAM;gCACpBtD;gCACAC;gCACAC;gCACAoB,MAAM;uCAAIC;oCAAWoD;iCAAE;gCACvBtE;gCACAmB,YAAYC;gCACZnB,aAAaoE;gCACbnE,YAAYsE;gCACZrE,uBAAuBsE;gCACvBrE,gBAAgBM;4BAClB;wBAEJ;oBACF;oBAEA,MAAM0B,QAAQmC,GAAG,CAACJ;gBACpB;gBAEA;YACF;QAEA,KAAK;QACL,KAAK;YAAe;gBAClB,MAAMnF,eAAe;oBACnBE;oBACAC;oBACAC;oBACAC;oBACAC;oBACAC;oBACAC;oBACAC;oBACAwD,QAAQvD,MAAMuD,MAAM;oBACpBtD;oBACAC;oBACAC;oBACAoB,MAAMC;oBACNlB;oBACAmB,YAAYC;oBACZnB;oBACAC;oBACAC;oBACAC,gBAAgBM;gBAClB;gBAEA;YACF;QAEA,KAAK;YAAO;gBACV,IAAIsE,iBAAiB/E;gBACrB,IAAIgF,gBAAgB/E;gBACpB,IAAIgF,2BAA2B/E;gBAE/B,IAAIvB,WAAWc,QAAQ;oBACrB,IAAI,OAAOO,WAAW,CAACP,MAAM8B,IAAI,CAAC,KAAK,UAAUvB,WAAW,CAACP,MAAM8B,IAAI,CAAC,GAAG,CAAC;oBAC5E,IAAI,OAAOtB,UAAU,CAACR,MAAM8B,IAAI,CAAC,KAAK,UAAUtB,UAAU,CAACR,MAAM8B,IAAI,CAAC,GAAG,CAAC;oBAC1E,IAAI,OAAOrB,qBAAqB,CAACT,MAAM8B,IAAI,CAAC,KAAK,UAC/CrB,qBAAqB,CAACT,MAAM8B,IAAI,CAAC,GAAG,CAAC;oBAEvCwD,iBAAiB/E,WAAW,CAACP,MAAM8B,IAAI,CAAC;oBACxCyD,gBAAgB/E,UAAU,CAACR,MAAM8B,IAAI,CAAC;oBACtC0D,2BAA2B/E,qBAAqB,CAACT,MAAM8B,IAAI,CAAC;gBAC9D;gBAEA,MAAMxC,eAAe;oBACnBE;oBACAC;oBACAC;oBACAC;oBACAC;oBACAC;oBACAC;oBACAC;oBACAwD,QAAQvD,MAAMuD,MAAM;oBACpBtD;oBACAC;oBACAC;oBACAoB,MAAMC;oBACNlB;oBACAmB,YAAYC;oBACZnB,aAAa+E;oBACb9E,YAAY+E;oBACZ9E,uBAAuB+E;oBACvB9E,gBAAgBM;gBAClB;gBAEA;YACF;QAEA,KAAK;YAAQ;gBACX,MAAM1B,eAAe;oBACnBE;oBACAC;oBACAC;oBACAC;oBACAC;oBACAC;oBACAC;oBACAC;oBACAwD,QAAQvD,MAAMyF,IAAI,CAACC,GAAG,CAAC,CAACC,MAAS,CAAA;4BAAE,GAAGA,GAAG;4BAAE9D,MAAM;wBAAM,CAAA;oBACvD5B;oBACAC;oBACAC;oBACAoB,MAAMC;oBACNlB;oBACAmB,YAAYC;oBACZnB;oBACAC;oBACAC;oBACAC,gBAAgBM;gBAClB;gBAEA;YACF;QAEA,KAAK;YAAY;gBACf,IAAI,CAAChB,OAAO4F,QAAQ;oBAClB,MAAM,IAAI5G,kBAAkBgB,OAAO,8HAA8H;;gBACnK;gBACA,IAAI,OAAOA,OAAO4F,WAAW,YAAY;oBACvC,MAAM,IAAIC,MAAM;gBAClB;gBAEA,MAAMD,SAA0B5F,OAAO4F;gBAEvC,IAAIA,QAAQ7D,OAAOC,cAAciC,QAAQ;oBACvC,MAAM2B,OAAO7D,KAAK,CAACC,YAAY,CAACC,MAAM,CAAC,OAAOC,WAAWC;wBACvD,MAAMD;wBAEN,MAAME,cAAc,MAAMD,YAAY;4BACpC1C;4BACAC;4BACAC;4BACAE;4BACAC;4BACAC;4BACAC;4BACAC;4BACAC;4BACAC;4BACAkC,aAAazC;4BACb2B,MAAMC;4BACNc,oBAAoB9B;4BACpB+B,eAAe/B,UAAU,CAACR,MAAM8B,IAAI,CAAC;4BACrCxB;4BACAmB,YAAYpB;4BACZE;4BACAE;4BACAC;4BACA8B,OAAOjC,WAAW,CAACP,MAAM8B,IAAI,CAAC;wBAChC;wBAEA,IAAIM,gBAAgBK,WAAW;4BAC7BlC,WAAW,CAACP,MAAM8B,IAAI,CAAC,GAAGM;wBAC5B;oBACF,GAAGM,QAAQC,OAAO;gBACpB;gBAEA;YACF;QAEA;YAAS;gBACP;YACF;IACF;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/beforeChange/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAChG,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAI9D,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,SAAS,EAAE,OAAO,CAAA;IAClB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC5C,MAAM,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE,CAAA;IAC9B,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,kBAAkB,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAA;IAC3C,SAAS,EAAE,SAAS,CAAA;IACpB,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACzB,GAAG,EAAE,sBAAsB,CAAA;IAC3B,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9C,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,qNAoBxB,IAAI,KAAG,QAAQ,IAAI,CA8BrB,CAAA"}
1
+ {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/beforeChange/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAChG,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAI9D,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,SAAS,EAAE,OAAO,CAAA;IAClB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC5C,MAAM,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE,CAAA;IAC9B,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,kBAAkB,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAA;IAC3C,SAAS,EAAE,SAAS,CAAA;IACpB,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACzB,GAAG,EAAE,sBAAsB,CAAA;IAC3B,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9C,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,qNAoBxB,IAAI,KAAG,OAAO,CAAC,IAAI,CA8BrB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/fields/hooks/beforeChange/traverseFields.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../../../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../../globals/config/types.js'\nimport type { Operation, PayloadRequestWithData, RequestContext } from '../../../types/index.js'\nimport type { Field, TabAsField } from '../../config/types.js'\n\nimport { promise } from './promise.js'\n\ntype Args = {\n collection: SanitizedCollectionConfig | null\n context: RequestContext\n data: Record<string, unknown>\n /**\n * The original data (not modified by any hooks)\n */\n doc: Record<string, unknown>\n /**\n * The original data with locales (not modified by any hooks)\n */\n docWithLocales: Record<string, unknown>\n duplicate: boolean\n errors: { field: string; message: string }[]\n fields: (Field | TabAsField)[]\n global: SanitizedGlobalConfig | null\n id?: number | string\n mergeLocaleActions: (() => Promise<void>)[]\n operation: Operation\n path: (number | string)[]\n req: PayloadRequestWithData\n schemaPath: string[]\n siblingData: Record<string, unknown>\n /**\n * The original siblingData (not modified by any hooks)\n */\n siblingDoc: Record<string, unknown>\n /**\n * The original siblingData with locales (not modified by any hooks)\n */\n siblingDocWithLocales: Record<string, unknown>\n skipValidation?: boolean\n}\n\n/**\n * This function is responsible for the following actions, in order:\n * - Run condition\n * - Execute field hooks\n * - Validate data\n * - Transform data for storage\n * - Unflatten locales. The input `data` is the normal document for one locale. The output result will become the document with locales.\n */\nexport const traverseFields = async ({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n fields,\n global,\n mergeLocaleActions,\n operation,\n path,\n req,\n schemaPath,\n siblingData,\n siblingDoc,\n siblingDocWithLocales,\n skipValidation,\n}: Args): Promise<void> => {\n const promises = []\n\n fields.forEach((field) => {\n promises.push(\n promise({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n field,\n global,\n mergeLocaleActions,\n operation,\n parentPath: path,\n parentSchemaPath: schemaPath,\n req,\n siblingData,\n siblingDoc,\n siblingDocWithLocales,\n skipValidation,\n }),\n )\n })\n\n await Promise.all(promises)\n}\n"],"names":["promise","traverseFields","id","collection","context","data","doc","docWithLocales","duplicate","errors","fields","global","mergeLocaleActions","operation","path","req","schemaPath","siblingData","siblingDoc","siblingDocWithLocales","skipValidation","promises","forEach","field","push","parentPath","parentSchemaPath","Promise","all"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAKA,SAASA,OAAO,QAAQ,eAAc;AAoCtC;;;;;;;CAOC,GACD,OAAO,MAAMC,iBAAiB,OAAO,EACnCC,EAAE,EACFC,UAAU,EACVC,OAAO,EACPC,IAAI,EACJC,GAAG,EACHC,cAAc,EACdC,SAAS,EACTC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,kBAAkB,EAClBC,SAAS,EACTC,IAAI,EACJC,GAAG,EACHC,UAAU,EACVC,WAAW,EACXC,UAAU,EACVC,qBAAqB,EACrBC,cAAc,EACT;IACL,MAAMC,WAAW,EAAE;IAEnBX,OAAOY,OAAO,CAAC,CAACC;QACdF,SAASG,IAAI,CACXxB,QAAQ;YACNE;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAc;YACAZ;YACAC;YACAC;YACAY,YAAYX;YACZY,kBAAkBV;YAClBD;YACAE;YACAC;YACAC;YACAC;QACF;IAEJ;IAEA,MAAMO,QAAQC,GAAG,CAACP;AACpB,EAAC"}
1
+ {"version":3,"sources":["../../../../src/fields/hooks/beforeChange/traverseFields.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../../../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../../globals/config/types.js'\nimport type { Operation, PayloadRequestWithData, RequestContext } from '../../../types/index.js'\nimport type { Field, TabAsField } from '../../config/types.js'\n\nimport { promise } from './promise.js'\n\ntype Args = {\n collection: SanitizedCollectionConfig | null\n context: RequestContext\n data: Record<string, unknown>\n /**\n * The original data (not modified by any hooks)\n */\n doc: Record<string, unknown>\n /**\n * The original data with locales (not modified by any hooks)\n */\n docWithLocales: Record<string, unknown>\n duplicate: boolean\n errors: { field: string; message: string }[]\n fields: (Field | TabAsField)[]\n global: SanitizedGlobalConfig | null\n id?: number | string\n mergeLocaleActions: (() => Promise<void>)[]\n operation: Operation\n path: (number | string)[]\n req: PayloadRequestWithData\n schemaPath: string[]\n siblingData: Record<string, unknown>\n /**\n * The original siblingData (not modified by any hooks)\n */\n siblingDoc: Record<string, unknown>\n /**\n * The original siblingData with locales (not modified by any hooks)\n */\n siblingDocWithLocales: Record<string, unknown>\n skipValidation?: boolean\n}\n\n/**\n * This function is responsible for the following actions, in order:\n * - Run condition\n * - Execute field hooks\n * - Validate data\n * - Transform data for storage\n * - Unflatten locales. The input `data` is the normal document for one locale. The output result will become the document with locales.\n */\nexport const traverseFields = async ({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n fields,\n global,\n mergeLocaleActions,\n operation,\n path,\n req,\n schemaPath,\n siblingData,\n siblingDoc,\n siblingDocWithLocales,\n skipValidation,\n}: Args): Promise<void> => {\n const promises = []\n\n fields.forEach((field) => {\n promises.push(\n promise({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n field,\n global,\n mergeLocaleActions,\n operation,\n parentPath: path,\n parentSchemaPath: schemaPath,\n req,\n siblingData,\n siblingDoc,\n siblingDocWithLocales,\n skipValidation,\n }),\n )\n })\n\n await Promise.all(promises)\n}\n"],"names":["promise","traverseFields","id","collection","context","data","doc","docWithLocales","duplicate","errors","fields","global","mergeLocaleActions","operation","path","req","schemaPath","siblingData","siblingDoc","siblingDocWithLocales","skipValidation","promises","forEach","field","push","parentPath","parentSchemaPath","Promise","all"],"mappings":"AAKA,SAASA,OAAO,QAAQ,eAAc;AAoCtC;;;;;;;CAOC,GACD,OAAO,MAAMC,iBAAiB,OAAO,EACnCC,EAAE,EACFC,UAAU,EACVC,OAAO,EACPC,IAAI,EACJC,GAAG,EACHC,cAAc,EACdC,SAAS,EACTC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,kBAAkB,EAClBC,SAAS,EACTC,IAAI,EACJC,GAAG,EACHC,UAAU,EACVC,WAAW,EACXC,UAAU,EACVC,qBAAqB,EACrBC,cAAc,EACT;IACL,MAAMC,WAAW,EAAE;IAEnBX,OAAOY,OAAO,CAAC,CAACC;QACdF,SAASG,IAAI,CACXxB,QAAQ;YACNE;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAc;YACAZ;YACAC;YACAC;YACAY,YAAYX;YACZY,kBAAkBV;YAClBD;YACAE;YACAC;YACAC;YACAC;QACF;IAEJ;IAEA,MAAMO,QAAQC,GAAG,CAACP;AACpB,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/beforeValidate/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAKrF,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,UAAU,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;IACjC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,cAAc,EAAE,OAAO,CAAA;IACvB,GAAG,EAAE,sBAAsB,CAAA;CAC5B,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,qIAUxB,KAAK,CAAC,CAAC,KAAG,QAAQ,CAAC,CAqBrB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/beforeValidate/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAKrF,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,UAAU,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;IACjC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,cAAc,EAAE,OAAO,CAAA;IACvB,GAAG,EAAE,sBAAsB,CAAA;CAC5B,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,GAAU,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,iGAUnE,IAAI,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,CAqBrB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/fields/hooks/beforeValidate/index.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../../../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../../globals/config/types.js'\nimport type { PayloadRequestWithData, RequestContext } from '../../../types/index.js'\n\nimport { deepCopyObject } from '../../../utilities/deepCopyObject.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype Args<T> = {\n collection: SanitizedCollectionConfig | null\n context: RequestContext\n data: Record<string, unknown> | T\n doc?: Record<string, unknown> | T\n duplicate?: boolean\n global: SanitizedGlobalConfig | null\n id?: number | string\n operation: 'create' | 'update'\n overrideAccess: boolean\n req: PayloadRequestWithData\n}\n\n/**\n * This function is responsible for the following actions, in order:\n * - Sanitize incoming data\n * - Execute field hooks\n * - Execute field access control\n * - Merge original document data into incoming data\n * - Compute default values for undefined fields\n */\nexport const beforeValidate = async <T extends Record<string, unknown>>({\n id,\n collection,\n context,\n data: incomingData,\n doc,\n global,\n operation,\n overrideAccess,\n req,\n}: Args<T>): Promise<T> => {\n const data = deepCopyObject(incomingData)\n\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n fields: collection?.fields || global?.fields,\n global,\n operation,\n overrideAccess,\n path: [],\n req,\n schemaPath: [],\n siblingData: data,\n siblingDoc: doc,\n })\n\n return data\n}\n"],"names":["deepCopyObject","traverseFields","beforeValidate","id","collection","context","data","incomingData","doc","global","operation","overrideAccess","req","fields","path","schemaPath","siblingData","siblingDoc"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAIA,SAASA,cAAc,QAAQ,uCAAsC;AACrE,SAASC,cAAc,QAAQ,sBAAqB;AAepD;;;;;;;CAOC,GACD,OAAO,MAAMC,iBAAiB,OAA0C,EACtEC,EAAE,EACFC,UAAU,EACVC,OAAO,EACPC,MAAMC,YAAY,EAClBC,GAAG,EACHC,MAAM,EACNC,SAAS,EACTC,cAAc,EACdC,GAAG,EACK;IACR,MAAMN,OAAON,eAAeO;IAE5B,MAAMN,eAAe;QACnBE;QACAC;QACAC;QACAC;QACAE;QACAK,QAAQT,YAAYS,UAAUJ,QAAQI;QACtCJ;QACAC;QACAC;QACAG,MAAM,EAAE;QACRF;QACAG,YAAY,EAAE;QACdC,aAAaV;QACbW,YAAYT;IACd;IAEA,OAAOF;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../../src/fields/hooks/beforeValidate/index.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../../../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../../globals/config/types.js'\nimport type { PayloadRequestWithData, RequestContext } from '../../../types/index.js'\n\nimport { deepCopyObject } from '../../../utilities/deepCopyObject.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype Args<T> = {\n collection: SanitizedCollectionConfig | null\n context: RequestContext\n data: Record<string, unknown> | T\n doc?: Record<string, unknown> | T\n duplicate?: boolean\n global: SanitizedGlobalConfig | null\n id?: number | string\n operation: 'create' | 'update'\n overrideAccess: boolean\n req: PayloadRequestWithData\n}\n\n/**\n * This function is responsible for the following actions, in order:\n * - Sanitize incoming data\n * - Execute field hooks\n * - Execute field access control\n * - Merge original document data into incoming data\n * - Compute default values for undefined fields\n */\nexport const beforeValidate = async <T extends Record<string, unknown>>({\n id,\n collection,\n context,\n data: incomingData,\n doc,\n global,\n operation,\n overrideAccess,\n req,\n}: Args<T>): Promise<T> => {\n const data = deepCopyObject(incomingData)\n\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n fields: collection?.fields || global?.fields,\n global,\n operation,\n overrideAccess,\n path: [],\n req,\n schemaPath: [],\n siblingData: data,\n siblingDoc: doc,\n })\n\n return data\n}\n"],"names":["deepCopyObject","traverseFields","beforeValidate","id","collection","context","data","incomingData","doc","global","operation","overrideAccess","req","fields","path","schemaPath","siblingData","siblingDoc"],"mappings":"AAIA,SAASA,cAAc,QAAQ,uCAAsC;AACrE,SAASC,cAAc,QAAQ,sBAAqB;AAepD;;;;;;;CAOC,GACD,OAAO,MAAMC,iBAAiB,OAA0C,EACtEC,EAAE,EACFC,UAAU,EACVC,OAAO,EACPC,MAAMC,YAAY,EAClBC,GAAG,EACHC,MAAM,EACNC,SAAS,EACTC,cAAc,EACdC,GAAG,EACK;IACR,MAAMN,OAAON,eAAeO;IAE5B,MAAMN,eAAe;QACnBE;QACAC;QACAC;QACAC;QACAE;QACAK,QAAQT,YAAYS,UAAUJ,QAAQI;QACtCJ;QACAC;QACAC;QACAG,MAAM,EAAE;QACRF;QACAG,YAAY,EAAE;QACdC,aAAaV;QACbW,YAAYT;IACd;IAEA,OAAOF;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/beforeValidate/promise.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACrF,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAU9D,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,UAAU,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,CAAC,CAAA;IACP;;OAEG;IACH,GAAG,EAAE,CAAC,CAAA;IACN,KAAK,EAAE,KAAK,GAAG,UAAU,CAAA;IACzB,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,cAAc,EAAE,OAAO,CAAA;IACvB,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IAC/B,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,GAAG,EAAE,sBAAsB,CAAA;IAC3B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACpC,CAAA;AASD,eAAO,MAAM,OAAO,qJAejB,KAAK,CAAC,CAAC,KAAG,QAAQ,IAAI,CA8bxB,CAAA"}
1
+ {"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/beforeValidate/promise.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACrF,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAU9D,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,UAAU,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,CAAC,CAAA;IACP;;OAEG;IACH,GAAG,EAAE,CAAC,CAAA;IACN,KAAK,EAAE,KAAK,GAAG,UAAU,CAAA;IACzB,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,cAAc,EAAE,OAAO,CAAA;IACvB,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IAC/B,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,GAAG,EAAE,sBAAsB,CAAA;IAC3B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACpC,CAAA;AASD,eAAO,MAAM,OAAO,GAAU,CAAC,iJAe5B,IAAI,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,IAAI,CA8bxB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/fields/hooks/beforeValidate/promise.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport type { RichTextAdapter } from '../../../admin/RichText.js'\nimport type { SanitizedCollectionConfig } from '../../../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../../globals/config/types.js'\nimport type { PayloadRequestWithData, RequestContext } from '../../../types/index.js'\nimport type { Field, TabAsField } from '../../config/types.js'\n\nimport { MissingEditorProp } from '../../../errors/index.js'\nimport { fieldAffectsData, tabHasName, valueIsValueWithRelation } from '../../config/types.js'\nimport getValueWithDefault from '../../getDefaultValue.js'\nimport { getFieldPaths } from '../../getFieldPaths.js'\nimport { cloneDataFromOriginalDoc } from '../beforeChange/cloneDataFromOriginalDoc.js'\nimport { getExistingRowDoc } from '../beforeChange/getExistingRowDoc.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype Args<T> = {\n collection: SanitizedCollectionConfig | null\n context: RequestContext\n data: T\n /**\n * The original data (not modified by any hooks)\n */\n doc: T\n field: Field | TabAsField\n global: SanitizedGlobalConfig | null\n id?: number | string\n operation: 'create' | 'update'\n overrideAccess: boolean\n parentPath: (number | string)[]\n parentSchemaPath: string[]\n req: PayloadRequestWithData\n siblingData: Record<string, unknown>\n /**\n * The original siblingData (not modified by any hooks)\n */\n siblingDoc: Record<string, unknown>\n}\n\n// This function is responsible for the following actions, in order:\n// - Sanitize incoming data\n// - Execute field hooks\n// - Execute field access control\n// - Merge original document data into incoming data\n// - Compute default values for undefined fields\n\nexport const promise = async <T>({\n id,\n collection,\n context,\n data,\n doc,\n field,\n global,\n operation,\n overrideAccess,\n parentPath,\n parentSchemaPath,\n req,\n siblingData,\n siblingDoc,\n}: Args<T>): Promise<void> => {\n const { path: fieldPath, schemaPath: fieldSchemaPath } = getFieldPaths({\n field,\n parentPath,\n parentSchemaPath,\n })\n\n if (fieldAffectsData(field)) {\n if (field.name === 'id') {\n if (field.type === 'number' && typeof siblingData[field.name] === 'string') {\n const value = siblingData[field.name] as string\n\n siblingData[field.name] = parseFloat(value)\n }\n\n if (\n field.type === 'text' &&\n typeof siblingData[field.name]?.toString === 'function' &&\n typeof siblingData[field.name] !== 'string'\n ) {\n siblingData[field.name] = siblingData[field.name].toString()\n }\n }\n\n // Sanitize incoming data\n switch (field.type) {\n case 'number': {\n if (typeof siblingData[field.name] === 'string') {\n const value = siblingData[field.name] as string\n const trimmed = value.trim()\n siblingData[field.name] = trimmed.length === 0 ? null : parseFloat(trimmed)\n }\n\n break\n }\n\n case 'point': {\n if (Array.isArray(siblingData[field.name])) {\n siblingData[field.name] = (siblingData[field.name] as string[]).map((coordinate, i) => {\n if (typeof coordinate === 'string') {\n const value = siblingData[field.name][i] as string\n const trimmed = value.trim()\n return trimmed.length === 0 ? null : parseFloat(trimmed)\n }\n return coordinate\n })\n }\n\n break\n }\n\n case 'checkbox': {\n if (siblingData[field.name] === 'true') siblingData[field.name] = true\n if (siblingData[field.name] === 'false') siblingData[field.name] = false\n if (siblingData[field.name] === '') siblingData[field.name] = false\n\n break\n }\n\n case 'richText': {\n if (typeof siblingData[field.name] === 'string') {\n try {\n const richTextJSON = JSON.parse(siblingData[field.name] as string)\n siblingData[field.name] = richTextJSON\n } catch {\n // Disregard this data as it is not valid.\n // Will be reported to user by field validation\n }\n }\n\n break\n }\n\n case 'relationship':\n case 'upload': {\n if (\n siblingData[field.name] === '' ||\n siblingData[field.name] === 'none' ||\n siblingData[field.name] === 'null' ||\n siblingData[field.name] === null\n ) {\n if (field.type === 'relationship' && field.hasMany === true) {\n siblingData[field.name] = []\n } else {\n siblingData[field.name] = null\n }\n }\n\n const value = siblingData[field.name]\n\n if (Array.isArray(field.relationTo)) {\n if (Array.isArray(value)) {\n value.forEach((relatedDoc: { relationTo: string; value: unknown }, i) => {\n const relatedCollection = req.payload.config.collections.find(\n (collection) => collection.slug === relatedDoc.relationTo,\n )\n const relationshipIDField = relatedCollection.fields.find(\n (collectionField) =>\n fieldAffectsData(collectionField) && collectionField.name === 'id',\n )\n if (relationshipIDField?.type === 'number') {\n siblingData[field.name][i] = {\n ...relatedDoc,\n value: parseFloat(relatedDoc.value as string),\n }\n }\n })\n }\n if (\n field.type === 'relationship' &&\n field.hasMany !== true &&\n valueIsValueWithRelation(value)\n ) {\n const relatedCollection = req.payload.config.collections.find(\n (collection) => collection.slug === value.relationTo,\n )\n const relationshipIDField = relatedCollection.fields.find(\n (collectionField) =>\n fieldAffectsData(collectionField) && collectionField.name === 'id',\n )\n if (relationshipIDField?.type === 'number') {\n siblingData[field.name] = { ...value, value: parseFloat(value.value as string) }\n }\n }\n } else {\n if (Array.isArray(value)) {\n value.forEach((relatedDoc: unknown, i) => {\n const relatedCollection = req.payload.config.collections.find(\n (collection) => collection.slug === field.relationTo,\n )\n const relationshipIDField = relatedCollection.fields.find(\n (collectionField) =>\n fieldAffectsData(collectionField) && collectionField.name === 'id',\n )\n if (relationshipIDField?.type === 'number') {\n siblingData[field.name][i] = parseFloat(relatedDoc as string)\n }\n })\n }\n if (field.type === 'relationship' && field.hasMany !== true && value) {\n const relatedCollection = req.payload.config.collections.find(\n (collection) => collection.slug === field.relationTo,\n )\n const relationshipIDField = relatedCollection.fields.find(\n (collectionField) =>\n fieldAffectsData(collectionField) && collectionField.name === 'id',\n )\n if (relationshipIDField?.type === 'number') {\n siblingData[field.name] = parseFloat(value as string)\n }\n }\n }\n break\n }\n\n case 'array':\n case 'blocks': {\n // Handle cases of arrays being intentionally set to 0\n if (siblingData[field.name] === '0' || siblingData[field.name] === 0) {\n siblingData[field.name] = []\n }\n\n break\n }\n\n default: {\n break\n }\n }\n\n // Execute hooks\n if (field.hooks?.beforeValidate) {\n await field.hooks.beforeValidate.reduce(async (priorHook, currentHook) => {\n await priorHook\n\n const hookedValue = await currentHook({\n collection,\n context,\n data,\n field,\n global,\n operation,\n originalDoc: doc,\n overrideAccess,\n path: fieldPath,\n previousSiblingDoc: siblingDoc,\n previousValue: siblingData[field.name],\n req,\n schemaPath: fieldSchemaPath,\n siblingData,\n value: siblingData[field.name],\n })\n\n if (hookedValue !== undefined) {\n siblingData[field.name] = hookedValue\n }\n }, Promise.resolve())\n }\n\n // Execute access control\n if (field.access && field.access[operation]) {\n const result = overrideAccess\n ? true\n : await field.access[operation]({ id, data, doc, req, siblingData })\n\n if (!result) {\n delete siblingData[field.name]\n }\n }\n\n if (typeof siblingData[field.name] === 'undefined') {\n // If no incoming data, but existing document data is found, merge it in\n if (typeof siblingDoc[field.name] !== 'undefined') {\n siblingData[field.name] = cloneDataFromOriginalDoc(siblingDoc[field.name])\n\n // Otherwise compute default value\n } else if (typeof field.defaultValue !== 'undefined') {\n siblingData[field.name] = await getValueWithDefault({\n defaultValue: field.defaultValue,\n locale: req.locale,\n user: req.user,\n value: siblingData[field.name],\n })\n }\n }\n }\n\n // Traverse subfields\n switch (field.type) {\n case 'group': {\n if (typeof siblingData[field.name] !== 'object') siblingData[field.name] = {}\n if (typeof siblingDoc[field.name] !== 'object') siblingDoc[field.name] = {}\n\n const groupData = siblingData[field.name] as Record<string, unknown>\n const groupDoc = siblingDoc[field.name] as Record<string, unknown>\n\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n fields: field.fields,\n global,\n operation,\n overrideAccess,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData: groupData,\n siblingDoc: groupDoc,\n })\n\n break\n }\n\n case 'array': {\n const rows = siblingData[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n rows.forEach((row, i) => {\n promises.push(\n traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n fields: field.fields,\n global,\n operation,\n overrideAccess,\n path: [...fieldPath, i],\n req,\n schemaPath: fieldSchemaPath,\n siblingData: row,\n siblingDoc: getExistingRowDoc(row, siblingDoc[field.name]),\n }),\n )\n })\n await Promise.all(promises)\n }\n break\n }\n\n case 'blocks': {\n const rows = siblingData[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n rows.forEach((row, i) => {\n const rowSiblingDoc = getExistingRowDoc(row, siblingDoc[field.name])\n const blockTypeToMatch = row.blockType || rowSiblingDoc.blockType\n const block = field.blocks.find((blockType) => blockType.slug === blockTypeToMatch)\n\n if (block) {\n row.blockType = blockTypeToMatch\n\n promises.push(\n traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n fields: block.fields,\n global,\n operation,\n overrideAccess,\n path: [...fieldPath, i],\n req,\n schemaPath: fieldSchemaPath,\n siblingData: row,\n siblingDoc: rowSiblingDoc,\n }),\n )\n }\n })\n await Promise.all(promises)\n }\n\n break\n }\n\n case 'row':\n case 'collapsible': {\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n fields: field.fields,\n global,\n operation,\n overrideAccess,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData,\n siblingDoc,\n })\n\n break\n }\n\n case 'tab': {\n let tabSiblingData\n let tabSiblingDoc\n if (tabHasName(field)) {\n if (typeof siblingData[field.name] !== 'object') siblingData[field.name] = {}\n if (typeof siblingDoc[field.name] !== 'object') siblingDoc[field.name] = {}\n\n tabSiblingData = siblingData[field.name] as Record<string, unknown>\n tabSiblingDoc = siblingDoc[field.name] as Record<string, unknown>\n } else {\n tabSiblingData = siblingData\n tabSiblingDoc = siblingDoc\n }\n\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n fields: field.fields,\n global,\n operation,\n overrideAccess,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData: tabSiblingData,\n siblingDoc: tabSiblingDoc,\n })\n\n break\n }\n\n case 'tabs': {\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n global,\n operation,\n overrideAccess,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData,\n siblingDoc,\n })\n\n break\n }\n\n case 'richText': {\n if (!field?.editor) {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n if (typeof field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n const editor: RichTextAdapter = field?.editor\n\n if (editor?.hooks?.beforeValidate?.length) {\n await editor.hooks.beforeValidate.reduce(async (priorHook, currentHook) => {\n await priorHook\n\n const hookedValue = await currentHook({\n collection,\n context,\n data,\n field,\n global,\n operation,\n originalDoc: doc,\n overrideAccess,\n path: fieldPath,\n previousSiblingDoc: siblingDoc,\n previousValue: siblingData[field.name],\n req,\n schemaPath: fieldSchemaPath,\n siblingData,\n value: siblingData[field.name],\n })\n\n if (hookedValue !== undefined) {\n siblingData[field.name] = hookedValue\n }\n }, Promise.resolve())\n }\n break\n }\n\n default: {\n break\n }\n }\n}\n"],"names":["MissingEditorProp","fieldAffectsData","tabHasName","valueIsValueWithRelation","getValueWithDefault","getFieldPaths","cloneDataFromOriginalDoc","getExistingRowDoc","traverseFields","promise","id","collection","context","data","doc","field","global","operation","overrideAccess","parentPath","parentSchemaPath","req","siblingData","siblingDoc","path","fieldPath","schemaPath","fieldSchemaPath","name","type","value","parseFloat","toString","trimmed","trim","length","Array","isArray","map","coordinate","i","richTextJSON","JSON","parse","hasMany","relationTo","forEach","relatedDoc","relatedCollection","payload","config","collections","find","slug","relationshipIDField","fields","collectionField","hooks","beforeValidate","reduce","priorHook","currentHook","hookedValue","originalDoc","previousSiblingDoc","previousValue","undefined","Promise","resolve","access","result","defaultValue","locale","user","groupData","groupDoc","rows","promises","row","push","all","rowSiblingDoc","blockTypeToMatch","blockType","block","blocks","tabSiblingData","tabSiblingDoc","tabs","tab","editor","Error"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/fields/hooks/beforeValidate/promise.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport type { RichTextAdapter } from '../../../admin/RichText.js'\nimport type { SanitizedCollectionConfig } from '../../../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../../globals/config/types.js'\nimport type { PayloadRequestWithData, RequestContext } from '../../../types/index.js'\nimport type { Field, TabAsField } from '../../config/types.js'\n\nimport { MissingEditorProp } from '../../../errors/index.js'\nimport { fieldAffectsData, tabHasName, valueIsValueWithRelation } from '../../config/types.js'\nimport getValueWithDefault from '../../getDefaultValue.js'\nimport { getFieldPaths } from '../../getFieldPaths.js'\nimport { cloneDataFromOriginalDoc } from '../beforeChange/cloneDataFromOriginalDoc.js'\nimport { getExistingRowDoc } from '../beforeChange/getExistingRowDoc.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype Args<T> = {\n collection: SanitizedCollectionConfig | null\n context: RequestContext\n data: T\n /**\n * The original data (not modified by any hooks)\n */\n doc: T\n field: Field | TabAsField\n global: SanitizedGlobalConfig | null\n id?: number | string\n operation: 'create' | 'update'\n overrideAccess: boolean\n parentPath: (number | string)[]\n parentSchemaPath: string[]\n req: PayloadRequestWithData\n siblingData: Record<string, unknown>\n /**\n * The original siblingData (not modified by any hooks)\n */\n siblingDoc: Record<string, unknown>\n}\n\n// This function is responsible for the following actions, in order:\n// - Sanitize incoming data\n// - Execute field hooks\n// - Execute field access control\n// - Merge original document data into incoming data\n// - Compute default values for undefined fields\n\nexport const promise = async <T>({\n id,\n collection,\n context,\n data,\n doc,\n field,\n global,\n operation,\n overrideAccess,\n parentPath,\n parentSchemaPath,\n req,\n siblingData,\n siblingDoc,\n}: Args<T>): Promise<void> => {\n const { path: fieldPath, schemaPath: fieldSchemaPath } = getFieldPaths({\n field,\n parentPath,\n parentSchemaPath,\n })\n\n if (fieldAffectsData(field)) {\n if (field.name === 'id') {\n if (field.type === 'number' && typeof siblingData[field.name] === 'string') {\n const value = siblingData[field.name] as string\n\n siblingData[field.name] = parseFloat(value)\n }\n\n if (\n field.type === 'text' &&\n typeof siblingData[field.name]?.toString === 'function' &&\n typeof siblingData[field.name] !== 'string'\n ) {\n siblingData[field.name] = siblingData[field.name].toString()\n }\n }\n\n // Sanitize incoming data\n switch (field.type) {\n case 'number': {\n if (typeof siblingData[field.name] === 'string') {\n const value = siblingData[field.name] as string\n const trimmed = value.trim()\n siblingData[field.name] = trimmed.length === 0 ? null : parseFloat(trimmed)\n }\n\n break\n }\n\n case 'point': {\n if (Array.isArray(siblingData[field.name])) {\n siblingData[field.name] = (siblingData[field.name] as string[]).map((coordinate, i) => {\n if (typeof coordinate === 'string') {\n const value = siblingData[field.name][i] as string\n const trimmed = value.trim()\n return trimmed.length === 0 ? null : parseFloat(trimmed)\n }\n return coordinate\n })\n }\n\n break\n }\n\n case 'checkbox': {\n if (siblingData[field.name] === 'true') siblingData[field.name] = true\n if (siblingData[field.name] === 'false') siblingData[field.name] = false\n if (siblingData[field.name] === '') siblingData[field.name] = false\n\n break\n }\n\n case 'richText': {\n if (typeof siblingData[field.name] === 'string') {\n try {\n const richTextJSON = JSON.parse(siblingData[field.name] as string)\n siblingData[field.name] = richTextJSON\n } catch {\n // Disregard this data as it is not valid.\n // Will be reported to user by field validation\n }\n }\n\n break\n }\n\n case 'relationship':\n case 'upload': {\n if (\n siblingData[field.name] === '' ||\n siblingData[field.name] === 'none' ||\n siblingData[field.name] === 'null' ||\n siblingData[field.name] === null\n ) {\n if (field.type === 'relationship' && field.hasMany === true) {\n siblingData[field.name] = []\n } else {\n siblingData[field.name] = null\n }\n }\n\n const value = siblingData[field.name]\n\n if (Array.isArray(field.relationTo)) {\n if (Array.isArray(value)) {\n value.forEach((relatedDoc: { relationTo: string; value: unknown }, i) => {\n const relatedCollection = req.payload.config.collections.find(\n (collection) => collection.slug === relatedDoc.relationTo,\n )\n const relationshipIDField = relatedCollection.fields.find(\n (collectionField) =>\n fieldAffectsData(collectionField) && collectionField.name === 'id',\n )\n if (relationshipIDField?.type === 'number') {\n siblingData[field.name][i] = {\n ...relatedDoc,\n value: parseFloat(relatedDoc.value as string),\n }\n }\n })\n }\n if (\n field.type === 'relationship' &&\n field.hasMany !== true &&\n valueIsValueWithRelation(value)\n ) {\n const relatedCollection = req.payload.config.collections.find(\n (collection) => collection.slug === value.relationTo,\n )\n const relationshipIDField = relatedCollection.fields.find(\n (collectionField) =>\n fieldAffectsData(collectionField) && collectionField.name === 'id',\n )\n if (relationshipIDField?.type === 'number') {\n siblingData[field.name] = { ...value, value: parseFloat(value.value as string) }\n }\n }\n } else {\n if (Array.isArray(value)) {\n value.forEach((relatedDoc: unknown, i) => {\n const relatedCollection = req.payload.config.collections.find(\n (collection) => collection.slug === field.relationTo,\n )\n const relationshipIDField = relatedCollection.fields.find(\n (collectionField) =>\n fieldAffectsData(collectionField) && collectionField.name === 'id',\n )\n if (relationshipIDField?.type === 'number') {\n siblingData[field.name][i] = parseFloat(relatedDoc as string)\n }\n })\n }\n if (field.type === 'relationship' && field.hasMany !== true && value) {\n const relatedCollection = req.payload.config.collections.find(\n (collection) => collection.slug === field.relationTo,\n )\n const relationshipIDField = relatedCollection.fields.find(\n (collectionField) =>\n fieldAffectsData(collectionField) && collectionField.name === 'id',\n )\n if (relationshipIDField?.type === 'number') {\n siblingData[field.name] = parseFloat(value as string)\n }\n }\n }\n break\n }\n\n case 'array':\n case 'blocks': {\n // Handle cases of arrays being intentionally set to 0\n if (siblingData[field.name] === '0' || siblingData[field.name] === 0) {\n siblingData[field.name] = []\n }\n\n break\n }\n\n default: {\n break\n }\n }\n\n // Execute hooks\n if (field.hooks?.beforeValidate) {\n await field.hooks.beforeValidate.reduce(async (priorHook, currentHook) => {\n await priorHook\n\n const hookedValue = await currentHook({\n collection,\n context,\n data,\n field,\n global,\n operation,\n originalDoc: doc,\n overrideAccess,\n path: fieldPath,\n previousSiblingDoc: siblingDoc,\n previousValue: siblingData[field.name],\n req,\n schemaPath: fieldSchemaPath,\n siblingData,\n value: siblingData[field.name],\n })\n\n if (hookedValue !== undefined) {\n siblingData[field.name] = hookedValue\n }\n }, Promise.resolve())\n }\n\n // Execute access control\n if (field.access && field.access[operation]) {\n const result = overrideAccess\n ? true\n : await field.access[operation]({ id, data, doc, req, siblingData })\n\n if (!result) {\n delete siblingData[field.name]\n }\n }\n\n if (typeof siblingData[field.name] === 'undefined') {\n // If no incoming data, but existing document data is found, merge it in\n if (typeof siblingDoc[field.name] !== 'undefined') {\n siblingData[field.name] = cloneDataFromOriginalDoc(siblingDoc[field.name])\n\n // Otherwise compute default value\n } else if (typeof field.defaultValue !== 'undefined') {\n siblingData[field.name] = await getValueWithDefault({\n defaultValue: field.defaultValue,\n locale: req.locale,\n user: req.user,\n value: siblingData[field.name],\n })\n }\n }\n }\n\n // Traverse subfields\n switch (field.type) {\n case 'group': {\n if (typeof siblingData[field.name] !== 'object') siblingData[field.name] = {}\n if (typeof siblingDoc[field.name] !== 'object') siblingDoc[field.name] = {}\n\n const groupData = siblingData[field.name] as Record<string, unknown>\n const groupDoc = siblingDoc[field.name] as Record<string, unknown>\n\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n fields: field.fields,\n global,\n operation,\n overrideAccess,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData: groupData,\n siblingDoc: groupDoc,\n })\n\n break\n }\n\n case 'array': {\n const rows = siblingData[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n rows.forEach((row, i) => {\n promises.push(\n traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n fields: field.fields,\n global,\n operation,\n overrideAccess,\n path: [...fieldPath, i],\n req,\n schemaPath: fieldSchemaPath,\n siblingData: row,\n siblingDoc: getExistingRowDoc(row, siblingDoc[field.name]),\n }),\n )\n })\n await Promise.all(promises)\n }\n break\n }\n\n case 'blocks': {\n const rows = siblingData[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n rows.forEach((row, i) => {\n const rowSiblingDoc = getExistingRowDoc(row, siblingDoc[field.name])\n const blockTypeToMatch = row.blockType || rowSiblingDoc.blockType\n const block = field.blocks.find((blockType) => blockType.slug === blockTypeToMatch)\n\n if (block) {\n row.blockType = blockTypeToMatch\n\n promises.push(\n traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n fields: block.fields,\n global,\n operation,\n overrideAccess,\n path: [...fieldPath, i],\n req,\n schemaPath: fieldSchemaPath,\n siblingData: row,\n siblingDoc: rowSiblingDoc,\n }),\n )\n }\n })\n await Promise.all(promises)\n }\n\n break\n }\n\n case 'row':\n case 'collapsible': {\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n fields: field.fields,\n global,\n operation,\n overrideAccess,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData,\n siblingDoc,\n })\n\n break\n }\n\n case 'tab': {\n let tabSiblingData\n let tabSiblingDoc\n if (tabHasName(field)) {\n if (typeof siblingData[field.name] !== 'object') siblingData[field.name] = {}\n if (typeof siblingDoc[field.name] !== 'object') siblingDoc[field.name] = {}\n\n tabSiblingData = siblingData[field.name] as Record<string, unknown>\n tabSiblingDoc = siblingDoc[field.name] as Record<string, unknown>\n } else {\n tabSiblingData = siblingData\n tabSiblingDoc = siblingDoc\n }\n\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n fields: field.fields,\n global,\n operation,\n overrideAccess,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData: tabSiblingData,\n siblingDoc: tabSiblingDoc,\n })\n\n break\n }\n\n case 'tabs': {\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n global,\n operation,\n overrideAccess,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData,\n siblingDoc,\n })\n\n break\n }\n\n case 'richText': {\n if (!field?.editor) {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n if (typeof field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n const editor: RichTextAdapter = field?.editor\n\n if (editor?.hooks?.beforeValidate?.length) {\n await editor.hooks.beforeValidate.reduce(async (priorHook, currentHook) => {\n await priorHook\n\n const hookedValue = await currentHook({\n collection,\n context,\n data,\n field,\n global,\n operation,\n originalDoc: doc,\n overrideAccess,\n path: fieldPath,\n previousSiblingDoc: siblingDoc,\n previousValue: siblingData[field.name],\n req,\n schemaPath: fieldSchemaPath,\n siblingData,\n value: siblingData[field.name],\n })\n\n if (hookedValue !== undefined) {\n siblingData[field.name] = hookedValue\n }\n }, Promise.resolve())\n }\n break\n }\n\n default: {\n break\n }\n }\n}\n"],"names":["MissingEditorProp","fieldAffectsData","tabHasName","valueIsValueWithRelation","getValueWithDefault","getFieldPaths","cloneDataFromOriginalDoc","getExistingRowDoc","traverseFields","promise","id","collection","context","data","doc","field","global","operation","overrideAccess","parentPath","parentSchemaPath","req","siblingData","siblingDoc","path","fieldPath","schemaPath","fieldSchemaPath","name","type","value","parseFloat","toString","trimmed","trim","length","Array","isArray","map","coordinate","i","richTextJSON","JSON","parse","hasMany","relationTo","forEach","relatedDoc","relatedCollection","payload","config","collections","find","slug","relationshipIDField","fields","collectionField","hooks","beforeValidate","reduce","priorHook","currentHook","hookedValue","originalDoc","previousSiblingDoc","previousValue","undefined","Promise","resolve","access","result","defaultValue","locale","user","groupData","groupDoc","rows","promises","row","push","all","rowSiblingDoc","blockTypeToMatch","blockType","block","blocks","tabSiblingData","tabSiblingDoc","tabs","tab","editor","Error"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/beforeValidate/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACrF,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAI9D,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,UAAU,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,CAAC,CAAA;IACP;;OAEG;IACH,GAAG,EAAE,CAAC,CAAA;IACN,MAAM,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE,CAAA;IAC9B,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,cAAc,EAAE,OAAO,CAAA;IACvB,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACzB,GAAG,EAAE,sBAAsB,CAAA;IAC3B,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,cAAc,0IAexB,KAAK,CAAC,CAAC,KAAG,QAAQ,IAAI,CAuBxB,CAAA"}
1
+ {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/beforeValidate/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACrF,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAI9D,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,UAAU,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,CAAC,CAAA;IACP;;OAEG;IACH,GAAG,EAAE,CAAC,CAAA;IACN,MAAM,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE,CAAA;IAC9B,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,cAAc,EAAE,OAAO,CAAA;IACvB,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACzB,GAAG,EAAE,sBAAsB,CAAA;IAC3B,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,cAAc,GAAU,CAAC,sIAenC,IAAI,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,IAAI,CAuBxB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/fields/hooks/beforeValidate/traverseFields.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../../../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../../globals/config/types.js'\nimport type { PayloadRequestWithData, RequestContext } from '../../../types/index.js'\nimport type { Field, TabAsField } from '../../config/types.js'\n\nimport { promise } from './promise.js'\n\ntype Args<T> = {\n collection: SanitizedCollectionConfig | null\n context: RequestContext\n data: T\n /**\n * The original data (not modified by any hooks)\n */\n doc: T\n fields: (Field | TabAsField)[]\n global: SanitizedGlobalConfig | null\n id?: number | string\n operation: 'create' | 'update'\n overrideAccess: boolean\n path: (number | string)[]\n req: PayloadRequestWithData\n schemaPath: string[]\n siblingData: Record<string, unknown>\n /**\n * The original siblingData (not modified by any hooks)\n */\n siblingDoc: Record<string, unknown>\n}\n\nexport const traverseFields = async <T>({\n id,\n collection,\n context,\n data,\n doc,\n fields,\n global,\n operation,\n overrideAccess,\n path,\n req,\n schemaPath,\n siblingData,\n siblingDoc,\n}: Args<T>): Promise<void> => {\n const promises = []\n fields.forEach((field) => {\n promises.push(\n promise({\n id,\n collection,\n context,\n data,\n doc,\n field,\n global,\n operation,\n overrideAccess,\n parentPath: path,\n parentSchemaPath: schemaPath,\n req,\n siblingData,\n siblingDoc,\n }),\n )\n })\n await Promise.all(promises)\n}\n"],"names":["promise","traverseFields","id","collection","context","data","doc","fields","global","operation","overrideAccess","path","req","schemaPath","siblingData","siblingDoc","promises","forEach","field","push","parentPath","parentSchemaPath","Promise","all"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;","mappings":"AAKA,SAASA,OAAO,QAAQ,eAAc;AAyBtC,OAAO,MAAMC,iBAAiB,OAAU,EACtCC,EAAE,EACFC,UAAU,EACVC,OAAO,EACPC,IAAI,EACJC,GAAG,EACHC,MAAM,EACNC,MAAM,EACNC,SAAS,EACTC,cAAc,EACdC,IAAI,EACJC,GAAG,EACHC,UAAU,EACVC,WAAW,EACXC,UAAU,EACF;IACR,MAAMC,WAAW,EAAE;IACnBT,OAAOU,OAAO,CAAC,CAACC;QACdF,SAASG,IAAI,CACXnB,QAAQ;YACNE;YACAC;YACAC;YACAC;YACAC;YACAY;YACAV;YACAC;YACAC;YACAU,YAAYT;YACZU,kBAAkBR;YAClBD;YACAE;YACAC;QACF;IAEJ;IACA,MAAMO,QAAQC,GAAG,CAACP;AACpB,EAAC"}
1
+ {"version":3,"sources":["../../../../src/fields/hooks/beforeValidate/traverseFields.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../../../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../../globals/config/types.js'\nimport type { PayloadRequestWithData, RequestContext } from '../../../types/index.js'\nimport type { Field, TabAsField } from '../../config/types.js'\n\nimport { promise } from './promise.js'\n\ntype Args<T> = {\n collection: SanitizedCollectionConfig | null\n context: RequestContext\n data: T\n /**\n * The original data (not modified by any hooks)\n */\n doc: T\n fields: (Field | TabAsField)[]\n global: SanitizedGlobalConfig | null\n id?: number | string\n operation: 'create' | 'update'\n overrideAccess: boolean\n path: (number | string)[]\n req: PayloadRequestWithData\n schemaPath: string[]\n siblingData: Record<string, unknown>\n /**\n * The original siblingData (not modified by any hooks)\n */\n siblingDoc: Record<string, unknown>\n}\n\nexport const traverseFields = async <T>({\n id,\n collection,\n context,\n data,\n doc,\n fields,\n global,\n operation,\n overrideAccess,\n path,\n req,\n schemaPath,\n siblingData,\n siblingDoc,\n}: Args<T>): Promise<void> => {\n const promises = []\n fields.forEach((field) => {\n promises.push(\n promise({\n id,\n collection,\n context,\n data,\n doc,\n field,\n global,\n operation,\n overrideAccess,\n parentPath: path,\n parentSchemaPath: schemaPath,\n req,\n siblingData,\n siblingDoc,\n }),\n )\n })\n await Promise.all(promises)\n}\n"],"names":["promise","traverseFields","id","collection","context","data","doc","fields","global","operation","overrideAccess","path","req","schemaPath","siblingData","siblingDoc","promises","forEach","field","push","parentPath","parentSchemaPath","Promise","all"],"mappings":"AAKA,SAASA,OAAO,QAAQ,eAAc;AAyBtC,OAAO,MAAMC,iBAAiB,OAAU,EACtCC,EAAE,EACFC,UAAU,EACVC,OAAO,EACPC,IAAI,EACJC,GAAG,EACHC,MAAM,EACNC,MAAM,EACNC,SAAS,EACTC,cAAc,EACdC,IAAI,EACJC,GAAG,EACHC,UAAU,EACVC,WAAW,EACXC,UAAU,EACF;IACR,MAAMC,WAAW,EAAE;IACnBT,OAAOU,OAAO,CAAC,CAACC;QACdF,SAASG,IAAI,CACXnB,QAAQ;YACNE;YACAC;YACAC;YACAC;YACAC;YACAY;YACAV;YACAC;YACAC;YACAU,YAAYT;YACZU,kBAAkBR;YAClBD;YACAE;YACAC;QACF;IAEJ;IACA,MAAMO,QAAQC,GAAG,CAACP;AACpB,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/fields/mergeBaseFields.ts"],"sourcesContent":["import merge from 'deepmerge'\n\nimport type { Field, FieldWithSubFields } from './config/types.js'\n\nimport { fieldAffectsData, fieldHasSubFields } from './config/types.js'\n\nconst mergeBaseFields = (fields: Field[], baseFields: Field[]): Field[] => {\n const mergedFields = [...(fields || [])]\n\n baseFields.forEach((baseField) => {\n let matchedIndex = null\n\n if (fieldAffectsData(baseField)) {\n const match = mergedFields.find((field, i) => {\n if (fieldAffectsData(field) && field.name === baseField.name) {\n matchedIndex = i\n return true\n }\n\n return false\n })\n\n if (match) {\n const matchCopy: Field = { ...match }\n mergedFields.splice(matchedIndex, 1)\n\n const mergedField = merge<Field>(baseField, matchCopy)\n\n if (fieldHasSubFields(baseField) && fieldHasSubFields(matchCopy)) {\n ;(mergedField as FieldWithSubFields).fields = mergeBaseFields(\n matchCopy.fields,\n baseField.fields,\n )\n }\n\n mergedFields.push(mergedField)\n } else {\n mergedFields.push(baseField)\n }\n }\n })\n\n return mergedFields\n}\n\nexport default mergeBaseFields\n"],"names":["merge","fieldAffectsData","fieldHasSubFields","mergeBaseFields","fields","baseFields","mergedFields","forEach","baseField","matchedIndex","match","find","field","i","name","matchCopy","splice","mergedField","push"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,WAAW,YAAW;AAI7B,SAASC,gBAAgB,EAAEC,iBAAiB,QAAQ,oBAAmB;AAEvE,MAAMC,kBAAkB,CAACC,QAAiBC;IACxC,MAAMC,eAAe;WAAKF,UAAU,EAAE;KAAE;IAExCC,WAAWE,OAAO,CAAC,CAACC;QAClB,IAAIC,eAAe;QAEnB,IAAIR,iBAAiBO,YAAY;YAC/B,MAAME,QAAQJ,aAAaK,IAAI,CAAC,CAACC,OAAOC;gBACtC,IAAIZ,iBAAiBW,UAAUA,MAAME,IAAI,KAAKN,UAAUM,IAAI,EAAE;oBAC5DL,eAAeI;oBACf,OAAO;gBACT;gBAEA,OAAO;YACT;YAEA,IAAIH,OAAO;gBACT,MAAMK,YAAmB;oBAAE,GAAGL,KAAK;gBAAC;gBACpCJ,aAAaU,MAAM,CAACP,cAAc;gBAElC,MAAMQ,cAAcjB,MAAaQ,WAAWO;gBAE5C,IAAIb,kBAAkBM,cAAcN,kBAAkBa,YAAY;oBAC9DE,YAAmCb,MAAM,GAAGD,gBAC5CY,UAAUX,MAAM,EAChBI,UAAUJ,MAAM;gBAEpB;gBAEAE,aAAaY,IAAI,CAACD;YACpB,OAAO;gBACLX,aAAaY,IAAI,CAACV;YACpB;QACF;IACF;IAEA,OAAOF;AACT;AAEA,eAAeH,gBAAe"}
1
+ {"version":3,"sources":["../../src/fields/mergeBaseFields.ts"],"sourcesContent":["import merge from 'deepmerge'\n\nimport type { Field, FieldWithSubFields } from './config/types.js'\n\nimport { fieldAffectsData, fieldHasSubFields } from './config/types.js'\n\nconst mergeBaseFields = (fields: Field[], baseFields: Field[]): Field[] => {\n const mergedFields = [...(fields || [])]\n\n baseFields.forEach((baseField) => {\n let matchedIndex = null\n\n if (fieldAffectsData(baseField)) {\n const match = mergedFields.find((field, i) => {\n if (fieldAffectsData(field) && field.name === baseField.name) {\n matchedIndex = i\n return true\n }\n\n return false\n })\n\n if (match) {\n const matchCopy: Field = { ...match }\n mergedFields.splice(matchedIndex, 1)\n\n const mergedField = merge<Field>(baseField, matchCopy)\n\n if (fieldHasSubFields(baseField) && fieldHasSubFields(matchCopy)) {\n ;(mergedField as FieldWithSubFields).fields = mergeBaseFields(\n matchCopy.fields,\n baseField.fields,\n )\n }\n\n mergedFields.push(mergedField)\n } else {\n mergedFields.push(baseField)\n }\n }\n })\n\n return mergedFields\n}\n\nexport default mergeBaseFields\n"],"names":["merge","fieldAffectsData","fieldHasSubFields","mergeBaseFields","fields","baseFields","mergedFields","forEach","baseField","matchedIndex","match","find","field","i","name","matchCopy","splice","mergedField","push"],"mappings":"AAAA,OAAOA,WAAW,YAAW;AAI7B,SAASC,gBAAgB,EAAEC,iBAAiB,QAAQ,oBAAmB;AAEvE,MAAMC,kBAAkB,CAACC,QAAiBC;IACxC,MAAMC,eAAe;WAAKF,UAAU,EAAE;KAAE;IAExCC,WAAWE,OAAO,CAAC,CAACC;QAClB,IAAIC,eAAe;QAEnB,IAAIR,iBAAiBO,YAAY;YAC/B,MAAME,QAAQJ,aAAaK,IAAI,CAAC,CAACC,OAAOC;gBACtC,IAAIZ,iBAAiBW,UAAUA,MAAME,IAAI,KAAKN,UAAUM,IAAI,EAAE;oBAC5DL,eAAeI;oBACf,OAAO;gBACT;gBAEA,OAAO;YACT;YAEA,IAAIH,OAAO;gBACT,MAAMK,YAAmB;oBAAE,GAAGL,KAAK;gBAAC;gBACpCJ,aAAaU,MAAM,CAACP,cAAc;gBAElC,MAAMQ,cAAcjB,MAAaQ,WAAWO;gBAE5C,IAAIb,kBAAkBM,cAAcN,kBAAkBa,YAAY;oBAC9DE,YAAmCb,MAAM,GAAGD,gBAC5CY,UAAUX,MAAM,EAChBI,UAAUJ,MAAM;gBAEpB;gBAEAE,aAAaY,IAAI,CAACD;YACpB,OAAO;gBACLX,aAAaY,IAAI,CAACV;YACpB;QACF;IACF;IAEA,OAAOF;AACT;AAEA,eAAeH,gBAAe"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/fields/setDefaultBeforeDuplicate.ts"],"sourcesContent":["// default beforeDuplicate hook for required and unique fields\nimport type { FieldAffectingData, FieldHook } from './config/types.js'\n\nconst unique: FieldHook = ({ value }) => (typeof value === 'string' ? `${value} - Copy` : undefined)\nconst localizedUnique: FieldHook = ({ req, value }) =>\n value ? `${value} - ${req?.t('general:copy') ?? 'Copy'}` : undefined\nconst uniqueRequired: FieldHook = ({ value }) => `${value} - Copy`\nconst localizedUniqueRequired: FieldHook = ({ req, value }) =>\n `${value} - ${req?.t('general:copy') ?? 'Copy'}`\n\nexport const setDefaultBeforeDuplicate = (field: FieldAffectingData) => {\n if (\n (('required' in field && field.required) || field.unique) &&\n (!field.hooks?.beforeDuplicate ||\n (Array.isArray(field.hooks.beforeDuplicate) && field.hooks.beforeDuplicate.length === 0))\n ) {\n if ((field.type === 'text' || field.type === 'textarea') && field.required && field.unique) {\n field.hooks.beforeDuplicate = [field.localized ? localizedUniqueRequired : uniqueRequired]\n } else if (field.unique) {\n field.hooks.beforeDuplicate = [field.localized ? localizedUnique : unique]\n }\n }\n}\n"],"names":["unique","value","undefined","localizedUnique","req","t","uniqueRequired","localizedUniqueRequired","setDefaultBeforeDuplicate","field","required","hooks","beforeDuplicate","Array","isArray","length","type","localized"],"rangeMappings":";;;;;;;;;;;;;;;;;","mappings":"AAAA,8DAA8D;AAG9D,MAAMA,SAAoB,CAAC,EAAEC,KAAK,EAAE,GAAM,OAAOA,UAAU,WAAW,CAAC,EAAEA,MAAM,OAAO,CAAC,GAAGC;AAC1F,MAAMC,kBAA6B,CAAC,EAAEC,GAAG,EAAEH,KAAK,EAAE,GAChDA,QAAQ,CAAC,EAAEA,MAAM,GAAG,EAAEG,KAAKC,EAAE,mBAAmB,OAAO,CAAC,GAAGH;AAC7D,MAAMI,iBAA4B,CAAC,EAAEL,KAAK,EAAE,GAAK,CAAC,EAAEA,MAAM,OAAO,CAAC;AAClE,MAAMM,0BAAqC,CAAC,EAAEH,GAAG,EAAEH,KAAK,EAAE,GACxD,CAAC,EAAEA,MAAM,GAAG,EAAEG,KAAKC,EAAE,mBAAmB,OAAO,CAAC;AAElD,OAAO,MAAMG,4BAA4B,CAACC;IACxC,IACE,AAAC,CAAA,AAAC,cAAcA,SAASA,MAAMC,QAAQ,IAAKD,MAAMT,MAAM,AAAD,KACtD,CAAA,CAACS,MAAME,KAAK,EAAEC,mBACZC,MAAMC,OAAO,CAACL,MAAME,KAAK,CAACC,eAAe,KAAKH,MAAME,KAAK,CAACC,eAAe,CAACG,MAAM,KAAK,CAAC,GACzF;QACA,IAAI,AAACN,CAAAA,MAAMO,IAAI,KAAK,UAAUP,MAAMO,IAAI,KAAK,UAAS,KAAMP,MAAMC,QAAQ,IAAID,MAAMT,MAAM,EAAE;YAC1FS,MAAME,KAAK,CAACC,eAAe,GAAG;gBAACH,MAAMQ,SAAS,GAAGV,0BAA0BD;aAAe;QAC5F,OAAO,IAAIG,MAAMT,MAAM,EAAE;YACvBS,MAAME,KAAK,CAACC,eAAe,GAAG;gBAACH,MAAMQ,SAAS,GAAGd,kBAAkBH;aAAO;QAC5E;IACF;AACF,EAAC"}
1
+ {"version":3,"sources":["../../src/fields/setDefaultBeforeDuplicate.ts"],"sourcesContent":["// default beforeDuplicate hook for required and unique fields\nimport type { FieldAffectingData, FieldHook } from './config/types.js'\n\nconst unique: FieldHook = ({ value }) => (typeof value === 'string' ? `${value} - Copy` : undefined)\nconst localizedUnique: FieldHook = ({ req, value }) =>\n value ? `${value} - ${req?.t('general:copy') ?? 'Copy'}` : undefined\nconst uniqueRequired: FieldHook = ({ value }) => `${value} - Copy`\nconst localizedUniqueRequired: FieldHook = ({ req, value }) =>\n `${value} - ${req?.t('general:copy') ?? 'Copy'}`\n\nexport const setDefaultBeforeDuplicate = (field: FieldAffectingData) => {\n if (\n (('required' in field && field.required) || field.unique) &&\n (!field.hooks?.beforeDuplicate ||\n (Array.isArray(field.hooks.beforeDuplicate) && field.hooks.beforeDuplicate.length === 0))\n ) {\n if ((field.type === 'text' || field.type === 'textarea') && field.required && field.unique) {\n field.hooks.beforeDuplicate = [field.localized ? localizedUniqueRequired : uniqueRequired]\n } else if (field.unique) {\n field.hooks.beforeDuplicate = [field.localized ? localizedUnique : unique]\n }\n }\n}\n"],"names":["unique","value","undefined","localizedUnique","req","t","uniqueRequired","localizedUniqueRequired","setDefaultBeforeDuplicate","field","required","hooks","beforeDuplicate","Array","isArray","length","type","localized"],"mappings":"AAAA,8DAA8D;AAG9D,MAAMA,SAAoB,CAAC,EAAEC,KAAK,EAAE,GAAM,OAAOA,UAAU,WAAW,CAAC,EAAEA,MAAM,OAAO,CAAC,GAAGC;AAC1F,MAAMC,kBAA6B,CAAC,EAAEC,GAAG,EAAEH,KAAK,EAAE,GAChDA,QAAQ,CAAC,EAAEA,MAAM,GAAG,EAAEG,KAAKC,EAAE,mBAAmB,OAAO,CAAC,GAAGH;AAC7D,MAAMI,iBAA4B,CAAC,EAAEL,KAAK,EAAE,GAAK,CAAC,EAAEA,MAAM,OAAO,CAAC;AAClE,MAAMM,0BAAqC,CAAC,EAAEH,GAAG,EAAEH,KAAK,EAAE,GACxD,CAAC,EAAEA,MAAM,GAAG,EAAEG,KAAKC,EAAE,mBAAmB,OAAO,CAAC;AAElD,OAAO,MAAMG,4BAA4B,CAACC;IACxC,IACE,AAAC,CAAA,AAAC,cAAcA,SAASA,MAAMC,QAAQ,IAAKD,MAAMT,MAAM,AAAD,KACtD,CAAA,CAACS,MAAME,KAAK,EAAEC,mBACZC,MAAMC,OAAO,CAACL,MAAME,KAAK,CAACC,eAAe,KAAKH,MAAME,KAAK,CAACC,eAAe,CAACG,MAAM,KAAK,CAAC,GACzF;QACA,IAAI,AAACN,CAAAA,MAAMO,IAAI,KAAK,UAAUP,MAAMO,IAAI,KAAK,UAAS,KAAMP,MAAMC,QAAQ,IAAID,MAAMT,MAAM,EAAE;YAC1FS,MAAME,KAAK,CAACC,eAAe,GAAG;gBAACH,MAAMQ,SAAS,GAAGV,0BAA0BD;aAAe;QAC5F,OAAO,IAAIG,MAAMT,MAAM,EAAE;YACvBS,MAAME,KAAK,CAACC,eAAe,GAAG;gBAACH,MAAMQ,SAAS,GAAGd,kBAAkBH;aAAO;QAC5E;IACF;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/fields/sortableFieldTypes.ts"],"sourcesContent":["export default ['text', 'textarea', 'code', 'json', 'number', 'email', 'radio', 'select', 'date']\n"],"names":[],"rangeMappings":";;;;;;;;;;","mappings":"AAAA,eAAe;IAAC;IAAQ;IAAY;IAAQ;IAAQ;IAAU;IAAS;IAAS;IAAU;CAAO,CAAA"}
1
+ {"version":3,"sources":["../../src/fields/sortableFieldTypes.ts"],"sourcesContent":["export default ['text', 'textarea', 'code', 'json', 'number', 'email', 'radio', 'select', 'date']\n"],"names":[],"mappings":"AAAA,eAAe;IAAC;IAAQ;IAAY;IAAQ;IAAQ;IAAU;IAAS;IAAS;IAAU;CAAO,CAAA"}
@@ -1,4 +1,3 @@
1
- /// <reference types="react" resolution-mode="require"/>
2
1
  import type { ArrayField, BlockField, CheckboxField, CodeField, DateField, EmailField, JSONField, NumberField, PointField, RadioField, RelationshipField, RelationshipValue, RichTextField, SelectField, TextField, TextareaField, UploadField, Validate } from './config/types.js';
3
2
  export declare const text: Validate<string | string[], unknown, unknown, TextField>;
4
3
  export declare const password: Validate<string, unknown, unknown, TextField>;
@@ -31,13 +30,13 @@ declare const _default: {
31
30
  className?: string;
32
31
  components?: {
33
32
  Cell?: import("../index.js").CustomComponent;
34
- Description?: import("../admin/types.js").DescriptionComponent;
33
+ Description?: import("../index.js").DescriptionComponent;
35
34
  Field?: import("../index.js").CustomComponent;
36
35
  Filter?: import("react").ComponentType<any>;
37
36
  };
38
- condition?: import("./config/types.js").Condition<any, any>;
37
+ condition?: import("./config/types.js").Condition;
39
38
  custom?: Record<string, any>;
40
- description?: import("../admin/types.js").Description;
39
+ description?: import("../index.js").Description;
41
40
  disableBulkEdit?: boolean;
42
41
  disableListColumn?: boolean;
43
42
  disableListFilter?: boolean;
@@ -49,10 +48,10 @@ declare const _default: {
49
48
  width?: string;
50
49
  } & {
51
50
  components?: {
52
- Error?: import("../index.js").CustomComponent<import("../admin/types.js").ErrorProps>;
53
- Label?: import("../index.js").CustomComponent<import("../admin/types.js").LabelProps>;
51
+ Error?: import("../index.js").CustomComponent<import("../index.js").ErrorProps>;
52
+ Label?: import("../index.js").CustomComponent<import("../index.js").LabelProps>;
54
53
  };
55
- editorOptions?: import("monaco-editor").editor.IStandaloneEditorConstructionOptions;
54
+ editorOptions?: import("@monaco-editor/react").EditorProps["options"];
56
55
  };
57
56
  jsonSchema?: Record<string, unknown>;
58
57
  type: "json";
@@ -1 +1 @@
1
- {"version":3,"file":"validations.d.ts","sourceRoot":"","sources":["../../src/fields/validations.ts"],"names":[],"mappings":";AAQA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,EACT,MAAM,mBAAmB,CAAA;AAK1B,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAkDzE,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CA8BlE,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAShE,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CA6BtE,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAS9D,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAgEvF,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CASvE,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAkB5D,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CActE,CAAA;AAgCD,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAgC7E,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAKnE,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAKlE,CAAA;AAkID,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAmBnE,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,QAAQ,CACjC,iBAAiB,EACjB,OAAO,EACP,OAAO,EACP,iBAAiB,CA0ElB,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAmCnE,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAYjE,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAqB5F,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,wBAkBC"}
1
+ {"version":3,"file":"validations.d.ts","sourceRoot":"","sources":["../../src/fields/validations.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,EACT,MAAM,mBAAmB,CAAA;AAK1B,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAkDzE,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CA8BlE,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAShE,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CA6BtE,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAS9D,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAgEvF,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CASvE,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAkB5D,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CActE,CAAA;AAgCD,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAgC7E,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAKnE,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAKlE,CAAA;AAkID,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAmBnE,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,QAAQ,CACjC,iBAAiB,EACjB,OAAO,EACP,OAAO,EACP,iBAAiB,CA0ElB,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAmCnE,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAYjE,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAqB5F,CAAA;;;;;;;;;;;;oBAjZyB,CAAC;2BAMzB,CAAC;qBAAgC,CAAC;sBAKhC,CAAF;;;;;;;;;;;;;;;;qBA2ZoB,CAAC;qBAAuC,CAAC;;;;;;;oBAjgBiB,MAAM;;;;;;;;;;;;;AA8etF,wBAkBC"}
@@ -259,7 +259,7 @@ const validateFilterOptions = async (value, { id, data, filterOptions, relationT
259
259
  if (typeof filterOptions !== 'undefined' && value) {
260
260
  const options = {};
261
261
  const falseCollections = [];
262
- const collections = typeof relationTo === 'string' ? [
262
+ const collections = !Array.isArray(relationTo) ? [
263
263
  relationTo
264
264
  ] : relationTo;
265
265
  const values = Array.isArray(value) ? value : [