@strapi/email 5.37.1 → 5.38.0

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 (71) hide show
  1. package/dist/admin/constants.js.map +1 -1
  2. package/dist/admin/constants.mjs.map +1 -1
  3. package/dist/admin/index.js.map +1 -1
  4. package/dist/admin/index.mjs.map +1 -1
  5. package/dist/admin/pages/Settings.js +399 -47
  6. package/dist/admin/pages/Settings.js.map +1 -1
  7. package/dist/admin/pages/Settings.mjs +402 -50
  8. package/dist/admin/pages/Settings.mjs.map +1 -1
  9. package/dist/admin/shared/email-address-parser.js +245 -0
  10. package/dist/admin/shared/email-address-parser.js.map +1 -0
  11. package/dist/admin/shared/email-address-parser.mjs +243 -0
  12. package/dist/admin/shared/email-address-parser.mjs.map +1 -0
  13. package/dist/admin/translations/de.json.js +18 -2
  14. package/dist/admin/translations/de.json.js.map +1 -1
  15. package/dist/admin/translations/de.json.mjs +18 -2
  16. package/dist/admin/translations/de.json.mjs.map +1 -1
  17. package/dist/admin/translations/en.json.js +23 -1
  18. package/dist/admin/translations/en.json.js.map +1 -1
  19. package/dist/admin/translations/en.json.mjs +23 -1
  20. package/dist/admin/translations/en.json.mjs.map +1 -1
  21. package/dist/admin/utils/getYupInnerErrors.js.map +1 -1
  22. package/dist/admin/utils/getYupInnerErrors.mjs.map +1 -1
  23. package/dist/admin/utils/prefixPluginTranslations.js.map +1 -1
  24. package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -1
  25. package/dist/admin/utils/schema.js.map +1 -1
  26. package/dist/admin/utils/schema.mjs.map +1 -1
  27. package/dist/server/bootstrap.js.map +1 -1
  28. package/dist/server/bootstrap.mjs.map +1 -1
  29. package/dist/server/config.js.map +1 -1
  30. package/dist/server/config.mjs.map +1 -1
  31. package/dist/server/controllers/email.js +33 -1
  32. package/dist/server/controllers/email.js.map +1 -1
  33. package/dist/server/controllers/email.mjs +33 -1
  34. package/dist/server/controllers/email.mjs.map +1 -1
  35. package/dist/server/controllers/index.js.map +1 -1
  36. package/dist/server/controllers/index.mjs.map +1 -1
  37. package/dist/server/index.js +8 -8
  38. package/dist/server/index.js.map +1 -1
  39. package/dist/server/index.mjs.map +1 -1
  40. package/dist/server/middlewares/index.js.map +1 -1
  41. package/dist/server/middlewares/index.mjs.map +1 -1
  42. package/dist/server/middlewares/rateLimit.js.map +1 -1
  43. package/dist/server/middlewares/rateLimit.mjs.map +1 -1
  44. package/dist/server/routes/admin.js +18 -0
  45. package/dist/server/routes/admin.js.map +1 -1
  46. package/dist/server/routes/admin.mjs +18 -0
  47. package/dist/server/routes/admin.mjs.map +1 -1
  48. package/dist/server/routes/content-api.js.map +1 -1
  49. package/dist/server/routes/content-api.mjs.map +1 -1
  50. package/dist/server/routes/index.js.map +1 -1
  51. package/dist/server/routes/index.mjs.map +1 -1
  52. package/dist/server/routes/validation/email.js.map +1 -1
  53. package/dist/server/routes/validation/email.mjs.map +1 -1
  54. package/dist/server/services/email.js.map +1 -1
  55. package/dist/server/services/email.mjs +1 -1
  56. package/dist/server/services/email.mjs.map +1 -1
  57. package/dist/server/services/index.js.map +1 -1
  58. package/dist/server/services/index.mjs.map +1 -1
  59. package/dist/server/src/bootstrap.d.ts.map +1 -1
  60. package/dist/server/src/controllers/email.d.ts +1 -0
  61. package/dist/server/src/controllers/email.d.ts.map +1 -1
  62. package/dist/server/src/controllers/index.d.ts +1 -0
  63. package/dist/server/src/controllers/index.d.ts.map +1 -1
  64. package/dist/server/src/index.d.ts +1 -0
  65. package/dist/server/src/index.d.ts.map +1 -1
  66. package/dist/server/src/routes/admin.d.ts.map +1 -1
  67. package/dist/shared/email-address-parser.d.ts +81 -0
  68. package/dist/shared/email-address-parser.d.ts.map +1 -0
  69. package/dist/shared/types.d.ts +17 -0
  70. package/dist/shared/types.d.ts.map +1 -1
  71. package/package.json +7 -7
@@ -51,14 +51,46 @@ const { ApplicationError } = utils.errors;
51
51
  },
52
52
  async getSettings (ctx) {
53
53
  const config = strapi.plugin('email').service('email').getProviderSettings();
54
+ const provider = strapi.plugin('email').provider;
55
+ // Check if provider supports verify method
56
+ const supportsVerify = typeof provider?.verify === 'function';
57
+ // Get capabilities from provider (e.g. SMTP host, auth type, features)
58
+ const capabilities = typeof provider?.getCapabilities === 'function' ? provider.getCapabilities() : undefined;
59
+ // Get pool idle status if provider supports it
60
+ const isIdle = typeof provider?.isIdle === 'function' ? provider.isIdle() : undefined;
54
61
  ctx.send({
55
62
  config: fp.pick([
56
63
  'provider',
57
64
  'settings.defaultFrom',
58
65
  'settings.defaultReplyTo',
59
66
  'settings.testAddress'
60
- ], config)
67
+ ], config),
68
+ supportsVerify,
69
+ ...capabilities ? {
70
+ capabilities
71
+ } : {},
72
+ ...isIdle !== undefined ? {
73
+ isIdle
74
+ } : {}
61
75
  });
76
+ },
77
+ async verify (ctx) {
78
+ const provider = strapi.plugin('email').provider;
79
+ if (!provider?.verify || typeof provider.verify !== 'function') {
80
+ throw new ApplicationError('This email provider does not support connection verification');
81
+ }
82
+ try {
83
+ await provider.verify();
84
+ ctx.send({
85
+ success: true,
86
+ message: 'SMTP connection verified successfully'
87
+ });
88
+ } catch (error) {
89
+ if (error instanceof Error) {
90
+ throw new ApplicationError(`Connection verification failed: ${error.message}`);
91
+ }
92
+ throw new ApplicationError('Connection verification failed');
93
+ }
62
94
  }
63
95
  };
64
96
 
@@ -1 +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;YACAE,OAAS,EAAA,CAAC,qBAAqB,EAAEF,EAAI,CAAA,CAAA;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;;;;"}
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 const provider = strapi.plugin('email').provider;\n\n // Check if provider supports verify method\n const supportsVerify = typeof provider?.verify === 'function';\n\n // Get capabilities from provider (e.g. SMTP host, auth type, features)\n const capabilities =\n typeof provider?.getCapabilities === 'function' ? provider.getCapabilities() : undefined;\n\n // Get pool idle status if provider supports it\n const isIdle = typeof provider?.isIdle === 'function' ? provider.isIdle() : undefined;\n\n ctx.send({\n config: pick(\n ['provider', 'settings.defaultFrom', 'settings.defaultReplyTo', 'settings.testAddress'],\n config\n ),\n supportsVerify,\n ...(capabilities ? { capabilities } : {}),\n ...(isIdle !== undefined ? { isIdle } : {}),\n });\n },\n\n async verify(ctx: Koa.Context) {\n const provider = strapi.plugin('email').provider;\n\n if (!provider?.verify || typeof provider.verify !== 'function') {\n throw new ApplicationError('This email provider does not support connection verification');\n }\n\n try {\n await provider.verify();\n ctx.send({ success: true, message: 'SMTP connection verified successfully' });\n } catch (error) {\n if (error instanceof Error) {\n throw new ApplicationError(`Connection verification failed: ${error.message}`);\n }\n throw new ApplicationError('Connection verification failed');\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","provider","supportsVerify","verify","capabilities","getCapabilities","undefined","isIdle","pick","success"],"mappings":"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"}
@@ -49,14 +49,46 @@ const { ApplicationError } = errors;
49
49
  },
50
50
  async getSettings (ctx) {
51
51
  const config = strapi.plugin('email').service('email').getProviderSettings();
52
+ const provider = strapi.plugin('email').provider;
53
+ // Check if provider supports verify method
54
+ const supportsVerify = typeof provider?.verify === 'function';
55
+ // Get capabilities from provider (e.g. SMTP host, auth type, features)
56
+ const capabilities = typeof provider?.getCapabilities === 'function' ? provider.getCapabilities() : undefined;
57
+ // Get pool idle status if provider supports it
58
+ const isIdle = typeof provider?.isIdle === 'function' ? provider.isIdle() : undefined;
52
59
  ctx.send({
53
60
  config: pick([
54
61
  'provider',
55
62
  'settings.defaultFrom',
56
63
  'settings.defaultReplyTo',
57
64
  'settings.testAddress'
58
- ], config)
65
+ ], config),
66
+ supportsVerify,
67
+ ...capabilities ? {
68
+ capabilities
69
+ } : {},
70
+ ...isIdle !== undefined ? {
71
+ isIdle
72
+ } : {}
59
73
  });
74
+ },
75
+ async verify (ctx) {
76
+ const provider = strapi.plugin('email').provider;
77
+ if (!provider?.verify || typeof provider.verify !== 'function') {
78
+ throw new ApplicationError('This email provider does not support connection verification');
79
+ }
80
+ try {
81
+ await provider.verify();
82
+ ctx.send({
83
+ success: true,
84
+ message: 'SMTP connection verified successfully'
85
+ });
86
+ } catch (error) {
87
+ if (error instanceof Error) {
88
+ throw new ApplicationError(`Connection verification failed: ${error.message}`);
89
+ }
90
+ throw new ApplicationError('Connection verification failed');
91
+ }
60
92
  }
61
93
  };
62
94
 
@@ -1 +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;YACAE,OAAS,EAAA,CAAC,qBAAqB,EAAEF,EAAI,CAAA,CAAA;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;;;;"}
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 const provider = strapi.plugin('email').provider;\n\n // Check if provider supports verify method\n const supportsVerify = typeof provider?.verify === 'function';\n\n // Get capabilities from provider (e.g. SMTP host, auth type, features)\n const capabilities =\n typeof provider?.getCapabilities === 'function' ? provider.getCapabilities() : undefined;\n\n // Get pool idle status if provider supports it\n const isIdle = typeof provider?.isIdle === 'function' ? provider.isIdle() : undefined;\n\n ctx.send({\n config: pick(\n ['provider', 'settings.defaultFrom', 'settings.defaultReplyTo', 'settings.testAddress'],\n config\n ),\n supportsVerify,\n ...(capabilities ? { capabilities } : {}),\n ...(isIdle !== undefined ? { isIdle } : {}),\n });\n },\n\n async verify(ctx: Koa.Context) {\n const provider = strapi.plugin('email').provider;\n\n if (!provider?.verify || typeof provider.verify !== 'function') {\n throw new ApplicationError('This email provider does not support connection verification');\n }\n\n try {\n await provider.verify();\n ctx.send({ success: true, message: 'SMTP connection verified successfully' });\n } catch (error) {\n if (error instanceof Error) {\n throw new ApplicationError(`Connection verification failed: ${error.message}`);\n }\n throw new ApplicationError('Connection verification failed');\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","provider","supportsVerify","verify","capabilities","getCapabilities","undefined","isIdle","pick","success"],"mappings":"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"}
@@ -1 +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;;;;"}
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,WAAAA,GAAc;AAAEC,IAAAA;AAAM;;;;"}
@@ -1 +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
+ {"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,WAAAA,GAAc;AAAEC,WAAAA;AAAM;;;;"}
@@ -1,19 +1,19 @@
1
1
  'use strict';
2
2
 
3
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');
4
+ var index$4 = require('./services/index.js');
5
+ var index$3 = require('./routes/index.js');
6
+ var index$2 = require('./controllers/index.js');
7
7
  var config = require('./config.js');
8
- var index$4 = require('./middlewares/index.js');
8
+ var index$1 = require('./middlewares/index.js');
9
9
 
10
10
  var index = {
11
11
  bootstrap: bootstrap.bootstrap,
12
- services: index$1.services,
13
- routes: index$2.routes,
14
- controllers: index$3.controllers,
12
+ services: index$4.services,
13
+ routes: index$3.routes,
14
+ controllers: index$2.controllers,
15
15
  config: config.config,
16
- middlewares: index$4.default
16
+ middlewares: index$1.default
17
17
  };
18
18
 
19
19
  module.exports = index;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../server/src/index.ts"],"sourcesContent":["import { bootstrap } from './bootstrap';\nimport { services } from './services';\nimport { routes } from './routes';\nimport { controllers } from './controllers';\nimport { config } from './config';\nimport middlewares from './middlewares';\n\nexport default {\n bootstrap,\n services,\n routes,\n controllers,\n config,\n middlewares,\n};\n"],"names":["bootstrap","services","routes","controllers","config","middlewares"],"mappings":";;;;;;;;;AAOA,YAAe;AACbA,eAAAA,mBAAAA;AACAC,cAAAA,gBAAAA;AACAC,YAAAA,cAAAA;AACAC,iBAAAA,mBAAAA;AACAC,YAAAA,aAAAA;AACAC,iBAAAA;AACF,CAAE;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../server/src/index.ts"],"sourcesContent":["import { bootstrap } from './bootstrap';\nimport { services } from './services';\nimport { routes } from './routes';\nimport { controllers } from './controllers';\nimport { config } from './config';\nimport middlewares from './middlewares';\n\nexport default {\n bootstrap,\n services,\n routes,\n controllers,\n config,\n middlewares,\n};\n"],"names":["bootstrap","services","routes","controllers","config","middlewares"],"mappings":";;;;;;;;;AAOA,YAAe;AACbA,eAAAA,mBAAAA;AACAC,cAAAA,gBAAAA;AACAC,YAAAA,cAAAA;AACAC,iBAAAA,mBAAAA;AACAC,YAAAA,aAAAA;AACAC,iBAAAA;AACF,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../server/src/index.ts"],"sourcesContent":["import { bootstrap } from './bootstrap';\nimport { services } from './services';\nimport { routes } from './routes';\nimport { controllers } from './controllers';\nimport { config } from './config';\nimport middlewares from './middlewares';\n\nexport default {\n bootstrap,\n services,\n routes,\n controllers,\n config,\n middlewares,\n};\n"],"names":["bootstrap","services","routes","controllers","config","middlewares"],"mappings":";;;;;;;AAOA,YAAe;AACbA,IAAAA,SAAAA;AACAC,IAAAA,QAAAA;AACAC,IAAAA,MAAAA;AACAC,IAAAA,WAAAA;AACAC,IAAAA,MAAAA;AACAC,IAAAA;AACF,CAAE;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../server/src/index.ts"],"sourcesContent":["import { bootstrap } from './bootstrap';\nimport { services } from './services';\nimport { routes } from './routes';\nimport { controllers } from './controllers';\nimport { config } from './config';\nimport middlewares from './middlewares';\n\nexport default {\n bootstrap,\n services,\n routes,\n controllers,\n config,\n middlewares,\n};\n"],"names":["bootstrap","services","routes","controllers","config","middlewares"],"mappings":";;;;;;;AAOA,YAAe;AACbA,IAAAA,SAAAA;AACAC,IAAAA,QAAAA;AACAC,IAAAA,MAAAA;AACAC,IAAAA,WAAAA;AACAC,IAAAA,MAAAA;AACAC,IAAAA;AACF,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../server/src/middlewares/index.ts"],"sourcesContent":["import rateLimit from './rateLimit';\n\nexport { default as rateLimit } from './rateLimit';\n\nexport default {\n rateLimit,\n};\n"],"names":["rateLimit"],"mappings":";;;;;;AAIA,kBAAe;AACbA,IAAAA;AACF,CAAE;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../server/src/middlewares/index.ts"],"sourcesContent":["import rateLimit from './rateLimit';\n\nexport { default as rateLimit } from './rateLimit';\n\nexport default {\n rateLimit,\n};\n"],"names":["rateLimit"],"mappings":";;;;;;AAIA,kBAAe;AACbA,IAAAA;AACF,CAAA;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../server/src/middlewares/index.ts"],"sourcesContent":["import rateLimit from './rateLimit';\n\nexport { default as rateLimit } from './rateLimit';\n\nexport default {\n rateLimit,\n};\n"],"names":["rateLimit"],"mappings":";;AAIA,kBAAe;AACbA,IAAAA;AACF,CAAE;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../server/src/middlewares/index.ts"],"sourcesContent":["import rateLimit from './rateLimit';\n\nexport { default as rateLimit } from './rateLimit';\n\nexport default {\n rateLimit,\n};\n"],"names":["rateLimit"],"mappings":";;AAIA,kBAAe;AACbA,IAAAA;AACF,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"rateLimit.js","sources":["../../../server/src/middlewares/rateLimit.ts"],"sourcesContent":["import type { Context, Next } from 'koa';\nimport utils from '@strapi/utils';\nimport { isString, get } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\n\nconst { RateLimitError } = utils.errors;\n\nexport default (config: any, { strapi }: { strapi: Core.Strapi }) =>\n async (ctx: Context, next: Next) => {\n const pluginConfig = strapi.config.get('plugin::email') as any;\n const rateLimitConfig = {\n enabled: true,\n ...(pluginConfig.ratelimit || {}),\n };\n\n if (rateLimitConfig.enabled === true) {\n // TODO: TS - Do the dynamic import\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const rateLimit = require('koa2-ratelimit').RateLimit;\n\n const requestEmail = get('request.body.email')(ctx);\n const userEmail = isString(requestEmail) ? requestEmail.toLowerCase() : 'unknownEmail';\n\n const loadConfig = {\n interval: { min: 5 },\n max: 5,\n prefixKey: `${userEmail}`,\n handler() {\n throw new RateLimitError();\n },\n ...rateLimitConfig,\n ...config,\n };\n\n return rateLimit.middleware(loadConfig)(ctx, next);\n }\n\n return next();\n };\n"],"names":["RateLimitError","utils","errors","config","strapi","ctx","next","pluginConfig","get","rateLimitConfig","enabled","ratelimit","rateLimit","require","RateLimit","requestEmail","userEmail","isString","toLowerCase","loadConfig","interval","min","max","prefixKey","handler","middleware"],"mappings":";;;;;AAKA,MAAM,EAAEA,cAAc,EAAE,GAAGC,MAAMC,MAAM;AAEvC,gBAAe,CAAA,CAACC,MAAa,EAAA,EAAEC,MAAM,EAA2B,GAC9D,OAAOC,GAAcC,EAAAA,IAAAA,GAAAA;AACnB,QAAA,MAAMC,YAAeH,GAAAA,MAAAA,CAAOD,MAAM,CAACK,GAAG,CAAC,eAAA,CAAA;AACvC,QAAA,MAAMC,eAAkB,GAAA;YACtBC,OAAS,EAAA,IAAA;AACT,YAAA,GAAIH,YAAaI,CAAAA,SAAS,IAAI;AAChC,SAAA;QAEA,IAAIF,eAAAA,CAAgBC,OAAO,KAAK,IAAM,EAAA;;;YAGpC,MAAME,SAAAA,GAAYC,OAAQ,CAAA,gBAAA,CAAA,CAAkBC,SAAS;YAErD,MAAMC,YAAAA,GAAeP,OAAI,oBAAsBH,CAAAA,CAAAA,GAAAA,CAAAA;AAC/C,YAAA,MAAMW,SAAYC,GAAAA,WAAAA,CAASF,YAAgBA,CAAAA,GAAAA,YAAAA,CAAaG,WAAW,EAAK,GAAA,cAAA;AAExE,YAAA,MAAMC,UAAa,GAAA;gBACjBC,QAAU,EAAA;oBAAEC,GAAK,EAAA;AAAE,iBAAA;gBACnBC,GAAK,EAAA,CAAA;AACLC,gBAAAA,SAAAA,EAAW,GAAGP,SAAW,CAAA,CAAA;AACzBQ,gBAAAA,OAAAA,CAAAA,GAAAA;AACE,oBAAA,MAAM,IAAIxB,cAAAA,EAAAA;AACZ,iBAAA;AACA,gBAAA,GAAGS,eAAe;AAClB,gBAAA,GAAGN;AACL,aAAA;AAEA,YAAA,OAAOS,SAAUa,CAAAA,UAAU,CAACN,UAAAA,CAAAA,CAAYd,GAAKC,EAAAA,IAAAA,CAAAA;AAC/C;QAEA,OAAOA,IAAAA,EAAAA;AACT,KAAA;;;;"}
1
+ {"version":3,"file":"rateLimit.js","sources":["../../../server/src/middlewares/rateLimit.ts"],"sourcesContent":["import type { Context, Next } from 'koa';\nimport utils from '@strapi/utils';\nimport { isString, get } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\n\nconst { RateLimitError } = utils.errors;\n\nexport default (config: any, { strapi }: { strapi: Core.Strapi }) =>\n async (ctx: Context, next: Next) => {\n const pluginConfig = strapi.config.get('plugin::email') as any;\n const rateLimitConfig = {\n enabled: true,\n ...(pluginConfig.ratelimit || {}),\n };\n\n if (rateLimitConfig.enabled === true) {\n // TODO: TS - Do the dynamic import\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const rateLimit = require('koa2-ratelimit').RateLimit;\n\n const requestEmail = get('request.body.email')(ctx);\n const userEmail = isString(requestEmail) ? requestEmail.toLowerCase() : 'unknownEmail';\n\n const loadConfig = {\n interval: { min: 5 },\n max: 5,\n prefixKey: `${userEmail}`,\n handler() {\n throw new RateLimitError();\n },\n ...rateLimitConfig,\n ...config,\n };\n\n return rateLimit.middleware(loadConfig)(ctx, next);\n }\n\n return next();\n };\n"],"names":["RateLimitError","utils","errors","config","strapi","ctx","next","pluginConfig","get","rateLimitConfig","enabled","ratelimit","rateLimit","require","RateLimit","requestEmail","userEmail","isString","toLowerCase","loadConfig","interval","min","max","prefixKey","handler","middleware"],"mappings":";;;;;AAKA,MAAM,EAAEA,cAAc,EAAE,GAAGC,MAAMC,MAAM;AAEvC,gBAAe,CAAA,CAACC,MAAAA,EAAa,EAAEC,MAAM,EAA2B,GAC9D,OAAOC,GAAAA,EAAcC,IAAAA,GAAAA;AACnB,QAAA,MAAMC,YAAAA,GAAeH,MAAAA,CAAOD,MAAM,CAACK,GAAG,CAAC,eAAA,CAAA;AACvC,QAAA,MAAMC,eAAAA,GAAkB;YACtBC,OAAAA,EAAS,IAAA;AACT,YAAA,GAAIH,YAAAA,CAAaI,SAAS,IAAI;AAChC,SAAA;QAEA,IAAIF,eAAAA,CAAgBC,OAAO,KAAK,IAAA,EAAM;;;YAGpC,MAAME,SAAAA,GAAYC,OAAAA,CAAQ,gBAAA,CAAA,CAAkBC,SAAS;YAErD,MAAMC,YAAAA,GAAeP,OAAI,oBAAA,CAAA,CAAsBH,GAAAA,CAAAA;AAC/C,YAAA,MAAMW,SAAAA,GAAYC,WAAAA,CAASF,YAAAA,CAAAA,GAAgBA,YAAAA,CAAaG,WAAW,EAAA,GAAK,cAAA;AAExE,YAAA,MAAMC,UAAAA,GAAa;gBACjBC,QAAAA,EAAU;oBAAEC,GAAAA,EAAK;AAAE,iBAAA;gBACnBC,GAAAA,EAAK,CAAA;AACLC,gBAAAA,SAAAA,EAAW,GAAGP,SAAAA,CAAAA,CAAW;AACzBQ,gBAAAA,OAAAA,CAAAA,GAAAA;AACE,oBAAA,MAAM,IAAIxB,cAAAA,EAAAA;AACZ,gBAAA,CAAA;AACA,gBAAA,GAAGS,eAAe;AAClB,gBAAA,GAAGN;AACL,aAAA;AAEA,YAAA,OAAOS,SAAAA,CAAUa,UAAU,CAACN,UAAAA,CAAAA,CAAYd,GAAAA,EAAKC,IAAAA,CAAAA;AAC/C,QAAA;QAEA,OAAOA,IAAAA,EAAAA;AACT,IAAA,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"rateLimit.mjs","sources":["../../../server/src/middlewares/rateLimit.ts"],"sourcesContent":["import type { Context, Next } from 'koa';\nimport utils from '@strapi/utils';\nimport { isString, get } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\n\nconst { RateLimitError } = utils.errors;\n\nexport default (config: any, { strapi }: { strapi: Core.Strapi }) =>\n async (ctx: Context, next: Next) => {\n const pluginConfig = strapi.config.get('plugin::email') as any;\n const rateLimitConfig = {\n enabled: true,\n ...(pluginConfig.ratelimit || {}),\n };\n\n if (rateLimitConfig.enabled === true) {\n // TODO: TS - Do the dynamic import\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const rateLimit = require('koa2-ratelimit').RateLimit;\n\n const requestEmail = get('request.body.email')(ctx);\n const userEmail = isString(requestEmail) ? requestEmail.toLowerCase() : 'unknownEmail';\n\n const loadConfig = {\n interval: { min: 5 },\n max: 5,\n prefixKey: `${userEmail}`,\n handler() {\n throw new RateLimitError();\n },\n ...rateLimitConfig,\n ...config,\n };\n\n return rateLimit.middleware(loadConfig)(ctx, next);\n }\n\n return next();\n };\n"],"names":["RateLimitError","utils","errors","config","strapi","ctx","next","pluginConfig","get","rateLimitConfig","enabled","ratelimit","rateLimit","require","RateLimit","requestEmail","userEmail","isString","toLowerCase","loadConfig","interval","min","max","prefixKey","handler","middleware"],"mappings":";;;AAKA,MAAM,EAAEA,cAAc,EAAE,GAAGC,MAAMC,MAAM;AAEvC,gBAAe,CAAA,CAACC,MAAa,EAAA,EAAEC,MAAM,EAA2B,GAC9D,OAAOC,GAAcC,EAAAA,IAAAA,GAAAA;AACnB,QAAA,MAAMC,YAAeH,GAAAA,MAAAA,CAAOD,MAAM,CAACK,GAAG,CAAC,eAAA,CAAA;AACvC,QAAA,MAAMC,eAAkB,GAAA;YACtBC,OAAS,EAAA,IAAA;AACT,YAAA,GAAIH,YAAaI,CAAAA,SAAS,IAAI;AAChC,SAAA;QAEA,IAAIF,eAAAA,CAAgBC,OAAO,KAAK,IAAM,EAAA;;;YAGpC,MAAME,SAAAA,GAAYC,OAAQ,CAAA,gBAAA,CAAA,CAAkBC,SAAS;YAErD,MAAMC,YAAAA,GAAeP,IAAI,oBAAsBH,CAAAA,CAAAA,GAAAA,CAAAA;AAC/C,YAAA,MAAMW,SAAYC,GAAAA,QAAAA,CAASF,YAAgBA,CAAAA,GAAAA,YAAAA,CAAaG,WAAW,EAAK,GAAA,cAAA;AAExE,YAAA,MAAMC,UAAa,GAAA;gBACjBC,QAAU,EAAA;oBAAEC,GAAK,EAAA;AAAE,iBAAA;gBACnBC,GAAK,EAAA,CAAA;AACLC,gBAAAA,SAAAA,EAAW,GAAGP,SAAW,CAAA,CAAA;AACzBQ,gBAAAA,OAAAA,CAAAA,GAAAA;AACE,oBAAA,MAAM,IAAIxB,cAAAA,EAAAA;AACZ,iBAAA;AACA,gBAAA,GAAGS,eAAe;AAClB,gBAAA,GAAGN;AACL,aAAA;AAEA,YAAA,OAAOS,SAAUa,CAAAA,UAAU,CAACN,UAAAA,CAAAA,CAAYd,GAAKC,EAAAA,IAAAA,CAAAA;AAC/C;QAEA,OAAOA,IAAAA,EAAAA;AACT,KAAA;;;;"}
1
+ {"version":3,"file":"rateLimit.mjs","sources":["../../../server/src/middlewares/rateLimit.ts"],"sourcesContent":["import type { Context, Next } from 'koa';\nimport utils from '@strapi/utils';\nimport { isString, get } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\n\nconst { RateLimitError } = utils.errors;\n\nexport default (config: any, { strapi }: { strapi: Core.Strapi }) =>\n async (ctx: Context, next: Next) => {\n const pluginConfig = strapi.config.get('plugin::email') as any;\n const rateLimitConfig = {\n enabled: true,\n ...(pluginConfig.ratelimit || {}),\n };\n\n if (rateLimitConfig.enabled === true) {\n // TODO: TS - Do the dynamic import\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const rateLimit = require('koa2-ratelimit').RateLimit;\n\n const requestEmail = get('request.body.email')(ctx);\n const userEmail = isString(requestEmail) ? requestEmail.toLowerCase() : 'unknownEmail';\n\n const loadConfig = {\n interval: { min: 5 },\n max: 5,\n prefixKey: `${userEmail}`,\n handler() {\n throw new RateLimitError();\n },\n ...rateLimitConfig,\n ...config,\n };\n\n return rateLimit.middleware(loadConfig)(ctx, next);\n }\n\n return next();\n };\n"],"names":["RateLimitError","utils","errors","config","strapi","ctx","next","pluginConfig","get","rateLimitConfig","enabled","ratelimit","rateLimit","require","RateLimit","requestEmail","userEmail","isString","toLowerCase","loadConfig","interval","min","max","prefixKey","handler","middleware"],"mappings":";;;AAKA,MAAM,EAAEA,cAAc,EAAE,GAAGC,MAAMC,MAAM;AAEvC,gBAAe,CAAA,CAACC,MAAAA,EAAa,EAAEC,MAAM,EAA2B,GAC9D,OAAOC,GAAAA,EAAcC,IAAAA,GAAAA;AACnB,QAAA,MAAMC,YAAAA,GAAeH,MAAAA,CAAOD,MAAM,CAACK,GAAG,CAAC,eAAA,CAAA;AACvC,QAAA,MAAMC,eAAAA,GAAkB;YACtBC,OAAAA,EAAS,IAAA;AACT,YAAA,GAAIH,YAAAA,CAAaI,SAAS,IAAI;AAChC,SAAA;QAEA,IAAIF,eAAAA,CAAgBC,OAAO,KAAK,IAAA,EAAM;;;YAGpC,MAAME,SAAAA,GAAYC,OAAAA,CAAQ,gBAAA,CAAA,CAAkBC,SAAS;YAErD,MAAMC,YAAAA,GAAeP,IAAI,oBAAA,CAAA,CAAsBH,GAAAA,CAAAA;AAC/C,YAAA,MAAMW,SAAAA,GAAYC,QAAAA,CAASF,YAAAA,CAAAA,GAAgBA,YAAAA,CAAaG,WAAW,EAAA,GAAK,cAAA;AAExE,YAAA,MAAMC,UAAAA,GAAa;gBACjBC,QAAAA,EAAU;oBAAEC,GAAAA,EAAK;AAAE,iBAAA;gBACnBC,GAAAA,EAAK,CAAA;AACLC,gBAAAA,SAAAA,EAAW,GAAGP,SAAAA,CAAAA,CAAW;AACzBQ,gBAAAA,OAAAA,CAAAA,GAAAA;AACE,oBAAA,MAAM,IAAIxB,cAAAA,EAAAA;AACZ,gBAAA,CAAA;AACA,gBAAA,GAAGS,eAAe;AAClB,gBAAA,GAAGN;AACL,aAAA;AAEA,YAAA,OAAOS,SAAAA,CAAUa,UAAU,CAACN,UAAAA,CAAAA,CAAYd,GAAAA,EAAKC,IAAAA,CAAAA;AAC/C,QAAA;QAEA,OAAOA,IAAAA,EAAAA;AACT,IAAA,CAAA;;;;"}
@@ -48,6 +48,24 @@ var admin = {
48
48
  }
49
49
  ]
50
50
  }
51
+ },
52
+ {
53
+ method: 'POST',
54
+ path: '/verify',
55
+ handler: 'email.verify',
56
+ config: {
57
+ policies: [
58
+ 'admin::isAuthenticatedAdmin',
59
+ {
60
+ name: 'admin::hasPermissions',
61
+ config: {
62
+ actions: [
63
+ 'plugin::email.settings.read'
64
+ ]
65
+ }
66
+ }
67
+ ]
68
+ }
51
69
  }
52
70
  ]
53
71
  };
@@ -1 +1 @@
1
- {"version":3,"file":"admin.js","sources":["../../../server/src/routes/admin.ts"],"sourcesContent":["export default {\n type: 'admin',\n routes: [\n {\n method: 'POST',\n path: '/',\n handler: 'email.send',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'POST',\n path: '/test',\n handler: 'email.test',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n { name: 'admin::hasPermissions', config: { actions: ['plugin::email.settings.read'] } },\n ],\n },\n },\n {\n method: 'GET',\n path: '/settings',\n handler: 'email.getSettings',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n { name: 'admin::hasPermissions', config: { actions: ['plugin::email.settings.read'] } },\n ],\n },\n },\n ],\n};\n"],"names":["type","routes","method","path","handler","config","policies","name","actions"],"mappings":";;AAAA,YAAe;IACbA,IAAM,EAAA,OAAA;IACNC,MAAQ,EAAA;AACN,QAAA;YACEC,MAAQ,EAAA,MAAA;YACRC,IAAM,EAAA,GAAA;YACNC,OAAS,EAAA,YAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AAAC,oBAAA;AAA8B;AAC3C;AACF,SAAA;AACA,QAAA;YACEJ,MAAQ,EAAA,MAAA;YACRC,IAAM,EAAA,OAAA;YACNC,OAAS,EAAA,YAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AACR,oBAAA,6BAAA;AACA,oBAAA;wBAAEC,IAAM,EAAA,uBAAA;wBAAyBF,MAAQ,EAAA;4BAAEG,OAAS,EAAA;AAAC,gCAAA;AAA8B;AAAC;AAAE;AACvF;AACH;AACF,SAAA;AACA,QAAA;YACEN,MAAQ,EAAA,KAAA;YACRC,IAAM,EAAA,WAAA;YACNC,OAAS,EAAA,mBAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AACR,oBAAA,6BAAA;AACA,oBAAA;wBAAEC,IAAM,EAAA,uBAAA;wBAAyBF,MAAQ,EAAA;4BAAEG,OAAS,EAAA;AAAC,gCAAA;AAA8B;AAAC;AAAE;AACvF;AACH;AACF;AACD;AACH,CAAE;;;;"}
1
+ {"version":3,"file":"admin.js","sources":["../../../server/src/routes/admin.ts"],"sourcesContent":["export default {\n type: 'admin',\n routes: [\n {\n method: 'POST',\n path: '/',\n handler: 'email.send',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'POST',\n path: '/test',\n handler: 'email.test',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n { name: 'admin::hasPermissions', config: { actions: ['plugin::email.settings.read'] } },\n ],\n },\n },\n {\n method: 'GET',\n path: '/settings',\n handler: 'email.getSettings',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n { name: 'admin::hasPermissions', config: { actions: ['plugin::email.settings.read'] } },\n ],\n },\n },\n {\n method: 'POST',\n path: '/verify',\n handler: 'email.verify',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n { name: 'admin::hasPermissions', config: { actions: ['plugin::email.settings.read'] } },\n ],\n },\n },\n ],\n};\n"],"names":["type","routes","method","path","handler","config","policies","name","actions"],"mappings":";;AAAA,YAAe;IACbA,IAAAA,EAAM,OAAA;IACNC,MAAAA,EAAQ;AACN,QAAA;YACEC,MAAAA,EAAQ,MAAA;YACRC,IAAAA,EAAM,GAAA;YACNC,OAAAA,EAAS,YAAA;YACTC,MAAAA,EAAQ;gBACNC,QAAAA,EAAU;AAAC,oBAAA;AAA8B;AAC3C;AACF,SAAA;AACA,QAAA;YACEJ,MAAAA,EAAQ,MAAA;YACRC,IAAAA,EAAM,OAAA;YACNC,OAAAA,EAAS,YAAA;YACTC,MAAAA,EAAQ;gBACNC,QAAAA,EAAU;AACR,oBAAA,6BAAA;AACA,oBAAA;wBAAEC,IAAAA,EAAM,uBAAA;wBAAyBF,MAAAA,EAAQ;4BAAEG,OAAAA,EAAS;AAAC,gCAAA;AAA8B;AAAC;AAAE;AACvF;AACH;AACF,SAAA;AACA,QAAA;YACEN,MAAAA,EAAQ,KAAA;YACRC,IAAAA,EAAM,WAAA;YACNC,OAAAA,EAAS,mBAAA;YACTC,MAAAA,EAAQ;gBACNC,QAAAA,EAAU;AACR,oBAAA,6BAAA;AACA,oBAAA;wBAAEC,IAAAA,EAAM,uBAAA;wBAAyBF,MAAAA,EAAQ;4BAAEG,OAAAA,EAAS;AAAC,gCAAA;AAA8B;AAAC;AAAE;AACvF;AACH;AACF,SAAA;AACA,QAAA;YACEN,MAAAA,EAAQ,MAAA;YACRC,IAAAA,EAAM,SAAA;YACNC,OAAAA,EAAS,cAAA;YACTC,MAAAA,EAAQ;gBACNC,QAAAA,EAAU;AACR,oBAAA,6BAAA;AACA,oBAAA;wBAAEC,IAAAA,EAAM,uBAAA;wBAAyBF,MAAAA,EAAQ;4BAAEG,OAAAA,EAAS;AAAC,gCAAA;AAA8B;AAAC;AAAE;AACvF;AACH;AACF;AACD;AACH,CAAA;;;;"}
@@ -46,6 +46,24 @@ var admin = {
46
46
  }
47
47
  ]
48
48
  }
49
+ },
50
+ {
51
+ method: 'POST',
52
+ path: '/verify',
53
+ handler: 'email.verify',
54
+ config: {
55
+ policies: [
56
+ 'admin::isAuthenticatedAdmin',
57
+ {
58
+ name: 'admin::hasPermissions',
59
+ config: {
60
+ actions: [
61
+ 'plugin::email.settings.read'
62
+ ]
63
+ }
64
+ }
65
+ ]
66
+ }
49
67
  }
50
68
  ]
51
69
  };
@@ -1 +1 @@
1
- {"version":3,"file":"admin.mjs","sources":["../../../server/src/routes/admin.ts"],"sourcesContent":["export default {\n type: 'admin',\n routes: [\n {\n method: 'POST',\n path: '/',\n handler: 'email.send',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'POST',\n path: '/test',\n handler: 'email.test',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n { name: 'admin::hasPermissions', config: { actions: ['plugin::email.settings.read'] } },\n ],\n },\n },\n {\n method: 'GET',\n path: '/settings',\n handler: 'email.getSettings',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n { name: 'admin::hasPermissions', config: { actions: ['plugin::email.settings.read'] } },\n ],\n },\n },\n ],\n};\n"],"names":["type","routes","method","path","handler","config","policies","name","actions"],"mappings":"AAAA,YAAe;IACbA,IAAM,EAAA,OAAA;IACNC,MAAQ,EAAA;AACN,QAAA;YACEC,MAAQ,EAAA,MAAA;YACRC,IAAM,EAAA,GAAA;YACNC,OAAS,EAAA,YAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AAAC,oBAAA;AAA8B;AAC3C;AACF,SAAA;AACA,QAAA;YACEJ,MAAQ,EAAA,MAAA;YACRC,IAAM,EAAA,OAAA;YACNC,OAAS,EAAA,YAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AACR,oBAAA,6BAAA;AACA,oBAAA;wBAAEC,IAAM,EAAA,uBAAA;wBAAyBF,MAAQ,EAAA;4BAAEG,OAAS,EAAA;AAAC,gCAAA;AAA8B;AAAC;AAAE;AACvF;AACH;AACF,SAAA;AACA,QAAA;YACEN,MAAQ,EAAA,KAAA;YACRC,IAAM,EAAA,WAAA;YACNC,OAAS,EAAA,mBAAA;YACTC,MAAQ,EAAA;gBACNC,QAAU,EAAA;AACR,oBAAA,6BAAA;AACA,oBAAA;wBAAEC,IAAM,EAAA,uBAAA;wBAAyBF,MAAQ,EAAA;4BAAEG,OAAS,EAAA;AAAC,gCAAA;AAA8B;AAAC;AAAE;AACvF;AACH;AACF;AACD;AACH,CAAE;;;;"}
1
+ {"version":3,"file":"admin.mjs","sources":["../../../server/src/routes/admin.ts"],"sourcesContent":["export default {\n type: 'admin',\n routes: [\n {\n method: 'POST',\n path: '/',\n handler: 'email.send',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'POST',\n path: '/test',\n handler: 'email.test',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n { name: 'admin::hasPermissions', config: { actions: ['plugin::email.settings.read'] } },\n ],\n },\n },\n {\n method: 'GET',\n path: '/settings',\n handler: 'email.getSettings',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n { name: 'admin::hasPermissions', config: { actions: ['plugin::email.settings.read'] } },\n ],\n },\n },\n {\n method: 'POST',\n path: '/verify',\n handler: 'email.verify',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n { name: 'admin::hasPermissions', config: { actions: ['plugin::email.settings.read'] } },\n ],\n },\n },\n ],\n};\n"],"names":["type","routes","method","path","handler","config","policies","name","actions"],"mappings":"AAAA,YAAe;IACbA,IAAAA,EAAM,OAAA;IACNC,MAAAA,EAAQ;AACN,QAAA;YACEC,MAAAA,EAAQ,MAAA;YACRC,IAAAA,EAAM,GAAA;YACNC,OAAAA,EAAS,YAAA;YACTC,MAAAA,EAAQ;gBACNC,QAAAA,EAAU;AAAC,oBAAA;AAA8B;AAC3C;AACF,SAAA;AACA,QAAA;YACEJ,MAAAA,EAAQ,MAAA;YACRC,IAAAA,EAAM,OAAA;YACNC,OAAAA,EAAS,YAAA;YACTC,MAAAA,EAAQ;gBACNC,QAAAA,EAAU;AACR,oBAAA,6BAAA;AACA,oBAAA;wBAAEC,IAAAA,EAAM,uBAAA;wBAAyBF,MAAAA,EAAQ;4BAAEG,OAAAA,EAAS;AAAC,gCAAA;AAA8B;AAAC;AAAE;AACvF;AACH;AACF,SAAA;AACA,QAAA;YACEN,MAAAA,EAAQ,KAAA;YACRC,IAAAA,EAAM,WAAA;YACNC,OAAAA,EAAS,mBAAA;YACTC,MAAAA,EAAQ;gBACNC,QAAAA,EAAU;AACR,oBAAA,6BAAA;AACA,oBAAA;wBAAEC,IAAAA,EAAM,uBAAA;wBAAyBF,MAAAA,EAAQ;4BAAEG,OAAAA,EAAS;AAAC,gCAAA;AAA8B;AAAC;AAAE;AACvF;AACH;AACF,SAAA;AACA,QAAA;YACEN,MAAAA,EAAQ,MAAA;YACRC,IAAAA,EAAM,SAAA;YACNC,OAAAA,EAAS,cAAA;YACTC,MAAAA,EAAQ;gBACNC,QAAAA,EAAU;AACR,oBAAA,6BAAA;AACA,oBAAA;wBAAEC,IAAAA,EAAM,uBAAA;wBAAyBF,MAAAA,EAAQ;4BAAEG,OAAAA,EAAS;AAAC,gCAAA;AAA8B;AAAC;AAAE;AACvF;AACH;AACF;AACD;AACH,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"content-api.js","sources":["../../../server/src/routes/content-api.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { createContentApiRoutesFactory } from '@strapi/utils';\nimport { EmailRouteValidator } from './validation';\n\nconst createRoutes = createContentApiRoutesFactory((): Core.RouterInput['routes'] => {\n const validator = new EmailRouteValidator(strapi);\n\n return [\n {\n method: 'POST',\n path: '/',\n handler: 'email.send',\n request: {\n body: { 'application/json': validator.sendEmailInput },\n },\n response: validator.emailResponse,\n },\n ];\n});\n\nexport default createRoutes;\n"],"names":["createRoutes","createContentApiRoutesFactory","validator","EmailRouteValidator","strapi","method","path","handler","request","body","sendEmailInput","response","emailResponse"],"mappings":";;;;;AAIA,MAAMA,eAAeC,mCAA8B,CAAA,IAAA;IACjD,MAAMC,SAAAA,GAAY,IAAIC,yBAAoBC,CAAAA,MAAAA,CAAAA;IAE1C,OAAO;AACL,QAAA;YACEC,MAAQ,EAAA,MAAA;YACRC,IAAM,EAAA,GAAA;YACNC,OAAS,EAAA,YAAA;YACTC,OAAS,EAAA;gBACPC,IAAM,EAAA;AAAE,oBAAA,kBAAA,EAAoBP,UAAUQ;AAAe;AACvD,aAAA;AACAC,YAAAA,QAAAA,EAAUT,UAAUU;AACtB;AACD,KAAA;AACH,CAAA;;;;"}
1
+ {"version":3,"file":"content-api.js","sources":["../../../server/src/routes/content-api.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { createContentApiRoutesFactory } from '@strapi/utils';\nimport { EmailRouteValidator } from './validation';\n\nconst createRoutes = createContentApiRoutesFactory((): Core.RouterInput['routes'] => {\n const validator = new EmailRouteValidator(strapi);\n\n return [\n {\n method: 'POST',\n path: '/',\n handler: 'email.send',\n request: {\n body: { 'application/json': validator.sendEmailInput },\n },\n response: validator.emailResponse,\n },\n ];\n});\n\nexport default createRoutes;\n"],"names":["createRoutes","createContentApiRoutesFactory","validator","EmailRouteValidator","strapi","method","path","handler","request","body","sendEmailInput","response","emailResponse"],"mappings":";;;;;AAIA,MAAMA,eAAeC,mCAAAA,CAA8B,IAAA;IACjD,MAAMC,SAAAA,GAAY,IAAIC,yBAAAA,CAAoBC,MAAAA,CAAAA;IAE1C,OAAO;AACL,QAAA;YACEC,MAAAA,EAAQ,MAAA;YACRC,IAAAA,EAAM,GAAA;YACNC,OAAAA,EAAS,YAAA;YACTC,OAAAA,EAAS;gBACPC,IAAAA,EAAM;AAAE,oBAAA,kBAAA,EAAoBP,UAAUQ;AAAe;AACvD,aAAA;AACAC,YAAAA,QAAAA,EAAUT,UAAUU;AACtB;AACD,KAAA;AACH,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"content-api.mjs","sources":["../../../server/src/routes/content-api.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { createContentApiRoutesFactory } from '@strapi/utils';\nimport { EmailRouteValidator } from './validation';\n\nconst createRoutes = createContentApiRoutesFactory((): Core.RouterInput['routes'] => {\n const validator = new EmailRouteValidator(strapi);\n\n return [\n {\n method: 'POST',\n path: '/',\n handler: 'email.send',\n request: {\n body: { 'application/json': validator.sendEmailInput },\n },\n response: validator.emailResponse,\n },\n ];\n});\n\nexport default createRoutes;\n"],"names":["createRoutes","createContentApiRoutesFactory","validator","EmailRouteValidator","strapi","method","path","handler","request","body","sendEmailInput","response","emailResponse"],"mappings":";;;AAIA,MAAMA,eAAeC,6BAA8B,CAAA,IAAA;IACjD,MAAMC,SAAAA,GAAY,IAAIC,mBAAoBC,CAAAA,MAAAA,CAAAA;IAE1C,OAAO;AACL,QAAA;YACEC,MAAQ,EAAA,MAAA;YACRC,IAAM,EAAA,GAAA;YACNC,OAAS,EAAA,YAAA;YACTC,OAAS,EAAA;gBACPC,IAAM,EAAA;AAAE,oBAAA,kBAAA,EAAoBP,UAAUQ;AAAe;AACvD,aAAA;AACAC,YAAAA,QAAAA,EAAUT,UAAUU;AACtB;AACD,KAAA;AACH,CAAA;;;;"}
1
+ {"version":3,"file":"content-api.mjs","sources":["../../../server/src/routes/content-api.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { createContentApiRoutesFactory } from '@strapi/utils';\nimport { EmailRouteValidator } from './validation';\n\nconst createRoutes = createContentApiRoutesFactory((): Core.RouterInput['routes'] => {\n const validator = new EmailRouteValidator(strapi);\n\n return [\n {\n method: 'POST',\n path: '/',\n handler: 'email.send',\n request: {\n body: { 'application/json': validator.sendEmailInput },\n },\n response: validator.emailResponse,\n },\n ];\n});\n\nexport default createRoutes;\n"],"names":["createRoutes","createContentApiRoutesFactory","validator","EmailRouteValidator","strapi","method","path","handler","request","body","sendEmailInput","response","emailResponse"],"mappings":";;;AAIA,MAAMA,eAAeC,6BAAAA,CAA8B,IAAA;IACjD,MAAMC,SAAAA,GAAY,IAAIC,mBAAAA,CAAoBC,MAAAA,CAAAA;IAE1C,OAAO;AACL,QAAA;YACEC,MAAAA,EAAQ,MAAA;YACRC,IAAAA,EAAM,GAAA;YACNC,OAAAA,EAAS,YAAA;YACTC,OAAAA,EAAS;gBACPC,IAAAA,EAAM;AAAE,oBAAA,kBAAA,EAAoBP,UAAUQ;AAAe;AACvD,aAAA;AACAC,YAAAA,QAAAA,EAAUT,UAAUU;AACtB;AACD,KAAA;AACH,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../server/src/routes/index.ts"],"sourcesContent":["import admin from './admin';\nimport contentApi from './content-api';\n\nexport const routes = {\n admin,\n 'content-api': contentApi,\n};\n"],"names":["routes","admin","contentApi"],"mappings":";;;;;MAGaA,MAAS,GAAA;AACpBC,IAAAA,KAAAA;IACA,aAAeC,EAAAA;AACjB;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../server/src/routes/index.ts"],"sourcesContent":["import admin from './admin';\nimport contentApi from './content-api';\n\nexport const routes = {\n admin,\n 'content-api': contentApi,\n};\n"],"names":["routes","admin","contentApi"],"mappings":";;;;;MAGaA,MAAAA,GAAS;AACpBC,IAAAA,KAAAA;IACA,aAAA,EAAeC;AACjB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../server/src/routes/index.ts"],"sourcesContent":["import admin from './admin';\nimport contentApi from './content-api';\n\nexport const routes = {\n admin,\n 'content-api': contentApi,\n};\n"],"names":["routes","admin","contentApi"],"mappings":";;;MAGaA,MAAS,GAAA;AACpBC,IAAAA,KAAAA;IACA,aAAeC,EAAAA;AACjB;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../server/src/routes/index.ts"],"sourcesContent":["import admin from './admin';\nimport contentApi from './content-api';\n\nexport const routes = {\n admin,\n 'content-api': contentApi,\n};\n"],"names":["routes","admin","contentApi"],"mappings":";;;MAGaA,MAAAA,GAAS;AACpBC,IAAAA,KAAAA;IACA,aAAA,EAAeC;AACjB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"email.js","sources":["../../../../server/src/routes/validation/email.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport * as z from 'zod/v4';\n\nexport class EmailRouteValidator {\n protected readonly _strapi: Core.Strapi;\n\n public constructor(strapi: Core.Strapi) {\n this._strapi = strapi;\n }\n\n get sendEmailInput() {\n return z\n .object({\n from: z.string().optional(),\n to: z.string(),\n cc: z.string().optional(),\n bcc: z.string().optional(),\n replyTo: z.string().optional(),\n subject: z.string(),\n text: z.string(),\n html: z.string().optional(),\n })\n .catchall(z.string());\n }\n\n get emailResponse() {\n return z.object({});\n }\n}\n"],"names":["EmailRouteValidator","sendEmailInput","z","object","from","string","optional","to","cc","bcc","replyTo","subject","text","html","catchall","emailResponse","strapi","_strapi"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGO,MAAMA,mBAAAA,CAAAA;AAOX,IAAA,IAAIC,cAAiB,GAAA;QACnB,OAAOC,YAAAA,CACJC,MAAM,CAAC;YACNC,IAAMF,EAAAA,YAAAA,CAAEG,MAAM,EAAA,CAAGC,QAAQ,EAAA;AACzBC,YAAAA,EAAAA,EAAIL,aAAEG,MAAM,EAAA;YACZG,EAAIN,EAAAA,YAAAA,CAAEG,MAAM,EAAA,CAAGC,QAAQ,EAAA;YACvBG,GAAKP,EAAAA,YAAAA,CAAEG,MAAM,EAAA,CAAGC,QAAQ,EAAA;YACxBI,OAASR,EAAAA,YAAAA,CAAEG,MAAM,EAAA,CAAGC,QAAQ,EAAA;AAC5BK,YAAAA,OAAAA,EAAST,aAAEG,MAAM,EAAA;AACjBO,YAAAA,IAAAA,EAAMV,aAAEG,MAAM,EAAA;YACdQ,IAAMX,EAAAA,YAAAA,CAAEG,MAAM,EAAA,CAAGC,QAAQ;SAE1BQ,CAAAA,CAAAA,QAAQ,CAACZ,YAAAA,CAAEG,MAAM,EAAA,CAAA;AACtB;AAEA,IAAA,IAAIU,aAAgB,GAAA;QAClB,OAAOb,YAAAA,CAAEC,MAAM,CAAC,EAAC,CAAA;AACnB;AArBA,IAAA,WAAA,CAAmBa,MAAmB,CAAE;QACtC,IAAI,CAACC,OAAO,GAAGD,MAAAA;AACjB;AAoBF;;;;"}
1
+ {"version":3,"file":"email.js","sources":["../../../../server/src/routes/validation/email.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport * as z from 'zod/v4';\n\nexport class EmailRouteValidator {\n protected readonly _strapi: Core.Strapi;\n\n public constructor(strapi: Core.Strapi) {\n this._strapi = strapi;\n }\n\n get sendEmailInput() {\n return z\n .object({\n from: z.string().optional(),\n to: z.string(),\n cc: z.string().optional(),\n bcc: z.string().optional(),\n replyTo: z.string().optional(),\n subject: z.string(),\n text: z.string(),\n html: z.string().optional(),\n })\n .catchall(z.string());\n }\n\n get emailResponse() {\n return z.object({});\n }\n}\n"],"names":["EmailRouteValidator","sendEmailInput","z","object","from","string","optional","to","cc","bcc","replyTo","subject","text","html","catchall","emailResponse","strapi","_strapi"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGO,MAAMA,mBAAAA,CAAAA;AAOX,IAAA,IAAIC,cAAAA,GAAiB;QACnB,OAAOC,YAAAA,CACJC,MAAM,CAAC;YACNC,IAAAA,EAAMF,YAAAA,CAAEG,MAAM,EAAA,CAAGC,QAAQ,EAAA;AACzBC,YAAAA,EAAAA,EAAIL,aAAEG,MAAM,EAAA;YACZG,EAAAA,EAAIN,YAAAA,CAAEG,MAAM,EAAA,CAAGC,QAAQ,EAAA;YACvBG,GAAAA,EAAKP,YAAAA,CAAEG,MAAM,EAAA,CAAGC,QAAQ,EAAA;YACxBI,OAAAA,EAASR,YAAAA,CAAEG,MAAM,EAAA,CAAGC,QAAQ,EAAA;AAC5BK,YAAAA,OAAAA,EAAST,aAAEG,MAAM,EAAA;AACjBO,YAAAA,IAAAA,EAAMV,aAAEG,MAAM,EAAA;YACdQ,IAAAA,EAAMX,YAAAA,CAAEG,MAAM,EAAA,CAAGC,QAAQ;SAC3B,CAAA,CACCQ,QAAQ,CAACZ,YAAAA,CAAEG,MAAM,EAAA,CAAA;AACtB,IAAA;AAEA,IAAA,IAAIU,aAAAA,GAAgB;QAClB,OAAOb,YAAAA,CAAEC,MAAM,CAAC,EAAC,CAAA;AACnB,IAAA;AArBA,IAAA,WAAA,CAAmBa,MAAmB,CAAE;QACtC,IAAI,CAACC,OAAO,GAAGD,MAAAA;AACjB,IAAA;AAoBF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"email.mjs","sources":["../../../../server/src/routes/validation/email.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport * as z from 'zod/v4';\n\nexport class EmailRouteValidator {\n protected readonly _strapi: Core.Strapi;\n\n public constructor(strapi: Core.Strapi) {\n this._strapi = strapi;\n }\n\n get sendEmailInput() {\n return z\n .object({\n from: z.string().optional(),\n to: z.string(),\n cc: z.string().optional(),\n bcc: z.string().optional(),\n replyTo: z.string().optional(),\n subject: z.string(),\n text: z.string(),\n html: z.string().optional(),\n })\n .catchall(z.string());\n }\n\n get emailResponse() {\n return z.object({});\n }\n}\n"],"names":["EmailRouteValidator","sendEmailInput","z","object","from","string","optional","to","cc","bcc","replyTo","subject","text","html","catchall","emailResponse","strapi","_strapi"],"mappings":";;AAGO,MAAMA,mBAAAA,CAAAA;AAOX,IAAA,IAAIC,cAAiB,GAAA;QACnB,OAAOC,CAAAA,CACJC,MAAM,CAAC;YACNC,IAAMF,EAAAA,CAAAA,CAAEG,MAAM,EAAA,CAAGC,QAAQ,EAAA;AACzBC,YAAAA,EAAAA,EAAIL,EAAEG,MAAM,EAAA;YACZG,EAAIN,EAAAA,CAAAA,CAAEG,MAAM,EAAA,CAAGC,QAAQ,EAAA;YACvBG,GAAKP,EAAAA,CAAAA,CAAEG,MAAM,EAAA,CAAGC,QAAQ,EAAA;YACxBI,OAASR,EAAAA,CAAAA,CAAEG,MAAM,EAAA,CAAGC,QAAQ,EAAA;AAC5BK,YAAAA,OAAAA,EAAST,EAAEG,MAAM,EAAA;AACjBO,YAAAA,IAAAA,EAAMV,EAAEG,MAAM,EAAA;YACdQ,IAAMX,EAAAA,CAAAA,CAAEG,MAAM,EAAA,CAAGC,QAAQ;SAE1BQ,CAAAA,CAAAA,QAAQ,CAACZ,CAAAA,CAAEG,MAAM,EAAA,CAAA;AACtB;AAEA,IAAA,IAAIU,aAAgB,GAAA;QAClB,OAAOb,CAAAA,CAAEC,MAAM,CAAC,EAAC,CAAA;AACnB;AArBA,IAAA,WAAA,CAAmBa,MAAmB,CAAE;QACtC,IAAI,CAACC,OAAO,GAAGD,MAAAA;AACjB;AAoBF;;;;"}
1
+ {"version":3,"file":"email.mjs","sources":["../../../../server/src/routes/validation/email.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport * as z from 'zod/v4';\n\nexport class EmailRouteValidator {\n protected readonly _strapi: Core.Strapi;\n\n public constructor(strapi: Core.Strapi) {\n this._strapi = strapi;\n }\n\n get sendEmailInput() {\n return z\n .object({\n from: z.string().optional(),\n to: z.string(),\n cc: z.string().optional(),\n bcc: z.string().optional(),\n replyTo: z.string().optional(),\n subject: z.string(),\n text: z.string(),\n html: z.string().optional(),\n })\n .catchall(z.string());\n }\n\n get emailResponse() {\n return z.object({});\n }\n}\n"],"names":["EmailRouteValidator","sendEmailInput","z","object","from","string","optional","to","cc","bcc","replyTo","subject","text","html","catchall","emailResponse","strapi","_strapi"],"mappings":";;AAGO,MAAMA,mBAAAA,CAAAA;AAOX,IAAA,IAAIC,cAAAA,GAAiB;QACnB,OAAOC,CAAAA,CACJC,MAAM,CAAC;YACNC,IAAAA,EAAMF,CAAAA,CAAEG,MAAM,EAAA,CAAGC,QAAQ,EAAA;AACzBC,YAAAA,EAAAA,EAAIL,EAAEG,MAAM,EAAA;YACZG,EAAAA,EAAIN,CAAAA,CAAEG,MAAM,EAAA,CAAGC,QAAQ,EAAA;YACvBG,GAAAA,EAAKP,CAAAA,CAAEG,MAAM,EAAA,CAAGC,QAAQ,EAAA;YACxBI,OAAAA,EAASR,CAAAA,CAAEG,MAAM,EAAA,CAAGC,QAAQ,EAAA;AAC5BK,YAAAA,OAAAA,EAAST,EAAEG,MAAM,EAAA;AACjBO,YAAAA,IAAAA,EAAMV,EAAEG,MAAM,EAAA;YACdQ,IAAAA,EAAMX,CAAAA,CAAEG,MAAM,EAAA,CAAGC,QAAQ;SAC3B,CAAA,CACCQ,QAAQ,CAACZ,CAAAA,CAAEG,MAAM,EAAA,CAAA;AACtB,IAAA;AAEA,IAAA,IAAIU,aAAAA,GAAgB;QAClB,OAAOb,CAAAA,CAAEC,MAAM,CAAC,EAAC,CAAA;AACnB,IAAA;AArBA,IAAA,WAAA,CAAmBa,MAAmB,CAAE;QACtC,IAAI,CAACC,OAAO,GAAGD,MAAAA;AACjB,IAAA;AAoBF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"email.js","sources":["../../../server/src/services/email.ts"],"sourcesContent":["import * as _ from 'lodash';\nimport { objects, template } from '@strapi/utils';\n\nimport type {\n EmailConfig,\n EmailOptions,\n EmailTemplate,\n EmailTemplateData,\n SendOptions,\n} from '../types';\n\nconst { createStrictInterpolationRegExp } = template;\n\nconst getProviderSettings = (): EmailConfig => strapi.config.get('plugin::email');\n\nconst send = async (options: SendOptions) => strapi.plugin('email').provider.send(options);\n\n/**\n * fill subject, text and html using lodash template\n * @param {object} emailOptions - to, from and replyto...\n * @param {object} emailTemplate - object containing attributes to fill\n * @param {object} data - data used to fill the template\n * @returns {{ subject, text, subject }}\n */\nconst sendTemplatedEmail = (\n emailOptions: EmailOptions,\n emailTemplate: EmailTemplate,\n data: EmailTemplateData\n) => {\n const attributes = ['subject', 'text', 'html'];\n const missingAttributes = _.difference(attributes, Object.keys(emailTemplate));\n\n if (missingAttributes.length > 0) {\n throw new Error(\n `Following attributes are missing from your email template : ${missingAttributes.join(', ')}`\n );\n }\n\n const allowedInterpolationVariables = objects.keysDeep(data);\n const interpolate = createStrictInterpolationRegExp(allowedInterpolationVariables, 'g');\n\n const templatedAttributes = attributes.reduce(\n (compiled, attribute) =>\n emailTemplate[attribute]\n ? Object.assign(compiled, {\n [attribute]: _.template(emailTemplate[attribute], {\n interpolate,\n })(data),\n })\n : compiled,\n {}\n );\n\n return strapi.plugin('email').provider.send({ ...emailOptions, ...templatedAttributes });\n};\n\nconst emailService = () => ({\n getProviderSettings,\n send,\n sendTemplatedEmail,\n});\n\nexport default emailService;\n"],"names":["createStrictInterpolationRegExp","template","getProviderSettings","strapi","config","get","send","options","plugin","provider","sendTemplatedEmail","emailOptions","emailTemplate","data","attributes","missingAttributes","_","difference","Object","keys","length","Error","join","allowedInterpolationVariables","objects","keysDeep","interpolate","templatedAttributes","reduce","compiled","attribute","assign","emailService"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAWA,MAAM,EAAEA,+BAA+B,EAAE,GAAGC,cAAAA;AAE5C,MAAMC,sBAAsB,IAAmBC,MAAAA,CAAOC,MAAM,CAACC,GAAG,CAAC,eAAA,CAAA;AAEjE,MAAMC,IAAAA,GAAO,OAAOC,OAAAA,GAAyBJ,MAAOK,CAAAA,MAAM,CAAC,OAASC,CAAAA,CAAAA,QAAQ,CAACH,IAAI,CAACC,OAAAA,CAAAA;AAElF;;;;;;AAMC,IACD,MAAMG,kBAAAA,GAAqB,CACzBC,YAAAA,EACAC,aACAC,EAAAA,IAAAA,GAAAA;AAEA,IAAA,MAAMC,UAAa,GAAA;AAAC,QAAA,SAAA;AAAW,QAAA,MAAA;AAAQ,QAAA;AAAO,KAAA;AAC9C,IAAA,MAAMC,oBAAoBC,YAAEC,CAAAA,UAAU,CAACH,UAAYI,EAAAA,MAAAA,CAAOC,IAAI,CAACP,aAAAA,CAAAA,CAAAA;IAE/D,IAAIG,iBAAAA,CAAkBK,MAAM,GAAG,CAAG,EAAA;QAChC,MAAM,IAAIC,MACR,CAAC,4DAA4D,EAAEN,iBAAkBO,CAAAA,IAAI,CAAC,IAAO,CAAA,CAAA,CAAA,CAAA;AAEjG;IAEA,MAAMC,6BAAAA,GAAgCC,aAAQC,CAAAA,QAAQ,CAACZ,IAAAA,CAAAA;IACvD,MAAMa,WAAAA,GAAc1B,gCAAgCuB,6BAA+B,EAAA,GAAA,CAAA;AAEnF,IAAA,MAAMI,mBAAsBb,GAAAA,UAAAA,CAAWc,MAAM,CAC3C,CAACC,QAAUC,EAAAA,SAAAA,GACTlB,aAAa,CAACkB,SAAU,CAAA,GACpBZ,MAAOa,CAAAA,MAAM,CAACF,QAAU,EAAA;YACtB,CAACC,SAAAA,GAAYd,YAAEf,CAAAA,QAAQ,CAACW,aAAa,CAACkB,UAAU,EAAE;AAChDJ,gBAAAA;aACCb,CAAAA,CAAAA,IAAAA;AACL,SAAA,CAAA,GACAgB,UACN,EAAC,CAAA;AAGH,IAAA,OAAO1B,OAAOK,MAAM,CAAC,SAASC,QAAQ,CAACH,IAAI,CAAC;AAAE,QAAA,GAAGK,YAAY;AAAE,QAAA,GAAGgB;AAAoB,KAAA,CAAA;AACxF,CAAA;AAEMK,MAAAA,YAAAA,GAAe,KAAO;AAC1B9B,QAAAA,mBAAAA;AACAI,QAAAA,IAAAA;AACAI,QAAAA;KACF;;;;"}
1
+ {"version":3,"file":"email.js","sources":["../../../server/src/services/email.ts"],"sourcesContent":["import * as _ from 'lodash';\nimport { objects, template } from '@strapi/utils';\n\nimport type {\n EmailConfig,\n EmailOptions,\n EmailTemplate,\n EmailTemplateData,\n SendOptions,\n} from '../types';\n\nconst { createStrictInterpolationRegExp } = template;\n\nconst getProviderSettings = (): EmailConfig => strapi.config.get('plugin::email');\n\nconst send = async (options: SendOptions) => strapi.plugin('email').provider.send(options);\n\n/**\n * fill subject, text and html using lodash template\n * @param {object} emailOptions - to, from and replyto...\n * @param {object} emailTemplate - object containing attributes to fill\n * @param {object} data - data used to fill the template\n * @returns {{ subject, text, subject }}\n */\nconst sendTemplatedEmail = (\n emailOptions: EmailOptions,\n emailTemplate: EmailTemplate,\n data: EmailTemplateData\n) => {\n const attributes = ['subject', 'text', 'html'];\n const missingAttributes = _.difference(attributes, Object.keys(emailTemplate));\n\n if (missingAttributes.length > 0) {\n throw new Error(\n `Following attributes are missing from your email template : ${missingAttributes.join(', ')}`\n );\n }\n\n const allowedInterpolationVariables = objects.keysDeep(data);\n const interpolate = createStrictInterpolationRegExp(allowedInterpolationVariables, 'g');\n\n const templatedAttributes = attributes.reduce(\n (compiled, attribute) =>\n emailTemplate[attribute]\n ? Object.assign(compiled, {\n [attribute]: _.template(emailTemplate[attribute], {\n interpolate,\n })(data),\n })\n : compiled,\n {}\n );\n\n return strapi.plugin('email').provider.send({ ...emailOptions, ...templatedAttributes });\n};\n\nconst emailService = () => ({\n getProviderSettings,\n send,\n sendTemplatedEmail,\n});\n\nexport default emailService;\n"],"names":["createStrictInterpolationRegExp","template","getProviderSettings","strapi","config","get","send","options","plugin","provider","sendTemplatedEmail","emailOptions","emailTemplate","data","attributes","missingAttributes","_","difference","Object","keys","length","Error","join","allowedInterpolationVariables","objects","keysDeep","interpolate","templatedAttributes","reduce","compiled","attribute","assign","emailService"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAWA,MAAM,EAAEA,+BAA+B,EAAE,GAAGC,cAAAA;AAE5C,MAAMC,sBAAsB,IAAmBC,MAAAA,CAAOC,MAAM,CAACC,GAAG,CAAC,eAAA,CAAA;AAEjE,MAAMC,IAAAA,GAAO,OAAOC,OAAAA,GAAyBJ,MAAAA,CAAOK,MAAM,CAAC,OAAA,CAAA,CAASC,QAAQ,CAACH,IAAI,CAACC,OAAAA,CAAAA;AAElF;;;;;;AAMC,IACD,MAAMG,kBAAAA,GAAqB,CACzBC,YAAAA,EACAC,aAAAA,EACAC,IAAAA,GAAAA;AAEA,IAAA,MAAMC,UAAAA,GAAa;AAAC,QAAA,SAAA;AAAW,QAAA,MAAA;AAAQ,QAAA;AAAO,KAAA;AAC9C,IAAA,MAAMC,oBAAoBC,YAAAA,CAAEC,UAAU,CAACH,UAAAA,EAAYI,MAAAA,CAAOC,IAAI,CAACP,aAAAA,CAAAA,CAAAA;IAE/D,IAAIG,iBAAAA,CAAkBK,MAAM,GAAG,CAAA,EAAG;QAChC,MAAM,IAAIC,MACR,CAAC,4DAA4D,EAAEN,iBAAAA,CAAkBO,IAAI,CAAC,IAAA,CAAA,CAAA,CAAO,CAAA;AAEjG,IAAA;IAEA,MAAMC,6BAAAA,GAAgCC,aAAAA,CAAQC,QAAQ,CAACZ,IAAAA,CAAAA;IACvD,MAAMa,WAAAA,GAAc1B,gCAAgCuB,6BAAAA,EAA+B,GAAA,CAAA;AAEnF,IAAA,MAAMI,mBAAAA,GAAsBb,UAAAA,CAAWc,MAAM,CAC3C,CAACC,QAAAA,EAAUC,SAAAA,GACTlB,aAAa,CAACkB,SAAAA,CAAU,GACpBZ,MAAAA,CAAOa,MAAM,CAACF,QAAAA,EAAU;YACtB,CAACC,SAAAA,GAAYd,YAAAA,CAAEf,QAAQ,CAACW,aAAa,CAACkB,UAAU,EAAE;AAChDJ,gBAAAA;aACF,CAAA,CAAGb,IAAAA;AACL,SAAA,CAAA,GACAgB,UACN,EAAC,CAAA;AAGH,IAAA,OAAO1B,OAAOK,MAAM,CAAC,SAASC,QAAQ,CAACH,IAAI,CAAC;AAAE,QAAA,GAAGK,YAAY;AAAE,QAAA,GAAGgB;AAAoB,KAAA,CAAA;AACxF,CAAA;AAEA,MAAMK,YAAAA,GAAe,KAAO;AAC1B9B,QAAAA,mBAAAA;AACAI,QAAAA,IAAAA;AACAI,QAAAA;KACF;;;;"}
@@ -1,5 +1,5 @@
1
1
  import * as _ from 'lodash';
2
- import { objects, template } from '@strapi/utils';
2
+ import { template, objects } from '@strapi/utils';
3
3
 
4
4
  const { createStrictInterpolationRegExp } = template;
5
5
  const getProviderSettings = ()=>strapi.config.get('plugin::email');
@@ -1 +1 @@
1
- {"version":3,"file":"email.mjs","sources":["../../../server/src/services/email.ts"],"sourcesContent":["import * as _ from 'lodash';\nimport { objects, template } from '@strapi/utils';\n\nimport type {\n EmailConfig,\n EmailOptions,\n EmailTemplate,\n EmailTemplateData,\n SendOptions,\n} from '../types';\n\nconst { createStrictInterpolationRegExp } = template;\n\nconst getProviderSettings = (): EmailConfig => strapi.config.get('plugin::email');\n\nconst send = async (options: SendOptions) => strapi.plugin('email').provider.send(options);\n\n/**\n * fill subject, text and html using lodash template\n * @param {object} emailOptions - to, from and replyto...\n * @param {object} emailTemplate - object containing attributes to fill\n * @param {object} data - data used to fill the template\n * @returns {{ subject, text, subject }}\n */\nconst sendTemplatedEmail = (\n emailOptions: EmailOptions,\n emailTemplate: EmailTemplate,\n data: EmailTemplateData\n) => {\n const attributes = ['subject', 'text', 'html'];\n const missingAttributes = _.difference(attributes, Object.keys(emailTemplate));\n\n if (missingAttributes.length > 0) {\n throw new Error(\n `Following attributes are missing from your email template : ${missingAttributes.join(', ')}`\n );\n }\n\n const allowedInterpolationVariables = objects.keysDeep(data);\n const interpolate = createStrictInterpolationRegExp(allowedInterpolationVariables, 'g');\n\n const templatedAttributes = attributes.reduce(\n (compiled, attribute) =>\n emailTemplate[attribute]\n ? Object.assign(compiled, {\n [attribute]: _.template(emailTemplate[attribute], {\n interpolate,\n })(data),\n })\n : compiled,\n {}\n );\n\n return strapi.plugin('email').provider.send({ ...emailOptions, ...templatedAttributes });\n};\n\nconst emailService = () => ({\n getProviderSettings,\n send,\n sendTemplatedEmail,\n});\n\nexport default emailService;\n"],"names":["createStrictInterpolationRegExp","template","getProviderSettings","strapi","config","get","send","options","plugin","provider","sendTemplatedEmail","emailOptions","emailTemplate","data","attributes","missingAttributes","_","difference","Object","keys","length","Error","join","allowedInterpolationVariables","objects","keysDeep","interpolate","templatedAttributes","reduce","compiled","attribute","assign","emailService"],"mappings":";;;AAWA,MAAM,EAAEA,+BAA+B,EAAE,GAAGC,QAAAA;AAE5C,MAAMC,sBAAsB,IAAmBC,MAAAA,CAAOC,MAAM,CAACC,GAAG,CAAC,eAAA,CAAA;AAEjE,MAAMC,IAAAA,GAAO,OAAOC,OAAAA,GAAyBJ,MAAOK,CAAAA,MAAM,CAAC,OAASC,CAAAA,CAAAA,QAAQ,CAACH,IAAI,CAACC,OAAAA,CAAAA;AAElF;;;;;;AAMC,IACD,MAAMG,kBAAAA,GAAqB,CACzBC,YAAAA,EACAC,aACAC,EAAAA,IAAAA,GAAAA;AAEA,IAAA,MAAMC,UAAa,GAAA;AAAC,QAAA,SAAA;AAAW,QAAA,MAAA;AAAQ,QAAA;AAAO,KAAA;AAC9C,IAAA,MAAMC,oBAAoBC,CAAEC,CAAAA,UAAU,CAACH,UAAYI,EAAAA,MAAAA,CAAOC,IAAI,CAACP,aAAAA,CAAAA,CAAAA;IAE/D,IAAIG,iBAAAA,CAAkBK,MAAM,GAAG,CAAG,EAAA;QAChC,MAAM,IAAIC,MACR,CAAC,4DAA4D,EAAEN,iBAAkBO,CAAAA,IAAI,CAAC,IAAO,CAAA,CAAA,CAAA,CAAA;AAEjG;IAEA,MAAMC,6BAAAA,GAAgCC,OAAQC,CAAAA,QAAQ,CAACZ,IAAAA,CAAAA;IACvD,MAAMa,WAAAA,GAAc1B,gCAAgCuB,6BAA+B,EAAA,GAAA,CAAA;AAEnF,IAAA,MAAMI,mBAAsBb,GAAAA,UAAAA,CAAWc,MAAM,CAC3C,CAACC,QAAUC,EAAAA,SAAAA,GACTlB,aAAa,CAACkB,SAAU,CAAA,GACpBZ,MAAOa,CAAAA,MAAM,CAACF,QAAU,EAAA;YACtB,CAACC,SAAAA,GAAYd,CAAEf,CAAAA,QAAQ,CAACW,aAAa,CAACkB,UAAU,EAAE;AAChDJ,gBAAAA;aACCb,CAAAA,CAAAA,IAAAA;AACL,SAAA,CAAA,GACAgB,UACN,EAAC,CAAA;AAGH,IAAA,OAAO1B,OAAOK,MAAM,CAAC,SAASC,QAAQ,CAACH,IAAI,CAAC;AAAE,QAAA,GAAGK,YAAY;AAAE,QAAA,GAAGgB;AAAoB,KAAA,CAAA;AACxF,CAAA;AAEMK,MAAAA,YAAAA,GAAe,KAAO;AAC1B9B,QAAAA,mBAAAA;AACAI,QAAAA,IAAAA;AACAI,QAAAA;KACF;;;;"}
1
+ {"version":3,"file":"email.mjs","sources":["../../../server/src/services/email.ts"],"sourcesContent":["import * as _ from 'lodash';\nimport { objects, template } from '@strapi/utils';\n\nimport type {\n EmailConfig,\n EmailOptions,\n EmailTemplate,\n EmailTemplateData,\n SendOptions,\n} from '../types';\n\nconst { createStrictInterpolationRegExp } = template;\n\nconst getProviderSettings = (): EmailConfig => strapi.config.get('plugin::email');\n\nconst send = async (options: SendOptions) => strapi.plugin('email').provider.send(options);\n\n/**\n * fill subject, text and html using lodash template\n * @param {object} emailOptions - to, from and replyto...\n * @param {object} emailTemplate - object containing attributes to fill\n * @param {object} data - data used to fill the template\n * @returns {{ subject, text, subject }}\n */\nconst sendTemplatedEmail = (\n emailOptions: EmailOptions,\n emailTemplate: EmailTemplate,\n data: EmailTemplateData\n) => {\n const attributes = ['subject', 'text', 'html'];\n const missingAttributes = _.difference(attributes, Object.keys(emailTemplate));\n\n if (missingAttributes.length > 0) {\n throw new Error(\n `Following attributes are missing from your email template : ${missingAttributes.join(', ')}`\n );\n }\n\n const allowedInterpolationVariables = objects.keysDeep(data);\n const interpolate = createStrictInterpolationRegExp(allowedInterpolationVariables, 'g');\n\n const templatedAttributes = attributes.reduce(\n (compiled, attribute) =>\n emailTemplate[attribute]\n ? Object.assign(compiled, {\n [attribute]: _.template(emailTemplate[attribute], {\n interpolate,\n })(data),\n })\n : compiled,\n {}\n );\n\n return strapi.plugin('email').provider.send({ ...emailOptions, ...templatedAttributes });\n};\n\nconst emailService = () => ({\n getProviderSettings,\n send,\n sendTemplatedEmail,\n});\n\nexport default emailService;\n"],"names":["createStrictInterpolationRegExp","template","getProviderSettings","strapi","config","get","send","options","plugin","provider","sendTemplatedEmail","emailOptions","emailTemplate","data","attributes","missingAttributes","_","difference","Object","keys","length","Error","join","allowedInterpolationVariables","objects","keysDeep","interpolate","templatedAttributes","reduce","compiled","attribute","assign","emailService"],"mappings":";;;AAWA,MAAM,EAAEA,+BAA+B,EAAE,GAAGC,QAAAA;AAE5C,MAAMC,sBAAsB,IAAmBC,MAAAA,CAAOC,MAAM,CAACC,GAAG,CAAC,eAAA,CAAA;AAEjE,MAAMC,IAAAA,GAAO,OAAOC,OAAAA,GAAyBJ,MAAAA,CAAOK,MAAM,CAAC,OAAA,CAAA,CAASC,QAAQ,CAACH,IAAI,CAACC,OAAAA,CAAAA;AAElF;;;;;;AAMC,IACD,MAAMG,kBAAAA,GAAqB,CACzBC,YAAAA,EACAC,aAAAA,EACAC,IAAAA,GAAAA;AAEA,IAAA,MAAMC,UAAAA,GAAa;AAAC,QAAA,SAAA;AAAW,QAAA,MAAA;AAAQ,QAAA;AAAO,KAAA;AAC9C,IAAA,MAAMC,oBAAoBC,CAAAA,CAAEC,UAAU,CAACH,UAAAA,EAAYI,MAAAA,CAAOC,IAAI,CAACP,aAAAA,CAAAA,CAAAA;IAE/D,IAAIG,iBAAAA,CAAkBK,MAAM,GAAG,CAAA,EAAG;QAChC,MAAM,IAAIC,MACR,CAAC,4DAA4D,EAAEN,iBAAAA,CAAkBO,IAAI,CAAC,IAAA,CAAA,CAAA,CAAO,CAAA;AAEjG,IAAA;IAEA,MAAMC,6BAAAA,GAAgCC,OAAAA,CAAQC,QAAQ,CAACZ,IAAAA,CAAAA;IACvD,MAAMa,WAAAA,GAAc1B,gCAAgCuB,6BAAAA,EAA+B,GAAA,CAAA;AAEnF,IAAA,MAAMI,mBAAAA,GAAsBb,UAAAA,CAAWc,MAAM,CAC3C,CAACC,QAAAA,EAAUC,SAAAA,GACTlB,aAAa,CAACkB,SAAAA,CAAU,GACpBZ,MAAAA,CAAOa,MAAM,CAACF,QAAAA,EAAU;YACtB,CAACC,SAAAA,GAAYd,CAAAA,CAAEf,QAAQ,CAACW,aAAa,CAACkB,UAAU,EAAE;AAChDJ,gBAAAA;aACF,CAAA,CAAGb,IAAAA;AACL,SAAA,CAAA,GACAgB,UACN,EAAC,CAAA;AAGH,IAAA,OAAO1B,OAAOK,MAAM,CAAC,SAASC,QAAQ,CAACH,IAAI,CAAC;AAAE,QAAA,GAAGK,YAAY;AAAE,QAAA,GAAGgB;AAAoB,KAAA,CAAA;AACxF,CAAA;AAEA,MAAMK,YAAAA,GAAe,KAAO;AAC1B9B,QAAAA,mBAAAA;AACAI,QAAAA,IAAAA;AACAI,QAAAA;KACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../server/src/services/index.ts"],"sourcesContent":["import email from './email';\n\nexport const services = { email };\n"],"names":["services","email"],"mappings":";;;;MAEaA,QAAW,GAAA;AAAEC,IAAAA;AAAM;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../server/src/services/index.ts"],"sourcesContent":["import email from './email';\n\nexport const services = { email };\n"],"names":["services","email"],"mappings":";;;;MAEaA,QAAAA,GAAW;AAAEC,IAAAA;AAAM;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../server/src/services/index.ts"],"sourcesContent":["import email from './email';\n\nexport const services = { email };\n"],"names":["services","email"],"mappings":";;MAEaA,QAAW,GAAA;AAAEC,WAAAA;AAAM;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../server/src/services/index.ts"],"sourcesContent":["import email from './email';\n\nexport const services = { email };\n"],"names":["services","email"],"mappings":";;MAEaA,QAAAA,GAAW;AAAEC,WAAAA;AAAM;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../server/src/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAiD1C,eAAO,MAAM,SAAS,eAAsB;IAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE,kBAgBlE,CAAC"}
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../server/src/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAsD1C,eAAO,MAAM,SAAS,eAAsB;IAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE,kBAgBlE,CAAC"}
@@ -8,6 +8,7 @@ declare const emailController: {
8
8
  send(ctx: Koa.Context): Promise<void>;
9
9
  test(ctx: Koa.Context): Promise<void>;
10
10
  getSettings(ctx: Koa.Context): Promise<void>;
11
+ verify(ctx: Koa.Context): Promise<void>;
11
12
  };
12
13
  export default emailController;
13
14
  //# sourceMappingURL=email.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/email.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAM3B;;;;GAIG;AACH,QAAA,MAAM,eAAe;cACH,IAAI,OAAO;cAmBX,IAAI,OAAO;qBA+BJ,IAAI,OAAO;CAUnC,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/email.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAM3B;;;;GAIG;AACH,QAAA,MAAM,eAAe;cACH,IAAI,OAAO;cAmBX,IAAI,OAAO;qBA+BJ,IAAI,OAAO;gBAyBhB,IAAI,OAAO;CAiB9B,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -4,6 +4,7 @@ export declare const controllers: {
4
4
  send(ctx: import("koa").Context): Promise<void>;
5
5
  test(ctx: import("koa").Context): Promise<void>;
6
6
  getSettings(ctx: import("koa").Context): Promise<void>;
7
+ verify(ctx: import("koa").Context): Promise<void>;
7
8
  };
8
9
  };
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/index.ts"],"names":[],"mappings":";AAEA,eAAO,MAAM,WAAW;;;;;;CAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/index.ts"],"names":[],"mappings":";AAEA,eAAO,MAAM,WAAW;;;;;;;CAAY,CAAC"}
@@ -37,6 +37,7 @@ declare const _default: {
37
37
  send(ctx: import("koa").Context): Promise<void>;
38
38
  test(ctx: import("koa").Context): Promise<void>;
39
39
  getSettings(ctx: import("koa").Context): Promise<void>;
40
+ verify(ctx: import("koa").Context): Promise<void>;
40
41
  };
41
42
  };
42
43
  config: import("./types").StrapiConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../server/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,wBAOE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../server/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,wBAOE"}
@@ -1 +1 @@
1
- {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../../server/src/routes/admin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wBAkCE"}
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../../server/src/routes/admin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wBA6CE"}