strapi-plugin-magic-sessionmanager 3.5.0 → 3.7.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 (28) hide show
  1. package/COPYRIGHT_NOTICE.txt +20 -0
  2. package/LICENSE +6 -0
  3. package/README.md +42 -1
  4. package/admin/src/index.js +3 -0
  5. package/admin/src/translations/es.json +21 -0
  6. package/admin/src/translations/fr.json +21 -0
  7. package/admin/src/translations/pt.json +21 -0
  8. package/dist/_chunks/{Analytics-CwyLwdOZ.mjs → Analytics-BM9i88xu.mjs} +2 -2
  9. package/dist/_chunks/{Analytics-DRzCKaDF.js → Analytics-Bi-vcT63.js} +2 -2
  10. package/dist/_chunks/{App-nGu2Eb87.js → App-BbiNy_cT.js} +2 -2
  11. package/dist/_chunks/{App-Zhs_vt59.mjs → App-DcnJOCL9.mjs} +2 -2
  12. package/dist/_chunks/{License-CPI0p_W8.mjs → License-DsxP-MAL.mjs} +1 -1
  13. package/dist/_chunks/{License-k5vvhgKr.js → License-kYo8j2yl.js} +1 -1
  14. package/dist/_chunks/{Settings-CL2im8M3.mjs → Settings-C3sW9eBD.mjs} +2 -2
  15. package/dist/_chunks/{Settings-Lkmxisuv.js → Settings-jW0TOE_d.js} +2 -2
  16. package/dist/_chunks/es-CuLHazN1.js +23 -0
  17. package/dist/_chunks/es-Dkmjhy9c.mjs +23 -0
  18. package/dist/_chunks/fr-BAJp2yhI.js +23 -0
  19. package/dist/_chunks/fr-Bssg_3UF.mjs +23 -0
  20. package/dist/_chunks/{index-B-0VPfeF.mjs → index-DG9XeVSg.mjs} +8 -5
  21. package/dist/_chunks/{index-W_QbTAYU.js → index-Dr2HT-Dd.js} +8 -5
  22. package/dist/_chunks/pt-BAP9cKs3.js +23 -0
  23. package/dist/_chunks/pt-BVNoNcuY.mjs +23 -0
  24. package/dist/_chunks/{useLicense-C_Rneohy.js → useLicense-BL_3bX9O.js} +1 -1
  25. package/dist/_chunks/{useLicense-DUGjNbQ9.mjs → useLicense-DOkJX-tk.mjs} +1 -1
  26. package/dist/admin/index.js +1 -1
  27. package/dist/admin/index.mjs +1 -1
  28. package/package.json +2 -1
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Magic Session Manager - Advanced Session Management for Strapi v5
3
+ *
4
+ * Copyright (c) 2025 Schero D.
5
+ *
6
+ * Licensed under the MIT License
7
+ *
8
+ * This plugin is free to use for personal and commercial projects.
9
+ *
10
+ * IMPORTANT RESTRICTION:
11
+ * The license validation system (license-guard.js and related components)
12
+ * must remain intact and functional. Removing or bypassing this system
13
+ * is strictly prohibited.
14
+ *
15
+ * See LICENSE file for full terms.
16
+ *
17
+ * Repository: https://github.com/Schero94/Magic-Sessionmanager
18
+ * Issues: https://github.com/Schero94/Magic-Sessionmanager/issues
19
+ */
20
+
package/LICENSE CHANGED
@@ -12,6 +12,12 @@ furnished to do so, subject to the following conditions:
12
12
  The above copyright notice and this permission notice shall be included in all
13
13
  copies or substantial portions of the Software.
14
14
 
15
+ **ADDITIONAL CONDITION:**
16
+ The license validation system (including but not limited to license-guard.js,
17
+ license controller, and related API endpoints) must remain intact and functional.
18
+ Removing, bypassing, or disabling the license validation system is strictly
19
+ prohibited.
20
+
15
21
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
22
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
23
  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
package/README.md CHANGED
@@ -484,10 +484,51 @@ A: Not yet, but it's planned for future versions!
484
484
 
485
485
  ## 📄 License
486
486
 
487
- **MIT License** - Free to use!
487
+ **MIT License** - Free to use for personal and commercial projects!
488
488
 
489
489
  **Copyright © 2025 Schero D.**
490
490
 
491
+ ### Important License Restriction
492
+
493
+ This plugin is **free and open source**, BUT:
494
+
495
+ ⚠️ **You CANNOT modify the license validation system**
496
+
497
+ This means:
498
+ - ❌ Cannot remove `license-guard.js`
499
+ - ❌ Cannot bypass license activation
500
+ - ❌ Cannot disable license checks
501
+ - ❌ Cannot modify license-related endpoints
502
+
503
+ **Why?** The license system ensures:
504
+ - Quality and ongoing support
505
+ - Spam prevention
506
+ - Usage analytics for improvements
507
+ - Fair use tracking
508
+
509
+ **What you CAN do:**
510
+ - ✅ Use freely (personal & commercial)
511
+ - ✅ View and study source code
512
+ - ✅ Report issues and contribute
513
+ - ✅ Deploy in production without fees
514
+ - ✅ Integrate in your projects
515
+
516
+ See [LICENSE](./LICENSE) and [COPYRIGHT_NOTICE.txt](./COPYRIGHT_NOTICE.txt) for full terms.
517
+
518
+ ---
519
+
520
+ ## 🌐 Supported Languages
521
+
522
+ The admin interface is available in **5 languages:**
523
+
524
+ - 🇬🇧 **English** - Default
525
+ - 🇩🇪 **Deutsch** - German
526
+ - 🇪🇸 **Español** - Spanish
527
+ - 🇫🇷 **Français** - French
528
+ - 🇵🇹 **Português** - Portuguese
529
+
530
+ Language automatically follows your Strapi admin interface setting.
531
+
491
532
  ---
492
533
 
493
534
  **Made with ❤️ for Strapi v5**
@@ -112,6 +112,9 @@ export default {
112
112
  const importedTrads = {
113
113
  en: () => import('./translations/en.json'),
114
114
  de: () => import('./translations/de.json'),
115
+ es: () => import('./translations/es.json'),
116
+ fr: () => import('./translations/fr.json'),
117
+ pt: () => import('./translations/pt.json'),
115
118
  };
116
119
 
117
120
  const translatedLanguages = Object.keys(importedTrads).filter((lang) =>
@@ -0,0 +1,21 @@
1
+ {
2
+ "plugin.name": "Gestor de Sesiones",
3
+ "plugin.description": "Seguimiento de inicio/cierre de sesión y actividad de usuarios",
4
+ "settings.section": "Gestor de Sesiones",
5
+ "settings.sessions": "Sesiones Activas",
6
+ "settings.emailTemplates.title": "Plantillas de Correo",
7
+ "settings.emailTemplates.description": "Personalizar plantillas de notificación por correo con variables dinámicas",
8
+ "settings.emailTemplates.validate": "Validar",
9
+ "settings.emailTemplates.loadDefault": "Cargar Plantilla Predeterminada",
10
+ "settings.emailTemplates.subject": "Asunto del Correo",
11
+ "settings.emailTemplates.htmlTemplate": "Plantilla HTML",
12
+ "settings.emailTemplates.textTemplate": "Plantilla de Texto (Respaldo)",
13
+ "settings.emailTemplates.variables": "Variables Disponibles (clic para copiar)",
14
+ "settings.emailTemplates.validation.success": "¡Plantilla válida! Se encontraron {count} variables.",
15
+ "settings.emailTemplates.validation.warning": "No se encontraron variables en la plantilla. Agregue al menos una variable.",
16
+ "settings.emailTemplates.defaultLoaded": "¡Plantilla predeterminada cargada!",
17
+ "settings.emailTemplates.suspiciousLogin": "Inicio de Sesión Sospechoso",
18
+ "settings.emailTemplates.newLocation": "Nueva Ubicación",
19
+ "settings.emailTemplates.vpnProxy": "VPN/Proxy"
20
+ }
21
+
@@ -0,0 +1,21 @@
1
+ {
2
+ "plugin.name": "Gestionnaire de Sessions",
3
+ "plugin.description": "Suivi des connexions/déconnexions et activité des utilisateurs",
4
+ "settings.section": "Gestionnaire de Sessions",
5
+ "settings.sessions": "Sessions Actives",
6
+ "settings.emailTemplates.title": "Modèles d'Email",
7
+ "settings.emailTemplates.description": "Personnaliser les modèles de notification par email avec des variables dynamiques",
8
+ "settings.emailTemplates.validate": "Valider",
9
+ "settings.emailTemplates.loadDefault": "Charger le Modèle par Défaut",
10
+ "settings.emailTemplates.subject": "Objet de l'Email",
11
+ "settings.emailTemplates.htmlTemplate": "Modèle HTML",
12
+ "settings.emailTemplates.textTemplate": "Modèle Texte (Secours)",
13
+ "settings.emailTemplates.variables": "Variables Disponibles (cliquez pour copier)",
14
+ "settings.emailTemplates.validation.success": "Modèle valide! {count} variables trouvées.",
15
+ "settings.emailTemplates.validation.warning": "Aucune variable trouvée dans le modèle. Ajoutez au moins une variable.",
16
+ "settings.emailTemplates.defaultLoaded": "Modèle par défaut chargé!",
17
+ "settings.emailTemplates.suspiciousLogin": "Connexion Suspecte",
18
+ "settings.emailTemplates.newLocation": "Nouvelle Localisation",
19
+ "settings.emailTemplates.vpnProxy": "VPN/Proxy"
20
+ }
21
+
@@ -0,0 +1,21 @@
1
+ {
2
+ "plugin.name": "Gerenciador de Sessões",
3
+ "plugin.description": "Rastreamento de login/logout e atividade de usuários",
4
+ "settings.section": "Gerenciador de Sessões",
5
+ "settings.sessions": "Sessões Ativas",
6
+ "settings.emailTemplates.title": "Modelos de Email",
7
+ "settings.emailTemplates.description": "Personalizar modelos de notificação por email com variáveis dinâmicas",
8
+ "settings.emailTemplates.validate": "Validar",
9
+ "settings.emailTemplates.loadDefault": "Carregar Modelo Padrão",
10
+ "settings.emailTemplates.subject": "Assunto do Email",
11
+ "settings.emailTemplates.htmlTemplate": "Modelo HTML",
12
+ "settings.emailTemplates.textTemplate": "Modelo de Texto (Reserva)",
13
+ "settings.emailTemplates.variables": "Variáveis Disponíveis (clique para copiar)",
14
+ "settings.emailTemplates.validation.success": "Modelo válido! {count} variáveis encontradas.",
15
+ "settings.emailTemplates.validation.warning": "Nenhuma variável encontrada no modelo. Adicione pelo menos uma variável.",
16
+ "settings.emailTemplates.defaultLoaded": "Modelo padrão carregado!",
17
+ "settings.emailTemplates.suspiciousLogin": "Login Suspeito",
18
+ "settings.emailTemplates.newLocation": "Nova Localização",
19
+ "settings.emailTemplates.vpnProxy": "VPN/Proxy"
20
+ }
21
+
@@ -4,8 +4,8 @@ import { useFetchClient } from "@strapi/strapi/admin";
4
4
  import styled, { css, keyframes } from "styled-components";
5
5
  import { Loader, Typography, Box, Flex, Badge } from "@strapi/design-system";
6
6
  import { ChartBubble, Crown, User, Clock, Monitor } from "@strapi/icons";
7
- import { a as pluginId } from "./index-B-0VPfeF.mjs";
8
- import { u as useLicense } from "./useLicense-DUGjNbQ9.mjs";
7
+ import { a as pluginId } from "./index-DG9XeVSg.mjs";
8
+ import { u as useLicense } from "./useLicense-DOkJX-tk.mjs";
9
9
  const theme = {
10
10
  colors: {
11
11
  primary: { 100: "#E0F2FE", 500: "#0EA5E9", 600: "#0284C7" },
@@ -6,8 +6,8 @@ const admin = require("@strapi/strapi/admin");
6
6
  const styled = require("styled-components");
7
7
  const designSystem = require("@strapi/design-system");
8
8
  const icons = require("@strapi/icons");
9
- const index = require("./index-W_QbTAYU.js");
10
- const useLicense = require("./useLicense-C_Rneohy.js");
9
+ const index = require("./index-Dr2HT-Dd.js");
10
+ const useLicense = require("./useLicense-BL_3bX9O.js");
11
11
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
12
12
  const styled__default = /* @__PURE__ */ _interopDefault(styled);
13
13
  const theme = {
@@ -6,8 +6,8 @@ const admin = require("@strapi/strapi/admin");
6
6
  const styled = require("styled-components");
7
7
  const designSystem = require("@strapi/design-system");
8
8
  const icons = require("@strapi/icons");
9
- const index = require("./index-W_QbTAYU.js");
10
- const useLicense = require("./useLicense-C_Rneohy.js");
9
+ const index = require("./index-Dr2HT-Dd.js");
10
+ const useLicense = require("./useLicense-BL_3bX9O.js");
11
11
  const reactRouterDom = require("react-router-dom");
12
12
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
13
13
  const styled__default = /* @__PURE__ */ _interopDefault(styled);
@@ -4,8 +4,8 @@ import { useFetchClient, useNotification } from "@strapi/strapi/admin";
4
4
  import styled, { css, keyframes } from "styled-components";
5
5
  import { Modal, Flex, Box, Typography, Badge, Divider, Button, Loader, SingleSelect, SingleSelectOption, Thead, Tr, Th, Tbody, Td, Table, TextInput } from "@strapi/design-system";
6
6
  import { Check, Information, Monitor, Server, Clock, Cross, Earth, Shield, Crown, Phone, Download, User, Eye, Trash, Search, Key } from "@strapi/icons";
7
- import { p as parseUserAgent, a as pluginId } from "./index-B-0VPfeF.mjs";
8
- import { u as useLicense } from "./useLicense-DUGjNbQ9.mjs";
7
+ import { p as parseUserAgent, a as pluginId } from "./index-DG9XeVSg.mjs";
8
+ import { u as useLicense } from "./useLicense-DOkJX-tk.mjs";
9
9
  import { useNavigate } from "react-router-dom";
10
10
  const TwoColumnGrid = styled.div`
11
11
  display: grid;
@@ -4,7 +4,7 @@ import { Loader, Box, Alert, Flex, Typography, Button, Badge, Accordion } from "
4
4
  import { useFetchClient, useNotification } from "@strapi/strapi/admin";
5
5
  import { ArrowClockwise, Duplicate, Download, User, Shield, Sparkle, ChartBubble } from "@strapi/icons";
6
6
  import styled, { css, keyframes } from "styled-components";
7
- import { a as pluginId } from "./index-B-0VPfeF.mjs";
7
+ import { a as pluginId } from "./index-DG9XeVSg.mjs";
8
8
  const theme = {
9
9
  colors: {
10
10
  neutral: { 200: "#E5E7EB" }
@@ -6,7 +6,7 @@ const designSystem = require("@strapi/design-system");
6
6
  const admin = require("@strapi/strapi/admin");
7
7
  const icons = require("@strapi/icons");
8
8
  const styled = require("styled-components");
9
- const index = require("./index-W_QbTAYU.js");
9
+ const index = require("./index-Dr2HT-Dd.js");
10
10
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
11
11
  const styled__default = /* @__PURE__ */ _interopDefault(styled);
12
12
  const theme = {
@@ -4,8 +4,8 @@ import { Flex, Loader, Typography, Button, Box, Badge, Accordion, Grid, SingleSe
4
4
  import { useFetchClient, useNotification } from "@strapi/strapi/admin";
5
5
  import { Check, Information, Cog, Trash, Shield, Code, Duplicate, Mail } from "@strapi/icons";
6
6
  import styled, { css, keyframes } from "styled-components";
7
- import { a as pluginId } from "./index-B-0VPfeF.mjs";
8
- import { u as useLicense } from "./useLicense-DUGjNbQ9.mjs";
7
+ import { a as pluginId } from "./index-DG9XeVSg.mjs";
8
+ import { u as useLicense } from "./useLicense-DOkJX-tk.mjs";
9
9
  const theme = {
10
10
  colors: {
11
11
  primary: { 600: "#0284C7", 700: "#075985", 100: "#E0F2FE", 50: "#F0F9FF" },
@@ -6,8 +6,8 @@ const designSystem = require("@strapi/design-system");
6
6
  const admin = require("@strapi/strapi/admin");
7
7
  const icons = require("@strapi/icons");
8
8
  const styled = require("styled-components");
9
- const index = require("./index-W_QbTAYU.js");
10
- const useLicense = require("./useLicense-C_Rneohy.js");
9
+ const index = require("./index-Dr2HT-Dd.js");
10
+ const useLicense = require("./useLicense-BL_3bX9O.js");
11
11
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
12
12
  const styled__default = /* @__PURE__ */ _interopDefault(styled);
13
13
  const theme = {
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const es = {
4
+ "plugin.name": "Gestor de Sesiones",
5
+ "plugin.description": "Seguimiento de inicio/cierre de sesión y actividad de usuarios",
6
+ "settings.section": "Gestor de Sesiones",
7
+ "settings.sessions": "Sesiones Activas",
8
+ "settings.emailTemplates.title": "Plantillas de Correo",
9
+ "settings.emailTemplates.description": "Personalizar plantillas de notificación por correo con variables dinámicas",
10
+ "settings.emailTemplates.validate": "Validar",
11
+ "settings.emailTemplates.loadDefault": "Cargar Plantilla Predeterminada",
12
+ "settings.emailTemplates.subject": "Asunto del Correo",
13
+ "settings.emailTemplates.htmlTemplate": "Plantilla HTML",
14
+ "settings.emailTemplates.textTemplate": "Plantilla de Texto (Respaldo)",
15
+ "settings.emailTemplates.variables": "Variables Disponibles (clic para copiar)",
16
+ "settings.emailTemplates.validation.success": "¡Plantilla válida! Se encontraron {count} variables.",
17
+ "settings.emailTemplates.validation.warning": "No se encontraron variables en la plantilla. Agregue al menos una variable.",
18
+ "settings.emailTemplates.defaultLoaded": "¡Plantilla predeterminada cargada!",
19
+ "settings.emailTemplates.suspiciousLogin": "Inicio de Sesión Sospechoso",
20
+ "settings.emailTemplates.newLocation": "Nueva Ubicación",
21
+ "settings.emailTemplates.vpnProxy": "VPN/Proxy"
22
+ };
23
+ exports.default = es;
@@ -0,0 +1,23 @@
1
+ const es = {
2
+ "plugin.name": "Gestor de Sesiones",
3
+ "plugin.description": "Seguimiento de inicio/cierre de sesión y actividad de usuarios",
4
+ "settings.section": "Gestor de Sesiones",
5
+ "settings.sessions": "Sesiones Activas",
6
+ "settings.emailTemplates.title": "Plantillas de Correo",
7
+ "settings.emailTemplates.description": "Personalizar plantillas de notificación por correo con variables dinámicas",
8
+ "settings.emailTemplates.validate": "Validar",
9
+ "settings.emailTemplates.loadDefault": "Cargar Plantilla Predeterminada",
10
+ "settings.emailTemplates.subject": "Asunto del Correo",
11
+ "settings.emailTemplates.htmlTemplate": "Plantilla HTML",
12
+ "settings.emailTemplates.textTemplate": "Plantilla de Texto (Respaldo)",
13
+ "settings.emailTemplates.variables": "Variables Disponibles (clic para copiar)",
14
+ "settings.emailTemplates.validation.success": "¡Plantilla válida! Se encontraron {count} variables.",
15
+ "settings.emailTemplates.validation.warning": "No se encontraron variables en la plantilla. Agregue al menos una variable.",
16
+ "settings.emailTemplates.defaultLoaded": "¡Plantilla predeterminada cargada!",
17
+ "settings.emailTemplates.suspiciousLogin": "Inicio de Sesión Sospechoso",
18
+ "settings.emailTemplates.newLocation": "Nueva Ubicación",
19
+ "settings.emailTemplates.vpnProxy": "VPN/Proxy"
20
+ };
21
+ export {
22
+ es as default
23
+ };
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const fr = {
4
+ "plugin.name": "Gestionnaire de Sessions",
5
+ "plugin.description": "Suivi des connexions/déconnexions et activité des utilisateurs",
6
+ "settings.section": "Gestionnaire de Sessions",
7
+ "settings.sessions": "Sessions Actives",
8
+ "settings.emailTemplates.title": "Modèles d'Email",
9
+ "settings.emailTemplates.description": "Personnaliser les modèles de notification par email avec des variables dynamiques",
10
+ "settings.emailTemplates.validate": "Valider",
11
+ "settings.emailTemplates.loadDefault": "Charger le Modèle par Défaut",
12
+ "settings.emailTemplates.subject": "Objet de l'Email",
13
+ "settings.emailTemplates.htmlTemplate": "Modèle HTML",
14
+ "settings.emailTemplates.textTemplate": "Modèle Texte (Secours)",
15
+ "settings.emailTemplates.variables": "Variables Disponibles (cliquez pour copier)",
16
+ "settings.emailTemplates.validation.success": "Modèle valide! {count} variables trouvées.",
17
+ "settings.emailTemplates.validation.warning": "Aucune variable trouvée dans le modèle. Ajoutez au moins une variable.",
18
+ "settings.emailTemplates.defaultLoaded": "Modèle par défaut chargé!",
19
+ "settings.emailTemplates.suspiciousLogin": "Connexion Suspecte",
20
+ "settings.emailTemplates.newLocation": "Nouvelle Localisation",
21
+ "settings.emailTemplates.vpnProxy": "VPN/Proxy"
22
+ };
23
+ exports.default = fr;
@@ -0,0 +1,23 @@
1
+ const fr = {
2
+ "plugin.name": "Gestionnaire de Sessions",
3
+ "plugin.description": "Suivi des connexions/déconnexions et activité des utilisateurs",
4
+ "settings.section": "Gestionnaire de Sessions",
5
+ "settings.sessions": "Sessions Actives",
6
+ "settings.emailTemplates.title": "Modèles d'Email",
7
+ "settings.emailTemplates.description": "Personnaliser les modèles de notification par email avec des variables dynamiques",
8
+ "settings.emailTemplates.validate": "Valider",
9
+ "settings.emailTemplates.loadDefault": "Charger le Modèle par Défaut",
10
+ "settings.emailTemplates.subject": "Objet de l'Email",
11
+ "settings.emailTemplates.htmlTemplate": "Modèle HTML",
12
+ "settings.emailTemplates.textTemplate": "Modèle Texte (Secours)",
13
+ "settings.emailTemplates.variables": "Variables Disponibles (cliquez pour copier)",
14
+ "settings.emailTemplates.validation.success": "Modèle valide! {count} variables trouvées.",
15
+ "settings.emailTemplates.validation.warning": "Aucune variable trouvée dans le modèle. Ajoutez au moins une variable.",
16
+ "settings.emailTemplates.defaultLoaded": "Modèle par défaut chargé!",
17
+ "settings.emailTemplates.suspiciousLogin": "Connexion Suspecte",
18
+ "settings.emailTemplates.newLocation": "Nouvelle Localisation",
19
+ "settings.emailTemplates.vpnProxy": "VPN/Proxy"
20
+ };
21
+ export {
22
+ fr as default
23
+ };
@@ -403,7 +403,7 @@ const index = {
403
403
  id: `${pluginId}.plugin.name`,
404
404
  defaultMessage: pluginPkg.strapi.displayName
405
405
  },
406
- Component: () => import("./App-Zhs_vt59.mjs")
406
+ Component: () => import("./App-DcnJOCL9.mjs")
407
407
  });
408
408
  app.createSettingSection(
409
409
  {
@@ -419,7 +419,7 @@ const index = {
419
419
  },
420
420
  id: "general",
421
421
  to: `/settings/${pluginId}/general`,
422
- Component: () => import("./Settings-CL2im8M3.mjs")
422
+ Component: () => import("./Settings-C3sW9eBD.mjs")
423
423
  },
424
424
  {
425
425
  intlLabel: {
@@ -428,7 +428,7 @@ const index = {
428
428
  },
429
429
  id: "analytics",
430
430
  to: `/settings/${pluginId}/analytics`,
431
- Component: () => import("./Analytics-CwyLwdOZ.mjs")
431
+ Component: () => import("./Analytics-BM9i88xu.mjs")
432
432
  },
433
433
  {
434
434
  intlLabel: {
@@ -437,7 +437,7 @@ const index = {
437
437
  },
438
438
  id: "license",
439
439
  to: `/settings/${pluginId}/license`,
440
- Component: () => import("./License-CPI0p_W8.mjs")
440
+ Component: () => import("./License-DsxP-MAL.mjs")
441
441
  }
442
442
  ]
443
443
  );
@@ -482,7 +482,10 @@ const index = {
482
482
  async registerTrads({ locales }) {
483
483
  const importedTrads = {
484
484
  en: () => import("./en-CsPpPJL3.mjs"),
485
- de: () => import("./de-CdO3s01z.mjs")
485
+ de: () => import("./de-CdO3s01z.mjs"),
486
+ es: () => import("./es-Dkmjhy9c.mjs"),
487
+ fr: () => import("./fr-Bssg_3UF.mjs"),
488
+ pt: () => import("./pt-BVNoNcuY.mjs")
486
489
  };
487
490
  const translatedLanguages = Object.keys(importedTrads).filter(
488
491
  (lang) => locales.includes(lang)
@@ -404,7 +404,7 @@ const index = {
404
404
  id: `${pluginId}.plugin.name`,
405
405
  defaultMessage: pluginPkg.strapi.displayName
406
406
  },
407
- Component: () => Promise.resolve().then(() => require("./App-nGu2Eb87.js"))
407
+ Component: () => Promise.resolve().then(() => require("./App-BbiNy_cT.js"))
408
408
  });
409
409
  app.createSettingSection(
410
410
  {
@@ -420,7 +420,7 @@ const index = {
420
420
  },
421
421
  id: "general",
422
422
  to: `/settings/${pluginId}/general`,
423
- Component: () => Promise.resolve().then(() => require("./Settings-Lkmxisuv.js"))
423
+ Component: () => Promise.resolve().then(() => require("./Settings-jW0TOE_d.js"))
424
424
  },
425
425
  {
426
426
  intlLabel: {
@@ -429,7 +429,7 @@ const index = {
429
429
  },
430
430
  id: "analytics",
431
431
  to: `/settings/${pluginId}/analytics`,
432
- Component: () => Promise.resolve().then(() => require("./Analytics-DRzCKaDF.js"))
432
+ Component: () => Promise.resolve().then(() => require("./Analytics-Bi-vcT63.js"))
433
433
  },
434
434
  {
435
435
  intlLabel: {
@@ -438,7 +438,7 @@ const index = {
438
438
  },
439
439
  id: "license",
440
440
  to: `/settings/${pluginId}/license`,
441
- Component: () => Promise.resolve().then(() => require("./License-k5vvhgKr.js"))
441
+ Component: () => Promise.resolve().then(() => require("./License-kYo8j2yl.js"))
442
442
  }
443
443
  ]
444
444
  );
@@ -483,7 +483,10 @@ const index = {
483
483
  async registerTrads({ locales }) {
484
484
  const importedTrads = {
485
485
  en: () => Promise.resolve().then(() => require("./en-RqmpDHdS.js")),
486
- de: () => Promise.resolve().then(() => require("./de-BxFx1pwE.js"))
486
+ de: () => Promise.resolve().then(() => require("./de-BxFx1pwE.js")),
487
+ es: () => Promise.resolve().then(() => require("./es-CuLHazN1.js")),
488
+ fr: () => Promise.resolve().then(() => require("./fr-BAJp2yhI.js")),
489
+ pt: () => Promise.resolve().then(() => require("./pt-BAP9cKs3.js"))
487
490
  };
488
491
  const translatedLanguages = Object.keys(importedTrads).filter(
489
492
  (lang) => locales.includes(lang)
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const pt = {
4
+ "plugin.name": "Gerenciador de Sessões",
5
+ "plugin.description": "Rastreamento de login/logout e atividade de usuários",
6
+ "settings.section": "Gerenciador de Sessões",
7
+ "settings.sessions": "Sessões Ativas",
8
+ "settings.emailTemplates.title": "Modelos de Email",
9
+ "settings.emailTemplates.description": "Personalizar modelos de notificação por email com variáveis dinâmicas",
10
+ "settings.emailTemplates.validate": "Validar",
11
+ "settings.emailTemplates.loadDefault": "Carregar Modelo Padrão",
12
+ "settings.emailTemplates.subject": "Assunto do Email",
13
+ "settings.emailTemplates.htmlTemplate": "Modelo HTML",
14
+ "settings.emailTemplates.textTemplate": "Modelo de Texto (Reserva)",
15
+ "settings.emailTemplates.variables": "Variáveis Disponíveis (clique para copiar)",
16
+ "settings.emailTemplates.validation.success": "Modelo válido! {count} variáveis encontradas.",
17
+ "settings.emailTemplates.validation.warning": "Nenhuma variável encontrada no modelo. Adicione pelo menos uma variável.",
18
+ "settings.emailTemplates.defaultLoaded": "Modelo padrão carregado!",
19
+ "settings.emailTemplates.suspiciousLogin": "Login Suspeito",
20
+ "settings.emailTemplates.newLocation": "Nova Localização",
21
+ "settings.emailTemplates.vpnProxy": "VPN/Proxy"
22
+ };
23
+ exports.default = pt;
@@ -0,0 +1,23 @@
1
+ const pt = {
2
+ "plugin.name": "Gerenciador de Sessões",
3
+ "plugin.description": "Rastreamento de login/logout e atividade de usuários",
4
+ "settings.section": "Gerenciador de Sessões",
5
+ "settings.sessions": "Sessões Ativas",
6
+ "settings.emailTemplates.title": "Modelos de Email",
7
+ "settings.emailTemplates.description": "Personalizar modelos de notificação por email com variáveis dinâmicas",
8
+ "settings.emailTemplates.validate": "Validar",
9
+ "settings.emailTemplates.loadDefault": "Carregar Modelo Padrão",
10
+ "settings.emailTemplates.subject": "Assunto do Email",
11
+ "settings.emailTemplates.htmlTemplate": "Modelo HTML",
12
+ "settings.emailTemplates.textTemplate": "Modelo de Texto (Reserva)",
13
+ "settings.emailTemplates.variables": "Variáveis Disponíveis (clique para copiar)",
14
+ "settings.emailTemplates.validation.success": "Modelo válido! {count} variáveis encontradas.",
15
+ "settings.emailTemplates.validation.warning": "Nenhuma variável encontrada no modelo. Adicione pelo menos uma variável.",
16
+ "settings.emailTemplates.defaultLoaded": "Modelo padrão carregado!",
17
+ "settings.emailTemplates.suspiciousLogin": "Login Suspeito",
18
+ "settings.emailTemplates.newLocation": "Nova Localização",
19
+ "settings.emailTemplates.vpnProxy": "VPN/Proxy"
20
+ };
21
+ export {
22
+ pt as default
23
+ };
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const react = require("react");
3
3
  const admin = require("@strapi/strapi/admin");
4
- const index = require("./index-W_QbTAYU.js");
4
+ const index = require("./index-Dr2HT-Dd.js");
5
5
  const useLicense = () => {
6
6
  const { get } = admin.useFetchClient();
7
7
  const [isPremium, setIsPremium] = react.useState(false);
@@ -1,6 +1,6 @@
1
1
  import { useState, useEffect } from "react";
2
2
  import { useFetchClient } from "@strapi/strapi/admin";
3
- import { a as pluginId } from "./index-B-0VPfeF.mjs";
3
+ import { a as pluginId } from "./index-DG9XeVSg.mjs";
4
4
  const useLicense = () => {
5
5
  const { get } = useFetchClient();
6
6
  const [isPremium, setIsPremium] = useState(false);
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
- const index = require("../_chunks/index-W_QbTAYU.js");
2
+ const index = require("../_chunks/index-Dr2HT-Dd.js");
3
3
  module.exports = index.index;
@@ -1,4 +1,4 @@
1
- import { i } from "../_chunks/index-B-0VPfeF.mjs";
1
+ import { i } from "../_chunks/index-DG9XeVSg.mjs";
2
2
  export {
3
3
  i as default
4
4
  };
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.5.0",
2
+ "version": "3.7.0",
3
3
  "keywords": [
4
4
  "strapi",
5
5
  "strapi-plugin",
@@ -33,6 +33,7 @@
33
33
  "strapi-server.js",
34
34
  "README.md",
35
35
  "LICENSE",
36
+ "COPYRIGHT_NOTICE.txt",
36
37
  "pics"
37
38
  ],
38
39
  "scripts": {