strapi-plugin-magic-mail 2.0.0 → 2.0.2

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/README.md CHANGED
@@ -230,11 +230,12 @@ await strapi.plugin('magic-mail').service('email-router').send({
230
230
 
231
231
  | Feature | FREE | PREMIUM | ADVANCED | ENTERPRISE |
232
232
  |---------|------|---------|----------|------------|
233
- | **Visual Designer** | ✅ (3 templates) | ✅ (10 templates) | ✅ (Unlimited) | ✅ (Unlimited) |
234
- | **Drag & Drop Editor** | | | | |
235
- | **Mustache Variables** | ✅ | ✅ | ✅ | ✅ |
236
- | **Template Versioning** | | | ✅ | ✅ |
237
- | **Import/Export** | ❌ | | ✅ | ✅ |
233
+ | **Visual Designer** | ✅ Basic builder | ✅ + template library | ✅ Pro components | ✅ Enterprise suite |
234
+ | **Templates Included** | 25 | 100 | 500 | Unlimited |
235
+ | **Drag & Drop + Mustache** | ✅ | ✅ | ✅ | ✅ |
236
+ | **Import / Export** | | | ✅ | ✅ |
237
+ | **Template Versioning** | ❌ | | ✅ | ✅ |
238
+ | **Analytics** | ❌ | Basic insights | Advanced dashboard | Enterprise analytics |
238
239
  | **Custom Blocks** | ❌ | ❌ | ❌ | ✅ |
239
240
  | **Team Library** | ❌ | ❌ | ❌ | ✅ |
240
241
  | **A/B Testing** | ❌ | ❌ | ❌ | ✅ |
@@ -1372,33 +1373,7 @@ We welcome contributions!
1372
1373
 
1373
1374
  ---
1374
1375
 
1375
- ## 📝 Changelog
1376
-
1377
- ### v1.0.0 (2025-11-13)
1378
-
1379
- **Initial Release** 🎉
1380
-
1381
- **Features:**
1382
- - ✅ 6 Email Providers (Gmail, Microsoft, Yahoo OAuth + SMTP, SendGrid, Mailgun)
1383
- - ✅ OAuth 2.0 Support (Gmail, Microsoft 365, Yahoo Mail)
1384
- - ✅ Smart Routing Rules Engine
1385
- - ✅ Automatic Failover & Rate Limiting
1386
- - ✅ Beautiful Admin UI with Heroicons
1387
- - ✅ Email Analytics Dashboard
1388
- - ✅ Strapi Email Service Override (Email Designer compatible)
1389
- - ✅ Comprehensive Security (TLS 1.2+, DKIM, SPF, DMARC)
1390
- - ✅ GDPR/CAN-SPAM Compliance
1391
- - ✅ Test Features (Direct & Strapi Service)
1392
- - ✅ Encrypted Credential Storage (AES-256-GCM)
1393
- - ✅ Attachment Support (all providers)
1394
- - ✅ Priority Email Headers
1395
- - ✅ List-Unsubscribe Headers
1396
- - ✅ Security Validation
1397
- - ✅ Hourly/Daily Counter Resets
1398
-
1399
- ---
1400
-
1401
- ## 📄 License
1376
+ ## License
1402
1377
 
1403
1378
  **MIT License**
1404
1379
 
@@ -1433,9 +1408,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
1433
1408
  ## 💬 Support
1434
1409
 
1435
1410
  **Need help?**
1436
- - 📖 [Documentation](https://github.com/Schero94/MagicMail#readme)
1437
- - 🐛 [Report Issues](https://github.com/Schero94/MagicMail/issues)
1438
- - 💡 [Feature Requests](https://github.com/Schero94/MagicMail/discussions)
1411
+ - 📖 [Documentation](https://github.com/Schero94/Magic-Mail#readme)
1412
+ - 🐛 [Report Issues](https://github.com/Schero94/Magic-Mail/issues)
1413
+ - 💡 [Feature Requests](https://github.com/Schero94/Magic-Mail/discussions)
1439
1414
 
1440
1415
 
1441
1416
  ---
@@ -1443,7 +1418,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
1443
1418
  ## ⭐ Show Your Support
1444
1419
 
1445
1420
  If MagicMail helps your project, please:
1446
- - ⭐ Star the repo on [GitHub](https://github.com/Schero94/MagicMail)
1421
+ - ⭐ Star the repo on [GitHub](https://github.com/Schero94/Magic-Mail)
1447
1422
  - 📢 Share with your team
1448
1423
  - 🐦 Tweet about it
1449
1424
 
@@ -26,7 +26,16 @@ import {
26
26
  CodeBracketIcon,
27
27
  } from '@heroicons/react/24/outline';
28
28
  import { useLicense } from '../../hooks/useLicense';
29
- import EmailEditor from 'react-email-editor';
29
+ import * as ReactEmailEditor from 'react-email-editor';
30
+
31
+ const EmailEditorComponent =
32
+ ReactEmailEditor.EmailEditor ||
33
+ ReactEmailEditor.default ||
34
+ ReactEmailEditor;
35
+
36
+ if (!EmailEditorComponent) {
37
+ console.error('[MagicMail] Failed to resolve EmailEditor component export', ReactEmailEditor);
38
+ }
30
39
 
31
40
  // Standard Email Template for Core Emails (when no design exists)
32
41
  const STANDARD_EMAIL_TEMPLATE = {
@@ -1118,7 +1127,7 @@ const EditorPage = () => {
1118
1127
  pointerEvents: editorLoaded ? 'auto' : 'none',
1119
1128
  }}
1120
1129
  >
1121
- <EmailEditor
1130
+ <EmailEditorComponent
1122
1131
  ref={emailEditorRef}
1123
1132
  onReady={onEditorReady}
1124
1133
  minHeight="calc(100vh - 240px)"
@@ -8,11 +8,28 @@ const outline = require("@heroicons/react/24/outline");
8
8
  const admin = require("@strapi/strapi/admin");
9
9
  const styled = require("styled-components");
10
10
  const icons = require("@strapi/icons");
11
- const EmailEditor = require("react-email-editor");
11
+ const ReactEmailEditor = require("react-email-editor");
12
12
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
13
+ function _interopNamespace(e) {
14
+ if (e && e.__esModule) return e;
15
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
16
+ if (e) {
17
+ for (const k in e) {
18
+ if (k !== "default") {
19
+ const d = Object.getOwnPropertyDescriptor(e, k);
20
+ Object.defineProperty(n, k, d.get ? d : {
21
+ enumerable: true,
22
+ get: () => e[k]
23
+ });
24
+ }
25
+ }
26
+ }
27
+ n.default = e;
28
+ return Object.freeze(n);
29
+ }
13
30
  const React__default = /* @__PURE__ */ _interopDefault(React);
14
31
  const styled__default = /* @__PURE__ */ _interopDefault(styled);
15
- const EmailEditor__default = /* @__PURE__ */ _interopDefault(EmailEditor);
32
+ const ReactEmailEditor__namespace = /* @__PURE__ */ _interopNamespace(ReactEmailEditor);
16
33
  const useAuthRefresh = () => {
17
34
  const { get } = admin.useFetchClient();
18
35
  const intervalRef = React.useRef(null);
@@ -5324,6 +5341,10 @@ const TemplateList = () => {
5324
5341
  )
5325
5342
  ] });
5326
5343
  };
5344
+ const EmailEditorComponent = ReactEmailEditor__namespace.EmailEditor || ReactEmailEditor__namespace.default || ReactEmailEditor__namespace;
5345
+ if (!EmailEditorComponent) {
5346
+ console.error("[MagicMail] Failed to resolve EmailEditor component export", ReactEmailEditor__namespace);
5347
+ }
5327
5348
  const STANDARD_EMAIL_TEMPLATE = {
5328
5349
  counters: { u_row: 2, u_content_text: 1, u_content_image: 1, u_column: 2 },
5329
5350
  body: {
@@ -6247,7 +6268,7 @@ const EditorPage = () => {
6247
6268
  pointerEvents: editorLoaded ? "auto" : "none"
6248
6269
  },
6249
6270
  children: /* @__PURE__ */ jsxRuntime.jsx(
6250
- EmailEditor__default.default,
6271
+ EmailEditorComponent,
6251
6272
  {
6252
6273
  ref: emailEditorRef,
6253
6274
  onReady: onEditorReady,
@@ -6,7 +6,7 @@ import { EnvelopeIcon, ServerIcon, SparklesIcon, PlusIcon, PencilIcon, PlayIcon,
6
6
  import { useFetchClient, useNotification } from "@strapi/strapi/admin";
7
7
  import styled, { css, keyframes } from "styled-components";
8
8
  import { Star, Mail, Server, Lock, Cog, Check, Cloud, Key, ArrowLeft, ArrowRight } from "@strapi/icons";
9
- import EmailEditor from "react-email-editor";
9
+ import * as ReactEmailEditor from "react-email-editor";
10
10
  const useAuthRefresh = () => {
11
11
  const { get } = useFetchClient();
12
12
  const intervalRef = useRef(null);
@@ -5318,6 +5318,10 @@ const TemplateList = () => {
5318
5318
  )
5319
5319
  ] });
5320
5320
  };
5321
+ const EmailEditorComponent = ReactEmailEditor.EmailEditor || ReactEmailEditor.default || ReactEmailEditor;
5322
+ if (!EmailEditorComponent) {
5323
+ console.error("[MagicMail] Failed to resolve EmailEditor component export", ReactEmailEditor);
5324
+ }
5321
5325
  const STANDARD_EMAIL_TEMPLATE = {
5322
5326
  counters: { u_row: 2, u_content_text: 1, u_content_image: 1, u_column: 2 },
5323
5327
  body: {
@@ -6241,7 +6245,7 @@ const EditorPage = () => {
6241
6245
  pointerEvents: editorLoaded ? "auto" : "none"
6242
6246
  },
6243
6247
  children: /* @__PURE__ */ jsx(
6244
- EmailEditor,
6248
+ EmailEditorComponent,
6245
6249
  {
6246
6250
  ref: emailEditorRef,
6247
6251
  onReady: onEditorReady,
@@ -25,7 +25,7 @@ const index = {
25
25
  id: `${pluginId}.plugin.name`,
26
26
  defaultMessage: "MagicMail"
27
27
  },
28
- Component: () => Promise.resolve().then(() => require("../_chunks/App-CClpsmQH.js"))
28
+ Component: () => Promise.resolve().then(() => require("../_chunks/App-DF9vAGXX.js"))
29
29
  });
30
30
  app.createSettingSection(
31
31
  {
@@ -24,7 +24,7 @@ const index = {
24
24
  id: `${pluginId}.plugin.name`,
25
25
  defaultMessage: "MagicMail"
26
26
  },
27
- Component: () => import("../_chunks/App-DQpXIAmV.mjs")
27
+ Component: () => import("../_chunks/App-DYNCyt54.mjs")
28
28
  });
29
29
  app.createSettingSection(
30
30
  {
@@ -4776,7 +4776,7 @@ function requireOauth() {
4776
4776
  });
4777
4777
  return oauth;
4778
4778
  }
4779
- const version = "1.0.6";
4779
+ const version = "2.0.1";
4780
4780
  const require$$2 = {
4781
4781
  version
4782
4782
  };
@@ -4768,7 +4768,7 @@ function requireOauth() {
4768
4768
  });
4769
4769
  return oauth;
4770
4770
  }
4771
- const version = "1.0.6";
4771
+ const version = "2.0.1";
4772
4772
  const require$$2 = {
4773
4773
  version
4774
4774
  };
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2.0.0",
2
+ "version": "2.0.2",
3
3
  "keywords": [
4
4
  "strapi",
5
5
  "strapi-plugin",