@strapi/email 0.0.0-next.dad3c50630ca4fd9eccdcbe549ee632fc572e23d → 0.0.0-next.df0d99415fc543d9747f3946fd7d1a4c39052b95

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 (292) hide show
  1. package/dist/admin/constants.js +17 -0
  2. package/dist/admin/constants.js.map +1 -0
  3. package/dist/admin/constants.mjs +15 -0
  4. package/dist/admin/constants.mjs.map +1 -0
  5. package/dist/admin/index.js +91 -3
  6. package/dist/admin/index.js.map +1 -1
  7. package/dist/admin/index.mjs +86 -3
  8. package/dist/admin/index.mjs.map +1 -1
  9. package/dist/admin/pages/Settings.js +361 -0
  10. package/dist/admin/pages/Settings.js.map +1 -0
  11. package/dist/admin/pages/Settings.mjs +340 -0
  12. package/dist/admin/pages/Settings.mjs.map +1 -0
  13. package/dist/admin/translations/ar.json.js +6 -0
  14. package/dist/admin/translations/ar.json.js.map +1 -0
  15. package/dist/admin/translations/ar.json.mjs +4 -0
  16. package/dist/admin/translations/ar.json.mjs.map +1 -0
  17. package/dist/admin/translations/cs.json.js +6 -0
  18. package/dist/admin/translations/cs.json.js.map +1 -0
  19. package/dist/admin/translations/cs.json.mjs +4 -0
  20. package/dist/admin/translations/cs.json.mjs.map +1 -0
  21. package/dist/admin/translations/de.json.js +6 -0
  22. package/dist/admin/translations/de.json.js.map +1 -0
  23. package/dist/admin/translations/de.json.mjs +4 -0
  24. package/dist/admin/translations/de.json.mjs.map +1 -0
  25. package/dist/admin/translations/dk.json.js +27 -0
  26. package/dist/admin/translations/dk.json.js.map +1 -0
  27. package/dist/admin/translations/dk.json.mjs +25 -0
  28. package/dist/admin/translations/dk.json.mjs.map +1 -0
  29. package/dist/admin/translations/en.json.js +32 -0
  30. package/dist/admin/translations/en.json.js.map +1 -0
  31. package/dist/admin/translations/en.json.mjs +27 -0
  32. package/dist/admin/translations/en.json.mjs.map +1 -0
  33. package/dist/admin/translations/es.json.js +27 -0
  34. package/dist/admin/translations/es.json.js.map +1 -0
  35. package/dist/admin/translations/es.json.mjs +25 -0
  36. package/dist/admin/translations/es.json.mjs.map +1 -0
  37. package/dist/admin/translations/fr.json.js +6 -0
  38. package/dist/admin/translations/fr.json.js.map +1 -0
  39. package/dist/admin/translations/fr.json.mjs +4 -0
  40. package/dist/admin/translations/fr.json.mjs.map +1 -0
  41. package/dist/admin/translations/id.json.js +6 -0
  42. package/dist/admin/translations/id.json.js.map +1 -0
  43. package/dist/admin/translations/id.json.mjs +4 -0
  44. package/dist/admin/translations/id.json.mjs.map +1 -0
  45. package/dist/admin/translations/it.json.js +6 -0
  46. package/dist/admin/translations/it.json.js.map +1 -0
  47. package/dist/admin/translations/it.json.mjs +4 -0
  48. package/dist/admin/translations/it.json.mjs.map +1 -0
  49. package/dist/admin/translations/ja.json.js +27 -0
  50. package/dist/admin/translations/ja.json.js.map +1 -0
  51. package/dist/admin/translations/ja.json.mjs +25 -0
  52. package/dist/admin/translations/ja.json.mjs.map +1 -0
  53. package/dist/admin/translations/ko.json.js +27 -0
  54. package/dist/admin/translations/ko.json.js.map +1 -0
  55. package/dist/admin/translations/ko.json.mjs +25 -0
  56. package/dist/admin/translations/ko.json.mjs.map +1 -0
  57. package/dist/admin/translations/ms.json.js +6 -0
  58. package/dist/admin/translations/ms.json.js.map +1 -0
  59. package/dist/admin/translations/ms.json.mjs +4 -0
  60. package/dist/admin/translations/ms.json.mjs.map +1 -0
  61. package/dist/admin/translations/nl.json.js +6 -0
  62. package/dist/admin/translations/nl.json.js.map +1 -0
  63. package/dist/admin/translations/nl.json.mjs +4 -0
  64. package/dist/admin/translations/nl.json.mjs.map +1 -0
  65. package/dist/admin/translations/pl.json.js +27 -0
  66. package/dist/admin/translations/pl.json.js.map +1 -0
  67. package/dist/admin/translations/pl.json.mjs +25 -0
  68. package/dist/admin/translations/pl.json.mjs.map +1 -0
  69. package/dist/admin/translations/pt-BR.json.js +6 -0
  70. package/dist/admin/translations/pt-BR.json.js.map +1 -0
  71. package/dist/admin/translations/pt-BR.json.mjs +4 -0
  72. package/dist/admin/translations/pt-BR.json.mjs.map +1 -0
  73. package/dist/admin/translations/pt.json.js +32 -0
  74. package/dist/admin/translations/pt.json.js.map +1 -0
  75. package/dist/admin/translations/pt.json.mjs +27 -0
  76. package/dist/admin/translations/pt.json.mjs.map +1 -0
  77. package/dist/admin/translations/ru.json.js +6 -0
  78. package/dist/admin/translations/ru.json.js.map +1 -0
  79. package/dist/admin/translations/ru.json.mjs +4 -0
  80. package/dist/admin/translations/ru.json.mjs.map +1 -0
  81. package/dist/admin/translations/sk.json.js +6 -0
  82. package/dist/admin/translations/sk.json.js.map +1 -0
  83. package/dist/admin/translations/sk.json.mjs +4 -0
  84. package/dist/admin/translations/sk.json.mjs.map +1 -0
  85. package/dist/admin/translations/th.json.js +6 -0
  86. package/dist/admin/translations/th.json.js.map +1 -0
  87. package/dist/admin/translations/th.json.mjs +4 -0
  88. package/dist/admin/translations/th.json.mjs.map +1 -0
  89. package/dist/admin/translations/tr.json.js +32 -0
  90. package/dist/admin/translations/tr.json.js.map +1 -0
  91. package/dist/admin/translations/tr.json.mjs +27 -0
  92. package/dist/admin/translations/tr.json.mjs.map +1 -0
  93. package/dist/admin/translations/uk.json.js +32 -0
  94. package/dist/admin/translations/uk.json.js.map +1 -0
  95. package/dist/admin/translations/uk.json.mjs +27 -0
  96. package/dist/admin/translations/uk.json.mjs.map +1 -0
  97. package/dist/admin/translations/vi.json.js +6 -0
  98. package/dist/admin/translations/vi.json.js.map +1 -0
  99. package/dist/admin/translations/vi.json.mjs +4 -0
  100. package/dist/admin/translations/vi.json.mjs.map +1 -0
  101. package/dist/admin/translations/zh-Hans.json.js +24 -0
  102. package/dist/admin/translations/zh-Hans.json.js.map +1 -0
  103. package/dist/admin/translations/zh-Hans.json.mjs +19 -0
  104. package/dist/admin/translations/zh-Hans.json.mjs.map +1 -0
  105. package/dist/admin/translations/zh.json.js +32 -0
  106. package/dist/admin/translations/zh.json.js.map +1 -0
  107. package/dist/admin/translations/zh.json.mjs +27 -0
  108. package/dist/admin/translations/zh.json.mjs.map +1 -0
  109. package/dist/admin/utils/getYupInnerErrors.js +23 -0
  110. package/dist/admin/utils/getYupInnerErrors.js.map +1 -0
  111. package/dist/admin/utils/getYupInnerErrors.mjs +21 -0
  112. package/dist/admin/utils/getYupInnerErrors.mjs.map +1 -0
  113. package/dist/admin/utils/prefixPluginTranslations.js +11 -0
  114. package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
  115. package/dist/admin/utils/prefixPluginTranslations.mjs +9 -0
  116. package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
  117. package/dist/admin/utils/schema.js +30 -0
  118. package/dist/admin/utils/schema.js.map +1 -0
  119. package/dist/admin/utils/schema.mjs +9 -0
  120. package/dist/admin/utils/schema.mjs.map +1 -0
  121. package/dist/server/bootstrap.js +40 -0
  122. package/dist/server/bootstrap.js.map +1 -0
  123. package/dist/server/bootstrap.mjs +38 -0
  124. package/dist/server/bootstrap.mjs.map +1 -0
  125. package/dist/server/config.js +15 -0
  126. package/dist/server/config.js.map +1 -0
  127. package/dist/server/config.mjs +13 -0
  128. package/dist/server/config.mjs.map +1 -0
  129. package/dist/server/controllers/email.js +66 -0
  130. package/dist/server/controllers/email.js.map +1 -0
  131. package/dist/server/controllers/email.mjs +64 -0
  132. package/dist/server/controllers/email.mjs.map +1 -0
  133. package/dist/server/controllers/index.js +10 -0
  134. package/dist/server/controllers/index.js.map +1 -0
  135. package/dist/server/controllers/index.mjs +8 -0
  136. package/dist/server/controllers/index.mjs.map +1 -0
  137. package/dist/server/index.js +18 -206
  138. package/dist/server/index.js.map +1 -1
  139. package/dist/server/index.mjs +17 -190
  140. package/dist/server/index.mjs.map +1 -1
  141. package/dist/server/middlewares/index.js +13 -0
  142. package/dist/server/middlewares/index.js.map +1 -0
  143. package/dist/server/middlewares/index.mjs +8 -0
  144. package/dist/server/middlewares/index.mjs.map +1 -0
  145. package/dist/server/middlewares/rateLimit.js +37 -0
  146. package/dist/server/middlewares/rateLimit.js.map +1 -0
  147. package/dist/server/middlewares/rateLimit.mjs +35 -0
  148. package/dist/server/middlewares/rateLimit.mjs.map +1 -0
  149. package/dist/server/routes/admin.js +56 -0
  150. package/dist/server/routes/admin.js.map +1 -0
  151. package/dist/server/routes/admin.mjs +54 -0
  152. package/dist/server/routes/admin.mjs.map +1 -0
  153. package/dist/server/routes/content-api.js +26 -0
  154. package/dist/server/routes/content-api.js.map +1 -0
  155. package/dist/server/routes/content-api.mjs +24 -0
  156. package/dist/server/routes/content-api.mjs.map +1 -0
  157. package/dist/server/routes/index.js +12 -0
  158. package/dist/server/routes/index.js.map +1 -0
  159. package/dist/server/routes/index.mjs +10 -0
  160. package/dist/server/routes/index.mjs.map +1 -0
  161. package/dist/server/routes/validation/email.js +46 -0
  162. package/dist/server/routes/validation/email.js.map +1 -0
  163. package/dist/server/routes/validation/email.mjs +25 -0
  164. package/dist/server/routes/validation/email.mjs.map +1 -0
  165. package/dist/server/services/email.js +63 -0
  166. package/dist/server/services/email.js.map +1 -0
  167. package/dist/server/services/email.mjs +42 -0
  168. package/dist/server/services/email.mjs.map +1 -0
  169. package/dist/server/services/index.js +10 -0
  170. package/dist/server/services/index.js.map +1 -0
  171. package/dist/server/services/index.mjs +8 -0
  172. package/dist/server/services/index.mjs.map +1 -0
  173. package/dist/server/src/index.d.ts +6 -8
  174. package/dist/server/src/index.d.ts.map +1 -1
  175. package/dist/server/src/middlewares/index.d.ts +9 -0
  176. package/dist/server/src/middlewares/index.d.ts.map +1 -0
  177. package/dist/server/src/middlewares/rateLimit.d.ts +7 -0
  178. package/dist/server/src/middlewares/rateLimit.d.ts.map +1 -0
  179. package/dist/server/src/routes/content-api.d.ts +2 -8
  180. package/dist/server/src/routes/content-api.d.ts.map +1 -1
  181. package/dist/server/src/routes/index.d.ts +1 -8
  182. package/dist/server/src/routes/index.d.ts.map +1 -1
  183. package/dist/server/src/routes/validation/email.d.ts +18 -0
  184. package/dist/server/src/routes/validation/email.d.ts.map +1 -0
  185. package/dist/server/src/routes/validation/index.d.ts +2 -0
  186. package/dist/server/src/routes/validation/index.d.ts.map +1 -0
  187. package/dist/shared/types.d.ts +0 -1
  188. package/package.json +18 -14
  189. package/dist/_chunks/Settings-DKhINVfQ.mjs +0 -281
  190. package/dist/_chunks/Settings-DKhINVfQ.mjs.map +0 -1
  191. package/dist/_chunks/Settings-DzVN5TCM.js +0 -299
  192. package/dist/_chunks/Settings-DzVN5TCM.js.map +0 -1
  193. package/dist/_chunks/ar-Bf9XlLLo.mjs +0 -5
  194. package/dist/_chunks/ar-Bf9XlLLo.mjs.map +0 -1
  195. package/dist/_chunks/ar-C_tQu1XS.js +0 -5
  196. package/dist/_chunks/ar-C_tQu1XS.js.map +0 -1
  197. package/dist/_chunks/cs-B0QZJTah.mjs +0 -5
  198. package/dist/_chunks/cs-B0QZJTah.mjs.map +0 -1
  199. package/dist/_chunks/cs-CPKIUWLp.js +0 -5
  200. package/dist/_chunks/cs-CPKIUWLp.js.map +0 -1
  201. package/dist/_chunks/de-B9kiAC-s.mjs +0 -5
  202. package/dist/_chunks/de-B9kiAC-s.mjs.map +0 -1
  203. package/dist/_chunks/de-K6IYQk2d.js +0 -5
  204. package/dist/_chunks/de-K6IYQk2d.js.map +0 -1
  205. package/dist/_chunks/dk-31mOPYpI.js +0 -26
  206. package/dist/_chunks/dk-31mOPYpI.js.map +0 -1
  207. package/dist/_chunks/dk-DqrbgSkv.mjs +0 -26
  208. package/dist/_chunks/dk-DqrbgSkv.mjs.map +0 -1
  209. package/dist/_chunks/en-BCu4d6-o.js +0 -29
  210. package/dist/_chunks/en-BCu4d6-o.js.map +0 -1
  211. package/dist/_chunks/en-DF4KtAAC.mjs +0 -29
  212. package/dist/_chunks/en-DF4KtAAC.mjs.map +0 -1
  213. package/dist/_chunks/es-BNo7eLLJ.mjs +0 -26
  214. package/dist/_chunks/es-BNo7eLLJ.mjs.map +0 -1
  215. package/dist/_chunks/es-Dl2HVmwz.js +0 -26
  216. package/dist/_chunks/es-Dl2HVmwz.js.map +0 -1
  217. package/dist/_chunks/fr-C8Qw4iPZ.js +0 -5
  218. package/dist/_chunks/fr-C8Qw4iPZ.js.map +0 -1
  219. package/dist/_chunks/fr-hkSxFuzl.mjs +0 -5
  220. package/dist/_chunks/fr-hkSxFuzl.mjs.map +0 -1
  221. package/dist/_chunks/id-CHtAzAUz.mjs +0 -5
  222. package/dist/_chunks/id-CHtAzAUz.mjs.map +0 -1
  223. package/dist/_chunks/id-CvE5f0zz.js +0 -5
  224. package/dist/_chunks/id-CvE5f0zz.js.map +0 -1
  225. package/dist/_chunks/index-BcbwpIZL.js +0 -84
  226. package/dist/_chunks/index-BcbwpIZL.js.map +0 -1
  227. package/dist/_chunks/index-D0n2_0zm.mjs +0 -85
  228. package/dist/_chunks/index-D0n2_0zm.mjs.map +0 -1
  229. package/dist/_chunks/it-C7z82V3g.mjs +0 -5
  230. package/dist/_chunks/it-C7z82V3g.mjs.map +0 -1
  231. package/dist/_chunks/it-DYpuAHa5.js +0 -5
  232. package/dist/_chunks/it-DYpuAHa5.js.map +0 -1
  233. package/dist/_chunks/ja-CiekkoEN.mjs +0 -26
  234. package/dist/_chunks/ja-CiekkoEN.mjs.map +0 -1
  235. package/dist/_chunks/ja-PL3WilO7.js +0 -26
  236. package/dist/_chunks/ja-PL3WilO7.js.map +0 -1
  237. package/dist/_chunks/ko-CJBkZ375.mjs +0 -26
  238. package/dist/_chunks/ko-CJBkZ375.mjs.map +0 -1
  239. package/dist/_chunks/ko-CL2BB_w_.js +0 -26
  240. package/dist/_chunks/ko-CL2BB_w_.js.map +0 -1
  241. package/dist/_chunks/ms-BGlHkuJz.js +0 -5
  242. package/dist/_chunks/ms-BGlHkuJz.js.map +0 -1
  243. package/dist/_chunks/ms-C1wNkEQw.mjs +0 -5
  244. package/dist/_chunks/ms-C1wNkEQw.mjs.map +0 -1
  245. package/dist/_chunks/nl-BuofSsmb.js +0 -5
  246. package/dist/_chunks/nl-BuofSsmb.js.map +0 -1
  247. package/dist/_chunks/nl-C79CwB4e.mjs +0 -5
  248. package/dist/_chunks/nl-C79CwB4e.mjs.map +0 -1
  249. package/dist/_chunks/pl-DXcJCevg.mjs +0 -26
  250. package/dist/_chunks/pl-DXcJCevg.mjs.map +0 -1
  251. package/dist/_chunks/pl-DdtXf3SH.js +0 -26
  252. package/dist/_chunks/pl-DdtXf3SH.js.map +0 -1
  253. package/dist/_chunks/pt-BR-B_ii8U63.js +0 -5
  254. package/dist/_chunks/pt-BR-B_ii8U63.js.map +0 -1
  255. package/dist/_chunks/pt-BR-DjINUWGk.mjs +0 -5
  256. package/dist/_chunks/pt-BR-DjINUWGk.mjs.map +0 -1
  257. package/dist/_chunks/pt-CzRDvk6c.js +0 -29
  258. package/dist/_chunks/pt-CzRDvk6c.js.map +0 -1
  259. package/dist/_chunks/pt-DEVCt2mt.mjs +0 -29
  260. package/dist/_chunks/pt-DEVCt2mt.mjs.map +0 -1
  261. package/dist/_chunks/ru-C_7wBr9e.mjs +0 -5
  262. package/dist/_chunks/ru-C_7wBr9e.mjs.map +0 -1
  263. package/dist/_chunks/ru-Dc-rSPqb.js +0 -5
  264. package/dist/_chunks/ru-Dc-rSPqb.js.map +0 -1
  265. package/dist/_chunks/sk-Cnpb4YOK.js +0 -5
  266. package/dist/_chunks/sk-Cnpb4YOK.js.map +0 -1
  267. package/dist/_chunks/sk-i1gQKUBN.mjs +0 -5
  268. package/dist/_chunks/sk-i1gQKUBN.mjs.map +0 -1
  269. package/dist/_chunks/th-BXTLF08M.js +0 -5
  270. package/dist/_chunks/th-BXTLF08M.js.map +0 -1
  271. package/dist/_chunks/th-D-MxpWKr.mjs +0 -5
  272. package/dist/_chunks/th-D-MxpWKr.mjs.map +0 -1
  273. package/dist/_chunks/tr-BXu41MLY.mjs +0 -29
  274. package/dist/_chunks/tr-BXu41MLY.mjs.map +0 -1
  275. package/dist/_chunks/tr-DwBySNgJ.js +0 -29
  276. package/dist/_chunks/tr-DwBySNgJ.js.map +0 -1
  277. package/dist/_chunks/uk-C_1qrLRM.mjs +0 -5
  278. package/dist/_chunks/uk-C_1qrLRM.mjs.map +0 -1
  279. package/dist/_chunks/uk-CxIePjBD.js +0 -5
  280. package/dist/_chunks/uk-CxIePjBD.js.map +0 -1
  281. package/dist/_chunks/vi-B4uqmjm6.js +0 -5
  282. package/dist/_chunks/vi-B4uqmjm6.js.map +0 -1
  283. package/dist/_chunks/vi-BfZkgFxI.mjs +0 -5
  284. package/dist/_chunks/vi-BfZkgFxI.mjs.map +0 -1
  285. package/dist/_chunks/zh-BS-XJCSt.mjs +0 -29
  286. package/dist/_chunks/zh-BS-XJCSt.mjs.map +0 -1
  287. package/dist/_chunks/zh-DsMIjTgu.js +0 -29
  288. package/dist/_chunks/zh-DsMIjTgu.js.map +0 -1
  289. package/dist/_chunks/zh-Hans-BLEEaLoN.mjs +0 -21
  290. package/dist/_chunks/zh-Hans-BLEEaLoN.mjs.map +0 -1
  291. package/dist/_chunks/zh-Hans-CmL3sY9o.js +0 -21
  292. package/dist/_chunks/zh-Hans-CmL3sY9o.js.map +0 -1
@@ -0,0 +1,64 @@
1
+ import { pick } from 'lodash/fp';
2
+ import { errors } from '@strapi/utils';
3
+
4
+ const { ApplicationError } = errors;
5
+ /**
6
+ * Email.js controller
7
+ *
8
+ * @description: A set of functions called "actions" of the `email` plugin.
9
+ */ const emailController = {
10
+ async send (ctx) {
11
+ const options = ctx.request.body;
12
+ try {
13
+ await strapi.plugin('email').service('email').send(options);
14
+ } catch (error) {
15
+ if (error instanceof Error) {
16
+ if ('statusCode' in error && error.statusCode === 400) {
17
+ throw new ApplicationError(error.message);
18
+ } else {
19
+ throw new Error(`Couldn't send email: ${error.message}.`);
20
+ }
21
+ }
22
+ }
23
+ // Send 200 `ok`
24
+ ctx.send({});
25
+ },
26
+ async test (ctx) {
27
+ const { to } = ctx.request.body;
28
+ if (!to) {
29
+ throw new ApplicationError('No recipient(s) are given');
30
+ }
31
+ const email = {
32
+ to,
33
+ subject: `Strapi test mail to: ${to}`,
34
+ text: `Great! You have correctly configured the Strapi email plugin with the ${strapi.config.get('plugin::email.provider')} provider. \r\nFor documentation on how to use the email plugin checkout: https://docs.strapi.io/developer-docs/latest/plugins/email.html`
35
+ };
36
+ try {
37
+ await strapi.plugin('email').service('email').send(email);
38
+ } catch (error) {
39
+ if (error instanceof Error) {
40
+ if ('statusCode' in error && error.statusCode === 400) {
41
+ throw new ApplicationError(error.message);
42
+ } else {
43
+ throw new Error(`Couldn't send test email: ${error.message}.`);
44
+ }
45
+ }
46
+ }
47
+ // Send 200 `ok`
48
+ ctx.send({});
49
+ },
50
+ async getSettings (ctx) {
51
+ const config = strapi.plugin('email').service('email').getProviderSettings();
52
+ ctx.send({
53
+ config: pick([
54
+ 'provider',
55
+ 'settings.defaultFrom',
56
+ 'settings.defaultReplyTo',
57
+ 'settings.testAddress'
58
+ ], config)
59
+ });
60
+ }
61
+ };
62
+
63
+ export { emailController as default };
64
+ //# sourceMappingURL=email.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.mjs","sources":["../../../server/src/controllers/email.ts"],"sourcesContent":["import { pick } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\n\nimport type Koa from 'koa';\nimport type {} from 'koa-body';\nimport type { EmailConfig, SendOptions } from '../types';\n\nconst { ApplicationError } = errors;\n\n/**\n * Email.js controller\n *\n * @description: A set of functions called \"actions\" of the `email` plugin.\n */\nconst emailController = {\n async send(ctx: Koa.Context) {\n const options = ctx.request.body as SendOptions;\n\n try {\n await strapi.plugin('email').service('email').send(options);\n } catch (error) {\n if (error instanceof Error) {\n if ('statusCode' in error && error.statusCode === 400) {\n throw new ApplicationError(error.message);\n } else {\n throw new Error(`Couldn't send email: ${error.message}.`);\n }\n }\n }\n\n // Send 200 `ok`\n ctx.send({});\n },\n\n async test(ctx: Koa.Context) {\n const { to } = ctx.request.body as Pick<SendOptions, 'to'>;\n\n if (!to) {\n throw new ApplicationError('No recipient(s) are given');\n }\n\n const email: SendOptions = {\n to,\n subject: `Strapi test mail to: ${to}`,\n text: `Great! You have correctly configured the Strapi email plugin with the ${strapi.config.get(\n 'plugin::email.provider'\n )} provider. \\r\\nFor documentation on how to use the email plugin checkout: https://docs.strapi.io/developer-docs/latest/plugins/email.html`,\n };\n\n try {\n await strapi.plugin('email').service('email').send(email);\n } catch (error) {\n if (error instanceof Error) {\n if ('statusCode' in error && error.statusCode === 400) {\n throw new ApplicationError(error.message);\n } else {\n throw new Error(`Couldn't send test email: ${error.message}.`);\n }\n }\n }\n\n // Send 200 `ok`\n ctx.send({});\n },\n\n async getSettings(ctx: Koa.Context) {\n const config: EmailConfig = strapi.plugin('email').service('email').getProviderSettings();\n\n ctx.send({\n config: pick(\n ['provider', 'settings.defaultFrom', 'settings.defaultReplyTo', 'settings.testAddress'],\n config\n ),\n });\n },\n};\n\nexport default emailController;\n"],"names":["ApplicationError","errors","emailController","send","ctx","options","request","body","strapi","plugin","service","error","Error","statusCode","message","test","to","email","subject","text","config","get","getSettings","getProviderSettings","pick"],"mappings":";;;AAOA,MAAM,EAAEA,gBAAgB,EAAE,GAAGC,MAAAA;AAE7B;;;;AAIC,UACKC,eAAkB,GAAA;AACtB,IAAA,MAAMC,MAAKC,GAAgB,EAAA;AACzB,QAAA,MAAMC,OAAUD,GAAAA,GAAAA,CAAIE,OAAO,CAACC,IAAI;QAEhC,IAAI;YACF,MAAMC,MAAAA,CAAOC,MAAM,CAAC,OAAA,CAAA,CAASC,OAAO,CAAC,OAAA,CAAA,CAASP,IAAI,CAACE,OAAAA,CAAAA;AACrD,SAAA,CAAE,OAAOM,KAAO,EAAA;AACd,YAAA,IAAIA,iBAAiBC,KAAO,EAAA;AAC1B,gBAAA,IAAI,YAAgBD,IAAAA,KAAAA,IAASA,KAAME,CAAAA,UAAU,KAAK,GAAK,EAAA;oBACrD,MAAM,IAAIb,gBAAiBW,CAAAA,KAAAA,CAAMG,OAAO,CAAA;iBACnC,MAAA;oBACL,MAAM,IAAIF,MAAM,CAAC,qBAAqB,EAAED,KAAMG,CAAAA,OAAO,CAAC,CAAC,CAAC,CAAA;AAC1D;AACF;AACF;;QAGAV,GAAID,CAAAA,IAAI,CAAC,EAAC,CAAA;AACZ,KAAA;AAEA,IAAA,MAAMY,MAAKX,GAAgB,EAAA;AACzB,QAAA,MAAM,EAAEY,EAAE,EAAE,GAAGZ,GAAIE,CAAAA,OAAO,CAACC,IAAI;AAE/B,QAAA,IAAI,CAACS,EAAI,EAAA;AACP,YAAA,MAAM,IAAIhB,gBAAiB,CAAA,2BAAA,CAAA;AAC7B;AAEA,QAAA,MAAMiB,KAAqB,GAAA;AACzBD,YAAAA,EAAAA;AACAE,YAAAA,OAAAA,EAAS,CAAC,qBAAqB,EAAEF,EAAAA,CAAG,CAAC;YACrCG,IAAM,EAAA,CAAC,sEAAsE,EAAEX,MAAOY,CAAAA,MAAM,CAACC,GAAG,CAC9F,wBACA,CAAA,CAAA,yIAAyI;AAC7I,SAAA;QAEA,IAAI;YACF,MAAMb,MAAAA,CAAOC,MAAM,CAAC,OAAA,CAAA,CAASC,OAAO,CAAC,OAAA,CAAA,CAASP,IAAI,CAACc,KAAAA,CAAAA;AACrD,SAAA,CAAE,OAAON,KAAO,EAAA;AACd,YAAA,IAAIA,iBAAiBC,KAAO,EAAA;AAC1B,gBAAA,IAAI,YAAgBD,IAAAA,KAAAA,IAASA,KAAME,CAAAA,UAAU,KAAK,GAAK,EAAA;oBACrD,MAAM,IAAIb,gBAAiBW,CAAAA,KAAAA,CAAMG,OAAO,CAAA;iBACnC,MAAA;oBACL,MAAM,IAAIF,MAAM,CAAC,0BAA0B,EAAED,KAAMG,CAAAA,OAAO,CAAC,CAAC,CAAC,CAAA;AAC/D;AACF;AACF;;QAGAV,GAAID,CAAAA,IAAI,CAAC,EAAC,CAAA;AACZ,KAAA;AAEA,IAAA,MAAMmB,aAAYlB,GAAgB,EAAA;QAChC,MAAMgB,MAAAA,GAAsBZ,OAAOC,MAAM,CAAC,SAASC,OAAO,CAAC,SAASa,mBAAmB,EAAA;AAEvFnB,QAAAA,GAAAA,CAAID,IAAI,CAAC;AACPiB,YAAAA,MAAAA,EAAQI,IACN,CAAA;AAAC,gBAAA,UAAA;AAAY,gBAAA,sBAAA;AAAwB,gBAAA,yBAAA;AAA2B,gBAAA;aAAuB,EACvFJ,MAAAA;AAEJ,SAAA,CAAA;AACF;AACF;;;;"}
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ var email = require('./email.js');
4
+
5
+ const controllers = {
6
+ email
7
+ };
8
+
9
+ exports.controllers = controllers;
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../server/src/controllers/index.ts"],"sourcesContent":["import email from './email';\n\nexport const controllers = { email };\n"],"names":["controllers","email"],"mappings":";;;;MAEaA,WAAc,GAAA;AAAEC,IAAAA;AAAM;;;;"}
@@ -0,0 +1,8 @@
1
+ import emailController from './email.mjs';
2
+
3
+ const controllers = {
4
+ email: emailController
5
+ };
6
+
7
+ export { controllers };
8
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../server/src/controllers/index.ts"],"sourcesContent":["import email from './email';\n\nexport const controllers = { email };\n"],"names":["controllers","email"],"mappings":";;MAEaA,WAAc,GAAA;AAAEC,WAAAA;AAAM;;;;"}
@@ -1,208 +1,20 @@
1
- "use strict";
2
- const _ = require("lodash");
3
- const utils = require("@strapi/utils");
4
- const fp = require("lodash/fp");
5
- function _interopNamespace(e) {
6
- if (e && e.__esModule) return e;
7
- const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
8
- if (e) {
9
- for (const k in e) {
10
- if (k !== "default") {
11
- const d = Object.getOwnPropertyDescriptor(e, k);
12
- Object.defineProperty(n, k, d.get ? d : {
13
- enumerable: true,
14
- get: () => e[k]
15
- });
16
- }
17
- }
18
- }
19
- n.default = e;
20
- return Object.freeze(n);
21
- }
22
- const ___namespace = /* @__PURE__ */ _interopNamespace(_);
23
- const createProvider = (emailConfig) => {
24
- const providerName = emailConfig.provider.toLowerCase();
25
- let provider;
26
- let modulePath;
27
- try {
28
- modulePath = require.resolve(`@strapi/provider-email-${providerName}`);
29
- } catch (error) {
30
- if (error !== null && typeof error === "object" && "code" in error && error.code === "MODULE_NOT_FOUND") {
31
- modulePath = providerName;
32
- } else {
33
- throw error;
34
- }
35
- }
36
- try {
37
- provider = require(modulePath);
38
- } catch (err) {
39
- throw new Error(`Could not load email provider "${providerName}".`);
40
- }
41
- return provider.init(emailConfig.providerOptions, emailConfig.settings);
42
- };
43
- const bootstrap = async ({ strapi: strapi2 }) => {
44
- const emailConfig = strapi2.config.get("plugin::email");
45
- strapi2.plugin("email").provider = createProvider(emailConfig);
46
- const actions = [
47
- {
48
- section: "settings",
49
- category: "email",
50
- displayName: "Access the Email Settings page",
51
- uid: "settings.read",
52
- pluginName: "email"
53
- }
54
- ];
55
- await strapi2.service("admin::permission").actionProvider.registerMany(actions);
56
- };
57
- const { createStrictInterpolationRegExp } = utils.template;
58
- const getProviderSettings = () => strapi.config.get("plugin::email");
59
- const send = async (options) => strapi.plugin("email").provider.send(options);
60
- const sendTemplatedEmail = (emailOptions, emailTemplate, data) => {
61
- const attributes = ["subject", "text", "html"];
62
- const missingAttributes = ___namespace.difference(attributes, Object.keys(emailTemplate));
63
- if (missingAttributes.length > 0) {
64
- throw new Error(
65
- `Following attributes are missing from your email template : ${missingAttributes.join(", ")}`
66
- );
67
- }
68
- const allowedInterpolationVariables = utils.objects.keysDeep(data);
69
- const interpolate = createStrictInterpolationRegExp(allowedInterpolationVariables, "g");
70
- const templatedAttributes = attributes.reduce(
71
- (compiled, attribute) => emailTemplate[attribute] ? Object.assign(compiled, {
72
- [attribute]: ___namespace.template(emailTemplate[attribute], {
73
- interpolate
74
- })(data)
75
- }) : compiled,
76
- {}
77
- );
78
- return strapi.plugin("email").provider.send({ ...emailOptions, ...templatedAttributes });
79
- };
80
- const emailService = () => ({
81
- getProviderSettings,
82
- send,
83
- sendTemplatedEmail
84
- });
85
- const services = { email: emailService };
86
- const admin = {
87
- type: "admin",
88
- routes: [
89
- {
90
- method: "POST",
91
- path: "/",
92
- handler: "email.send",
93
- config: {
94
- policies: ["admin::isAuthenticatedAdmin"]
95
- }
96
- },
97
- {
98
- method: "POST",
99
- path: "/test",
100
- handler: "email.test",
101
- config: {
102
- policies: [
103
- "admin::isAuthenticatedAdmin",
104
- { name: "admin::hasPermissions", config: { actions: ["plugin::email.settings.read"] } }
105
- ]
106
- }
107
- },
108
- {
109
- method: "GET",
110
- path: "/settings",
111
- handler: "email.getSettings",
112
- config: {
113
- policies: [
114
- "admin::isAuthenticatedAdmin",
115
- { name: "admin::hasPermissions", config: { actions: ["plugin::email.settings.read"] } }
116
- ]
117
- }
118
- }
119
- ]
120
- };
121
- const contentApi = {
122
- type: "content-api",
123
- routes: [
124
- {
125
- method: "POST",
126
- path: "/",
127
- handler: "email.send"
128
- }
129
- ]
130
- };
131
- const routes = {
132
- admin,
133
- "content-api": contentApi
134
- };
135
- const { ApplicationError } = utils.errors;
136
- const emailController = {
137
- async send(ctx) {
138
- const options = ctx.request.body;
139
- try {
140
- await strapi.plugin("email").service("email").send(options);
141
- } catch (error) {
142
- if (error instanceof Error) {
143
- if ("statusCode" in error && error.statusCode === 400) {
144
- throw new ApplicationError(error.message);
145
- } else {
146
- throw new Error(`Couldn't send email: ${error.message}.`);
147
- }
148
- }
149
- }
150
- ctx.send({});
151
- },
152
- async test(ctx) {
153
- const { to } = ctx.request.body;
154
- if (!to) {
155
- throw new ApplicationError("No recipient(s) are given");
156
- }
157
- const email = {
158
- to,
159
- subject: `Strapi test mail to: ${to}`,
160
- text: `Great! You have correctly configured the Strapi email plugin with the ${strapi.config.get(
161
- "plugin::email.provider"
162
- )} provider. \r
163
- For documentation on how to use the email plugin checkout: https://docs.strapi.io/developer-docs/latest/plugins/email.html`
164
- };
165
- try {
166
- await strapi.plugin("email").service("email").send(email);
167
- } catch (error) {
168
- if (error instanceof Error) {
169
- if ("statusCode" in error && error.statusCode === 400) {
170
- throw new ApplicationError(error.message);
171
- } else {
172
- throw new Error(`Couldn't send test email: ${error.message}.`);
173
- }
174
- }
175
- }
176
- ctx.send({});
177
- },
178
- async getSettings(ctx) {
179
- const config2 = strapi.plugin("email").service("email").getProviderSettings();
180
- ctx.send({
181
- config: fp.pick(
182
- ["provider", "settings.defaultFrom", "settings.defaultReplyTo", "settings.testAddress"],
183
- config2
184
- )
185
- });
186
- }
187
- };
188
- const controllers = { email: emailController };
189
- const config = {
190
- default: {
191
- provider: "sendmail",
192
- providerOptions: {},
193
- settings: {
194
- defaultFrom: "Strapi <no-reply@strapi.io>"
195
- }
196
- },
197
- validator() {
198
- }
199
- };
200
- const index = {
201
- bootstrap,
202
- services,
203
- routes,
204
- controllers,
205
- config
206
- };
1
+ 'use strict';
2
+
3
+ var bootstrap = require('./bootstrap.js');
4
+ var index$1 = require('./services/index.js');
5
+ var index$2 = require('./routes/index.js');
6
+ var index$3 = require('./controllers/index.js');
7
+ var config = require('./config.js');
8
+ var index$4 = require('./middlewares/index.js');
9
+
10
+ var index = {
11
+ bootstrap: bootstrap.bootstrap,
12
+ services: index$1.services,
13
+ routes: index$2.routes,
14
+ controllers: index$3.controllers,
15
+ config: config.config,
16
+ middlewares: index$4.default
17
+ };
18
+
207
19
  module.exports = index;
208
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../server/src/bootstrap.ts","../../server/src/services/email.ts","../../server/src/services/index.ts","../../server/src/routes/admin.ts","../../server/src/routes/content-api.ts","../../server/src/routes/index.ts","../../server/src/controllers/email.ts","../../server/src/controllers/index.ts","../../server/src/config.ts","../../server/src/index.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport type { EmailConfig, SendOptions } from './types';\n\ninterface EmailProvider {\n send: (options: SendOptions) => Promise<any>;\n}\n\ninterface EmailProviderModule {\n init: (\n options: EmailConfig['providerOptions'],\n settings: EmailConfig['settings']\n ) => EmailProvider;\n name?: string;\n provider?: string;\n}\n\nconst createProvider = (emailConfig: EmailConfig) => {\n const providerName = emailConfig.provider.toLowerCase();\n let provider: EmailProviderModule;\n\n let modulePath: string;\n try {\n modulePath = require.resolve(`@strapi/provider-email-${providerName}`);\n } catch (error) {\n if (\n error !== null &&\n typeof error === 'object' &&\n 'code' in error &&\n error.code === 'MODULE_NOT_FOUND'\n ) {\n modulePath = providerName;\n } else {\n throw error;\n }\n }\n\n try {\n provider = require(modulePath);\n } catch (err) {\n throw new Error(`Could not load email provider \"${providerName}\".`);\n }\n\n return provider.init(emailConfig.providerOptions, emailConfig.settings);\n};\n\nexport const bootstrap = async ({ strapi }: { strapi: Core.Strapi }) => {\n const emailConfig: EmailConfig = strapi.config.get('plugin::email');\n strapi.plugin('email').provider = createProvider(emailConfig);\n\n // Add permissions\n const actions = [\n {\n section: 'settings',\n category: 'email',\n displayName: 'Access the Email Settings page',\n uid: 'settings.read',\n pluginName: 'email',\n },\n ];\n\n await strapi.service('admin::permission').actionProvider.registerMany(actions);\n};\n","import * as _ from 'lodash';\nimport { objects, template } from '@strapi/utils';\n\nimport type {\n EmailConfig,\n EmailOptions,\n EmailTemplate,\n EmailTemplateData,\n SendOptions,\n} from '../types';\n\nconst { createStrictInterpolationRegExp } = template;\n\nconst getProviderSettings = (): EmailConfig => strapi.config.get('plugin::email');\n\nconst send = async (options: SendOptions) => strapi.plugin('email').provider.send(options);\n\n/**\n * fill subject, text and html using lodash template\n * @param {object} emailOptions - to, from and replyto...\n * @param {object} emailTemplate - object containing attributes to fill\n * @param {object} data - data used to fill the template\n * @returns {{ subject, text, subject }}\n */\nconst sendTemplatedEmail = (\n emailOptions: EmailOptions,\n emailTemplate: EmailTemplate,\n data: EmailTemplateData\n) => {\n const attributes = ['subject', 'text', 'html'];\n const missingAttributes = _.difference(attributes, Object.keys(emailTemplate));\n\n if (missingAttributes.length > 0) {\n throw new Error(\n `Following attributes are missing from your email template : ${missingAttributes.join(', ')}`\n );\n }\n\n const allowedInterpolationVariables = objects.keysDeep(data);\n const interpolate = createStrictInterpolationRegExp(allowedInterpolationVariables, 'g');\n\n const templatedAttributes = attributes.reduce(\n (compiled, attribute) =>\n emailTemplate[attribute]\n ? Object.assign(compiled, {\n [attribute]: _.template(emailTemplate[attribute], {\n interpolate,\n })(data),\n })\n : compiled,\n {}\n );\n\n return strapi.plugin('email').provider.send({ ...emailOptions, ...templatedAttributes });\n};\n\nconst emailService = () => ({\n getProviderSettings,\n send,\n sendTemplatedEmail,\n});\n\nexport default emailService;\n","import email from './email';\n\nexport const services = { email };\n","export default {\n type: 'admin',\n routes: [\n {\n method: 'POST',\n path: '/',\n handler: 'email.send',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'POST',\n path: '/test',\n handler: 'email.test',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n { name: 'admin::hasPermissions', config: { actions: ['plugin::email.settings.read'] } },\n ],\n },\n },\n {\n method: 'GET',\n path: '/settings',\n handler: 'email.getSettings',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n { name: 'admin::hasPermissions', config: { actions: ['plugin::email.settings.read'] } },\n ],\n },\n },\n ],\n};\n","export default {\n type: 'content-api',\n routes: [\n {\n method: 'POST',\n path: '/',\n handler: 'email.send',\n },\n ],\n};\n","import admin from './admin';\nimport contentApi from './content-api';\n\nexport const routes = {\n admin,\n 'content-api': contentApi,\n};\n","import { pick } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\n\nimport type Koa from 'koa';\nimport type {} from 'koa-body';\nimport type { EmailConfig, SendOptions } from '../types';\n\nconst { ApplicationError } = errors;\n\n/**\n * Email.js controller\n *\n * @description: A set of functions called \"actions\" of the `email` plugin.\n */\nconst emailController = {\n async send(ctx: Koa.Context) {\n const options = ctx.request.body as SendOptions;\n\n try {\n await strapi.plugin('email').service('email').send(options);\n } catch (error) {\n if (error instanceof Error) {\n if ('statusCode' in error && error.statusCode === 400) {\n throw new ApplicationError(error.message);\n } else {\n throw new Error(`Couldn't send email: ${error.message}.`);\n }\n }\n }\n\n // Send 200 `ok`\n ctx.send({});\n },\n\n async test(ctx: Koa.Context) {\n const { to } = ctx.request.body as Pick<SendOptions, 'to'>;\n\n if (!to) {\n throw new ApplicationError('No recipient(s) are given');\n }\n\n const email: SendOptions = {\n to,\n subject: `Strapi test mail to: ${to}`,\n text: `Great! You have correctly configured the Strapi email plugin with the ${strapi.config.get(\n 'plugin::email.provider'\n )} provider. \\r\\nFor documentation on how to use the email plugin checkout: https://docs.strapi.io/developer-docs/latest/plugins/email.html`,\n };\n\n try {\n await strapi.plugin('email').service('email').send(email);\n } catch (error) {\n if (error instanceof Error) {\n if ('statusCode' in error && error.statusCode === 400) {\n throw new ApplicationError(error.message);\n } else {\n throw new Error(`Couldn't send test email: ${error.message}.`);\n }\n }\n }\n\n // Send 200 `ok`\n ctx.send({});\n },\n\n async getSettings(ctx: Koa.Context) {\n const config: EmailConfig = strapi.plugin('email').service('email').getProviderSettings();\n\n ctx.send({\n config: pick(\n ['provider', 'settings.defaultFrom', 'settings.defaultReplyTo', 'settings.testAddress'],\n config\n ),\n });\n },\n};\n\nexport default emailController;\n","import email from './email';\n\nexport const controllers = { email };\n","import type { StrapiConfig } from './types';\n\nexport const config: StrapiConfig = {\n default: {\n provider: 'sendmail',\n providerOptions: {},\n settings: {\n defaultFrom: 'Strapi <no-reply@strapi.io>',\n },\n },\n validator() {},\n};\n","import { bootstrap } from './bootstrap';\nimport { services } from './services';\nimport { routes } from './routes';\nimport { controllers } from './controllers';\nimport { config } from './config';\n\nexport default {\n bootstrap,\n services,\n routes,\n controllers,\n config,\n};\n"],"names":["strapi","template","_","objects","email","errors","config","pick"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../server/src/index.ts"],"sourcesContent":["import { bootstrap } from './bootstrap';\nimport { services } from './services';\nimport { routes } from './routes';\nimport { controllers } from './controllers';\nimport { config } from './config';\nimport middlewares from './middlewares';\n\nexport default {\n bootstrap,\n services,\n routes,\n controllers,\n config,\n middlewares,\n};\n"],"names":["bootstrap","services","routes","controllers","config","middlewares"],"mappings":";;;;;;;;;AAOA,YAAe;AACbA,eAAAA,mBAAAA;AACAC,cAAAA,gBAAAA;AACAC,YAAAA,cAAAA;AACAC,iBAAAA,mBAAAA;AACAC,YAAAA,aAAAA;AACAC,iBAAAA;AACF,CAAE;;;;"}
@@ -1,191 +1,18 @@
1
- import * as _ from "lodash";
2
- import { objects, template, errors } from "@strapi/utils";
3
- import { pick } from "lodash/fp";
4
- const createProvider = (emailConfig) => {
5
- const providerName = emailConfig.provider.toLowerCase();
6
- let provider;
7
- let modulePath;
8
- try {
9
- modulePath = require.resolve(`@strapi/provider-email-${providerName}`);
10
- } catch (error) {
11
- if (error !== null && typeof error === "object" && "code" in error && error.code === "MODULE_NOT_FOUND") {
12
- modulePath = providerName;
13
- } else {
14
- throw error;
15
- }
16
- }
17
- try {
18
- provider = require(modulePath);
19
- } catch (err) {
20
- throw new Error(`Could not load email provider "${providerName}".`);
21
- }
22
- return provider.init(emailConfig.providerOptions, emailConfig.settings);
23
- };
24
- const bootstrap = async ({ strapi: strapi2 }) => {
25
- const emailConfig = strapi2.config.get("plugin::email");
26
- strapi2.plugin("email").provider = createProvider(emailConfig);
27
- const actions = [
28
- {
29
- section: "settings",
30
- category: "email",
31
- displayName: "Access the Email Settings page",
32
- uid: "settings.read",
33
- pluginName: "email"
34
- }
35
- ];
36
- await strapi2.service("admin::permission").actionProvider.registerMany(actions);
37
- };
38
- const { createStrictInterpolationRegExp } = template;
39
- const getProviderSettings = () => strapi.config.get("plugin::email");
40
- const send = async (options) => strapi.plugin("email").provider.send(options);
41
- const sendTemplatedEmail = (emailOptions, emailTemplate, data) => {
42
- const attributes = ["subject", "text", "html"];
43
- const missingAttributes = _.difference(attributes, Object.keys(emailTemplate));
44
- if (missingAttributes.length > 0) {
45
- throw new Error(
46
- `Following attributes are missing from your email template : ${missingAttributes.join(", ")}`
47
- );
48
- }
49
- const allowedInterpolationVariables = objects.keysDeep(data);
50
- const interpolate = createStrictInterpolationRegExp(allowedInterpolationVariables, "g");
51
- const templatedAttributes = attributes.reduce(
52
- (compiled, attribute) => emailTemplate[attribute] ? Object.assign(compiled, {
53
- [attribute]: _.template(emailTemplate[attribute], {
54
- interpolate
55
- })(data)
56
- }) : compiled,
57
- {}
58
- );
59
- return strapi.plugin("email").provider.send({ ...emailOptions, ...templatedAttributes });
60
- };
61
- const emailService = () => ({
62
- getProviderSettings,
63
- send,
64
- sendTemplatedEmail
65
- });
66
- const services = { email: emailService };
67
- const admin = {
68
- type: "admin",
69
- routes: [
70
- {
71
- method: "POST",
72
- path: "/",
73
- handler: "email.send",
74
- config: {
75
- policies: ["admin::isAuthenticatedAdmin"]
76
- }
77
- },
78
- {
79
- method: "POST",
80
- path: "/test",
81
- handler: "email.test",
82
- config: {
83
- policies: [
84
- "admin::isAuthenticatedAdmin",
85
- { name: "admin::hasPermissions", config: { actions: ["plugin::email.settings.read"] } }
86
- ]
87
- }
88
- },
89
- {
90
- method: "GET",
91
- path: "/settings",
92
- handler: "email.getSettings",
93
- config: {
94
- policies: [
95
- "admin::isAuthenticatedAdmin",
96
- { name: "admin::hasPermissions", config: { actions: ["plugin::email.settings.read"] } }
97
- ]
98
- }
99
- }
100
- ]
101
- };
102
- const contentApi = {
103
- type: "content-api",
104
- routes: [
105
- {
106
- method: "POST",
107
- path: "/",
108
- handler: "email.send"
109
- }
110
- ]
111
- };
112
- const routes = {
113
- admin,
114
- "content-api": contentApi
115
- };
116
- const { ApplicationError } = errors;
117
- const emailController = {
118
- async send(ctx) {
119
- const options = ctx.request.body;
120
- try {
121
- await strapi.plugin("email").service("email").send(options);
122
- } catch (error) {
123
- if (error instanceof Error) {
124
- if ("statusCode" in error && error.statusCode === 400) {
125
- throw new ApplicationError(error.message);
126
- } else {
127
- throw new Error(`Couldn't send email: ${error.message}.`);
128
- }
129
- }
130
- }
131
- ctx.send({});
132
- },
133
- async test(ctx) {
134
- const { to } = ctx.request.body;
135
- if (!to) {
136
- throw new ApplicationError("No recipient(s) are given");
137
- }
138
- const email = {
139
- to,
140
- subject: `Strapi test mail to: ${to}`,
141
- text: `Great! You have correctly configured the Strapi email plugin with the ${strapi.config.get(
142
- "plugin::email.provider"
143
- )} provider. \r
144
- For documentation on how to use the email plugin checkout: https://docs.strapi.io/developer-docs/latest/plugins/email.html`
145
- };
146
- try {
147
- await strapi.plugin("email").service("email").send(email);
148
- } catch (error) {
149
- if (error instanceof Error) {
150
- if ("statusCode" in error && error.statusCode === 400) {
151
- throw new ApplicationError(error.message);
152
- } else {
153
- throw new Error(`Couldn't send test email: ${error.message}.`);
154
- }
155
- }
156
- }
157
- ctx.send({});
158
- },
159
- async getSettings(ctx) {
160
- const config2 = strapi.plugin("email").service("email").getProviderSettings();
161
- ctx.send({
162
- config: pick(
163
- ["provider", "settings.defaultFrom", "settings.defaultReplyTo", "settings.testAddress"],
164
- config2
165
- )
166
- });
167
- }
168
- };
169
- const controllers = { email: emailController };
170
- const config = {
171
- default: {
172
- provider: "sendmail",
173
- providerOptions: {},
174
- settings: {
175
- defaultFrom: "Strapi <no-reply@strapi.io>"
176
- }
177
- },
178
- validator() {
179
- }
180
- };
181
- const index = {
182
- bootstrap,
183
- services,
184
- routes,
185
- controllers,
186
- config
187
- };
188
- export {
189
- index as default
190
- };
1
+ import { bootstrap } from './bootstrap.mjs';
2
+ import { services } from './services/index.mjs';
3
+ import { routes } from './routes/index.mjs';
4
+ import { controllers } from './controllers/index.mjs';
5
+ import { config } from './config.mjs';
6
+ import middlewares from './middlewares/index.mjs';
7
+
8
+ var index = {
9
+ bootstrap,
10
+ services,
11
+ routes,
12
+ controllers,
13
+ config,
14
+ middlewares
15
+ };
16
+
17
+ export { index as default };
191
18
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../server/src/bootstrap.ts","../../server/src/services/email.ts","../../server/src/services/index.ts","../../server/src/routes/admin.ts","../../server/src/routes/content-api.ts","../../server/src/routes/index.ts","../../server/src/controllers/email.ts","../../server/src/controllers/index.ts","../../server/src/config.ts","../../server/src/index.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport type { EmailConfig, SendOptions } from './types';\n\ninterface EmailProvider {\n send: (options: SendOptions) => Promise<any>;\n}\n\ninterface EmailProviderModule {\n init: (\n options: EmailConfig['providerOptions'],\n settings: EmailConfig['settings']\n ) => EmailProvider;\n name?: string;\n provider?: string;\n}\n\nconst createProvider = (emailConfig: EmailConfig) => {\n const providerName = emailConfig.provider.toLowerCase();\n let provider: EmailProviderModule;\n\n let modulePath: string;\n try {\n modulePath = require.resolve(`@strapi/provider-email-${providerName}`);\n } catch (error) {\n if (\n error !== null &&\n typeof error === 'object' &&\n 'code' in error &&\n error.code === 'MODULE_NOT_FOUND'\n ) {\n modulePath = providerName;\n } else {\n throw error;\n }\n }\n\n try {\n provider = require(modulePath);\n } catch (err) {\n throw new Error(`Could not load email provider \"${providerName}\".`);\n }\n\n return provider.init(emailConfig.providerOptions, emailConfig.settings);\n};\n\nexport const bootstrap = async ({ strapi }: { strapi: Core.Strapi }) => {\n const emailConfig: EmailConfig = strapi.config.get('plugin::email');\n strapi.plugin('email').provider = createProvider(emailConfig);\n\n // Add permissions\n const actions = [\n {\n section: 'settings',\n category: 'email',\n displayName: 'Access the Email Settings page',\n uid: 'settings.read',\n pluginName: 'email',\n },\n ];\n\n await strapi.service('admin::permission').actionProvider.registerMany(actions);\n};\n","import * as _ from 'lodash';\nimport { objects, template } from '@strapi/utils';\n\nimport type {\n EmailConfig,\n EmailOptions,\n EmailTemplate,\n EmailTemplateData,\n SendOptions,\n} from '../types';\n\nconst { createStrictInterpolationRegExp } = template;\n\nconst getProviderSettings = (): EmailConfig => strapi.config.get('plugin::email');\n\nconst send = async (options: SendOptions) => strapi.plugin('email').provider.send(options);\n\n/**\n * fill subject, text and html using lodash template\n * @param {object} emailOptions - to, from and replyto...\n * @param {object} emailTemplate - object containing attributes to fill\n * @param {object} data - data used to fill the template\n * @returns {{ subject, text, subject }}\n */\nconst sendTemplatedEmail = (\n emailOptions: EmailOptions,\n emailTemplate: EmailTemplate,\n data: EmailTemplateData\n) => {\n const attributes = ['subject', 'text', 'html'];\n const missingAttributes = _.difference(attributes, Object.keys(emailTemplate));\n\n if (missingAttributes.length > 0) {\n throw new Error(\n `Following attributes are missing from your email template : ${missingAttributes.join(', ')}`\n );\n }\n\n const allowedInterpolationVariables = objects.keysDeep(data);\n const interpolate = createStrictInterpolationRegExp(allowedInterpolationVariables, 'g');\n\n const templatedAttributes = attributes.reduce(\n (compiled, attribute) =>\n emailTemplate[attribute]\n ? Object.assign(compiled, {\n [attribute]: _.template(emailTemplate[attribute], {\n interpolate,\n })(data),\n })\n : compiled,\n {}\n );\n\n return strapi.plugin('email').provider.send({ ...emailOptions, ...templatedAttributes });\n};\n\nconst emailService = () => ({\n getProviderSettings,\n send,\n sendTemplatedEmail,\n});\n\nexport default emailService;\n","import email from './email';\n\nexport const services = { email };\n","export default {\n type: 'admin',\n routes: [\n {\n method: 'POST',\n path: '/',\n handler: 'email.send',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'POST',\n path: '/test',\n handler: 'email.test',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n { name: 'admin::hasPermissions', config: { actions: ['plugin::email.settings.read'] } },\n ],\n },\n },\n {\n method: 'GET',\n path: '/settings',\n handler: 'email.getSettings',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n { name: 'admin::hasPermissions', config: { actions: ['plugin::email.settings.read'] } },\n ],\n },\n },\n ],\n};\n","export default {\n type: 'content-api',\n routes: [\n {\n method: 'POST',\n path: '/',\n handler: 'email.send',\n },\n ],\n};\n","import admin from './admin';\nimport contentApi from './content-api';\n\nexport const routes = {\n admin,\n 'content-api': contentApi,\n};\n","import { pick } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\n\nimport type Koa from 'koa';\nimport type {} from 'koa-body';\nimport type { EmailConfig, SendOptions } from '../types';\n\nconst { ApplicationError } = errors;\n\n/**\n * Email.js controller\n *\n * @description: A set of functions called \"actions\" of the `email` plugin.\n */\nconst emailController = {\n async send(ctx: Koa.Context) {\n const options = ctx.request.body as SendOptions;\n\n try {\n await strapi.plugin('email').service('email').send(options);\n } catch (error) {\n if (error instanceof Error) {\n if ('statusCode' in error && error.statusCode === 400) {\n throw new ApplicationError(error.message);\n } else {\n throw new Error(`Couldn't send email: ${error.message}.`);\n }\n }\n }\n\n // Send 200 `ok`\n ctx.send({});\n },\n\n async test(ctx: Koa.Context) {\n const { to } = ctx.request.body as Pick<SendOptions, 'to'>;\n\n if (!to) {\n throw new ApplicationError('No recipient(s) are given');\n }\n\n const email: SendOptions = {\n to,\n subject: `Strapi test mail to: ${to}`,\n text: `Great! You have correctly configured the Strapi email plugin with the ${strapi.config.get(\n 'plugin::email.provider'\n )} provider. \\r\\nFor documentation on how to use the email plugin checkout: https://docs.strapi.io/developer-docs/latest/plugins/email.html`,\n };\n\n try {\n await strapi.plugin('email').service('email').send(email);\n } catch (error) {\n if (error instanceof Error) {\n if ('statusCode' in error && error.statusCode === 400) {\n throw new ApplicationError(error.message);\n } else {\n throw new Error(`Couldn't send test email: ${error.message}.`);\n }\n }\n }\n\n // Send 200 `ok`\n ctx.send({});\n },\n\n async getSettings(ctx: Koa.Context) {\n const config: EmailConfig = strapi.plugin('email').service('email').getProviderSettings();\n\n ctx.send({\n config: pick(\n ['provider', 'settings.defaultFrom', 'settings.defaultReplyTo', 'settings.testAddress'],\n config\n ),\n });\n },\n};\n\nexport default emailController;\n","import email from './email';\n\nexport const controllers = { email };\n","import type { StrapiConfig } from './types';\n\nexport const config: StrapiConfig = {\n default: {\n provider: 'sendmail',\n providerOptions: {},\n settings: {\n defaultFrom: 'Strapi <no-reply@strapi.io>',\n },\n },\n validator() {},\n};\n","import { bootstrap } from './bootstrap';\nimport { services } from './services';\nimport { routes } from './routes';\nimport { controllers } from './controllers';\nimport { config } from './config';\n\nexport default {\n bootstrap,\n services,\n routes,\n controllers,\n config,\n};\n"],"names":["strapi","email","config"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../server/src/index.ts"],"sourcesContent":["import { bootstrap } from './bootstrap';\nimport { services } from './services';\nimport { routes } from './routes';\nimport { controllers } from './controllers';\nimport { config } from './config';\nimport middlewares from './middlewares';\n\nexport default {\n bootstrap,\n services,\n routes,\n controllers,\n config,\n middlewares,\n};\n"],"names":["bootstrap","services","routes","controllers","config","middlewares"],"mappings":";;;;;;;AAOA,YAAe;AACbA,IAAAA,SAAAA;AACAC,IAAAA,QAAAA;AACAC,IAAAA,MAAAA;AACAC,IAAAA,WAAAA;AACAC,IAAAA,MAAAA;AACAC,IAAAA;AACF,CAAE;;;;"}
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var rateLimit = require('./rateLimit.js');
6
+
7
+ var middlewares = {
8
+ rateLimit
9
+ };
10
+
11
+ exports.rateLimit = rateLimit;
12
+ exports.default = middlewares;
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../server/src/middlewares/index.ts"],"sourcesContent":["import rateLimit from './rateLimit';\n\nexport { default as rateLimit } from './rateLimit';\n\nexport default {\n rateLimit,\n};\n"],"names":["rateLimit"],"mappings":";;;;;;AAIA,kBAAe;AACbA,IAAAA;AACF,CAAE;;;;;"}
@@ -0,0 +1,8 @@
1
+ import rateLimit from './rateLimit.mjs';
2
+
3
+ var middlewares = {
4
+ rateLimit
5
+ };
6
+
7
+ export { middlewares as default, rateLimit };
8
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../server/src/middlewares/index.ts"],"sourcesContent":["import rateLimit from './rateLimit';\n\nexport { default as rateLimit } from './rateLimit';\n\nexport default {\n rateLimit,\n};\n"],"names":["rateLimit"],"mappings":";;AAIA,kBAAe;AACbA,IAAAA;AACF,CAAE;;;;"}