@strapi/email 0.0.0-next.e61eff51f9834ffdef16bdc236aecab5f837723b → 0.0.0-next.e7ae51b01f78ddeaa09c4aa3e3882f466a5b3188
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.
- package/dist/admin/constants.js +17 -0
- package/dist/admin/constants.js.map +1 -0
- package/dist/admin/constants.mjs +15 -0
- package/dist/admin/constants.mjs.map +1 -0
- package/dist/admin/index.js +86 -2
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +87 -1
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/{chunks/Settings-BBq0I4Nx.js → pages/Settings.js} +21 -38
- package/dist/admin/pages/Settings.js.map +1 -0
- package/dist/admin/{chunks/Settings-PuQuVXHu.mjs → pages/Settings.mjs} +18 -35
- package/dist/admin/pages/Settings.mjs.map +1 -0
- package/dist/admin/translations/ar.json.js +6 -0
- package/dist/admin/translations/ar.json.js.map +1 -0
- package/dist/admin/translations/ar.json.mjs +4 -0
- package/dist/admin/translations/ar.json.mjs.map +1 -0
- package/dist/admin/translations/cs.json.js +6 -0
- package/dist/admin/translations/cs.json.js.map +1 -0
- package/dist/admin/translations/cs.json.mjs +4 -0
- package/dist/admin/translations/cs.json.mjs.map +1 -0
- package/dist/admin/translations/de.json.js +6 -0
- package/dist/admin/translations/de.json.js.map +1 -0
- package/dist/admin/translations/de.json.mjs +4 -0
- package/dist/admin/translations/de.json.mjs.map +1 -0
- package/dist/admin/{chunks/dk-DW7WecjY.js → translations/dk.json.js} +2 -2
- package/dist/admin/translations/dk.json.js.map +1 -0
- package/dist/admin/{chunks/dk-B5IuEReS.mjs → translations/dk.json.mjs} +1 -1
- package/dist/admin/translations/dk.json.mjs.map +1 -0
- package/dist/admin/{chunks/en-DacnIsXb.js → translations/en.json.js} +3 -1
- package/dist/admin/translations/en.json.js.map +1 -0
- package/dist/admin/{chunks/en-Dxg2wKLN.mjs → translations/en.json.mjs} +1 -1
- package/dist/admin/translations/en.json.mjs.map +1 -0
- package/dist/admin/{chunks/es-DxWi6BKM.js → translations/es.json.js} +2 -2
- package/dist/admin/translations/es.json.js.map +1 -0
- package/dist/admin/{chunks/es-fdc21M_E.mjs → translations/es.json.mjs} +1 -1
- package/dist/admin/translations/es.json.mjs.map +1 -0
- package/dist/admin/translations/fr.json.js +6 -0
- package/dist/admin/translations/fr.json.js.map +1 -0
- package/dist/admin/translations/fr.json.mjs +4 -0
- package/dist/admin/translations/fr.json.mjs.map +1 -0
- package/dist/admin/translations/id.json.js +6 -0
- package/dist/admin/translations/id.json.js.map +1 -0
- package/dist/admin/translations/id.json.mjs +4 -0
- package/dist/admin/translations/id.json.mjs.map +1 -0
- package/dist/admin/translations/it.json.js +6 -0
- package/dist/admin/translations/it.json.js.map +1 -0
- package/dist/admin/translations/it.json.mjs +4 -0
- package/dist/admin/translations/it.json.mjs.map +1 -0
- package/dist/admin/{chunks/ja-DdOPbVbe.js → translations/ja.json.js} +2 -2
- package/dist/admin/translations/ja.json.js.map +1 -0
- package/dist/admin/{chunks/ja-CVosbw2M.mjs → translations/ja.json.mjs} +1 -1
- package/dist/admin/translations/ja.json.mjs.map +1 -0
- package/dist/admin/{chunks/ko-CaWqWfC8.js → translations/ko.json.js} +2 -2
- package/dist/admin/translations/ko.json.js.map +1 -0
- package/dist/admin/{chunks/ko-B8SR--vZ.mjs → translations/ko.json.mjs} +1 -1
- package/dist/admin/translations/ko.json.mjs.map +1 -0
- package/dist/admin/translations/ms.json.js +6 -0
- package/dist/admin/translations/ms.json.js.map +1 -0
- package/dist/admin/translations/ms.json.mjs +4 -0
- package/dist/admin/translations/ms.json.mjs.map +1 -0
- package/dist/admin/translations/nl.json.js +6 -0
- package/dist/admin/translations/nl.json.js.map +1 -0
- package/dist/admin/translations/nl.json.mjs +4 -0
- package/dist/admin/translations/nl.json.mjs.map +1 -0
- package/dist/admin/{chunks/pl-CO-R08qV.js → translations/pl.json.js} +2 -2
- package/dist/admin/translations/pl.json.js.map +1 -0
- package/dist/admin/{chunks/pl-Bve39qfV.mjs → translations/pl.json.mjs} +1 -1
- package/dist/admin/translations/pl.json.mjs.map +1 -0
- package/dist/admin/translations/pt-BR.json.js +6 -0
- package/dist/admin/translations/pt-BR.json.js.map +1 -0
- package/dist/admin/{chunks/pt-BR-DPqDE4wA.mjs → translations/pt-BR.json.mjs} +1 -1
- package/dist/admin/translations/pt-BR.json.mjs.map +1 -0
- package/dist/admin/{chunks/pt-BzFac2P5.js → translations/pt.json.js} +3 -1
- package/dist/admin/translations/pt.json.js.map +1 -0
- package/dist/admin/{chunks/pt-DLqF-Sb4.mjs → translations/pt.json.mjs} +1 -1
- package/dist/admin/translations/pt.json.mjs.map +1 -0
- package/dist/admin/translations/ru.json.js +6 -0
- package/dist/admin/translations/ru.json.js.map +1 -0
- package/dist/admin/translations/ru.json.mjs +4 -0
- package/dist/admin/translations/ru.json.mjs.map +1 -0
- package/dist/admin/translations/sk.json.js +6 -0
- package/dist/admin/translations/sk.json.js.map +1 -0
- package/dist/admin/translations/sk.json.mjs +4 -0
- package/dist/admin/translations/sk.json.mjs.map +1 -0
- package/dist/admin/translations/th.json.js +6 -0
- package/dist/admin/translations/th.json.js.map +1 -0
- package/dist/admin/translations/th.json.mjs +4 -0
- package/dist/admin/translations/th.json.mjs.map +1 -0
- package/dist/admin/{chunks/tr-n7J_y4Bh.js → translations/tr.json.js} +3 -1
- package/dist/admin/translations/tr.json.js.map +1 -0
- package/dist/admin/{chunks/tr-BmrcZCoj.mjs → translations/tr.json.mjs} +1 -1
- package/dist/admin/translations/tr.json.mjs.map +1 -0
- package/dist/admin/{chunks/uk-DWA4QHtk.js → translations/uk.json.js} +3 -1
- package/dist/admin/translations/uk.json.js.map +1 -0
- package/dist/admin/{chunks/uk-Dsq-0GyK.mjs → translations/uk.json.mjs} +1 -1
- package/dist/admin/translations/uk.json.mjs.map +1 -0
- package/dist/admin/translations/vi.json.js +6 -0
- package/dist/admin/translations/vi.json.js.map +1 -0
- package/dist/admin/translations/vi.json.mjs +4 -0
- package/dist/admin/translations/vi.json.mjs.map +1 -0
- package/dist/admin/{chunks/zh-Hans-D0bb9tfC.js → translations/zh-Hans.json.js} +3 -1
- package/dist/admin/translations/zh-Hans.json.js.map +1 -0
- package/dist/admin/{chunks/zh-Hans-ChWc00HT.mjs → translations/zh-Hans.json.mjs} +1 -1
- package/dist/admin/translations/zh-Hans.json.mjs.map +1 -0
- package/dist/admin/{chunks/zh-9wNbbqde.js → translations/zh.json.js} +3 -1
- package/dist/admin/translations/zh.json.js.map +1 -0
- package/dist/admin/{chunks/zh-CZQ4DV5L.mjs → translations/zh.json.mjs} +1 -1
- package/dist/admin/translations/zh.json.mjs.map +1 -0
- package/dist/admin/utils/getYupInnerErrors.js +23 -0
- package/dist/admin/utils/getYupInnerErrors.js.map +1 -0
- package/dist/admin/utils/getYupInnerErrors.mjs +21 -0
- package/dist/admin/utils/getYupInnerErrors.mjs.map +1 -0
- package/dist/admin/utils/prefixPluginTranslations.js +11 -0
- package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
- package/dist/admin/utils/prefixPluginTranslations.mjs +9 -0
- package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
- package/dist/admin/utils/schema.js +30 -0
- package/dist/admin/utils/schema.js.map +1 -0
- package/dist/admin/utils/schema.mjs +9 -0
- package/dist/admin/utils/schema.mjs.map +1 -0
- package/dist/server/bootstrap.js +44 -0
- package/dist/server/bootstrap.js.map +1 -0
- package/dist/server/bootstrap.mjs +42 -0
- package/dist/server/bootstrap.mjs.map +1 -0
- package/dist/server/config.js +15 -0
- package/dist/server/config.js.map +1 -0
- package/dist/server/config.mjs +13 -0
- package/dist/server/config.mjs.map +1 -0
- package/dist/server/controllers/email.js +66 -0
- package/dist/server/controllers/email.js.map +1 -0
- package/dist/server/controllers/email.mjs +64 -0
- package/dist/server/controllers/email.mjs.map +1 -0
- package/dist/server/controllers/index.js +10 -0
- package/dist/server/controllers/index.js.map +1 -0
- package/dist/server/controllers/index.mjs +8 -0
- package/dist/server/controllers/index.mjs.map +1 -0
- package/dist/server/index.js +12 -281
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +6 -256
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/middlewares/index.js +13 -0
- package/dist/server/middlewares/index.js.map +1 -0
- package/dist/server/middlewares/index.mjs +8 -0
- package/dist/server/middlewares/index.mjs.map +1 -0
- package/dist/server/middlewares/rateLimit.js +37 -0
- package/dist/server/middlewares/rateLimit.js.map +1 -0
- package/dist/server/middlewares/rateLimit.mjs +35 -0
- package/dist/server/middlewares/rateLimit.mjs.map +1 -0
- package/dist/server/routes/admin.js +56 -0
- package/dist/server/routes/admin.js.map +1 -0
- package/dist/server/routes/admin.mjs +54 -0
- package/dist/server/routes/admin.mjs.map +1 -0
- package/dist/server/routes/content-api.js +24 -0
- package/dist/server/routes/content-api.js.map +1 -0
- package/dist/server/routes/content-api.mjs +22 -0
- package/dist/server/routes/content-api.mjs.map +1 -0
- package/dist/server/routes/index.js +12 -0
- package/dist/server/routes/index.js.map +1 -0
- package/dist/server/routes/index.mjs +10 -0
- package/dist/server/routes/index.mjs.map +1 -0
- package/dist/server/routes/validation/email.js +46 -0
- package/dist/server/routes/validation/email.js.map +1 -0
- package/dist/server/routes/validation/email.mjs +25 -0
- package/dist/server/routes/validation/email.mjs.map +1 -0
- package/dist/server/services/email.js +63 -0
- package/dist/server/services/email.js.map +1 -0
- package/dist/server/services/email.mjs +42 -0
- package/dist/server/services/email.mjs.map +1 -0
- package/dist/server/services/index.js +10 -0
- package/dist/server/services/index.js.map +1 -0
- package/dist/server/services/index.mjs +8 -0
- package/dist/server/services/index.mjs.map +1 -0
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +3 -7
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/routes/content-api.d.ts +5 -8
- package/dist/server/src/routes/content-api.d.ts.map +1 -1
- package/dist/server/src/routes/index.d.ts +3 -7
- package/dist/server/src/routes/index.d.ts.map +1 -1
- package/dist/server/src/routes/validation/email.d.ts +18 -0
- package/dist/server/src/routes/validation/email.d.ts.map +1 -0
- package/dist/server/src/routes/validation/index.d.ts +2 -0
- package/dist/server/src/routes/validation/index.d.ts.map +1 -0
- package/package.json +11 -10
- package/dist/admin/chunks/Settings-BBq0I4Nx.js.map +0 -1
- package/dist/admin/chunks/Settings-PuQuVXHu.mjs.map +0 -1
- package/dist/admin/chunks/ar-BDHMRt_b.js +0 -6
- package/dist/admin/chunks/ar-BDHMRt_b.js.map +0 -1
- package/dist/admin/chunks/ar-JWJKrFM-.mjs +0 -4
- package/dist/admin/chunks/ar-JWJKrFM-.mjs.map +0 -1
- package/dist/admin/chunks/cs-BZCMeXgq.mjs +0 -4
- package/dist/admin/chunks/cs-BZCMeXgq.mjs.map +0 -1
- package/dist/admin/chunks/cs-DrOn3eR2.js +0 -6
- package/dist/admin/chunks/cs-DrOn3eR2.js.map +0 -1
- package/dist/admin/chunks/de-BlqtkWR3.js +0 -6
- package/dist/admin/chunks/de-BlqtkWR3.js.map +0 -1
- package/dist/admin/chunks/de-CGlAhulB.mjs +0 -4
- package/dist/admin/chunks/de-CGlAhulB.mjs.map +0 -1
- package/dist/admin/chunks/dk-B5IuEReS.mjs.map +0 -1
- package/dist/admin/chunks/dk-DW7WecjY.js.map +0 -1
- package/dist/admin/chunks/en-DacnIsXb.js.map +0 -1
- package/dist/admin/chunks/en-Dxg2wKLN.mjs.map +0 -1
- package/dist/admin/chunks/es-DxWi6BKM.js.map +0 -1
- package/dist/admin/chunks/es-fdc21M_E.mjs.map +0 -1
- package/dist/admin/chunks/fr-BsENAPSS.js +0 -6
- package/dist/admin/chunks/fr-BsENAPSS.js.map +0 -1
- package/dist/admin/chunks/fr-DZjvYp6C.mjs +0 -4
- package/dist/admin/chunks/fr-DZjvYp6C.mjs.map +0 -1
- package/dist/admin/chunks/id-BORUwKHm.js +0 -6
- package/dist/admin/chunks/id-BORUwKHm.js.map +0 -1
- package/dist/admin/chunks/id-C1eDxX9W.mjs +0 -4
- package/dist/admin/chunks/id-C1eDxX9W.mjs.map +0 -1
- package/dist/admin/chunks/index-BPAZGe7V.mjs +0 -105
- package/dist/admin/chunks/index-BPAZGe7V.mjs.map +0 -1
- package/dist/admin/chunks/index-uY5sPjIN.js +0 -108
- package/dist/admin/chunks/index-uY5sPjIN.js.map +0 -1
- package/dist/admin/chunks/it-DVlJ2EhA.mjs +0 -4
- package/dist/admin/chunks/it-DVlJ2EhA.mjs.map +0 -1
- package/dist/admin/chunks/it-eAGyIQ1x.js +0 -6
- package/dist/admin/chunks/it-eAGyIQ1x.js.map +0 -1
- package/dist/admin/chunks/ja-CVosbw2M.mjs.map +0 -1
- package/dist/admin/chunks/ja-DdOPbVbe.js.map +0 -1
- package/dist/admin/chunks/ko-B8SR--vZ.mjs.map +0 -1
- package/dist/admin/chunks/ko-CaWqWfC8.js.map +0 -1
- package/dist/admin/chunks/ms-CrRuDILn.js +0 -6
- package/dist/admin/chunks/ms-CrRuDILn.js.map +0 -1
- package/dist/admin/chunks/ms-DLngEN2_.mjs +0 -4
- package/dist/admin/chunks/ms-DLngEN2_.mjs.map +0 -1
- package/dist/admin/chunks/nl-B6Q0VF48.mjs +0 -4
- package/dist/admin/chunks/nl-B6Q0VF48.mjs.map +0 -1
- package/dist/admin/chunks/nl-BMsBb10t.js +0 -6
- package/dist/admin/chunks/nl-BMsBb10t.js.map +0 -1
- package/dist/admin/chunks/pl-Bve39qfV.mjs.map +0 -1
- package/dist/admin/chunks/pl-CO-R08qV.js.map +0 -1
- package/dist/admin/chunks/pt-BR-CBzJhkyg.js +0 -6
- package/dist/admin/chunks/pt-BR-CBzJhkyg.js.map +0 -1
- package/dist/admin/chunks/pt-BR-DPqDE4wA.mjs.map +0 -1
- package/dist/admin/chunks/pt-BzFac2P5.js.map +0 -1
- package/dist/admin/chunks/pt-DLqF-Sb4.mjs.map +0 -1
- package/dist/admin/chunks/ru-DnqOAZDX.js +0 -6
- package/dist/admin/chunks/ru-DnqOAZDX.js.map +0 -1
- package/dist/admin/chunks/ru-rmFYdvwh.mjs +0 -4
- package/dist/admin/chunks/ru-rmFYdvwh.mjs.map +0 -1
- package/dist/admin/chunks/sk-DDJmUHcx.mjs +0 -4
- package/dist/admin/chunks/sk-DDJmUHcx.mjs.map +0 -1
- package/dist/admin/chunks/sk-N47IGfwH.js +0 -6
- package/dist/admin/chunks/sk-N47IGfwH.js.map +0 -1
- package/dist/admin/chunks/th-BqTCSpUc.mjs +0 -4
- package/dist/admin/chunks/th-BqTCSpUc.mjs.map +0 -1
- package/dist/admin/chunks/th-OW3_QVEZ.js +0 -6
- package/dist/admin/chunks/th-OW3_QVEZ.js.map +0 -1
- package/dist/admin/chunks/tr-BmrcZCoj.mjs.map +0 -1
- package/dist/admin/chunks/tr-n7J_y4Bh.js.map +0 -1
- package/dist/admin/chunks/uk-DWA4QHtk.js.map +0 -1
- package/dist/admin/chunks/uk-Dsq-0GyK.mjs.map +0 -1
- package/dist/admin/chunks/vi-CO9gCtmD.mjs +0 -4
- package/dist/admin/chunks/vi-CO9gCtmD.mjs.map +0 -1
- package/dist/admin/chunks/vi-DjJBc-ms.js +0 -6
- package/dist/admin/chunks/vi-DjJBc-ms.js.map +0 -1
- package/dist/admin/chunks/zh-9wNbbqde.js.map +0 -1
- package/dist/admin/chunks/zh-CZQ4DV5L.mjs.map +0 -1
- package/dist/admin/chunks/zh-Hans-ChWc00HT.mjs.map +0 -1
- package/dist/admin/chunks/zh-Hans-D0bb9tfC.js.map +0 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const PERMISSIONS = {
|
|
4
|
+
// This permission regards the main component (App) and is used to tell
|
|
5
|
+
// If the plugin link should be displayed in the menu
|
|
6
|
+
// And also if the plugin is accessible. This use case is found when a user types the url of the
|
|
7
|
+
// plugin directly in the browser
|
|
8
|
+
settings: [
|
|
9
|
+
{
|
|
10
|
+
action: 'plugin::email.settings.read',
|
|
11
|
+
subject: null
|
|
12
|
+
}
|
|
13
|
+
]
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
exports.PERMISSIONS = PERMISSIONS;
|
|
17
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../admin/src/constants.ts"],"sourcesContent":["export const PERMISSIONS = {\n // This permission regards the main component (App) and is used to tell\n // If the plugin link should be displayed in the menu\n // And also if the plugin is accessible. This use case is found when a user types the url of the\n // plugin directly in the browser\n settings: [{ action: 'plugin::email.settings.read', subject: null }],\n};\n"],"names":["PERMISSIONS","settings","action","subject"],"mappings":";;MAAaA,WAAc,GAAA;;;;;IAKzBC,QAAU,EAAA;AAAC,QAAA;YAAEC,MAAQ,EAAA,6BAAA;YAA+BC,OAAS,EAAA;AAAK;AAAE;AACtE;;;;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const PERMISSIONS = {
|
|
2
|
+
// This permission regards the main component (App) and is used to tell
|
|
3
|
+
// If the plugin link should be displayed in the menu
|
|
4
|
+
// And also if the plugin is accessible. This use case is found when a user types the url of the
|
|
5
|
+
// plugin directly in the browser
|
|
6
|
+
settings: [
|
|
7
|
+
{
|
|
8
|
+
action: 'plugin::email.settings.read',
|
|
9
|
+
subject: null
|
|
10
|
+
}
|
|
11
|
+
]
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export { PERMISSIONS };
|
|
15
|
+
//# sourceMappingURL=constants.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.mjs","sources":["../../admin/src/constants.ts"],"sourcesContent":["export const PERMISSIONS = {\n // This permission regards the main component (App) and is used to tell\n // If the plugin link should be displayed in the menu\n // And also if the plugin is accessible. This use case is found when a user types the url of the\n // plugin directly in the browser\n settings: [{ action: 'plugin::email.settings.read', subject: null }],\n};\n"],"names":["PERMISSIONS","settings","action","subject"],"mappings":"MAAaA,WAAc,GAAA;;;;;IAKzBC,QAAU,EAAA;AAAC,QAAA;YAAEC,MAAQ,EAAA,6BAAA;YAA+BC,OAAS,EAAA;AAAK;AAAE;AACtE;;;;"}
|
package/dist/admin/index.js
CHANGED
|
@@ -1,8 +1,92 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var constants = require('./constants.js');
|
|
4
|
+
var prefixPluginTranslations = require('./utils/prefixPluginTranslations.js');
|
|
4
5
|
|
|
6
|
+
function _interopNamespaceDefaultOnly (e) { return Object.freeze({ __proto__: null, default: e }); }
|
|
5
7
|
|
|
8
|
+
function __variableDynamicImportRuntime1__(path) {
|
|
9
|
+
switch (path) {
|
|
10
|
+
case './translations/ar.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/ar.json.js')); });
|
|
11
|
+
case './translations/cs.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/cs.json.js')); });
|
|
12
|
+
case './translations/de.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/de.json.js')); });
|
|
13
|
+
case './translations/dk.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/dk.json.js')); });
|
|
14
|
+
case './translations/en.json': return Promise.resolve().then(function () { return require('./translations/en.json.js'); });
|
|
15
|
+
case './translations/es.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/es.json.js')); });
|
|
16
|
+
case './translations/fr.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/fr.json.js')); });
|
|
17
|
+
case './translations/id.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/id.json.js')); });
|
|
18
|
+
case './translations/it.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/it.json.js')); });
|
|
19
|
+
case './translations/ja.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/ja.json.js')); });
|
|
20
|
+
case './translations/ko.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/ko.json.js')); });
|
|
21
|
+
case './translations/ms.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/ms.json.js')); });
|
|
22
|
+
case './translations/nl.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/nl.json.js')); });
|
|
23
|
+
case './translations/pl.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/pl.json.js')); });
|
|
24
|
+
case './translations/pt-BR.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/pt-BR.json.js')); });
|
|
25
|
+
case './translations/pt.json': return Promise.resolve().then(function () { return require('./translations/pt.json.js'); });
|
|
26
|
+
case './translations/ru.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/ru.json.js')); });
|
|
27
|
+
case './translations/sk.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/sk.json.js')); });
|
|
28
|
+
case './translations/th.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/th.json.js')); });
|
|
29
|
+
case './translations/tr.json': return Promise.resolve().then(function () { return require('./translations/tr.json.js'); });
|
|
30
|
+
case './translations/uk.json': return Promise.resolve().then(function () { return require('./translations/uk.json.js'); });
|
|
31
|
+
case './translations/vi.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/vi.json.js')); });
|
|
32
|
+
case './translations/zh-Hans.json': return Promise.resolve().then(function () { return require('./translations/zh-Hans.json.js'); });
|
|
33
|
+
case './translations/zh.json': return Promise.resolve().then(function () { return require('./translations/zh.json.js'); });
|
|
34
|
+
default: return new Promise(function(resolve, reject) {
|
|
35
|
+
(typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(
|
|
36
|
+
reject.bind(null, new Error("Unknown variable dynamic import: " + path))
|
|
37
|
+
);
|
|
38
|
+
})
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
const admin = {
|
|
42
|
+
// TODO typing app in strapi/types as every plugin needs it
|
|
43
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
44
|
+
register (app) {
|
|
45
|
+
// Create the email settings section
|
|
46
|
+
app.createSettingSection({
|
|
47
|
+
id: 'email',
|
|
48
|
+
intlLabel: {
|
|
49
|
+
id: 'email.SettingsNav.section-label',
|
|
50
|
+
defaultMessage: 'Email Plugin'
|
|
51
|
+
}
|
|
52
|
+
}, [
|
|
53
|
+
{
|
|
54
|
+
intlLabel: {
|
|
55
|
+
id: 'email.Settings.email.plugin.title',
|
|
56
|
+
defaultMessage: 'Settings'
|
|
57
|
+
},
|
|
58
|
+
id: 'settings',
|
|
59
|
+
to: 'email',
|
|
60
|
+
Component: ()=>Promise.resolve().then(function () { return require('./pages/Settings.js'); }).then((mod)=>({
|
|
61
|
+
default: mod.ProtectedSettingsPage
|
|
62
|
+
})),
|
|
63
|
+
permissions: constants.PERMISSIONS.settings
|
|
64
|
+
}
|
|
65
|
+
]);
|
|
66
|
+
app.registerPlugin({
|
|
67
|
+
id: 'email',
|
|
68
|
+
name: 'email'
|
|
69
|
+
});
|
|
70
|
+
},
|
|
71
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
72
|
+
bootstrap () {},
|
|
73
|
+
async registerTrads ({ locales }) {
|
|
74
|
+
const importedTrads = await Promise.all(locales.map((locale)=>{
|
|
75
|
+
return __variableDynamicImportRuntime1__(`./translations/${locale}.json`).then(({ default: data })=>{
|
|
76
|
+
return {
|
|
77
|
+
data: prefixPluginTranslations.prefixPluginTranslations(data, 'email'),
|
|
78
|
+
locale
|
|
79
|
+
};
|
|
80
|
+
}).catch(()=>{
|
|
81
|
+
return {
|
|
82
|
+
data: {},
|
|
83
|
+
locale
|
|
84
|
+
};
|
|
85
|
+
});
|
|
86
|
+
}));
|
|
87
|
+
return Promise.resolve(importedTrads);
|
|
88
|
+
}
|
|
89
|
+
};
|
|
6
90
|
|
|
7
|
-
module.exports =
|
|
91
|
+
module.exports = admin;
|
|
8
92
|
//# sourceMappingURL=index.js.map
|
package/dist/admin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../admin/src/index.ts"],"sourcesContent":["import { PERMISSIONS } from './constants';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\n\nimport type { Plugin } from '@strapi/types';\n\nconst admin: Plugin.Config.AdminInput = {\n // TODO typing app in strapi/types as every plugin needs it\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n register(app: any) {\n // Create the email settings section\n app.createSettingSection(\n {\n id: 'email',\n intlLabel: { id: 'email.SettingsNav.section-label', defaultMessage: 'Email Plugin' },\n },\n [\n {\n intlLabel: {\n id: 'email.Settings.email.plugin.title',\n defaultMessage: 'Settings',\n },\n id: 'settings',\n to: 'email',\n Component: () =>\n import('./pages/Settings').then((mod) => ({\n default: mod.ProtectedSettingsPage,\n })),\n permissions: PERMISSIONS.settings,\n },\n ]\n );\n app.registerPlugin({\n id: 'email',\n name: 'email',\n });\n },\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n bootstrap() {},\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, 'email'),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default admin;\n"],"names":["admin","register","app","createSettingSection","id","intlLabel","defaultMessage","to","Component","then","mod","default","ProtectedSettingsPage","permissions","PERMISSIONS","settings","registerPlugin","name","bootstrap","registerTrads","locales","importedTrads","Promise","all","map","locale","data","prefixPluginTranslations","catch","resolve"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,MAAMA,KAAkC,GAAA;;;AAGtCC,IAAAA,QAAAA,CAAAA,CAASC,GAAQ,EAAA;;AAEfA,QAAAA,GAAAA,CAAIC,oBAAoB,CACtB;YACEC,EAAI,EAAA,OAAA;YACJC,SAAW,EAAA;gBAAED,EAAI,EAAA,iCAAA;gBAAmCE,cAAgB,EAAA;AAAe;SAErF,EAAA;AACE,YAAA;gBACED,SAAW,EAAA;oBACTD,EAAI,EAAA,mCAAA;oBACJE,cAAgB,EAAA;AAClB,iBAAA;gBACAF,EAAI,EAAA,UAAA;gBACJG,EAAI,EAAA,OAAA;gBACJC,SAAW,EAAA,IACT,oDAAO,qBAAA,KAAA,CAAoBC,IAAI,CAAC,CAACC,OAAS;AACxCC,4BAAAA,OAAAA,EAASD,IAAIE;yBACf,CAAA,CAAA;AACFC,gBAAAA,WAAAA,EAAaC,sBAAYC;AAC3B;AACD,SAAA,CAAA;AAEHb,QAAAA,GAAAA,CAAIc,cAAc,CAAC;YACjBZ,EAAI,EAAA,OAAA;YACJa,IAAM,EAAA;AACR,SAAA,CAAA;AACF,KAAA;;IAEAC,SAAa,CAAA,GAAA,EAAA;IACb,MAAMC,aAAAA,CAAAA,CAAc,EAAEC,OAAO,EAAyB,EAAA;QACpD,MAAMC,aAAAA,GAAgB,MAAMC,OAAQC,CAAAA,GAAG,CACrCH,OAAQI,CAAAA,GAAG,CAAC,CAACC,MAAAA,GAAAA;AACX,YAAA,OAAO,iCAAM,CAAC,CAAC,eAAe,EAAEA,MAAO,CAAA,KAAK,CAAC,CAAA,CAC1ChB,IAAI,CAAC,CAAC,EAAEE,OAAAA,EAASe,IAAI,EAAE,GAAA;gBACtB,OAAO;AACLA,oBAAAA,IAAAA,EAAMC,kDAAyBD,IAAM,EAAA,OAAA,CAAA;AACrCD,oBAAAA;AACF,iBAAA;AACF,aAAA,CAAA,CACCG,KAAK,CAAC,IAAA;gBACL,OAAO;AACLF,oBAAAA,IAAAA,EAAM,EAAC;AACPD,oBAAAA;AACF,iBAAA;AACF,aAAA,CAAA;AACJ,SAAA,CAAA,CAAA;QAGF,OAAOH,OAAAA,CAAQO,OAAO,CAACR,aAAAA,CAAAA;AACzB;AACF;;;;"}
|
package/dist/admin/index.mjs
CHANGED
|
@@ -1,2 +1,88 @@
|
|
|
1
|
-
|
|
1
|
+
import { PERMISSIONS } from './constants.mjs';
|
|
2
|
+
import { prefixPluginTranslations } from './utils/prefixPluginTranslations.mjs';
|
|
3
|
+
|
|
4
|
+
function __variableDynamicImportRuntime1__(path) {
|
|
5
|
+
switch (path) {
|
|
6
|
+
case './translations/ar.json': return import('./translations/ar.json.mjs');
|
|
7
|
+
case './translations/cs.json': return import('./translations/cs.json.mjs');
|
|
8
|
+
case './translations/de.json': return import('./translations/de.json.mjs');
|
|
9
|
+
case './translations/dk.json': return import('./translations/dk.json.mjs');
|
|
10
|
+
case './translations/en.json': return import('./translations/en.json.mjs');
|
|
11
|
+
case './translations/es.json': return import('./translations/es.json.mjs');
|
|
12
|
+
case './translations/fr.json': return import('./translations/fr.json.mjs');
|
|
13
|
+
case './translations/id.json': return import('./translations/id.json.mjs');
|
|
14
|
+
case './translations/it.json': return import('./translations/it.json.mjs');
|
|
15
|
+
case './translations/ja.json': return import('./translations/ja.json.mjs');
|
|
16
|
+
case './translations/ko.json': return import('./translations/ko.json.mjs');
|
|
17
|
+
case './translations/ms.json': return import('./translations/ms.json.mjs');
|
|
18
|
+
case './translations/nl.json': return import('./translations/nl.json.mjs');
|
|
19
|
+
case './translations/pl.json': return import('./translations/pl.json.mjs');
|
|
20
|
+
case './translations/pt-BR.json': return import('./translations/pt-BR.json.mjs');
|
|
21
|
+
case './translations/pt.json': return import('./translations/pt.json.mjs');
|
|
22
|
+
case './translations/ru.json': return import('./translations/ru.json.mjs');
|
|
23
|
+
case './translations/sk.json': return import('./translations/sk.json.mjs');
|
|
24
|
+
case './translations/th.json': return import('./translations/th.json.mjs');
|
|
25
|
+
case './translations/tr.json': return import('./translations/tr.json.mjs');
|
|
26
|
+
case './translations/uk.json': return import('./translations/uk.json.mjs');
|
|
27
|
+
case './translations/vi.json': return import('./translations/vi.json.mjs');
|
|
28
|
+
case './translations/zh-Hans.json': return import('./translations/zh-Hans.json.mjs');
|
|
29
|
+
case './translations/zh.json': return import('./translations/zh.json.mjs');
|
|
30
|
+
default: return new Promise(function(resolve, reject) {
|
|
31
|
+
(typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(
|
|
32
|
+
reject.bind(null, new Error("Unknown variable dynamic import: " + path))
|
|
33
|
+
);
|
|
34
|
+
})
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const admin = {
|
|
38
|
+
// TODO typing app in strapi/types as every plugin needs it
|
|
39
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
40
|
+
register (app) {
|
|
41
|
+
// Create the email settings section
|
|
42
|
+
app.createSettingSection({
|
|
43
|
+
id: 'email',
|
|
44
|
+
intlLabel: {
|
|
45
|
+
id: 'email.SettingsNav.section-label',
|
|
46
|
+
defaultMessage: 'Email Plugin'
|
|
47
|
+
}
|
|
48
|
+
}, [
|
|
49
|
+
{
|
|
50
|
+
intlLabel: {
|
|
51
|
+
id: 'email.Settings.email.plugin.title',
|
|
52
|
+
defaultMessage: 'Settings'
|
|
53
|
+
},
|
|
54
|
+
id: 'settings',
|
|
55
|
+
to: 'email',
|
|
56
|
+
Component: ()=>import('./pages/Settings.mjs').then((mod)=>({
|
|
57
|
+
default: mod.ProtectedSettingsPage
|
|
58
|
+
})),
|
|
59
|
+
permissions: PERMISSIONS.settings
|
|
60
|
+
}
|
|
61
|
+
]);
|
|
62
|
+
app.registerPlugin({
|
|
63
|
+
id: 'email',
|
|
64
|
+
name: 'email'
|
|
65
|
+
});
|
|
66
|
+
},
|
|
67
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
68
|
+
bootstrap () {},
|
|
69
|
+
async registerTrads ({ locales }) {
|
|
70
|
+
const importedTrads = await Promise.all(locales.map((locale)=>{
|
|
71
|
+
return __variableDynamicImportRuntime1__(`./translations/${locale}.json`).then(({ default: data })=>{
|
|
72
|
+
return {
|
|
73
|
+
data: prefixPluginTranslations(data, 'email'),
|
|
74
|
+
locale
|
|
75
|
+
};
|
|
76
|
+
}).catch(()=>{
|
|
77
|
+
return {
|
|
78
|
+
data: {},
|
|
79
|
+
locale
|
|
80
|
+
};
|
|
81
|
+
});
|
|
82
|
+
}));
|
|
83
|
+
return Promise.resolve(importedTrads);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
export { admin as default };
|
|
2
88
|
//# sourceMappingURL=index.mjs.map
|
package/dist/admin/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../admin/src/index.ts"],"sourcesContent":["import { PERMISSIONS } from './constants';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\n\nimport type { Plugin } from '@strapi/types';\n\nconst admin: Plugin.Config.AdminInput = {\n // TODO typing app in strapi/types as every plugin needs it\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n register(app: any) {\n // Create the email settings section\n app.createSettingSection(\n {\n id: 'email',\n intlLabel: { id: 'email.SettingsNav.section-label', defaultMessage: 'Email Plugin' },\n },\n [\n {\n intlLabel: {\n id: 'email.Settings.email.plugin.title',\n defaultMessage: 'Settings',\n },\n id: 'settings',\n to: 'email',\n Component: () =>\n import('./pages/Settings').then((mod) => ({\n default: mod.ProtectedSettingsPage,\n })),\n permissions: PERMISSIONS.settings,\n },\n ]\n );\n app.registerPlugin({\n id: 'email',\n name: 'email',\n });\n },\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n bootstrap() {},\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, 'email'),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default admin;\n"],"names":["admin","register","app","createSettingSection","id","intlLabel","defaultMessage","to","Component","then","mod","default","ProtectedSettingsPage","permissions","PERMISSIONS","settings","registerPlugin","name","bootstrap","registerTrads","locales","importedTrads","Promise","all","map","locale","data","prefixPluginTranslations","catch","resolve"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,MAAMA,KAAkC,GAAA;;;AAGtCC,IAAAA,QAAAA,CAAAA,CAASC,GAAQ,EAAA;;AAEfA,QAAAA,GAAAA,CAAIC,oBAAoB,CACtB;YACEC,EAAI,EAAA,OAAA;YACJC,SAAW,EAAA;gBAAED,EAAI,EAAA,iCAAA;gBAAmCE,cAAgB,EAAA;AAAe;SAErF,EAAA;AACE,YAAA;gBACED,SAAW,EAAA;oBACTD,EAAI,EAAA,mCAAA;oBACJE,cAAgB,EAAA;AAClB,iBAAA;gBACAF,EAAI,EAAA,UAAA;gBACJG,EAAI,EAAA,OAAA;gBACJC,SAAW,EAAA,IACT,OAAO,sBAAA,CAAA,CAAoBC,IAAI,CAAC,CAACC,OAAS;AACxCC,4BAAAA,OAAAA,EAASD,IAAIE;yBACf,CAAA,CAAA;AACFC,gBAAAA,WAAAA,EAAaC,YAAYC;AAC3B;AACD,SAAA,CAAA;AAEHb,QAAAA,GAAAA,CAAIc,cAAc,CAAC;YACjBZ,EAAI,EAAA,OAAA;YACJa,IAAM,EAAA;AACR,SAAA,CAAA;AACF,KAAA;;IAEAC,SAAa,CAAA,GAAA,EAAA;IACb,MAAMC,aAAAA,CAAAA,CAAc,EAAEC,OAAO,EAAyB,EAAA;QACpD,MAAMC,aAAAA,GAAgB,MAAMC,OAAQC,CAAAA,GAAG,CACrCH,OAAQI,CAAAA,GAAG,CAAC,CAACC,MAAAA,GAAAA;AACX,YAAA,OAAO,iCAAM,CAAC,CAAC,eAAe,EAAEA,MAAO,CAAA,KAAK,CAAC,CAAA,CAC1ChB,IAAI,CAAC,CAAC,EAAEE,OAAAA,EAASe,IAAI,EAAE,GAAA;gBACtB,OAAO;AACLA,oBAAAA,IAAAA,EAAMC,yBAAyBD,IAAM,EAAA,OAAA,CAAA;AACrCD,oBAAAA;AACF,iBAAA;AACF,aAAA,CAAA,CACCG,KAAK,CAAC,IAAA;gBACL,OAAO;AACLF,oBAAAA,IAAAA,EAAM,EAAC;AACPD,oBAAAA;AACF,iBAAA;AACF,aAAA,CAAA;AACJ,SAAA,CAAA,CAAA;QAGF,OAAOH,OAAAA,CAAQO,OAAO,CAACR,aAAAA,CAAAA;AACzB;AACF;;;;"}
|
|
@@ -9,7 +9,9 @@ var reactIntl = require('react-intl');
|
|
|
9
9
|
var reactQuery = require('react-query');
|
|
10
10
|
var styledComponents = require('styled-components');
|
|
11
11
|
var yup = require('yup');
|
|
12
|
-
var
|
|
12
|
+
var constants = require('../constants.js');
|
|
13
|
+
var getYupInnerErrors = require('../utils/getYupInnerErrors.js');
|
|
14
|
+
var schema = require('../utils/schema.js');
|
|
13
15
|
|
|
14
16
|
function _interopNamespaceDefault(e) {
|
|
15
17
|
var n = Object.create(null);
|
|
@@ -29,36 +31,12 @@ function _interopNamespaceDefault(e) {
|
|
|
29
31
|
}
|
|
30
32
|
|
|
31
33
|
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
32
|
-
var yup__namespace = /*#__PURE__*/_interopNamespaceDefault(yup);
|
|
33
|
-
|
|
34
|
-
const extractValuesFromYupError = (errorType, errorParams)=>{
|
|
35
|
-
if (!errorType || !errorParams) {
|
|
36
|
-
return {};
|
|
37
|
-
}
|
|
38
|
-
return {
|
|
39
|
-
[errorType]: errorParams[errorType]
|
|
40
|
-
};
|
|
41
|
-
};
|
|
42
|
-
const getYupInnerErrors = (error)=>(error?.inner || []).reduce((acc, currentError)=>{
|
|
43
|
-
if (currentError.path) {
|
|
44
|
-
acc[currentError.path.split('[').join('.').split(']').join('')] = {
|
|
45
|
-
id: currentError.message,
|
|
46
|
-
defaultMessage: currentError.message,
|
|
47
|
-
values: extractValuesFromYupError(currentError?.type, currentError?.params)
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
return acc;
|
|
51
|
-
}, {});
|
|
52
|
-
|
|
53
|
-
const schema = yup__namespace.object().shape({
|
|
54
|
-
email: yup__namespace.string().email(strapiAdmin.translatedErrors.email.id).required(strapiAdmin.translatedErrors.required.id)
|
|
55
|
-
});
|
|
56
34
|
|
|
57
35
|
const DocumentationLink = styledComponents.styled.a`
|
|
58
36
|
color: ${({ theme })=>theme.colors.primary600};
|
|
59
37
|
`;
|
|
60
38
|
const ProtectedSettingsPage = ()=>/*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Page.Protect, {
|
|
61
|
-
permissions:
|
|
39
|
+
permissions: constants.PERMISSIONS.settings,
|
|
62
40
|
children: /*#__PURE__*/ jsxRuntime.jsx(SettingsPage, {})
|
|
63
41
|
});
|
|
64
42
|
const SettingsPage = ()=>{
|
|
@@ -106,7 +84,7 @@ const SettingsPage = ()=>{
|
|
|
106
84
|
retry: false
|
|
107
85
|
});
|
|
108
86
|
React__namespace.useEffect(()=>{
|
|
109
|
-
schema.validate({
|
|
87
|
+
schema.schema.validate({
|
|
110
88
|
email: testAddress
|
|
111
89
|
}, {
|
|
112
90
|
abortEarly: false
|
|
@@ -120,14 +98,14 @@ const SettingsPage = ()=>{
|
|
|
120
98
|
const handleSubmit = async (event)=>{
|
|
121
99
|
event.preventDefault();
|
|
122
100
|
try {
|
|
123
|
-
await schema.validate({
|
|
101
|
+
await schema.schema.validate({
|
|
124
102
|
email: testAddress
|
|
125
103
|
}, {
|
|
126
104
|
abortEarly: false
|
|
127
105
|
});
|
|
128
106
|
} catch (error) {
|
|
129
107
|
if (error instanceof yup.ValidationError) {
|
|
130
|
-
setFormErrors(getYupInnerErrors(error));
|
|
108
|
+
setFormErrors(getYupInnerErrors.getYupInnerErrors(error));
|
|
131
109
|
}
|
|
132
110
|
}
|
|
133
111
|
mutation.mutate({
|
|
@@ -221,7 +199,7 @@ const SettingsPage = ()=>{
|
|
|
221
199
|
children: [
|
|
222
200
|
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
|
|
223
201
|
col: 6,
|
|
224
|
-
|
|
202
|
+
xs: 12,
|
|
225
203
|
direction: "column",
|
|
226
204
|
alignItems: "stretch",
|
|
227
205
|
children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Field.Root, {
|
|
@@ -239,14 +217,16 @@ const SettingsPage = ()=>{
|
|
|
239
217
|
defaultMessage: "ex: Strapi No-Reply '<'no-reply@strapi.io'>'"
|
|
240
218
|
}),
|
|
241
219
|
disabled: true,
|
|
242
|
-
|
|
220
|
+
readOnly: true,
|
|
221
|
+
value: data.settings.defaultFrom,
|
|
222
|
+
type: "email"
|
|
243
223
|
})
|
|
244
224
|
]
|
|
245
225
|
})
|
|
246
226
|
}),
|
|
247
227
|
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
|
|
248
228
|
col: 6,
|
|
249
|
-
|
|
229
|
+
xs: 12,
|
|
250
230
|
direction: "column",
|
|
251
231
|
alignItems: "stretch",
|
|
252
232
|
children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Field.Root, {
|
|
@@ -264,14 +244,16 @@ const SettingsPage = ()=>{
|
|
|
264
244
|
defaultMessage: `ex: Strapi '<'example@strapi.io'>'`
|
|
265
245
|
}),
|
|
266
246
|
disabled: true,
|
|
267
|
-
|
|
247
|
+
readOnly: true,
|
|
248
|
+
value: data.settings.defaultReplyTo,
|
|
249
|
+
type: "email"
|
|
268
250
|
})
|
|
269
251
|
]
|
|
270
252
|
})
|
|
271
253
|
}),
|
|
272
254
|
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
|
|
273
255
|
col: 6,
|
|
274
|
-
|
|
256
|
+
xs: 12,
|
|
275
257
|
direction: "column",
|
|
276
258
|
alignItems: "stretch",
|
|
277
259
|
children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Field.Root, {
|
|
@@ -324,7 +306,7 @@ const SettingsPage = ()=>{
|
|
|
324
306
|
children: [
|
|
325
307
|
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
|
|
326
308
|
col: 6,
|
|
327
|
-
|
|
309
|
+
xs: 12,
|
|
328
310
|
direction: "column",
|
|
329
311
|
alignItems: "stretch",
|
|
330
312
|
children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Field.Root, {
|
|
@@ -346,14 +328,15 @@ const SettingsPage = ()=>{
|
|
|
346
328
|
placeholder: formatMessage({
|
|
347
329
|
id: 'email.Settings.email.plugin.placeholder.testAddress',
|
|
348
330
|
defaultMessage: 'ex: developer@example.com'
|
|
349
|
-
})
|
|
331
|
+
}),
|
|
332
|
+
type: "email"
|
|
350
333
|
})
|
|
351
334
|
]
|
|
352
335
|
})
|
|
353
336
|
}),
|
|
354
337
|
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
|
|
355
338
|
col: 7,
|
|
356
|
-
|
|
339
|
+
xs: 12,
|
|
357
340
|
direction: "column",
|
|
358
341
|
alignItems: "start",
|
|
359
342
|
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
|
|
@@ -380,4 +363,4 @@ const SettingsPage = ()=>{
|
|
|
380
363
|
};
|
|
381
364
|
|
|
382
365
|
exports.ProtectedSettingsPage = ProtectedSettingsPage;
|
|
383
|
-
//# sourceMappingURL=Settings
|
|
366
|
+
//# sourceMappingURL=Settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Settings.js","sources":["../../../admin/src/pages/Settings.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Page, useNotification, useFetchClient, Layouts } from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Button,\n Flex,\n Grid,\n SingleSelectOption,\n SingleSelect,\n TextInput,\n Typography,\n Field,\n} from '@strapi/design-system';\nimport { Mail } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useQuery, useMutation } from 'react-query';\nimport { styled } from 'styled-components';\nimport { ValidationError } from 'yup';\n\nimport { PERMISSIONS } from '../constants';\nimport { getYupInnerErrors } from '../utils/getYupInnerErrors';\nimport { schema } from '../utils/schema';\n\nimport type { EmailSettings } from '../../../shared/types';\n\nconst DocumentationLink = styled.a`\n color: ${({ theme }) => theme.colors.primary600};\n`;\n\ninterface MutationBody {\n to: string;\n}\n\nexport const ProtectedSettingsPage = () => (\n <Page.Protect permissions={PERMISSIONS.settings}>\n <SettingsPage />\n </Page.Protect>\n);\n\nconst SettingsPage = () => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { get, post } = useFetchClient();\n\n const [testAddress, setTestAddress] = React.useState('');\n const [isTestAddressValid, setIsTestAddressValid] = React.useState(false);\n\n // TODO: I'm not sure how to type this. I think it should be Record<string, TranslationMessage> but that type is defined in the helper-plugin\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const [formErrors, setFormErrors] = React.useState<Record<string, any>>({});\n\n const { data, isLoading } = useQuery(['email', 'settings'], async () => {\n const res = await get<EmailSettings>('/email/settings');\n const {\n data: { config },\n } = res;\n\n return config;\n });\n\n const mutation = useMutation<void, Error, MutationBody>(\n async (body) => {\n await post('/email/test', body);\n },\n {\n onError() {\n toggleNotification!({\n type: 'danger',\n message: formatMessage(\n {\n id: 'email.Settings.email.plugin.notification.test.error',\n defaultMessage: 'Failed to send a test mail to {to}',\n },\n { to: testAddress }\n ),\n });\n },\n onSuccess() {\n toggleNotification!({\n type: 'success',\n message: formatMessage(\n {\n id: 'email.Settings.email.plugin.notification.test.success',\n defaultMessage: 'Email test succeeded, check the {to} mailbox',\n },\n { to: testAddress }\n ),\n });\n },\n retry: false,\n }\n );\n\n React.useEffect(() => {\n schema\n .validate({ email: testAddress }, { abortEarly: false })\n .then(() => setIsTestAddressValid(true))\n .catch(() => setIsTestAddressValid(false));\n }, [testAddress]);\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setTestAddress(() => event.target.value);\n };\n\n const handleSubmit = async (event: React.FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n\n try {\n await schema.validate({ email: testAddress }, { abortEarly: false });\n } catch (error) {\n if (error instanceof ValidationError) {\n setFormErrors(getYupInnerErrors(error));\n }\n }\n\n mutation.mutate({ to: testAddress });\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main labelledBy=\"title\" aria-busy={isLoading || mutation.isLoading}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: formatMessage({\n id: 'email.Settings.email.plugin.title',\n defaultMessage: 'Configuration',\n }),\n }\n )}\n </Page.Title>\n <Layouts.Header\n id=\"title\"\n title={formatMessage({\n id: 'email.Settings.email.plugin.title',\n defaultMessage: 'Configuration',\n })}\n subtitle={formatMessage({\n id: 'email.Settings.email.plugin.subTitle',\n defaultMessage: 'Test the settings for the Email plugin',\n })}\n />\n\n <Layouts.Content>\n {data && (\n <form onSubmit={handleSubmit}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={7}>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'email.Settings.email.plugin.title.config',\n defaultMessage: 'Configuration',\n })}\n </Typography>\n <Typography>\n {formatMessage(\n {\n id: 'email.Settings.email.plugin.text.configuration',\n defaultMessage:\n 'The plugin is configured through the {file} file, checkout this {link} for the documentation.',\n },\n {\n file: './config/plugins.js',\n link: (\n <DocumentationLink\n href=\"https://docs.strapi.io/developer-docs/latest/plugins/email.html\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {formatMessage({\n id: 'email.link',\n defaultMessage: 'Link',\n })}\n </DocumentationLink>\n ),\n }\n )}\n </Typography>\n </Flex>\n\n <Grid.Root gap={5}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root name=\"shipper-email\">\n <Field.Label>\n {formatMessage({\n id: 'email.Settings.email.plugin.label.defaultFrom',\n defaultMessage: 'Default sender email',\n })}\n </Field.Label>\n <TextInput\n placeholder={formatMessage({\n id: 'email.Settings.email.plugin.placeholder.defaultFrom',\n defaultMessage: \"ex: Strapi No-Reply '<'no-reply@strapi.io'>'\",\n })}\n disabled\n readOnly\n value={data.settings.defaultFrom}\n type=\"email\"\n />\n </Field.Root>\n </Grid.Item>\n\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root name=\"response-email\">\n <Field.Label>\n {formatMessage({\n id: 'email.Settings.email.plugin.label.defaultReplyTo',\n defaultMessage: 'Default response email',\n })}\n </Field.Label>\n <TextInput\n placeholder={formatMessage({\n id: 'email.Settings.email.plugin.placeholder.defaultReplyTo',\n defaultMessage: `ex: Strapi '<'example@strapi.io'>'`,\n })}\n disabled\n readOnly\n value={data.settings.defaultReplyTo}\n type=\"email\"\n />\n </Field.Root>\n </Grid.Item>\n\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root name=\"email-provider\">\n <Field.Label>\n {formatMessage({\n id: 'email.Settings.email.plugin.label.provider',\n defaultMessage: 'Email provider',\n })}\n </Field.Label>\n <SingleSelect disabled value={data.provider}>\n <SingleSelectOption value={data.provider}>\n {data.provider}\n </SingleSelectOption>\n </SingleSelect>\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n\n <Flex\n alignItems=\"stretch\"\n background=\"neutral0\"\n direction=\"column\"\n gap={4}\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'email.Settings.email.plugin.title.test',\n defaultMessage: 'Test email delivery',\n })}\n </Typography>\n\n <Grid.Root gap={5}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"test-address\"\n error={\n formErrors.email?.id &&\n formatMessage({\n id: `email.${formErrors.email?.id}`,\n defaultMessage: 'This is not a valid email',\n })\n }\n >\n <Field.Label>\n {formatMessage({\n id: 'email.Settings.email.plugin.label.testAddress',\n defaultMessage: 'Recipient email',\n })}\n </Field.Label>\n <TextInput\n onChange={handleChange}\n value={testAddress}\n placeholder={formatMessage({\n id: 'email.Settings.email.plugin.placeholder.testAddress',\n defaultMessage: 'ex: developer@example.com',\n })}\n type=\"email\"\n />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={7} xs={12} direction=\"column\" alignItems=\"start\">\n <Button\n loading={mutation.isLoading}\n disabled={!isTestAddressValid}\n type=\"submit\"\n startIcon={<Mail />}\n >\n {formatMessage({\n id: 'email.Settings.email.plugin.button.test-email',\n defaultMessage: 'Send test email',\n })}\n </Button>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Flex>\n </form>\n )}\n </Layouts.Content>\n </Page.Main>\n );\n};\n"],"names":["DocumentationLink","styled","a","theme","colors","primary600","ProtectedSettingsPage","_jsx","Page","Protect","permissions","PERMISSIONS","settings","SettingsPage","toggleNotification","useNotification","formatMessage","useIntl","get","post","useFetchClient","testAddress","setTestAddress","React","useState","isTestAddressValid","setIsTestAddressValid","formErrors","setFormErrors","data","isLoading","useQuery","res","config","mutation","useMutation","body","onError","type","message","id","defaultMessage","to","onSuccess","retry","useEffect","schema","validate","email","abortEarly","then","catch","handleChange","event","target","value","handleSubmit","preventDefault","error","ValidationError","getYupInnerErrors","mutate","Loading","_jsxs","Main","labelledBy","aria-busy","Title","name","Layouts","Header","title","subtitle","Content","form","onSubmit","Flex","direction","alignItems","gap","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","Typography","variant","tag","file","link","href","rel","Grid","Root","Item","col","xs","Field","Label","TextInput","placeholder","disabled","readOnly","defaultFrom","defaultReplyTo","SingleSelect","provider","SingleSelectOption","onChange","Button","loading","startIcon","Mail"],"mappings":"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"}
|
|
@@ -1,37 +1,15 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { Page, useNotification, useFetchClient, Layouts } from '@strapi/admin/strapi-admin';
|
|
4
4
|
import { Flex, Box, Typography, Grid, Field, TextInput, SingleSelect, SingleSelectOption, Button } from '@strapi/design-system';
|
|
5
5
|
import { Mail } from '@strapi/icons';
|
|
6
6
|
import { useIntl } from 'react-intl';
|
|
7
7
|
import { useQuery, useMutation } from 'react-query';
|
|
8
8
|
import { styled } from 'styled-components';
|
|
9
|
-
import * as yup from 'yup';
|
|
10
9
|
import { ValidationError } from 'yup';
|
|
11
|
-
import {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
if (!errorType || !errorParams) {
|
|
15
|
-
return {};
|
|
16
|
-
}
|
|
17
|
-
return {
|
|
18
|
-
[errorType]: errorParams[errorType]
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
|
-
const getYupInnerErrors = (error)=>(error?.inner || []).reduce((acc, currentError)=>{
|
|
22
|
-
if (currentError.path) {
|
|
23
|
-
acc[currentError.path.split('[').join('.').split(']').join('')] = {
|
|
24
|
-
id: currentError.message,
|
|
25
|
-
defaultMessage: currentError.message,
|
|
26
|
-
values: extractValuesFromYupError(currentError?.type, currentError?.params)
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
return acc;
|
|
30
|
-
}, {});
|
|
31
|
-
|
|
32
|
-
const schema = yup.object().shape({
|
|
33
|
-
email: yup.string().email(translatedErrors.email.id).required(translatedErrors.required.id)
|
|
34
|
-
});
|
|
10
|
+
import { PERMISSIONS } from '../constants.mjs';
|
|
11
|
+
import { getYupInnerErrors } from '../utils/getYupInnerErrors.mjs';
|
|
12
|
+
import { schema } from '../utils/schema.mjs';
|
|
35
13
|
|
|
36
14
|
const DocumentationLink = styled.a`
|
|
37
15
|
color: ${({ theme })=>theme.colors.primary600};
|
|
@@ -200,7 +178,7 @@ const SettingsPage = ()=>{
|
|
|
200
178
|
children: [
|
|
201
179
|
/*#__PURE__*/ jsx(Grid.Item, {
|
|
202
180
|
col: 6,
|
|
203
|
-
|
|
181
|
+
xs: 12,
|
|
204
182
|
direction: "column",
|
|
205
183
|
alignItems: "stretch",
|
|
206
184
|
children: /*#__PURE__*/ jsxs(Field.Root, {
|
|
@@ -218,14 +196,16 @@ const SettingsPage = ()=>{
|
|
|
218
196
|
defaultMessage: "ex: Strapi No-Reply '<'no-reply@strapi.io'>'"
|
|
219
197
|
}),
|
|
220
198
|
disabled: true,
|
|
221
|
-
|
|
199
|
+
readOnly: true,
|
|
200
|
+
value: data.settings.defaultFrom,
|
|
201
|
+
type: "email"
|
|
222
202
|
})
|
|
223
203
|
]
|
|
224
204
|
})
|
|
225
205
|
}),
|
|
226
206
|
/*#__PURE__*/ jsx(Grid.Item, {
|
|
227
207
|
col: 6,
|
|
228
|
-
|
|
208
|
+
xs: 12,
|
|
229
209
|
direction: "column",
|
|
230
210
|
alignItems: "stretch",
|
|
231
211
|
children: /*#__PURE__*/ jsxs(Field.Root, {
|
|
@@ -243,14 +223,16 @@ const SettingsPage = ()=>{
|
|
|
243
223
|
defaultMessage: `ex: Strapi '<'example@strapi.io'>'`
|
|
244
224
|
}),
|
|
245
225
|
disabled: true,
|
|
246
|
-
|
|
226
|
+
readOnly: true,
|
|
227
|
+
value: data.settings.defaultReplyTo,
|
|
228
|
+
type: "email"
|
|
247
229
|
})
|
|
248
230
|
]
|
|
249
231
|
})
|
|
250
232
|
}),
|
|
251
233
|
/*#__PURE__*/ jsx(Grid.Item, {
|
|
252
234
|
col: 6,
|
|
253
|
-
|
|
235
|
+
xs: 12,
|
|
254
236
|
direction: "column",
|
|
255
237
|
alignItems: "stretch",
|
|
256
238
|
children: /*#__PURE__*/ jsxs(Field.Root, {
|
|
@@ -303,7 +285,7 @@ const SettingsPage = ()=>{
|
|
|
303
285
|
children: [
|
|
304
286
|
/*#__PURE__*/ jsx(Grid.Item, {
|
|
305
287
|
col: 6,
|
|
306
|
-
|
|
288
|
+
xs: 12,
|
|
307
289
|
direction: "column",
|
|
308
290
|
alignItems: "stretch",
|
|
309
291
|
children: /*#__PURE__*/ jsxs(Field.Root, {
|
|
@@ -325,14 +307,15 @@ const SettingsPage = ()=>{
|
|
|
325
307
|
placeholder: formatMessage({
|
|
326
308
|
id: 'email.Settings.email.plugin.placeholder.testAddress',
|
|
327
309
|
defaultMessage: 'ex: developer@example.com'
|
|
328
|
-
})
|
|
310
|
+
}),
|
|
311
|
+
type: "email"
|
|
329
312
|
})
|
|
330
313
|
]
|
|
331
314
|
})
|
|
332
315
|
}),
|
|
333
316
|
/*#__PURE__*/ jsx(Grid.Item, {
|
|
334
317
|
col: 7,
|
|
335
|
-
|
|
318
|
+
xs: 12,
|
|
336
319
|
direction: "column",
|
|
337
320
|
alignItems: "start",
|
|
338
321
|
children: /*#__PURE__*/ jsx(Button, {
|
|
@@ -359,4 +342,4 @@ const SettingsPage = ()=>{
|
|
|
359
342
|
};
|
|
360
343
|
|
|
361
344
|
export { ProtectedSettingsPage };
|
|
362
|
-
//# sourceMappingURL=Settings
|
|
345
|
+
//# sourceMappingURL=Settings.mjs.map
|