payload 3.0.0-alpha.61 → 3.0.0-alpha.63

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 (439) hide show
  1. package/dist/admin/RichText.d.ts +2 -0
  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/WithServerSideProps.d.ts +5 -0
  17. package/dist/admin/elements/WithServerSideProps.d.ts.map +1 -0
  18. package/dist/admin/elements/WithServerSideProps.js +3 -0
  19. package/dist/admin/elements/WithServerSideProps.js.map +1 -0
  20. package/dist/admin/forms/FieldDescription.d.ts +4 -2
  21. package/dist/admin/forms/FieldDescription.d.ts.map +1 -1
  22. package/dist/admin/forms/FieldDescription.js.map +1 -1
  23. package/dist/admin/forms/RowLabel.d.ts +2 -1
  24. package/dist/admin/forms/RowLabel.d.ts.map +1 -1
  25. package/dist/admin/forms/RowLabel.js.map +1 -1
  26. package/dist/admin/types.d.ts +1 -0
  27. package/dist/admin/types.d.ts.map +1 -1
  28. package/dist/admin/types.js.map +1 -1
  29. package/dist/auth/cookies.d.ts +16 -4
  30. package/dist/auth/cookies.d.ts.map +1 -1
  31. package/dist/auth/cookies.js +45 -14
  32. package/dist/auth/cookies.js.map +1 -1
  33. package/dist/auth/executeAuthStrategies.d.ts +3 -2
  34. package/dist/auth/executeAuthStrategies.d.ts.map +1 -1
  35. package/dist/auth/executeAuthStrategies.js.map +1 -1
  36. package/dist/auth/getFieldsToSign.d.ts +2 -2
  37. package/dist/auth/getFieldsToSign.d.ts.map +1 -1
  38. package/dist/auth/getFieldsToSign.js.map +1 -1
  39. package/dist/auth/operations/auth.d.ts +5 -4
  40. package/dist/auth/operations/auth.d.ts.map +1 -1
  41. package/dist/auth/operations/auth.js.map +1 -1
  42. package/dist/auth/operations/forgotPassword.js +3 -3
  43. package/dist/auth/operations/forgotPassword.js.map +1 -1
  44. package/dist/auth/operations/login.d.ts.map +1 -1
  45. package/dist/auth/operations/login.js +17 -1
  46. package/dist/auth/operations/login.js.map +1 -1
  47. package/dist/auth/sendVerificationEmail.d.ts +5 -6
  48. package/dist/auth/sendVerificationEmail.d.ts.map +1 -1
  49. package/dist/auth/sendVerificationEmail.js +4 -5
  50. package/dist/auth/sendVerificationEmail.js.map +1 -1
  51. package/dist/bin/loader/index.d.ts.map +1 -1
  52. package/dist/bin/loader/index.js +4 -0
  53. package/dist/bin/loader/index.js.map +1 -1
  54. package/dist/collections/config/client.d.ts +15 -12
  55. package/dist/collections/config/client.d.ts.map +1 -1
  56. package/dist/collections/config/client.js +3 -1
  57. package/dist/collections/config/client.js.map +1 -1
  58. package/dist/collections/config/defaults.d.ts +1 -0
  59. package/dist/collections/config/defaults.d.ts.map +1 -1
  60. package/dist/collections/config/defaults.js +1 -0
  61. package/dist/collections/config/defaults.js.map +1 -1
  62. package/dist/collections/config/schema.d.ts.map +1 -1
  63. package/dist/collections/config/schema.js +2 -0
  64. package/dist/collections/config/schema.js.map +1 -1
  65. package/dist/collections/config/types.d.ts +12 -8
  66. package/dist/collections/config/types.d.ts.map +1 -1
  67. package/dist/collections/config/types.js.map +1 -1
  68. package/dist/collections/dataloader.d.ts.map +1 -1
  69. package/dist/collections/dataloader.js +3 -5
  70. package/dist/collections/dataloader.js.map +1 -1
  71. package/dist/collections/operations/count.d.ts +13 -0
  72. package/dist/collections/operations/count.d.ts.map +1 -0
  73. package/dist/collections/operations/count.js +75 -0
  74. package/dist/collections/operations/count.js.map +1 -0
  75. package/dist/collections/operations/create.d.ts.map +1 -1
  76. package/dist/collections/operations/create.js +4 -8
  77. package/dist/collections/operations/create.js.map +1 -1
  78. package/dist/collections/operations/local/count.d.ts +20 -0
  79. package/dist/collections/operations/local/count.d.ts.map +1 -0
  80. package/dist/collections/operations/local/count.js +19 -0
  81. package/dist/collections/operations/local/count.js.map +1 -0
  82. package/dist/collections/operations/local/create.d.ts +2 -2
  83. package/dist/collections/operations/local/create.d.ts.map +1 -1
  84. package/dist/collections/operations/local/create.js.map +1 -1
  85. package/dist/collections/operations/local/delete.d.ts +2 -2
  86. package/dist/collections/operations/local/delete.d.ts.map +1 -1
  87. package/dist/collections/operations/local/delete.js.map +1 -1
  88. package/dist/collections/operations/local/duplicate.d.ts +2 -2
  89. package/dist/collections/operations/local/duplicate.d.ts.map +1 -1
  90. package/dist/collections/operations/local/duplicate.js.map +1 -1
  91. package/dist/collections/operations/local/find.d.ts +2 -2
  92. package/dist/collections/operations/local/find.d.ts.map +1 -1
  93. package/dist/collections/operations/local/find.js.map +1 -1
  94. package/dist/collections/operations/local/findByID.d.ts +2 -2
  95. package/dist/collections/operations/local/findByID.d.ts.map +1 -1
  96. package/dist/collections/operations/local/findByID.js.map +1 -1
  97. package/dist/collections/operations/local/findVersionByID.d.ts +2 -2
  98. package/dist/collections/operations/local/findVersionByID.d.ts.map +1 -1
  99. package/dist/collections/operations/local/findVersionByID.js.map +1 -1
  100. package/dist/collections/operations/local/findVersions.d.ts +2 -2
  101. package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
  102. package/dist/collections/operations/local/findVersions.js.map +1 -1
  103. package/dist/collections/operations/local/index.d.ts +2 -0
  104. package/dist/collections/operations/local/index.d.ts.map +1 -1
  105. package/dist/collections/operations/local/index.js +2 -0
  106. package/dist/collections/operations/local/index.js.map +1 -1
  107. package/dist/collections/operations/local/restoreVersion.d.ts +2 -2
  108. package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
  109. package/dist/collections/operations/local/restoreVersion.js.map +1 -1
  110. package/dist/collections/operations/local/update.d.ts +2 -2
  111. package/dist/collections/operations/local/update.d.ts.map +1 -1
  112. package/dist/collections/operations/local/update.js.map +1 -1
  113. package/dist/collections/operations/update.d.ts.map +1 -1
  114. package/dist/collections/operations/update.js +2 -2
  115. package/dist/collections/operations/update.js.map +1 -1
  116. package/dist/collections/operations/updateByID.js +1 -1
  117. package/dist/collections/operations/updateByID.js.map +1 -1
  118. package/dist/collections/operations/utils.d.ts +6 -0
  119. package/dist/collections/operations/utils.d.ts.map +1 -1
  120. package/dist/collections/operations/utils.js.map +1 -1
  121. package/dist/config/client.d.ts +2 -1
  122. package/dist/config/client.d.ts.map +1 -1
  123. package/dist/config/client.js +2 -1
  124. package/dist/config/client.js.map +1 -1
  125. package/dist/config/defaults.d.ts.map +1 -1
  126. package/dist/config/defaults.js +1 -0
  127. package/dist/config/defaults.js.map +1 -1
  128. package/dist/config/find.d.ts.map +1 -1
  129. package/dist/config/find.js +20 -9
  130. package/dist/config/find.js.map +1 -1
  131. package/dist/config/schema.d.ts.map +1 -1
  132. package/dist/config/schema.js +1 -0
  133. package/dist/config/schema.js.map +1 -1
  134. package/dist/config/types.d.ts +27 -50
  135. package/dist/config/types.d.ts.map +1 -1
  136. package/dist/config/types.js +3 -12
  137. package/dist/config/types.js.map +1 -1
  138. package/dist/database/types.d.ts +10 -0
  139. package/dist/database/types.d.ts.map +1 -1
  140. package/dist/database/types.js.map +1 -1
  141. package/dist/email/consoleEmailAdapter.d.ts +3 -0
  142. package/dist/email/consoleEmailAdapter.d.ts.map +1 -0
  143. package/dist/email/consoleEmailAdapter.js +16 -0
  144. package/dist/email/consoleEmailAdapter.js.map +1 -0
  145. package/dist/email/defaults.d.ts +2 -2
  146. package/dist/email/defaults.d.ts.map +1 -1
  147. package/dist/email/defaults.js +3 -3
  148. package/dist/email/defaults.js.map +1 -1
  149. package/dist/email/getStringifiedToAddress.d.ts +3 -0
  150. package/dist/email/getStringifiedToAddress.d.ts.map +1 -0
  151. package/dist/email/getStringifiedToAddress.js +20 -0
  152. package/dist/email/getStringifiedToAddress.js.map +1 -0
  153. package/dist/email/sendEmail.d.ts +3 -2
  154. package/dist/email/sendEmail.d.ts.map +1 -1
  155. package/dist/email/sendEmail.js +8 -4
  156. package/dist/email/sendEmail.js.map +1 -1
  157. package/dist/email/types.d.ts +25 -18
  158. package/dist/email/types.d.ts.map +1 -1
  159. package/dist/email/types.js +5 -1
  160. package/dist/email/types.js.map +1 -1
  161. package/dist/exports/auth.d.ts +1 -0
  162. package/dist/exports/auth.d.ts.map +1 -1
  163. package/dist/exports/auth.js +1 -0
  164. package/dist/exports/auth.js.map +1 -1
  165. package/dist/exports/database.d.ts +1 -1
  166. package/dist/exports/database.d.ts.map +1 -1
  167. package/dist/exports/database.js.map +1 -1
  168. package/dist/exports/i18n/ar.d.ts +2 -0
  169. package/dist/exports/i18n/ar.d.ts.map +1 -0
  170. package/dist/exports/i18n/ar.js +3 -0
  171. package/dist/exports/i18n/ar.js.map +1 -0
  172. package/dist/exports/i18n/az.d.ts +2 -0
  173. package/dist/exports/i18n/az.d.ts.map +1 -0
  174. package/dist/exports/i18n/az.js +3 -0
  175. package/dist/exports/i18n/az.js.map +1 -0
  176. package/dist/exports/i18n/bg.d.ts +2 -0
  177. package/dist/exports/i18n/bg.d.ts.map +1 -0
  178. package/dist/exports/i18n/bg.js +3 -0
  179. package/dist/exports/i18n/bg.js.map +1 -0
  180. package/dist/exports/i18n/cs.d.ts +2 -0
  181. package/dist/exports/i18n/cs.d.ts.map +1 -0
  182. package/dist/exports/i18n/cs.js +3 -0
  183. package/dist/exports/i18n/cs.js.map +1 -0
  184. package/dist/exports/i18n/de.d.ts +2 -0
  185. package/dist/exports/i18n/de.d.ts.map +1 -0
  186. package/dist/exports/i18n/de.js +3 -0
  187. package/dist/exports/i18n/de.js.map +1 -0
  188. package/dist/exports/i18n/en.d.ts +2 -0
  189. package/dist/exports/i18n/en.d.ts.map +1 -0
  190. package/dist/exports/i18n/en.js +3 -0
  191. package/dist/exports/i18n/en.js.map +1 -0
  192. package/dist/exports/i18n/es.d.ts +2 -0
  193. package/dist/exports/i18n/es.d.ts.map +1 -0
  194. package/dist/exports/i18n/es.js +3 -0
  195. package/dist/exports/i18n/es.js.map +1 -0
  196. package/dist/exports/i18n/fa.d.ts +2 -0
  197. package/dist/exports/i18n/fa.d.ts.map +1 -0
  198. package/dist/exports/i18n/fa.js +3 -0
  199. package/dist/exports/i18n/fa.js.map +1 -0
  200. package/dist/exports/i18n/fr.d.ts +2 -0
  201. package/dist/exports/i18n/fr.d.ts.map +1 -0
  202. package/dist/exports/i18n/fr.js +3 -0
  203. package/dist/exports/i18n/fr.js.map +1 -0
  204. package/dist/exports/i18n/hr.d.ts +2 -0
  205. package/dist/exports/i18n/hr.d.ts.map +1 -0
  206. package/dist/exports/i18n/hr.js +3 -0
  207. package/dist/exports/i18n/hr.js.map +1 -0
  208. package/dist/exports/i18n/hu.d.ts +2 -0
  209. package/dist/exports/i18n/hu.d.ts.map +1 -0
  210. package/dist/exports/i18n/hu.js +3 -0
  211. package/dist/exports/i18n/hu.js.map +1 -0
  212. package/dist/exports/i18n/it.d.ts +2 -0
  213. package/dist/exports/i18n/it.d.ts.map +1 -0
  214. package/dist/exports/i18n/it.js +3 -0
  215. package/dist/exports/i18n/it.js.map +1 -0
  216. package/dist/exports/i18n/ja.d.ts +2 -0
  217. package/dist/exports/i18n/ja.d.ts.map +1 -0
  218. package/dist/exports/i18n/ja.js +3 -0
  219. package/dist/exports/i18n/ja.js.map +1 -0
  220. package/dist/exports/i18n/ko.d.ts +2 -0
  221. package/dist/exports/i18n/ko.d.ts.map +1 -0
  222. package/dist/exports/i18n/ko.js +3 -0
  223. package/dist/exports/i18n/ko.js.map +1 -0
  224. package/dist/exports/i18n/my.d.ts +2 -0
  225. package/dist/exports/i18n/my.d.ts.map +1 -0
  226. package/dist/exports/i18n/my.js +3 -0
  227. package/dist/exports/i18n/my.js.map +1 -0
  228. package/dist/exports/i18n/nb.d.ts +2 -0
  229. package/dist/exports/i18n/nb.d.ts.map +1 -0
  230. package/dist/exports/i18n/nb.js +3 -0
  231. package/dist/exports/i18n/nb.js.map +1 -0
  232. package/dist/exports/i18n/nl.d.ts +2 -0
  233. package/dist/exports/i18n/nl.d.ts.map +1 -0
  234. package/dist/exports/i18n/nl.js +3 -0
  235. package/dist/exports/i18n/nl.js.map +1 -0
  236. package/dist/exports/i18n/pl.d.ts +2 -0
  237. package/dist/exports/i18n/pl.d.ts.map +1 -0
  238. package/dist/exports/i18n/pl.js +3 -0
  239. package/dist/exports/i18n/pl.js.map +1 -0
  240. package/dist/exports/i18n/pt.d.ts +2 -0
  241. package/dist/exports/i18n/pt.d.ts.map +1 -0
  242. package/dist/exports/i18n/pt.js +3 -0
  243. package/dist/exports/i18n/pt.js.map +1 -0
  244. package/dist/exports/i18n/ro.d.ts +2 -0
  245. package/dist/exports/i18n/ro.d.ts.map +1 -0
  246. package/dist/exports/i18n/ro.js +3 -0
  247. package/dist/exports/i18n/ro.js.map +1 -0
  248. package/dist/exports/i18n/rs.d.ts +2 -0
  249. package/dist/exports/i18n/rs.d.ts.map +1 -0
  250. package/dist/exports/i18n/rs.js +3 -0
  251. package/dist/exports/i18n/rs.js.map +1 -0
  252. package/dist/exports/i18n/rsLatin.d.ts +2 -0
  253. package/dist/exports/i18n/rsLatin.d.ts.map +1 -0
  254. package/dist/exports/i18n/rsLatin.js +3 -0
  255. package/dist/exports/i18n/rsLatin.js.map +1 -0
  256. package/dist/exports/i18n/ru.d.ts +2 -0
  257. package/dist/exports/i18n/ru.d.ts.map +1 -0
  258. package/dist/exports/i18n/ru.js +3 -0
  259. package/dist/exports/i18n/ru.js.map +1 -0
  260. package/dist/exports/i18n/sv.d.ts +2 -0
  261. package/dist/exports/i18n/sv.d.ts.map +1 -0
  262. package/dist/exports/i18n/sv.js +3 -0
  263. package/dist/exports/i18n/sv.js.map +1 -0
  264. package/dist/exports/i18n/th.d.ts +2 -0
  265. package/dist/exports/i18n/th.d.ts.map +1 -0
  266. package/dist/exports/i18n/th.js +3 -0
  267. package/dist/exports/i18n/th.js.map +1 -0
  268. package/dist/exports/i18n/tr.d.ts +2 -0
  269. package/dist/exports/i18n/tr.d.ts.map +1 -0
  270. package/dist/exports/i18n/tr.js +3 -0
  271. package/dist/exports/i18n/tr.js.map +1 -0
  272. package/dist/exports/i18n/uk.d.ts +2 -0
  273. package/dist/exports/i18n/uk.d.ts.map +1 -0
  274. package/dist/exports/i18n/uk.js +3 -0
  275. package/dist/exports/i18n/uk.js.map +1 -0
  276. package/dist/exports/i18n/vi.d.ts +2 -0
  277. package/dist/exports/i18n/vi.d.ts.map +1 -0
  278. package/dist/exports/i18n/vi.js +3 -0
  279. package/dist/exports/i18n/vi.js.map +1 -0
  280. package/dist/exports/i18n/zh.d.ts +2 -0
  281. package/dist/exports/i18n/zh.d.ts.map +1 -0
  282. package/dist/exports/i18n/zh.js +3 -0
  283. package/dist/exports/i18n/zh.js.map +1 -0
  284. package/dist/exports/i18n/zhTw.d.ts +2 -0
  285. package/dist/exports/i18n/zhTw.d.ts.map +1 -0
  286. package/dist/exports/i18n/zhTw.js +3 -0
  287. package/dist/exports/i18n/zhTw.js.map +1 -0
  288. package/dist/exports/node.d.ts +3 -0
  289. package/dist/exports/node.d.ts.map +1 -1
  290. package/dist/exports/node.js +3 -1
  291. package/dist/exports/node.js.map +1 -1
  292. package/dist/exports/operations.d.ts +1 -0
  293. package/dist/exports/operations.d.ts.map +1 -1
  294. package/dist/exports/operations.js +1 -0
  295. package/dist/exports/operations.js.map +1 -1
  296. package/dist/exports/types.d.ts +1 -0
  297. package/dist/exports/types.d.ts.map +1 -1
  298. package/dist/exports/types.js.map +1 -1
  299. package/dist/exports/utilities.d.ts +4 -2
  300. package/dist/exports/utilities.d.ts.map +1 -1
  301. package/dist/exports/utilities.js +4 -3
  302. package/dist/exports/utilities.js.map +1 -1
  303. package/dist/fields/baseFields/baseBlockFields.d.ts +2 -2
  304. package/dist/fields/baseFields/baseBlockFields.d.ts.map +1 -1
  305. package/dist/fields/baseFields/baseBlockFields.js.map +1 -1
  306. package/dist/fields/config/client.d.ts +128 -103
  307. package/dist/fields/config/client.d.ts.map +1 -1
  308. package/dist/fields/config/client.js +2 -1
  309. package/dist/fields/config/client.js.map +1 -1
  310. package/dist/fields/config/sanitize.spec.js +4 -1
  311. package/dist/fields/config/sanitize.spec.js.map +1 -1
  312. package/dist/fields/config/schema.d.ts.map +1 -1
  313. package/dist/fields/config/schema.js +7 -1
  314. package/dist/fields/config/schema.js.map +1 -1
  315. package/dist/fields/config/types.d.ts +57 -49
  316. package/dist/fields/config/types.d.ts.map +1 -1
  317. package/dist/fields/config/types.js.map +1 -1
  318. package/dist/fields/getDefaultValue.d.ts +2 -2
  319. package/dist/fields/getDefaultValue.d.ts.map +1 -1
  320. package/dist/fields/getDefaultValue.js.map +1 -1
  321. package/dist/fields/validations.d.ts +6 -4
  322. package/dist/fields/validations.d.ts.map +1 -1
  323. package/dist/fields/validations.js +49 -10
  324. package/dist/fields/validations.js.map +1 -1
  325. package/dist/fields/validations.spec.js +6 -1
  326. package/dist/fields/validations.spec.js.map +1 -1
  327. package/dist/globals/config/client.d.ts +1 -1
  328. package/dist/globals/config/client.d.ts.map +1 -1
  329. package/dist/globals/config/client.js +2 -1
  330. package/dist/globals/config/client.js.map +1 -1
  331. package/dist/globals/config/schema.d.ts.map +1 -1
  332. package/dist/globals/config/schema.js +1 -0
  333. package/dist/globals/config/schema.js.map +1 -1
  334. package/dist/globals/config/types.d.ts +4 -3
  335. package/dist/globals/config/types.d.ts.map +1 -1
  336. package/dist/globals/config/types.js.map +1 -1
  337. package/dist/globals/operations/findOne.d.ts +0 -1
  338. package/dist/globals/operations/findOne.d.ts.map +1 -1
  339. package/dist/globals/operations/findOne.js.map +1 -1
  340. package/dist/globals/operations/local/findOne.d.ts +2 -2
  341. package/dist/globals/operations/local/findOne.d.ts.map +1 -1
  342. package/dist/globals/operations/local/findOne.js.map +1 -1
  343. package/dist/globals/operations/local/findVersionByID.d.ts +2 -2
  344. package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
  345. package/dist/globals/operations/local/findVersionByID.js.map +1 -1
  346. package/dist/globals/operations/local/findVersions.d.ts +2 -2
  347. package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
  348. package/dist/globals/operations/local/findVersions.js.map +1 -1
  349. package/dist/globals/operations/local/restoreVersion.d.ts +2 -2
  350. package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
  351. package/dist/globals/operations/local/restoreVersion.js.map +1 -1
  352. package/dist/globals/operations/local/update.d.ts +2 -2
  353. package/dist/globals/operations/local/update.d.ts.map +1 -1
  354. package/dist/globals/operations/local/update.js.map +1 -1
  355. package/dist/index.d.ts +17 -6
  356. package/dist/index.d.ts.map +1 -1
  357. package/dist/index.js +32 -14
  358. package/dist/index.js.map +1 -1
  359. package/dist/preferences/operations/update.d.ts +1 -1
  360. package/dist/preferences/types.d.ts +1 -2
  361. package/dist/preferences/types.d.ts.map +1 -1
  362. package/dist/preferences/types.js.map +1 -1
  363. package/dist/types/index.d.ts +5 -5
  364. package/dist/types/index.d.ts.map +1 -1
  365. package/dist/types/index.js.map +1 -1
  366. package/dist/uploads/generateFileData.d.ts.map +1 -1
  367. package/dist/uploads/generateFileData.js +3 -2
  368. package/dist/uploads/generateFileData.js.map +1 -1
  369. package/dist/uploads/getExternalFile.d.ts +4 -3
  370. package/dist/uploads/getExternalFile.d.ts.map +1 -1
  371. package/dist/uploads/getExternalFile.js +5 -4
  372. package/dist/uploads/getExternalFile.js.map +1 -1
  373. package/dist/uploads/getImageSize.d.ts +1 -1
  374. package/dist/uploads/getImageSize.d.ts.map +1 -1
  375. package/dist/uploads/getImageSize.js +19 -5
  376. package/dist/uploads/getImageSize.js.map +1 -1
  377. package/dist/uploads/tempFile.d.ts +7 -0
  378. package/dist/uploads/tempFile.d.ts.map +1 -0
  379. package/dist/uploads/tempFile.js +39 -0
  380. package/dist/uploads/tempFile.js.map +1 -0
  381. package/dist/uploads/types.d.ts +6 -0
  382. package/dist/uploads/types.d.ts.map +1 -1
  383. package/dist/uploads/types.js.map +1 -1
  384. package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
  385. package/dist/utilities/configToJSONSchema.js +53 -1
  386. package/dist/utilities/configToJSONSchema.js.map +1 -1
  387. package/dist/utilities/importWithoutClientFiles.d.ts.map +1 -1
  388. package/dist/utilities/importWithoutClientFiles.js +8 -5
  389. package/dist/utilities/importWithoutClientFiles.js.map +1 -1
  390. package/dist/utilities/isEntityHidden.d.ts +2 -2
  391. package/dist/utilities/isEntityHidden.d.ts.map +1 -1
  392. package/dist/utilities/isEntityHidden.js.map +1 -1
  393. package/dist/utilities/isReactComponent.d.ts +2 -0
  394. package/dist/utilities/isReactComponent.d.ts.map +1 -1
  395. package/dist/utilities/isReactComponent.js +8 -2
  396. package/dist/utilities/isReactComponent.js.map +1 -1
  397. package/dist/utilities/telemetry/events/adminInit.d.ts +2 -2
  398. package/dist/utilities/telemetry/events/adminInit.d.ts.map +1 -1
  399. package/dist/utilities/telemetry/events/adminInit.js.map +1 -1
  400. package/dist/utilities/telemetry/index.d.ts +3 -0
  401. package/dist/utilities/telemetry/index.d.ts.map +1 -1
  402. package/dist/utilities/telemetry/index.js +32 -6
  403. package/dist/utilities/telemetry/index.js.map +1 -1
  404. package/dist/versions/saveVersion.js +1 -1
  405. package/dist/versions/saveVersion.js.map +1 -1
  406. package/package.json +15 -6
  407. package/src/index.ts +42 -18
  408. package/auth.d.ts +0 -6
  409. package/auth.js +0 -6
  410. package/config.d.ts +0 -14
  411. package/config.js +0 -14
  412. package/database.d.ts +0 -23
  413. package/database.js +0 -22
  414. package/dist/email/build.d.ts +0 -5
  415. package/dist/email/build.d.ts.map +0 -1
  416. package/dist/email/build.js +0 -63
  417. package/dist/email/build.js.map +0 -1
  418. package/dist/email/mockHandler.d.ts +0 -5
  419. package/dist/email/mockHandler.d.ts.map +0 -1
  420. package/dist/email/mockHandler.js +0 -24
  421. package/dist/email/mockHandler.js.map +0 -1
  422. package/dist/utilities/getIDType.d.ts +0 -4
  423. package/dist/utilities/getIDType.d.ts.map +0 -1
  424. package/dist/utilities/getIDType.js +0 -8
  425. package/dist/utilities/getIDType.js.map +0 -1
  426. package/errors.d.ts +0 -2
  427. package/errors.js +0 -3
  428. package/node.d.ts +0 -3
  429. package/node.js +0 -4
  430. package/operations.d.ts +0 -30
  431. package/operations.js +0 -31
  432. package/types.d.ts +0 -17
  433. package/types.js +0 -5
  434. package/uploads.d.ts +0 -2
  435. package/uploads.js +0 -3
  436. package/utilities.d.ts +0 -32
  437. package/utilities.js +0 -33
  438. package/versions.d.ts +0 -9
  439. package/versions.js +0 -9
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/globals/operations/local/update.ts"],"sourcesContent":["import type { DeepPartial } from 'ts-essentials'\n\nimport type { GeneratedTypes, Payload, RequestContext } from '../../../index.js'\nimport type { Document, PayloadRequest } from '../../../types/index.js'\n\nimport { APIError } from '../../../errors/index.js'\nimport { createLocalReq } from '../../../utilities/createLocalReq.js'\nimport { updateOperation } from '../update.js'\n\nexport type Options<TSlug extends keyof GeneratedTypes['globals']> = {\n context?: RequestContext\n data: DeepPartial<Omit<GeneratedTypes['globals'][TSlug], 'id'>>\n depth?: number\n draft?: boolean\n fallbackLocale?: string\n locale?: string\n overrideAccess?: boolean\n req?: PayloadRequest\n showHiddenFields?: boolean\n slug: TSlug\n user?: Document\n}\n\nexport default async function updateLocal<TSlug extends keyof GeneratedTypes['globals']>(\n payload: Payload,\n options: Options<TSlug>,\n): Promise<GeneratedTypes['globals'][TSlug]> {\n const { slug: globalSlug, data, depth, draft, overrideAccess = true, showHiddenFields } = options\n\n const globalConfig = payload.globals.config.find((config) => config.slug === globalSlug)\n\n if (!globalConfig) {\n throw new APIError(`The global with slug ${String(globalSlug)} can't be found.`)\n }\n\n return updateOperation<TSlug>({\n slug: globalSlug as string,\n data,\n depth,\n draft,\n globalConfig,\n overrideAccess,\n req: await createLocalReq(options, payload),\n showHiddenFields,\n })\n}\n"],"names":["APIError","createLocalReq","updateOperation","updateLocal","payload","options","slug","globalSlug","data","depth","draft","overrideAccess","showHiddenFields","globalConfig","globals","config","find","String","req"],"rangeMappings":";;;;;;;;;;;;;;;;;;;","mappings":"AAKA,SAASA,QAAQ,QAAQ,2BAA0B;AACnD,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,eAAe,QAAQ,eAAc;AAgB9C,eAAe,eAAeC,YAC5BC,OAAgB,EAChBC,OAAuB;IAEvB,MAAM,EAAEC,MAAMC,UAAU,EAAEC,IAAI,EAAEC,KAAK,EAAEC,KAAK,EAAEC,iBAAiB,IAAI,EAAEC,gBAAgB,EAAE,GAAGP;IAE1F,MAAMQ,eAAeT,QAAQU,OAAO,CAACC,MAAM,CAACC,IAAI,CAAC,CAACD,SAAWA,OAAOT,IAAI,KAAKC;IAE7E,IAAI,CAACM,cAAc;QACjB,MAAM,IAAIb,SAAS,CAAC,qBAAqB,EAAEiB,OAAOV,YAAY,gBAAgB,CAAC;IACjF;IAEA,OAAOL,gBAAuB;QAC5BI,MAAMC;QACNC;QACAC;QACAC;QACAG;QACAF;QACAO,KAAK,MAAMjB,eAAeI,SAASD;QACnCQ;IACF;AACF"}
1
+ {"version":3,"sources":["../../../../src/globals/operations/local/update.ts"],"sourcesContent":["import type { DeepPartial } from 'ts-essentials'\n\nimport type { GeneratedTypes, Payload, RequestContext } from '../../../index.js'\nimport type { Document, PayloadRequest } from '../../../types/index.js'\n\nimport { APIError } from '../../../errors/index.js'\nimport { createLocalReq } from '../../../utilities/createLocalReq.js'\nimport { updateOperation } from '../update.js'\n\nexport type Options<TSlug extends keyof GeneratedTypes['globals']> = {\n context?: RequestContext\n data: DeepPartial<Omit<GeneratedTypes['globals'][TSlug], 'id'>>\n depth?: number\n draft?: boolean\n fallbackLocale?: GeneratedTypes['locale']\n locale?: GeneratedTypes['locale']\n overrideAccess?: boolean\n req?: PayloadRequest\n showHiddenFields?: boolean\n slug: TSlug\n user?: Document\n}\n\nexport default async function updateLocal<TSlug extends keyof GeneratedTypes['globals']>(\n payload: Payload,\n options: Options<TSlug>,\n): Promise<GeneratedTypes['globals'][TSlug]> {\n const { slug: globalSlug, data, depth, draft, overrideAccess = true, showHiddenFields } = options\n\n const globalConfig = payload.globals.config.find((config) => config.slug === globalSlug)\n\n if (!globalConfig) {\n throw new APIError(`The global with slug ${String(globalSlug)} can't be found.`)\n }\n\n return updateOperation<TSlug>({\n slug: globalSlug as string,\n data,\n depth,\n draft,\n globalConfig,\n overrideAccess,\n req: await createLocalReq(options, payload),\n showHiddenFields,\n })\n}\n"],"names":["APIError","createLocalReq","updateOperation","updateLocal","payload","options","slug","globalSlug","data","depth","draft","overrideAccess","showHiddenFields","globalConfig","globals","config","find","String","req"],"rangeMappings":";;;;;;;;;;;;;;;;;;;","mappings":"AAKA,SAASA,QAAQ,QAAQ,2BAA0B;AACnD,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,eAAe,QAAQ,eAAc;AAgB9C,eAAe,eAAeC,YAC5BC,OAAgB,EAChBC,OAAuB;IAEvB,MAAM,EAAEC,MAAMC,UAAU,EAAEC,IAAI,EAAEC,KAAK,EAAEC,KAAK,EAAEC,iBAAiB,IAAI,EAAEC,gBAAgB,EAAE,GAAGP;IAE1F,MAAMQ,eAAeT,QAAQU,OAAO,CAACC,MAAM,CAACC,IAAI,CAAC,CAACD,SAAWA,OAAOT,IAAI,KAAKC;IAE7E,IAAI,CAACM,cAAc;QACjB,MAAM,IAAIb,SAAS,CAAC,qBAAqB,EAAEiB,OAAOV,YAAY,gBAAgB,CAAC;IACjF;IAEA,OAAOL,gBAAuB;QAC5BI,MAAMC;QACNC;QACAC;QACAC;QACAG;QACAF;QACAO,KAAK,MAAMjB,eAAeI,SAASD;QACnCQ;IACF;AACF"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import type { ExecutionResult, GraphQLSchema, ValidationRule } from 'graphql';
2
2
  import type { OperationArgs, Request as graphQLRequest } from 'graphql-http';
3
- import type { SendMailOptions } from 'nodemailer';
4
3
  import type pino from 'pino';
5
4
  import type { AuthArgs } from './auth/operations/auth.js';
6
5
  import type { Result as ForgotPasswordResult } from './auth/operations/forgotPassword.js';
@@ -13,6 +12,7 @@ import type { Result as LoginResult } from './auth/operations/login.js';
13
12
  import type { Result as ResetPasswordResult } from './auth/operations/resetPassword.js';
14
13
  import type { AuthStrategy } from './auth/types.js';
15
14
  import type { BulkOperationResult, Collection, TypeWithID } from './collections/config/types.js';
15
+ import type { Options as CountOptions } from './collections/operations/local/count.js';
16
16
  import type { Options as CreateOptions } from './collections/operations/local/create.js';
17
17
  import type { ByIDOptions as DeleteByIDOptions, ManyOptions as DeleteManyOptions } from './collections/operations/local/delete.js';
18
18
  import type { Options as DuplicateOptions } from './collections/operations/local/duplicate.js';
@@ -22,9 +22,9 @@ import type { Options as FindVersionByIDOptions } from './collections/operations
22
22
  import type { Options as FindVersionsOptions } from './collections/operations/local/findVersions.js';
23
23
  import type { Options as RestoreVersionOptions } from './collections/operations/local/restoreVersion.js';
24
24
  import type { ByIDOptions as UpdateByIDOptions, ManyOptions as UpdateManyOptions } from './collections/operations/local/update.js';
25
- import type { EmailOptions, InitOptions, SanitizedConfig } from './config/types.js';
25
+ import type { InitOptions, SanitizedConfig } from './config/types.js';
26
26
  import type { BaseDatabaseAdapter, PaginatedDocs } from './database/types.js';
27
- import type { BuildEmailResult } from './email/types.js';
27
+ import type { InitializedEmailAdapter } from './email/types.js';
28
28
  import type { TypeWithID as GlobalTypeWithID, Globals } from './globals/config/types.js';
29
29
  import type { Options as FindGlobalOptions } from './globals/operations/local/findOne.js';
30
30
  import type { Options as FindGlobalVersionByIDOptions } from './globals/operations/local/findVersionByID.js';
@@ -49,6 +49,14 @@ export declare class BasePayload<TGeneratedTypes extends GeneratedTypes> {
49
49
  [slug: number | string | symbol]: Collection;
50
50
  };
51
51
  config: SanitizedConfig;
52
+ /**
53
+ * @description Performs count operation
54
+ * @param options
55
+ * @returns count of documents satisfying query
56
+ */
57
+ count: <T extends keyof TGeneratedTypes["collections"]>(options: CountOptions<T>) => Promise<{
58
+ totalDocs: number;
59
+ }>;
52
60
  /**
53
61
  * @description Performs create operation
54
62
  * @param options
@@ -58,8 +66,7 @@ export declare class BasePayload<TGeneratedTypes extends GeneratedTypes> {
58
66
  db: DatabaseAdapter;
59
67
  decrypt: typeof decrypt;
60
68
  duplicate: <T extends keyof TGeneratedTypes["collections"]>(options: DuplicateOptions<T>) => Promise<TGeneratedTypes['collections'][T]>;
61
- email: BuildEmailResult;
62
- emailOptions: EmailOptions;
69
+ email: InitializedEmailAdapter;
63
70
  encrypt: typeof encrypt;
64
71
  extensions: (args: {
65
72
  args: OperationArgs<any>;
@@ -126,7 +133,7 @@ export declare class BasePayload<TGeneratedTypes extends GeneratedTypes> {
126
133
  restoreVersion: <T extends keyof TGeneratedTypes["collections"]>(options: RestoreVersionOptions<T>) => Promise<TGeneratedTypes['collections'][T]>;
127
134
  schema: GraphQLSchema;
128
135
  secret: string;
129
- sendEmail: (message: SendMailOptions) => Promise<unknown>;
136
+ sendEmail: InitializedEmailAdapter['sendEmail'];
130
137
  types: {
131
138
  arrayTypes: any;
132
139
  blockInputTypes: any;
@@ -173,6 +180,10 @@ type GeneratedTypes = {
173
180
  globals: {
174
181
  [slug: number | string | symbol]: GlobalTypeWithID & Record<string, unknown>;
175
182
  };
183
+ locale: null | string;
184
+ user: TypeWithID & Record<string, unknown> & {
185
+ collection: string;
186
+ };
176
187
  };
177
188
  type Payload = BasePayload<GeneratedTypes>;
178
189
  interface RequestContext {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -4,10 +4,10 @@ import { APIKeyAuthentication } from './auth/strategies/apiKey.js';
4
4
  import { JWTAuthentication } from './auth/strategies/jwt.js';
5
5
  import localOperations from './collections/operations/local/index.js';
6
6
  import { validateSchema } from './config/validate.js';
7
- import buildEmail from './email/build.js';
8
- import { defaults as emailDefaults } from './email/defaults.js';
9
- import sendEmail from './email/sendEmail.js';
7
+ import { consoleEmailAdapter } from './email/consoleEmailAdapter.js';
8
+ import { fieldAffectsData } from './exports/types.js';
10
9
  import localGlobalOperations from './globals/operations/local/index.js';
10
+ import flattenFields from './utilities/flattenTopLevelFields.js';
11
11
  import Logger from './utilities/logger.js';
12
12
  import { serverInit as serverInitTelemetry } from './utilities/telemetry/events/serverInit.js';
13
13
  /**
@@ -26,6 +26,14 @@ import { serverInit as serverInitTelemetry } from './utilities/telemetry/events/
26
26
  collections = {};
27
27
  config;
28
28
  /**
29
+ * @description Performs count operation
30
+ * @param options
31
+ * @returns count of documents satisfying query
32
+ */ count = async (options)=>{
33
+ const { count } = localOperations;
34
+ return count(this, options);
35
+ };
36
+ /**
29
37
  * @description Performs create operation
30
38
  * @param options
31
39
  * @returns created document
@@ -40,7 +48,6 @@ import { serverInit as serverInitTelemetry } from './utilities/telemetry/events/
40
48
  return duplicate(this, options);
41
49
  };
42
50
  email;
43
- emailOptions;
44
51
  // TODO: re-implement or remove?
45
52
  // errorHandler: ErrorHandler
46
53
  encrypt = encrypt;
@@ -171,8 +178,12 @@ import { serverInit as serverInitTelemetry } from './utilities/telemetry/events/
171
178
  config: this.config.globals
172
179
  };
173
180
  this.config.collections.forEach((collection)=>{
181
+ const customID = flattenFields(collection.fields).find((field)=>fieldAffectsData(field) && field.name === 'id');
182
+ let customIDType;
183
+ if (customID?.type === 'number' || customID?.type === 'text') customIDType = customID.type;
174
184
  this.collections[collection.slug] = {
175
- config: collection
185
+ config: collection,
186
+ customIDType
176
187
  };
177
188
  });
178
189
  this.db = this.config.db.init({
@@ -185,16 +196,23 @@ import { serverInit as serverInitTelemetry } from './utilities/telemetry/events/
185
196
  if (!options.disableDBConnect && this.db.connect) {
186
197
  await this.db.connect();
187
198
  }
188
- // Configure email service
189
- const emailOptions = options.email ? {
190
- ...options.email
191
- } : this.config.email;
192
- if (options.email && this.config.email) {
193
- this.logger.warn('Email options provided in both init options and config. Using init options.');
199
+ // Load email adapter
200
+ if (this.config.email instanceof Promise) {
201
+ const awaitedAdapter = await this.config.email;
202
+ this.email = awaitedAdapter({
203
+ payload: this
204
+ });
205
+ } else if (this.config.email) {
206
+ this.email = this.config.email({
207
+ payload: this
208
+ });
209
+ } else {
210
+ this.logger.warn(`No email adapter provided. Email will be written to console. More info at https://payloadcms.com/docs/email/overview.`);
211
+ this.email = consoleEmailAdapter({
212
+ payload: this
213
+ });
194
214
  }
195
- this.emailOptions = emailOptions ?? emailDefaults;
196
- this.email = buildEmail(this.emailOptions, this.logger);
197
- this.sendEmail = sendEmail.bind(this);
215
+ this.sendEmail = this.email['sendEmail'];
198
216
  serverInitTelemetry(this);
199
217
  // 1. loop over collections, if collection has auth strategy, initialize and push to array
200
218
  let jwtStrategyEnabled = false;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { ExecutionResult, GraphQLSchema, ValidationRule } from 'graphql'\nimport type { OperationArgs, Request as graphQLRequest } from 'graphql-http'\nimport type { SendMailOptions } from 'nodemailer'\nimport type pino from 'pino'\n\nimport crypto from 'crypto'\n\nimport type { AuthArgs } from './auth/operations/auth.js'\nimport type { Result as ForgotPasswordResult } from './auth/operations/forgotPassword.js'\nimport type { Options as ForgotPasswordOptions } from './auth/operations/local/forgotPassword.js'\nimport type { Options as LoginOptions } from './auth/operations/local/login.js'\nimport type { Options as ResetPasswordOptions } from './auth/operations/local/resetPassword.js'\nimport type { Options as UnlockOptions } from './auth/operations/local/unlock.js'\nimport type { Options as VerifyEmailOptions } from './auth/operations/local/verifyEmail.js'\nimport type { Result as LoginResult } from './auth/operations/login.js'\nimport type { Result as ResetPasswordResult } from './auth/operations/resetPassword.js'\nimport type { AuthStrategy } from './auth/types.js'\nimport type { BulkOperationResult, Collection, TypeWithID } from './collections/config/types.js'\nimport type { Options as CreateOptions } from './collections/operations/local/create.js'\nimport type {\n ByIDOptions as DeleteByIDOptions,\n ManyOptions as DeleteManyOptions,\n Options as DeleteOptions,\n} from './collections/operations/local/delete.js'\nimport type { Options as DuplicateOptions } from './collections/operations/local/duplicate.js'\nimport type { Options as FindOptions } from './collections/operations/local/find.js'\nimport type { Options as FindByIDOptions } from './collections/operations/local/findByID.js'\nimport type { Options as FindVersionByIDOptions } from './collections/operations/local/findVersionByID.js'\nimport type { Options as FindVersionsOptions } from './collections/operations/local/findVersions.js'\nimport type { Options as RestoreVersionOptions } from './collections/operations/local/restoreVersion.js'\nimport type {\n ByIDOptions as UpdateByIDOptions,\n ManyOptions as UpdateManyOptions,\n Options as UpdateOptions,\n} from './collections/operations/local/update.js'\nimport type { EmailOptions, InitOptions, SanitizedConfig } from './config/types.js'\nimport type { BaseDatabaseAdapter, PaginatedDocs } from './database/types.js'\nimport type { BuildEmailResult } from './email/types.js'\nimport type { TypeWithID as GlobalTypeWithID, Globals } from './globals/config/types.js'\nimport type { Options as FindGlobalOptions } from './globals/operations/local/findOne.js'\nimport type { Options as FindGlobalVersionByIDOptions } from './globals/operations/local/findVersionByID.js'\nimport type { Options as FindGlobalVersionsOptions } from './globals/operations/local/findVersions.js'\nimport type { Options as RestoreGlobalVersionOptions } from './globals/operations/local/restoreVersion.js'\nimport type { Options as UpdateGlobalOptions } from './globals/operations/local/update.js'\nimport type { TypeWithVersion } from './versions/types.js'\n\nimport { decrypt, encrypt } from './auth/crypto.js'\nimport { APIKeyAuthentication } from './auth/strategies/apiKey.js'\nimport { JWTAuthentication } from './auth/strategies/jwt.js'\nimport localOperations from './collections/operations/local/index.js'\nimport { validateSchema } from './config/validate.js'\nimport buildEmail from './email/build.js'\nimport { defaults as emailDefaults } from './email/defaults.js'\nimport sendEmail from './email/sendEmail.js'\nimport localGlobalOperations from './globals/operations/local/index.js'\nimport Logger from './utilities/logger.js'\nimport { serverInit as serverInitTelemetry } from './utilities/telemetry/events/serverInit.js'\n\n/**\n * @description Payload\n */\nexport class BasePayload<TGeneratedTypes extends GeneratedTypes> {\n /**\n * @description Authorization and Authentication using headers and cookies to run auth user strategies\n * @returns cookies: Map<string, string>\n * @returns permissions: Permissions\n * @returns user: User\n */\n auth = async (options: AuthArgs) => {\n const { auth } = localOperations.auth\n return auth(this, options)\n }\n\n authStrategies: AuthStrategy[]\n\n collections: {\n [slug: number | string | symbol]: Collection\n } = {}\n\n config: SanitizedConfig\n\n /**\n * @description Performs create operation\n * @param options\n * @returns created document\n */\n create = async <T extends keyof TGeneratedTypes['collections']>(\n options: CreateOptions<T>,\n ): Promise<TGeneratedTypes['collections'][T]> => {\n const { create } = localOperations\n return create<T>(this, options)\n }\n\n db: DatabaseAdapter\n\n decrypt = decrypt\n\n duplicate = async <T extends keyof TGeneratedTypes['collections']>(\n options: DuplicateOptions<T>,\n ): Promise<TGeneratedTypes['collections'][T]> => {\n const { duplicate } = localOperations\n return duplicate<T>(this, options)\n }\n\n email: BuildEmailResult\n\n emailOptions: EmailOptions\n\n // TODO: re-implement or remove?\n // errorHandler: ErrorHandler\n\n encrypt = encrypt\n\n extensions: (args: {\n args: OperationArgs<any>\n req: graphQLRequest<unknown, unknown>\n result: ExecutionResult\n }) => Promise<any>\n\n /**\n * @description Find documents with criteria\n * @param options\n * @returns documents satisfying query\n */\n find = async <T extends keyof TGeneratedTypes['collections']>(\n options: FindOptions<T>,\n ): Promise<PaginatedDocs<TGeneratedTypes['collections'][T]>> => {\n const { find } = localOperations\n return find<T>(this, options)\n }\n\n /**\n * @description Find document by ID\n * @param options\n * @returns document with specified ID\n */\n findByID = async <T extends keyof TGeneratedTypes['collections']>(\n options: FindByIDOptions<T>,\n ): Promise<TGeneratedTypes['collections'][T]> => {\n const { findByID } = localOperations\n return findByID<T>(this, options)\n }\n\n findGlobal = async <T extends keyof TGeneratedTypes['globals']>(\n options: FindGlobalOptions<T>,\n ): Promise<TGeneratedTypes['globals'][T]> => {\n const { findOne } = localGlobalOperations\n return findOne<T>(this, options)\n }\n\n /**\n * @description Find global version by ID\n * @param options\n * @returns global version with specified ID\n */\n findGlobalVersionByID = async <T extends keyof TGeneratedTypes['globals']>(\n options: FindGlobalVersionByIDOptions<T>,\n ): Promise<TypeWithVersion<TGeneratedTypes['globals'][T]>> => {\n const { findVersionByID } = localGlobalOperations\n return findVersionByID<T>(this, options)\n }\n\n /**\n * @description Find global versions with criteria\n * @param options\n * @returns versions satisfying query\n */\n findGlobalVersions = async <T extends keyof TGeneratedTypes['globals']>(\n options: FindGlobalVersionsOptions<T>,\n ): Promise<PaginatedDocs<TypeWithVersion<TGeneratedTypes['globals'][T]>>> => {\n const { findVersions } = localGlobalOperations\n return findVersions<T>(this, options)\n }\n\n /**\n * @description Find version by ID\n * @param options\n * @returns version with specified ID\n */\n findVersionByID = async <T extends keyof TGeneratedTypes['collections']>(\n options: FindVersionByIDOptions<T>,\n ): Promise<TypeWithVersion<TGeneratedTypes['collections'][T]>> => {\n const { findVersionByID } = localOperations\n return findVersionByID<T>(this, options)\n }\n\n /**\n * @description Find versions with criteria\n * @param options\n * @returns versions satisfying query\n */\n findVersions = async <T extends keyof TGeneratedTypes['collections']>(\n options: FindVersionsOptions<T>,\n ): Promise<PaginatedDocs<TypeWithVersion<TGeneratedTypes['collections'][T]>>> => {\n const { findVersions } = localOperations\n return findVersions<T>(this, options)\n }\n\n forgotPassword = async <T extends keyof TGeneratedTypes['collections']>(\n options: ForgotPasswordOptions<T>,\n ): Promise<ForgotPasswordResult> => {\n const { forgotPassword } = localOperations.auth\n return forgotPassword<T>(this, options)\n }\n\n getAPIURL = (): string => `${this.config.serverURL}${this.config.routes.api}`\n\n getAdminURL = (): string => `${this.config.serverURL}${this.config.routes.admin}`\n\n globals: Globals\n\n logger: pino.Logger\n\n login = async <T extends keyof TGeneratedTypes['collections']>(\n options: LoginOptions<T>,\n ): Promise<LoginResult & { user: TGeneratedTypes['collections'][T] }> => {\n const { login } = localOperations.auth\n return login<T>(this, options)\n }\n\n resetPassword = async <T extends keyof TGeneratedTypes['collections']>(\n options: ResetPasswordOptions<T>,\n ): Promise<ResetPasswordResult> => {\n const { resetPassword } = localOperations.auth\n return resetPassword<T>(this, options)\n }\n\n /**\n * @description Restore global version by ID\n * @param options\n * @returns version with specified ID\n */\n restoreGlobalVersion = async <T extends keyof TGeneratedTypes['globals']>(\n options: RestoreGlobalVersionOptions<T>,\n ): Promise<TGeneratedTypes['globals'][T]> => {\n const { restoreVersion } = localGlobalOperations\n return restoreVersion<T>(this, options)\n }\n\n /**\n * @description Restore version by ID\n * @param options\n * @returns version with specified ID\n */\n restoreVersion = async <T extends keyof TGeneratedTypes['collections']>(\n options: RestoreVersionOptions<T>,\n ): Promise<TGeneratedTypes['collections'][T]> => {\n const { restoreVersion } = localOperations\n return restoreVersion<T>(this, options)\n }\n\n schema: GraphQLSchema\n\n secret: string\n\n sendEmail: (message: SendMailOptions) => Promise<unknown>\n\n types: {\n arrayTypes: any\n blockInputTypes: any\n blockTypes: any\n fallbackLocaleInputType?: any\n groupTypes: any\n localeInputType?: any\n tabTypes: any\n }\n\n unlock = async <T extends keyof TGeneratedTypes['collections']>(\n options: UnlockOptions<T>,\n ): Promise<boolean> => {\n const { unlock } = localOperations.auth\n return unlock(this, options)\n }\n\n updateGlobal = async <T extends keyof TGeneratedTypes['globals']>(\n options: UpdateGlobalOptions<T>,\n ): Promise<TGeneratedTypes['globals'][T]> => {\n const { update } = localGlobalOperations\n return update<T>(this, options)\n }\n\n validationRules: (args: OperationArgs<any>) => ValidationRule[]\n\n verifyEmail = async <T extends keyof TGeneratedTypes['collections']>(\n options: VerifyEmailOptions<T>,\n ): Promise<boolean> => {\n const { verifyEmail } = localOperations.auth\n return verifyEmail(this, options)\n }\n\n versions: {\n [slug: string]: any // TODO: Type this\n } = {}\n\n /**\n * @description delete one or more documents\n * @param options\n * @returns Updated document(s)\n */\n delete<T extends keyof TGeneratedTypes['collections']>(\n options: DeleteByIDOptions<T>,\n ): Promise<TGeneratedTypes['collections'][T]>\n\n delete<T extends keyof TGeneratedTypes['collections']>(\n options: DeleteManyOptions<T>,\n ): Promise<BulkOperationResult<T>>\n\n delete<T extends keyof TGeneratedTypes['collections']>(\n options: DeleteOptions<T>,\n ): Promise<BulkOperationResult<T> | TGeneratedTypes['collections'][T]> {\n const { deleteLocal } = localOperations\n return deleteLocal<T>(this, options)\n }\n\n /**\n * @description Initializes Payload\n * @param options\n */\n async init(options: InitOptions): Promise<Payload> {\n if (!options?.config) {\n throw new Error('Error: the payload config is required to initialize payload.')\n }\n\n this.logger = Logger('payload', options.loggerOptions, options.loggerDestination)\n\n this.config = await options.config\n\n if (process.env.NODE_ENV !== 'production') {\n validateSchema(this.config, this.logger)\n }\n\n if (!this.config.secret) {\n throw new Error('Error: missing secret key. A secret key is needed to secure Payload.')\n }\n\n this.secret = crypto.createHash('sha256').update(this.config.secret).digest('hex').slice(0, 32)\n\n this.globals = {\n config: this.config.globals,\n }\n\n this.config.collections.forEach((collection) => {\n this.collections[collection.slug] = {\n config: collection,\n }\n })\n\n this.db = this.config.db.init({ payload: this })\n this.db.payload = this\n\n if (this.db?.init) {\n await this.db.init()\n }\n\n if (!options.disableDBConnect && this.db.connect) {\n await this.db.connect()\n }\n\n // Configure email service\n const emailOptions = options.email ? { ...options.email } : this.config.email\n if (options.email && this.config.email) {\n this.logger.warn(\n 'Email options provided in both init options and config. Using init options.',\n )\n }\n\n this.emailOptions = emailOptions ?? emailDefaults\n this.email = buildEmail(this.emailOptions, this.logger)\n this.sendEmail = sendEmail.bind(this)\n\n serverInitTelemetry(this)\n\n // 1. loop over collections, if collection has auth strategy, initialize and push to array\n let jwtStrategyEnabled = false\n this.authStrategies = this.config.collections.reduce((authStrategies, collection) => {\n if (collection?.auth) {\n if (collection.auth.strategies.length > 0) {\n authStrategies.push(...collection.auth.strategies)\n }\n\n // 2. if api key enabled, push api key strategy into the array\n if (collection.auth?.useAPIKey) {\n authStrategies.push({\n name: `${collection.slug}-api-key`,\n authenticate: APIKeyAuthentication(collection),\n })\n }\n\n // 3. if localStrategy flag is true\n if (!collection.auth.disableLocalStrategy && !jwtStrategyEnabled) {\n jwtStrategyEnabled = true\n }\n }\n\n return authStrategies\n }, [] as AuthStrategy[])\n\n // 4. if enabled, push jwt strategy into authStrategies last\n if (jwtStrategyEnabled) {\n this.authStrategies.push({\n name: 'local-jwt',\n authenticate: JWTAuthentication,\n })\n }\n\n if (!options.disableOnInit) {\n if (typeof options.onInit === 'function') await options.onInit(this)\n if (typeof this.config.onInit === 'function') await this.config.onInit(this)\n }\n\n return this\n }\n\n update<T extends keyof TGeneratedTypes['collections']>(\n options: UpdateManyOptions<T>,\n ): Promise<BulkOperationResult<T>>\n\n /**\n * @description Update one or more documents\n * @param options\n * @returns Updated document(s)\n */\n update<T extends keyof TGeneratedTypes['collections']>(\n options: UpdateByIDOptions<T>,\n ): Promise<TGeneratedTypes['collections'][T]>\n\n update<T extends keyof TGeneratedTypes['collections']>(\n options: UpdateOptions<T>,\n ): Promise<BulkOperationResult<T> | TGeneratedTypes['collections'][T]> {\n const { update } = localOperations\n return update<T>(this, options)\n }\n}\n\nconst initialized = new BasePayload()\n\nexport default initialized\n\nlet cached = global._payload\n\nif (!cached) {\n // eslint-disable-next-line no-multi-assign\n cached = global._payload = { payload: null, promise: null }\n}\n\nexport const getPayload = async (options: InitOptions): Promise<BasePayload<GeneratedTypes>> => {\n if (!options?.config) {\n throw new Error('Error: the payload config is required for getPayload to work.')\n }\n\n if (cached.payload) {\n return cached.payload\n }\n\n if (!cached.promise) {\n cached.promise = new BasePayload<GeneratedTypes>().init(options)\n }\n\n try {\n cached.payload = await cached.promise\n } catch (e) {\n cached.promise = null\n throw e\n }\n\n return cached.payload\n}\n\ntype GeneratedTypes = {\n collections: {\n [slug: number | string | symbol]: TypeWithID & Record<string, unknown>\n }\n globals: {\n [slug: number | string | symbol]: GlobalTypeWithID & Record<string, unknown>\n }\n}\n\ntype Payload = BasePayload<GeneratedTypes>\n\ninterface RequestContext {\n [key: string]: unknown\n}\n\ntype DatabaseAdapter = BaseDatabaseAdapter\n\nexport type { DatabaseAdapter, GeneratedTypes, Payload, RequestContext }\n"],"names":["crypto","decrypt","encrypt","APIKeyAuthentication","JWTAuthentication","localOperations","validateSchema","buildEmail","defaults","emailDefaults","sendEmail","localGlobalOperations","Logger","serverInit","serverInitTelemetry","BasePayload","auth","options","authStrategies","collections","config","create","db","duplicate","email","emailOptions","extensions","find","findByID","findGlobal","findOne","findGlobalVersionByID","findVersionByID","findGlobalVersions","findVersions","forgotPassword","getAPIURL","serverURL","routes","api","getAdminURL","admin","globals","logger","login","resetPassword","restoreGlobalVersion","restoreVersion","schema","secret","types","unlock","updateGlobal","update","validationRules","verifyEmail","versions","delete","deleteLocal","init","Error","loggerOptions","loggerDestination","process","env","NODE_ENV","createHash","digest","slice","forEach","collection","slug","payload","disableDBConnect","connect","warn","bind","jwtStrategyEnabled","reduce","strategies","length","push","useAPIKey","name","authenticate","disableLocalStrategy","disableOnInit","onInit","initialized","cached","global","_payload","promise","getPayload","e"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { ExecutionResult, GraphQLSchema, ValidationRule } from 'graphql'\nimport type { OperationArgs, Request as graphQLRequest } from 'graphql-http'\nimport type pino from 'pino'\n\nimport crypto from 'crypto'\n\nimport type { AuthArgs } from './auth/operations/auth.js'\nimport type { Result as ForgotPasswordResult } from './auth/operations/forgotPassword.js'\nimport type { Options as ForgotPasswordOptions } from './auth/operations/local/forgotPassword.js'\nimport type { Options as LoginOptions } from './auth/operations/local/login.js'\nimport type { Options as ResetPasswordOptions } from './auth/operations/local/resetPassword.js'\nimport type { Options as UnlockOptions } from './auth/operations/local/unlock.js'\nimport type { Options as VerifyEmailOptions } from './auth/operations/local/verifyEmail.js'\nimport type { Result as LoginResult } from './auth/operations/login.js'\nimport type { Result as ResetPasswordResult } from './auth/operations/resetPassword.js'\nimport type { AuthStrategy } from './auth/types.js'\nimport type { BulkOperationResult, Collection, TypeWithID } from './collections/config/types.js'\nimport type { Options as CountOptions } from './collections/operations/local/count.js'\nimport type { Options as CreateOptions } from './collections/operations/local/create.js'\nimport type {\n ByIDOptions as DeleteByIDOptions,\n ManyOptions as DeleteManyOptions,\n Options as DeleteOptions,\n} from './collections/operations/local/delete.js'\nimport type { Options as DuplicateOptions } from './collections/operations/local/duplicate.js'\nimport type { Options as FindOptions } from './collections/operations/local/find.js'\nimport type { Options as FindByIDOptions } from './collections/operations/local/findByID.js'\nimport type { Options as FindVersionByIDOptions } from './collections/operations/local/findVersionByID.js'\nimport type { Options as FindVersionsOptions } from './collections/operations/local/findVersions.js'\nimport type { Options as RestoreVersionOptions } from './collections/operations/local/restoreVersion.js'\nimport type {\n ByIDOptions as UpdateByIDOptions,\n ManyOptions as UpdateManyOptions,\n Options as UpdateOptions,\n} from './collections/operations/local/update.js'\nimport type { InitOptions, SanitizedConfig } from './config/types.js'\nimport type { BaseDatabaseAdapter, PaginatedDocs } from './database/types.js'\nimport type { InitializedEmailAdapter } from './email/types.js'\nimport type { TypeWithID as GlobalTypeWithID, Globals } from './globals/config/types.js'\nimport type { Options as FindGlobalOptions } from './globals/operations/local/findOne.js'\nimport type { Options as FindGlobalVersionByIDOptions } from './globals/operations/local/findVersionByID.js'\nimport type { Options as FindGlobalVersionsOptions } from './globals/operations/local/findVersions.js'\nimport type { Options as RestoreGlobalVersionOptions } from './globals/operations/local/restoreVersion.js'\nimport type { Options as UpdateGlobalOptions } from './globals/operations/local/update.js'\nimport type { TypeWithVersion } from './versions/types.js'\n\nimport { decrypt, encrypt } from './auth/crypto.js'\nimport { APIKeyAuthentication } from './auth/strategies/apiKey.js'\nimport { JWTAuthentication } from './auth/strategies/jwt.js'\nimport localOperations from './collections/operations/local/index.js'\nimport { validateSchema } from './config/validate.js'\nimport { consoleEmailAdapter } from './email/consoleEmailAdapter.js'\nimport { fieldAffectsData } from './exports/types.js'\nimport localGlobalOperations from './globals/operations/local/index.js'\nimport flattenFields from './utilities/flattenTopLevelFields.js'\nimport Logger from './utilities/logger.js'\nimport { serverInit as serverInitTelemetry } from './utilities/telemetry/events/serverInit.js'\n\n/**\n * @description Payload\n */\nexport class BasePayload<TGeneratedTypes extends GeneratedTypes> {\n /**\n * @description Authorization and Authentication using headers and cookies to run auth user strategies\n * @returns cookies: Map<string, string>\n * @returns permissions: Permissions\n * @returns user: User\n */\n auth = async (options: AuthArgs) => {\n const { auth } = localOperations.auth\n return auth(this, options)\n }\n\n authStrategies: AuthStrategy[]\n\n collections: {\n [slug: number | string | symbol]: Collection\n } = {}\n\n config: SanitizedConfig\n\n /**\n * @description Performs count operation\n * @param options\n * @returns count of documents satisfying query\n */\n count = async <T extends keyof TGeneratedTypes['collections']>(\n options: CountOptions<T>,\n ): Promise<{ totalDocs: number }> => {\n const { count } = localOperations\n return count(this, options)\n }\n\n /**\n * @description Performs create operation\n * @param options\n * @returns created document\n */\n create = async <T extends keyof TGeneratedTypes['collections']>(\n options: CreateOptions<T>,\n ): Promise<TGeneratedTypes['collections'][T]> => {\n const { create } = localOperations\n return create<T>(this, options)\n }\n db: DatabaseAdapter\n\n decrypt = decrypt\n\n duplicate = async <T extends keyof TGeneratedTypes['collections']>(\n options: DuplicateOptions<T>,\n ): Promise<TGeneratedTypes['collections'][T]> => {\n const { duplicate } = localOperations\n return duplicate<T>(this, options)\n }\n\n email: InitializedEmailAdapter\n\n // TODO: re-implement or remove?\n // errorHandler: ErrorHandler\n\n encrypt = encrypt\n\n extensions: (args: {\n args: OperationArgs<any>\n req: graphQLRequest<unknown, unknown>\n result: ExecutionResult\n }) => Promise<any>\n\n /**\n * @description Find documents with criteria\n * @param options\n * @returns documents satisfying query\n */\n find = async <T extends keyof TGeneratedTypes['collections']>(\n options: FindOptions<T>,\n ): Promise<PaginatedDocs<TGeneratedTypes['collections'][T]>> => {\n const { find } = localOperations\n return find<T>(this, options)\n }\n\n /**\n * @description Find document by ID\n * @param options\n * @returns document with specified ID\n */\n findByID = async <T extends keyof TGeneratedTypes['collections']>(\n options: FindByIDOptions<T>,\n ): Promise<TGeneratedTypes['collections'][T]> => {\n const { findByID } = localOperations\n return findByID<T>(this, options)\n }\n\n findGlobal = async <T extends keyof TGeneratedTypes['globals']>(\n options: FindGlobalOptions<T>,\n ): Promise<TGeneratedTypes['globals'][T]> => {\n const { findOne } = localGlobalOperations\n return findOne<T>(this, options)\n }\n\n /**\n * @description Find global version by ID\n * @param options\n * @returns global version with specified ID\n */\n findGlobalVersionByID = async <T extends keyof TGeneratedTypes['globals']>(\n options: FindGlobalVersionByIDOptions<T>,\n ): Promise<TypeWithVersion<TGeneratedTypes['globals'][T]>> => {\n const { findVersionByID } = localGlobalOperations\n return findVersionByID<T>(this, options)\n }\n\n /**\n * @description Find global versions with criteria\n * @param options\n * @returns versions satisfying query\n */\n findGlobalVersions = async <T extends keyof TGeneratedTypes['globals']>(\n options: FindGlobalVersionsOptions<T>,\n ): Promise<PaginatedDocs<TypeWithVersion<TGeneratedTypes['globals'][T]>>> => {\n const { findVersions } = localGlobalOperations\n return findVersions<T>(this, options)\n }\n\n /**\n * @description Find version by ID\n * @param options\n * @returns version with specified ID\n */\n findVersionByID = async <T extends keyof TGeneratedTypes['collections']>(\n options: FindVersionByIDOptions<T>,\n ): Promise<TypeWithVersion<TGeneratedTypes['collections'][T]>> => {\n const { findVersionByID } = localOperations\n return findVersionByID<T>(this, options)\n }\n\n /**\n * @description Find versions with criteria\n * @param options\n * @returns versions satisfying query\n */\n findVersions = async <T extends keyof TGeneratedTypes['collections']>(\n options: FindVersionsOptions<T>,\n ): Promise<PaginatedDocs<TypeWithVersion<TGeneratedTypes['collections'][T]>>> => {\n const { findVersions } = localOperations\n return findVersions<T>(this, options)\n }\n\n forgotPassword = async <T extends keyof TGeneratedTypes['collections']>(\n options: ForgotPasswordOptions<T>,\n ): Promise<ForgotPasswordResult> => {\n const { forgotPassword } = localOperations.auth\n return forgotPassword<T>(this, options)\n }\n\n getAPIURL = (): string => `${this.config.serverURL}${this.config.routes.api}`\n\n getAdminURL = (): string => `${this.config.serverURL}${this.config.routes.admin}`\n\n globals: Globals\n\n logger: pino.Logger\n\n login = async <T extends keyof TGeneratedTypes['collections']>(\n options: LoginOptions<T>,\n ): Promise<LoginResult & { user: TGeneratedTypes['collections'][T] }> => {\n const { login } = localOperations.auth\n return login<T>(this, options)\n }\n\n resetPassword = async <T extends keyof TGeneratedTypes['collections']>(\n options: ResetPasswordOptions<T>,\n ): Promise<ResetPasswordResult> => {\n const { resetPassword } = localOperations.auth\n return resetPassword<T>(this, options)\n }\n\n /**\n * @description Restore global version by ID\n * @param options\n * @returns version with specified ID\n */\n restoreGlobalVersion = async <T extends keyof TGeneratedTypes['globals']>(\n options: RestoreGlobalVersionOptions<T>,\n ): Promise<TGeneratedTypes['globals'][T]> => {\n const { restoreVersion } = localGlobalOperations\n return restoreVersion<T>(this, options)\n }\n\n /**\n * @description Restore version by ID\n * @param options\n * @returns version with specified ID\n */\n restoreVersion = async <T extends keyof TGeneratedTypes['collections']>(\n options: RestoreVersionOptions<T>,\n ): Promise<TGeneratedTypes['collections'][T]> => {\n const { restoreVersion } = localOperations\n return restoreVersion<T>(this, options)\n }\n\n schema: GraphQLSchema\n\n secret: string\n\n sendEmail: InitializedEmailAdapter['sendEmail']\n\n types: {\n arrayTypes: any\n blockInputTypes: any\n blockTypes: any\n fallbackLocaleInputType?: any\n groupTypes: any\n localeInputType?: any\n tabTypes: any\n }\n\n unlock = async <T extends keyof TGeneratedTypes['collections']>(\n options: UnlockOptions<T>,\n ): Promise<boolean> => {\n const { unlock } = localOperations.auth\n return unlock(this, options)\n }\n\n updateGlobal = async <T extends keyof TGeneratedTypes['globals']>(\n options: UpdateGlobalOptions<T>,\n ): Promise<TGeneratedTypes['globals'][T]> => {\n const { update } = localGlobalOperations\n return update<T>(this, options)\n }\n\n validationRules: (args: OperationArgs<any>) => ValidationRule[]\n\n verifyEmail = async <T extends keyof TGeneratedTypes['collections']>(\n options: VerifyEmailOptions<T>,\n ): Promise<boolean> => {\n const { verifyEmail } = localOperations.auth\n return verifyEmail(this, options)\n }\n\n versions: {\n [slug: string]: any // TODO: Type this\n } = {}\n\n /**\n * @description delete one or more documents\n * @param options\n * @returns Updated document(s)\n */\n delete<T extends keyof TGeneratedTypes['collections']>(\n options: DeleteByIDOptions<T>,\n ): Promise<TGeneratedTypes['collections'][T]>\n\n delete<T extends keyof TGeneratedTypes['collections']>(\n options: DeleteManyOptions<T>,\n ): Promise<BulkOperationResult<T>>\n\n delete<T extends keyof TGeneratedTypes['collections']>(\n options: DeleteOptions<T>,\n ): Promise<BulkOperationResult<T> | TGeneratedTypes['collections'][T]> {\n const { deleteLocal } = localOperations\n return deleteLocal<T>(this, options)\n }\n\n /**\n * @description Initializes Payload\n * @param options\n */\n async init(options: InitOptions): Promise<Payload> {\n if (!options?.config) {\n throw new Error('Error: the payload config is required to initialize payload.')\n }\n\n this.logger = Logger('payload', options.loggerOptions, options.loggerDestination)\n\n this.config = await options.config\n\n if (process.env.NODE_ENV !== 'production') {\n validateSchema(this.config, this.logger)\n }\n\n if (!this.config.secret) {\n throw new Error('Error: missing secret key. A secret key is needed to secure Payload.')\n }\n\n this.secret = crypto.createHash('sha256').update(this.config.secret).digest('hex').slice(0, 32)\n\n this.globals = {\n config: this.config.globals,\n }\n\n this.config.collections.forEach((collection) => {\n const customID = flattenFields(collection.fields).find(\n (field) => fieldAffectsData(field) && field.name === 'id',\n )\n\n let customIDType\n\n if (customID?.type === 'number' || customID?.type === 'text') customIDType = customID.type\n\n this.collections[collection.slug] = {\n config: collection,\n customIDType,\n }\n })\n\n this.db = this.config.db.init({ payload: this })\n this.db.payload = this\n\n if (this.db?.init) {\n await this.db.init()\n }\n\n if (!options.disableDBConnect && this.db.connect) {\n await this.db.connect()\n }\n\n // Load email adapter\n if (this.config.email instanceof Promise) {\n const awaitedAdapter = await this.config.email\n this.email = awaitedAdapter({ payload: this })\n } else if (this.config.email) {\n this.email = this.config.email({ payload: this })\n } else {\n this.logger.warn(\n `No email adapter provided. Email will be written to console. More info at https://payloadcms.com/docs/email/overview.`,\n )\n\n this.email = consoleEmailAdapter({ payload: this })\n }\n\n this.sendEmail = this.email['sendEmail']\n\n serverInitTelemetry(this)\n\n // 1. loop over collections, if collection has auth strategy, initialize and push to array\n let jwtStrategyEnabled = false\n this.authStrategies = this.config.collections.reduce((authStrategies, collection) => {\n if (collection?.auth) {\n if (collection.auth.strategies.length > 0) {\n authStrategies.push(...collection.auth.strategies)\n }\n\n // 2. if api key enabled, push api key strategy into the array\n if (collection.auth?.useAPIKey) {\n authStrategies.push({\n name: `${collection.slug}-api-key`,\n authenticate: APIKeyAuthentication(collection),\n })\n }\n\n // 3. if localStrategy flag is true\n if (!collection.auth.disableLocalStrategy && !jwtStrategyEnabled) {\n jwtStrategyEnabled = true\n }\n }\n\n return authStrategies\n }, [] as AuthStrategy[])\n\n // 4. if enabled, push jwt strategy into authStrategies last\n if (jwtStrategyEnabled) {\n this.authStrategies.push({\n name: 'local-jwt',\n authenticate: JWTAuthentication,\n })\n }\n\n if (!options.disableOnInit) {\n if (typeof options.onInit === 'function') await options.onInit(this)\n if (typeof this.config.onInit === 'function') await this.config.onInit(this)\n }\n\n return this\n }\n\n update<T extends keyof TGeneratedTypes['collections']>(\n options: UpdateManyOptions<T>,\n ): Promise<BulkOperationResult<T>>\n\n /**\n * @description Update one or more documents\n * @param options\n * @returns Updated document(s)\n */\n update<T extends keyof TGeneratedTypes['collections']>(\n options: UpdateByIDOptions<T>,\n ): Promise<TGeneratedTypes['collections'][T]>\n\n update<T extends keyof TGeneratedTypes['collections']>(\n options: UpdateOptions<T>,\n ): Promise<BulkOperationResult<T> | TGeneratedTypes['collections'][T]> {\n const { update } = localOperations\n return update<T>(this, options)\n }\n}\n\nconst initialized = new BasePayload()\n\nexport default initialized\n\nlet cached = global._payload\n\nif (!cached) {\n // eslint-disable-next-line no-multi-assign\n cached = global._payload = { payload: null, promise: null }\n}\n\nexport const getPayload = async (options: InitOptions): Promise<BasePayload<GeneratedTypes>> => {\n if (!options?.config) {\n throw new Error('Error: the payload config is required for getPayload to work.')\n }\n\n if (cached.payload) {\n return cached.payload\n }\n\n if (!cached.promise) {\n cached.promise = new BasePayload<GeneratedTypes>().init(options)\n }\n\n try {\n cached.payload = await cached.promise\n } catch (e) {\n cached.promise = null\n throw e\n }\n\n return cached.payload\n}\n\ntype GeneratedTypes = {\n collections: {\n [slug: number | string | symbol]: TypeWithID & Record<string, unknown>\n }\n globals: {\n [slug: number | string | symbol]: GlobalTypeWithID & Record<string, unknown>\n }\n locale: null | string\n user: TypeWithID & Record<string, unknown> & { collection: string }\n}\n\ntype Payload = BasePayload<GeneratedTypes>\n\ninterface RequestContext {\n [key: string]: unknown\n}\n\ntype DatabaseAdapter = BaseDatabaseAdapter\n\nexport type { DatabaseAdapter, GeneratedTypes, Payload, RequestContext }\n"],"names":["crypto","decrypt","encrypt","APIKeyAuthentication","JWTAuthentication","localOperations","validateSchema","consoleEmailAdapter","fieldAffectsData","localGlobalOperations","flattenFields","Logger","serverInit","serverInitTelemetry","BasePayload","auth","options","authStrategies","collections","config","count","create","db","duplicate","email","extensions","find","findByID","findGlobal","findOne","findGlobalVersionByID","findVersionByID","findGlobalVersions","findVersions","forgotPassword","getAPIURL","serverURL","routes","api","getAdminURL","admin","globals","logger","login","resetPassword","restoreGlobalVersion","restoreVersion","schema","secret","sendEmail","types","unlock","updateGlobal","update","validationRules","verifyEmail","versions","delete","deleteLocal","init","Error","loggerOptions","loggerDestination","process","env","NODE_ENV","createHash","digest","slice","forEach","collection","customID","fields","field","name","customIDType","type","slug","payload","disableDBConnect","connect","Promise","awaitedAdapter","warn","jwtStrategyEnabled","reduce","strategies","length","push","useAPIKey","authenticate","disableLocalStrategy","disableOnInit","onInit","initialized","cached","global","_payload","promise","getPayload","e"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -3,7 +3,7 @@ declare function update(args: PreferenceUpdateRequest): Promise<{
3
3
  key: string;
4
4
  user: {
5
5
  relationTo: string;
6
- value: string;
6
+ value: string | number;
7
7
  };
8
8
  value: unknown;
9
9
  }>;
@@ -1,10 +1,9 @@
1
- import type { User } from '../auth/index.js';
2
1
  import type { PayloadRequest } from '../types/index.js';
3
2
  export type PreferenceRequest = {
4
3
  key: string;
5
4
  overrideAccess?: boolean;
6
5
  req: PayloadRequest;
7
- user: User;
6
+ user: PayloadRequest['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,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,cAAc,CAAC,MAAM,CAAC,CAAA;CAC7B,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 { PayloadRequest } from '../types/index.js'\n\nexport type PreferenceRequest = {\n key: string\n overrideAccess?: boolean\n req: PayloadRequest\n user: PayloadRequest['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,7 +18,7 @@ export type UploadEdits = {
18
18
  y?: number;
19
19
  };
20
20
  };
21
- export type CustomPayloadRequest<U = any> = {
21
+ export type CustomPayloadRequest<U = unknown> = {
22
22
  context: RequestContext;
23
23
  /** Data from the request body */
24
24
  data?: Record<string, unknown>;
@@ -39,7 +39,7 @@ export type CustomPayloadRequest<U = any> = {
39
39
  * The requested locale if specified
40
40
  * Only available for localized collections
41
41
  */
42
- locale?: string;
42
+ locale?: GeneratedTypes['locale'];
43
43
  /**
44
44
  * The payload object
45
45
  */
@@ -71,9 +71,9 @@ export type CustomPayloadRequest<U = any> = {
71
71
  */
72
72
  transactionIDPromise?: Promise<void>;
73
73
  /** The signed in user */
74
- user: (U & User) | null;
74
+ user: (U & GeneratedTypes['user']) | null;
75
75
  } & 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>;
76
+ export type PayloadRequest<U = unknown> = Partial<Request> & Required<Pick<Request, 'headers'>> & CustomPayloadRequest<U>;
77
77
  export interface RequestContext {
78
78
  [key: string]: unknown;
79
79
  }
@@ -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 { User } from '../auth/types.js'\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 CustomPayloadRequest<U = unknown> = {\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?: 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 PayloadRequest<U = unknown> = 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":"AA4GA,OAAO,SAASA,iBAAiBC,GAAQ;IACvC,OAAOA,KAAKC,aAAaD,KAAKE;AAChC"}
@@ -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,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,CA+NpB,CAAA"}
@@ -35,7 +35,8 @@ 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
  }
@@ -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 { 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({\n data: data as FileData,\n req,\n uploadConfig: collectionConfig.upload,\n })\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 = 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","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","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,9 +1,10 @@
1
- import type { PayloadRequest } from '../types/index.ts';
2
- import type { File, FileData } from './types.js';
1
+ import type { PayloadRequest } from '../types/index.js';
2
+ import type { File, FileData, UploadConfig } from './types.js';
3
3
  type Args = {
4
4
  data: FileData;
5
5
  req: PayloadRequest;
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,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAI9D,KAAK,IAAI,GAAG;IACV,IAAI,EAAE,QAAQ,CAAA;IACd,GAAG,EAAE,cAAc,CAAA;IACnB,YAAY,EAAE,YAAY,CAAA;CAC3B,CAAA;AACD,eAAO,MAAM,eAAe,gCAAuC,IAAI,KAAG,QAAQ,IAAI,CA8BrF,CAAA"}
@@ -1,14 +1,15 @@
1
1
  import { APIError } from '../errors/index.js';
2
- export const getExternalFile = async ({ data, req })=>{
2
+ export const getExternalFile = async ({ data, req, uploadConfig })=>{
3
3
  const baseUrl = req.origin || `${req.protocol}://${req.host}`;
4
4
  const { filename, url } = data;
5
5
  if (typeof url === 'string') {
6
6
  const fileURL = `${baseUrl}${url}`;
7
+ const headers = uploadConfig.externalFileHeaderFilter ? uploadConfig.externalFileHeaderFilter(Object.fromEntries(new Headers(req.headers))) : {
8
+ cookie: req.headers.get('cookie')
9
+ };
7
10
  const res = await fetch(fileURL, {
8
11
  credentials: 'include',
9
- headers: {
10
- ...req.headers
11
- },
12
+ headers,
12
13
  method: 'GET'
13
14
  });
14
15
  if (!res.ok) throw new APIError(`Failed to fetch file from ${fileURL}`, res.status);