@latte-macchiat-io/latte-payload 1.0.1 → 1.0.3

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 (332) hide show
  1. package/dist/src/access/adminAccessOnly.d.ts.map +1 -0
  2. package/dist/src/access/adminAccessOnly.js.map +1 -0
  3. package/dist/src/access/admins.d.ts.map +1 -0
  4. package/dist/src/access/admins.js.map +1 -0
  5. package/dist/src/access/anyone.d.ts.map +1 -0
  6. package/dist/src/access/anyone.js.map +1 -0
  7. package/dist/src/access/authenticated.d.ts.map +1 -0
  8. package/dist/src/access/authenticated.js.map +1 -0
  9. package/dist/src/access/authenticatedAccessOnly.d.ts.map +1 -0
  10. package/dist/src/access/authenticatedAccessOnly.js.map +1 -0
  11. package/dist/src/access/index.d.ts.map +1 -0
  12. package/dist/src/access/index.js.map +1 -0
  13. package/dist/src/access/publicReadAuthenticatedAccess.d.ts.map +1 -0
  14. package/dist/src/access/publicReadAuthenticatedAccess.js.map +1 -0
  15. package/dist/src/collections/ContactMessages/hooks/sendEmailNotification.d.ts.map +1 -0
  16. package/dist/src/collections/ContactMessages/hooks/sendEmailNotification.js.map +1 -0
  17. package/dist/src/collections/ContactMessages/index.d.ts.map +1 -0
  18. package/dist/src/collections/ContactMessages/index.js.map +1 -0
  19. package/dist/src/collections/EmailTemplates/index.d.ts.map +1 -0
  20. package/dist/src/collections/EmailTemplates/index.js.map +1 -0
  21. package/dist/src/collections/Media/index.d.ts.map +1 -0
  22. package/dist/src/collections/Media/index.js.map +1 -0
  23. package/dist/src/collections/QueuedEmails/components/HtmlViewer.d.ts.map +1 -0
  24. package/dist/src/collections/QueuedEmails/components/HtmlViewer.js.map +1 -0
  25. package/dist/src/collections/QueuedEmails/components/RetryEmailButtons.d.ts.map +1 -0
  26. package/dist/src/collections/QueuedEmails/components/RetryEmailButtons.js.map +1 -0
  27. package/dist/src/collections/QueuedEmails/index.d.ts +23 -0
  28. package/dist/src/collections/QueuedEmails/index.d.ts.map +1 -0
  29. package/dist/src/collections/QueuedEmails/index.js +258 -0
  30. package/dist/src/collections/QueuedEmails/index.js.map +1 -0
  31. package/dist/src/collections/Users/auth-emails/forgot-password-email.d.ts.map +1 -0
  32. package/dist/src/collections/Users/auth-emails/forgot-password-email.js.map +1 -0
  33. package/dist/src/collections/Users/auth-emails/verify-email.d.ts.map +1 -0
  34. package/dist/src/collections/Users/auth-emails/verify-email.js.map +1 -0
  35. package/dist/src/collections/Users/hooks/ensureFirstUserIsAdmin.d.ts.map +1 -0
  36. package/dist/src/collections/Users/hooks/ensureFirstUserIsAdmin.js.map +1 -0
  37. package/dist/src/collections/Users/index.d.ts.map +1 -0
  38. package/dist/src/collections/Users/index.js.map +1 -0
  39. package/dist/src/collections/index.d.ts.map +1 -0
  40. package/dist/src/collections/index.js.map +1 -0
  41. package/dist/src/components/index.d.ts.map +1 -0
  42. package/dist/src/components/index.js.map +1 -0
  43. package/dist/src/forms/states.d.ts.map +1 -0
  44. package/dist/src/forms/states.js.map +1 -0
  45. package/dist/src/forms/translate-errors.d.ts.map +1 -0
  46. package/dist/src/forms/translate-errors.js.map +1 -0
  47. package/dist/src/forms/validators.d.ts.map +1 -0
  48. package/dist/src/forms/validators.js.map +1 -0
  49. package/dist/src/globals/PrivacyPolicy/hooks/revalidate-cache.d.ts.map +1 -0
  50. package/dist/src/globals/PrivacyPolicy/hooks/revalidate-cache.js.map +1 -0
  51. package/dist/src/globals/PrivacyPolicy/index.d.ts.map +1 -0
  52. package/dist/src/globals/PrivacyPolicy/index.js.map +1 -0
  53. package/dist/{globals/PrivacyPolicy → src/globals/TermsOfUse}/hooks/revalidate-cache.d.ts.map +1 -1
  54. package/dist/{globals/PrivacyPolicy → src/globals/TermsOfUse}/hooks/revalidate-cache.js.map +1 -1
  55. package/dist/src/globals/TermsOfUse/index.d.ts.map +1 -0
  56. package/dist/src/globals/TermsOfUse/index.js.map +1 -0
  57. package/dist/src/globals/index.d.ts.map +1 -0
  58. package/dist/src/globals/index.js.map +1 -0
  59. package/dist/src/index.d.ts.map +1 -0
  60. package/dist/src/index.js.map +1 -0
  61. package/dist/src/tasks/index.d.ts.map +1 -0
  62. package/dist/src/tasks/index.js.map +1 -0
  63. package/dist/src/tasks/process-email-queue.d.ts.map +1 -0
  64. package/dist/src/tasks/process-email-queue.js.map +1 -0
  65. package/dist/src/types/index.d.ts.map +1 -0
  66. package/dist/{types → src/types}/index.js.map +1 -1
  67. package/dist/src/types/slug.d.ts.map +1 -0
  68. package/dist/src/types/slug.js.map +1 -0
  69. package/dist/src/utils/database-dates.d.ts.map +1 -0
  70. package/dist/src/utils/database-dates.js.map +1 -0
  71. package/dist/src/utils/email/generate-email-html.d.ts.map +1 -0
  72. package/dist/src/utils/email/generate-email-html.js.map +1 -0
  73. package/dist/src/utils/email/get-email-template.d.ts.map +1 -0
  74. package/dist/src/utils/email/get-email-template.js.map +1 -0
  75. package/dist/src/utils/email/index.d.ts.map +1 -0
  76. package/dist/src/utils/email/index.js.map +1 -0
  77. package/dist/src/utils/email/queue-email.d.ts.map +1 -0
  78. package/dist/src/utils/email/queue-email.js.map +1 -0
  79. package/dist/src/utils/get-global.d.ts.map +1 -0
  80. package/dist/src/utils/get-global.js.map +1 -0
  81. package/dist/src/utils/id-from-payload.d.ts.map +1 -0
  82. package/dist/src/utils/id-from-payload.js.map +1 -0
  83. package/dist/src/utils/index.d.ts.map +1 -0
  84. package/dist/src/utils/index.js.map +1 -0
  85. package/dist/src/utils/migrations.d.ts.map +1 -0
  86. package/dist/src/utils/migrations.js.map +1 -0
  87. package/dist/src/utils/payload-client.d.ts.map +1 -0
  88. package/dist/src/utils/payload-client.js.map +1 -0
  89. package/dist/src/utils/slugify.d.ts.map +1 -0
  90. package/dist/src/utils/slugify.js.map +1 -0
  91. package/dist/tests/fixtures/sample-data.d.ts +27 -0
  92. package/dist/tests/fixtures/sample-data.d.ts.map +1 -0
  93. package/dist/tests/fixtures/sample-data.js +53 -0
  94. package/dist/tests/fixtures/sample-data.js.map +1 -0
  95. package/dist/tests/helpers/create-test-user.d.ts +16 -0
  96. package/dist/tests/helpers/create-test-user.d.ts.map +1 -0
  97. package/dist/tests/helpers/create-test-user.js +27 -0
  98. package/dist/tests/helpers/create-test-user.js.map +1 -0
  99. package/dist/tests/helpers/init-payload.d.ts +11 -0
  100. package/dist/tests/helpers/init-payload.d.ts.map +1 -0
  101. package/dist/tests/helpers/init-payload.js +52 -0
  102. package/dist/tests/helpers/init-payload.js.map +1 -0
  103. package/dist/tests/setup.d.ts +3 -0
  104. package/dist/tests/setup.d.ts.map +1 -0
  105. package/dist/tests/setup.integration.d.ts +2 -0
  106. package/dist/tests/setup.integration.d.ts.map +1 -0
  107. package/dist/tests/setup.integration.js +8 -0
  108. package/dist/tests/setup.integration.js.map +1 -0
  109. package/dist/tests/setup.js +4 -0
  110. package/dist/tests/setup.js.map +1 -0
  111. package/dist/tests/unit/access/adminAccessOnly.spec.d.ts +2 -0
  112. package/dist/tests/unit/access/adminAccessOnly.spec.d.ts.map +1 -0
  113. package/dist/tests/unit/access/adminAccessOnly.spec.js +97 -0
  114. package/dist/tests/unit/access/adminAccessOnly.spec.js.map +1 -0
  115. package/dist/tests/unit/access/admins.spec.d.ts +2 -0
  116. package/dist/tests/unit/access/admins.spec.d.ts.map +1 -0
  117. package/dist/tests/unit/access/admins.spec.js +57 -0
  118. package/dist/tests/unit/access/admins.spec.js.map +1 -0
  119. package/dist/tests/unit/access/anyone.spec.d.ts +2 -0
  120. package/dist/tests/unit/access/anyone.spec.d.ts.map +1 -0
  121. package/dist/tests/unit/access/anyone.spec.js +24 -0
  122. package/dist/tests/unit/access/anyone.spec.js.map +1 -0
  123. package/dist/tests/unit/access/authenticated.spec.d.ts +2 -0
  124. package/dist/tests/unit/access/authenticated.spec.d.ts.map +1 -0
  125. package/dist/tests/unit/access/authenticated.spec.js +45 -0
  126. package/dist/tests/unit/access/authenticated.spec.js.map +1 -0
  127. package/dist/tests/unit/access/authenticatedAccessOnly.spec.d.ts +2 -0
  128. package/dist/tests/unit/access/authenticatedAccessOnly.spec.d.ts.map +1 -0
  129. package/dist/tests/unit/access/authenticatedAccessOnly.spec.js +95 -0
  130. package/dist/tests/unit/access/authenticatedAccessOnly.spec.js.map +1 -0
  131. package/dist/tests/unit/access/publicReadAuthenticatedAccess.spec.d.ts +2 -0
  132. package/dist/tests/unit/access/publicReadAuthenticatedAccess.spec.d.ts.map +1 -0
  133. package/dist/tests/unit/access/publicReadAuthenticatedAccess.spec.js +95 -0
  134. package/dist/tests/unit/access/publicReadAuthenticatedAccess.spec.js.map +1 -0
  135. package/dist/tests/unit/forms/validators.spec.d.ts +2 -0
  136. package/dist/tests/unit/forms/validators.spec.d.ts.map +1 -0
  137. package/dist/tests/unit/forms/validators.spec.js +294 -0
  138. package/dist/tests/unit/forms/validators.spec.js.map +1 -0
  139. package/dist/tests/unit/utils/database-dates.spec.d.ts +2 -0
  140. package/dist/tests/unit/utils/database-dates.spec.d.ts.map +1 -0
  141. package/dist/tests/unit/utils/database-dates.spec.js +82 -0
  142. package/dist/tests/unit/utils/database-dates.spec.js.map +1 -0
  143. package/dist/tests/unit/utils/id-from-payload.spec.d.ts +2 -0
  144. package/dist/tests/unit/utils/id-from-payload.spec.d.ts.map +1 -0
  145. package/dist/tests/unit/utils/id-from-payload.spec.js +110 -0
  146. package/dist/tests/unit/utils/id-from-payload.spec.js.map +1 -0
  147. package/dist/tests/unit/utils/slugify.spec.d.ts +2 -0
  148. package/dist/tests/unit/utils/slugify.spec.d.ts.map +1 -0
  149. package/dist/tests/unit/utils/slugify.spec.js +150 -0
  150. package/dist/tests/unit/utils/slugify.spec.js.map +1 -0
  151. package/package.json +19 -26
  152. package/src/collections/QueuedEmails/index.ts +245 -219
  153. package/tests/fixtures/sample-data.ts +1 -1
  154. package/tests/helpers/init-payload.ts +6 -6
  155. package/tests/setup.integration.ts +1 -1
  156. package/tests/unit/utils/id-from-payload.spec.ts +1 -1
  157. package/tsconfig.json +1 -2
  158. package/.claude/settings.local.json +0 -9
  159. package/TESTING_AND_DOCUMENTATION_SETUP.md +0 -348
  160. package/dist/access/adminAccessOnly.d.ts.map +0 -1
  161. package/dist/access/adminAccessOnly.js.map +0 -1
  162. package/dist/access/admins.d.ts.map +0 -1
  163. package/dist/access/admins.js.map +0 -1
  164. package/dist/access/anyone.d.ts.map +0 -1
  165. package/dist/access/anyone.js.map +0 -1
  166. package/dist/access/authenticated.d.ts.map +0 -1
  167. package/dist/access/authenticated.js.map +0 -1
  168. package/dist/access/authenticatedAccessOnly.d.ts.map +0 -1
  169. package/dist/access/authenticatedAccessOnly.js.map +0 -1
  170. package/dist/access/index.d.ts.map +0 -1
  171. package/dist/access/index.js.map +0 -1
  172. package/dist/access/publicReadAuthenticatedAccess.d.ts.map +0 -1
  173. package/dist/access/publicReadAuthenticatedAccess.js.map +0 -1
  174. package/dist/collections/ContactMessages/hooks/sendEmailNotification.d.ts.map +0 -1
  175. package/dist/collections/ContactMessages/hooks/sendEmailNotification.js.map +0 -1
  176. package/dist/collections/ContactMessages/index.d.ts.map +0 -1
  177. package/dist/collections/ContactMessages/index.js.map +0 -1
  178. package/dist/collections/EmailTemplates/index.d.ts.map +0 -1
  179. package/dist/collections/EmailTemplates/index.js.map +0 -1
  180. package/dist/collections/Media/index.d.ts.map +0 -1
  181. package/dist/collections/Media/index.js.map +0 -1
  182. package/dist/collections/QueuedEmails/components/HtmlViewer.d.ts.map +0 -1
  183. package/dist/collections/QueuedEmails/components/HtmlViewer.js.map +0 -1
  184. package/dist/collections/QueuedEmails/components/RetryEmailButtons.d.ts.map +0 -1
  185. package/dist/collections/QueuedEmails/components/RetryEmailButtons.js.map +0 -1
  186. package/dist/collections/QueuedEmails/index.d.ts +0 -3
  187. package/dist/collections/QueuedEmails/index.d.ts.map +0 -1
  188. package/dist/collections/QueuedEmails/index.js +0 -245
  189. package/dist/collections/QueuedEmails/index.js.map +0 -1
  190. package/dist/collections/Users/auth-emails/forgot-password-email.d.ts.map +0 -1
  191. package/dist/collections/Users/auth-emails/forgot-password-email.js.map +0 -1
  192. package/dist/collections/Users/auth-emails/verify-email.d.ts.map +0 -1
  193. package/dist/collections/Users/auth-emails/verify-email.js.map +0 -1
  194. package/dist/collections/Users/hooks/ensureFirstUserIsAdmin.d.ts.map +0 -1
  195. package/dist/collections/Users/hooks/ensureFirstUserIsAdmin.js.map +0 -1
  196. package/dist/collections/Users/index.d.ts.map +0 -1
  197. package/dist/collections/Users/index.js.map +0 -1
  198. package/dist/collections/index.d.ts.map +0 -1
  199. package/dist/collections/index.js.map +0 -1
  200. package/dist/components/index.d.ts.map +0 -1
  201. package/dist/components/index.js.map +0 -1
  202. package/dist/forms/states.d.ts.map +0 -1
  203. package/dist/forms/states.js.map +0 -1
  204. package/dist/forms/translate-errors.d.ts.map +0 -1
  205. package/dist/forms/translate-errors.js.map +0 -1
  206. package/dist/forms/validators.d.ts.map +0 -1
  207. package/dist/forms/validators.js.map +0 -1
  208. package/dist/globals/PrivacyPolicy/index.d.ts.map +0 -1
  209. package/dist/globals/PrivacyPolicy/index.js.map +0 -1
  210. package/dist/globals/TermsOfUse/hooks/revalidate-cache.d.ts.map +0 -1
  211. package/dist/globals/TermsOfUse/hooks/revalidate-cache.js.map +0 -1
  212. package/dist/globals/TermsOfUse/index.d.ts.map +0 -1
  213. package/dist/globals/TermsOfUse/index.js.map +0 -1
  214. package/dist/globals/index.d.ts.map +0 -1
  215. package/dist/globals/index.js.map +0 -1
  216. package/dist/index.d.ts.map +0 -1
  217. package/dist/index.js.map +0 -1
  218. package/dist/tasks/index.d.ts.map +0 -1
  219. package/dist/tasks/index.js.map +0 -1
  220. package/dist/tasks/process-email-queue.d.ts.map +0 -1
  221. package/dist/tasks/process-email-queue.js.map +0 -1
  222. package/dist/types/index.d.ts.map +0 -1
  223. package/dist/types/slug.d.ts.map +0 -1
  224. package/dist/types/slug.js.map +0 -1
  225. package/dist/utils/database-dates.d.ts.map +0 -1
  226. package/dist/utils/database-dates.js.map +0 -1
  227. package/dist/utils/email/generate-email-html.d.ts.map +0 -1
  228. package/dist/utils/email/generate-email-html.js.map +0 -1
  229. package/dist/utils/email/get-email-template.d.ts.map +0 -1
  230. package/dist/utils/email/get-email-template.js.map +0 -1
  231. package/dist/utils/email/index.d.ts.map +0 -1
  232. package/dist/utils/email/index.js.map +0 -1
  233. package/dist/utils/email/queue-email.d.ts.map +0 -1
  234. package/dist/utils/email/queue-email.js.map +0 -1
  235. package/dist/utils/get-global.d.ts.map +0 -1
  236. package/dist/utils/get-global.js.map +0 -1
  237. package/dist/utils/id-from-payload.d.ts.map +0 -1
  238. package/dist/utils/id-from-payload.js.map +0 -1
  239. package/dist/utils/index.d.ts.map +0 -1
  240. package/dist/utils/index.js.map +0 -1
  241. package/dist/utils/migrations.d.ts.map +0 -1
  242. package/dist/utils/migrations.js.map +0 -1
  243. package/dist/utils/payload-client.d.ts.map +0 -1
  244. package/dist/utils/payload-client.js.map +0 -1
  245. package/dist/utils/slugify.d.ts.map +0 -1
  246. package/dist/utils/slugify.js.map +0 -1
  247. /package/dist/{access → src/access}/adminAccessOnly.d.ts +0 -0
  248. /package/dist/{access → src/access}/adminAccessOnly.js +0 -0
  249. /package/dist/{access → src/access}/admins.d.ts +0 -0
  250. /package/dist/{access → src/access}/admins.js +0 -0
  251. /package/dist/{access → src/access}/anyone.d.ts +0 -0
  252. /package/dist/{access → src/access}/anyone.js +0 -0
  253. /package/dist/{access → src/access}/authenticated.d.ts +0 -0
  254. /package/dist/{access → src/access}/authenticated.js +0 -0
  255. /package/dist/{access → src/access}/authenticatedAccessOnly.d.ts +0 -0
  256. /package/dist/{access → src/access}/authenticatedAccessOnly.js +0 -0
  257. /package/dist/{access → src/access}/index.d.ts +0 -0
  258. /package/dist/{access → src/access}/index.js +0 -0
  259. /package/dist/{access → src/access}/publicReadAuthenticatedAccess.d.ts +0 -0
  260. /package/dist/{access → src/access}/publicReadAuthenticatedAccess.js +0 -0
  261. /package/dist/{collections → src/collections}/ContactMessages/hooks/sendEmailNotification.d.ts +0 -0
  262. /package/dist/{collections → src/collections}/ContactMessages/hooks/sendEmailNotification.js +0 -0
  263. /package/dist/{collections → src/collections}/ContactMessages/index.d.ts +0 -0
  264. /package/dist/{collections → src/collections}/ContactMessages/index.js +0 -0
  265. /package/dist/{collections → src/collections}/EmailTemplates/index.d.ts +0 -0
  266. /package/dist/{collections → src/collections}/EmailTemplates/index.js +0 -0
  267. /package/dist/{collections → src/collections}/Media/index.d.ts +0 -0
  268. /package/dist/{collections → src/collections}/Media/index.js +0 -0
  269. /package/dist/{collections → src/collections}/QueuedEmails/components/HtmlViewer.d.ts +0 -0
  270. /package/dist/{collections → src/collections}/QueuedEmails/components/HtmlViewer.js +0 -0
  271. /package/dist/{collections → src/collections}/QueuedEmails/components/RetryEmailButtons.d.ts +0 -0
  272. /package/dist/{collections → src/collections}/QueuedEmails/components/RetryEmailButtons.js +0 -0
  273. /package/dist/{collections → src/collections}/Users/auth-emails/forgot-password-email.d.ts +0 -0
  274. /package/dist/{collections → src/collections}/Users/auth-emails/forgot-password-email.js +0 -0
  275. /package/dist/{collections → src/collections}/Users/auth-emails/verify-email.d.ts +0 -0
  276. /package/dist/{collections → src/collections}/Users/auth-emails/verify-email.js +0 -0
  277. /package/dist/{collections → src/collections}/Users/hooks/ensureFirstUserIsAdmin.d.ts +0 -0
  278. /package/dist/{collections → src/collections}/Users/hooks/ensureFirstUserIsAdmin.js +0 -0
  279. /package/dist/{collections → src/collections}/Users/index.d.ts +0 -0
  280. /package/dist/{collections → src/collections}/Users/index.js +0 -0
  281. /package/dist/{collections → src/collections}/index.d.ts +0 -0
  282. /package/dist/{collections → src/collections}/index.js +0 -0
  283. /package/dist/{components → src/components}/index.d.ts +0 -0
  284. /package/dist/{components → src/components}/index.js +0 -0
  285. /package/dist/{forms → src/forms}/states.d.ts +0 -0
  286. /package/dist/{forms → src/forms}/states.js +0 -0
  287. /package/dist/{forms → src/forms}/translate-errors.d.ts +0 -0
  288. /package/dist/{forms → src/forms}/translate-errors.js +0 -0
  289. /package/dist/{forms → src/forms}/validators.d.ts +0 -0
  290. /package/dist/{forms → src/forms}/validators.js +0 -0
  291. /package/dist/{globals → src/globals}/PrivacyPolicy/hooks/revalidate-cache.d.ts +0 -0
  292. /package/dist/{globals → src/globals}/PrivacyPolicy/hooks/revalidate-cache.js +0 -0
  293. /package/dist/{globals → src/globals}/PrivacyPolicy/index.d.ts +0 -0
  294. /package/dist/{globals → src/globals}/PrivacyPolicy/index.js +0 -0
  295. /package/dist/{globals → src/globals}/TermsOfUse/hooks/revalidate-cache.d.ts +0 -0
  296. /package/dist/{globals → src/globals}/TermsOfUse/hooks/revalidate-cache.js +0 -0
  297. /package/dist/{globals → src/globals}/TermsOfUse/index.d.ts +0 -0
  298. /package/dist/{globals → src/globals}/TermsOfUse/index.js +0 -0
  299. /package/dist/{globals → src/globals}/index.d.ts +0 -0
  300. /package/dist/{globals → src/globals}/index.js +0 -0
  301. /package/dist/{index.d.ts → src/index.d.ts} +0 -0
  302. /package/dist/{index.js → src/index.js} +0 -0
  303. /package/dist/{tasks → src/tasks}/index.d.ts +0 -0
  304. /package/dist/{tasks → src/tasks}/index.js +0 -0
  305. /package/dist/{tasks → src/tasks}/process-email-queue.d.ts +0 -0
  306. /package/dist/{tasks → src/tasks}/process-email-queue.js +0 -0
  307. /package/dist/{types → src/types}/index.d.ts +0 -0
  308. /package/dist/{types → src/types}/index.js +0 -0
  309. /package/dist/{types → src/types}/slug.d.ts +0 -0
  310. /package/dist/{types → src/types}/slug.js +0 -0
  311. /package/dist/{utils → src/utils}/database-dates.d.ts +0 -0
  312. /package/dist/{utils → src/utils}/database-dates.js +0 -0
  313. /package/dist/{utils → src/utils}/email/generate-email-html.d.ts +0 -0
  314. /package/dist/{utils → src/utils}/email/generate-email-html.js +0 -0
  315. /package/dist/{utils → src/utils}/email/get-email-template.d.ts +0 -0
  316. /package/dist/{utils → src/utils}/email/get-email-template.js +0 -0
  317. /package/dist/{utils → src/utils}/email/index.d.ts +0 -0
  318. /package/dist/{utils → src/utils}/email/index.js +0 -0
  319. /package/dist/{utils → src/utils}/email/queue-email.d.ts +0 -0
  320. /package/dist/{utils → src/utils}/email/queue-email.js +0 -0
  321. /package/dist/{utils → src/utils}/get-global.d.ts +0 -0
  322. /package/dist/{utils → src/utils}/get-global.js +0 -0
  323. /package/dist/{utils → src/utils}/id-from-payload.d.ts +0 -0
  324. /package/dist/{utils → src/utils}/id-from-payload.js +0 -0
  325. /package/dist/{utils → src/utils}/index.d.ts +0 -0
  326. /package/dist/{utils → src/utils}/index.js +0 -0
  327. /package/dist/{utils → src/utils}/migrations.d.ts +0 -0
  328. /package/dist/{utils → src/utils}/migrations.js +0 -0
  329. /package/dist/{utils → src/utils}/payload-client.d.ts +0 -0
  330. /package/dist/{utils → src/utils}/payload-client.js +0 -0
  331. /package/dist/{utils → src/utils}/slugify.d.ts +0 -0
  332. /package/dist/{utils → src/utils}/slugify.js +0 -0
@@ -1,246 +1,272 @@
1
1
  import { CollectionConfig } from 'payload';
2
- import { admins } from '../../access/admins';
2
+ import { admins } from '@/access/admins';
3
3
 
4
- export const QueuedEmails: CollectionConfig = {
5
- slug: 'queued-emails',
6
- labels: {
7
- singular: { fr: 'Email en file', nl: 'E-mail in wachtrij', en: 'Queued Email' },
8
- plural: { fr: 'Emails en file', nl: 'E-mails in wachtrij', en: 'Queued Emails' },
9
- },
10
- admin: {
11
- description: { fr: "File d'attente des emails à envoyer", nl: 'Wachtrij van te verzenden e-mails', en: 'Queue of emails to send' },
12
- group: '✉️ Communication',
13
- defaultColumns: ['status', 'code', 'recipient', 'createdAt', 'sentAt'],
14
- hideAPIURL: true,
15
- },
16
- access: {
17
- create: () => false, // Only created programmatically
18
- delete: admins, // Allow admins to clean up old emails
19
- read: admins,
20
- update: admins, // Allow admins to manually retry failed emails
21
- admin: admins,
22
- },
23
- fields: [
24
- {
25
- name: 'idempotencyKey',
26
- label: { fr: "Clé d'idempotence", nl: 'Idempotentiesleutel', en: 'Idempotency Key' },
27
- type: 'text',
28
- required: false,
29
- unique: true,
30
- index: true,
31
- admin: {
32
- readOnly: true,
33
- description: {
34
- fr: 'Clé unique pour éviter les doublons',
35
- nl: 'Unieke sleutel om duplicaten te voorkomen',
36
- en: 'Unique key to prevent duplicates',
37
- },
38
- },
4
+ /**
5
+ * Configuration options for QueuedEmails collection
6
+ */
7
+ export interface QueuedEmailsConfig {
8
+ /**
9
+ * Default maximum number of retry attempts
10
+ * @default 5
11
+ */
12
+ defaultMaxAttempts?: number;
13
+ }
14
+
15
+ /**
16
+ * Create QueuedEmails collection with optional configuration
17
+ *
18
+ * @param config - Optional configuration for queued emails
19
+ * @returns CollectionConfig for QueuedEmails
20
+ */
21
+ export function createQueuedEmailsCollection(config?: QueuedEmailsConfig): CollectionConfig {
22
+ const defaultMaxAttempts = config?.defaultMaxAttempts ?? 5;
23
+
24
+ return {
25
+ slug: 'queued-emails',
26
+ labels: {
27
+ singular: { fr: 'Email en file', nl: 'E-mail in wachtrij', en: 'Queued Email' },
28
+ plural: { fr: 'Emails en file', nl: 'E-mails in wachtrij', en: 'Queued Emails' },
39
29
  },
40
- {
41
- type: 'row',
42
- fields: [
43
- {
44
- name: 'status',
45
- label: { fr: 'Statut', nl: 'Status', en: 'Status' },
46
- type: 'select',
47
- required: true,
48
- defaultValue: 'pending',
49
- options: [
50
- { label: { fr: 'En attente', nl: 'In afwachting', en: 'Pending' }, value: 'pending' },
51
- { label: { fr: 'Envoi en cours', nl: 'Verzenden', en: 'Sending' }, value: 'sending' },
52
- { label: { fr: 'Envoyé', nl: 'Verzonden', en: 'Sent' }, value: 'sent' },
53
- { label: { fr: 'Échec', nl: 'Mislukt', en: 'Failed' }, value: 'failed' },
54
- ],
55
- admin: {
56
- readOnly: true,
57
- },
58
- },
59
- {
60
- name: 'code',
61
- label: { fr: 'Identifiant', nl: 'Identificatie', en: 'Code' },
62
- type: 'text',
63
- required: true,
64
- admin: {
65
- readOnly: true,
66
- },
67
- },
68
- ],
30
+ admin: {
31
+ description: { fr: "File d'attente des emails à envoyer", nl: 'Wachtrij van te verzenden e-mails', en: 'Queue of emails to send' },
32
+ group: '✉️ Communication',
33
+ defaultColumns: ['status', 'code', 'recipient', 'createdAt', 'sentAt'],
34
+ hideAPIURL: true,
69
35
  },
70
- {
71
- name: 'retryActions',
72
- type: 'ui',
73
- admin: {
74
- components: {
75
- Field: '@latte-macchiat-io/latte-payload/collections/QueuedEmails/components/RetryEmailButtons#RetryEmailButtons',
76
- },
77
- condition: (data) => data.status === 'failed' && data.attemptCount >= data.maxAttempts,
78
- },
36
+ access: {
37
+ create: () => false, // Only created programmatically
38
+ delete: admins, // Allow admins to clean up old emails
39
+ read: admins,
40
+ update: admins, // Allow admins to manually retry failed emails
41
+ admin: admins,
79
42
  },
80
- {
81
- type: 'row',
82
- fields: [
83
- {
84
- name: 'recipient',
85
- label: { fr: 'Destinataire', nl: 'Ontvanger', en: 'Recipient' },
86
- type: 'text',
87
- required: true,
88
- admin: {
89
- readOnly: true,
43
+ fields: [
44
+ {
45
+ name: 'idempotencyKey',
46
+ label: { fr: "Clé d'idempotence", nl: 'Idempotentiesleutel', en: 'Idempotency Key' },
47
+ type: 'text',
48
+ required: false,
49
+ unique: true,
50
+ index: true,
51
+ admin: {
52
+ readOnly: true,
53
+ description: {
54
+ fr: 'Clé unique pour éviter les doublons',
55
+ nl: 'Unieke sleutel om duplicaten te voorkomen',
56
+ en: 'Unique key to prevent duplicates',
90
57
  },
91
58
  },
92
- {
93
- name: 'cc',
94
- label: { fr: 'CC', nl: 'CC', en: 'CC' },
95
- type: 'text',
96
- required: false,
97
- admin: {
98
- readOnly: true,
59
+ },
60
+ {
61
+ type: 'row',
62
+ fields: [
63
+ {
64
+ name: 'status',
65
+ label: { fr: 'Statut', nl: 'Status', en: 'Status' },
66
+ type: 'select',
67
+ required: true,
68
+ defaultValue: 'pending',
69
+ options: [
70
+ { label: { fr: 'En attente', nl: 'In afwachting', en: 'Pending' }, value: 'pending' },
71
+ { label: { fr: 'Envoi en cours', nl: 'Verzenden', en: 'Sending' }, value: 'sending' },
72
+ { label: { fr: 'Envoyé', nl: 'Verzonden', en: 'Sent' }, value: 'sent' },
73
+ { label: { fr: 'Échec', nl: 'Mislukt', en: 'Failed' }, value: 'failed' },
74
+ ],
75
+ admin: {
76
+ readOnly: true,
77
+ },
99
78
  },
100
- },
101
- ],
102
- },
103
- {
104
- name: 'subject',
105
- label: { fr: "Sujet de l'email", nl: 'Onderwerp van de e-mail', en: 'Email subject' },
106
- type: 'text',
107
- required: true,
108
- admin: {
109
- readOnly: true,
79
+ {
80
+ name: 'code',
81
+ label: { fr: 'Identifiant', nl: 'Identificatie', en: 'Code' },
82
+ type: 'text',
83
+ required: true,
84
+ admin: {
85
+ readOnly: true,
86
+ },
87
+ },
88
+ ],
110
89
  },
111
- },
112
- {
113
- name: 'htmlBody',
114
- label: { fr: "Contenu de l'email", nl: 'Inhoud van de e-mail', en: 'Email content' },
115
- type: 'textarea',
116
- required: true,
117
- admin: {
118
- readOnly: true,
119
- components: {
120
- Field: '@latte-macchiat-io/latte-payload/collections/QueuedEmails/components/HtmlViewer#HTMLViewer',
90
+ {
91
+ name: 'retryActions',
92
+ type: 'ui',
93
+ admin: {
94
+ components: {
95
+ Field: '@latte-macchiat-io/latte-payload/collections/QueuedEmails/components/RetryEmailButtons#RetryEmailButtons',
96
+ },
97
+ condition: (data) => data.status === 'failed' && data.attemptCount >= data.maxAttempts,
121
98
  },
122
99
  },
123
- },
124
- {
125
- type: 'row',
126
- fields: [
127
- {
128
- name: 'attemptCount',
129
- label: { fr: 'Nombre de tentatives', nl: 'Aantal pogingen', en: 'Attempt count' },
130
- type: 'number',
131
- required: true,
132
- defaultValue: 0,
133
- admin: {
134
- readOnly: true,
100
+ {
101
+ type: 'row',
102
+ fields: [
103
+ {
104
+ name: 'recipient',
105
+ label: { fr: 'Destinataire', nl: 'Ontvanger', en: 'Recipient' },
106
+ type: 'text',
107
+ required: true,
108
+ admin: {
109
+ readOnly: true,
110
+ },
135
111
  },
136
- },
137
- {
138
- name: 'maxAttempts',
139
- label: { fr: 'Tentatives maximales', nl: 'Maximaal aantal pogingen', en: 'Max attempts' },
140
- type: 'number',
141
- required: true,
142
- defaultValue: 5,
143
- admin: {
144
- readOnly: true,
112
+ {
113
+ name: 'cc',
114
+ label: { fr: 'CC', nl: 'CC', en: 'CC' },
115
+ type: 'text',
116
+ required: false,
117
+ admin: {
118
+ readOnly: true,
119
+ },
145
120
  },
121
+ ],
122
+ },
123
+ {
124
+ name: 'subject',
125
+ label: { fr: "Sujet de l'email", nl: 'Onderwerp van de e-mail', en: 'Email subject' },
126
+ type: 'text',
127
+ required: true,
128
+ admin: {
129
+ readOnly: true,
146
130
  },
147
- ],
148
- },
149
- {
150
- name: 'lastError',
151
- label: { fr: 'Dernière erreur', nl: 'Laatste fout', en: 'Last error' },
152
- type: 'textarea',
153
- required: false,
154
- admin: {
155
- readOnly: true,
156
- condition: (data) => data.status === 'failed',
157
131
  },
158
- },
159
- {
160
- name: 'errorHistory',
161
- label: { fr: 'Historique des erreurs', nl: 'Foutengeschiedenis', en: 'Error history' },
162
- type: 'array',
163
- required: false,
164
- admin: {
165
- readOnly: true,
166
- condition: (data) => data.errorHistory && data.errorHistory.length > 0,
167
- description: {
168
- fr: 'Liste complète de toutes les erreurs rencontrées',
169
- nl: 'Volledige lijst van alle fouten',
170
- en: 'Complete list of all errors encountered',
132
+ {
133
+ name: 'htmlBody',
134
+ label: { fr: "Contenu de l'email", nl: 'Inhoud van de e-mail', en: 'Email content' },
135
+ type: 'textarea',
136
+ required: true,
137
+ admin: {
138
+ readOnly: true,
139
+ components: {
140
+ Field: '@latte-macchiat-io/latte-payload/collections/QueuedEmails/components/HtmlViewer#HTMLViewer',
141
+ },
171
142
  },
172
143
  },
173
- fields: [
174
- {
175
- name: 'timestamp',
176
- label: { fr: 'Date', nl: 'Datum', en: 'Timestamp' },
177
- type: 'date',
178
- required: true,
179
- timezone: true,
180
- admin: {
181
- readOnly: true,
182
- date: {
183
- pickerAppearance: 'dayAndTime',
184
- timeFormat: 'HH:mm:ss',
185
- displayFormat: 'dd/MM/yyyy HH:mm:ss',
144
+ {
145
+ type: 'row',
146
+ fields: [
147
+ {
148
+ name: 'attemptCount',
149
+ label: { fr: 'Nombre de tentatives', nl: 'Aantal pogingen', en: 'Attempt count' },
150
+ type: 'number',
151
+ required: true,
152
+ defaultValue: 0,
153
+ admin: {
154
+ readOnly: true,
186
155
  },
187
156
  },
188
- },
189
- {
190
- name: 'attemptNumber',
191
- label: { fr: 'Tentative n°', nl: 'Poging nr.', en: 'Attempt #' },
192
- type: 'number',
193
- required: true,
194
- admin: {
195
- readOnly: true,
157
+ {
158
+ name: 'maxAttempts',
159
+ label: { fr: 'Tentatives maximales', nl: 'Maximaal aantal pogingen', en: 'Max attempts' },
160
+ type: 'number',
161
+ required: true,
162
+ defaultValue: defaultMaxAttempts,
163
+ admin: {
164
+ readOnly: true,
165
+ },
196
166
  },
167
+ ],
168
+ },
169
+ {
170
+ name: 'lastError',
171
+ label: { fr: 'Dernière erreur', nl: 'Laatste fout', en: 'Last error' },
172
+ type: 'textarea',
173
+ required: false,
174
+ admin: {
175
+ readOnly: true,
176
+ condition: (data) => data.status === 'failed',
197
177
  },
198
- {
199
- name: 'error',
200
- label: { fr: "Message d'erreur", nl: 'Foutmelding', en: 'Error message' },
201
- type: 'textarea',
202
- required: true,
203
- admin: {
204
- readOnly: true,
178
+ },
179
+ {
180
+ name: 'errorHistory',
181
+ label: { fr: 'Historique des erreurs', nl: 'Foutengeschiedenis', en: 'Error history' },
182
+ type: 'array',
183
+ required: false,
184
+ admin: {
185
+ readOnly: true,
186
+ condition: (data) => data.errorHistory && data.errorHistory.length > 0,
187
+ description: {
188
+ fr: 'Liste complète de toutes les erreurs rencontrées',
189
+ nl: 'Volledige lijst van alle fouten',
190
+ en: 'Complete list of all errors encountered',
205
191
  },
206
192
  },
207
- ],
208
- },
209
- {
210
- type: 'row',
211
- fields: [
212
- {
213
- name: 'lastAttemptAt',
214
- label: { fr: 'Dernière tentative', nl: 'Laatste poging', en: 'Last attempt' },
215
- type: 'date',
216
- required: false,
217
- timezone: true,
218
- admin: {
219
- readOnly: true,
220
- date: {
221
- pickerAppearance: 'dayAndTime',
222
- timeFormat: 'HH:mm:ss',
223
- displayFormat: 'dd/MM/yyyy HH:mm:ss',
193
+ fields: [
194
+ {
195
+ name: 'timestamp',
196
+ label: { fr: 'Date', nl: 'Datum', en: 'Timestamp' },
197
+ type: 'date',
198
+ required: true,
199
+ timezone: true,
200
+ admin: {
201
+ readOnly: true,
202
+ date: {
203
+ pickerAppearance: 'dayAndTime',
204
+ timeFormat: 'HH:mm:ss',
205
+ displayFormat: 'dd/MM/yyyy HH:mm:ss',
206
+ },
224
207
  },
225
208
  },
226
- },
227
- {
228
- name: 'sentAt',
229
- label: { fr: "Date d'envoi", nl: 'Verzenddatum', en: 'Sent at' },
230
- type: 'date',
231
- required: false,
232
- timezone: true,
233
- admin: {
234
- readOnly: true,
235
- date: {
236
- pickerAppearance: 'dayAndTime',
237
- timeFormat: 'HH:mm:ss',
238
- displayFormat: 'dd/MM/yyyy HH:mm:ss',
209
+ {
210
+ name: 'attemptNumber',
211
+ label: { fr: 'Tentative n°', nl: 'Poging nr.', en: 'Attempt #' },
212
+ type: 'number',
213
+ required: true,
214
+ admin: {
215
+ readOnly: true,
239
216
  },
240
- condition: (data) => data.status === 'sent',
241
217
  },
242
- },
243
- ],
244
- },
245
- ],
246
- };
218
+ {
219
+ name: 'error',
220
+ label: { fr: "Message d'erreur", nl: 'Foutmelding', en: 'Error message' },
221
+ type: 'textarea',
222
+ required: true,
223
+ admin: {
224
+ readOnly: true,
225
+ },
226
+ },
227
+ ],
228
+ },
229
+ {
230
+ type: 'row',
231
+ fields: [
232
+ {
233
+ name: 'lastAttemptAt',
234
+ label: { fr: 'Dernière tentative', nl: 'Laatste poging', en: 'Last attempt' },
235
+ type: 'date',
236
+ required: false,
237
+ timezone: true,
238
+ admin: {
239
+ readOnly: true,
240
+ date: {
241
+ pickerAppearance: 'dayAndTime',
242
+ timeFormat: 'HH:mm:ss',
243
+ displayFormat: 'dd/MM/yyyy HH:mm:ss',
244
+ },
245
+ },
246
+ },
247
+ {
248
+ name: 'sentAt',
249
+ label: { fr: "Date d'envoi", nl: 'Verzenddatum', en: 'Sent at' },
250
+ type: 'date',
251
+ required: false,
252
+ timezone: true,
253
+ admin: {
254
+ readOnly: true,
255
+ date: {
256
+ pickerAppearance: 'dayAndTime',
257
+ timeFormat: 'HH:mm:ss',
258
+ displayFormat: 'dd/MM/yyyy HH:mm:ss',
259
+ },
260
+ condition: (data) => data.status === 'sent',
261
+ },
262
+ },
263
+ ],
264
+ },
265
+ ],
266
+ };
267
+ }
268
+
269
+ /**
270
+ * Default QueuedEmails collection with standard configuration
271
+ */
272
+ export const QueuedEmails = createQueuedEmailsCollection();
@@ -1,4 +1,4 @@
1
- import type { Locale } from '../../src/types';
1
+ import type { Locale } from '../../src';
2
2
 
3
3
  export const sampleUsers = [
4
4
  {
@@ -1,12 +1,12 @@
1
1
  import { sqliteAdapter } from '@payloadcms/db-sqlite';
2
2
  import { lexicalEditor } from '@payloadcms/richtext-lexical';
3
- import { Config, getPayload, type Payload } from 'payload';
3
+ import { buildConfig, getPayload, type Payload } from 'payload';
4
4
  import path from 'path';
5
5
  import { fileURLToPath } from 'url';
6
6
 
7
- import { createEmailTemplatesCollection } from '../../src/collections/EmailTemplates/index.js';
8
- import { createQueuedEmailsCollection } from '../../src/collections/QueuedEmails/index.js';
9
- import { createUsersCollection } from '../../src/collections/Users/index.js';
7
+ import { createEmailTemplatesCollection } from '@/collections/EmailTemplates/index';
8
+ import { createQueuedEmailsCollection } from '@/collections/QueuedEmails/index';
9
+ import { createUsersCollection } from '@/collections/Users/index';
10
10
 
11
11
  const filename = fileURLToPath(import.meta.url);
12
12
  const dirname = path.dirname(filename);
@@ -24,7 +24,7 @@ export async function initPayloadInt(): Promise<Payload> {
24
24
  }
25
25
 
26
26
  // Minimal test configuration
27
- const config: Config = {
27
+ const config = buildConfig({
28
28
  secret: process.env.PAYLOAD_SECRET || 'test-secret-key',
29
29
  db: sqliteAdapter({
30
30
  client: {
@@ -40,7 +40,7 @@ export async function initPayloadInt(): Promise<Payload> {
40
40
  onInit: async (payload) => {
41
41
  payload.logger.info('Payload initialized for testing');
42
42
  },
43
- };
43
+ });
44
44
 
45
45
  const payload = await getPayload({ config });
46
46
 
@@ -6,4 +6,4 @@ config({ path: '.env.test' });
6
6
  // Set test-specific environment variables
7
7
  process.env.PAYLOAD_DROP_DATABASE = 'true';
8
8
  process.env.PAYLOAD_DISABLE_ADMIN = 'true';
9
- process.env.NODE_ENV = 'test';
9
+ (process.env as any).NODE_ENV = 'test'; // Ensure NODE_ENV is 'test' even if it's read-only in some environments
@@ -39,7 +39,7 @@ describe('id-from-payload utility', () => {
39
39
  });
40
40
 
41
41
  it('should extract id from object with other properties', () => {
42
- expect(getId({ id: 123, name: 'test', email: 'test@example.com' })).toBe(123);
42
+ expect(getId({ id: 123, name: 'test', email: 'test@example.com' } as any)).toBe(123);
43
43
  });
44
44
 
45
45
  it('should handle object with only id property', () => {
package/tsconfig.json CHANGED
@@ -8,7 +8,6 @@
8
8
  "allowJs": true,
9
9
  "checkJs": false,
10
10
  "outDir": "./dist",
11
- "rootDir": "./src",
12
11
  "declaration": true,
13
12
  "declarationMap": true,
14
13
  "sourceMap": true,
@@ -26,6 +25,6 @@
26
25
  "@/*": ["./src/*"]
27
26
  }
28
27
  },
29
- "include": ["src/**/*"],
28
+ "include": ["src/**/*", "tests/**/*"],
30
29
  "exclude": ["node_modules", "dist"]
31
30
  }
@@ -1,9 +0,0 @@
1
- {
2
- "permissions": {
3
- "allow": [
4
- "Bash(npx tsc:*)",
5
- "Bash(pnpm test:unit:*)",
6
- "Bash(pnpm test:coverage:*)"
7
- ]
8
- }
9
- }