@strapi/email 0.0.0-next.fc9d26d995624dc886b29f563e1de655d47e6609 → 0.0.0-next.ffc36acb308febe288f1a31b62cbbb75b286585c

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 (256) 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 +86 -2
  6. package/dist/admin/index.js.map +1 -1
  7. package/dist/admin/index.mjs +87 -1
  8. package/dist/admin/index.mjs.map +1 -1
  9. package/dist/admin/{chunks/Settings-D8WJjMq7.js → pages/Settings.js} +8 -30
  10. package/dist/admin/pages/Settings.js.map +1 -0
  11. package/dist/admin/{chunks/Settings-DE939EJl.js → pages/Settings.mjs} +5 -27
  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/{chunks/ar-JWJKrFM-.js → translations/ar.json.mjs} +1 -1
  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/{chunks/cs-BZCMeXgq.js → translations/cs.json.mjs} +1 -1
  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/{chunks/de-CGlAhulB.js → translations/de.json.mjs} +1 -1
  24. package/dist/admin/translations/de.json.mjs.map +1 -0
  25. package/dist/admin/{chunks/dk-DW7WecjY.js → translations/dk.json.js} +2 -2
  26. package/dist/admin/translations/dk.json.js.map +1 -0
  27. package/dist/admin/{chunks/dk-B5IuEReS.js → translations/dk.json.mjs} +1 -1
  28. package/dist/admin/translations/dk.json.mjs.map +1 -0
  29. package/dist/admin/{chunks/en-DacnIsXb.js → translations/en.json.js} +3 -1
  30. package/dist/admin/translations/en.json.js.map +1 -0
  31. package/dist/admin/{chunks/en-Dxg2wKLN.js → translations/en.json.mjs} +1 -1
  32. package/dist/admin/translations/en.json.mjs.map +1 -0
  33. package/dist/admin/{chunks/es-DxWi6BKM.js → translations/es.json.js} +2 -2
  34. package/dist/admin/translations/es.json.js.map +1 -0
  35. package/dist/admin/{chunks/es-fdc21M_E.js → translations/es.json.mjs} +1 -1
  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/{chunks/fr-DZjvYp6C.js → translations/fr.json.mjs} +1 -1
  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/{chunks/id-C1eDxX9W.js → translations/id.json.mjs} +1 -1
  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/{chunks/it-DVlJ2EhA.js → translations/it.json.mjs} +1 -1
  48. package/dist/admin/translations/it.json.mjs.map +1 -0
  49. package/dist/admin/{chunks/ja-DdOPbVbe.js → translations/ja.json.js} +2 -2
  50. package/dist/admin/translations/ja.json.js.map +1 -0
  51. package/dist/admin/{chunks/ja-CVosbw2M.js → translations/ja.json.mjs} +1 -1
  52. package/dist/admin/translations/ja.json.mjs.map +1 -0
  53. package/dist/admin/{chunks/ko-CaWqWfC8.js → translations/ko.json.js} +2 -2
  54. package/dist/admin/translations/ko.json.js.map +1 -0
  55. package/dist/admin/{chunks/ko-B8SR--vZ.js → translations/ko.json.mjs} +1 -1
  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/{chunks/ms-DLngEN2_.js → translations/ms.json.mjs} +1 -1
  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/{chunks/nl-B6Q0VF48.js → translations/nl.json.mjs} +1 -1
  64. package/dist/admin/translations/nl.json.mjs.map +1 -0
  65. package/dist/admin/{chunks/pl-CO-R08qV.js → translations/pl.json.js} +2 -2
  66. package/dist/admin/translations/pl.json.js.map +1 -0
  67. package/dist/admin/{chunks/pl-Bve39qfV.js → translations/pl.json.mjs} +1 -1
  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/{chunks/pt-BR-DPqDE4wA.js → translations/pt-BR.json.mjs} +1 -1
  72. package/dist/admin/translations/pt-BR.json.mjs.map +1 -0
  73. package/dist/admin/{chunks/pt-BzFac2P5.js → translations/pt.json.js} +3 -1
  74. package/dist/admin/translations/pt.json.js.map +1 -0
  75. package/dist/admin/{chunks/pt-DLqF-Sb4.js → translations/pt.json.mjs} +1 -1
  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/{chunks/ru-rmFYdvwh.js → translations/ru.json.mjs} +1 -1
  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/{chunks/sk-DDJmUHcx.js → translations/sk.json.mjs} +1 -1
  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/{chunks/th-BqTCSpUc.js → translations/th.json.mjs} +1 -1
  88. package/dist/admin/translations/th.json.mjs.map +1 -0
  89. package/dist/admin/{chunks/tr-n7J_y4Bh.js → translations/tr.json.js} +3 -1
  90. package/dist/admin/translations/tr.json.js.map +1 -0
  91. package/dist/admin/{chunks/tr-BmrcZCoj.js → translations/tr.json.mjs} +1 -1
  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/{chunks/vi-CO9gCtmD.js → translations/vi.json.mjs} +1 -1
  100. package/dist/admin/translations/vi.json.mjs.map +1 -0
  101. package/dist/admin/{chunks/zh-Hans-D0bb9tfC.js → translations/zh-Hans.json.js} +3 -1
  102. package/dist/admin/translations/zh-Hans.json.js.map +1 -0
  103. package/dist/admin/{chunks/zh-Hans-ChWc00HT.js → translations/zh-Hans.json.mjs} +1 -1
  104. package/dist/admin/translations/zh-Hans.json.mjs.map +1 -0
  105. package/dist/admin/{chunks/zh-9wNbbqde.js → translations/zh.json.js} +3 -1
  106. package/dist/admin/translations/zh.json.js.map +1 -0
  107. package/dist/admin/{chunks/zh-CZQ4DV5L.js → translations/zh.json.mjs} +1 -1
  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 +12 -246
  138. package/dist/server/index.js.map +1 -1
  139. package/dist/server/index.mjs +8 -223
  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/package.json +11 -9
  188. package/dist/admin/chunks/Settings-D8WJjMq7.js.map +0 -1
  189. package/dist/admin/chunks/Settings-DE939EJl.js.map +0 -1
  190. package/dist/admin/chunks/ar-BDHMRt_b.js +0 -6
  191. package/dist/admin/chunks/ar-BDHMRt_b.js.map +0 -1
  192. package/dist/admin/chunks/ar-JWJKrFM-.js.map +0 -1
  193. package/dist/admin/chunks/cs-BZCMeXgq.js.map +0 -1
  194. package/dist/admin/chunks/cs-DrOn3eR2.js +0 -6
  195. package/dist/admin/chunks/cs-DrOn3eR2.js.map +0 -1
  196. package/dist/admin/chunks/de-BlqtkWR3.js +0 -6
  197. package/dist/admin/chunks/de-BlqtkWR3.js.map +0 -1
  198. package/dist/admin/chunks/de-CGlAhulB.js.map +0 -1
  199. package/dist/admin/chunks/dk-B5IuEReS.js.map +0 -1
  200. package/dist/admin/chunks/dk-DW7WecjY.js.map +0 -1
  201. package/dist/admin/chunks/en-DacnIsXb.js.map +0 -1
  202. package/dist/admin/chunks/en-Dxg2wKLN.js.map +0 -1
  203. package/dist/admin/chunks/es-DxWi6BKM.js.map +0 -1
  204. package/dist/admin/chunks/es-fdc21M_E.js.map +0 -1
  205. package/dist/admin/chunks/fr-BsENAPSS.js +0 -6
  206. package/dist/admin/chunks/fr-BsENAPSS.js.map +0 -1
  207. package/dist/admin/chunks/fr-DZjvYp6C.js.map +0 -1
  208. package/dist/admin/chunks/id-BORUwKHm.js +0 -6
  209. package/dist/admin/chunks/id-BORUwKHm.js.map +0 -1
  210. package/dist/admin/chunks/id-C1eDxX9W.js.map +0 -1
  211. package/dist/admin/chunks/index-Ce7DMTUO.js +0 -105
  212. package/dist/admin/chunks/index-Ce7DMTUO.js.map +0 -1
  213. package/dist/admin/chunks/index-HXXlrjit.js +0 -108
  214. package/dist/admin/chunks/index-HXXlrjit.js.map +0 -1
  215. package/dist/admin/chunks/it-DVlJ2EhA.js.map +0 -1
  216. package/dist/admin/chunks/it-eAGyIQ1x.js +0 -6
  217. package/dist/admin/chunks/it-eAGyIQ1x.js.map +0 -1
  218. package/dist/admin/chunks/ja-CVosbw2M.js.map +0 -1
  219. package/dist/admin/chunks/ja-DdOPbVbe.js.map +0 -1
  220. package/dist/admin/chunks/ko-B8SR--vZ.js.map +0 -1
  221. package/dist/admin/chunks/ko-CaWqWfC8.js.map +0 -1
  222. package/dist/admin/chunks/ms-CrRuDILn.js +0 -6
  223. package/dist/admin/chunks/ms-CrRuDILn.js.map +0 -1
  224. package/dist/admin/chunks/ms-DLngEN2_.js.map +0 -1
  225. package/dist/admin/chunks/nl-B6Q0VF48.js.map +0 -1
  226. package/dist/admin/chunks/nl-BMsBb10t.js +0 -6
  227. package/dist/admin/chunks/nl-BMsBb10t.js.map +0 -1
  228. package/dist/admin/chunks/pl-Bve39qfV.js.map +0 -1
  229. package/dist/admin/chunks/pl-CO-R08qV.js.map +0 -1
  230. package/dist/admin/chunks/pt-BR-CBzJhkyg.js +0 -6
  231. package/dist/admin/chunks/pt-BR-CBzJhkyg.js.map +0 -1
  232. package/dist/admin/chunks/pt-BR-DPqDE4wA.js.map +0 -1
  233. package/dist/admin/chunks/pt-BzFac2P5.js.map +0 -1
  234. package/dist/admin/chunks/pt-DLqF-Sb4.js.map +0 -1
  235. package/dist/admin/chunks/ru-DnqOAZDX.js +0 -6
  236. package/dist/admin/chunks/ru-DnqOAZDX.js.map +0 -1
  237. package/dist/admin/chunks/ru-rmFYdvwh.js.map +0 -1
  238. package/dist/admin/chunks/sk-DDJmUHcx.js.map +0 -1
  239. package/dist/admin/chunks/sk-N47IGfwH.js +0 -6
  240. package/dist/admin/chunks/sk-N47IGfwH.js.map +0 -1
  241. package/dist/admin/chunks/th-BqTCSpUc.js.map +0 -1
  242. package/dist/admin/chunks/th-OW3_QVEZ.js +0 -6
  243. package/dist/admin/chunks/th-OW3_QVEZ.js.map +0 -1
  244. package/dist/admin/chunks/tr-BmrcZCoj.js.map +0 -1
  245. package/dist/admin/chunks/tr-n7J_y4Bh.js.map +0 -1
  246. package/dist/admin/chunks/uk-CQim5OiT.js +0 -4
  247. package/dist/admin/chunks/uk-CQim5OiT.js.map +0 -1
  248. package/dist/admin/chunks/uk-nM0yP_CK.js +0 -6
  249. package/dist/admin/chunks/uk-nM0yP_CK.js.map +0 -1
  250. package/dist/admin/chunks/vi-CO9gCtmD.js.map +0 -1
  251. package/dist/admin/chunks/vi-DjJBc-ms.js +0 -6
  252. package/dist/admin/chunks/vi-DjJBc-ms.js.map +0 -1
  253. package/dist/admin/chunks/zh-9wNbbqde.js.map +0 -1
  254. package/dist/admin/chunks/zh-CZQ4DV5L.js.map +0 -1
  255. package/dist/admin/chunks/zh-Hans-ChWc00HT.js.map +0 -1
  256. package/dist/admin/chunks/zh-Hans-D0bb9tfC.js.map +0 -1
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+
3
+ var strapiAdmin = require('@strapi/admin/strapi-admin');
4
+ var yup = require('yup');
5
+
6
+ function _interopNamespaceDefault(e) {
7
+ var n = Object.create(null);
8
+ if (e) {
9
+ Object.keys(e).forEach(function (k) {
10
+ if (k !== 'default') {
11
+ var d = Object.getOwnPropertyDescriptor(e, k);
12
+ Object.defineProperty(n, k, d.get ? d : {
13
+ enumerable: true,
14
+ get: function () { return e[k]; }
15
+ });
16
+ }
17
+ });
18
+ }
19
+ n.default = e;
20
+ return Object.freeze(n);
21
+ }
22
+
23
+ var yup__namespace = /*#__PURE__*/_interopNamespaceDefault(yup);
24
+
25
+ const schema = yup__namespace.object().shape({
26
+ email: yup__namespace.string().email(strapiAdmin.translatedErrors.email.id).required(strapiAdmin.translatedErrors.required.id)
27
+ });
28
+
29
+ exports.schema = schema;
30
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sources":["../../../admin/src/utils/schema.ts"],"sourcesContent":["import { translatedErrors } from '@strapi/admin/strapi-admin';\nimport * as yup from 'yup';\n\nexport const schema = yup.object().shape({\n email: yup.string().email(translatedErrors.email.id).required(translatedErrors.required.id),\n});\n"],"names":["schema","yup","object","shape","email","string","translatedErrors","id","required"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;MAGaA,MAASC,GAAAA,cAAAA,CAAIC,MAAM,EAAA,CAAGC,KAAK,CAAC;AACvCC,IAAAA,KAAAA,EAAOH,cAAII,CAAAA,MAAM,EAAGD,CAAAA,KAAK,CAACE,4BAAiBF,CAAAA,KAAK,CAACG,EAAE,EAAEC,QAAQ,CAACF,4BAAiBE,CAAAA,QAAQ,CAACD,EAAE;AAC5F,CAAG;;;;"}
@@ -0,0 +1,9 @@
1
+ import { translatedErrors } from '@strapi/admin/strapi-admin';
2
+ import * as yup from 'yup';
3
+
4
+ const schema = yup.object().shape({
5
+ email: yup.string().email(translatedErrors.email.id).required(translatedErrors.required.id)
6
+ });
7
+
8
+ export { schema };
9
+ //# sourceMappingURL=schema.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.mjs","sources":["../../../admin/src/utils/schema.ts"],"sourcesContent":["import { translatedErrors } from '@strapi/admin/strapi-admin';\nimport * as yup from 'yup';\n\nexport const schema = yup.object().shape({\n email: yup.string().email(translatedErrors.email.id).required(translatedErrors.required.id),\n});\n"],"names":["schema","yup","object","shape","email","string","translatedErrors","id","required"],"mappings":";;;MAGaA,MAASC,GAAAA,GAAAA,CAAIC,MAAM,EAAA,CAAGC,KAAK,CAAC;AACvCC,IAAAA,KAAAA,EAAOH,GAAII,CAAAA,MAAM,EAAGD,CAAAA,KAAK,CAACE,gBAAiBF,CAAAA,KAAK,CAACG,EAAE,EAAEC,QAAQ,CAACF,gBAAiBE,CAAAA,QAAQ,CAACD,EAAE;AAC5F,CAAG;;;;"}
@@ -0,0 +1,40 @@
1
+ 'use strict';
2
+
3
+ const createProvider = (emailConfig)=>{
4
+ const providerName = emailConfig.provider.toLowerCase();
5
+ let provider;
6
+ let modulePath;
7
+ try {
8
+ modulePath = require.resolve(`@strapi/provider-email-${providerName}`);
9
+ } catch (error) {
10
+ if (error !== null && typeof error === 'object' && 'code' in error && error.code === 'MODULE_NOT_FOUND') {
11
+ modulePath = providerName;
12
+ } else {
13
+ throw error;
14
+ }
15
+ }
16
+ try {
17
+ provider = require(modulePath);
18
+ } catch (err) {
19
+ throw new Error(`Could not load email provider "${providerName}".`);
20
+ }
21
+ return provider.init(emailConfig.providerOptions, emailConfig.settings);
22
+ };
23
+ const bootstrap = async ({ strapi })=>{
24
+ const emailConfig = strapi.config.get('plugin::email');
25
+ strapi.plugin('email').provider = createProvider(emailConfig);
26
+ // Add permissions
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 strapi.service('admin::permission').actionProvider.registerMany(actions);
37
+ };
38
+
39
+ exports.bootstrap = bootstrap;
40
+ //# sourceMappingURL=bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.js","sources":["../../server/src/bootstrap.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"],"names":["createProvider","emailConfig","providerName","provider","toLowerCase","modulePath","require","resolve","error","code","err","Error","init","providerOptions","settings","bootstrap","strapi","config","get","plugin","actions","section","category","displayName","uid","pluginName","service","actionProvider","registerMany"],"mappings":";;AAgBA,MAAMA,iBAAiB,CAACC,WAAAA,GAAAA;AACtB,IAAA,MAAMC,YAAeD,GAAAA,WAAAA,CAAYE,QAAQ,CAACC,WAAW,EAAA;IACrD,IAAID,QAAAA;IAEJ,IAAIE,UAAAA;IACJ,IAAI;AACFA,QAAAA,UAAAA,GAAaC,QAAQC,OAAO,CAAC,CAAC,uBAAuB,EAAEL,aAAa,CAAC,CAAA;AACvE,KAAA,CAAE,OAAOM,KAAO,EAAA;QACd,IACEA,KAAAA,KAAU,IACV,IAAA,OAAOA,KAAU,KAAA,QAAA,IACjB,UAAUA,KACVA,IAAAA,KAAAA,CAAMC,IAAI,KAAK,kBACf,EAAA;YACAJ,UAAaH,GAAAA,YAAAA;SACR,MAAA;YACL,MAAMM,KAAAA;AACR;AACF;IAEA,IAAI;AACFL,QAAAA,QAAAA,GAAWG,OAAQD,CAAAA,UAAAA,CAAAA;AACrB,KAAA,CAAE,OAAOK,GAAK,EAAA;AACZ,QAAA,MAAM,IAAIC,KAAM,CAAA,CAAC,+BAA+B,EAAET,YAAAA,CAAa,EAAE,CAAC,CAAA;AACpE;AAEA,IAAA,OAAOC,SAASS,IAAI,CAACX,YAAYY,eAAe,EAAEZ,YAAYa,QAAQ,CAAA;AACxE,CAAA;AAEaC,MAAAA,SAAAA,GAAY,OAAO,EAAEC,MAAM,EAA2B,GAAA;AACjE,IAAA,MAAMf,WAA2Be,GAAAA,MAAAA,CAAOC,MAAM,CAACC,GAAG,CAAC,eAAA,CAAA;AACnDF,IAAAA,MAAAA,CAAOG,MAAM,CAAC,OAAShB,CAAAA,CAAAA,QAAQ,GAAGH,cAAeC,CAAAA,WAAAA,CAAAA;;AAGjD,IAAA,MAAMmB,OAAU,GAAA;AACd,QAAA;YACEC,OAAS,EAAA,UAAA;YACTC,QAAU,EAAA,OAAA;YACVC,WAAa,EAAA,gCAAA;YACbC,GAAK,EAAA,eAAA;YACLC,UAAY,EAAA;AACd;AACD,KAAA;AAED,IAAA,MAAMT,OAAOU,OAAO,CAAC,qBAAqBC,cAAc,CAACC,YAAY,CAACR,OAAAA,CAAAA;AACxE;;;;"}
@@ -0,0 +1,38 @@
1
+ const createProvider = (emailConfig)=>{
2
+ const providerName = emailConfig.provider.toLowerCase();
3
+ let provider;
4
+ let modulePath;
5
+ try {
6
+ modulePath = require.resolve(`@strapi/provider-email-${providerName}`);
7
+ } catch (error) {
8
+ if (error !== null && typeof error === 'object' && 'code' in error && error.code === 'MODULE_NOT_FOUND') {
9
+ modulePath = providerName;
10
+ } else {
11
+ throw error;
12
+ }
13
+ }
14
+ try {
15
+ provider = require(modulePath);
16
+ } catch (err) {
17
+ throw new Error(`Could not load email provider "${providerName}".`);
18
+ }
19
+ return provider.init(emailConfig.providerOptions, emailConfig.settings);
20
+ };
21
+ const bootstrap = async ({ strapi })=>{
22
+ const emailConfig = strapi.config.get('plugin::email');
23
+ strapi.plugin('email').provider = createProvider(emailConfig);
24
+ // Add permissions
25
+ const actions = [
26
+ {
27
+ section: 'settings',
28
+ category: 'email',
29
+ displayName: 'Access the Email Settings page',
30
+ uid: 'settings.read',
31
+ pluginName: 'email'
32
+ }
33
+ ];
34
+ await strapi.service('admin::permission').actionProvider.registerMany(actions);
35
+ };
36
+
37
+ export { bootstrap };
38
+ //# sourceMappingURL=bootstrap.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.mjs","sources":["../../server/src/bootstrap.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"],"names":["createProvider","emailConfig","providerName","provider","toLowerCase","modulePath","require","resolve","error","code","err","Error","init","providerOptions","settings","bootstrap","strapi","config","get","plugin","actions","section","category","displayName","uid","pluginName","service","actionProvider","registerMany"],"mappings":"AAgBA,MAAMA,iBAAiB,CAACC,WAAAA,GAAAA;AACtB,IAAA,MAAMC,YAAeD,GAAAA,WAAAA,CAAYE,QAAQ,CAACC,WAAW,EAAA;IACrD,IAAID,QAAAA;IAEJ,IAAIE,UAAAA;IACJ,IAAI;AACFA,QAAAA,UAAAA,GAAaC,QAAQC,OAAO,CAAC,CAAC,uBAAuB,EAAEL,aAAa,CAAC,CAAA;AACvE,KAAA,CAAE,OAAOM,KAAO,EAAA;QACd,IACEA,KAAAA,KAAU,IACV,IAAA,OAAOA,KAAU,KAAA,QAAA,IACjB,UAAUA,KACVA,IAAAA,KAAAA,CAAMC,IAAI,KAAK,kBACf,EAAA;YACAJ,UAAaH,GAAAA,YAAAA;SACR,MAAA;YACL,MAAMM,KAAAA;AACR;AACF;IAEA,IAAI;AACFL,QAAAA,QAAAA,GAAWG,OAAQD,CAAAA,UAAAA,CAAAA;AACrB,KAAA,CAAE,OAAOK,GAAK,EAAA;AACZ,QAAA,MAAM,IAAIC,KAAM,CAAA,CAAC,+BAA+B,EAAET,YAAAA,CAAa,EAAE,CAAC,CAAA;AACpE;AAEA,IAAA,OAAOC,SAASS,IAAI,CAACX,YAAYY,eAAe,EAAEZ,YAAYa,QAAQ,CAAA;AACxE,CAAA;AAEaC,MAAAA,SAAAA,GAAY,OAAO,EAAEC,MAAM,EAA2B,GAAA;AACjE,IAAA,MAAMf,WAA2Be,GAAAA,MAAAA,CAAOC,MAAM,CAACC,GAAG,CAAC,eAAA,CAAA;AACnDF,IAAAA,MAAAA,CAAOG,MAAM,CAAC,OAAShB,CAAAA,CAAAA,QAAQ,GAAGH,cAAeC,CAAAA,WAAAA,CAAAA;;AAGjD,IAAA,MAAMmB,OAAU,GAAA;AACd,QAAA;YACEC,OAAS,EAAA,UAAA;YACTC,QAAU,EAAA,OAAA;YACVC,WAAa,EAAA,gCAAA;YACbC,GAAK,EAAA,eAAA;YACLC,UAAY,EAAA;AACd;AACD,KAAA;AAED,IAAA,MAAMT,OAAOU,OAAO,CAAC,qBAAqBC,cAAc,CAACC,YAAY,CAACR,OAAAA,CAAAA;AACxE;;;;"}
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ const config = {
4
+ default: {
5
+ provider: 'sendmail',
6
+ providerOptions: {},
7
+ settings: {
8
+ defaultFrom: 'Strapi <no-reply@strapi.io>'
9
+ }
10
+ },
11
+ validator () {}
12
+ };
13
+
14
+ exports.config = config;
15
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sources":["../../server/src/config.ts"],"sourcesContent":["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"],"names":["config","default","provider","providerOptions","settings","defaultFrom","validator"],"mappings":";;MAEaA,MAAuB,GAAA;IAClCC,OAAS,EAAA;QACPC,QAAU,EAAA,UAAA;AACVC,QAAAA,eAAAA,EAAiB,EAAC;QAClBC,QAAU,EAAA;YACRC,WAAa,EAAA;AACf;AACF,KAAA;IACAC,SAAa,CAAA,GAAA;AACf;;;;"}
@@ -0,0 +1,13 @@
1
+ const config = {
2
+ default: {
3
+ provider: 'sendmail',
4
+ providerOptions: {},
5
+ settings: {
6
+ defaultFrom: 'Strapi <no-reply@strapi.io>'
7
+ }
8
+ },
9
+ validator () {}
10
+ };
11
+
12
+ export { config };
13
+ //# sourceMappingURL=config.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.mjs","sources":["../../server/src/config.ts"],"sourcesContent":["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"],"names":["config","default","provider","providerOptions","settings","defaultFrom","validator"],"mappings":"MAEaA,MAAuB,GAAA;IAClCC,OAAS,EAAA;QACPC,QAAU,EAAA,UAAA;AACVC,QAAAA,eAAAA,EAAiB,EAAC;QAClBC,QAAU,EAAA;YACRC,WAAa,EAAA;AACf;AACF,KAAA;IACAC,SAAa,CAAA,GAAA;AACf;;;;"}
@@ -0,0 +1,66 @@
1
+ 'use strict';
2
+
3
+ var fp = require('lodash/fp');
4
+ var utils = require('@strapi/utils');
5
+
6
+ const { ApplicationError } = utils.errors;
7
+ /**
8
+ * Email.js controller
9
+ *
10
+ * @description: A set of functions called "actions" of the `email` plugin.
11
+ */ const emailController = {
12
+ async send (ctx) {
13
+ const options = ctx.request.body;
14
+ try {
15
+ await strapi.plugin('email').service('email').send(options);
16
+ } catch (error) {
17
+ if (error instanceof Error) {
18
+ if ('statusCode' in error && error.statusCode === 400) {
19
+ throw new ApplicationError(error.message);
20
+ } else {
21
+ throw new Error(`Couldn't send email: ${error.message}.`);
22
+ }
23
+ }
24
+ }
25
+ // Send 200 `ok`
26
+ ctx.send({});
27
+ },
28
+ async test (ctx) {
29
+ const { to } = ctx.request.body;
30
+ if (!to) {
31
+ throw new ApplicationError('No recipient(s) are given');
32
+ }
33
+ const email = {
34
+ to,
35
+ subject: `Strapi test mail to: ${to}`,
36
+ 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`
37
+ };
38
+ try {
39
+ await strapi.plugin('email').service('email').send(email);
40
+ } catch (error) {
41
+ if (error instanceof Error) {
42
+ if ('statusCode' in error && error.statusCode === 400) {
43
+ throw new ApplicationError(error.message);
44
+ } else {
45
+ throw new Error(`Couldn't send test email: ${error.message}.`);
46
+ }
47
+ }
48
+ }
49
+ // Send 200 `ok`
50
+ ctx.send({});
51
+ },
52
+ async getSettings (ctx) {
53
+ const config = strapi.plugin('email').service('email').getProviderSettings();
54
+ ctx.send({
55
+ config: fp.pick([
56
+ 'provider',
57
+ 'settings.defaultFrom',
58
+ 'settings.defaultReplyTo',
59
+ 'settings.testAddress'
60
+ ], config)
61
+ });
62
+ }
63
+ };
64
+
65
+ module.exports = emailController;
66
+ //# sourceMappingURL=email.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.js","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,YAAAA;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,OACN,CAAA;AAAC,gBAAA,UAAA;AAAY,gBAAA,sBAAA;AAAwB,gBAAA,yBAAA;AAA2B,gBAAA;aAAuB,EACvFJ,MAAAA;AAEJ,SAAA,CAAA;AACF;AACF;;;;"}
@@ -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,253 +1,19 @@
1
1
  'use strict';
2
2
 
3
- var _ = require('lodash');
4
- var utils = require('@strapi/utils');
5
- var fp = require('lodash/fp');
6
-
7
- function _interopNamespaceDefault(e) {
8
- var n = Object.create(null);
9
- if (e) {
10
- Object.keys(e).forEach(function (k) {
11
- if (k !== 'default') {
12
- var d = Object.getOwnPropertyDescriptor(e, k);
13
- Object.defineProperty(n, k, d.get ? d : {
14
- enumerable: true,
15
- get: function () { return e[k]; }
16
- });
17
- }
18
- });
19
- }
20
- n.default = e;
21
- return Object.freeze(n);
22
- }
23
-
24
- var ___namespace = /*#__PURE__*/_interopNamespaceDefault(_);
25
-
26
- const createProvider = (emailConfig)=>{
27
- const providerName = emailConfig.provider.toLowerCase();
28
- let provider;
29
- let modulePath;
30
- try {
31
- modulePath = require.resolve(`@strapi/provider-email-${providerName}`);
32
- } catch (error) {
33
- if (error !== null && typeof error === 'object' && 'code' in error && error.code === 'MODULE_NOT_FOUND') {
34
- modulePath = providerName;
35
- } else {
36
- throw error;
37
- }
38
- }
39
- try {
40
- provider = require(modulePath);
41
- } catch (err) {
42
- throw new Error(`Could not load email provider "${providerName}".`);
43
- }
44
- return provider.init(emailConfig.providerOptions, emailConfig.settings);
45
- };
46
- const bootstrap = async ({ strapi })=>{
47
- const emailConfig = strapi.config.get('plugin::email');
48
- strapi.plugin('email').provider = createProvider(emailConfig);
49
- // Add permissions
50
- const actions = [
51
- {
52
- section: 'settings',
53
- category: 'email',
54
- displayName: 'Access the Email Settings page',
55
- uid: 'settings.read',
56
- pluginName: 'email'
57
- }
58
- ];
59
- await strapi.service('admin::permission').actionProvider.registerMany(actions);
60
- };
61
-
62
- const { createStrictInterpolationRegExp } = utils.template;
63
- const getProviderSettings = ()=>strapi.config.get('plugin::email');
64
- const send = async (options)=>strapi.plugin('email').provider.send(options);
65
- /**
66
- * fill subject, text and html using lodash template
67
- * @param {object} emailOptions - to, from and replyto...
68
- * @param {object} emailTemplate - object containing attributes to fill
69
- * @param {object} data - data used to fill the template
70
- * @returns {{ subject, text, subject }}
71
- */ const sendTemplatedEmail = (emailOptions, emailTemplate, data)=>{
72
- const attributes = [
73
- 'subject',
74
- 'text',
75
- 'html'
76
- ];
77
- const missingAttributes = ___namespace.difference(attributes, Object.keys(emailTemplate));
78
- if (missingAttributes.length > 0) {
79
- throw new Error(`Following attributes are missing from your email template : ${missingAttributes.join(', ')}`);
80
- }
81
- const allowedInterpolationVariables = utils.objects.keysDeep(data);
82
- const interpolate = createStrictInterpolationRegExp(allowedInterpolationVariables, 'g');
83
- const templatedAttributes = attributes.reduce((compiled, attribute)=>emailTemplate[attribute] ? Object.assign(compiled, {
84
- [attribute]: ___namespace.template(emailTemplate[attribute], {
85
- interpolate
86
- })(data)
87
- }) : compiled, {});
88
- return strapi.plugin('email').provider.send({
89
- ...emailOptions,
90
- ...templatedAttributes
91
- });
92
- };
93
- const emailService = ()=>({
94
- getProviderSettings,
95
- send,
96
- sendTemplatedEmail
97
- });
98
-
99
- const services = {
100
- email: emailService
101
- };
102
-
103
- var admin = {
104
- type: 'admin',
105
- routes: [
106
- {
107
- method: 'POST',
108
- path: '/',
109
- handler: 'email.send',
110
- config: {
111
- policies: [
112
- 'admin::isAuthenticatedAdmin'
113
- ]
114
- }
115
- },
116
- {
117
- method: 'POST',
118
- path: '/test',
119
- handler: 'email.test',
120
- config: {
121
- policies: [
122
- 'admin::isAuthenticatedAdmin',
123
- {
124
- name: 'admin::hasPermissions',
125
- config: {
126
- actions: [
127
- 'plugin::email.settings.read'
128
- ]
129
- }
130
- }
131
- ]
132
- }
133
- },
134
- {
135
- method: 'GET',
136
- path: '/settings',
137
- handler: 'email.getSettings',
138
- config: {
139
- policies: [
140
- 'admin::isAuthenticatedAdmin',
141
- {
142
- name: 'admin::hasPermissions',
143
- config: {
144
- actions: [
145
- 'plugin::email.settings.read'
146
- ]
147
- }
148
- }
149
- ]
150
- }
151
- }
152
- ]
153
- };
154
-
155
- var contentApi = {
156
- type: 'content-api',
157
- routes: [
158
- {
159
- method: 'POST',
160
- path: '/',
161
- handler: 'email.send'
162
- }
163
- ]
164
- };
165
-
166
- const routes = {
167
- admin,
168
- 'content-api': contentApi
169
- };
170
-
171
- const { ApplicationError } = utils.errors;
172
- /**
173
- * Email.js controller
174
- *
175
- * @description: A set of functions called "actions" of the `email` plugin.
176
- */ const emailController = {
177
- async send (ctx) {
178
- const options = ctx.request.body;
179
- try {
180
- await strapi.plugin('email').service('email').send(options);
181
- } catch (error) {
182
- if (error instanceof Error) {
183
- if ('statusCode' in error && error.statusCode === 400) {
184
- throw new ApplicationError(error.message);
185
- } else {
186
- throw new Error(`Couldn't send email: ${error.message}.`);
187
- }
188
- }
189
- }
190
- // Send 200 `ok`
191
- ctx.send({});
192
- },
193
- async test (ctx) {
194
- const { to } = ctx.request.body;
195
- if (!to) {
196
- throw new ApplicationError('No recipient(s) are given');
197
- }
198
- const email = {
199
- to,
200
- subject: `Strapi test mail to: ${to}`,
201
- 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`
202
- };
203
- try {
204
- await strapi.plugin('email').service('email').send(email);
205
- } catch (error) {
206
- if (error instanceof Error) {
207
- if ('statusCode' in error && error.statusCode === 400) {
208
- throw new ApplicationError(error.message);
209
- } else {
210
- throw new Error(`Couldn't send test email: ${error.message}.`);
211
- }
212
- }
213
- }
214
- // Send 200 `ok`
215
- ctx.send({});
216
- },
217
- async getSettings (ctx) {
218
- const config = strapi.plugin('email').service('email').getProviderSettings();
219
- ctx.send({
220
- config: fp.pick([
221
- 'provider',
222
- 'settings.defaultFrom',
223
- 'settings.defaultReplyTo',
224
- 'settings.testAddress'
225
- ], config)
226
- });
227
- }
228
- };
229
-
230
- const controllers = {
231
- email: emailController
232
- };
233
-
234
- const config = {
235
- default: {
236
- provider: 'sendmail',
237
- providerOptions: {},
238
- settings: {
239
- defaultFrom: 'Strapi <no-reply@strapi.io>'
240
- }
241
- },
242
- validator () {}
243
- };
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');
244
9
 
245
10
  var index = {
246
- bootstrap,
247
- services,
248
- routes,
249
- controllers,
250
- config
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
251
17
  };
252
18
 
253
19
  module.exports = index;