payload 3.89.0 → 3.90.1

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 (459) hide show
  1. package/dist/admin/forms/Field.d.ts +2 -0
  2. package/dist/admin/forms/Field.d.ts.map +1 -1
  3. package/dist/admin/forms/Field.js.map +1 -1
  4. package/dist/admin/forms/Form.d.ts +2 -0
  5. package/dist/admin/forms/Form.d.ts.map +1 -1
  6. package/dist/admin/forms/Form.js.map +1 -1
  7. package/dist/admin/functions/index.d.ts +3 -1
  8. package/dist/admin/functions/index.d.ts.map +1 -1
  9. package/dist/admin/functions/index.js.map +1 -1
  10. package/dist/admin/views/dashboard.d.ts +1 -1
  11. package/dist/admin/views/dashboard.d.ts.map +1 -1
  12. package/dist/admin/views/dashboard.js.map +1 -1
  13. package/dist/auth/applyUserReadAccess.d.ts +15 -0
  14. package/dist/auth/applyUserReadAccess.d.ts.map +1 -0
  15. package/dist/auth/applyUserReadAccess.js +41 -0
  16. package/dist/auth/applyUserReadAccess.js.map +1 -0
  17. package/dist/auth/baseFields/apiKey/canCreateOrUpdateAPIKey.d.ts +4 -0
  18. package/dist/auth/baseFields/apiKey/canCreateOrUpdateAPIKey.d.ts.map +1 -0
  19. package/dist/auth/baseFields/apiKey/canCreateOrUpdateAPIKey.js +20 -0
  20. package/dist/auth/baseFields/apiKey/canCreateOrUpdateAPIKey.js.map +1 -0
  21. package/dist/auth/baseFields/apiKey/encryptAPIKey.d.ts +4 -0
  22. package/dist/auth/baseFields/apiKey/encryptAPIKey.d.ts.map +1 -0
  23. package/dist/auth/baseFields/apiKey/encryptAPIKey.js +16 -0
  24. package/dist/auth/baseFields/apiKey/encryptAPIKey.js.map +1 -0
  25. package/dist/auth/baseFields/apiKey/index.d.ts +6 -0
  26. package/dist/auth/baseFields/apiKey/index.d.ts.map +1 -0
  27. package/dist/auth/baseFields/apiKey/index.js +112 -0
  28. package/dist/auth/baseFields/apiKey/index.js.map +1 -0
  29. package/dist/auth/baseFields/apiKey/omitAPIKey.d.ts +4 -0
  30. package/dist/auth/baseFields/apiKey/omitAPIKey.d.ts.map +1 -0
  31. package/dist/auth/baseFields/apiKey/omitAPIKey.js +8 -0
  32. package/dist/auth/baseFields/apiKey/omitAPIKey.js.map +1 -0
  33. package/dist/auth/baseFields/apiKey/omitAPIKeyIndex.d.ts +4 -0
  34. package/dist/auth/baseFields/apiKey/omitAPIKeyIndex.d.ts.map +1 -0
  35. package/dist/auth/baseFields/apiKey/omitAPIKeyIndex.js +5 -0
  36. package/dist/auth/baseFields/apiKey/omitAPIKeyIndex.js.map +1 -0
  37. package/dist/auth/baseFields/apiKey/omitEncryptedAPIKey.d.ts +4 -0
  38. package/dist/auth/baseFields/apiKey/omitEncryptedAPIKey.d.ts.map +1 -0
  39. package/dist/auth/baseFields/apiKey/omitEncryptedAPIKey.js +5 -0
  40. package/dist/auth/baseFields/apiKey/omitEncryptedAPIKey.js.map +1 -0
  41. package/dist/auth/baseFields/apiKey/setAPIKeyIndex.d.ts +4 -0
  42. package/dist/auth/baseFields/apiKey/setAPIKeyIndex.d.ts.map +1 -0
  43. package/dist/auth/baseFields/apiKey/setAPIKeyIndex.js +17 -0
  44. package/dist/auth/baseFields/apiKey/setAPIKeyIndex.js.map +1 -0
  45. package/dist/auth/baseFields/auth.d.ts +1 -0
  46. package/dist/auth/baseFields/auth.d.ts.map +1 -1
  47. package/dist/auth/baseFields/auth.js +9 -0
  48. package/dist/auth/baseFields/auth.js.map +1 -1
  49. package/dist/auth/defaultUnlockAccess.d.ts +3 -0
  50. package/dist/auth/defaultUnlockAccess.d.ts.map +1 -0
  51. package/dist/auth/defaultUnlockAccess.js +8 -0
  52. package/dist/auth/defaultUnlockAccess.js.map +1 -0
  53. package/dist/auth/endpoints/index.d.ts +1 -0
  54. package/dist/auth/endpoints/index.d.ts.map +1 -1
  55. package/dist/auth/endpoints/index.js +8 -0
  56. package/dist/auth/endpoints/index.js.map +1 -1
  57. package/dist/auth/endpoints/revealAPIKey.d.ts +7 -0
  58. package/dist/auth/endpoints/revealAPIKey.d.ts.map +1 -0
  59. package/dist/auth/endpoints/revealAPIKey.js +120 -0
  60. package/dist/auth/endpoints/revealAPIKey.js.map +1 -0
  61. package/dist/auth/executeAccess.d.ts +3 -1
  62. package/dist/auth/executeAccess.d.ts.map +1 -1
  63. package/dist/auth/executeAccess.js +2 -1
  64. package/dist/auth/executeAccess.js.map +1 -1
  65. package/dist/auth/getAuthFields.d.ts +1 -1
  66. package/dist/auth/getAuthFields.d.ts.map +1 -1
  67. package/dist/auth/getAuthFields.js +7 -4
  68. package/dist/auth/getAuthFields.js.map +1 -1
  69. package/dist/auth/getFieldsToSign.d.ts.map +1 -1
  70. package/dist/auth/getFieldsToSign.js +17 -10
  71. package/dist/auth/getFieldsToSign.js.map +1 -1
  72. package/dist/auth/getFieldsToSign.spec.js +114 -0
  73. package/dist/auth/getFieldsToSign.spec.js.map +1 -0
  74. package/dist/auth/jwt.d.ts.map +1 -1
  75. package/dist/auth/jwt.js +2 -0
  76. package/dist/auth/jwt.js.map +1 -1
  77. package/dist/auth/jwt.spec.js +24 -0
  78. package/dist/auth/jwt.spec.js.map +1 -0
  79. package/dist/auth/jwtAuth.d.ts +9 -0
  80. package/dist/auth/jwtAuth.d.ts.map +1 -0
  81. package/dist/auth/jwtAuth.js +8 -0
  82. package/dist/auth/jwtAuth.js.map +1 -0
  83. package/dist/auth/operations/auth.d.ts.map +1 -1
  84. package/dist/auth/operations/auth.js +2 -1
  85. package/dist/auth/operations/auth.js.map +1 -1
  86. package/dist/auth/operations/forgotPassword.d.ts.map +1 -1
  87. package/dist/auth/operations/forgotPassword.js +95 -7
  88. package/dist/auth/operations/forgotPassword.js.map +1 -1
  89. package/dist/auth/operations/local/auth.js +3 -1
  90. package/dist/auth/operations/local/auth.js.map +1 -1
  91. package/dist/auth/operations/login.d.ts.map +1 -1
  92. package/dist/auth/operations/login.js +48 -26
  93. package/dist/auth/operations/login.js.map +1 -1
  94. package/dist/auth/operations/refresh.d.ts.map +1 -1
  95. package/dist/auth/operations/refresh.js +32 -9
  96. package/dist/auth/operations/refresh.js.map +1 -1
  97. package/dist/auth/operations/registerFirstUser.d.ts.map +1 -1
  98. package/dist/auth/operations/registerFirstUser.js +3 -4
  99. package/dist/auth/operations/registerFirstUser.js.map +1 -1
  100. package/dist/auth/operations/resetPassword.d.ts.map +1 -1
  101. package/dist/auth/operations/resetPassword.js +31 -22
  102. package/dist/auth/operations/resetPassword.js.map +1 -1
  103. package/dist/auth/operations/unlock.d.ts.map +1 -1
  104. package/dist/auth/operations/unlock.js +1 -0
  105. package/dist/auth/operations/unlock.js.map +1 -1
  106. package/dist/auth/strategies/apiKey.d.ts.map +1 -1
  107. package/dist/auth/strategies/apiKey.js +15 -1
  108. package/dist/auth/strategies/apiKey.js.map +1 -1
  109. package/dist/auth/strategies/jwt.d.ts.map +1 -1
  110. package/dist/auth/strategies/jwt.js +61 -10
  111. package/dist/auth/strategies/jwt.js.map +1 -1
  112. package/dist/auth/strategies/jwt.spec.js +281 -0
  113. package/dist/auth/strategies/jwt.spec.js.map +1 -0
  114. package/dist/auth/strategies/local/authenticate.d.ts +5 -1
  115. package/dist/auth/strategies/local/authenticate.d.ts.map +1 -1
  116. package/dist/auth/strategies/local/authenticate.js +8 -3
  117. package/dist/auth/strategies/local/authenticate.js.map +1 -1
  118. package/dist/auth/strategies/local/authenticate.spec.js +37 -10
  119. package/dist/auth/strategies/local/authenticate.spec.js.map +1 -1
  120. package/dist/auth/strategies/local/generatePasswordSaltHash.d.ts +9 -1
  121. package/dist/auth/strategies/local/generatePasswordSaltHash.d.ts.map +1 -1
  122. package/dist/auth/strategies/local/generatePasswordSaltHash.js +61 -34
  123. package/dist/auth/strategies/local/generatePasswordSaltHash.js.map +1 -1
  124. package/dist/auth/types.d.ts +16 -1
  125. package/dist/auth/types.d.ts.map +1 -1
  126. package/dist/auth/types.js.map +1 -1
  127. package/dist/collections/config/client.d.ts +1 -0
  128. package/dist/collections/config/client.d.ts.map +1 -1
  129. package/dist/collections/config/client.js +3 -0
  130. package/dist/collections/config/client.js.map +1 -1
  131. package/dist/collections/config/defaults.d.ts.map +1 -1
  132. package/dist/collections/config/defaults.js +4 -2
  133. package/dist/collections/config/defaults.js.map +1 -1
  134. package/dist/collections/config/sanitize.d.ts.map +1 -1
  135. package/dist/collections/config/sanitize.js +17 -6
  136. package/dist/collections/config/sanitize.js.map +1 -1
  137. package/dist/collections/endpoints/index.d.ts +1 -0
  138. package/dist/collections/endpoints/index.d.ts.map +1 -1
  139. package/dist/collections/endpoints/index.js +6 -5
  140. package/dist/collections/endpoints/index.js.map +1 -1
  141. package/dist/collections/operations/create.d.ts.map +1 -1
  142. package/dist/collections/operations/create.js +105 -8
  143. package/dist/collections/operations/create.js.map +1 -1
  144. package/dist/collections/operations/deleteByID.js +13 -13
  145. package/dist/collections/operations/deleteByID.js.map +1 -1
  146. package/dist/collections/operations/findDistinct.d.ts.map +1 -1
  147. package/dist/collections/operations/findDistinct.js +96 -18
  148. package/dist/collections/operations/findDistinct.js.map +1 -1
  149. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  150. package/dist/collections/operations/restoreVersion.js +47 -13
  151. package/dist/collections/operations/restoreVersion.js.map +1 -1
  152. package/dist/collections/operations/update.d.ts.map +1 -1
  153. package/dist/collections/operations/update.js +118 -18
  154. package/dist/collections/operations/update.js.map +1 -1
  155. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  156. package/dist/collections/operations/updateByID.js +62 -2
  157. package/dist/collections/operations/updateByID.js.map +1 -1
  158. package/dist/collections/operations/utilities/update.d.ts.map +1 -1
  159. package/dist/collections/operations/utilities/update.js +71 -15
  160. package/dist/collections/operations/utilities/update.js.map +1 -1
  161. package/dist/config/orderable/index.d.ts.map +1 -1
  162. package/dist/config/orderable/index.js +67 -14
  163. package/dist/config/orderable/index.js.map +1 -1
  164. package/dist/config/sanitize.d.ts.map +1 -1
  165. package/dist/config/sanitize.js +1 -1
  166. package/dist/config/sanitize.js.map +1 -1
  167. package/dist/config/types.d.ts +13 -1
  168. package/dist/config/types.d.ts.map +1 -1
  169. package/dist/config/types.js.map +1 -1
  170. package/dist/database/getLocalizedPaths.d.ts +2 -1
  171. package/dist/database/getLocalizedPaths.d.ts.map +1 -1
  172. package/dist/database/getLocalizedPaths.js +12 -3
  173. package/dist/database/getLocalizedPaths.js.map +1 -1
  174. package/dist/database/isNestedRelationshipQuery.d.ts +9 -0
  175. package/dist/database/isNestedRelationshipQuery.d.ts.map +1 -0
  176. package/dist/database/isNestedRelationshipQuery.js +14 -0
  177. package/dist/database/isNestedRelationshipQuery.js.map +1 -0
  178. package/dist/database/prefixWherePaths.d.ts +6 -0
  179. package/dist/database/prefixWherePaths.d.ts.map +1 -0
  180. package/dist/database/prefixWherePaths.js +19 -0
  181. package/dist/database/prefixWherePaths.js.map +1 -0
  182. package/dist/database/prefixWherePaths.spec.js +46 -0
  183. package/dist/database/prefixWherePaths.spec.js.map +1 -0
  184. package/dist/database/queryValidation/validateQueryPaths.d.ts +2 -1
  185. package/dist/database/queryValidation/validateQueryPaths.d.ts.map +1 -1
  186. package/dist/database/queryValidation/validateQueryPaths.js +4 -1
  187. package/dist/database/queryValidation/validateQueryPaths.js.map +1 -1
  188. package/dist/database/queryValidation/validateSearchParams.d.ts +2 -1
  189. package/dist/database/queryValidation/validateSearchParams.d.ts.map +1 -1
  190. package/dist/database/queryValidation/validateSearchParams.js +87 -4
  191. package/dist/database/queryValidation/validateSearchParams.js.map +1 -1
  192. package/dist/database/types.d.ts +5 -0
  193. package/dist/database/types.d.ts.map +1 -1
  194. package/dist/database/types.js.map +1 -1
  195. package/dist/email/normalizeSendEmailOptions.js.map +1 -1
  196. package/dist/email/types.d.ts +4 -1
  197. package/dist/email/types.d.ts.map +1 -1
  198. package/dist/email/types.js.map +1 -1
  199. package/dist/exports/internal.d.ts +7 -0
  200. package/dist/exports/internal.d.ts.map +1 -1
  201. package/dist/exports/internal.js +7 -1
  202. package/dist/exports/internal.js.map +1 -1
  203. package/dist/exports/shared.d.ts +3 -0
  204. package/dist/exports/shared.d.ts.map +1 -1
  205. package/dist/exports/shared.js +3 -0
  206. package/dist/exports/shared.js.map +1 -1
  207. package/dist/fields/config/types.d.ts +7 -5
  208. package/dist/fields/config/types.d.ts.map +1 -1
  209. package/dist/fields/config/types.js.map +1 -1
  210. package/dist/fields/hooks/beforeChange/index.d.ts +7 -1
  211. package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
  212. package/dist/fields/hooks/beforeChange/index.js +4 -2
  213. package/dist/fields/hooks/beforeChange/index.js.map +1 -1
  214. package/dist/fields/hooks/beforeChange/index.spec.js +206 -0
  215. package/dist/fields/hooks/beforeChange/index.spec.js.map +1 -0
  216. package/dist/fields/hooks/beforeChange/promise.d.ts +2 -1
  217. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  218. package/dist/fields/hooks/beforeChange/promise.js +51 -9
  219. package/dist/fields/hooks/beforeChange/promise.js.map +1 -1
  220. package/dist/fields/hooks/beforeChange/traverseFields.d.ts +2 -1
  221. package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
  222. package/dist/fields/hooks/beforeChange/traverseFields.js +3 -2
  223. package/dist/fields/hooks/beforeChange/traverseFields.js.map +1 -1
  224. package/dist/fields/hooks/beforeDuplicate/promise.d.ts.map +1 -1
  225. package/dist/fields/hooks/beforeDuplicate/promise.js +4 -0
  226. package/dist/fields/hooks/beforeDuplicate/promise.js.map +1 -1
  227. package/dist/fields/hooks/beforeValidate/getFallbackValue.d.ts +2 -1
  228. package/dist/fields/hooks/beforeValidate/getFallbackValue.d.ts.map +1 -1
  229. package/dist/fields/hooks/beforeValidate/getFallbackValue.js +2 -2
  230. package/dist/fields/hooks/beforeValidate/getFallbackValue.js.map +1 -1
  231. package/dist/fields/hooks/beforeValidate/index.d.ts +6 -1
  232. package/dist/fields/hooks/beforeValidate/index.d.ts.map +1 -1
  233. package/dist/fields/hooks/beforeValidate/index.js +3 -1
  234. package/dist/fields/hooks/beforeValidate/index.js.map +1 -1
  235. package/dist/fields/hooks/beforeValidate/index.spec.js +90 -0
  236. package/dist/fields/hooks/beforeValidate/index.spec.js.map +1 -0
  237. package/dist/fields/hooks/beforeValidate/promise.d.ts +6 -1
  238. package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
  239. package/dist/fields/hooks/beforeValidate/promise.js +23 -8
  240. package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
  241. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts +6 -1
  242. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
  243. package/dist/fields/hooks/beforeValidate/traverseFields.js +3 -1
  244. package/dist/fields/hooks/beforeValidate/traverseFields.js.map +1 -1
  245. package/dist/fields/validations.d.ts.map +1 -1
  246. package/dist/fields/validations.js +3 -1
  247. package/dist/fields/validations.js.map +1 -1
  248. package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
  249. package/dist/globals/operations/restoreVersion.js +45 -11
  250. package/dist/globals/operations/restoreVersion.js.map +1 -1
  251. package/dist/globals/operations/update.d.ts.map +1 -1
  252. package/dist/globals/operations/update.js +95 -16
  253. package/dist/globals/operations/update.js.map +1 -1
  254. package/dist/index.bundled.d.ts +102 -24
  255. package/dist/index.d.ts +3 -1
  256. package/dist/index.d.ts.map +1 -1
  257. package/dist/index.js +2 -2
  258. package/dist/index.js.map +1 -1
  259. package/dist/preferences/config.d.ts.map +1 -1
  260. package/dist/preferences/config.js +2 -1
  261. package/dist/preferences/config.js.map +1 -1
  262. package/dist/query-presets/access.d.ts.map +1 -1
  263. package/dist/query-presets/access.js +2 -1
  264. package/dist/query-presets/access.js.map +1 -1
  265. package/dist/queues/config/types/index.d.ts +2 -1
  266. package/dist/queues/config/types/index.d.ts.map +1 -1
  267. package/dist/queues/config/types/index.js.map +1 -1
  268. package/dist/uploads/assertClientUploadAccess.d.ts +7 -0
  269. package/dist/uploads/assertClientUploadAccess.d.ts.map +1 -0
  270. package/dist/uploads/assertClientUploadAccess.js +27 -0
  271. package/dist/uploads/assertClientUploadAccess.js.map +1 -0
  272. package/dist/uploads/assertClientUploadAllowed.d.ts +11 -0
  273. package/dist/uploads/assertClientUploadAllowed.d.ts.map +1 -0
  274. package/dist/uploads/assertClientUploadAllowed.js +46 -0
  275. package/dist/uploads/assertClientUploadAllowed.js.map +1 -0
  276. package/dist/uploads/assertClientUploadAllowed.spec.js +91 -0
  277. package/dist/uploads/assertClientUploadAllowed.spec.js.map +1 -0
  278. package/dist/uploads/checkFileRestrictions.d.ts +4 -1
  279. package/dist/uploads/checkFileRestrictions.d.ts.map +1 -1
  280. package/dist/uploads/checkFileRestrictions.js +66 -26
  281. package/dist/uploads/checkFileRestrictions.js.map +1 -1
  282. package/dist/uploads/clientUploadReceipt.d.ts +23 -0
  283. package/dist/uploads/clientUploadReceipt.d.ts.map +1 -0
  284. package/dist/uploads/clientUploadReceipt.js +55 -0
  285. package/dist/uploads/clientUploadReceipt.js.map +1 -0
  286. package/dist/uploads/deleteAssociatedFiles.d.ts.map +1 -1
  287. package/dist/uploads/deleteAssociatedFiles.js +33 -8
  288. package/dist/uploads/deleteAssociatedFiles.js.map +1 -1
  289. package/dist/uploads/deleteAssociatedFiles.spec.js +124 -0
  290. package/dist/uploads/deleteAssociatedFiles.spec.js.map +1 -0
  291. package/dist/uploads/detectSvgFromXml.d.ts +1 -3
  292. package/dist/uploads/detectSvgFromXml.d.ts.map +1 -1
  293. package/dist/uploads/detectSvgFromXml.js +3 -40
  294. package/dist/uploads/detectSvgFromXml.js.map +1 -1
  295. package/dist/uploads/endpoints/getFile.d.ts.map +1 -1
  296. package/dist/uploads/endpoints/getFile.js +5 -3
  297. package/dist/uploads/endpoints/getFile.js.map +1 -1
  298. package/dist/uploads/fetchAPI-multipart/handlers.d.ts +2 -2
  299. package/dist/uploads/fetchAPI-multipart/handlers.d.ts.map +1 -1
  300. package/dist/uploads/fetchAPI-multipart/handlers.js +18 -5
  301. package/dist/uploads/fetchAPI-multipart/handlers.js.map +1 -1
  302. package/dist/uploads/fetchAPI-multipart/index.d.ts.map +1 -1
  303. package/dist/uploads/fetchAPI-multipart/index.js +24 -2
  304. package/dist/uploads/fetchAPI-multipart/index.js.map +1 -1
  305. package/dist/uploads/fetchAPI-multipart/processMultipart.d.ts +0 -6
  306. package/dist/uploads/fetchAPI-multipart/processMultipart.d.ts.map +1 -1
  307. package/dist/uploads/fetchAPI-multipart/processMultipart.js +146 -126
  308. package/dist/uploads/fetchAPI-multipart/processMultipart.js.map +1 -1
  309. package/dist/uploads/fetchAPI-multipart/processMultipart.spec.js +663 -0
  310. package/dist/uploads/fetchAPI-multipart/processMultipart.spec.js.map +1 -0
  311. package/dist/uploads/generateFileData.d.ts +3 -1
  312. package/dist/uploads/generateFileData.d.ts.map +1 -1
  313. package/dist/uploads/generateFileData.js +29 -16
  314. package/dist/uploads/generateFileData.js.map +1 -1
  315. package/dist/uploads/getBaseFields.d.ts.map +1 -1
  316. package/dist/uploads/getBaseFields.js +3 -1
  317. package/dist/uploads/getBaseFields.js.map +1 -1
  318. package/dist/uploads/getExternalFile.d.ts +1 -1
  319. package/dist/uploads/getExternalFile.d.ts.map +1 -1
  320. package/dist/uploads/getExternalFile.js +60 -15
  321. package/dist/uploads/getExternalFile.js.map +1 -1
  322. package/dist/uploads/getFileTypeFallback.d.ts.map +1 -1
  323. package/dist/uploads/getFileTypeFallback.js +3 -1
  324. package/dist/uploads/getFileTypeFallback.js.map +1 -1
  325. package/dist/uploads/getFileTypeIdentity.d.ts +19 -0
  326. package/dist/uploads/getFileTypeIdentity.d.ts.map +1 -0
  327. package/dist/uploads/getFileTypeIdentity.js +34 -0
  328. package/dist/uploads/getFileTypeIdentity.js.map +1 -0
  329. package/dist/uploads/getFileTypeIdentity.spec.js +43 -0
  330. package/dist/uploads/getFileTypeIdentity.spec.js.map +1 -0
  331. package/dist/uploads/isProcessableImage.d.ts +2 -0
  332. package/dist/uploads/isProcessableImage.d.ts.map +1 -0
  333. package/dist/uploads/isProcessableImage.js +7 -0
  334. package/dist/uploads/isProcessableImage.js.map +1 -0
  335. package/dist/uploads/safeFetch.d.ts.map +1 -1
  336. package/dist/uploads/safeFetch.js +3 -2
  337. package/dist/uploads/safeFetch.js.map +1 -1
  338. package/dist/uploads/sanitizeUploadData.d.ts +26 -0
  339. package/dist/uploads/sanitizeUploadData.d.ts.map +1 -0
  340. package/dist/uploads/sanitizeUploadData.js +159 -0
  341. package/dist/uploads/sanitizeUploadData.js.map +1 -0
  342. package/dist/uploads/sanitizeUploadData.spec.js +255 -0
  343. package/dist/uploads/sanitizeUploadData.spec.js.map +1 -0
  344. package/dist/uploads/types.d.ts +11 -3
  345. package/dist/uploads/types.d.ts.map +1 -1
  346. package/dist/uploads/types.js.map +1 -1
  347. package/dist/uploads/uploadContentSecurityPolicy.d.ts +2 -0
  348. package/dist/uploads/uploadContentSecurityPolicy.d.ts.map +1 -0
  349. package/dist/uploads/uploadContentSecurityPolicy.js +3 -0
  350. package/dist/uploads/uploadContentSecurityPolicy.js.map +1 -0
  351. package/dist/uploads/validateISOBaseMediaFile.d.ts +4 -0
  352. package/dist/uploads/validateISOBaseMediaFile.d.ts.map +1 -0
  353. package/dist/uploads/validateISOBaseMediaFile.js +91 -0
  354. package/dist/uploads/validateISOBaseMediaFile.js.map +1 -0
  355. package/dist/uploads/validateISOBaseMediaFile.spec.js +130 -0
  356. package/dist/uploads/validateISOBaseMediaFile.spec.js.map +1 -0
  357. package/dist/uploads/validateSvg.d.ts +10 -4
  358. package/dist/uploads/validateSvg.d.ts.map +1 -1
  359. package/dist/uploads/validateSvg.js +280 -40
  360. package/dist/uploads/validateSvg.js.map +1 -1
  361. package/dist/uploads/validateSvg.spec.js +123 -0
  362. package/dist/uploads/validateSvg.spec.js.map +1 -0
  363. package/dist/uploads/validateUploadFilename.d.ts +3 -0
  364. package/dist/uploads/validateUploadFilename.d.ts.map +1 -0
  365. package/dist/uploads/validateUploadFilename.js +13 -0
  366. package/dist/uploads/validateUploadFilename.js.map +1 -0
  367. package/dist/uploads/validateUploadFilename.spec.js +24 -0
  368. package/dist/uploads/validateUploadFilename.spec.js.map +1 -0
  369. package/dist/utilities/addDataAndFileToRequest.d.ts.map +1 -1
  370. package/dist/utilities/addDataAndFileToRequest.js +28 -1
  371. package/dist/utilities/addDataAndFileToRequest.js.map +1 -1
  372. package/dist/utilities/addDataAndFileToRequest.spec.js +158 -0
  373. package/dist/utilities/addDataAndFileToRequest.spec.js.map +1 -1
  374. package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
  375. package/dist/utilities/createPayloadRequest.js +2 -1
  376. package/dist/utilities/createPayloadRequest.js.map +1 -1
  377. package/dist/utilities/deepCopyObject.d.ts.map +1 -1
  378. package/dist/utilities/deepCopyObject.js +110 -19
  379. package/dist/utilities/deepCopyObject.js.map +1 -1
  380. package/dist/utilities/deepCopyObject.spec.js +216 -0
  381. package/dist/utilities/deepCopyObject.spec.js.map +1 -0
  382. package/dist/utilities/fieldPath.d.ts +13 -0
  383. package/dist/utilities/fieldPath.d.ts.map +1 -0
  384. package/dist/utilities/fieldPath.js +51 -0
  385. package/dist/utilities/fieldPath.js.map +1 -0
  386. package/dist/utilities/fieldPath.spec.js +155 -0
  387. package/dist/utilities/fieldPath.spec.js.map +1 -0
  388. package/dist/utilities/getEntityPermissions/getEntityPermissions.d.ts.map +1 -1
  389. package/dist/utilities/getEntityPermissions/getEntityPermissions.js +2 -0
  390. package/dist/utilities/getEntityPermissions/getEntityPermissions.js.map +1 -1
  391. package/dist/utilities/getObjectDotNotation.d.ts.map +1 -1
  392. package/dist/utilities/getObjectDotNotation.js +7 -1
  393. package/dist/utilities/getObjectDotNotation.js.map +1 -1
  394. package/dist/utilities/getObjectDotNotation.spec.js +33 -0
  395. package/dist/utilities/getObjectDotNotation.spec.js.map +1 -0
  396. package/dist/utilities/getSafeRedirect.spec.js +14 -0
  397. package/dist/utilities/getSafeRedirect.spec.js.map +1 -1
  398. package/dist/utilities/getTopLevelFieldNames.d.ts +2 -0
  399. package/dist/utilities/getTopLevelFieldNames.d.ts.map +1 -0
  400. package/dist/utilities/getTopLevelFieldNames.js +3 -0
  401. package/dist/utilities/getTopLevelFieldNames.js.map +1 -0
  402. package/dist/utilities/getTopLevelFieldNames.spec.js +18 -0
  403. package/dist/utilities/getTopLevelFieldNames.spec.js.map +1 -0
  404. package/dist/utilities/handleEndpoints.js +1 -1
  405. package/dist/utilities/handleEndpoints.js.map +1 -1
  406. package/dist/utilities/parseParams/index.d.ts.map +1 -1
  407. package/dist/utilities/parseParams/index.js +3 -1
  408. package/dist/utilities/parseParams/index.js.map +1 -1
  409. package/dist/utilities/parseParams/index.spec.js +8 -0
  410. package/dist/utilities/parseParams/index.spec.js.map +1 -1
  411. package/dist/utilities/telemetry/featureInfo/getFeatureInfo.d.ts +4 -0
  412. package/dist/utilities/telemetry/featureInfo/getFeatureInfo.d.ts.map +1 -0
  413. package/dist/utilities/telemetry/featureInfo/getFeatureInfo.js +248 -0
  414. package/dist/utilities/telemetry/featureInfo/getFeatureInfo.js.map +1 -0
  415. package/dist/utilities/telemetry/featureInfo/types.d.ts +62 -0
  416. package/dist/utilities/telemetry/featureInfo/types.d.ts.map +1 -0
  417. package/dist/utilities/telemetry/featureInfo/types.js +3 -0
  418. package/dist/utilities/telemetry/featureInfo/types.js.map +1 -0
  419. package/dist/utilities/telemetry/getProjectContext.d.ts +14 -0
  420. package/dist/utilities/telemetry/getProjectContext.d.ts.map +1 -0
  421. package/dist/utilities/telemetry/getProjectContext.js +36 -0
  422. package/dist/utilities/telemetry/getProjectContext.js.map +1 -0
  423. package/dist/utilities/telemetry/index.d.ts +7 -1
  424. package/dist/utilities/telemetry/index.d.ts.map +1 -1
  425. package/dist/utilities/telemetry/index.js +22 -0
  426. package/dist/utilities/telemetry/index.js.map +1 -1
  427. package/dist/utilities/traverseFields.d.ts.map +1 -1
  428. package/dist/utilities/traverseFields.js +5 -14
  429. package/dist/utilities/traverseFields.js.map +1 -1
  430. package/dist/utilities/unflatten.d.ts.map +1 -1
  431. package/dist/utilities/unflatten.js +21 -9
  432. package/dist/utilities/unflatten.js.map +1 -1
  433. package/dist/utilities/unflatten.spec.js +38 -0
  434. package/dist/utilities/unflatten.spec.js.map +1 -0
  435. package/dist/versions/allLocalesPublicationStatus.d.ts +38 -0
  436. package/dist/versions/allLocalesPublicationStatus.d.ts.map +1 -0
  437. package/dist/versions/allLocalesPublicationStatus.js +57 -0
  438. package/dist/versions/allLocalesPublicationStatus.js.map +1 -0
  439. package/dist/versions/getLatestGlobalVersion.d.ts.map +1 -1
  440. package/dist/versions/getLatestGlobalVersion.js +10 -2
  441. package/dist/versions/getLatestGlobalVersion.js.map +1 -1
  442. package/dist/versions/getRestoredStatusesToAuthorize.d.ts +9 -0
  443. package/dist/versions/getRestoredStatusesToAuthorize.d.ts.map +1 -0
  444. package/dist/versions/getRestoredStatusesToAuthorize.js +22 -0
  445. package/dist/versions/getRestoredStatusesToAuthorize.js.map +1 -0
  446. package/dist/versions/getRestoredStatusesToAuthorize.spec.js +50 -0
  447. package/dist/versions/getRestoredStatusesToAuthorize.spec.js.map +1 -0
  448. package/dist/versions/schedule/job.d.ts +2 -2
  449. package/dist/versions/schedule/job.d.ts.map +1 -1
  450. package/dist/versions/schedule/job.js +11 -7
  451. package/dist/versions/schedule/job.js.map +1 -1
  452. package/dist/versions/schedule/types.d.ts +5 -1
  453. package/dist/versions/schedule/types.d.ts.map +1 -1
  454. package/dist/versions/schedule/types.js.map +1 -1
  455. package/package.json +4 -2
  456. package/dist/auth/baseFields/apiKey.d.ts +0 -3
  457. package/dist/auth/baseFields/apiKey.d.ts.map +0 -1
  458. package/dist/auth/baseFields/apiKey.js +0 -59
  459. package/dist/auth/baseFields/apiKey.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/database/queryValidation/validateQueryPaths.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../../collections/config/types.js'\nimport type { FlattenedField } from '../../fields/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../globals/config/types.js'\nimport type { Operator, PayloadRequest, Where, WhereField } from '../../types/index.js'\nimport type { EntityPolicies } from './types.js'\n\nimport { QueryError } from '../../errors/QueryError.js'\nimport { validOperatorSet } from '../../types/constants.js'\nimport { validateSearchParam } from './validateSearchParams.js'\n\ntype Args = {\n errors?: { path: string }[]\n overrideAccess: boolean\n // TODO: Rename to permissions or entityPermissions in 4.0\n policies?: EntityPolicies\n polymorphicJoin?: boolean\n req: PayloadRequest\n versionFields?: FlattenedField[]\n where: Where\n} & (\n | {\n collectionConfig: SanitizedCollectionConfig\n globalConfig?: never | undefined\n }\n | {\n collectionConfig?: never | undefined\n globalConfig: SanitizedGlobalConfig\n }\n)\n\nexport async function validateQueryPaths({\n collectionConfig,\n errors = [],\n globalConfig,\n overrideAccess,\n policies = {\n collections: {},\n globals: {},\n },\n polymorphicJoin,\n req,\n versionFields,\n where,\n}: Args): Promise<void> {\n const fields = versionFields || (globalConfig || collectionConfig).flattenedFields\n\n if (typeof where === 'object') {\n // We need to determine if the whereKey is an AND, OR, or a schema path\n const promises: Promise<void>[] = []\n for (const path in where) {\n const constraint = where[path]\n\n if (['and', 'or'].includes(path.toLowerCase()) && Array.isArray(constraint)) {\n for (const item of constraint) {\n if (collectionConfig) {\n promises.push(\n validateQueryPaths({\n collectionConfig,\n errors,\n overrideAccess,\n policies,\n polymorphicJoin,\n req,\n versionFields,\n where: item,\n }),\n )\n } else {\n promises.push(\n validateQueryPaths({\n errors,\n globalConfig,\n overrideAccess,\n policies,\n polymorphicJoin,\n req,\n versionFields,\n where: item,\n }),\n )\n }\n }\n } else if (Array.isArray(constraint)) {\n errors.push({ path })\n } else if (!Array.isArray(constraint)) {\n for (const operator in constraint) {\n const val = constraint[operator as keyof typeof constraint]\n if (validOperatorSet.has(operator as Operator)) {\n promises.push(\n validateSearchParam({\n collectionConfig,\n constraint: where as WhereField,\n errors,\n fields,\n globalConfig,\n operator,\n overrideAccess,\n path,\n policies,\n polymorphicJoin,\n req,\n val,\n versionFields,\n }),\n )\n } else {\n errors.push({ path: `${path}.${operator}` })\n }\n }\n }\n }\n\n await Promise.all(promises)\n if (errors.length > 0) {\n throw new QueryError(errors)\n }\n }\n}\n"],"names":["QueryError","validOperatorSet","validateSearchParam","validateQueryPaths","collectionConfig","errors","globalConfig","overrideAccess","policies","collections","globals","polymorphicJoin","req","versionFields","where","fields","flattenedFields","promises","path","constraint","includes","toLowerCase","Array","isArray","item","push","operator","val","has","Promise","all","length"],"mappings":"AAMA,SAASA,UAAU,QAAQ,6BAA4B;AACvD,SAASC,gBAAgB,QAAQ,2BAA0B;AAC3D,SAASC,mBAAmB,QAAQ,4BAA2B;AAsB/D,OAAO,eAAeC,mBAAmB,EACvCC,gBAAgB,EAChBC,SAAS,EAAE,EACXC,YAAY,EACZC,cAAc,EACdC,WAAW;IACTC,aAAa,CAAC;IACdC,SAAS,CAAC;AACZ,CAAC,EACDC,eAAe,EACfC,GAAG,EACHC,aAAa,EACbC,KAAK,EACA;IACL,MAAMC,SAASF,iBAAiB,AAACP,CAAAA,gBAAgBF,gBAAe,EAAGY,eAAe;IAElF,IAAI,OAAOF,UAAU,UAAU;QAC7B,uEAAuE;QACvE,MAAMG,WAA4B,EAAE;QACpC,IAAK,MAAMC,QAAQJ,MAAO;YACxB,MAAMK,aAAaL,KAAK,CAACI,KAAK;YAE9B,IAAI;gBAAC;gBAAO;aAAK,CAACE,QAAQ,CAACF,KAAKG,WAAW,OAAOC,MAAMC,OAAO,CAACJ,aAAa;gBAC3E,KAAK,MAAMK,QAAQL,WAAY;oBAC7B,IAAIf,kBAAkB;wBACpBa,SAASQ,IAAI,CACXtB,mBAAmB;4BACjBC;4BACAC;4BACAE;4BACAC;4BACAG;4BACAC;4BACAC;4BACAC,OAAOU;wBACT;oBAEJ,OAAO;wBACLP,SAASQ,IAAI,CACXtB,mBAAmB;4BACjBE;4BACAC;4BACAC;4BACAC;4BACAG;4BACAC;4BACAC;4BACAC,OAAOU;wBACT;oBAEJ;gBACF;YACF,OAAO,IAAIF,MAAMC,OAAO,CAACJ,aAAa;gBACpCd,OAAOoB,IAAI,CAAC;oBAAEP;gBAAK;YACrB,OAAO,IAAI,CAACI,MAAMC,OAAO,CAACJ,aAAa;gBACrC,IAAK,MAAMO,YAAYP,WAAY;oBACjC,MAAMQ,MAAMR,UAAU,CAACO,SAAoC;oBAC3D,IAAIzB,iBAAiB2B,GAAG,CAACF,WAAuB;wBAC9CT,SAASQ,IAAI,CACXvB,oBAAoB;4BAClBE;4BACAe,YAAYL;4BACZT;4BACAU;4BACAT;4BACAoB;4BACAnB;4BACAW;4BACAV;4BACAG;4BACAC;4BACAe;4BACAd;wBACF;oBAEJ,OAAO;wBACLR,OAAOoB,IAAI,CAAC;4BAAEP,MAAM,GAAGA,KAAK,CAAC,EAAEQ,UAAU;wBAAC;oBAC5C;gBACF;YACF;QACF;QAEA,MAAMG,QAAQC,GAAG,CAACb;QAClB,IAAIZ,OAAO0B,MAAM,GAAG,GAAG;YACrB,MAAM,IAAI/B,WAAWK;QACvB;IACF;AACF"}
1
+ {"version":3,"sources":["../../../src/database/queryValidation/validateQueryPaths.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../../collections/config/types.js'\nimport type { FlattenedField } from '../../fields/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../globals/config/types.js'\nimport type { Operator, PayloadRequest, Where, WhereField } from '../../types/index.js'\nimport type { EntityPolicies } from './types.js'\n\nimport { QueryError } from '../../errors/QueryError.js'\nimport { validOperatorSet } from '../../types/constants.js'\nimport { validateSearchParam } from './validateSearchParams.js'\n\ntype Args = {\n errors?: { path: string }[]\n overrideAccess: boolean\n // TODO: Rename to permissions or entityPermissions in 4.0\n policies?: EntityPolicies\n polymorphicJoin?: boolean\n req: PayloadRequest\n showHiddenFields?: boolean\n versionFields?: FlattenedField[]\n where: Where\n} & (\n | {\n collectionConfig: SanitizedCollectionConfig\n globalConfig?: never | undefined\n }\n | {\n collectionConfig?: never | undefined\n globalConfig: SanitizedGlobalConfig\n }\n)\n\nexport async function validateQueryPaths({\n collectionConfig,\n errors = [],\n globalConfig,\n overrideAccess,\n policies = {\n collections: {},\n globals: {},\n },\n polymorphicJoin,\n req,\n showHiddenFields,\n versionFields,\n where,\n}: Args): Promise<void> {\n const fields = versionFields || (globalConfig || collectionConfig).flattenedFields\n\n if (typeof where === 'object') {\n // We need to determine if the whereKey is an AND, OR, or a schema path\n const promises: Promise<void>[] = []\n for (const path in where) {\n const constraint = where[path]\n\n if (['and', 'or'].includes(path.toLowerCase()) && Array.isArray(constraint)) {\n for (const item of constraint) {\n if (collectionConfig) {\n promises.push(\n validateQueryPaths({\n collectionConfig,\n errors,\n overrideAccess,\n policies,\n polymorphicJoin,\n req,\n showHiddenFields,\n versionFields,\n where: item,\n }),\n )\n } else {\n promises.push(\n validateQueryPaths({\n errors,\n globalConfig,\n overrideAccess,\n policies,\n polymorphicJoin,\n req,\n showHiddenFields,\n versionFields,\n where: item,\n }),\n )\n }\n }\n } else if (Array.isArray(constraint)) {\n errors.push({ path })\n } else if (!Array.isArray(constraint)) {\n for (const operator in constraint) {\n const val = constraint[operator as keyof typeof constraint]\n if (validOperatorSet.has(operator as Operator)) {\n promises.push(\n validateSearchParam({\n collectionConfig,\n constraint: where as WhereField,\n errors,\n fields,\n globalConfig,\n operator,\n overrideAccess,\n path,\n policies,\n polymorphicJoin,\n req,\n showHiddenFields,\n val,\n versionFields,\n }),\n )\n } else {\n errors.push({ path: `${path}.${operator}` })\n }\n }\n }\n }\n\n await Promise.all(promises)\n if (errors.length > 0) {\n throw new QueryError(errors)\n }\n }\n}\n"],"names":["QueryError","validOperatorSet","validateSearchParam","validateQueryPaths","collectionConfig","errors","globalConfig","overrideAccess","policies","collections","globals","polymorphicJoin","req","showHiddenFields","versionFields","where","fields","flattenedFields","promises","path","constraint","includes","toLowerCase","Array","isArray","item","push","operator","val","has","Promise","all","length"],"mappings":"AAMA,SAASA,UAAU,QAAQ,6BAA4B;AACvD,SAASC,gBAAgB,QAAQ,2BAA0B;AAC3D,SAASC,mBAAmB,QAAQ,4BAA2B;AAuB/D,OAAO,eAAeC,mBAAmB,EACvCC,gBAAgB,EAChBC,SAAS,EAAE,EACXC,YAAY,EACZC,cAAc,EACdC,WAAW;IACTC,aAAa,CAAC;IACdC,SAAS,CAAC;AACZ,CAAC,EACDC,eAAe,EACfC,GAAG,EACHC,gBAAgB,EAChBC,aAAa,EACbC,KAAK,EACA;IACL,MAAMC,SAASF,iBAAiB,AAACR,CAAAA,gBAAgBF,gBAAe,EAAGa,eAAe;IAElF,IAAI,OAAOF,UAAU,UAAU;QAC7B,uEAAuE;QACvE,MAAMG,WAA4B,EAAE;QACpC,IAAK,MAAMC,QAAQJ,MAAO;YACxB,MAAMK,aAAaL,KAAK,CAACI,KAAK;YAE9B,IAAI;gBAAC;gBAAO;aAAK,CAACE,QAAQ,CAACF,KAAKG,WAAW,OAAOC,MAAMC,OAAO,CAACJ,aAAa;gBAC3E,KAAK,MAAMK,QAAQL,WAAY;oBAC7B,IAAIhB,kBAAkB;wBACpBc,SAASQ,IAAI,CACXvB,mBAAmB;4BACjBC;4BACAC;4BACAE;4BACAC;4BACAG;4BACAC;4BACAC;4BACAC;4BACAC,OAAOU;wBACT;oBAEJ,OAAO;wBACLP,SAASQ,IAAI,CACXvB,mBAAmB;4BACjBE;4BACAC;4BACAC;4BACAC;4BACAG;4BACAC;4BACAC;4BACAC;4BACAC,OAAOU;wBACT;oBAEJ;gBACF;YACF,OAAO,IAAIF,MAAMC,OAAO,CAACJ,aAAa;gBACpCf,OAAOqB,IAAI,CAAC;oBAAEP;gBAAK;YACrB,OAAO,IAAI,CAACI,MAAMC,OAAO,CAACJ,aAAa;gBACrC,IAAK,MAAMO,YAAYP,WAAY;oBACjC,MAAMQ,MAAMR,UAAU,CAACO,SAAoC;oBAC3D,IAAI1B,iBAAiB4B,GAAG,CAACF,WAAuB;wBAC9CT,SAASQ,IAAI,CACXxB,oBAAoB;4BAClBE;4BACAgB,YAAYL;4BACZV;4BACAW;4BACAV;4BACAqB;4BACApB;4BACAY;4BACAX;4BACAG;4BACAC;4BACAC;4BACAe;4BACAd;wBACF;oBAEJ,OAAO;wBACLT,OAAOqB,IAAI,CAAC;4BAAEP,MAAM,GAAGA,KAAK,CAAC,EAAEQ,UAAU;wBAAC;oBAC5C;gBACF;YACF;QACF;QAEA,MAAMG,QAAQC,GAAG,CAACb;QAClB,IAAIb,OAAO2B,MAAM,GAAG,GAAG;YACrB,MAAM,IAAIhC,WAAWK;QACvB;IACF;AACF"}
@@ -18,12 +18,13 @@ type Args = {
18
18
  policies: EntityPolicies;
19
19
  polymorphicJoin?: boolean;
20
20
  req: PayloadRequest;
21
+ showHiddenFields?: boolean;
21
22
  val: unknown;
22
23
  versionFields?: FlattenedField[];
23
24
  };
24
25
  /**
25
26
  * Validate the Payload key / value / operator
26
27
  */
27
- export declare function validateSearchParam({ collectionConfig, constraint, errors, fields, globalConfig, operator, overrideAccess, parentIsLocalized, path: incomingPath, policies, polymorphicJoin, req, val, versionFields, }: Args): Promise<void>;
28
+ export declare function validateSearchParam({ collectionConfig, constraint, errors, fields, globalConfig, operator, overrideAccess, parentIsLocalized, path: incomingPath, policies, polymorphicJoin, req, showHiddenFields, val, versionFields, }: Args): Promise<void>;
28
29
  export {};
29
30
  //# sourceMappingURL=validateSearchParams.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validateSearchParams.d.ts","sourceRoot":"","sources":["../../../src/database/queryValidation/validateSearchParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAClE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtE,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,YAAY,CAAA;AAS7D,KAAK,IAAI,GAAG;IACV,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC1B,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,OAAO,CAAA;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,IAAI,EAAE,MAAM,CAAA;IAEZ,QAAQ,EAAE,cAAc,CAAA;IACxB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,GAAG,EAAE,cAAc,CAAA;IACnB,GAAG,EAAE,OAAO,CAAA;IACZ,aAAa,CAAC,EAAE,cAAc,EAAE,CAAA;CACjC,CAAA;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,EACxC,gBAAgB,EAChB,UAAU,EACV,MAAM,EACN,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,iBAAiB,EACjB,IAAI,EAAE,YAAY,EAClB,QAAQ,EACR,eAAe,EACf,GAAG,EACH,GAAG,EACH,aAAa,GACd,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAoLtB"}
1
+ {"version":3,"file":"validateSearchParams.d.ts","sourceRoot":"","sources":["../../../src/database/queryValidation/validateSearchParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAClE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtE,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,YAAY,CAAA;AAW7D,KAAK,IAAI,GAAG;IACV,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC1B,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,OAAO,CAAA;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,IAAI,EAAE,MAAM,CAAA;IAEZ,QAAQ,EAAE,cAAc,CAAA;IACxB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,GAAG,EAAE,OAAO,CAAA;IACZ,aAAa,CAAC,EAAE,cAAc,EAAE,CAAA;CACjC,CAAA;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,EACxC,gBAAgB,EAChB,UAAU,EACV,MAAM,EACN,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,iBAAiB,EACjB,IAAI,EAAE,YAAY,EAClB,QAAQ,EACR,eAAe,EACf,GAAG,EACH,gBAAgB,EAChB,GAAG,EACH,aAAa,GACd,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA8StB"}
@@ -3,10 +3,12 @@ import { SAFE_FIELD_PATH_REGEX } from '../../types/constants.js';
3
3
  import { getEntityPermissions } from '../../utilities/getEntityPermissions/getEntityPermissions.js';
4
4
  import { isolateObjectProperty } from '../../utilities/isolateObjectProperty.js';
5
5
  import { getLocalizedPaths } from '../getLocalizedPaths.js';
6
+ import { isNestedRelationshipQuery } from '../isNestedRelationshipQuery.js';
7
+ import { prefixWherePaths } from '../prefixWherePaths.js';
6
8
  import { validateQueryPaths } from './validateQueryPaths.js';
7
9
  /**
8
10
  * Validate the Payload key / value / operator
9
- */ export async function validateSearchParam({ collectionConfig, constraint, errors, fields, globalConfig, operator, overrideAccess, parentIsLocalized, path: incomingPath, policies, polymorphicJoin, req, val, versionFields }) {
11
+ */ export async function validateSearchParam({ collectionConfig, constraint, errors, fields, globalConfig, operator, overrideAccess, parentIsLocalized, path: incomingPath, policies, polymorphicJoin, req, showHiddenFields, val, versionFields }) {
10
12
  // Replace GraphQL nested field double underscore formatting
11
13
  let sanitizedPath;
12
14
  if (incomingPath === '_id') {
@@ -38,10 +40,40 @@ import { validateQueryPaths } from './validateQueryPaths.js';
38
40
  locale: req.locale,
39
41
  overrideAccess,
40
42
  parentIsLocalized,
41
- payload: req.payload
43
+ payload: req.payload,
44
+ showHiddenFields
42
45
  });
43
46
  }
44
47
  const promises = [];
48
+ const relationshipField = paths.length === 1 ? paths[0]?.field : undefined;
49
+ const hasNestedWhere = isNestedRelationshipQuery(val);
50
+ const relatedCollectionSlug = relationshipField && (relationshipField.type === 'relationship' || relationshipField.type === 'upload') && relationshipField.hasMany && typeof relationshipField.relationTo === 'string' ? relationshipField.relationTo : undefined;
51
+ // 3.x supports only the `contains` operator for nested relationship queries.
52
+ const isNestedHasManyQuery = operator === 'contains' && hasNestedWhere && Boolean(relatedCollectionSlug);
53
+ const isJoinContainsQuery = operator === 'contains' && relationshipField?.type === 'join' && typeof relationshipField.collection === 'string' && hasNestedWhere;
54
+ // Plain-object values would be merged as raw query fragments.
55
+ if (operator === 'like' || operator === 'not_like' || operator === 'contains') {
56
+ const isValidNestedContains = operator === 'contains' && (isNestedHasManyQuery || isJoinContainsQuery);
57
+ const containsPlainObject = isNestedRelationshipQuery(val) || Array.isArray(val) && val.some((entry)=>isNestedRelationshipQuery(entry));
58
+ if (containsPlainObject && !isValidNestedContains) {
59
+ errors.push({
60
+ path: incomingPath
61
+ });
62
+ return;
63
+ }
64
+ }
65
+ if (isNestedHasManyQuery && relatedCollectionSlug) {
66
+ // Validate the nested query against the related collection.
67
+ promises.push(validateQueryPaths({
68
+ collectionConfig: req.payload.collections[relatedCollectionSlug].config,
69
+ errors,
70
+ overrideAccess,
71
+ policies,
72
+ req,
73
+ showHiddenFields,
74
+ where: val
75
+ }));
76
+ }
45
77
  // Sanitize relation.otherRelation.id to relation.otherRelation
46
78
  if (paths.at(-1)?.path === 'id') {
47
79
  const previousField = paths.at(-2)?.field;
@@ -51,7 +83,8 @@ import { validateQueryPaths } from './validateQueryPaths.js';
51
83
  }
52
84
  promises.push(...paths.map(async ({ collectionSlug, field, invalid, path }, i)=>{
53
85
  if (invalid) {
54
- if (!polymorphicJoin || !SAFE_FIELD_PATH_REGEX.test(incomingPath)) {
86
+ const isUnknownPolymorphicJoinField = polymorphicJoin && !field && SAFE_FIELD_PATH_REGEX.test(incomingPath);
87
+ if (!isUnknownPolymorphicJoinField) {
55
88
  errors.push({
56
89
  path
57
90
  });
@@ -95,6 +128,55 @@ import { validateQueryPaths } from './validateQueryPaths.js';
95
128
  path: incomingPath
96
129
  });
97
130
  }
131
+ const relatedCollectionReadPermission = policies.collections[collectionSlug].read;
132
+ const previousSegment = paths[i - 1];
133
+ const traversedField = previousSegment?.field;
134
+ const isRelationshipHop = Boolean(traversedField) && (traversedField.type === 'relationship' || traversedField.type === 'upload' || traversedField.type === 'join');
135
+ if (isRelationshipHop && relatedCollectionReadPermission && typeof relatedCollectionReadPermission === 'object' && relatedCollectionReadPermission.where) {
136
+ const relationshipPath = paths.slice(0, i).map(({ path: pathToRelationship })=>pathToRelationship).join('.');
137
+ const mutableWhere = constraint;
138
+ const existingAnd = Array.isArray(mutableWhere.and) ? mutableWhere.and : [];
139
+ // Has-many relationships and joins can point to many related documents, so the user's
140
+ // filter and the access constraint must be satisfied by the SAME related document.
141
+ // Scoping both into a single `contains` prevents a different, readable document from
142
+ // masking one the user cannot read (a related-document oracle).
143
+ const isHasManyRelationship = (traversedField.type === 'relationship' || traversedField.type === 'upload') && traversedField.hasMany;
144
+ const isJoin = traversedField.type === 'join';
145
+ if (isHasManyRelationship || isJoin) {
146
+ const relatedFieldPath = paths.at(-1)?.path;
147
+ if (relatedFieldPath) {
148
+ mutableWhere.and = [
149
+ ...existingAnd,
150
+ {
151
+ [relationshipPath]: {
152
+ contains: {
153
+ and: [
154
+ {
155
+ [relatedFieldPath]: {
156
+ [operator]: val
157
+ }
158
+ },
159
+ relatedCollectionReadPermission.where
160
+ ]
161
+ }
162
+ }
163
+ }
164
+ ];
165
+ // The scoped `contains` above fully replaces the user's original filter;
166
+ // so we can remove it from the top-level where clause
167
+ delete mutableWhere[incomingPath];
168
+ }
169
+ } else {
170
+ const accessWhere = prefixWherePaths({
171
+ prefix: relationshipPath,
172
+ where: relatedCollectionReadPermission.where
173
+ });
174
+ mutableWhere.and = [
175
+ ...existingAnd,
176
+ accessWhere
177
+ ];
178
+ }
179
+ }
98
180
  }
99
181
  let fieldPath = path;
100
182
  // remove locale from end of path
@@ -134,7 +216,7 @@ import { validateQueryPaths } from './validateQueryPaths.js';
134
216
  }
135
217
  }
136
218
  }
137
- if (i > 1) {
219
+ if (!isNestedHasManyQuery && i > 1) {
138
220
  // Remove top collection and reverse array
139
221
  // to work backwards from top
140
222
  const pathsToQuery = paths.slice(1).reverse();
@@ -149,6 +231,7 @@ import { validateQueryPaths } from './validateQueryPaths.js';
149
231
  overrideAccess,
150
232
  policies,
151
233
  req,
234
+ showHiddenFields,
152
235
  where: {
153
236
  [subPath]: {
154
237
  [operator]: val
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/database/queryValidation/validateSearchParams.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../../collections/config/types.js'\nimport type { FlattenedField } from '../../fields/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../globals/config/types.js'\nimport type { PayloadRequest, WhereField } from '../../types/index.js'\nimport type { EntityPolicies, PathToQuery } from './types.js'\n\nimport { fieldAffectsData } from '../../fields/config/types.js'\nimport { SAFE_FIELD_PATH_REGEX } from '../../types/constants.js'\nimport { getEntityPermissions } from '../../utilities/getEntityPermissions/getEntityPermissions.js'\nimport { isolateObjectProperty } from '../../utilities/isolateObjectProperty.js'\nimport { getLocalizedPaths } from '../getLocalizedPaths.js'\nimport { validateQueryPaths } from './validateQueryPaths.js'\n\ntype Args = {\n collectionConfig?: SanitizedCollectionConfig\n constraint: WhereField\n errors: { path: string }[]\n fields: FlattenedField[]\n globalConfig?: SanitizedGlobalConfig\n operator: string\n overrideAccess: boolean\n parentIsLocalized?: boolean\n path: string\n // TODO: Rename to permissions or entityPermissions in 4.0\n policies: EntityPolicies\n polymorphicJoin?: boolean\n req: PayloadRequest\n val: unknown\n versionFields?: FlattenedField[]\n}\n\n/**\n * Validate the Payload key / value / operator\n */\nexport async function validateSearchParam({\n collectionConfig,\n constraint,\n errors,\n fields,\n globalConfig,\n operator,\n overrideAccess,\n parentIsLocalized,\n path: incomingPath,\n policies,\n polymorphicJoin,\n req,\n val,\n versionFields,\n}: Args): Promise<void> {\n // Replace GraphQL nested field double underscore formatting\n let sanitizedPath\n if (incomingPath === '_id') {\n sanitizedPath = 'id'\n } else {\n sanitizedPath = incomingPath.replace(/__/g, '.')\n }\n let paths: PathToQuery[] = []\n const { slug } = (collectionConfig || globalConfig)!\n\n const blockReferencesPermissions = {}\n\n if (globalConfig && !policies.globals![slug]) {\n policies.globals![slug] = await getEntityPermissions({\n blockReferencesPermissions,\n entity: globalConfig,\n entityType: 'global',\n fetchData: false,\n operations: ['read'],\n req,\n })\n }\n\n if (sanitizedPath !== 'id') {\n paths = getLocalizedPaths({\n collectionSlug: collectionConfig?.slug,\n fields,\n globalSlug: globalConfig?.slug,\n incomingPath: sanitizedPath,\n locale: req.locale!,\n overrideAccess,\n parentIsLocalized,\n payload: req.payload,\n })\n }\n const promises: Promise<void>[] = []\n\n // Sanitize relation.otherRelation.id to relation.otherRelation\n if (paths.at(-1)?.path === 'id') {\n const previousField = paths.at(-2)?.field\n if (\n previousField &&\n (previousField.type === 'relationship' || previousField.type === 'upload') &&\n typeof previousField.relationTo === 'string'\n ) {\n paths.pop()\n }\n }\n\n promises.push(\n ...paths.map(async ({ collectionSlug, field, invalid, path }, i) => {\n if (invalid) {\n if (!polymorphicJoin || !SAFE_FIELD_PATH_REGEX.test(incomingPath)) {\n errors.push({ path })\n }\n\n return\n }\n\n // where: { relatedPosts: { equals: 1}} -> { 'relatedPosts.id': { equals: 1}}\n if (field.type === 'join' && path === incomingPath) {\n constraint[`${path}.id` as keyof WhereField] = constraint[path as keyof WhereField]\n delete constraint[path as keyof WhereField]\n }\n\n if ('virtual' in field && field.virtual) {\n if (field.virtual === true) {\n errors.push({ path })\n }\n }\n\n if (polymorphicJoin && path === 'relationTo') {\n return\n }\n\n if (!overrideAccess && fieldAffectsData(field)) {\n if (collectionSlug) {\n if (!policies.collections![collectionSlug]) {\n policies.collections![collectionSlug] = await getEntityPermissions({\n blockReferencesPermissions,\n entity: req.payload.collections[collectionSlug]!.config,\n entityType: 'collection',\n fetchData: false,\n operations: ['read'],\n req: isolateObjectProperty(req, 'transactionID'),\n })\n }\n\n if (\n ['hash', 'salt'].includes(incomingPath) &&\n collectionConfig!.auth &&\n !collectionConfig!.auth?.disableLocalStrategy\n ) {\n errors.push({ path: incomingPath })\n }\n }\n let fieldPath = path\n // remove locale from end of path\n if (path.endsWith(`.${req.locale}`)) {\n fieldPath = path.slice(0, -(req.locale!.length + 1))\n }\n // remove \".value\" from ends of polymorphic relationship paths\n if (\n (field.type === 'relationship' || field.type === 'upload') &&\n Array.isArray(field.relationTo)\n ) {\n fieldPath = fieldPath.replace('.value', '')\n }\n\n const entityType: 'collections' | 'globals' = globalConfig ? 'globals' : 'collections'\n const entitySlug = collectionSlug || globalConfig!.slug\n const segments = fieldPath.split('.')\n\n let fieldAccess: any\n\n if (versionFields) {\n fieldAccess = policies[entityType]![entitySlug]!.fields\n\n if (\n segments[0] === 'parent' ||\n segments[0] === 'version' ||\n segments[0] === 'snapshot' ||\n segments[0] === 'latest'\n ) {\n segments.shift()\n }\n } else {\n fieldAccess = policies[entityType]![entitySlug]!.fields\n }\n\n if (segments.length) {\n segments.forEach((segment) => {\n if (fieldAccess[segment]) {\n if ('fields' in fieldAccess[segment]) {\n fieldAccess = fieldAccess[segment].fields\n } else {\n fieldAccess = fieldAccess[segment]\n }\n }\n })\n\n if (!fieldAccess?.read?.permission) {\n errors.push({ path: fieldPath })\n }\n }\n }\n\n if (i > 1) {\n // Remove top collection and reverse array\n // to work backwards from top\n const pathsToQuery = paths.slice(1).reverse()\n\n pathsToQuery.forEach(\n ({ collectionSlug: pathCollectionSlug, path: subPath }, pathToQueryIndex) => {\n // On the \"deepest\" collection,\n // validate query of the relationship\n if (pathToQueryIndex === 0) {\n promises.push(\n validateQueryPaths({\n collectionConfig: req.payload.collections[pathCollectionSlug!]!.config,\n errors,\n globalConfig: undefined,\n overrideAccess,\n policies,\n req,\n where: {\n [subPath]: {\n [operator]: val,\n },\n },\n }),\n )\n }\n },\n )\n }\n }),\n )\n await Promise.all(promises)\n}\n"],"names":["fieldAffectsData","SAFE_FIELD_PATH_REGEX","getEntityPermissions","isolateObjectProperty","getLocalizedPaths","validateQueryPaths","validateSearchParam","collectionConfig","constraint","errors","fields","globalConfig","operator","overrideAccess","parentIsLocalized","path","incomingPath","policies","polymorphicJoin","req","val","versionFields","sanitizedPath","replace","paths","slug","blockReferencesPermissions","globals","entity","entityType","fetchData","operations","collectionSlug","globalSlug","locale","payload","promises","at","previousField","field","type","relationTo","pop","push","map","invalid","i","test","virtual","collections","config","includes","auth","disableLocalStrategy","fieldPath","endsWith","slice","length","Array","isArray","entitySlug","segments","split","fieldAccess","shift","forEach","segment","read","permission","pathsToQuery","reverse","pathCollectionSlug","subPath","pathToQueryIndex","undefined","where","Promise","all"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/database/queryValidation/validateSearchParams.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../../collections/config/types.js'\nimport type { FlattenedField } from '../../fields/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../globals/config/types.js'\nimport type { PayloadRequest, WhereField } from '../../types/index.js'\nimport type { EntityPolicies, PathToQuery } from './types.js'\n\nimport { fieldAffectsData } from '../../fields/config/types.js'\nimport { SAFE_FIELD_PATH_REGEX } from '../../types/constants.js'\nimport { getEntityPermissions } from '../../utilities/getEntityPermissions/getEntityPermissions.js'\nimport { isolateObjectProperty } from '../../utilities/isolateObjectProperty.js'\nimport { getLocalizedPaths } from '../getLocalizedPaths.js'\nimport { isNestedRelationshipQuery } from '../isNestedRelationshipQuery.js'\nimport { prefixWherePaths } from '../prefixWherePaths.js'\nimport { validateQueryPaths } from './validateQueryPaths.js'\n\ntype Args = {\n collectionConfig?: SanitizedCollectionConfig\n constraint: WhereField\n errors: { path: string }[]\n fields: FlattenedField[]\n globalConfig?: SanitizedGlobalConfig\n operator: string\n overrideAccess: boolean\n parentIsLocalized?: boolean\n path: string\n // TODO: Rename to permissions or entityPermissions in 4.0\n policies: EntityPolicies\n polymorphicJoin?: boolean\n req: PayloadRequest\n showHiddenFields?: boolean\n val: unknown\n versionFields?: FlattenedField[]\n}\n\n/**\n * Validate the Payload key / value / operator\n */\nexport async function validateSearchParam({\n collectionConfig,\n constraint,\n errors,\n fields,\n globalConfig,\n operator,\n overrideAccess,\n parentIsLocalized,\n path: incomingPath,\n policies,\n polymorphicJoin,\n req,\n showHiddenFields,\n val,\n versionFields,\n}: Args): Promise<void> {\n // Replace GraphQL nested field double underscore formatting\n let sanitizedPath\n if (incomingPath === '_id') {\n sanitizedPath = 'id'\n } else {\n sanitizedPath = incomingPath.replace(/__/g, '.')\n }\n let paths: PathToQuery[] = []\n const { slug } = (collectionConfig || globalConfig)!\n\n const blockReferencesPermissions = {}\n\n if (globalConfig && !policies.globals![slug]) {\n policies.globals![slug] = await getEntityPermissions({\n blockReferencesPermissions,\n entity: globalConfig,\n entityType: 'global',\n fetchData: false,\n operations: ['read'],\n req,\n })\n }\n\n if (sanitizedPath !== 'id') {\n paths = getLocalizedPaths({\n collectionSlug: collectionConfig?.slug,\n fields,\n globalSlug: globalConfig?.slug,\n incomingPath: sanitizedPath,\n locale: req.locale!,\n overrideAccess,\n parentIsLocalized,\n payload: req.payload,\n showHiddenFields,\n })\n }\n const promises: Promise<void>[] = []\n\n const relationshipField = paths.length === 1 ? paths[0]?.field : undefined\n const hasNestedWhere = isNestedRelationshipQuery(val)\n const relatedCollectionSlug =\n relationshipField &&\n (relationshipField.type === 'relationship' || relationshipField.type === 'upload') &&\n relationshipField.hasMany &&\n typeof relationshipField.relationTo === 'string'\n ? relationshipField.relationTo\n : undefined\n // 3.x supports only the `contains` operator for nested relationship queries.\n const isNestedHasManyQuery =\n operator === 'contains' && hasNestedWhere && Boolean(relatedCollectionSlug)\n\n const isJoinContainsQuery =\n operator === 'contains' &&\n relationshipField?.type === 'join' &&\n typeof relationshipField.collection === 'string' &&\n hasNestedWhere\n\n // Plain-object values would be merged as raw query fragments.\n if (operator === 'like' || operator === 'not_like' || operator === 'contains') {\n const isValidNestedContains =\n operator === 'contains' && (isNestedHasManyQuery || isJoinContainsQuery)\n\n const containsPlainObject =\n isNestedRelationshipQuery(val) ||\n (Array.isArray(val) && val.some((entry) => isNestedRelationshipQuery(entry)))\n\n if (containsPlainObject && !isValidNestedContains) {\n errors.push({ path: incomingPath })\n return\n }\n }\n\n if (isNestedHasManyQuery && relatedCollectionSlug) {\n // Validate the nested query against the related collection.\n promises.push(\n validateQueryPaths({\n collectionConfig: req.payload.collections[relatedCollectionSlug]!.config,\n errors,\n overrideAccess,\n policies,\n req,\n showHiddenFields,\n where: val,\n }),\n )\n }\n\n // Sanitize relation.otherRelation.id to relation.otherRelation\n if (paths.at(-1)?.path === 'id') {\n const previousField = paths.at(-2)?.field\n if (\n previousField &&\n (previousField.type === 'relationship' || previousField.type === 'upload') &&\n typeof previousField.relationTo === 'string'\n ) {\n paths.pop()\n }\n }\n\n promises.push(\n ...paths.map(async ({ collectionSlug, field, invalid, path }, i) => {\n if (invalid) {\n const isUnknownPolymorphicJoinField =\n polymorphicJoin && !field && SAFE_FIELD_PATH_REGEX.test(incomingPath)\n\n if (!isUnknownPolymorphicJoinField) {\n errors.push({ path })\n }\n\n return\n }\n\n // where: { relatedPosts: { equals: 1}} -> { 'relatedPosts.id': { equals: 1}}\n if (field.type === 'join' && path === incomingPath) {\n constraint[`${path}.id` as keyof WhereField] = constraint[path as keyof WhereField]\n delete constraint[path as keyof WhereField]\n }\n\n if ('virtual' in field && field.virtual) {\n if (field.virtual === true) {\n errors.push({ path })\n }\n }\n\n if (polymorphicJoin && path === 'relationTo') {\n return\n }\n\n if (!overrideAccess && fieldAffectsData(field)) {\n if (collectionSlug) {\n if (!policies.collections![collectionSlug]) {\n policies.collections![collectionSlug] = await getEntityPermissions({\n blockReferencesPermissions,\n entity: req.payload.collections[collectionSlug]!.config,\n entityType: 'collection',\n fetchData: false,\n operations: ['read'],\n req: isolateObjectProperty(req, 'transactionID'),\n })\n }\n\n if (\n ['hash', 'salt'].includes(incomingPath) &&\n collectionConfig!.auth &&\n !collectionConfig!.auth?.disableLocalStrategy\n ) {\n errors.push({ path: incomingPath })\n }\n\n const relatedCollectionReadPermission = policies.collections![collectionSlug].read\n const previousSegment = paths[i - 1]\n const traversedField = previousSegment?.field\n const isRelationshipHop =\n Boolean(traversedField) &&\n (traversedField!.type === 'relationship' ||\n traversedField!.type === 'upload' ||\n traversedField!.type === 'join')\n\n if (\n isRelationshipHop &&\n relatedCollectionReadPermission &&\n typeof relatedCollectionReadPermission === 'object' &&\n relatedCollectionReadPermission.where\n ) {\n const relationshipPath = paths\n .slice(0, i)\n .map(({ path: pathToRelationship }) => pathToRelationship)\n .join('.')\n\n const mutableWhere = constraint as Record<string, unknown>\n const existingAnd = Array.isArray(mutableWhere.and) ? mutableWhere.and : []\n\n // Has-many relationships and joins can point to many related documents, so the user's\n // filter and the access constraint must be satisfied by the SAME related document.\n // Scoping both into a single `contains` prevents a different, readable document from\n // masking one the user cannot read (a related-document oracle).\n const isHasManyRelationship =\n (traversedField!.type === 'relationship' || traversedField!.type === 'upload') &&\n traversedField!.hasMany\n const isJoin = traversedField!.type === 'join'\n\n if (isHasManyRelationship || isJoin) {\n const relatedFieldPath = paths.at(-1)?.path\n\n if (relatedFieldPath) {\n mutableWhere.and = [\n ...existingAnd,\n {\n [relationshipPath]: {\n contains: {\n and: [\n {\n [relatedFieldPath]: {\n [operator]: val,\n },\n },\n relatedCollectionReadPermission.where,\n ],\n },\n },\n },\n ]\n\n // The scoped `contains` above fully replaces the user's original filter;\n // so we can remove it from the top-level where clause\n delete mutableWhere[incomingPath]\n }\n } else {\n const accessWhere = prefixWherePaths({\n prefix: relationshipPath,\n where: relatedCollectionReadPermission.where,\n })\n\n mutableWhere.and = [...existingAnd, accessWhere]\n }\n }\n }\n let fieldPath = path\n // remove locale from end of path\n if (path.endsWith(`.${req.locale}`)) {\n fieldPath = path.slice(0, -(req.locale!.length + 1))\n }\n // remove \".value\" from ends of polymorphic relationship paths\n if (\n (field.type === 'relationship' || field.type === 'upload') &&\n Array.isArray(field.relationTo)\n ) {\n fieldPath = fieldPath.replace('.value', '')\n }\n\n const entityType: 'collections' | 'globals' = globalConfig ? 'globals' : 'collections'\n const entitySlug = collectionSlug || globalConfig!.slug\n const segments = fieldPath.split('.')\n\n let fieldAccess: any\n\n if (versionFields) {\n fieldAccess = policies[entityType]![entitySlug]!.fields\n\n if (\n segments[0] === 'parent' ||\n segments[0] === 'version' ||\n segments[0] === 'snapshot' ||\n segments[0] === 'latest'\n ) {\n segments.shift()\n }\n } else {\n fieldAccess = policies[entityType]![entitySlug]!.fields\n }\n\n if (segments.length) {\n segments.forEach((segment) => {\n if (fieldAccess[segment]) {\n if ('fields' in fieldAccess[segment]) {\n fieldAccess = fieldAccess[segment].fields\n } else {\n fieldAccess = fieldAccess[segment]\n }\n }\n })\n\n if (!fieldAccess?.read?.permission) {\n errors.push({ path: fieldPath })\n }\n }\n }\n\n if (!isNestedHasManyQuery && i > 1) {\n // Remove top collection and reverse array\n // to work backwards from top\n const pathsToQuery = paths.slice(1).reverse()\n\n pathsToQuery.forEach(\n ({ collectionSlug: pathCollectionSlug, path: subPath }, pathToQueryIndex) => {\n // On the \"deepest\" collection,\n // validate query of the relationship\n if (pathToQueryIndex === 0) {\n promises.push(\n validateQueryPaths({\n collectionConfig: req.payload.collections[pathCollectionSlug!]!.config,\n errors,\n globalConfig: undefined,\n overrideAccess,\n policies,\n req,\n showHiddenFields,\n where: {\n [subPath]: {\n [operator]: val,\n },\n },\n }),\n )\n }\n },\n )\n }\n }),\n )\n await Promise.all(promises)\n}\n"],"names":["fieldAffectsData","SAFE_FIELD_PATH_REGEX","getEntityPermissions","isolateObjectProperty","getLocalizedPaths","isNestedRelationshipQuery","prefixWherePaths","validateQueryPaths","validateSearchParam","collectionConfig","constraint","errors","fields","globalConfig","operator","overrideAccess","parentIsLocalized","path","incomingPath","policies","polymorphicJoin","req","showHiddenFields","val","versionFields","sanitizedPath","replace","paths","slug","blockReferencesPermissions","globals","entity","entityType","fetchData","operations","collectionSlug","globalSlug","locale","payload","promises","relationshipField","length","field","undefined","hasNestedWhere","relatedCollectionSlug","type","hasMany","relationTo","isNestedHasManyQuery","Boolean","isJoinContainsQuery","collection","isValidNestedContains","containsPlainObject","Array","isArray","some","entry","push","collections","config","where","at","previousField","pop","map","invalid","i","isUnknownPolymorphicJoinField","test","virtual","includes","auth","disableLocalStrategy","relatedCollectionReadPermission","read","previousSegment","traversedField","isRelationshipHop","relationshipPath","slice","pathToRelationship","join","mutableWhere","existingAnd","and","isHasManyRelationship","isJoin","relatedFieldPath","contains","accessWhere","prefix","fieldPath","endsWith","entitySlug","segments","split","fieldAccess","shift","forEach","segment","permission","pathsToQuery","reverse","pathCollectionSlug","subPath","pathToQueryIndex","Promise","all"],"mappings":"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"}
@@ -425,6 +425,11 @@ export type FindDistinctArgs = {
425
425
  limit?: number;
426
426
  locale?: string;
427
427
  page?: number;
428
+ /**
429
+ * Access constraints for relationship values traversed by the distinct field path.
430
+ * Keys are relationship paths relative to the queried collection.
431
+ */
432
+ relatedAccess?: Record<string, Where>;
428
433
  req?: Partial<PayloadRequest>;
429
434
  sort?: Sort;
430
435
  where?: Where;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/database/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/database/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/database/types.ts"],"sourcesContent":["import type { TypeWithID } from '../collections/config/types.js'\nimport type { CollectionSlug, GlobalSlug, Job } from '../index.js'\nimport type {\n Document,\n JoinQuery,\n JsonObject,\n Payload,\n PayloadRequest,\n SelectType,\n Sort,\n Where,\n} from '../types/index.js'\nimport type { TypeWithVersion } from '../versions/types.js'\n\nexport type { TypeWithVersion }\n\nexport interface BaseDatabaseAdapter {\n allowIDOnCreate?: boolean\n /**\n * Start a transaction, requiring commitTransaction() to be called for any changes to be made.\n * @returns an identifier for the transaction or null if one cannot be established\n */\n beginTransaction: BeginTransaction\n /**\n * When true, bulk operations will process documents one at a time\n * in separate transactions instead of all at once in a single transaction.\n * Useful for avoiding transaction limitations with large datasets.\n *\n * @default false\n */\n bulkOperationsSingleTransaction?: boolean\n\n /**\n * Persist the changes made since the start of the transaction.\n */\n commitTransaction: CommitTransaction\n\n /**\n * Open the connection to the database\n */\n connect?: Connect\n count: Count\n countGlobalVersions: CountGlobalVersions\n countVersions: CountVersions\n\n create: Create\n\n createGlobal: CreateGlobal\n\n createGlobalVersion: CreateGlobalVersion\n /**\n * Output a migration file\n */\n createMigration: CreateMigration\n\n createVersion: CreateVersion\n\n /**\n * Specify if the ID is a text or number field by default within this database adapter.\n */\n defaultIDType: 'number' | 'text'\n\n deleteMany: DeleteMany\n\n deleteOne: DeleteOne\n deleteVersions: DeleteVersions\n\n /**\n * Terminate the connection with the database\n */\n destroy?: Destroy\n\n find: Find\n\n findDistinct: FindDistinct\n\n findGlobal: FindGlobal\n\n findGlobalVersions: FindGlobalVersions\n\n findOne: FindOne\n\n findVersions: FindVersions\n\n generateSchema?: GenerateSchema\n\n /**\n * Perform startup tasks required to interact with the database such as building Schema and models\n */\n init?: Init\n\n /**\n * Run any migration up functions that have not yet been performed and update the status\n */\n migrate: (args?: { migrations?: Migration[] }) => Promise<void>\n /**\n * Run any migration down functions that have been performed\n */\n migrateDown: () => Promise<void>\n\n /**\n * Drop the current database and run all migrate up functions\n */\n migrateFresh: (args: { forceAcceptWarning?: boolean }) => Promise<void>\n /**\n * Run all migration down functions before running up\n */\n migrateRefresh: () => Promise<void>\n /**\n * Run all migrate down functions\n */\n migrateReset: () => Promise<void>\n /**\n * Read the current state of migrations and output the result to show which have been run\n */\n migrateStatus: () => Promise<void>\n\n /**\n * Path to read and write migration files from\n */\n migrationDir: string\n\n /**\n * The name of the database adapter\n */\n name: string\n /**\n * Full package name of the database adapter\n *\n * @example @payloadcms/db-postgres\n */\n packageName: string\n /**\n * reference to the instance of payload\n */\n payload: Payload\n\n queryDrafts: QueryDrafts\n\n /**\n * Abort any changes since the start of the transaction.\n */\n rollbackTransaction: RollbackTransaction\n\n /**\n * A key-value store of all sessions open (used for transactions)\n */\n sessions?: {\n [id: string]: {\n db: unknown\n reject: () => Promise<void>\n resolve: () => Promise<void>\n }\n }\n\n /**\n * Updates a global that exists. If the global doesn't exist yet, this will not work - you should use `createGlobal` instead.\n */\n updateGlobal: UpdateGlobal\n\n updateGlobalVersion: UpdateGlobalVersion\n\n updateJobs: UpdateJobs\n\n updateMany: UpdateMany\n\n updateOne: UpdateOne\n updateVersion: UpdateVersion\n upsert: Upsert\n}\n\nexport type Init = () => Promise<void> | void\n\ntype ConnectArgs = {\n hotReload: boolean\n}\n\nexport type Connect = (args?: ConnectArgs) => Promise<void>\n\nexport type Destroy = () => Promise<void>\n\nexport type CreateMigration = (args: {\n file?: string\n forceAcceptWarning?: boolean\n migrationName?: string\n payload: Payload\n /**\n * Skips the prompt asking to create empty migrations\n */\n skipEmpty?: boolean\n}) => Promise<void> | void\n\nexport type Transaction = (\n callback: () => Promise<void>,\n options?: Record<string, unknown>,\n) => Promise<void>\n\nexport type BeginTransaction = (\n options?: Record<string, unknown>,\n) => Promise<null | number | string>\n\nexport type RollbackTransaction = (id: number | Promise<number | string> | string) => Promise<void>\n\nexport type CommitTransaction = (id: number | Promise<number | string> | string) => Promise<void>\n\nexport type QueryDraftsArgs = {\n collection: CollectionSlug\n joins?: JoinQuery\n limit?: number\n locale?: string\n page?: number\n pagination?: boolean\n req?: Partial<PayloadRequest>\n select?: SelectType\n sort?: Sort\n where?: Where\n}\n\nexport type QueryDrafts = <T = TypeWithID>(args: QueryDraftsArgs) => Promise<PaginatedDocs<T>>\n\nexport type FindOneArgs = {\n collection: CollectionSlug\n draftsEnabled?: boolean\n joins?: JoinQuery\n locale?: string\n req?: Partial<PayloadRequest>\n select?: SelectType\n where?: Where\n}\n\nexport type FindOne = <T extends TypeWithID>(args: FindOneArgs) => Promise<null | T>\n\nexport type FindArgs = {\n collection: CollectionSlug\n draftsEnabled?: boolean\n joins?: JoinQuery\n /** Setting limit to 1 is equal to the previous Model.findOne(). Setting limit to 0 disables the limit */\n limit?: number\n locale?: string\n page?: number\n pagination?: boolean\n projection?: Record<string, unknown>\n req?: Partial<PayloadRequest>\n select?: SelectType\n /**\n * @deprecated This parameter is going to be removed in the next major version. Use page instead.\n */\n skip?: number\n sort?: Sort\n versions?: boolean\n where?: Where\n}\n\nexport type Find = <T = TypeWithID>(args: FindArgs) => Promise<PaginatedDocs<T>>\n\nexport type CountArgs = {\n collection: CollectionSlug\n locale?: string\n req?: Partial<PayloadRequest>\n where?: Where\n}\n\nexport type Count = (args: CountArgs) => Promise<{ totalDocs: number }>\n\nexport type CountVersions = (args: CountArgs) => Promise<{ totalDocs: number }>\n\nexport type CountGlobalVersionArgs = {\n global: string\n locale?: string\n req?: Partial<PayloadRequest>\n where?: Where\n}\n\nexport type CountGlobalVersions = (args: CountGlobalVersionArgs) => Promise<{ totalDocs: number }>\n\ntype BaseVersionArgs = {\n limit?: number\n locale?: string\n page?: number\n pagination?: boolean\n req?: Partial<PayloadRequest>\n select?: SelectType\n /**\n * @deprecated This parameter is going to be removed in the next major version. Use page instead.\n */\n skip?: number\n sort?: Sort\n versions?: boolean\n where?: Where\n}\n\nexport type FindVersionsArgs = {\n collection: CollectionSlug\n} & BaseVersionArgs\n\nexport type FindVersions = <T = JsonObject>(\n args: FindVersionsArgs,\n) => Promise<PaginatedDocs<TypeWithVersion<T>>>\n\nexport type FindGlobalVersionsArgs = {\n global: GlobalSlug\n} & BaseVersionArgs\n\nexport type FindGlobalArgs = {\n locale?: string\n req?: Partial<PayloadRequest>\n select?: SelectType\n slug: string\n where?: Where\n}\n\nexport type UpdateGlobalVersionArgs<T extends JsonObject = JsonObject> = {\n global: GlobalSlug\n locale?: string\n /**\n * Additional database adapter specific options to pass to the query\n */\n options?: Record<string, unknown>\n req?: Partial<PayloadRequest>\n /**\n * If true, returns the updated documents\n *\n * @default true\n */\n returning?: boolean\n select?: SelectType\n versionData: {\n createdAt?: string\n latest?: boolean\n parent?: number | string\n publishedLocale?: string\n updatedAt?: string\n version: T\n }\n} & (\n | {\n id: number | string\n where?: never\n }\n | {\n id?: never\n where: Where\n }\n)\n\n/**\n * @todo type as Promise<TypeWithVersion<T> | null> in 4.0\n */\nexport type UpdateGlobalVersion = <T extends JsonObject = JsonObject>(\n args: UpdateGlobalVersionArgs<T>,\n) => Promise<TypeWithVersion<T>>\n\nexport type FindGlobal = <T extends Record<string, unknown> = any>(\n args: FindGlobalArgs,\n) => Promise<T>\n\nexport type CreateGlobalArgs<T extends Record<string, unknown> = any> = {\n data: T\n req?: Partial<PayloadRequest>\n /**\n * If true, returns the updated documents\n *\n * @default true\n */\n returning?: boolean\n slug: string\n}\nexport type CreateGlobal = <T extends Record<string, unknown> = any>(\n args: CreateGlobalArgs<T>,\n) => Promise<T>\n\nexport type UpdateGlobalArgs<T extends Record<string, unknown> = any> = {\n data: T\n /**\n * Additional database adapter specific options to pass to the query\n */\n options?: Record<string, unknown>\n req?: Partial<PayloadRequest>\n /**\n * If true, returns the updated documents\n *\n * @default true\n */\n returning?: boolean\n select?: SelectType\n slug: string\n}\n/**\n * @todo type as Promise<T | null> in 4.0\n */\nexport type UpdateGlobal = <T extends Record<string, unknown> = any>(\n args: UpdateGlobalArgs<T>,\n) => Promise<T>\n// export type UpdateOne = (args: UpdateOneArgs) => Promise<Document>\n\nexport type FindGlobalVersions = <T = JsonObject>(\n args: FindGlobalVersionsArgs,\n) => Promise<PaginatedDocs<TypeWithVersion<T>>>\n\nexport type DeleteVersionsArgs = {\n collection?: CollectionSlug\n globalSlug?: GlobalSlug\n locale?: string\n req?: Partial<PayloadRequest>\n sort?: {\n [key: string]: string\n }\n where: Where\n}\n\nexport type CreateVersionArgs<T extends JsonObject = JsonObject> = {\n autosave: boolean\n collectionSlug: CollectionSlug\n createdAt: string\n /** ID of the parent document for which the version should be created for */\n parent: number | string\n publishedLocale?: string\n req?: Partial<PayloadRequest>\n /**\n * If true, returns the updated documents\n *\n * @default true\n */\n returning?: boolean\n select?: SelectType\n /**\n * If provided, the snapshot will be created\n * after a version is created (not during autosave)\n */\n snapshot?: true\n updatedAt: string\n versionData: T\n}\n\nexport type CreateVersion = <T extends JsonObject = JsonObject>(\n args: CreateVersionArgs<T>,\n) => Promise<TypeWithVersion<T>>\n\nexport type CreateGlobalVersionArgs<T extends JsonObject = JsonObject> = {\n autosave: boolean\n createdAt: string\n globalSlug: GlobalSlug\n publishedLocale?: string\n req?: Partial<PayloadRequest>\n /**\n * If true, returns the updated documents\n *\n * @default true\n */\n returning?: boolean\n select?: SelectType\n /**\n * If provided, the snapshot will be created\n * after a version is created (not during autosave)\n */\n snapshot?: true\n updatedAt: string\n versionData: T\n}\n\nexport type CreateGlobalVersion = <T extends JsonObject = JsonObject>(\n args: CreateGlobalVersionArgs<T>,\n) => Promise<Omit<TypeWithVersion<T>, 'parent'>>\n\nexport type DeleteVersions = (args: DeleteVersionsArgs) => Promise<void>\n\nexport type UpdateVersionArgs<T extends JsonObject = JsonObject> = {\n collection: CollectionSlug\n locale?: string\n /**\n * Additional database adapter specific options to pass to the query\n */\n options?: Record<string, unknown>\n req?: Partial<PayloadRequest>\n /**\n * If true, returns the updated documents\n *\n * @default true\n */\n returning?: boolean\n select?: SelectType\n versionData: {\n createdAt?: string\n latest?: boolean\n parent?: number | string\n publishedLocale?: string\n updatedAt?: string\n version: T\n }\n} & (\n | {\n id: number | string\n where?: never\n }\n | {\n id?: never\n where: Where\n }\n)\n\n/**\n * @todo type as Promise<TypeWithVersion<T> | null> in 4.0\n */\nexport type UpdateVersion = <T extends JsonObject = JsonObject>(\n args: UpdateVersionArgs<T>,\n) => Promise<TypeWithVersion<T>>\n\nexport type CreateArgs = {\n collection: CollectionSlug\n customID?: number | string\n data: Record<string, unknown>\n draft?: boolean\n locale?: string\n req?: Partial<PayloadRequest>\n /**\n * If true, returns the updated documents\n *\n * @default true\n */\n returning?: boolean\n select?: SelectType\n}\n\nexport type FindDistinctArgs = {\n collection: CollectionSlug\n field: string\n limit?: number\n locale?: string\n page?: number\n req?: Partial<PayloadRequest>\n sort?: Sort\n where?: Where\n}\n\nexport type PaginatedDistinctDocs<T extends Record<string, unknown>> = {\n hasNextPage: boolean\n hasPrevPage: boolean\n limit: number\n nextPage?: null | number | undefined\n page: number\n pagingCounter: number\n prevPage?: null | number | undefined\n totalDocs: number\n totalPages: number\n values: T[]\n}\n\nexport type FindDistinct = (\n args: FindDistinctArgs,\n) => Promise<PaginatedDistinctDocs<Record<string, any>>>\n\nexport type Create = (args: CreateArgs) => Promise<Document>\n\nexport type UpdateOneArgs = {\n collection: CollectionSlug\n data: Record<string, unknown>\n draft?: boolean\n joins?: JoinQuery\n locale?: string\n /**\n * Additional database adapter specific options to pass to the query\n */\n options?: Record<string, unknown>\n req?: Partial<PayloadRequest>\n /**\n * If true, returns the updated documents\n *\n * @default true\n */\n returning?: boolean\n select?: SelectType\n} & (\n | {\n id: number | string\n where?: never\n }\n | {\n id?: never\n where: Where\n }\n)\n\n/**\n * @todo type as Promise<Document | null> in 4.0\n */\nexport type UpdateOne = (args: UpdateOneArgs) => Promise<Document>\n\nexport type UpdateManyArgs = {\n collection: CollectionSlug\n data: Record<string, unknown>\n draft?: boolean\n joins?: JoinQuery\n limit?: number\n locale?: string\n /**\n * Additional database adapter specific options to pass to the query\n */\n options?: Record<string, unknown>\n req?: Partial<PayloadRequest>\n /**\n * If true, returns the updated documents\n *\n * @default true\n */\n returning?: boolean\n select?: SelectType\n sort?: Sort\n where: Where\n}\n\nexport type UpdateMany = (args: UpdateManyArgs) => Promise<Document[] | null>\n\nexport type UpdateJobsArgs = {\n data: Record<string, unknown>\n req?: Partial<PayloadRequest>\n /**\n * If true, returns the updated documents\n *\n * @default true\n */\n returning?: boolean\n} & (\n | {\n id: number | string\n limit?: never\n sort?: never\n where?: never\n }\n | {\n id?: never\n limit?: number\n sort?: Sort\n where: Where\n }\n)\n\nexport type UpdateJobs = (args: UpdateJobsArgs) => Promise<Job[] | null>\n\nexport type UpsertArgs = {\n collection: CollectionSlug\n data: Record<string, unknown>\n joins?: JoinQuery\n locale?: string\n req?: Partial<PayloadRequest>\n /**\n * If true, returns the updated documents\n *\n * @default true\n */\n returning?: boolean\n select?: SelectType\n where: Where\n}\n\nexport type Upsert = (args: UpsertArgs) => Promise<Document>\n\nexport type DeleteOneArgs = {\n collection: CollectionSlug\n joins?: JoinQuery\n req?: Partial<PayloadRequest>\n /**\n * If true, returns the updated documents\n *\n * @default true\n */\n returning?: boolean\n select?: SelectType\n where: Where\n}\n\n/**\n * @todo type as Promise<Document | null> in 4.0\n */\nexport type DeleteOne = (args: DeleteOneArgs) => Promise<Document>\n\nexport type DeleteManyArgs = {\n collection: CollectionSlug\n joins?: JoinQuery\n req?: Partial<PayloadRequest>\n where: Where\n}\n\nexport type DeleteMany = (args: DeleteManyArgs) => Promise<void>\n\nexport type Migration = {\n down: (args: unknown) => Promise<void>\n up: (args: unknown) => Promise<void>\n} & MigrationData\n\nexport type MigrationData = {\n batch?: number\n id?: string\n name: string\n}\n\nexport type PaginatedDocs<T = any> = {\n docs: T[]\n hasNextPage: boolean\n hasPrevPage: boolean\n limit: number\n nextPage?: null | number | undefined\n page?: number\n pagingCounter: number\n prevPage?: null | number | undefined\n totalDocs: number\n totalPages: number\n}\n\nexport type DatabaseAdapterResult<T = BaseDatabaseAdapter> = {\n allowIDOnCreate?: boolean\n defaultIDType: 'number' | 'text'\n init: (args: { payload: Payload }) => T\n /**\n * The name of the database adapter. For example, \"postgres\" or \"mongoose\".\n *\n * @todo make required in 4.0\n */\n name?: string\n}\n\nexport type DBIdentifierName =\n | ((Args: {\n /** The name of the parent table when using relational DBs */\n tableName?: string\n }) => string)\n | string\n\nexport type DynamicMigrationTemplate = (args: { filePath: string; payload: Payload }) => Promise<{\n downSQL?: string\n imports?: string\n upSQL?: string\n}>\n\nexport type MigrationTemplateArgs = {\n downSQL?: string\n dynamic?: DynamicMigrationTemplate\n imports?: string\n packageName?: string\n upSQL?: string\n}\n\nexport type GenerateSchemaArgs = {\n log?: boolean\n outputFile?: string\n prettify?: boolean\n}\n\nexport type GenerateSchema = (args?: GenerateSchemaArgs) => Promise<void>\n"],"names":[],"mappings":"AA2uBA,WAAyE"}
1
+ {"version":3,"sources":["../../src/database/types.ts"],"sourcesContent":["import type { TypeWithID } from '../collections/config/types.js'\nimport type { CollectionSlug, GlobalSlug, Job } from '../index.js'\nimport type {\n Document,\n JoinQuery,\n JsonObject,\n Payload,\n PayloadRequest,\n SelectType,\n Sort,\n Where,\n} from '../types/index.js'\nimport type { TypeWithVersion } from '../versions/types.js'\n\nexport type { TypeWithVersion }\n\nexport interface BaseDatabaseAdapter {\n allowIDOnCreate?: boolean\n /**\n * Start a transaction, requiring commitTransaction() to be called for any changes to be made.\n * @returns an identifier for the transaction or null if one cannot be established\n */\n beginTransaction: BeginTransaction\n /**\n * When true, bulk operations will process documents one at a time\n * in separate transactions instead of all at once in a single transaction.\n * Useful for avoiding transaction limitations with large datasets.\n *\n * @default false\n */\n bulkOperationsSingleTransaction?: boolean\n\n /**\n * Persist the changes made since the start of the transaction.\n */\n commitTransaction: CommitTransaction\n\n /**\n * Open the connection to the database\n */\n connect?: Connect\n count: Count\n countGlobalVersions: CountGlobalVersions\n countVersions: CountVersions\n\n create: Create\n\n createGlobal: CreateGlobal\n\n createGlobalVersion: CreateGlobalVersion\n /**\n * Output a migration file\n */\n createMigration: CreateMigration\n\n createVersion: CreateVersion\n\n /**\n * Specify if the ID is a text or number field by default within this database adapter.\n */\n defaultIDType: 'number' | 'text'\n\n deleteMany: DeleteMany\n\n deleteOne: DeleteOne\n deleteVersions: DeleteVersions\n\n /**\n * Terminate the connection with the database\n */\n destroy?: Destroy\n\n find: Find\n\n findDistinct: FindDistinct\n\n findGlobal: FindGlobal\n\n findGlobalVersions: FindGlobalVersions\n\n findOne: FindOne\n\n findVersions: FindVersions\n\n generateSchema?: GenerateSchema\n\n /**\n * Perform startup tasks required to interact with the database such as building Schema and models\n */\n init?: Init\n\n /**\n * Run any migration up functions that have not yet been performed and update the status\n */\n migrate: (args?: { migrations?: Migration[] }) => Promise<void>\n /**\n * Run any migration down functions that have been performed\n */\n migrateDown: () => Promise<void>\n\n /**\n * Drop the current database and run all migrate up functions\n */\n migrateFresh: (args: { forceAcceptWarning?: boolean }) => Promise<void>\n /**\n * Run all migration down functions before running up\n */\n migrateRefresh: () => Promise<void>\n /**\n * Run all migrate down functions\n */\n migrateReset: () => Promise<void>\n /**\n * Read the current state of migrations and output the result to show which have been run\n */\n migrateStatus: () => Promise<void>\n\n /**\n * Path to read and write migration files from\n */\n migrationDir: string\n\n /**\n * The name of the database adapter\n */\n name: string\n /**\n * Full package name of the database adapter\n *\n * @example @payloadcms/db-postgres\n */\n packageName: string\n /**\n * reference to the instance of payload\n */\n payload: Payload\n\n queryDrafts: QueryDrafts\n\n /**\n * Abort any changes since the start of the transaction.\n */\n rollbackTransaction: RollbackTransaction\n\n /**\n * A key-value store of all sessions open (used for transactions)\n */\n sessions?: {\n [id: string]: {\n db: unknown\n reject: () => Promise<void>\n resolve: () => Promise<void>\n }\n }\n\n /**\n * Updates a global that exists. If the global doesn't exist yet, this will not work - you should use `createGlobal` instead.\n */\n updateGlobal: UpdateGlobal\n\n updateGlobalVersion: UpdateGlobalVersion\n\n updateJobs: UpdateJobs\n\n updateMany: UpdateMany\n\n updateOne: UpdateOne\n updateVersion: UpdateVersion\n upsert: Upsert\n}\n\nexport type Init = () => Promise<void> | void\n\ntype ConnectArgs = {\n hotReload: boolean\n}\n\nexport type Connect = (args?: ConnectArgs) => Promise<void>\n\nexport type Destroy = () => Promise<void>\n\nexport type CreateMigration = (args: {\n file?: string\n forceAcceptWarning?: boolean\n migrationName?: string\n payload: Payload\n /**\n * Skips the prompt asking to create empty migrations\n */\n skipEmpty?: boolean\n}) => Promise<void> | void\n\nexport type Transaction = (\n callback: () => Promise<void>,\n options?: Record<string, unknown>,\n) => Promise<void>\n\nexport type BeginTransaction = (\n options?: Record<string, unknown>,\n) => Promise<null | number | string>\n\nexport type RollbackTransaction = (id: number | Promise<number | string> | string) => Promise<void>\n\nexport type CommitTransaction = (id: number | Promise<number | string> | string) => Promise<void>\n\nexport type QueryDraftsArgs = {\n collection: CollectionSlug\n joins?: JoinQuery\n limit?: number\n locale?: string\n page?: number\n pagination?: boolean\n req?: Partial<PayloadRequest>\n select?: SelectType\n sort?: Sort\n where?: Where\n}\n\nexport type QueryDrafts = <T = TypeWithID>(args: QueryDraftsArgs) => Promise<PaginatedDocs<T>>\n\nexport type FindOneArgs = {\n collection: CollectionSlug\n draftsEnabled?: boolean\n joins?: JoinQuery\n locale?: string\n req?: Partial<PayloadRequest>\n select?: SelectType\n where?: Where\n}\n\nexport type FindOne = <T extends TypeWithID>(args: FindOneArgs) => Promise<null | T>\n\nexport type FindArgs = {\n collection: CollectionSlug\n draftsEnabled?: boolean\n joins?: JoinQuery\n /** Setting limit to 1 is equal to the previous Model.findOne(). Setting limit to 0 disables the limit */\n limit?: number\n locale?: string\n page?: number\n pagination?: boolean\n projection?: Record<string, unknown>\n req?: Partial<PayloadRequest>\n select?: SelectType\n /**\n * @deprecated This parameter is going to be removed in the next major version. Use page instead.\n */\n skip?: number\n sort?: Sort\n versions?: boolean\n where?: Where\n}\n\nexport type Find = <T = TypeWithID>(args: FindArgs) => Promise<PaginatedDocs<T>>\n\nexport type CountArgs = {\n collection: CollectionSlug\n locale?: string\n req?: Partial<PayloadRequest>\n where?: Where\n}\n\nexport type Count = (args: CountArgs) => Promise<{ totalDocs: number }>\n\nexport type CountVersions = (args: CountArgs) => Promise<{ totalDocs: number }>\n\nexport type CountGlobalVersionArgs = {\n global: string\n locale?: string\n req?: Partial<PayloadRequest>\n where?: Where\n}\n\nexport type CountGlobalVersions = (args: CountGlobalVersionArgs) => Promise<{ totalDocs: number }>\n\ntype BaseVersionArgs = {\n limit?: number\n locale?: string\n page?: number\n pagination?: boolean\n req?: Partial<PayloadRequest>\n select?: SelectType\n /**\n * @deprecated This parameter is going to be removed in the next major version. Use page instead.\n */\n skip?: number\n sort?: Sort\n versions?: boolean\n where?: Where\n}\n\nexport type FindVersionsArgs = {\n collection: CollectionSlug\n} & BaseVersionArgs\n\nexport type FindVersions = <T = JsonObject>(\n args: FindVersionsArgs,\n) => Promise<PaginatedDocs<TypeWithVersion<T>>>\n\nexport type FindGlobalVersionsArgs = {\n global: GlobalSlug\n} & BaseVersionArgs\n\nexport type FindGlobalArgs = {\n locale?: string\n req?: Partial<PayloadRequest>\n select?: SelectType\n slug: string\n where?: Where\n}\n\nexport type UpdateGlobalVersionArgs<T extends JsonObject = JsonObject> = {\n global: GlobalSlug\n locale?: string\n /**\n * Additional database adapter specific options to pass to the query\n */\n options?: Record<string, unknown>\n req?: Partial<PayloadRequest>\n /**\n * If true, returns the updated documents\n *\n * @default true\n */\n returning?: boolean\n select?: SelectType\n versionData: {\n createdAt?: string\n latest?: boolean\n parent?: number | string\n publishedLocale?: string\n updatedAt?: string\n version: T\n }\n} & (\n | {\n id: number | string\n where?: never\n }\n | {\n id?: never\n where: Where\n }\n)\n\n/**\n * @todo type as Promise<TypeWithVersion<T> | null> in 4.0\n */\nexport type UpdateGlobalVersion = <T extends JsonObject = JsonObject>(\n args: UpdateGlobalVersionArgs<T>,\n) => Promise<TypeWithVersion<T>>\n\nexport type FindGlobal = <T extends Record<string, unknown> = any>(\n args: FindGlobalArgs,\n) => Promise<T>\n\nexport type CreateGlobalArgs<T extends Record<string, unknown> = any> = {\n data: T\n req?: Partial<PayloadRequest>\n /**\n * If true, returns the updated documents\n *\n * @default true\n */\n returning?: boolean\n slug: string\n}\nexport type CreateGlobal = <T extends Record<string, unknown> = any>(\n args: CreateGlobalArgs<T>,\n) => Promise<T>\n\nexport type UpdateGlobalArgs<T extends Record<string, unknown> = any> = {\n data: T\n /**\n * Additional database adapter specific options to pass to the query\n */\n options?: Record<string, unknown>\n req?: Partial<PayloadRequest>\n /**\n * If true, returns the updated documents\n *\n * @default true\n */\n returning?: boolean\n select?: SelectType\n slug: string\n}\n/**\n * @todo type as Promise<T | null> in 4.0\n */\nexport type UpdateGlobal = <T extends Record<string, unknown> = any>(\n args: UpdateGlobalArgs<T>,\n) => Promise<T>\n// export type UpdateOne = (args: UpdateOneArgs) => Promise<Document>\n\nexport type FindGlobalVersions = <T = JsonObject>(\n args: FindGlobalVersionsArgs,\n) => Promise<PaginatedDocs<TypeWithVersion<T>>>\n\nexport type DeleteVersionsArgs = {\n collection?: CollectionSlug\n globalSlug?: GlobalSlug\n locale?: string\n req?: Partial<PayloadRequest>\n sort?: {\n [key: string]: string\n }\n where: Where\n}\n\nexport type CreateVersionArgs<T extends JsonObject = JsonObject> = {\n autosave: boolean\n collectionSlug: CollectionSlug\n createdAt: string\n /** ID of the parent document for which the version should be created for */\n parent: number | string\n publishedLocale?: string\n req?: Partial<PayloadRequest>\n /**\n * If true, returns the updated documents\n *\n * @default true\n */\n returning?: boolean\n select?: SelectType\n /**\n * If provided, the snapshot will be created\n * after a version is created (not during autosave)\n */\n snapshot?: true\n updatedAt: string\n versionData: T\n}\n\nexport type CreateVersion = <T extends JsonObject = JsonObject>(\n args: CreateVersionArgs<T>,\n) => Promise<TypeWithVersion<T>>\n\nexport type CreateGlobalVersionArgs<T extends JsonObject = JsonObject> = {\n autosave: boolean\n createdAt: string\n globalSlug: GlobalSlug\n publishedLocale?: string\n req?: Partial<PayloadRequest>\n /**\n * If true, returns the updated documents\n *\n * @default true\n */\n returning?: boolean\n select?: SelectType\n /**\n * If provided, the snapshot will be created\n * after a version is created (not during autosave)\n */\n snapshot?: true\n updatedAt: string\n versionData: T\n}\n\nexport type CreateGlobalVersion = <T extends JsonObject = JsonObject>(\n args: CreateGlobalVersionArgs<T>,\n) => Promise<Omit<TypeWithVersion<T>, 'parent'>>\n\nexport type DeleteVersions = (args: DeleteVersionsArgs) => Promise<void>\n\nexport type UpdateVersionArgs<T extends JsonObject = JsonObject> = {\n collection: CollectionSlug\n locale?: string\n /**\n * Additional database adapter specific options to pass to the query\n */\n options?: Record<string, unknown>\n req?: Partial<PayloadRequest>\n /**\n * If true, returns the updated documents\n *\n * @default true\n */\n returning?: boolean\n select?: SelectType\n versionData: {\n createdAt?: string\n latest?: boolean\n parent?: number | string\n publishedLocale?: string\n updatedAt?: string\n version: T\n }\n} & (\n | {\n id: number | string\n where?: never\n }\n | {\n id?: never\n where: Where\n }\n)\n\n/**\n * @todo type as Promise<TypeWithVersion<T> | null> in 4.0\n */\nexport type UpdateVersion = <T extends JsonObject = JsonObject>(\n args: UpdateVersionArgs<T>,\n) => Promise<TypeWithVersion<T>>\n\nexport type CreateArgs = {\n collection: CollectionSlug\n customID?: number | string\n data: Record<string, unknown>\n draft?: boolean\n locale?: string\n req?: Partial<PayloadRequest>\n /**\n * If true, returns the updated documents\n *\n * @default true\n */\n returning?: boolean\n select?: SelectType\n}\n\nexport type FindDistinctArgs = {\n collection: CollectionSlug\n field: string\n limit?: number\n locale?: string\n page?: number\n /**\n * Access constraints for relationship values traversed by the distinct field path.\n * Keys are relationship paths relative to the queried collection.\n */\n relatedAccess?: Record<string, Where>\n req?: Partial<PayloadRequest>\n sort?: Sort\n where?: Where\n}\n\nexport type PaginatedDistinctDocs<T extends Record<string, unknown>> = {\n hasNextPage: boolean\n hasPrevPage: boolean\n limit: number\n nextPage?: null | number | undefined\n page: number\n pagingCounter: number\n prevPage?: null | number | undefined\n totalDocs: number\n totalPages: number\n values: T[]\n}\n\nexport type FindDistinct = (\n args: FindDistinctArgs,\n) => Promise<PaginatedDistinctDocs<Record<string, any>>>\n\nexport type Create = (args: CreateArgs) => Promise<Document>\n\nexport type UpdateOneArgs = {\n collection: CollectionSlug\n data: Record<string, unknown>\n draft?: boolean\n joins?: JoinQuery\n locale?: string\n /**\n * Additional database adapter specific options to pass to the query\n */\n options?: Record<string, unknown>\n req?: Partial<PayloadRequest>\n /**\n * If true, returns the updated documents\n *\n * @default true\n */\n returning?: boolean\n select?: SelectType\n} & (\n | {\n id: number | string\n where?: never\n }\n | {\n id?: never\n where: Where\n }\n)\n\n/**\n * @todo type as Promise<Document | null> in 4.0\n */\nexport type UpdateOne = (args: UpdateOneArgs) => Promise<Document>\n\nexport type UpdateManyArgs = {\n collection: CollectionSlug\n data: Record<string, unknown>\n draft?: boolean\n joins?: JoinQuery\n limit?: number\n locale?: string\n /**\n * Additional database adapter specific options to pass to the query\n */\n options?: Record<string, unknown>\n req?: Partial<PayloadRequest>\n /**\n * If true, returns the updated documents\n *\n * @default true\n */\n returning?: boolean\n select?: SelectType\n sort?: Sort\n where: Where\n}\n\nexport type UpdateMany = (args: UpdateManyArgs) => Promise<Document[] | null>\n\nexport type UpdateJobsArgs = {\n data: Record<string, unknown>\n req?: Partial<PayloadRequest>\n /**\n * If true, returns the updated documents\n *\n * @default true\n */\n returning?: boolean\n} & (\n | {\n id: number | string\n limit?: never\n sort?: never\n where?: never\n }\n | {\n id?: never\n limit?: number\n sort?: Sort\n where: Where\n }\n)\n\nexport type UpdateJobs = (args: UpdateJobsArgs) => Promise<Job[] | null>\n\nexport type UpsertArgs = {\n collection: CollectionSlug\n data: Record<string, unknown>\n joins?: JoinQuery\n locale?: string\n req?: Partial<PayloadRequest>\n /**\n * If true, returns the updated documents\n *\n * @default true\n */\n returning?: boolean\n select?: SelectType\n where: Where\n}\n\nexport type Upsert = (args: UpsertArgs) => Promise<Document>\n\nexport type DeleteOneArgs = {\n collection: CollectionSlug\n joins?: JoinQuery\n req?: Partial<PayloadRequest>\n /**\n * If true, returns the updated documents\n *\n * @default true\n */\n returning?: boolean\n select?: SelectType\n where: Where\n}\n\n/**\n * @todo type as Promise<Document | null> in 4.0\n */\nexport type DeleteOne = (args: DeleteOneArgs) => Promise<Document>\n\nexport type DeleteManyArgs = {\n collection: CollectionSlug\n joins?: JoinQuery\n req?: Partial<PayloadRequest>\n where: Where\n}\n\nexport type DeleteMany = (args: DeleteManyArgs) => Promise<void>\n\nexport type Migration = {\n down: (args: unknown) => Promise<void>\n up: (args: unknown) => Promise<void>\n} & MigrationData\n\nexport type MigrationData = {\n batch?: number\n id?: string\n name: string\n}\n\nexport type PaginatedDocs<T = any> = {\n docs: T[]\n hasNextPage: boolean\n hasPrevPage: boolean\n limit: number\n nextPage?: null | number | undefined\n page?: number\n pagingCounter: number\n prevPage?: null | number | undefined\n totalDocs: number\n totalPages: number\n}\n\nexport type DatabaseAdapterResult<T = BaseDatabaseAdapter> = {\n allowIDOnCreate?: boolean\n defaultIDType: 'number' | 'text'\n init: (args: { payload: Payload }) => T\n /**\n * The name of the database adapter. For example, \"postgres\" or \"mongoose\".\n *\n * @todo make required in 4.0\n */\n name?: string\n}\n\nexport type DBIdentifierName =\n | ((Args: {\n /** The name of the parent table when using relational DBs */\n tableName?: string\n }) => string)\n | string\n\nexport type DynamicMigrationTemplate = (args: { filePath: string; payload: Payload }) => Promise<{\n downSQL?: string\n imports?: string\n upSQL?: string\n}>\n\nexport type MigrationTemplateArgs = {\n downSQL?: string\n dynamic?: DynamicMigrationTemplate\n imports?: string\n packageName?: string\n upSQL?: string\n}\n\nexport type GenerateSchemaArgs = {\n log?: boolean\n outputFile?: string\n prettify?: boolean\n}\n\nexport type GenerateSchema = (args?: GenerateSchemaArgs) => Promise<void>\n"],"names":[],"mappings":"AAgvBA,WAAyE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/email/normalizeSendEmailOptions.ts"],"sourcesContent":["import type { Address } from 'nodemailer/lib/mailer'\n\n/**\n * @todo: Remove in v4.\n *\n * This is a runtime guard to handle the breaking change in nodemailer v8.\n *\n * The `from` property is intentionally narrowed back to nodemailer 7's shape.\n * Nodemailer v8 (security patch) widened it to also accept an array of addresses (breaking change).\n * For backwards compatibility, we normalize that from an array back to a single address at runtime.\n */\nexport function normalizeSendEmailOptions<T extends { from?: unknown }>(message: T): T {\n if (!Array.isArray(message.from)) {\n return message\n }\n\n const first = (message.from as Array<Address | string>)[0]\n return {\n ...message,\n from: typeof first === 'string' || (first && typeof first === 'object') ? first : undefined,\n } as { from?: Address | string } & T\n}\n"],"names":["normalizeSendEmailOptions","message","Array","isArray","from","first","undefined"],"mappings":"AAEA;;;;;;;;CAQC,GACD,OAAO,SAASA,0BAAwDC,OAAU;IAChF,IAAI,CAACC,MAAMC,OAAO,CAACF,QAAQG,IAAI,GAAG;QAChC,OAAOH;IACT;IAEA,MAAMI,QAAQ,AAACJ,QAAQG,IAAI,AAA4B,CAAC,EAAE;IAC1D,OAAO;QACL,GAAGH,OAAO;QACVG,MAAM,OAAOC,UAAU,YAAaA,SAAS,OAAOA,UAAU,WAAYA,QAAQC;IACpF;AACF"}
1
+ {"version":3,"sources":["../../src/email/normalizeSendEmailOptions.ts"],"sourcesContent":["type Address = { address: string; name?: string }\n\n/**\n * @todo: Remove in v4.\n *\n * This is a runtime guard to handle the breaking change in nodemailer v8.\n *\n * The `from` property is intentionally narrowed back to nodemailer 7's shape.\n * Nodemailer v8 (security patch) widened it to also accept an array of addresses (breaking change).\n * For backwards compatibility, we normalize that from an array back to a single address at runtime.\n */\nexport function normalizeSendEmailOptions<T extends { from?: unknown }>(message: T): T {\n if (!Array.isArray(message.from)) {\n return message\n }\n\n const first = (message.from as Array<Address | string>)[0]\n return {\n ...message,\n from: typeof first === 'string' || (first && typeof first === 'object') ? first : undefined,\n } as { from?: Address | string } & T\n}\n"],"names":["normalizeSendEmailOptions","message","Array","isArray","from","first","undefined"],"mappings":"AAEA;;;;;;;;CAQC,GACD,OAAO,SAASA,0BAAwDC,OAAU;IAChF,IAAI,CAACC,MAAMC,OAAO,CAACF,QAAQG,IAAI,GAAG;QAChC,OAAOH;IACT;IAEA,MAAMI,QAAQ,AAACJ,QAAQG,IAAI,AAA4B,CAAC,EAAE;IAC1D,OAAO;QACL,GAAGH,OAAO;QACVG,MAAM,OAAOC,UAAU,YAAaA,SAAS,OAAOA,UAAU,WAAYA,QAAQC;IACpF;AACF"}
@@ -1,5 +1,8 @@
1
1
  import type { SendMailOptions as NodemailerSendMailOptions } from 'nodemailer';
2
- import type { Address } from 'nodemailer/lib/mailer';
2
+ type Address = {
3
+ address: string;
4
+ name?: string;
5
+ };
3
6
  import type { Payload } from '../types/index.js';
4
7
  type Prettify<T> = {
5
8
  [K in keyof T]: T[K];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/email/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,IAAI,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAC9E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAEpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAEhD,KAAK,QAAQ,CAAC,CAAC,IAAI;KAChB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrB,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;AAExB;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CACrC;IACE,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;CACxB,GAAG,IAAI,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAC5C,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,uBAAuB,CAAC,kBAAkB,GAAG,OAAO,IAAI,UAAU,CAC5E,YAAY,CAAC,kBAAkB,CAAC,CACjC,CAAA;AAED;;;;GAIG;AAEH,MAAM,MAAM,YAAY,CAAC,kBAAkB,GAAG,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,KAAK;IAC9F,kBAAkB,EAAE,MAAM,CAAA;IAC1B,eAAe,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAA;CACtE,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/email/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,IAAI,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAE9E,KAAK,OAAO,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAEjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAEhD,KAAK,QAAQ,CAAC,CAAC,IAAI;KAChB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrB,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;AAExB;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CACrC;IACE,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;CACxB,GAAG,IAAI,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAC5C,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,uBAAuB,CAAC,kBAAkB,GAAG,OAAO,IAAI,UAAU,CAC5E,YAAY,CAAC,kBAAkB,CAAC,CACjC,CAAA;AAED;;;;GAIG;AAEH,MAAM,MAAM,YAAY,CAAC,kBAAkB,GAAG,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,KAAK;IAC9F,kBAAkB,EAAE,MAAM,CAAA;IAC1B,eAAe,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAA;CACtE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/email/types.ts"],"sourcesContent":["import type { SendMailOptions as NodemailerSendMailOptions } from 'nodemailer'\nimport type { Address } from 'nodemailer/lib/mailer'\n\nimport type { Payload } from '../types/index.js'\n\ntype Prettify<T> = {\n [K in keyof T]: T[K]\n} & NonNullable<unknown>\n\n/**\n * Options for sending an email. Allows access to the PayloadRequest object.\n *\n * @todo: Remove in v4. See `normalizeSendEmailOptions` for details.\n */\nexport type SendEmailOptions = Prettify<\n {\n from?: Address | string\n } & Omit<NodemailerSendMailOptions, 'from'>\n>\n\n/**\n * Email adapter after it has been initialized. This is used internally by Payload.\n */\nexport type InitializedEmailAdapter<TSendEmailResponse = unknown> = ReturnType<\n EmailAdapter<TSendEmailResponse>\n>\n\n/**\n * Email adapter interface. Allows a generic type for the response of the sendEmail method.\n *\n * This is the interface to use if you are creating a new email adapter.\n */\n\nexport type EmailAdapter<TSendEmailResponse = unknown> = ({ payload }: { payload: Payload }) => {\n defaultFromAddress: string\n defaultFromName: string\n name: string\n sendEmail: (message: SendEmailOptions) => Promise<TSendEmailResponse>\n}\n"],"names":[],"mappings":"AA2BA;;;;CAIC,GAED,WAKC"}
1
+ {"version":3,"sources":["../../src/email/types.ts"],"sourcesContent":["import type { SendMailOptions as NodemailerSendMailOptions } from 'nodemailer'\n\ntype Address = { address: string; name?: string }\n\nimport type { Payload } from '../types/index.js'\n\ntype Prettify<T> = {\n [K in keyof T]: T[K]\n} & NonNullable<unknown>\n\n/**\n * Options for sending an email. Allows access to the PayloadRequest object.\n *\n * @todo: Remove in v4. See `normalizeSendEmailOptions` for details.\n */\nexport type SendEmailOptions = Prettify<\n {\n from?: Address | string\n } & Omit<NodemailerSendMailOptions, 'from'>\n>\n\n/**\n * Email adapter after it has been initialized. This is used internally by Payload.\n */\nexport type InitializedEmailAdapter<TSendEmailResponse = unknown> = ReturnType<\n EmailAdapter<TSendEmailResponse>\n>\n\n/**\n * Email adapter interface. Allows a generic type for the response of the sendEmail method.\n *\n * This is the interface to use if you are creating a new email adapter.\n */\n\nexport type EmailAdapter<TSendEmailResponse = unknown> = ({ payload }: { payload: Payload }) => {\n defaultFromAddress: string\n defaultFromName: string\n name: string\n sendEmail: (message: SendEmailOptions) => Promise<TSendEmailResponse>\n}\n"],"names":[],"mappings":"AA4BA;;;;CAIC,GAED,WAKC"}
@@ -1,10 +1,17 @@
1
1
  /**
2
2
  * Modules exported here are not part of the public API and are subject to change without notice and without a major version bump.
3
3
  */
4
+ export { applyUserReadAccess } from '../auth/applyUserReadAccess.js';
5
+ export { assertClientUploadAccess } from '../uploads/assertClientUploadAccess.js';
6
+ export { assertClientUploadAllowed, assertClientUploadFileSize, } from '../uploads/assertClientUploadAllowed.js';
7
+ export { createClientUploadReceipt, verifyClientUploadReceipt, } from '../uploads/clientUploadReceipt.js';
8
+ export type { ClientUploadReceipt, SignedClientUploadReceipt, } from '../uploads/clientUploadReceipt.js';
4
9
  export { getExternalFile } from '../uploads/getExternalFile.js';
10
+ export { isSvgMimeType, isXmlMimeType } from '../uploads/getFileTypeIdentity.js';
5
11
  export { getRangeRequestInfo } from '../uploads/getRangeRequestInfo.js';
6
12
  export { getSafeFileName } from '../uploads/getSafeFilename.js';
7
13
  export { parseRangeHeader } from '../uploads/parseRangeHeader.js';
14
+ export { UPLOAD_CONTENT_SECURITY_POLICY } from '../uploads/uploadContentSecurityPolicy.js';
8
15
  export { getEntityPermissions } from '../utilities/getEntityPermissions/getEntityPermissions.js';
9
16
  export { sanitizePermissions } from '../utilities/sanitizePermissions.js';
10
17
  //# sourceMappingURL=internal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/exports/internal.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2DAA2D,CAAA;AAChG,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/exports/internal.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAA;AACjF,OAAO,EACL,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,yCAAyC,CAAA;AAChD,OAAO,EACL,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,mCAAmC,CAAA;AAC1C,YAAY,EACV,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAA;AAC1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,2DAA2D,CAAA;AAChG,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA"}
@@ -1,9 +1,15 @@
1
1
  /**
2
2
  * Modules exported here are not part of the public API and are subject to change without notice and without a major version bump.
3
- */ export { getExternalFile } from '../uploads/getExternalFile.js';
3
+ */ export { applyUserReadAccess } from '../auth/applyUserReadAccess.js';
4
+ export { assertClientUploadAccess } from '../uploads/assertClientUploadAccess.js';
5
+ export { assertClientUploadAllowed, assertClientUploadFileSize } from '../uploads/assertClientUploadAllowed.js';
6
+ export { createClientUploadReceipt, verifyClientUploadReceipt } from '../uploads/clientUploadReceipt.js';
7
+ export { getExternalFile } from '../uploads/getExternalFile.js';
8
+ export { isSvgMimeType, isXmlMimeType } from '../uploads/getFileTypeIdentity.js';
4
9
  export { getRangeRequestInfo } from '../uploads/getRangeRequestInfo.js';
5
10
  export { getSafeFileName } from '../uploads/getSafeFilename.js';
6
11
  export { parseRangeHeader } from '../uploads/parseRangeHeader.js';
12
+ export { UPLOAD_CONTENT_SECURITY_POLICY } from '../uploads/uploadContentSecurityPolicy.js';
7
13
  export { getEntityPermissions } from '../utilities/getEntityPermissions/getEntityPermissions.js';
8
14
  export { sanitizePermissions } from '../utilities/sanitizePermissions.js';
9
15
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/exports/internal.ts"],"sourcesContent":["/**\n * Modules exported here are not part of the public API and are subject to change without notice and without a major version bump.\n */\n\nexport { getExternalFile } from '../uploads/getExternalFile.js'\nexport { getRangeRequestInfo } from '../uploads/getRangeRequestInfo.js'\nexport { getSafeFileName } from '../uploads/getSafeFilename.js'\nexport { parseRangeHeader } from '../uploads/parseRangeHeader.js'\nexport { getEntityPermissions } from '../utilities/getEntityPermissions/getEntityPermissions.js'\nexport { sanitizePermissions } from '../utilities/sanitizePermissions.js'\n"],"names":["getExternalFile","getRangeRequestInfo","getSafeFileName","parseRangeHeader","getEntityPermissions","sanitizePermissions"],"mappings":"AAAA;;CAEC,GAED,SAASA,eAAe,QAAQ,gCAA+B;AAC/D,SAASC,mBAAmB,QAAQ,oCAAmC;AACvE,SAASC,eAAe,QAAQ,gCAA+B;AAC/D,SAASC,gBAAgB,QAAQ,iCAAgC;AACjE,SAASC,oBAAoB,QAAQ,4DAA2D;AAChG,SAASC,mBAAmB,QAAQ,sCAAqC"}
1
+ {"version":3,"sources":["../../src/exports/internal.ts"],"sourcesContent":["/**\n * Modules exported here are not part of the public API and are subject to change without notice and without a major version bump.\n */\n\nexport { applyUserReadAccess } from '../auth/applyUserReadAccess.js'\nexport { assertClientUploadAccess } from '../uploads/assertClientUploadAccess.js'\nexport {\n assertClientUploadAllowed,\n assertClientUploadFileSize,\n} from '../uploads/assertClientUploadAllowed.js'\nexport {\n createClientUploadReceipt,\n verifyClientUploadReceipt,\n} from '../uploads/clientUploadReceipt.js'\nexport type {\n ClientUploadReceipt,\n SignedClientUploadReceipt,\n} from '../uploads/clientUploadReceipt.js'\nexport { getExternalFile } from '../uploads/getExternalFile.js'\nexport { isSvgMimeType, isXmlMimeType } from '../uploads/getFileTypeIdentity.js'\nexport { getRangeRequestInfo } from '../uploads/getRangeRequestInfo.js'\nexport { getSafeFileName } from '../uploads/getSafeFilename.js'\nexport { parseRangeHeader } from '../uploads/parseRangeHeader.js'\nexport { UPLOAD_CONTENT_SECURITY_POLICY } from '../uploads/uploadContentSecurityPolicy.js'\nexport { getEntityPermissions } from '../utilities/getEntityPermissions/getEntityPermissions.js'\nexport { sanitizePermissions } from '../utilities/sanitizePermissions.js'\n"],"names":["applyUserReadAccess","assertClientUploadAccess","assertClientUploadAllowed","assertClientUploadFileSize","createClientUploadReceipt","verifyClientUploadReceipt","getExternalFile","isSvgMimeType","isXmlMimeType","getRangeRequestInfo","getSafeFileName","parseRangeHeader","UPLOAD_CONTENT_SECURITY_POLICY","getEntityPermissions","sanitizePermissions"],"mappings":"AAAA;;CAEC,GAED,SAASA,mBAAmB,QAAQ,iCAAgC;AACpE,SAASC,wBAAwB,QAAQ,yCAAwC;AACjF,SACEC,yBAAyB,EACzBC,0BAA0B,QACrB,0CAAyC;AAChD,SACEC,yBAAyB,EACzBC,yBAAyB,QACpB,oCAAmC;AAK1C,SAASC,eAAe,QAAQ,gCAA+B;AAC/D,SAASC,aAAa,EAAEC,aAAa,QAAQ,oCAAmC;AAChF,SAASC,mBAAmB,QAAQ,oCAAmC;AACvE,SAASC,eAAe,QAAQ,gCAA+B;AAC/D,SAASC,gBAAgB,QAAQ,iCAAgC;AACjE,SAASC,8BAA8B,QAAQ,4CAA2C;AAC1F,SAASC,oBAAoB,QAAQ,4DAA2D;AAChG,SAASC,mBAAmB,QAAQ,sCAAqC"}
@@ -6,6 +6,7 @@ export { parsePayloadComponent } from '../bin/generateImportMap/utilities/parseP
6
6
  export { defaults as collectionDefaults } from '../collections/config/defaults.js';
7
7
  export { BASE_36_DIGITS, generateKeyBetween, generateNKeysBetween, } from '../config/orderable/fractional-indexing.js';
8
8
  export { serverProps } from '../config/types.js';
9
+ export { isNestedRelationshipQuery } from '../database/isNestedRelationshipQuery.js';
9
10
  export { type Slugify } from '../fields/baseFields/slug/index.js';
10
11
  export { defaultTimezones } from '../fields/baseFields/timezone/defaultTimezones.js';
11
12
  export { fieldAffectsData, fieldHasMaxDepth, fieldHasSubFields, fieldIsArrayType, fieldIsBlockType, fieldIsGroupType, fieldIsHiddenOrDisabled, fieldIsID, fieldIsLocalized, fieldIsPresentationalOnly, fieldIsSidebar, fieldIsVirtual, fieldShouldBeLocalized, fieldSupportsMany, groupHasName, optionIsObject, optionIsValue, optionsAreObjects, tabHasName, valueIsValueWithRelation, } from '../fields/config/types.js';
@@ -17,6 +18,7 @@ export { formatFolderOrDocumentItem } from '../folders/utils/formatFolderOrDocum
17
18
  export { PREFERENCE_KEYS } from '../preferences/keys.js';
18
19
  export { validOperators, validOperatorSet } from '../types/constants.js';
19
20
  export { formatFilesize } from '../uploads/formatFilesize.js';
21
+ export { getSanitizedUploadFilename, isSvgUpload, isXmlUpload, uploadRequiresServerValidation, } from '../uploads/getFileTypeIdentity.js';
20
22
  export { isImage } from '../uploads/isImage.js';
21
23
  export { appendUploadSelectFields } from '../utilities/appendUploadSelectFields.js';
22
24
  export { applyLocaleFiltering } from '../utilities/applyLocaleFiltering.js';
@@ -24,6 +26,7 @@ export { combineWhereConstraints } from '../utilities/combineWhereConstraints.js
24
26
  export { deepCopyObject, deepCopyObjectComplex, deepCopyObjectSimple, deepCopyObjectSimpleWithoutReactComponents, } from '../utilities/deepCopyObject.js';
25
27
  export { deepMerge, deepMergeWithCombinedArrays, deepMergeWithReactComponents, deepMergeWithSourceArrays, } from '../utilities/deepMerge.js';
26
28
  export { extractID } from '../utilities/extractID.js';
29
+ export { expandOwnDottedKey, hasUnsupportedFieldPathSegment, setOwnProperty, } from '../utilities/fieldPath.js';
27
30
  export { flattenAllFields } from '../utilities/flattenAllFields.js';
28
31
  export { flattenTopLevelFields } from '../utilities/flattenTopLevelFields.js';
29
32
  export { formatAdminURL } from '../utilities/formatAdminURL.js';