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,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utilities/telemetry/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAM7D,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;IAChD,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,KAAK,cAAc,GAAG,cAAc,GAAG,eAAe,CAAA;AAEtD,KAAK,IAAI,GAAG;IACV,KAAK,EAAE,cAAc,CAAA;IACrB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,SAAS,uBAA8B,IAAI,KAAG,QAAQ,IAAI,CAwBtE,CAAA;AAsDD,eAAO,MAAM,iBAAiB,gBAAiB,WAAW,KAAG,MAE5D,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utilities/telemetry/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAM7D,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,IAAI,GAAG,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACvC,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;IAChD,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,KAAK,cAAc,GAAG,cAAc,GAAG,eAAe,CAAA;AAEtD,KAAK,IAAI,GAAG;IACV,KAAK,EAAE,cAAc,CAAA;IACrB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAID,eAAO,MAAM,SAAS,uBAA8B,IAAI,KAAG,QAAQ,IAAI,CAsCtE,CAAA;AA4DD,eAAO,MAAM,iBAAiB,gBAAiB,WAAW,KAAG,MAE5D,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { execSync } from 'child_process';
2
+ import ciInfo from 'ci-info';
2
3
  import ConfImport from 'conf';
3
4
  import { randomBytes } from 'crypto';
4
5
  import findUp from 'find-up';
@@ -7,17 +8,34 @@ import path from 'path';
7
8
  import { fileURLToPath } from 'url';
8
9
  import { oneWayHash } from './oneWayHash.js';
9
10
  const Conf = ConfImport.default || ConfImport;
11
+ let baseEvent = null;
10
12
  export const sendEvent = async ({ event, payload })=>{
11
- if (payload.config.telemetry !== false) {
12
- try {
13
- const packageJSON = await getPackageJSON();
14
- const baseEvent = {
13
+ try {
14
+ const packageJSON = await getPackageJSON();
15
+ // Only generate the base event once
16
+ if (!baseEvent) {
17
+ baseEvent = {
18
+ ciName: ciInfo.isCI ? ciInfo.name : null,
15
19
  envID: getEnvID(),
20
+ isCI: ciInfo.isCI,
16
21
  nodeEnv: process.env.NODE_ENV || 'development',
17
22
  nodeVersion: process.version,
23
+ payloadPackages: getPayloadPackages(packageJSON),
18
24
  payloadVersion: getPayloadVersion(packageJSON),
19
25
  projectID: getProjectID(payload, packageJSON)
20
26
  };
27
+ }
28
+ if (process.env.PAYLOAD_TELEMETRY_DEBUG) {
29
+ payload.logger.info({
30
+ event: {
31
+ ...baseEvent,
32
+ ...event
33
+ },
34
+ msg: 'Telemetry Event'
35
+ });
36
+ return;
37
+ }
38
+ if (payload.config.telemetry !== false) {
21
39
  await fetch('https://telemetry.payloadcms.com/events', {
22
40
  body: JSON.stringify({
23
41
  ...baseEvent,
@@ -28,9 +46,9 @@ export const sendEvent = async ({ event, payload })=>{
28
46
  },
29
47
  method: 'post'
30
48
  });
31
- } catch (_) {
32
- // Eat any errors in sending telemetry event
33
49
  }
50
+ } catch (_) {
51
+ // Eat any errors in sending telemetry event
34
52
  }
35
53
  };
36
54
  /**
@@ -62,6 +80,14 @@ const getGitID = (payload)=>{
62
80
  return null;
63
81
  }
64
82
  };
83
+ const getPayloadPackages = (packageJSON)=>{
84
+ return Object.keys(packageJSON.dependencies || {}).reduce((acc, key)=>{
85
+ return key.startsWith('@payloadcms/') ? {
86
+ ...acc,
87
+ [key]: packageJSON.dependencies[key]
88
+ } : acc;
89
+ }, {});
90
+ };
65
91
  const getPackageJSON = async ()=>{
66
92
  const filename = fileURLToPath(import.meta.url);
67
93
  const dirname = path.dirname(filename);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utilities/telemetry/index.ts"],"sourcesContent":["import { execSync } from 'child_process'\nimport ConfImport from 'conf'\nimport { randomBytes } from 'crypto'\nimport findUp from 'find-up'\nimport fs from 'fs'\nimport path from 'path'\nimport { fileURLToPath } from 'url'\n\nimport type { Payload } from '../../types/index.js'\nimport type { AdminInitEvent } from './events/adminInit.js'\nimport type { ServerInitEvent } from './events/serverInit.js'\n\nimport { oneWayHash } from './oneWayHash.js'\n\nconst Conf = (ConfImport.default || ConfImport) as unknown as typeof ConfImport.default\n\nexport type BaseEvent = {\n envID: string\n nodeEnv: string\n nodeVersion: string\n payloadVersion: string\n projectID: string\n}\n\ntype PackageJSON = {\n dependencies: Record<string, string | undefined>\n name: string\n}\n\ntype TelemetryEvent = AdminInitEvent | ServerInitEvent\n\ntype Args = {\n event: TelemetryEvent\n payload: Payload\n}\n\nexport const sendEvent = async ({ event, payload }: Args): Promise<void> => {\n if (payload.config.telemetry !== false) {\n try {\n const packageJSON = await getPackageJSON()\n\n const baseEvent: BaseEvent = {\n envID: getEnvID(),\n nodeEnv: process.env.NODE_ENV || 'development',\n nodeVersion: process.version,\n payloadVersion: getPayloadVersion(packageJSON),\n projectID: getProjectID(payload, packageJSON),\n }\n\n await fetch('https://telemetry.payloadcms.com/events', {\n body: JSON.stringify({ ...baseEvent, ...event }),\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n } catch (_) {\n // Eat any errors in sending telemetry event\n }\n }\n}\n\n/**\n * This is a quasi-persistent identifier used to dedupe recurring events. It's\n * generated from random data and completely anonymous.\n */\nconst getEnvID = (): string => {\n const conf = new Conf()\n const ENV_ID = 'envID'\n\n const val = conf.get(ENV_ID)\n if (val) {\n return val as string\n }\n\n const generated = randomBytes(32).toString('hex')\n conf.set(ENV_ID, generated)\n return generated\n}\n\nconst getProjectID = (payload: Payload, packageJSON: PackageJSON): string => {\n const projectID =\n getGitID(payload) ||\n getPackageJSONID(payload, packageJSON) ||\n payload.config.serverURL ||\n process.cwd()\n return oneWayHash(projectID, payload.secret)\n}\n\nconst getGitID = (payload: Payload) => {\n try {\n const originBuffer = execSync('git config --local --get remote.origin.url', {\n stdio: 'pipe',\n timeout: 1000,\n })\n\n return oneWayHash(String(originBuffer).trim(), payload.secret)\n } catch (_) {\n return null\n }\n}\n\nconst getPackageJSON = async (): Promise<PackageJSON> => {\n const filename = fileURLToPath(import.meta.url)\n const dirname = path.dirname(filename)\n const packageJsonPath = await findUp('package.json', { cwd: dirname })\n const jsonContent: PackageJSON = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'))\n return jsonContent\n}\n\nconst getPackageJSONID = (payload: Payload, packageJSON: PackageJSON): string => {\n return oneWayHash(packageJSON.name, payload.secret)\n}\n\nexport const getPayloadVersion = (packageJSON: PackageJSON): string => {\n return packageJSON?.dependencies?.payload ?? ''\n}\n"],"names":["execSync","ConfImport","randomBytes","findUp","fs","path","fileURLToPath","oneWayHash","Conf","default","sendEvent","event","payload","config","telemetry","packageJSON","getPackageJSON","baseEvent","envID","getEnvID","nodeEnv","process","env","NODE_ENV","nodeVersion","version","payloadVersion","getPayloadVersion","projectID","getProjectID","fetch","body","JSON","stringify","headers","method","_","conf","ENV_ID","val","get","generated","toString","set","getGitID","getPackageJSONID","serverURL","cwd","secret","originBuffer","stdio","timeout","String","trim","filename","url","dirname","packageJsonPath","jsonContent","parse","readFileSync","name","dependencies"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,QAAQ,QAAQ,gBAAe;AACxC,OAAOC,gBAAgB,OAAM;AAC7B,SAASC,WAAW,QAAQ,SAAQ;AACpC,OAAOC,YAAY,UAAS;AAC5B,OAAOC,QAAQ,KAAI;AACnB,OAAOC,UAAU,OAAM;AACvB,SAASC,aAAa,QAAQ,MAAK;AAMnC,SAASC,UAAU,QAAQ,kBAAiB;AAE5C,MAAMC,OAAQP,WAAWQ,OAAO,IAAIR;AAsBpC,OAAO,MAAMS,YAAY,OAAO,EAAEC,KAAK,EAAEC,OAAO,EAAQ;IACtD,IAAIA,QAAQC,MAAM,CAACC,SAAS,KAAK,OAAO;QACtC,IAAI;YACF,MAAMC,cAAc,MAAMC;YAE1B,MAAMC,YAAuB;gBAC3BC,OAAOC;gBACPC,SAASC,QAAQC,GAAG,CAACC,QAAQ,IAAI;gBACjCC,aAAaH,QAAQI,OAAO;gBAC5BC,gBAAgBC,kBAAkBZ;gBAClCa,WAAWC,aAAajB,SAASG;YACnC;YAEA,MAAMe,MAAM,2CAA2C;gBACrDC,MAAMC,KAAKC,SAAS,CAAC;oBAAE,GAAGhB,SAAS;oBAAE,GAAGN,KAAK;gBAAC;gBAC9CuB,SAAS;oBACP,gBAAgB;gBAClB;gBACAC,QAAQ;YACV;QACF,EAAE,OAAOC,GAAG;QACV,4CAA4C;QAC9C;IACF;AACF,EAAC;AAED;;;CAGC,GACD,MAAMjB,WAAW;IACf,MAAMkB,OAAO,IAAI7B;IACjB,MAAM8B,SAAS;IAEf,MAAMC,MAAMF,KAAKG,GAAG,CAACF;IACrB,IAAIC,KAAK;QACP,OAAOA;IACT;IAEA,MAAME,YAAYvC,YAAY,IAAIwC,QAAQ,CAAC;IAC3CL,KAAKM,GAAG,CAACL,QAAQG;IACjB,OAAOA;AACT;AAEA,MAAMZ,eAAe,CAACjB,SAAkBG;IACtC,MAAMa,YACJgB,SAAShC,YACTiC,iBAAiBjC,SAASG,gBAC1BH,QAAQC,MAAM,CAACiC,SAAS,IACxBzB,QAAQ0B,GAAG;IACb,OAAOxC,WAAWqB,WAAWhB,QAAQoC,MAAM;AAC7C;AAEA,MAAMJ,WAAW,CAAChC;IAChB,IAAI;QACF,MAAMqC,eAAejD,SAAS,8CAA8C;YAC1EkD,OAAO;YACPC,SAAS;QACX;QAEA,OAAO5C,WAAW6C,OAAOH,cAAcI,IAAI,IAAIzC,QAAQoC,MAAM;IAC/D,EAAE,OAAOZ,GAAG;QACV,OAAO;IACT;AACF;AAEA,MAAMpB,iBAAiB;IACrB,MAAMsC,WAAWhD,cAAc,YAAYiD,GAAG;IAC9C,MAAMC,UAAUnD,KAAKmD,OAAO,CAACF;IAC7B,MAAMG,kBAAkB,MAAMtD,OAAO,gBAAgB;QAAE4C,KAAKS;IAAQ;IACpE,MAAME,cAA2B1B,KAAK2B,KAAK,CAACvD,GAAGwD,YAAY,CAACH,iBAAiB;IAC7E,OAAOC;AACT;AAEA,MAAMb,mBAAmB,CAACjC,SAAkBG;IAC1C,OAAOR,WAAWQ,YAAY8C,IAAI,EAAEjD,QAAQoC,MAAM;AACpD;AAEA,OAAO,MAAMrB,oBAAoB,CAACZ;IAChC,OAAOA,aAAa+C,cAAclD,WAAW;AAC/C,EAAC"}
1
+ {"version":3,"sources":["../../../src/utilities/telemetry/index.ts"],"sourcesContent":["import { execSync } from 'child_process'\nimport ciInfo from 'ci-info'\nimport ConfImport from 'conf'\nimport { randomBytes } from 'crypto'\nimport findUp from 'find-up'\nimport fs from 'fs'\nimport path from 'path'\nimport { fileURLToPath } from 'url'\n\nimport type { Payload } from '../../types/index.js'\nimport type { AdminInitEvent } from './events/adminInit.js'\nimport type { ServerInitEvent } from './events/serverInit.js'\n\nimport { oneWayHash } from './oneWayHash.js'\n\nconst Conf = (ConfImport.default || ConfImport) as unknown as typeof ConfImport.default\n\nexport type BaseEvent = {\n ciName: null | string\n envID: string\n isCI: boolean\n nodeEnv: string\n nodeVersion: string\n payloadPackages: Record<string, string>\n payloadVersion: string\n projectID: string\n}\n\ntype PackageJSON = {\n dependencies: Record<string, string | undefined>\n name: string\n}\n\ntype TelemetryEvent = AdminInitEvent | ServerInitEvent\n\ntype Args = {\n event: TelemetryEvent\n payload: Payload\n}\n\nlet baseEvent: BaseEvent | null = null\n\nexport const sendEvent = async ({ event, payload }: Args): Promise<void> => {\n try {\n const packageJSON = await getPackageJSON()\n\n // Only generate the base event once\n if (!baseEvent) {\n baseEvent = {\n ciName: ciInfo.isCI ? ciInfo.name : null,\n envID: getEnvID(),\n isCI: ciInfo.isCI,\n nodeEnv: process.env.NODE_ENV || 'development',\n nodeVersion: process.version,\n payloadPackages: getPayloadPackages(packageJSON),\n payloadVersion: getPayloadVersion(packageJSON),\n projectID: getProjectID(payload, packageJSON),\n }\n }\n\n if (process.env.PAYLOAD_TELEMETRY_DEBUG) {\n payload.logger.info({\n event: { ...baseEvent, ...event },\n msg: 'Telemetry Event',\n })\n return\n }\n\n if (payload.config.telemetry !== false) {\n await fetch('https://telemetry.payloadcms.com/events', {\n body: JSON.stringify({ ...baseEvent, ...event }),\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n }\n } catch (_) {\n // Eat any errors in sending telemetry event\n }\n}\n\n/**\n * This is a quasi-persistent identifier used to dedupe recurring events. It's\n * generated from random data and completely anonymous.\n */\nconst getEnvID = (): string => {\n const conf = new Conf()\n const ENV_ID = 'envID'\n\n const val = conf.get(ENV_ID)\n if (val) {\n return val as string\n }\n\n const generated = randomBytes(32).toString('hex')\n conf.set(ENV_ID, generated)\n return generated\n}\n\nconst getProjectID = (payload: Payload, packageJSON: PackageJSON): string => {\n const projectID =\n getGitID(payload) ||\n getPackageJSONID(payload, packageJSON) ||\n payload.config.serverURL ||\n process.cwd()\n return oneWayHash(projectID, payload.secret)\n}\n\nconst getGitID = (payload: Payload) => {\n try {\n const originBuffer = execSync('git config --local --get remote.origin.url', {\n stdio: 'pipe',\n timeout: 1000,\n })\n\n return oneWayHash(String(originBuffer).trim(), payload.secret)\n } catch (_) {\n return null\n }\n}\n\nconst getPayloadPackages = (packageJSON: PackageJSON): Record<string, string> => {\n return Object.keys(packageJSON.dependencies || {}).reduce((acc, key) => {\n return key.startsWith('@payloadcms/') ? { ...acc, [key]: packageJSON.dependencies[key] } : acc\n }, {})\n}\n\nconst getPackageJSON = async (): Promise<PackageJSON> => {\n const filename = fileURLToPath(import.meta.url)\n const dirname = path.dirname(filename)\n const packageJsonPath = await findUp('package.json', { cwd: dirname })\n const jsonContent: PackageJSON = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'))\n return jsonContent\n}\n\nconst getPackageJSONID = (payload: Payload, packageJSON: PackageJSON): string => {\n return oneWayHash(packageJSON.name, payload.secret)\n}\n\nexport const getPayloadVersion = (packageJSON: PackageJSON): string => {\n return packageJSON?.dependencies?.payload ?? ''\n}\n"],"names":["execSync","ciInfo","ConfImport","randomBytes","findUp","fs","path","fileURLToPath","oneWayHash","Conf","default","baseEvent","sendEvent","event","payload","packageJSON","getPackageJSON","ciName","isCI","name","envID","getEnvID","nodeEnv","process","env","NODE_ENV","nodeVersion","version","payloadPackages","getPayloadPackages","payloadVersion","getPayloadVersion","projectID","getProjectID","PAYLOAD_TELEMETRY_DEBUG","logger","info","msg","config","telemetry","fetch","body","JSON","stringify","headers","method","_","conf","ENV_ID","val","get","generated","toString","set","getGitID","getPackageJSONID","serverURL","cwd","secret","originBuffer","stdio","timeout","String","trim","Object","keys","dependencies","reduce","acc","key","startsWith","filename","url","dirname","packageJsonPath","jsonContent","parse","readFileSync"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -112,7 +112,7 @@ export const saveVersion = async ({ id, autosave, collection, docWithLocales: do
112
112
  createdVersion.createdAt = result.createdAt;
113
113
  createdVersion.updatedAt = result.updatedAt;
114
114
  createdVersion = sanitizeInternalFields(createdVersion);
115
- createdVersion.id = id;
115
+ createdVersion.id = result.parent;
116
116
  return createdVersion;
117
117
  };
118
118
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/versions/saveVersion.ts"],"sourcesContent":["import type { SanitizedCollectionConfig, TypeWithID } from '../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../globals/config/types.js'\nimport type { Payload } from '../index.js'\nimport type { PayloadRequest } from '../types/index.js'\n\nimport { deepCopyObject } from '../utilities/deepCopyObject.js'\nimport sanitizeInternalFields from '../utilities/sanitizeInternalFields.js'\nimport { enforceMaxVersions } from './enforceMaxVersions.js'\n\ntype Args = {\n autosave?: boolean\n collection?: SanitizedCollectionConfig\n docWithLocales: any\n draft?: boolean\n global?: SanitizedGlobalConfig\n id?: number | string\n payload: Payload\n req?: PayloadRequest\n}\n\nexport const saveVersion = async ({\n id,\n autosave,\n collection,\n docWithLocales: doc,\n draft,\n global,\n payload,\n req,\n}: Args): Promise<TypeWithID> => {\n let result\n let createNewVersion = true\n const now = new Date().toISOString()\n const versionData = deepCopyObject(doc)\n if (draft) versionData._status = 'draft'\n if (versionData._id) delete versionData._id\n\n try {\n if (autosave) {\n let docs\n const findVersionArgs = {\n limit: 1,\n pagination: false,\n req,\n sort: '-updatedAt',\n }\n if (collection) {\n ;({ docs } = await payload.db.findVersions({\n ...findVersionArgs,\n collection: collection.slug,\n req,\n where: {\n parent: {\n equals: id,\n },\n },\n }))\n } else {\n ;({ docs } = await payload.db.findGlobalVersions({\n ...findVersionArgs,\n global: global.slug,\n req,\n }))\n }\n const [latestVersion] = docs\n\n // overwrite the latest version if it's set to autosave\n if (latestVersion?.autosave === true) {\n createNewVersion = false\n\n const data: Record<string, unknown> = {\n createdAt: new Date(latestVersion.createdAt).toISOString(),\n updatedAt: draft ? now : new Date(doc.updatedAt).toISOString(),\n version: versionData,\n }\n\n const updateVersionArgs = {\n id: latestVersion.id,\n req,\n versionData: data as TypeWithID,\n }\n\n if (collection) {\n result = await payload.db.updateVersion({\n ...updateVersionArgs,\n collection: collection.slug,\n req,\n })\n } else {\n result = await payload.db.updateGlobalVersion({\n ...updateVersionArgs,\n global: global.slug,\n req,\n })\n }\n }\n }\n\n if (createNewVersion) {\n if (collection) {\n result = await payload.db.createVersion({\n autosave: Boolean(autosave),\n collectionSlug: collection.slug,\n createdAt: doc?.createdAt ? new Date(doc.createdAt).toISOString() : now,\n parent: collection ? id : undefined,\n req,\n updatedAt: draft ? now : new Date(doc.updatedAt).toISOString(),\n versionData,\n })\n }\n\n if (global) {\n result = await payload.db.createGlobalVersion({\n autosave: Boolean(autosave),\n createdAt: doc?.createdAt ? new Date(doc.createdAt).toISOString() : now,\n globalSlug: global.slug,\n parent: collection ? id : undefined,\n req,\n updatedAt: draft ? now : new Date(doc.updatedAt).toISOString(),\n versionData,\n })\n }\n }\n } catch (err) {\n let errorMessage: string\n\n if (collection)\n errorMessage = `There was an error while saving a version for the ${collection.labels.singular} with ID ${id}.`\n if (global)\n errorMessage = `There was an error while saving a version for the global ${global.label}.`\n payload.logger.error(errorMessage)\n payload.logger.error(err)\n }\n\n let max = 100\n\n if (collection && typeof collection.versions.maxPerDoc === 'number')\n max = collection.versions.maxPerDoc\n if (global && typeof global.versions.max === 'number') max = global.versions.max\n\n if (createNewVersion && max > 0) {\n await enforceMaxVersions({\n id,\n collection,\n global,\n max,\n payload,\n req,\n })\n }\n\n let createdVersion = result.version\n createdVersion.createdAt = result.createdAt\n createdVersion.updatedAt = result.updatedAt\n\n createdVersion = sanitizeInternalFields(createdVersion)\n createdVersion.id = id\n\n return createdVersion\n}\n"],"names":["deepCopyObject","sanitizeInternalFields","enforceMaxVersions","saveVersion","id","autosave","collection","docWithLocales","doc","draft","global","payload","req","result","createNewVersion","now","Date","toISOString","versionData","_status","_id","docs","findVersionArgs","limit","pagination","sort","db","findVersions","slug","where","parent","equals","findGlobalVersions","latestVersion","data","createdAt","updatedAt","version","updateVersionArgs","updateVersion","updateGlobalVersion","createVersion","Boolean","collectionSlug","undefined","createGlobalVersion","globalSlug","err","errorMessage","labels","singular","label","logger","error","max","versions","maxPerDoc","createdVersion"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../src/versions/saveVersion.ts"],"sourcesContent":["import type { SanitizedCollectionConfig, TypeWithID } from '../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../globals/config/types.js'\nimport type { Payload } from '../index.js'\nimport type { PayloadRequest } from '../types/index.js'\n\nimport { deepCopyObject } from '../utilities/deepCopyObject.js'\nimport sanitizeInternalFields from '../utilities/sanitizeInternalFields.js'\nimport { enforceMaxVersions } from './enforceMaxVersions.js'\n\ntype Args = {\n autosave?: boolean\n collection?: SanitizedCollectionConfig\n docWithLocales: any\n draft?: boolean\n global?: SanitizedGlobalConfig\n id?: number | string\n payload: Payload\n req?: PayloadRequest\n}\n\nexport const saveVersion = async ({\n id,\n autosave,\n collection,\n docWithLocales: doc,\n draft,\n global,\n payload,\n req,\n}: Args): Promise<TypeWithID> => {\n let result\n let createNewVersion = true\n const now = new Date().toISOString()\n const versionData = deepCopyObject(doc)\n if (draft) versionData._status = 'draft'\n if (versionData._id) delete versionData._id\n\n try {\n if (autosave) {\n let docs\n const findVersionArgs = {\n limit: 1,\n pagination: false,\n req,\n sort: '-updatedAt',\n }\n if (collection) {\n ;({ docs } = await payload.db.findVersions({\n ...findVersionArgs,\n collection: collection.slug,\n req,\n where: {\n parent: {\n equals: id,\n },\n },\n }))\n } else {\n ;({ docs } = await payload.db.findGlobalVersions({\n ...findVersionArgs,\n global: global.slug,\n req,\n }))\n }\n const [latestVersion] = docs\n\n // overwrite the latest version if it's set to autosave\n if (latestVersion?.autosave === true) {\n createNewVersion = false\n\n const data: Record<string, unknown> = {\n createdAt: new Date(latestVersion.createdAt).toISOString(),\n updatedAt: draft ? now : new Date(doc.updatedAt).toISOString(),\n version: versionData,\n }\n\n const updateVersionArgs = {\n id: latestVersion.id,\n req,\n versionData: data as TypeWithID,\n }\n\n if (collection) {\n result = await payload.db.updateVersion({\n ...updateVersionArgs,\n collection: collection.slug,\n req,\n })\n } else {\n result = await payload.db.updateGlobalVersion({\n ...updateVersionArgs,\n global: global.slug,\n req,\n })\n }\n }\n }\n\n if (createNewVersion) {\n if (collection) {\n result = await payload.db.createVersion({\n autosave: Boolean(autosave),\n collectionSlug: collection.slug,\n createdAt: doc?.createdAt ? new Date(doc.createdAt).toISOString() : now,\n parent: collection ? id : undefined,\n req,\n updatedAt: draft ? now : new Date(doc.updatedAt).toISOString(),\n versionData,\n })\n }\n\n if (global) {\n result = await payload.db.createGlobalVersion({\n autosave: Boolean(autosave),\n createdAt: doc?.createdAt ? new Date(doc.createdAt).toISOString() : now,\n globalSlug: global.slug,\n parent: collection ? id : undefined,\n req,\n updatedAt: draft ? now : new Date(doc.updatedAt).toISOString(),\n versionData,\n })\n }\n }\n } catch (err) {\n let errorMessage: string\n\n if (collection)\n errorMessage = `There was an error while saving a version for the ${collection.labels.singular} with ID ${id}.`\n if (global)\n errorMessage = `There was an error while saving a version for the global ${global.label}.`\n payload.logger.error(errorMessage)\n payload.logger.error(err)\n }\n\n let max = 100\n\n if (collection && typeof collection.versions.maxPerDoc === 'number')\n max = collection.versions.maxPerDoc\n if (global && typeof global.versions.max === 'number') max = global.versions.max\n\n if (createNewVersion && max > 0) {\n await enforceMaxVersions({\n id,\n collection,\n global,\n max,\n payload,\n req,\n })\n }\n\n let createdVersion = result.version\n createdVersion.createdAt = result.createdAt\n createdVersion.updatedAt = result.updatedAt\n\n createdVersion = sanitizeInternalFields(createdVersion)\n createdVersion.id = result.parent\n\n return createdVersion\n}\n"],"names":["deepCopyObject","sanitizeInternalFields","enforceMaxVersions","saveVersion","id","autosave","collection","docWithLocales","doc","draft","global","payload","req","result","createNewVersion","now","Date","toISOString","versionData","_status","_id","docs","findVersionArgs","limit","pagination","sort","db","findVersions","slug","where","parent","equals","findGlobalVersions","latestVersion","data","createdAt","updatedAt","version","updateVersionArgs","updateVersion","updateGlobalVersion","createVersion","Boolean","collectionSlug","undefined","createGlobalVersion","globalSlug","err","errorMessage","labels","singular","label","logger","error","max","versions","maxPerDoc","createdVersion"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payload",
3
- "version": "3.0.0-alpha.61",
3
+ "version": "3.0.0-alpha.63",
4
4
  "description": "Node, React and MongoDB Headless CMS and Application Framework",
5
5
  "license": "MIT",
6
6
  "main": "./dist/index.js",
@@ -26,6 +26,7 @@
26
26
  "@swc-node/sourcemap-support": "^0.5.0",
27
27
  "@types/probe-image-size": "^7.2.4",
28
28
  "bson-objectid": "2.0.4",
29
+ "ci-info": "^4.0.0",
29
30
  "conf": "10.2.0",
30
31
  "console-table-printer": "2.11.2",
31
32
  "dataloader": "2.2.2",
@@ -35,21 +36,29 @@
35
36
  "find-up": "4.1.0",
36
37
  "get-tsconfig": "^4.7.2",
37
38
  "http-status": "1.6.2",
39
+ "image-size": "^1.1.1",
38
40
  "joi": "^17.12.1",
39
41
  "json-schema-to-typescript": "11.0.3",
40
42
  "jsonwebtoken": "9.0.1",
41
43
  "minimist": "1.2.8",
42
44
  "mkdirp": "1.0.4",
43
45
  "monaco-editor": "0.38.0",
44
- "nodemailer": "6.9.10",
45
46
  "pino": "8.15.0",
46
47
  "pino-pretty": "10.2.0",
47
48
  "pluralize": "8.0.0",
48
- "probe-image-size": "^7.2.3",
49
49
  "sanitize-filename": "1.6.3",
50
50
  "scheduler": "0.23.0",
51
51
  "scmp": "2.1.0",
52
- "@payloadcms/translations": "3.0.0-alpha.61"
52
+ "uuid": "^9.0.1",
53
+ "@payloadcms/translations": "3.0.0-alpha.63"
54
+ },
55
+ "peerDependencies": {
56
+ "@swc/core": "^1.4.13"
57
+ },
58
+ "peerDependenciesMeta": {
59
+ "@swc/core": {
60
+ "optional": true
61
+ }
53
62
  },
54
63
  "devDependencies": {
55
64
  "@monaco-editor/react": "4.5.1",
@@ -97,7 +106,7 @@
97
106
  "@payloadcms/eslint-config": "1.1.1"
98
107
  },
99
108
  "engines": {
100
- "node": ">=18.17.0"
109
+ "node": ">=18.20.2"
101
110
  },
102
111
  "files": [
103
112
  "bin.js",
@@ -156,7 +165,7 @@
156
165
  },
157
166
  "sideEffects": false,
158
167
  "scripts": {
159
- "build": "pnpm copyfiles && pnpm build:swc && pnpm build:types && tsx ../../scripts/exportPointerFiles.ts ../packages/payload dist/exports",
168
+ "build": "pnpm copyfiles && pnpm build:swc && pnpm build:types",
160
169
  "build:swc": "swc ./src -d ./dist --config-file .swcrc",
161
170
  "build:types": "tsc --emitDeclarationOnly --outDir dist",
162
171
  "build:watch": "nodemon --watch 'src/**' --ext 'ts,tsx' --exec \"pnpm build:tsc\"",
package/src/index.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
 
6
5
  import crypto from 'crypto'
@@ -16,6 +15,7 @@ import type { Result as LoginResult } from './auth/operations/login.js'
16
15
  import type { Result as ResetPasswordResult } from './auth/operations/resetPassword.js'
17
16
  import type { AuthStrategy } from './auth/types.js'
18
17
  import type { BulkOperationResult, Collection, TypeWithID } from './collections/config/types.js'
18
+ import type { Options as CountOptions } from './collections/operations/local/count.js'
19
19
  import type { Options as CreateOptions } from './collections/operations/local/create.js'
20
20
  import type {
21
21
  ByIDOptions as DeleteByIDOptions,
@@ -33,9 +33,9 @@ import type {
33
33
  ManyOptions as UpdateManyOptions,
34
34
  Options as UpdateOptions,
35
35
  } from './collections/operations/local/update.js'
36
- import type { EmailOptions, InitOptions, SanitizedConfig } from './config/types.js'
36
+ import type { InitOptions, SanitizedConfig } from './config/types.js'
37
37
  import type { BaseDatabaseAdapter, PaginatedDocs } from './database/types.js'
38
- import type { BuildEmailResult } from './email/types.js'
38
+ import type { InitializedEmailAdapter } from './email/types.js'
39
39
  import type { TypeWithID as GlobalTypeWithID, Globals } from './globals/config/types.js'
40
40
  import type { Options as FindGlobalOptions } from './globals/operations/local/findOne.js'
41
41
  import type { Options as FindGlobalVersionByIDOptions } from './globals/operations/local/findVersionByID.js'
@@ -49,10 +49,10 @@ import { APIKeyAuthentication } from './auth/strategies/apiKey.js'
49
49
  import { JWTAuthentication } from './auth/strategies/jwt.js'
50
50
  import localOperations from './collections/operations/local/index.js'
51
51
  import { validateSchema } from './config/validate.js'
52
- import buildEmail from './email/build.js'
53
- import { defaults as emailDefaults } from './email/defaults.js'
54
- import sendEmail from './email/sendEmail.js'
52
+ import { consoleEmailAdapter } from './email/consoleEmailAdapter.js'
53
+ import { fieldAffectsData } from './exports/types.js'
55
54
  import localGlobalOperations from './globals/operations/local/index.js'
55
+ import flattenFields from './utilities/flattenTopLevelFields.js'
56
56
  import Logger from './utilities/logger.js'
57
57
  import { serverInit as serverInitTelemetry } from './utilities/telemetry/events/serverInit.js'
58
58
 
@@ -79,6 +79,18 @@ export class BasePayload<TGeneratedTypes extends GeneratedTypes> {
79
79
 
80
80
  config: SanitizedConfig
81
81
 
82
+ /**
83
+ * @description Performs count operation
84
+ * @param options
85
+ * @returns count of documents satisfying query
86
+ */
87
+ count = async <T extends keyof TGeneratedTypes['collections']>(
88
+ options: CountOptions<T>,
89
+ ): Promise<{ totalDocs: number }> => {
90
+ const { count } = localOperations
91
+ return count(this, options)
92
+ }
93
+
82
94
  /**
83
95
  * @description Performs create operation
84
96
  * @param options
@@ -90,7 +102,6 @@ export class BasePayload<TGeneratedTypes extends GeneratedTypes> {
90
102
  const { create } = localOperations
91
103
  return create<T>(this, options)
92
104
  }
93
-
94
105
  db: DatabaseAdapter
95
106
 
96
107
  decrypt = decrypt
@@ -102,9 +113,7 @@ export class BasePayload<TGeneratedTypes extends GeneratedTypes> {
102
113
  return duplicate<T>(this, options)
103
114
  }
104
115
 
105
- email: BuildEmailResult
106
-
107
- emailOptions: EmailOptions
116
+ email: InitializedEmailAdapter
108
117
 
109
118
  // TODO: re-implement or remove?
110
119
  // errorHandler: ErrorHandler
@@ -253,7 +262,7 @@ export class BasePayload<TGeneratedTypes extends GeneratedTypes> {
253
262
 
254
263
  secret: string
255
264
 
256
- sendEmail: (message: SendMailOptions) => Promise<unknown>
265
+ sendEmail: InitializedEmailAdapter['sendEmail']
257
266
 
258
267
  types: {
259
268
  arrayTypes: any
@@ -340,8 +349,17 @@ export class BasePayload<TGeneratedTypes extends GeneratedTypes> {
340
349
  }
341
350
 
342
351
  this.config.collections.forEach((collection) => {
352
+ const customID = flattenFields(collection.fields).find(
353
+ (field) => fieldAffectsData(field) && field.name === 'id',
354
+ )
355
+
356
+ let customIDType
357
+
358
+ if (customID?.type === 'number' || customID?.type === 'text') customIDType = customID.type
359
+
343
360
  this.collections[collection.slug] = {
344
361
  config: collection,
362
+ customIDType,
345
363
  }
346
364
  })
347
365
 
@@ -356,17 +374,21 @@ export class BasePayload<TGeneratedTypes extends GeneratedTypes> {
356
374
  await this.db.connect()
357
375
  }
358
376
 
359
- // Configure email service
360
- const emailOptions = options.email ? { ...options.email } : this.config.email
361
- if (options.email && this.config.email) {
377
+ // Load email adapter
378
+ if (this.config.email instanceof Promise) {
379
+ const awaitedAdapter = await this.config.email
380
+ this.email = awaitedAdapter({ payload: this })
381
+ } else if (this.config.email) {
382
+ this.email = this.config.email({ payload: this })
383
+ } else {
362
384
  this.logger.warn(
363
- 'Email options provided in both init options and config. Using init options.',
385
+ `No email adapter provided. Email will be written to console. More info at https://payloadcms.com/docs/email/overview.`,
364
386
  )
387
+
388
+ this.email = consoleEmailAdapter({ payload: this })
365
389
  }
366
390
 
367
- this.emailOptions = emailOptions ?? emailDefaults
368
- this.email = buildEmail(this.emailOptions, this.logger)
369
- this.sendEmail = sendEmail.bind(this)
391
+ this.sendEmail = this.email['sendEmail']
370
392
 
371
393
  serverInitTelemetry(this)
372
394
 
@@ -473,6 +495,8 @@ type GeneratedTypes = {
473
495
  globals: {
474
496
  [slug: number | string | symbol]: GlobalTypeWithID & Record<string, unknown>
475
497
  }
498
+ locale: null | string
499
+ user: TypeWithID & Record<string, unknown> & { collection: string }
476
500
  }
477
501
 
478
502
  type Payload = BasePayload<GeneratedTypes>
package/auth.d.ts DELETED
@@ -1,6 +0,0 @@
1
- export * from './dist/auth/index.js';
2
- export { default as executeAccess } from './dist/auth/executeAccess.js';
3
- export { executeAuthStrategies } from './dist/auth/executeAuthStrategies.js';
4
- export { getAccessResults } from './dist/auth/getAccessResults.js';
5
- export type { AuthStrategyFunction, AuthStrategyFunctionArgs, CollectionPermission, FieldPermissions, GlobalPermission, IncomingAuthType, Permission, Permissions, User, VerifyConfig, } from './dist/auth/types.js';
6
- //# sourceMappingURL=auth.d.ts.map
package/auth.js DELETED
@@ -1,6 +0,0 @@
1
- export * from './dist/auth/index.js';
2
- export { default as executeAccess } from './dist/auth/executeAccess.js';
3
- export { executeAuthStrategies } from './dist/auth/executeAuthStrategies.js';
4
- export { getAccessResults } from './dist/auth/getAccessResults.js';
5
-
6
- //# sourceMappingURL=auth.js.map
package/config.d.ts DELETED
@@ -1,14 +0,0 @@
1
- export { buildConfig } from './dist/config/build.js';
2
- export * from './dist/config/types.js';
3
- export type { FieldTypes } from './dist/admin/forms/FieldTypes.js';
4
- export { createClientCollectionConfig } from './dist/collections/config/client.js';
5
- export { defaults as collectionDefaults } from './dist/collections/config/defaults.js';
6
- export { createClientConfig } from './dist/config/client.js';
7
- export { defaults } from './dist/config/defaults.js';
8
- export { sanitizeConfig } from './dist/config/sanitize.js';
9
- export { baseBlockFields } from './dist/fields/baseFields/baseBlockFields.js';
10
- export { baseIDField } from './dist/fields/baseFields/baseIDField.js';
11
- export { createClientFieldConfig } from './dist/fields/config/client.js';
12
- export { sanitizeFields } from './dist/fields/config/sanitize.js';
13
- export { createClientGlobalConfig } from './dist/globals/config/client.js';
14
- //# sourceMappingURL=config.d.ts.map
package/config.js DELETED
@@ -1,14 +0,0 @@
1
- export { buildConfig } from './dist/config/build.js';
2
- export * from './dist/config/types.js';
3
- export { createClientCollectionConfig } from './dist/collections/config/client.js';
4
- export { defaults as collectionDefaults } from './dist/collections/config/defaults.js';
5
- export { createClientConfig } from './dist/config/client.js';
6
- export { defaults } from './dist/config/defaults.js';
7
- export { sanitizeConfig } from './dist/config/sanitize.js';
8
- export { baseBlockFields } from './dist/fields/baseFields/baseBlockFields.js';
9
- export { baseIDField } from './dist/fields/baseFields/baseIDField.js';
10
- export { createClientFieldConfig } from './dist/fields/config/client.js';
11
- export { sanitizeFields } from './dist/fields/config/sanitize.js';
12
- export { createClientGlobalConfig } from './dist/globals/config/client.js';
13
-
14
- //# sourceMappingURL=config.js.map
package/database.d.ts DELETED
@@ -1,23 +0,0 @@
1
- export type { BaseDatabaseAdapter, BeginTransaction, CommitTransaction, Connect, Create, CreateArgs, CreateGlobal, CreateGlobalArgs, CreateGlobalVersion, CreateGlobalVersionArgs, CreateMigration, CreateVersion, CreateVersionArgs, DBIdentifierName, DatabaseAdapterResult as DatabaseAdapterObj, DeleteMany, DeleteManyArgs, DeleteOne, DeleteOneArgs, DeleteVersions, DeleteVersionsArgs, Destroy, Find, FindArgs, FindGlobal, FindGlobalArgs, FindGlobalVersions, FindGlobalVersionsArgs, FindOne, FindOneArgs, FindVersions, FindVersionsArgs, Init, Migration, MigrationData, PaginatedDocs, QueryDrafts, QueryDraftsArgs, RollbackTransaction, Transaction, TypeWithVersion, UpdateGlobal, UpdateGlobalArgs, UpdateGlobalVersion, UpdateGlobalVersionArgs, UpdateOne, UpdateOneArgs, UpdateVersion, UpdateVersionArgs, } from './dist/database/types.js';
2
- export * from './dist/database/queryValidation/types.js';
3
- export { combineQueries } from './dist/database/combineQueries.js';
4
- export { createDatabaseAdapter } from './dist/database/createDatabaseAdapter.js';
5
- export { default as flattenWhereToOperators } from './dist/database/flattenWhereToOperators.js';
6
- export { getLocalizedPaths } from './dist/database/getLocalizedPaths.js';
7
- export { createMigration } from './dist/database/migrations/createMigration.js';
8
- export { getMigrations } from './dist/database/migrations/getMigrations.js';
9
- export { migrate } from './dist/database/migrations/migrate.js';
10
- export { migrateDown } from './dist/database/migrations/migrateDown.js';
11
- export { migrateRefresh } from './dist/database/migrations/migrateRefresh.js';
12
- export { migrateReset } from './dist/database/migrations/migrateReset.js';
13
- export { migrateStatus } from './dist/database/migrations/migrateStatus.js';
14
- export { migrationTemplate } from './dist/database/migrations/migrationTemplate.js';
15
- export { migrationsCollection } from './dist/database/migrations/migrationsCollection.js';
16
- export { readMigrationFiles } from './dist/database/migrations/readMigrationFiles.js';
17
- export type { EntityPolicies, PathToQuery } from './dist/database/queryValidation/types.js';
18
- export { validateQueryPaths } from './dist/database/queryValidation/validateQueryPaths.js';
19
- export { validateSearchParam } from './dist/database/queryValidation/validateSearchParams.js';
20
- export { commitTransaction } from './dist/utilities/commitTransaction.js';
21
- export { initTransaction } from './dist/utilities/initTransaction.js';
22
- export { killTransaction } from './dist/utilities/killTransaction.js';
23
- //# sourceMappingURL=database.d.ts.map
package/database.js DELETED
@@ -1,22 +0,0 @@
1
- export * from './dist/database/queryValidation/types.js';
2
- export { combineQueries } from './dist/database/combineQueries.js';
3
- export { createDatabaseAdapter } from './dist/database/createDatabaseAdapter.js';
4
- export { default as flattenWhereToOperators } from './dist/database/flattenWhereToOperators.js';
5
- export { getLocalizedPaths } from './dist/database/getLocalizedPaths.js';
6
- export { createMigration } from './dist/database/migrations/createMigration.js';
7
- export { getMigrations } from './dist/database/migrations/getMigrations.js';
8
- export { migrate } from './dist/database/migrations/migrate.js';
9
- export { migrateDown } from './dist/database/migrations/migrateDown.js';
10
- export { migrateRefresh } from './dist/database/migrations/migrateRefresh.js';
11
- export { migrateReset } from './dist/database/migrations/migrateReset.js';
12
- export { migrateStatus } from './dist/database/migrations/migrateStatus.js';
13
- export { migrationTemplate } from './dist/database/migrations/migrationTemplate.js';
14
- export { migrationsCollection } from './dist/database/migrations/migrationsCollection.js';
15
- export { readMigrationFiles } from './dist/database/migrations/readMigrationFiles.js';
16
- export { validateQueryPaths } from './dist/database/queryValidation/validateQueryPaths.js';
17
- export { validateSearchParam } from './dist/database/queryValidation/validateSearchParams.js';
18
- export { commitTransaction } from './dist/utilities/commitTransaction.js';
19
- export { initTransaction } from './dist/utilities/initTransaction.js';
20
- export { killTransaction } from './dist/utilities/killTransaction.js';
21
-
22
- //# sourceMappingURL=database.js.map
@@ -1,5 +0,0 @@
1
- import type { Logger } from 'pino';
2
- import type { EmailOptions } from '../config/types.js';
3
- import type { BuildEmailResult } from './types.js';
4
- export default function buildEmail(emailConfig: EmailOptions | undefined, logger: Logger): BuildEmailResult;
5
- //# sourceMappingURL=build.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/email/build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAIlC,OAAO,KAAK,EAAE,YAAY,EAAkB,MAAM,oBAAoB,CAAA;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAoB,MAAM,YAAY,CAAA;AA+CpE,wBAA8B,UAAU,CACtC,WAAW,EAAE,YAAY,GAAG,SAAS,EACrC,MAAM,EAAE,MAAM,GACb,gBAAgB,CAoBlB"}
@@ -1,63 +0,0 @@
1
- import nodemailer from 'nodemailer';
2
- import { hasTransport, hasTransportOptions } from '../config/types.js';
3
- import { InvalidConfiguration } from '../errors/index.js';
4
- import mockHandler from './mockHandler.js';
5
- async function handleTransport(transport, email, logger) {
6
- try {
7
- await transport.verify();
8
- } catch (err) {
9
- logger.error(`There is an error with the email configuration you have provided. ${err}`);
10
- }
11
- return {
12
- ...email,
13
- transport
14
- };
15
- }
16
- const ensureConfigHasFrom = (emailConfig)=>{
17
- if (!emailConfig?.fromName || !emailConfig?.fromAddress) {
18
- throw new InvalidConfiguration('Email fromName and fromAddress must be configured when transport is configured');
19
- }
20
- };
21
- const handleMockAccount = async (emailConfig, logger)=>{
22
- let mockAccount;
23
- try {
24
- mockAccount = await mockHandler(emailConfig);
25
- const { account: { pass, user, web } } = mockAccount;
26
- if (emailConfig?.logMockCredentials) {
27
- logger.info('E-mail configured with mock configuration');
28
- logger.info(`Log into mock email provider at ${web}`);
29
- logger.info(`Mock email account username: ${user}`);
30
- logger.info(`Mock email account password: ${pass}`);
31
- }
32
- } catch (err) {
33
- logger.error({
34
- err,
35
- msg: 'There was a problem setting up the mock email handler'
36
- });
37
- }
38
- return mockAccount;
39
- };
40
- export default async function buildEmail(emailConfig, logger) {
41
- if (!emailConfig) {
42
- return handleMockAccount(emailConfig, logger);
43
- }
44
- if (hasTransport(emailConfig) && emailConfig.transport) {
45
- ensureConfigHasFrom(emailConfig);
46
- const email = {
47
- ...emailConfig
48
- };
49
- const { transport } = emailConfig;
50
- return handleTransport(transport, email, logger);
51
- }
52
- if (hasTransportOptions(emailConfig) && emailConfig.transportOptions) {
53
- ensureConfigHasFrom(emailConfig);
54
- const email = {
55
- ...emailConfig
56
- };
57
- const transport = nodemailer.createTransport(emailConfig.transportOptions);
58
- return handleTransport(transport, email, logger);
59
- }
60
- return handleMockAccount(emailConfig, logger);
61
- }
62
-
63
- //# sourceMappingURL=build.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/email/build.ts"],"sourcesContent":["import type { Transporter } from 'nodemailer'\nimport type { Logger } from 'pino'\n\nimport nodemailer from 'nodemailer'\n\nimport type { EmailOptions, EmailTransport } from '../config/types.js'\nimport type { BuildEmailResult, MockEmailHandler } from './types.js'\n\nimport { hasTransport, hasTransportOptions } from '../config/types.js'\nimport { InvalidConfiguration } from '../errors/index.js'\nimport mockHandler from './mockHandler.js'\n\nasync function handleTransport(\n transport: Transporter,\n email: EmailTransport,\n logger: Logger,\n): BuildEmailResult {\n try {\n await transport.verify()\n } catch (err) {\n logger.error(`There is an error with the email configuration you have provided. ${err}`)\n }\n\n return { ...email, transport }\n}\n\nconst ensureConfigHasFrom = (emailConfig: EmailOptions) => {\n if (!emailConfig?.fromName || !emailConfig?.fromAddress) {\n throw new InvalidConfiguration(\n 'Email fromName and fromAddress must be configured when transport is configured',\n )\n }\n}\n\nconst handleMockAccount = async (emailConfig: EmailOptions, logger: Logger) => {\n let mockAccount: MockEmailHandler\n try {\n mockAccount = await mockHandler(emailConfig)\n const {\n account: { pass, user, web },\n } = mockAccount\n if (emailConfig?.logMockCredentials) {\n logger.info('E-mail configured with mock configuration')\n logger.info(`Log into mock email provider at ${web}`)\n logger.info(`Mock email account username: ${user}`)\n logger.info(`Mock email account password: ${pass}`)\n }\n } catch (err) {\n logger.error({ err, msg: 'There was a problem setting up the mock email handler' })\n }\n return mockAccount\n}\n\nexport default async function buildEmail(\n emailConfig: EmailOptions | undefined,\n logger: Logger,\n): BuildEmailResult {\n if (!emailConfig) {\n return handleMockAccount(emailConfig, logger)\n }\n\n if (hasTransport(emailConfig) && emailConfig.transport) {\n ensureConfigHasFrom(emailConfig)\n const email = { ...emailConfig }\n const { transport }: { transport: Transporter } = emailConfig\n return handleTransport(transport, email, logger)\n }\n\n if (hasTransportOptions(emailConfig) && emailConfig.transportOptions) {\n ensureConfigHasFrom(emailConfig)\n const email = { ...emailConfig } as EmailTransport\n const transport = nodemailer.createTransport(emailConfig.transportOptions)\n return handleTransport(transport, email, logger)\n }\n\n return handleMockAccount(emailConfig, logger)\n}\n"],"names":["nodemailer","hasTransport","hasTransportOptions","InvalidConfiguration","mockHandler","handleTransport","transport","email","logger","verify","err","error","ensureConfigHasFrom","emailConfig","fromName","fromAddress","handleMockAccount","mockAccount","account","pass","user","web","logMockCredentials","info","msg","buildEmail","transportOptions","createTransport"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAGA,OAAOA,gBAAgB,aAAY;AAKnC,SAASC,YAAY,EAAEC,mBAAmB,QAAQ,qBAAoB;AACtE,SAASC,oBAAoB,QAAQ,qBAAoB;AACzD,OAAOC,iBAAiB,mBAAkB;AAE1C,eAAeC,gBACbC,SAAsB,EACtBC,KAAqB,EACrBC,MAAc;IAEd,IAAI;QACF,MAAMF,UAAUG,MAAM;IACxB,EAAE,OAAOC,KAAK;QACZF,OAAOG,KAAK,CAAC,CAAC,kEAAkE,EAAED,IAAI,CAAC;IACzF;IAEA,OAAO;QAAE,GAAGH,KAAK;QAAED;IAAU;AAC/B;AAEA,MAAMM,sBAAsB,CAACC;IAC3B,IAAI,CAACA,aAAaC,YAAY,CAACD,aAAaE,aAAa;QACvD,MAAM,IAAIZ,qBACR;IAEJ;AACF;AAEA,MAAMa,oBAAoB,OAAOH,aAA2BL;IAC1D,IAAIS;IACJ,IAAI;QACFA,cAAc,MAAMb,YAAYS;QAChC,MAAM,EACJK,SAAS,EAAEC,IAAI,EAAEC,IAAI,EAAEC,GAAG,EAAE,EAC7B,GAAGJ;QACJ,IAAIJ,aAAaS,oBAAoB;YACnCd,OAAOe,IAAI,CAAC;YACZf,OAAOe,IAAI,CAAC,CAAC,gCAAgC,EAAEF,IAAI,CAAC;YACpDb,OAAOe,IAAI,CAAC,CAAC,6BAA6B,EAAEH,KAAK,CAAC;YAClDZ,OAAOe,IAAI,CAAC,CAAC,6BAA6B,EAAEJ,KAAK,CAAC;QACpD;IACF,EAAE,OAAOT,KAAK;QACZF,OAAOG,KAAK,CAAC;YAAED;YAAKc,KAAK;QAAwD;IACnF;IACA,OAAOP;AACT;AAEA,eAAe,eAAeQ,WAC5BZ,WAAqC,EACrCL,MAAc;IAEd,IAAI,CAACK,aAAa;QAChB,OAAOG,kBAAkBH,aAAaL;IACxC;IAEA,IAAIP,aAAaY,gBAAgBA,YAAYP,SAAS,EAAE;QACtDM,oBAAoBC;QACpB,MAAMN,QAAQ;YAAE,GAAGM,WAAW;QAAC;QAC/B,MAAM,EAAEP,SAAS,EAAE,GAA+BO;QAClD,OAAOR,gBAAgBC,WAAWC,OAAOC;IAC3C;IAEA,IAAIN,oBAAoBW,gBAAgBA,YAAYa,gBAAgB,EAAE;QACpEd,oBAAoBC;QACpB,MAAMN,QAAQ;YAAE,GAAGM,WAAW;QAAC;QAC/B,MAAMP,YAAYN,WAAW2B,eAAe,CAACd,YAAYa,gBAAgB;QACzE,OAAOrB,gBAAgBC,WAAWC,OAAOC;IAC3C;IAEA,OAAOQ,kBAAkBH,aAAaL;AACxC"}
@@ -1,5 +0,0 @@
1
- import type { EmailOptions } from '../config/types.js';
2
- import type { MockEmailHandler } from './types.js';
3
- declare const mockEmailHandler: (emailConfig: EmailOptions) => Promise<MockEmailHandler>;
4
- export default mockEmailHandler;
5
- //# sourceMappingURL=mockHandler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mockHandler.d.ts","sourceRoot":"","sources":["../../src/email/mockHandler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAIlD,QAAA,MAAM,gBAAgB,gBAAuB,YAAY,KAAG,QAAQ,gBAAgB,CAoBnF,CAAA;AAED,eAAe,gBAAgB,CAAA"}
@@ -1,24 +0,0 @@
1
- import nodemailer from 'nodemailer';
2
- import { defaults as emailDefaults } from './defaults.js';
3
- const mockEmailHandler = async (emailConfig)=>{
4
- const testAccount = await nodemailer.createTestAccount();
5
- const smtpOptions = {
6
- ...emailConfig,
7
- auth: {
8
- pass: testAccount.pass,
9
- user: testAccount.user
10
- },
11
- fromAddress: emailConfig?.fromAddress || emailDefaults.fromAddress,
12
- fromName: emailConfig?.fromName || emailDefaults.fromName,
13
- host: 'smtp.ethereal.email',
14
- port: 587,
15
- secure: false
16
- };
17
- return {
18
- account: testAccount,
19
- transport: nodemailer.createTransport(smtpOptions)
20
- };
21
- };
22
- export default mockEmailHandler;
23
-
24
- //# sourceMappingURL=mockHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/email/mockHandler.ts"],"sourcesContent":["import nodemailer from 'nodemailer'\n\nimport type { EmailOptions } from '../config/types.js'\nimport type { MockEmailHandler } from './types.js'\n\nimport { defaults as emailDefaults } from './defaults.js'\n\nconst mockEmailHandler = async (emailConfig: EmailOptions): Promise<MockEmailHandler> => {\n const testAccount = await nodemailer.createTestAccount()\n\n const smtpOptions = {\n ...emailConfig,\n auth: {\n pass: testAccount.pass,\n user: testAccount.user,\n },\n fromAddress: emailConfig?.fromAddress || emailDefaults.fromAddress,\n fromName: emailConfig?.fromName || emailDefaults.fromName,\n host: 'smtp.ethereal.email',\n port: 587,\n secure: false,\n }\n\n return {\n account: testAccount,\n transport: nodemailer.createTransport(smtpOptions),\n }\n}\n\nexport default mockEmailHandler\n"],"names":["nodemailer","defaults","emailDefaults","mockEmailHandler","emailConfig","testAccount","createTestAccount","smtpOptions","auth","pass","user","fromAddress","fromName","host","port","secure","account","transport","createTransport"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,gBAAgB,aAAY;AAKnC,SAASC,YAAYC,aAAa,QAAQ,gBAAe;AAEzD,MAAMC,mBAAmB,OAAOC;IAC9B,MAAMC,cAAc,MAAML,WAAWM,iBAAiB;IAEtD,MAAMC,cAAc;QAClB,GAAGH,WAAW;QACdI,MAAM;YACJC,MAAMJ,YAAYI,IAAI;YACtBC,MAAML,YAAYK,IAAI;QACxB;QACAC,aAAaP,aAAaO,eAAeT,cAAcS,WAAW;QAClEC,UAAUR,aAAaQ,YAAYV,cAAcU,QAAQ;QACzDC,MAAM;QACNC,MAAM;QACNC,QAAQ;IACV;IAEA,OAAO;QACLC,SAASX;QACTY,WAAWjB,WAAWkB,eAAe,CAACX;IACxC;AACF;AAEA,eAAeJ,iBAAgB"}
@@ -1,4 +0,0 @@
1
- import type { BaseDatabaseAdapter } from '../database/types.js';
2
- import type { Field } from '../fields/config/types.js';
3
- export declare const getIDType: (idField: Field | null, defaultIDType: BaseDatabaseAdapter['defaultIDType'] | null) => 'ObjectID' | 'number' | 'text';
4
- //# sourceMappingURL=getIDType.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getIDType.d.ts","sourceRoot":"","sources":["../../src/utilities/getIDType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AAEtD,eAAO,MAAM,SAAS,YACX,KAAK,GAAG,IAAI,iBACN,mBAAmB,CAAC,eAAe,CAAC,GAAG,IAAI,KACzD,UAAU,GAAG,QAAQ,GAAG,MAK1B,CAAA"}