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/validations.ts"],"sourcesContent":["import Ajv from 'ajv'\nimport ObjectIdImport from 'bson-objectid'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\nimport type { RichTextAdapter } from '../admin/types.js'\nimport type { Where } from '../types/index.js'\nimport type {\n ArrayField,\n BlockField,\n CheckboxField,\n CodeField,\n DateField,\n EmailField,\n JSONField,\n NumberField,\n PointField,\n RadioField,\n RelationshipField,\n RelationshipValue,\n RichTextField,\n SelectField,\n TextField,\n TextareaField,\n UploadField,\n Validate,\n} from './config/types.js'\n\nimport { isNumber } from '../utilities/isNumber.js'\nimport { isValidID } from '../utilities/isValidID.js'\n\nexport const text: Validate<string | string[], unknown, unknown, TextField> = (\n value,\n {\n hasMany,\n maxLength: fieldMaxLength,\n maxRows,\n minLength,\n minRows,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (!required) {\n if (!value) return true\n }\n\n if (hasMany === true) {\n const lengthValidationResult = validateArrayLength(value, { maxRows, minRows, required, t })\n if (typeof lengthValidationResult === 'string') return lengthValidationResult\n }\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength\n\n const stringsToValidate: string[] = Array.isArray(value) ? value : [value]\n\n for (const stringValue of stringsToValidate) {\n const length = stringValue?.length || 0\n\n if (typeof maxLength === 'number' && length > maxLength) {\n return t('validation:shorterThanMax', { label: t('general:value'), maxLength, stringValue })\n }\n\n if (typeof minLength === 'number' && length < minLength) {\n return t('validation:longerThanMin', { label: t('general:value'), minLength, stringValue })\n }\n }\n\n if (required) {\n if (!(typeof value === 'string' || Array.isArray(value)) || value?.length === 0) {\n return t('validation:required')\n }\n }\n\n return true\n}\n\nexport const password: Validate<string, unknown, unknown, TextField> = (\n value,\n {\n maxLength: fieldMaxLength,\n minLength,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength\n\n if (value && maxLength && value.length > maxLength) {\n return t('validation:shorterThanMax', { maxLength })\n }\n\n if (value && minLength && value.length < minLength) {\n return t('validation:longerThanMin', { minLength })\n }\n\n if (required && !value) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const email: Validate<string, unknown, unknown, EmailField> = (\n value,\n { req: { t }, required },\n) => {\n if ((value && !/\\S[^\\s@]*@\\S+\\.\\S+/.test(value)) || (!value && required)) {\n return t('validation:emailAddress')\n }\n\n return true\n}\n\nexport const textarea: Validate<string, unknown, unknown, TextareaField> = (\n value,\n {\n maxLength: fieldMaxLength,\n minLength,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength\n if (value && maxLength && value.length > maxLength) {\n return t('validation:shorterThanMax', { maxLength })\n }\n\n if (value && minLength && value.length < minLength) {\n return t('validation:longerThanMin', { minLength })\n }\n\n if (required && !value) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const code: Validate<string, unknown, unknown, CodeField> = (\n value,\n { req: { t }, required },\n) => {\n if (required && value === undefined) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const json: Validate<string, unknown, unknown, JSONField & { jsonError?: string }> = async (\n value,\n { jsonError, jsonSchema, req: { t }, required },\n) => {\n const isNotEmpty = (value) => {\n if (value === undefined || value === null) {\n return false\n }\n\n if (Array.isArray(value) && value.length === 0) {\n return false\n }\n\n if (typeof value === 'object' && Object.keys(value).length === 0) {\n return false\n }\n\n return true\n }\n\n const fetchSchema = ({ schema, uri }: Record<string, unknown>) => {\n if (uri && schema) return schema\n // @ts-expect-error\n return fetch(uri)\n .then((response) => {\n if (!response.ok) {\n throw new Error('Network response was not ok')\n }\n return response.json()\n })\n .then((json) => {\n const jsonSchemaSanitizations = {\n id: undefined,\n $id: json.id,\n $schema: 'http://json-schema.org/draft-07/schema#',\n }\n\n return Object.assign(json, jsonSchemaSanitizations)\n })\n }\n\n if (required && !value) {\n return t('validation:required')\n }\n\n if (jsonError !== undefined) {\n return t('validation:invalidInput')\n }\n\n if (jsonSchema && isNotEmpty(value)) {\n try {\n jsonSchema.schema = await fetchSchema(jsonSchema)\n const { schema } = jsonSchema\n // @ts-expect-error\n const ajv = new Ajv()\n\n if (!ajv.validate(schema, value)) {\n return t(ajv.errorsText())\n }\n } catch (error) {\n return t(error.message)\n }\n }\n return true\n}\n\nexport const checkbox: Validate<boolean, unknown, unknown, CheckboxField> = (\n value,\n { req: { t }, required },\n) => {\n if ((value && typeof value !== 'boolean') || (required && typeof value !== 'boolean')) {\n return t('validation:trueOrFalse')\n }\n\n return true\n}\n\nexport const date: Validate<Date, unknown, unknown, DateField> = (\n value,\n { req: { t }, required },\n) => {\n if (value && !isNaN(Date.parse(value.toString()))) {\n /* eslint-disable-line */\n return true\n }\n\n if (value) {\n return t('validation:notValidDate', { value })\n }\n\n if (required) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const richText: Validate<object, unknown, unknown, RichTextField> = async (\n value,\n options,\n) => {\n if (!options?.editor) {\n throw new Error('richText field has no editor property.')\n }\n if (typeof options?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n const editor: RichTextAdapter = options?.editor\n\n return editor.validate(value, options)\n}\n\nconst validateArrayLength = (\n value,\n options: {\n maxRows?: number\n minRows?: number\n required?: boolean\n t: (key: string, options?: { [key: string]: number | string }) => string\n },\n) => {\n const { maxRows, minRows, required, t } = options\n\n const arrayLength = Array.isArray(value) ? value.length : value || 0\n\n if (!required && arrayLength === 0) return true\n\n if (minRows && arrayLength < minRows) {\n return t('validation:requiresAtLeast', { count: minRows, label: t('general:rows') })\n }\n\n if (maxRows && arrayLength > maxRows) {\n return t('validation:requiresNoMoreThan', { count: maxRows, label: t('general:rows') })\n }\n\n if (required && !arrayLength) {\n return t('validation:requiresAtLeast', { count: 1, label: t('general:row') })\n }\n\n return true\n}\n\nexport const number: Validate<number | number[], unknown, unknown, NumberField> = (\n value,\n { hasMany, max, maxRows, min, minRows, req: { t }, required },\n) => {\n if (hasMany === true) {\n const lengthValidationResult = validateArrayLength(value, { maxRows, minRows, required, t })\n if (typeof lengthValidationResult === 'string') return lengthValidationResult\n }\n\n if (!value && !isNumber(value)) {\n // if no value is present, validate based on required\n if (required) return t('validation:required')\n if (!required) return true\n }\n\n const numbersToValidate: number[] = Array.isArray(value) ? value : [value]\n\n for (const number of numbersToValidate) {\n if (!isNumber(number)) return t('validation:enterNumber')\n\n const numberValue = parseFloat(number as unknown as string)\n\n if (typeof max === 'number' && numberValue > max) {\n return t('validation:greaterThanMax', { label: t('general:value'), max, value })\n }\n\n if (typeof min === 'number' && numberValue < min) {\n return t('validation:lessThanMin', { label: t('general:value'), min, value })\n }\n }\n\n return true\n}\n\nexport const array: Validate<unknown[], unknown, unknown, ArrayField> = (\n value,\n { maxRows, minRows, req: { t }, required },\n) => {\n return validateArrayLength(value, { maxRows, minRows, required, t })\n}\n\nexport const blocks: Validate<unknown, unknown, unknown, BlockField> = (\n value,\n { maxRows, minRows, req: { t }, required },\n) => {\n return validateArrayLength(value, { maxRows, minRows, required, t })\n}\n\nconst validateFilterOptions: Validate<\n unknown,\n unknown,\n unknown,\n RelationshipField | UploadField\n> = async (\n value,\n { id, data, filterOptions, relationTo, req, req: { payload, t, user }, siblingData },\n) => {\n if (typeof filterOptions !== 'undefined' && value) {\n const options: {\n [collection: string]: (number | string)[]\n } = {}\n\n const falseCollections: string[] = []\n const collections = typeof relationTo === 'string' ? [relationTo] : relationTo\n const values = Array.isArray(value) ? value : [value]\n\n for (const collection of collections) {\n try {\n let optionFilter =\n typeof filterOptions === 'function'\n ? await filterOptions({\n id,\n data,\n relationTo: collection,\n siblingData,\n user,\n })\n : filterOptions\n\n if (optionFilter === true) {\n optionFilter = null\n }\n\n const valueIDs: (number | string)[] = []\n\n values.forEach((val) => {\n if (typeof val === 'object') {\n if (val?.value) {\n valueIDs.push(val.value)\n } else if (ObjectId.isValid(val)) {\n valueIDs.push(new ObjectId(val).toHexString())\n }\n }\n\n if (typeof val === 'string' || typeof val === 'number') {\n valueIDs.push(val)\n }\n })\n\n if (valueIDs.length > 0) {\n const findWhere: Where = {\n and: [{ id: { in: valueIDs } }],\n }\n\n if (optionFilter && optionFilter !== true) findWhere.and.push(optionFilter)\n\n if (optionFilter === false) {\n falseCollections.push(collection)\n }\n\n const result = await payload.find({\n collection,\n depth: 0,\n limit: 0,\n pagination: false,\n req,\n where: findWhere,\n })\n\n options[collection] = result.docs.map((doc) => doc.id)\n } else {\n options[collection] = []\n }\n } catch (err) {\n req.payload.logger.error({\n err,\n msg: `Error validating filter options for collection ${collection}`,\n })\n options[collection] = []\n }\n }\n\n const invalidRelationships = values.filter((val) => {\n let collection: string\n let requestedID: number | string\n\n if (typeof relationTo === 'string') {\n collection = relationTo\n\n if (typeof val === 'string' || typeof val === 'number') {\n requestedID = val\n }\n\n if (typeof val === 'object' && ObjectId.isValid(val)) {\n requestedID = new ObjectId(val).toHexString()\n }\n }\n\n if (Array.isArray(relationTo) && typeof val === 'object' && val?.relationTo) {\n collection = val.relationTo\n requestedID = val.value\n }\n\n if (falseCollections.find((slug) => relationTo === slug)) {\n return true\n }\n\n if (!options[collection]) return true\n\n return options[collection].indexOf(requestedID) === -1\n })\n\n if (invalidRelationships.length > 0) {\n return invalidRelationships.reduce((err, invalid, i) => {\n return `${err} ${JSON.stringify(invalid)}${\n invalidRelationships.length === i + 1 ? ',' : ''\n } `\n }, t('validation:invalidSelections')) as string\n }\n\n return true\n }\n\n return true\n}\n\nexport const upload: Validate<unknown, unknown, unknown, UploadField> = (\n value: string,\n options,\n) => {\n if (!value && options.required) {\n return options?.req?.t('validation:required')\n }\n\n if (typeof value !== 'undefined' && value !== null) {\n const idType =\n options?.req?.payload?.collections[options.relationTo]?.customIDType ||\n options?.req?.payload?.db?.defaultIDType\n\n if (!isValidID(value, idType)) {\n return options.req?.t('validation:validUploadID')\n }\n }\n\n return validateFilterOptions(value, options)\n}\n\nexport const relationship: Validate<\n RelationshipValue,\n unknown,\n unknown,\n RelationshipField\n> = async (value, options) => {\n const {\n maxRows,\n minRows,\n relationTo,\n req: { payload, t },\n required,\n } = options\n\n if (\n ((!value && typeof value !== 'number') || (Array.isArray(value) && value.length === 0)) &&\n required\n ) {\n return t('validation:required')\n }\n\n if (Array.isArray(value) && value.length > 0) {\n if (minRows && value.length < minRows) {\n return t('validation:lessThanMin', {\n label: t('general:rows'),\n min: minRows,\n value: value.length,\n })\n }\n\n if (maxRows && value.length > maxRows) {\n return t('validation:greaterThanMax', {\n label: t('general:rows'),\n max: maxRows,\n value: value.length,\n })\n }\n }\n\n if (typeof value !== 'undefined' && value !== null) {\n const values = Array.isArray(value) ? value : [value]\n\n const invalidRelationships = values.filter((val) => {\n let collectionSlug: string\n let requestedID\n\n if (typeof relationTo === 'string') {\n collectionSlug = relationTo\n\n // custom id\n if (val || typeof val === 'number') {\n requestedID = val\n }\n }\n\n if (Array.isArray(relationTo) && typeof val === 'object' && val?.relationTo) {\n collectionSlug = val.relationTo\n requestedID = val.value\n }\n\n if (requestedID === null) return false\n\n const idType =\n payload.collections[collectionSlug]?.customIDType || payload?.db?.defaultIDType || 'text'\n\n return !isValidID(requestedID, idType)\n })\n\n if (invalidRelationships.length > 0) {\n return `This relationship field has the following invalid relationships: ${invalidRelationships\n .map((err, invalid) => {\n return `${err} ${JSON.stringify(invalid)}`\n })\n .join(', ')}`\n }\n }\n\n return validateFilterOptions(value, options)\n}\n\nexport const select: Validate<unknown, unknown, unknown, SelectField> = (\n value,\n { hasMany, options, req: { t }, required },\n) => {\n if (\n Array.isArray(value) &&\n value.some(\n (input) =>\n !options.some(\n (option) => option === input || (typeof option !== 'string' && option?.value === input),\n ),\n )\n ) {\n return t('validation:invalidSelection')\n }\n\n if (\n typeof value === 'string' &&\n !options.some(\n (option) => option === value || (typeof option !== 'string' && option.value === value),\n )\n ) {\n return t('validation:invalidSelection')\n }\n\n if (\n required &&\n (typeof value === 'undefined' ||\n value === null ||\n (hasMany && Array.isArray(value) && (value as [])?.length === 0))\n ) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const radio: Validate<unknown, unknown, unknown, RadioField> = (\n value,\n { options, req: { t }, required },\n) => {\n if (value) {\n const valueMatchesOption = options.some(\n (option) => option === value || (typeof option !== 'string' && option.value === value),\n )\n return valueMatchesOption || t('validation:invalidSelection')\n }\n\n return required ? t('validation:required') : true\n}\n\nexport const point: Validate<[number | string, number | string], unknown, unknown, PointField> = (\n value = ['', ''],\n { req: { t }, required },\n) => {\n const lng = parseFloat(String(value[0]))\n const lat = parseFloat(String(value[1]))\n if (\n required &&\n ((value[0] && value[1] && typeof lng !== 'number' && typeof lat !== 'number') ||\n Number.isNaN(lng) ||\n Number.isNaN(lat) ||\n (Array.isArray(value) && value.length !== 2))\n ) {\n return t('validation:requiresTwoNumbers')\n }\n\n if ((value[1] && Number.isNaN(lng)) || (value[0] && Number.isNaN(lat))) {\n return t('validation:invalidInput')\n }\n\n return true\n}\n\nexport default {\n array,\n blocks,\n checkbox,\n code,\n date,\n email,\n json,\n number,\n password,\n point,\n radio,\n relationship,\n richText,\n select,\n text,\n textarea,\n upload,\n}\n"],"names":["Ajv","ObjectIdImport","ObjectId","default","isNumber","isValidID","text","value","hasMany","maxLength","fieldMaxLength","maxRows","minLength","minRows","req","payload","config","t","required","lengthValidationResult","validateArrayLength","defaultMaxTextLength","stringsToValidate","Array","isArray","stringValue","length","label","password","email","test","textarea","code","undefined","json","jsonError","jsonSchema","isNotEmpty","Object","keys","fetchSchema","schema","uri","fetch","then","response","ok","Error","jsonSchemaSanitizations","id","$id","$schema","assign","ajv","validate","errorsText","error","message","checkbox","date","isNaN","Date","parse","toString","richText","options","editor","arrayLength","count","number","max","min","numbersToValidate","numberValue","parseFloat","array","blocks","validateFilterOptions","data","filterOptions","relationTo","user","siblingData","falseCollections","collections","values","collection","optionFilter","valueIDs","forEach","val","push","isValid","toHexString","findWhere","and","in","result","find","depth","limit","pagination","where","docs","map","doc","err","logger","msg","invalidRelationships","filter","requestedID","slug","indexOf","reduce","invalid","i","JSON","stringify","upload","idType","customIDType","db","defaultIDType","relationship","collectionSlug","join","select","some","input","option","radio","valueMatchesOption","point","lng","String","lat","Number"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../src/fields/validations.ts"],"sourcesContent":["import Ajv from 'ajv'\nimport ObjectIdImport from 'bson-objectid'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\nimport type { RichTextAdapter } from '../admin/types.js'\nimport type { CollectionSlug } from '../index.js'\nimport type { Where } from '../types/index.js'\nimport type {\n ArrayField,\n BlockField,\n CheckboxField,\n CodeField,\n DateField,\n EmailField,\n JSONField,\n NumberField,\n PointField,\n RadioField,\n RelationshipField,\n RelationshipValue,\n RichTextField,\n SelectField,\n TextField,\n TextareaField,\n UploadField,\n Validate,\n} from './config/types.js'\n\nimport { isNumber } from '../utilities/isNumber.js'\nimport { isValidID } from '../utilities/isValidID.js'\n\nexport const text: Validate<string | string[], unknown, unknown, TextField> = (\n value,\n {\n hasMany,\n maxLength: fieldMaxLength,\n maxRows,\n minLength,\n minRows,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (!required) {\n if (!value) return true\n }\n\n if (hasMany === true) {\n const lengthValidationResult = validateArrayLength(value, { maxRows, minRows, required, t })\n if (typeof lengthValidationResult === 'string') return lengthValidationResult\n }\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength\n\n const stringsToValidate: string[] = Array.isArray(value) ? value : [value]\n\n for (const stringValue of stringsToValidate) {\n const length = stringValue?.length || 0\n\n if (typeof maxLength === 'number' && length > maxLength) {\n return t('validation:shorterThanMax', { label: t('general:value'), maxLength, stringValue })\n }\n\n if (typeof minLength === 'number' && length < minLength) {\n return t('validation:longerThanMin', { label: t('general:value'), minLength, stringValue })\n }\n }\n\n if (required) {\n if (!(typeof value === 'string' || Array.isArray(value)) || value?.length === 0) {\n return t('validation:required')\n }\n }\n\n return true\n}\n\nexport const password: Validate<string, unknown, unknown, TextField> = (\n value,\n {\n maxLength: fieldMaxLength,\n minLength,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength\n\n if (value && maxLength && value.length > maxLength) {\n return t('validation:shorterThanMax', { maxLength })\n }\n\n if (value && minLength && value.length < minLength) {\n return t('validation:longerThanMin', { minLength })\n }\n\n if (required && !value) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const email: Validate<string, unknown, unknown, EmailField> = (\n value,\n { req: { t }, required },\n) => {\n if ((value && !/\\S[^\\s@]*@\\S+\\.\\S+/.test(value)) || (!value && required)) {\n return t('validation:emailAddress')\n }\n\n return true\n}\n\nexport const textarea: Validate<string, unknown, unknown, TextareaField> = (\n value,\n {\n maxLength: fieldMaxLength,\n minLength,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength\n if (value && maxLength && value.length > maxLength) {\n return t('validation:shorterThanMax', { maxLength })\n }\n\n if (value && minLength && value.length < minLength) {\n return t('validation:longerThanMin', { minLength })\n }\n\n if (required && !value) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const code: Validate<string, unknown, unknown, CodeField> = (\n value,\n { req: { t }, required },\n) => {\n if (required && value === undefined) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const json: Validate<string, unknown, unknown, JSONField & { jsonError?: string }> = async (\n value,\n { jsonError, jsonSchema, req: { t }, required },\n) => {\n const isNotEmpty = (value) => {\n if (value === undefined || value === null) {\n return false\n }\n\n if (Array.isArray(value) && value.length === 0) {\n return false\n }\n\n if (typeof value === 'object' && Object.keys(value).length === 0) {\n return false\n }\n\n return true\n }\n\n const fetchSchema = ({ schema, uri }: Record<string, unknown>) => {\n if (uri && schema) return schema\n // @ts-expect-error\n return fetch(uri)\n .then((response) => {\n if (!response.ok) {\n throw new Error('Network response was not ok')\n }\n return response.json()\n })\n .then((json) => {\n const jsonSchemaSanitizations = {\n id: undefined,\n $id: json.id,\n $schema: 'http://json-schema.org/draft-07/schema#',\n }\n\n return Object.assign(json, jsonSchemaSanitizations)\n })\n }\n\n if (required && !value) {\n return t('validation:required')\n }\n\n if (jsonError !== undefined) {\n return t('validation:invalidInput')\n }\n\n if (jsonSchema && isNotEmpty(value)) {\n try {\n jsonSchema.schema = await fetchSchema(jsonSchema)\n const { schema } = jsonSchema\n // @ts-expect-error\n const ajv = new Ajv()\n\n if (!ajv.validate(schema, value)) {\n return t(ajv.errorsText())\n }\n } catch (error) {\n return t(error.message)\n }\n }\n return true\n}\n\nexport const checkbox: Validate<boolean, unknown, unknown, CheckboxField> = (\n value,\n { req: { t }, required },\n) => {\n if ((value && typeof value !== 'boolean') || (required && typeof value !== 'boolean')) {\n return t('validation:trueOrFalse')\n }\n\n return true\n}\n\nexport const date: Validate<Date, unknown, unknown, DateField> = (\n value,\n { req: { t }, required },\n) => {\n if (value && !isNaN(Date.parse(value.toString()))) {\n /* eslint-disable-line */\n return true\n }\n\n if (value) {\n return t('validation:notValidDate', { value })\n }\n\n if (required) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const richText: Validate<object, unknown, unknown, RichTextField> = async (\n value,\n options,\n) => {\n if (!options?.editor) {\n throw new Error('richText field has no editor property.')\n }\n if (typeof options?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n const editor: RichTextAdapter = options?.editor\n\n return editor.validate(value, options)\n}\n\nconst validateArrayLength = (\n value,\n options: {\n maxRows?: number\n minRows?: number\n required?: boolean\n t: (key: string, options?: { [key: string]: number | string }) => string\n },\n) => {\n const { maxRows, minRows, required, t } = options\n\n const arrayLength = Array.isArray(value) ? value.length : value || 0\n\n if (!required && arrayLength === 0) return true\n\n if (minRows && arrayLength < minRows) {\n return t('validation:requiresAtLeast', { count: minRows, label: t('general:rows') })\n }\n\n if (maxRows && arrayLength > maxRows) {\n return t('validation:requiresNoMoreThan', { count: maxRows, label: t('general:rows') })\n }\n\n if (required && !arrayLength) {\n return t('validation:requiresAtLeast', { count: 1, label: t('general:row') })\n }\n\n return true\n}\n\nexport const number: Validate<number | number[], unknown, unknown, NumberField> = (\n value,\n { hasMany, max, maxRows, min, minRows, req: { t }, required },\n) => {\n if (hasMany === true) {\n const lengthValidationResult = validateArrayLength(value, { maxRows, minRows, required, t })\n if (typeof lengthValidationResult === 'string') return lengthValidationResult\n }\n\n if (!value && !isNumber(value)) {\n // if no value is present, validate based on required\n if (required) return t('validation:required')\n if (!required) return true\n }\n\n const numbersToValidate: number[] = Array.isArray(value) ? value : [value]\n\n for (const number of numbersToValidate) {\n if (!isNumber(number)) return t('validation:enterNumber')\n\n const numberValue = parseFloat(number as unknown as string)\n\n if (typeof max === 'number' && numberValue > max) {\n return t('validation:greaterThanMax', { label: t('general:value'), max, value })\n }\n\n if (typeof min === 'number' && numberValue < min) {\n return t('validation:lessThanMin', { label: t('general:value'), min, value })\n }\n }\n\n return true\n}\n\nexport const array: Validate<unknown[], unknown, unknown, ArrayField> = (\n value,\n { maxRows, minRows, req: { t }, required },\n) => {\n return validateArrayLength(value, { maxRows, minRows, required, t })\n}\n\nexport const blocks: Validate<unknown, unknown, unknown, BlockField> = (\n value,\n { maxRows, minRows, req: { t }, required },\n) => {\n return validateArrayLength(value, { maxRows, minRows, required, t })\n}\n\nconst validateFilterOptions: Validate<\n unknown,\n unknown,\n unknown,\n RelationshipField | UploadField\n> = async (\n value,\n { id, data, filterOptions, relationTo, req, req: { payload, t, user }, siblingData },\n) => {\n if (typeof filterOptions !== 'undefined' && value) {\n const options: {\n [collection: string]: (number | string)[]\n } = {}\n\n const falseCollections: CollectionSlug[] = []\n const collections = !Array.isArray(relationTo) ? [relationTo] : relationTo\n const values = Array.isArray(value) ? value : [value]\n\n for (const collection of collections) {\n try {\n let optionFilter =\n typeof filterOptions === 'function'\n ? await filterOptions({\n id,\n data,\n relationTo: collection,\n siblingData,\n user,\n })\n : filterOptions\n\n if (optionFilter === true) {\n optionFilter = null\n }\n\n const valueIDs: (number | string)[] = []\n\n values.forEach((val) => {\n if (typeof val === 'object') {\n if (val?.value) {\n valueIDs.push(val.value)\n } else if (ObjectId.isValid(val)) {\n valueIDs.push(new ObjectId(val).toHexString())\n }\n }\n\n if (typeof val === 'string' || typeof val === 'number') {\n valueIDs.push(val)\n }\n })\n\n if (valueIDs.length > 0) {\n const findWhere: Where = {\n and: [{ id: { in: valueIDs } }],\n }\n\n if (optionFilter && optionFilter !== true) findWhere.and.push(optionFilter)\n\n if (optionFilter === false) {\n falseCollections.push(collection)\n }\n\n const result = await payload.find({\n collection,\n depth: 0,\n limit: 0,\n pagination: false,\n req,\n where: findWhere,\n })\n\n options[collection] = result.docs.map((doc) => doc.id)\n } else {\n options[collection] = []\n }\n } catch (err) {\n req.payload.logger.error({\n err,\n msg: `Error validating filter options for collection ${collection}`,\n })\n options[collection] = []\n }\n }\n\n const invalidRelationships = values.filter((val) => {\n let collection: string\n let requestedID: number | string\n\n if (typeof relationTo === 'string') {\n collection = relationTo\n\n if (typeof val === 'string' || typeof val === 'number') {\n requestedID = val\n }\n\n if (typeof val === 'object' && ObjectId.isValid(val)) {\n requestedID = new ObjectId(val).toHexString()\n }\n }\n\n if (Array.isArray(relationTo) && typeof val === 'object' && val?.relationTo) {\n collection = val.relationTo\n requestedID = val.value\n }\n\n if (falseCollections.find((slug) => relationTo === slug)) {\n return true\n }\n\n if (!options[collection]) return true\n\n return options[collection].indexOf(requestedID) === -1\n })\n\n if (invalidRelationships.length > 0) {\n return invalidRelationships.reduce((err, invalid, i) => {\n return `${err} ${JSON.stringify(invalid)}${\n invalidRelationships.length === i + 1 ? ',' : ''\n } `\n }, t('validation:invalidSelections')) as string\n }\n\n return true\n }\n\n return true\n}\n\nexport const upload: Validate<unknown, unknown, unknown, UploadField> = (\n value: string,\n options,\n) => {\n if (!value && options.required) {\n return options?.req?.t('validation:required')\n }\n\n if (typeof value !== 'undefined' && value !== null) {\n const idType =\n options?.req?.payload?.collections[options.relationTo]?.customIDType ||\n options?.req?.payload?.db?.defaultIDType\n\n if (!isValidID(value, idType)) {\n return options.req?.t('validation:validUploadID')\n }\n }\n\n return validateFilterOptions(value, options)\n}\n\nexport const relationship: Validate<\n RelationshipValue,\n unknown,\n unknown,\n RelationshipField\n> = async (value, options) => {\n const {\n maxRows,\n minRows,\n relationTo,\n req: { payload, t },\n required,\n } = options\n\n if (\n ((!value && typeof value !== 'number') || (Array.isArray(value) && value.length === 0)) &&\n required\n ) {\n return t('validation:required')\n }\n\n if (Array.isArray(value) && value.length > 0) {\n if (minRows && value.length < minRows) {\n return t('validation:lessThanMin', {\n label: t('general:rows'),\n min: minRows,\n value: value.length,\n })\n }\n\n if (maxRows && value.length > maxRows) {\n return t('validation:greaterThanMax', {\n label: t('general:rows'),\n max: maxRows,\n value: value.length,\n })\n }\n }\n\n if (typeof value !== 'undefined' && value !== null) {\n const values = Array.isArray(value) ? value : [value]\n\n const invalidRelationships = values.filter((val) => {\n let collectionSlug: string\n let requestedID\n\n if (typeof relationTo === 'string') {\n collectionSlug = relationTo\n\n // custom id\n if (val || typeof val === 'number') {\n requestedID = val\n }\n }\n\n if (Array.isArray(relationTo) && typeof val === 'object' && val?.relationTo) {\n collectionSlug = val.relationTo\n requestedID = val.value\n }\n\n if (requestedID === null) return false\n\n const idType =\n payload.collections[collectionSlug]?.customIDType || payload?.db?.defaultIDType || 'text'\n\n return !isValidID(requestedID, idType)\n })\n\n if (invalidRelationships.length > 0) {\n return `This relationship field has the following invalid relationships: ${invalidRelationships\n .map((err, invalid) => {\n return `${err} ${JSON.stringify(invalid)}`\n })\n .join(', ')}`\n }\n }\n\n return validateFilterOptions(value, options)\n}\n\nexport const select: Validate<unknown, unknown, unknown, SelectField> = (\n value,\n { hasMany, options, req: { t }, required },\n) => {\n if (\n Array.isArray(value) &&\n value.some(\n (input) =>\n !options.some(\n (option) => option === input || (typeof option !== 'string' && option?.value === input),\n ),\n )\n ) {\n return t('validation:invalidSelection')\n }\n\n if (\n typeof value === 'string' &&\n !options.some(\n (option) => option === value || (typeof option !== 'string' && option.value === value),\n )\n ) {\n return t('validation:invalidSelection')\n }\n\n if (\n required &&\n (typeof value === 'undefined' ||\n value === null ||\n (hasMany && Array.isArray(value) && (value as [])?.length === 0))\n ) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const radio: Validate<unknown, unknown, unknown, RadioField> = (\n value,\n { options, req: { t }, required },\n) => {\n if (value) {\n const valueMatchesOption = options.some(\n (option) => option === value || (typeof option !== 'string' && option.value === value),\n )\n return valueMatchesOption || t('validation:invalidSelection')\n }\n\n return required ? t('validation:required') : true\n}\n\nexport const point: Validate<[number | string, number | string], unknown, unknown, PointField> = (\n value = ['', ''],\n { req: { t }, required },\n) => {\n const lng = parseFloat(String(value[0]))\n const lat = parseFloat(String(value[1]))\n if (\n required &&\n ((value[0] && value[1] && typeof lng !== 'number' && typeof lat !== 'number') ||\n Number.isNaN(lng) ||\n Number.isNaN(lat) ||\n (Array.isArray(value) && value.length !== 2))\n ) {\n return t('validation:requiresTwoNumbers')\n }\n\n if ((value[1] && Number.isNaN(lng)) || (value[0] && Number.isNaN(lat))) {\n return t('validation:invalidInput')\n }\n\n return true\n}\n\nexport default {\n array,\n blocks,\n checkbox,\n code,\n date,\n email,\n json,\n number,\n password,\n point,\n radio,\n relationship,\n richText,\n select,\n text,\n textarea,\n upload,\n}\n"],"names":["Ajv","ObjectIdImport","ObjectId","default","isNumber","isValidID","text","value","hasMany","maxLength","fieldMaxLength","maxRows","minLength","minRows","req","payload","config","t","required","lengthValidationResult","validateArrayLength","defaultMaxTextLength","stringsToValidate","Array","isArray","stringValue","length","label","password","email","test","textarea","code","undefined","json","jsonError","jsonSchema","isNotEmpty","Object","keys","fetchSchema","schema","uri","fetch","then","response","ok","Error","jsonSchemaSanitizations","id","$id","$schema","assign","ajv","validate","errorsText","error","message","checkbox","date","isNaN","Date","parse","toString","richText","options","editor","arrayLength","count","number","max","min","numbersToValidate","numberValue","parseFloat","array","blocks","validateFilterOptions","data","filterOptions","relationTo","user","siblingData","falseCollections","collections","values","collection","optionFilter","valueIDs","forEach","val","push","isValid","toHexString","findWhere","and","in","result","find","depth","limit","pagination","where","docs","map","doc","err","logger","msg","invalidRelationships","filter","requestedID","slug","indexOf","reduce","invalid","i","JSON","stringify","upload","idType","customIDType","db","defaultIDType","relationship","collectionSlug","join","select","some","input","option","radio","valueMatchesOption","point","lng","String","lat","Number"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/fields/validations.spec.ts"],"sourcesContent":["import type { ValidateOptions } from './config/types.js'\nimport { jest } from '@jest/globals'\n\nimport { number, password, point, relationship, select, text, textarea } from './validations.js'\n\nconst t = jest.fn((string) => string)\n\nlet options: ValidateOptions<any, any, any> = {\n data: undefined,\n operation: 'create',\n siblingData: undefined,\n req: {\n t,\n context: {},\n payload: {\n config: {\n db: {\n defaultIDType: 'text',\n init: () => null,\n },\n },\n },\n },\n}\n\ndescribe('Field Validations', () => {\n describe('text', () => {\n it('should validate', () => {\n const val = 'test'\n const result = text(val, options)\n expect(result).toBe(true)\n })\n it('should show required message', () => {\n const val = undefined\n const result = text(val, { ...options, required: true })\n expect(result).toBe('validation:required')\n })\n it('should handle undefined', () => {\n const val = undefined\n const result = text(val, options)\n expect(result).toBe(true)\n })\n it('should validate maxLength', () => {\n const val = 'toolong'\n const result = text(val, { ...options, maxLength: 5 })\n expect(result).toBe('validation:shorterThanMax')\n })\n it('should validate minLength', () => {\n const val = 'short'\n const result = text(val, { ...options, minLength: 10 })\n expect(result).toBe('validation:longerThanMin')\n })\n it('should validate maxLength with no value', () => {\n const val = undefined\n const result = text(val, { ...options, maxLength: 5 })\n expect(result).toBe(true)\n })\n it('should validate minLength with no value', () => {\n const val = undefined\n const result = text(val, { ...options, minLength: 10 })\n expect(result).toBe(true)\n })\n it('should validate an array of texts', async () => {\n const val = ['test']\n const result = text(val, { ...options, hasMany: true })\n expect(result).toBe(true)\n })\n it('should handle required array of texts', async () => {\n const val = ['test']\n const result = text(val, { ...options, hasMany: true, required: true })\n expect(result).toBe(true)\n })\n })\n\n describe('textarea', () => {\n options = { ...options, field: { name: 'test', type: 'textarea' } }\n it('should validate', () => {\n const val = 'test'\n const result = textarea(val, options)\n expect(result).toBe(true)\n })\n it('should show required message', () => {\n const val = undefined\n const result = textarea(val, { ...options, required: true })\n expect(result).toBe('validation:required')\n })\n\n it('should handle undefined', () => {\n const val = undefined\n const result = textarea(val, options)\n expect(result).toBe(true)\n })\n it('should validate maxLength', () => {\n const val = 'toolong'\n const result = textarea(val, { ...options, maxLength: 5 })\n expect(result).toBe('validation:shorterThanMax')\n })\n\n it('should validate minLength', () => {\n const val = 'short'\n const result = textarea(val, { ...options, minLength: 10 })\n expect(result).toBe('validation:longerThanMin')\n })\n it('should validate maxLength with no value', () => {\n const val = undefined\n const result = textarea(val, { ...options, maxLength: 5 })\n expect(result).toBe(true)\n })\n it('should validate minLength with no value', () => {\n const val = undefined\n const result = textarea(val, { ...options, minLength: 10 })\n expect(result).toBe(true)\n })\n })\n\n describe('password', () => {\n const passwordOptions = {\n ...options,\n name: 'test',\n type: 'password',\n }\n it('should validate', () => {\n const val = 'test'\n const result = password(val, passwordOptions)\n expect(result).toBe(true)\n })\n it('should show required message', () => {\n const val = undefined\n const result = password(val, { ...passwordOptions, required: true })\n expect(result).toBe('validation:required')\n })\n it('should handle undefined', () => {\n const val = undefined\n const result = password(val, passwordOptions)\n expect(result).toBe(true)\n })\n it('should validate maxLength', () => {\n const val = 'toolong'\n const result = password(val, { ...passwordOptions, maxLength: 5 })\n expect(result).toBe('validation:shorterThanMax')\n })\n it('should validate minLength', () => {\n const val = 'short'\n const result = password(val, { ...passwordOptions, minLength: 10 })\n expect(result).toBe('validation:longerThanMin')\n })\n it('should validate maxLength with no value', () => {\n const val = undefined\n const result = password(val, { ...passwordOptions, maxLength: 5 })\n expect(result).toBe(true)\n })\n it('should validate minLength with no value', () => {\n const val = undefined\n const result = password(val, { ...passwordOptions, minLength: 10 })\n expect(result).toBe(true)\n })\n })\n\n describe('point', () => {\n const pointOptions = {\n ...options,\n name: 'point',\n type: 'point',\n }\n it('should validate numbers', () => {\n const val = ['0.1', '0.2']\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should validate strings that could be numbers', () => {\n const val = ['0.1', '0.2']\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should show required message when undefined', () => {\n const val = undefined\n const result = point(val, { ...pointOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should show required message when array', () => {\n const val = []\n const result = point(val, { ...pointOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should show required message when array of undefined', () => {\n const val = [undefined, undefined]\n const result = point(val, { ...pointOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should handle undefined not required', () => {\n const val = undefined\n const result = password(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should handle empty array not required', () => {\n const val = []\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should handle array of undefined not required', () => {\n const val = [undefined, undefined]\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should prevent text input', () => {\n const val = ['bad', 'input']\n const result = point(val, pointOptions)\n expect(result).not.toBe(true)\n })\n it('should prevent missing value', () => {\n const val = [0.1]\n const result = point(val, pointOptions)\n expect(result).not.toBe(true)\n })\n })\n\n describe('relationship', () => {\n const relationCollection = {\n fields: [\n {\n name: 'id',\n type: 'text',\n },\n ],\n slug: 'relation',\n }\n\n const relationshipOptions = {\n ...options,\n req: {\n ...options.req,\n payload: {\n ...options.req.payload,\n config: {\n collections: [relationCollection],\n },\n collections: {\n relation: {\n config: relationCollection,\n },\n },\n },\n },\n relationTo: 'relation',\n }\n it('should handle required', async () => {\n const val = undefined\n const result = await relationship(val, { ...relationshipOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should handle required with hasMany', async () => {\n const val = []\n const result = await relationship(val, {\n ...relationshipOptions,\n hasMany: true,\n required: true,\n })\n expect(result).not.toBe(true)\n })\n it('should enforce hasMany min', async () => {\n const minOptions = {\n ...relationshipOptions,\n hasMany: true,\n minRows: 2,\n }\n\n const val = ['a']\n\n const result = await relationship(val, minOptions)\n expect(result).not.toBe(true)\n\n const allowed = await relationship(['a', 'b'], minOptions)\n expect(allowed).toStrictEqual(true)\n })\n it('should enforce hasMany max', async () => {\n const maxOptions = {\n ...relationshipOptions,\n hasMany: true,\n maxRows: 2,\n }\n let val = ['a', 'b', 'c']\n\n const result = await relationship(val, maxOptions)\n expect(result).not.toBe(true)\n\n val = ['a']\n const allowed = await relationship(val, maxOptions)\n expect(allowed).toStrictEqual(true)\n })\n })\n\n describe('select', () => {\n const selectOptions = {\n ...options,\n options: ['one', 'two', 'three'],\n type: 'select',\n }\n const optionsRequired = {\n ...selectOptions,\n options: [\n {\n label: 'One',\n value: 'one',\n },\n {\n label: 'two',\n value: 'two',\n },\n {\n label: 'three',\n value: 'three',\n },\n ],\n required: true,\n }\n const optionsWithEmptyString = {\n ...selectOptions,\n options: [\n {\n label: 'None',\n value: '',\n },\n {\n label: 'Option',\n value: 'option',\n },\n ],\n }\n it('should allow valid input', () => {\n const val = 'one'\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input', () => {\n const val = 'bad'\n const result = select(val, selectOptions)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow null input', () => {\n const val = null\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should allow undefined input', () => {\n let val\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should prevent empty string input', () => {\n const val = ''\n const result = select(val, selectOptions)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent undefined input with required', () => {\n let val\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent empty string input with required', () => {\n const result = select('', optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent undefined input with required and hasMany', () => {\n let val\n options.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent empty array input with required and hasMany', () => {\n optionsRequired.hasMany = true\n const result = select([], optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent empty string array input with required and hasMany', () => {\n options.hasMany = true\n const result = select([''], optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent null input with required and hasMany', () => {\n const val = null\n options.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow valid input with option objects', () => {\n const val = 'one'\n options.hasMany = false\n const result = select(val, optionsRequired)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input with option objects', () => {\n const val = 'bad'\n options.hasMany = false\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow empty string input with option object', () => {\n const val = ''\n const result = select(val, optionsWithEmptyString)\n expect(result).toStrictEqual(true)\n })\n it('should allow empty string input with option object and required', () => {\n const val = ''\n optionsWithEmptyString.required = true\n const result = select(val, optionsWithEmptyString)\n expect(result).toStrictEqual(true)\n })\n it('should allow valid input with hasMany', () => {\n const val = ['one', 'two']\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input with hasMany', () => {\n const val = ['one', 'bad']\n const result = select(val, selectOptions)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow valid input with hasMany option objects', () => {\n const val = ['one', 'three']\n optionsRequired.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input with hasMany option objects', () => {\n const val = ['three', 'bad']\n optionsRequired.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n })\n describe('number', () => {\n const numberOptions = {\n ...options,\n name: 'test',\n type: 'number',\n }\n it('should validate', () => {\n const val = 1\n const result = number(val, numberOptions)\n expect(result).toBe(true)\n })\n it('should validate 0', () => {\n const val = 0\n const result = number(val, { ...numberOptions, required: true })\n expect(result).toBe(true)\n })\n it('should validate 2', () => {\n const val = 1.5\n const result = number(val, numberOptions)\n expect(result).toBe(true)\n })\n it('should show invalid number message', () => {\n const val = 'test'\n const result = number(val, { ...numberOptions })\n expect(result).toBe('validation:enterNumber')\n })\n it('should handle empty value', () => {\n const val = ''\n const result = number(val, { ...numberOptions })\n expect(result).toBe(true)\n })\n it('should handle required value', () => {\n const val = ''\n const result = number(val, { ...numberOptions, required: true })\n expect(result).toBe('validation:required')\n })\n it('should validate minValue', () => {\n const val = 2.4\n const result = number(val, { ...numberOptions, min: 2.5 })\n expect(result).toBe('validation:lessThanMin')\n })\n it('should validate maxValue', () => {\n const val = 1.25\n const result = number(val, { ...numberOptions, max: 1 })\n expect(result).toBe('validation:greaterThanMax')\n })\n it('should validate an array of numbers', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true })\n expect(result).toBe(true)\n })\n it('should validate an array of numbers using min', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true, min: 3 })\n expect(result).toBe('validation:lessThanMin')\n })\n it('should validate an array of numbers using max', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true, max: 1 })\n expect(result).toBe('validation:greaterThanMax')\n })\n it('should validate an array of numbers using minRows', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true, minRows: 4 })\n expect(result).toBe('validation:requiresAtLeast')\n })\n it('should validate an array of numbers using maxRows', async () => {\n const val = [1.25, 2.5, 3.5]\n const result = number(val, { ...numberOptions, hasMany: true, maxRows: 2 })\n expect(result).toBe('validation:requiresNoMoreThan')\n })\n })\n})\n"],"names":["jest","number","password","point","relationship","select","text","textarea","t","fn","string","options","data","undefined","operation","siblingData","req","context","payload","config","db","defaultIDType","init","describe","it","val","result","expect","toBe","required","maxLength","minLength","hasMany","field","name","type","passwordOptions","pointOptions","not","relationCollection","fields","slug","relationshipOptions","collections","relation","relationTo","minOptions","minRows","allowed","toStrictEqual","maxOptions","maxRows","selectOptions","optionsRequired","label","value","optionsWithEmptyString","numberOptions","min","max"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../src/fields/validations.spec.ts"],"sourcesContent":["import type { ValidateOptions } from './config/types.js'\nimport { jest } from '@jest/globals'\n\nimport { number, password, point, relationship, select, text, textarea } from './validations.js'\n\nconst t = jest.fn((string) => string)\n\nlet options: ValidateOptions<any, any, any> = {\n data: undefined,\n operation: 'create',\n siblingData: undefined,\n req: {\n t,\n context: {},\n payload: {\n config: {\n db: {\n defaultIDType: 'text',\n init: () => null,\n },\n },\n },\n },\n}\n\ndescribe('Field Validations', () => {\n describe('text', () => {\n it('should validate', () => {\n const val = 'test'\n const result = text(val, options)\n expect(result).toBe(true)\n })\n it('should show required message', () => {\n const val = undefined\n const result = text(val, { ...options, required: true })\n expect(result).toBe('validation:required')\n })\n it('should handle undefined', () => {\n const val = undefined\n const result = text(val, options)\n expect(result).toBe(true)\n })\n it('should validate maxLength', () => {\n const val = 'toolong'\n const result = text(val, { ...options, maxLength: 5 })\n expect(result).toBe('validation:shorterThanMax')\n })\n it('should validate minLength', () => {\n const val = 'short'\n const result = text(val, { ...options, minLength: 10 })\n expect(result).toBe('validation:longerThanMin')\n })\n it('should validate maxLength with no value', () => {\n const val = undefined\n const result = text(val, { ...options, maxLength: 5 })\n expect(result).toBe(true)\n })\n it('should validate minLength with no value', () => {\n const val = undefined\n const result = text(val, { ...options, minLength: 10 })\n expect(result).toBe(true)\n })\n it('should validate an array of texts', async () => {\n const val = ['test']\n const result = text(val, { ...options, hasMany: true })\n expect(result).toBe(true)\n })\n it('should handle required array of texts', async () => {\n const val = ['test']\n const result = text(val, { ...options, hasMany: true, required: true })\n expect(result).toBe(true)\n })\n })\n\n describe('textarea', () => {\n options = { ...options, field: { name: 'test', type: 'textarea' } }\n it('should validate', () => {\n const val = 'test'\n const result = textarea(val, options)\n expect(result).toBe(true)\n })\n it('should show required message', () => {\n const val = undefined\n const result = textarea(val, { ...options, required: true })\n expect(result).toBe('validation:required')\n })\n\n it('should handle undefined', () => {\n const val = undefined\n const result = textarea(val, options)\n expect(result).toBe(true)\n })\n it('should validate maxLength', () => {\n const val = 'toolong'\n const result = textarea(val, { ...options, maxLength: 5 })\n expect(result).toBe('validation:shorterThanMax')\n })\n\n it('should validate minLength', () => {\n const val = 'short'\n const result = textarea(val, { ...options, minLength: 10 })\n expect(result).toBe('validation:longerThanMin')\n })\n it('should validate maxLength with no value', () => {\n const val = undefined\n const result = textarea(val, { ...options, maxLength: 5 })\n expect(result).toBe(true)\n })\n it('should validate minLength with no value', () => {\n const val = undefined\n const result = textarea(val, { ...options, minLength: 10 })\n expect(result).toBe(true)\n })\n })\n\n describe('password', () => {\n const passwordOptions = {\n ...options,\n name: 'test',\n type: 'password',\n }\n it('should validate', () => {\n const val = 'test'\n const result = password(val, passwordOptions)\n expect(result).toBe(true)\n })\n it('should show required message', () => {\n const val = undefined\n const result = password(val, { ...passwordOptions, required: true })\n expect(result).toBe('validation:required')\n })\n it('should handle undefined', () => {\n const val = undefined\n const result = password(val, passwordOptions)\n expect(result).toBe(true)\n })\n it('should validate maxLength', () => {\n const val = 'toolong'\n const result = password(val, { ...passwordOptions, maxLength: 5 })\n expect(result).toBe('validation:shorterThanMax')\n })\n it('should validate minLength', () => {\n const val = 'short'\n const result = password(val, { ...passwordOptions, minLength: 10 })\n expect(result).toBe('validation:longerThanMin')\n })\n it('should validate maxLength with no value', () => {\n const val = undefined\n const result = password(val, { ...passwordOptions, maxLength: 5 })\n expect(result).toBe(true)\n })\n it('should validate minLength with no value', () => {\n const val = undefined\n const result = password(val, { ...passwordOptions, minLength: 10 })\n expect(result).toBe(true)\n })\n })\n\n describe('point', () => {\n const pointOptions = {\n ...options,\n name: 'point',\n type: 'point',\n }\n it('should validate numbers', () => {\n const val = ['0.1', '0.2']\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should validate strings that could be numbers', () => {\n const val = ['0.1', '0.2']\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should show required message when undefined', () => {\n const val = undefined\n const result = point(val, { ...pointOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should show required message when array', () => {\n const val = []\n const result = point(val, { ...pointOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should show required message when array of undefined', () => {\n const val = [undefined, undefined]\n const result = point(val, { ...pointOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should handle undefined not required', () => {\n const val = undefined\n const result = password(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should handle empty array not required', () => {\n const val = []\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should handle array of undefined not required', () => {\n const val = [undefined, undefined]\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should prevent text input', () => {\n const val = ['bad', 'input']\n const result = point(val, pointOptions)\n expect(result).not.toBe(true)\n })\n it('should prevent missing value', () => {\n const val = [0.1]\n const result = point(val, pointOptions)\n expect(result).not.toBe(true)\n })\n })\n\n describe('relationship', () => {\n const relationCollection = {\n fields: [\n {\n name: 'id',\n type: 'text',\n },\n ],\n slug: 'relation',\n }\n\n const relationshipOptions = {\n ...options,\n req: {\n ...options.req,\n payload: {\n ...options.req.payload,\n config: {\n collections: [relationCollection],\n },\n collections: {\n relation: {\n config: relationCollection,\n },\n },\n },\n },\n relationTo: 'relation',\n }\n it('should handle required', async () => {\n const val = undefined\n const result = await relationship(val, { ...relationshipOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should handle required with hasMany', async () => {\n const val = []\n const result = await relationship(val, {\n ...relationshipOptions,\n hasMany: true,\n required: true,\n })\n expect(result).not.toBe(true)\n })\n it('should enforce hasMany min', async () => {\n const minOptions = {\n ...relationshipOptions,\n hasMany: true,\n minRows: 2,\n }\n\n const val = ['a']\n\n const result = await relationship(val, minOptions)\n expect(result).not.toBe(true)\n\n const allowed = await relationship(['a', 'b'], minOptions)\n expect(allowed).toStrictEqual(true)\n })\n it('should enforce hasMany max', async () => {\n const maxOptions = {\n ...relationshipOptions,\n hasMany: true,\n maxRows: 2,\n }\n let val = ['a', 'b', 'c']\n\n const result = await relationship(val, maxOptions)\n expect(result).not.toBe(true)\n\n val = ['a']\n const allowed = await relationship(val, maxOptions)\n expect(allowed).toStrictEqual(true)\n })\n })\n\n describe('select', () => {\n const selectOptions = {\n ...options,\n options: ['one', 'two', 'three'],\n type: 'select',\n }\n const optionsRequired = {\n ...selectOptions,\n options: [\n {\n label: 'One',\n value: 'one',\n },\n {\n label: 'two',\n value: 'two',\n },\n {\n label: 'three',\n value: 'three',\n },\n ],\n required: true,\n }\n const optionsWithEmptyString = {\n ...selectOptions,\n options: [\n {\n label: 'None',\n value: '',\n },\n {\n label: 'Option',\n value: 'option',\n },\n ],\n }\n it('should allow valid input', () => {\n const val = 'one'\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input', () => {\n const val = 'bad'\n const result = select(val, selectOptions)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow null input', () => {\n const val = null\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should allow undefined input', () => {\n let val\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should prevent empty string input', () => {\n const val = ''\n const result = select(val, selectOptions)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent undefined input with required', () => {\n let val\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent empty string input with required', () => {\n const result = select('', optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent undefined input with required and hasMany', () => {\n let val\n options.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent empty array input with required and hasMany', () => {\n optionsRequired.hasMany = true\n const result = select([], optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent empty string array input with required and hasMany', () => {\n options.hasMany = true\n const result = select([''], optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent null input with required and hasMany', () => {\n const val = null\n options.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow valid input with option objects', () => {\n const val = 'one'\n options.hasMany = false\n const result = select(val, optionsRequired)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input with option objects', () => {\n const val = 'bad'\n options.hasMany = false\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow empty string input with option object', () => {\n const val = ''\n const result = select(val, optionsWithEmptyString)\n expect(result).toStrictEqual(true)\n })\n it('should allow empty string input with option object and required', () => {\n const val = ''\n optionsWithEmptyString.required = true\n const result = select(val, optionsWithEmptyString)\n expect(result).toStrictEqual(true)\n })\n it('should allow valid input with hasMany', () => {\n const val = ['one', 'two']\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input with hasMany', () => {\n const val = ['one', 'bad']\n const result = select(val, selectOptions)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow valid input with hasMany option objects', () => {\n const val = ['one', 'three']\n optionsRequired.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input with hasMany option objects', () => {\n const val = ['three', 'bad']\n optionsRequired.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n })\n describe('number', () => {\n const numberOptions = {\n ...options,\n name: 'test',\n type: 'number',\n }\n it('should validate', () => {\n const val = 1\n const result = number(val, numberOptions)\n expect(result).toBe(true)\n })\n it('should validate 0', () => {\n const val = 0\n const result = number(val, { ...numberOptions, required: true })\n expect(result).toBe(true)\n })\n it('should validate 2', () => {\n const val = 1.5\n const result = number(val, numberOptions)\n expect(result).toBe(true)\n })\n it('should show invalid number message', () => {\n const val = 'test'\n const result = number(val, { ...numberOptions })\n expect(result).toBe('validation:enterNumber')\n })\n it('should handle empty value', () => {\n const val = ''\n const result = number(val, { ...numberOptions })\n expect(result).toBe(true)\n })\n it('should handle required value', () => {\n const val = ''\n const result = number(val, { ...numberOptions, required: true })\n expect(result).toBe('validation:required')\n })\n it('should validate minValue', () => {\n const val = 2.4\n const result = number(val, { ...numberOptions, min: 2.5 })\n expect(result).toBe('validation:lessThanMin')\n })\n it('should validate maxValue', () => {\n const val = 1.25\n const result = number(val, { ...numberOptions, max: 1 })\n expect(result).toBe('validation:greaterThanMax')\n })\n it('should validate an array of numbers', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true })\n expect(result).toBe(true)\n })\n it('should validate an array of numbers using min', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true, min: 3 })\n expect(result).toBe('validation:lessThanMin')\n })\n it('should validate an array of numbers using max', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true, max: 1 })\n expect(result).toBe('validation:greaterThanMax')\n })\n it('should validate an array of numbers using minRows', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true, minRows: 4 })\n expect(result).toBe('validation:requiresAtLeast')\n })\n it('should validate an array of numbers using maxRows', async () => {\n const val = [1.25, 2.5, 3.5]\n const result = number(val, { ...numberOptions, hasMany: true, maxRows: 2 })\n expect(result).toBe('validation:requiresNoMoreThan')\n })\n })\n})\n"],"names":["jest","number","password","point","relationship","select","text","textarea","t","fn","string","options","data","undefined","operation","siblingData","req","context","payload","config","db","defaultIDType","init","describe","it","val","result","expect","toBe","required","maxLength","minLength","hasMany","field","name","type","passwordOptions","pointOptions","not","relationCollection","fields","slug","relationshipOptions","collections","relation","relationTo","minOptions","minRows","allowed","toStrictEqual","maxOptions","maxRows","selectOptions","optionsRequired","label","value","optionsWithEmptyString","numberOptions","min","max"],"mappings":"AACA,SAASA,IAAI,QAAQ,gBAAe;AAEpC,SAASC,MAAM,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,YAAY,EAAEC,MAAM,EAAEC,IAAI,EAAEC,QAAQ,QAAQ,mBAAkB;AAEhG,MAAMC,IAAIR,KAAKS,EAAE,CAAC,CAACC,SAAWA;AAE9B,IAAIC,UAA0C;IAC5CC,MAAMC;IACNC,WAAW;IACXC,aAAaF;IACbG,KAAK;QACHR;QACAS,SAAS,CAAC;QACVC,SAAS;YACPC,QAAQ;gBACNC,IAAI;oBACFC,eAAe;oBACfC,MAAM,IAAM;gBACd;YACF;QACF;IACF;AACF;AAEAC,SAAS,qBAAqB;IAC5BA,SAAS,QAAQ;QACfC,GAAG,mBAAmB;YACpB,MAAMC,MAAM;YACZ,MAAMC,SAASpB,KAAKmB,KAAKd;YACzBgB,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,gCAAgC;YACjC,MAAMC,MAAMZ;YACZ,MAAMa,SAASpB,KAAKmB,KAAK;gBAAE,GAAGd,OAAO;gBAAEkB,UAAU;YAAK;YACtDF,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,2BAA2B;YAC5B,MAAMC,MAAMZ;YACZ,MAAMa,SAASpB,KAAKmB,KAAKd;YACzBgB,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,6BAA6B;YAC9B,MAAMC,MAAM;YACZ,MAAMC,SAASpB,KAAKmB,KAAK;gBAAE,GAAGd,OAAO;gBAAEmB,WAAW;YAAE;YACpDH,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,6BAA6B;YAC9B,MAAMC,MAAM;YACZ,MAAMC,SAASpB,KAAKmB,KAAK;gBAAE,GAAGd,OAAO;gBAAEoB,WAAW;YAAG;YACrDJ,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,2CAA2C;YAC5C,MAAMC,MAAMZ;YACZ,MAAMa,SAASpB,KAAKmB,KAAK;gBAAE,GAAGd,OAAO;gBAAEmB,WAAW;YAAE;YACpDH,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,2CAA2C;YAC5C,MAAMC,MAAMZ;YACZ,MAAMa,SAASpB,KAAKmB,KAAK;gBAAE,GAAGd,OAAO;gBAAEoB,WAAW;YAAG;YACrDJ,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,qCAAqC;YACtC,MAAMC,MAAM;gBAAC;aAAO;YACpB,MAAMC,SAASpB,KAAKmB,KAAK;gBAAE,GAAGd,OAAO;gBAAEqB,SAAS;YAAK;YACrDL,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,yCAAyC;YAC1C,MAAMC,MAAM;gBAAC;aAAO;YACpB,MAAMC,SAASpB,KAAKmB,KAAK;gBAAE,GAAGd,OAAO;gBAAEqB,SAAS;gBAAMH,UAAU;YAAK;YACrEF,OAAOD,QAAQE,IAAI,CAAC;QACtB;IACF;IAEAL,SAAS,YAAY;QACnBZ,UAAU;YAAE,GAAGA,OAAO;YAAEsB,OAAO;gBAAEC,MAAM;gBAAQC,MAAM;YAAW;QAAE;QAClEX,GAAG,mBAAmB;YACpB,MAAMC,MAAM;YACZ,MAAMC,SAASnB,SAASkB,KAAKd;YAC7BgB,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,gCAAgC;YACjC,MAAMC,MAAMZ;YACZ,MAAMa,SAASnB,SAASkB,KAAK;gBAAE,GAAGd,OAAO;gBAAEkB,UAAU;YAAK;YAC1DF,OAAOD,QAAQE,IAAI,CAAC;QACtB;QAEAJ,GAAG,2BAA2B;YAC5B,MAAMC,MAAMZ;YACZ,MAAMa,SAASnB,SAASkB,KAAKd;YAC7BgB,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,6BAA6B;YAC9B,MAAMC,MAAM;YACZ,MAAMC,SAASnB,SAASkB,KAAK;gBAAE,GAAGd,OAAO;gBAAEmB,WAAW;YAAE;YACxDH,OAAOD,QAAQE,IAAI,CAAC;QACtB;QAEAJ,GAAG,6BAA6B;YAC9B,MAAMC,MAAM;YACZ,MAAMC,SAASnB,SAASkB,KAAK;gBAAE,GAAGd,OAAO;gBAAEoB,WAAW;YAAG;YACzDJ,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,2CAA2C;YAC5C,MAAMC,MAAMZ;YACZ,MAAMa,SAASnB,SAASkB,KAAK;gBAAE,GAAGd,OAAO;gBAAEmB,WAAW;YAAE;YACxDH,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,2CAA2C;YAC5C,MAAMC,MAAMZ;YACZ,MAAMa,SAASnB,SAASkB,KAAK;gBAAE,GAAGd,OAAO;gBAAEoB,WAAW;YAAG;YACzDJ,OAAOD,QAAQE,IAAI,CAAC;QACtB;IACF;IAEAL,SAAS,YAAY;QACnB,MAAMa,kBAAkB;YACtB,GAAGzB,OAAO;YACVuB,MAAM;YACNC,MAAM;QACR;QACAX,GAAG,mBAAmB;YACpB,MAAMC,MAAM;YACZ,MAAMC,SAASxB,SAASuB,KAAKW;YAC7BT,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,gCAAgC;YACjC,MAAMC,MAAMZ;YACZ,MAAMa,SAASxB,SAASuB,KAAK;gBAAE,GAAGW,eAAe;gBAAEP,UAAU;YAAK;YAClEF,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,2BAA2B;YAC5B,MAAMC,MAAMZ;YACZ,MAAMa,SAASxB,SAASuB,KAAKW;YAC7BT,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,6BAA6B;YAC9B,MAAMC,MAAM;YACZ,MAAMC,SAASxB,SAASuB,KAAK;gBAAE,GAAGW,eAAe;gBAAEN,WAAW;YAAE;YAChEH,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,6BAA6B;YAC9B,MAAMC,MAAM;YACZ,MAAMC,SAASxB,SAASuB,KAAK;gBAAE,GAAGW,eAAe;gBAAEL,WAAW;YAAG;YACjEJ,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,2CAA2C;YAC5C,MAAMC,MAAMZ;YACZ,MAAMa,SAASxB,SAASuB,KAAK;gBAAE,GAAGW,eAAe;gBAAEN,WAAW;YAAE;YAChEH,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,2CAA2C;YAC5C,MAAMC,MAAMZ;YACZ,MAAMa,SAASxB,SAASuB,KAAK;gBAAE,GAAGW,eAAe;gBAAEL,WAAW;YAAG;YACjEJ,OAAOD,QAAQE,IAAI,CAAC;QACtB;IACF;IAEAL,SAAS,SAAS;QAChB,MAAMc,eAAe;YACnB,GAAG1B,OAAO;YACVuB,MAAM;YACNC,MAAM;QACR;QACAX,GAAG,2BAA2B;YAC5B,MAAMC,MAAM;gBAAC;gBAAO;aAAM;YAC1B,MAAMC,SAASvB,MAAMsB,KAAKY;YAC1BV,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,iDAAiD;YAClD,MAAMC,MAAM;gBAAC;gBAAO;aAAM;YAC1B,MAAMC,SAASvB,MAAMsB,KAAKY;YAC1BV,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,+CAA+C;YAChD,MAAMC,MAAMZ;YACZ,MAAMa,SAASvB,MAAMsB,KAAK;gBAAE,GAAGY,YAAY;gBAAER,UAAU;YAAK;YAC5DF,OAAOD,QAAQY,GAAG,CAACV,IAAI,CAAC;QAC1B;QACAJ,GAAG,2CAA2C;YAC5C,MAAMC,MAAM,EAAE;YACd,MAAMC,SAASvB,MAAMsB,KAAK;gBAAE,GAAGY,YAAY;gBAAER,UAAU;YAAK;YAC5DF,OAAOD,QAAQY,GAAG,CAACV,IAAI,CAAC;QAC1B;QACAJ,GAAG,wDAAwD;YACzD,MAAMC,MAAM;gBAACZ;gBAAWA;aAAU;YAClC,MAAMa,SAASvB,MAAMsB,KAAK;gBAAE,GAAGY,YAAY;gBAAER,UAAU;YAAK;YAC5DF,OAAOD,QAAQY,GAAG,CAACV,IAAI,CAAC;QAC1B;QACAJ,GAAG,wCAAwC;YACzC,MAAMC,MAAMZ;YACZ,MAAMa,SAASxB,SAASuB,KAAKY;YAC7BV,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,0CAA0C;YAC3C,MAAMC,MAAM,EAAE;YACd,MAAMC,SAASvB,MAAMsB,KAAKY;YAC1BV,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,iDAAiD;YAClD,MAAMC,MAAM;gBAACZ;gBAAWA;aAAU;YAClC,MAAMa,SAASvB,MAAMsB,KAAKY;YAC1BV,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,6BAA6B;YAC9B,MAAMC,MAAM;gBAAC;gBAAO;aAAQ;YAC5B,MAAMC,SAASvB,MAAMsB,KAAKY;YAC1BV,OAAOD,QAAQY,GAAG,CAACV,IAAI,CAAC;QAC1B;QACAJ,GAAG,gCAAgC;YACjC,MAAMC,MAAM;gBAAC;aAAI;YACjB,MAAMC,SAASvB,MAAMsB,KAAKY;YAC1BV,OAAOD,QAAQY,GAAG,CAACV,IAAI,CAAC;QAC1B;IACF;IAEAL,SAAS,gBAAgB;QACvB,MAAMgB,qBAAqB;YACzBC,QAAQ;gBACN;oBACEN,MAAM;oBACNC,MAAM;gBACR;aACD;YACDM,MAAM;QACR;QAEA,MAAMC,sBAAsB;YAC1B,GAAG/B,OAAO;YACVK,KAAK;gBACH,GAAGL,QAAQK,GAAG;gBACdE,SAAS;oBACP,GAAGP,QAAQK,GAAG,CAACE,OAAO;oBACtBC,QAAQ;wBACNwB,aAAa;4BAACJ;yBAAmB;oBACnC;oBACAI,aAAa;wBACXC,UAAU;4BACRzB,QAAQoB;wBACV;oBACF;gBACF;YACF;YACAM,YAAY;QACd;QACArB,GAAG,0BAA0B;YAC3B,MAAMC,MAAMZ;YACZ,MAAMa,SAAS,MAAMtB,aAAaqB,KAAK;gBAAE,GAAGiB,mBAAmB;gBAAEb,UAAU;YAAK;YAChFF,OAAOD,QAAQY,GAAG,CAACV,IAAI,CAAC;QAC1B;QACAJ,GAAG,uCAAuC;YACxC,MAAMC,MAAM,EAAE;YACd,MAAMC,SAAS,MAAMtB,aAAaqB,KAAK;gBACrC,GAAGiB,mBAAmB;gBACtBV,SAAS;gBACTH,UAAU;YACZ;YACAF,OAAOD,QAAQY,GAAG,CAACV,IAAI,CAAC;QAC1B;QACAJ,GAAG,8BAA8B;YAC/B,MAAMsB,aAAa;gBACjB,GAAGJ,mBAAmB;gBACtBV,SAAS;gBACTe,SAAS;YACX;YAEA,MAAMtB,MAAM;gBAAC;aAAI;YAEjB,MAAMC,SAAS,MAAMtB,aAAaqB,KAAKqB;YACvCnB,OAAOD,QAAQY,GAAG,CAACV,IAAI,CAAC;YAExB,MAAMoB,UAAU,MAAM5C,aAAa;gBAAC;gBAAK;aAAI,EAAE0C;YAC/CnB,OAAOqB,SAASC,aAAa,CAAC;QAChC;QACAzB,GAAG,8BAA8B;YAC/B,MAAM0B,aAAa;gBACjB,GAAGR,mBAAmB;gBACtBV,SAAS;gBACTmB,SAAS;YACX;YACA,IAAI1B,MAAM;gBAAC;gBAAK;gBAAK;aAAI;YAEzB,MAAMC,SAAS,MAAMtB,aAAaqB,KAAKyB;YACvCvB,OAAOD,QAAQY,GAAG,CAACV,IAAI,CAAC;YAExBH,MAAM;gBAAC;aAAI;YACX,MAAMuB,UAAU,MAAM5C,aAAaqB,KAAKyB;YACxCvB,OAAOqB,SAASC,aAAa,CAAC;QAChC;IACF;IAEA1B,SAAS,UAAU;QACjB,MAAM6B,gBAAgB;YACpB,GAAGzC,OAAO;YACVA,SAAS;gBAAC;gBAAO;gBAAO;aAAQ;YAChCwB,MAAM;QACR;QACA,MAAMkB,kBAAkB;YACtB,GAAGD,aAAa;YAChBzC,SAAS;gBACP;oBACE2C,OAAO;oBACPC,OAAO;gBACT;gBACA;oBACED,OAAO;oBACPC,OAAO;gBACT;gBACA;oBACED,OAAO;oBACPC,OAAO;gBACT;aACD;YACD1B,UAAU;QACZ;QACA,MAAM2B,yBAAyB;YAC7B,GAAGJ,aAAa;YAChBzC,SAAS;gBACP;oBACE2C,OAAO;oBACPC,OAAO;gBACT;gBACA;oBACED,OAAO;oBACPC,OAAO;gBACT;aACD;QACH;QACA/B,GAAG,4BAA4B;YAC7B,MAAMC,MAAM;YACZ,MAAMC,SAASrB,OAAOoB,KAAK2B;YAC3BzB,OAAOD,QAAQuB,aAAa,CAAC;QAC/B;QACAzB,GAAG,gCAAgC;YACjC,MAAMC,MAAM;YACZ,MAAMC,SAASrB,OAAOoB,KAAK2B;YAC3BzB,OAAOD,QAAQY,GAAG,CAACW,aAAa,CAAC;QACnC;QACAzB,GAAG,2BAA2B;YAC5B,MAAMC,MAAM;YACZ,MAAMC,SAASrB,OAAOoB,KAAK2B;YAC3BzB,OAAOD,QAAQuB,aAAa,CAAC;QAC/B;QACAzB,GAAG,gCAAgC;YACjC,IAAIC;YACJ,MAAMC,SAASrB,OAAOoB,KAAK2B;YAC3BzB,OAAOD,QAAQuB,aAAa,CAAC;QAC/B;QACAzB,GAAG,qCAAqC;YACtC,MAAMC,MAAM;YACZ,MAAMC,SAASrB,OAAOoB,KAAK2B;YAC3BzB,OAAOD,QAAQY,GAAG,CAACW,aAAa,CAAC;QACnC;QACAzB,GAAG,gDAAgD;YACjD,IAAIC;YACJ,MAAMC,SAASrB,OAAOoB,KAAK4B;YAC3B1B,OAAOD,QAAQY,GAAG,CAACW,aAAa,CAAC;QACnC;QACAzB,GAAG,mDAAmD;YACpD,MAAME,SAASrB,OAAO,IAAIgD;YAC1B1B,OAAOD,QAAQY,GAAG,CAACW,aAAa,CAAC;QACnC;QACAzB,GAAG,4DAA4D;YAC7D,IAAIC;YACJd,QAAQqB,OAAO,GAAG;YAClB,MAAMN,SAASrB,OAAOoB,KAAK4B;YAC3B1B,OAAOD,QAAQY,GAAG,CAACW,aAAa,CAAC;QACnC;QACAzB,GAAG,8DAA8D;YAC/D6B,gBAAgBrB,OAAO,GAAG;YAC1B,MAAMN,SAASrB,OAAO,EAAE,EAAEgD;YAC1B1B,OAAOD,QAAQY,GAAG,CAACW,aAAa,CAAC;QACnC;QACAzB,GAAG,qEAAqE;YACtEb,QAAQqB,OAAO,GAAG;YAClB,MAAMN,SAASrB,OAAO;gBAAC;aAAG,EAAEgD;YAC5B1B,OAAOD,QAAQY,GAAG,CAACW,aAAa,CAAC;QACnC;QACAzB,GAAG,uDAAuD;YACxD,MAAMC,MAAM;YACZd,QAAQqB,OAAO,GAAG;YAClB,MAAMN,SAASrB,OAAOoB,KAAK4B;YAC3B1B,OAAOD,QAAQY,GAAG,CAACW,aAAa,CAAC;QACnC;QACAzB,GAAG,gDAAgD;YACjD,MAAMC,MAAM;YACZd,QAAQqB,OAAO,GAAG;YAClB,MAAMN,SAASrB,OAAOoB,KAAK4B;YAC3B1B,OAAOD,QAAQuB,aAAa,CAAC;QAC/B;QACAzB,GAAG,oDAAoD;YACrD,MAAMC,MAAM;YACZd,QAAQqB,OAAO,GAAG;YAClB,MAAMN,SAASrB,OAAOoB,KAAK4B;YAC3B1B,OAAOD,QAAQY,GAAG,CAACW,aAAa,CAAC;QACnC;QACAzB,GAAG,sDAAsD;YACvD,MAAMC,MAAM;YACZ,MAAMC,SAASrB,OAAOoB,KAAK+B;YAC3B7B,OAAOD,QAAQuB,aAAa,CAAC;QAC/B;QACAzB,GAAG,mEAAmE;YACpE,MAAMC,MAAM;YACZ+B,uBAAuB3B,QAAQ,GAAG;YAClC,MAAMH,SAASrB,OAAOoB,KAAK+B;YAC3B7B,OAAOD,QAAQuB,aAAa,CAAC;QAC/B;QACAzB,GAAG,yCAAyC;YAC1C,MAAMC,MAAM;gBAAC;gBAAO;aAAM;YAC1B,MAAMC,SAASrB,OAAOoB,KAAK2B;YAC3BzB,OAAOD,QAAQuB,aAAa,CAAC;QAC/B;QACAzB,GAAG,6CAA6C;YAC9C,MAAMC,MAAM;gBAAC;gBAAO;aAAM;YAC1B,MAAMC,SAASrB,OAAOoB,KAAK2B;YAC3BzB,OAAOD,QAAQY,GAAG,CAACW,aAAa,CAAC;QACnC;QACAzB,GAAG,wDAAwD;YACzD,MAAMC,MAAM;gBAAC;gBAAO;aAAQ;YAC5B4B,gBAAgBrB,OAAO,GAAG;YAC1B,MAAMN,SAASrB,OAAOoB,KAAK4B;YAC3B1B,OAAOD,QAAQuB,aAAa,CAAC;QAC/B;QACAzB,GAAG,4DAA4D;YAC7D,MAAMC,MAAM;gBAAC;gBAAS;aAAM;YAC5B4B,gBAAgBrB,OAAO,GAAG;YAC1B,MAAMN,SAASrB,OAAOoB,KAAK4B;YAC3B1B,OAAOD,QAAQY,GAAG,CAACW,aAAa,CAAC;QACnC;IACF;IACA1B,SAAS,UAAU;QACjB,MAAMkC,gBAAgB;YACpB,GAAG9C,OAAO;YACVuB,MAAM;YACNC,MAAM;QACR;QACAX,GAAG,mBAAmB;YACpB,MAAMC,MAAM;YACZ,MAAMC,SAASzB,OAAOwB,KAAKgC;YAC3B9B,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,qBAAqB;YACtB,MAAMC,MAAM;YACZ,MAAMC,SAASzB,OAAOwB,KAAK;gBAAE,GAAGgC,aAAa;gBAAE5B,UAAU;YAAK;YAC9DF,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,qBAAqB;YACtB,MAAMC,MAAM;YACZ,MAAMC,SAASzB,OAAOwB,KAAKgC;YAC3B9B,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,sCAAsC;YACvC,MAAMC,MAAM;YACZ,MAAMC,SAASzB,OAAOwB,KAAK;gBAAE,GAAGgC,aAAa;YAAC;YAC9C9B,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,6BAA6B;YAC9B,MAAMC,MAAM;YACZ,MAAMC,SAASzB,OAAOwB,KAAK;gBAAE,GAAGgC,aAAa;YAAC;YAC9C9B,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,gCAAgC;YACjC,MAAMC,MAAM;YACZ,MAAMC,SAASzB,OAAOwB,KAAK;gBAAE,GAAGgC,aAAa;gBAAE5B,UAAU;YAAK;YAC9DF,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,4BAA4B;YAC7B,MAAMC,MAAM;YACZ,MAAMC,SAASzB,OAAOwB,KAAK;gBAAE,GAAGgC,aAAa;gBAAEC,KAAK;YAAI;YACxD/B,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,4BAA4B;YAC7B,MAAMC,MAAM;YACZ,MAAMC,SAASzB,OAAOwB,KAAK;gBAAE,GAAGgC,aAAa;gBAAEE,KAAK;YAAE;YACtDhC,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,uCAAuC;YACxC,MAAMC,MAAM;gBAAC;gBAAM;aAAI;YACvB,MAAMC,SAASzB,OAAOwB,KAAK;gBAAE,GAAGgC,aAAa;gBAAEzB,SAAS;YAAK;YAC7DL,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,iDAAiD;YAClD,MAAMC,MAAM;gBAAC;gBAAM;aAAI;YACvB,MAAMC,SAASzB,OAAOwB,KAAK;gBAAE,GAAGgC,aAAa;gBAAEzB,SAAS;gBAAM0B,KAAK;YAAE;YACrE/B,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,iDAAiD;YAClD,MAAMC,MAAM;gBAAC;gBAAM;aAAI;YACvB,MAAMC,SAASzB,OAAOwB,KAAK;gBAAE,GAAGgC,aAAa;gBAAEzB,SAAS;gBAAM2B,KAAK;YAAE;YACrEhC,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,qDAAqD;YACtD,MAAMC,MAAM;gBAAC;gBAAM;aAAI;YACvB,MAAMC,SAASzB,OAAOwB,KAAK;gBAAE,GAAGgC,aAAa;gBAAEzB,SAAS;gBAAMe,SAAS;YAAE;YACzEpB,OAAOD,QAAQE,IAAI,CAAC;QACtB;QACAJ,GAAG,qDAAqD;YACtD,MAAMC,MAAM;gBAAC;gBAAM;gBAAK;aAAI;YAC5B,MAAMC,SAASzB,OAAOwB,KAAK;gBAAE,GAAGgC,aAAa;gBAAEzB,SAAS;gBAAMmB,SAAS;YAAE;YACzExB,OAAOD,QAAQE,IAAI,CAAC;QACtB;IACF;AACF"}
@@ -11,11 +11,11 @@ export type ClientGlobalConfig = Omit<SanitizedGlobalConfig, 'admin' | 'fields'
11
11
  fields: ClientFieldConfig[];
12
12
  };
13
13
  export declare const createClientGlobalConfig: ({ global, t, }: {
14
- global: SanitizedConfig['globals'][0];
14
+ global: SanitizedConfig["globals"][0];
15
15
  t: TFunction;
16
16
  }) => ClientGlobalConfig;
17
17
  export declare const createClientGlobalConfigs: ({ globals, t, }: {
18
- globals: SanitizedConfig['globals'];
18
+ globals: SanitizedConfig["globals"];
19
19
  t: TFunction;
20
20
  }) => ClientGlobalConfig[];
21
21
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/globals/config/client.ts"],"sourcesContent":["import type { TFunction } from '@payloadcms/translations'\n\nimport type {\n LivePreviewConfig,\n SanitizedConfig,\n ServerOnlyLivePreviewProperties,\n} from '../../config/types.js'\nimport type { ClientFieldConfig } from '../../fields/config/client.js'\nimport type { SanitizedGlobalConfig } from './types.js'\n\nimport { createClientFieldConfigs } from '../../fields/config/client.js'\n\nexport type ServerOnlyGlobalProperties = keyof Pick<\n SanitizedGlobalConfig,\n 'access' | 'admin' | 'custom' | 'endpoints' | 'fields' | 'hooks'\n>\nexport type ServerOnlyGlobalAdminProperties = keyof Pick<\n SanitizedGlobalConfig['admin'],\n 'components' | 'hidden' | 'preview'\n>\n\nexport type ClientGlobalConfig = Omit<\n SanitizedGlobalConfig,\n 'admin' | 'fields' | ServerOnlyGlobalProperties\n> & {\n admin: Omit<\n SanitizedGlobalConfig['admin'],\n ServerOnlyGlobalAdminProperties & 'fields' & 'livePreview'\n > & {\n livePreview?: Omit<LivePreviewConfig, ServerOnlyLivePreviewProperties>\n }\n fields: ClientFieldConfig[]\n}\n\nexport const createClientGlobalConfig = ({\n global,\n t,\n}: {\n global: SanitizedConfig['globals'][0]\n t: TFunction\n}): ClientGlobalConfig => {\n const sanitized = { ...global }\n sanitized.fields = createClientFieldConfigs({ fields: sanitized.fields, t })\n\n const serverOnlyProperties: Partial<ServerOnlyGlobalProperties>[] = [\n 'hooks',\n 'access',\n 'endpoints',\n 'custom',\n // `admin` is handled separately\n ]\n\n serverOnlyProperties.forEach((key) => {\n if (key in sanitized) {\n delete sanitized[key]\n }\n })\n\n if ('admin' in sanitized) {\n sanitized.admin = { ...sanitized.admin }\n\n const serverOnlyGlobalAdminProperties: Partial<ServerOnlyGlobalAdminProperties>[] = [\n 'components',\n 'hidden',\n 'preview',\n ]\n\n serverOnlyGlobalAdminProperties.forEach((key) => {\n if (key in sanitized.admin) {\n delete sanitized.admin[key]\n }\n })\n\n if ('livePreview' in sanitized.admin) {\n sanitized.admin.livePreview = { ...sanitized.admin.livePreview }\n delete sanitized.admin.livePreview.url\n }\n }\n\n return sanitized\n}\n\nexport const createClientGlobalConfigs = ({\n globals,\n t,\n}: {\n globals: SanitizedConfig['globals']\n t: TFunction\n}): ClientGlobalConfig[] => globals.map((global) => createClientGlobalConfig({ global, t }))\n"],"names":["createClientFieldConfigs","createClientGlobalConfig","global","t","sanitized","fields","serverOnlyProperties","forEach","key","admin","serverOnlyGlobalAdminProperties","livePreview","url","createClientGlobalConfigs","globals","map"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAUA,SAASA,wBAAwB,QAAQ,gCAA+B;AAwBxE,OAAO,MAAMC,2BAA2B,CAAC,EACvCC,MAAM,EACNC,CAAC,EAIF;IACC,MAAMC,YAAY;QAAE,GAAGF,MAAM;IAAC;IAC9BE,UAAUC,MAAM,GAAGL,yBAAyB;QAAEK,QAAQD,UAAUC,MAAM;QAAEF;IAAE;IAE1E,MAAMG,uBAA8D;QAClE;QACA;QACA;QACA;KAED;IAEDA,qBAAqBC,OAAO,CAAC,CAACC;QAC5B,IAAIA,OAAOJ,WAAW;YACpB,OAAOA,SAAS,CAACI,IAAI;QACvB;IACF;IAEA,IAAI,WAAWJ,WAAW;QACxBA,UAAUK,KAAK,GAAG;YAAE,GAAGL,UAAUK,KAAK;QAAC;QAEvC,MAAMC,kCAA8E;YAClF;YACA;YACA;SACD;QAEDA,gCAAgCH,OAAO,CAAC,CAACC;YACvC,IAAIA,OAAOJ,UAAUK,KAAK,EAAE;gBAC1B,OAAOL,UAAUK,KAAK,CAACD,IAAI;YAC7B;QACF;QAEA,IAAI,iBAAiBJ,UAAUK,KAAK,EAAE;YACpCL,UAAUK,KAAK,CAACE,WAAW,GAAG;gBAAE,GAAGP,UAAUK,KAAK,CAACE,WAAW;YAAC;YAC/D,OAAOP,UAAUK,KAAK,CAACE,WAAW,CAACC,GAAG;QACxC;IACF;IAEA,OAAOR;AACT,EAAC;AAED,OAAO,MAAMS,4BAA4B,CAAC,EACxCC,OAAO,EACPX,CAAC,EAIF,GAA2BW,QAAQC,GAAG,CAAC,CAACb,SAAWD,yBAAyB;YAAEC;YAAQC;QAAE,IAAG"}
1
+ {"version":3,"sources":["../../../src/globals/config/client.ts"],"sourcesContent":["import type { TFunction } from '@payloadcms/translations'\n\nimport type {\n LivePreviewConfig,\n SanitizedConfig,\n ServerOnlyLivePreviewProperties,\n} from '../../config/types.js'\nimport type { ClientFieldConfig } from '../../fields/config/client.js'\nimport type { SanitizedGlobalConfig } from './types.js'\n\nimport { createClientFieldConfigs } from '../../fields/config/client.js'\n\nexport type ServerOnlyGlobalProperties = keyof Pick<\n SanitizedGlobalConfig,\n 'access' | 'admin' | 'custom' | 'endpoints' | 'fields' | 'hooks'\n>\nexport type ServerOnlyGlobalAdminProperties = keyof Pick<\n SanitizedGlobalConfig['admin'],\n 'components' | 'hidden' | 'preview'\n>\n\nexport type ClientGlobalConfig = Omit<\n SanitizedGlobalConfig,\n 'admin' | 'fields' | ServerOnlyGlobalProperties\n> & {\n admin: Omit<\n SanitizedGlobalConfig['admin'],\n ServerOnlyGlobalAdminProperties & 'fields' & 'livePreview'\n > & {\n livePreview?: Omit<LivePreviewConfig, ServerOnlyLivePreviewProperties>\n }\n fields: ClientFieldConfig[]\n}\n\nexport const createClientGlobalConfig = ({\n global,\n t,\n}: {\n global: SanitizedConfig['globals'][0]\n t: TFunction\n}): ClientGlobalConfig => {\n const sanitized = { ...global }\n sanitized.fields = createClientFieldConfigs({ fields: sanitized.fields, t })\n\n const serverOnlyProperties: Partial<ServerOnlyGlobalProperties>[] = [\n 'hooks',\n 'access',\n 'endpoints',\n 'custom',\n // `admin` is handled separately\n ]\n\n serverOnlyProperties.forEach((key) => {\n if (key in sanitized) {\n delete sanitized[key]\n }\n })\n\n if ('admin' in sanitized) {\n sanitized.admin = { ...sanitized.admin }\n\n const serverOnlyGlobalAdminProperties: Partial<ServerOnlyGlobalAdminProperties>[] = [\n 'components',\n 'hidden',\n 'preview',\n ]\n\n serverOnlyGlobalAdminProperties.forEach((key) => {\n if (key in sanitized.admin) {\n delete sanitized.admin[key]\n }\n })\n\n if ('livePreview' in sanitized.admin) {\n sanitized.admin.livePreview = { ...sanitized.admin.livePreview }\n delete sanitized.admin.livePreview.url\n }\n }\n\n return sanitized\n}\n\nexport const createClientGlobalConfigs = ({\n globals,\n t,\n}: {\n globals: SanitizedConfig['globals']\n t: TFunction\n}): ClientGlobalConfig[] => globals.map((global) => createClientGlobalConfig({ global, t }))\n"],"names":["createClientFieldConfigs","createClientGlobalConfig","global","t","sanitized","fields","serverOnlyProperties","forEach","key","admin","serverOnlyGlobalAdminProperties","livePreview","url","createClientGlobalConfigs","globals","map"],"mappings":"AAUA,SAASA,wBAAwB,QAAQ,gCAA+B;AAwBxE,OAAO,MAAMC,2BAA2B,CAAC,EACvCC,MAAM,EACNC,CAAC,EAIF;IACC,MAAMC,YAAY;QAAE,GAAGF,MAAM;IAAC;IAC9BE,UAAUC,MAAM,GAAGL,yBAAyB;QAAEK,QAAQD,UAAUC,MAAM;QAAEF;IAAE;IAE1E,MAAMG,uBAA8D;QAClE;QACA;QACA;QACA;KAED;IAEDA,qBAAqBC,OAAO,CAAC,CAACC;QAC5B,IAAIA,OAAOJ,WAAW;YACpB,OAAOA,SAAS,CAACI,IAAI;QACvB;IACF;IAEA,IAAI,WAAWJ,WAAW;QACxBA,UAAUK,KAAK,GAAG;YAAE,GAAGL,UAAUK,KAAK;QAAC;QAEvC,MAAMC,kCAA8E;YAClF;YACA;YACA;SACD;QAEDA,gCAAgCH,OAAO,CAAC,CAACC;YACvC,IAAIA,OAAOJ,UAAUK,KAAK,EAAE;gBAC1B,OAAOL,UAAUK,KAAK,CAACD,IAAI;YAC7B;QACF;QAEA,IAAI,iBAAiBJ,UAAUK,KAAK,EAAE;YACpCL,UAAUK,KAAK,CAACE,WAAW,GAAG;gBAAE,GAAGP,UAAUK,KAAK,CAACE,WAAW;YAAC;YAC/D,OAAOP,UAAUK,KAAK,CAACE,WAAW,CAACC,GAAG;QACxC;IACF;IAEA,OAAOR;AACT,EAAC;AAED,OAAO,MAAMS,4BAA4B,CAAC,EACxCC,OAAO,EACPX,CAAC,EAIF,GAA2BW,QAAQC,GAAG,CAAC,CAACb,SAAWD,yBAAyB;YAAEC;YAAQC;QAAE,IAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../src/globals/config/sanitize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAUvD,eAAO,MAAM,eAAe,WAClB,MAAM,iCAKiB,MAAM,CAAC,MAAM,EAAE,eAAe,KAAK,QAAQ,IAAI,CAAC,CAAC,KAC/E,QAAQ,qBAAqB,EAAE,CAmGjC,CAAA"}
1
+ {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../src/globals/config/sanitize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAUvD,eAAO,MAAM,eAAe,WAClB,MAAM,iCAKiB,KAAK,CAAC,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,KAC/E,OAAO,CAAC,qBAAqB,EAAE,CAmGjC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/globals/config/sanitize.ts"],"sourcesContent":["import type { Config, SanitizedConfig } from '../../config/types.js'\nimport type { SanitizedGlobalConfig } from './types.js'\n\nimport defaultAccess from '../../auth/defaultAccess.js'\nimport { sanitizeFields } from '../../fields/config/sanitize.js'\nimport { fieldAffectsData } from '../../fields/config/types.js'\nimport mergeBaseFields from '../../fields/mergeBaseFields.js'\nimport { toWords } from '../../utilities/formatLabels.js'\nimport baseVersionFields from '../../versions/baseFields.js'\nimport { versionDefaults } from '../../versions/defaults.js'\n\nexport const sanitizeGlobals = async (\n config: Config,\n /**\n * If this property is set, RichText fields won't be sanitized immediately. Instead, they will be added to this array as promises\n * so that you can sanitize them together, after the config has been sanitized.\n */\n richTextSanitizationPromises?: Array<(config: SanitizedConfig) => Promise<void>>,\n): Promise<SanitizedGlobalConfig[]> => {\n const { collections, globals } = config\n\n for (let i = 0; i < globals.length; i++) {\n const global = globals[i]\n global.label = global.label || toWords(global.slug)\n\n // /////////////////////////////////\n // Ensure that collection has required object structure\n // /////////////////////////////////\n\n global.endpoints = global.endpoints ?? []\n if (!global.hooks) global.hooks = {}\n if (!global.access) global.access = {}\n if (!global.admin) global.admin = {}\n\n if (!global.access.read) global.access.read = defaultAccess\n if (!global.access.update) global.access.update = defaultAccess\n\n if (!global.hooks.beforeValidate) global.hooks.beforeValidate = []\n if (!global.hooks.beforeChange) global.hooks.beforeChange = []\n if (!global.hooks.afterChange) global.hooks.afterChange = []\n if (!global.hooks.beforeRead) global.hooks.beforeRead = []\n if (!global.hooks.afterRead) global.hooks.afterRead = []\n\n if (global.versions) {\n if (global.versions === true) global.versions = { drafts: false }\n\n if (global.versions.drafts) {\n if (global.versions.drafts === true) {\n global.versions.drafts = {\n autosave: false,\n validate: false,\n }\n }\n\n if (global.versions.drafts.autosave === true) {\n global.versions.drafts.autosave = {\n interval: versionDefaults.autosaveInterval,\n }\n }\n\n if (global.versions.drafts.validate === undefined) {\n global.versions.drafts.validate = false\n }\n\n global.fields = mergeBaseFields(global.fields, baseVersionFields)\n }\n }\n\n if (!global.custom) global.custom = {}\n\n // /////////////////////////////////\n // Sanitize fields\n // /////////////////////////////////\n let hasUpdatedAt = null\n let hasCreatedAt = null\n global.fields.some((field) => {\n if (fieldAffectsData(field)) {\n if (field.name === 'updatedAt') hasUpdatedAt = true\n if (field.name === 'createdAt') hasCreatedAt = true\n }\n return hasCreatedAt && hasUpdatedAt\n })\n if (!hasUpdatedAt) {\n global.fields.push({\n name: 'updatedAt',\n type: 'date',\n admin: {\n disableBulkEdit: true,\n hidden: true,\n },\n label: ({ t }) => t('general:updatedAt'),\n })\n }\n if (!hasCreatedAt) {\n global.fields.push({\n name: 'createdAt',\n type: 'date',\n admin: {\n disableBulkEdit: true,\n hidden: true,\n },\n label: ({ t }) => t('general:createdAt'),\n })\n }\n\n const validRelationships = collections.map((c) => c.slug) || []\n global.fields = await sanitizeFields({\n config,\n fields: global.fields,\n richTextSanitizationPromises,\n validRelationships,\n })\n\n globals[i] = global\n }\n\n return globals as SanitizedGlobalConfig[]\n}\n"],"names":["defaultAccess","sanitizeFields","fieldAffectsData","mergeBaseFields","toWords","baseVersionFields","versionDefaults","sanitizeGlobals","config","richTextSanitizationPromises","collections","globals","i","length","global","label","slug","endpoints","hooks","access","admin","read","update","beforeValidate","beforeChange","afterChange","beforeRead","afterRead","versions","drafts","autosave","validate","interval","autosaveInterval","undefined","fields","custom","hasUpdatedAt","hasCreatedAt","some","field","name","push","type","disableBulkEdit","hidden","t","validRelationships","map","c"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/globals/config/sanitize.ts"],"sourcesContent":["import type { Config, SanitizedConfig } from '../../config/types.js'\nimport type { SanitizedGlobalConfig } from './types.js'\n\nimport defaultAccess from '../../auth/defaultAccess.js'\nimport { sanitizeFields } from '../../fields/config/sanitize.js'\nimport { fieldAffectsData } from '../../fields/config/types.js'\nimport mergeBaseFields from '../../fields/mergeBaseFields.js'\nimport { toWords } from '../../utilities/formatLabels.js'\nimport baseVersionFields from '../../versions/baseFields.js'\nimport { versionDefaults } from '../../versions/defaults.js'\n\nexport const sanitizeGlobals = async (\n config: Config,\n /**\n * If this property is set, RichText fields won't be sanitized immediately. Instead, they will be added to this array as promises\n * so that you can sanitize them together, after the config has been sanitized.\n */\n richTextSanitizationPromises?: Array<(config: SanitizedConfig) => Promise<void>>,\n): Promise<SanitizedGlobalConfig[]> => {\n const { collections, globals } = config\n\n for (let i = 0; i < globals.length; i++) {\n const global = globals[i]\n global.label = global.label || toWords(global.slug)\n\n // /////////////////////////////////\n // Ensure that collection has required object structure\n // /////////////////////////////////\n\n global.endpoints = global.endpoints ?? []\n if (!global.hooks) global.hooks = {}\n if (!global.access) global.access = {}\n if (!global.admin) global.admin = {}\n\n if (!global.access.read) global.access.read = defaultAccess\n if (!global.access.update) global.access.update = defaultAccess\n\n if (!global.hooks.beforeValidate) global.hooks.beforeValidate = []\n if (!global.hooks.beforeChange) global.hooks.beforeChange = []\n if (!global.hooks.afterChange) global.hooks.afterChange = []\n if (!global.hooks.beforeRead) global.hooks.beforeRead = []\n if (!global.hooks.afterRead) global.hooks.afterRead = []\n\n if (global.versions) {\n if (global.versions === true) global.versions = { drafts: false }\n\n if (global.versions.drafts) {\n if (global.versions.drafts === true) {\n global.versions.drafts = {\n autosave: false,\n validate: false,\n }\n }\n\n if (global.versions.drafts.autosave === true) {\n global.versions.drafts.autosave = {\n interval: versionDefaults.autosaveInterval,\n }\n }\n\n if (global.versions.drafts.validate === undefined) {\n global.versions.drafts.validate = false\n }\n\n global.fields = mergeBaseFields(global.fields, baseVersionFields)\n }\n }\n\n if (!global.custom) global.custom = {}\n\n // /////////////////////////////////\n // Sanitize fields\n // /////////////////////////////////\n let hasUpdatedAt = null\n let hasCreatedAt = null\n global.fields.some((field) => {\n if (fieldAffectsData(field)) {\n if (field.name === 'updatedAt') hasUpdatedAt = true\n if (field.name === 'createdAt') hasCreatedAt = true\n }\n return hasCreatedAt && hasUpdatedAt\n })\n if (!hasUpdatedAt) {\n global.fields.push({\n name: 'updatedAt',\n type: 'date',\n admin: {\n disableBulkEdit: true,\n hidden: true,\n },\n label: ({ t }) => t('general:updatedAt'),\n })\n }\n if (!hasCreatedAt) {\n global.fields.push({\n name: 'createdAt',\n type: 'date',\n admin: {\n disableBulkEdit: true,\n hidden: true,\n },\n label: ({ t }) => t('general:createdAt'),\n })\n }\n\n const validRelationships = collections.map((c) => c.slug) || []\n global.fields = await sanitizeFields({\n config,\n fields: global.fields,\n richTextSanitizationPromises,\n validRelationships,\n })\n\n globals[i] = global\n }\n\n return globals as SanitizedGlobalConfig[]\n}\n"],"names":["defaultAccess","sanitizeFields","fieldAffectsData","mergeBaseFields","toWords","baseVersionFields","versionDefaults","sanitizeGlobals","config","richTextSanitizationPromises","collections","globals","i","length","global","label","slug","endpoints","hooks","access","admin","read","update","beforeValidate","beforeChange","afterChange","beforeRead","afterRead","versions","drafts","autosave","validate","interval","autosaveInterval","undefined","fields","custom","hasUpdatedAt","hasCreatedAt","some","field","name","push","type","disableBulkEdit","hidden","t","validRelationships","map","c"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/globals/config/schema.ts"],"sourcesContent":["import joi from 'joi'\n\nimport { endpointsSchema } from '../../config/schema.js'\nimport {\n componentSchema,\n customViewSchema,\n livePreviewSchema,\n} from '../../config/shared/componentSchema.js'\nimport { openGraphSchema } from '../../config/shared/openGraphSchema.js'\n\nconst globalSchema = joi\n .object()\n .keys({\n slug: joi.string().required(),\n access: joi.object({\n read: joi.func(),\n readVersions: joi.func(),\n update: joi.func(),\n }),\n admin: joi.object({\n components: joi.object({\n elements: joi.object({\n Description: componentSchema,\n PreviewButton: componentSchema,\n PublishButton: componentSchema,\n SaveButton: componentSchema,\n SaveDraftButton: componentSchema,\n }),\n views: joi.object({\n Edit: joi.alternatives().try(\n componentSchema,\n joi.object({\n API: joi.alternatives().try(componentSchema, customViewSchema),\n Default: joi.alternatives().try(componentSchema, customViewSchema),\n Preview: joi.alternatives().try(componentSchema, customViewSchema),\n Version: joi.alternatives().try(componentSchema, customViewSchema),\n Versions: joi.alternatives().try(componentSchema, customViewSchema),\n // Relationships\n // References\n }),\n ),\n }),\n }),\n custom: joi.object().pattern(joi.string(), joi.any()),\n description: joi\n .alternatives()\n .try(joi.func(), joi.object().pattern(joi.string(), [joi.string()]), joi.string()),\n group: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n hidden: joi.alternatives().try(joi.boolean(), joi.func()),\n hideAPIURL: joi.boolean(),\n livePreview: joi.object(livePreviewSchema),\n meta: joi.object({\n description: joi.string(),\n openGraph: openGraphSchema,\n }),\n preview: joi.func(),\n }),\n custom: joi.object().pattern(joi.string(), joi.any()),\n dbName: joi.alternatives().try(joi.string(), joi.func()),\n endpoints: endpointsSchema,\n fields: joi.array(),\n graphQL: joi.alternatives().try(\n joi.object().keys({\n name: joi.string(),\n }),\n joi.boolean(),\n ),\n hooks: joi.object({\n afterChange: joi.array().items(joi.func()),\n afterRead: joi.array().items(joi.func()),\n beforeChange: joi.array().items(joi.func()),\n beforeRead: joi.array().items(joi.func()),\n beforeValidate: joi.array().items(joi.func()),\n }),\n label: joi\n .alternatives()\n .try(joi.func(), joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n typescript: joi.object().keys({\n interface: joi.string(),\n }),\n versions: joi.alternatives().try(\n joi.object({\n drafts: joi.alternatives().try(\n joi.object({\n autosave: joi.alternatives().try(\n joi.boolean(),\n joi.object({\n interval: joi.number(),\n }),\n ),\n validate: joi.boolean(),\n }),\n joi.boolean(),\n ),\n max: joi.number(),\n }),\n joi.boolean(),\n ),\n })\n .unknown()\n\nexport default globalSchema\n"],"names":["joi","endpointsSchema","componentSchema","customViewSchema","livePreviewSchema","openGraphSchema","globalSchema","object","keys","slug","string","required","access","read","func","readVersions","update","admin","components","elements","Description","PreviewButton","PublishButton","SaveButton","SaveDraftButton","views","Edit","alternatives","try","API","Default","Preview","Version","Versions","custom","pattern","any","description","group","hidden","boolean","hideAPIURL","livePreview","meta","openGraph","preview","dbName","endpoints","fields","array","graphQL","name","hooks","afterChange","items","afterRead","beforeChange","beforeRead","beforeValidate","label","typescript","interface","versions","drafts","autosave","interval","number","validate","max","unknown"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/globals/config/schema.ts"],"sourcesContent":["import joi from 'joi'\n\nimport { endpointsSchema } from '../../config/schema.js'\nimport {\n componentSchema,\n customViewSchema,\n livePreviewSchema,\n} from '../../config/shared/componentSchema.js'\nimport { openGraphSchema } from '../../config/shared/openGraphSchema.js'\n\nconst globalSchema = joi\n .object()\n .keys({\n slug: joi.string().required(),\n access: joi.object({\n read: joi.func(),\n readVersions: joi.func(),\n update: joi.func(),\n }),\n admin: joi.object({\n components: joi.object({\n elements: joi.object({\n Description: componentSchema,\n PreviewButton: componentSchema,\n PublishButton: componentSchema,\n SaveButton: componentSchema,\n SaveDraftButton: componentSchema,\n }),\n views: joi.object({\n Edit: joi.alternatives().try(\n componentSchema,\n joi.object({\n API: joi.alternatives().try(componentSchema, customViewSchema),\n Default: joi.alternatives().try(componentSchema, customViewSchema),\n Preview: joi.alternatives().try(componentSchema, customViewSchema),\n Version: joi.alternatives().try(componentSchema, customViewSchema),\n Versions: joi.alternatives().try(componentSchema, customViewSchema),\n // Relationships\n // References\n }),\n ),\n }),\n }),\n custom: joi.object().pattern(joi.string(), joi.any()),\n description: joi\n .alternatives()\n .try(joi.func(), joi.object().pattern(joi.string(), [joi.string()]), joi.string()),\n group: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n hidden: joi.alternatives().try(joi.boolean(), joi.func()),\n hideAPIURL: joi.boolean(),\n livePreview: joi.object(livePreviewSchema),\n meta: joi.object({\n description: joi.string(),\n openGraph: openGraphSchema,\n }),\n preview: joi.func(),\n }),\n custom: joi.object().pattern(joi.string(), joi.any()),\n dbName: joi.alternatives().try(joi.string(), joi.func()),\n endpoints: endpointsSchema,\n fields: joi.array(),\n graphQL: joi.alternatives().try(\n joi.object().keys({\n name: joi.string(),\n }),\n joi.boolean(),\n ),\n hooks: joi.object({\n afterChange: joi.array().items(joi.func()),\n afterRead: joi.array().items(joi.func()),\n beforeChange: joi.array().items(joi.func()),\n beforeRead: joi.array().items(joi.func()),\n beforeValidate: joi.array().items(joi.func()),\n }),\n label: joi\n .alternatives()\n .try(joi.func(), joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n typescript: joi.object().keys({\n interface: joi.string(),\n }),\n versions: joi.alternatives().try(\n joi.object({\n drafts: joi.alternatives().try(\n joi.object({\n autosave: joi.alternatives().try(\n joi.boolean(),\n joi.object({\n interval: joi.number(),\n }),\n ),\n validate: joi.boolean(),\n }),\n joi.boolean(),\n ),\n max: joi.number(),\n }),\n joi.boolean(),\n ),\n })\n .unknown()\n\nexport default globalSchema\n"],"names":["joi","endpointsSchema","componentSchema","customViewSchema","livePreviewSchema","openGraphSchema","globalSchema","object","keys","slug","string","required","access","read","func","readVersions","update","admin","components","elements","Description","PreviewButton","PublishButton","SaveButton","SaveDraftButton","views","Edit","alternatives","try","API","Default","Preview","Version","Versions","custom","pattern","any","description","group","hidden","boolean","hideAPIURL","livePreview","meta","openGraph","preview","dbName","endpoints","fields","array","graphQL","name","hooks","afterChange","items","afterRead","beforeChange","beforeRead","beforeValidate","label","typescript","interface","versions","drafts","autosave","interval","number","validate","max","unknown"],"mappings":"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"}
@@ -4,11 +4,10 @@ import type { CustomPreviewButton, CustomPublishButton, CustomSaveButton, Custom
4
4
  import type { Access, EditConfig, Endpoint, EntityDescription, EntityDescriptionComponent, GeneratePreviewURL, LivePreviewConfig, OpenGraphConfig } from '../../config/types.js';
5
5
  import type { DBIdentifierName } from '../../database/types.js';
6
6
  import type { Field } from '../../fields/config/types.js';
7
+ import type { GlobalSlug, TypedGlobal } from '../../index.js';
7
8
  import type { PayloadRequestWithData, RequestContext, Where } from '../../types/index.js';
8
9
  import type { IncomingGlobalVersions, SanitizedGlobalVersions } from '../../versions/types.js';
9
- export type TypeWithID = {
10
- id: number | string;
11
- };
10
+ export type DataFromGlobalSlug<TSlug extends GlobalSlug> = TypedGlobal[TSlug];
12
11
  export type BeforeValidateHook = (args: {
13
12
  context: RequestContext;
14
13
  data?: any;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/globals/config/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/globals/config/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/globals/config/types.ts"],"sourcesContent":["import type { GraphQLNonNull, GraphQLObjectType } from 'graphql'\nimport type { DeepRequired } from 'ts-essentials'\n\nimport type {\n CustomPreviewButton,\n CustomPublishButton,\n CustomSaveButton,\n CustomSaveDraftButton,\n} from '../../admin/types.js'\nimport type {\n Access,\n EditConfig,\n Endpoint,\n EntityDescription,\n EntityDescriptionComponent,\n GeneratePreviewURL,\n LivePreviewConfig,\n OpenGraphConfig,\n} from '../../config/types.js'\nimport type { DBIdentifierName } from '../../database/types.js'\nimport type { Field } from '../../fields/config/types.js'\nimport type { PayloadRequestWithData, RequestContext, Where } from '../../types/index.js'\nimport type { IncomingGlobalVersions, SanitizedGlobalVersions } from '../../versions/types.js'\n\nexport type TypeWithID = {\n id: number | string\n}\n\nexport type BeforeValidateHook = (args: {\n context: RequestContext\n data?: any\n /** The global which this hook is being run on */\n global: SanitizedGlobalConfig\n originalDoc?: any\n req: PayloadRequestWithData\n}) => any\n\nexport type BeforeChangeHook = (args: {\n context: RequestContext\n data: any\n /** The global which this hook is being run on */\n global: SanitizedGlobalConfig\n originalDoc?: any\n req: PayloadRequestWithData\n}) => any\n\nexport type AfterChangeHook = (args: {\n context: RequestContext\n doc: any\n /** The global which this hook is being run on */\n global: SanitizedGlobalConfig\n previousDoc: any\n req: PayloadRequestWithData\n}) => any\n\nexport type BeforeReadHook = (args: {\n context: RequestContext\n doc: any\n /** The global which this hook is being run on */\n global: SanitizedGlobalConfig\n req: PayloadRequestWithData\n}) => any\n\nexport type AfterReadHook = (args: {\n context: RequestContext\n doc: any\n findMany?: boolean\n /** The global which this hook is being run on */\n global: SanitizedGlobalConfig\n query?: Where\n req: PayloadRequestWithData\n}) => any\n\nexport type GlobalAdminOptions = {\n /**\n * Custom admin components\n */\n components?: {\n elements?: {\n Description?: EntityDescriptionComponent\n /**\n * Replaces the \"Preview\" button\n */\n PreviewButton?: CustomPreviewButton\n /**\n * Replaces the \"Publish\" button\n * + drafts must be enabled\n */\n PublishButton?: CustomPublishButton\n /**\n * Replaces the \"Save\" button\n * + drafts must be disabled\n */\n SaveButton?: CustomSaveButton\n /**\n * Replaces the \"Save Draft\" button\n * + drafts must be enabled\n * + autosave must be disabled\n */\n SaveDraftButton?: CustomSaveDraftButton\n }\n views?: {\n /**\n * Set to a React component to replace the entire \"Edit\" view, including all nested routes.\n * Set to an object to replace or modify individual nested routes, or to add new ones.\n */\n Edit?: EditConfig\n }\n }\n /** Extension point to add your custom data. Available in server and client. */\n custom?: Record<string, any>\n /**\n * Custom description for collection\n */\n description?: EntityDescription\n /**\n * Place globals into a navigational group\n * */\n group?: Record<string, string> | string\n /**\n * Exclude the global from the admin nav and routes\n */\n hidden?: ((args: { user: PayloadRequestWithData['user'] }) => boolean) | boolean\n /**\n * Hide the API URL within the Edit view\n */\n hideAPIURL?: boolean\n /**\n * Live preview options\n */\n livePreview?: LivePreviewConfig\n meta?: {\n description?: string\n openGraph?: OpenGraphConfig\n }\n /**\n * Function to generate custom preview URL\n */\n preview?: GeneratePreviewURL\n}\n\nexport type GlobalConfig = {\n access?: {\n read?: Access\n readDrafts?: Access\n readVersions?: Access\n update?: Access\n }\n admin?: GlobalAdminOptions\n /** Extension point to add your custom data. Server only. */\n custom?: Record<string, any>\n /**\n * Customize the SQL table name\n */\n dbName?: DBIdentifierName\n endpoints?: Omit<Endpoint, 'root'>[] | false\n fields: Field[]\n graphQL?:\n | {\n name?: string\n }\n | false\n hooks?: {\n afterChange?: AfterChangeHook[]\n afterRead?: AfterReadHook[]\n beforeChange?: BeforeChangeHook[]\n beforeRead?: BeforeReadHook[]\n beforeValidate?: BeforeValidateHook[]\n }\n label?: Record<string, string> | string\n slug: string\n /**\n * Options used in typescript generation\n */\n typescript?: {\n /**\n * Typescript generation name given to the interface type\n */\n interface?: string\n }\n versions?: IncomingGlobalVersions | boolean\n}\n\nexport interface SanitizedGlobalConfig\n extends Omit<DeepRequired<GlobalConfig>, 'endpoints' | 'fields' | 'versions'> {\n endpoints: Endpoint[] | false\n fields: Field[]\n versions: SanitizedGlobalVersions\n}\n\nexport type Globals = {\n config: SanitizedGlobalConfig[]\n graphQL?:\n | {\n [slug: string]: {\n mutationInputType: GraphQLNonNull<any>\n type: GraphQLObjectType\n versionType?: GraphQLObjectType\n }\n }\n | false\n}\n"],"names":[],"rangeMappings":"","mappings":"AA8LA,WAWC"}
1
+ {"version":3,"sources":["../../../src/globals/config/types.ts"],"sourcesContent":["import type { GraphQLNonNull, GraphQLObjectType } from 'graphql'\nimport type { DeepRequired } from 'ts-essentials'\n\nimport type {\n CustomPreviewButton,\n CustomPublishButton,\n CustomSaveButton,\n CustomSaveDraftButton,\n} from '../../admin/types.js'\nimport type {\n Access,\n EditConfig,\n Endpoint,\n EntityDescription,\n EntityDescriptionComponent,\n GeneratePreviewURL,\n LivePreviewConfig,\n OpenGraphConfig,\n} from '../../config/types.js'\nimport type { DBIdentifierName } from '../../database/types.js'\nimport type { Field } from '../../fields/config/types.js'\nimport type { GlobalSlug, TypedGlobal } from '../../index.js'\nimport type { PayloadRequestWithData, RequestContext, Where } from '../../types/index.js'\nimport type { IncomingGlobalVersions, SanitizedGlobalVersions } from '../../versions/types.js'\n\nexport type DataFromGlobalSlug<TSlug extends GlobalSlug> = TypedGlobal[TSlug]\n\nexport type BeforeValidateHook = (args: {\n context: RequestContext\n data?: any\n /** The global which this hook is being run on */\n global: SanitizedGlobalConfig\n originalDoc?: any\n req: PayloadRequestWithData\n}) => any\n\nexport type BeforeChangeHook = (args: {\n context: RequestContext\n data: any\n /** The global which this hook is being run on */\n global: SanitizedGlobalConfig\n originalDoc?: any\n req: PayloadRequestWithData\n}) => any\n\nexport type AfterChangeHook = (args: {\n context: RequestContext\n doc: any\n /** The global which this hook is being run on */\n global: SanitizedGlobalConfig\n previousDoc: any\n req: PayloadRequestWithData\n}) => any\n\nexport type BeforeReadHook = (args: {\n context: RequestContext\n doc: any\n /** The global which this hook is being run on */\n global: SanitizedGlobalConfig\n req: PayloadRequestWithData\n}) => any\n\nexport type AfterReadHook = (args: {\n context: RequestContext\n doc: any\n findMany?: boolean\n /** The global which this hook is being run on */\n global: SanitizedGlobalConfig\n query?: Where\n req: PayloadRequestWithData\n}) => any\n\nexport type GlobalAdminOptions = {\n /**\n * Custom admin components\n */\n components?: {\n elements?: {\n Description?: EntityDescriptionComponent\n /**\n * Replaces the \"Preview\" button\n */\n PreviewButton?: CustomPreviewButton\n /**\n * Replaces the \"Publish\" button\n * + drafts must be enabled\n */\n PublishButton?: CustomPublishButton\n /**\n * Replaces the \"Save\" button\n * + drafts must be disabled\n */\n SaveButton?: CustomSaveButton\n /**\n * Replaces the \"Save Draft\" button\n * + drafts must be enabled\n * + autosave must be disabled\n */\n SaveDraftButton?: CustomSaveDraftButton\n }\n views?: {\n /**\n * Set to a React component to replace the entire \"Edit\" view, including all nested routes.\n * Set to an object to replace or modify individual nested routes, or to add new ones.\n */\n Edit?: EditConfig\n }\n }\n /** Extension point to add your custom data. Available in server and client. */\n custom?: Record<string, any>\n /**\n * Custom description for collection\n */\n description?: EntityDescription\n /**\n * Place globals into a navigational group\n * */\n group?: Record<string, string> | string\n /**\n * Exclude the global from the admin nav and routes\n */\n hidden?: ((args: { user: PayloadRequestWithData['user'] }) => boolean) | boolean\n /**\n * Hide the API URL within the Edit view\n */\n hideAPIURL?: boolean\n /**\n * Live preview options\n */\n livePreview?: LivePreviewConfig\n meta?: {\n description?: string\n openGraph?: OpenGraphConfig\n }\n /**\n * Function to generate custom preview URL\n */\n preview?: GeneratePreviewURL\n}\n\nexport type GlobalConfig = {\n access?: {\n read?: Access\n readDrafts?: Access\n readVersions?: Access\n update?: Access\n }\n admin?: GlobalAdminOptions\n /** Extension point to add your custom data. Server only. */\n custom?: Record<string, any>\n /**\n * Customize the SQL table name\n */\n dbName?: DBIdentifierName\n endpoints?: Omit<Endpoint, 'root'>[] | false\n fields: Field[]\n graphQL?:\n | {\n name?: string\n }\n | false\n hooks?: {\n afterChange?: AfterChangeHook[]\n afterRead?: AfterReadHook[]\n beforeChange?: BeforeChangeHook[]\n beforeRead?: BeforeReadHook[]\n beforeValidate?: BeforeValidateHook[]\n }\n label?: Record<string, string> | string\n slug: string\n /**\n * Options used in typescript generation\n */\n typescript?: {\n /**\n * Typescript generation name given to the interface type\n */\n interface?: string\n }\n versions?: IncomingGlobalVersions | boolean\n}\n\nexport interface SanitizedGlobalConfig\n extends Omit<DeepRequired<GlobalConfig>, 'endpoints' | 'fields' | 'versions'> {\n endpoints: Endpoint[] | false\n fields: Field[]\n versions: SanitizedGlobalVersions\n}\n\nexport type Globals = {\n config: SanitizedGlobalConfig[]\n graphQL?:\n | {\n [slug: string]: {\n mutationInputType: GraphQLNonNull<any>\n type: GraphQLObjectType\n versionType?: GraphQLObjectType\n }\n }\n | false\n}\n"],"names":[],"mappings":"AA6LA,WAWC"}
@@ -1 +1 @@
1
- {"version":3,"file":"docAccess.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/docAccess.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,KAAK,EAAiB,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AACjF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAO/D,KAAK,SAAS,GAAG;IACf,YAAY,EAAE,qBAAqB,CAAA;IACnC,GAAG,EAAE,sBAAsB,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,kBAAkB,SAAgB,SAAS,KAAG,QAAQ,gBAAgB,CAuBlF,CAAA"}
1
+ {"version":3,"file":"docAccess.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/docAccess.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,KAAK,EAAiB,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AACjF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAO/D,KAAK,SAAS,GAAG;IACf,YAAY,EAAE,qBAAqB,CAAA;IACnC,GAAG,EAAE,sBAAsB,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,kBAAkB,SAAgB,SAAS,KAAG,OAAO,CAAC,gBAAgB,CAuBlF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/globals/operations/docAccess.ts"],"sourcesContent":["import type { GlobalPermission } from '../../auth/index.js'\nimport type { AllOperations, PayloadRequestWithData } from '../../types/index.js'\nimport type { SanitizedGlobalConfig } from '../config/types.js'\n\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { getEntityPolicies } from '../../utilities/getEntityPolicies.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\n\ntype Arguments = {\n globalConfig: SanitizedGlobalConfig\n req: PayloadRequestWithData\n}\n\nexport const docAccessOperation = async (args: Arguments): Promise<GlobalPermission> => {\n const { globalConfig, req } = args\n\n const globalOperations: AllOperations[] = ['read', 'update']\n\n if (globalConfig.versions) {\n globalOperations.push('readVersions')\n }\n\n try {\n const shouldCommit = await initTransaction(req)\n const result = await getEntityPolicies({\n type: 'global',\n entity: globalConfig,\n operations: globalOperations,\n req,\n })\n if (shouldCommit) await commitTransaction(req)\n return result\n } catch (e: unknown) {\n await killTransaction(req)\n throw e\n }\n}\n"],"names":["commitTransaction","getEntityPolicies","initTransaction","killTransaction","docAccessOperation","args","globalConfig","req","globalOperations","versions","push","shouldCommit","result","type","entity","operations","e"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAIA,SAASA,iBAAiB,QAAQ,uCAAsC;AACxE,SAASC,iBAAiB,QAAQ,uCAAsC;AACxE,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,eAAe,QAAQ,qCAAoC;AAOpE,OAAO,MAAMC,qBAAqB,OAAOC;IACvC,MAAM,EAAEC,YAAY,EAAEC,GAAG,EAAE,GAAGF;IAE9B,MAAMG,mBAAoC;QAAC;QAAQ;KAAS;IAE5D,IAAIF,aAAaG,QAAQ,EAAE;QACzBD,iBAAiBE,IAAI,CAAC;IACxB;IAEA,IAAI;QACF,MAAMC,eAAe,MAAMT,gBAAgBK;QAC3C,MAAMK,SAAS,MAAMX,kBAAkB;YACrCY,MAAM;YACNC,QAAQR;YACRS,YAAYP;YACZD;QACF;QACA,IAAII,cAAc,MAAMX,kBAAkBO;QAC1C,OAAOK;IACT,EAAE,OAAOI,GAAY;QACnB,MAAMb,gBAAgBI;QACtB,MAAMS;IACR;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../src/globals/operations/docAccess.ts"],"sourcesContent":["import type { GlobalPermission } from '../../auth/index.js'\nimport type { AllOperations, PayloadRequestWithData } from '../../types/index.js'\nimport type { SanitizedGlobalConfig } from '../config/types.js'\n\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { getEntityPolicies } from '../../utilities/getEntityPolicies.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\n\ntype Arguments = {\n globalConfig: SanitizedGlobalConfig\n req: PayloadRequestWithData\n}\n\nexport const docAccessOperation = async (args: Arguments): Promise<GlobalPermission> => {\n const { globalConfig, req } = args\n\n const globalOperations: AllOperations[] = ['read', 'update']\n\n if (globalConfig.versions) {\n globalOperations.push('readVersions')\n }\n\n try {\n const shouldCommit = await initTransaction(req)\n const result = await getEntityPolicies({\n type: 'global',\n entity: globalConfig,\n operations: globalOperations,\n req,\n })\n if (shouldCommit) await commitTransaction(req)\n return result\n } catch (e: unknown) {\n await killTransaction(req)\n throw e\n }\n}\n"],"names":["commitTransaction","getEntityPolicies","initTransaction","killTransaction","docAccessOperation","args","globalConfig","req","globalOperations","versions","push","shouldCommit","result","type","entity","operations","e"],"mappings":"AAIA,SAASA,iBAAiB,QAAQ,uCAAsC;AACxE,SAASC,iBAAiB,QAAQ,uCAAsC;AACxE,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,eAAe,QAAQ,qCAAoC;AAOpE,OAAO,MAAMC,qBAAqB,OAAOC;IACvC,MAAM,EAAEC,YAAY,EAAEC,GAAG,EAAE,GAAGF;IAE9B,MAAMG,mBAAoC;QAAC;QAAQ;KAAS;IAE5D,IAAIF,aAAaG,QAAQ,EAAE;QACzBD,iBAAiBE,IAAI,CAAC;IACxB;IAEA,IAAI;QACF,MAAMC,eAAe,MAAMT,gBAAgBK;QAC3C,MAAMK,SAAS,MAAMX,kBAAkB;YACrCY,MAAM;YACNC,QAAQR;YACRS,YAAYP;YACZD;QACF;QACA,IAAII,cAAc,MAAMX,kBAAkBO;QAC1C,OAAOK;IACT,EAAE,OAAOI,GAAY;QACnB,MAAMb,gBAAgBI;QACtB,MAAMS;IACR;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"findOne.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/findOne.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAS,MAAM,sBAAsB,CAAA;AACzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAS/D,KAAK,IAAI,GAAG;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,YAAY,EAAE,qBAAqB,CAAA;IACnC,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,EAAE,sBAAsB,CAAA;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,eAAO,MAAM,gBAAgB,4CACrB,IAAI,KACT,QAAQ,CAAC,CAuHX,CAAA"}
1
+ {"version":3,"file":"findOne.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/findOne.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAS,MAAM,sBAAsB,CAAA;AACzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAS/D,KAAK,IAAI,GAAG;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,YAAY,EAAE,qBAAqB,CAAA;IACnC,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,EAAE,sBAAsB,CAAA;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAU,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAChE,IAAI,KACT,OAAO,CAAC,CAAC,CAuHX,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/globals/operations/findOne.ts"],"sourcesContent":["import type { AccessResult } from '../../config/types.js'\nimport type { GeneratedTypes } from '../../index.js'\nimport type { PayloadRequestWithData, Where } from '../../types/index.js'\nimport type { SanitizedGlobalConfig } from '../config/types.js'\n\nimport executeAccess from '../../auth/executeAccess.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport replaceWithDraftIfAvailable from '../../versions/drafts/replaceWithDraftIfAvailable.js'\n\ntype Args = {\n depth?: number\n draft?: boolean\n globalConfig: SanitizedGlobalConfig\n overrideAccess?: boolean\n req: PayloadRequestWithData\n showHiddenFields?: boolean\n slug: string\n}\n\nexport const findOneOperation = async <T extends Record<string, unknown>>(\n args: Args,\n): Promise<T> => {\n const {\n slug,\n depth,\n draft: draftEnabled = false,\n globalConfig,\n overrideAccess = false,\n req: { fallbackLocale, locale },\n req,\n showHiddenFields,\n } = args\n\n try {\n const shouldCommit = await initTransaction(req)\n\n // /////////////////////////////////////\n // Retrieve and execute access\n // /////////////////////////////////////\n\n let accessResult: AccessResult\n\n if (!overrideAccess) {\n accessResult = await executeAccess({ req }, globalConfig.access.read)\n }\n\n // /////////////////////////////////////\n // Perform database operation\n // /////////////////////////////////////\n\n let doc = await req.payload.db.findGlobal({\n slug,\n locale,\n req,\n where: overrideAccess ? undefined : (accessResult as Where),\n })\n if (!doc) {\n doc = {}\n }\n\n // /////////////////////////////////////\n // Replace document with draft if available\n // /////////////////////////////////////\n\n if (globalConfig.versions?.drafts && draftEnabled) {\n doc = await replaceWithDraftIfAvailable({\n accessResult,\n doc,\n entity: globalConfig,\n entityType: 'global',\n overrideAccess,\n req,\n })\n }\n\n // /////////////////////////////////////\n // Execute before global hook\n // /////////////////////////////////////\n\n await globalConfig.hooks.beforeRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n doc =\n (await hook({\n context: req.context,\n doc,\n global: globalConfig,\n req,\n })) || doc\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // Execute field-level hooks and access\n // /////////////////////////////////////\n\n doc = await afterRead({\n collection: null,\n context: req.context,\n depth,\n doc,\n draft: draftEnabled,\n fallbackLocale,\n global: globalConfig,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n })\n\n // /////////////////////////////////////\n // Execute after global hook\n // /////////////////////////////////////\n\n await globalConfig.hooks.afterRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n doc =\n (await hook({\n context: req.context,\n doc,\n global: globalConfig,\n req,\n })) || doc\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n if (shouldCommit) await commitTransaction(req)\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n return doc\n } catch (error: unknown) {\n await killTransaction(req)\n throw error\n }\n}\n"],"names":["executeAccess","afterRead","commitTransaction","initTransaction","killTransaction","replaceWithDraftIfAvailable","findOneOperation","args","slug","depth","draft","draftEnabled","globalConfig","overrideAccess","req","fallbackLocale","locale","showHiddenFields","shouldCommit","accessResult","access","read","doc","payload","db","findGlobal","where","undefined","versions","drafts","entity","entityType","hooks","beforeRead","reduce","priorHook","hook","context","global","Promise","resolve","collection","error"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAKA,OAAOA,mBAAmB,8BAA6B;AACvD,SAASC,SAAS,QAAQ,wCAAuC;AACjE,SAASC,iBAAiB,QAAQ,uCAAsC;AACxE,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,eAAe,QAAQ,qCAAoC;AACpE,OAAOC,iCAAiC,uDAAsD;AAY9F,OAAO,MAAMC,mBAAmB,OAC9BC;IAEA,MAAM,EACJC,IAAI,EACJC,KAAK,EACLC,OAAOC,eAAe,KAAK,EAC3BC,YAAY,EACZC,iBAAiB,KAAK,EACtBC,KAAK,EAAEC,cAAc,EAAEC,MAAM,EAAE,EAC/BF,GAAG,EACHG,gBAAgB,EACjB,GAAGV;IAEJ,IAAI;QACF,MAAMW,eAAe,MAAMf,gBAAgBW;QAE3C,wCAAwC;QACxC,8BAA8B;QAC9B,wCAAwC;QAExC,IAAIK;QAEJ,IAAI,CAACN,gBAAgB;YACnBM,eAAe,MAAMnB,cAAc;gBAAEc;YAAI,GAAGF,aAAaQ,MAAM,CAACC,IAAI;QACtE;QAEA,wCAAwC;QACxC,6BAA6B;QAC7B,wCAAwC;QAExC,IAAIC,MAAM,MAAMR,IAAIS,OAAO,CAACC,EAAE,CAACC,UAAU,CAAC;YACxCjB;YACAQ;YACAF;YACAY,OAAOb,iBAAiBc,YAAaR;QACvC;QACA,IAAI,CAACG,KAAK;YACRA,MAAM,CAAC;QACT;QAEA,wCAAwC;QACxC,2CAA2C;QAC3C,wCAAwC;QAExC,IAAIV,aAAagB,QAAQ,EAAEC,UAAUlB,cAAc;YACjDW,MAAM,MAAMjB,4BAA4B;gBACtCc;gBACAG;gBACAQ,QAAQlB;gBACRmB,YAAY;gBACZlB;gBACAC;YACF;QACF;QAEA,wCAAwC;QACxC,6BAA6B;QAC7B,wCAAwC;QAExC,MAAMF,aAAaoB,KAAK,CAACC,UAAU,CAACC,MAAM,CAAC,OAAOC,WAAWC;YAC3D,MAAMD;YAENb,MACE,AAAC,MAAMc,KAAK;gBACVC,SAASvB,IAAIuB,OAAO;gBACpBf;gBACAgB,QAAQ1B;gBACRE;YACF,MAAOQ;QACX,GAAGiB,QAAQC,OAAO;QAElB,wCAAwC;QACxC,uCAAuC;QACvC,wCAAwC;QAExClB,MAAM,MAAMrB,UAAU;YACpBwC,YAAY;YACZJ,SAASvB,IAAIuB,OAAO;YACpB5B;YACAa;YACAZ,OAAOC;YACPI;YACAuB,QAAQ1B;YACRI;YACAH;YACAC;YACAG;QACF;QAEA,wCAAwC;QACxC,4BAA4B;QAC5B,wCAAwC;QAExC,MAAML,aAAaoB,KAAK,CAAC/B,SAAS,CAACiC,MAAM,CAAC,OAAOC,WAAWC;YAC1D,MAAMD;YAENb,MACE,AAAC,MAAMc,KAAK;gBACVC,SAASvB,IAAIuB,OAAO;gBACpBf;gBACAgB,QAAQ1B;gBACRE;YACF,MAAOQ;QACX,GAAGiB,QAAQC,OAAO;QAElB,wCAAwC;QACxC,iBAAiB;QACjB,wCAAwC;QAExC,IAAItB,cAAc,MAAMhB,kBAAkBY;QAE1C,wCAAwC;QACxC,iBAAiB;QACjB,wCAAwC;QAExC,OAAOQ;IACT,EAAE,OAAOoB,OAAgB;QACvB,MAAMtC,gBAAgBU;QACtB,MAAM4B;IACR;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../src/globals/operations/findOne.ts"],"sourcesContent":["import type { AccessResult } from '../../config/types.js'\nimport type { GeneratedTypes } from '../../index.js'\nimport type { PayloadRequestWithData, Where } from '../../types/index.js'\nimport type { SanitizedGlobalConfig } from '../config/types.js'\n\nimport executeAccess from '../../auth/executeAccess.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport replaceWithDraftIfAvailable from '../../versions/drafts/replaceWithDraftIfAvailable.js'\n\ntype Args = {\n depth?: number\n draft?: boolean\n globalConfig: SanitizedGlobalConfig\n overrideAccess?: boolean\n req: PayloadRequestWithData\n showHiddenFields?: boolean\n slug: string\n}\n\nexport const findOneOperation = async <T extends Record<string, unknown>>(\n args: Args,\n): Promise<T> => {\n const {\n slug,\n depth,\n draft: draftEnabled = false,\n globalConfig,\n overrideAccess = false,\n req: { fallbackLocale, locale },\n req,\n showHiddenFields,\n } = args\n\n try {\n const shouldCommit = await initTransaction(req)\n\n // /////////////////////////////////////\n // Retrieve and execute access\n // /////////////////////////////////////\n\n let accessResult: AccessResult\n\n if (!overrideAccess) {\n accessResult = await executeAccess({ req }, globalConfig.access.read)\n }\n\n // /////////////////////////////////////\n // Perform database operation\n // /////////////////////////////////////\n\n let doc = await req.payload.db.findGlobal({\n slug,\n locale,\n req,\n where: overrideAccess ? undefined : (accessResult as Where),\n })\n if (!doc) {\n doc = {}\n }\n\n // /////////////////////////////////////\n // Replace document with draft if available\n // /////////////////////////////////////\n\n if (globalConfig.versions?.drafts && draftEnabled) {\n doc = await replaceWithDraftIfAvailable({\n accessResult,\n doc,\n entity: globalConfig,\n entityType: 'global',\n overrideAccess,\n req,\n })\n }\n\n // /////////////////////////////////////\n // Execute before global hook\n // /////////////////////////////////////\n\n await globalConfig.hooks.beforeRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n doc =\n (await hook({\n context: req.context,\n doc,\n global: globalConfig,\n req,\n })) || doc\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // Execute field-level hooks and access\n // /////////////////////////////////////\n\n doc = await afterRead({\n collection: null,\n context: req.context,\n depth,\n doc,\n draft: draftEnabled,\n fallbackLocale,\n global: globalConfig,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n })\n\n // /////////////////////////////////////\n // Execute after global hook\n // /////////////////////////////////////\n\n await globalConfig.hooks.afterRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n doc =\n (await hook({\n context: req.context,\n doc,\n global: globalConfig,\n req,\n })) || doc\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n if (shouldCommit) await commitTransaction(req)\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n return doc\n } catch (error: unknown) {\n await killTransaction(req)\n throw error\n }\n}\n"],"names":["executeAccess","afterRead","commitTransaction","initTransaction","killTransaction","replaceWithDraftIfAvailable","findOneOperation","args","slug","depth","draft","draftEnabled","globalConfig","overrideAccess","req","fallbackLocale","locale","showHiddenFields","shouldCommit","accessResult","access","read","doc","payload","db","findGlobal","where","undefined","versions","drafts","entity","entityType","hooks","beforeRead","reduce","priorHook","hook","context","global","Promise","resolve","collection","error"],"mappings":"AAKA,OAAOA,mBAAmB,8BAA6B;AACvD,SAASC,SAAS,QAAQ,wCAAuC;AACjE,SAASC,iBAAiB,QAAQ,uCAAsC;AACxE,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,eAAe,QAAQ,qCAAoC;AACpE,OAAOC,iCAAiC,uDAAsD;AAY9F,OAAO,MAAMC,mBAAmB,OAC9BC;IAEA,MAAM,EACJC,IAAI,EACJC,KAAK,EACLC,OAAOC,eAAe,KAAK,EAC3BC,YAAY,EACZC,iBAAiB,KAAK,EACtBC,KAAK,EAAEC,cAAc,EAAEC,MAAM,EAAE,EAC/BF,GAAG,EACHG,gBAAgB,EACjB,GAAGV;IAEJ,IAAI;QACF,MAAMW,eAAe,MAAMf,gBAAgBW;QAE3C,wCAAwC;QACxC,8BAA8B;QAC9B,wCAAwC;QAExC,IAAIK;QAEJ,IAAI,CAACN,gBAAgB;YACnBM,eAAe,MAAMnB,cAAc;gBAAEc;YAAI,GAAGF,aAAaQ,MAAM,CAACC,IAAI;QACtE;QAEA,wCAAwC;QACxC,6BAA6B;QAC7B,wCAAwC;QAExC,IAAIC,MAAM,MAAMR,IAAIS,OAAO,CAACC,EAAE,CAACC,UAAU,CAAC;YACxCjB;YACAQ;YACAF;YACAY,OAAOb,iBAAiBc,YAAaR;QACvC;QACA,IAAI,CAACG,KAAK;YACRA,MAAM,CAAC;QACT;QAEA,wCAAwC;QACxC,2CAA2C;QAC3C,wCAAwC;QAExC,IAAIV,aAAagB,QAAQ,EAAEC,UAAUlB,cAAc;YACjDW,MAAM,MAAMjB,4BAA4B;gBACtCc;gBACAG;gBACAQ,QAAQlB;gBACRmB,YAAY;gBACZlB;gBACAC;YACF;QACF;QAEA,wCAAwC;QACxC,6BAA6B;QAC7B,wCAAwC;QAExC,MAAMF,aAAaoB,KAAK,CAACC,UAAU,CAACC,MAAM,CAAC,OAAOC,WAAWC;YAC3D,MAAMD;YAENb,MACE,AAAC,MAAMc,KAAK;gBACVC,SAASvB,IAAIuB,OAAO;gBACpBf;gBACAgB,QAAQ1B;gBACRE;YACF,MAAOQ;QACX,GAAGiB,QAAQC,OAAO;QAElB,wCAAwC;QACxC,uCAAuC;QACvC,wCAAwC;QAExClB,MAAM,MAAMrB,UAAU;YACpBwC,YAAY;YACZJ,SAASvB,IAAIuB,OAAO;YACpB5B;YACAa;YACAZ,OAAOC;YACPI;YACAuB,QAAQ1B;YACRI;YACAH;YACAC;YACAG;QACF;QAEA,wCAAwC;QACxC,4BAA4B;QAC5B,wCAAwC;QAExC,MAAML,aAAaoB,KAAK,CAAC/B,SAAS,CAACiC,MAAM,CAAC,OAAOC,WAAWC;YAC1D,MAAMD;YAENb,MACE,AAAC,MAAMc,KAAK;gBACVC,SAASvB,IAAIuB,OAAO;gBACpBf;gBACAgB,QAAQ1B;gBACRE;YACF,MAAOQ;QACX,GAAGiB,QAAQC,OAAO;QAElB,wCAAwC;QACxC,iBAAiB;QACjB,wCAAwC;QAExC,IAAItB,cAAc,MAAMhB,kBAAkBY;QAE1C,wCAAwC;QACxC,iBAAiB;QACjB,wCAAwC;QAExC,OAAOQ;IACT,EAAE,OAAOoB,OAAgB;QACvB,MAAMtC,gBAAgBU;QACtB,MAAM4B;IACR;AACF,EAAC"}