payload 3.0.0-beta.2 → 3.0.0-beta.21

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 (696) hide show
  1. package/dist/admin/RichText.d.ts +18 -10
  2. package/dist/admin/RichText.d.ts.map +1 -1
  3. package/dist/admin/RichText.js.map +1 -1
  4. package/dist/admin/elements/PreviewButton.d.ts +2 -1
  5. package/dist/admin/elements/PreviewButton.d.ts.map +1 -1
  6. package/dist/admin/elements/PreviewButton.js.map +1 -1
  7. package/dist/admin/elements/PublishButton.d.ts +2 -1
  8. package/dist/admin/elements/PublishButton.d.ts.map +1 -1
  9. package/dist/admin/elements/PublishButton.js.map +1 -1
  10. package/dist/admin/elements/SaveButton.d.ts +2 -1
  11. package/dist/admin/elements/SaveButton.d.ts.map +1 -1
  12. package/dist/admin/elements/SaveButton.js.map +1 -1
  13. package/dist/admin/elements/SaveDraftButton.d.ts +2 -1
  14. package/dist/admin/elements/SaveDraftButton.d.ts.map +1 -1
  15. package/dist/admin/elements/SaveDraftButton.js.map +1 -1
  16. package/dist/admin/elements/Tab.d.ts +3 -0
  17. package/dist/admin/elements/Tab.d.ts.map +1 -1
  18. package/dist/admin/elements/Tab.js.map +1 -1
  19. package/dist/admin/elements/WithServerSideProps.d.ts +5 -0
  20. package/dist/admin/elements/WithServerSideProps.d.ts.map +1 -0
  21. package/dist/admin/elements/WithServerSideProps.js +3 -0
  22. package/dist/admin/elements/WithServerSideProps.js.map +1 -0
  23. package/dist/admin/forms/FieldDescription.d.ts +4 -2
  24. package/dist/admin/forms/FieldDescription.d.ts.map +1 -1
  25. package/dist/admin/forms/FieldDescription.js.map +1 -1
  26. package/dist/admin/forms/RowLabel.d.ts +2 -1
  27. package/dist/admin/forms/RowLabel.d.ts.map +1 -1
  28. package/dist/admin/forms/RowLabel.js.map +1 -1
  29. package/dist/admin/types.d.ts +2 -1
  30. package/dist/admin/types.d.ts.map +1 -1
  31. package/dist/admin/types.js.map +1 -1
  32. package/dist/admin/views/types.d.ts +2 -2
  33. package/dist/admin/views/types.d.ts.map +1 -1
  34. package/dist/admin/views/types.js.map +1 -1
  35. package/dist/auth/baseFields/apiKey.d.ts.map +1 -1
  36. package/dist/auth/baseFields/apiKey.js +6 -4
  37. package/dist/auth/baseFields/apiKey.js.map +1 -1
  38. package/dist/auth/cookies.d.ts +16 -4
  39. package/dist/auth/cookies.d.ts.map +1 -1
  40. package/dist/auth/cookies.js +45 -14
  41. package/dist/auth/cookies.js.map +1 -1
  42. package/dist/auth/defaultAccess.d.ts +2 -2
  43. package/dist/auth/defaultAccess.d.ts.map +1 -1
  44. package/dist/auth/defaultAccess.js.map +1 -1
  45. package/dist/auth/executeAccess.d.ts +2 -2
  46. package/dist/auth/executeAccess.d.ts.map +1 -1
  47. package/dist/auth/executeAccess.js.map +1 -1
  48. package/dist/auth/executeAuthStrategies.d.ts +3 -2
  49. package/dist/auth/executeAuthStrategies.d.ts.map +1 -1
  50. package/dist/auth/executeAuthStrategies.js.map +1 -1
  51. package/dist/auth/getAccessResults.d.ts +2 -2
  52. package/dist/auth/getAccessResults.d.ts.map +1 -1
  53. package/dist/auth/getAccessResults.js +1 -1
  54. package/dist/auth/getAccessResults.js.map +1 -1
  55. package/dist/auth/getFieldsToSign.d.ts +2 -2
  56. package/dist/auth/getFieldsToSign.d.ts.map +1 -1
  57. package/dist/auth/getFieldsToSign.js.map +1 -1
  58. package/dist/auth/operations/access.d.ts +2 -2
  59. package/dist/auth/operations/access.d.ts.map +1 -1
  60. package/dist/auth/operations/access.js.map +1 -1
  61. package/dist/auth/operations/auth.d.ts +5 -4
  62. package/dist/auth/operations/auth.d.ts.map +1 -1
  63. package/dist/auth/operations/auth.js.map +1 -1
  64. package/dist/auth/operations/forgotPassword.d.ts +2 -2
  65. package/dist/auth/operations/forgotPassword.d.ts.map +1 -1
  66. package/dist/auth/operations/forgotPassword.js +6 -5
  67. package/dist/auth/operations/forgotPassword.js.map +1 -1
  68. package/dist/auth/operations/init.d.ts +2 -2
  69. package/dist/auth/operations/init.d.ts.map +1 -1
  70. package/dist/auth/operations/init.js.map +1 -1
  71. package/dist/auth/operations/local/auth.js.map +1 -1
  72. package/dist/auth/operations/local/forgotPassword.d.ts +2 -2
  73. package/dist/auth/operations/local/forgotPassword.d.ts.map +1 -1
  74. package/dist/auth/operations/local/forgotPassword.js.map +1 -1
  75. package/dist/auth/operations/local/login.d.ts +2 -2
  76. package/dist/auth/operations/local/login.d.ts.map +1 -1
  77. package/dist/auth/operations/local/login.js.map +1 -1
  78. package/dist/auth/operations/local/resetPassword.d.ts +2 -2
  79. package/dist/auth/operations/local/resetPassword.d.ts.map +1 -1
  80. package/dist/auth/operations/local/resetPassword.js.map +1 -1
  81. package/dist/auth/operations/local/unlock.d.ts +2 -2
  82. package/dist/auth/operations/local/unlock.d.ts.map +1 -1
  83. package/dist/auth/operations/local/unlock.js.map +1 -1
  84. package/dist/auth/operations/local/verifyEmail.d.ts +2 -2
  85. package/dist/auth/operations/local/verifyEmail.d.ts.map +1 -1
  86. package/dist/auth/operations/local/verifyEmail.js.map +1 -1
  87. package/dist/auth/operations/login.d.ts +2 -2
  88. package/dist/auth/operations/login.d.ts.map +1 -1
  89. package/dist/auth/operations/login.js +17 -1
  90. package/dist/auth/operations/login.js.map +1 -1
  91. package/dist/auth/operations/logout.d.ts +2 -2
  92. package/dist/auth/operations/logout.d.ts.map +1 -1
  93. package/dist/auth/operations/logout.js.map +1 -1
  94. package/dist/auth/operations/me.d.ts +2 -2
  95. package/dist/auth/operations/me.d.ts.map +1 -1
  96. package/dist/auth/operations/me.js.map +1 -1
  97. package/dist/auth/operations/refresh.d.ts +2 -2
  98. package/dist/auth/operations/refresh.d.ts.map +1 -1
  99. package/dist/auth/operations/refresh.js.map +1 -1
  100. package/dist/auth/operations/registerFirstUser.d.ts +2 -2
  101. package/dist/auth/operations/registerFirstUser.d.ts.map +1 -1
  102. package/dist/auth/operations/registerFirstUser.js.map +1 -1
  103. package/dist/auth/operations/resetPassword.d.ts +2 -2
  104. package/dist/auth/operations/resetPassword.d.ts.map +1 -1
  105. package/dist/auth/operations/resetPassword.js.map +1 -1
  106. package/dist/auth/operations/unlock.d.ts +2 -2
  107. package/dist/auth/operations/unlock.d.ts.map +1 -1
  108. package/dist/auth/operations/unlock.js.map +1 -1
  109. package/dist/auth/operations/verifyEmail.d.ts +2 -2
  110. package/dist/auth/operations/verifyEmail.d.ts.map +1 -1
  111. package/dist/auth/operations/verifyEmail.js.map +1 -1
  112. package/dist/auth/sendVerificationEmail.d.ts +7 -8
  113. package/dist/auth/sendVerificationEmail.d.ts.map +1 -1
  114. package/dist/auth/sendVerificationEmail.js +7 -7
  115. package/dist/auth/sendVerificationEmail.js.map +1 -1
  116. package/dist/auth/strategies/local/incrementLoginAttempts.d.ts +2 -2
  117. package/dist/auth/strategies/local/incrementLoginAttempts.d.ts.map +1 -1
  118. package/dist/auth/strategies/local/incrementLoginAttempts.js.map +1 -1
  119. package/dist/auth/strategies/local/register.d.ts +2 -2
  120. package/dist/auth/strategies/local/register.d.ts.map +1 -1
  121. package/dist/auth/strategies/local/register.js.map +1 -1
  122. package/dist/auth/strategies/local/resetLoginAttempts.d.ts +2 -2
  123. package/dist/auth/strategies/local/resetLoginAttempts.d.ts.map +1 -1
  124. package/dist/auth/strategies/local/resetLoginAttempts.js.map +1 -1
  125. package/dist/auth/types.d.ts +5 -5
  126. package/dist/auth/types.d.ts.map +1 -1
  127. package/dist/auth/types.js.map +1 -1
  128. package/dist/bin/loader/index.d.ts.map +1 -1
  129. package/dist/bin/loader/index.js +6 -1
  130. package/dist/bin/loader/index.js.map +1 -1
  131. package/dist/bin/loader/resolveOriginalPath.d.ts +10 -0
  132. package/dist/bin/loader/resolveOriginalPath.d.ts.map +1 -0
  133. package/dist/bin/loader/resolveOriginalPath.js +32 -0
  134. package/dist/bin/loader/resolveOriginalPath.js.map +1 -0
  135. package/dist/collections/config/client.d.ts +17 -13
  136. package/dist/collections/config/client.d.ts.map +1 -1
  137. package/dist/collections/config/client.js +3 -1
  138. package/dist/collections/config/client.js.map +1 -1
  139. package/dist/collections/config/defaults.d.ts +6 -5
  140. package/dist/collections/config/defaults.d.ts.map +1 -1
  141. package/dist/collections/config/defaults.js +1 -0
  142. package/dist/collections/config/defaults.js.map +1 -1
  143. package/dist/collections/config/sanitize.d.ts +2 -3
  144. package/dist/collections/config/sanitize.d.ts.map +1 -1
  145. package/dist/collections/config/sanitize.js +7 -4
  146. package/dist/collections/config/sanitize.js.map +1 -1
  147. package/dist/collections/config/schema.d.ts.map +1 -1
  148. package/dist/collections/config/schema.js +3 -0
  149. package/dist/collections/config/schema.js.map +1 -1
  150. package/dist/collections/config/types.d.ts +33 -23
  151. package/dist/collections/config/types.d.ts.map +1 -1
  152. package/dist/collections/config/types.js.map +1 -1
  153. package/dist/collections/dataloader.d.ts.map +1 -1
  154. package/dist/collections/dataloader.js +4 -6
  155. package/dist/collections/dataloader.js.map +1 -1
  156. package/dist/collections/operations/count.d.ts +13 -0
  157. package/dist/collections/operations/count.d.ts.map +1 -0
  158. package/dist/collections/operations/count.js +75 -0
  159. package/dist/collections/operations/count.js.map +1 -0
  160. package/dist/collections/operations/create.d.ts +2 -2
  161. package/dist/collections/operations/create.d.ts.map +1 -1
  162. package/dist/collections/operations/create.js +4 -8
  163. package/dist/collections/operations/create.js.map +1 -1
  164. package/dist/collections/operations/delete.d.ts +2 -2
  165. package/dist/collections/operations/delete.d.ts.map +1 -1
  166. package/dist/collections/operations/delete.js.map +1 -1
  167. package/dist/collections/operations/deleteByID.d.ts +2 -2
  168. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  169. package/dist/collections/operations/deleteByID.js.map +1 -1
  170. package/dist/collections/operations/docAccess.d.ts +2 -2
  171. package/dist/collections/operations/docAccess.d.ts.map +1 -1
  172. package/dist/collections/operations/docAccess.js.map +1 -1
  173. package/dist/collections/operations/duplicate.d.ts +2 -2
  174. package/dist/collections/operations/duplicate.d.ts.map +1 -1
  175. package/dist/collections/operations/duplicate.js.map +1 -1
  176. package/dist/collections/operations/find.d.ts +2 -2
  177. package/dist/collections/operations/find.d.ts.map +1 -1
  178. package/dist/collections/operations/find.js.map +1 -1
  179. package/dist/collections/operations/findByID.d.ts +2 -2
  180. package/dist/collections/operations/findByID.d.ts.map +1 -1
  181. package/dist/collections/operations/findByID.js.map +1 -1
  182. package/dist/collections/operations/findVersionByID.d.ts +2 -2
  183. package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
  184. package/dist/collections/operations/findVersionByID.js.map +1 -1
  185. package/dist/collections/operations/findVersions.d.ts +2 -2
  186. package/dist/collections/operations/findVersions.d.ts.map +1 -1
  187. package/dist/collections/operations/findVersions.js.map +1 -1
  188. package/dist/collections/operations/local/count.d.ts +20 -0
  189. package/dist/collections/operations/local/count.d.ts.map +1 -0
  190. package/dist/collections/operations/local/count.js +19 -0
  191. package/dist/collections/operations/local/count.js.map +1 -0
  192. package/dist/collections/operations/local/create.d.ts +4 -4
  193. package/dist/collections/operations/local/create.d.ts.map +1 -1
  194. package/dist/collections/operations/local/create.js.map +1 -1
  195. package/dist/collections/operations/local/delete.d.ts +4 -4
  196. package/dist/collections/operations/local/delete.d.ts.map +1 -1
  197. package/dist/collections/operations/local/delete.js.map +1 -1
  198. package/dist/collections/operations/local/duplicate.d.ts +4 -4
  199. package/dist/collections/operations/local/duplicate.d.ts.map +1 -1
  200. package/dist/collections/operations/local/duplicate.js.map +1 -1
  201. package/dist/collections/operations/local/find.d.ts +4 -4
  202. package/dist/collections/operations/local/find.d.ts.map +1 -1
  203. package/dist/collections/operations/local/find.js.map +1 -1
  204. package/dist/collections/operations/local/findByID.d.ts +4 -4
  205. package/dist/collections/operations/local/findByID.d.ts.map +1 -1
  206. package/dist/collections/operations/local/findByID.js.map +1 -1
  207. package/dist/collections/operations/local/findVersionByID.d.ts +4 -4
  208. package/dist/collections/operations/local/findVersionByID.d.ts.map +1 -1
  209. package/dist/collections/operations/local/findVersionByID.js.map +1 -1
  210. package/dist/collections/operations/local/findVersions.d.ts +4 -4
  211. package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
  212. package/dist/collections/operations/local/findVersions.js.map +1 -1
  213. package/dist/collections/operations/local/index.d.ts +2 -0
  214. package/dist/collections/operations/local/index.d.ts.map +1 -1
  215. package/dist/collections/operations/local/index.js +2 -0
  216. package/dist/collections/operations/local/index.js.map +1 -1
  217. package/dist/collections/operations/local/restoreVersion.d.ts +4 -4
  218. package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
  219. package/dist/collections/operations/local/restoreVersion.js.map +1 -1
  220. package/dist/collections/operations/local/update.d.ts +4 -4
  221. package/dist/collections/operations/local/update.d.ts.map +1 -1
  222. package/dist/collections/operations/local/update.js.map +1 -1
  223. package/dist/collections/operations/restoreVersion.d.ts +2 -2
  224. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  225. package/dist/collections/operations/restoreVersion.js.map +1 -1
  226. package/dist/collections/operations/update.d.ts +2 -2
  227. package/dist/collections/operations/update.d.ts.map +1 -1
  228. package/dist/collections/operations/update.js +3 -3
  229. package/dist/collections/operations/update.js.map +1 -1
  230. package/dist/collections/operations/updateByID.d.ts +2 -2
  231. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  232. package/dist/collections/operations/updateByID.js +2 -2
  233. package/dist/collections/operations/updateByID.js.map +1 -1
  234. package/dist/collections/operations/utils.d.ts +8 -2
  235. package/dist/collections/operations/utils.d.ts.map +1 -1
  236. package/dist/collections/operations/utils.js.map +1 -1
  237. package/dist/config/build.d.ts.map +1 -1
  238. package/dist/config/build.js +3 -4
  239. package/dist/config/build.js.map +1 -1
  240. package/dist/config/client.d.ts +2 -1
  241. package/dist/config/client.d.ts.map +1 -1
  242. package/dist/config/client.js +2 -1
  243. package/dist/config/client.js.map +1 -1
  244. package/dist/config/defaults.d.ts.map +1 -1
  245. package/dist/config/defaults.js +1 -0
  246. package/dist/config/defaults.js.map +1 -1
  247. package/dist/config/find.d.ts.map +1 -1
  248. package/dist/config/find.js +20 -9
  249. package/dist/config/find.js.map +1 -1
  250. package/dist/config/sanitize.d.ts +1 -1
  251. package/dist/config/sanitize.d.ts.map +1 -1
  252. package/dist/config/sanitize.js +28 -7
  253. package/dist/config/sanitize.js.map +1 -1
  254. package/dist/config/schema.d.ts.map +1 -1
  255. package/dist/config/schema.js +2 -1
  256. package/dist/config/schema.js.map +1 -1
  257. package/dist/config/types.d.ts +40 -54
  258. package/dist/config/types.d.ts.map +1 -1
  259. package/dist/config/types.js +3 -12
  260. package/dist/config/types.js.map +1 -1
  261. package/dist/database/migrations/migrate.js.map +1 -1
  262. package/dist/database/migrations/migrateDown.js.map +1 -1
  263. package/dist/database/migrations/migrateRefresh.js.map +1 -1
  264. package/dist/database/migrations/migrateReset.js.map +1 -1
  265. package/dist/database/queryValidation/validateQueryPaths.d.ts +2 -2
  266. package/dist/database/queryValidation/validateQueryPaths.d.ts.map +1 -1
  267. package/dist/database/queryValidation/validateQueryPaths.js +1 -1
  268. package/dist/database/queryValidation/validateQueryPaths.js.map +1 -1
  269. package/dist/database/queryValidation/validateSearchParams.d.ts +2 -2
  270. package/dist/database/queryValidation/validateSearchParams.d.ts.map +1 -1
  271. package/dist/database/queryValidation/validateSearchParams.js.map +1 -1
  272. package/dist/database/types.d.ts +29 -19
  273. package/dist/database/types.d.ts.map +1 -1
  274. package/dist/database/types.js.map +1 -1
  275. package/dist/email/consoleEmailAdapter.d.ts +3 -0
  276. package/dist/email/consoleEmailAdapter.d.ts.map +1 -0
  277. package/dist/email/consoleEmailAdapter.js +17 -0
  278. package/dist/email/consoleEmailAdapter.js.map +1 -0
  279. package/dist/email/defaults.d.ts +2 -2
  280. package/dist/email/defaults.d.ts.map +1 -1
  281. package/dist/email/defaults.js +3 -3
  282. package/dist/email/defaults.js.map +1 -1
  283. package/dist/email/getStringifiedToAddress.d.ts +3 -0
  284. package/dist/email/getStringifiedToAddress.d.ts.map +1 -0
  285. package/dist/email/getStringifiedToAddress.js +20 -0
  286. package/dist/email/getStringifiedToAddress.js.map +1 -0
  287. package/dist/email/sendEmail.d.ts +3 -2
  288. package/dist/email/sendEmail.d.ts.map +1 -1
  289. package/dist/email/sendEmail.js +8 -4
  290. package/dist/email/sendEmail.js.map +1 -1
  291. package/dist/email/types.d.ts +26 -18
  292. package/dist/email/types.d.ts.map +1 -1
  293. package/dist/email/types.js +5 -1
  294. package/dist/email/types.js.map +1 -1
  295. package/dist/errors/APIError.d.ts +2 -2
  296. package/dist/errors/APIError.d.ts.map +1 -1
  297. package/dist/errors/APIError.js +1 -2
  298. package/dist/errors/APIError.js.map +1 -1
  299. package/dist/errors/AuthenticationError.d.ts +2 -3
  300. package/dist/errors/AuthenticationError.d.ts.map +1 -1
  301. package/dist/errors/AuthenticationError.js +2 -3
  302. package/dist/errors/AuthenticationError.js.map +1 -1
  303. package/dist/errors/DuplicateCollection.d.ts +2 -3
  304. package/dist/errors/DuplicateCollection.d.ts.map +1 -1
  305. package/dist/errors/DuplicateCollection.js +2 -3
  306. package/dist/errors/DuplicateCollection.js.map +1 -1
  307. package/dist/errors/DuplicateFieldName.d.ts +2 -3
  308. package/dist/errors/DuplicateFieldName.d.ts.map +1 -1
  309. package/dist/errors/DuplicateFieldName.js +2 -3
  310. package/dist/errors/DuplicateFieldName.js.map +1 -1
  311. package/dist/errors/DuplicateGlobal.d.ts +2 -3
  312. package/dist/errors/DuplicateGlobal.d.ts.map +1 -1
  313. package/dist/errors/DuplicateGlobal.js +2 -3
  314. package/dist/errors/DuplicateGlobal.js.map +1 -1
  315. package/dist/errors/ErrorDeletingFile.d.ts +2 -3
  316. package/dist/errors/ErrorDeletingFile.d.ts.map +1 -1
  317. package/dist/errors/ErrorDeletingFile.js +2 -3
  318. package/dist/errors/ErrorDeletingFile.js.map +1 -1
  319. package/dist/errors/FileRetrievalError.d.ts +6 -0
  320. package/dist/errors/FileRetrievalError.d.ts.map +1 -0
  321. package/dist/errors/FileRetrievalError.js +13 -0
  322. package/dist/errors/FileRetrievalError.js.map +1 -0
  323. package/dist/errors/FileUploadError.d.ts +2 -3
  324. package/dist/errors/FileUploadError.d.ts.map +1 -1
  325. package/dist/errors/FileUploadError.js +2 -3
  326. package/dist/errors/FileUploadError.js.map +1 -1
  327. package/dist/errors/Forbidden.d.ts +2 -3
  328. package/dist/errors/Forbidden.d.ts.map +1 -1
  329. package/dist/errors/Forbidden.js +2 -3
  330. package/dist/errors/Forbidden.js.map +1 -1
  331. package/dist/errors/InvalidConfiguration.d.ts +2 -3
  332. package/dist/errors/InvalidConfiguration.d.ts.map +1 -1
  333. package/dist/errors/InvalidConfiguration.js +2 -3
  334. package/dist/errors/InvalidConfiguration.js.map +1 -1
  335. package/dist/errors/InvalidFieldName.d.ts +2 -3
  336. package/dist/errors/InvalidFieldName.d.ts.map +1 -1
  337. package/dist/errors/InvalidFieldName.js +2 -3
  338. package/dist/errors/InvalidFieldName.js.map +1 -1
  339. package/dist/errors/InvalidFieldRelationship.d.ts +2 -3
  340. package/dist/errors/InvalidFieldRelationship.d.ts.map +1 -1
  341. package/dist/errors/InvalidFieldRelationship.js +2 -3
  342. package/dist/errors/InvalidFieldRelationship.js.map +1 -1
  343. package/dist/errors/InvalidSchema.d.ts +2 -3
  344. package/dist/errors/InvalidSchema.d.ts.map +1 -1
  345. package/dist/errors/InvalidSchema.js +2 -3
  346. package/dist/errors/InvalidSchema.js.map +1 -1
  347. package/dist/errors/LockedAuth.d.ts +2 -3
  348. package/dist/errors/LockedAuth.d.ts.map +1 -1
  349. package/dist/errors/LockedAuth.js +2 -3
  350. package/dist/errors/LockedAuth.js.map +1 -1
  351. package/dist/errors/MissingCollectionLabel.d.ts +2 -3
  352. package/dist/errors/MissingCollectionLabel.d.ts.map +1 -1
  353. package/dist/errors/MissingCollectionLabel.js +2 -3
  354. package/dist/errors/MissingCollectionLabel.js.map +1 -1
  355. package/dist/errors/MissingEditorProp.d.ts +2 -3
  356. package/dist/errors/MissingEditorProp.d.ts.map +1 -1
  357. package/dist/errors/MissingEditorProp.js +2 -3
  358. package/dist/errors/MissingEditorProp.js.map +1 -1
  359. package/dist/errors/MissingFieldInputOptions.d.ts +2 -3
  360. package/dist/errors/MissingFieldInputOptions.d.ts.map +1 -1
  361. package/dist/errors/MissingFieldInputOptions.js +2 -3
  362. package/dist/errors/MissingFieldInputOptions.js.map +1 -1
  363. package/dist/errors/MissingFieldType.d.ts +2 -3
  364. package/dist/errors/MissingFieldType.d.ts.map +1 -1
  365. package/dist/errors/MissingFieldType.js +2 -3
  366. package/dist/errors/MissingFieldType.js.map +1 -1
  367. package/dist/errors/MissingFile.d.ts +2 -3
  368. package/dist/errors/MissingFile.d.ts.map +1 -1
  369. package/dist/errors/MissingFile.js +2 -3
  370. package/dist/errors/MissingFile.js.map +1 -1
  371. package/dist/errors/NotFound.d.ts +2 -3
  372. package/dist/errors/NotFound.d.ts.map +1 -1
  373. package/dist/errors/NotFound.js +2 -3
  374. package/dist/errors/NotFound.js.map +1 -1
  375. package/dist/errors/QueryError.d.ts +2 -3
  376. package/dist/errors/QueryError.d.ts.map +1 -1
  377. package/dist/errors/QueryError.js +2 -3
  378. package/dist/errors/QueryError.js.map +1 -1
  379. package/dist/errors/TimestampsRequired.d.ts +2 -3
  380. package/dist/errors/TimestampsRequired.d.ts.map +1 -1
  381. package/dist/errors/TimestampsRequired.js +2 -3
  382. package/dist/errors/TimestampsRequired.js.map +1 -1
  383. package/dist/errors/UnathorizedError.d.ts +2 -3
  384. package/dist/errors/UnathorizedError.d.ts.map +1 -1
  385. package/dist/errors/UnathorizedError.js +2 -3
  386. package/dist/errors/UnathorizedError.js.map +1 -1
  387. package/dist/errors/ValidationError.d.ts +2 -3
  388. package/dist/errors/ValidationError.d.ts.map +1 -1
  389. package/dist/errors/ValidationError.js +2 -3
  390. package/dist/errors/ValidationError.js.map +1 -1
  391. package/dist/errors/index.d.ts +20 -19
  392. package/dist/errors/index.d.ts.map +1 -1
  393. package/dist/errors/index.js +20 -19
  394. package/dist/errors/index.js.map +1 -1
  395. package/dist/exports/auth.d.ts +1 -0
  396. package/dist/exports/auth.d.ts.map +1 -1
  397. package/dist/exports/auth.js +1 -0
  398. package/dist/exports/auth.js.map +1 -1
  399. package/dist/exports/database.d.ts +1 -1
  400. package/dist/exports/database.d.ts.map +1 -1
  401. package/dist/exports/database.js.map +1 -1
  402. package/dist/exports/i18n.d.ts +2 -0
  403. package/dist/exports/i18n.d.ts.map +1 -0
  404. package/dist/exports/i18n.js +3 -0
  405. package/dist/exports/i18n.js.map +1 -0
  406. package/dist/exports/node.d.ts +3 -0
  407. package/dist/exports/node.d.ts.map +1 -1
  408. package/dist/exports/node.js +3 -1
  409. package/dist/exports/node.js.map +1 -1
  410. package/dist/exports/operations.d.ts +1 -0
  411. package/dist/exports/operations.d.ts.map +1 -1
  412. package/dist/exports/operations.js +1 -0
  413. package/dist/exports/operations.js.map +1 -1
  414. package/dist/exports/types.d.ts +1 -0
  415. package/dist/exports/types.d.ts.map +1 -1
  416. package/dist/exports/types.js.map +1 -1
  417. package/dist/exports/utilities.d.ts +7 -2
  418. package/dist/exports/utilities.d.ts.map +1 -1
  419. package/dist/exports/utilities.js +7 -3
  420. package/dist/exports/utilities.js.map +1 -1
  421. package/dist/fields/config/client.d.ts +129 -104
  422. package/dist/fields/config/client.d.ts.map +1 -1
  423. package/dist/fields/config/client.js +2 -1
  424. package/dist/fields/config/client.js.map +1 -1
  425. package/dist/fields/config/sanitize.d.ts +7 -2
  426. package/dist/fields/config/sanitize.d.ts.map +1 -1
  427. package/dist/fields/config/sanitize.js +61 -33
  428. package/dist/fields/config/sanitize.js.map +1 -1
  429. package/dist/fields/config/sanitize.spec.js +76 -82
  430. package/dist/fields/config/sanitize.spec.js.map +1 -1
  431. package/dist/fields/config/schema.d.ts.map +1 -1
  432. package/dist/fields/config/schema.js +7 -1
  433. package/dist/fields/config/schema.js.map +1 -1
  434. package/dist/fields/config/types.d.ts +69 -57
  435. package/dist/fields/config/types.d.ts.map +1 -1
  436. package/dist/fields/config/types.js.map +1 -1
  437. package/dist/fields/getDefaultValue.d.ts +2 -2
  438. package/dist/fields/getDefaultValue.d.ts.map +1 -1
  439. package/dist/fields/getDefaultValue.js.map +1 -1
  440. package/dist/fields/hooks/afterChange/index.d.ts +2 -2
  441. package/dist/fields/hooks/afterChange/index.d.ts.map +1 -1
  442. package/dist/fields/hooks/afterChange/index.js.map +1 -1
  443. package/dist/fields/hooks/afterChange/promise.d.ts +2 -2
  444. package/dist/fields/hooks/afterChange/promise.d.ts.map +1 -1
  445. package/dist/fields/hooks/afterChange/promise.js.map +1 -1
  446. package/dist/fields/hooks/afterChange/traverseFields.d.ts +2 -2
  447. package/dist/fields/hooks/afterChange/traverseFields.d.ts.map +1 -1
  448. package/dist/fields/hooks/afterChange/traverseFields.js.map +1 -1
  449. package/dist/fields/hooks/afterRead/index.d.ts +2 -2
  450. package/dist/fields/hooks/afterRead/index.d.ts.map +1 -1
  451. package/dist/fields/hooks/afterRead/index.js.map +1 -1
  452. package/dist/fields/hooks/afterRead/promise.d.ts +5 -2
  453. package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
  454. package/dist/fields/hooks/afterRead/promise.js +7 -16
  455. package/dist/fields/hooks/afterRead/promise.js.map +1 -1
  456. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts +2 -2
  457. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts.map +1 -1
  458. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js.map +1 -1
  459. package/dist/fields/hooks/afterRead/traverseFields.d.ts +5 -2
  460. package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -1
  461. package/dist/fields/hooks/afterRead/traverseFields.js.map +1 -1
  462. package/dist/fields/hooks/beforeChange/index.d.ts +2 -2
  463. package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
  464. package/dist/fields/hooks/beforeChange/index.js.map +1 -1
  465. package/dist/fields/hooks/beforeChange/promise.d.ts +2 -2
  466. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  467. package/dist/fields/hooks/beforeChange/promise.js +3 -1
  468. package/dist/fields/hooks/beforeChange/promise.js.map +1 -1
  469. package/dist/fields/hooks/beforeChange/traverseFields.d.ts +14 -2
  470. package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
  471. package/dist/fields/hooks/beforeChange/traverseFields.js.map +1 -1
  472. package/dist/fields/hooks/beforeValidate/index.d.ts +2 -2
  473. package/dist/fields/hooks/beforeValidate/index.d.ts.map +1 -1
  474. package/dist/fields/hooks/beforeValidate/index.js.map +1 -1
  475. package/dist/fields/hooks/beforeValidate/promise.d.ts +8 -2
  476. package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
  477. package/dist/fields/hooks/beforeValidate/promise.js +2 -0
  478. package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
  479. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts +8 -2
  480. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
  481. package/dist/fields/hooks/beforeValidate/traverseFields.js.map +1 -1
  482. package/dist/fields/validations.d.ts +6 -4
  483. package/dist/fields/validations.d.ts.map +1 -1
  484. package/dist/fields/validations.js +52 -10
  485. package/dist/fields/validations.js.map +1 -1
  486. package/dist/fields/validations.spec.js +6 -1
  487. package/dist/fields/validations.spec.js.map +1 -1
  488. package/dist/globals/config/client.d.ts +1 -1
  489. package/dist/globals/config/client.d.ts.map +1 -1
  490. package/dist/globals/config/client.js +2 -1
  491. package/dist/globals/config/client.js.map +1 -1
  492. package/dist/globals/config/sanitize.d.ts +2 -3
  493. package/dist/globals/config/sanitize.d.ts.map +1 -1
  494. package/dist/globals/config/sanitize.js +36 -35
  495. package/dist/globals/config/sanitize.js.map +1 -1
  496. package/dist/globals/config/schema.d.ts.map +1 -1
  497. package/dist/globals/config/schema.js +1 -0
  498. package/dist/globals/config/schema.js.map +1 -1
  499. package/dist/globals/config/types.d.ts +10 -9
  500. package/dist/globals/config/types.d.ts.map +1 -1
  501. package/dist/globals/config/types.js.map +1 -1
  502. package/dist/globals/operations/docAccess.d.ts +2 -2
  503. package/dist/globals/operations/docAccess.d.ts.map +1 -1
  504. package/dist/globals/operations/docAccess.js.map +1 -1
  505. package/dist/globals/operations/findOne.d.ts +2 -3
  506. package/dist/globals/operations/findOne.d.ts.map +1 -1
  507. package/dist/globals/operations/findOne.js.map +1 -1
  508. package/dist/globals/operations/findVersionByID.d.ts +2 -2
  509. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  510. package/dist/globals/operations/findVersionByID.js.map +1 -1
  511. package/dist/globals/operations/findVersions.d.ts +2 -2
  512. package/dist/globals/operations/findVersions.d.ts.map +1 -1
  513. package/dist/globals/operations/findVersions.js.map +1 -1
  514. package/dist/globals/operations/local/findOne.d.ts +4 -4
  515. package/dist/globals/operations/local/findOne.d.ts.map +1 -1
  516. package/dist/globals/operations/local/findOne.js.map +1 -1
  517. package/dist/globals/operations/local/findVersionByID.d.ts +4 -4
  518. package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
  519. package/dist/globals/operations/local/findVersionByID.js.map +1 -1
  520. package/dist/globals/operations/local/findVersions.d.ts +4 -4
  521. package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
  522. package/dist/globals/operations/local/findVersions.js.map +1 -1
  523. package/dist/globals/operations/local/restoreVersion.d.ts +4 -4
  524. package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
  525. package/dist/globals/operations/local/restoreVersion.js.map +1 -1
  526. package/dist/globals/operations/local/update.d.ts +4 -4
  527. package/dist/globals/operations/local/update.d.ts.map +1 -1
  528. package/dist/globals/operations/local/update.js.map +1 -1
  529. package/dist/globals/operations/restoreVersion.d.ts +2 -2
  530. package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
  531. package/dist/globals/operations/restoreVersion.js.map +1 -1
  532. package/dist/globals/operations/update.d.ts +2 -2
  533. package/dist/globals/operations/update.d.ts.map +1 -1
  534. package/dist/globals/operations/update.js.map +1 -1
  535. package/dist/index.d.ts +17 -6
  536. package/dist/index.d.ts.map +1 -1
  537. package/dist/index.js +32 -14
  538. package/dist/index.js.map +1 -1
  539. package/dist/preferences/deleteUserPreferences.d.ts +2 -2
  540. package/dist/preferences/deleteUserPreferences.d.ts.map +1 -1
  541. package/dist/preferences/deleteUserPreferences.js.map +1 -1
  542. package/dist/preferences/operations/delete.js +2 -2
  543. package/dist/preferences/operations/delete.js.map +1 -1
  544. package/dist/preferences/operations/update.d.ts +1 -1
  545. package/dist/preferences/operations/update.js +1 -1
  546. package/dist/preferences/operations/update.js.map +1 -1
  547. package/dist/preferences/requestHandlers/delete.d.ts.map +1 -1
  548. package/dist/preferences/requestHandlers/delete.js +18 -5
  549. package/dist/preferences/requestHandlers/delete.js.map +1 -1
  550. package/dist/preferences/requestHandlers/findOne.d.ts.map +1 -1
  551. package/dist/preferences/requestHandlers/findOne.js +18 -5
  552. package/dist/preferences/requestHandlers/findOne.js.map +1 -1
  553. package/dist/preferences/requestHandlers/update.d.ts.map +1 -1
  554. package/dist/preferences/requestHandlers/update.js +19 -7
  555. package/dist/preferences/requestHandlers/update.js.map +1 -1
  556. package/dist/preferences/types.d.ts +3 -4
  557. package/dist/preferences/types.d.ts.map +1 -1
  558. package/dist/preferences/types.js.map +1 -1
  559. package/dist/types/index.d.ts +21 -17
  560. package/dist/types/index.d.ts.map +1 -1
  561. package/dist/types/index.js.map +1 -1
  562. package/dist/uploads/deleteAssociatedFiles.d.ts +2 -2
  563. package/dist/uploads/deleteAssociatedFiles.d.ts.map +1 -1
  564. package/dist/uploads/deleteAssociatedFiles.js.map +1 -1
  565. package/dist/uploads/docWithFilenameExists.d.ts +2 -2
  566. package/dist/uploads/docWithFilenameExists.d.ts.map +1 -1
  567. package/dist/uploads/docWithFilenameExists.js.map +1 -1
  568. package/dist/uploads/generateFileData.d.ts +2 -2
  569. package/dist/uploads/generateFileData.d.ts.map +1 -1
  570. package/dist/uploads/generateFileData.js +5 -4
  571. package/dist/uploads/generateFileData.js.map +1 -1
  572. package/dist/uploads/getExternalFile.d.ts +5 -4
  573. package/dist/uploads/getExternalFile.d.ts.map +1 -1
  574. package/dist/uploads/getExternalFile.js +10 -6
  575. package/dist/uploads/getExternalFile.js.map +1 -1
  576. package/dist/uploads/getFileByPath.d.ts +2 -2
  577. package/dist/uploads/getFileByPath.d.ts.map +1 -1
  578. package/dist/uploads/getFileByPath.js.map +1 -1
  579. package/dist/uploads/getImageSize.d.ts +2 -2
  580. package/dist/uploads/getImageSize.d.ts.map +1 -1
  581. package/dist/uploads/getImageSize.js +19 -5
  582. package/dist/uploads/getImageSize.js.map +1 -1
  583. package/dist/uploads/getSafeFilename.d.ts +2 -2
  584. package/dist/uploads/getSafeFilename.d.ts.map +1 -1
  585. package/dist/uploads/getSafeFilename.js.map +1 -1
  586. package/dist/uploads/imageResizer.d.ts +3 -3
  587. package/dist/uploads/imageResizer.d.ts.map +1 -1
  588. package/dist/uploads/imageResizer.js.map +1 -1
  589. package/dist/uploads/tempFile.d.ts +7 -0
  590. package/dist/uploads/tempFile.d.ts.map +1 -0
  591. package/dist/uploads/tempFile.js +39 -0
  592. package/dist/uploads/tempFile.js.map +1 -0
  593. package/dist/uploads/types.d.ts +12 -2
  594. package/dist/uploads/types.d.ts.map +1 -1
  595. package/dist/uploads/types.js.map +1 -1
  596. package/dist/uploads/unlinkTempFiles.d.ts +2 -2
  597. package/dist/uploads/unlinkTempFiles.d.ts.map +1 -1
  598. package/dist/uploads/unlinkTempFiles.js.map +1 -1
  599. package/dist/uploads/uploadFiles.d.ts +2 -2
  600. package/dist/uploads/uploadFiles.d.ts.map +1 -1
  601. package/dist/uploads/uploadFiles.js.map +1 -1
  602. package/dist/utilities/checkDuplicateCollections.js +1 -1
  603. package/dist/utilities/checkDuplicateCollections.js.map +1 -1
  604. package/dist/utilities/commitTransaction.d.ts +2 -2
  605. package/dist/utilities/commitTransaction.d.ts.map +1 -1
  606. package/dist/utilities/commitTransaction.js.map +1 -1
  607. package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
  608. package/dist/utilities/configToJSONSchema.js +56 -1
  609. package/dist/utilities/configToJSONSchema.js.map +1 -1
  610. package/dist/utilities/configToJSONSchema.spec.js +2 -2
  611. package/dist/utilities/configToJSONSchema.spec.js.map +1 -1
  612. package/dist/utilities/createLocalReq.d.ts +3 -3
  613. package/dist/utilities/createLocalReq.d.ts.map +1 -1
  614. package/dist/utilities/createLocalReq.js +4 -2
  615. package/dist/utilities/createLocalReq.js.map +1 -1
  616. package/dist/utilities/getEntityPolicies.d.ts +2 -2
  617. package/dist/utilities/getEntityPolicies.d.ts.map +1 -1
  618. package/dist/utilities/getEntityPolicies.js.map +1 -1
  619. package/dist/utilities/importWithoutClientFiles.d.ts.map +1 -1
  620. package/dist/utilities/importWithoutClientFiles.js +7 -4
  621. package/dist/utilities/importWithoutClientFiles.js.map +1 -1
  622. package/dist/utilities/initTransaction.d.ts +2 -2
  623. package/dist/utilities/initTransaction.d.ts.map +1 -1
  624. package/dist/utilities/initTransaction.js.map +1 -1
  625. package/dist/utilities/isEntityHidden.d.ts +2 -2
  626. package/dist/utilities/isEntityHidden.d.ts.map +1 -1
  627. package/dist/utilities/isEntityHidden.js.map +1 -1
  628. package/dist/utilities/isReactComponent.d.ts +2 -0
  629. package/dist/utilities/isReactComponent.d.ts.map +1 -1
  630. package/dist/utilities/isReactComponent.js +8 -2
  631. package/dist/utilities/isReactComponent.js.map +1 -1
  632. package/dist/utilities/killTransaction.d.ts +2 -2
  633. package/dist/utilities/killTransaction.d.ts.map +1 -1
  634. package/dist/utilities/killTransaction.js.map +1 -1
  635. package/dist/utilities/parseCookies.js +1 -1
  636. package/dist/utilities/parseCookies.js.map +1 -1
  637. package/dist/utilities/telemetry/events/adminInit.d.ts +2 -2
  638. package/dist/utilities/telemetry/events/adminInit.d.ts.map +1 -1
  639. package/dist/utilities/telemetry/events/adminInit.js.map +1 -1
  640. package/dist/utilities/telemetry/index.d.ts +9 -0
  641. package/dist/utilities/telemetry/index.d.ts.map +1 -1
  642. package/dist/utilities/telemetry/index.js +62 -14
  643. package/dist/utilities/telemetry/index.js.map +1 -1
  644. package/dist/versions/deleteCollectionVersions.d.ts +2 -2
  645. package/dist/versions/deleteCollectionVersions.d.ts.map +1 -1
  646. package/dist/versions/deleteCollectionVersions.js.map +1 -1
  647. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts +2 -2
  648. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts.map +1 -1
  649. package/dist/versions/drafts/replaceWithDraftIfAvailable.js.map +1 -1
  650. package/dist/versions/enforceMaxVersions.d.ts +2 -2
  651. package/dist/versions/enforceMaxVersions.d.ts.map +1 -1
  652. package/dist/versions/enforceMaxVersions.js.map +1 -1
  653. package/dist/versions/getLatestCollectionVersion.d.ts +2 -2
  654. package/dist/versions/getLatestCollectionVersion.d.ts.map +1 -1
  655. package/dist/versions/getLatestCollectionVersion.js.map +1 -1
  656. package/dist/versions/getLatestGlobalVersion.d.ts +2 -2
  657. package/dist/versions/getLatestGlobalVersion.d.ts.map +1 -1
  658. package/dist/versions/getLatestGlobalVersion.js.map +1 -1
  659. package/dist/versions/saveVersion.d.ts +2 -2
  660. package/dist/versions/saveVersion.d.ts.map +1 -1
  661. package/dist/versions/saveVersion.js +1 -1
  662. package/dist/versions/saveVersion.js.map +1 -1
  663. package/package.json +71 -65
  664. package/auth.d.ts +0 -6
  665. package/auth.js +0 -6
  666. package/config.d.ts +0 -14
  667. package/config.js +0 -14
  668. package/database.d.ts +0 -23
  669. package/database.js +0 -22
  670. package/dist/email/build.d.ts +0 -5
  671. package/dist/email/build.d.ts.map +0 -1
  672. package/dist/email/build.js +0 -63
  673. package/dist/email/build.js.map +0 -1
  674. package/dist/email/mockHandler.d.ts +0 -5
  675. package/dist/email/mockHandler.d.ts.map +0 -1
  676. package/dist/email/mockHandler.js +0 -24
  677. package/dist/email/mockHandler.js.map +0 -1
  678. package/dist/utilities/getIDType.d.ts +0 -4
  679. package/dist/utilities/getIDType.d.ts.map +0 -1
  680. package/dist/utilities/getIDType.js +0 -8
  681. package/dist/utilities/getIDType.js.map +0 -1
  682. package/errors.d.ts +0 -2
  683. package/errors.js +0 -3
  684. package/node.d.ts +0 -3
  685. package/node.js +0 -4
  686. package/operations.d.ts +0 -30
  687. package/operations.js +0 -31
  688. package/src/index.ts +0 -486
  689. package/types.d.ts +0 -17
  690. package/types.js +0 -5
  691. package/uploads.d.ts +0 -2
  692. package/uploads.js +0 -3
  693. package/utilities.d.ts +0 -32
  694. package/utilities.js +0 -33
  695. package/versions.d.ts +0 -9
  696. package/versions.js +0 -9
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/preferences/requestHandlers/findOne.ts"],"sourcesContent":["import httpStatus from 'http-status'\n\nimport type { PayloadHandler } from '../../config/types.js'\n\nimport findOne from '../operations/findOne.js'\n\nexport const findByIDHandler: PayloadHandler = async (req): Promise<Response> => {\n const result = await findOne({\n key: req.routeParams?.key as string,\n req,\n user: req.user,\n })\n\n return Response.json(\n {\n ...(result\n ? result\n : {\n message: req.t('general:notFound'),\n value: null,\n }),\n },\n {\n status: httpStatus.OK,\n },\n )\n}\n"],"names":["httpStatus","findOne","findByIDHandler","req","result","key","routeParams","user","Response","json","message","t","value","status","OK"],"rangeMappings":";;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,gBAAgB,cAAa;AAIpC,OAAOC,aAAa,2BAA0B;AAE9C,OAAO,MAAMC,kBAAkC,OAAOC;IACpD,MAAMC,SAAS,MAAMH,QAAQ;QAC3BI,KAAKF,IAAIG,WAAW,EAAED;QACtBF;QACAI,MAAMJ,IAAII,IAAI;IAChB;IAEA,OAAOC,SAASC,IAAI,CAClB;QACE,GAAIL,SACAA,SACA;YACEM,SAASP,IAAIQ,CAAC,CAAC;YACfC,OAAO;QACT,CAAC;IACP,GACA;QACEC,QAAQb,WAAWc,EAAE;IACvB;AAEJ,EAAC"}
1
+ {"version":3,"sources":["../../../src/preferences/requestHandlers/findOne.ts"],"sourcesContent":["import httpStatus from 'http-status'\n\nimport type { PayloadHandler } from '../../config/types.js'\nimport type { PayloadRequestWithData } from '../../types/index.js'\n\nimport findOne from '../operations/findOne.js'\n\nexport const findByIDHandler: PayloadHandler = async (incomingReq): Promise<Response> => {\n // We cannot import the addDataAndFileToRequest utility here from the 'next' package because of dependency issues\n // However that utility should be used where possible instead of manually appending the data\n let data\n\n try {\n data = await incomingReq.json()\n } catch (error) {\n data = {}\n }\n\n const reqWithData: PayloadRequestWithData = incomingReq\n\n if (data) {\n reqWithData.data = data\n reqWithData.json = () => Promise.resolve(data)\n }\n\n const result = await findOne({\n key: reqWithData.routeParams?.key as string,\n req: reqWithData,\n user: reqWithData.user,\n })\n\n return Response.json(\n {\n ...(result\n ? result\n : {\n message: reqWithData.t('general:notFound'),\n value: null,\n }),\n },\n {\n status: httpStatus.OK,\n },\n )\n}\n"],"names":["httpStatus","findOne","findByIDHandler","incomingReq","data","json","error","reqWithData","Promise","resolve","result","key","routeParams","req","user","Response","message","t","value","status","OK"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,gBAAgB,cAAa;AAKpC,OAAOC,aAAa,2BAA0B;AAE9C,OAAO,MAAMC,kBAAkC,OAAOC;IACpD,iHAAiH;IACjH,4FAA4F;IAC5F,IAAIC;IAEJ,IAAI;QACFA,OAAO,MAAMD,YAAYE,IAAI;IAC/B,EAAE,OAAOC,OAAO;QACdF,OAAO,CAAC;IACV;IAEA,MAAMG,cAAsCJ;IAE5C,IAAIC,MAAM;QACRG,YAAYH,IAAI,GAAGA;QACnBG,YAAYF,IAAI,GAAG,IAAMG,QAAQC,OAAO,CAACL;IAC3C;IAEA,MAAMM,SAAS,MAAMT,QAAQ;QAC3BU,KAAKJ,YAAYK,WAAW,EAAED;QAC9BE,KAAKN;QACLO,MAAMP,YAAYO,IAAI;IACxB;IAEA,OAAOC,SAASV,IAAI,CAClB;QACE,GAAIK,SACAA,SACA;YACEM,SAAST,YAAYU,CAAC,CAAC;YACvBC,OAAO;QACT,CAAC;IACP,GACA;QACEC,QAAQnB,WAAWoB,EAAE;IACvB;AAEJ,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/preferences/requestHandlers/update.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAI3D,eAAO,MAAM,aAAa,EAAE,cAmB3B,CAAA"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/preferences/requestHandlers/update.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAK3D,eAAO,MAAM,aAAa,EAAE,cAkC3B,CAAA"}
@@ -1,16 +1,28 @@
1
1
  import httpStatus from 'http-status';
2
2
  import update from '../operations/update.js';
3
- export const updateHandler = async (req)=>{
4
- const payloadRequest = req;
3
+ export const updateHandler = async (incomingReq)=>{
4
+ // We cannot import the addDataAndFileToRequest utility here from the 'next' package because of dependency issues
5
+ // However that utility should be used where possible instead of manually appending the data
6
+ let data;
7
+ try {
8
+ data = await incomingReq.json();
9
+ } catch (error) {
10
+ data = {};
11
+ }
12
+ const reqWithData = incomingReq;
13
+ if (data) {
14
+ reqWithData.data = data;
15
+ reqWithData.json = ()=>Promise.resolve(data);
16
+ }
5
17
  const doc = await update({
6
- key: req.routeParams?.key,
7
- req: payloadRequest,
8
- user: payloadRequest?.user,
9
- value: payloadRequest.data.value || payloadRequest.data
18
+ key: reqWithData.routeParams?.key,
19
+ req: reqWithData,
20
+ user: reqWithData?.user,
21
+ value: reqWithData.data.value || reqWithData.data
10
22
  });
11
23
  return Response.json({
12
24
  doc,
13
- message: payloadRequest.t('general:updatedSuccessfully')
25
+ message: reqWithData.t('general:updatedSuccessfully')
14
26
  }, {
15
27
  status: httpStatus.OK
16
28
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/preferences/requestHandlers/update.ts"],"sourcesContent":["import httpStatus from 'http-status'\n\nimport type { PayloadHandler } from '../../config/types.js'\n\nimport update from '../operations/update.js'\n\nexport const updateHandler: PayloadHandler = async (req) => {\n const payloadRequest = req\n\n const doc = await update({\n key: req.routeParams?.key as string,\n req: payloadRequest,\n user: payloadRequest?.user,\n value: payloadRequest.data.value || payloadRequest.data,\n })\n\n return Response.json(\n {\n doc,\n message: payloadRequest.t('general:updatedSuccessfully'),\n },\n {\n status: httpStatus.OK,\n },\n )\n}\n"],"names":["httpStatus","update","updateHandler","req","payloadRequest","doc","key","routeParams","user","value","data","Response","json","message","t","status","OK"],"rangeMappings":";;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,gBAAgB,cAAa;AAIpC,OAAOC,YAAY,0BAAyB;AAE5C,OAAO,MAAMC,gBAAgC,OAAOC;IAClD,MAAMC,iBAAiBD;IAEvB,MAAME,MAAM,MAAMJ,OAAO;QACvBK,KAAKH,IAAII,WAAW,EAAED;QACtBH,KAAKC;QACLI,MAAMJ,gBAAgBI;QACtBC,OAAOL,eAAeM,IAAI,CAACD,KAAK,IAAIL,eAAeM,IAAI;IACzD;IAEA,OAAOC,SAASC,IAAI,CAClB;QACEP;QACAQ,SAAST,eAAeU,CAAC,CAAC;IAC5B,GACA;QACEC,QAAQf,WAAWgB,EAAE;IACvB;AAEJ,EAAC"}
1
+ {"version":3,"sources":["../../../src/preferences/requestHandlers/update.ts"],"sourcesContent":["import httpStatus from 'http-status'\n\nimport type { PayloadHandler } from '../../config/types.js'\nimport type { PayloadRequestWithData } from '../../types/index.js'\n\nimport update from '../operations/update.js'\n\nexport const updateHandler: PayloadHandler = async (incomingReq) => {\n // We cannot import the addDataAndFileToRequest utility here from the 'next' package because of dependency issues\n // However that utility should be used where possible instead of manually appending the data\n let data\n\n try {\n data = await incomingReq.json()\n } catch (error) {\n data = {}\n }\n\n const reqWithData: PayloadRequestWithData = incomingReq\n\n if (data) {\n reqWithData.data = data\n reqWithData.json = () => Promise.resolve(data)\n }\n\n const doc = await update({\n key: reqWithData.routeParams?.key as string,\n req: reqWithData,\n user: reqWithData?.user,\n value: reqWithData.data.value || reqWithData.data,\n })\n\n return Response.json(\n {\n doc,\n message: reqWithData.t('general:updatedSuccessfully'),\n },\n {\n status: httpStatus.OK,\n },\n )\n}\n"],"names":["httpStatus","update","updateHandler","incomingReq","data","json","error","reqWithData","Promise","resolve","doc","key","routeParams","req","user","value","Response","message","t","status","OK"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,gBAAgB,cAAa;AAKpC,OAAOC,YAAY,0BAAyB;AAE5C,OAAO,MAAMC,gBAAgC,OAAOC;IAClD,iHAAiH;IACjH,4FAA4F;IAC5F,IAAIC;IAEJ,IAAI;QACFA,OAAO,MAAMD,YAAYE,IAAI;IAC/B,EAAE,OAAOC,OAAO;QACdF,OAAO,CAAC;IACV;IAEA,MAAMG,cAAsCJ;IAE5C,IAAIC,MAAM;QACRG,YAAYH,IAAI,GAAGA;QACnBG,YAAYF,IAAI,GAAG,IAAMG,QAAQC,OAAO,CAACL;IAC3C;IAEA,MAAMM,MAAM,MAAMT,OAAO;QACvBU,KAAKJ,YAAYK,WAAW,EAAED;QAC9BE,KAAKN;QACLO,MAAMP,aAAaO;QACnBC,OAAOR,YAAYH,IAAI,CAACW,KAAK,IAAIR,YAAYH,IAAI;IACnD;IAEA,OAAOY,SAASX,IAAI,CAClB;QACEK;QACAO,SAASV,YAAYW,CAAC,CAAC;IACzB,GACA;QACEC,QAAQnB,WAAWoB,EAAE;IACvB;AAEJ,EAAC"}
@@ -1,10 +1,9 @@
1
- import type { User } from '../auth/index.js';
2
- import type { PayloadRequest } from '../types/index.js';
1
+ import type { PayloadRequestWithData } from '../types/index.js';
3
2
  export type PreferenceRequest = {
4
3
  key: string;
5
4
  overrideAccess?: boolean;
6
- req: PayloadRequest;
7
- user: User;
5
+ req: PayloadRequestWithData;
6
+ user: PayloadRequestWithData['user'];
8
7
  };
9
8
  export type PreferenceUpdateRequest = PreferenceRequest & {
10
9
  value: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/preferences/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAEvD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;IACnB,IAAI,EAAE,IAAI,CAAA;CACX,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,GAAG;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,CAAA;AAE5E,MAAM,MAAM,oBAAoB,GAAG,MAAM,EAAE,CAAA;AAE3C,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC;IAClC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CACvB,CAAC,CAAA;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,EAAE,oBAAoB,CAAA;IAC/B,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AACD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,uBAAuB,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,iBAAiB,CAAA;CAC1B,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/preferences/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE/D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,EAAE,sBAAsB,CAAA;IAC3B,IAAI,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAA;CACrC,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,GAAG;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,CAAA;AAE5E,MAAM,MAAM,oBAAoB,GAAG,MAAM,EAAE,CAAA;AAE3C,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC;IAClC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CACvB,CAAC,CAAA;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,EAAE,oBAAoB,CAAA;IAC/B,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AACD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,uBAAuB,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,iBAAiB,CAAA;CAC1B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/preferences/types.ts"],"sourcesContent":["import type { User } from '../auth/index.js'\nimport type { PayloadRequest } from '../types/index.js'\n\nexport type PreferenceRequest = {\n key: string\n overrideAccess?: boolean\n req: PayloadRequest\n user: User\n}\n\nexport type PreferenceUpdateRequest = PreferenceRequest & { value: unknown }\n\nexport type CollapsedPreferences = string[]\n\nexport type TabsPreferences = Array<{\n [path: string]: number\n}>\n\nexport type InsideFieldsPreferences = {\n collapsed: CollapsedPreferences\n tabIndex: number\n}\nexport type FieldsPreferences = {\n [key: string]: InsideFieldsPreferences\n}\n\nexport type DocumentPreferences = {\n fields: FieldsPreferences\n}\n"],"names":[],"rangeMappings":"","mappings":"AA0BA,WAEC"}
1
+ {"version":3,"sources":["../../src/preferences/types.ts"],"sourcesContent":["import type { User } from '../auth/index.js'\nimport type { PayloadRequestWithData } from '../types/index.js'\n\nexport type PreferenceRequest = {\n key: string\n overrideAccess?: boolean\n req: PayloadRequestWithData\n user: PayloadRequestWithData['user']\n}\n\nexport type PreferenceUpdateRequest = PreferenceRequest & { value: unknown }\n\nexport type CollapsedPreferences = string[]\n\nexport type TabsPreferences = Array<{\n [path: string]: number\n}>\n\nexport type InsideFieldsPreferences = {\n collapsed: CollapsedPreferences\n tabIndex: number\n}\nexport type FieldsPreferences = {\n [key: string]: InsideFieldsPreferences\n}\n\nexport type DocumentPreferences = {\n fields: FieldsPreferences\n}\n"],"names":[],"rangeMappings":"","mappings":"AA0BA,WAEC"}
@@ -1,9 +1,9 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
2
  import type { I18n, TFunction } from '@payloadcms/translations';
3
3
  import type DataLoader from 'dataloader';
4
- import type { User } from '../auth/types.js';
5
4
  import type { TypeWithID, TypeWithTimestamps } from '../collections/config/types.js';
6
5
  import type payload from '../index.js';
6
+ import type { GeneratedTypes } from '../index.js';
7
7
  import type { validOperators } from './constants.js';
8
8
  export type { Payload as Payload } from '../index.js';
9
9
  export type UploadEdits = {
@@ -18,28 +18,16 @@ export type UploadEdits = {
18
18
  y?: number;
19
19
  };
20
20
  };
21
- export type CustomPayloadRequest<U = any> = {
21
+ export type CustomPayloadRequestProperties<U = unknown> = {
22
22
  context: RequestContext;
23
- /** Data from the request body */
24
- data?: Record<string, unknown>;
25
23
  /** The locale that should be used for a field when it is not translated to the requested locale */
26
24
  fallbackLocale?: string;
27
- /**
28
- * The files that were uploaded during this request
29
- */
30
- file?: {
31
- data: Buffer;
32
- mimetype: string;
33
- name: string;
34
- size: number;
35
- tempFilePath?: string;
36
- };
37
25
  i18n: I18n;
38
26
  /**
39
27
  * The requested locale if specified
40
28
  * Only available for localized collections
41
29
  */
42
- locale?: string;
30
+ locale?: GeneratedTypes['locale'];
43
31
  /**
44
32
  * The payload object
45
33
  */
@@ -71,9 +59,22 @@ export type CustomPayloadRequest<U = any> = {
71
59
  */
72
60
  transactionIDPromise?: Promise<void>;
73
61
  /** The signed in user */
74
- user: (U & User) | null;
62
+ user: (U & GeneratedTypes['user']) | null;
75
63
  } & Pick<URL, 'hash' | 'host' | 'href' | 'origin' | 'pathname' | 'port' | 'protocol' | 'search' | 'searchParams'>;
76
- export type PayloadRequest<U = any> = Partial<Request> & Required<Pick<Request, 'headers'>> & CustomPayloadRequest<U>;
64
+ export type PayloadRequestData = {
65
+ /** Data from the request body */
66
+ data?: Record<string, unknown>;
67
+ /** The locale that should be used for a field when it is not translated to the requested locale */
68
+ file?: {
69
+ data: Buffer;
70
+ mimetype: string;
71
+ name: string;
72
+ size: number;
73
+ tempFilePath?: string;
74
+ };
75
+ };
76
+ export type PayloadRequest<U = unknown> = Partial<Request> & Required<Pick<Request, 'headers'>> & CustomPayloadRequestProperties<U>;
77
+ export type PayloadRequestWithData<U = unknown> = PayloadRequest<U> & PayloadRequestData;
77
78
  export interface RequestContext {
78
79
  [key: string]: unknown;
79
80
  }
@@ -92,4 +93,7 @@ export type VersionOperations = 'readVersions';
92
93
  export type AuthOperations = 'unlock';
93
94
  export type AllOperations = AuthOperations | Operation | VersionOperations;
94
95
  export declare function docHasTimestamps(doc: any): doc is TypeWithTimestamps;
96
+ export type IfAny<T, Y, N> = 0 extends 1 & T ? Y : N;
97
+ export type IsAny<T> = IfAny<T, true, false>;
98
+ export type ReplaceAny<T, DefaultType> = IsAny<T> extends true ? DefaultType : T;
95
99
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/types/index.ts"],"sourcesContent":["import type { I18n, TFunction } from '@payloadcms/translations'\nimport type DataLoader from 'dataloader'\n\nimport type { User } from '../auth/types.js'\nimport type { TypeWithID, TypeWithTimestamps } from '../collections/config/types.js'\nimport type payload from '../index.js'\nimport type { validOperators } from './constants.js'\nexport type { Payload as Payload } from '../index.js'\n\nexport type UploadEdits = {\n crop?: {\n height?: number\n width?: number\n x?: number\n y?: number\n }\n focalPoint?: {\n x?: number\n y?: number\n }\n}\n\nexport type CustomPayloadRequest<U = any> = {\n context: RequestContext\n /** Data from the request body */\n data?: Record<string, unknown>\n /** The locale that should be used for a field when it is not translated to the requested locale */\n fallbackLocale?: string\n /**\n * The files that were uploaded during this request\n */\n file?: {\n data: Buffer\n mimetype: string\n name: string\n size: number\n tempFilePath?: string\n }\n i18n: I18n\n /**\n * The requested locale if specified\n * Only available for localized collections\n */\n locale?: string\n /**\n * The payload object\n */\n payload: typeof payload\n /**\n * The context in which the request is being made\n */\n payloadAPI: 'GraphQL' | 'REST' | 'local'\n /** Optimized document loader */\n payloadDataLoader?: DataLoader<string, TypeWithID>\n /** Resized versions of the image that was uploaded during this request */\n payloadUploadSizes?: Record<string, Buffer>\n /** Query params on the request */\n query: Record<string, unknown>\n /** The route parameters\n * @example\n * /:collection/:id -> /posts/123\n * { collection: 'posts', id: '123' }\n */\n routeParams?: Record<string, unknown>\n /** Translate function - duplicate of i18n.t */\n t: TFunction\n /**\n * Identifier for the database transaction for interactions in a single, all-or-nothing operation.\n */\n transactionID?: number | string\n /**\n * Used to ensure consistency when multiple operations try to create a transaction concurrently on the same request\n */\n transactionIDPromise?: Promise<void>\n /** The signed in user */\n user: (U & User) | null\n} & Pick<\n URL,\n 'hash' | 'host' | 'href' | 'origin' | 'pathname' | 'port' | 'protocol' | 'search' | 'searchParams'\n>\nexport type PayloadRequest<U = any> = Partial<Request> &\n Required<Pick<Request, 'headers'>> &\n CustomPayloadRequest<U>\nexport interface RequestContext {\n [key: string]: unknown\n}\n\nexport type Operator = (typeof validOperators)[number]\n\nexport type WhereField = {\n [key in Operator]?: unknown\n}\n\nexport type Where = {\n [key: string]: Where[] | WhereField\n and?: Where[]\n or?: Where[]\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type Document = any\n\nexport type Operation = 'create' | 'delete' | 'read' | 'update'\nexport type VersionOperations = 'readVersions'\nexport type AuthOperations = 'unlock'\nexport type AllOperations = AuthOperations | Operation | VersionOperations\n\nexport function docHasTimestamps(doc: any): doc is TypeWithTimestamps {\n return doc?.createdAt && doc?.updatedAt\n}\n"],"names":["docHasTimestamps","doc","createdAt","updatedAt"],"rangeMappings":";;","mappings":"AA2GA,OAAO,SAASA,iBAAiBC,GAAQ;IACvC,OAAOA,KAAKC,aAAaD,KAAKE;AAChC"}
1
+ {"version":3,"sources":["../../src/types/index.ts"],"sourcesContent":["import type { I18n, TFunction } from '@payloadcms/translations'\nimport type DataLoader from 'dataloader'\n\nimport type { TypeWithID, TypeWithTimestamps } from '../collections/config/types.js'\nimport type payload from '../index.js'\nimport type { GeneratedTypes } from '../index.js'\nimport type { validOperators } from './constants.js'\nexport type { Payload as Payload } from '../index.js'\n\nexport type UploadEdits = {\n crop?: {\n height?: number\n width?: number\n x?: number\n y?: number\n }\n focalPoint?: {\n x?: number\n y?: number\n }\n}\n\nexport type CustomPayloadRequestProperties<U = unknown> = {\n context: RequestContext\n /** The locale that should be used for a field when it is not translated to the requested locale */\n fallbackLocale?: string\n i18n: I18n\n /**\n * The requested locale if specified\n * Only available for localized collections\n */\n locale?: GeneratedTypes['locale']\n /**\n * The payload object\n */\n payload: typeof payload\n /**\n * The context in which the request is being made\n */\n payloadAPI: 'GraphQL' | 'REST' | 'local'\n /** Optimized document loader */\n payloadDataLoader?: DataLoader<string, TypeWithID>\n /** Resized versions of the image that was uploaded during this request */\n payloadUploadSizes?: Record<string, Buffer>\n /** Query params on the request */\n query: Record<string, unknown>\n /** The route parameters\n * @example\n * /:collection/:id -> /posts/123\n * { collection: 'posts', id: '123' }\n */\n routeParams?: Record<string, unknown>\n /** Translate function - duplicate of i18n.t */\n t: TFunction\n /**\n * Identifier for the database transaction for interactions in a single, all-or-nothing operation.\n */\n transactionID?: number | string\n /**\n * Used to ensure consistency when multiple operations try to create a transaction concurrently on the same request\n */\n transactionIDPromise?: Promise<void>\n /** The signed in user */\n user: (U & GeneratedTypes['user']) | null\n} & Pick<\n URL,\n 'hash' | 'host' | 'href' | 'origin' | 'pathname' | 'port' | 'protocol' | 'search' | 'searchParams'\n>\nexport type PayloadRequestData = {\n /** Data from the request body */\n data?: Record<string, unknown>\n /** The locale that should be used for a field when it is not translated to the requested locale */\n file?: {\n data: Buffer\n mimetype: string\n name: string\n size: number\n tempFilePath?: string\n }\n}\nexport type PayloadRequest<U = unknown> = Partial<Request> &\n Required<Pick<Request, 'headers'>> &\n CustomPayloadRequestProperties<U>\nexport type PayloadRequestWithData<U = unknown> = PayloadRequest<U> & PayloadRequestData\nexport interface RequestContext {\n [key: string]: unknown\n}\n\nexport type Operator = (typeof validOperators)[number]\n\nexport type WhereField = {\n [key in Operator]?: unknown\n}\n\nexport type Where = {\n [key: string]: Where[] | WhereField\n and?: Where[]\n or?: Where[]\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type Document = any\n\nexport type Operation = 'create' | 'delete' | 'read' | 'update'\nexport type VersionOperations = 'readVersions'\nexport type AuthOperations = 'unlock'\nexport type AllOperations = AuthOperations | Operation | VersionOperations\n\nexport function docHasTimestamps(doc: any): doc is TypeWithTimestamps {\n return doc?.createdAt && doc?.updatedAt\n}\n\nexport type IfAny<T, Y, N> = 0 extends 1 & T ? Y : N // This is a commonly used trick to detect 'any'\nexport type IsAny<T> = IfAny<T, true, false>\nexport type ReplaceAny<T, DefaultType> = IsAny<T> extends true ? DefaultType : T\n"],"names":["docHasTimestamps","doc","createdAt","updatedAt"],"rangeMappings":";;","mappings":"AA4GA,OAAO,SAASA,iBAAiBC,GAAQ;IACvC,OAAOA,KAAKC,aAAaD,KAAKE;AAChC"}
@@ -1,6 +1,6 @@
1
1
  import type { SanitizedCollectionConfig } from '../collections/config/types.js';
2
2
  import type { SanitizedConfig } from '../config/types.js';
3
- import type { PayloadRequest } from '../types/index.js';
3
+ import type { PayloadRequestWithData } from '../types/index.js';
4
4
  import type { FileToSave } from './types.js';
5
5
  type Args = {
6
6
  collectionConfig: SanitizedCollectionConfig;
@@ -8,7 +8,7 @@ type Args = {
8
8
  doc: Record<string, unknown>;
9
9
  files?: FileToSave[];
10
10
  overrideDelete: boolean;
11
- req: PayloadRequest;
11
+ req: PayloadRequestWithData;
12
12
  };
13
13
  export declare const deleteAssociatedFiles: (args: Args) => Promise<void>;
14
14
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"deleteAssociatedFiles.d.ts","sourceRoot":"","sources":["../../src/uploads/deleteAssociatedFiles.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EAAY,UAAU,EAAE,MAAM,YAAY,CAAA;AAKtD,KAAK,IAAI,GAAG;IACV,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,MAAM,EAAE,eAAe,CAAA;IACvB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B,KAAK,CAAC,EAAE,UAAU,EAAE,CAAA;IACpB,cAAc,EAAE,OAAO,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAwC/D,CAAA"}
1
+ {"version":3,"file":"deleteAssociatedFiles.d.ts","sourceRoot":"","sources":["../../src/uploads/deleteAssociatedFiles.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,KAAK,EAAY,UAAU,EAAE,MAAM,YAAY,CAAA;AAKtD,KAAK,IAAI,GAAG;IACV,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,MAAM,EAAE,eAAe,CAAA;IACvB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B,KAAK,CAAC,EAAE,UAAU,EAAE,CAAA;IACpB,cAAc,EAAE,OAAO,CAAA;IACvB,GAAG,EAAE,sBAAsB,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAwC/D,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/uploads/deleteAssociatedFiles.ts"],"sourcesContent":["import fs from 'fs'\n\nimport type { SanitizedCollectionConfig } from '../collections/config/types.js'\nimport type { SanitizedConfig } from '../config/types.js'\nimport type { PayloadRequest } from '../types/index.js'\nimport type { FileData, FileToSave } from './types.js'\n\nimport { ErrorDeletingFile } from '../errors/index.js'\nimport fileExists from './fileExists.js'\n\ntype Args = {\n collectionConfig: SanitizedCollectionConfig\n config: SanitizedConfig\n doc: Record<string, unknown>\n files?: FileToSave[]\n overrideDelete: boolean\n req: PayloadRequest\n}\n\nexport const deleteAssociatedFiles: (args: Args) => Promise<void> = async ({\n collectionConfig,\n doc,\n files = [],\n overrideDelete,\n req,\n}) => {\n if (!collectionConfig.upload) return\n if (overrideDelete || files.length > 0) {\n const { staticDir: staticPath } = collectionConfig.upload\n\n const fileToDelete = `${staticPath}/${doc.filename as string}`\n\n try {\n if (await fileExists(fileToDelete)) {\n fs.unlinkSync(fileToDelete)\n }\n } catch (err) {\n throw new ErrorDeletingFile(req.t)\n }\n\n if (doc.sizes) {\n const sizes: FileData[] = Object.values(doc.sizes)\n // Since forEach will not wait until unlink is finished it could\n // happen that two operations will try to delete the same file.\n // To avoid this it is recommended to use \"sync\" instead\n // eslint-disable-next-line no-restricted-syntax\n for (const size of sizes) {\n const sizeToDelete = `${staticPath}/${size.filename}`\n try {\n // eslint-disable-next-line no-await-in-loop\n if (await fileExists(sizeToDelete)) {\n fs.unlinkSync(sizeToDelete)\n }\n } catch (err) {\n throw new ErrorDeletingFile(req.t)\n }\n }\n }\n }\n}\n"],"names":["fs","ErrorDeletingFile","fileExists","deleteAssociatedFiles","collectionConfig","doc","files","overrideDelete","req","upload","length","staticDir","staticPath","fileToDelete","filename","unlinkSync","err","t","sizes","Object","values","size","sizeToDelete"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,QAAQ,KAAI;AAOnB,SAASC,iBAAiB,QAAQ,qBAAoB;AACtD,OAAOC,gBAAgB,kBAAiB;AAWxC,OAAO,MAAMC,wBAAuD,OAAO,EACzEC,gBAAgB,EAChBC,GAAG,EACHC,QAAQ,EAAE,EACVC,cAAc,EACdC,GAAG,EACJ;IACC,IAAI,CAACJ,iBAAiBK,MAAM,EAAE;IAC9B,IAAIF,kBAAkBD,MAAMI,MAAM,GAAG,GAAG;QACtC,MAAM,EAAEC,WAAWC,UAAU,EAAE,GAAGR,iBAAiBK,MAAM;QAEzD,MAAMI,eAAe,CAAC,EAAED,WAAW,CAAC,EAAEP,IAAIS,QAAQ,CAAW,CAAC;QAE9D,IAAI;YACF,IAAI,MAAMZ,WAAWW,eAAe;gBAClCb,GAAGe,UAAU,CAACF;YAChB;QACF,EAAE,OAAOG,KAAK;YACZ,MAAM,IAAIf,kBAAkBO,IAAIS,CAAC;QACnC;QAEA,IAAIZ,IAAIa,KAAK,EAAE;YACb,MAAMA,QAAoBC,OAAOC,MAAM,CAACf,IAAIa,KAAK;YACjD,gEAAgE;YAChE,+DAA+D;YAC/D,wDAAwD;YACxD,gDAAgD;YAChD,KAAK,MAAMG,QAAQH,MAAO;gBACxB,MAAMI,eAAe,CAAC,EAAEV,WAAW,CAAC,EAAES,KAAKP,QAAQ,CAAC,CAAC;gBACrD,IAAI;oBACF,4CAA4C;oBAC5C,IAAI,MAAMZ,WAAWoB,eAAe;wBAClCtB,GAAGe,UAAU,CAACO;oBAChB;gBACF,EAAE,OAAON,KAAK;oBACZ,MAAM,IAAIf,kBAAkBO,IAAIS,CAAC;gBACnC;YACF;QACF;IACF;AACF,EAAC"}
1
+ {"version":3,"sources":["../../src/uploads/deleteAssociatedFiles.ts"],"sourcesContent":["import fs from 'fs'\n\nimport type { SanitizedCollectionConfig } from '../collections/config/types.js'\nimport type { SanitizedConfig } from '../config/types.js'\nimport type { PayloadRequestWithData } from '../types/index.js'\nimport type { FileData, FileToSave } from './types.js'\n\nimport { ErrorDeletingFile } from '../errors/index.js'\nimport fileExists from './fileExists.js'\n\ntype Args = {\n collectionConfig: SanitizedCollectionConfig\n config: SanitizedConfig\n doc: Record<string, unknown>\n files?: FileToSave[]\n overrideDelete: boolean\n req: PayloadRequestWithData\n}\n\nexport const deleteAssociatedFiles: (args: Args) => Promise<void> = async ({\n collectionConfig,\n doc,\n files = [],\n overrideDelete,\n req,\n}) => {\n if (!collectionConfig.upload) return\n if (overrideDelete || files.length > 0) {\n const { staticDir: staticPath } = collectionConfig.upload\n\n const fileToDelete = `${staticPath}/${doc.filename as string}`\n\n try {\n if (await fileExists(fileToDelete)) {\n fs.unlinkSync(fileToDelete)\n }\n } catch (err) {\n throw new ErrorDeletingFile(req.t)\n }\n\n if (doc.sizes) {\n const sizes: FileData[] = Object.values(doc.sizes)\n // Since forEach will not wait until unlink is finished it could\n // happen that two operations will try to delete the same file.\n // To avoid this it is recommended to use \"sync\" instead\n // eslint-disable-next-line no-restricted-syntax\n for (const size of sizes) {\n const sizeToDelete = `${staticPath}/${size.filename}`\n try {\n // eslint-disable-next-line no-await-in-loop\n if (await fileExists(sizeToDelete)) {\n fs.unlinkSync(sizeToDelete)\n }\n } catch (err) {\n throw new ErrorDeletingFile(req.t)\n }\n }\n }\n }\n}\n"],"names":["fs","ErrorDeletingFile","fileExists","deleteAssociatedFiles","collectionConfig","doc","files","overrideDelete","req","upload","length","staticDir","staticPath","fileToDelete","filename","unlinkSync","err","t","sizes","Object","values","size","sizeToDelete"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,QAAQ,KAAI;AAOnB,SAASC,iBAAiB,QAAQ,qBAAoB;AACtD,OAAOC,gBAAgB,kBAAiB;AAWxC,OAAO,MAAMC,wBAAuD,OAAO,EACzEC,gBAAgB,EAChBC,GAAG,EACHC,QAAQ,EAAE,EACVC,cAAc,EACdC,GAAG,EACJ;IACC,IAAI,CAACJ,iBAAiBK,MAAM,EAAE;IAC9B,IAAIF,kBAAkBD,MAAMI,MAAM,GAAG,GAAG;QACtC,MAAM,EAAEC,WAAWC,UAAU,EAAE,GAAGR,iBAAiBK,MAAM;QAEzD,MAAMI,eAAe,CAAC,EAAED,WAAW,CAAC,EAAEP,IAAIS,QAAQ,CAAW,CAAC;QAE9D,IAAI;YACF,IAAI,MAAMZ,WAAWW,eAAe;gBAClCb,GAAGe,UAAU,CAACF;YAChB;QACF,EAAE,OAAOG,KAAK;YACZ,MAAM,IAAIf,kBAAkBO,IAAIS,CAAC;QACnC;QAEA,IAAIZ,IAAIa,KAAK,EAAE;YACb,MAAMA,QAAoBC,OAAOC,MAAM,CAACf,IAAIa,KAAK;YACjD,gEAAgE;YAChE,+DAA+D;YAC/D,wDAAwD;YACxD,gDAAgD;YAChD,KAAK,MAAMG,QAAQH,MAAO;gBACxB,MAAMI,eAAe,CAAC,EAAEV,WAAW,CAAC,EAAES,KAAKP,QAAQ,CAAC,CAAC;gBACrD,IAAI;oBACF,4CAA4C;oBAC5C,IAAI,MAAMZ,WAAWoB,eAAe;wBAClCtB,GAAGe,UAAU,CAACO;oBAChB;gBACF,EAAE,OAAON,KAAK;oBACZ,MAAM,IAAIf,kBAAkBO,IAAIS,CAAC;gBACnC;YACF;QACF;IACF;AACF,EAAC"}
@@ -1,9 +1,9 @@
1
- import type { PayloadRequest } from '../types/index.js';
1
+ import type { PayloadRequestWithData } from '../types/index.js';
2
2
  type Args = {
3
3
  collectionSlug: string;
4
4
  filename: string;
5
5
  path: string;
6
- req: PayloadRequest;
6
+ req: PayloadRequestWithData;
7
7
  };
8
8
  declare const docWithFilenameExists: ({ collectionSlug, filename, req }: Args) => Promise<boolean>;
9
9
  export default docWithFilenameExists;
@@ -1 +1 @@
1
- {"version":3,"file":"docWithFilenameExists.d.ts","sourceRoot":"","sources":["../../src/uploads/docWithFilenameExists.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAEvD,KAAK,IAAI,GAAG;IACV,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,QAAA,MAAM,qBAAqB,sCAA6C,IAAI,KAAG,QAAQ,OAAO,CAa7F,CAAA;AAED,eAAe,qBAAqB,CAAA"}
1
+ {"version":3,"file":"docWithFilenameExists.d.ts","sourceRoot":"","sources":["../../src/uploads/docWithFilenameExists.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE/D,KAAK,IAAI,GAAG;IACV,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,sBAAsB,CAAA;CAC5B,CAAA;AAED,QAAA,MAAM,qBAAqB,sCAA6C,IAAI,KAAG,QAAQ,OAAO,CAa7F,CAAA;AAED,eAAe,qBAAqB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/uploads/docWithFilenameExists.ts"],"sourcesContent":["import type { PayloadRequest } from '../types/index.js'\n\ntype Args = {\n collectionSlug: string\n filename: string\n path: string\n req: PayloadRequest\n}\n\nconst docWithFilenameExists = async ({ collectionSlug, filename, req }: Args): Promise<boolean> => {\n const doc = await req.payload.db.findOne({\n collection: collectionSlug,\n req,\n where: {\n filename: {\n equals: filename,\n },\n },\n })\n if (doc) return true\n\n return false\n}\n\nexport default docWithFilenameExists\n"],"names":["docWithFilenameExists","collectionSlug","filename","req","doc","payload","db","findOne","collection","where","equals"],"rangeMappings":";;;;;;;;;;;;;","mappings":"AASA,MAAMA,wBAAwB,OAAO,EAAEC,cAAc,EAAEC,QAAQ,EAAEC,GAAG,EAAQ;IAC1E,MAAMC,MAAM,MAAMD,IAAIE,OAAO,CAACC,EAAE,CAACC,OAAO,CAAC;QACvCC,YAAYP;QACZE;QACAM,OAAO;YACLP,UAAU;gBACRQ,QAAQR;YACV;QACF;IACF;IACA,IAAIE,KAAK,OAAO;IAEhB,OAAO;AACT;AAEA,eAAeJ,sBAAqB"}
1
+ {"version":3,"sources":["../../src/uploads/docWithFilenameExists.ts"],"sourcesContent":["import type { PayloadRequestWithData } from '../types/index.js'\n\ntype Args = {\n collectionSlug: string\n filename: string\n path: string\n req: PayloadRequestWithData\n}\n\nconst docWithFilenameExists = async ({ collectionSlug, filename, req }: Args): Promise<boolean> => {\n const doc = await req.payload.db.findOne({\n collection: collectionSlug,\n req,\n where: {\n filename: {\n equals: filename,\n },\n },\n })\n if (doc) return true\n\n return false\n}\n\nexport default docWithFilenameExists\n"],"names":["docWithFilenameExists","collectionSlug","filename","req","doc","payload","db","findOne","collection","where","equals"],"rangeMappings":";;;;;;;;;;;;;","mappings":"AASA,MAAMA,wBAAwB,OAAO,EAAEC,cAAc,EAAEC,QAAQ,EAAEC,GAAG,EAAQ;IAC1E,MAAMC,MAAM,MAAMD,IAAIE,OAAO,CAACC,EAAE,CAACC,OAAO,CAAC;QACvCC,YAAYP;QACZE;QACAM,OAAO;YACLP,UAAU;gBACRQ,QAAQR;YACV;QACF;IACF;IACA,IAAIE,KAAK,OAAO;IAEhB,OAAO;AACT;AAEA,eAAeJ,sBAAqB"}
@@ -1,13 +1,13 @@
1
1
  import type { Collection } from '../collections/config/types.js';
2
2
  import type { SanitizedConfig } from '../config/types.js';
3
- import type { PayloadRequest } from '../types/index.js';
3
+ import type { PayloadRequestWithData } from '../types/index.js';
4
4
  import type { FileToSave } from './types.js';
5
5
  type Args<T> = {
6
6
  collection: Collection;
7
7
  config: SanitizedConfig;
8
8
  data: T;
9
9
  overwriteExistingFiles?: boolean;
10
- req: PayloadRequest;
10
+ req: PayloadRequestWithData;
11
11
  throwOnMissingFile?: boolean;
12
12
  };
13
13
  type Result<T> = Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"generateFileData.d.ts","sourceRoot":"","sources":["../../src/uploads/generateFileData.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EAAY,UAAU,EAAmB,MAAM,YAAY,CAAA;AAYvE,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,GAAG,EAAE,cAAc,CAAA;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAED,KAAK,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB,CAAC,CAAA;AAEF,eAAO,MAAM,gBAAgB,4GAM1B,KAAK,CAAC,CAAC,KAAG,OAAO,CAAC,CA2NpB,CAAA"}
1
+ {"version":3,"file":"generateFileData.d.ts","sourceRoot":"","sources":["../../src/uploads/generateFileData.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,KAAK,EAAY,UAAU,EAAmB,MAAM,YAAY,CAAA;AAYvE,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,GAAG,EAAE,sBAAsB,CAAA;IAC3B,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAED,KAAK,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB,CAAC,CAAA;AAEF,eAAO,MAAM,gBAAgB,4GAM1B,KAAK,CAAC,CAAC,KAAG,OAAO,CAAC,CA+NpB,CAAA"}
@@ -3,7 +3,7 @@ const { fromBuffer } = fileType;
3
3
  import fs from 'fs';
4
4
  import mkdirp from 'mkdirp';
5
5
  import sanitize from 'sanitize-filename';
6
- import { FileUploadError, MissingFile } from '../errors/index.js';
6
+ import { FileRetrievalError, FileUploadError, MissingFile } from '../errors/index.js';
7
7
  import canResizeImage from './canResizeImage.js';
8
8
  import cropImage from './cropImage.js';
9
9
  import { getExternalFile } from './getExternalFile.js';
@@ -35,12 +35,13 @@ export const generateFileData = async ({ collection: { config: collectionConfig
35
35
  } else if (filename && url) {
36
36
  file = await getExternalFile({
37
37
  data: data,
38
- req
38
+ req,
39
+ uploadConfig: collectionConfig.upload
39
40
  });
40
41
  overwriteExistingFiles = true;
41
42
  }
42
43
  } catch (err) {
43
- throw new FileUploadError(req.t);
44
+ throw new FileRetrievalError(req.t, err instanceof Error ? err.message : undefined);
44
45
  }
45
46
  }
46
47
  if (!file) {
@@ -88,7 +89,7 @@ export const generateFileData = async ({ collection: { config: collectionConfig
88
89
  }
89
90
  }
90
91
  if (fileSupportsResize || isImage(file.mimetype)) {
91
- dimensions = getImageSize(file);
92
+ dimensions = await getImageSize(file);
92
93
  fileData.width = dimensions.width;
93
94
  fileData.height = dimensions.height;
94
95
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/uploads/generateFileData.ts"],"sourcesContent":["import type { OutputInfo, Sharp, SharpOptions } from 'sharp'\n\nimport fileType from 'file-type'\nconst { fromBuffer } = fileType\nimport fs from 'fs'\nimport mkdirp from 'mkdirp'\nimport sanitize from 'sanitize-filename'\n\nimport type { Collection } from '../collections/config/types.js'\nimport type { SanitizedConfig } from '../config/types.js'\nimport type { PayloadRequest } from '../types/index.js'\nimport type { FileData, FileToSave, ProbedImageSize } from './types.js'\n\nimport { FileUploadError, MissingFile } from '../errors/index.js'\nimport canResizeImage from './canResizeImage.js'\nimport cropImage from './cropImage.js'\nimport { getExternalFile } from './getExternalFile.js'\nimport { getFileByPath } from './getFileByPath.js'\nimport { getImageSize } from './getImageSize.js'\nimport getSafeFileName from './getSafeFilename.js'\nimport resizeAndTransformImageSizes from './imageResizer.js'\nimport isImage from './isImage.js'\n\ntype Args<T> = {\n collection: Collection\n config: SanitizedConfig\n data: T\n overwriteExistingFiles?: boolean\n req: PayloadRequest\n throwOnMissingFile?: boolean\n}\n\ntype Result<T> = Promise<{\n data: T\n files: FileToSave[]\n}>\n\nexport const generateFileData = async <T>({\n collection: { config: collectionConfig },\n data,\n overwriteExistingFiles,\n req,\n throwOnMissingFile,\n}: Args<T>): Result<T> => {\n if (!collectionConfig.upload) {\n return {\n data,\n files: [],\n }\n }\n\n const { sharp } = req.payload.config\n\n let file = req.file\n\n const uploadEdits = req.query['uploadEdits'] || {}\n\n const { disableLocalStorage, formatOptions, imageSizes, resizeOptions, staticDir, trimOptions } =\n collectionConfig.upload\n\n const staticPath = staticDir\n\n if (!file && uploadEdits && data) {\n const { filename, url } = data as FileData\n\n try {\n if (url && url.startsWith('/') && !disableLocalStorage) {\n const filePath = `${staticPath}/${filename}`\n const response = await getFileByPath(filePath)\n file = response\n overwriteExistingFiles = true\n } else if (filename && url) {\n file = await getExternalFile({ data: data as FileData, req })\n overwriteExistingFiles = true\n }\n } catch (err) {\n throw new FileUploadError(req.t)\n }\n }\n\n if (!file) {\n if (throwOnMissingFile) throw new MissingFile(req.t)\n\n return {\n data,\n files: [],\n }\n }\n\n if (!disableLocalStorage) {\n mkdirp.sync(staticPath)\n }\n\n let newData = data\n const filesToSave: FileToSave[] = []\n const fileData: Partial<FileData> = {}\n const fileIsAnimated = file.mimetype === 'image/gif' || file.mimetype === 'image/webp'\n const cropData =\n typeof uploadEdits === 'object' && 'crop' in uploadEdits ? uploadEdits.crop : undefined\n\n try {\n const fileSupportsResize = canResizeImage(file.mimetype)\n let fsSafeName: string\n let sharpFile: Sharp | undefined\n let dimensions: ProbedImageSize | undefined\n let fileBuffer: { data: Buffer; info: OutputInfo }\n let ext\n let mime: string\n const fileHasAdjustments =\n fileSupportsResize &&\n Boolean(resizeOptions || formatOptions || trimOptions || file.tempFilePath)\n\n const sharpOptions: SharpOptions = {}\n\n if (fileIsAnimated) sharpOptions.animated = true\n\n if (fileHasAdjustments && sharp) {\n if (file.tempFilePath) {\n sharpFile = sharp(file.tempFilePath, sharpOptions).rotate() // pass rotate() to auto-rotate based on EXIF data. https://github.com/payloadcms/payload/pull/3081\n } else {\n sharpFile = sharp(file.data, sharpOptions).rotate() // pass rotate() to auto-rotate based on EXIF data. https://github.com/payloadcms/payload/pull/3081\n }\n\n if (resizeOptions) {\n sharpFile = sharpFile.resize(resizeOptions)\n }\n if (formatOptions) {\n sharpFile = sharpFile.toFormat(formatOptions.format, formatOptions.options)\n }\n if (trimOptions) {\n sharpFile = sharpFile.trim(trimOptions)\n }\n }\n\n if (fileSupportsResize || isImage(file.mimetype)) {\n dimensions = getImageSize(file)\n fileData.width = dimensions.width\n fileData.height = dimensions.height\n }\n\n if (sharpFile) {\n const metadata = await sharpFile.metadata()\n fileBuffer = await sharpFile.toBuffer({ resolveWithObject: true })\n ;({ ext, mime } = await fromBuffer(fileBuffer.data)) // This is getting an incorrect gif height back.\n fileData.width = fileBuffer.info.width\n fileData.height = fileBuffer.info.height\n fileData.filesize = fileBuffer.info.size\n\n // Animated GIFs + WebP aggregate the height from every frame, so we need to use divide by number of pages\n if (metadata.pages) {\n fileData.height = fileBuffer.info.height / metadata.pages\n fileData.filesize = fileBuffer.data.length\n }\n } else {\n mime = file.mimetype\n fileData.filesize = file.size\n\n if (file.name.includes('.')) {\n ext = file.name.split('.').pop()\n } else {\n ext = ''\n }\n }\n\n // Adust SVG mime type. fromBuffer modifies it.\n if (mime === 'application/xml' && ext === 'svg') mime = 'image/svg+xml'\n fileData.mimeType = mime\n\n const baseFilename = sanitize(file.name.substring(0, file.name.lastIndexOf('.')) || file.name)\n fsSafeName = `${baseFilename}${ext ? `.${ext}` : ''}`\n\n if (!overwriteExistingFiles) {\n fsSafeName = await getSafeFileName({\n collectionSlug: collectionConfig.slug,\n desiredFilename: fsSafeName,\n req,\n staticPath,\n })\n }\n\n fileData.filename = fsSafeName\n let fileForResize = file\n\n if (cropData && sharp) {\n const { data: croppedImage, info } = await cropImage({ cropData, dimensions, file, sharp })\n\n filesToSave.push({\n buffer: croppedImage,\n path: `${staticPath}/${fsSafeName}`,\n })\n\n fileForResize = {\n ...file,\n data: croppedImage,\n size: info.size,\n }\n fileData.width = info.width\n fileData.height = info.height\n fileData.filesize = info.size\n\n if (file.tempFilePath) {\n await fs.promises.writeFile(file.tempFilePath, croppedImage) // write fileBuffer to the temp path\n } else {\n req.file = fileForResize\n }\n } else {\n filesToSave.push({\n buffer: fileBuffer?.data || file.data,\n path: `${staticPath}/${fsSafeName}`,\n })\n\n // If using temp files and the image is being resized, write the file to the temp path\n if (fileBuffer?.data || file.data.length > 0) {\n if (file.tempFilePath) {\n await fs.promises.writeFile(file.tempFilePath, fileBuffer?.data || file.data) // write fileBuffer to the temp path\n } else {\n // Assign the _possibly modified_ file to the request object\n req.file = {\n ...file,\n data: fileBuffer?.data || file.data,\n size: fileBuffer?.info.size,\n }\n }\n }\n }\n\n if (Array.isArray(imageSizes) && fileSupportsResize && sharp) {\n req.payloadUploadSizes = {}\n const { sizeData, sizesToSave } = await resizeAndTransformImageSizes({\n config: collectionConfig,\n dimensions: !cropData\n ? dimensions\n : {\n ...dimensions,\n height: fileData.height,\n width: fileData.width,\n },\n file: fileForResize,\n mimeType: fileData.mimeType,\n req,\n savedFilename: fsSafeName || file.name,\n sharp,\n staticPath,\n })\n\n fileData.sizes = sizeData\n filesToSave.push(...sizesToSave)\n }\n } catch (err) {\n console.error(err)\n throw new FileUploadError(req.t)\n }\n\n newData = {\n ...newData,\n ...fileData,\n }\n\n return {\n data: newData,\n files: filesToSave,\n }\n}\n"],"names":["fileType","fromBuffer","fs","mkdirp","sanitize","FileUploadError","MissingFile","canResizeImage","cropImage","getExternalFile","getFileByPath","getImageSize","getSafeFileName","resizeAndTransformImageSizes","isImage","generateFileData","collection","config","collectionConfig","data","overwriteExistingFiles","req","throwOnMissingFile","upload","files","sharp","payload","file","uploadEdits","query","disableLocalStorage","formatOptions","imageSizes","resizeOptions","staticDir","trimOptions","staticPath","filename","url","startsWith","filePath","response","err","t","sync","newData","filesToSave","fileData","fileIsAnimated","mimetype","cropData","crop","undefined","fileSupportsResize","fsSafeName","sharpFile","dimensions","fileBuffer","ext","mime","fileHasAdjustments","Boolean","tempFilePath","sharpOptions","animated","rotate","resize","toFormat","format","options","trim","width","height","metadata","toBuffer","resolveWithObject","info","filesize","size","pages","length","name","includes","split","pop","mimeType","baseFilename","substring","lastIndexOf","collectionSlug","slug","desiredFilename","fileForResize","croppedImage","push","buffer","path","promises","writeFile","Array","isArray","payloadUploadSizes","sizeData","sizesToSave","savedFilename","sizes","console","error"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../src/uploads/generateFileData.ts"],"sourcesContent":["import type { OutputInfo, Sharp, SharpOptions } from 'sharp'\n\nimport fileType from 'file-type'\nconst { fromBuffer } = fileType\nimport fs from 'fs'\nimport mkdirp from 'mkdirp'\nimport sanitize from 'sanitize-filename'\n\nimport type { Collection } from '../collections/config/types.js'\nimport type { SanitizedConfig } from '../config/types.js'\nimport type { PayloadRequestWithData } from '../types/index.js'\nimport type { FileData, FileToSave, ProbedImageSize } from './types.js'\n\nimport { FileRetrievalError, FileUploadError, MissingFile } from '../errors/index.js'\nimport canResizeImage from './canResizeImage.js'\nimport cropImage from './cropImage.js'\nimport { getExternalFile } from './getExternalFile.js'\nimport { getFileByPath } from './getFileByPath.js'\nimport { getImageSize } from './getImageSize.js'\nimport getSafeFileName from './getSafeFilename.js'\nimport resizeAndTransformImageSizes from './imageResizer.js'\nimport isImage from './isImage.js'\n\ntype Args<T> = {\n collection: Collection\n config: SanitizedConfig\n data: T\n overwriteExistingFiles?: boolean\n req: PayloadRequestWithData\n throwOnMissingFile?: boolean\n}\n\ntype Result<T> = Promise<{\n data: T\n files: FileToSave[]\n}>\n\nexport const generateFileData = async <T>({\n collection: { config: collectionConfig },\n data,\n overwriteExistingFiles,\n req,\n throwOnMissingFile,\n}: Args<T>): Result<T> => {\n if (!collectionConfig.upload) {\n return {\n data,\n files: [],\n }\n }\n\n const { sharp } = req.payload.config\n\n let file = req.file\n\n const uploadEdits = req.query['uploadEdits'] || {}\n\n const { disableLocalStorage, formatOptions, imageSizes, resizeOptions, staticDir, trimOptions } =\n collectionConfig.upload\n\n const staticPath = staticDir\n\n if (!file && uploadEdits && data) {\n const { filename, url } = data as FileData\n\n try {\n if (url && url.startsWith('/') && !disableLocalStorage) {\n const filePath = `${staticPath}/${filename}`\n const response = await getFileByPath(filePath)\n file = response\n overwriteExistingFiles = true\n } else if (filename && url) {\n file = await getExternalFile({\n data: data as FileData,\n req,\n uploadConfig: collectionConfig.upload,\n })\n overwriteExistingFiles = true\n }\n } catch (err: unknown) {\n throw new FileRetrievalError(req.t, err instanceof Error ? err.message : undefined)\n }\n }\n\n if (!file) {\n if (throwOnMissingFile) throw new MissingFile(req.t)\n\n return {\n data,\n files: [],\n }\n }\n\n if (!disableLocalStorage) {\n mkdirp.sync(staticPath)\n }\n\n let newData = data\n const filesToSave: FileToSave[] = []\n const fileData: Partial<FileData> = {}\n const fileIsAnimated = file.mimetype === 'image/gif' || file.mimetype === 'image/webp'\n const cropData =\n typeof uploadEdits === 'object' && 'crop' in uploadEdits ? uploadEdits.crop : undefined\n\n try {\n const fileSupportsResize = canResizeImage(file.mimetype)\n let fsSafeName: string\n let sharpFile: Sharp | undefined\n let dimensions: ProbedImageSize | undefined\n let fileBuffer: { data: Buffer; info: OutputInfo }\n let ext\n let mime: string\n const fileHasAdjustments =\n fileSupportsResize &&\n Boolean(resizeOptions || formatOptions || trimOptions || file.tempFilePath)\n\n const sharpOptions: SharpOptions = {}\n\n if (fileIsAnimated) sharpOptions.animated = true\n\n if (fileHasAdjustments && sharp) {\n if (file.tempFilePath) {\n sharpFile = sharp(file.tempFilePath, sharpOptions).rotate() // pass rotate() to auto-rotate based on EXIF data. https://github.com/payloadcms/payload/pull/3081\n } else {\n sharpFile = sharp(file.data, sharpOptions).rotate() // pass rotate() to auto-rotate based on EXIF data. https://github.com/payloadcms/payload/pull/3081\n }\n\n if (resizeOptions) {\n sharpFile = sharpFile.resize(resizeOptions)\n }\n if (formatOptions) {\n sharpFile = sharpFile.toFormat(formatOptions.format, formatOptions.options)\n }\n if (trimOptions) {\n sharpFile = sharpFile.trim(trimOptions)\n }\n }\n\n if (fileSupportsResize || isImage(file.mimetype)) {\n dimensions = await getImageSize(file)\n fileData.width = dimensions.width\n fileData.height = dimensions.height\n }\n\n if (sharpFile) {\n const metadata = await sharpFile.metadata()\n fileBuffer = await sharpFile.toBuffer({ resolveWithObject: true })\n ;({ ext, mime } = await fromBuffer(fileBuffer.data)) // This is getting an incorrect gif height back.\n fileData.width = fileBuffer.info.width\n fileData.height = fileBuffer.info.height\n fileData.filesize = fileBuffer.info.size\n\n // Animated GIFs + WebP aggregate the height from every frame, so we need to use divide by number of pages\n if (metadata.pages) {\n fileData.height = fileBuffer.info.height / metadata.pages\n fileData.filesize = fileBuffer.data.length\n }\n } else {\n mime = file.mimetype\n fileData.filesize = file.size\n\n if (file.name.includes('.')) {\n ext = file.name.split('.').pop()\n } else {\n ext = ''\n }\n }\n\n // Adust SVG mime type. fromBuffer modifies it.\n if (mime === 'application/xml' && ext === 'svg') mime = 'image/svg+xml'\n fileData.mimeType = mime\n\n const baseFilename = sanitize(file.name.substring(0, file.name.lastIndexOf('.')) || file.name)\n fsSafeName = `${baseFilename}${ext ? `.${ext}` : ''}`\n\n if (!overwriteExistingFiles) {\n fsSafeName = await getSafeFileName({\n collectionSlug: collectionConfig.slug,\n desiredFilename: fsSafeName,\n req,\n staticPath,\n })\n }\n\n fileData.filename = fsSafeName\n let fileForResize = file\n\n if (cropData && sharp) {\n const { data: croppedImage, info } = await cropImage({ cropData, dimensions, file, sharp })\n\n filesToSave.push({\n buffer: croppedImage,\n path: `${staticPath}/${fsSafeName}`,\n })\n\n fileForResize = {\n ...file,\n data: croppedImage,\n size: info.size,\n }\n fileData.width = info.width\n fileData.height = info.height\n fileData.filesize = info.size\n\n if (file.tempFilePath) {\n await fs.promises.writeFile(file.tempFilePath, croppedImage) // write fileBuffer to the temp path\n } else {\n req.file = fileForResize\n }\n } else {\n filesToSave.push({\n buffer: fileBuffer?.data || file.data,\n path: `${staticPath}/${fsSafeName}`,\n })\n\n // If using temp files and the image is being resized, write the file to the temp path\n if (fileBuffer?.data || file.data.length > 0) {\n if (file.tempFilePath) {\n await fs.promises.writeFile(file.tempFilePath, fileBuffer?.data || file.data) // write fileBuffer to the temp path\n } else {\n // Assign the _possibly modified_ file to the request object\n req.file = {\n ...file,\n data: fileBuffer?.data || file.data,\n size: fileBuffer?.info.size,\n }\n }\n }\n }\n\n if (Array.isArray(imageSizes) && fileSupportsResize && sharp) {\n req.payloadUploadSizes = {}\n const { sizeData, sizesToSave } = await resizeAndTransformImageSizes({\n config: collectionConfig,\n dimensions: !cropData\n ? dimensions\n : {\n ...dimensions,\n height: fileData.height,\n width: fileData.width,\n },\n file: fileForResize,\n mimeType: fileData.mimeType,\n req,\n savedFilename: fsSafeName || file.name,\n sharp,\n staticPath,\n })\n\n fileData.sizes = sizeData\n filesToSave.push(...sizesToSave)\n }\n } catch (err) {\n console.error(err)\n throw new FileUploadError(req.t)\n }\n\n newData = {\n ...newData,\n ...fileData,\n }\n\n return {\n data: newData,\n files: filesToSave,\n }\n}\n"],"names":["fileType","fromBuffer","fs","mkdirp","sanitize","FileRetrievalError","FileUploadError","MissingFile","canResizeImage","cropImage","getExternalFile","getFileByPath","getImageSize","getSafeFileName","resizeAndTransformImageSizes","isImage","generateFileData","collection","config","collectionConfig","data","overwriteExistingFiles","req","throwOnMissingFile","upload","files","sharp","payload","file","uploadEdits","query","disableLocalStorage","formatOptions","imageSizes","resizeOptions","staticDir","trimOptions","staticPath","filename","url","startsWith","filePath","response","uploadConfig","err","t","Error","message","undefined","sync","newData","filesToSave","fileData","fileIsAnimated","mimetype","cropData","crop","fileSupportsResize","fsSafeName","sharpFile","dimensions","fileBuffer","ext","mime","fileHasAdjustments","Boolean","tempFilePath","sharpOptions","animated","rotate","resize","toFormat","format","options","trim","width","height","metadata","toBuffer","resolveWithObject","info","filesize","size","pages","length","name","includes","split","pop","mimeType","baseFilename","substring","lastIndexOf","collectionSlug","slug","desiredFilename","fileForResize","croppedImage","push","buffer","path","promises","writeFile","Array","isArray","payloadUploadSizes","sizeData","sizesToSave","savedFilename","sizes","console","error"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1,9 +1,10 @@
1
- import type { PayloadRequest } from '../types/index.ts';
2
- import type { File, FileData } from './types.js';
1
+ import type { PayloadRequestWithData } from '../types/index.js';
2
+ import type { File, FileData, UploadConfig } from './types.js';
3
3
  type Args = {
4
4
  data: FileData;
5
- req: PayloadRequest;
5
+ req: PayloadRequestWithData;
6
+ uploadConfig: UploadConfig;
6
7
  };
7
- export declare const getExternalFile: ({ data, req }: Args) => Promise<File>;
8
+ export declare const getExternalFile: ({ data, req, uploadConfig }: Args) => Promise<File>;
8
9
  export {};
9
10
  //# sourceMappingURL=getExternalFile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getExternalFile.d.ts","sourceRoot":"","sources":["../../src/uploads/getExternalFile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAIhD,KAAK,IAAI,GAAG;IACV,IAAI,EAAE,QAAQ,CAAA;IACd,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AACD,eAAO,MAAM,eAAe,kBAAyB,IAAI,KAAG,QAAQ,IAAI,CA4BvE,CAAA"}
1
+ {"version":3,"file":"getExternalFile.d.ts","sourceRoot":"","sources":["../../src/uploads/getExternalFile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAI9D,KAAK,IAAI,GAAG;IACV,IAAI,EAAE,QAAQ,CAAA;IACd,GAAG,EAAE,sBAAsB,CAAA;IAC3B,YAAY,EAAE,YAAY,CAAA;CAC3B,CAAA;AACD,eAAO,MAAM,eAAe,gCAAuC,IAAI,KAAG,QAAQ,IAAI,CAiCrF,CAAA"}
@@ -1,14 +1,18 @@
1
1
  import { APIError } from '../errors/index.js';
2
- export const getExternalFile = async ({ data, req })=>{
3
- const baseUrl = req.origin || `${req.protocol}://${req.host}`;
2
+ export const getExternalFile = async ({ data, req, uploadConfig })=>{
4
3
  const { filename, url } = data;
5
4
  if (typeof url === 'string') {
6
- const fileURL = `${baseUrl}${url}`;
5
+ let fileURL = url;
6
+ if (!url.startsWith('http')) {
7
+ const baseUrl = req.headers.get('origin') || `${req.protocol}://${req.headers.get('host')}`;
8
+ fileURL = `${baseUrl}${url}`;
9
+ }
10
+ const headers = uploadConfig.externalFileHeaderFilter ? uploadConfig.externalFileHeaderFilter(Object.fromEntries(new Headers(req.headers))) : {
11
+ cookie: req.headers.get('cookie')
12
+ };
7
13
  const res = await fetch(fileURL, {
8
14
  credentials: 'include',
9
- headers: {
10
- ...req.headers
11
- },
15
+ headers,
12
16
  method: 'GET'
13
17
  });
14
18
  if (!res.ok) throw new APIError(`Failed to fetch file from ${fileURL}`, res.status);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/uploads/getExternalFile.ts"],"sourcesContent":["import type { PayloadRequest } from '../types/index.ts'\nimport type { File, FileData } from './types.js'\n\nimport { APIError } from '../errors/index.js'\n\ntype Args = {\n data: FileData\n req: PayloadRequest\n}\nexport const getExternalFile = async ({ data, req }: Args): Promise<File> => {\n const baseUrl = req.origin || `${req.protocol}://${req.host}`\n const { filename, url } = data\n\n if (typeof url === 'string') {\n const fileURL = `${baseUrl}${url}`\n\n const res = await fetch(fileURL, {\n credentials: 'include',\n headers: {\n ...req.headers,\n },\n method: 'GET',\n })\n\n if (!res.ok) throw new APIError(`Failed to fetch file from ${fileURL}`, res.status)\n\n const data = await res.arrayBuffer()\n\n return {\n name: filename,\n data: Buffer.from(data),\n mimetype: res.headers.get('content-type') || undefined,\n size: Number(res.headers.get('content-length')) || 0,\n }\n }\n\n throw new APIError('Invalid file url', 400)\n}\n"],"names":["APIError","getExternalFile","data","req","baseUrl","origin","protocol","host","filename","url","fileURL","res","fetch","credentials","headers","method","ok","status","arrayBuffer","name","Buffer","from","mimetype","get","undefined","size","Number"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAGA,SAASA,QAAQ,QAAQ,qBAAoB;AAM7C,OAAO,MAAMC,kBAAkB,OAAO,EAAEC,IAAI,EAAEC,GAAG,EAAQ;IACvD,MAAMC,UAAUD,IAAIE,MAAM,IAAI,CAAC,EAAEF,IAAIG,QAAQ,CAAC,GAAG,EAAEH,IAAII,IAAI,CAAC,CAAC;IAC7D,MAAM,EAAEC,QAAQ,EAAEC,GAAG,EAAE,GAAGP;IAE1B,IAAI,OAAOO,QAAQ,UAAU;QAC3B,MAAMC,UAAU,CAAC,EAAEN,QAAQ,EAAEK,IAAI,CAAC;QAElC,MAAME,MAAM,MAAMC,MAAMF,SAAS;YAC/BG,aAAa;YACbC,SAAS;gBACP,GAAGX,IAAIW,OAAO;YAChB;YACAC,QAAQ;QACV;QAEA,IAAI,CAACJ,IAAIK,EAAE,EAAE,MAAM,IAAIhB,SAAS,CAAC,0BAA0B,EAAEU,QAAQ,CAAC,EAAEC,IAAIM,MAAM;QAElF,MAAMf,OAAO,MAAMS,IAAIO,WAAW;QAElC,OAAO;YACLC,MAAMX;YACNN,MAAMkB,OAAOC,IAAI,CAACnB;YAClBoB,UAAUX,IAAIG,OAAO,CAACS,GAAG,CAAC,mBAAmBC;YAC7CC,MAAMC,OAAOf,IAAIG,OAAO,CAACS,GAAG,CAAC,sBAAsB;QACrD;IACF;IAEA,MAAM,IAAIvB,SAAS,oBAAoB;AACzC,EAAC"}
1
+ {"version":3,"sources":["../../src/uploads/getExternalFile.ts"],"sourcesContent":["import type { PayloadRequestWithData } from '../types/index.js'\nimport type { File, FileData, UploadConfig } from './types.js'\n\nimport { APIError } from '../errors/index.js'\n\ntype Args = {\n data: FileData\n req: PayloadRequestWithData\n uploadConfig: UploadConfig\n}\nexport const getExternalFile = async ({ data, req, uploadConfig }: Args): Promise<File> => {\n const { filename, url } = data\n\n if (typeof url === 'string') {\n let fileURL = url\n if (!url.startsWith('http')) {\n const baseUrl = req.headers.get('origin') || `${req.protocol}://${req.headers.get('host')}`\n fileURL = `${baseUrl}${url}`\n }\n\n const headers = uploadConfig.externalFileHeaderFilter\n ? uploadConfig.externalFileHeaderFilter(Object.fromEntries(new Headers(req.headers)))\n : { cookie: req.headers.get('cookie') }\n\n const res = await fetch(fileURL, {\n credentials: 'include',\n headers,\n method: 'GET',\n })\n\n if (!res.ok) throw new APIError(`Failed to fetch file from ${fileURL}`, res.status)\n\n const data = await res.arrayBuffer()\n\n return {\n name: filename,\n data: Buffer.from(data),\n mimetype: res.headers.get('content-type') || undefined,\n size: Number(res.headers.get('content-length')) || 0,\n }\n }\n\n throw new APIError('Invalid file url', 400)\n}\n"],"names":["APIError","getExternalFile","data","req","uploadConfig","filename","url","fileURL","startsWith","baseUrl","headers","get","protocol","externalFileHeaderFilter","Object","fromEntries","Headers","cookie","res","fetch","credentials","method","ok","status","arrayBuffer","name","Buffer","from","mimetype","undefined","size","Number"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAGA,SAASA,QAAQ,QAAQ,qBAAoB;AAO7C,OAAO,MAAMC,kBAAkB,OAAO,EAAEC,IAAI,EAAEC,GAAG,EAAEC,YAAY,EAAQ;IACrE,MAAM,EAAEC,QAAQ,EAAEC,GAAG,EAAE,GAAGJ;IAE1B,IAAI,OAAOI,QAAQ,UAAU;QAC3B,IAAIC,UAAUD;QACd,IAAI,CAACA,IAAIE,UAAU,CAAC,SAAS;YAC3B,MAAMC,UAAUN,IAAIO,OAAO,CAACC,GAAG,CAAC,aAAa,CAAC,EAAER,IAAIS,QAAQ,CAAC,GAAG,EAAET,IAAIO,OAAO,CAACC,GAAG,CAAC,QAAQ,CAAC;YAC3FJ,UAAU,CAAC,EAAEE,QAAQ,EAAEH,IAAI,CAAC;QAC9B;QAEA,MAAMI,UAAUN,aAAaS,wBAAwB,GACjDT,aAAaS,wBAAwB,CAACC,OAAOC,WAAW,CAAC,IAAIC,QAAQb,IAAIO,OAAO,MAChF;YAAEO,QAAQd,IAAIO,OAAO,CAACC,GAAG,CAAC;QAAU;QAExC,MAAMO,MAAM,MAAMC,MAAMZ,SAAS;YAC/Ba,aAAa;YACbV;YACAW,QAAQ;QACV;QAEA,IAAI,CAACH,IAAII,EAAE,EAAE,MAAM,IAAItB,SAAS,CAAC,0BAA0B,EAAEO,QAAQ,CAAC,EAAEW,IAAIK,MAAM;QAElF,MAAMrB,OAAO,MAAMgB,IAAIM,WAAW;QAElC,OAAO;YACLC,MAAMpB;YACNH,MAAMwB,OAAOC,IAAI,CAACzB;YAClB0B,UAAUV,IAAIR,OAAO,CAACC,GAAG,CAAC,mBAAmBkB;YAC7CC,MAAMC,OAAOb,IAAIR,OAAO,CAACC,GAAG,CAAC,sBAAsB;QACrD;IACF;IAEA,MAAM,IAAIX,SAAS,oBAAoB;AACzC,EAAC"}
@@ -1,3 +1,3 @@
1
- import type { CustomPayloadRequest } from '../types/index.js';
2
- export declare const getFileByPath: (filePath: string) => Promise<CustomPayloadRequest['file']>;
1
+ import type { PayloadRequestWithData } from '../types/index.js';
2
+ export declare const getFileByPath: (filePath: string) => Promise<PayloadRequestWithData['file']>;
3
3
  //# sourceMappingURL=getFileByPath.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getFileByPath.d.ts","sourceRoot":"","sources":["../../src/uploads/getFileByPath.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAM7D,eAAO,MAAM,aAAa,aAAoB,MAAM,KAAG,QAAQ,oBAAoB,CAAC,MAAM,CAAC,CAoB1F,CAAA"}
1
+ {"version":3,"file":"getFileByPath.d.ts","sourceRoot":"","sources":["../../src/uploads/getFileByPath.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAM/D,eAAO,MAAM,aAAa,aAAoB,MAAM,KAAG,QAAQ,sBAAsB,CAAC,MAAM,CAAC,CAoB5F,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/uploads/getFileByPath.ts"],"sourcesContent":["import fileType from 'file-type'\nimport fs from 'fs'\nimport path from 'path'\nconst { fromFile } = fileType\n\nimport type { CustomPayloadRequest } from '../types/index.js'\n\nconst mimeTypeEstimate = {\n svg: 'image/svg+xml',\n}\n\nexport const getFileByPath = async (filePath: string): Promise<CustomPayloadRequest['file']> => {\n if (typeof filePath === 'string') {\n const data = fs.readFileSync(filePath)\n const mimetype = fromFile(filePath)\n const { size } = fs.statSync(filePath)\n\n const name = path.basename(filePath)\n const ext = path.extname(filePath).slice(1)\n\n const mime = (await mimetype)?.mime || mimeTypeEstimate[ext]\n\n return {\n name,\n data,\n mimetype: mime,\n size,\n }\n }\n\n return undefined\n}\n"],"names":["fileType","fs","path","fromFile","mimeTypeEstimate","svg","getFileByPath","filePath","data","readFileSync","mimetype","size","statSync","name","basename","ext","extname","slice","mime","undefined"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,cAAc,YAAW;AAChC,OAAOC,QAAQ,KAAI;AACnB,OAAOC,UAAU,OAAM;AACvB,MAAM,EAAEC,QAAQ,EAAE,GAAGH;AAIrB,MAAMI,mBAAmB;IACvBC,KAAK;AACP;AAEA,OAAO,MAAMC,gBAAgB,OAAOC;IAClC,IAAI,OAAOA,aAAa,UAAU;QAChC,MAAMC,OAAOP,GAAGQ,YAAY,CAACF;QAC7B,MAAMG,WAAWP,SAASI;QAC1B,MAAM,EAAEI,IAAI,EAAE,GAAGV,GAAGW,QAAQ,CAACL;QAE7B,MAAMM,OAAOX,KAAKY,QAAQ,CAACP;QAC3B,MAAMQ,MAAMb,KAAKc,OAAO,CAACT,UAAUU,KAAK,CAAC;QAEzC,MAAMC,OAAO,AAAC,CAAA,MAAMR,QAAO,GAAIQ,QAAQd,gBAAgB,CAACW,IAAI;QAE5D,OAAO;YACLF;YACAL;YACAE,UAAUQ;YACVP;QACF;IACF;IAEA,OAAOQ;AACT,EAAC"}
1
+ {"version":3,"sources":["../../src/uploads/getFileByPath.ts"],"sourcesContent":["import fileType from 'file-type'\nimport fs from 'fs'\nimport path from 'path'\nconst { fromFile } = fileType\n\nimport type { PayloadRequestWithData } from '../types/index.js'\n\nconst mimeTypeEstimate = {\n svg: 'image/svg+xml',\n}\n\nexport const getFileByPath = async (filePath: string): Promise<PayloadRequestWithData['file']> => {\n if (typeof filePath === 'string') {\n const data = fs.readFileSync(filePath)\n const mimetype = fromFile(filePath)\n const { size } = fs.statSync(filePath)\n\n const name = path.basename(filePath)\n const ext = path.extname(filePath).slice(1)\n\n const mime = (await mimetype)?.mime || mimeTypeEstimate[ext]\n\n return {\n name,\n data,\n mimetype: mime,\n size,\n }\n }\n\n return undefined\n}\n"],"names":["fileType","fs","path","fromFile","mimeTypeEstimate","svg","getFileByPath","filePath","data","readFileSync","mimetype","size","statSync","name","basename","ext","extname","slice","mime","undefined"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,cAAc,YAAW;AAChC,OAAOC,QAAQ,KAAI;AACnB,OAAOC,UAAU,OAAM;AACvB,MAAM,EAAEC,QAAQ,EAAE,GAAGH;AAIrB,MAAMI,mBAAmB;IACvBC,KAAK;AACP;AAEA,OAAO,MAAMC,gBAAgB,OAAOC;IAClC,IAAI,OAAOA,aAAa,UAAU;QAChC,MAAMC,OAAOP,GAAGQ,YAAY,CAACF;QAC7B,MAAMG,WAAWP,SAASI;QAC1B,MAAM,EAAEI,IAAI,EAAE,GAAGV,GAAGW,QAAQ,CAACL;QAE7B,MAAMM,OAAOX,KAAKY,QAAQ,CAACP;QAC3B,MAAMQ,MAAMb,KAAKc,OAAO,CAACT,UAAUU,KAAK,CAAC;QAEzC,MAAMC,OAAO,AAAC,CAAA,MAAMR,QAAO,GAAIQ,QAAQd,gBAAgB,CAACW,IAAI;QAE5D,OAAO;YACLF;YACAL;YACAE,UAAUQ;YACVP;QACF;IACF;IAEA,OAAOQ;AACT,EAAC"}
@@ -1,4 +1,4 @@
1
- import type { PayloadRequest } from '../types/index.js';
1
+ import type { PayloadRequestWithData } from '../types/index.js';
2
2
  import type { ProbedImageSize } from './types.js';
3
- export declare function getImageSize(file: PayloadRequest['file']): ProbedImageSize;
3
+ export declare function getImageSize(file: PayloadRequestWithData['file']): Promise<ProbedImageSize>;
4
4
  //# sourceMappingURL=getImageSize.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getImageSize.d.ts","sourceRoot":"","sources":["../../src/uploads/getImageSize.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,eAAe,CAO1E"}
1
+ {"version":3,"file":"getImageSize.d.ts","sourceRoot":"","sources":["../../src/uploads/getImageSize.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAOjD,wBAAsB,YAAY,CAAC,IAAI,EAAE,sBAAsB,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAmBjG"}
@@ -1,11 +1,25 @@
1
1
  import fs from 'fs';
2
- import probeImageSize from 'probe-image-size';
3
- export function getImageSize(file) {
2
+ import sizeOfImport from 'image-size';
3
+ import { promisify } from 'util';
4
+ import { temporaryFileTask } from './tempFile.js';
5
+ const { imageSize } = sizeOfImport;
6
+ const imageSizePromise = promisify(imageSize);
7
+ export async function getImageSize(file) {
4
8
  if (file.tempFilePath) {
5
- const data = fs.readFileSync(file.tempFilePath);
6
- return probeImageSize.sync(data);
9
+ return imageSizePromise(file.tempFilePath);
7
10
  }
8
- return probeImageSize.sync(file.data);
11
+ // Tiff file do not support buffers or streams, so we must write to file first
12
+ // then retrieve dimensions. https://github.com/image-size/image-size/issues/103
13
+ if (file.mimetype === 'image/tiff') {
14
+ const dimensions = await temporaryFileTask(async (filepath)=>{
15
+ fs.writeFileSync(filepath, file.data);
16
+ return imageSizePromise(filepath);
17
+ }, {
18
+ extension: 'tiff'
19
+ });
20
+ return dimensions;
21
+ }
22
+ return imageSize(file.data);
9
23
  }
10
24
 
11
25
  //# sourceMappingURL=getImageSize.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/uploads/getImageSize.ts"],"sourcesContent":["import fs from 'fs'\nimport probeImageSize from 'probe-image-size'\n\nimport type { PayloadRequest } from '../types/index.js'\nimport type { ProbedImageSize } from './types.js'\n\nexport function getImageSize(file: PayloadRequest['file']): ProbedImageSize {\n if (file.tempFilePath) {\n const data = fs.readFileSync(file.tempFilePath)\n return probeImageSize.sync(data)\n }\n\n return probeImageSize.sync(file.data)\n}\n"],"names":["fs","probeImageSize","getImageSize","file","tempFilePath","data","readFileSync","sync"],"rangeMappings":";;;;;;;;","mappings":"AAAA,OAAOA,QAAQ,KAAI;AACnB,OAAOC,oBAAoB,mBAAkB;AAK7C,OAAO,SAASC,aAAaC,IAA4B;IACvD,IAAIA,KAAKC,YAAY,EAAE;QACrB,MAAMC,OAAOL,GAAGM,YAAY,CAACH,KAAKC,YAAY;QAC9C,OAAOH,eAAeM,IAAI,CAACF;IAC7B;IAEA,OAAOJ,eAAeM,IAAI,CAACJ,KAAKE,IAAI;AACtC"}
1
+ {"version":3,"sources":["../../src/uploads/getImageSize.ts"],"sourcesContent":["import fs from 'fs'\nimport sizeOfImport from 'image-size'\nimport { promisify } from 'util'\n\nimport type { PayloadRequestWithData } from '../types/index.js'\nimport type { ProbedImageSize } from './types.js'\n\nimport { temporaryFileTask } from './tempFile.js'\n\nconst { imageSize } = sizeOfImport\nconst imageSizePromise = promisify(imageSize)\n\nexport async function getImageSize(file: PayloadRequestWithData['file']): Promise<ProbedImageSize> {\n if (file.tempFilePath) {\n return imageSizePromise(file.tempFilePath)\n }\n\n // Tiff file do not support buffers or streams, so we must write to file first\n // then retrieve dimensions. https://github.com/image-size/image-size/issues/103\n if (file.mimetype === 'image/tiff') {\n const dimensions = await temporaryFileTask(\n async (filepath: string) => {\n fs.writeFileSync(filepath, file.data)\n return imageSizePromise(filepath)\n },\n { extension: 'tiff' },\n )\n return dimensions\n }\n\n return imageSize(file.data)\n}\n"],"names":["fs","sizeOfImport","promisify","temporaryFileTask","imageSize","imageSizePromise","getImageSize","file","tempFilePath","mimetype","dimensions","filepath","writeFileSync","data","extension"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,QAAQ,KAAI;AACnB,OAAOC,kBAAkB,aAAY;AACrC,SAASC,SAAS,QAAQ,OAAM;AAKhC,SAASC,iBAAiB,QAAQ,gBAAe;AAEjD,MAAM,EAAEC,SAAS,EAAE,GAAGH;AACtB,MAAMI,mBAAmBH,UAAUE;AAEnC,OAAO,eAAeE,aAAaC,IAAoC;IACrE,IAAIA,KAAKC,YAAY,EAAE;QACrB,OAAOH,iBAAiBE,KAAKC,YAAY;IAC3C;IAEA,8EAA8E;IAC9E,gFAAgF;IAChF,IAAID,KAAKE,QAAQ,KAAK,cAAc;QAClC,MAAMC,aAAa,MAAMP,kBACvB,OAAOQ;YACLX,GAAGY,aAAa,CAACD,UAAUJ,KAAKM,IAAI;YACpC,OAAOR,iBAAiBM;QAC1B,GACA;YAAEG,WAAW;QAAO;QAEtB,OAAOJ;IACT;IAEA,OAAON,UAAUG,KAAKM,IAAI;AAC5B"}
@@ -1,8 +1,8 @@
1
- import type { PayloadRequest } from '../types/index.js';
1
+ import type { PayloadRequestWithData } from '../types/index.js';
2
2
  type Args = {
3
3
  collectionSlug: string;
4
4
  desiredFilename: string;
5
- req: PayloadRequest;
5
+ req: PayloadRequestWithData;
6
6
  staticPath: string;
7
7
  };
8
8
  declare function getSafeFileName({ collectionSlug, desiredFilename, req, staticPath, }: Args): Promise<string>;