@starklabs/forge 1.3.24-beta.0 → 1.3.24-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (453) hide show
  1. package/dist/js/auth/builtin/auth.collection.d.ts.map +1 -1
  2. package/dist/js/auth/builtin/auth.collection.js +10 -0
  3. package/dist/js/auth/builtin/auth.collection.js.map +1 -1
  4. package/dist/js/auth/utils/handleGetToken.d.ts.map +1 -1
  5. package/dist/js/auth/utils/handleGetToken.js +2 -2
  6. package/dist/js/auth/utils/handleGetToken.js.map +1 -1
  7. package/dist/js/auth/utils/sendOTP.d.ts.map +1 -1
  8. package/dist/js/auth/utils/sendOTP.js +15 -14
  9. package/dist/js/auth/utils/sendOTP.js.map +1 -1
  10. package/dist/js/config/auth.envs.d.ts +4 -0
  11. package/dist/js/config/auth.envs.d.ts.map +1 -0
  12. package/dist/js/config/auth.envs.js +79 -0
  13. package/dist/js/config/auth.envs.js.map +1 -0
  14. package/dist/js/config/email.envs.d.ts +4 -0
  15. package/dist/js/config/email.envs.d.ts.map +1 -0
  16. package/dist/js/config/email.envs.js +50 -0
  17. package/dist/js/config/email.envs.js.map +1 -0
  18. package/dist/js/config/envs.d.ts.map +1 -1
  19. package/dist/js/config/envs.js +6 -76
  20. package/dist/js/config/envs.js.map +1 -1
  21. package/dist/js/config/sendEmail.d.ts.map +1 -1
  22. package/dist/js/config/sendEmail.js +3 -1
  23. package/dist/js/config/sendEmail.js.map +1 -1
  24. package/dist/js/crud/read.d.ts.map +1 -1
  25. package/dist/js/crud/read.js +3 -4
  26. package/dist/js/crud/read.js.map +1 -1
  27. package/dist/js/crud/readAll.d.ts.map +1 -1
  28. package/dist/js/crud/readAll.js.map +1 -1
  29. package/dist/js/crud/utils/runActions.d.ts +2 -3
  30. package/dist/js/crud/utils/runActions.d.ts.map +1 -1
  31. package/dist/js/crud/utils/runActions.js +14 -4
  32. package/dist/js/crud/utils/runActions.js.map +1 -1
  33. package/dist/js/email/index.d.ts +4 -0
  34. package/dist/js/email/index.d.ts.map +1 -0
  35. package/dist/js/email/index.js +180 -0
  36. package/dist/js/email/index.js.map +1 -0
  37. package/dist/js/email/templates/account.created.d.ts +4 -0
  38. package/dist/js/email/templates/account.created.d.ts.map +1 -0
  39. package/dist/js/email/templates/account.created.email.d.ts +4 -0
  40. package/dist/js/email/templates/account.created.email.d.ts.map +1 -0
  41. package/dist/js/email/templates/account.created.email.js +165 -0
  42. package/dist/js/email/templates/account.created.email.js.map +1 -0
  43. package/dist/js/email/templates/account.created.js +122 -0
  44. package/dist/js/email/templates/account.created.js.map +1 -0
  45. package/dist/js/email/templates/account.deleted.d.ts +4 -0
  46. package/dist/js/email/templates/account.deleted.d.ts.map +1 -0
  47. package/dist/js/email/templates/account.deleted.js +111 -0
  48. package/dist/js/email/templates/account.deleted.js.map +1 -0
  49. package/dist/js/email/templates/account.updated.d.ts +4 -0
  50. package/dist/js/email/templates/account.updated.d.ts.map +1 -0
  51. package/dist/js/email/templates/account.updated.js +128 -0
  52. package/dist/js/email/templates/account.updated.js.map +1 -0
  53. package/dist/js/email/templates/announcement.d.ts +4 -0
  54. package/dist/js/email/templates/announcement.d.ts.map +1 -0
  55. package/dist/js/email/templates/announcement.js +122 -0
  56. package/dist/js/email/templates/announcement.js.map +1 -0
  57. package/dist/js/email/templates/api.key.created.d.ts +4 -0
  58. package/dist/js/email/templates/api.key.created.d.ts.map +1 -0
  59. package/dist/js/email/templates/api.key.created.js +159 -0
  60. package/dist/js/email/templates/api.key.created.js.map +1 -0
  61. package/dist/js/email/templates/api.key.revoked.d.ts +4 -0
  62. package/dist/js/email/templates/api.key.revoked.d.ts.map +1 -0
  63. package/dist/js/email/templates/api.key.revoked.js +134 -0
  64. package/dist/js/email/templates/api.key.revoked.js.map +1 -0
  65. package/dist/js/email/templates/contact.form.d.ts +4 -0
  66. package/dist/js/email/templates/contact.form.d.ts.map +1 -0
  67. package/dist/js/email/templates/contact.form.js +134 -0
  68. package/dist/js/email/templates/contact.form.js.map +1 -0
  69. package/dist/js/email/templates/daily.report.d.ts +4 -0
  70. package/dist/js/email/templates/daily.report.d.ts.map +1 -0
  71. package/dist/js/email/templates/daily.report.js +143 -0
  72. package/dist/js/email/templates/daily.report.js.map +1 -0
  73. package/dist/js/email/templates/email.changed.d.ts +4 -0
  74. package/dist/js/email/templates/email.changed.d.ts.map +1 -0
  75. package/dist/js/email/templates/email.changed.js +122 -0
  76. package/dist/js/email/templates/email.changed.js.map +1 -0
  77. package/dist/js/email/templates/feedback.d.ts +4 -0
  78. package/dist/js/email/templates/feedback.d.ts.map +1 -0
  79. package/dist/js/email/templates/feedback.js +136 -0
  80. package/dist/js/email/templates/feedback.js.map +1 -0
  81. package/dist/js/email/templates/index.d.ts +46 -0
  82. package/dist/js/email/templates/index.d.ts.map +1 -0
  83. package/dist/js/email/templates/index.js +46 -0
  84. package/dist/js/email/templates/index.js.map +1 -0
  85. package/dist/js/email/templates/invoice.d.ts +4 -0
  86. package/dist/js/email/templates/invoice.d.ts.map +1 -0
  87. package/dist/js/email/templates/invoice.js +147 -0
  88. package/dist/js/email/templates/invoice.js.map +1 -0
  89. package/dist/js/email/templates/login.alert.d.ts +4 -0
  90. package/dist/js/email/templates/login.alert.d.ts.map +1 -0
  91. package/dist/js/email/templates/login.alert.js +147 -0
  92. package/dist/js/email/templates/login.alert.js.map +1 -0
  93. package/dist/js/email/templates/magic.link.d.ts +4 -0
  94. package/dist/js/email/templates/magic.link.d.ts.map +1 -0
  95. package/dist/js/email/templates/magic.link.js +126 -0
  96. package/dist/js/email/templates/magic.link.js.map +1 -0
  97. package/dist/js/email/templates/maintenance.d.ts +4 -0
  98. package/dist/js/email/templates/maintenance.d.ts.map +1 -0
  99. package/dist/js/email/templates/maintenance.js +132 -0
  100. package/dist/js/email/templates/maintenance.js.map +1 -0
  101. package/dist/js/email/templates/member.added.d.ts +4 -0
  102. package/dist/js/email/templates/member.added.d.ts.map +1 -0
  103. package/dist/js/email/templates/member.added.js +122 -0
  104. package/dist/js/email/templates/member.added.js.map +1 -0
  105. package/dist/js/email/templates/member.removed.d.ts +4 -0
  106. package/dist/js/email/templates/member.removed.d.ts.map +1 -0
  107. package/dist/js/email/templates/member.removed.js +122 -0
  108. package/dist/js/email/templates/member.removed.js.map +1 -0
  109. package/dist/js/email/templates/mention.d.ts +4 -0
  110. package/dist/js/email/templates/mention.d.ts.map +1 -0
  111. package/dist/js/email/templates/mention.js +134 -0
  112. package/dist/js/email/templates/mention.js.map +1 -0
  113. package/dist/js/email/templates/monthly.report.d.ts +4 -0
  114. package/dist/js/email/templates/monthly.report.d.ts.map +1 -0
  115. package/dist/js/email/templates/monthly.report.js +143 -0
  116. package/dist/js/email/templates/monthly.report.js.map +1 -0
  117. package/dist/js/email/templates/new.comment.d.ts +4 -0
  118. package/dist/js/email/templates/new.comment.d.ts.map +1 -0
  119. package/dist/js/email/templates/new.comment.js +134 -0
  120. package/dist/js/email/templates/new.comment.js.map +1 -0
  121. package/dist/js/email/templates/new.device.login.d.ts +4 -0
  122. package/dist/js/email/templates/new.device.login.d.ts.map +1 -0
  123. package/dist/js/email/templates/new.device.login.js +147 -0
  124. package/dist/js/email/templates/new.device.login.js.map +1 -0
  125. package/dist/js/email/templates/new.message.d.ts +4 -0
  126. package/dist/js/email/templates/new.message.d.ts.map +1 -0
  127. package/dist/js/email/templates/new.message.js +134 -0
  128. package/dist/js/email/templates/new.message.js.map +1 -0
  129. package/dist/js/email/templates/notification.d.ts +4 -0
  130. package/dist/js/email/templates/notification.d.ts.map +1 -0
  131. package/dist/js/email/templates/notification.js +122 -0
  132. package/dist/js/email/templates/notification.js.map +1 -0
  133. package/dist/js/email/templates/order.cancelled.d.ts +4 -0
  134. package/dist/js/email/templates/order.cancelled.d.ts.map +1 -0
  135. package/dist/js/email/templates/order.cancelled.js +132 -0
  136. package/dist/js/email/templates/order.cancelled.js.map +1 -0
  137. package/dist/js/email/templates/order.confirmation.d.ts +4 -0
  138. package/dist/js/email/templates/order.confirmation.d.ts.map +1 -0
  139. package/dist/js/email/templates/order.confirmation.js +143 -0
  140. package/dist/js/email/templates/order.confirmation.js.map +1 -0
  141. package/dist/js/email/templates/order.delivered.d.ts +4 -0
  142. package/dist/js/email/templates/order.delivered.d.ts.map +1 -0
  143. package/dist/js/email/templates/order.delivered.js +122 -0
  144. package/dist/js/email/templates/order.delivered.js.map +1 -0
  145. package/dist/js/email/templates/order.shipped.d.ts +4 -0
  146. package/dist/js/email/templates/order.shipped.d.ts.map +1 -0
  147. package/dist/js/email/templates/order.shipped.js +143 -0
  148. package/dist/js/email/templates/order.shipped.js.map +1 -0
  149. package/dist/js/email/templates/organization.invitation.d.ts +4 -0
  150. package/dist/js/email/templates/organization.invitation.d.ts.map +1 -0
  151. package/dist/js/email/templates/organization.invitation.js +126 -0
  152. package/dist/js/email/templates/organization.invitation.js.map +1 -0
  153. package/dist/js/email/templates/otp.verfication.d.ts +4 -0
  154. package/dist/js/email/templates/otp.verfication.d.ts.map +1 -0
  155. package/dist/js/email/templates/otp.verfication.js +117 -0
  156. package/dist/js/email/templates/otp.verfication.js.map +1 -0
  157. package/dist/js/email/templates/password.changed.d.ts +4 -0
  158. package/dist/js/email/templates/password.changed.d.ts.map +1 -0
  159. package/dist/js/email/templates/password.changed.js +155 -0
  160. package/dist/js/email/templates/password.changed.js.map +1 -0
  161. package/dist/js/email/templates/password.expiring.d.ts +4 -0
  162. package/dist/js/email/templates/password.expiring.d.ts.map +1 -0
  163. package/dist/js/email/templates/password.expiring.js +122 -0
  164. package/dist/js/email/templates/password.expiring.js.map +1 -0
  165. package/dist/js/email/templates/password.reset.d.ts +4 -0
  166. package/dist/js/email/templates/password.reset.d.ts.map +1 -0
  167. package/dist/js/email/templates/password.reset.js +138 -0
  168. package/dist/js/email/templates/password.reset.js.map +1 -0
  169. package/dist/js/email/templates/payment.failed.d.ts +4 -0
  170. package/dist/js/email/templates/payment.failed.d.ts.map +1 -0
  171. package/dist/js/email/templates/payment.failed.js +155 -0
  172. package/dist/js/email/templates/payment.failed.js.map +1 -0
  173. package/dist/js/email/templates/payment.success.d.ts +4 -0
  174. package/dist/js/email/templates/payment.success.d.ts.map +1 -0
  175. package/dist/js/email/templates/payment.success.js +143 -0
  176. package/dist/js/email/templates/payment.success.js.map +1 -0
  177. package/dist/js/email/templates/receipt.d.ts +4 -0
  178. package/dist/js/email/templates/receipt.d.ts.map +1 -0
  179. package/dist/js/email/templates/receipt.js +147 -0
  180. package/dist/js/email/templates/receipt.js.map +1 -0
  181. package/dist/js/email/templates/reminder.d.ts +4 -0
  182. package/dist/js/email/templates/reminder.d.ts.map +1 -0
  183. package/dist/js/email/templates/reminder.js +122 -0
  184. package/dist/js/email/templates/reminder.js.map +1 -0
  185. package/dist/js/email/templates/security.alert.d.ts +4 -0
  186. package/dist/js/email/templates/security.alert.d.ts.map +1 -0
  187. package/dist/js/email/templates/security.alert.js +155 -0
  188. package/dist/js/email/templates/security.alert.js.map +1 -0
  189. package/dist/js/email/templates/subscription.cancelled.d.ts +4 -0
  190. package/dist/js/email/templates/subscription.cancelled.d.ts.map +1 -0
  191. package/dist/js/email/templates/subscription.cancelled.js +122 -0
  192. package/dist/js/email/templates/subscription.cancelled.js.map +1 -0
  193. package/dist/js/email/templates/subscription.created.d.ts +4 -0
  194. package/dist/js/email/templates/subscription.created.d.ts.map +1 -0
  195. package/dist/js/email/templates/subscription.created.js +143 -0
  196. package/dist/js/email/templates/subscription.created.js.map +1 -0
  197. package/dist/js/email/templates/subscription.renewed.d.ts +4 -0
  198. package/dist/js/email/templates/subscription.renewed.d.ts.map +1 -0
  199. package/dist/js/email/templates/subscription.renewed.js +143 -0
  200. package/dist/js/email/templates/subscription.renewed.js.map +1 -0
  201. package/dist/js/email/templates/support.ticket.d.ts +4 -0
  202. package/dist/js/email/templates/support.ticket.d.ts.map +1 -0
  203. package/dist/js/email/templates/support.ticket.js +143 -0
  204. package/dist/js/email/templates/support.ticket.js.map +1 -0
  205. package/dist/js/email/templates/team.invitation.d.ts +4 -0
  206. package/dist/js/email/templates/team.invitation.d.ts.map +1 -0
  207. package/dist/js/email/templates/team.invitation.js +126 -0
  208. package/dist/js/email/templates/team.invitation.js.map +1 -0
  209. package/dist/js/email/templates/trial.ending.d.ts +4 -0
  210. package/dist/js/email/templates/trial.ending.d.ts.map +1 -0
  211. package/dist/js/email/templates/trial.ending.js +122 -0
  212. package/dist/js/email/templates/trial.ending.js.map +1 -0
  213. package/dist/js/email/templates/two.factor.code.d.ts +4 -0
  214. package/dist/js/email/templates/two.factor.code.d.ts.map +1 -0
  215. package/dist/js/email/templates/two.factor.code.js +121 -0
  216. package/dist/js/email/templates/two.factor.code.js.map +1 -0
  217. package/dist/js/email/templates/verify.email.d.ts +4 -0
  218. package/dist/js/email/templates/verify.email.d.ts.map +1 -0
  219. package/dist/js/email/templates/verify.email.js +126 -0
  220. package/dist/js/email/templates/verify.email.js.map +1 -0
  221. package/dist/js/email/templates/weekly.report.d.ts +4 -0
  222. package/dist/js/email/templates/weekly.report.d.ts.map +1 -0
  223. package/dist/js/email/templates/weekly.report.js +143 -0
  224. package/dist/js/email/templates/weekly.report.js.map +1 -0
  225. package/dist/js/email/templates/welcome.d.ts +4 -0
  226. package/dist/js/email/templates/welcome.d.ts.map +1 -0
  227. package/dist/js/email/templates/welcome.email.d.ts +4 -0
  228. package/dist/js/email/templates/welcome.email.d.ts.map +1 -0
  229. package/dist/js/email/templates/welcome.email.js +417 -0
  230. package/dist/js/email/templates/welcome.email.js.map +1 -0
  231. package/dist/js/email/templates/welcome.js +122 -0
  232. package/dist/js/email/templates/welcome.js.map +1 -0
  233. package/dist/js/email/utils/auto-fields.d.ts +68 -0
  234. package/dist/js/email/utils/auto-fields.d.ts.map +1 -0
  235. package/dist/js/email/utils/auto-fields.js +232 -0
  236. package/dist/js/email/utils/auto-fields.js.map +1 -0
  237. package/dist/js/email/utils/auto-fields.type.d.ts +18 -0
  238. package/dist/js/email/utils/auto-fields.type.d.ts.map +1 -0
  239. package/dist/js/email/utils/auto-fields.type.js +2 -0
  240. package/dist/js/email/utils/auto-fields.type.js.map +1 -0
  241. package/dist/js/email/utils/emailTemplates.d.ts +2 -0
  242. package/dist/js/email/utils/emailTemplates.d.ts.map +1 -0
  243. package/dist/js/email/utils/emailTemplates.js +49 -0
  244. package/dist/js/email/utils/emailTemplates.js.map +1 -0
  245. package/dist/js/email/utils/handleEmailTemplateConfig.d.ts +4 -0
  246. package/dist/js/email/utils/handleEmailTemplateConfig.d.ts.map +1 -0
  247. package/dist/js/email/utils/handleEmailTemplateConfig.js +47 -0
  248. package/dist/js/email/utils/handleEmailTemplateConfig.js.map +1 -0
  249. package/dist/js/types/ActionHandler.d.ts +49 -56
  250. package/dist/js/types/ActionHandler.d.ts.map +1 -1
  251. package/dist/js/types/Constructor.d.ts +3 -1
  252. package/dist/js/types/Constructor.d.ts.map +1 -1
  253. package/dist/js/types/EmailActionTemplate.d.ts +52 -0
  254. package/dist/js/types/EmailActionTemplate.d.ts.map +1 -0
  255. package/dist/js/types/EmailActionTemplate.js +2 -0
  256. package/dist/js/types/EmailActionTemplate.js.map +1 -0
  257. package/dist/js/types/Route.d.ts +1 -1
  258. package/dist/js/types/Route.d.ts.map +1 -1
  259. package/dist/js/types/email/account.created.type.d.ts +10 -0
  260. package/dist/js/types/email/account.created.type.d.ts.map +1 -0
  261. package/dist/js/types/email/account.created.type.js +2 -0
  262. package/dist/js/types/email/account.created.type.js.map +1 -0
  263. package/dist/js/types/email/account.deleted.type.d.ts +10 -0
  264. package/dist/js/types/email/account.deleted.type.d.ts.map +1 -0
  265. package/dist/js/types/email/account.deleted.type.js +2 -0
  266. package/dist/js/types/email/account.deleted.type.js.map +1 -0
  267. package/dist/js/types/email/account.updated.type.d.ts +12 -0
  268. package/dist/js/types/email/account.updated.type.d.ts.map +1 -0
  269. package/dist/js/types/email/account.updated.type.js +2 -0
  270. package/dist/js/types/email/account.updated.type.js.map +1 -0
  271. package/dist/js/types/email/announcement.type.d.ts +13 -0
  272. package/dist/js/types/email/announcement.type.d.ts.map +1 -0
  273. package/dist/js/types/email/announcement.type.js +2 -0
  274. package/dist/js/types/email/announcement.type.js.map +1 -0
  275. package/dist/js/types/email/api.key.created.type.d.ts +14 -0
  276. package/dist/js/types/email/api.key.created.type.d.ts.map +1 -0
  277. package/dist/js/types/email/api.key.created.type.js +2 -0
  278. package/dist/js/types/email/api.key.created.type.js.map +1 -0
  279. package/dist/js/types/email/api.key.revoked.type.d.ts +14 -0
  280. package/dist/js/types/email/api.key.revoked.type.d.ts.map +1 -0
  281. package/dist/js/types/email/api.key.revoked.type.js +2 -0
  282. package/dist/js/types/email/api.key.revoked.type.js.map +1 -0
  283. package/dist/js/types/email/contact.form.type.d.ts +11 -0
  284. package/dist/js/types/email/contact.form.type.d.ts.map +1 -0
  285. package/dist/js/types/email/contact.form.type.js +2 -0
  286. package/dist/js/types/email/contact.form.type.js.map +1 -0
  287. package/dist/js/types/email/daily.report.type.d.ts +14 -0
  288. package/dist/js/types/email/daily.report.type.d.ts.map +1 -0
  289. package/dist/js/types/email/daily.report.type.js +2 -0
  290. package/dist/js/types/email/daily.report.type.js.map +1 -0
  291. package/dist/js/types/email/email.changed.type.d.ts +12 -0
  292. package/dist/js/types/email/email.changed.type.d.ts.map +1 -0
  293. package/dist/js/types/email/email.changed.type.js +2 -0
  294. package/dist/js/types/email/email.changed.type.js.map +1 -0
  295. package/dist/js/types/email/feedback.type.d.ts +11 -0
  296. package/dist/js/types/email/feedback.type.d.ts.map +1 -0
  297. package/dist/js/types/email/feedback.type.js +2 -0
  298. package/dist/js/types/email/feedback.type.js.map +1 -0
  299. package/dist/js/types/email/index.d.ts +46 -0
  300. package/dist/js/types/email/index.d.ts.map +1 -0
  301. package/dist/js/types/email/index.js +2 -0
  302. package/dist/js/types/email/index.js.map +1 -0
  303. package/dist/js/types/email/invoice.type.d.ts +14 -0
  304. package/dist/js/types/email/invoice.type.d.ts.map +1 -0
  305. package/dist/js/types/email/invoice.type.js +2 -0
  306. package/dist/js/types/email/invoice.type.js.map +1 -0
  307. package/dist/js/types/email/login.alert.type.d.ts +12 -0
  308. package/dist/js/types/email/login.alert.type.d.ts.map +1 -0
  309. package/dist/js/types/email/login.alert.type.js +2 -0
  310. package/dist/js/types/email/login.alert.type.js.map +1 -0
  311. package/dist/js/types/email/magic.link.type.d.ts +11 -0
  312. package/dist/js/types/email/magic.link.type.d.ts.map +1 -0
  313. package/dist/js/types/email/magic.link.type.js +2 -0
  314. package/dist/js/types/email/magic.link.type.js.map +1 -0
  315. package/dist/js/types/email/maintenance.type.d.ts +13 -0
  316. package/dist/js/types/email/maintenance.type.d.ts.map +1 -0
  317. package/dist/js/types/email/maintenance.type.js +2 -0
  318. package/dist/js/types/email/maintenance.type.js.map +1 -0
  319. package/dist/js/types/email/member.added.type.d.ts +14 -0
  320. package/dist/js/types/email/member.added.type.d.ts.map +1 -0
  321. package/dist/js/types/email/member.added.type.js +2 -0
  322. package/dist/js/types/email/member.added.type.js.map +1 -0
  323. package/dist/js/types/email/member.removed.type.d.ts +14 -0
  324. package/dist/js/types/email/member.removed.type.d.ts.map +1 -0
  325. package/dist/js/types/email/member.removed.type.js +2 -0
  326. package/dist/js/types/email/member.removed.type.js.map +1 -0
  327. package/dist/js/types/email/mention.type.d.ts +12 -0
  328. package/dist/js/types/email/mention.type.d.ts.map +1 -0
  329. package/dist/js/types/email/mention.type.js +2 -0
  330. package/dist/js/types/email/mention.type.js.map +1 -0
  331. package/dist/js/types/email/monthly.report.type.d.ts +14 -0
  332. package/dist/js/types/email/monthly.report.type.d.ts.map +1 -0
  333. package/dist/js/types/email/monthly.report.type.js +2 -0
  334. package/dist/js/types/email/monthly.report.type.js.map +1 -0
  335. package/dist/js/types/email/new.comment.type.d.ts +12 -0
  336. package/dist/js/types/email/new.comment.type.d.ts.map +1 -0
  337. package/dist/js/types/email/new.comment.type.js +2 -0
  338. package/dist/js/types/email/new.comment.type.js.map +1 -0
  339. package/dist/js/types/email/new.device.login.type.d.ts +11 -0
  340. package/dist/js/types/email/new.device.login.type.d.ts.map +1 -0
  341. package/dist/js/types/email/new.device.login.type.js +2 -0
  342. package/dist/js/types/email/new.device.login.type.js.map +1 -0
  343. package/dist/js/types/email/new.message.type.d.ts +11 -0
  344. package/dist/js/types/email/new.message.type.d.ts.map +1 -0
  345. package/dist/js/types/email/new.message.type.js +2 -0
  346. package/dist/js/types/email/new.message.type.js.map +1 -0
  347. package/dist/js/types/email/notification.type.d.ts +13 -0
  348. package/dist/js/types/email/notification.type.d.ts.map +1 -0
  349. package/dist/js/types/email/notification.type.js +2 -0
  350. package/dist/js/types/email/notification.type.js.map +1 -0
  351. package/dist/js/types/email/order.cancelled.type.d.ts +12 -0
  352. package/dist/js/types/email/order.cancelled.type.d.ts.map +1 -0
  353. package/dist/js/types/email/order.cancelled.type.js +2 -0
  354. package/dist/js/types/email/order.cancelled.type.js.map +1 -0
  355. package/dist/js/types/email/order.confirmation.type.d.ts +13 -0
  356. package/dist/js/types/email/order.confirmation.type.d.ts.map +1 -0
  357. package/dist/js/types/email/order.confirmation.type.js +2 -0
  358. package/dist/js/types/email/order.confirmation.type.js.map +1 -0
  359. package/dist/js/types/email/order.delivered.type.d.ts +12 -0
  360. package/dist/js/types/email/order.delivered.type.d.ts.map +1 -0
  361. package/dist/js/types/email/order.delivered.type.js +2 -0
  362. package/dist/js/types/email/order.delivered.type.js.map +1 -0
  363. package/dist/js/types/email/order.shipped.type.d.ts +14 -0
  364. package/dist/js/types/email/order.shipped.type.d.ts.map +1 -0
  365. package/dist/js/types/email/order.shipped.type.js +2 -0
  366. package/dist/js/types/email/order.shipped.type.js.map +1 -0
  367. package/dist/js/types/email/organization.invitation.type.d.ts +13 -0
  368. package/dist/js/types/email/organization.invitation.type.d.ts.map +1 -0
  369. package/dist/js/types/email/organization.invitation.type.js +2 -0
  370. package/dist/js/types/email/organization.invitation.type.js.map +1 -0
  371. package/dist/js/types/email/otp.verification.type.d.ts +11 -0
  372. package/dist/js/types/email/otp.verification.type.d.ts.map +1 -0
  373. package/dist/js/types/email/otp.verification.type.js +2 -0
  374. package/dist/js/types/email/otp.verification.type.js.map +1 -0
  375. package/dist/js/types/email/password.changed.type.d.ts +12 -0
  376. package/dist/js/types/email/password.changed.type.d.ts.map +1 -0
  377. package/dist/js/types/email/password.changed.type.js +2 -0
  378. package/dist/js/types/email/password.changed.type.js.map +1 -0
  379. package/dist/js/types/email/password.expiring.type.d.ts +12 -0
  380. package/dist/js/types/email/password.expiring.type.d.ts.map +1 -0
  381. package/dist/js/types/email/password.expiring.type.js +2 -0
  382. package/dist/js/types/email/password.expiring.type.js.map +1 -0
  383. package/dist/js/types/email/password.reset.type.d.ts +11 -0
  384. package/dist/js/types/email/password.reset.type.d.ts.map +1 -0
  385. package/dist/js/types/email/password.reset.type.js +2 -0
  386. package/dist/js/types/email/password.reset.type.js.map +1 -0
  387. package/dist/js/types/email/payment.failed.type.d.ts +14 -0
  388. package/dist/js/types/email/payment.failed.type.d.ts.map +1 -0
  389. package/dist/js/types/email/payment.failed.type.js +2 -0
  390. package/dist/js/types/email/payment.failed.type.js.map +1 -0
  391. package/dist/js/types/email/payment.success.type.d.ts +13 -0
  392. package/dist/js/types/email/payment.success.type.d.ts.map +1 -0
  393. package/dist/js/types/email/payment.success.type.js +2 -0
  394. package/dist/js/types/email/payment.success.type.js.map +1 -0
  395. package/dist/js/types/email/receipt.type.d.ts +14 -0
  396. package/dist/js/types/email/receipt.type.d.ts.map +1 -0
  397. package/dist/js/types/email/receipt.type.js +2 -0
  398. package/dist/js/types/email/receipt.type.js.map +1 -0
  399. package/dist/js/types/email/reminder.type.d.ts +12 -0
  400. package/dist/js/types/email/reminder.type.d.ts.map +1 -0
  401. package/dist/js/types/email/reminder.type.js +2 -0
  402. package/dist/js/types/email/reminder.type.js.map +1 -0
  403. package/dist/js/types/email/security.alert.type.d.ts +12 -0
  404. package/dist/js/types/email/security.alert.type.d.ts.map +1 -0
  405. package/dist/js/types/email/security.alert.type.js +2 -0
  406. package/dist/js/types/email/security.alert.type.js.map +1 -0
  407. package/dist/js/types/email/static-config.type.d.ts +8 -0
  408. package/dist/js/types/email/static-config.type.d.ts.map +1 -0
  409. package/dist/js/types/email/static-config.type.js +2 -0
  410. package/dist/js/types/email/static-config.type.js.map +1 -0
  411. package/dist/js/types/email/subscription.cancelled.type.d.ts +12 -0
  412. package/dist/js/types/email/subscription.cancelled.type.d.ts.map +1 -0
  413. package/dist/js/types/email/subscription.cancelled.type.js +2 -0
  414. package/dist/js/types/email/subscription.cancelled.type.js.map +1 -0
  415. package/dist/js/types/email/subscription.created.type.d.ts +13 -0
  416. package/dist/js/types/email/subscription.created.type.d.ts.map +1 -0
  417. package/dist/js/types/email/subscription.created.type.js +2 -0
  418. package/dist/js/types/email/subscription.created.type.js.map +1 -0
  419. package/dist/js/types/email/subscription.renewed.type.d.ts +14 -0
  420. package/dist/js/types/email/subscription.renewed.type.d.ts.map +1 -0
  421. package/dist/js/types/email/subscription.renewed.type.js +2 -0
  422. package/dist/js/types/email/subscription.renewed.type.js.map +1 -0
  423. package/dist/js/types/email/support.ticket.type.d.ts +14 -0
  424. package/dist/js/types/email/support.ticket.type.d.ts.map +1 -0
  425. package/dist/js/types/email/support.ticket.type.js +2 -0
  426. package/dist/js/types/email/support.ticket.type.js.map +1 -0
  427. package/dist/js/types/email/team.invitation.type.d.ts +13 -0
  428. package/dist/js/types/email/team.invitation.type.d.ts.map +1 -0
  429. package/dist/js/types/email/team.invitation.type.js +2 -0
  430. package/dist/js/types/email/team.invitation.type.js.map +1 -0
  431. package/dist/js/types/email/trial.ending.type.d.ts +13 -0
  432. package/dist/js/types/email/trial.ending.type.d.ts.map +1 -0
  433. package/dist/js/types/email/trial.ending.type.js +2 -0
  434. package/dist/js/types/email/trial.ending.type.js.map +1 -0
  435. package/dist/js/types/email/two.factor.code.type.d.ts +11 -0
  436. package/dist/js/types/email/two.factor.code.type.d.ts.map +1 -0
  437. package/dist/js/types/email/two.factor.code.type.js +2 -0
  438. package/dist/js/types/email/two.factor.code.type.js.map +1 -0
  439. package/dist/js/types/email/verify.email.type.d.ts +11 -0
  440. package/dist/js/types/email/verify.email.type.d.ts.map +1 -0
  441. package/dist/js/types/email/verify.email.type.js +2 -0
  442. package/dist/js/types/email/verify.email.type.js.map +1 -0
  443. package/dist/js/types/email/weekly.report.type.d.ts +14 -0
  444. package/dist/js/types/email/weekly.report.type.d.ts.map +1 -0
  445. package/dist/js/types/email/weekly.report.type.js +2 -0
  446. package/dist/js/types/email/weekly.report.type.js.map +1 -0
  447. package/dist/js/types/email/welcome.type.d.ts +10 -0
  448. package/dist/js/types/email/welcome.type.d.ts.map +1 -0
  449. package/dist/js/types/email/welcome.type.js +2 -0
  450. package/dist/js/types/email/welcome.type.js.map +1 -0
  451. package/dist/js/types/email.js +0 -13
  452. package/dist/js/types/email.js.map +1 -1
  453. package/package.json +1 -1
@@ -0,0 +1,232 @@
1
+ /**
2
+ * Normalize an IP address.
3
+ *
4
+ * Node may return IPv4 addresses as IPv4-mapped IPv6 addresses:
5
+ *
6
+ * ::ffff:127.0.0.1
7
+ * ::ffff:192.168.1.10
8
+ *
9
+ * Converting them makes local/private IP detection much easier.
10
+ */
11
+ function normalizeIp(ip) {
12
+ const value = ip.trim();
13
+ if (value.startsWith("::ffff:")) {
14
+ return value.slice(7);
15
+ }
16
+ return value;
17
+ }
18
+ /**
19
+ * Whether an IP belongs to the local machine.
20
+ */
21
+ function isLocalhostIp(ip) {
22
+ const normalized = normalizeIp(ip).toLowerCase();
23
+ return (normalized === "127.0.0.1" ||
24
+ normalized === "::1" ||
25
+ normalized === "0.0.0.0" ||
26
+ normalized === "::");
27
+ }
28
+ /**
29
+ * Whether an IPv4 address belongs to a private/local network.
30
+ *
31
+ * Private IPv4 ranges:
32
+ *
33
+ * 10.0.0.0/8
34
+ * 172.16.0.0/12
35
+ * 192.168.0.0/16
36
+ */
37
+ function isPrivateIpv4(ip) {
38
+ const normalized = normalizeIp(ip);
39
+ const parts = normalized.split(".").map(Number);
40
+ if (parts.length !== 4 ||
41
+ parts.some((part) => !Number.isInteger(part) || part < 0 || part > 255)) {
42
+ return false;
43
+ }
44
+ const [a, b] = parts;
45
+ return (a === 10 ||
46
+ (a === 172 && b >= 16 && b <= 31) ||
47
+ (a === 192 && b === 168));
48
+ }
49
+ /**
50
+ * Whether an IP is a private/local address.
51
+ */
52
+ function isPrivateIp(ip) {
53
+ const normalized = normalizeIp(ip).toLowerCase();
54
+ // IPv4 private ranges.
55
+ if (isPrivateIpv4(normalized)) {
56
+ return true;
57
+ }
58
+ // IPv6 unique-local addresses: fc00::/7
59
+ if (/^f[cd][0-9a-f]{2}:/i.test(normalized)) {
60
+ return true;
61
+ }
62
+ // IPv6 link-local: fe80::/10
63
+ if (/^fe[89ab][0-9a-f]{2}:/i.test(normalized)) {
64
+ return true;
65
+ }
66
+ return false;
67
+ }
68
+ /**
69
+ * Extract a single User-Agent value from the request headers.
70
+ */
71
+ function getUserAgent(req) {
72
+ const value = req.headers["user-agent"];
73
+ if (typeof value === "string") {
74
+ return value;
75
+ }
76
+ if (Array.isArray(value)) {
77
+ return value[0];
78
+ }
79
+ return undefined;
80
+ }
81
+ /**
82
+ * Client IP address.
83
+ *
84
+ * Priority:
85
+ *
86
+ * 1. x-forwarded-for
87
+ * 2. framework-resolved req.ip
88
+ * 3. req.socket.remoteAddress
89
+ * 4. req.connection.remoteAddress
90
+ *
91
+ * NOTE:
92
+ * x-forwarded-for should only be trusted when your application is behind
93
+ * a trusted proxy/load balancer and proxy trust is configured correctly.
94
+ */
95
+ export function getClientIp(req) {
96
+ const forwarded = req.headers["x-forwarded-for"];
97
+ if (typeof forwarded === "string") {
98
+ const firstIp = forwarded
99
+ .split(",")
100
+ .map((ip) => ip.trim())
101
+ .find(Boolean);
102
+ if (firstIp) {
103
+ return normalizeIp(firstIp);
104
+ }
105
+ }
106
+ if (Array.isArray(forwarded)) {
107
+ const firstIp = forwarded
108
+ .map((ip) => ip.trim())
109
+ .find(Boolean);
110
+ if (firstIp) {
111
+ return normalizeIp(firstIp);
112
+ }
113
+ }
114
+ if (req.ip) {
115
+ return normalizeIp(req.ip);
116
+ }
117
+ if (req.socket?.remoteAddress) {
118
+ return normalizeIp(req.socket.remoteAddress);
119
+ }
120
+ if (req.connection?.remoteAddress) {
121
+ return normalizeIp(req.connection.remoteAddress);
122
+ }
123
+ return "Unknown";
124
+ }
125
+ /**
126
+ * Human-readable device name derived from User-Agent.
127
+ *
128
+ * This intentionally uses lightweight detection so Forge does not need
129
+ * a UA parsing dependency.
130
+ */
131
+ export function getDeviceName(req) {
132
+ const userAgent = getUserAgent(req);
133
+ if (!userAgent) {
134
+ return "Unknown device";
135
+ }
136
+ if (/postmanruntime/i.test(userAgent)) {
137
+ return "Postman";
138
+ }
139
+ if (/ipad/i.test(userAgent)) {
140
+ return "iPad";
141
+ }
142
+ if (/iphone/i.test(userAgent)) {
143
+ return "iPhone";
144
+ }
145
+ if (/android/i.test(userAgent)) {
146
+ if (/mobile/i.test(userAgent)) {
147
+ return "Android phone";
148
+ }
149
+ return "Android device";
150
+ }
151
+ if (/windows phone/i.test(userAgent)) {
152
+ return "Windows phone";
153
+ }
154
+ if (/macintosh|mac os x/i.test(userAgent)) {
155
+ return "Mac";
156
+ }
157
+ if (/windows/i.test(userAgent)) {
158
+ return "Windows PC";
159
+ }
160
+ if (/linux/i.test(userAgent)) {
161
+ return "Linux device";
162
+ }
163
+ return "Unknown device";
164
+ }
165
+ /**
166
+ * Get a human-readable location for an IP.
167
+ *
168
+ * Localhost:
169
+ * ::1 / 127.0.0.1 -> "Localhost"
170
+ *
171
+ * Private LAN:
172
+ * 192.168.x.x
173
+ * 10.x.x.x
174
+ * 172.16.x.x - 172.31.x.x
175
+ *
176
+ * These addresses cannot be geolocated because they are not globally
177
+ * routable. We therefore return a useful development/network label.
178
+ *
179
+ * Public IPs require a GeoIP provider/database.
180
+ */
181
+ export async function getLocationFromIp(ip) {
182
+ if (!ip || ip === "Unknown") {
183
+ return "Unknown location";
184
+ }
185
+ const normalized = normalizeIp(ip);
186
+ if (isLocalhostIp(normalized)) {
187
+ return "Localhost";
188
+ }
189
+ if (isPrivateIp(normalized)) {
190
+ return "Local network";
191
+ }
192
+ // TODO: Add a GeoIP provider here for public IP addresses.
193
+ //
194
+ // Example:
195
+ //
196
+ // const res = await fetch(`https://ipapi.co/${normalized}/json/`);
197
+ // const data = await res.json();
198
+ //
199
+ // if (data.city && data.country_name) {
200
+ // return `${data.city}, ${data.country_name}`;
201
+ // }
202
+ return "Unknown location";
203
+ }
204
+ /** Current year for email footer/copyright fields. */
205
+ export function getCurrentYear() {
206
+ return new Date().getFullYear();
207
+ }
208
+ /**
209
+ * Current date/time formatted for human-readable email fields.
210
+ */
211
+ export function getFormattedNow(locale = "en-US", timeZone) {
212
+ return new Date().toLocaleString(locale, {
213
+ dateStyle: "long",
214
+ timeStyle: "short",
215
+ timeZone,
216
+ });
217
+ }
218
+ /**
219
+ * Compute all automatically-derived email fields.
220
+ */
221
+ export async function getAutoDerivedFields(req) {
222
+ const ipAddress = getClientIp(req);
223
+ const deviceName = getDeviceName(req);
224
+ const location = await getLocationFromIp(ipAddress);
225
+ return {
226
+ currentYear: getCurrentYear(),
227
+ ipAddress,
228
+ deviceName,
229
+ location,
230
+ };
231
+ }
232
+ //# sourceMappingURL=auto-fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-fields.js","sourceRoot":"","sources":["../../../../src/js/email/utils/auto-fields.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Fields the framework can figure out on its own at send time — from the
3
+ * incoming request or the system clock — so the developer using the
4
+ * framework never has to pass these in manually.
5
+ *
6
+ * Field -> where it's used (X/45 templates):
7
+ * currentYear -> every template (footer copyright year)
8
+ * ipAddress -> login-alert, new-device-login, password-changed
9
+ * deviceName -> login-alert, new-device-login, password-changed
10
+ * location -> login-alert, new-device-login, password-changed, security-alert
11
+ */
12
+ export type AutoDerivedEmailFields = {
13
+ currentYear: number;
14
+ ipAddress: string;
15
+ deviceName: string;
16
+ location: string;
17
+ };
18
+ //# sourceMappingURL=auto-fields.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-fields.type.d.ts","sourceRoot":"","sources":["../../../../src/js/email/utils/auto-fields.type.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=auto-fields.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-fields.type.js","sourceRoot":"","sources":["../../../../src/js/email/utils/auto-fields.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export declare const emailTemplates: Record<string, any>;
2
+ //# sourceMappingURL=emailTemplates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emailTemplates.d.ts","sourceRoot":"","sources":["../../../../src/js/email/utils/emailTemplates.ts"],"names":[],"mappings":"AAiDA,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAuDL,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { accountCreated, accountDeleted, accountUpdated, announcement, apiKeyCreated, apiKeyRevoked, contactForm, dailyReport, emailChanged, feedback, invoice, loginAlert, magicLink, maintenance, memberAdded, memberRemoved, mention, monthlyReport, newComment, newDeviceLogin, newMessage, notification, orderCancelled, orderConfirmation, orderDelivered, orderShipped, organizationInvitation, passwordChanged, passwordExpiring, passwordReset, paymentFailed, paymentSuccess, receipt, reminder, securityAlert, subscriptionCancelled, subscriptionCreated, subscriptionRenewed, supportTicket, teamInvitation, trialEnding, twoFactorCode, verifyEmail, weeklyReport, welcome, } from "../templates/index.js";
2
+ export const emailTemplates = {
3
+ welcome: welcome,
4
+ "verify-email": verifyEmail,
5
+ "password-reset": passwordReset,
6
+ "password-changed": passwordChanged,
7
+ "login-alert": loginAlert,
8
+ "two-factor-code": twoFactorCode,
9
+ "magic-link": magicLink,
10
+ "account-created": accountCreated,
11
+ "account-updated": accountUpdated,
12
+ "account-deleted": accountDeleted,
13
+ "email-changed": emailChanged,
14
+ "team-invitation": teamInvitation,
15
+ "organization-invitation": organizationInvitation,
16
+ "member-added": memberAdded,
17
+ "member-removed": memberRemoved,
18
+ "new-message": newMessage,
19
+ "new-comment": newComment,
20
+ mention: mention,
21
+ notification: notification,
22
+ reminder: reminder,
23
+ invoice: invoice,
24
+ receipt: receipt,
25
+ "payment-success": paymentSuccess,
26
+ "payment-failed": paymentFailed,
27
+ "subscription-created": subscriptionCreated,
28
+ "subscription-renewed": subscriptionRenewed,
29
+ "subscription-cancelled": subscriptionCancelled,
30
+ "trial-ending": trialEnding,
31
+ "order-confirmation": orderConfirmation,
32
+ "order-shipped": orderShipped,
33
+ "order-delivered": orderDelivered,
34
+ "order-cancelled": orderCancelled,
35
+ "password-expiring": passwordExpiring,
36
+ "security-alert": securityAlert,
37
+ "new-device-login": newDeviceLogin,
38
+ "api-key-created": apiKeyCreated,
39
+ "api-key-revoked": apiKeyRevoked,
40
+ "contact-form": contactForm,
41
+ "support-ticket": supportTicket,
42
+ feedback: feedback,
43
+ "daily-report": dailyReport,
44
+ "weekly-report": weeklyReport,
45
+ "monthly-report": monthlyReport,
46
+ maintenance: maintenance,
47
+ announcement: announcement,
48
+ };
49
+ //# sourceMappingURL=emailTemplates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emailTemplates.js","sourceRoot":"","sources":["../../../../src/js/email/utils/emailTemplates.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EACd,cAAc,EACd,cAAc,EACd,YAAY,EACZ,aAAa,EACb,aAAa,EACb,WAAW,EACX,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,UAAU,EACV,SAAS,EACT,WAAW,EACX,WAAW,EACX,aAAa,EACb,OAAO,EACP,aAAa,EACb,UAAU,EACV,cAAc,EACd,UAAU,EACV,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,cAAc,EACd,OAAO,EACP,QAAQ,EACR,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,WAAW,EACX,YAAY,EACZ,OAAO,GACR,MAAM,uBAAuB,CAAC;AAE/B,MAAM,CAAC,MAAM,cAAc,GAAwB;IACjD,OAAO,EAAE,OAAO;IAChB,cAAc,EAAE,WAAW;IAC3B,gBAAgB,EAAE,aAAa;IAC/B,kBAAkB,EAAE,eAAe;IACnC,aAAa,EAAE,UAAU;IACzB,iBAAiB,EAAE,aAAa;IAChC,YAAY,EAAE,SAAS;IAEvB,iBAAiB,EAAE,cAAc;IACjC,iBAAiB,EAAE,cAAc;IACjC,iBAAiB,EAAE,cAAc;IACjC,eAAe,EAAE,YAAY;IAE7B,iBAAiB,EAAE,cAAc;IACjC,yBAAyB,EAAE,sBAAsB;IACjD,cAAc,EAAE,WAAW;IAC3B,gBAAgB,EAAE,aAAa;IAE/B,aAAa,EAAE,UAAU;IACzB,aAAa,EAAE,UAAU;IACzB,OAAO,EAAE,OAAO;IAChB,YAAY,EAAE,YAAY;IAC1B,QAAQ,EAAE,QAAQ;IAElB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,iBAAiB,EAAE,cAAc;IACjC,gBAAgB,EAAE,aAAa;IAC/B,sBAAsB,EAAE,mBAAmB;IAC3C,sBAAsB,EAAE,mBAAmB;IAC3C,wBAAwB,EAAE,qBAAqB;IAC/C,cAAc,EAAE,WAAW;IAE3B,oBAAoB,EAAE,iBAAiB;IACvC,eAAe,EAAE,YAAY;IAC7B,iBAAiB,EAAE,cAAc;IACjC,iBAAiB,EAAE,cAAc;IAEjC,mBAAmB,EAAE,gBAAgB;IACrC,gBAAgB,EAAE,aAAa;IAC/B,kBAAkB,EAAE,cAAc;IAClC,iBAAiB,EAAE,aAAa;IAChC,iBAAiB,EAAE,aAAa;IAEhC,cAAc,EAAE,WAAW;IAC3B,gBAAgB,EAAE,aAAa;IAC/B,QAAQ,EAAE,QAAQ;IAElB,cAAc,EAAE,WAAW;IAC3B,eAAe,EAAE,YAAY;IAC7B,gBAAgB,EAAE,aAAa;IAE/B,WAAW,EAAE,WAAW;IACxB,YAAY,EAAE,YAAY;CACc,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ActionContext } from "../../types/ActionHandler.js";
2
+ declare const handleEmailTemplateConfig: (config: any, context: ActionContext) => Promise<any>;
3
+ export default handleEmailTemplateConfig;
4
+ //# sourceMappingURL=handleEmailTemplateConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleEmailTemplateConfig.d.ts","sourceRoot":"","sources":["../../../../src/js/email/utils/handleEmailTemplateConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAIlE,QAAA,MAAM,yBAAyB,GAC7B,QAAQ,GAAG,EACX,SAAS,aAAa,iBAmDvB,CAAC;AACF,eAAe,yBAAyB,CAAC"}
@@ -0,0 +1,47 @@
1
+ import AppLog from "../../utils/AppLog.js";
2
+ import { getAutoDerivedFields, getCurrentYear } from "./auto-fields.js";
3
+ const handleEmailTemplateConfig = async (config, context) => {
4
+ for (const [key, value] of Object.entries(config)) {
5
+ // current-date
6
+ if (value === "current-date") {
7
+ config[key] = new Date().toLocaleDateString("en-PK", {
8
+ dateStyle: "full",
9
+ });
10
+ }
11
+ // current-time
12
+ if (value === "current-time") {
13
+ config[key] = new Date().toLocaleTimeString("en-PK", {
14
+ timeStyle: "medium",
15
+ });
16
+ }
17
+ // function
18
+ if (typeof value === "function") {
19
+ try {
20
+ const result = await value(context);
21
+ config[key] = result;
22
+ if (result === undefined || result === null) {
23
+ AppLog("x", "emailTemplateConfig", `Invalid configuration for '${key}'. Make sure the function returns correct value in routes -> route -> actions.`);
24
+ }
25
+ }
26
+ catch (error) {
27
+ console.error(`Function '${key}' failed:`, error);
28
+ throw error;
29
+ }
30
+ }
31
+ }
32
+ // autoDerivedFields
33
+ const autoDerivedFields = await getAutoDerivedFields({
34
+ headers: context.req.headers,
35
+ connection: context.req.connection,
36
+ ip: context.req.ip,
37
+ ips: context.req.ips,
38
+ socket: context.req.socket,
39
+ });
40
+ // return spread config
41
+ return {
42
+ ...config,
43
+ ...autoDerivedFields,
44
+ };
45
+ };
46
+ export default handleEmailTemplateConfig;
47
+ //# sourceMappingURL=handleEmailTemplateConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleEmailTemplateConfig.js","sourceRoot":"","sources":["../../../../src/js/email/utils/handleEmailTemplateConfig.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,uBAAuB,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAExE,MAAM,yBAAyB,GAAG,KAAK,EACrC,MAAW,EACX,OAAsB,EACtB,EAAE;IACF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,eAAe;QACf,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;YAC7B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE;gBACnD,SAAS,EAAE,MAAM;aAClB,CAAC,CAAC;QACL,CAAC;QAED,eAAe;QACf,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;YAC7B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE;gBACnD,SAAS,EAAE,QAAQ;aACpB,CAAC,CAAC;QACL,CAAC;QAED,WAAW;QACX,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;gBACpC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;gBAErB,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBAC5C,MAAM,CACJ,GAAG,EACH,qBAAqB,EACrB,8BAA8B,GAAG,gFAAgF,CAClH,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,aAAa,GAAG,WAAW,EAAE,KAAK,CAAC,CAAC;gBAClD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,MAAM,iBAAiB,GAAG,MAAM,oBAAoB,CAAC;QACnD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO;QAC5B,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;QAClC,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE;QAClB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG;QACpB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM;KAC3B,CAAC,CAAC;IAEH,uBAAuB;IACvB,OAAO;QACL,GAAG,MAAM;QACT,GAAG,iBAAiB;KACrB,CAAC;AACJ,CAAC,CAAC;AACF,eAAe,yBAAyB,CAAC"}
@@ -1,25 +1,22 @@
1
1
  import type { Request } from "express";
2
2
  import type { Document, Model } from "mongoose";
3
+ import type { EmailActionTemplate } from "./EmailActionTemplate.js";
3
4
  /**
4
- * Context payload passed to custom action hooks before or after route execution.
5
+ * Context provided to Forge actions before or after a route operation.
5
6
  */
6
7
  export interface ActionContext {
7
- /**
8
- * Express request object.
9
- */
8
+ /** Express request object. */
10
9
  req: Request;
11
- /**
12
- * Currently authenticated user profile attached to the request.
13
- */
10
+ /** Authenticated user attached to the request, if available. */
14
11
  user?: Request["user"];
15
12
  /**
16
- * The collection's Express route name.
13
+ * Name of the Forge resource/route.
17
14
  *
18
15
  * @example "products"
19
16
  */
20
17
  route: string;
21
18
  /**
22
- * Database operation being executed by the handler.
19
+ * Database operation being performed.
23
20
  */
24
21
  operation: "read" | "readAll" | "create" | "update" | "remove" | "removeMultiple" | "removeAll";
25
22
  /**
@@ -28,73 +25,69 @@ export interface ActionContext {
28
25
  * @example "Product"
29
26
  */
30
27
  model: string;
31
- /**
32
- * Mongoose Model instance for performing direct database queries.
33
- */
28
+ /** Mongoose model for direct database access. */
34
29
  Model?: Model<any>;
35
30
  /**
36
- * Incoming request payload and processed metadata.
31
+ * Data associated with the current request and operation.
37
32
  */
38
33
  data?: {
39
- /**
40
- * ID or reference of the resource owner.
41
- */
42
- owner?: string;
43
- /**
44
- * Parsed request body object.
45
- */
34
+ /** Parsed request body. */
46
35
  body?: any;
47
- /**
48
- * Metadata from uploaded files (if multipart route).
49
- */
36
+ /** Uploaded file metadata. */
50
37
  files?: any;
51
- /**
52
- * Encrypted field values.
53
- */
38
+ /** Values encrypted by Forge. */
54
39
  encrypted?: any;
55
- /**
56
- * Decrypted field values.
57
- */
40
+ /** Values decrypted by Forge. */
58
41
  decrypted?: any;
59
- /**
60
- * Hashed field values.
61
- */
42
+ /** Values hashed by Forge. */
62
43
  hashed?: any;
63
44
  };
64
45
  /**
65
- * The database document(s) fetched or updated during the operation.
46
+ * Document(s) affected by the operation.
66
47
  */
67
48
  item?: Document | Document[];
68
49
  /**
69
- * The final processed result payload ready to be returned in the response.
50
+ * Current result produced by the operation/action chain.
51
+ *
52
+ * Return a value from a custom action to replace this result.
70
53
  */
71
54
  result?: any;
72
55
  }
73
56
  /**
74
- * A custom action hook executed before or after a route handler runs.
57
+ * Executes custom developer-defined logic.
75
58
  *
76
- * @example
77
- * ```ts
78
- * const sendWelcomeEmail: Action = {
79
- * type: "email",
80
- * handler: async ({ user, data }) => {
81
- * console.log(`Sending email to ${user?.email}`);
82
- * },
83
- * };
84
- * ```
59
+ * Returning a value replaces the current action result.
85
60
  */
86
- export interface Action {
87
- /**
88
- * Action category type.
89
- *
90
- * - `custom`: General custom middleware logic.
91
- * - `email`: Dedicated email notification trigger.
92
- */
93
- type: "custom" | "email";
94
- /**
95
- * Async handler function executed by the framework.
96
- */
97
- handler: (context: ActionContext) => Promise<void> | void;
61
+ export interface CustomAction {
62
+ /** Custom action handler. */
63
+ customAction: (context: ActionContext) => Promise<any> | any;
64
+ }
65
+ /**
66
+ * Sends an email through Forge's configured email provider.
67
+ */
68
+ export interface EmailAction {
69
+ /** Email action configuration. */
70
+ emailAction: {
71
+ /** Sender configuration. */
72
+ from: "system-email-sender" | ({} & string);
73
+ /** Recipient email address. */
74
+ to: string | ((context: ActionContext) => string);
75
+ /** Email content mode. */
76
+ type: "template" | "raw";
77
+ /** Raw email body when `type` is `raw`. */
78
+ rawBody?: string;
79
+ /** Email template when `type` is `template`. */
80
+ template?: EmailActionTemplate;
81
+ /** Email subject. */
82
+ subject?: string | ((context: ActionContext) => string);
83
+ };
98
84
  }
85
+ /**
86
+ * Action executed before or after a Forge route operation.
87
+ */
88
+ export type Action = CustomAction | EmailAction;
89
+ /**
90
+ * @deprecated Use `ActionContext` instead.
91
+ */
99
92
  export type CreateContext = ActionContext;
100
93
  //# sourceMappingURL=ActionHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActionHandler.d.ts","sourceRoot":"","sources":["../../../src/js/types/ActionHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,GAAG,EAAE,OAAO,CAAC;IAEb;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvB;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,SAAS,EACL,MAAM,GACN,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,gBAAgB,GAChB,WAAW,CAAC;IAEhB;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAEnB;;OAEG;IACH,IAAI,CAAC,EAAE;QACL;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf;;WAEG;QACH,IAAI,CAAC,EAAE,GAAG,CAAC;QAEX;;WAEG;QACH,KAAK,CAAC,EAAE,GAAG,CAAC;QAEZ;;WAEG;QACH,SAAS,CAAC,EAAE,GAAG,CAAC;QAEhB;;WAEG;QACH,SAAS,CAAC,EAAE,GAAG,CAAC;QAEhB;;WAEG;QACH,MAAM,CAAC,EAAE,GAAG,CAAC;KACd,CAAC;IAEF;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAAC;IAE7B;;OAEG;IACH,MAAM,CAAC,EAAE,GAAG,CAAC;CACd;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,MAAM;IACrB;;;;;OAKG;IACH,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IAEzB;;OAEG;IACH,OAAO,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC3D;AAGD,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC"}
1
+ {"version":3,"file":"ActionHandler.d.ts","sourceRoot":"","sources":["../../../src/js/types/ActionHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,8BAA8B;IAC9B,GAAG,EAAE,OAAO,CAAC;IAEb,gEAAgE;IAChE,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvB;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,SAAS,EACL,MAAM,GACN,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,gBAAgB,GAChB,WAAW,CAAC;IAEhB;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd,iDAAiD;IACjD,KAAK,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAEnB;;OAEG;IACH,IAAI,CAAC,EAAE;QACL,2BAA2B;QAC3B,IAAI,CAAC,EAAE,GAAG,CAAC;QAEX,8BAA8B;QAC9B,KAAK,CAAC,EAAE,GAAG,CAAC;QAEZ,iCAAiC;QACjC,SAAS,CAAC,EAAE,GAAG,CAAC;QAEhB,iCAAiC;QACjC,SAAS,CAAC,EAAE,GAAG,CAAC;QAEhB,8BAA8B;QAC9B,MAAM,CAAC,EAAE,GAAG,CAAC;KACd,CAAC;IAEF;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAAC;IAE7B;;;;OAIG;IACH,MAAM,CAAC,EAAE,GAAG,CAAC;CACd;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,6BAA6B;IAC7B,YAAY,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;CAC9D;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,kCAAkC;IAElC,WAAW,EAAE;QACX,4BAA4B;QAC5B,IAAI,EAAE,qBAAqB,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;QAE5C,+BAA+B;QAC/B,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,aAAa,KAAK,MAAM,CAAC,CAAC;QAElD,0BAA0B;QAC1B,IAAI,EAAE,UAAU,GAAG,KAAK,CAAC;QAEzB,2CAA2C;QAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;QAEjB,gDAAgD;QAChD,QAAQ,CAAC,EAAE,mBAAmB,CAAC;QAE/B,qBAAqB;QACrB,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,aAAa,KAAK,MAAM,CAAC,CAAC;KACzD,CAAC;CACH;AAED;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,YAAY,GAAG,WAAW,CAAC;AAEhD;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import type { Collection } from "./Collection.ts";
2
2
  import type { DurationType } from "../config/duration.ts";
3
3
  import type { UnifiedField } from "../lib/unified.types.js";
4
+ import type { CommonEmailPlaceholders } from "./email/static-config.type.js";
4
5
  export type authMode = "credentials" | "otp";
5
6
  export interface AuthConfig {
6
7
  mode: "builtin" | "manual";
@@ -38,6 +39,7 @@ export interface Constructor {
38
39
  databaseName?: string;
39
40
  domain?: string;
40
41
  ENV: string;
42
+ emailConfig?: CommonEmailPlaceholders;
41
43
  frontendURL?: string;
42
44
  frontendURLs?: string[];
43
45
  internalRoles?: string[];
@@ -49,7 +51,7 @@ export interface Constructor {
49
51
  port: number;
50
52
  rateLimitDuration: DurationType;
51
53
  rateLimitMsg: string;
52
- adminEmailSender?: string;
54
+ systemEmailSender?: string;
53
55
  resendAPIKey?: string;
54
56
  }
55
57
  export interface InternalConstructor extends Constructor {
@@ -1 +1 @@
1
- {"version":3,"file":"Constructor.d.ts","sourceRoot":"","sources":["../../../src/js/types/Constructor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAA4B,MAAM,iBAAiB,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG5D,MAAM,MAAM,QAAQ,GAAG,aAAa,GAAG,KAAK,CAAC;AAC7C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;IAE3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,4BAA4B,CAAC,EAAE,YAAY,CAAC;IAE5C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,SAAS,CAAC,EAAE;QACV,KAAK,EAAE,OAAO,GAAG,2BAA2B,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QAC7D,QAAQ,EAAE,UAAU,GAAG,2BAA2B,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QACnE,GAAG,EAAE,KAAK,GAAG,2BAA2B,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QACzD,OAAO,EAAE,SAAS,GAAG,2BAA2B,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;KAClE,CAAC;IACF,SAAS,CAAC,EAAE;QACV,KAAK,EAAE,MAAM,GAAG,gCAAgC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QACjE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACtC,CAAC;IAEF,eAAe,CAAC,EAAE,cAAc,GAAG,qBAAqB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACzE,gBAAgB,CAAC,EAAE,eAAe,GAAG,qBAAqB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAE3E,cAAc,CAAC,EAAE,YAAY,CAAC;IAC9B,eAAe,CAAC,EAAE,YAAY,CAAC;IAE/B,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB,SAAS,CAAC,EAAE,QAAQ,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,UAAU,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,YAAY,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
1
+ {"version":3,"file":"Constructor.d.ts","sourceRoot":"","sources":["../../../src/js/types/Constructor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import type { EmailTemplate } from "./email.js";
2
+ import type { AccountCreatedEmailPlaceholders, AccountDeletedEmailPlaceholders, AccountUpdatedEmailPlaceholders, AnnouncementEmailPlaceholders, ApiKeyCreatedEmailPlaceholders, ApiKeyRevokedEmailPlaceholders, ContactFormEmailPlaceholders, DailyReportEmailPlaceholders, EmailChangedEmailPlaceholders, FeedbackEmailPlaceholders, InvoiceEmailPlaceholders, LoginAlertEmailPlaceholders, MagicLinkEmailPlaceholders, MaintenanceEmailPlaceholders, MemberAddedEmailPlaceholders, MemberRemovedEmailPlaceholders, MentionEmailPlaceholders, MonthlyReportEmailPlaceholders, NewCommentEmailPlaceholders, NewDeviceLoginEmailPlaceholders, NewMessageEmailPlaceholders, NotificationEmailPlaceholders, OrderCancelledEmailPlaceholders, OrderConfirmationEmailPlaceholders, OrderDeliveredEmailPlaceholders, OrderShippedEmailPlaceholders, OrganizationInvitationEmailPlaceholders, PasswordChangedEmailPlaceholders, PasswordExpiringEmailPlaceholders, PasswordResetEmailPlaceholders, PaymentFailedEmailPlaceholders, PaymentSuccessEmailPlaceholders, ReceiptEmailPlaceholders, ReminderEmailPlaceholders, SecurityAlertEmailPlaceholders, SubscriptionCancelledEmailPlaceholders, SubscriptionCreatedEmailPlaceholders, SubscriptionRenewedEmailPlaceholders, SupportTicketEmailPlaceholders, TeamInvitationEmailPlaceholders, TrialEndingEmailPlaceholders, TwoFactorCodeEmailPlaceholders, VerifyEmailEmailPlaceholders, WeeklyReportEmailPlaceholders, WelcomeEmailPlaceholders } from "./email/index.js";
3
+ export type ExcludedEmailFields = "currentYear" | "companyName" | "companyUrl" | "companyAddress" | "supportEmail" | "unsubscribeUrl" | "ipAddress" | "deviceName" | "location";
4
+ export interface EmailActionTemplate {
5
+ name: EmailTemplate;
6
+ accountCreated?: Omit<AccountCreatedEmailPlaceholders, ExcludedEmailFields>;
7
+ accountDeleted?: Omit<AccountDeletedEmailPlaceholders, ExcludedEmailFields>;
8
+ accountUpdated?: Omit<AccountUpdatedEmailPlaceholders, ExcludedEmailFields>;
9
+ announcement?: Omit<AnnouncementEmailPlaceholders, ExcludedEmailFields>;
10
+ apiKeyCreated?: Omit<ApiKeyCreatedEmailPlaceholders, ExcludedEmailFields>;
11
+ apiKeyRevoked?: Omit<ApiKeyRevokedEmailPlaceholders, ExcludedEmailFields>;
12
+ contactForm?: Omit<ContactFormEmailPlaceholders, ExcludedEmailFields>;
13
+ dailyReport?: Omit<DailyReportEmailPlaceholders, ExcludedEmailFields>;
14
+ emailChanged?: Omit<EmailChangedEmailPlaceholders, ExcludedEmailFields>;
15
+ feedback?: Omit<FeedbackEmailPlaceholders, ExcludedEmailFields>;
16
+ invoice?: Omit<InvoiceEmailPlaceholders, ExcludedEmailFields>;
17
+ loginAlert?: Omit<LoginAlertEmailPlaceholders, ExcludedEmailFields>;
18
+ magicLink?: Omit<MagicLinkEmailPlaceholders, ExcludedEmailFields>;
19
+ maintenance?: Omit<MaintenanceEmailPlaceholders, ExcludedEmailFields>;
20
+ memberAdded?: Omit<MemberAddedEmailPlaceholders, ExcludedEmailFields>;
21
+ memberRemoved?: Omit<MemberRemovedEmailPlaceholders, ExcludedEmailFields>;
22
+ mention?: Omit<MentionEmailPlaceholders, ExcludedEmailFields>;
23
+ monthlyReport?: Omit<MonthlyReportEmailPlaceholders, ExcludedEmailFields>;
24
+ newComment?: Omit<NewCommentEmailPlaceholders, ExcludedEmailFields>;
25
+ newDeviceLogin?: Omit<NewDeviceLoginEmailPlaceholders, ExcludedEmailFields>;
26
+ newMessage?: Omit<NewMessageEmailPlaceholders, ExcludedEmailFields>;
27
+ notification?: Omit<NotificationEmailPlaceholders, ExcludedEmailFields>;
28
+ orderCancelled?: Omit<OrderCancelledEmailPlaceholders, ExcludedEmailFields>;
29
+ orderConfirmation?: Omit<OrderConfirmationEmailPlaceholders, ExcludedEmailFields>;
30
+ orderDelivered?: Omit<OrderDeliveredEmailPlaceholders, ExcludedEmailFields>;
31
+ orderShipped?: Omit<OrderShippedEmailPlaceholders, ExcludedEmailFields>;
32
+ organizationInvitation?: Omit<OrganizationInvitationEmailPlaceholders, ExcludedEmailFields>;
33
+ passwordChanged?: Omit<PasswordChangedEmailPlaceholders, ExcludedEmailFields>;
34
+ passwordExpiring?: Omit<PasswordExpiringEmailPlaceholders, ExcludedEmailFields>;
35
+ passwordReset?: Omit<PasswordResetEmailPlaceholders, ExcludedEmailFields>;
36
+ paymentFailed?: Omit<PaymentFailedEmailPlaceholders, ExcludedEmailFields>;
37
+ paymentSuccess?: Omit<PaymentSuccessEmailPlaceholders, ExcludedEmailFields>;
38
+ receipt?: Omit<ReceiptEmailPlaceholders, ExcludedEmailFields>;
39
+ reminder?: Omit<ReminderEmailPlaceholders, ExcludedEmailFields>;
40
+ securityAlert?: Omit<SecurityAlertEmailPlaceholders, ExcludedEmailFields>;
41
+ subscriptionCancelled?: Omit<SubscriptionCancelledEmailPlaceholders, ExcludedEmailFields>;
42
+ subscriptionCreated?: Omit<SubscriptionCreatedEmailPlaceholders, ExcludedEmailFields>;
43
+ subscriptionRenewed?: Omit<SubscriptionRenewedEmailPlaceholders, ExcludedEmailFields>;
44
+ supportTicket?: Omit<SupportTicketEmailPlaceholders, ExcludedEmailFields>;
45
+ teamInvitation?: Omit<TeamInvitationEmailPlaceholders, ExcludedEmailFields>;
46
+ trialEnding?: Omit<TrialEndingEmailPlaceholders, ExcludedEmailFields>;
47
+ twoFactorCode?: Omit<TwoFactorCodeEmailPlaceholders, ExcludedEmailFields>;
48
+ verifyEmail?: Omit<VerifyEmailEmailPlaceholders, ExcludedEmailFields>;
49
+ weeklyReport?: Omit<WeeklyReportEmailPlaceholders, ExcludedEmailFields>;
50
+ welcome?: Omit<WelcomeEmailPlaceholders, ExcludedEmailFields>;
51
+ }
52
+ //# sourceMappingURL=EmailActionTemplate.d.ts.map