@strapi/plugin-users-permissions 5.46.1 → 5.47.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 (62) hide show
  1. package/admin/src/translations/sk.json +41 -4
  2. package/dist/admin/translations/sk.json.js +41 -4
  3. package/dist/admin/translations/sk.json.js.map +1 -1
  4. package/dist/admin/translations/sk.json.mjs +41 -4
  5. package/dist/admin/translations/sk.json.mjs.map +1 -1
  6. package/dist/server/bootstrap/index.js.map +1 -1
  7. package/dist/server/bootstrap/index.mjs.map +1 -1
  8. package/dist/server/config.js.map +1 -1
  9. package/dist/server/config.mjs.map +1 -1
  10. package/dist/server/controllers/auth.js.map +1 -1
  11. package/dist/server/controllers/auth.mjs.map +1 -1
  12. package/dist/server/controllers/content-manager-user.js.map +1 -1
  13. package/dist/server/controllers/content-manager-user.mjs.map +1 -1
  14. package/dist/server/controllers/permissions.js.map +1 -1
  15. package/dist/server/controllers/permissions.mjs.map +1 -1
  16. package/dist/server/controllers/role.js.map +1 -1
  17. package/dist/server/controllers/role.mjs.map +1 -1
  18. package/dist/server/controllers/settings.js.map +1 -1
  19. package/dist/server/controllers/settings.mjs.map +1 -1
  20. package/dist/server/controllers/user.js.map +1 -1
  21. package/dist/server/controllers/user.mjs.map +1 -1
  22. package/dist/server/controllers/validation/auth.js.map +1 -1
  23. package/dist/server/controllers/validation/auth.mjs.map +1 -1
  24. package/dist/server/controllers/validation/user.js.map +1 -1
  25. package/dist/server/controllers/validation/user.mjs.map +1 -1
  26. package/dist/server/graphql/index.js.map +1 -1
  27. package/dist/server/graphql/index.mjs.map +1 -1
  28. package/dist/server/graphql/mutations/auth/login.js.map +1 -1
  29. package/dist/server/graphql/mutations/auth/login.mjs.map +1 -1
  30. package/dist/server/graphql/mutations/crud/role/create-role.js.map +1 -1
  31. package/dist/server/graphql/mutations/crud/role/create-role.mjs.map +1 -1
  32. package/dist/server/graphql/mutations/crud/role/delete-role.js.map +1 -1
  33. package/dist/server/graphql/mutations/crud/role/delete-role.mjs.map +1 -1
  34. package/dist/server/graphql/mutations/crud/role/update-role.js.map +1 -1
  35. package/dist/server/graphql/mutations/crud/role/update-role.mjs.map +1 -1
  36. package/dist/server/graphql/mutations/crud/user/create-user.js.map +1 -1
  37. package/dist/server/graphql/mutations/crud/user/create-user.mjs.map +1 -1
  38. package/dist/server/graphql/types/login-input.js.map +1 -1
  39. package/dist/server/graphql/types/login-input.mjs.map +1 -1
  40. package/dist/server/graphql/types/login-payload.js.map +1 -1
  41. package/dist/server/graphql/types/login-payload.mjs.map +1 -1
  42. package/dist/server/register.js.map +1 -1
  43. package/dist/server/register.mjs.map +1 -1
  44. package/dist/server/services/jwt.js.map +1 -1
  45. package/dist/server/services/jwt.mjs.map +1 -1
  46. package/dist/server/services/permission.js.map +1 -1
  47. package/dist/server/services/permission.mjs.map +1 -1
  48. package/dist/server/services/providers-registry.js.map +1 -1
  49. package/dist/server/services/providers-registry.mjs.map +1 -1
  50. package/dist/server/services/providers.js.map +1 -1
  51. package/dist/server/services/providers.mjs.map +1 -1
  52. package/dist/server/services/role.js.map +1 -1
  53. package/dist/server/services/role.mjs.map +1 -1
  54. package/dist/server/services/user.js.map +1 -1
  55. package/dist/server/services/user.mjs.map +1 -1
  56. package/dist/server/services/users-permissions.js.map +1 -1
  57. package/dist/server/services/users-permissions.mjs.map +1 -1
  58. package/dist/server/strategies/users-permissions.js.map +1 -1
  59. package/dist/server/strategies/users-permissions.mjs.map +1 -1
  60. package/dist/server/utils/index.js.map +1 -1
  61. package/dist/server/utils/index.mjs.map +1 -1
  62. package/package.json +3 -3
@@ -12,6 +12,17 @@
12
12
  "EditForm.inputToggle.label.email-confirmation-redirection": "URL pre potvrdenie e-mailovej adresy",
13
13
  "EditForm.inputToggle.label.email-reset-password": "URL pre obnovu hesla",
14
14
  "EditForm.inputToggle.label.sign-up": "Povoliť registrácie",
15
+ "EditForm.inputToggle.placeholder.email-confirmation-redirection": "ex: https://yourfrontend.com/email-confirmation-redirection",
16
+ "EditForm.inputToggle.placeholder.email-reset-password": "ex: https://yourfrontend.com/reset-password",
17
+ "EditPage.form.roles": "Detaily role",
18
+ "Email.template.data.loaded": "Šablóny emailov boli načítané",
19
+ "Email.template.email_confirmation": "Potvrdenie e-mailovej adresy",
20
+ "Email.template.reset_password": "Obnovenie hesla",
21
+ "Email.template.form.edit.label": "Upraviť šablónu",
22
+ "Email.template.table.action.label": "akcia",
23
+ "Email.template.table.icon.label": "ikona",
24
+ "Email.template.table.name.label": "názov",
25
+ "Form.advancedSettings.data.loaded": "Údaje pokročilých nastavení boli načítané",
15
26
  "HeaderNav.link.advancedSettings": "Pokročilé nastavenia",
16
27
  "HeaderNav.link.emailTemplates": "Šablóny emailov",
17
28
  "HeaderNav.link.providers": "Poskytovatelia",
@@ -21,26 +32,52 @@
21
32
  "Policies.header.hint": "Vyberte akciu a kliknite na ikonku nastavení pre zobrazenie naviazanej URL",
22
33
  "Policies.header.title": "Pokročilé nastavenia",
23
34
  "PopUpForm.Email.email_templates.inputDescription": "Ak si nie ste istý ako používať premenné, {link}",
35
+ "PopUpForm.Email.link.documentation": "pozrite si našu dokumentáciu.",
24
36
  "PopUpForm.Email.options.from.email.label": "E-mail odosielateľa",
25
- "PopUpForm.Email.options.from.email.placeholder": "janko.hrasko@gmail.com",
37
+ "PopUpForm.Email.options.from.email.placeholder": "janko.hrasko@strapitest.io",
26
38
  "PopUpForm.Email.options.from.name.label": "Meno odosielateľa",
27
39
  "PopUpForm.Email.options.from.name.placeholder": "Janko Hraško",
28
40
  "PopUpForm.Email.options.message.label": "Obsah e-mailu",
29
41
  "PopUpForm.Email.options.object.label": "Predmet",
42
+ "PopUpForm.Email.options.object.placeholder": "Prosím potvrďte svoju e-mailovú adresu pre %APP_NAME%",
30
43
  "PopUpForm.Email.options.response_email.label": "Odpovedať na e-mail",
31
- "PopUpForm.Email.options.response_email.placeholder": "janko.hrasko@gmail.com",
44
+ "PopUpForm.Email.options.response_email.placeholder": "janko.hrasko@strapitest.io",
32
45
  "PopUpForm.Providers.enabled.description": "Ak je zakázané, používatelia nebudú môcť použiť tohto poskytovateľa.",
33
46
  "PopUpForm.Providers.enabled.label": "Povoliť",
34
47
  "PopUpForm.Providers.key.label": "Client ID",
35
48
  "PopUpForm.Providers.key.placeholder": "TEXT",
36
49
  "PopUpForm.Providers.redirectURL.front-end.label": "URL presmerovania do vašej aplikácie",
50
+ "PopUpForm.Providers.redirectURL.label": "URL presmerovania, ktorú treba pridať do konfigurácie vašej aplikácie {provider}",
37
51
  "PopUpForm.Providers.secret.label": "Client Secret",
38
52
  "PopUpForm.Providers.secret.placeholder": "TEXT",
39
- "PopUpForm.Providers.subdomain.label": "Host URI (Subdomain)",
53
+ "PopUpForm.Providers.subdomain.label": "Host URI (subdoména)",
40
54
  "PopUpForm.Providers.subdomain.placeholder": "my.subdomain.com",
41
55
  "PopUpForm.header.edit.email-templates": "Upraviť šablóny e-mailov",
56
+ "PopUpForm.header.edit.providers": "Upraviť poskytovateľa",
57
+ "Providers.data.loaded": "Poskytovatelia boli načítaní",
58
+ "Providers.status": "Status",
59
+ "Roles.empty": "Zatiaľ nemáte žiadne roly.",
60
+ "Roles.empty.search": "Žiadne roly nezodpovedajú vyhľadávaniu.",
61
+ "Settings.roles.deleted": "Rola bola odstránená",
62
+ "Settings.roles.edited": "Rola bola upravená",
63
+ "Settings.section-label": "Plugin Používatelia a oprávnenia",
64
+ "components.Input.error.validation.email": "Toto nie je platný email",
65
+ "components.Input.error.validation.json": "Toto nezodpovedá formátu JSON",
66
+ "components.Input.error.validation.max": "Hodnota je príliš vysoká.",
67
+ "components.Input.error.validation.maxLength": "Hodnota je príliš dlhá.",
68
+ "components.Input.error.validation.min": "Hodnota je príliš nízka.",
69
+ "components.Input.error.validation.minLength": "Hodnota je príliš krátka.",
70
+ "components.Input.error.validation.minSupMax": "Nemôže byť nadradené",
71
+ "components.Input.error.validation.regex": "Hodnota nezodpovedá regexu.",
72
+ "components.Input.error.validation.required": "Táto hodnota je povinná.",
73
+ "components.Input.error.validation.unique": "Táto hodnota sa už používa.",
42
74
  "notification.success.submit": "Nastavenia boli uložené",
75
+ "page.title": "Nastavenia - Roly",
43
76
  "plugin.description.long": "Zabezpečte vaše API pomocou JWT tokenov. Tento plugin taktiež podporuje ACL záznamy, ktoré umožňujú spravovať oprávnenia v rámci skupín používateľov.",
44
77
  "plugin.description.short": "Zabezpečte vaše API pomocou JWT tokenov",
45
- "plugin.name": "Roly a oprávnenia"
78
+ "plugin.name": "Roly a oprávnenia",
79
+ "popUpWarning.button.cancel": "Zrušiť",
80
+ "popUpWarning.button.confirm": "Potvrdiť",
81
+ "popUpWarning.title": "Prosím potvrďte",
82
+ "popUpWarning.warning.cancel": "Ste si istý, že chcete zrušiť svoje úpravy?"
46
83
  }
@@ -14,6 +14,17 @@ var sk = {
14
14
  "EditForm.inputToggle.label.email-confirmation-redirection": "URL pre potvrdenie e-mailovej adresy",
15
15
  "EditForm.inputToggle.label.email-reset-password": "URL pre obnovu hesla",
16
16
  "EditForm.inputToggle.label.sign-up": "Povoliť registrácie",
17
+ "EditForm.inputToggle.placeholder.email-confirmation-redirection": "ex: https://yourfrontend.com/email-confirmation-redirection",
18
+ "EditForm.inputToggle.placeholder.email-reset-password": "ex: https://yourfrontend.com/reset-password",
19
+ "EditPage.form.roles": "Detaily role",
20
+ "Email.template.data.loaded": "Šablóny emailov boli načítané",
21
+ "Email.template.email_confirmation": "Potvrdenie e-mailovej adresy",
22
+ "Email.template.reset_password": "Obnovenie hesla",
23
+ "Email.template.form.edit.label": "Upraviť šablónu",
24
+ "Email.template.table.action.label": "akcia",
25
+ "Email.template.table.icon.label": "ikona",
26
+ "Email.template.table.name.label": "názov",
27
+ "Form.advancedSettings.data.loaded": "Údaje pokročilých nastavení boli načítané",
17
28
  "HeaderNav.link.advancedSettings": "Pokročilé nastavenia",
18
29
  "HeaderNav.link.emailTemplates": "Šablóny emailov",
19
30
  "HeaderNav.link.providers": "Poskytovatelia",
@@ -23,28 +34,54 @@ var sk = {
23
34
  "Policies.header.hint": "Vyberte akciu a kliknite na ikonku nastavení pre zobrazenie naviazanej URL",
24
35
  "Policies.header.title": "Pokročilé nastavenia",
25
36
  "PopUpForm.Email.email_templates.inputDescription": "Ak si nie ste istý ako používať premenné, {link}",
37
+ "PopUpForm.Email.link.documentation": "pozrite si našu dokumentáciu.",
26
38
  "PopUpForm.Email.options.from.email.label": "E-mail odosielateľa",
27
- "PopUpForm.Email.options.from.email.placeholder": "janko.hrasko@gmail.com",
39
+ "PopUpForm.Email.options.from.email.placeholder": "janko.hrasko@strapitest.io",
28
40
  "PopUpForm.Email.options.from.name.label": "Meno odosielateľa",
29
41
  "PopUpForm.Email.options.from.name.placeholder": "Janko Hraško",
30
42
  "PopUpForm.Email.options.message.label": "Obsah e-mailu",
31
43
  "PopUpForm.Email.options.object.label": "Predmet",
44
+ "PopUpForm.Email.options.object.placeholder": "Prosím potvrďte svoju e-mailovú adresu pre %APP_NAME%",
32
45
  "PopUpForm.Email.options.response_email.label": "Odpovedať na e-mail",
33
- "PopUpForm.Email.options.response_email.placeholder": "janko.hrasko@gmail.com",
46
+ "PopUpForm.Email.options.response_email.placeholder": "janko.hrasko@strapitest.io",
34
47
  "PopUpForm.Providers.enabled.description": "Ak je zakázané, používatelia nebudú môcť použiť tohto poskytovateľa.",
35
48
  "PopUpForm.Providers.enabled.label": "Povoliť",
36
49
  "PopUpForm.Providers.key.label": "Client ID",
37
50
  "PopUpForm.Providers.key.placeholder": "TEXT",
38
51
  "PopUpForm.Providers.redirectURL.front-end.label": "URL presmerovania do vašej aplikácie",
52
+ "PopUpForm.Providers.redirectURL.label": "URL presmerovania, ktorú treba pridať do konfigurácie vašej aplikácie {provider}",
39
53
  "PopUpForm.Providers.secret.label": "Client Secret",
40
54
  "PopUpForm.Providers.secret.placeholder": "TEXT",
41
- "PopUpForm.Providers.subdomain.label": "Host URI (Subdomain)",
55
+ "PopUpForm.Providers.subdomain.label": "Host URI (subdoména)",
42
56
  "PopUpForm.Providers.subdomain.placeholder": "my.subdomain.com",
43
57
  "PopUpForm.header.edit.email-templates": "Upraviť šablóny e-mailov",
58
+ "PopUpForm.header.edit.providers": "Upraviť poskytovateľa",
59
+ "Providers.data.loaded": "Poskytovatelia boli načítaní",
60
+ "Providers.status": "Status",
61
+ "Roles.empty": "Zatiaľ nemáte žiadne roly.",
62
+ "Roles.empty.search": "Žiadne roly nezodpovedajú vyhľadávaniu.",
63
+ "Settings.roles.deleted": "Rola bola odstránená",
64
+ "Settings.roles.edited": "Rola bola upravená",
65
+ "Settings.section-label": "Plugin Používatelia a oprávnenia",
66
+ "components.Input.error.validation.email": "Toto nie je platný email",
67
+ "components.Input.error.validation.json": "Toto nezodpovedá formátu JSON",
68
+ "components.Input.error.validation.max": "Hodnota je príliš vysoká.",
69
+ "components.Input.error.validation.maxLength": "Hodnota je príliš dlhá.",
70
+ "components.Input.error.validation.min": "Hodnota je príliš nízka.",
71
+ "components.Input.error.validation.minLength": "Hodnota je príliš krátka.",
72
+ "components.Input.error.validation.minSupMax": "Nemôže byť nadradené",
73
+ "components.Input.error.validation.regex": "Hodnota nezodpovedá regexu.",
74
+ "components.Input.error.validation.required": "Táto hodnota je povinná.",
75
+ "components.Input.error.validation.unique": "Táto hodnota sa už používa.",
44
76
  "notification.success.submit": "Nastavenia boli uložené",
77
+ "page.title": "Nastavenia - Roly",
45
78
  "plugin.description.long": "Zabezpečte vaše API pomocou JWT tokenov. Tento plugin taktiež podporuje ACL záznamy, ktoré umožňujú spravovať oprávnenia v rámci skupín používateľov.",
46
79
  "plugin.description.short": "Zabezpečte vaše API pomocou JWT tokenov",
47
- "plugin.name": "Roly a oprávnenia"
80
+ "plugin.name": "Roly a oprávnenia",
81
+ "popUpWarning.button.cancel": "Zrušiť",
82
+ "popUpWarning.button.confirm": "Potvrdiť",
83
+ "popUpWarning.title": "Prosím potvrďte",
84
+ "popUpWarning.warning.cancel": "Ste si istý, že chcete zrušiť svoje úpravy?"
48
85
  };
49
86
 
50
87
  module.exports = sk;
@@ -1 +1 @@
1
- {"version":3,"file":"sk.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"sk.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -12,6 +12,17 @@ var sk = {
12
12
  "EditForm.inputToggle.label.email-confirmation-redirection": "URL pre potvrdenie e-mailovej adresy",
13
13
  "EditForm.inputToggle.label.email-reset-password": "URL pre obnovu hesla",
14
14
  "EditForm.inputToggle.label.sign-up": "Povoliť registrácie",
15
+ "EditForm.inputToggle.placeholder.email-confirmation-redirection": "ex: https://yourfrontend.com/email-confirmation-redirection",
16
+ "EditForm.inputToggle.placeholder.email-reset-password": "ex: https://yourfrontend.com/reset-password",
17
+ "EditPage.form.roles": "Detaily role",
18
+ "Email.template.data.loaded": "Šablóny emailov boli načítané",
19
+ "Email.template.email_confirmation": "Potvrdenie e-mailovej adresy",
20
+ "Email.template.reset_password": "Obnovenie hesla",
21
+ "Email.template.form.edit.label": "Upraviť šablónu",
22
+ "Email.template.table.action.label": "akcia",
23
+ "Email.template.table.icon.label": "ikona",
24
+ "Email.template.table.name.label": "názov",
25
+ "Form.advancedSettings.data.loaded": "Údaje pokročilých nastavení boli načítané",
15
26
  "HeaderNav.link.advancedSettings": "Pokročilé nastavenia",
16
27
  "HeaderNav.link.emailTemplates": "Šablóny emailov",
17
28
  "HeaderNav.link.providers": "Poskytovatelia",
@@ -21,28 +32,54 @@ var sk = {
21
32
  "Policies.header.hint": "Vyberte akciu a kliknite na ikonku nastavení pre zobrazenie naviazanej URL",
22
33
  "Policies.header.title": "Pokročilé nastavenia",
23
34
  "PopUpForm.Email.email_templates.inputDescription": "Ak si nie ste istý ako používať premenné, {link}",
35
+ "PopUpForm.Email.link.documentation": "pozrite si našu dokumentáciu.",
24
36
  "PopUpForm.Email.options.from.email.label": "E-mail odosielateľa",
25
- "PopUpForm.Email.options.from.email.placeholder": "janko.hrasko@gmail.com",
37
+ "PopUpForm.Email.options.from.email.placeholder": "janko.hrasko@strapitest.io",
26
38
  "PopUpForm.Email.options.from.name.label": "Meno odosielateľa",
27
39
  "PopUpForm.Email.options.from.name.placeholder": "Janko Hraško",
28
40
  "PopUpForm.Email.options.message.label": "Obsah e-mailu",
29
41
  "PopUpForm.Email.options.object.label": "Predmet",
42
+ "PopUpForm.Email.options.object.placeholder": "Prosím potvrďte svoju e-mailovú adresu pre %APP_NAME%",
30
43
  "PopUpForm.Email.options.response_email.label": "Odpovedať na e-mail",
31
- "PopUpForm.Email.options.response_email.placeholder": "janko.hrasko@gmail.com",
44
+ "PopUpForm.Email.options.response_email.placeholder": "janko.hrasko@strapitest.io",
32
45
  "PopUpForm.Providers.enabled.description": "Ak je zakázané, používatelia nebudú môcť použiť tohto poskytovateľa.",
33
46
  "PopUpForm.Providers.enabled.label": "Povoliť",
34
47
  "PopUpForm.Providers.key.label": "Client ID",
35
48
  "PopUpForm.Providers.key.placeholder": "TEXT",
36
49
  "PopUpForm.Providers.redirectURL.front-end.label": "URL presmerovania do vašej aplikácie",
50
+ "PopUpForm.Providers.redirectURL.label": "URL presmerovania, ktorú treba pridať do konfigurácie vašej aplikácie {provider}",
37
51
  "PopUpForm.Providers.secret.label": "Client Secret",
38
52
  "PopUpForm.Providers.secret.placeholder": "TEXT",
39
- "PopUpForm.Providers.subdomain.label": "Host URI (Subdomain)",
53
+ "PopUpForm.Providers.subdomain.label": "Host URI (subdoména)",
40
54
  "PopUpForm.Providers.subdomain.placeholder": "my.subdomain.com",
41
55
  "PopUpForm.header.edit.email-templates": "Upraviť šablóny e-mailov",
56
+ "PopUpForm.header.edit.providers": "Upraviť poskytovateľa",
57
+ "Providers.data.loaded": "Poskytovatelia boli načítaní",
58
+ "Providers.status": "Status",
59
+ "Roles.empty": "Zatiaľ nemáte žiadne roly.",
60
+ "Roles.empty.search": "Žiadne roly nezodpovedajú vyhľadávaniu.",
61
+ "Settings.roles.deleted": "Rola bola odstránená",
62
+ "Settings.roles.edited": "Rola bola upravená",
63
+ "Settings.section-label": "Plugin Používatelia a oprávnenia",
64
+ "components.Input.error.validation.email": "Toto nie je platný email",
65
+ "components.Input.error.validation.json": "Toto nezodpovedá formátu JSON",
66
+ "components.Input.error.validation.max": "Hodnota je príliš vysoká.",
67
+ "components.Input.error.validation.maxLength": "Hodnota je príliš dlhá.",
68
+ "components.Input.error.validation.min": "Hodnota je príliš nízka.",
69
+ "components.Input.error.validation.minLength": "Hodnota je príliš krátka.",
70
+ "components.Input.error.validation.minSupMax": "Nemôže byť nadradené",
71
+ "components.Input.error.validation.regex": "Hodnota nezodpovedá regexu.",
72
+ "components.Input.error.validation.required": "Táto hodnota je povinná.",
73
+ "components.Input.error.validation.unique": "Táto hodnota sa už používa.",
42
74
  "notification.success.submit": "Nastavenia boli uložené",
75
+ "page.title": "Nastavenia - Roly",
43
76
  "plugin.description.long": "Zabezpečte vaše API pomocou JWT tokenov. Tento plugin taktiež podporuje ACL záznamy, ktoré umožňujú spravovať oprávnenia v rámci skupín používateľov.",
44
77
  "plugin.description.short": "Zabezpečte vaše API pomocou JWT tokenov",
45
- "plugin.name": "Roly a oprávnenia"
78
+ "plugin.name": "Roly a oprávnenia",
79
+ "popUpWarning.button.cancel": "Zrušiť",
80
+ "popUpWarning.button.confirm": "Potvrdiť",
81
+ "popUpWarning.title": "Prosím potvrďte",
82
+ "popUpWarning.warning.cancel": "Ste si istý, že chcete zrušiť svoje úpravy?"
46
83
  };
47
84
 
48
85
  export { sk as default };
@@ -1 +1 @@
1
- {"version":3,"file":"sk.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"sk.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../server/bootstrap/index.js"],"sourcesContent":["'use strict';\n\n/**\n * An asynchronous bootstrap function that runs before\n * your application gets started.\n *\n * This gives you an opportunity to set up your data model,\n * run jobs, or perform some special logic.\n */\nconst crypto = require('crypto');\nconst _ = require('lodash');\nconst { getService } = require('../utils');\nconst usersPermissionsActions = require('./users-permissions-actions');\nconst {\n DEFAULT_ACCESS_TOKEN_LIFESPAN,\n DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN,\n DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN,\n DEFAULT_MAX_SESSION_LIFESPAN,\n DEFAULT_IDLE_SESSION_LIFESPAN,\n} = require('../services/constants');\n\nconst getSessionManager = () => {\n const manager = strapi.sessionManager;\n return manager ?? null;\n};\n\nconst initGrant = async (pluginStore) => {\n const allProviders = getService('providers-registry').getAll();\n\n const grantConfig = Object.entries(allProviders).reduce((acc, [name, provider]) => {\n const { icon, enabled, grantConfig } = provider;\n\n acc[name] = {\n icon,\n enabled,\n ...grantConfig,\n };\n return acc;\n }, {});\n\n const prevGrantConfig = (await pluginStore.get({ key: 'grant' })) || {};\n\n if (!prevGrantConfig || !_.isEqual(prevGrantConfig, grantConfig)) {\n // merge with the previous provider config.\n _.keys(grantConfig).forEach((key) => {\n if (key in prevGrantConfig) {\n grantConfig[key] = _.merge(grantConfig[key], prevGrantConfig[key]);\n }\n });\n await pluginStore.set({ key: 'grant', value: grantConfig });\n }\n};\n\nconst initEmails = async (pluginStore) => {\n if (!(await pluginStore.get({ key: 'email' }))) {\n const value = {\n reset_password: {\n display: 'Email.template.reset_password',\n icon: 'sync',\n options: {\n from: {\n name: 'Administration Panel',\n email: 'no-reply@strapi.io',\n },\n response_email: '',\n object: 'Reset password',\n message: `<p>We heard that you lost your password. Sorry about that!</p>\n\n<p>But don’t worry! You can use the following link to reset your password:</p>\n<p><%= URL %>?code=<%= TOKEN %></p>\n\n<p>Thanks.</p>`,\n },\n },\n email_confirmation: {\n display: 'Email.template.email_confirmation',\n icon: 'check-square',\n options: {\n from: {\n name: 'Administration Panel',\n email: 'no-reply@strapi.io',\n },\n response_email: '',\n object: 'Account confirmation',\n message: `<p>Thank you for registering!</p>\n\n<p>You have to confirm your email address. Please click on the link below.</p>\n\n<p><%= URL %>?confirmation=<%= CODE %></p>\n\n<p>Thanks.</p>`,\n },\n },\n };\n\n await pluginStore.set({ key: 'email', value });\n }\n};\n\nconst initAdvancedOptions = async (pluginStore) => {\n if (!(await pluginStore.get({ key: 'advanced' }))) {\n const value = {\n unique_email: true,\n allow_register: true,\n email_confirmation: false,\n email_reset_password: null,\n email_confirmation_redirection: null,\n default_role: 'authenticated',\n };\n\n await pluginStore.set({ key: 'advanced', value });\n }\n};\n\nmodule.exports = async ({ strapi }) => {\n const pluginStore = strapi.store({ type: 'plugin', name: 'users-permissions' });\n\n await initGrant(pluginStore);\n await initEmails(pluginStore);\n await initAdvancedOptions(pluginStore);\n\n await strapi\n .service('admin::permission')\n .actionProvider.registerMany(usersPermissionsActions.actions);\n\n await getService('users-permissions').initialize();\n\n // Define users-permissions origin configuration for sessionManager\n const upConfig = strapi.config.get('plugin::users-permissions');\n const sessionManager = getSessionManager();\n\n if (sessionManager) {\n sessionManager.defineOrigin('users-permissions', {\n jwtSecret: upConfig.jwtSecret || strapi.config.get('admin.auth.secret'),\n accessTokenLifespan: upConfig.sessions?.accessTokenLifespan || DEFAULT_ACCESS_TOKEN_LIFESPAN,\n maxRefreshTokenLifespan:\n upConfig.sessions?.maxRefreshTokenLifespan || DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN,\n idleRefreshTokenLifespan:\n upConfig.sessions?.idleRefreshTokenLifespan || DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN,\n maxSessionLifespan: upConfig.sessions?.maxSessionLifespan || DEFAULT_MAX_SESSION_LIFESPAN,\n idleSessionLifespan: upConfig.sessions?.idleSessionLifespan || DEFAULT_IDLE_SESSION_LIFESPAN,\n algorithm: upConfig.jwt?.algorithm,\n jwtOptions: upConfig.jwt || {},\n });\n }\n\n if (!strapi.config.get('plugin::users-permissions.jwtSecret')) {\n if (process.env.NODE_ENV !== 'development') {\n throw new Error(\n `Missing jwtSecret. Please, set configuration variable \"jwtSecret\" for the users-permissions plugin in config/plugins.js (ex: you can generate one using Node with \\`crypto.randomBytes(16).toString('base64')\\`).\nFor security reasons, prefer storing the secret in an environment variable and read it in config/plugins.js. See https://docs.strapi.io/developer-docs/latest/setup-deployment-guides/configurations/optional/environment.html#configuration-using-environment-variables.`\n );\n }\n\n const jwtSecret = crypto.randomBytes(16).toString('base64');\n\n strapi.config.set('plugin::users-permissions.jwtSecret', jwtSecret);\n\n if (!process.env.JWT_SECRET) {\n const envPath = process.env.ENV_PATH || '.env';\n strapi.fs.appendFile(envPath, `JWT_SECRET=${jwtSecret}\\n`);\n strapi.log.info(\n `The Users & Permissions plugin automatically generated a jwt secret and stored it in ${envPath} under the name JWT_SECRET.`\n );\n }\n }\n};\n"],"names":["crypto","require$$0","_","require$$1","getService","require$$2","usersPermissionsActions","require$$3","DEFAULT_ACCESS_TOKEN_LIFESPAN","DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN","DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN","DEFAULT_MAX_SESSION_LIFESPAN","DEFAULT_IDLE_SESSION_LIFESPAN","require$$4","getSessionManager","manager","strapi","sessionManager","initGrant","pluginStore","allProviders","getAll","grantConfig","Object","entries","reduce","acc","name","provider","icon","enabled","prevGrantConfig","get","key","isEqual","keys","forEach","merge","set","value","initEmails","reset_password","display","options","from","email","response_email","object","message","email_confirmation","initAdvancedOptions","unique_email","allow_register","email_reset_password","email_confirmation_redirection","default_role","bootstrap","store","type","service","actionProvider","registerMany","actions","initialize","upConfig","config","defineOrigin","jwtSecret","accessTokenLifespan","sessions","maxRefreshTokenLifespan","idleRefreshTokenLifespan","maxSessionLifespan","idleSessionLifespan","algorithm","jwt","jwtOptions","process","env","NODE_ENV","Error","randomBytes","toString","JWT_SECRET","envPath","ENV_PATH","fs","appendFile","log","info"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../server/bootstrap/index.js"],"sourcesContent":["'use strict';\n\n/**\n * An asynchronous bootstrap function that runs before\n * your application gets started.\n *\n * This gives you an opportunity to set up your data model,\n * run jobs, or perform some special logic.\n */\nconst crypto = require('crypto');\nconst _ = require('lodash');\nconst { getService } = require('../utils');\nconst usersPermissionsActions = require('./users-permissions-actions');\nconst {\n DEFAULT_ACCESS_TOKEN_LIFESPAN,\n DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN,\n DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN,\n DEFAULT_MAX_SESSION_LIFESPAN,\n DEFAULT_IDLE_SESSION_LIFESPAN,\n} = require('../services/constants');\n\nconst getSessionManager = () => {\n const manager = strapi.sessionManager;\n return manager ?? null;\n};\n\nconst initGrant = async (pluginStore) => {\n const allProviders = getService('providers-registry').getAll();\n\n const grantConfig = Object.entries(allProviders).reduce((acc, [name, provider]) => {\n const { icon, enabled, grantConfig } = provider;\n\n acc[name] = {\n icon,\n enabled,\n ...grantConfig,\n };\n return acc;\n }, {});\n\n const prevGrantConfig = (await pluginStore.get({ key: 'grant' })) || {};\n\n if (!prevGrantConfig || !_.isEqual(prevGrantConfig, grantConfig)) {\n // merge with the previous provider config.\n _.keys(grantConfig).forEach((key) => {\n if (key in prevGrantConfig) {\n grantConfig[key] = _.merge(grantConfig[key], prevGrantConfig[key]);\n }\n });\n await pluginStore.set({ key: 'grant', value: grantConfig });\n }\n};\n\nconst initEmails = async (pluginStore) => {\n if (!(await pluginStore.get({ key: 'email' }))) {\n const value = {\n reset_password: {\n display: 'Email.template.reset_password',\n icon: 'sync',\n options: {\n from: {\n name: 'Administration Panel',\n email: 'no-reply@strapi.io',\n },\n response_email: '',\n object: 'Reset password',\n message: `<p>We heard that you lost your password. Sorry about that!</p>\n\n<p>But don’t worry! You can use the following link to reset your password:</p>\n<p><%= URL %>?code=<%= TOKEN %></p>\n\n<p>Thanks.</p>`,\n },\n },\n email_confirmation: {\n display: 'Email.template.email_confirmation',\n icon: 'check-square',\n options: {\n from: {\n name: 'Administration Panel',\n email: 'no-reply@strapi.io',\n },\n response_email: '',\n object: 'Account confirmation',\n message: `<p>Thank you for registering!</p>\n\n<p>You have to confirm your email address. Please click on the link below.</p>\n\n<p><%= URL %>?confirmation=<%= CODE %></p>\n\n<p>Thanks.</p>`,\n },\n },\n };\n\n await pluginStore.set({ key: 'email', value });\n }\n};\n\nconst initAdvancedOptions = async (pluginStore) => {\n if (!(await pluginStore.get({ key: 'advanced' }))) {\n const value = {\n unique_email: true,\n allow_register: true,\n email_confirmation: false,\n email_reset_password: null,\n email_confirmation_redirection: null,\n default_role: 'authenticated',\n };\n\n await pluginStore.set({ key: 'advanced', value });\n }\n};\n\nmodule.exports = async ({ strapi }) => {\n const pluginStore = strapi.store({ type: 'plugin', name: 'users-permissions' });\n\n await initGrant(pluginStore);\n await initEmails(pluginStore);\n await initAdvancedOptions(pluginStore);\n\n await strapi\n .service('admin::permission')\n .actionProvider.registerMany(usersPermissionsActions.actions);\n\n await getService('users-permissions').initialize();\n\n // Define users-permissions origin configuration for sessionManager\n const upConfig = strapi.config.get('plugin::users-permissions');\n const sessionManager = getSessionManager();\n\n if (sessionManager) {\n sessionManager.defineOrigin('users-permissions', {\n jwtSecret: upConfig.jwtSecret || strapi.config.get('admin.auth.secret'),\n accessTokenLifespan: upConfig.sessions?.accessTokenLifespan || DEFAULT_ACCESS_TOKEN_LIFESPAN,\n maxRefreshTokenLifespan:\n upConfig.sessions?.maxRefreshTokenLifespan || DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN,\n idleRefreshTokenLifespan:\n upConfig.sessions?.idleRefreshTokenLifespan || DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN,\n maxSessionLifespan: upConfig.sessions?.maxSessionLifespan || DEFAULT_MAX_SESSION_LIFESPAN,\n idleSessionLifespan: upConfig.sessions?.idleSessionLifespan || DEFAULT_IDLE_SESSION_LIFESPAN,\n algorithm: upConfig.jwt?.algorithm,\n jwtOptions: upConfig.jwt || {},\n });\n }\n\n if (!strapi.config.get('plugin::users-permissions.jwtSecret')) {\n if (process.env.NODE_ENV !== 'development') {\n throw new Error(\n `Missing jwtSecret. Please, set configuration variable \"jwtSecret\" for the users-permissions plugin in config/plugins.js (ex: you can generate one using Node with \\`crypto.randomBytes(16).toString('base64')\\`).\nFor security reasons, prefer storing the secret in an environment variable and read it in config/plugins.js. See https://docs.strapi.io/developer-docs/latest/setup-deployment-guides/configurations/optional/environment.html#configuration-using-environment-variables.`\n );\n }\n\n const jwtSecret = crypto.randomBytes(16).toString('base64');\n\n strapi.config.set('plugin::users-permissions.jwtSecret', jwtSecret);\n\n if (!process.env.JWT_SECRET) {\n const envPath = process.env.ENV_PATH || '.env';\n strapi.fs.appendFile(envPath, `JWT_SECRET=${jwtSecret}\\n`);\n strapi.log.info(\n `The Users & Permissions plugin automatically generated a jwt secret and stored it in ${envPath} under the name JWT_SECRET.`\n );\n }\n }\n};\n"],"names":["crypto","require$$0","_","require$$1","getService","require$$2","usersPermissionsActions","require$$3","DEFAULT_ACCESS_TOKEN_LIFESPAN","DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN","DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN","DEFAULT_MAX_SESSION_LIFESPAN","DEFAULT_IDLE_SESSION_LIFESPAN","require$$4","getSessionManager","manager","strapi","sessionManager","initGrant","pluginStore","allProviders","getAll","grantConfig","Object","entries","reduce","acc","name","provider","icon","enabled","prevGrantConfig","get","key","isEqual","keys","forEach","merge","set","value","initEmails","reset_password","display","options","from","email","response_email","object","message","email_confirmation","initAdvancedOptions","unique_email","allow_register","email_reset_password","email_confirmation_redirection","default_role","bootstrap","store","type","service","actionProvider","registerMany","actions","initialize","upConfig","config","defineOrigin","jwtSecret","accessTokenLifespan","sessions","maxRefreshTokenLifespan","idleRefreshTokenLifespan","maxSessionLifespan","idleSessionLifespan","algorithm","jwt","jwtOptions","process","env","NODE_ENV","Error","randomBytes","toString","JWT_SECRET","envPath","ENV_PATH","fs","appendFile","log","info"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../server/bootstrap/index.js"],"sourcesContent":["'use strict';\n\n/**\n * An asynchronous bootstrap function that runs before\n * your application gets started.\n *\n * This gives you an opportunity to set up your data model,\n * run jobs, or perform some special logic.\n */\nconst crypto = require('crypto');\nconst _ = require('lodash');\nconst { getService } = require('../utils');\nconst usersPermissionsActions = require('./users-permissions-actions');\nconst {\n DEFAULT_ACCESS_TOKEN_LIFESPAN,\n DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN,\n DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN,\n DEFAULT_MAX_SESSION_LIFESPAN,\n DEFAULT_IDLE_SESSION_LIFESPAN,\n} = require('../services/constants');\n\nconst getSessionManager = () => {\n const manager = strapi.sessionManager;\n return manager ?? null;\n};\n\nconst initGrant = async (pluginStore) => {\n const allProviders = getService('providers-registry').getAll();\n\n const grantConfig = Object.entries(allProviders).reduce((acc, [name, provider]) => {\n const { icon, enabled, grantConfig } = provider;\n\n acc[name] = {\n icon,\n enabled,\n ...grantConfig,\n };\n return acc;\n }, {});\n\n const prevGrantConfig = (await pluginStore.get({ key: 'grant' })) || {};\n\n if (!prevGrantConfig || !_.isEqual(prevGrantConfig, grantConfig)) {\n // merge with the previous provider config.\n _.keys(grantConfig).forEach((key) => {\n if (key in prevGrantConfig) {\n grantConfig[key] = _.merge(grantConfig[key], prevGrantConfig[key]);\n }\n });\n await pluginStore.set({ key: 'grant', value: grantConfig });\n }\n};\n\nconst initEmails = async (pluginStore) => {\n if (!(await pluginStore.get({ key: 'email' }))) {\n const value = {\n reset_password: {\n display: 'Email.template.reset_password',\n icon: 'sync',\n options: {\n from: {\n name: 'Administration Panel',\n email: 'no-reply@strapi.io',\n },\n response_email: '',\n object: 'Reset password',\n message: `<p>We heard that you lost your password. Sorry about that!</p>\n\n<p>But don’t worry! You can use the following link to reset your password:</p>\n<p><%= URL %>?code=<%= TOKEN %></p>\n\n<p>Thanks.</p>`,\n },\n },\n email_confirmation: {\n display: 'Email.template.email_confirmation',\n icon: 'check-square',\n options: {\n from: {\n name: 'Administration Panel',\n email: 'no-reply@strapi.io',\n },\n response_email: '',\n object: 'Account confirmation',\n message: `<p>Thank you for registering!</p>\n\n<p>You have to confirm your email address. Please click on the link below.</p>\n\n<p><%= URL %>?confirmation=<%= CODE %></p>\n\n<p>Thanks.</p>`,\n },\n },\n };\n\n await pluginStore.set({ key: 'email', value });\n }\n};\n\nconst initAdvancedOptions = async (pluginStore) => {\n if (!(await pluginStore.get({ key: 'advanced' }))) {\n const value = {\n unique_email: true,\n allow_register: true,\n email_confirmation: false,\n email_reset_password: null,\n email_confirmation_redirection: null,\n default_role: 'authenticated',\n };\n\n await pluginStore.set({ key: 'advanced', value });\n }\n};\n\nmodule.exports = async ({ strapi }) => {\n const pluginStore = strapi.store({ type: 'plugin', name: 'users-permissions' });\n\n await initGrant(pluginStore);\n await initEmails(pluginStore);\n await initAdvancedOptions(pluginStore);\n\n await strapi\n .service('admin::permission')\n .actionProvider.registerMany(usersPermissionsActions.actions);\n\n await getService('users-permissions').initialize();\n\n // Define users-permissions origin configuration for sessionManager\n const upConfig = strapi.config.get('plugin::users-permissions');\n const sessionManager = getSessionManager();\n\n if (sessionManager) {\n sessionManager.defineOrigin('users-permissions', {\n jwtSecret: upConfig.jwtSecret || strapi.config.get('admin.auth.secret'),\n accessTokenLifespan: upConfig.sessions?.accessTokenLifespan || DEFAULT_ACCESS_TOKEN_LIFESPAN,\n maxRefreshTokenLifespan:\n upConfig.sessions?.maxRefreshTokenLifespan || DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN,\n idleRefreshTokenLifespan:\n upConfig.sessions?.idleRefreshTokenLifespan || DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN,\n maxSessionLifespan: upConfig.sessions?.maxSessionLifespan || DEFAULT_MAX_SESSION_LIFESPAN,\n idleSessionLifespan: upConfig.sessions?.idleSessionLifespan || DEFAULT_IDLE_SESSION_LIFESPAN,\n algorithm: upConfig.jwt?.algorithm,\n jwtOptions: upConfig.jwt || {},\n });\n }\n\n if (!strapi.config.get('plugin::users-permissions.jwtSecret')) {\n if (process.env.NODE_ENV !== 'development') {\n throw new Error(\n `Missing jwtSecret. Please, set configuration variable \"jwtSecret\" for the users-permissions plugin in config/plugins.js (ex: you can generate one using Node with \\`crypto.randomBytes(16).toString('base64')\\`).\nFor security reasons, prefer storing the secret in an environment variable and read it in config/plugins.js. See https://docs.strapi.io/developer-docs/latest/setup-deployment-guides/configurations/optional/environment.html#configuration-using-environment-variables.`\n );\n }\n\n const jwtSecret = crypto.randomBytes(16).toString('base64');\n\n strapi.config.set('plugin::users-permissions.jwtSecret', jwtSecret);\n\n if (!process.env.JWT_SECRET) {\n const envPath = process.env.ENV_PATH || '.env';\n strapi.fs.appendFile(envPath, `JWT_SECRET=${jwtSecret}\\n`);\n strapi.log.info(\n `The Users & Permissions plugin automatically generated a jwt secret and stored it in ${envPath} under the name JWT_SECRET.`\n );\n }\n }\n};\n"],"names":["crypto","require$$0","_","require$$1","getService","require$$2","usersPermissionsActions","require$$3","DEFAULT_ACCESS_TOKEN_LIFESPAN","DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN","DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN","DEFAULT_MAX_SESSION_LIFESPAN","DEFAULT_IDLE_SESSION_LIFESPAN","require$$4","getSessionManager","manager","strapi","sessionManager","initGrant","pluginStore","allProviders","getAll","grantConfig","Object","entries","reduce","acc","name","provider","icon","enabled","prevGrantConfig","get","key","isEqual","keys","forEach","merge","set","value","initEmails","reset_password","display","options","from","email","response_email","object","message","email_confirmation","initAdvancedOptions","unique_email","allow_register","email_reset_password","email_confirmation_redirection","default_role","bootstrap","store","type","service","actionProvider","registerMany","actions","initialize","upConfig","config","defineOrigin","jwtSecret","accessTokenLifespan","sessions","maxRefreshTokenLifespan","idleRefreshTokenLifespan","maxSessionLifespan","idleSessionLifespan","algorithm","jwt","jwtOptions","process","env","NODE_ENV","Error","randomBytes","toString","JWT_SECRET","envPath","ENV_PATH","fs","appendFile","log","info"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../server/bootstrap/index.js"],"sourcesContent":["'use strict';\n\n/**\n * An asynchronous bootstrap function that runs before\n * your application gets started.\n *\n * This gives you an opportunity to set up your data model,\n * run jobs, or perform some special logic.\n */\nconst crypto = require('crypto');\nconst _ = require('lodash');\nconst { getService } = require('../utils');\nconst usersPermissionsActions = require('./users-permissions-actions');\nconst {\n DEFAULT_ACCESS_TOKEN_LIFESPAN,\n DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN,\n DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN,\n DEFAULT_MAX_SESSION_LIFESPAN,\n DEFAULT_IDLE_SESSION_LIFESPAN,\n} = require('../services/constants');\n\nconst getSessionManager = () => {\n const manager = strapi.sessionManager;\n return manager ?? null;\n};\n\nconst initGrant = async (pluginStore) => {\n const allProviders = getService('providers-registry').getAll();\n\n const grantConfig = Object.entries(allProviders).reduce((acc, [name, provider]) => {\n const { icon, enabled, grantConfig } = provider;\n\n acc[name] = {\n icon,\n enabled,\n ...grantConfig,\n };\n return acc;\n }, {});\n\n const prevGrantConfig = (await pluginStore.get({ key: 'grant' })) || {};\n\n if (!prevGrantConfig || !_.isEqual(prevGrantConfig, grantConfig)) {\n // merge with the previous provider config.\n _.keys(grantConfig).forEach((key) => {\n if (key in prevGrantConfig) {\n grantConfig[key] = _.merge(grantConfig[key], prevGrantConfig[key]);\n }\n });\n await pluginStore.set({ key: 'grant', value: grantConfig });\n }\n};\n\nconst initEmails = async (pluginStore) => {\n if (!(await pluginStore.get({ key: 'email' }))) {\n const value = {\n reset_password: {\n display: 'Email.template.reset_password',\n icon: 'sync',\n options: {\n from: {\n name: 'Administration Panel',\n email: 'no-reply@strapi.io',\n },\n response_email: '',\n object: 'Reset password',\n message: `<p>We heard that you lost your password. Sorry about that!</p>\n\n<p>But don’t worry! You can use the following link to reset your password:</p>\n<p><%= URL %>?code=<%= TOKEN %></p>\n\n<p>Thanks.</p>`,\n },\n },\n email_confirmation: {\n display: 'Email.template.email_confirmation',\n icon: 'check-square',\n options: {\n from: {\n name: 'Administration Panel',\n email: 'no-reply@strapi.io',\n },\n response_email: '',\n object: 'Account confirmation',\n message: `<p>Thank you for registering!</p>\n\n<p>You have to confirm your email address. Please click on the link below.</p>\n\n<p><%= URL %>?confirmation=<%= CODE %></p>\n\n<p>Thanks.</p>`,\n },\n },\n };\n\n await pluginStore.set({ key: 'email', value });\n }\n};\n\nconst initAdvancedOptions = async (pluginStore) => {\n if (!(await pluginStore.get({ key: 'advanced' }))) {\n const value = {\n unique_email: true,\n allow_register: true,\n email_confirmation: false,\n email_reset_password: null,\n email_confirmation_redirection: null,\n default_role: 'authenticated',\n };\n\n await pluginStore.set({ key: 'advanced', value });\n }\n};\n\nmodule.exports = async ({ strapi }) => {\n const pluginStore = strapi.store({ type: 'plugin', name: 'users-permissions' });\n\n await initGrant(pluginStore);\n await initEmails(pluginStore);\n await initAdvancedOptions(pluginStore);\n\n await strapi\n .service('admin::permission')\n .actionProvider.registerMany(usersPermissionsActions.actions);\n\n await getService('users-permissions').initialize();\n\n // Define users-permissions origin configuration for sessionManager\n const upConfig = strapi.config.get('plugin::users-permissions');\n const sessionManager = getSessionManager();\n\n if (sessionManager) {\n sessionManager.defineOrigin('users-permissions', {\n jwtSecret: upConfig.jwtSecret || strapi.config.get('admin.auth.secret'),\n accessTokenLifespan: upConfig.sessions?.accessTokenLifespan || DEFAULT_ACCESS_TOKEN_LIFESPAN,\n maxRefreshTokenLifespan:\n upConfig.sessions?.maxRefreshTokenLifespan || DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN,\n idleRefreshTokenLifespan:\n upConfig.sessions?.idleRefreshTokenLifespan || DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN,\n maxSessionLifespan: upConfig.sessions?.maxSessionLifespan || DEFAULT_MAX_SESSION_LIFESPAN,\n idleSessionLifespan: upConfig.sessions?.idleSessionLifespan || DEFAULT_IDLE_SESSION_LIFESPAN,\n algorithm: upConfig.jwt?.algorithm,\n jwtOptions: upConfig.jwt || {},\n });\n }\n\n if (!strapi.config.get('plugin::users-permissions.jwtSecret')) {\n if (process.env.NODE_ENV !== 'development') {\n throw new Error(\n `Missing jwtSecret. Please, set configuration variable \"jwtSecret\" for the users-permissions plugin in config/plugins.js (ex: you can generate one using Node with \\`crypto.randomBytes(16).toString('base64')\\`).\nFor security reasons, prefer storing the secret in an environment variable and read it in config/plugins.js. See https://docs.strapi.io/developer-docs/latest/setup-deployment-guides/configurations/optional/environment.html#configuration-using-environment-variables.`\n );\n }\n\n const jwtSecret = crypto.randomBytes(16).toString('base64');\n\n strapi.config.set('plugin::users-permissions.jwtSecret', jwtSecret);\n\n if (!process.env.JWT_SECRET) {\n const envPath = process.env.ENV_PATH || '.env';\n strapi.fs.appendFile(envPath, `JWT_SECRET=${jwtSecret}\\n`);\n strapi.log.info(\n `The Users & Permissions plugin automatically generated a jwt secret and stored it in ${envPath} under the name JWT_SECRET.`\n );\n }\n }\n};\n"],"names":["crypto","require$$0","_","require$$1","getService","require$$2","usersPermissionsActions","require$$3","DEFAULT_ACCESS_TOKEN_LIFESPAN","DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN","DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN","DEFAULT_MAX_SESSION_LIFESPAN","DEFAULT_IDLE_SESSION_LIFESPAN","require$$4","getSessionManager","manager","strapi","sessionManager","initGrant","pluginStore","allProviders","getAll","grantConfig","Object","entries","reduce","acc","name","provider","icon","enabled","prevGrantConfig","get","key","isEqual","keys","forEach","merge","set","value","initEmails","reset_password","display","options","from","email","response_email","object","message","email_confirmation","initAdvancedOptions","unique_email","allow_register","email_reset_password","email_confirmation_redirection","default_role","bootstrap","store","type","service","actionProvider","registerMany","actions","initialize","upConfig","config","defineOrigin","jwtSecret","accessTokenLifespan","sessions","maxRefreshTokenLifespan","idleRefreshTokenLifespan","maxSessionLifespan","idleSessionLifespan","algorithm","jwt","jwtOptions","process","env","NODE_ENV","Error","randomBytes","toString","JWT_SECRET","envPath","ENV_PATH","fs","appendFile","log","info"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sources":["../../server/config.js"],"sourcesContent":["'use strict';\n\nconst {\n DEFAULT_ACCESS_TOKEN_LIFESPAN,\n DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN,\n DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN,\n DEFAULT_MAX_SESSION_LIFESPAN,\n DEFAULT_IDLE_SESSION_LIFESPAN,\n} = require('./services/constants');\n\nmodule.exports = {\n default: ({ env }) => ({\n jwtSecret: env('JWT_SECRET'),\n jwt: {\n expiresIn: '30d',\n },\n /**\n * JWT management mode for the Content API authentication\n * - \"legacy-support\": use plugin JWTs (backward compatible)\n * - \"refresh\": use SessionManager (access/refresh tokens)\n */\n jwtManagement: 'legacy-support',\n sessions: {\n accessTokenLifespan: DEFAULT_ACCESS_TOKEN_LIFESPAN,\n maxRefreshTokenLifespan: DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN,\n idleRefreshTokenLifespan: DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN,\n maxSessionLifespan: DEFAULT_MAX_SESSION_LIFESPAN,\n idleSessionLifespan: DEFAULT_IDLE_SESSION_LIFESPAN,\n httpOnly: false,\n },\n ratelimit: {\n interval: 60000,\n max: 10,\n },\n layout: {\n user: {\n actions: {\n create: 'contentManagerUser.create', // Use the User plugin's controller.\n update: 'contentManagerUser.update',\n },\n },\n },\n callback: {\n validate(callback, provider) {\n let uCallback;\n let uProviderCallback;\n\n try {\n uCallback = new URL(callback);\n uProviderCallback = new URL(provider.callback);\n } catch {\n throw new Error('The callback is not a valid URL');\n }\n\n // Make sure the different origin matches\n if (uCallback.origin !== uProviderCallback.origin) {\n throw new Error(\n `Forbidden callback provided: origins don't match. Please verify your config.`\n );\n }\n\n // Make sure the different pathname matches\n if (uCallback.pathname !== uProviderCallback.pathname) {\n throw new Error(\n `Forbidden callback provided: pathname don't match. Please verify your config.`\n );\n }\n\n // NOTE: We're not checking the search parameters on purpose to allow passing different states\n },\n },\n }),\n validator() {},\n};\n"],"names":["DEFAULT_ACCESS_TOKEN_LIFESPAN","DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN","DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN","DEFAULT_MAX_SESSION_LIFESPAN","DEFAULT_IDLE_SESSION_LIFESPAN","require$$0","config","default","env","jwtSecret","jwt","expiresIn","jwtManagement","sessions","accessTokenLifespan","maxRefreshTokenLifespan","idleRefreshTokenLifespan","maxSessionLifespan","idleSessionLifespan","httpOnly","ratelimit","interval","max","layout","user","actions","create","update","callback","validate","provider","uCallback","uProviderCallback","URL","Error","origin","pathname","validator"],"mappings":";;;;;;;;;IAEA,MAAM,EACJA,6BAA6B,EAC7BC,kCAAkC,EAClCC,mCAAmC,EACnCC,4BAA4B,EAC5BC,6BAA6B,EAC9B,GAAGC,mBAAAA,EAAAA;IAEJC,MAAAA,GAAiB;AACfC,QAAAA,OAAAA,EAAS,CAAC,EAAEC,GAAG,EAAE,IAAM;AACrBC,gBAAAA,SAAAA,EAAWD,GAAAA,CAAI,YAAA,CAAA;gBACfE,GAAAA,EAAK;oBACHC,SAAAA,EAAW;AACjB,iBAAA;AACA;;;;AAIA,SACIC,aAAAA,EAAe,gBAAA;gBACfC,QAAAA,EAAU;oBACRC,mBAAAA,EAAqBd,6BAAAA;oBACrBe,uBAAAA,EAAyBd,kCAAAA;oBACzBe,wBAAAA,EAA0Bd,mCAAAA;oBAC1Be,kBAAAA,EAAoBd,4BAAAA;oBACpBe,mBAAAA,EAAqBd,6BAAAA;oBACrBe,QAAAA,EAAU;AAChB,iBAAA;gBACIC,SAAAA,EAAW;oBACTC,QAAAA,EAAU,KAAA;oBACVC,GAAAA,EAAK;AACX,iBAAA;gBACIC,MAAAA,EAAQ;oBACNC,IAAAA,EAAM;wBACJC,OAAAA,EAAS;4BACPC,MAAAA,EAAQ,2BAAA;4BACRC,MAAAA,EAAQ;AAClB;AACA;AACA,iBAAA;gBACIC,QAAAA,EAAU;oBACRC,QAAAA,CAAAA,CAASD,QAAQ,EAAEE,QAAQ,EAAA;wBACzB,IAAIC,SAAAA;wBACJ,IAAIC,iBAAAA;wBAEJ,IAAI;AACFD,4BAAAA,SAAAA,GAAY,IAAIE,GAAAA,CAAIL,QAAAA,CAAAA;4BACpBI,iBAAAA,GAAoB,IAAIC,GAAAA,CAAIH,QAAAA,CAASF,QAAQ,CAAA;AACvD,wBAAA,CAAA,CAAU,OAAM;AACN,4BAAA,MAAM,IAAIM,KAAAA,CAAM,iCAAA,CAAA;AAC1B,wBAAA;;AAGQ,wBAAA,IAAIH,SAAAA,CAAUI,MAAM,KAAKH,iBAAAA,CAAkBG,MAAM,EAAE;AACjD,4BAAA,MAAM,IAAID,KAAAA,CACR,CAAC,4EAA4E,CAAA,CAAA;AAEzF,wBAAA;;AAGQ,wBAAA,IAAIH,SAAAA,CAAUK,QAAQ,KAAKJ,iBAAAA,CAAkBI,QAAQ,EAAE;AACrD,4BAAA,MAAM,IAAIF,KAAAA,CACR,CAAC,6EAA6E,CAAA,CAAA;AAE1F,wBAAA;;AAGA,oBAAA;AACA;aACA,CAAA;QACEG,SAAAA,CAAAA,GAAAA,CAAY;AACd,KAAA;;;;;;"}
1
+ {"version":3,"file":"config.js","sources":["../../server/config.js"],"sourcesContent":["'use strict';\n\nconst {\n DEFAULT_ACCESS_TOKEN_LIFESPAN,\n DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN,\n DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN,\n DEFAULT_MAX_SESSION_LIFESPAN,\n DEFAULT_IDLE_SESSION_LIFESPAN,\n} = require('./services/constants');\n\nmodule.exports = {\n default: ({ env }) => ({\n jwtSecret: env('JWT_SECRET'),\n jwt: {\n expiresIn: '30d',\n },\n /**\n * JWT management mode for the Content API authentication\n * - \"legacy-support\": use plugin JWTs (backward compatible)\n * - \"refresh\": use SessionManager (access/refresh tokens)\n */\n jwtManagement: 'legacy-support',\n sessions: {\n accessTokenLifespan: DEFAULT_ACCESS_TOKEN_LIFESPAN,\n maxRefreshTokenLifespan: DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN,\n idleRefreshTokenLifespan: DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN,\n maxSessionLifespan: DEFAULT_MAX_SESSION_LIFESPAN,\n idleSessionLifespan: DEFAULT_IDLE_SESSION_LIFESPAN,\n httpOnly: false,\n },\n ratelimit: {\n interval: 60000,\n max: 10,\n },\n layout: {\n user: {\n actions: {\n create: 'contentManagerUser.create', // Use the User plugin's controller.\n update: 'contentManagerUser.update',\n },\n },\n },\n callback: {\n validate(callback, provider) {\n let uCallback;\n let uProviderCallback;\n\n try {\n uCallback = new URL(callback);\n uProviderCallback = new URL(provider.callback);\n } catch {\n throw new Error('The callback is not a valid URL');\n }\n\n // Make sure the different origin matches\n if (uCallback.origin !== uProviderCallback.origin) {\n throw new Error(\n `Forbidden callback provided: origins don't match. Please verify your config.`\n );\n }\n\n // Make sure the different pathname matches\n if (uCallback.pathname !== uProviderCallback.pathname) {\n throw new Error(\n `Forbidden callback provided: pathname don't match. Please verify your config.`\n );\n }\n\n // NOTE: We're not checking the search parameters on purpose to allow passing different states\n },\n },\n }),\n validator() {},\n};\n"],"names":["DEFAULT_ACCESS_TOKEN_LIFESPAN","DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN","DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN","DEFAULT_MAX_SESSION_LIFESPAN","DEFAULT_IDLE_SESSION_LIFESPAN","require$$0","config","default","env","jwtSecret","jwt","expiresIn","jwtManagement","sessions","accessTokenLifespan","maxRefreshTokenLifespan","idleRefreshTokenLifespan","maxSessionLifespan","idleSessionLifespan","httpOnly","ratelimit","interval","max","layout","user","actions","create","update","callback","validate","provider","uCallback","uProviderCallback","URL","Error","origin","pathname","validator"],"mappings":";;;;;;;;;IAEA,MAAM,EACJA,6BAA6B,EAC7BC,kCAAkC,EAClCC,mCAAmC,EACnCC,4BAA4B,EAC5BC,6BAA6B,EAC9B,GAAGC,mBAAAA,EAAAA;IAEJC,MAAAA,GAAiB;AACfC,QAAAA,OAAAA,EAAS,CAAC,EAAEC,GAAG,EAAE,IAAM;AACrBC,gBAAAA,SAAAA,EAAWD,GAAAA,CAAI,YAAA,CAAA;gBACfE,GAAAA,EAAK;oBACHC,SAAAA,EAAW;AACjB,iBAAA;AACA;;;;AAIA,SACIC,aAAAA,EAAe,gBAAA;gBACfC,QAAAA,EAAU;oBACRC,mBAAAA,EAAqBd,6BAAAA;oBACrBe,uBAAAA,EAAyBd,kCAAAA;oBACzBe,wBAAAA,EAA0Bd,mCAAAA;oBAC1Be,kBAAAA,EAAoBd,4BAAAA;oBACpBe,mBAAAA,EAAqBd,6BAAAA;oBACrBe,QAAAA,EAAU;AAChB,iBAAA;gBACIC,SAAAA,EAAW;oBACTC,QAAAA,EAAU,KAAA;oBACVC,GAAAA,EAAK;AACX,iBAAA;gBACIC,MAAAA,EAAQ;oBACNC,IAAAA,EAAM;wBACJC,OAAAA,EAAS;4BACPC,MAAAA,EAAQ,2BAAA;4BACRC,MAAAA,EAAQ;AAClB;AACA;AACA,iBAAA;gBACIC,QAAAA,EAAU;oBACRC,QAAAA,CAAAA,CAASD,QAAQ,EAAEE,QAAQ,EAAA;wBACzB,IAAIC,SAAAA;wBACJ,IAAIC,iBAAAA;wBAEJ,IAAI;AACFD,4BAAAA,SAAAA,GAAY,IAAIE,GAAAA,CAAIL,QAAAA,CAAAA;4BACpBI,iBAAAA,GAAoB,IAAIC,GAAAA,CAAIH,QAAAA,CAASF,QAAQ,CAAA;AACvD,wBAAA,CAAA,CAAU,OAAM;AACN,4BAAA,MAAM,IAAIM,KAAAA,CAAM,iCAAA,CAAA;AAC1B,wBAAA;;AAGQ,wBAAA,IAAIH,SAAAA,CAAUI,MAAM,KAAKH,iBAAAA,CAAkBG,MAAM,EAAE;AACjD,4BAAA,MAAM,IAAID,KAAAA,CACR,CAAC,4EAA4E,CAAC,CAAA;AAE1F,wBAAA;;AAGQ,wBAAA,IAAIH,SAAAA,CAAUK,QAAQ,KAAKJ,iBAAAA,CAAkBI,QAAQ,EAAE;AACrD,4BAAA,MAAM,IAAIF,KAAAA,CACR,CAAC,6EAA6E,CAAC,CAAA;AAE3F,wBAAA;;AAGA,oBAAA;AACA;aACA,CAAA;QACEG,SAAAA,CAAAA,GAAAA,CAAY;AACd,KAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.mjs","sources":["../../server/config.js"],"sourcesContent":["'use strict';\n\nconst {\n DEFAULT_ACCESS_TOKEN_LIFESPAN,\n DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN,\n DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN,\n DEFAULT_MAX_SESSION_LIFESPAN,\n DEFAULT_IDLE_SESSION_LIFESPAN,\n} = require('./services/constants');\n\nmodule.exports = {\n default: ({ env }) => ({\n jwtSecret: env('JWT_SECRET'),\n jwt: {\n expiresIn: '30d',\n },\n /**\n * JWT management mode for the Content API authentication\n * - \"legacy-support\": use plugin JWTs (backward compatible)\n * - \"refresh\": use SessionManager (access/refresh tokens)\n */\n jwtManagement: 'legacy-support',\n sessions: {\n accessTokenLifespan: DEFAULT_ACCESS_TOKEN_LIFESPAN,\n maxRefreshTokenLifespan: DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN,\n idleRefreshTokenLifespan: DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN,\n maxSessionLifespan: DEFAULT_MAX_SESSION_LIFESPAN,\n idleSessionLifespan: DEFAULT_IDLE_SESSION_LIFESPAN,\n httpOnly: false,\n },\n ratelimit: {\n interval: 60000,\n max: 10,\n },\n layout: {\n user: {\n actions: {\n create: 'contentManagerUser.create', // Use the User plugin's controller.\n update: 'contentManagerUser.update',\n },\n },\n },\n callback: {\n validate(callback, provider) {\n let uCallback;\n let uProviderCallback;\n\n try {\n uCallback = new URL(callback);\n uProviderCallback = new URL(provider.callback);\n } catch {\n throw new Error('The callback is not a valid URL');\n }\n\n // Make sure the different origin matches\n if (uCallback.origin !== uProviderCallback.origin) {\n throw new Error(\n `Forbidden callback provided: origins don't match. Please verify your config.`\n );\n }\n\n // Make sure the different pathname matches\n if (uCallback.pathname !== uProviderCallback.pathname) {\n throw new Error(\n `Forbidden callback provided: pathname don't match. Please verify your config.`\n );\n }\n\n // NOTE: We're not checking the search parameters on purpose to allow passing different states\n },\n },\n }),\n validator() {},\n};\n"],"names":["DEFAULT_ACCESS_TOKEN_LIFESPAN","DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN","DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN","DEFAULT_MAX_SESSION_LIFESPAN","DEFAULT_IDLE_SESSION_LIFESPAN","require$$0","config","default","env","jwtSecret","jwt","expiresIn","jwtManagement","sessions","accessTokenLifespan","maxRefreshTokenLifespan","idleRefreshTokenLifespan","maxSessionLifespan","idleSessionLifespan","httpOnly","ratelimit","interval","max","layout","user","actions","create","update","callback","validate","provider","uCallback","uProviderCallback","URL","Error","origin","pathname","validator"],"mappings":";;;;;;;IAEA,MAAM,EACJA,6BAA6B,EAC7BC,kCAAkC,EAClCC,mCAAmC,EACnCC,4BAA4B,EAC5BC,6BAA6B,EAC9B,GAAGC,gBAAAA,EAAAA;IAEJC,MAAAA,GAAiB;AACfC,QAAAA,OAAAA,EAAS,CAAC,EAAEC,GAAG,EAAE,IAAM;AACrBC,gBAAAA,SAAAA,EAAWD,GAAAA,CAAI,YAAA,CAAA;gBACfE,GAAAA,EAAK;oBACHC,SAAAA,EAAW;AACjB,iBAAA;AACA;;;;AAIA,SACIC,aAAAA,EAAe,gBAAA;gBACfC,QAAAA,EAAU;oBACRC,mBAAAA,EAAqBd,6BAAAA;oBACrBe,uBAAAA,EAAyBd,kCAAAA;oBACzBe,wBAAAA,EAA0Bd,mCAAAA;oBAC1Be,kBAAAA,EAAoBd,4BAAAA;oBACpBe,mBAAAA,EAAqBd,6BAAAA;oBACrBe,QAAAA,EAAU;AAChB,iBAAA;gBACIC,SAAAA,EAAW;oBACTC,QAAAA,EAAU,KAAA;oBACVC,GAAAA,EAAK;AACX,iBAAA;gBACIC,MAAAA,EAAQ;oBACNC,IAAAA,EAAM;wBACJC,OAAAA,EAAS;4BACPC,MAAAA,EAAQ,2BAAA;4BACRC,MAAAA,EAAQ;AAClB;AACA;AACA,iBAAA;gBACIC,QAAAA,EAAU;oBACRC,QAAAA,CAAAA,CAASD,QAAQ,EAAEE,QAAQ,EAAA;wBACzB,IAAIC,SAAAA;wBACJ,IAAIC,iBAAAA;wBAEJ,IAAI;AACFD,4BAAAA,SAAAA,GAAY,IAAIE,GAAAA,CAAIL,QAAAA,CAAAA;4BACpBI,iBAAAA,GAAoB,IAAIC,GAAAA,CAAIH,QAAAA,CAASF,QAAQ,CAAA;AACvD,wBAAA,CAAA,CAAU,OAAM;AACN,4BAAA,MAAM,IAAIM,KAAAA,CAAM,iCAAA,CAAA;AAC1B,wBAAA;;AAGQ,wBAAA,IAAIH,SAAAA,CAAUI,MAAM,KAAKH,iBAAAA,CAAkBG,MAAM,EAAE;AACjD,4BAAA,MAAM,IAAID,KAAAA,CACR,CAAC,4EAA4E,CAAA,CAAA;AAEzF,wBAAA;;AAGQ,wBAAA,IAAIH,SAAAA,CAAUK,QAAQ,KAAKJ,iBAAAA,CAAkBI,QAAQ,EAAE;AACrD,4BAAA,MAAM,IAAIF,KAAAA,CACR,CAAC,6EAA6E,CAAA,CAAA;AAE1F,wBAAA;;AAGA,oBAAA;AACA;aACA,CAAA;QACEG,SAAAA,CAAAA,GAAAA,CAAY;AACd,KAAA;;;;;;"}
1
+ {"version":3,"file":"config.mjs","sources":["../../server/config.js"],"sourcesContent":["'use strict';\n\nconst {\n DEFAULT_ACCESS_TOKEN_LIFESPAN,\n DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN,\n DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN,\n DEFAULT_MAX_SESSION_LIFESPAN,\n DEFAULT_IDLE_SESSION_LIFESPAN,\n} = require('./services/constants');\n\nmodule.exports = {\n default: ({ env }) => ({\n jwtSecret: env('JWT_SECRET'),\n jwt: {\n expiresIn: '30d',\n },\n /**\n * JWT management mode for the Content API authentication\n * - \"legacy-support\": use plugin JWTs (backward compatible)\n * - \"refresh\": use SessionManager (access/refresh tokens)\n */\n jwtManagement: 'legacy-support',\n sessions: {\n accessTokenLifespan: DEFAULT_ACCESS_TOKEN_LIFESPAN,\n maxRefreshTokenLifespan: DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN,\n idleRefreshTokenLifespan: DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN,\n maxSessionLifespan: DEFAULT_MAX_SESSION_LIFESPAN,\n idleSessionLifespan: DEFAULT_IDLE_SESSION_LIFESPAN,\n httpOnly: false,\n },\n ratelimit: {\n interval: 60000,\n max: 10,\n },\n layout: {\n user: {\n actions: {\n create: 'contentManagerUser.create', // Use the User plugin's controller.\n update: 'contentManagerUser.update',\n },\n },\n },\n callback: {\n validate(callback, provider) {\n let uCallback;\n let uProviderCallback;\n\n try {\n uCallback = new URL(callback);\n uProviderCallback = new URL(provider.callback);\n } catch {\n throw new Error('The callback is not a valid URL');\n }\n\n // Make sure the different origin matches\n if (uCallback.origin !== uProviderCallback.origin) {\n throw new Error(\n `Forbidden callback provided: origins don't match. Please verify your config.`\n );\n }\n\n // Make sure the different pathname matches\n if (uCallback.pathname !== uProviderCallback.pathname) {\n throw new Error(\n `Forbidden callback provided: pathname don't match. Please verify your config.`\n );\n }\n\n // NOTE: We're not checking the search parameters on purpose to allow passing different states\n },\n },\n }),\n validator() {},\n};\n"],"names":["DEFAULT_ACCESS_TOKEN_LIFESPAN","DEFAULT_MAX_REFRESH_TOKEN_LIFESPAN","DEFAULT_IDLE_REFRESH_TOKEN_LIFESPAN","DEFAULT_MAX_SESSION_LIFESPAN","DEFAULT_IDLE_SESSION_LIFESPAN","require$$0","config","default","env","jwtSecret","jwt","expiresIn","jwtManagement","sessions","accessTokenLifespan","maxRefreshTokenLifespan","idleRefreshTokenLifespan","maxSessionLifespan","idleSessionLifespan","httpOnly","ratelimit","interval","max","layout","user","actions","create","update","callback","validate","provider","uCallback","uProviderCallback","URL","Error","origin","pathname","validator"],"mappings":";;;;;;;IAEA,MAAM,EACJA,6BAA6B,EAC7BC,kCAAkC,EAClCC,mCAAmC,EACnCC,4BAA4B,EAC5BC,6BAA6B,EAC9B,GAAGC,gBAAAA,EAAAA;IAEJC,MAAAA,GAAiB;AACfC,QAAAA,OAAAA,EAAS,CAAC,EAAEC,GAAG,EAAE,IAAM;AACrBC,gBAAAA,SAAAA,EAAWD,GAAAA,CAAI,YAAA,CAAA;gBACfE,GAAAA,EAAK;oBACHC,SAAAA,EAAW;AACjB,iBAAA;AACA;;;;AAIA,SACIC,aAAAA,EAAe,gBAAA;gBACfC,QAAAA,EAAU;oBACRC,mBAAAA,EAAqBd,6BAAAA;oBACrBe,uBAAAA,EAAyBd,kCAAAA;oBACzBe,wBAAAA,EAA0Bd,mCAAAA;oBAC1Be,kBAAAA,EAAoBd,4BAAAA;oBACpBe,mBAAAA,EAAqBd,6BAAAA;oBACrBe,QAAAA,EAAU;AAChB,iBAAA;gBACIC,SAAAA,EAAW;oBACTC,QAAAA,EAAU,KAAA;oBACVC,GAAAA,EAAK;AACX,iBAAA;gBACIC,MAAAA,EAAQ;oBACNC,IAAAA,EAAM;wBACJC,OAAAA,EAAS;4BACPC,MAAAA,EAAQ,2BAAA;4BACRC,MAAAA,EAAQ;AAClB;AACA;AACA,iBAAA;gBACIC,QAAAA,EAAU;oBACRC,QAAAA,CAAAA,CAASD,QAAQ,EAAEE,QAAQ,EAAA;wBACzB,IAAIC,SAAAA;wBACJ,IAAIC,iBAAAA;wBAEJ,IAAI;AACFD,4BAAAA,SAAAA,GAAY,IAAIE,GAAAA,CAAIL,QAAAA,CAAAA;4BACpBI,iBAAAA,GAAoB,IAAIC,GAAAA,CAAIH,QAAAA,CAASF,QAAQ,CAAA;AACvD,wBAAA,CAAA,CAAU,OAAM;AACN,4BAAA,MAAM,IAAIM,KAAAA,CAAM,iCAAA,CAAA;AAC1B,wBAAA;;AAGQ,wBAAA,IAAIH,SAAAA,CAAUI,MAAM,KAAKH,iBAAAA,CAAkBG,MAAM,EAAE;AACjD,4BAAA,MAAM,IAAID,KAAAA,CACR,CAAC,4EAA4E,CAAC,CAAA;AAE1F,wBAAA;;AAGQ,wBAAA,IAAIH,SAAAA,CAAUK,QAAQ,KAAKJ,iBAAAA,CAAkBI,QAAQ,EAAE;AACrD,4BAAA,MAAM,IAAIF,KAAAA,CACR,CAAC,6EAA6E,CAAC,CAAA;AAE3F,wBAAA;;AAGA,oBAAA;AACA;aACA,CAAA;QACEG,SAAAA,CAAAA,GAAAA,CAAY;AACd,KAAA;;;;;;"}